Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
A pythonic interface for the ROOT libraries on top of the PyROOT bindings.
Python Other
branch: master

Merge pull request #635 from ndawe/dev

Tree: models support bare ROOT objects and csv handles stl.string
latest commit 36446284af
@ndawe ndawe authored
Failed to load latest commit information.
benchmarks read speed improvements for read_branches_on_demand
ci update travis config
devscripts rm devscripts/ci that are moved to root-build-matrix
docs add sphinxcontrib/ansi
examples plot_bootstrap.py: slower framerate and fix zaxis
requirements increment root_numpy minimum version
rootpy Tree: models support bare ROOT objects and csv handles stl.string
scripts IPython notebook support: display canvas, hist, func inline
.coveragerc coverage
.gitignore include setuptools instructions if not installed
.mailmap update mailmap
.travis.yml update travis config
CONTRIBUTING.rst CONTRIBUTING.rst formatting
COPYING add copyright at the top of all source files, move LICENSE to COPYING
MANIFEST.in include test.cxx in package_data
Makefile switch from distribute to setuptools >= 0.7
README.rst add crate badges
WHATSNEW.md showstack -> show_stack
ghp-import add ghp-import script and entry in Makefile to update gh-pages
pyflakes.exclude update flakes ignore file
pyflakes.ignore pyflakes, add pyflakes wrapper script, add pep8 in makefile
run-pyflakes pyflakes, add pyflakes wrapper script, add pep8 in makefile
setup.py minor change
version.txt bump version to 0.7.1

README.rst

[see full documentation]

rootpy: Pythonic ROOT

https://travis-ci.org/rootpy/rootpy.png https://pypip.in/v/rootpy/badge.png https://pypip.in/d/rootpy/badge.png

Python has become the language of choice for high-level applications where fast prototyping and efficient development are important, while glueing together low-level libraries for performance-critical tasks. The PyROOT bindings introduced ROOT into the world of Python, however, interacting with ROOT in Python should not feel like you are still writing C++.

The rootpy project is a community-driven initiative aiming to provide a more pythonic interface with ROOT on top of the existing PyROOT bindings. Given Python's reflective and dynamic nature, rootpy also aims to improve ROOT design flaws and supplement existing ROOT functionality. The scientific Python community also offers a multitude of powerful packages such as SciPy, NumPy, matplotlib, scikit-learn, and PyTables, but a suitable interface between them and ROOT has been lacking. rootpy provides the interfaces and conversion mechanisms required to liberate your data and to take advantage of these alternatives if needed.

Key features include:

  • Improvements to help you create and manipulate trees, histograms, cuts and vectors.
  • Dictionaries for STL types are compiled for you automatically.
  • Redirect ROOT's messages through Python's logging system.
  • Optionally turn ROOT errors into Python exceptions.
  • Get and Set methods on ROOT objects are also properties.
  • Easy navigation through ROOT files. You can now access objects with my_file.some_directory.tree_name, for example.
  • Colours and other style attributes can be referred to by descriptive strings.
  • Provides a way of mapping ROOT trees onto python objects and collections.
  • Plot your ROOT histograms or graphs with matplotlib.
  • Conversion of ROOT trees into NumPy ndarrays and recarrays through the related root_numpy package. Now take advantage of the many statistical and numerical packages that Python offers (NumPy, SciPy, StatsModels, and scikit-learn).
  • Conversion of ROOT files containing trees into HDF5 format with PyTables.
  • roosh, a Bash-like shell environment for the ROOT file, very useful for quick ROOT file inspection and interactive plotting.
  • rootpy, a command for common tasks such as summing histograms or drawing tree expressions over multiple files, listing the contents of a file, or inspecting tree branches and their sizes and types.
Something went wrong with that request. Please try again.