The histogram API has changed significantly! Bins are 0-indexed at the
underflow bin like ROOT and now offer full slicing support. This change is
not backward compatible so please be careful when updating to the latest
rootpy and be sure that you migrate the use of histograms in your code. See
the pull request for more
details.
Moved rootpy.batch to a separate project
General improvements
ROOT 6 support
Partial support for Python 3
Expanded HistFactory/RooFit/RooStats coverage
Many others improvements...
0.6.0
8 years ago
First public release
0.7.0
8 years ago
What's new in this release:
bugfixes
Fix #49. Don't require python>=2.6 for install, otherwise we get python3
Check for sys.version < (2, 6) in setup.py
Eliminate ipython printing (Bool_t)1 when ROOT starts up
Emit an error wherever the diaper pattern is used
Sanitize ROOT's message output to ascii, using repr() if it isn't
Register HistStack with class registry correctly
general improvements
Documentation
Defer configuring defaults until finalSetup (#74)
Switch to pyparsing for C++ template parsing
Use XDG base directory specificiation
Add defaults.extra_initializations for further ROOT setup
Add userdata.BINARY_PATH, unique per (arch, rootversion)
Use .cache/rootpy/{arch}-{rootversion}/{modules,dicts} to store generated
binaries
defaults: Disable AutoDict generation
Introduce rootpy/util/quickroot which can get to vital root symbols
without finalSetup (10x speed improvement in import time)
Implement TPyDispatcherProcessedEvent using rootpy.compiled
Falling back to batch mode should be a WARNING not ERROR
Numpy code is now moved to the rootpy/root_numpy repository
Use hash of unique name rather than generating a UUID for dictionary
shared object name
Automatic testing of each commit / pull request on travis-ci
PEP8 Python code style compliance
Add TitleView class to plotting.views functionality
Unit tests
Rewrite registry code so magical imports are no longer required to make
rootpy aware of what ROOT classes are subclassed in rootpy
Alias ROOT CamelCase methods with snake_case methods
Improvements to the setup.py script
New examples for using Trees, Hists, etc
Make name and title properties for Objects
new externs
Add extern/pyparsing.py
Add extern/byteplay
Add module_facade
Add inject_closure_values to close over global variables
docs
Add logger documentation
Sphinx: Introduce ipython highlighting
Document a bit more about python's vanilla logging
Update STL docs
Add note in CONTRIBUTING.rst about debug python builds
scripts
Use argparse (argparse is now in rootpy.extern)
Unify scripts into one rootpy script
Remove scripts that are still WIP
Use the new rootpy logger
Your roosh command history is saved and can be searched
Multi-canvas and multi-file support in roosh
Improvements to the root2hdf5 script, that now uses root_numpy for faster
conversion to HDF5
rootpy.interactive (NEW!)
Add interactive.rootwait, provides wait_for_zero_canvases which blocks
program execution until all canvases are closed
Add canvas_events for closing canvases on middle click
rootpy.context (NEW!)
Add preserve_{current_canvas,batch_state} and invisible_canvas context
managers
Add preserve_current_directory context manager
rootpy.plotting
Add xaxis/yaxis properties to plotting.Efficiency
Implement new fill_array function in root_numpy to fill histograms with
NumPy arrays. Histograms in rootpy now have a fill_array method
TStyle is now subclasses in rootpy as Style. Styles can be used at context
managers using the "with" statement
Add the official ATLAS style and example
Hist2Ds can be "ravel()"ed, like NumPy's ravel() method that converts a 2D
array into a 1D array by repeating the second axis along the first
Add SetColor to all Plottables to set all colors simultaneously
Improvements to the root2matplotlib module
Make style attributes properties
Add xaxis, yaxis, zaxis properties for Hist classes
Plottable now gracefully handles deprecation of properties
rootpy.logger (NEW!)
New logging module for internal and (optionally) external use
Automatically coloured status level if we're attached to a terminal
Default rootpy logging level to INFO unless os.environ['DEBUG'] is present
Redirecting ROOT's errors as python exceptions
Add a log symbol to each subpackage
Add @log.trace() decorator which can be used to log function
entry/exit/duration
Add log.showstack() to log current stack whenever a message is emitted by
log
If there is no logging handler when the first message is emitted,
automatically add one
Automatically log python stack trace if there is a segfault
rootpy.compiled (NEW!)
Adds an interface for compiling C++ code on demand with CompileMacro
Add support for inline C++ code definitions
rootpy.compiled.register_file("mycode.cxx", ["mysymbol"]) then
rootpy.compiled.mysymbol will be generated when requested.
mycode.cxx is located relative to the module where register_file is called
rootpy.compiled.register_code(".. C++ source code ..", ["mysymbol"])
.. same as above but without needing a cxx file on disk
rootpy.memory (NEW!)
Add log.showdeletion() to show TObject cleanup
keepalive: function to ensure objects are kept alive exactly as long as
needed
rootpy.util.hook (NEW!)
Add ability to hook ROOT methods and append properties/methods to existing
classes
rootpy.util.cpp (NEW!)
New module for parsing C++ syntax.
rootpy.stl (NEW!)
Compiling arbitrary templated types.
rootpy.tree
Make root_numpy an optional dependency and remove copy from rootpy
Reading branches on demand: Only call GetEntry on branches that are
accessed
Add support for branches of array types
Improvements to the documentation
The categories module is rewritten and now properly parses the category
syntax (unit tests are included)
Improvements to Tree.Draw
Dictionaries for branches of STL types are now compiled automatically
Reverse order of axes expressions in Tree.Draw to match hist argument
order so X:Y:Z maps onto filling along X:Y:Z instead of Z:Y:X