pymodaq_utils 5.3.2__tar.gz → 5.3.3__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. {pymodaq_utils-5.3.2 → pymodaq_utils-5.3.3}/PKG-INFO +1 -1
  2. {pymodaq_utils-5.3.2 → pymodaq_utils-5.3.3}/src/pymodaq_utils/plugin_checks.py +13 -1
  3. {pymodaq_utils-5.3.2 → pymodaq_utils-5.3.3}/.gitignore +0 -0
  4. {pymodaq_utils-5.3.2 → pymodaq_utils-5.3.3}/LICENSE +0 -0
  5. {pymodaq_utils-5.3.2 → pymodaq_utils-5.3.3}/README.rst +0 -0
  6. {pymodaq_utils-5.3.2 → pymodaq_utils-5.3.3}/pyproject.toml +0 -0
  7. {pymodaq_utils-5.3.2 → pymodaq_utils-5.3.3}/src/pymodaq_utils/__init__.py +0 -0
  8. {pymodaq_utils-5.3.2 → pymodaq_utils-5.3.3}/src/pymodaq_utils/abstract.py +0 -0
  9. {pymodaq_utils-5.3.2 → pymodaq_utils-5.3.3}/src/pymodaq_utils/array_manipulation.py +0 -0
  10. {pymodaq_utils-5.3.2 → pymodaq_utils-5.3.3}/src/pymodaq_utils/categorizing.py +0 -0
  11. {pymodaq_utils-5.3.2 → pymodaq_utils-5.3.3}/src/pymodaq_utils/config.py +0 -0
  12. {pymodaq_utils-5.3.2 → pymodaq_utils-5.3.3}/src/pymodaq_utils/enums.py +0 -0
  13. {pymodaq_utils-5.3.2 → pymodaq_utils-5.3.3}/src/pymodaq_utils/environment.py +0 -0
  14. {pymodaq_utils-5.3.2 → pymodaq_utils-5.3.3}/src/pymodaq_utils/factory.py +0 -0
  15. {pymodaq_utils-5.3.2 → pymodaq_utils-5.3.3}/src/pymodaq_utils/help.py +0 -0
  16. {pymodaq_utils-5.3.2 → pymodaq_utils-5.3.3}/src/pymodaq_utils/icon.ico +0 -0
  17. {pymodaq_utils-5.3.2 → pymodaq_utils-5.3.3}/src/pymodaq_utils/logger.py +0 -0
  18. {pymodaq_utils-5.3.2 → pymodaq_utils-5.3.3}/src/pymodaq_utils/math_utils.py +0 -0
  19. {pymodaq_utils-5.3.2 → pymodaq_utils-5.3.3}/src/pymodaq_utils/mysocket.py +0 -0
  20. {pymodaq_utils-5.3.2 → pymodaq_utils-5.3.3}/src/pymodaq_utils/packages.py +0 -0
  21. {pymodaq_utils-5.3.2 → pymodaq_utils-5.3.3}/src/pymodaq_utils/plugin_rules.py +0 -0
  22. {pymodaq_utils-5.3.2 → pymodaq_utils-5.3.3}/src/pymodaq_utils/plugin_scaffold.py +0 -0
  23. {pymodaq_utils-5.3.2 → pymodaq_utils-5.3.3}/src/pymodaq_utils/plugin_testing.py +0 -0
  24. {pymodaq_utils-5.3.2 → pymodaq_utils-5.3.3}/src/pymodaq_utils/resources/__init__.py +0 -0
  25. {pymodaq_utils-5.3.2 → pymodaq_utils-5.3.3}/src/pymodaq_utils/resources/config_template.toml +0 -0
  26. {pymodaq_utils-5.3.2 → pymodaq_utils-5.3.3}/src/pymodaq_utils/resources/hatch_build_plugins.py +0 -0
  27. {pymodaq_utils-5.3.2 → pymodaq_utils-5.3.3}/src/pymodaq_utils/serialize/__init__.py +0 -0
  28. {pymodaq_utils-5.3.2 → pymodaq_utils-5.3.3}/src/pymodaq_utils/serialize/factory.py +0 -0
  29. {pymodaq_utils-5.3.2 → pymodaq_utils-5.3.3}/src/pymodaq_utils/serialize/mysocket.py +0 -0
  30. {pymodaq_utils-5.3.2 → pymodaq_utils-5.3.3}/src/pymodaq_utils/serialize/serializer.py +0 -0
  31. {pymodaq_utils-5.3.2 → pymodaq_utils-5.3.3}/src/pymodaq_utils/serialize/serializer_legacy.py +0 -0
  32. {pymodaq_utils-5.3.2 → pymodaq_utils-5.3.3}/src/pymodaq_utils/serialize/utils.py +0 -0
  33. {pymodaq_utils-5.3.2 → pymodaq_utils-5.3.3}/src/pymodaq_utils/singleton.py +0 -0
  34. {pymodaq_utils-5.3.2 → pymodaq_utils-5.3.3}/src/pymodaq_utils/splash.png +0 -0
  35. {pymodaq_utils-5.3.2 → pymodaq_utils-5.3.3}/src/pymodaq_utils/units.py +0 -0
  36. {pymodaq_utils-5.3.2 → pymodaq_utils-5.3.3}/src/pymodaq_utils/utils.py +0 -0
  37. {pymodaq_utils-5.3.2 → pymodaq_utils-5.3.3}/src/pymodaq_utils/warnings.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: pymodaq_utils
3
- Version: 5.3.2
3
+ Version: 5.3.3
4
4
  Summary: Modular Data Acquisition with Python
5
5
  Project-URL: Homepage, http://pymodaq.cnrs.fr
6
6
  Project-URL: Source, https://github.com/PyMoDAQ/PyMoDAQ
@@ -289,7 +289,19 @@ def _is_environmental(error: Exception, package: str) -> bool:
289
289
  if isinstance(error, ImportError):
290
290
  name = getattr(error, 'name', None) or ''
291
291
  return not (name == 'pymodaq' or name.startswith('pymodaq.') or name.split('.')[0] == package)
292
- return isinstance(error, (OSError, KeyError))
292
+ if isinstance(error, (OSError, KeyError)):
293
+ return True
294
+ # a vendor module may refuse to load with another kind of error (pyvisa without backend: ValueError, PyDAQmx
295
+ # on Linux: NotImplementedError...): it is environmental if raised by third party code, not by the plugin
296
+ if isinstance(error, (ValueError, NotImplementedError, RuntimeError)):
297
+ tb = error.__traceback__
298
+ while tb is not None and tb.tb_next is not None:
299
+ tb = tb.tb_next
300
+ if tb is not None:
301
+ origin = tb.tb_frame.f_globals.get('__name__', '') or ''
302
+ top = origin.split('.')[0]
303
+ return bool(top) and top not in (package, 'pymodaq', 'pymodaq_utils', 'pymodaq_gui', 'pymodaq_data')
304
+ return False
293
305
 
294
306
 
295
307
  def load_plugin_class(plugin_module: PluginModule) -> type:
File without changes
File without changes
File without changes