rootpy icon indicating copy to clipboard operation
rootpy copied to clipboard

byteplay implementation incompatible with Python 3.8 opcode changes

Open masonproffitt opened this issue 5 years ago • 0 comments

Python 3.8 introduces some CPython bytecode changes which break trying to read a TTree:

Traceback (most recent call last):
  File "/gscratch/stf/masonlp/Mu-Simulation/scripts/digitize.py", line 272, in <module>
    sys.exit(main(sys.argv))
  File "/gscratch/stf/masonlp/Mu-Simulation/scripts/digitize.py", line 256, in main
    file, tree = open_tree(filepath, name)
  File "/gscratch/stf/masonlp/Mu-Simulation/scripts/digitize.py", line 18, in open_tree
    return file, file.Get(tree_key)
  File "/gscratch/stf/masonlp/conda/envs/root/lib/python3.8/site-packages/rootpy/io/file.py", line 75, in get
    thing = f(self, _name, *args, **kwargs)
  File "/gscratch/stf/masonlp/conda/envs/root/lib/python3.8/site-packages/rootpy/io/file.py", line 347, in Get
    return asrootpy(thing, **kwargs)
  File "/gscratch/stf/masonlp/conda/envs/root/lib/python3.8/site-packages/rootpy/__init__.py", line 255, in asrootpy
    rootpy_cls = lookup(thing_cls)
  File "/gscratch/stf/masonlp/conda/envs/root/lib/python3.8/site-packages/rootpy/__init__.py", line 282, in lookup
    return lookup_by_name(cls_name)
  File "/gscratch/stf/masonlp/conda/envs/root/lib/python3.8/site-packages/rootpy/__init__.py", line 298, in lookup_by_name
    rootpy_cls = _get_class(cls_path, rootpy_cls_name)
  File "/gscratch/stf/masonlp/conda/envs/root/lib/python3.8/site-packages/rootpy/__init__.py", line 275, in _get_class
    rootpy_module = __import__(
  File "/gscratch/stf/masonlp/conda/envs/root/lib/python3.8/site-packages/ROOT.py", line 533, in _importhook
    return _orig_ihook( name, *args, **kwds )
  File "/gscratch/stf/masonlp/conda/envs/root/lib/python3.8/site-packages/rootpy/tree/__init__.py", line 19, in <module>
    from .tree import Tree, Ntuple
  File "/gscratch/stf/masonlp/conda/envs/root/lib/python3.8/site-packages/ROOT.py", line 533, in _importhook
    return _orig_ihook( name, *args, **kwds )
  File "/gscratch/stf/masonlp/conda/envs/root/lib/python3.8/site-packages/rootpy/tree/tree.py", line 21, in <module>
    from ..plotting.base import Plottable
  File "/gscratch/stf/masonlp/conda/envs/root/lib/python3.8/site-packages/ROOT.py", line 533, in _importhook
    return _orig_ihook( name, *args, **kwds )
  File "/gscratch/stf/masonlp/conda/envs/root/lib/python3.8/site-packages/rootpy/plotting/__init__.py", line 6, in <module>
    from ..utils.hook import classhook, super_overridden
  File "/gscratch/stf/masonlp/conda/envs/root/lib/python3.8/site-packages/ROOT.py", line 533, in _importhook
    return _orig_ihook( name, *args, **kwds )
  File "/gscratch/stf/masonlp/conda/envs/root/lib/python3.8/site-packages/rootpy/utils/hook.py", line 6, in <module>
    from .inject_closure import inject_closure_values
  File "/gscratch/stf/masonlp/conda/envs/root/lib/python3.8/site-packages/ROOT.py", line 533, in _importhook
    return _orig_ihook( name, *args, **kwds )
  File "/gscratch/stf/masonlp/conda/envs/root/lib/python3.8/site-packages/rootpy/utils/inject_closure.py", line 5, in <module>
    from ..extern import byteplay3 as byteplay
  File "/gscratch/stf/masonlp/conda/envs/root/lib/python3.8/site-packages/ROOT.py", line 533, in _importhook
    return _orig_ihook( name, *args, **kwds )
  File "/gscratch/stf/masonlp/conda/envs/root/lib/python3.8/site-packages/rootpy/extern/byteplay3/__init__.py", line 9, in <module>
    from .wbyteplay import *
  File "/gscratch/stf/masonlp/conda/envs/root/lib/python3.8/site-packages/ROOT.py", line 533, in _importhook
    return _orig_ihook( name, *args, **kwds )
  File "/gscratch/stf/masonlp/conda/envs/root/lib/python3.8/site-packages/rootpy/extern/byteplay3/wbyteplay.py", line 93, in <module>
    BREAK_LOOP,
NameError: name 'BREAK_LOOP' is not defined

masonproffitt avatar Dec 08 '19 13:12 masonproffitt