dtlpy 1.90.37__py3-none-any.whl → 1.91.37__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.
- dtlpy/__version__.py +1 -1
- dtlpy/assets/lock_open.png +0 -0
- dtlpy/entities/analytic.py +118 -98
- dtlpy/entities/annotation.py +22 -31
- dtlpy/entities/annotation_collection.py +19 -21
- dtlpy/entities/app.py +13 -3
- dtlpy/entities/assignment.py +6 -0
- dtlpy/entities/base_entity.py +0 -24
- dtlpy/entities/dataset.py +1 -1
- dtlpy/entities/dpk.py +15 -0
- dtlpy/entities/execution.py +13 -1
- dtlpy/entities/filters.py +85 -6
- dtlpy/entities/integration.py +1 -1
- dtlpy/entities/item.py +26 -0
- dtlpy/entities/node.py +38 -2
- dtlpy/entities/ontology.py +61 -0
- dtlpy/entities/package_function.py +2 -0
- dtlpy/entities/package_module.py +13 -0
- dtlpy/entities/pipeline_execution.py +14 -6
- dtlpy/entities/prompt_item.py +10 -0
- dtlpy/entities/recipe.py +37 -0
- dtlpy/entities/service.py +31 -2
- dtlpy/ml/base_model_adapter.py +92 -2
- dtlpy/repositories/apps.py +12 -12
- dtlpy/repositories/assignments.py +1 -1
- dtlpy/repositories/datasets.py +1 -1
- dtlpy/repositories/dpks.py +29 -0
- dtlpy/repositories/executions.py +27 -30
- dtlpy/repositories/features.py +4 -1
- dtlpy/repositories/packages.py +6 -3
- dtlpy/repositories/pipeline_executions.py +5 -5
- dtlpy/repositories/services.py +28 -7
- dtlpy/repositories/tasks.py +8 -2
- dtlpy/repositories/uploader.py +2 -2
- dtlpy/services/api_client.py +15 -9
- {dtlpy-1.90.37.dist-info → dtlpy-1.91.37.dist-info}/METADATA +2 -2
- {dtlpy-1.90.37.dist-info → dtlpy-1.91.37.dist-info}/RECORD +50 -45
- tests/assets/__init__.py +0 -0
- tests/assets/models_flow/__init__.py +0 -0
- tests/assets/models_flow/failedmain.py +52 -0
- tests/assets/models_flow/main.py +51 -0
- tests/assets/models_flow/main_model.py +54 -0
- tests/features/environment.py +38 -1
- {dtlpy-1.90.37.data → dtlpy-1.91.37.data}/scripts/dlp +0 -0
- {dtlpy-1.90.37.data → dtlpy-1.91.37.data}/scripts/dlp.bat +0 -0
- {dtlpy-1.90.37.data → dtlpy-1.91.37.data}/scripts/dlp.py +0 -0
- {dtlpy-1.90.37.dist-info → dtlpy-1.91.37.dist-info}/LICENSE +0 -0
- {dtlpy-1.90.37.dist-info → dtlpy-1.91.37.dist-info}/WHEEL +0 -0
- {dtlpy-1.90.37.dist-info → dtlpy-1.91.37.dist-info}/entry_points.txt +0 -0
- {dtlpy-1.90.37.dist-info → dtlpy-1.91.37.dist-info}/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: dtlpy
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.91.37
|
|
4
4
|
Summary: SDK and CLI for Dataloop platform
|
|
5
5
|
Home-page: https://github.com/dataloop-ai/dtlpy
|
|
6
6
|
Author: Dataloop Team
|
|
@@ -23,7 +23,7 @@ Requires-Dist: tqdm (>=4.63)
|
|
|
23
23
|
Requires-Dist: certifi (>=2020.12.5)
|
|
24
24
|
Requires-Dist: webvtt-py (==0.4.3)
|
|
25
25
|
Requires-Dist: aiohttp (>=3.8)
|
|
26
|
-
Requires-Dist: requests-toolbelt (>=0.
|
|
26
|
+
Requires-Dist: requests-toolbelt (>=1.0.0)
|
|
27
27
|
Requires-Dist: requests (>=2.25.0)
|
|
28
28
|
Requires-Dist: numpy (>=1.16.2)
|
|
29
29
|
Requires-Dist: pandas (>=0.24.2)
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
dtlpy/__init__.py,sha256=pJiyuUv6L9bWnW1vcknHAjYP-pouMCYzzexyDKxELoI,20127
|
|
2
|
-
dtlpy/__version__.py,sha256=
|
|
2
|
+
dtlpy/__version__.py,sha256=flSe4d8yB2RB0iNWIrAprz1NjDjuef69OfvI32KUVME,20
|
|
3
3
|
dtlpy/exceptions.py,sha256=EQCKs3pwhwZhgMByQN3D3LpWpdxwcKPEEt-bIaDwURM,2871
|
|
4
4
|
dtlpy/new_instance.py,sha256=_-F1NTJgGCCHnW68eIexwq7leLGTCHcPxodbw9mfasI,5555
|
|
5
5
|
dtlpy/assets/__init__.py,sha256=D_hAa6NM8Zoy32sF_9b7m0b7I-BQEyBFg8-9Tg2WOeo,976
|
|
6
|
-
dtlpy/assets/lock_open.png,sha256=
|
|
6
|
+
dtlpy/assets/lock_open.png,sha256=BH9uyf5uYvgZrDpDw9qCUnT3UbkXG8XbeRmWDpWlV4M,18215
|
|
7
7
|
dtlpy/assets/main.py,sha256=N1JUsx79qnXI7Hx22C8JOzHJdGHxvrXeTx5UZAxvJfE,1380
|
|
8
8
|
dtlpy/assets/main_partial.py,sha256=d8Be4Whg9Tb2VFiT85-57_L9IvxRipQXiZ83SxFs0Ro,267
|
|
9
9
|
dtlpy/assets/mock.json,sha256=aByh4XlsFQJM2pOjmd7bd9zT1LSOj5pfutZDHwt8c_8,149
|
|
@@ -48,48 +48,48 @@ dtlpy/dlp/dlp.bat,sha256=QOvx8Dlx5dUbCTMpwbhOcAIXL1IWmgVRSboQqDhIn3A,37
|
|
|
48
48
|
dtlpy/dlp/dlp.py,sha256=YjNBjeCDTXJ7tj8qdiGZ8lFb8DtPZl-FvViyjxt9xF8,4278
|
|
49
49
|
dtlpy/dlp/parser.py,sha256=p-TFaiAU2c3QkI97TXzL2LDR3Eq0hGDFrTc9J2jWLh4,30551
|
|
50
50
|
dtlpy/entities/__init__.py,sha256=cwA3ZOsZbdiixwhH6D15sU_bwybDAB8P2mg1zThajBU,4510
|
|
51
|
-
dtlpy/entities/analytic.py,sha256=
|
|
52
|
-
dtlpy/entities/annotation.py,sha256=
|
|
53
|
-
dtlpy/entities/annotation_collection.py,sha256=
|
|
54
|
-
dtlpy/entities/app.py,sha256=
|
|
51
|
+
dtlpy/entities/analytic.py,sha256=5MpYDKPVsZ1MIy20Ju515RWed6P667j4TLxsan2gyNM,11925
|
|
52
|
+
dtlpy/entities/annotation.py,sha256=yk-JQzgzXvnDLFrOkmcHQfEtsiPqZeIisv80ksNB-f8,66912
|
|
53
|
+
dtlpy/entities/annotation_collection.py,sha256=CEYSBHhhDkC0VJdHsBSrA6TgdKGMcKeI3tFM40UJwS8,29838
|
|
54
|
+
dtlpy/entities/app.py,sha256=wJV_CJmEhKLXskpeKkaHHvh0tuKL7oK18wCu6eIHPXo,6751
|
|
55
55
|
dtlpy/entities/app_module.py,sha256=0UiAbBX1q8iEImi3nY7ySWZZHoRRwu0qUXmyXmgVAc4,3645
|
|
56
56
|
dtlpy/entities/artifact.py,sha256=wtLtBuidOPbnba0ok40JyunCCIBGbAl4bP_ebK39Kk4,5711
|
|
57
|
-
dtlpy/entities/assignment.py,sha256=
|
|
58
|
-
dtlpy/entities/base_entity.py,sha256=
|
|
57
|
+
dtlpy/entities/assignment.py,sha256=Dc1QcfVf67GGcmDDi4ubESDuPkSgjXqdqjTBQ31faUM,14722
|
|
58
|
+
dtlpy/entities/base_entity.py,sha256=i83KrtAz6dX4t8JEiUimLI5ZRrN0VnoUWKG2Zz49N5w,6518
|
|
59
59
|
dtlpy/entities/bot.py,sha256=is3NUCnPg56HSjsHIvFcVkymValMqDV0uHRDC1Ib-ds,3819
|
|
60
60
|
dtlpy/entities/codebase.py,sha256=pwRkAq2GV0wvmzshg89IAmE-0I2Wsy_-QNOu8OV8uqc,8999
|
|
61
61
|
dtlpy/entities/command.py,sha256=dv7w0GfTqq4OeLUoAUElYCdOrvE2Lp9Cx-XdA9N4314,4976
|
|
62
|
-
dtlpy/entities/dataset.py,sha256=
|
|
62
|
+
dtlpy/entities/dataset.py,sha256=pCf3gCSQD8L1GvXvSbVrNnpmdCuFi4n0xvw96Bjz3_0,45081
|
|
63
63
|
dtlpy/entities/directory_tree.py,sha256=Rni6pLSWytR6yeUPgEdCCRfTg_cqLOdUc9uCqz9KT-Q,1186
|
|
64
|
-
dtlpy/entities/dpk.py,sha256=
|
|
64
|
+
dtlpy/entities/dpk.py,sha256=3iL-n8a8HoWqUusAepfs3v_kDP7b_H0I_D3YucO6vuE,17325
|
|
65
65
|
dtlpy/entities/driver.py,sha256=O_QdK1EaLjQyQkmvKsmkNgmvmMb1mPjKnJGxK43KrOA,7197
|
|
66
|
-
dtlpy/entities/execution.py,sha256=
|
|
66
|
+
dtlpy/entities/execution.py,sha256=WBiAws-6wZnQQ3y9wyvOeexA3OjxfaRdwDu5dSFYL1g,13420
|
|
67
67
|
dtlpy/entities/feature.py,sha256=9fFjD0W57anOVSAVU55ypxN_WTCsWTG03Wkc3cAAj78,3732
|
|
68
68
|
dtlpy/entities/feature_set.py,sha256=lKbaLLklYC8dZGCDzQa8T-LSYpUygqLwlC_jhHtOfLw,4326
|
|
69
|
-
dtlpy/entities/filters.py,sha256=
|
|
70
|
-
dtlpy/entities/integration.py,sha256=
|
|
71
|
-
dtlpy/entities/item.py,sha256=
|
|
69
|
+
dtlpy/entities/filters.py,sha256=a6jRhdCrsqwlOgwgecxfIj4oKKP2P5tPZ6n1Jua13VU,22336
|
|
70
|
+
dtlpy/entities/integration.py,sha256=CA5F1eQCGE_4c_Kry4nWRdeyjHctNnvexcDXg_M5HLU,5734
|
|
71
|
+
dtlpy/entities/item.py,sha256=77kD_0FRHW_oXIkGwd2Y0qH8rAIy8n8EJALLGkbXDKY,29184
|
|
72
72
|
dtlpy/entities/label.py,sha256=ycDYavIgKhz806plIX-64c07_TeHpDa-V7LnfFVe4Rg,3869
|
|
73
73
|
dtlpy/entities/links.py,sha256=FAmEwHtsrqKet3c0UHH9u_gHgG6_OwF1-rl4xK7guME,2516
|
|
74
74
|
dtlpy/entities/message.py,sha256=ApJuaKEqxATpXjNYUjGdYPu3ibQzEMo8-LtJ_4xAcPI,5865
|
|
75
75
|
dtlpy/entities/model.py,sha256=GXfQoLa06GSsymBiRTqI2FYegLwyrc5S8lWMwGWxhjw,24959
|
|
76
|
-
dtlpy/entities/node.py,sha256=
|
|
77
|
-
dtlpy/entities/ontology.py,sha256=
|
|
76
|
+
dtlpy/entities/node.py,sha256=zXTM4TTyTkV61hc_w_cQHNWDM5Q1G-oiEK-XcUXBcNE,39222
|
|
77
|
+
dtlpy/entities/ontology.py,sha256=lQRpX_wc1VpAkMzLgNXesQnsaZZPF1hvlwayu80MZ6g,31904
|
|
78
78
|
dtlpy/entities/organization.py,sha256=AMkx8hNIIIjnu5pYlNjckMRuKt6H3lnOAqtEynkr7wg,9893
|
|
79
79
|
dtlpy/entities/package.py,sha256=EA5cB3nFBlsbxVK-QroZILjol2bYSVGqCby-mOyJJjQ,26353
|
|
80
80
|
dtlpy/entities/package_defaults.py,sha256=wTD7Z7rGYjVy8AcUxTFEnkOkviiJaLVZYvduiUBKNZo,211
|
|
81
|
-
dtlpy/entities/package_function.py,sha256=
|
|
82
|
-
dtlpy/entities/package_module.py,sha256=
|
|
81
|
+
dtlpy/entities/package_function.py,sha256=M42Kvw9A8b6msAkv-wRNAQg_-UC2bejniCjeKDugudc,6314
|
|
82
|
+
dtlpy/entities/package_module.py,sha256=cOkIITATkzzCQpE0sdPiBUisAz8ImlPG2YGZ0K7SypA,5151
|
|
83
83
|
dtlpy/entities/package_slot.py,sha256=XBwCodQe618sQm0bmx46Npo94mEk-zUV7ZX0mDRcsD8,3946
|
|
84
84
|
dtlpy/entities/paged_entities.py,sha256=A6_D0CUJsN52dBG6yn-oHHzjuVDkBNejTG5r-KxWOxI,5848
|
|
85
85
|
dtlpy/entities/pipeline.py,sha256=Fh3vB2SvM-yhA8wWtIv9zojaqnE2c1cjJQr5CmveBS0,20119
|
|
86
|
-
dtlpy/entities/pipeline_execution.py,sha256=
|
|
86
|
+
dtlpy/entities/pipeline_execution.py,sha256=Rm-QflDCHOD7vJZ3HghBJ911Z2os4ZqboPrx3boW0uU,9277
|
|
87
87
|
dtlpy/entities/project.py,sha256=ZUx8zA3mr6N145M62R3UDPCCzO1vxfyWO6vjES-bO-g,14653
|
|
88
|
-
dtlpy/entities/prompt_item.py,sha256=
|
|
89
|
-
dtlpy/entities/recipe.py,sha256=
|
|
88
|
+
dtlpy/entities/prompt_item.py,sha256=MFti9RJ40sKUGwG1ojHkQpmdOPZ_YTWzBauie54D0hI,2833
|
|
89
|
+
dtlpy/entities/recipe.py,sha256=Q1HtYgind3bEe-vnDZWhw6H-rcIAGhkGHPRWtLIkPSE,11917
|
|
90
90
|
dtlpy/entities/reflect_dict.py,sha256=2NaSAL-CO0T0FYRYFQlaSpbsoLT2Q18AqdHgQSLX5Y4,3273
|
|
91
91
|
dtlpy/entities/resource_execution.py,sha256=1HuVV__U4jAUOtOkWlWImnM3Yts8qxMSAkMA9sBhArY,5033
|
|
92
|
-
dtlpy/entities/service.py,sha256=
|
|
92
|
+
dtlpy/entities/service.py,sha256=tA04dp2E3dSxlLxyWtSyUU41g971akSL6q-1SED7Kvc,30211
|
|
93
93
|
dtlpy/entities/setting.py,sha256=koydO8b0_bWVNklR2vpsXswxzBo8q83XtGk3wkma0MI,8522
|
|
94
94
|
dtlpy/entities/task.py,sha256=XHiEqZYFlrDCtmw1MXsysjoBLdIzAk7coMrVk8bNIiE,19534
|
|
95
95
|
dtlpy/entities/time_series.py,sha256=336jWNckjuSn0G29WJFetB7nBoFAKqs4VH9_IB4m4FE,4017
|
|
@@ -148,7 +148,7 @@ dtlpy/miscellaneous/list_print.py,sha256=leEg3RodgYfH5t_0JG8VuM8NiesR8sJLK_mRStt
|
|
|
148
148
|
dtlpy/miscellaneous/zipping.py,sha256=GMdPhAeHQXeMS5ClaiKWMJWVYQLBLAaJUWxvdYrL4Ro,5337
|
|
149
149
|
dtlpy/ml/__init__.py,sha256=vPkyXpc9kcWWZ_PxyPEOsjKBJdEbowLkZr8FZIb_OBM,799
|
|
150
150
|
dtlpy/ml/base_feature_extractor_adapter.py,sha256=iiEGYAx0Rdn4K46H_FlKrAv3ebTXHSxNVAmio0BxhaI,1178
|
|
151
|
-
dtlpy/ml/base_model_adapter.py,sha256=
|
|
151
|
+
dtlpy/ml/base_model_adapter.py,sha256=W5MaL3n8WbRVrcCsM48WE1q4bieIYPhXCHoStUziXmc,44741
|
|
152
152
|
dtlpy/ml/metrics.py,sha256=BG2E-1Mvjv2e2No9mIJKVmvzqBvLqytKcw3hA7wVUNc,20037
|
|
153
153
|
dtlpy/ml/predictions_utils.py,sha256=He_84U14oS2Ss7T_-Zj5GDiBZwS-GjMPURUh7u7DjF8,12484
|
|
154
154
|
dtlpy/ml/summary_writer.py,sha256=dehDi8zmGC1sAGyy_3cpSWGXoGQSiQd7bL_Thoo8yIs,2784
|
|
@@ -156,20 +156,20 @@ dtlpy/ml/train_utils.py,sha256=R-BHKRfqDoLLhFyLzsRFyJ4E-8iedj9s9oZqy3IO2rg,2404
|
|
|
156
156
|
dtlpy/repositories/__init__.py,sha256=_p6RafEniBXbeTAbz8efnIr4G4mCwV9x6LEkXhTRWUE,1949
|
|
157
157
|
dtlpy/repositories/analytics.py,sha256=dQPCYTPAIuyfVI_ppR49W7_GBj0033feIm9Gd7LW1V0,2966
|
|
158
158
|
dtlpy/repositories/annotations.py,sha256=E7iHo8UwDAhdulqh0lGr3fGQ-TSwZXXGsEXZA-WJ_NA,35780
|
|
159
|
-
dtlpy/repositories/apps.py,sha256=
|
|
159
|
+
dtlpy/repositories/apps.py,sha256=ashrmsrAtOHF7H0TUAxMNn9ebHQWb1pccjQWpixIgyo,13442
|
|
160
160
|
dtlpy/repositories/artifacts.py,sha256=Ke2ustTNw-1eQ0onLsWY7gL2aChjXPAX5p1uQ_EzMbo,19081
|
|
161
|
-
dtlpy/repositories/assignments.py,sha256=
|
|
161
|
+
dtlpy/repositories/assignments.py,sha256=1VwJZ7ctQe1iaDDDpeYDgoj2G-TCgzolVLUEqUocd2w,25506
|
|
162
162
|
dtlpy/repositories/bots.py,sha256=q1SqH01JHloljKxknhHU09psV1vQx9lPhu3g8mBBeRg,8104
|
|
163
163
|
dtlpy/repositories/codebases.py,sha256=pvcZxdrq0-zWysVbdXjUOhnfcF6hJD8v5VclNZ-zhGA,24668
|
|
164
164
|
dtlpy/repositories/commands.py,sha256=jJnHctZEloRH6Zxf1yFwpgWrv449EU_40QOexKwKlkw,5203
|
|
165
165
|
dtlpy/repositories/compositions.py,sha256=H417BvlQAiWr5NH2eANFke6CfEO5o7DSvapYpf7v5Hk,2150
|
|
166
|
-
dtlpy/repositories/datasets.py,sha256=
|
|
166
|
+
dtlpy/repositories/datasets.py,sha256=2ZQnfp-Zyjr9goK6zcTH8u02v_Z4Dbqj4ReYP58sdRY,45084
|
|
167
167
|
dtlpy/repositories/downloader.py,sha256=pNwL7Nid8xmOyYNiv4DB_WY4RoKlxQ-U9nG2V99Gyr8,41342
|
|
168
|
-
dtlpy/repositories/dpks.py,sha256=
|
|
168
|
+
dtlpy/repositories/dpks.py,sha256=GlDpd3qIHnLAbLHpePhSbTXQhIXpk0BbnbKH1oaHDus,16483
|
|
169
169
|
dtlpy/repositories/drivers.py,sha256=fF0UuHCyBzop8pHfryex23mf0kVFAkqzNdOmwBbaWxY,10204
|
|
170
|
-
dtlpy/repositories/executions.py,sha256=
|
|
170
|
+
dtlpy/repositories/executions.py,sha256=M84nhpFPPZq4fQeJ2m_sv6JT4NE2WDRMOXWr451J0bU,30403
|
|
171
171
|
dtlpy/repositories/feature_sets.py,sha256=xSceAIwK608JSU42IPT1NrvCtnaDJ582JfLd05F3Cck,8811
|
|
172
|
-
dtlpy/repositories/features.py,sha256=
|
|
172
|
+
dtlpy/repositories/features.py,sha256=7xA2ihEuNgZD7HBQMMGLWpsS2V_3PgieKW2YAk1OeUU,9712
|
|
173
173
|
dtlpy/repositories/integrations.py,sha256=gNQmw5ykFtBaimdxUkzCXQqefZaM8yQPnxWZkIJK7ww,11666
|
|
174
174
|
dtlpy/repositories/items.py,sha256=DqJ3g9bc4OLMm9KqI-OebXbr-zcEiohO1wGZJ1uE2Lg,37874
|
|
175
175
|
dtlpy/repositories/messages.py,sha256=zYcoz8Us6j8Tb5Z7luJuvtO9xSRTuOCS7pl-ztt97Ac,3082
|
|
@@ -177,24 +177,24 @@ dtlpy/repositories/models.py,sha256=7kYYE0cfw57bsv_T18QqjCBZsd6fSp99y_Vm94Ya44o,
|
|
|
177
177
|
dtlpy/repositories/nodes.py,sha256=xXJm_YA0vDUn0dVvaGeq6ORM0vI3YXvfjuylvGRtkxo,3061
|
|
178
178
|
dtlpy/repositories/ontologies.py,sha256=unnMhD2isR9DVE5S8Fg6fSDf1ZZ5Xemxxufx4LEUT3w,19577
|
|
179
179
|
dtlpy/repositories/organizations.py,sha256=6ijUDFbsogfRul1g_vUB5AZOb41MRmV5NhNU7WLHt3A,22825
|
|
180
|
-
dtlpy/repositories/packages.py,sha256=
|
|
181
|
-
dtlpy/repositories/pipeline_executions.py,sha256=
|
|
180
|
+
dtlpy/repositories/packages.py,sha256=QhkXMZkpseCt0pDropJuqoHJL0RMa5plk8AN0V3w6Nk,86807
|
|
181
|
+
dtlpy/repositories/pipeline_executions.py,sha256=vFE--JoiffzvIwdSIc-nzEw3jFReUNTfzZIyGaDVy_o,14444
|
|
182
182
|
dtlpy/repositories/pipelines.py,sha256=VDAOsGbgD1_AKdMrJl_qB3gxPs7f3pwUnPx0pT1iAWk,23977
|
|
183
183
|
dtlpy/repositories/projects.py,sha256=tZyFLqVs-8ggTIi5echlX7XdGOJGW4LzKuXke7jkRnw,22140
|
|
184
184
|
dtlpy/repositories/recipes.py,sha256=ZZDhHn9g28C99bsf0nFaIpVYn6f6Jisz9upkHEkeaYY,15843
|
|
185
185
|
dtlpy/repositories/resource_executions.py,sha256=PyzsbdJxz6jf17Gx13GZmqdu6tZo3TTVv-DypnJ_sY0,5374
|
|
186
186
|
dtlpy/repositories/schema.py,sha256=kTKDrbwm7BfQnBAK81LpAl9ChNFdyUweSLNazlJJhjk,3953
|
|
187
|
-
dtlpy/repositories/services.py,sha256=
|
|
187
|
+
dtlpy/repositories/services.py,sha256=8hu6CgIyGQHOOlBmZmmM-oY8i-adU_99lSN46FGvvkc,67421
|
|
188
188
|
dtlpy/repositories/settings.py,sha256=pvqNse0ANCdU3NSLJEzHco-PZq__OIsPSPVJveB9E4I,12296
|
|
189
|
-
dtlpy/repositories/tasks.py,sha256=
|
|
189
|
+
dtlpy/repositories/tasks.py,sha256=nA3rODvS8Q361xDmPXII-VPzktzoxbAApxTkzC5wv4M,48601
|
|
190
190
|
dtlpy/repositories/times_series.py,sha256=m-bKFEgiZ13yQNelDjBfeXMUy_HgsPD_JAHj1GVx9fU,11420
|
|
191
191
|
dtlpy/repositories/triggers.py,sha256=izdNyCN1gDc5uo7AXntso0HSMTDIzGFUp-dSEz8cn_U,21990
|
|
192
192
|
dtlpy/repositories/upload_element.py,sha256=4CDZRKLubanOP0ZyGwxAHTtl6GLzwAyRAIm-PLYt0ck,10140
|
|
193
|
-
dtlpy/repositories/uploader.py,sha256=
|
|
193
|
+
dtlpy/repositories/uploader.py,sha256=W2wPxxt_I3cvXGiAXKbLvfmmynoHx-XsuD2UgFTMiJA,30281
|
|
194
194
|
dtlpy/repositories/webhooks.py,sha256=IIpxOJ-7KeQp1TY9aJZz-FuycSjAoYx0TDk8z86KAK8,9033
|
|
195
195
|
dtlpy/services/__init__.py,sha256=VfVJy2otIrDra6i7Sepjyez2ujiE6171ChQZp-YgxsM,904
|
|
196
196
|
dtlpy/services/aihttp_retry.py,sha256=tgntZsAY0dW9v08rkjX1T5BLNDdDd8svtgn7nH8DSGU,5022
|
|
197
|
-
dtlpy/services/api_client.py,sha256=
|
|
197
|
+
dtlpy/services/api_client.py,sha256=75haX3vsdKwLSVjdKbkmPF5exVQx8CGqwJhl7CdtfSE,66274
|
|
198
198
|
dtlpy/services/api_reference.py,sha256=cW-B3eoi9Xs3AwI87_Kr6GV_E6HPoC73aETFaGz3A-0,1515
|
|
199
199
|
dtlpy/services/async_utils.py,sha256=lfpkTkRUvQoMTxaRZBHbPt5e43qdvpCGDe_-KcY2Jps,2810
|
|
200
200
|
dtlpy/services/calls_counter.py,sha256=gr0io5rIsO5-7Cgc8neA1vK8kUtYhgFPmDQ2jXtiZZs,1036
|
|
@@ -222,14 +222,19 @@ dtlpy/utilities/reports/report.py,sha256=3nEsNnIWmdPEsd21nN8vMMgaZVcPKn9iawKTTeO
|
|
|
222
222
|
dtlpy/utilities/videos/__init__.py,sha256=SV3w51vfPuGBxaMeNemx6qEMHw_C4lLpWNGXMvdsKSY,734
|
|
223
223
|
dtlpy/utilities/videos/video_player.py,sha256=LCxg0EZ_DeuwcT7U_r7MRC6Q19s0xdFb7x5Gk39PRms,24072
|
|
224
224
|
dtlpy/utilities/videos/videos.py,sha256=Dj916B4TQRIhI7HZVevl3foFrCsPp0eeWwvGbgX3-_A,21875
|
|
225
|
-
dtlpy-1.
|
|
226
|
-
dtlpy-1.
|
|
227
|
-
dtlpy-1.
|
|
225
|
+
dtlpy-1.91.37.data/scripts/dlp,sha256=-F0vSCWuSOOtgERAtsPMPyMmzitjhB7Yeftg_PDlDjw,10
|
|
226
|
+
dtlpy-1.91.37.data/scripts/dlp.bat,sha256=QOvx8Dlx5dUbCTMpwbhOcAIXL1IWmgVRSboQqDhIn3A,37
|
|
227
|
+
dtlpy-1.91.37.data/scripts/dlp.py,sha256=tEokRaDINISXnq8yNx_CBw1qM5uwjYiZoJOYGqWB3RU,4267
|
|
228
|
+
tests/assets/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
229
|
+
tests/assets/models_flow/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
230
|
+
tests/assets/models_flow/failedmain.py,sha256=n8F4eu_u7JPrJ1zedbJPvv9e3lHb3ihoErqrBIcseEc,1847
|
|
231
|
+
tests/assets/models_flow/main.py,sha256=87O3-JaWcC6m_kA39sqPhX70_VCBzzbLWmX2YQFilJw,1873
|
|
232
|
+
tests/assets/models_flow/main_model.py,sha256=Hl_tv7Q6KaRL3yLkpUoLMRqu5-ab1QsUYPL6RPEoamw,2042
|
|
228
233
|
tests/features/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
229
|
-
tests/features/environment.py,sha256=
|
|
230
|
-
dtlpy-1.
|
|
231
|
-
dtlpy-1.
|
|
232
|
-
dtlpy-1.
|
|
233
|
-
dtlpy-1.
|
|
234
|
-
dtlpy-1.
|
|
235
|
-
dtlpy-1.
|
|
234
|
+
tests/features/environment.py,sha256=cX634k079u2V5YhG-VUxNIFQW3Wn1J0dsTp0gAXfKec,15327
|
|
235
|
+
dtlpy-1.91.37.dist-info/LICENSE,sha256=QwcOLU5TJoTeUhuIXzhdCEEDDvorGiC6-3YTOl4TecE,11356
|
|
236
|
+
dtlpy-1.91.37.dist-info/METADATA,sha256=3m_UEAiEgXoM7gwJG08aMrWwtot76WnECCgRXcLs6sc,2976
|
|
237
|
+
dtlpy-1.91.37.dist-info/WHEEL,sha256=2wepM1nk4DS4eFpYrW1TTqPcoGNfHhhO_i5m4cOimbo,92
|
|
238
|
+
dtlpy-1.91.37.dist-info/entry_points.txt,sha256=C4PyKthCs_no88HU39eioO68oei64STYXC2ooGZTc4Y,43
|
|
239
|
+
dtlpy-1.91.37.dist-info/top_level.txt,sha256=ZWuLmQGUOtWAdgTf4Fbx884w1o0vBYq9dEc1zLv9Mig,12
|
|
240
|
+
dtlpy-1.91.37.dist-info/RECORD,,
|
tests/assets/__init__.py
ADDED
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import time
|
|
2
|
+
|
|
3
|
+
import dtlpy as dl
|
|
4
|
+
import logging
|
|
5
|
+
import os
|
|
6
|
+
import random
|
|
7
|
+
|
|
8
|
+
logger = logging.getLogger('dummy-adapter')
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
@dl.Package.decorators.module(name='model-adapter',
|
|
12
|
+
description='Model Adapter for Dummy Model',
|
|
13
|
+
init_inputs={'model_entity': dl.Model})
|
|
14
|
+
class ModelAdapter(dl.BaseModelAdapter):
|
|
15
|
+
"""
|
|
16
|
+
Dummy Model adapter using pytorch.
|
|
17
|
+
The class bind Dataloop model and model entities with model code implementation
|
|
18
|
+
"""
|
|
19
|
+
|
|
20
|
+
def __init__(self, model_entity=None):
|
|
21
|
+
super(ModelAdapter, self).__init__(model_entity=model_entity)
|
|
22
|
+
|
|
23
|
+
def load(self, local_path, **kwargs):
|
|
24
|
+
logger.info("Loaded model")
|
|
25
|
+
|
|
26
|
+
def save(self, local_path, **kwargs):
|
|
27
|
+
logger.info("Saved model")
|
|
28
|
+
|
|
29
|
+
def train(self, data_path, output_path, **kwargs):
|
|
30
|
+
logger.info("training")
|
|
31
|
+
raise Exception("Failed to train")
|
|
32
|
+
|
|
33
|
+
def predict(self, batch, **kwargs):
|
|
34
|
+
batch_annotations = list()
|
|
35
|
+
|
|
36
|
+
for img in batch:
|
|
37
|
+
collection = dl.AnnotationCollection()
|
|
38
|
+
for index in range(5):
|
|
39
|
+
collection.add(
|
|
40
|
+
annotation_definition=dl.Box(label=self.model_entity.labels[index], top=index * 10, left=index * 10,
|
|
41
|
+
bottom=index * 10 + 10, right=index * 10 + 10),
|
|
42
|
+
model_info={'name': "test-model",
|
|
43
|
+
'confidence': 0.5,
|
|
44
|
+
'model_id': self.model_entity.id,
|
|
45
|
+
'dataset_id': self.model_entity.dataset_id})
|
|
46
|
+
logger.debug("Predicted {} ({})".format(str(index), index * 0.1))
|
|
47
|
+
batch_annotations.append(collection)
|
|
48
|
+
|
|
49
|
+
return batch_annotations
|
|
50
|
+
|
|
51
|
+
def convert_from_dtlpy(self, data_path, **kwargs):
|
|
52
|
+
logger.info("convert_from_dtlpy")
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import dtlpy as dl
|
|
2
|
+
import logging
|
|
3
|
+
import os
|
|
4
|
+
import random
|
|
5
|
+
|
|
6
|
+
logger = logging.getLogger('dummy-adapter')
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
@dl.Package.decorators.module(name='model-adapter',
|
|
10
|
+
description='Model Adapter for Dummy Model',
|
|
11
|
+
init_inputs={'model_entity': dl.Model})
|
|
12
|
+
class ModelAdapter(dl.BaseModelAdapter):
|
|
13
|
+
"""
|
|
14
|
+
Dummy Model adapter using pytorch.
|
|
15
|
+
The class bind Dataloop model and model entities with model code implementation
|
|
16
|
+
"""
|
|
17
|
+
|
|
18
|
+
def __init__(self, model_entity=None):
|
|
19
|
+
super(ModelAdapter, self).__init__(model_entity=model_entity)
|
|
20
|
+
|
|
21
|
+
def load(self, local_path, **kwargs):
|
|
22
|
+
logger.info("Loaded model")
|
|
23
|
+
|
|
24
|
+
def save(self, local_path, **kwargs):
|
|
25
|
+
logger.info("Saved model")
|
|
26
|
+
|
|
27
|
+
def train(self, data_path, output_path, **kwargs):
|
|
28
|
+
logger.info("model training")
|
|
29
|
+
print(self.model_entity.id)
|
|
30
|
+
|
|
31
|
+
def predict(self, batch, **kwargs):
|
|
32
|
+
logger.info("model prediction")
|
|
33
|
+
batch_annotations = list()
|
|
34
|
+
|
|
35
|
+
for img in batch:
|
|
36
|
+
collection = dl.AnnotationCollection()
|
|
37
|
+
for index in range(5):
|
|
38
|
+
collection.add(
|
|
39
|
+
annotation_definition=dl.Box(label=self.model_entity.labels[index], top=index * 10, left=index * 10,
|
|
40
|
+
bottom=index * 10 + 10, right=index * 10 + 10),
|
|
41
|
+
model_info={'name': "test-model",
|
|
42
|
+
'confidence': 0.5,
|
|
43
|
+
'model_id': self.model_entity.id,
|
|
44
|
+
'dataset_id': self.model_entity.dataset_id})
|
|
45
|
+
logger.debug("Predicted {} ({})".format(str(index), index * 0.1))
|
|
46
|
+
batch_annotations.append(collection)
|
|
47
|
+
|
|
48
|
+
return batch_annotations
|
|
49
|
+
|
|
50
|
+
def convert_from_dtlpy(self, data_path, **kwargs):
|
|
51
|
+
logger.info("convert_from_dtlpy")
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import dtlpy as dl
|
|
2
|
+
import logging
|
|
3
|
+
import os
|
|
4
|
+
import random
|
|
5
|
+
|
|
6
|
+
logger = logging.getLogger('dummy-adapter')
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
@dl.Package.decorators.module(name='model-adapter',
|
|
10
|
+
description='Model Adapter for Dummy Model',
|
|
11
|
+
init_inputs={'model_entity': dl.Model, "test": "String"})
|
|
12
|
+
class ModelAdapter(dl.BaseModelAdapter):
|
|
13
|
+
"""
|
|
14
|
+
Dummy Model adapter using pytorch.
|
|
15
|
+
The class bind Dataloop model and model entities with model code implementation
|
|
16
|
+
"""
|
|
17
|
+
|
|
18
|
+
def __init__(self, test, model_entity=None):
|
|
19
|
+
super(ModelAdapter, self).__init__(model_entity=model_entity)
|
|
20
|
+
self.test = test
|
|
21
|
+
|
|
22
|
+
def load(self, local_path, **kwargs):
|
|
23
|
+
logger.info("Loaded model")
|
|
24
|
+
|
|
25
|
+
def save(self, local_path, **kwargs):
|
|
26
|
+
logger.info("Saved model")
|
|
27
|
+
|
|
28
|
+
def train(self, data_path, output_path, **kwargs):
|
|
29
|
+
if self.test != 'default_value':
|
|
30
|
+
raise ValueError(f"test is not set to default_value: {self.test}")
|
|
31
|
+
logger.info("model training")
|
|
32
|
+
print(self.model_entity.id)
|
|
33
|
+
|
|
34
|
+
def predict(self, batch, **kwargs):
|
|
35
|
+
logger.info("model prediction")
|
|
36
|
+
batch_annotations = list()
|
|
37
|
+
|
|
38
|
+
for img in batch:
|
|
39
|
+
collection = dl.AnnotationCollection()
|
|
40
|
+
for index in range(5):
|
|
41
|
+
collection.add(
|
|
42
|
+
annotation_definition=dl.Box(label=self.model_entity.labels[index], top=index * 10, left=index * 10,
|
|
43
|
+
bottom=index * 10 + 10, right=index * 10 + 10),
|
|
44
|
+
model_info={'name': "test-model",
|
|
45
|
+
'confidence': 0.5,
|
|
46
|
+
'model_id': self.model_entity.id,
|
|
47
|
+
'dataset_id': self.model_entity.dataset_id})
|
|
48
|
+
logger.debug("Predicted {} ({})".format(str(index), index * 0.1))
|
|
49
|
+
batch_annotations.append(collection)
|
|
50
|
+
|
|
51
|
+
return batch_annotations
|
|
52
|
+
|
|
53
|
+
def convert_from_dtlpy(self, data_path, **kwargs):
|
|
54
|
+
logger.info("convert_from_dtlpy")
|
tests/features/environment.py
CHANGED
|
@@ -27,6 +27,7 @@ def before_all(context):
|
|
|
27
27
|
# Get index driver from env var
|
|
28
28
|
context.index_driver_var = os.environ.get("INDEX_DRIVER_VAR", None)
|
|
29
29
|
|
|
30
|
+
|
|
30
31
|
@fixture
|
|
31
32
|
def after_feature(context, feature):
|
|
32
33
|
print_feature_filename(context, feature)
|
|
@@ -57,6 +58,13 @@ def after_feature(context, feature):
|
|
|
57
58
|
for page in apps:
|
|
58
59
|
for app in page:
|
|
59
60
|
app.uninstall()
|
|
61
|
+
models = dl.models.list(
|
|
62
|
+
filters=dl.Filters(use_defaults=False, resource=dl.FiltersResource.MODEL,
|
|
63
|
+
field="app.dpkName",
|
|
64
|
+
values=dpk.name))
|
|
65
|
+
for page in models:
|
|
66
|
+
for model in page:
|
|
67
|
+
model.delete()
|
|
60
68
|
dpk.delete()
|
|
61
69
|
except:
|
|
62
70
|
logging.exception('Failed to delete dpk')
|
|
@@ -148,6 +156,26 @@ def after_scenario(context, scenario):
|
|
|
148
156
|
context.dl = dl
|
|
149
157
|
|
|
150
158
|
|
|
159
|
+
def get_step_key(step):
|
|
160
|
+
return '{}: line {}. {}'.format(step.location.filename, step.location.line, step.name)
|
|
161
|
+
|
|
162
|
+
|
|
163
|
+
@fixture
|
|
164
|
+
def before_step(context, step):
|
|
165
|
+
key = get_step_key(step)
|
|
166
|
+
setattr(context, key, time.time())
|
|
167
|
+
|
|
168
|
+
|
|
169
|
+
@fixture
|
|
170
|
+
def after_step(context, step):
|
|
171
|
+
key = get_step_key(step)
|
|
172
|
+
start_time = getattr(context, key, None)
|
|
173
|
+
total_time = time.time() - start_time
|
|
174
|
+
if total_time > 3:
|
|
175
|
+
print("######## {}\nStep Duration: {}".format(key, total_time))
|
|
176
|
+
delattr(context, key)
|
|
177
|
+
|
|
178
|
+
|
|
151
179
|
@fixture
|
|
152
180
|
def before_feature(context, feature):
|
|
153
181
|
if 'rc_only' in context.tags and 'rc' not in os.environ.get("DLP_ENV_NAME"):
|
|
@@ -168,6 +196,9 @@ def fix_project_with_frozen_datasets(project):
|
|
|
168
196
|
@fixture
|
|
169
197
|
def before_tag(context, tag):
|
|
170
198
|
if "skip_test" in tag:
|
|
199
|
+
"""
|
|
200
|
+
For example: @skip_test_DAT-99999
|
|
201
|
+
"""
|
|
171
202
|
dat = tag.split("_")[-1] if "DAT" in tag else ""
|
|
172
203
|
if hasattr(context, "scenario"):
|
|
173
204
|
context.scenario.skip(f"Test mark as SKIPPED, Should be merged after {dat}")
|
|
@@ -335,6 +366,11 @@ def delete_pipeline(context):
|
|
|
335
366
|
while context.to_delete_pipelines_ids:
|
|
336
367
|
pipeline_id = context.to_delete_pipelines_ids.pop(0)
|
|
337
368
|
try:
|
|
369
|
+
filters = context.dl.Filters(resource=context.dl.FiltersResource.EXECUTION, field='latestStatus.status', values=['created', 'in-progress'], operator='in')
|
|
370
|
+
filters.add(field='pipeline.id', values=pipeline_id)
|
|
371
|
+
executions = context.dl.executions.list(filters=filters)
|
|
372
|
+
for execution in executions.items:
|
|
373
|
+
execution.terminate()
|
|
338
374
|
context.dl.pipelines.delete(pipeline_id=pipeline_id)
|
|
339
375
|
except context.dl.exceptions.NotFound:
|
|
340
376
|
pass
|
|
@@ -418,4 +454,5 @@ def print_feature_filename(context, feature):
|
|
|
418
454
|
s_r = SummaryReporter(context.config)
|
|
419
455
|
stream = getattr(sys, s_r.output_stream_name, sys.stderr)
|
|
420
456
|
p_stream = StreamOpener.ensure_stream_with_encoder(stream)
|
|
421
|
-
p_stream.write("{
|
|
457
|
+
p_stream.write(f"Feature Finished : {feature.filename.split('/')[-1]}\n")
|
|
458
|
+
p_stream.write(f"Status: {str(feature.status).split('.')[-1]} - Duration: {feature.duration:.2f} seconds\n")
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|