learning-loop-node 0.10.8__py3-none-any.whl → 0.10.9__py3-none-any.whl
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.
- learning_loop_node/detector/detector_node.py +1 -1
- learning_loop_node/detector/outbox.py +65 -33
- learning_loop_node/detector/rest/outbox_mode.py +1 -1
- learning_loop_node/tests/annotator/conftest.py +50 -0
- learning_loop_node/{annotation/tests → tests/annotator}/test_annotator_node.py +9 -11
- learning_loop_node/{detector/tests → tests/detector}/conftest.py +30 -4
- learning_loop_node/{detector/inbox_filter/tests → tests/detector/inbox_filter}/test_observation.py +1 -1
- learning_loop_node/{detector/inbox_filter/tests → tests/detector/inbox_filter}/test_relevance_group.py +2 -7
- learning_loop_node/{detector/inbox_filter/tests → tests/detector/inbox_filter}/test_unexpected_observations_count.py +3 -6
- learning_loop_node/tests/detector/pytest.ini +10 -0
- learning_loop_node/{detector/tests → tests/detector}/test_client_communication.py +12 -9
- learning_loop_node/tests/detector/test_outbox.py +96 -0
- learning_loop_node/{detector/tests → tests/detector}/test_relevance_filter.py +8 -6
- learning_loop_node/{detector/tests → tests/detector}/testing_detector.py +3 -3
- learning_loop_node/tests/general/__init__.py +0 -0
- learning_loop_node/tests/general/conftest.py +62 -0
- learning_loop_node/tests/general/pytest.ini +10 -0
- learning_loop_node/tests/{test_data_classes.py → general/test_data_classes.py} +3 -3
- learning_loop_node/tests/{test_downloader.py → general/test_downloader.py} +24 -12
- learning_loop_node/tests/general/test_learning_loop_node.py +20 -0
- learning_loop_node/tests/test_helper.py +20 -9
- learning_loop_node/tests/trainer/__init__.py +0 -0
- learning_loop_node/{trainer/tests → tests/trainer}/conftest.py +32 -3
- learning_loop_node/tests/trainer/pytest.ini +10 -0
- learning_loop_node/{trainer/tests → tests/trainer}/state_helper.py +2 -1
- learning_loop_node/tests/trainer/states/__init__.py +0 -0
- learning_loop_node/{trainer/tests → tests/trainer}/states/test_state_cleanup.py +2 -2
- learning_loop_node/{trainer/tests → tests/trainer}/states/test_state_detecting.py +5 -5
- learning_loop_node/{trainer/tests → tests/trainer}/states/test_state_download_train_model.py +3 -3
- learning_loop_node/{trainer/tests → tests/trainer}/states/test_state_prepare.py +4 -4
- learning_loop_node/{trainer/tests → tests/trainer}/states/test_state_sync_confusion_matrix.py +3 -4
- learning_loop_node/{trainer/tests → tests/trainer}/states/test_state_train.py +4 -4
- learning_loop_node/{trainer/tests → tests/trainer}/states/test_state_upload_detections.py +6 -6
- learning_loop_node/{trainer/tests → tests/trainer}/states/test_state_upload_model.py +4 -4
- learning_loop_node/{trainer/tests → tests/trainer}/test_errors.py +3 -3
- learning_loop_node/{trainer/tests → tests/trainer}/test_trainer_states.py +4 -4
- learning_loop_node/{trainer/tests → tests/trainer}/testing_trainer_logic.py +2 -2
- learning_loop_node/{tests → trainer}/test_executor.py +1 -1
- learning_loop_node/trainer/trainer_node.py +5 -7
- {learning_loop_node-0.10.8.dist-info → learning_loop_node-0.10.9.dist-info}/METADATA +1 -1
- learning_loop_node-0.10.9.dist-info/RECORD +93 -0
- learning_loop_node/conftest.py +0 -89
- learning_loop_node/detector/tests/test_outbox.py +0 -86
- learning_loop_node/tests/conftest.py +0 -21
- learning_loop_node/tests/test_learning_loop_node.py +0 -18
- learning_loop_node-0.10.8.dist-info/RECORD +0 -87
- /learning_loop_node/{detector/tests → tests/annotator}/__init__.py +0 -0
- /learning_loop_node/{pytest.ini → tests/annotator/pytest.ini} +0 -0
- /learning_loop_node/{trainer/tests → tests/detector}/__init__.py +0 -0
- /learning_loop_node/{trainer/tests/states → tests/detector/inbox_filter}/__init__.py +0 -0
- /learning_loop_node/{detector/tests → tests/detector}/test.jpg +0 -0
- /learning_loop_node/tests/{test_data → general/test_data}/file_1.txt +0 -0
- /learning_loop_node/tests/{test_data → general/test_data}/file_2.txt +0 -0
- /learning_loop_node/tests/{test_data → general/test_data}/model.json +0 -0
- {learning_loop_node-0.10.8.dist-info → learning_loop_node-0.10.9.dist-info}/WHEEL +0 -0
learning_loop_node/conftest.py
DELETED
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
import asyncio
|
|
3
|
-
import logging
|
|
4
|
-
import os
|
|
5
|
-
import shutil
|
|
6
|
-
|
|
7
|
-
import pytest
|
|
8
|
-
|
|
9
|
-
from learning_loop_node.data_classes import (BoxDetection,
|
|
10
|
-
ClassificationDetection, Context,
|
|
11
|
-
Detections, Point, PointDetection,
|
|
12
|
-
SegmentationDetection, Shape)
|
|
13
|
-
|
|
14
|
-
from .data_exchanger import DataExchanger
|
|
15
|
-
from .globals import GLOBALS
|
|
16
|
-
from .loop_communication import LoopCommunicator
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
@pytest.fixture()
|
|
20
|
-
async def glc():
|
|
21
|
-
loop_communicator = LoopCommunicator()
|
|
22
|
-
yield loop_communicator
|
|
23
|
-
await loop_communicator.shutdown()
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
@pytest.fixture()
|
|
27
|
-
async def data_exchanger():
|
|
28
|
-
loop_communicator = LoopCommunicator()
|
|
29
|
-
context = Context(organization='zauberzeug', project='pytest')
|
|
30
|
-
dx = DataExchanger(context, loop_communicator)
|
|
31
|
-
yield dx
|
|
32
|
-
await loop_communicator.shutdown()
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
@pytest.fixture()
|
|
36
|
-
async def setup_test_project(): # pylint: disable=redefined-outer-name
|
|
37
|
-
loop_communicator = LoopCommunicator()
|
|
38
|
-
await loop_communicator.delete("/zauberzeug/projects/pytest_p?keep_images=true")
|
|
39
|
-
await asyncio.sleep(1)
|
|
40
|
-
project_conf = {
|
|
41
|
-
'project_name': 'pytest_p', 'inbox': 0, 'annotate': 0, 'review': 0, 'complete': 3, 'image_style': 'beautiful',
|
|
42
|
-
'box_categories': 2, 'point_categories': 2, 'segmentation_categories': 2, 'thumbs': False, 'tags': 0,
|
|
43
|
-
'trainings': 1, 'box_detections': 3, 'box_annotations': 0}
|
|
44
|
-
assert (await loop_communicator.post("/zauberzeug/projects/generator", json=project_conf)).status_code == 200
|
|
45
|
-
yield
|
|
46
|
-
await loop_communicator.delete("/zauberzeug/projects/pytest_p?keep_images=true")
|
|
47
|
-
await loop_communicator.shutdown()
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
@pytest.fixture(autouse=True, scope='session')
|
|
51
|
-
def clear_loggers():
|
|
52
|
-
"""Remove handlers from all loggers"""
|
|
53
|
-
# see https://github.com/pytest-dev/pytest/issues/5502
|
|
54
|
-
yield
|
|
55
|
-
|
|
56
|
-
loggers = [logging.getLogger()] + list(logging.Logger.manager.loggerDict.values())
|
|
57
|
-
for logger in loggers:
|
|
58
|
-
if not isinstance(logger, logging.Logger):
|
|
59
|
-
continue
|
|
60
|
-
handlers = getattr(logger, 'handlers', [])
|
|
61
|
-
for handler in handlers:
|
|
62
|
-
logger.removeHandler(handler)
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
@pytest.fixture(autouse=True, scope='function')
|
|
66
|
-
def data_folder():
|
|
67
|
-
GLOBALS.data_folder = '/tmp/learning_loop_lib_data'
|
|
68
|
-
shutil.rmtree(GLOBALS.data_folder, ignore_errors=True)
|
|
69
|
-
os.makedirs(GLOBALS.data_folder, exist_ok=True)
|
|
70
|
-
yield
|
|
71
|
-
shutil.rmtree(GLOBALS.data_folder, ignore_errors=True)
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
def get_dummy_detections():
|
|
75
|
-
return Detections(
|
|
76
|
-
box_detections=[
|
|
77
|
-
BoxDetection(category_name='some_category_name', x=1, y=2, height=3, width=4,
|
|
78
|
-
model_name='some_model', confidence=.42, category_id='some_id')],
|
|
79
|
-
point_detections=[
|
|
80
|
-
PointDetection(category_name='some_category_name_2', x=10, y=12,
|
|
81
|
-
model_name='some_model', confidence=.42, category_id='some_id_2')],
|
|
82
|
-
segmentation_detections=[
|
|
83
|
-
SegmentationDetection(category_name='some_category_name_3',
|
|
84
|
-
shape=Shape(points=[Point(x=1, y=1)]),
|
|
85
|
-
model_name='some_model', confidence=.42,
|
|
86
|
-
category_id='some_id_3')],
|
|
87
|
-
classification_detections=[
|
|
88
|
-
ClassificationDetection(category_name='some_category_name_4', model_name='some_model',
|
|
89
|
-
confidence=.42, category_id='some_id_4')])
|
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
import os
|
|
2
|
-
import shutil
|
|
3
|
-
from time import sleep
|
|
4
|
-
|
|
5
|
-
import numpy as np
|
|
6
|
-
import pytest
|
|
7
|
-
from PIL import Image
|
|
8
|
-
|
|
9
|
-
from learning_loop_node.data_classes import Detections
|
|
10
|
-
from learning_loop_node.detector.detector_node import DetectorNode
|
|
11
|
-
from learning_loop_node.detector.outbox import Outbox
|
|
12
|
-
|
|
13
|
-
# pylint: disable=redefined-outer-name
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
@pytest.fixture()
|
|
17
|
-
def test_outbox():
|
|
18
|
-
os.environ['LOOP_ORGANIZATION'] = 'zauberzeug'
|
|
19
|
-
os.environ['LOOP_PROJECT'] = 'demo'
|
|
20
|
-
test_outbox = Outbox()
|
|
21
|
-
shutil.rmtree(test_outbox.path, ignore_errors=True)
|
|
22
|
-
os.mkdir(test_outbox.path)
|
|
23
|
-
|
|
24
|
-
yield test_outbox
|
|
25
|
-
test_outbox.set_mode('stopped')
|
|
26
|
-
shutil.rmtree(test_outbox.path, ignore_errors=True)
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
def test_files_are_deleted_after_sending(test_outbox: Outbox):
|
|
30
|
-
assert test_outbox.path.startswith('/tmp')
|
|
31
|
-
os.mkdir(f'{test_outbox.path}/test')
|
|
32
|
-
with open(f'{test_outbox.path}/test/image.json', 'w') as f:
|
|
33
|
-
f.write('{"box_detections":[]}')
|
|
34
|
-
f.close()
|
|
35
|
-
|
|
36
|
-
img = Image.new('RGB', (60, 30), color=(73, 109, 137))
|
|
37
|
-
img.save(f'{test_outbox.path}/test/image.jpg')
|
|
38
|
-
|
|
39
|
-
items = test_outbox.get_data_files()
|
|
40
|
-
assert len(items) == 1
|
|
41
|
-
|
|
42
|
-
test_outbox.upload()
|
|
43
|
-
|
|
44
|
-
items = test_outbox.get_data_files()
|
|
45
|
-
assert len(items) == 0
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
def test_saving_opencv_image(test_outbox: Outbox):
|
|
49
|
-
img = np.ones((300, 300, 1), np.uint8)*255
|
|
50
|
-
test_outbox.save(img.tobytes())
|
|
51
|
-
items = test_outbox.get_data_files()
|
|
52
|
-
assert len(items) == 1
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
def test_saving_binary(test_outbox: Outbox):
|
|
56
|
-
assert len(test_outbox.get_data_files()) == 0
|
|
57
|
-
save_test_image_to_outbox(test_outbox)
|
|
58
|
-
assert len(test_outbox.get_data_files()) == 1
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
@pytest.mark.asyncio
|
|
62
|
-
async def test_files_are_automatically_uploaded(test_detector_node: DetectorNode):
|
|
63
|
-
test_detector_node.outbox.save(Image.new('RGB', (60, 30), color=(73, 109, 137)).tobytes(), Detections())
|
|
64
|
-
assert len(test_detector_node.outbox.get_data_files()) == 1
|
|
65
|
-
|
|
66
|
-
assert len(test_detector_node.outbox.get_data_files()) == 1
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
def test_set_outbox_mode(test_outbox: Outbox):
|
|
70
|
-
test_outbox.set_mode('stopped')
|
|
71
|
-
save_test_image_to_outbox(outbox=test_outbox)
|
|
72
|
-
sleep(6)
|
|
73
|
-
assert len(test_outbox.get_data_files()) == 1, 'File was cleared even though outbox should be stopped'
|
|
74
|
-
test_outbox.set_mode('continuous_upload')
|
|
75
|
-
sleep(6)
|
|
76
|
-
assert len(test_outbox.get_data_files()) == 0, 'File was not cleared even though outbox should be in continuous_upload'
|
|
77
|
-
|
|
78
|
-
### Helper functions ###
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
def save_test_image_to_outbox(outbox: Outbox):
|
|
82
|
-
img = Image.new('RGB', (60, 30), color=(73, 109, 137))
|
|
83
|
-
img.save('/tmp/image.jpg')
|
|
84
|
-
with open('/tmp/image.jpg', 'rb') as f:
|
|
85
|
-
data = f.read()
|
|
86
|
-
outbox.save(data)
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import asyncio
|
|
2
|
-
|
|
3
|
-
import pytest
|
|
4
|
-
|
|
5
|
-
from learning_loop_node.loop_communication import LoopCommunicator
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
@pytest.fixture(autouse=True, scope='function')
|
|
9
|
-
async def create_project_for_module():
|
|
10
|
-
|
|
11
|
-
loop_communicator = LoopCommunicator()
|
|
12
|
-
await loop_communicator.delete("/zauberzeug/projects/pytest?keep_images=true")
|
|
13
|
-
await asyncio.sleep(1)
|
|
14
|
-
project_configuration = {
|
|
15
|
-
'project_name': 'pytest', 'inbox': 0, 'annotate': 0, 'review': 0, 'complete': 3, 'image_style': 'beautiful',
|
|
16
|
-
'box_categories': 2, 'point_categories': 2, 'segmentation_categories': 2, 'thumbs': False, 'tags': 0,
|
|
17
|
-
'trainings': 1, 'box_detections': 3, 'box_annotations': 0}
|
|
18
|
-
assert (await loop_communicator.post("/zauberzeug/projects/generator", json=project_configuration)).status_code == 200
|
|
19
|
-
yield
|
|
20
|
-
await loop_communicator.delete("/zauberzeug/projects/pytest?keep_images=true")
|
|
21
|
-
await loop_communicator.shutdown()
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
from typing import List
|
|
2
|
-
|
|
3
|
-
import pytest
|
|
4
|
-
|
|
5
|
-
from learning_loop_node.helpers.misc import create_resource_paths
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
@pytest.mark.parametrize("image_ids,expected_urls,expected_ids", [
|
|
9
|
-
(['some_id'], ['/zauberzeug/projects/pytest/images/some_id/main'], ['some_id']),
|
|
10
|
-
(['some_id_1', 'some_id_2'], ['/zauberzeug/projects/pytest/images/some_id_1/main',
|
|
11
|
-
'/zauberzeug/projects/pytest/images/some_id_2/main'], ['some_id_1', 'some_id_2']),
|
|
12
|
-
([], [], [])
|
|
13
|
-
])
|
|
14
|
-
def test_resource_path_creation(image_ids: List[str], expected_urls: List[str], expected_ids: List['str']):
|
|
15
|
-
urls, ids = create_resource_paths('zauberzeug', 'pytest', image_ids)
|
|
16
|
-
|
|
17
|
-
assert urls == expected_urls
|
|
18
|
-
assert ids == expected_ids
|
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
learning_loop_node/__init__.py,sha256=onN5s8-x_xBsCM6NLmJO0Ym1sJHeCFaGw8qb0oQZmz8,364
|
|
2
|
-
learning_loop_node/annotation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
3
|
-
learning_loop_node/annotation/annotator_logic.py,sha256=BTaopkJZkIf1CI5lfsVKsxbxoUIbDJrevavuQUT5e_c,1000
|
|
4
|
-
learning_loop_node/annotation/annotator_node.py,sha256=wk11CQtM3A0Dr7efCn_Mw2X7ql5xn2sgEJzrIeSBC6Q,4043
|
|
5
|
-
learning_loop_node/annotation/tests/test_annotator_node.py,sha256=VdwM7Z0vqmwewmijmUPduo9hxZYn5y1nlFauxnjxoDs,2046
|
|
6
|
-
learning_loop_node/conftest.py,sha256=Q_8Dbl3RwI8X_Y5Zvzstr6NJEqY3KldZXVx618OLdb4,3492
|
|
7
|
-
learning_loop_node/data_classes/__init__.py,sha256=wCX88lDgbb8V-gtVCVe9i-NvvZuMe5FX7eD_UJgYYXw,1305
|
|
8
|
-
learning_loop_node/data_classes/annotations.py,sha256=iInU0Nuy_oYT_sj4k_n-W0UShCBI2cHQYrt8imymbtM,1211
|
|
9
|
-
learning_loop_node/data_classes/detections.py,sha256=1BcU5PNzIbryWcj2xJ6ysLBTBwGOdv9SxSJiUG8WEmw,4349
|
|
10
|
-
learning_loop_node/data_classes/general.py,sha256=44GJrJvGfPwDUmRsS7If9uSlE6KPP50LGUX91VzesLw,4664
|
|
11
|
-
learning_loop_node/data_classes/socket_response.py,sha256=tIdt-oYf6ULoJIDYQCecNM9OtWR6_wJ9tL0Ksu83Vko,655
|
|
12
|
-
learning_loop_node/data_classes/training.py,sha256=hnMHZMk-WNRERyo7U97qL09v1tIdhnzPfTH-JgifLwU,6164
|
|
13
|
-
learning_loop_node/data_exchanger.py,sha256=BTrXwjNkG9KgtUxil_ijMggql8sZDKXQm26xdKQr8_0,8459
|
|
14
|
-
learning_loop_node/detector/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
15
|
-
learning_loop_node/detector/detector_logic.py,sha256=se0jRFbV7BfTvCuCI3gcUllSYIZ5dxTkvdISe6pPTRg,1660
|
|
16
|
-
learning_loop_node/detector/detector_node.py,sha256=ggnjv0lbSpgIAda-omUYiMAUAlktaWzGClH_iZ4Axd4,16689
|
|
17
|
-
learning_loop_node/detector/inbox_filter/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
18
|
-
learning_loop_node/detector/inbox_filter/cam_observation_history.py,sha256=TD346I9ymtIP0_CJXCIKMRuiXbfVVanXNu_iHAwDd7Q,3318
|
|
19
|
-
learning_loop_node/detector/inbox_filter/relevance_filter.py,sha256=s2FuwZ-tD_5obkSutstjc8pE_hLGbrv9WjrEO9t8rJ8,1011
|
|
20
|
-
learning_loop_node/detector/inbox_filter/tests/test_observation.py,sha256=ORN08yjprqmgmtU25RsVysniyrWX-qGvqFN8ZkkYxow,1385
|
|
21
|
-
learning_loop_node/detector/inbox_filter/tests/test_relevance_group.py,sha256=RUgsk1CnKSOCRZBzNjE7AZTqk06-yelgUqvHFRLH7_I,7865
|
|
22
|
-
learning_loop_node/detector/inbox_filter/tests/test_unexpected_observations_count.py,sha256=y_dFUV21h6uZc90Q43s0u4oivJfuCNWlk5iXAWiXGgc,1804
|
|
23
|
-
learning_loop_node/detector/outbox.py,sha256=xxshif8SRpkyjKrc1dVNW3QUg-DROtXG2NB8i50A5ho,6918
|
|
24
|
-
learning_loop_node/detector/rest/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
25
|
-
learning_loop_node/detector/rest/about.py,sha256=-PNqlQI_tzRvoSI_UR9rX8-5GeiENNpRDQ4Ylw3wYVs,607
|
|
26
|
-
learning_loop_node/detector/rest/backdoor_controls.py,sha256=38axRG66Z3_Q6bYKa7Hw-ldChEAu-dJcBM_Sl_17Ozo,1725
|
|
27
|
-
learning_loop_node/detector/rest/detect.py,sha256=8Rl1swANKgHc42P1z75t_PErQxpCKKPdAsKqDIZgdNU,1873
|
|
28
|
-
learning_loop_node/detector/rest/operation_mode.py,sha256=eIo6_56qyZECftf4AEN8wJMABIojC0TRazvWeg0Uj_s,1664
|
|
29
|
-
learning_loop_node/detector/rest/outbox_mode.py,sha256=N62NOb9cJZCkZTVC6iJVr6hX9slLR7Aym0WwTYinl7A,1012
|
|
30
|
-
learning_loop_node/detector/rest/upload.py,sha256=IPzxJPayD7_Gx5uYC1lVJwWxdnQgM8MYGa5NugXVosY,544
|
|
31
|
-
learning_loop_node/detector/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
32
|
-
learning_loop_node/detector/tests/conftest.py,sha256=v08N5_jvQyeqQkOzkTaanCwwVd75Rf-tc1M2-fgiv54,3254
|
|
33
|
-
learning_loop_node/detector/tests/test.jpg,sha256=msA-vHPmvPiro_D102Qmn1fn4vNfooqYYEXPxZUmYpk,161390
|
|
34
|
-
learning_loop_node/detector/tests/test_client_communication.py,sha256=pgmRvn6FunXQgijgYNkJAz7X3Hv8f52YbK4XF9EfVKk,5240
|
|
35
|
-
learning_loop_node/detector/tests/test_outbox.py,sha256=_d-RdBBAadAW56O7oP5b2mYQ_D3u36T5QjzkcmFx24c,2661
|
|
36
|
-
learning_loop_node/detector/tests/test_relevance_filter.py,sha256=FzeOU6k17VIQvAHR8fjHbcPeAE7D7C-2Yxol0lDrMEM,1981
|
|
37
|
-
learning_loop_node/detector/tests/testing_detector.py,sha256=2DSwIYJDOG4ixOGU8OxjsZQgaOdVU7_d3ASKsSkf8qc,564
|
|
38
|
-
learning_loop_node/examples/novelty_score_updater.py,sha256=1DRgM9lxjFV-q2JvGDDsNLz_ic_rhEZ9wc6ZdjcxwPE,2038
|
|
39
|
-
learning_loop_node/globals.py,sha256=tgw_8RYOipPV9aYlyUhYtXfUxvJKRvfUk6u-qVAtZmY,174
|
|
40
|
-
learning_loop_node/helpers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
41
|
-
learning_loop_node/helpers/environment_reader.py,sha256=OtCTDc0KT9r-SMygkZB_Mw-ZIJPfUZVyUzHJoDCgJP8,1658
|
|
42
|
-
learning_loop_node/helpers/gdrive_downloader.py,sha256=zeYJciTAJVRpu_eFjwgYLCpIa6hU1d71anqEBb564Rk,1145
|
|
43
|
-
learning_loop_node/helpers/log_conf.py,sha256=3yd-jaMOeD5cRIgA5w_BH2L5odf8c4-ZjD89Bdqwe44,824
|
|
44
|
-
learning_loop_node/helpers/misc.py,sha256=j4is8Rv0ttnCqF-R-wP3xwEi67OI6IBJav5Woo5lyDk,7701
|
|
45
|
-
learning_loop_node/loop_communication.py,sha256=rG5MdavSTaREZ6OWfAUIT_qkkYPw3is2_FujLmHQeIc,6576
|
|
46
|
-
learning_loop_node/node.py,sha256=pJg3mO7Egwtu7ewzWWgEXMtCG17u7yZjFt-KeN9n7rM,8010
|
|
47
|
-
learning_loop_node/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
48
|
-
learning_loop_node/pytest.ini,sha256=8QdjmawLy1zAzXrJ88or1kpFDhJw0W5UOnDfGGs_igU,262
|
|
49
|
-
learning_loop_node/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
50
|
-
learning_loop_node/tests/conftest.py,sha256=vFj8jjwSBzt6IAIxEo7y0rN0I94SPkK2pZsMvrvET5Q,920
|
|
51
|
-
learning_loop_node/tests/test_data/file_1.txt,sha256=Lis06nfvbFPVCBZyEgQlfI_Nle2YDq1GQBlYvEfFtxw,19
|
|
52
|
-
learning_loop_node/tests/test_data/file_2.txt,sha256=Xp8EETGhZBdVAgb4URowSSpOytwwwJdV0Renkdur7R8,19
|
|
53
|
-
learning_loop_node/tests/test_data/model.json,sha256=_xNDucGOWila8gWnu8yFfrqmQ45Xq-_39eLKzjRtvpE,516
|
|
54
|
-
learning_loop_node/tests/test_data_classes.py,sha256=m8LEk1quGErxuPzNdW_ExqQjkwE4u7ribwnTdyeiHR8,788
|
|
55
|
-
learning_loop_node/tests/test_downloader.py,sha256=RkXNVQJkfPddGzxfJgSF7kc-V6Qp1OOvYYuhQ9g_ls4,2806
|
|
56
|
-
learning_loop_node/tests/test_executor.py,sha256=DuwYv-27R0fUqkcMmIiArXhiPhDnLzgNC4vp2r6Jyj4,2250
|
|
57
|
-
learning_loop_node/tests/test_helper.py,sha256=AjOrTu3dHIlJLYI0mxcNx8MCmFF6IjLhHtPzuai4O9E,2334
|
|
58
|
-
learning_loop_node/tests/test_learning_loop_node.py,sha256=4qWi1ovBzebUAbvw8ecSa-TBGKYuJvlKe2AMnMZ-Qs8,701
|
|
59
|
-
learning_loop_node/trainer/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
60
|
-
learning_loop_node/trainer/downloader.py,sha256=qzx7zzObcFEvRVQFe8gi8KJNIapASi1_XssbspXD1Rw,1469
|
|
61
|
-
learning_loop_node/trainer/exceptions.py,sha256=hLLDGncC6PLZjKg4lZBpu-QA8itQIxiuxExz1uptgnw,40
|
|
62
|
-
learning_loop_node/trainer/executor.py,sha256=-0BxDqmAI1NCiISi7Rw8McJQfgxxVy1gSa1epYuL3U0,3942
|
|
63
|
-
learning_loop_node/trainer/io_helpers.py,sha256=Ylxz8HAId0Jlz95So5kXdJEp1yKQuwroDKIhbTUscF4,7257
|
|
64
|
-
learning_loop_node/trainer/rest/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
65
|
-
learning_loop_node/trainer/rest/backdoor_controls.py,sha256=YQcG0KwxzKDNYeMtHrSwr26q__N7ty0o6Kar6CLWAd0,5869
|
|
66
|
-
learning_loop_node/trainer/rest/controls.py,sha256=XF37i2edeMHKdSXyJc4ZqaTZ38u6d3u3Sb3C-Mwyfko,934
|
|
67
|
-
learning_loop_node/trainer/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
68
|
-
learning_loop_node/trainer/tests/conftest.py,sha256=qUmcHPme19AD6K6sQektX63iZecdqPRHKQ2CVNoBzNg,2455
|
|
69
|
-
learning_loop_node/trainer/tests/state_helper.py,sha256=igoGqTBqcqqFcDng2i7ctC67bYR1hLPDl4G_mNRG6r8,934
|
|
70
|
-
learning_loop_node/trainer/tests/states/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
71
|
-
learning_loop_node/trainer/tests/states/test_state_cleanup.py,sha256=tiL31hSjg1Bl2obzg2ufAVpil5qW0YkpDCpSHPqXQrk,1312
|
|
72
|
-
learning_loop_node/trainer/tests/states/test_state_detecting.py,sha256=8DSCurMPNuCq1zJ3rC-UA5-IoEcvWGdivHGmXCiakdo,3829
|
|
73
|
-
learning_loop_node/trainer/tests/states/test_state_download_train_model.py,sha256=rNRXIyqyHzHz4fXY1Lsf7WKg8FFVFYfFPIevMCBBcCY,2940
|
|
74
|
-
learning_loop_node/trainer/tests/states/test_state_prepare.py,sha256=fx9_bgPTaR5ANVB8n_hW8dXcaJIh_iKEnInmhzamZ9E,2432
|
|
75
|
-
learning_loop_node/trainer/tests/states/test_state_sync_confusion_matrix.py,sha256=zfNbHB3GFSJXXoEkW-8PYtmX62md3feWp4oisyzs8A4,4773
|
|
76
|
-
learning_loop_node/trainer/tests/states/test_state_train.py,sha256=j1vedjH2EwLTgHhon6eR9ttp-Sw9ozR9-9QgAKlFO-M,3248
|
|
77
|
-
learning_loop_node/trainer/tests/states/test_state_upload_detections.py,sha256=u31gC0-Z2EVTnia1dyY2yNGDGAeyIXPfObBgrEWHhVQ,7674
|
|
78
|
-
learning_loop_node/trainer/tests/states/test_state_upload_model.py,sha256=lWjIqjWBpWppjgX5U9yw_EZw8Zl2BD0cjuZYoMk4ccQ,3751
|
|
79
|
-
learning_loop_node/trainer/tests/test_errors.py,sha256=8H-kjs9kEBoHWcQVJIZvW5zcwCs1VQI5Tf5I0VSbCUA,2245
|
|
80
|
-
learning_loop_node/trainer/tests/test_trainer_states.py,sha256=OBrClH6srAM2hqqel2xTtfHCeTKYZlG_S4KO2G2GrS4,1147
|
|
81
|
-
learning_loop_node/trainer/tests/testing_trainer_logic.py,sha256=eKvCRznWNzHctBEmgiSVemTcLDfCvy80IuhmxkFpvvI,3915
|
|
82
|
-
learning_loop_node/trainer/trainer_logic.py,sha256=PJxiO1chPdvpq8UTtzv_nVam9CouCswX9b1FnRwT2Tw,8411
|
|
83
|
-
learning_loop_node/trainer/trainer_logic_generic.py,sha256=AzllMMiUPP_CMkjIVqse8wY50Cg5RDnk5y5ERVUjtZg,25801
|
|
84
|
-
learning_loop_node/trainer/trainer_node.py,sha256=bcyOMeLXrLuLgsPqS8lwEOSZ6vCjGLgT0pLXgaylI1Q,4155
|
|
85
|
-
learning_loop_node-0.10.8.dist-info/METADATA,sha256=TAvIF5I8xB6G4_bXVZs0BOoeyYdUDuMbm-WjUg1G1tw,10383
|
|
86
|
-
learning_loop_node-0.10.8.dist-info/WHEEL,sha256=WGfLGfLX43Ei_YORXSnT54hxFygu34kMpcQdmgmEwCQ,88
|
|
87
|
-
learning_loop_node-0.10.8.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|