learning-loop-node 0.16.0__tar.gz → 0.16.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 (104) hide show
  1. {learning_loop_node-0.16.0 → learning_loop_node-0.16.1}/PKG-INFO +1 -1
  2. {learning_loop_node-0.16.0 → learning_loop_node-0.16.1}/learning_loop_node/loop_communication.py +9 -8
  3. {learning_loop_node-0.16.0 → learning_loop_node-0.16.1}/pyproject.toml +1 -1
  4. {learning_loop_node-0.16.0 → learning_loop_node-0.16.1}/README.md +0 -0
  5. {learning_loop_node-0.16.0 → learning_loop_node-0.16.1}/learning_loop_node/__init__.py +0 -0
  6. {learning_loop_node-0.16.0 → learning_loop_node-0.16.1}/learning_loop_node/annotation/__init__.py +0 -0
  7. {learning_loop_node-0.16.0 → learning_loop_node-0.16.1}/learning_loop_node/annotation/annotator_logic.py +0 -0
  8. {learning_loop_node-0.16.0 → learning_loop_node-0.16.1}/learning_loop_node/annotation/annotator_node.py +0 -0
  9. {learning_loop_node-0.16.0 → learning_loop_node-0.16.1}/learning_loop_node/data_classes/__init__.py +0 -0
  10. {learning_loop_node-0.16.0 → learning_loop_node-0.16.1}/learning_loop_node/data_classes/annotations.py +0 -0
  11. {learning_loop_node-0.16.0 → learning_loop_node-0.16.1}/learning_loop_node/data_classes/detections.py +0 -0
  12. {learning_loop_node-0.16.0 → learning_loop_node-0.16.1}/learning_loop_node/data_classes/general.py +0 -0
  13. {learning_loop_node-0.16.0 → learning_loop_node-0.16.1}/learning_loop_node/data_classes/image_metadata.py +0 -0
  14. {learning_loop_node-0.16.0 → learning_loop_node-0.16.1}/learning_loop_node/data_classes/socket_response.py +0 -0
  15. {learning_loop_node-0.16.0 → learning_loop_node-0.16.1}/learning_loop_node/data_classes/training.py +0 -0
  16. {learning_loop_node-0.16.0 → learning_loop_node-0.16.1}/learning_loop_node/data_exchanger.py +0 -0
  17. {learning_loop_node-0.16.0 → learning_loop_node-0.16.1}/learning_loop_node/detector/__init__.py +0 -0
  18. {learning_loop_node-0.16.0 → learning_loop_node-0.16.1}/learning_loop_node/detector/detector_logic.py +0 -0
  19. {learning_loop_node-0.16.0 → learning_loop_node-0.16.1}/learning_loop_node/detector/detector_node.py +0 -0
  20. {learning_loop_node-0.16.0 → learning_loop_node-0.16.1}/learning_loop_node/detector/exceptions.py +0 -0
  21. {learning_loop_node-0.16.0 → learning_loop_node-0.16.1}/learning_loop_node/detector/inbox_filter/__init__.py +0 -0
  22. {learning_loop_node-0.16.0 → learning_loop_node-0.16.1}/learning_loop_node/detector/inbox_filter/cam_observation_history.py +0 -0
  23. {learning_loop_node-0.16.0 → learning_loop_node-0.16.1}/learning_loop_node/detector/inbox_filter/relevance_filter.py +0 -0
  24. {learning_loop_node-0.16.0 → learning_loop_node-0.16.1}/learning_loop_node/detector/outbox.py +0 -0
  25. {learning_loop_node-0.16.0 → learning_loop_node-0.16.1}/learning_loop_node/detector/rest/__init__.py +0 -0
  26. {learning_loop_node-0.16.0 → learning_loop_node-0.16.1}/learning_loop_node/detector/rest/about.py +0 -0
  27. {learning_loop_node-0.16.0 → learning_loop_node-0.16.1}/learning_loop_node/detector/rest/backdoor_controls.py +0 -0
  28. {learning_loop_node-0.16.0 → learning_loop_node-0.16.1}/learning_loop_node/detector/rest/detect.py +0 -0
  29. {learning_loop_node-0.16.0 → learning_loop_node-0.16.1}/learning_loop_node/detector/rest/model_version_control.py +0 -0
  30. {learning_loop_node-0.16.0 → learning_loop_node-0.16.1}/learning_loop_node/detector/rest/operation_mode.py +0 -0
  31. {learning_loop_node-0.16.0 → learning_loop_node-0.16.1}/learning_loop_node/detector/rest/outbox_mode.py +0 -0
  32. {learning_loop_node-0.16.0 → learning_loop_node-0.16.1}/learning_loop_node/detector/rest/upload.py +0 -0
  33. {learning_loop_node-0.16.0 → learning_loop_node-0.16.1}/learning_loop_node/enums/__init__.py +0 -0
  34. {learning_loop_node-0.16.0 → learning_loop_node-0.16.1}/learning_loop_node/enums/annotator.py +0 -0
  35. {learning_loop_node-0.16.0 → learning_loop_node-0.16.1}/learning_loop_node/enums/detector.py +0 -0
  36. {learning_loop_node-0.16.0 → learning_loop_node-0.16.1}/learning_loop_node/enums/general.py +0 -0
  37. {learning_loop_node-0.16.0 → learning_loop_node-0.16.1}/learning_loop_node/enums/trainer.py +0 -0
  38. {learning_loop_node-0.16.0 → learning_loop_node-0.16.1}/learning_loop_node/examples/novelty_score_updater.py +0 -0
  39. {learning_loop_node-0.16.0 → learning_loop_node-0.16.1}/learning_loop_node/globals.py +0 -0
  40. {learning_loop_node-0.16.0 → learning_loop_node-0.16.1}/learning_loop_node/helpers/__init__.py +0 -0
  41. {learning_loop_node-0.16.0 → learning_loop_node-0.16.1}/learning_loop_node/helpers/background_tasks.py +0 -0
  42. {learning_loop_node-0.16.0 → learning_loop_node-0.16.1}/learning_loop_node/helpers/environment_reader.py +0 -0
  43. {learning_loop_node-0.16.0 → learning_loop_node-0.16.1}/learning_loop_node/helpers/gdrive_downloader.py +0 -0
  44. {learning_loop_node-0.16.0 → learning_loop_node-0.16.1}/learning_loop_node/helpers/log_conf.py +0 -0
  45. {learning_loop_node-0.16.0 → learning_loop_node-0.16.1}/learning_loop_node/helpers/misc.py +0 -0
  46. {learning_loop_node-0.16.0 → learning_loop_node-0.16.1}/learning_loop_node/helpers/run.py +0 -0
  47. {learning_loop_node-0.16.0 → learning_loop_node-0.16.1}/learning_loop_node/node.py +0 -0
  48. {learning_loop_node-0.16.0 → learning_loop_node-0.16.1}/learning_loop_node/py.typed +0 -0
  49. {learning_loop_node-0.16.0 → learning_loop_node-0.16.1}/learning_loop_node/rest.py +0 -0
  50. {learning_loop_node-0.16.0 → learning_loop_node-0.16.1}/learning_loop_node/tests/__init__.py +0 -0
  51. {learning_loop_node-0.16.0 → learning_loop_node-0.16.1}/learning_loop_node/tests/annotator/__init__.py +0 -0
  52. {learning_loop_node-0.16.0 → learning_loop_node-0.16.1}/learning_loop_node/tests/annotator/conftest.py +0 -0
  53. {learning_loop_node-0.16.0 → learning_loop_node-0.16.1}/learning_loop_node/tests/annotator/pytest.ini +0 -0
  54. {learning_loop_node-0.16.0 → learning_loop_node-0.16.1}/learning_loop_node/tests/annotator/test_annotator_node.py +0 -0
  55. {learning_loop_node-0.16.0 → learning_loop_node-0.16.1}/learning_loop_node/tests/detector/__init__.py +0 -0
  56. {learning_loop_node-0.16.0 → learning_loop_node-0.16.1}/learning_loop_node/tests/detector/conftest.py +0 -0
  57. {learning_loop_node-0.16.0 → learning_loop_node-0.16.1}/learning_loop_node/tests/detector/inbox_filter/__init__.py +0 -0
  58. {learning_loop_node-0.16.0 → learning_loop_node-0.16.1}/learning_loop_node/tests/detector/inbox_filter/test_observation.py +0 -0
  59. {learning_loop_node-0.16.0 → learning_loop_node-0.16.1}/learning_loop_node/tests/detector/inbox_filter/test_relevance_group.py +0 -0
  60. {learning_loop_node-0.16.0 → learning_loop_node-0.16.1}/learning_loop_node/tests/detector/inbox_filter/test_unexpected_observations_count.py +0 -0
  61. {learning_loop_node-0.16.0 → learning_loop_node-0.16.1}/learning_loop_node/tests/detector/pytest.ini +0 -0
  62. {learning_loop_node-0.16.0 → learning_loop_node-0.16.1}/learning_loop_node/tests/detector/test.jpg +0 -0
  63. {learning_loop_node-0.16.0 → learning_loop_node-0.16.1}/learning_loop_node/tests/detector/test_client_communication.py +0 -0
  64. {learning_loop_node-0.16.0 → learning_loop_node-0.16.1}/learning_loop_node/tests/detector/test_detector_node.py +0 -0
  65. {learning_loop_node-0.16.0 → learning_loop_node-0.16.1}/learning_loop_node/tests/detector/test_outbox.py +0 -0
  66. {learning_loop_node-0.16.0 → learning_loop_node-0.16.1}/learning_loop_node/tests/detector/test_relevance_filter.py +0 -0
  67. {learning_loop_node-0.16.0 → learning_loop_node-0.16.1}/learning_loop_node/tests/detector/testing_detector.py +0 -0
  68. {learning_loop_node-0.16.0 → learning_loop_node-0.16.1}/learning_loop_node/tests/general/__init__.py +0 -0
  69. {learning_loop_node-0.16.0 → learning_loop_node-0.16.1}/learning_loop_node/tests/general/conftest.py +0 -0
  70. {learning_loop_node-0.16.0 → learning_loop_node-0.16.1}/learning_loop_node/tests/general/pytest.ini +0 -0
  71. {learning_loop_node-0.16.0 → learning_loop_node-0.16.1}/learning_loop_node/tests/general/test_data/file_1.txt +0 -0
  72. {learning_loop_node-0.16.0 → learning_loop_node-0.16.1}/learning_loop_node/tests/general/test_data/file_2.txt +0 -0
  73. {learning_loop_node-0.16.0 → learning_loop_node-0.16.1}/learning_loop_node/tests/general/test_data/model.json +0 -0
  74. {learning_loop_node-0.16.0 → learning_loop_node-0.16.1}/learning_loop_node/tests/general/test_data_classes.py +0 -0
  75. {learning_loop_node-0.16.0 → learning_loop_node-0.16.1}/learning_loop_node/tests/general/test_downloader.py +0 -0
  76. {learning_loop_node-0.16.0 → learning_loop_node-0.16.1}/learning_loop_node/tests/general/test_learning_loop_node.py +0 -0
  77. {learning_loop_node-0.16.0 → learning_loop_node-0.16.1}/learning_loop_node/tests/test_helper.py +0 -0
  78. {learning_loop_node-0.16.0 → learning_loop_node-0.16.1}/learning_loop_node/tests/trainer/__init__.py +0 -0
  79. {learning_loop_node-0.16.0 → learning_loop_node-0.16.1}/learning_loop_node/tests/trainer/conftest.py +0 -0
  80. {learning_loop_node-0.16.0 → learning_loop_node-0.16.1}/learning_loop_node/tests/trainer/pytest.ini +0 -0
  81. {learning_loop_node-0.16.0 → learning_loop_node-0.16.1}/learning_loop_node/tests/trainer/state_helper.py +0 -0
  82. {learning_loop_node-0.16.0 → learning_loop_node-0.16.1}/learning_loop_node/tests/trainer/states/__init__.py +0 -0
  83. {learning_loop_node-0.16.0 → learning_loop_node-0.16.1}/learning_loop_node/tests/trainer/states/test_state_cleanup.py +0 -0
  84. {learning_loop_node-0.16.0 → learning_loop_node-0.16.1}/learning_loop_node/tests/trainer/states/test_state_detecting.py +0 -0
  85. {learning_loop_node-0.16.0 → learning_loop_node-0.16.1}/learning_loop_node/tests/trainer/states/test_state_download_train_model.py +0 -0
  86. {learning_loop_node-0.16.0 → learning_loop_node-0.16.1}/learning_loop_node/tests/trainer/states/test_state_prepare.py +0 -0
  87. {learning_loop_node-0.16.0 → learning_loop_node-0.16.1}/learning_loop_node/tests/trainer/states/test_state_sync_confusion_matrix.py +0 -0
  88. {learning_loop_node-0.16.0 → learning_loop_node-0.16.1}/learning_loop_node/tests/trainer/states/test_state_train.py +0 -0
  89. {learning_loop_node-0.16.0 → learning_loop_node-0.16.1}/learning_loop_node/tests/trainer/states/test_state_upload_detections.py +0 -0
  90. {learning_loop_node-0.16.0 → learning_loop_node-0.16.1}/learning_loop_node/tests/trainer/states/test_state_upload_model.py +0 -0
  91. {learning_loop_node-0.16.0 → learning_loop_node-0.16.1}/learning_loop_node/tests/trainer/test_errors.py +0 -0
  92. {learning_loop_node-0.16.0 → learning_loop_node-0.16.1}/learning_loop_node/tests/trainer/test_trainer_states.py +0 -0
  93. {learning_loop_node-0.16.0 → learning_loop_node-0.16.1}/learning_loop_node/tests/trainer/testing_trainer_logic.py +0 -0
  94. {learning_loop_node-0.16.0 → learning_loop_node-0.16.1}/learning_loop_node/trainer/__init__.py +0 -0
  95. {learning_loop_node-0.16.0 → learning_loop_node-0.16.1}/learning_loop_node/trainer/downloader.py +0 -0
  96. {learning_loop_node-0.16.0 → learning_loop_node-0.16.1}/learning_loop_node/trainer/exceptions.py +0 -0
  97. {learning_loop_node-0.16.0 → learning_loop_node-0.16.1}/learning_loop_node/trainer/executor.py +0 -0
  98. {learning_loop_node-0.16.0 → learning_loop_node-0.16.1}/learning_loop_node/trainer/io_helpers.py +0 -0
  99. {learning_loop_node-0.16.0 → learning_loop_node-0.16.1}/learning_loop_node/trainer/rest/__init__.py +0 -0
  100. {learning_loop_node-0.16.0 → learning_loop_node-0.16.1}/learning_loop_node/trainer/rest/backdoor_controls.py +0 -0
  101. {learning_loop_node-0.16.0 → learning_loop_node-0.16.1}/learning_loop_node/trainer/test_executor.py +0 -0
  102. {learning_loop_node-0.16.0 → learning_loop_node-0.16.1}/learning_loop_node/trainer/trainer_logic.py +0 -0
  103. {learning_loop_node-0.16.0 → learning_loop_node-0.16.1}/learning_loop_node/trainer/trainer_logic_generic.py +0 -0
  104. {learning_loop_node-0.16.0 → learning_loop_node-0.16.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.16.0
3
+ Version: 0.16.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
@@ -8,7 +8,8 @@ from httpx import Cookies, Timeout
8
8
 
9
9
  from .helpers import environment_reader
10
10
 
11
- logging.basicConfig(level=logging.INFO)
11
+ logger = logging.getLogger('loop_communication')
12
+ logging.getLogger("httpx").setLevel(logging.WARNING)
12
13
 
13
14
  SLEEP_TIME_ON_429 = 5
14
15
  MAX_RETRIES_ON_429 = 20
@@ -37,9 +38,9 @@ class LoopCommunicator():
37
38
  host: str = environment_reader.host(default='learning-loop.ai')
38
39
  self.ssl_cert_path = environment_reader.ssl_certificate_path()
39
40
  if self.ssl_cert_path:
40
- logging.info('Using SSL certificate at %s', self.ssl_cert_path)
41
+ logger.info('Using SSL certificate at %s', self.ssl_cert_path)
41
42
  else:
42
- logging.info('No SSL certificate path set')
43
+ logger.info('No SSL certificate path set')
43
44
  self.host: str = host
44
45
  self.username: str = environment_reader.username()
45
46
  self.password: str = environment_reader.password()
@@ -52,7 +53,7 @@ class LoopCommunicator():
52
53
  else:
53
54
  self.async_client = httpx.AsyncClient(base_url=self.base_url, timeout=Timeout(60.0))
54
55
 
55
- logging.info('Loop interface initialized with base_url: %s / user: %s', self.base_url, self.username)
56
+ logger.info('Loop interface initialized with base_url: %s / user: %s', self.base_url, self.username)
56
57
 
57
58
  def websocket_url(self) -> str:
58
59
  return f'ws{"s" if "learning-loop.ai" in self.host else ""}://' + self.host
@@ -65,7 +66,7 @@ class LoopCommunicator():
65
66
  self.async_client.cookies.clear()
66
67
  response = await self.async_client.post('/api/login', data={'username': self.username, 'password': self.password})
67
68
  if response.status_code != 200:
68
- logging.info('Login failed with response: %s', response)
69
+ logger.info('Login failed with response: %s', response)
69
70
  raise LoopCommunicationException('Login failed with response: ' + str(response))
70
71
  self.async_client.cookies.update(response.cookies)
71
72
 
@@ -74,7 +75,7 @@ class LoopCommunicator():
74
75
 
75
76
  response = await self.async_client.post('/api/logout')
76
77
  if response.status_code != 200:
77
- logging.info('Logout failed with response: %s', response)
78
+ logger.info('Logout failed with response: %s', response)
78
79
  raise LoopCommunicationException('Logout failed with response: ' + str(response))
79
80
  self.async_client.cookies.clear()
80
81
 
@@ -90,12 +91,12 @@ class LoopCommunicator():
90
91
  start_time = time.time()
91
92
  while True:
92
93
  try:
93
- logging.info('Checking if backend is ready')
94
+ logger.info('Checking if backend is ready')
94
95
  response = await self.get('/status', requires_login=False)
95
96
  if response.status_code == 200:
96
97
  return True
97
98
  except Exception:
98
- logging.info('backend not ready yet.')
99
+ logger.info('backend not ready yet.')
99
100
  if timeout is not None and time.time() + 10 - start_time > timeout:
100
101
  raise TimeoutError('Backend not ready within timeout')
101
102
  await asyncio.sleep(10)
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "learning_loop_node"
3
- version = "v0.16.0"
3
+ version = "v0.16.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"