learning-loop-node 0.17.0__tar.gz → 0.17.1__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.

Potentially problematic release.


This version of learning-loop-node might be problematic. Click here for more details.

Files changed (105) hide show
  1. {learning_loop_node-0.17.0 → learning_loop_node-0.17.1}/PKG-INFO +1 -1
  2. {learning_loop_node-0.17.0 → learning_loop_node-0.17.1}/learning_loop_node/detector/detector_node.py +14 -4
  3. {learning_loop_node-0.17.0 → learning_loop_node-0.17.1}/pyproject.toml +1 -1
  4. {learning_loop_node-0.17.0 → learning_loop_node-0.17.1}/README.md +0 -0
  5. {learning_loop_node-0.17.0 → learning_loop_node-0.17.1}/learning_loop_node/__init__.py +0 -0
  6. {learning_loop_node-0.17.0 → learning_loop_node-0.17.1}/learning_loop_node/annotation/__init__.py +0 -0
  7. {learning_loop_node-0.17.0 → learning_loop_node-0.17.1}/learning_loop_node/annotation/annotator_logic.py +0 -0
  8. {learning_loop_node-0.17.0 → learning_loop_node-0.17.1}/learning_loop_node/annotation/annotator_node.py +0 -0
  9. {learning_loop_node-0.17.0 → learning_loop_node-0.17.1}/learning_loop_node/data_classes/__init__.py +0 -0
  10. {learning_loop_node-0.17.0 → learning_loop_node-0.17.1}/learning_loop_node/data_classes/annotation_data.py +0 -0
  11. {learning_loop_node-0.17.0 → learning_loop_node-0.17.1}/learning_loop_node/data_classes/annotations.py +0 -0
  12. {learning_loop_node-0.17.0 → learning_loop_node-0.17.1}/learning_loop_node/data_classes/detections.py +0 -0
  13. {learning_loop_node-0.17.0 → learning_loop_node-0.17.1}/learning_loop_node/data_classes/general.py +0 -0
  14. {learning_loop_node-0.17.0 → learning_loop_node-0.17.1}/learning_loop_node/data_classes/image_metadata.py +0 -0
  15. {learning_loop_node-0.17.0 → learning_loop_node-0.17.1}/learning_loop_node/data_classes/socket_response.py +0 -0
  16. {learning_loop_node-0.17.0 → learning_loop_node-0.17.1}/learning_loop_node/data_classes/training.py +0 -0
  17. {learning_loop_node-0.17.0 → learning_loop_node-0.17.1}/learning_loop_node/data_exchanger.py +0 -0
  18. {learning_loop_node-0.17.0 → learning_loop_node-0.17.1}/learning_loop_node/detector/__init__.py +0 -0
  19. {learning_loop_node-0.17.0 → learning_loop_node-0.17.1}/learning_loop_node/detector/detector_logic.py +0 -0
  20. {learning_loop_node-0.17.0 → learning_loop_node-0.17.1}/learning_loop_node/detector/exceptions.py +0 -0
  21. {learning_loop_node-0.17.0 → learning_loop_node-0.17.1}/learning_loop_node/detector/inbox_filter/__init__.py +0 -0
  22. {learning_loop_node-0.17.0 → learning_loop_node-0.17.1}/learning_loop_node/detector/inbox_filter/cam_observation_history.py +0 -0
  23. {learning_loop_node-0.17.0 → learning_loop_node-0.17.1}/learning_loop_node/detector/inbox_filter/relevance_filter.py +0 -0
  24. {learning_loop_node-0.17.0 → learning_loop_node-0.17.1}/learning_loop_node/detector/outbox.py +0 -0
  25. {learning_loop_node-0.17.0 → learning_loop_node-0.17.1}/learning_loop_node/detector/rest/__init__.py +0 -0
  26. {learning_loop_node-0.17.0 → learning_loop_node-0.17.1}/learning_loop_node/detector/rest/about.py +0 -0
  27. {learning_loop_node-0.17.0 → learning_loop_node-0.17.1}/learning_loop_node/detector/rest/backdoor_controls.py +0 -0
  28. {learning_loop_node-0.17.0 → learning_loop_node-0.17.1}/learning_loop_node/detector/rest/detect.py +0 -0
  29. {learning_loop_node-0.17.0 → learning_loop_node-0.17.1}/learning_loop_node/detector/rest/model_version_control.py +0 -0
  30. {learning_loop_node-0.17.0 → learning_loop_node-0.17.1}/learning_loop_node/detector/rest/operation_mode.py +0 -0
  31. {learning_loop_node-0.17.0 → learning_loop_node-0.17.1}/learning_loop_node/detector/rest/outbox_mode.py +0 -0
  32. {learning_loop_node-0.17.0 → learning_loop_node-0.17.1}/learning_loop_node/detector/rest/upload.py +0 -0
  33. {learning_loop_node-0.17.0 → learning_loop_node-0.17.1}/learning_loop_node/enums/__init__.py +0 -0
  34. {learning_loop_node-0.17.0 → learning_loop_node-0.17.1}/learning_loop_node/enums/annotator.py +0 -0
  35. {learning_loop_node-0.17.0 → learning_loop_node-0.17.1}/learning_loop_node/enums/detector.py +0 -0
  36. {learning_loop_node-0.17.0 → learning_loop_node-0.17.1}/learning_loop_node/enums/general.py +0 -0
  37. {learning_loop_node-0.17.0 → learning_loop_node-0.17.1}/learning_loop_node/enums/trainer.py +0 -0
  38. {learning_loop_node-0.17.0 → learning_loop_node-0.17.1}/learning_loop_node/examples/novelty_score_updater.py +0 -0
  39. {learning_loop_node-0.17.0 → learning_loop_node-0.17.1}/learning_loop_node/globals.py +0 -0
  40. {learning_loop_node-0.17.0 → learning_loop_node-0.17.1}/learning_loop_node/helpers/__init__.py +0 -0
  41. {learning_loop_node-0.17.0 → learning_loop_node-0.17.1}/learning_loop_node/helpers/background_tasks.py +0 -0
  42. {learning_loop_node-0.17.0 → learning_loop_node-0.17.1}/learning_loop_node/helpers/environment_reader.py +0 -0
  43. {learning_loop_node-0.17.0 → learning_loop_node-0.17.1}/learning_loop_node/helpers/gdrive_downloader.py +0 -0
  44. {learning_loop_node-0.17.0 → learning_loop_node-0.17.1}/learning_loop_node/helpers/log_conf.py +0 -0
  45. {learning_loop_node-0.17.0 → learning_loop_node-0.17.1}/learning_loop_node/helpers/misc.py +0 -0
  46. {learning_loop_node-0.17.0 → learning_loop_node-0.17.1}/learning_loop_node/helpers/run.py +0 -0
  47. {learning_loop_node-0.17.0 → learning_loop_node-0.17.1}/learning_loop_node/loop_communication.py +0 -0
  48. {learning_loop_node-0.17.0 → learning_loop_node-0.17.1}/learning_loop_node/node.py +0 -0
  49. {learning_loop_node-0.17.0 → learning_loop_node-0.17.1}/learning_loop_node/py.typed +0 -0
  50. {learning_loop_node-0.17.0 → learning_loop_node-0.17.1}/learning_loop_node/rest.py +0 -0
  51. {learning_loop_node-0.17.0 → learning_loop_node-0.17.1}/learning_loop_node/tests/__init__.py +0 -0
  52. {learning_loop_node-0.17.0 → learning_loop_node-0.17.1}/learning_loop_node/tests/annotator/__init__.py +0 -0
  53. {learning_loop_node-0.17.0 → learning_loop_node-0.17.1}/learning_loop_node/tests/annotator/conftest.py +0 -0
  54. {learning_loop_node-0.17.0 → learning_loop_node-0.17.1}/learning_loop_node/tests/annotator/pytest.ini +0 -0
  55. {learning_loop_node-0.17.0 → learning_loop_node-0.17.1}/learning_loop_node/tests/annotator/test_annotator_node.py +0 -0
  56. {learning_loop_node-0.17.0 → learning_loop_node-0.17.1}/learning_loop_node/tests/detector/__init__.py +0 -0
  57. {learning_loop_node-0.17.0 → learning_loop_node-0.17.1}/learning_loop_node/tests/detector/conftest.py +0 -0
  58. {learning_loop_node-0.17.0 → learning_loop_node-0.17.1}/learning_loop_node/tests/detector/inbox_filter/__init__.py +0 -0
  59. {learning_loop_node-0.17.0 → learning_loop_node-0.17.1}/learning_loop_node/tests/detector/inbox_filter/test_observation.py +0 -0
  60. {learning_loop_node-0.17.0 → learning_loop_node-0.17.1}/learning_loop_node/tests/detector/inbox_filter/test_relevance_group.py +0 -0
  61. {learning_loop_node-0.17.0 → learning_loop_node-0.17.1}/learning_loop_node/tests/detector/inbox_filter/test_unexpected_observations_count.py +0 -0
  62. {learning_loop_node-0.17.0 → learning_loop_node-0.17.1}/learning_loop_node/tests/detector/pytest.ini +0 -0
  63. {learning_loop_node-0.17.0 → learning_loop_node-0.17.1}/learning_loop_node/tests/detector/test.jpg +0 -0
  64. {learning_loop_node-0.17.0 → learning_loop_node-0.17.1}/learning_loop_node/tests/detector/test_client_communication.py +0 -0
  65. {learning_loop_node-0.17.0 → learning_loop_node-0.17.1}/learning_loop_node/tests/detector/test_detector_node.py +0 -0
  66. {learning_loop_node-0.17.0 → learning_loop_node-0.17.1}/learning_loop_node/tests/detector/test_outbox.py +0 -0
  67. {learning_loop_node-0.17.0 → learning_loop_node-0.17.1}/learning_loop_node/tests/detector/test_relevance_filter.py +0 -0
  68. {learning_loop_node-0.17.0 → learning_loop_node-0.17.1}/learning_loop_node/tests/detector/testing_detector.py +0 -0
  69. {learning_loop_node-0.17.0 → learning_loop_node-0.17.1}/learning_loop_node/tests/general/__init__.py +0 -0
  70. {learning_loop_node-0.17.0 → learning_loop_node-0.17.1}/learning_loop_node/tests/general/conftest.py +0 -0
  71. {learning_loop_node-0.17.0 → learning_loop_node-0.17.1}/learning_loop_node/tests/general/pytest.ini +0 -0
  72. {learning_loop_node-0.17.0 → learning_loop_node-0.17.1}/learning_loop_node/tests/general/test_data/file_1.txt +0 -0
  73. {learning_loop_node-0.17.0 → learning_loop_node-0.17.1}/learning_loop_node/tests/general/test_data/file_2.txt +0 -0
  74. {learning_loop_node-0.17.0 → learning_loop_node-0.17.1}/learning_loop_node/tests/general/test_data/model.json +0 -0
  75. {learning_loop_node-0.17.0 → learning_loop_node-0.17.1}/learning_loop_node/tests/general/test_data_classes.py +0 -0
  76. {learning_loop_node-0.17.0 → learning_loop_node-0.17.1}/learning_loop_node/tests/general/test_downloader.py +0 -0
  77. {learning_loop_node-0.17.0 → learning_loop_node-0.17.1}/learning_loop_node/tests/general/test_learning_loop_node.py +0 -0
  78. {learning_loop_node-0.17.0 → learning_loop_node-0.17.1}/learning_loop_node/tests/test_helper.py +0 -0
  79. {learning_loop_node-0.17.0 → learning_loop_node-0.17.1}/learning_loop_node/tests/trainer/__init__.py +0 -0
  80. {learning_loop_node-0.17.0 → learning_loop_node-0.17.1}/learning_loop_node/tests/trainer/conftest.py +0 -0
  81. {learning_loop_node-0.17.0 → learning_loop_node-0.17.1}/learning_loop_node/tests/trainer/pytest.ini +0 -0
  82. {learning_loop_node-0.17.0 → learning_loop_node-0.17.1}/learning_loop_node/tests/trainer/state_helper.py +0 -0
  83. {learning_loop_node-0.17.0 → learning_loop_node-0.17.1}/learning_loop_node/tests/trainer/states/__init__.py +0 -0
  84. {learning_loop_node-0.17.0 → learning_loop_node-0.17.1}/learning_loop_node/tests/trainer/states/test_state_cleanup.py +0 -0
  85. {learning_loop_node-0.17.0 → learning_loop_node-0.17.1}/learning_loop_node/tests/trainer/states/test_state_detecting.py +0 -0
  86. {learning_loop_node-0.17.0 → learning_loop_node-0.17.1}/learning_loop_node/tests/trainer/states/test_state_download_train_model.py +0 -0
  87. {learning_loop_node-0.17.0 → learning_loop_node-0.17.1}/learning_loop_node/tests/trainer/states/test_state_prepare.py +0 -0
  88. {learning_loop_node-0.17.0 → learning_loop_node-0.17.1}/learning_loop_node/tests/trainer/states/test_state_sync_confusion_matrix.py +0 -0
  89. {learning_loop_node-0.17.0 → learning_loop_node-0.17.1}/learning_loop_node/tests/trainer/states/test_state_train.py +0 -0
  90. {learning_loop_node-0.17.0 → learning_loop_node-0.17.1}/learning_loop_node/tests/trainer/states/test_state_upload_detections.py +0 -0
  91. {learning_loop_node-0.17.0 → learning_loop_node-0.17.1}/learning_loop_node/tests/trainer/states/test_state_upload_model.py +0 -0
  92. {learning_loop_node-0.17.0 → learning_loop_node-0.17.1}/learning_loop_node/tests/trainer/test_errors.py +0 -0
  93. {learning_loop_node-0.17.0 → learning_loop_node-0.17.1}/learning_loop_node/tests/trainer/test_trainer_states.py +0 -0
  94. {learning_loop_node-0.17.0 → learning_loop_node-0.17.1}/learning_loop_node/tests/trainer/testing_trainer_logic.py +0 -0
  95. {learning_loop_node-0.17.0 → learning_loop_node-0.17.1}/learning_loop_node/trainer/__init__.py +0 -0
  96. {learning_loop_node-0.17.0 → learning_loop_node-0.17.1}/learning_loop_node/trainer/downloader.py +0 -0
  97. {learning_loop_node-0.17.0 → learning_loop_node-0.17.1}/learning_loop_node/trainer/exceptions.py +0 -0
  98. {learning_loop_node-0.17.0 → learning_loop_node-0.17.1}/learning_loop_node/trainer/executor.py +0 -0
  99. {learning_loop_node-0.17.0 → learning_loop_node-0.17.1}/learning_loop_node/trainer/io_helpers.py +0 -0
  100. {learning_loop_node-0.17.0 → learning_loop_node-0.17.1}/learning_loop_node/trainer/rest/__init__.py +0 -0
  101. {learning_loop_node-0.17.0 → learning_loop_node-0.17.1}/learning_loop_node/trainer/rest/backdoor_controls.py +0 -0
  102. {learning_loop_node-0.17.0 → learning_loop_node-0.17.1}/learning_loop_node/trainer/test_executor.py +0 -0
  103. {learning_loop_node-0.17.0 → learning_loop_node-0.17.1}/learning_loop_node/trainer/trainer_logic.py +0 -0
  104. {learning_loop_node-0.17.0 → learning_loop_node-0.17.1}/learning_loop_node/trainer/trainer_logic_generic.py +0 -0
  105. {learning_loop_node-0.17.0 → learning_loop_node-0.17.1}/learning_loop_node/trainer/trainer_node.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: learning-loop-node
3
- Version: 0.17.0
3
+ Version: 0.17.1
4
4
  Summary: Python Library for Nodes which connect to the Zauberzeug Learning Loop
5
5
  Home-page: https://github.com/zauberzeug/learning_loop_node
6
6
  License: MIT
@@ -522,11 +522,14 @@ class DetectorNode(Node):
522
522
  It can be converted e.g. using cv2.imdecode(np.frombuffer(image, np.uint8), cv2.IMREAD_COLOR)"""
523
523
 
524
524
  await self.detection_lock.acquire()
525
- metadata = await run.io_bound(self.detector_logic.evaluate, raw_image)
525
+ try:
526
+ metadata = await run.io_bound(self.detector_logic.evaluate, raw_image)
527
+ finally:
528
+ self.detection_lock.release()
529
+
526
530
  metadata.tags.extend(tags)
527
531
  metadata.source = source
528
532
  metadata.created = creation_date
529
- self.detection_lock.release()
530
533
 
531
534
  fix_shape_detections(metadata)
532
535
  n_bo, n_cl = len(metadata.box_detections), len(metadata.classification_detections)
@@ -555,8 +558,15 @@ class DetectorNode(Node):
555
558
  This function infers the detections from all images, cares about uploading to the loop and returns the detections as a list of ImageMetadata."""
556
559
 
557
560
  await self.detection_lock.acquire()
558
- all_detections = await run.io_bound(self.detector_logic.batch_evaluate, raw_images)
559
- self.detection_lock.release()
561
+ try:
562
+ all_detections = await run.io_bound(self.detector_logic.batch_evaluate, raw_images)
563
+ finally:
564
+ self.detection_lock.release()
565
+
566
+ for metadata in all_detections.items:
567
+ metadata.tags.extend(tags)
568
+ metadata.source = source
569
+ metadata.created = creation_date
560
570
 
561
571
  for detections, raw_image in zip(all_detections.items, raw_images):
562
572
  fix_shape_detections(detections)
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "learning_loop_node"
3
- version = "v0.17.0"
3
+ version = "v0.17.1"
4
4
  description = "Python Library for Nodes which connect to the Zauberzeug Learning Loop"
5
5
  authors = ["Zauberzeug GmbH <info@zauberzeug.com>"]
6
6
  license = "MIT"