Skip to main content
Join the official Python Developers Survey 2018 and win valuable prizes: Start the survey!

A wrapper around `PyROOT` for better syntax simplification.

Project description

https://img.shields.io/pypi/v/pyroot-zen.svg https://gitlab.com/ckhurewa/pyroot-zen/badges/master/pipeline.svg https://gitlab.com/ckhurewa/pyroot-zen/badges/master/coverage.svg https://img.shields.io/badge/License-GPL%20v3-blue.svg Documentation Status https://img.shields.io/pypi/pyversions/pyroot-zen.svg https://img.shields.io/github/tag/root-project/root.svg

pyroot_zen is a wrapper around PyROOT with better syntax simplification. By design, it does NOT introduce any new APIs, in order to make its usage more intuitive, as well as being compatible with other packages.

Why should you use this? as the Zen of Python says: “Readability counts”.

To use, you need only one line:

>> import pyroot_zen

where all objects in ROOT namespace are now patched.

Features at a glance:

  • Pythonic property instead of Getter/Setter.
    • e.g., hist.xaxis.title = "mass" instead of hist.GetAxis().SetTitle("mass")
  • Automatic (awkward C++ to python) arguments conversion.
    • e.g., ROOT.TPolyLine(3, [1,2,3], [1,4,9]) without using array.
  • Pythonic iterable as expected.

How does it work? Basically intercepting __getattr__, __getattribute__, __init__ call where necessary.

Tested with: ROOT 6.08.06 (OSX homebrew), python 2.7.13, pytest 3.1.1.

Relationship with other packages

  • ROOT: This is required to be installed by the user, and PyROOT should also be available.
  • RooStats: If this is installed, the features will also be available automatically.
  • rootpy: While on the surface it looks like they share a lot of similarity, the 2 packages usages are very different: rootpy requires the user to use the new classes/functions from its namespace to benefit from its functionality, whereas pyroot_zen injects the functionality into objects in PyROOT directly, and focusing only on syntaxes reduction.

Project details


Download files

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

Filename, size & hash SHA256 hash help File type Python version Upload date
pyroot_zen-1.1.4-py2.py3-none-any.whl (29.8 kB) Copy SHA256 hash SHA256 Wheel py2.py3 Aug 12, 2018
pyroot_zen-1.1.4.tar.gz (35.7 kB) Copy SHA256 hash SHA256 Source None Aug 12, 2018

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page