Skip to content

Latest commit

 

History

History
116 lines (71 loc) · 3.02 KB

README.rst

File metadata and controls

116 lines (71 loc) · 3.02 KB

Barril

https://sonarcloud.io/api/project_badges/measure?project=ESSS_barril&metric=alert_status

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.

  1. Create a virtual environment and activate it:

    $ python -m virtualenv .env
    $ .env\Scripts\activate  # windows
    $ source .env/bin/activate  # linux
    

    Note

    If you use conda, you can install virtualenv in the root environment:

    $ conda install -n root virtualenv
    

    Don't worry as this is safe to do.

  2. Update pip:

    $ python -m pip install -U pip
    
  3. Install development dependencies:

    $ pip install -e .[testing]
    
  4. Install pre-commit:

    $ pre-commit install
    
  5. Run tests:

    $ pytest --pyargs barril
    
  6. 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

  1. Create a release-VERSION branch from upstream/master.
  2. Update CHANGELOG.rst.
  3. Push a branch with the changes.
  4. Once all builds pass, push a VERSION tag to upstream.
  5. Merge the PR.

Credits

This package was created with Cookiecutter and the audreyr/cookiecutter-pypackage project template.