Workaround for a problem with template specialization and ROOT 6.32

The way LoKiMC.MC decorates some MC related classes interferes with ROOT pythonizations producing the error:

  File ".../test.py", line 2, in <module>
    import ROOT
  File "/cvmfs/lhcb.cern.ch/lib/lcg/releases/ROOT/6.32.10-73580/x86_64-el9-gcc13-dbg/lib/ROOT/__init__.py", line 39, in <module>
    _register_pythonizations()
  File "/cvmfs/lhcb.cern.ch/lib/lcg/releases/ROOT/6.32.10-73580/x86_64-el9-gcc13-dbg/lib/ROOT/_pythonization/__init__.py", line 302, in _register_pythonizations
    importlib.import_module(__name__ + '.' + module_name)
  File "/cvmfs/lhcb.cern.ch/lib/lcg/releases/Python/3.11.9-2924c/x86_64-el9-gcc13-dbg/lib/python3.11/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/cvmfs/lhcb.cern.ch/lib/lcg/releases/ROOT/6.32.10-73580/x86_64-el9-gcc13-dbg/lib/ROOT/_pythonization/_drawables.py", line 61, in <module>
    @pythonization([ 'TPad', 'TButton', 'TColorWheel',
     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/cvmfs/lhcb.cern.ch/lib/lcg/releases/ROOT/6.32.10-73580/x86_64-el9-gcc13-dbg/lib/ROOT/_pythonization/__init__.py", line 99, in pythonization_impl
    _find_used_classes(ns, passes_filter, user_pythonizor, npars)
  File "/cvmfs/lhcb.cern.ch/lib/lcg/releases/ROOT/6.32.10-73580/x86_64-el9-gcc13-dbg/lib/ROOT/_pythonization/__init__.py", line 264, in _find_used_classes
    instance_name = var_name + "<" + ",".join(args) + ">"
                                     ^^^^^^^^^^^^^^
TypeError: sequence item 0: expected str instance, MCParticle_meta found

Using strings instead of type wrappers for template arguments seems to fix the problem.

/cc @cattanem

Merge request reports

Loading