Skip to content

Releases: rootpy/rootpy

0.8.0

24 Jun 01:22
Compare
Choose a tag to compare

What's new in this release:

IMPORTANT CHANGES

  • 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.7.0

22 Jun 00:40
Compare
Choose a tag to compare

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

0.6.0

22 Jun 00:42
Compare
Choose a tag to compare

First public release