discuss-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Discuss-gnuradio] GRC: management of default global_blocks_path trigger


From: Emmanuel Blot
Subject: [Discuss-gnuradio] GRC: management of default global_blocks_path triggers silent failure
Date: Sun, 11 Aug 2019 16:48:53 +0200

When upgrading from RC2 to final, a new issue arose:

$ gnuradio-companion
Traceback (most recent call last):
File "gnuradio/3.8.0.0/libexec/bin/gnuradio-companion", line 102, in <module>
    run_main()
File "gnuradio/3.8.0.0/libexec/bin/gnuradio-companion", line 95, in run_main
    exit(main())
File "gnuradio/3.8.0.0/lib/python3.7/dist-packages/gnuradio/grc/main.py", line 83, in main
    platform.build_library()
File "gnuradio/3.8.0.0/lib/python3.7/dist-packages/gnuradio/grc/core/platform.py", line 197, in build_library
    utils.hide_bokeh_gui_options_if_not_installed(self.blocks['options'])
File "python/3.7.4/Frameworks/Python.framework/Versions/3.7/lib/python3.7/collections/__init__.py", line 916, in __getitem__ return self.__missing__(key) # support subclasses that define __missing__ File "python/3.7.4/Frameworks/Python.framework/Versions/3.7/lib/python3.7/collections/__init__.py", line 908, in __missing__
    raise KeyError(key)
KeyError: 'options'

However, deleting the ~/.gnuradio folder makes this issue disappeared.

It seems the issue comes from the global_blocks_path key from ~/.gnuradio/config.conf.

As my installation path has changed (from .../3.8.0.0-rc2/... to .../3.8.0.0/...), the global_blocks_path - which had been *automatically* stored by the previous installation of gnuradio - is kept being used and silently makes the new installation of gnuradio to fail.

I’m not sure what would be the best fix here:
* always consider the default global_blocks_path as a fallback if no valid path is found in `block_paths` property,
 * or fail with an explicit error if no valid path is found, or/and
* do not automatically define the default global_blocks_path into the user configuration file.

Either way, returning an empty list as `Config.block_paths` propagates an error into the callstack of GRC to a point it is quite hard to understand the root error cause.

Environment:

os: macOS 10.14.6
python: 3.7.3
gtk: 3.24.10 (Quartz backend)
gobject-introspection: 1.60.2
pygobject3: 3.32.2
cairo: 1.16.0
pango: 1.44.3
glib: 2.60.6

HTH,
Emmanuel.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]