Open latsygin opened 3 weeks ago
It is defined (e.g. https://github.com/search?q=repo%3Afzyzcjy%2Fgrafana_dashboard_python%20PanelOptions&type=code). Maybe share a bit more details?
Here's the traceback. Maybe you had something specific in mind?
> grafana_dashboard python-to-json \\
--python-base-dir python_to_json \
--python-base-package input_python \
--json-dir python_to_json/output_json
convert_package examine python_to_json/input_python/output.py (input_python.output)
╭────────────────────────────────────────────────────────────────────────────────────────────────────── Traceback (most recent call last) ──────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ in python_to_json:29 │
│ │
│ in convert_package:28 │
│ │
│ /Users/silatsygin/.pyenv/versions/3.10.14/lib/python3.10/importlib/__init__.py:126 in import_module │
│ │
│ 123 │ │ │ if character != '.': ╭──────────── locals ─────────────╮ │
│ 124 │ │ │ │ break │ level = 0 │ │
│ 125 │ │ │ level += 1 │ name = 'input_python.output' │ │
│ ❱ 126 │ return _bootstrap._gcd_import(name[level:], package, level) │ package = None │ │
│ 127 ╰─────────────────────────────────╯ │
│ 128 │
│ 129 _RELOADING = {} │
│ in _gcd_import:1050 │
│ ╭──────────── locals ─────────────╮ │
│ │ level = 0 │ │
│ │ name = 'input_python.output' │ │
│ │ package = None │ │
│ ╰─────────────────────────────────╯ │
│ in _find_and_load:1027 │
│ ╭──────────────── locals ─────────────────╮ │
│ │ module = <object object at 0x1020a8060> │ │
│ │ name = 'input_python.output' │ │
│ ╰─────────────────────────────────────────╯ │
│ in _find_and_load_unlocked:1006 │
│ ╭───────────────────────────────────────────────────────────────────────────────────────────────── locals ──────────────────────────────────────────────────────────────────────────────────────────────────╮ │
│ │ name = 'input_python.output' │ │
│ │ parent = 'input_python' │ │
│ │ parent_module = <module 'input_python' (<_frozen_importlib_external._NamespaceLoader object at 0x102cb0d30>)> │ │
│ │ path = _NamespacePath(['/Users/silatsygin/temp/python_to_json/input_python']) │ │
│ │ spec = ModuleSpec(name='input_python.output', loader=<_frozen_importlib_external.SourceFileLoader object at 0x102cb0910>, origin='/Users/silatsygin/temp/python_to_json/input_python/output.py') │ │
│ ╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │
│ in _load_unlocked:688 │
│ ╭────────────────────────────────────────────────────────────────────────────────────────────── locals ──────────────────────────────────────────────────────────────────────────────────────────────╮ │
│ │ module = <module 'input_python.output' from '/Users/silatsygin/temp/python_to_json/input_python/output.py'> │ │
│ │ spec = ModuleSpec(name='input_python.output', loader=<_frozen_importlib_external.SourceFileLoader object at 0x102cb0910>, origin='/Users/silatsygin/temp/python_to_json/input_python/output.py') │ │
│ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │
│ in exec_module:883 │
│ ╭────────────────────────────────────────────────────────── locals ───────────────────────────────────────────────────────────╮ │
│ │ code = <code object <module> at 0x1032d35d0, file "/Users/silatsygin/temp/python_to_json/input_python/output.py", line 1> │ │
│ │ module = <module 'input_python.output' from '/Users/silatsygin/temp/python_to_json/input_python/output.py'> │ │
│ │ self = <_frozen_importlib_external.SourceFileLoader object at 0x102cb0910> │ │
│ ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │
│ in _call_with_frames_removed:241 │
│ ╭─────────────────────────────────────────────────────────────────────────────────────────────────────── locals ────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │
│ │ args = ( │ │
│ │ │ <code object <module> at 0x1032d35d0, file "/Users/silatsygin/temp/python_to_json/input_python/output.py", line 1>, │ │
│ │ │ { │ │
│ │ │ │ '__name__': 'input_python.output', │ │
│ │ │ │ '__doc__': None, │ │
│ │ │ │ '__package__': 'input_python', │ │
│ │ │ │ '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x102cb0910>, │ │
│ │ │ │ '__spec__': ModuleSpec(name='input_python.output', loader=<_frozen_importlib_external.SourceFileLoader object at 0x102cb0910>, origin='/Users/silatsygin/temp/python_to_json/input_python/output.py'), │ │
│ │ │ │ '__file__': '/Users/silatsygin/temp/python_to_json/input_python/output.py', │ │
│ │ │ │ '__cached__': '/Users/silatsygin/temp/python_to_json/input_python/__pycache__/output.cpython-31'+5, │ │
│ │ │ │ '__builtins__': { │ │
│ │ │ │ │ '__name__': 'builtins', │ │
│ │ │ │ │ '__doc__': 'Built-in functions, exceptions, and other objects.\n\nNoteworthy: None is the `nil'+46, │ │
│ │ │ │ │ '__package__': '', │ │
│ │ │ │ │ '__loader__': <class '_frozen_importlib.BuiltinImporter'>, │ │
│ │ │ │ │ '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), │ │
│ │ │ │ │ '__build_class__': <built-in function __build_class__>, │ │
│ │ │ │ │ '__import__': <built-in function __import__>, │ │
│ │ │ │ │ 'abs': <built-in function abs>, │ │
│ │ │ │ │ 'all': <built-in function all>, │ │
│ │ │ │ │ 'any': <built-in function any>, │ │
│ │ │ │ │ ... +145 │ │
│ │ │ │ }, │ │
│ │ │ │ 'annotations': _Feature((3, 7, 0, 'beta', 1), (3, 11, 0, 'alpha', 0), 16777216), │ │
│ │ │ │ 'datetime': <class 'datetime.datetime'>, │ │
│ │ │ │ ... +77 │ │
│ │ │ } │ │
│ │ ) │ │
│ │ f = <built-in function exec> │ │
│ │ kwds = {} │ │
│ ╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │
│ │
│ /Users/silatsygin/temp/python_to_json/input_python/output.py:35 in <module> │
│ │
│ 32 │ │ │ title='Current total size of queue buffers', │
│ 33 │ │ │ datasource=Datasource(uid='${datasource}'), │
│ 34 │ │ │ gridPos=GridPos(), │
│ ❱ 35 │ │ │ options=PanelOptions( │
│ 36 │ │ │ │ legend=VizLegendOptions(displayMode=LegendDisplayMode.list, placement=Le │
│ 37 │ │ │ │ tooltip=VizTooltipOptions(mode=TooltipDisplayMode.single, sort=SortOrder │
│ 38 │ │ │ ), │
│ │
│ ╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────── locals ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │
│ │ annotations = _Feature((3, 7, 0, 'beta', 1), (3, 11, 0, 'alpha', 0), 16777216) │ │
│ │ Any = typing.Any │ │
│ │ conint = <cyfunction conint at 0x103622c20> │ │
│ │ constr = <cyfunction constr at 0x103623510> │ │
│ │ Dict = typing.Dict │ │
│ │ Field = <cyfunction Field at 0x103650930> │ │
│ │ List = typing.List │ │
│ │ Optional = typing.Optional │ │
│ │ piechartpanelcfg_types_gen = <module 'grafana_dashboard.model.piechartpanelcfg_types_gen' from │ │
│ │ '/Users/silatsygin/Documents/Dept/Work/Git/venv/lib/python3.10/site-packages/grafana_dashboard-0.1.1-py3.10.egg/grafana_dashboard/model/piechartpanelcfg_types_gen.py'> │ │
│ │ timeseriespanelcfg_types_gen = <module 'grafana_dashboard.model.timeseriespanelcfg_types_gen' from │ │
│ │ '/Users/silatsygin/Documents/Dept/Work/Git/venv/lib/python3.10/site-packages/grafana_dashboard-0.1.1-py3.10.egg/grafana_dashboard/model/timeseriespanelcfg_types_gen.py'> │ │
│ │ Union = typing.Union │ │
│ ╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │
╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
NameError: name 'PanelOptions' is not defined
Hmm I guess it is because of missing imports. Maybe check why it is not imported.
Maybe some specific version of Python is needed?
Could you please firstly check python_to_json/input_python/output.py, maybe an import of the PanelOptions is missing
He's really missing. What code should I add to the output.py file to fix this?
Just import it...
I can't convert a panel from Python to JSON. The error : "NameError: name 'PanelOptions' is not defined" occurs
What could be the matter?