Package: GaudiPython Package manager : Marco Clemencic ============================= GaudiPython v11r0 ============================== ! 2011-01-19 - Markus Frank - Fixes for bug #77109. Remove calls to DataObject::serialize. (patch #4613) ! 2011-01-17 - Brett Viren, Marco Clemencic - Fixed bug #75996: Support for CLHEP 2.0 Added a "using namespace CLHEP". ! 2010-12-16 - Sebastien Binet - Patch #4074: migrate GaudiPython.Parallel to multiprocessing Modified GaudiPython.Parallel to use 'multiprocessing' instead of 'processing'. ! 2010-12-01 - Charles Leggett - Added a reference to the Gaudi C++ namespace in AppMgr, so that it is still available during "atexit". (included in the attachment of bug #75834) ============================= GaudiPython v10r11 ============================= ! 2010-08-24 - Marco Clemencic - Fixed a compilation problem on mac106. ! 2010-07-29 - Marco Clemencic - Fixed a compilation warning with Python 2.6.5 and gcc 4.3. ============================= GaudiPython v10r10 ============================= ! 2010-06-21 - Vanya Belyaev - Patch #4207: Allow creation of new C++ algorithms from GaudiPython ! 2010-06-17 - Marco Clemencic - Fixed a bug in patch #3311 (wild import of GaudiPython.HistoUtils broken). ! 2010-05-27 - Vanya Belyaev - Patch #4044: Fix for bug #66397 and task #13911 Now all python algorithms of "GaudiAlgo"-type are protected from deletion in python by copy them into local storage of application manager... As a result, one resurrect the possibility for very flexible manipulations with GaudiPython algorithms. ! 2010-05-20 - Vanya Belyaev - Patch #3677: Iteration over map-like containers in python Proper pythonization of the class Gaudi::Utils::MapBase. ! 2010-05-11 - Marco Clemencic - Fixed bug #64571: Python 2.6 warnings Removed extra arguments in the call to "object.__new__". ! 2010-04-26 - Marco Clemencic - Re-introduce the usage of the exit handler to finalize the application when exiting from Python. A special hack has been introduced to ensure that the ROOT exit handler is called after the Gaudi one. ============================= GaudiPython v10r9 ============================== ! 2010-04-20 - Marco Clemencic - Removed ICC warnings and remarks. ! 2010-04-16 - Vanya Belyaev - Patch #3989: Tiny (but very important) fix for Gaudi::RangeBase_ Added dictionary for Gaudi::RangeBase_. ============================= GaudiPython v10r8 ============================== ! 2010-01-29 - Marco Clemencic - Fixed icc remark #1599: declaration hides variable - Fixed icc warning #191: type qualifier is meaningless on cast type ! 2010-01-28 - Marco Clemencic - Fixed icc remark #424: extra ";" ignored - Fixed icc remark #522: function "X" redeclared "inline" after being called - Fixed icc remark #177: X declared but never referenced ============================= GaudiPython v10r7 ============================== ! 2010-01-14 - Juan Palacios - Patch #3652: Bug fixes for GaudiPython HistoUtils.py and TupleUtils.py - Fix order of services initialization and release. ! 2010-01-11 - Vanya Belyaev - Patch #3588: Fix a typo (&logic) in GaudiPython.GaudiAlgs module for "Histo()" method - python/GaudiPython/GaudiAlgs.py fix the typo (and invalid logic) for "Histos()" method ! 2009-12-15 - Charles Leggett - Fixed bug #60502: typo in GaudiPython/Bindings.py ============================= GaudiPython v10r6 ============================== ! 2009-10-26 - Marco Clemencic - Removed some dictionaries of basic types that conflict with the CINT ones. ================ GaudiPython v10r5 ==================================== ! 2009-10-15 - Marco Clemencic - Fixed a compilation (visibility) problem on gcc43 with GAUDI_V21 tag enabled introduced by patch #3328. ! 2009-10-13 - Marco Clemencic - Fixed a compilation problem on gcc34 platforms caused by patch #3328. ! 2009-10-12 - Marco Clemencic - Normalization of white-spaces in Python files. (using http://svn.python.org/projects/python/tags/r254/Tools/scripts/reindent.py) ! 2009-10-12 - Vanya Belyaev - Patch #3328: iDataSvc.findObject - GauidPython::Helper 1. add method findobject (wrapper for IDataProviderSvc::findObject) to get object from Transient store without trying to load or use on-demand actions 2. add method getobject with allows total control over access object in Transient Store : retrieve versus find, and allows temporarily disable on-demand actions. Thus one can allow loading the object from tape, but switch off on-demand actions - GaudiPyton/Bindings.py 1. iDataSvc : add methods findObject and getObject 2. PropertyEntry : for properties with missing dictionaries (essentially, missing "value" attribute) use the "toString"-result as self._value. - Patch #2978: GaudiKernel/StringKey.h Added dictionary and support in Pythonizations.py and Bindings.py ! 2009-10-09 - Eoin Smith - Patch #3297: Support for GaudiPython Parallel in gaudirun.py Added scatter-gather parallel model to python/GaudiPython/Parallel.py Consists of 1reader-Nworkers-1writer, for event-parallel execution using Python processing package, forking and unix queues/pipes. Execute gaudirun.py with flag --parallel=N (N>=1) Two new methods in python/GaudiPython/Bindings.py iDataSvc().getList() returns a list of all paths present on a local file. For example, all local TES paths for one event. Links to external files are ignored (by checking the address() property) iDataSvc().getHistoNames() returns a list of all paths in a Transient Store without checking File ID Modified src/Lib/TESSerializer.cpp : method dumpBuffer now takes a TBufferFile pointer as an argument. Previously, dumpBuffer was creating its own new TBufferFiles for each call, which led to an error where new calls reset the buffer of previous calls. loadBuffer also modified to use data directly from TBufferFile to rebuild Transient Event Store (instead of intermediate buffer) Modified GaudiPython/TESSerializer.h to reflect these changes. ! 2009-10-09 - Marco Clemencic - Disabled the dictionary for GaudiAlg::HistoBinEdges (a typedef to vector) because it triggers the presence of vector in the rootmap file, which produces a warning in ROOT > 5.24.00a. ! 2009-10-08 - Vanya Belyaev - Patch #3311: Add ASCII dump for 1D-profile histograms Extension of patch #3261 to 1D-profile histograms - Patch #3223: Add some more "Extended" property types to Gaudi Fix to use the new properties. ! 2009-10-07 - Vanya Belyaev - Patch #3261: Utility for ASCII dump of 1D-histograms Added the bindings for function Gaudi::Utils::Histo::histoDump. ! 2009-10-02 - Vanya Belyaev - Patch #3157: Remove redundant duplicated maps from GaudiHistos/GaudiTuples Adapted HistoDecorator to the changes in GaudiHistos. ! 2009-10-02 - Marco Clemencic - Fixed bug #56358: Algorithms crashing in finalize are finalized a second time - Added a protection to avoid that AppMgr.exit() can be called twice. - Removed the "atexit" handler and replaced it with a specialized destructor for AppMgr. Note that it may not be called in case of circular dependencies between Python objects, in which case AppMgr.exit() have to be called explicitely. ================ GaudiPython v10r4 ==================================== ! 2009-07-30 - Marco Clemencic - Fixed some doxygen warnings. ! 2009-07-23 - Pere Mato - Patch #3152: Adapting GaudiPython to new null pointer semantic of ROOT 5.22.00c The new patched version of ROOT 5.22.00c returns 'typed null pointers' instead of None. Form the point of view of python this is different than None and therefore tries to call _repr_ when ever the object is evaluated interactively. For this reason we need to protect the generic implementation of __repr__ for DataObject and ContainedObject. At the same time tried to load the necessary ostream and stringstream from the beginning avoiding some spurious problems (fixes bug #28426). ! 2009-07-22 - Vanya Belyaev - Fixed bug #53514: The local symbol "HID" is not defined. ! 2009-07-20 - Marco Clemencic - Added '-no_static' to the declaration of the libraries (implemented since CMT v1r20p20081118). ! 2009-07-17 - Juan Palacios - Patch #3091: Class for easy saving of GaudiPython histograms Add HistoFile, a class for easy writing of ROOT and AIDA histograms to a file. ! 2009-07-16 - Vanya Belyaev - Patch #3134: - Some polishing of GaudiPython.GaudiAlgs module and related modules - More handles for interactive algorithm inspection (GaudiPython) Detailed description in GaudiAlg/doc/patch_3134.html ================ GaudiPython v10r3 ==================================== ! 2009-07-03 - Marco Clemencic - Removed explicit manipulation of the PYTHONPATH (obsolete). ================ GaudiPython v10r2 ==================================== ! 2009-06-29 - Marco Clemencic - Removed the special compile time flag for the dictionary (problem fixed in ROOT 5.22.00c) ! 2009-06-26 - Marco Clemencic - Fixed bug #51026: Typo in GaudiPython/HistoUtils ! 2009-06-22 - Marco Clemencic - Added a compile time flag for the dictionary to hide warnings. ! 2009-06-15 - Hubert Degaudenzi - use the new LCG tag convention. ! 2009-06-10 - Marco Clemencic - Removed _dll.cpp and _load.cpp files (not needed anymore). ================ GaudiPython v10r1 ==================================== ! 2009-05-06 - Charles Leggett - Patch #2977: catch exception in GaudiPython Bindings.py Added a try-catch block around the call to queryInterface in InterfaceCast.__call__ to print a meaningful error message. ================ GaudiPython v10r0 ==================================== ! 2009-04-08 - Pere Mato - Patch #2958: New runSelectedEvents() method in GaudiPython.AppMgr Added new method runSelectedEvents(self, pfn, events) on AppMgr class This method allows to execute the event loop on a specific event(s) for a given input (POOL) file (physical file name). It requires new version of GaudiUtils including the dictionary for IFileCatalog interface ! 2009-04-07 - Marco Clemencic - Moved back the namespace MSG to the global namespace. ! 2009-04-06 - Marco Clemencic - Renamed back the namespace Msg to MSG and moved it into the namespace Gaudi. ! 2009-04-06 - Marco Clemencic, Vanya Belyaev - Patch #2931: Added few classes/function to GaudiPython dictionaries for interactive histogram manipulation. ! 2009-03-13 - Marco Clemencic - Task #9061: Introduction of component managers - Adapted to use the changes in the ISvcLocator, ISvcManager and IAlgManager interfaces. ! 2009-02-19 - Marco Clemencic - Patch #2790: Rename the namespace MSG to Msg ! 2009-01-30 - Marco Clemencic - Replaced all the occurrences of endreq with endmsg. ! 2009-01-29 - Marco Clemencic - Symbol visibility - Decorated all the classes and functions that needs to be exported (see GaudiKernel release.notes). - Added a hack to force the export of the symbols of AIDA interfaces to allow the dynamic_cast (see GaudiSvc release.notes). ! 2009-01-22 - Marco Clemencic - Adapted to the new IInterface functionalities (see GaudiKernel release.notes) - Replaced the usage of TimePoint with Gaudi::Time. ================ GaudiPython v9r4 ==================================== ! 2008-12-16 - Marco Clemencic - Fixed bug #45392: gaudrun.py returns status code 0 even if the application manager fails Made GaudiPython.AppMgr correctly return the status after calls to run, exit, etc. ================ GaudiPython v9r3 ==================================== ! 2008-11-13 - Pere Mato - Fixed the dependency for the serialization functions. ! 2008-10-31 - Vanya Belyaev - Fixed a typo in Bindings.iDataSvc (it was "self.dict" instead of "self.__dict__"). ! 2008-10-30 - Marco Clemencic - Modified AppMgr to ensure that GaudiKernel.Configurable.applyConfigurableUsers() is called before configuring the application (needed for GaudiPython scripts). ! 2008-10-29 - Charles Leggett - Fixed bug #38442. Support for alternative ApplicationMgr in GaudiPython ! 2008-10-27 - Marco Clemencic - Fixed warnings reported by gcc 4.3: - type qualifiers ignored on function return type - deprecated conversion from string constant to `char*' - declaration ‘class AIDA::...’ does not declare anything ! 2008-10-16 - Pere Mato - Added support for serialization/deserialization of TES ! 2008-10-16 - Marco Clemencic - Excluded a few problematic mothods from the dictionaries (generated only with ROOT >= 5.21 and gccxml >= 0.9.0). - Minor changes in dict/kernel.h to avoid errors with gccxml 0.9.0. ! 2008-10-09 - Vanya Belyaev - Patch #2058. Extensions for AIDA::TProfile1D * GaudiPython/HistoDecorator.h * src/Lib/HistoDecorator.cpp add the default parameters to 1D-profile "decorators". ! 2008-10-01 - Vanya Belyaev - Patch #1938: Draw the native AIDA histograms through their internal ROOT representation "Draw" and "plot" member functions are added to the AIDA histogram interfaces at import time. They are implemented forwarding the call to the internal ROOT instances. ! 2008-09-22 - Marco Clemencic - Removed a couple of warnings in PyROOTPickle.cpp when using ROOT >= 5.19 - Fixed a typo in selection_kernel.xml. ================ GaudiPython v9r2 ==================================== ! 2008-07-17 - Marco Clemencic - Fixed a mistake in the spelling of a function (thanks to Vanya for reporting it). - Added sys* methods to GaudiPython.Bindings.iAlgorithm. - Added dictionary for IGenericTool. ! 2008-07-15 - Marco Clemencic - Fixed bug #38885: no execute method for algorithms in GaudiPython Added the method iAlgorithm.execute, which disappeared by mistake. - Fixed bug #38882: AppMgr.addAlgorithm does not work correctly after initialization Made addAlgorithm and setAlgorithms call sysInitialize and sysStart instead of initialize and start. - Added start and stop methods to Python algorithms. ! 2008-07-11 - Charles Leggett - requirements: tweak test_GPyTest_rootmap macro to work with GAUDI_ATLAS tag ! 2008-06-25 - Marco Clemencic - Fixed GaudiPython/Bindings.py to work with the HEAD version of ROOT too. ================ GaudiPython v9r1 ==================================== ! 2008-06-25 - Marco Clemencic - Fixed bug #38194: gaudirun.py expands too many environment variables Expand the environment variables in the strings before passing them to the C++ services (ApplicationMgr, MessageSvc and JobOptionsSvc). ================ GaudiPython v9r0 ==================================== ! 2008-06-02 - Pere Mato - Patch #1866. Enable pickle support in GaudiPython. Added support for pickling objects from Wim Lavrijsen. Code already added to ROOT SVN trunk but not used by this version of Gaudi. ! 2008-06-02 - Marco Clemencic - Task #5809. Extension to Gaudi Application state machine. - Adapted GaudiPython.Bindings according to the changes in the state machine. ! 2008-04-24 - Stefan Roiser - Fixed compilation problem on MacOS Leopard. ================ GaudiPython v8r19 ==================================== ! 2008-02-27 - Marco Clemencic - Hack to avoid a conflict in the way Configurables are used in Athena and Gaudi. In GaudiPython they are used in the AppMgr constructor, while in Athena they are used in a different moment (and not even all of them are needed). The conflict is resolved by using a function to return the needed configurables, implemented to return the keys of allConfigurables for Gaudi and and empty list for Athena. ! 2008-01-29 - Marco Clemencic - Fixed Bug #32854. (MessageSvc options ignored in Python) Modified the constructor of GaudiPython.AppMgr to set explicitly the properties of MessageSvc just after the ApplicationMgr configuration. (It does not work for MessageSvc.loggedStreams because the update handler is missing) - Lock the configurables setting Configurable.__configurationLocked (if it exists) after the configuration of AppMgr, to avoid that users try to change the configuration when it is too late. ================ GaudiPython v8r18 ==================================== ! 2008-01-18 - Marco Clemencic - Fixed a problem with python options: the ApplicationMgr output level was not set. ! 2008-01-17 - Pere Mato - Fixed macro for test_GPyTestDict needed after change in the reflex test dictionary pattern ! 2008-01-16 - Wim Lavrijsen - Fixed a bug in Pythonization._loadDict. Missing "import sys". ! 2008-01-15 - Wim Lavrijsen - AthenaCommon does not have Configurable.PropertyReference and this must be considered in GaudiPython.Bindings. ! 2008-01-11 - Marco Clemencic - Implemented correct handling of late-bound options. ! 2007-12-18 - Marco Clemencic - Fixed a compilation bug with Python 2.5 (backward compatible). ! 2007-11-30 - Marco Clemencic - Fix for bug #31677. Move GaudiHandles.py from GaudiPython to GaudiKernel. Added a fake module for backward compatibility. ! 2007-11-30 - Pere Mato - Fix for bug #31819: Reduce GaudiPython dictionaries to strict minimum. Removed common STL classes (9 in total) from the rootmap file using the attribute rootmap="false" in the selection file. ! 2007-11-28 - Paolo Calafiura & Sebastien Binet - patch #1550. Fix to compile with Python 2.5 (backward compatible). ================ GaudiPython v8r17 ==================================== ! 2007-11-13 - Marco Clemencic - Remove the dependency of GaudiPython/__init__.py from Gaudi.Configuration. - Use GaudiKernel.Proxy to get the correct version of Configurable. ! 2007-10-29 - Pere Mato - Changed the structure of the package. decribed at: https://twiki.cern.ch/twiki/bin/viewfile/LHCb/GaudiPython?rev=1;filename=GaudiPython_20071017.pdf ! 2007-10-24 - Marco Clemencic - Fixed a problem in the generation of rootmap files for GaudiPython test dictionaries (target "tests"). =================== v8r16 ================================== ! 2007-10-04 - Wim Lavrijsen - patch #1404. - Adding a couple of functions to GaudiHandles and GaudiHandleArrays to support pickling. ! 2007-09-27 - Sebastien Binet - patch #1158. (slightly modified by Marco Clemencic) - Minor changes to GaudiHandles.py to improve memory footprint ! 2007-08-07 - Vanya Belyaev - patch 1265. - Add new class GaudiPython::TupleToolDecorator for "decorations" of ITupleTool interface. - Change the default CLID for event tag collections from RowWiseTuple to ColumnWiseTuple. This change has been done in C++ long time ago, but have not been propagated to python. - Improve doxygen comments. - Add dictionaries for ITupleTool and IHistoTool. - New module TupleUtils.py: allow manipulation of tuples from outside algorithms or tools. - patch 1263. - Allow "smart and friendly" manipulation of AIDA::IProfile[1D,2D] objects from Python. - Added few dictionaries and few new helpers. - Improvements in iProperty: raise AttributeError in __getattr__ and __setattr__ if the property does not exist (instead of the internal C++ exception). - Improved the documentation strings of few functions. - Improvements to GaudiAlgo, HistoAlgo and TupleAlgo as for iProperty. - Added module HistoUtils containing "script-friendly" functions to manipulate histograms. ! 2007-07-16 - Hubert Degaudenzi - remove the explicit Dlls options from gaudimodule.py (not needed any more) =================== v8r15 ================================== ! 2007-05-10 - Ivan Belyaev - Patch #1126. dict/selection_kernel.xml update the exclusion list and remove unnesessaryclasses, picked up by internal typedefs, in particular: "std::unary_function" "std::unary_function" "std::unary_function" ! 2007-04-27 - Mattias Ellert - patch #24974. fixed test building. ! 2007-04-05 - Martin Woudstra - Patch #1103. The attached 2 patches (one for GaudiPython and one for GaudiKernel) contain the changes needed to support ToolHandleArray's (a 'vector' of ToolHandles). This is a new feature, and is already in use in ATLAS. In addition to the ToolHandleArray and its associated base classes, there is the GaudiHandleArrayProperty, and an update to genconf to support it ! 2007-04-04 - Pere Mato - added setOwnership() calls in addAlg() and removeAlg() to avoid segfault at the end of the execution due to double deletion of algorithms ! 2007-03-29 - Vanya BELYAEV Patch #1106. possible solution for Savannah bug #25109 and patch #1024 (wrongly closed) - dict/selection_kernel.xml add the dictionary for GaudiHandleProperty class - python/gaudimodule.xml a) PropertyEntry 1) reimplement constructor in a way to set the data member _value to be valid python type for LHCbproperties and to keep the previousl behaviour for ATLAS GaudiHandleProperty 2) add local data mamber PropertyEntry._property and function PropertyEntry.property() to access to the original property. (Useful to perform the second try, if the failure occurs in constructor) b) minor modification of iProperty.__getattr__ to avoid the sad printout of numerous warning messages: "Warning in : no dictionary for class vector > is available ".. =================== v8r14 ================================== ! 2007-02-15 - Marco Clemencic Patch #1032: - Extended the python interface of IUpdateManagerSvc using the helper class IUpdateManagerSvc.PythonHelper ! 2007-02-13 - Pere Mato - cmt/requirements: moved apply_patter linker_library to the public section to allow packages to linker with GaudiPythonLib linker library. Request from Vanya. ! 2007-01-26 - Vanya BELYAEV Patch #989: - GaudiPython/TupleDecorator.h, src/Lib/TupleDecorator.cpp use new typedefs from GaudiKernel instead of local types - dict/kernel.h, dict/selection_kernel.h add the new class Gaudi::Aida2ROOT - python/GaudiAlgs.py add the default None argument for method "histoSvc" to be coherent with documentation and "evtSvc"/"detSvc" methods # get histogram data service iself svc = self.histoSvc() # get the data histo = self.histoSvc('/stat/Calo/1') - python/gaudimodule.py add 2 methods for HistogramService: # return the native ROOT representation of the # underlying histogram hsvc.getAsROOT('/stat/Calo/1') # return the histogram (the same as hsvc['/stat/Calo/1'] hsvc.getAsAIDA('/stat/Calo/1') ! 2007-01-27 - Pere Mato - Applied patch #987, new GaudiPython module... ! 2007-01-26 - Pere Mato - Applied patch #988: new class PropertyEntry in gaudimodule =================== v8r13 ================================== ! 2006-12-18 - Pere Maro - Added default functions for endRun() and beginRun() in gaudimodule.py and GaudiAlg.py ! 2006-11-26 - Vanya BELYAEV - patch #923 - GaudiPython/TupleDecorator.h src/Lib/TupleDecorator.cpp add few method for easy filing of N-tupel with few basic objects, like 3D/4D vectors, points, SVector and SMatrix - python/GaudiAlgs.py improve the both the on-line (Python) and off-line (Doxygen) documentation strings =================== v8r12 ================================== ! 2006-11-09 - Pere Mato - python/gaudimodule.py Added __del__ to PyAlgorithm to remove it from the list of known algorithms of Gaudi. This change allows to reload modules containing new versions of algorithms. Problem reported by Ulrich Kerzel ! 2006-11-08 - Vanya BELYAEV ibelyaev@physics.syr.edu - python/gaudimodule.py fix a major problem with AppMgr::config method: - the lists of DLLs&ExtSvc must be APPENDED (and not assigned) In addition some decoration: 1) add new class iJobOptSvc for easy handling of properties (import from Bender) 2) add new method ApMgr::optSvc - accessor to iJobOptSvc =================== v8r11 ================================== ! 2006-11-03 - Pere Mato - Corrected problem with properties having as value a Python variable name. The error was that eval() was evaluating the value of variables defined locally or globaly. Problem detected by Thomas with variable ROOT ! 2006-11-02 - Pere Mato - Adapted config() to deal with new JobOptions that are always strings. Detected by Thomas when running Panoramix from Pyhton ! 2006-10-24 - Pere Mato - Add default initialize() method in PyAlgorithm. This fixes bug #20957, GaudiPython segfaults if an Python... =================== v8r10 ================================== ! 2006-10-12 - Vanya Belyaev - Patch #878. python/GaudiAlg.py: restructurize some internal function to be available for external usage (e.g. from Bender) ! 2006-10-06 - Pere Mato - make visible some of the functions available in ROOT.py from gaudimodule =================== v8r9 =================================== ! 2006-09-13 - Charles Leggett & Hubert Degaudenzi -fixed StatusCode Check. =================== v8r8 =================================== ! 2006-09-01 - Ivan Belyaev - Add protector accessor to the GaudiPyhton::PyAlg in order to be able to inherit from the class. =================== v8r7 =================================== ! 2006-06-06 - Ivan Belyaev & Alexander Mazurov - inserted modification for the new property parser/compiler. =================== v8r6 =================================== ! 2006-05-24 - Pere Mato - Added changes from Radu Stoica: - More protections in iDataService - Introduction of CallbackStreamBuf to be implemented from Python to catch stream output. =================== v8r5 =================================== ! 2006-05-04 - Hubert Degaudenzi - Clean up legacy lines of codes. =================== v8r4 =================================== ! 2006-03-28 - Hubert Degaudenzi - commented out the generation of the dictionary for vector which is already present in ROOT ! 2006-03-17 - Pere Mato - Changed TootSvc.create() to input requested interface - Dictionaries do not need to be loaded. Done with ROOT autoload =================== v8r3 =================================== ! 2006-01-26 - Pere Mato - moved classes in dictionary to GaudiKernel dictionary - gaudiconf.py: introduced the use of __new__ to avoid duplication of configurables - gaudimodule.py: added iteration catabilities to ObjectContainedBase (all KeyedContainers) - tests: updated to use KeyedContained instead of ObjectVector ! 2006-01-23 - Hubert Degaudenzi - added IUpdateManagerSvc in the dictionary generation. ! 2006-01-23 - Hubert Degaudenzi - inserted workaround to match the correct naming of dictionaries on Linux ! 2006-01-19 - Pere Mato - adapted to use genreflex (Reflex from ROOT) ! 2006-01-10 - Hubert Degaudenzi - use of the DECLARE_XXX_FACTORY macros. replacement of the corresponding code. =================== v8r2 =================================== ! 2006-01-06 - Pere Mato - Added GaudiPython in the PATH. Needed to load the initial dictionary ! 2005-12-01 - Hubert Degaudenzi - Commented out the AIDATupleSvc. ! 2005-12-01 - Pere Mato - Changed requirements to be able to put temporary libraries ahead in the LD_LIBRARY_PATH ! 2005-11-25 - Pere Mato - Added PyCintex.py as a temporary basis - Changed the order when loading the dictionaries - Minor changes to make python GaudiExamples to work =================== v8r1 =================================== ! 2005-11-16 - Pere Mato - Removed GaudiPython.Interface classes from the generated dictionary. They are not needed with PyROOT implementation (smalled dictionaries) =================== v8r0 =================================== ! 2005-10-27 - Pere Mato - Adapted to generate Reflex dictionaries and use PyROOT instead of PyLCGDict - Improved unit test test_basics.py - Added support for long types (long long, long double) as properties =================== v7r0 =================================== ! 2005-08-17 - Vanya BELYAEV - modifications for updated GaudiAlg to incorporate very attractive feature: "universal" (numeric or alphanumeric) histogram/ntuple identifier, introduced by Chris into GaudiAlg Now major methods of Python's HistoAlgo and Tuple Algo from now could accept both numerical identifier, string identifier or "universal identifier: e.g. for N-Tuples : t1 = self.nTuple( 1 , 'My first NTuple' ) t1 = self.nTuple( 'BLAH' , 'My second NTuple' ) t1 = self.nTuple( TID ( 16 ) , 'My third NTuple # 16' ) t1 = self.nTuple( TID ( 'XXX' ) , 'My fourth NTuple ' ) t1 = self.nTuple( 'SUBDIR/AA' , 'My fifth NTuple in subdirectory') similar for (1D,2D,3D)-histograms: self.plot1D( mass , ' This is 1st histogram ' , 1 , 10 ) self.plot1D( mass , 2 , ' This is 2nd histogram ' , 1 , 10 ) self.plot1D( mass , 'MASS' , ' This is 3rd histogram ' , 1 , 10 ) self.plot1D( mass , 'subdir/MASS' , ' This is 4th histogram ' , 1 , 10 ) self.plot1D( mass , HID( 44) , ' This is 5th histogram ' , 1 , 10 ) self.plot1D( mass , HID('M') , ' This is 6th histogram ' , 1 , 10 ) for profiles, one need to use HID explicitly: self.profile1D ( x , y , ' title1 ' , 0 , 10 ) self.profile1D ( x , y , HID(25) , ' title2 ' , 0 , 10 ) self.profile1D ( x , y , HID('x%y') , ' title3 ' , 0 , 10 ) self.profile1D ( x , y , HID('dir/x%y') , ' title4 ' , 0 , 10 ) ! 2005-08-07 - Vanya BELYAEV - few major (*BACKWARD COMPATIBLE*) modifications to simplify the interactive analysis. Namely the useful base classes from GaudiAlg package are imported into the Python. Also major reshuffling of existing codes is performed to allow the reuse of code outside the GaudiPython package (e.g. in the context of Bender or Panoramix projects) without multiple explicit code duplicated (as it is now... :-((( ) From now package builds also linker library GaudiPythonLib The dictionary is renamed to GaudiPythonDict (to avoid the masking of GaudiKernelDict built by GaudiKernel package) As a result the package now builds 3 library: 1) component library GaudiPython 2) linker library GaudiPythonLib 3) dictionary library GaudiPythonDict New module GaudiAlgs.py is added into $GAUDIPYTHONROOT/python directory. This module contains essentially the base classes GaudiAlgo, HistoAlgo and TupleAlgo and the extensive documentations GaudiPython/kernel.h and GaudiPython/selection_kernel.xml now contains *ALL* abstract interfaces from GaudiKernel and GaudiAlgs packages $GAUDIPYTHON/python/gaudimodule.py file gets "atexit" function, making the exit statement optional (it is VERY convenient for scripts which is supposed to work both interactively and "as batch") New files: ========== $GAUDIPYTHONROOT/python/GaudiAlgs.py $GAUDIPYTHONROOT/GaudiPython/GaudiPython.h $GAUDIPYTHONROOT/GaudiPython/HistoDecorator.h $GAUDIPYTHONROOT/GaudiPython/Interface.h $GAUDIPYTHONROOT/GaudiPython/Printer.h $GAUDIPYTHONROOT/GaudiPython/TupleDecorator.h $GAUDIPYTHONROOT/GaudiPython/Vector.h $GAUDIPYTHONROOT/src/Lib/Algorithm.cpp $GAUIDIPYTHOROOT/src/Lib/AlgDecorators.cpp $GAUDIPYTHONROOT/src/Lib/HistoDecorator.cpp $GAUDIPYTHONROOT/src/Lib/TupleDecorator.cpp ! 20050804 - Pere Mato - gaudiconf.py: added new module to support configuration using Python - Gaudi.py: main top level gaudi script (still quite primitive) - genconf.py: the script to generate the "shadow-classes" from the C++ libraries - gaudimodule.py: added optional argument in AppMgr.__init__ to set ApplicationMgr own properties "before" configuration Added conversion to string of property values of non Python primitives Modified getComponentProperties() to handle the GaudiSvc case =================== v6r13 =================================== - gaudimodule.py: removed 'GaudiDb' from the list of DLLs - getComponentProperties(): changed the order of initialization of AppMgr. =================== v6r12 =================================== - GaudiPython/Algorithm.h: changed the inheritance of PyAlgorithm to inherit directly from Algorithm. This should solve [bug #7713] overview: Reassigned item: Problems with Gaudi\\\\\\\\\\\\\\\'s PyAlgorithm =================== v6r11 =================================== - getClass(): added new method to get a C++ class and eventually load the needed dictionary - AppMgr.ntuplesvc(): added a line to ntuplesvc into the list of ExtSvc if not already there =================== v6r10 =================================== - AppMgr.config(): make sure that the first property set is "Dlls" (problem reported by Vanya) - iDataSvc: added 'name' in __init__ for the case that the real object is not yet instantiated - Tool support: Appmgr.toolsvc() and improved Appmgr.tool() It is now possible to do access existing tools, or create new instances. gaudi.toolsvc().create('MyTool') gaudi.tool('Alg.Tool.SubTool').MyProperty = value - Added extra Helper functions toArray() to convert pointers (int*, float*,...) to sequenceable Python objects (needed for LHCb DAQBuffer) - Added also toXXXArray() functions for unknown pointer types (void*) like "raw_int", "l1_int" For example in the case of RawBuffer: rb = evt['DAQ/RawBuffer'] raw = gaudimodule.toIntArray( rb.buffer(), rb.currentSize() ) for i in raw : print i =================== v6r9 =================================== - Implementation of AppMgr.config() following the ideas from Vanya - Documentation string for most of the classes and methods - Implementation of AppMgr.tool() - Implementation of AppMgr.setAlgorithms() - Implementation of iNTupleSvc class and AppMgr.ntuplesvc() - Implementation of iNtupleSvc.defineOutput( {}, type='ROOT' ) Not Done yet.... - Check that EvtSel.open() does not work without "stream=..." ! 20041004 - Pere Mato - gaudimodule.py: changed AppMgr.__init__() to avoid changing OutputLevel back to default (3) =================== v6r8 =================================== ! 20040910 - Pere Mato - gaudimodule.py: reworked AppMgr.run() to avoid calling reinitialize(). This is currently a problem because resets the event stream to the beginning each time. Problem reported by Vanya. ! 20040908 - Wim Lavrijsen - gaudimodule.py: added protection when algorithm/service does not exists and no properties are yet defined. =================== v6r7 =================================== ! 20040726 - Pere Mato - Moved method AppMgr.loaddict() as module function - Added iHistogramSvc.__getitem__() to return any type of histogram (suggested by Vanya) =================== v6r6 =================================== ! 20040706 - Pere Mato - requirements: adapted to use new LCGCMT interface packages - renamed type IID to InterfaceID ! 20040622 - Wim Lavrijsen - Small correction on String properties to add " " to take into account blanks =================== v6r5 =================================== ! 20040610 - Wim Lavrijsen - Added more instances of SimpleProperty to cover all cases ! 20040524 - Wim Lavrijsen - Small corrections in in iProperty =================== v6r4 =================================== ! 20040315 - Pere Mato - Change the initialization of AppMgr. Initialize() is not called at AppMgr.__init__() and it done later at the AppMgr.run() method - Alias for common AppMgr methods evtSvc = evtsvc histSvc = histsvc evtSel = evtsel detSvc = detsvc partSvc = partsvc =================== v6r3 =================================== ! 20040227 - Pere Mato - Added a the function getComponentProperties(module) to obtain the properties of all component classes available in a given component library (module) =================== v6r2 =================================== ! 20040216 - Pere Mato - Added a number of new functions to AppMgr class to simplify the end-user interaction - The constructor AppMgr() configures and initializes the Gaudi Application manager - Added new class EventSelector to manage the opening of input files ! 20040202 - Pere Mato - Added histogram service functionality. retrieve1D(), 2D(), 3D() - Updated test_basics to test this functionality =================== v6r1 =================================== ! 20040126 - Pere Mato - A number of small corrections mainly coming from feedback of Vanya =================== v6r0 =================================== ! 20040116 - Pere Mato - New dictionaries for IRegister, IDataManagerSvc - DataSvc: Added new methods: clearStore, leaves, dump, setRoot - Extended the test test_basics.py ! 200401208 - Pere Mato - This is a complete new version of GaudiPython using LCG dictionaries to provide python bindings and it does not use boost.python. - The high-level interface has been kept as close as possible to the old version - The file gaudimodule.py is the main file to document the existing functionality =================== v5r1 =================================== ! 20031127 - Pere Mato - Changes due to AIDA namespace (3.0) - Replaced macro WIN32 by _WIN32 - Minor changes in requirement file for vc++ 7.1 ! 20031029 - Paolo Calafiura (for wlav) -bug fixes in HistosFunctionality.cpp and HistoSvc.cpp ! 20030805 - Pere Mato - PythonScriptinfSvc.cpp avoid using FILE* since there are problems when libraries are compiled with different versions of the Visual C++. (currently Python 2.2.3 the binaries are produced by VC6 and does not compile out-of-the box with VC7) =================== v5r0p1 =================================== ! 20030523 - Paolo Calafiura - cmt/requirements add boost_python explicitly to linkopts ! 20030520 - Paolo Calafiura - src/Test/Dictionary/Class_Dict.cpp use new OffsetOf macro =================== v5r0====================================== ! 20030408 - Pere Mato - Added new method execute(n) to AppMgr to overcome the problem that run(n) does always a reinitialize() in addition to execute events. The re-initialize is not well handled by DetDataSvc and Algorithms. ! 20030313 - Pere Mato - Correctly load the python dynamic library with GLOBAL flag to resolve symbols that may appear on other python extension modules. ! 20030130 - Wim Lavrijsen, Pere Mato - Changes introduced to convert the package Boost.Python 2.0 - Added the capability of setting/getting properties of Algorithms and Services BEFORE they are created by the ApplicationMgr. =================== v4r3====================================== ! 20020930 - Pere Mato - Added Auditor support (Wim Lavrijsen) =================== v4r2p1====================================== ! 20020910 - Flr - requirements - use v* ===================v4r2============================================== ! 20020517 - Pere Mato - PyhtonScriptingSvc.cpp: load the python dynamic library with the global flag turned on to avoid problems when importing python modules later that require resolving symbols from the python library but they do not depend explicitly from it. ! 20020515 - Paolo Calafiura - AppMgr.cpp: replaced temp d-cast with queryInterface //Wim ===================v4r1========================================== ! 20020503 - Pere Mato - Adapted to new LHCb event model (KeyedContainers in addition to ObjectVectors). - Re-structured a bit: the IntrosObj and IntrosFunc share a single function to handle conversion of single and complex types to python. - Better handling argument conversions for methods and functions ===================v4r0========================================== ! 20020321 - Pere Mato - Adapted to the new GaudiIntrospection, which adds method support ! 20020319 - Markus Frank - Added the possibility to obtain any interface implemented by a component (service) ===================v2r0========================================== ! 20011130 - Pere Mato (v2) - Added initialize() and finalize() for algorithms and services ! 20011109 - Pere Mato (v1) - First version with somehow limited functionality but useful for testing ! 20011015 - Pere Mato - New package for interfacing Python using boost/python libraries