digitalhub 0.10.0b2__py3-none-any.whl → 0.10.0b4__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 digitalhub might be problematic. Click here for more details.

Files changed (50) hide show
  1. digitalhub/entities/_base/entity/builder.py +5 -5
  2. digitalhub/entities/_base/material/entity.py +4 -17
  3. digitalhub/entities/_base/material/status.py +1 -1
  4. digitalhub/entities/_commons/models.py +7 -3
  5. digitalhub/entities/_commons/utils.py +5 -4
  6. digitalhub/entities/_operations/processor.py +5 -4
  7. digitalhub/entities/artifact/artifact/spec.py +3 -1
  8. digitalhub/entities/artifact/crud.py +3 -2
  9. digitalhub/entities/builders.py +6 -18
  10. digitalhub/entities/dataitem/crud.py +17 -5
  11. digitalhub/entities/dataitem/table/models.py +4 -3
  12. digitalhub/entities/dataitem/table/utils.py +7 -7
  13. digitalhub/entities/dataitem/utils.py +50 -6
  14. digitalhub/entities/model/_base/spec.py +6 -7
  15. digitalhub/entities/model/crud.py +3 -2
  16. digitalhub/entities/model/huggingface/spec.py +4 -2
  17. digitalhub/entities/model/mlflow/spec.py +6 -4
  18. digitalhub/entities/project/_base/spec.py +8 -6
  19. digitalhub/entities/project/crud.py +2 -2
  20. digitalhub/entities/run/_base/spec.py +4 -2
  21. digitalhub/entities/secret/_base/spec.py +4 -2
  22. digitalhub/entities/secret/crud.py +2 -0
  23. digitalhub/entities/task/_base/models.py +41 -40
  24. digitalhub/entities/task/_base/utils.py +2 -2
  25. digitalhub/stores/_base/store.py +5 -4
  26. digitalhub/stores/local/store.py +4 -3
  27. digitalhub/stores/remote/store.py +4 -3
  28. digitalhub/stores/s3/store.py +5 -4
  29. digitalhub/stores/sql/configurator.py +4 -4
  30. digitalhub/stores/sql/enums.py +1 -1
  31. digitalhub/stores/sql/store.py +7 -3
  32. digitalhub/utils/file_utils.py +8 -7
  33. digitalhub/utils/generic_utils.py +20 -8
  34. digitalhub/utils/types.py +6 -0
  35. digitalhub/utils/uri_utils.py +1 -1
  36. {digitalhub-0.10.0b2.dist-info → digitalhub-0.10.0b4.dist-info}/METADATA +27 -33
  37. {digitalhub-0.10.0b2.dist-info → digitalhub-0.10.0b4.dist-info}/RECORD +39 -49
  38. {digitalhub-0.10.0b2.dist-info → digitalhub-0.10.0b4.dist-info}/WHEEL +1 -2
  39. digitalhub-0.10.0b2.dist-info/top_level.txt +0 -2
  40. test/local/CRUD/test_artifacts.py +0 -96
  41. test/local/CRUD/test_dataitems.py +0 -96
  42. test/local/CRUD/test_models.py +0 -95
  43. test/local/imports/test_imports.py +0 -65
  44. test/local/instances/test_validate.py +0 -55
  45. test/test_crud_functions.py +0 -109
  46. test/test_crud_runs.py +0 -86
  47. test/test_crud_tasks.py +0 -81
  48. test/testkfp.py +0 -37
  49. test/testkfp_pipeline.py +0 -22
  50. {digitalhub-0.10.0b2.dist-info → digitalhub-0.10.0b4.dist-info/licenses}/LICENSE.txt +0 -0
@@ -1,7 +1,8 @@
1
- Metadata-Version: 2.2
1
+ Metadata-Version: 2.4
2
2
  Name: digitalhub
3
- Version: 0.10.0b2
3
+ Version: 0.10.0b4
4
4
  Summary: Python SDK for Digitalhub
5
+ Project-URL: Homepage, https://github.com/scc-digitalhub/digitalhub-sdk
5
6
  Author-email: Fondazione Bruno Kessler <dslab@fbk.eu>, Matteo Martini <mmartini@fbk.eu>
6
7
  License: Apache License
7
8
  Version 2.0, January 2004
@@ -219,48 +220,41 @@ License: Apache License
219
220
 
220
221
  (SIL OPEN FONT LICENSE Version 1.1) The Inter font family (https://github.com/rsms/inter)
221
222
  (SIL OPEN FONT LICENSE Version 1.1) The Fira Code font family (https://github.com/tonsky/FiraCode)
222
-
223
- Project-URL: Homepage, https://github.com/scc-digitalhub/digitalhub-sdk
223
+ License-File: LICENSE.txt
224
224
  Keywords: data,dataops,kubernetes
225
225
  Classifier: License :: OSI Approved :: Apache Software License
226
226
  Classifier: Programming Language :: Python :: 3.9
227
227
  Classifier: Programming Language :: Python :: 3.10
228
228
  Classifier: Programming Language :: Python :: 3.11
229
- Requires-Python: >=3.9
230
- Description-Content-Type: text/markdown
231
- License-File: LICENSE.txt
229
+ Requires-Python: <3.13,>=3.9
232
230
  Requires-Dist: boto3
233
- Requires-Dist: pydantic
234
- Requires-Dist: sqlalchemy
235
- Requires-Dist: pyarrow
231
+ Requires-Dist: gitpython>=3
236
232
  Requires-Dist: numpy<2
237
- Requires-Dist: requests
238
- Requires-Dist: PyYAML
239
- Requires-Dist: python-dotenv
240
- Requires-Dist: GitPython>=3
241
233
  Requires-Dist: psycopg2-binary
234
+ Requires-Dist: pyarrow
235
+ Requires-Dist: pydantic
236
+ Requires-Dist: python-dotenv
242
237
  Requires-Dist: python-slugify
238
+ Requires-Dist: pyyaml
239
+ Requires-Dist: requests
240
+ Requires-Dist: sqlalchemy
241
+ Provides-Extra: dev
242
+ Requires-Dist: bumpver; extra == 'dev'
243
+ Requires-Dist: jsonschema; extra == 'dev'
244
+ Requires-Dist: pytest; extra == 'dev'
245
+ Requires-Dist: pytest-cov; extra == 'dev'
243
246
  Provides-Extra: full
244
- Requires-Dist: pandas; extra == "full"
245
- Requires-Dist: mlflow; extra == "full"
246
- Requires-Dist: fsspec; extra == "full"
247
- Requires-Dist: s3fs; extra == "full"
248
- Provides-Extra: pandas
249
- Requires-Dist: pandas; extra == "pandas"
250
- Requires-Dist: fsspec; extra == "pandas"
251
- Requires-Dist: s3fs; extra == "pandas"
247
+ Requires-Dist: fsspec; extra == 'full'
248
+ Requires-Dist: mlflow; extra == 'full'
249
+ Requires-Dist: pandas; extra == 'full'
250
+ Requires-Dist: s3fs; extra == 'full'
252
251
  Provides-Extra: mlflow
253
- Requires-Dist: mlflow; extra == "mlflow"
254
- Provides-Extra: dev
255
- Requires-Dist: black; extra == "dev"
256
- Requires-Dist: pytest; extra == "dev"
257
- Requires-Dist: bumpver; extra == "dev"
258
- Requires-Dist: ruff; extra == "dev"
259
- Requires-Dist: moto; extra == "dev"
260
- Provides-Extra: docs
261
- Requires-Dist: Sphinx>=7; extra == "docs"
262
- Requires-Dist: pydata-sphinx-theme>=0.15; extra == "docs"
263
- Requires-Dist: numpydoc>=1.6; extra == "docs"
252
+ Requires-Dist: mlflow; extra == 'mlflow'
253
+ Provides-Extra: pandas
254
+ Requires-Dist: fsspec; extra == 'pandas'
255
+ Requires-Dist: pandas; extra == 'pandas'
256
+ Requires-Dist: s3fs; extra == 'pandas'
257
+ Description-Content-Type: text/markdown
264
258
 
265
259
  # Digitalhub Library
266
260
 
@@ -29,14 +29,14 @@ digitalhub/context/api.py,sha256=un-_HU7JC3t-eQKleVJ9cCDS8BtQFRHSrP3VDHs3gPU,109
29
29
  digitalhub/context/builder.py,sha256=ibsjwCbll4RbNc_NplAn-8cX0J8GIXyY41KjtcvlsI4,2037
30
30
  digitalhub/context/context.py,sha256=-xn3ZHNqoifUdRF4vwmLzOkfQrEheFPDQNk2J-q47EI,1456
31
31
  digitalhub/entities/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
32
- digitalhub/entities/builders.py,sha256=wKNC3ly-IUrF9uaSXWQ5cMzEj7JikM467uXIOdgko2c,1951
32
+ digitalhub/entities/builders.py,sha256=HRzXOoUFu8GhNIL6a9cWjJDMNCbVFmuxTG3e1tt81iA,1796
33
33
  digitalhub/entities/_base/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
34
34
  digitalhub/entities/_base/_base/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
35
35
  digitalhub/entities/_base/_base/entity.py,sha256=aHZiuCyHo6zPSRuwTFLu2qGkTHGd2k8EAJlnbcJq_p4,2174
36
36
  digitalhub/entities/_base/context/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
37
37
  digitalhub/entities/_base/context/entity.py,sha256=4IWC6f0YKpEBPCXrKlkkvnOqT1urQ4mbjwre4LUWxk4,3270
38
38
  digitalhub/entities/_base/entity/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
39
- digitalhub/entities/_base/entity/builder.py,sha256=vegnR3aBLhuA371vFVQvMXX4KfpVFl-Z7h1ydt6r6Hg,4518
39
+ digitalhub/entities/_base/entity/builder.py,sha256=caUFJeLSvOTNKwnOZkyKW6BdyWUNYaGesk0ZwXJxX88,4556
40
40
  digitalhub/entities/_base/entity/entity.py,sha256=BFVKE5CToh4JOdwseAGMhdpoCiD3kaGRhNA9SuRCixE,3223
41
41
  digitalhub/entities/_base/entity/metadata.py,sha256=_ogwoo7NOExxVPml9h1vbbAryFiAVpuEuSBQsd_VRjU,2261
42
42
  digitalhub/entities/_base/entity/spec.py,sha256=t0sPXHCb8zyWyMW_UvTfGyUkG_CUEGz427kvGhsQ8s0,1500
@@ -50,9 +50,9 @@ digitalhub/entities/_base/entity/_constructors/uuid.py,sha256=QzG0nsVpGU2UDD5Cjp
50
50
  digitalhub/entities/_base/executable/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
51
51
  digitalhub/entities/_base/executable/entity.py,sha256=tNQmmABuY90eKWcxePPGu4iaZhDLyL9TdugKVcnnKSY,10079
52
52
  digitalhub/entities/_base/material/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
53
- digitalhub/entities/_base/material/entity.py,sha256=pA276KG5XtVT4Xj-dGCA10NY43yLoViIUSPvLovYsyo,7207
53
+ digitalhub/entities/_base/material/entity.py,sha256=YYStZp5RGhugpThKI-iK9zX8u5jGYp6pQEW-s2mgnTU,6988
54
54
  digitalhub/entities/_base/material/spec.py,sha256=jL1OohnYhUSrdTaFF3Rkw817jIjNY0ewm1wB3tgQ_9c,436
55
- digitalhub/entities/_base/material/status.py,sha256=I9yxNLHvsHSRDkKcKGPxlPJrJ7grsrxHxId06wtqVXk,383
55
+ digitalhub/entities/_base/material/status.py,sha256=mp5C-5JgfLNYPWdCZXYsaI3Ptu32RW9r_BQgvUjXELA,412
56
56
  digitalhub/entities/_base/material/utils.py,sha256=TQzzwjaTdVUmeCTIiScSAEWJtrJFLv3q5C3-ID3sPjA,2446
57
57
  digitalhub/entities/_base/project/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
58
58
  digitalhub/entities/_base/project/entity.py,sha256=MwK80OCNKN_vxnPajJhErdLS4VQfIWydmfQrscf5OCc,10621
@@ -66,12 +66,12 @@ digitalhub/entities/_base/versioned/builder.py,sha256=0niRbqpCnHqBK0hTQxdrtUl43B
66
66
  digitalhub/entities/_base/versioned/entity.py,sha256=xtvVJfmJTfCAA96va1-r7B2j7wbXlkutGMil--PWP4I,885
67
67
  digitalhub/entities/_commons/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
68
68
  digitalhub/entities/_commons/enums.py,sha256=rifutpsNcssUN7JaSe5t0C4L2CeT89-7pD-_gbjbw58,1885
69
- digitalhub/entities/_commons/models.py,sha256=R77nxBma7nhuOgiAxIUDDHVOV51bVqtLE03LEqhnYkI,174
70
- digitalhub/entities/_commons/utils.py,sha256=CGIfcCVw0WcwiP_oGzKg469a5xKFPYj0QOHtsMBXYX8,2391
69
+ digitalhub/entities/_commons/models.py,sha256=1zFR0bN5a-BptPj5vsXVzPStdFk5TMKEXp7gj9OuY8Q,192
70
+ digitalhub/entities/_commons/utils.py,sha256=YWjc_nlbDeBtcUa2isuThuVVBs6xFLPN-QE7s0DvedQ,2449
71
71
  digitalhub/entities/_operations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
72
- digitalhub/entities/_operations/processor.py,sha256=V7pO7pYmoUDE3tlkzgSWw0E5eH9jq3zOtJThuN9ZWs0,49338
72
+ digitalhub/entities/_operations/processor.py,sha256=QVgPG0UyZCDspOvZqWkE4_cSJh7eQpMOr2ZFBYAL57o,49399
73
73
  digitalhub/entities/artifact/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
74
- digitalhub/entities/artifact/crud.py,sha256=0-nVKnqjRRn4jalm6EgiwtePVxTGeGF_JUaJTy1fe7I,7821
74
+ digitalhub/entities/artifact/crud.py,sha256=76466GQatBBgPvPqiSGcIA_Aqf96LS2-X_DKRnt4Ry4,7905
75
75
  digitalhub/entities/artifact/utils.py,sha256=Sqjqi5VxIFnX7AFjUIPAhbZOV3ieqYJN8rgVKSfmN7I,1323
76
76
  digitalhub/entities/artifact/_base/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
77
77
  digitalhub/entities/artifact/_base/builder.py,sha256=Ig9rxHkzhQMNEkcfwl9m0r33KZ3pjmQzW_lAbvsK7xs,2256
@@ -81,11 +81,11 @@ digitalhub/entities/artifact/_base/status.py,sha256=qG5KUOlEHWYZWYqLDvvuZxD5EjsV
81
81
  digitalhub/entities/artifact/artifact/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
82
82
  digitalhub/entities/artifact/artifact/builder.py,sha256=bmqnjMKgtHTp8khcRiCKx4zlmDkNE3yZ0xX--7rjYt4,758
83
83
  digitalhub/entities/artifact/artifact/entity.py,sha256=hj6UlJMWnWimqizhKGcKpvOpcYHxTFTk6--nQazlnIM,882
84
- digitalhub/entities/artifact/artifact/spec.py,sha256=iX6czlG6W_ZoW86PD2GPc_-xLk6Zb1Vt3fk8Lzjbp3c,593
84
+ digitalhub/entities/artifact/artifact/spec.py,sha256=XAnk0YPlLEIglPZ9cP5-gJwJ5f143pJRHwl2tdBuVcw,632
85
85
  digitalhub/entities/artifact/artifact/status.py,sha256=x-lTgO2KkjwzlJnEhIfUtF9rzJ1DTIAd3-Hn6ZeLRqo,305
86
86
  digitalhub/entities/dataitem/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
87
- digitalhub/entities/dataitem/crud.py,sha256=-y3lTjEtISje6X_lo-rx9Aynf_WkvzYi9G6WY7QJvRA,8090
88
- digitalhub/entities/dataitem/utils.py,sha256=zCxUMyhEdL7jP4nK42tT1obYMkJTT2txo1lGHPwG1H4,3232
87
+ digitalhub/entities/dataitem/crud.py,sha256=rbNv-9JmNA91BmRaMK5rw8binZTCzG_IJBi1zr6xq58,8502
88
+ digitalhub/entities/dataitem/utils.py,sha256=_L0JLBm5HwXhMikLCxu4dTo8qnsTFiIwSyPQZLNeVdU,4318
89
89
  digitalhub/entities/dataitem/_base/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
90
90
  digitalhub/entities/dataitem/_base/builder.py,sha256=XZ5Ul-aBkx6ygpN9rhjNQOD-6jzJhulyM0WCD-f3big,2256
91
91
  digitalhub/entities/dataitem/_base/entity.py,sha256=J8G7Xm_AKETg02RtNHlUyM-bmvT__HKu1Npv4Od037A,945
@@ -104,10 +104,10 @@ digitalhub/entities/dataitem/iceberg/status.py,sha256=XRj9i8a-dzjqB-Ci3cfPnXTikc
104
104
  digitalhub/entities/dataitem/table/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
105
105
  digitalhub/entities/dataitem/table/builder.py,sha256=Ad5hgGQ8k0vWM2nCZG0crXKmlU6fMYFm8ybWB7FP3cQ,716
106
106
  digitalhub/entities/dataitem/table/entity.py,sha256=yI3-GaWCifw0l0XGh2ol6U-nhyjVcXYok-al26jpEfM,4143
107
- digitalhub/entities/dataitem/table/models.py,sha256=dPnqAXbT9IFWM2Q96O3OjpFnki9gudgOYqun2lQ6p8A,1103
107
+ digitalhub/entities/dataitem/table/models.py,sha256=NnCsxnW-fQ80Ufv8jMOtJEukbJzx0e4BWTAdXaZ0JKI,1161
108
108
  digitalhub/entities/dataitem/table/spec.py,sha256=5boOI9zhIvuwIQo0th0E2941_rQEPIRIIYLhySbwbFY,671
109
109
  digitalhub/entities/dataitem/table/status.py,sha256=28-_LoSg84x4OwLbRungCHk-ObuobZ5vKuzk1NoBGZA,198
110
- digitalhub/entities/dataitem/table/utils.py,sha256=KsEqFdmcHgRQUxqEZLCy5xTtyPXEOnQkNont42vFtPs,2432
110
+ digitalhub/entities/dataitem/table/utils.py,sha256=sctzcQeTPpW_YJC4rquu_J4rjv_NR6EoJTqMeAIPNvA,2447
111
111
  digitalhub/entities/function/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
112
112
  digitalhub/entities/function/crud.py,sha256=1-fRWVmOXVV305p0GW0n02FEcengw7QxLxxgxsCC7eM,6592
113
113
  digitalhub/entities/function/_base/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -116,23 +116,23 @@ digitalhub/entities/function/_base/entity.py,sha256=YYFxtLAZEhcWOzGlGjqRPXmGRb8w
116
116
  digitalhub/entities/function/_base/spec.py,sha256=SjCtp3JBUTPTLMY_TE8wM1HPKVl7jH_wFEqQXBj1rfo,274
117
117
  digitalhub/entities/function/_base/status.py,sha256=N-Z1hw13qV7kWFJLQPaH3rRZ2z7AvZeuWYER95lG344,170
118
118
  digitalhub/entities/model/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
119
- digitalhub/entities/model/crud.py,sha256=pHTY2v-s2hPkiPWuOcuvNeIRYiz4j2ZHxn-lpzO4BW4,7602
119
+ digitalhub/entities/model/crud.py,sha256=rguVsQjCSNwSFOrSOdPYnhHAxHE09TqkxLZuqHBi8AE,7686
120
120
  digitalhub/entities/model/utils.py,sha256=NNzD2AcIJzmV_Jo_8k5ZcSp2arKcZ07CCIYKn2lvoKM,1320
121
121
  digitalhub/entities/model/_base/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
122
122
  digitalhub/entities/model/_base/builder.py,sha256=emYkEey98ddxcj_lHWsQG0cAu2BEDastvSrHVtoa6oU,2235
123
123
  digitalhub/entities/model/_base/entity.py,sha256=va1Rf8vPHi2FEg1nPsmfaJBaaXG5EFABNuzLthiEFCI,5640
124
- digitalhub/entities/model/_base/spec.py,sha256=0ojBzkBmTdraPfbRPbbMX-nrts9eNlpEc6MgZ3k_dCY,844
124
+ digitalhub/entities/model/_base/spec.py,sha256=enybK9mfNGncuMyQLL-HYeHkoe2Karau4R1zaSsX9Hc,865
125
125
  digitalhub/entities/model/_base/status.py,sha256=-O-2EbjYnLpD1aV3Yg5GMMPpLZ8zk6Cv8B3UshLuMbk,435
126
126
  digitalhub/entities/model/huggingface/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
127
127
  digitalhub/entities/model/huggingface/builder.py,sha256=JxPosF8QOaq1qxrWCD5wqaR2dnDXWb33-gxfhPuTFZ8,749
128
128
  digitalhub/entities/model/huggingface/entity.py,sha256=BnBWrAmTA8cEM47sqpxQeCLCl4Wu7CbpFKhYvf8qLaA,873
129
- digitalhub/entities/model/huggingface/spec.py,sha256=2rLIYwgQDXeulJAn9eLWrclYncTo__UpWVDGbsYhFUQ,1153
129
+ digitalhub/entities/model/huggingface/spec.py,sha256=QLpHh4010Z3iuuN6Gk7Xka5_Xh1QM0exiyzQ1h9VJ4U,1199
130
130
  digitalhub/entities/model/huggingface/status.py,sha256=ZFekC9oPuOpUmDcXMn-cpyXp2Jiiux46Vs4oPiiakIA,195
131
131
  digitalhub/entities/model/mlflow/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
132
132
  digitalhub/entities/model/mlflow/builder.py,sha256=NOc0hBEBOssQOHLnc-QIdUe_4B8wGTyu0AAGFtCT8_4,678
133
133
  digitalhub/entities/model/mlflow/entity.py,sha256=RRRnRWlJZS4s9_Aj8PZfCmfw6tNJGUZpygQygAbxm8I,823
134
134
  digitalhub/entities/model/mlflow/models.py,sha256=_ZjLk9-OZmQ1swpCtW3m7DDoMQlY7gfjPIog5ViJ6h4,666
135
- digitalhub/entities/model/mlflow/spec.py,sha256=ad6mUf96KrfYE55D4MF8qRnamUf5dHhLb97hrU6RrOk,1261
135
+ digitalhub/entities/model/mlflow/spec.py,sha256=a3xg0q3B_eC_5ahP_-NOtymfzivKLI8Fj_XlcQ754kE,1327
136
136
  digitalhub/entities/model/mlflow/status.py,sha256=bGTTWHAQt3cKFnGCdMinoWNIWzyVEkHi8ybqVT8xA5k,185
137
137
  digitalhub/entities/model/mlflow/utils.py,sha256=44OrIIG04UpVIUfXJz9NLeFptVdKHIU6HycQF5IMXb8,2873
138
138
  digitalhub/entities/model/model/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -146,36 +146,36 @@ digitalhub/entities/model/sklearn/entity.py,sha256=pPy4mOqOmbkqNkKFUnhrsIQNt2mGN
146
146
  digitalhub/entities/model/sklearn/spec.py,sha256=Md0aKlfNHZ2fhZbJgp9wZxF0Hu6XIkcniQHCgwoRdkk,301
147
147
  digitalhub/entities/model/sklearn/status.py,sha256=eqkPPtERX-6_BjPb_GD8j1FIeavpl43k-dfXZGqzGI0,187
148
148
  digitalhub/entities/project/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
149
- digitalhub/entities/project/crud.py,sha256=2qjEEVTCGY1ThB4vP9gObUh5N81yWQVVMd9tZcuoBH4,8584
149
+ digitalhub/entities/project/crud.py,sha256=1CL04IJBTass_6Oqund0RDdv1CQ35U3zTKViUFJYhXo,8591
150
150
  digitalhub/entities/project/utils.py,sha256=zwm82RaIVLJNYrg70jRnGdsP0IVWW86y3OrHmakeBjM,1011
151
151
  digitalhub/entities/project/_base/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
152
152
  digitalhub/entities/project/_base/builder.py,sha256=N1YPFZra7KMhmBynbeBWtvn3TwiBaBmSE5FfDPyUUG8,3645
153
153
  digitalhub/entities/project/_base/entity.py,sha256=zoNo8vrMP1WuYbz7pHLFRfMGLaStKPUmQppllPqvPnU,47389
154
- digitalhub/entities/project/_base/spec.py,sha256=zRJKFztK7z79LU4spxX7Rykv_1sK6kV9F9Qg95HBc6s,1346
154
+ digitalhub/entities/project/_base/spec.py,sha256=t92M9KzEH986oybui7ZW924VhmqTcpVbvreyfpylwSs,1435
155
155
  digitalhub/entities/project/_base/status.py,sha256=w1Hj_yFwr_5X7ZH7SmtZRto4qUdCWb010viFfvbqX48,168
156
156
  digitalhub/entities/run/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
157
157
  digitalhub/entities/run/crud.py,sha256=0_9zlW4aId4x1rGlvjOdAHkNaJwpR5vgLCuMt7rE-xE,4875
158
158
  digitalhub/entities/run/_base/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
159
159
  digitalhub/entities/run/_base/builder.py,sha256=e4P4gegD1DjHv_-Rhe3bIkGfRwgRbC8J6hdSSw2M8b4,2454
160
160
  digitalhub/entities/run/_base/entity.py,sha256=7T0VzeuX43wsOUvexb6eOPHdXqtFYsriXKc99FC_GHY,11750
161
- digitalhub/entities/run/_base/spec.py,sha256=nAyIAcnIXgGEhyI1TvOhZfKxB2ZC25VuFhAECgG--KU,1673
161
+ digitalhub/entities/run/_base/spec.py,sha256=xUjFRxGopUMwOPY8L-8kdFtOFypGGY4wrbLPrt6ycGI,1722
162
162
  digitalhub/entities/run/_base/status.py,sha256=956Mm7fl0Q5htRqgD7LiBLLLt7J9KVNWnGxnIS89vJM,499
163
163
  digitalhub/entities/secret/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
164
- digitalhub/entities/secret/crud.py,sha256=tKXNHqpxCsBMOYtHadQz70-mcExskdQ8Lt9lezmiZzU,6816
164
+ digitalhub/entities/secret/crud.py,sha256=HNm8_UJYMAU5JIPWWyb4x9cFlHdGAhJRWroZalha5Ak,6902
165
165
  digitalhub/entities/secret/_base/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
166
166
  digitalhub/entities/secret/_base/builder.py,sha256=XkSjyofbD_5fPLF05qSMRaD3xor7EzklS2Wu1qRxiYE,2195
167
167
  digitalhub/entities/secret/_base/entity.py,sha256=Vi4jAhLUlDGBxfAQmmZvuv9Ou2-UdJL-IqJc90yIMCk,1798
168
- digitalhub/entities/secret/_base/spec.py,sha256=Ol4bDVd2lR6uUUtFj80YNSgtRsnfYGE3C7UN2c_LUsc,727
168
+ digitalhub/entities/secret/_base/spec.py,sha256=8xbvaLOlu79-SlrQW0MCfYIfxR7mkac2l1S-sbxbiY8,776
169
169
  digitalhub/entities/secret/_base/status.py,sha256=TK9CUKA6eg9qegqgR9t-u1g-vEeFGB6v5dN9YJNukw8,166
170
170
  digitalhub/entities/task/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
171
171
  digitalhub/entities/task/crud.py,sha256=cLMklzom3ILxncu-Tz9HTO1JX6JeAZRHXuOaWbR9JAg,5333
172
172
  digitalhub/entities/task/_base/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
173
173
  digitalhub/entities/task/_base/builder.py,sha256=21WEbycCR8yaOPcLLcAITaoQ4ZmBNXJXB-Oy0VfSPrg,2358
174
174
  digitalhub/entities/task/_base/entity.py,sha256=hOTFxWgSrEs2UPrd9pDZAbdWnL_OrkHr6PwxnAkYG2A,3531
175
- digitalhub/entities/task/_base/models.py,sha256=lrkQfKEqqMboiDgtqVdTdlFx4FCH_ksJ2Jku1nK6ARw,4741
175
+ digitalhub/entities/task/_base/models.py,sha256=v78h4VUvdrIm3jnM0WU-FUuglQbHKboxI9uzccRmqGs,5176
176
176
  digitalhub/entities/task/_base/spec.py,sha256=4JsbQxx05UYjAerSNBCrLSjwMLYeMSqgPIYdkJhH7ik,2500
177
177
  digitalhub/entities/task/_base/status.py,sha256=FCSSQscQ0dHEpXdc5vSrIkTXon9FNNOr0M1KVh2ZVAA,162
178
- digitalhub/entities/task/_base/utils.py,sha256=P0ajA8SQcDaEC9BBIIc_M8UL1_qBcZE8loUTkP7xVYY,436
178
+ digitalhub/entities/task/_base/utils.py,sha256=faeAN7r_5q0KWDj1vrbVvFMcCpeMw7fK7vGScSpFZCI,448
179
179
  digitalhub/entities/workflow/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
180
180
  digitalhub/entities/workflow/crud.py,sha256=O_Zq30NG-cy7RU1GG88XNi8ids7vrRJAR95PTMYncGM,6517
181
181
  digitalhub/entities/workflow/_base/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -207,42 +207,32 @@ digitalhub/stores/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU
207
207
  digitalhub/stores/api.py,sha256=7bspqJaexE8PKnVDotpAX3mgLsgcCNhrImD1kNI4heQ,560
208
208
  digitalhub/stores/builder.py,sha256=6_19vEYnh3WYkgOY0h5xAjpFujMYR0oHF5PBDupsgnc,2314
209
209
  digitalhub/stores/_base/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
210
- digitalhub/stores/_base/store.py,sha256=cMZVHJKmEaMfeMQ9mUU_d4WhtscBhipUCi0-QXY6Wvw,5132
210
+ digitalhub/stores/_base/store.py,sha256=0iyLfiJLPJu6XbUAtMDmKim6Th_YRzk8JnFQcuETwik,5227
211
211
  digitalhub/stores/local/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
212
- digitalhub/stores/local/store.py,sha256=cpQ1hfw5TZ_akDVS_4gT_rqWdDF1qNMDwHwuXt-iafs,7333
212
+ digitalhub/stores/local/store.py,sha256=aljhQYaILZlj_qltCcsLVn1pTZYPmgs0Jqc26VRHMpE,7412
213
213
  digitalhub/stores/remote/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
214
- digitalhub/stores/remote/store.py,sha256=WP52ILm48o4y_p9q_Pa_T_cSBCcFIJEL4PA1eXaumOc,6102
214
+ digitalhub/stores/remote/store.py,sha256=wxB0t3zjKDSFgtKbT1-yPLT_Qm07UkpBCpZfHbD7BzM,6181
215
215
  digitalhub/stores/s3/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
216
216
  digitalhub/stores/s3/configurator.py,sha256=t0Ct98_4WgvDm6MExaFzekUhJu5AtLd3XEAw9ALJkj8,3727
217
217
  digitalhub/stores/s3/enums.py,sha256=tmSavz83jr6SBW-Gqn4D21TJpFytxvbtbW63htmZG2A,392
218
218
  digitalhub/stores/s3/models.py,sha256=qeXeL7iP76EBO35wzP6bYeMj-sBOY634Tjwx8h3Di2g,371
219
- digitalhub/stores/s3/store.py,sha256=eOXxE7p6ktcXbtKhVqN7xnILFpAAMiY7ykv0Pw4CNok,19151
219
+ digitalhub/stores/s3/store.py,sha256=ggmtwsAYhhBJUgbIh22vXJUSJTHloCszyEQqF64g1sk,19237
220
220
  digitalhub/stores/s3/utils.py,sha256=5ATkIRThtssu52dPrkWnK-nhD5pc6rlrHLNofjiQzt4,1500
221
221
  digitalhub/stores/sql/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
222
- digitalhub/stores/sql/configurator.py,sha256=a9gjqpNypMEx5e-rYCrrkPqtg3BA7X0613lVrzHmeRI,3159
223
- digitalhub/stores/sql/enums.py,sha256=dN1lT7GkcFU64w7SHnVBtwt9rLjRnonwmun5nhsp6V4,276
222
+ digitalhub/stores/sql/configurator.py,sha256=Pg-89YZCNA6q6G46cI-PSVg80wIjFChjC74wxBSjhcc,3175
223
+ digitalhub/stores/sql/enums.py,sha256=FCpmIXxef6SQIX_564a1hYvaSVrpvld8gi7YAv25H-o,284
224
224
  digitalhub/stores/sql/models.py,sha256=_itIXoCfRLzUpG0OaM44qbv2u87Lyl5e0tmAXNTvfjQ,349
225
- digitalhub/stores/sql/store.py,sha256=Hg6zVRN1ped67373H2gBNdFgYComABmF-3FxdlIcdHo,11126
225
+ digitalhub/stores/sql/store.py,sha256=4i2j8h71E-lrGYI9kUzwLpZfonYjIY1osuTvy0s8CcA,11327
226
226
  digitalhub/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
227
227
  digitalhub/utils/exceptions.py,sha256=CGiRXx6OvYpjg6d9yEn2OvyfF0FA5n1l8uH6loCDoAY,1233
228
- digitalhub/utils/file_utils.py,sha256=gw0ozfrobAGGpVBTPIiIRJK4K6vEkB5WHFq8Ygzl-CQ,5022
229
- digitalhub/utils/generic_utils.py,sha256=SX7q7EVNmDVOmtjtgzurdt0DtxPIWxc3QnMoHOzjk2A,4420
228
+ digitalhub/utils/file_utils.py,sha256=qRb0ETNaQKwBlF5iwflDFlkrku5TvJXHHhxgHtAeS9w,5117
229
+ digitalhub/utils/generic_utils.py,sha256=8JKmfe1UMYqzrqfptMJZ7x-EvD1-zVNLfBcGoVl8Wcg,4870
230
230
  digitalhub/utils/git_utils.py,sha256=air8jn73FxzSWRxpvObcdOJBWcFOqb5A7D4ISwPEs7A,3244
231
231
  digitalhub/utils/io_utils.py,sha256=8jD4Rp_b7LZEpY5JSMxVUowZsnifKnbGpHT5Hijx9-g,3299
232
232
  digitalhub/utils/logger.py,sha256=ml3ne6D8wuRdNZ4F6ywmvWotSxjmZWnmKgNiuHb4R5M,437
233
- digitalhub/utils/uri_utils.py,sha256=AKfvMtdt_0OY_cNtJY1t0YXrQ12OYGf-KYBF_2m0ULA,3821
234
- test/test_crud_functions.py,sha256=tQs_QBaPCuYVSBpbl-he5_6jr_tteCXVmohj1ZluNsA,2769
235
- test/test_crud_runs.py,sha256=lkssy15UPJKymgazmi5gG6RLxyTsG-tM_CpNCowD2gQ,2220
236
- test/test_crud_tasks.py,sha256=sIbY-Hq6C2N20hWHfbCMw9c-zpYS0m_UJGnPINR4Q6s,2111
237
- test/testkfp.py,sha256=fy__EywOCtucL5HUEKD23gwit1qu9SrCWFSjyeKxe68,1085
238
- test/testkfp_pipeline.py,sha256=WceFrCp-avHI7PcwIvnv7Kgs2xK3oQqU6sjaonGamg8,622
239
- test/local/CRUD/test_artifacts.py,sha256=Y3J_C7SDRSsQd2SGIZjPIOvyTL92B1sTFrUONG3YG0Y,2968
240
- test/local/CRUD/test_dataitems.py,sha256=LQqTzI59uwTGy4zoq8jL0yWVe2W9vXlatkgDU9aB6xg,2968
241
- test/local/CRUD/test_models.py,sha256=msosbZuRwIMbZtmi3ZaOva4TjQ4lrzkNu9AguIFhrSo,2929
242
- test/local/imports/test_imports.py,sha256=Z_RomI5EN_5KJUU1p7S1lLl7krTuEwB0L1cBtbXXoOA,1254
243
- test/local/instances/test_validate.py,sha256=bGPKRFR_Tb5nlzzmI_ty_6UVUvYGseE2-pkNVoGWeO0,1842
244
- digitalhub-0.10.0b2.dist-info/LICENSE.txt,sha256=qmrTTXPlgU0kSRlRVbjhlyGs1IXs2QPxo_Y-Mn06J0k,11589
245
- digitalhub-0.10.0b2.dist-info/METADATA,sha256=t4q9tWFbz_YUduJulntoZJoaXVpFjj4SoH0cSnDRgJk,15368
246
- digitalhub-0.10.0b2.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
247
- digitalhub-0.10.0b2.dist-info/top_level.txt,sha256=ae9pDfCF27ZoaVAxuBKONMP0lm5P-N_I-e-no1WlvD8,16
248
- digitalhub-0.10.0b2.dist-info/RECORD,,
233
+ digitalhub/utils/types.py,sha256=pq5OVNLJx6ayTVa1SHgq1MzE-XUW4qipBFLzN1x0ovc,165
234
+ digitalhub/utils/uri_utils.py,sha256=6W3ITWcOwlpmA42rmgld7f2t1RpNF2pYXadWpmEQeBM,3832
235
+ digitalhub-0.10.0b4.dist-info/METADATA,sha256=GGLEMolKJZZ6CKcO3oqBtHBxcBQEnFKSXqg-1GkI4p4,15173
236
+ digitalhub-0.10.0b4.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
237
+ digitalhub-0.10.0b4.dist-info/licenses/LICENSE.txt,sha256=qmrTTXPlgU0kSRlRVbjhlyGs1IXs2QPxo_Y-Mn06J0k,11589
238
+ digitalhub-0.10.0b4.dist-info/RECORD,,
@@ -1,5 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (75.8.0)
2
+ Generator: hatchling 1.27.0
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
-
@@ -1,2 +0,0 @@
1
- digitalhub
2
- test
@@ -1,96 +0,0 @@
1
- """
2
- Unit tests for the entity Artifact
3
- """
4
-
5
- import digitalhub as dh
6
- from digitalhub.entities.artifact._base.entity import Artifact
7
-
8
-
9
- class TestArtifactCRUD:
10
- def create_test_dicts(self):
11
- names = ["test1", "test2", "test3", "test4"]
12
- uuids = [
13
- "d150bcca-bb64-451d-8455-dff862254b95",
14
- "31acdd2d-0c41-428c-b68b-1b133da9e97b",
15
- "b4a3dfdc-b917-44c4-9a29-613dcf734244",
16
- "2618d9c4-cd61-440f-aebb-7e5761709f3b",
17
- ]
18
- paths = [
19
- "./data/test.csv",
20
- "s3://bucket/key.csv",
21
- "sql://database/schema/table",
22
- "https://url.com/file.csv",
23
- ]
24
- kind = ["artifact", "artifact", "artifact", "artifact"]
25
-
26
- dicts = []
27
- for i in range(len(names)):
28
- dicts.append({"name": names[i], "uuid": uuids[i], "path": paths[i], "kind": kind[i]})
29
-
30
- return dicts
31
-
32
- def test_create_delete(self):
33
- dicts = self.create_test_dicts()
34
- p = dh.get_or_create_project("test", local=True)
35
- # Create and delete artifacts
36
- for i in dicts:
37
- d = dh.new_artifact(p.name, **i)
38
- dh.delete_artifact(d.key)
39
- d = dh.new_artifact(p.name, **i)
40
- dh.delete_artifact(d.name, project=p.name, entity_id=d.id)
41
- d = p.new_artifact(**i)
42
- p.delete_artifact(d.key)
43
-
44
- assert dh.list_artifacts(p.name) == []
45
- dh.delete_project("test", local=True, clean_context=True)
46
-
47
- def test_list(self):
48
- dicts = self.create_test_dicts()
49
- p = dh.get_or_create_project("test", local=True)
50
-
51
- assert dh.list_artifacts(p.name) == []
52
-
53
- for i in dicts:
54
- dh.new_artifact(p.name, **i)
55
-
56
- # List artifacts
57
- l_obj = dh.list_artifacts(p.name)
58
- assert isinstance(l_obj, list)
59
- assert len(l_obj) == 4
60
- for i in l_obj:
61
- assert isinstance(i, Artifact)
62
-
63
- # delete listed objects
64
- for obj in l_obj:
65
- dh.delete_artifact(obj.key)
66
-
67
- assert len(dh.list_artifacts(p.name)) == 0
68
-
69
- dh.delete_project("test", clean_context=True, local=True)
70
-
71
- def test_get(self):
72
- dicts = self.create_test_dicts()
73
- p = dh.get_or_create_project("test", local=True)
74
-
75
- for i in dicts:
76
- o1 = dh.new_artifact(p.name, **i)
77
- assert isinstance(o1, Artifact)
78
-
79
- # Get by name and id
80
- o2 = dh.get_artifact(o1.name, project=p.name, entity_id=o1.id)
81
- assert isinstance(o2, Artifact)
82
- assert o1.id == o2.id
83
-
84
- # Get by key
85
- o3 = dh.get_artifact(o1.key)
86
- assert isinstance(o3, Artifact)
87
- assert o1.id == o3.id
88
-
89
- # delete listed objects
90
- l_obj = dh.list_artifacts(p.name)
91
- for obj in l_obj:
92
- dh.delete_artifact(obj.key)
93
-
94
- assert len(dh.list_artifacts(p.name)) == 0
95
-
96
- dh.delete_project("test", clean_context=True, local=True)
@@ -1,96 +0,0 @@
1
- """
2
- Unit tests for the entity Dataitem
3
- """
4
-
5
- import digitalhub as dh
6
- from digitalhub.entities.dataitem._base.entity import Dataitem
7
-
8
-
9
- class TestDataitemCRUD:
10
- def create_test_dicts(self):
11
- names = ["test1", "test2", "test3", "test4"]
12
- uuids = [
13
- "d150bcca-bb64-451d-8455-dff862254b95",
14
- "31acdd2d-0c41-428c-b68b-1b133da9e97b",
15
- "b4a3dfdc-b917-44c4-9a29-613dcf734244",
16
- "2618d9c4-cd61-440f-aebb-7e5761709f3b",
17
- ]
18
- paths = [
19
- "./data/test.csv",
20
- "s3://bucket/key.csv",
21
- "sql://database/schema/table",
22
- "https://url.com/file.csv",
23
- ]
24
- kind = ["dataitem", "dataitem", "dataitem", "dataitem"]
25
-
26
- dicts = []
27
- for i in range(len(names)):
28
- dicts.append({"name": names[i], "uuid": uuids[i], "path": paths[i], "kind": kind[i]})
29
-
30
- return dicts
31
-
32
- def test_create_delete(self):
33
- dicts = self.create_test_dicts()
34
- p = dh.get_or_create_project("test", local=True)
35
- # Create and delete dataitems
36
- for i in dicts:
37
- d = dh.new_dataitem(p.name, **i)
38
- dh.delete_dataitem(d.key)
39
- d = dh.new_dataitem(p.name, **i)
40
- dh.delete_dataitem(d.name, project=p.name, entity_id=d.id)
41
- d = p.new_dataitem(**i)
42
- p.delete_dataitem(d.key)
43
-
44
- assert dh.list_dataitems(p.name) == []
45
- dh.delete_project("test", local=True, clean_context=True)
46
-
47
- def test_list(self):
48
- dicts = self.create_test_dicts()
49
- p = dh.get_or_create_project("test", local=True)
50
-
51
- assert dh.list_dataitems(p.name) == []
52
-
53
- for i in dicts:
54
- dh.new_dataitem(p.name, **i)
55
-
56
- # List dataitems
57
- l_obj = dh.list_dataitems(p.name)
58
- assert isinstance(l_obj, list)
59
- assert len(l_obj) == 4
60
- for i in l_obj:
61
- assert isinstance(i, Dataitem)
62
-
63
- # delete listed objects
64
- for obj in l_obj:
65
- dh.delete_dataitem(obj.key)
66
-
67
- assert len(dh.list_dataitems(p.name)) == 0
68
-
69
- dh.delete_project("test", clean_context=True, local=True)
70
-
71
- def test_get(self):
72
- dicts = self.create_test_dicts()
73
- p = dh.get_or_create_project("test", local=True)
74
-
75
- for i in dicts:
76
- o1 = dh.new_dataitem(p.name, **i)
77
- assert isinstance(o1, Dataitem)
78
-
79
- # Get by name and id
80
- o2 = dh.get_dataitem(o1.name, project=p.name, entity_id=o1.id)
81
- assert isinstance(o2, Dataitem)
82
- assert o1.id == o2.id
83
-
84
- # Get by key
85
- o3 = dh.get_dataitem(o1.key)
86
- assert isinstance(o3, Dataitem)
87
- assert o1.id == o3.id
88
-
89
- # delete listed objects
90
- l_obj = dh.list_dataitems(p.name)
91
- for obj in l_obj:
92
- dh.delete_dataitem(obj.key)
93
-
94
- assert len(dh.list_dataitems(p.name)) == 0
95
-
96
- dh.delete_project("test", clean_context=True, local=True)
@@ -1,95 +0,0 @@
1
- """
2
- Unit tests for the entity Models
3
- """
4
-
5
- import digitalhub as dh
6
- from digitalhub.entities.model._base.entity import Model
7
-
8
-
9
- class TestModelCRUD:
10
- def create_test_dicts(self):
11
- names = ["test1", "test2", "test3", "test4"]
12
- uuids = [
13
- "d150bcca-bb64-451d-8455-dff862254b95",
14
- "31acdd2d-0c41-428c-b68b-1b133da9e97b",
15
- "b4a3dfdc-b917-44c4-9a29-613dcf734244",
16
- "2618d9c4-cd61-440f-aebb-7e5761709f3b",
17
- ]
18
- paths = [
19
- "./data/my_random_forest_model.pkl",
20
- "s3://bucket/model.pkl",
21
- "sql://database/schema/linear_regression_model.joblib",
22
- "https://url.com/bert_base_uncased.pt",
23
- ]
24
- kind = ["model", "model", "model", "model"]
25
-
26
- dicts = []
27
- for i in range(len(names)):
28
- dicts.append({"name": names[i], "uuid": uuids[i], "path": paths[i], "kind": kind[i]})
29
-
30
- return dicts
31
-
32
- def test_create_delete(self):
33
- dicts = self.create_test_dicts()
34
- p = dh.get_or_create_project("test", local=True)
35
- # Create and delete models
36
- for i in dicts:
37
- d = dh.new_model(p.name, **i)
38
- dh.delete_model(d.key)
39
- d = dh.new_model(p.name, **i)
40
- dh.delete_model(d.name, project=p.name, entity_id=d.id)
41
- d = p.new_model(**i)
42
- p.delete_model(d.key)
43
- assert dh.list_models(p.name) == []
44
- dh.delete_project("test", local=True, clean_context=True)
45
-
46
- def test_list(self):
47
- dicts = self.create_test_dicts()
48
- p = dh.get_or_create_project("test", local=True)
49
-
50
- assert dh.list_models(p.name) == []
51
-
52
- for i in dicts:
53
- dh.new_model(p.name, **i)
54
-
55
- # List models
56
- l_obj = dh.list_models(p.name)
57
- assert isinstance(l_obj, list)
58
- assert len(l_obj) == 4
59
- for i in l_obj:
60
- assert isinstance(i, Model)
61
-
62
- # delete listed objects
63
- for obj in l_obj:
64
- dh.delete_model(obj.key)
65
-
66
- assert len(dh.list_models(p.name)) == 0
67
-
68
- dh.delete_project("test", clean_context=True, local=True)
69
-
70
- def test_get(self):
71
- dicts = self.create_test_dicts()
72
- p = dh.get_or_create_project("test", local=True)
73
-
74
- for i in dicts:
75
- o1 = dh.new_model(p.name, **i)
76
- assert isinstance(o1, Model)
77
-
78
- # Get by name and id
79
- o2 = dh.get_model(o1.name, project=p.name, entity_id=o1.id)
80
- assert isinstance(o2, Model)
81
- assert o1.id == o2.id
82
-
83
- # Get by key
84
- o3 = dh.get_model(o1.key)
85
- assert isinstance(o3, Model)
86
- assert o1.id == o3.id
87
-
88
- # delete listed objects
89
- l_obj = dh.list_models(p.name)
90
- for obj in l_obj:
91
- dh.delete_model(obj.key)
92
-
93
- assert len(dh.list_models(p.name)) == 0
94
-
95
- dh.delete_project("test", clean_context=True, local=True)