Skip to main content

Pythonic class collection that helps you structure external data from LHC / HEP experiments.

Project description

.. raw:: html

<a href="https://github.com/riga/order"><img src="https://raw.githubusercontent.com/riga/order/master/logo.png" width="240px" alt="order logo"></a><br />


.. marker-after-logo


.. image:: https://img.shields.io/travis/riga/order/master.svg?style=flat
:target: https://travis-ci.org/riga/order
:alt: Build status

.. image:: https://readthedocs.org/projects/python-order/badge/?version=latest
:target: http://python-order.readthedocs.io/en/latest
:alt: Documentation status

.. image:: https://img.shields.io/pypi/v/order.svg?style=flat
:target: https://pypi.python.org/pypi/order
:alt: Package version

.. image:: https://img.shields.io/github/license/riga/order.svg
:target: https://github.com/riga/order/blob/master/LICENSE
:alt: License

.. image:: https://mybinder.org/badge_logo.svg
:target: https://mybinder.org/v2/gh/riga/order/master?filepath=examples%2Fintro.ipynb
:alt: Open in binder


If you're designing a high-energy physics analysis (e.g. with data recorded by an `LHC <https://home.cern/topics/large-hadron-collider>`__ experiment at `CERN <http://home.cern>`__), manual bookkeeping of external data can get complicated quite fast. *order* provides a pythonic class collection that helps you structuring

- analyses,
- MC campaigns,
- datasets,
- physics process and cross sections,
- channels,
- categories,
- variables, and
- systematic shifts.


.. marker-after-header


Getting started
---------------

See the `intro.ipynb <https://github.com/riga/order/blob/master/examples/intro.ipynb>`__ notebook for an introduction to the most important classes and an example setup of a small analysis. You can also run the notebook interactively on binder:

|binder|

You can find the full `API documentation on readthedocs <http://python-order.readthedocs.io>`__.


.. marker-after-getting-started


Installation and dependencies
-----------------------------

Install *order* via `pip <https://pypi.python.org/pypi/order>`__:

.. code-block:: shell

pip install order

The only dependencies are `scinum <https://pypi.python.org/pypi/scinum>`__ and `six <https://pypi.python.org/pypi/six>`__, which are installed with the above command.


Contributing and testing
------------------------

If you like to contribute, I'm happy to receive pull requests. Just make sure to add new test cases and run them via:

.. code-block:: shell

python -m unittest tests

In general, tests should be run for Python 2.7, 3.6 and 3.7. To run tests in a docker container, do

.. code-block:: shell

# run the tests
./tests/docker.sh python:3.7

# or interactively by adding a flag "1" to the command
./tests/docker.sh python:3.7 1
> pip install -r requirements.txt
> python -m unittest tests

In addition, `PEP 8 <https://www.python.org/dev/peps/pep-0008/>`__ compatibility should be checked with `flake8 <https://pypi.org/project/flake8/>`__:

.. code-block:: shell

flake8 order tests setup.py


Development
-----------

- Source hosted at `GitHub <https://github.com/riga/order>`__
- Report issues, questions, feature requests on `GitHub Issues <https://github.com/riga/order/issues>`__


.. |binder| image:: https://mybinder.org/badge_logo.svg
:target: https://mybinder.org/v2/gh/riga/order/master?filepath=examples%2Fintro.ipynb
:alt: Open in binder

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

order-1.0.0.tar.gz (38.0 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page