Re: Python module for easy class generation

From: Axel Naumann <Axel.Naumann_at_cern.ch>
Date: Sun, 2 Jan 2011 11:56:16 +0100


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 - 11:56:25 CET

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