RooWorkspace::import in PyRoot

Hi,

I am trying to import something into a RooWorkspace in PyROOT with a rather complicated Renaming scheme. This means I need to use five of the RooCmdArgs. According to root.cern.ch/root/html534/RooWorkspace.html RooWorkspace::import there is a constructor with up to 9 RooCmdArgs, but python only seems to see constructors with up to three. Is this a bug?

Here is my code:

                getattr( w,"import") (                                                                                                                                                                    pdf,                                                                                                                                                                
                   ROOT.RooFit.RenameVariable( rrs_name_old, rrs_name_new),
                   ROOT.RooFit.RenameVariable( norm_name_old, norm_name_new),
                   ROOT.RooFit.RenameAllNodes( process_name ),
                   ROOT.RooFit.RenameAllVariablesExcept( process_name, varExcept ),
                   ROOT.RooFit.RecycleConflictNodes(),
                   #ROOT.RooFit.Silence(),
                )

and the errors:

TypeError: none of the 6 overloaded methods succeeded. Full details:
  Bool_t RooWorkspace::import(const RooAbsArg& arg, const RooCmdArg& arg1 = RooCmdArg(), const RooCmdArg& arg2 = RooCmdArg(), const RooCmdArg& arg3 = RooCmdArg()) =>
    takes at most 4 arguments (6 given)
  Bool_t RooWorkspace::import(const RooArgSet& args, const RooCmdArg& arg1 = RooCmdArg(), const RooCmdArg& arg2 = RooCmdArg(), const RooCmdArg& arg3 = RooCmdArg()) =>
    takes at most 4 arguments (6 given)
  Bool_t RooWorkspace::import(RooAbsData& data, const RooCmdArg& arg1 = RooCmdArg(), const RooCmdArg& arg2 = RooCmdArg(), const RooCmdArg& arg3 = RooCmdArg()) =>
    takes at most 4 arguments (6 given)
  Bool_t RooWorkspace::import(const char* fileSpec, const RooCmdArg& arg1 = RooCmdArg(), const RooCmdArg& arg2 = RooCmdArg(), const RooCmdArg& arg3 = RooCmdArg()) =>
    takes at most 4 arguments (6 given)
  Bool_t RooWorkspace::import(TObject& object, Bool_t replaceExisting = kFALSE) =>
    takes at most 2 arguments (6 given)
  Bool_t RooWorkspace::import(TObject& object, const char* aliasName, Bool_t replaceExisting = kFALSE) =>
    takes at most 3 arguments (6 given)

Hi,

one of them “works fine for me” …

Can you look at “import” in the interactive help? I.e.:[code]$ python

import ROOT
help(ROOT.RooWorkspace)[/code]
and see what the docstring there says?

Otherwise, specific platform and version of ROOT?

Cheers,
Wim