Modest collection of electrical energy calculation tools.
Project description
energy_tools
Modest collection of electrical energy calculation tools.
Content:
Installation
pip install -U --user energy_tools
Development version
energy_tools is now managed with uv. After downloading or cloning the project from GitHub, run uv sync to fetch and install the requirements.
You can then test the installation with make tests or uv run python -m pytest.
Features
energy_tools currently includes the following modules:
complex
The complex module includes an improved EleComplex class which adds the following attributes (properties): phase, module.
EleComplex.phasereturns the complex number's phase in degrees.EleComplex.modulereturns the complex number's amplitude.
The complex module also includes a complex_impedance function that returns an improved EleComplex number, based on a provided real impedance z and an X/R ratio.
The EleComplex class must be imported in order for some of the other tools to be usable:
from energy_tools.complex import EleComplex
See Usage below for more details.
energy_factors
The energy_factors module includes functions to calculate yearly energy factors for special calculations. Currently, it includes the utilisation_factor and loss_factor functions.
misc
The misc module includes basic functions to manipulate impedances, including serie, parallel, zCap and zInd. These calculate series impedance, parallel impedances, capacitance impedance and inductance impedance respectively.
per_unit
The per_unit module includes functions that return the base current, impedance and power.
phasor
The phasor module includes a new data type Phasor for the electrical phasor used in power systems.
A phasor is defined by an amplitude and a phase. The instance can be created either using those, or by providing a complex amplitude (in this case the phase is ignored). Several operations are supported, including: addition, substraction, multiplication, division, power, inversion and equality with either another phasor, a float or an integer.
It also provides a nice representation in this form: 120.000 @ 0.000°
Attributes:
- amp: The unitless phasor amplitude.
- pha: The phasor's phase in degrees.
- real: The phasor's real part (interpreted as a complex number).
- imag: The phasor's imaginary part (interpreted as a complex number).
The phasor module also includes functions sequences and phasors. The former retuns phase A's sequence voltages from phase A, B and C's voltages. The latter does the opposite, i.e. it returns phase A, B and C's voltages from phases A's sequence voltages.
power
The power module includes 2 functions p() and q() which calculate the active power and reactive power based on at least 2 of the following arguments:
p: Active power (forq()).q: Reactive power (forp()).s: Apparent power.pf: Power factor.
The arguments and return value are unitless.
Usage
Sample usage may be found in the tests directory. Most of these tools are straightforward (or aim to be), so the tests and docstrings should be helpful enough.
As mentioned above, the EleComplex class must be imported in order for many of the other tools to be usable:
from energy_tools.complex import EleComplex
When the improved EleComplex type is imported this way, the following call will result in variable a being an energy_tools.complex.EleComplex instance, as expected:
a = EleComplex(1, 1)
a.phase # Will return 45 degrees
Implicitly declaring a complex number, however, will return the built-in complex type:
a = 1 + 1j
a.phase # Will raise AttributeError
Contributing
If you wish to contribute, please follow the development version instructions above and refer to the project's contribution guide.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file energy_tools-1.2.2.tar.gz.
File metadata
- Download URL: energy_tools-1.2.2.tar.gz
- Upload date:
- Size: 26.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.4.22
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e6ebff6c5341cdb4584969cc3373fb066ae4882ccc55d5311fafae3583e1e918
|
|
| MD5 |
7ce4b592dd200f2884a8f2c5a52cb2aa
|
|
| BLAKE2b-256 |
b760b117938b588181b7f3a4aa30d32b6cf304c2ffc4914159c7b114804f57b2
|
File details
Details for the file energy_tools-1.2.2-py3-none-any.whl.
File metadata
- Download URL: energy_tools-1.2.2-py3-none-any.whl
- Upload date:
- Size: 8.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.4.22
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
94d221ed43104a1b7e33115a5c06b137291a86dd30d7e4e03aa34e50f6cf57b4
|
|
| MD5 |
247d03c8bc7e9792f9d704ae78a95236
|
|
| BLAKE2b-256 |
20620b4249d2ab16fc9a52642067351becd092ca47532961a2e9cb60c6155218
|