Metadata-Version: 2.1
Name: pachyderm
Version: 3.0
Summary: Physics Analysis Core for Heavy-Ions
License: BSD-3-Clause
Keywords: HEP,ALICE
Author: Raymond Ehlers
Author-email: raymond.ehlers@cern.ch
Requires-Python: >=3.6.1,<4.0.0
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: BSD License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Provides-Extra: docs
Requires-Dist: Sphinx (>=3.2.1,<4.0.0); extra == "docs"
Requires-Dist: attrs (>=19.3.0)
Requires-Dist: dataclasses (>=0.7,<0.8); python_version >= "3.6" and python_version < "3.7"
Requires-Dist: iminuit (>=1.5.2,<2.0.0)
Requires-Dist: importlib-metadata (>=2.0.0,<3.0.0); (python_version >= "3.6" and python_version < "3.8") and (extra == "docs")
Requires-Dist: importlib-resources (>=3.3.0,<4.0.0); python_version >= "3.6" and python_version < "3.7"
Requires-Dist: matplotlib (>=3.3.2,<4.0.0)
Requires-Dist: numdifftools (>=0.9.39,<0.10.0)
Requires-Dist: numpy (>=1.19.3,<2.0.0)
Requires-Dist: recommonmark (>=0.6.0,<0.7.0); extra == "docs"
Requires-Dist: ruamel.yaml (>=0.16.12,<0.17.0)
Requires-Dist: scipy (>=1.5.3,<2.0.0)
Requires-Dist: sphinx-markdown-tables (>=0.0.15,<0.0.16); extra == "docs"
Description-Content-Type: text/markdown

# 🐘 Pachyderm

[![Documentation Status](https://readthedocs.org/projects/pachyderm-heavy-ion/badge/?version=latest)](https://pachyderm-heavy-ion.readthedocs.io/en/latest/?badge=latest)
[![Build Status](https://travis-ci.com/raymondEhlers/pachyderm.svg?branch=master)](https://travis-ci.com/raymondEhlers/pachyderm)
[![codecov](https://codecov.io/gh/raymondEhlers/pachyderm/branch/master/graph/badge.svg)](https://codecov.io/gh/raymondEhlers/pachyderm)

Pachyderm[\*](#name-meaning) provides core functionality for heavy-ion physics analyses. The main
functionality includes a generic histogram projection interface, a recursive configuration determination
module (including overriding (merging) capabilities), and general utilities (especially for histograms). It
provides base functionality to the [ALICE jet-hadron
analysis](https://github.com/raymondEhlers/alice-jet-hadron) package. This package provides many examples of
how pachyderm can be used in various analysis tasks.

For further information on the capabilities, see the
[docuemntation](https://readthedocs.org/projects/pachyderm-heavy-ion/badge/?version=latest).

## Installation

Pachyderm requires python 3.6 or above. It is available on [PyPI](https://pypi.org/project/pachyderm/) and can
be installed via pip:

```bash
$ pip install pachyderm
```

## Dependencies

All dependencies are specified in the `setup.py` (and will be handled automatically when installed via pip)
except for ROOT. The package can be installed without ROOT with limited functionality, but for full
functionality, ROOT must be available.

### Dockerfile

There is a Dockerfile which is used for testing pachyderm with ROOT. It is based on the
[Overwatch](https://github.com/raymondEhlers/OVERWATCH) [base docker
image](https://hub.docker.com/r/rehlers/overwatch-base/) to allow us to avoid redeveloping another container
just to have ROOT available. It may also be used to run pachyderm if so desired, although such a use case
doesn't seem tremendously useful (which is why the image isn't pushed to docker hub).

## Development

I recommend setting up the development environment as follows:

```bash
# Setup
$ poetry install
# Setup git pre-commit hooks to reduce errors
$ pre-commit install
# develop develop develop...
```

## Documentation

All classes, functions, etc, should be documented, including with typing information. [The
docs](https://pachyderm-heavy-ion.readthedocs.io/en/latest/) are built on each new successful commit. They can
also be built locally using:

```bash
# Setup
$ poetry install
# Create the docs
$ pushd doc && make html && popd
# Open the created docs
$ open docs/_build/html/index.html
```

## Name Meaning

**PACHYDERM**: **P**hysics **A**nalysis **C**ore for **H**eav**Y**-ions with **D**etermination of (analysis)
**E**lements via **R**ecursion and **M**erging.


