Python package to manage units for physical quantities
Project description
What is Barril?
Python package to manage units for physical quantities.
Quick example:
from barril.units import Scalar
s1 = Scalar(10, "m")
s2 = Scalar(500, "cm")
assert s1 + s2 == Scalar(15, "m")
Features
Pre-defined unit database containing several physical quantities for the Oil & Gas industry.
Data types with an associated unit: Scalar, Array, Quantity, FixedArray.
Automatic conversion during arithmetic operations.
Development
For complete description of what type of contributions are possible, see the full CONTRIBUTING guide.
Here is a quick summary of the steps necessary to setup your environment to contribute to barril.
Create a virtual environment and activate it:
$ python -m virtualenv .env $ .env\Scripts\activate # windows $ source .env/bin/activate # linux
Update pip:
$ python -m pip install -U pip
Install development dependencies:
$ pip install -e .[testing]
Install pre-commit:
$ pre-commit install
Run tests:
$ pytest --pyargs barril
Generate docs locally:
$ tox -e docs
The documentation files will be generated in docs/_build.
Release
A reminder for the maintainers on how to make a new release.
Note that the VERSION should folow the semantic versioning as X.Y.Z Ex.: v1.0.5
Create a release-VERSION branch from upstream/master.
Update CHANGELOG.rst.
Push a branch with the changes.
Once all builds pass, push a VERSION tag to upstream.
Merge the PR.
Credits
This package was created with Cookiecutter and the audreyr/cookiecutter-pypackage project template.
1.11.1 (2021-10-13)
Fixed typos in unit names: kilkodynes (unit=kdyne) fixed to kilodynes, killowatts/cubic metre degree Kelvin (unit=kW/m3.K) fixed to kilowatts/cubic metre degree Kelvin.
1.11.0 (2021-06-18)
Add new unit: “Stokes” (St).
Use TypeCheckingSupport from oop-ext 1.1.
Add cubic feet per day per psi (ft3/psi.d) unit to productivity index category.
Add calories/metre hour degree Celsius (cal/m.h.degC) unit to thermal conductivity category.
Add calorie/hour square metre deg C (cal/h.m2.degC) unit to heat transfer coefficient category.
Add std cubic metres/second (sm3/s) unit to standard volume per time category.
Add million std cubic feet/stock tank barrel (MMscf/stb), stock tank barrel/std cubic feet (stb/scf) and stock tank barrel/million std cubic feet (stb/MMscf) units to standard volume per standard volume category.
1.10.0 (2020-10-22)
Removing thermodynamic temperature as default category for degF and degR units.
1.9.0 (2020-02-20)
New classmethod Array.FromScalars that creates an Array from a List[Scalar].
Add new unit: “barrel per second” (bbl/s).
1.8.0 (2020-01-10)
Add new category: “standard volume per standard volume”.
Move unit sm3/sm3 from “volume per volume” to “standard volume per standard volume”.
1.7.2 (2019-10-16)
_foundation has been renamed to _util, and a lot of functions which were not being used anymore have been removed.
Add new unit category mass temperature per mol (kg.K/mol).
Some units have been renamed as they were deemed out-of-place in the oil industry to something more usual (for example, 1000ft3/d became Mcf/d). The old representation of those units is still supported, but they will be automatically translated during Quantity creation, so this change should not affect users much.
Fix division 1.0 / a where a is a Scalar or Array and also add support for floor division, i.e., operations like a // b where a and b are Scalar or Array (and combinations with float or int).
Add new unit category for Joule-Thomson coefficient (K/Pa).
Add new temperature unit for density derivative in respect to temperature (kg/m3.K).
1.7.1 (2019-10-03)
Fixed bug in / and - operators for FixedArray.
1.7.0 (2019-06-18)
Add unit system.
1.6.1 (2019-04-11)
Change export to include ICurve and Curve and exclude IReadOnlyScalar.
1.6.0 (2019-04-10)
Add curve implementation.
Add support to interfaces from oop-ext.
Drop support to Python 2.
1.5.0 (2019-01-09)
Quantity.CheckValue now raises QuantityValidationError instead of ValueError.
1.4.0 (2018-12-17)
Add new category for “concentration ratio”.
1.3.0 (2018-10-13)
Add “per micrometre” unit to “per length” category.
Remove internal barril.fixtures module as it is not necessary or part of the public API.
1.2.0 (2018-09-26)
Add units for defining Spring-Dashpot movements.
1.1.0 (2018-09-24)
Add number and fraction properties to FractionValue.
Add unit read-only property to Quantity.
1.0.0 (2018-09-21)
First feature release.
0.1.0 (2018-09-03)
First release on PyPI.
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.