shepherd-core 2026.2.1__tar.gz → 2026.2.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 (167) hide show
  1. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/PKG-INFO +1 -1
  2. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/shepherd_core/data_models/content/energy_environment_fixture.yaml +3 -0
  3. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/shepherd_core/data_models/content/firmware.py +9 -5
  4. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/shepherd_core/version.py +1 -1
  5. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/shepherd_core.egg-info/PKG-INFO +1 -1
  6. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/LICENSE +0 -0
  7. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/README.md +0 -0
  8. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/examples/eenv_generator.py +0 -0
  9. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/examples/experiment_from_yaml.yaml +0 -0
  10. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/examples/experiment_generic_var1.py +0 -0
  11. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/examples/experiment_generic_var2.py +0 -0
  12. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/examples/experiment_models.py +0 -0
  13. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/examples/firmware_model.py +0 -0
  14. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/examples/firmware_modification.py +0 -0
  15. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/examples/inventory.py +0 -0
  16. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/examples/simulations/vharvester.py +0 -0
  17. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/examples/simulations/vsource.py +0 -0
  18. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/examples/simulations/vstorage.py +0 -0
  19. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/examples/uart_decode_waveform.py +0 -0
  20. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/examples/uart_raw2.csv +0 -0
  21. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/examples/vsource_debug_sim.py +0 -0
  22. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/pyproject.toml +0 -0
  23. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/setup.cfg +0 -0
  24. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/shepherd_core/__init__.py +0 -0
  25. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/shepherd_core/calibration_hw_def.py +0 -0
  26. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/shepherd_core/commons.py +0 -0
  27. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/shepherd_core/config.py +0 -0
  28. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/shepherd_core/data_models/__init__.py +0 -0
  29. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/shepherd_core/data_models/base/__init__.py +0 -0
  30. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/shepherd_core/data_models/base/cal_measurement.py +0 -0
  31. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/shepherd_core/data_models/base/calibration.py +0 -0
  32. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/shepherd_core/data_models/base/content.py +0 -0
  33. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/shepherd_core/data_models/base/shepherd.py +0 -0
  34. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/shepherd_core/data_models/base/timezone.py +0 -0
  35. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/shepherd_core/data_models/base/wrapper.py +0 -0
  36. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/shepherd_core/data_models/content/__init__.py +0 -0
  37. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/shepherd_core/data_models/content/_external_fixtures.yaml +0 -0
  38. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/shepherd_core/data_models/content/_metadata_eenvs_bonito.yaml +0 -0
  39. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/shepherd_core/data_models/content/_metadata_eenvs_synthetic_multivariate_random_walk.yaml +0 -0
  40. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/shepherd_core/data_models/content/_metadata_eenvs_synthetic_on_off_markov.yaml +0 -0
  41. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/shepherd_core/data_models/content/_metadata_eenvs_synthetic_on_off_windows.yaml +0 -0
  42. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/shepherd_core/data_models/content/_metadata_eenvs_synthetic_static.yaml +0 -0
  43. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/shepherd_core/data_models/content/energy_environment.py +0 -0
  44. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/shepherd_core/data_models/content/enum_datatypes.py +0 -0
  45. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/shepherd_core/data_models/content/virtual_harvester_config.py +0 -0
  46. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/shepherd_core/data_models/content/virtual_harvester_fixture.yaml +0 -0
  47. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/shepherd_core/data_models/content/virtual_source_config.py +0 -0
  48. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/shepherd_core/data_models/content/virtual_source_fixture.yaml +0 -0
  49. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/shepherd_core/data_models/content/virtual_storage_config.py +0 -0
  50. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/shepherd_core/data_models/content/virtual_storage_fixture_creator.py +0 -0
  51. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/shepherd_core/data_models/content/virtual_storage_fixture_ideal.yaml +0 -0
  52. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/shepherd_core/data_models/content/virtual_storage_fixture_lead.yaml +0 -0
  53. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/shepherd_core/data_models/content/virtual_storage_fixture_lipo.yaml +0 -0
  54. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/shepherd_core/data_models/content/virtual_storage_fixture_mlcc.yaml +0 -0
  55. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/shepherd_core/data_models/content/virtual_storage_fixture_param_experiments.py +0 -0
  56. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/shepherd_core/data_models/content/virtual_storage_fixture_super.yaml +0 -0
  57. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/shepherd_core/data_models/content/virtual_storage_fixture_tantal.yaml +0 -0
  58. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/shepherd_core/data_models/experiment/__init__.py +0 -0
  59. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/shepherd_core/data_models/experiment/experiment.py +0 -0
  60. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/shepherd_core/data_models/experiment/observer_features.py +0 -0
  61. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/shepherd_core/data_models/experiment/target_config.py +0 -0
  62. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/shepherd_core/data_models/readme.md +0 -0
  63. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/shepherd_core/data_models/task/__init__.py +0 -0
  64. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/shepherd_core/data_models/task/emulation.py +0 -0
  65. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/shepherd_core/data_models/task/firmware_mod.py +0 -0
  66. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/shepherd_core/data_models/task/harvest.py +0 -0
  67. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/shepherd_core/data_models/task/helper_paths.py +0 -0
  68. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/shepherd_core/data_models/task/observer_tasks.py +0 -0
  69. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/shepherd_core/data_models/task/programming.py +0 -0
  70. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/shepherd_core/data_models/task/testbed_tasks.py +0 -0
  71. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/shepherd_core/data_models/testbed/__init__.py +0 -0
  72. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/shepherd_core/data_models/testbed/cape.py +0 -0
  73. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/shepherd_core/data_models/testbed/cape_fixture.yaml +0 -0
  74. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/shepherd_core/data_models/testbed/gpio.py +0 -0
  75. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/shepherd_core/data_models/testbed/gpio_fixture.yaml +0 -0
  76. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/shepherd_core/data_models/testbed/mcu.py +0 -0
  77. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/shepherd_core/data_models/testbed/mcu_fixture.yaml +0 -0
  78. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/shepherd_core/data_models/testbed/observer.py +0 -0
  79. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/shepherd_core/data_models/testbed/observer_fixture.yaml +0 -0
  80. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/shepherd_core/data_models/testbed/target.py +0 -0
  81. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/shepherd_core/data_models/testbed/target_fixture.old1 +0 -0
  82. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/shepherd_core/data_models/testbed/target_fixture.yaml +0 -0
  83. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/shepherd_core/data_models/testbed/testbed.py +0 -0
  84. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/shepherd_core/data_models/testbed/testbed_fixture.yaml +0 -0
  85. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/shepherd_core/decoder_waveform/__init__.py +0 -0
  86. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/shepherd_core/decoder_waveform/uart.py +0 -0
  87. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/shepherd_core/exit_handler.py +0 -0
  88. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/shepherd_core/fw_tools/__init__.py +0 -0
  89. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/shepherd_core/fw_tools/converter.py +0 -0
  90. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/shepherd_core/fw_tools/converter_elf.py +0 -0
  91. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/shepherd_core/fw_tools/patcher.py +0 -0
  92. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/shepherd_core/fw_tools/validation.py +0 -0
  93. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/shepherd_core/inventory/__init__.py +0 -0
  94. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/shepherd_core/inventory/python.py +0 -0
  95. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/shepherd_core/inventory/system.py +0 -0
  96. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/shepherd_core/inventory/target.py +0 -0
  97. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/shepherd_core/logger.py +0 -0
  98. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/shepherd_core/reader.py +0 -0
  99. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/shepherd_core/testbed_client/__init__.py +0 -0
  100. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/shepherd_core/testbed_client/cache_path.py +0 -0
  101. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/shepherd_core/testbed_client/client_abc_fix.py +0 -0
  102. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/shepherd_core/testbed_client/client_web.py +0 -0
  103. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/shepherd_core/testbed_client/fixtures.py +0 -0
  104. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/shepherd_core/testbed_client/user_model.py +0 -0
  105. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/shepherd_core/vsource/__init__.py +0 -0
  106. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/shepherd_core/vsource/target_model.py +0 -0
  107. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/shepherd_core/vsource/virtual_converter_model.py +0 -0
  108. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/shepherd_core/vsource/virtual_harvester_model.py +0 -0
  109. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/shepherd_core/vsource/virtual_harvester_simulation.py +0 -0
  110. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/shepherd_core/vsource/virtual_source_model.py +0 -0
  111. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/shepherd_core/vsource/virtual_source_simulation.py +0 -0
  112. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/shepherd_core/vsource/virtual_storage_model.py +0 -0
  113. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/shepherd_core/vsource/virtual_storage_model_fixed_point_math.py +0 -0
  114. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/shepherd_core/vsource/virtual_storage_models_kibam.py +0 -0
  115. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/shepherd_core/vsource/virtual_storage_simulator.py +0 -0
  116. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/shepherd_core/writer.py +0 -0
  117. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/shepherd_core.egg-info/SOURCES.txt +0 -0
  118. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/shepherd_core.egg-info/dependency_links.txt +0 -0
  119. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/shepherd_core.egg-info/requires.txt +0 -0
  120. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/shepherd_core.egg-info/top_level.txt +0 -0
  121. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/shepherd_core.egg-info/zip-safe +0 -0
  122. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/tests/__init__.py +0 -0
  123. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/tests/conftest.py +0 -0
  124. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/tests/data_models/__init__.py +0 -0
  125. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/tests/data_models/conftest.py +0 -0
  126. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/tests/data_models/example_cal_data.yaml +0 -0
  127. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/tests/data_models/example_cal_data_faulty.yaml +0 -0
  128. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/tests/data_models/example_cal_meas.yaml +0 -0
  129. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/tests/data_models/example_cal_meas_faulty1.yaml +0 -0
  130. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/tests/data_models/example_cal_meas_faulty2.yaml +0 -0
  131. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/tests/data_models/example_config_emulator.yaml +0 -0
  132. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/tests/data_models/example_config_experiment.yaml +0 -0
  133. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/tests/data_models/example_config_experiment_alternative.yaml +0 -0
  134. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/tests/data_models/example_config_harvester.yaml +0 -0
  135. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/tests/data_models/example_config_testbed.yaml +0 -0
  136. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/tests/data_models/example_config_virtsource.yaml +0 -0
  137. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/tests/data_models/test_base_models.py +0 -0
  138. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/tests/data_models/test_content_fixtures.py +0 -0
  139. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/tests/data_models/test_content_models.py +0 -0
  140. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/tests/data_models/test_examples.py +0 -0
  141. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/tests/data_models/test_experiment_models.py +0 -0
  142. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/tests/data_models/test_task_generation.py +0 -0
  143. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/tests/data_models/test_task_models.py +0 -0
  144. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/tests/data_models/test_testbed_fixtures.py +0 -0
  145. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/tests/data_models/test_testbed_models.py +0 -0
  146. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/tests/decoder_waveform/__init__.py +0 -0
  147. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/tests/decoder_waveform/test_decoder.py +0 -0
  148. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/tests/fw_tools/__init__.py +0 -0
  149. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/tests/fw_tools/build_msp.elf +0 -0
  150. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/tests/fw_tools/build_nrf.elf +0 -0
  151. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/tests/fw_tools/conftest.py +0 -0
  152. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/tests/fw_tools/test_converter.py +0 -0
  153. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/tests/fw_tools/test_patcher.py +0 -0
  154. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/tests/fw_tools/test_validation.py +0 -0
  155. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/tests/inventory/__init__.py +0 -0
  156. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/tests/inventory/test_inventory.py +0 -0
  157. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/tests/test_cal_hw.py +0 -0
  158. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/tests/test_examples.py +0 -0
  159. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/tests/test_logger.py +0 -0
  160. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/tests/test_reader.py +0 -0
  161. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/tests/test_writer.py +0 -0
  162. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/tests/testbed_client/__init__.py +0 -0
  163. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/tests/vsource/__init__.py +0 -0
  164. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/tests/vsource/conftest.py +0 -0
  165. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/tests/vsource/test_converter.py +0 -0
  166. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/tests/vsource/test_harvester.py +0 -0
  167. {shepherd_core-2026.2.1 → shepherd_core-2026.2.3}/tests/vsource/test_z.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: shepherd-core
3
- Version: 2026.2.1
3
+ Version: 2026.2.3
4
4
  Summary: Programming- and CLI-Interface for the h5-dataformat of the Shepherd-Testbed
5
5
  Author-email: Ingmar Splitt <ingmar.splitt@tu-dresden.de>
6
6
  Maintainer-email: Ingmar Splitt <ingmar.splitt@tu-dresden.de>
@@ -3,6 +3,7 @@
3
3
  id: 1001
4
4
  name: SolarSunny
5
5
  description: MOCKUP! Sunny Day with 4 sq-cm Solar Cell
6
+ deprecated: Only exists as MOCKUP for unittests
6
7
  energy_profiles:
7
8
  - data_path: eenv/group/user/solar_4h_new.h5
8
9
  data_type: ivsample
@@ -22,6 +23,7 @@
22
23
  id: 1002
23
24
  name: ThermoelectricWashingMachine
24
25
  description: MOCKUP! Energy harvested from side of machine during washing & tumbling
26
+ deprecated: Only exists as MOCKUP for unittests
25
27
  energy_profiles:
26
28
  - data_path: eenv/group/user/thermoelectric_1h_wash.h5
27
29
  data_type: ivcurve
@@ -41,6 +43,7 @@
41
43
  id: 666
42
44
  name: nuclear
43
45
  description: MOCKUP! Energy harvested
46
+ deprecated: Only exists as MOCKUP for unittests
44
47
  energy_profiles:
45
48
  - data_path: eenv/group/user/thermoelectric_1h_wash.h5
46
49
  data_type: ivcurve
@@ -58,7 +58,7 @@ class Firmware(ContentModel, title="Firmware of Target"):
58
58
 
59
59
  mcu: MCU
60
60
 
61
- data: FirmwareStr | Path
61
+ data: Path | FirmwareStr
62
62
  data_type: FirmwareDType
63
63
  data_hash: str | None = None
64
64
  data_2_copy: bool = True
@@ -85,7 +85,8 @@ class Firmware(ContentModel, title="Firmware of Target"):
85
85
  FirmwareDType.path_elf,
86
86
  }:
87
87
  try:
88
- _ = Path(values.get("data"))
88
+ pdata = Path(values.get("data"))
89
+ values["data"] = pdata
89
90
  except (SyntaxError, NameError):
90
91
  raise ValueError("Firmware-Path is invalid") from None
91
92
  return tb_client.fill_in_user_data(values)
@@ -186,15 +187,18 @@ class Firmware(ContentModel, title="Firmware of Target"):
186
187
  """Check if embedded file exists."""
187
188
  if self.data_type in [FirmwareDType.path_hex, FirmwareDType.path_elf]:
188
189
  if not isinstance(self.data, Path):
189
- raise ValueError("Firmware.data is not a Path (but type-property claims so)")
190
- return self.data.exists()
190
+ log.warning(
191
+ f"Firmware.data is not a Path (but type-property claims so) -> {self.name}"
192
+ )
193
+ return False
194
+ return Path(self.data).exists()
191
195
  return True
192
196
 
193
197
  def check(self) -> bool:
194
198
  """Check if embedded file is still valid or unchanged."""
195
199
  valid = True
196
200
  if self.data_type in [FirmwareDType.path_hex, FirmwareDType.path_elf]:
197
- valid &= isinstance(self.data, Path) and self.data.exists()
201
+ valid &= isinstance(self.data, Path) and Path(self.data).exists()
198
202
  if self.data_type in [FirmwareDType.base64_elf, FirmwareDType.base64_hex]:
199
203
  valid &= isinstance(self.data, str)
200
204
  # TODO: could also begin unpacking base64
@@ -1,3 +1,3 @@
1
1
  """Separated string avoids circular imports."""
2
2
 
3
- version: str = "2026.02.1"
3
+ version: str = "2026.02.3"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: shepherd-core
3
- Version: 2026.2.1
3
+ Version: 2026.2.3
4
4
  Summary: Programming- and CLI-Interface for the h5-dataformat of the Shepherd-Testbed
5
5
  Author-email: Ingmar Splitt <ingmar.splitt@tu-dresden.de>
6
6
  Maintainer-email: Ingmar Splitt <ingmar.splitt@tu-dresden.de>