Re: Python module for easy class generation

From: Noel Dawe <Noel.Dawe_at_cern.ch>
Date: Sun, 2 Jan 2011 14:28:37 -0600


No problem then. I've modified my "classfactory" to keep the shared libraries in ~/.rootpy/dicts (now in my LD_LIBRARY_PATH). When I request a dictionary, it first checks for the library there (using a file containing a lookup table) and loads it, otherwise it compiles it there and adds it to the lookup table. No mess left behind, no bookkeeping required by the user, and no needless regeneration of the same dictionary by future requests.

Noel

On Sun, Jan 2, 2011 at 4:56 AM, Axel Naumann <Axel.Naumann_at_cern.ch> wrote:

> Hi,
>
> the advantage now is that users immediately see what to remove when they
> want to clean up all files, e.g. when something in their class changed
> and ROOT didn't detect the dependencies correctly. And I'm not sure what
> happens when writing to ~/ on batch / grid nodes. PWD is usually a safe
> bet.
>
> Cheers, Axel.
>
> On 1/1/11 9:06 PM, Noel Dawe wrote:
> > Why not automatically place these dictionaries somewhere less invasive?
> > Like /tmp or ~/.rootsys?
> >
> > Noel
> >
> > On Fri, Dec 31, 2010 at 2:22 AM, Axel Naumann <Axel.Naumann_at_cern.ch
> > <mailto:Axel.Naumann_at_cern.ch>> wrote:
> >
> > Hi Noel,
> >
> > that's your dictionary :) You can remove it, but then ROOT will need
> to
> > regenerate it every time it needs the dictionary.
> >
> > Cheers, Axel.
> >
> >
> > On 12/31/10 5:10 AM, Noel Dawe wrote:
> > > When using GenerateDictionary in python I end up with a lot of
> > > AutoDict_vector_vector_float___.cxx* garbage that is not cleaned
> up. I
> > > suppose this is an easy fix?
> > >
> > > Noel
> > >
> > > On Thu, Dec 23, 2010 at 10:33 PM, Philippe Canal <pcanal_at_fnal.gov
> > <mailto:pcanal_at_fnal.gov>
> > > <mailto:pcanal_at_fnal.gov <mailto:pcanal_at_fnal.gov>>> wrote:
> > >
> > > Hi Noel,
> > >
> > > In newer version of ROOT you can simply your scripts by using
> > >
> > > gInterpreter->GenerateDictionary("vector<vector<float> >",
> > "vector");
> > >
> > > which does most of the work of your make_class.
> > >
> > > Cheers,
> > > Philippe.
> > >
> > >
> > > On 12/22/10 4:29 PM, Noel Dawe wrote:
> > >
> > > For all the python fans out there I've attached a simple
> > module
> > > which may be used to generate classes in PyROOT which are
> not
> > > available by default (like vector<vector<float> > etc.)
> > >
> > > Example usage:
> > >
> > > Python 2.6.6 (r266:84292, Sep 15 2010, 16:22:56)
> > > [GCC 4.4.5] on linux2
> > > Type "help", "copyright", "credits" or "license" for more
> > > information.
> > > >>> from classfactory import *
> > > >>> make_class("vector<vector<float> >", "<vector>")
> > > True
> > > >>> ROOT.vector("vector<float>")()
> > > <ROOT.vector<vector<float> > object at 0x2b1cf10>
> > > >>> make_class("vector<TH1D>", "TH1D.h")
> > > True
> > > >>> ROOT.vector("TH1D")()
> > > <ROOT.vector<TH1D> object at 0x2b2c160>
> > > >>>
> > >
> > > Suggestions/improvements are welcome.
> > >
> > > Cheers,
> > > Noel
> > >
> > >
> >
> >
>
>
Received on Sun Jan 02 2011 - 21:29:07 CET

This archive was generated by hypermail 2.2.0 : Mon Jan 03 2011 - 15:45:46 CET