Skip to main content

Pythonic interface to the HepMC3 C++ library.

Project description

pyhepmc

A Pythonic wrapper for the HepMC3 C++ library.

Scikit-HEP PyPI version Coverage DOI

pyhepmc was formerly known as pyhepmc-ng. The development of pyhepmc-ng continues in the pyhepmc package.

HepMC3 has its own Python bindings. Why should you use these?

pyhepmc is easy to install

The command pip install pyhepmc just works on all common platforms. Since we publish binary wheels, you don't need to compile anything. Since we include the HepMC3 library, you don't need to install it separately either.

However, building from source is also easy. External software is not required. Just download the repository with git clone --recursive and run pip install -v -e ..

pyhepmc is Pythonic and Jupyter notebook-friendly

pyhepmc is a hand-crafted mapping of C++ code to Python. It supports Python idioms where appropriate. The classes are designed to render well in Jupyter notebooks.

  • C++ methods which act like properties are represented as properties, e.g. GenParticle::set_status and GenParticle::status are mapped to a single GenParticle.status field in Python
  • Tuples and lists are implicitly convertible to FourVectors
  • Vectors of objects on the C++ side are mapped to Python lists
  • ReaderAscii and WriterAscii support the context manager protocol
  • A convenient open function is provided for reading and writing HepMC files

pyhepmc supports visualizations powered by graphviz

pyhepmc can optionally visualize events, using the mature graphviz library as a backend.

pyhepmc is actively maintained

pyhepmc is part of the Scikit-HEP project, which aims to provide all tools needed by particle physicists to do data analysis in Python. There is also official collaboration with the HepMC3 project.

pyhepmc is unit tested

We aim for 100% coverage, not quite there yet.

Documentation

pyhepmc currently has no separate documentation, but it mirrors the C++ interface of the HepMC3 library, which is documented here: http://hepmc.web.cern.ch/hepmc. Docs will come soon, for now, please use Python's help() browser to learn about the API.

License

pyhepmc is covered by the BSD 3-clause license, see the LICENSE file for details. This license only applies to the pyhepmc code. The connected external libraries HepMC3 and pybind11 are covered by other licenses, as described in their respective LICENSE files.

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

pyhepmc-2.4.0.tar.gz (351.4 kB view hashes)

Uploaded Source

Built Distributions

pyhepmc-2.4.0-cp310-cp310-win_amd64.whl (374.7 kB view hashes)

Uploaded CPython 3.10 Windows x86-64

pyhepmc-2.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (466.0 kB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

pyhepmc-2.4.0-cp310-cp310-macosx_10_9_x86_64.whl (410.8 kB view hashes)

Uploaded CPython 3.10 macOS 10.9+ x86-64

pyhepmc-2.4.0-cp310-cp310-macosx_10_9_universal2.whl (761.2 kB view hashes)

Uploaded CPython 3.10 macOS 10.9+ universal2 (ARM64, x86-64)

pyhepmc-2.4.0-cp39-cp39-win_amd64.whl (374.7 kB view hashes)

Uploaded CPython 3.9 Windows x86-64

pyhepmc-2.4.0-cp39-cp39-win32.whl (313.7 kB view hashes)

Uploaded CPython 3.9 Windows x86

pyhepmc-2.4.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (425.8 kB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.12+ x86-64

pyhepmc-2.4.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl (443.8 kB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.12+ i686

pyhepmc-2.4.0-cp39-cp39-macosx_10_9_x86_64.whl (411.0 kB view hashes)

Uploaded CPython 3.9 macOS 10.9+ x86-64

pyhepmc-2.4.0-cp39-cp39-macosx_10_9_universal2.whl (761.5 kB view hashes)

Uploaded CPython 3.9 macOS 10.9+ universal2 (ARM64, x86-64)

pyhepmc-2.4.0-cp38-cp38-win_amd64.whl (374.8 kB view hashes)

Uploaded CPython 3.8 Windows x86-64

pyhepmc-2.4.0-cp38-cp38-win32.whl (313.5 kB view hashes)

Uploaded CPython 3.8 Windows x86

pyhepmc-2.4.0-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (425.3 kB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.12+ x86-64

pyhepmc-2.4.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl (443.6 kB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.12+ i686

pyhepmc-2.4.0-cp38-cp38-macosx_10_9_x86_64.whl (410.9 kB view hashes)

Uploaded CPython 3.8 macOS 10.9+ x86-64

pyhepmc-2.4.0-cp38-cp38-macosx_10_9_universal2.whl (761.4 kB view hashes)

Uploaded CPython 3.8 macOS 10.9+ universal2 (ARM64, x86-64)

pyhepmc-2.4.0-cp37-cp37m-win_amd64.whl (372.6 kB view hashes)

Uploaded CPython 3.7m Windows x86-64

pyhepmc-2.4.0-cp37-cp37m-win32.whl (316.2 kB view hashes)

Uploaded CPython 3.7m Windows x86

pyhepmc-2.4.0-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (427.4 kB view hashes)

Uploaded CPython 3.7m manylinux: glibc 2.12+ x86-64

pyhepmc-2.4.0-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl (447.6 kB view hashes)

Uploaded CPython 3.7m manylinux: glibc 2.12+ i686

pyhepmc-2.4.0-cp37-cp37m-macosx_10_9_x86_64.whl (404.4 kB view hashes)

Uploaded CPython 3.7m macOS 10.9+ x86-64

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