digitalhub 0.11.0b5__py3-none-any.whl → 0.11.0b7__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.

@@ -12,7 +12,7 @@ from digitalhub.utils.exceptions import EntityAlreadyExistsError, EntityError
12
12
 
13
13
  if typing.TYPE_CHECKING:
14
14
  from digitalhub.entities._base.entity.metadata import Metadata
15
- from digitalhub.entities._base.entity.spec import Spec
15
+ from digitalhub.entities._base.entity.spec import Spec, SpecValidator
16
16
  from digitalhub.entities._base.entity.status import Status
17
17
  from digitalhub.entities.run._base.entity import Run
18
18
  from digitalhub.entities.task._base.entity import Task
@@ -409,22 +409,43 @@ class ExecutableEntity(VersionedEntity):
409
409
  # Trigger
410
410
  ##############################
411
411
 
412
- def new_trigger(self, trigger_kind: str, **kwargs) -> Trigger:
412
+ def trigger(self, action: str, trigger_kind: str, trigger_name: str, **kwargs) -> Trigger:
413
413
  """
414
- Create new trigger.
414
+ Trigger function.
415
415
 
416
416
  Parameters
417
417
  ----------
418
+ action : str
419
+ Action to execute.
418
420
  trigger_kind : str
419
- Kind the object.
421
+ Trigger kind.
420
422
  **kwargs : dict
421
- Keyword arguments.
423
+ Keyword arguments passed to Run builder.
422
424
 
423
425
  Returns
424
426
  -------
425
- Trigger
426
- New trigger.
427
+ Run
428
+ Run instance.
427
429
  """
430
+ # Get task
431
+ task_kind = factory.get_task_kind_from_action(self.kind, action)
432
+ task = self._get_or_create_task(task_kind)
433
+ task_string = task._get_task_string()
434
+
435
+ # Get run validator for building trigger template
436
+ run_kind = factory.get_run_kind(self.kind)
437
+ run_validator: SpecValidator = factory.get_spec_validator(run_kind)
438
+ if kwargs is None:
439
+ kwargs = {}
440
+
441
+ # Override kwargs
442
+ kwargs["project"] = self.project
443
+ kwargs["kind"] = trigger_kind
444
+ kwargs["name"] = trigger_name
445
+ kwargs[self.ENTITY_TYPE] = self._get_executable_string()
446
+ kwargs["task"] = task_string
447
+ kwargs["template"] = run_validator(**kwargs).to_dict()
448
+
428
449
  # Create object instance
429
450
  trigger: Trigger = factory.build_entity_from_params(**kwargs)
430
451
  trigger.save()
@@ -106,3 +106,4 @@ class EntityKinds(Enum):
106
106
  MODEL_SKLEARN = "sklearn"
107
107
  SECRET_SECRET = "secret"
108
108
  TRIGGER_SCHEDULER = "scheduler"
109
+ TRIGGER_LIFECYCLE = "lifecycle"
@@ -128,8 +128,12 @@ class ContextEntityOperationsProcessor:
128
128
  try:
129
129
  new_obj.upload(source)
130
130
  uploaded = True
131
- except Exception:
131
+ msg = None
132
+ except Exception as e:
132
133
  uploaded = False
134
+ msg = str(e)
135
+
136
+ new_obj.status.message = msg
133
137
 
134
138
  # Update status after upload
135
139
  if uploaded:
@@ -138,6 +142,7 @@ class ContextEntityOperationsProcessor:
138
142
  else:
139
143
  new_obj.status.state = State.ERROR.value
140
144
  new_obj = self._update_material_entity(new_obj)
145
+ raise EntityError(msg)
141
146
 
142
147
  return new_obj
143
148
 
@@ -10,11 +10,9 @@ from digitalhub.utils.exceptions import BackendError
10
10
 
11
11
  if typing.TYPE_CHECKING:
12
12
  from digitalhub.entities._base.entity.metadata import Metadata
13
- from digitalhub.entities._base.entity.spec import SpecValidator
14
13
  from digitalhub.entities.function._base.spec import FunctionSpec
15
14
  from digitalhub.entities.function._base.status import FunctionStatus
16
15
  from digitalhub.entities.run._base.entity import Run
17
- from digitalhub.entities.trigger._base.entity import Trigger
18
16
 
19
17
 
20
18
  class Function(ExecutableEntity):
@@ -102,47 +100,3 @@ class Function(ExecutableEntity):
102
100
  result = executor.submit(run.run)
103
101
  r = result.result()
104
102
  return r
105
-
106
- def trigger(self, action: str, trigger_kind: str, trigger_name: str, **kwargs) -> Trigger:
107
- """
108
- Trigger function.
109
-
110
- Parameters
111
- ----------
112
- action : str
113
- Action to execute.
114
- trigger_kind : str
115
- Trigger kind.
116
- **kwargs : dict
117
- Keyword arguments passed to Run builder.
118
-
119
- Returns
120
- -------
121
- Run
122
- Run instance.
123
- """
124
- # Get task
125
- task_kind = factory.get_task_kind_from_action(self.kind, action)
126
- task = self._get_or_create_task(task_kind)
127
- task_string = task._get_task_string()
128
-
129
- # Get run validator for building trigger template
130
- run_kind = factory.get_run_kind(self.kind)
131
- run_validator: SpecValidator = factory.get_spec_validator(run_kind)
132
- if kwargs is None:
133
- kwargs = {}
134
- kwargs[self.ENTITY_TYPE] = self._get_executable_string()
135
- kwargs["task"] = task_string
136
-
137
- template = run_validator(**kwargs).to_dict()
138
-
139
- # Override kwargs
140
- kwargs["project"] = self.project
141
- kwargs["kind"] = trigger_kind
142
- kwargs["name"] = trigger_name
143
- kwargs["template"] = template
144
-
145
- # Create object instance
146
- trigger: Trigger = factory.build_entity_from_params(**kwargs)
147
- trigger.save()
148
- return trigger
@@ -8,11 +8,18 @@ class TriggerSpec(Spec):
8
8
  TriggerSpec specifications.
9
9
  """
10
10
 
11
- def __init__(self, task: str, function: str, template: dict) -> None:
11
+ def __init__(
12
+ self,
13
+ task: str,
14
+ template: dict,
15
+ function: str | None = None,
16
+ workflow: str | None = None,
17
+ ) -> None:
12
18
  super().__init__()
13
19
  self.task = task
14
- self.function = function
15
20
  self.template = template
21
+ self.function = function
22
+ self.workflow = workflow
16
23
 
17
24
 
18
25
  class TriggerValidator(SpecValidator):
@@ -23,8 +30,11 @@ class TriggerValidator(SpecValidator):
23
30
  task: str
24
31
  """Task string."""
25
32
 
26
- function: str
33
+ template: dict
34
+ """Template map."""
35
+
36
+ function: str = None
27
37
  """Function string."""
28
38
 
29
- template: dict
30
- """Template string."""
39
+ workflow: str = None
40
+ """Workflow string."""
@@ -18,6 +18,7 @@ def new_trigger(
18
18
  kind: str,
19
19
  task: str,
20
20
  function: str | None = None,
21
+ workflow: str | None = None,
21
22
  uuid: str | None = None,
22
23
  description: str | None = None,
23
24
  labels: list[str] | None = None,
@@ -58,12 +59,17 @@ def new_trigger(
58
59
  >>> kind="trigger",
59
60
  >>> name="my-trigger",)
60
61
  """
62
+ if workflow is None and function is None:
63
+ raise ValueError("Workflow or function must be provided")
61
64
  if kwargs is None:
62
65
  kwargs = {}
63
66
  if template is None:
64
67
  template = {}
65
68
  template["task"] = task
66
- template["function"] = function
69
+ if workflow is not None:
70
+ template["workflow"] = workflow
71
+ if function is not None:
72
+ template["function"] = function
67
73
  kwargs["template"] = template
68
74
  return context_processor.create_context_entity(
69
75
  project=project,
File without changes
@@ -0,0 +1,19 @@
1
+ from __future__ import annotations
2
+
3
+ from digitalhub.entities._commons.enums import EntityKinds
4
+ from digitalhub.entities.trigger._base.builder import TriggerBuilder
5
+ from digitalhub.entities.trigger.lifecycle.entity import TriggerLifecycle
6
+ from digitalhub.entities.trigger.lifecycle.spec import TriggerSpecLifecycle, TriggerValidatorLifecycle
7
+ from digitalhub.entities.trigger.lifecycle.status import TriggerStatusLifecycle
8
+
9
+
10
+ class TriggerLifecycleBuilder(TriggerBuilder):
11
+ """
12
+ TriggerLifecycle builder.
13
+ """
14
+
15
+ ENTITY_CLASS = TriggerLifecycle
16
+ ENTITY_SPEC_CLASS = TriggerSpecLifecycle
17
+ ENTITY_SPEC_VALIDATOR = TriggerValidatorLifecycle
18
+ ENTITY_STATUS_CLASS = TriggerStatusLifecycle
19
+ ENTITY_KIND = EntityKinds.TRIGGER_LIFECYCLE.value
@@ -0,0 +1,32 @@
1
+ from __future__ import annotations
2
+
3
+ import typing
4
+
5
+ from digitalhub.entities.trigger._base.entity import Trigger
6
+
7
+ if typing.TYPE_CHECKING:
8
+ from digitalhub.entities._base.entity.metadata import Metadata
9
+ from digitalhub.entities.trigger.lifecycle.spec import TriggerSpecLifecycle
10
+ from digitalhub.entities.trigger.lifecycle.status import TriggerStatusLifecycle
11
+
12
+
13
+ class TriggerLifecycle(Trigger):
14
+ """
15
+ TriggerLifecycle class.
16
+ """
17
+
18
+ def __init__(
19
+ self,
20
+ project: str,
21
+ name: str,
22
+ uuid: str,
23
+ kind: str,
24
+ metadata: Metadata,
25
+ spec: TriggerSpecLifecycle,
26
+ status: TriggerStatusLifecycle,
27
+ user: str | None = None,
28
+ ) -> None:
29
+ super().__init__(project, name, uuid, kind, metadata, spec, status, user)
30
+
31
+ self.spec: TriggerSpecLifecycle
32
+ self.status: TriggerStatusLifecycle
@@ -0,0 +1,38 @@
1
+ from __future__ import annotations
2
+
3
+ from pydantic import Field
4
+
5
+ from digitalhub.entities.trigger._base.spec import TriggerSpec, TriggerValidator
6
+
7
+ regexp = r"store://([^/]+)/(.+)"
8
+
9
+
10
+ class TriggerSpecLifecycle(TriggerSpec):
11
+ """
12
+ TriggerSpecLifecycle specifications.
13
+ """
14
+
15
+ def __init__(
16
+ self,
17
+ task: str,
18
+ template: dict,
19
+ function: str | None = None,
20
+ workflow: str | None = None,
21
+ key: str | None = None,
22
+ states: list[str] | None = None,
23
+ ) -> None:
24
+ super().__init__(task, template, function, workflow)
25
+ self.key = key
26
+ self.states = states
27
+
28
+
29
+ class TriggerValidatorLifecycle(TriggerValidator):
30
+ """
31
+ TriggerValidatorLifecycle validator.
32
+ """
33
+
34
+ key: str = Field(pattern=regexp)
35
+ """Entity key."""
36
+
37
+ states: list[str] = None
38
+ """List of entity states."""
@@ -0,0 +1,9 @@
1
+ from __future__ import annotations
2
+
3
+ from digitalhub.entities.trigger._base.status import TriggerStatus
4
+
5
+
6
+ class TriggerStatusLifecycle(TriggerStatus):
7
+ """
8
+ TriggerStatusLifecycle status.
9
+ """
@@ -8,8 +8,15 @@ class TriggerSpecScheduler(TriggerSpec):
8
8
  TriggerSpecScheduler specifications.
9
9
  """
10
10
 
11
- def __init__(self, task: str, function: str, template: dict, schedule: str) -> None:
12
- super().__init__(task, function, template)
11
+ def __init__(
12
+ self,
13
+ task: str,
14
+ template: dict,
15
+ function: str | None = None,
16
+ workflow: str | None = None,
17
+ schedule: str | None = None,
18
+ ) -> None:
19
+ super().__init__(task, template, function, workflow)
13
20
  self.schedule = schedule
14
21
 
15
22
 
@@ -649,8 +649,8 @@ class S3Store(Store):
649
649
  """
650
650
  try:
651
651
  client.head_bucket(Bucket=bucket)
652
- except (ClientError, NoCredentialsError):
653
- raise StoreError("No access to s3 bucket!")
652
+ except (ClientError, NoCredentialsError) as err:
653
+ raise StoreError(f"No access to s3 bucket! Error: {err}")
654
654
 
655
655
  @staticmethod
656
656
  def _get_key(path: str) -> str:
@@ -190,7 +190,7 @@ def get_file_info_from_s3(path: str, metadata: dict) -> None | dict:
190
190
  if size < file_size_limit_multipart:
191
191
  file_hash = "md5:" + file_hash
192
192
  else:
193
- file_hash = "LiteralETag:" + file_hash
193
+ file_hash = "ETag:" + file_hash
194
194
 
195
195
  name = get_path_name(path)
196
196
  content_type = metadata["ContentType"]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: digitalhub
3
- Version: 0.11.0b5
3
+ Version: 0.11.0b7
4
4
  Summary: Python SDK for Digitalhub
5
5
  Project-URL: Homepage, https://github.com/scc-digitalhub/digitalhub-sdk
6
6
  Author-email: Fondazione Bruno Kessler <dslab@fbk.eu>, Matteo Martini <mmartini@fbk.eu>
@@ -22,7 +22,7 @@ digitalhub/entities/_base/entity/_constructors/spec.py,sha256=zEC7MDDKTf8nIIgR5s
22
22
  digitalhub/entities/_base/entity/_constructors/status.py,sha256=wetvpnQTtkjZ-pMO2jFnGyLbM_Ve-k9lXGl0f-eI20M,1190
23
23
  digitalhub/entities/_base/entity/_constructors/uuid.py,sha256=QzG0nsVpGU2UDD5CjpkOM2RfVaCHPdLp2HoQt8TM_tk,555
24
24
  digitalhub/entities/_base/executable/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
25
- digitalhub/entities/_base/executable/entity.py,sha256=I6LbVEuMbiXcxkTPeaID3lL-_Ms2dntO0wTDtDj8XqE,10742
25
+ digitalhub/entities/_base/executable/entity.py,sha256=797e2RlkyRP0T5aT1mLXCz_E1BB0knWeV7UnURTST2E,11587
26
26
  digitalhub/entities/_base/material/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
27
27
  digitalhub/entities/_base/material/entity.py,sha256=cEpVmtzSjYXENlT6YJua9IV8Ac5EtSkigYREht4U60A,7015
28
28
  digitalhub/entities/_base/material/spec.py,sha256=jL1OohnYhUSrdTaFF3Rkw817jIjNY0ewm1wB3tgQ_9c,436
@@ -37,13 +37,13 @@ digitalhub/entities/_base/versioned/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQ
37
37
  digitalhub/entities/_base/versioned/builder.py,sha256=0niRbqpCnHqBK0hTQxdrtUl43BbJuGXMLVbruhpUUuU,1896
38
38
  digitalhub/entities/_base/versioned/entity.py,sha256=h4YX6smpPjIVW8DOVdRYW-abOcoJ_F0OkozLhLxpjWI,899
39
39
  digitalhub/entities/_commons/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
40
- digitalhub/entities/_commons/enums.py,sha256=KUzaKLUz31qW2QTT8lZ3tP6nbjJZvkw_vTzSrH9iS30,2017
40
+ digitalhub/entities/_commons/enums.py,sha256=COg-eVsmCBWAKuwf7_fPvEBmB2pU7Yw6-kM8xGn-RNE,2053
41
41
  digitalhub/entities/_commons/metrics.py,sha256=SYb980t9smzJVUWGqE4Ug0t-0wPXYJZ_nJRi_9bhcpw,3405
42
42
  digitalhub/entities/_commons/types.py,sha256=bwK-2iQHL2gdtOPfRcXWBRWqqS1Tic6ywRQsJSocn9c,118
43
43
  digitalhub/entities/_commons/utils.py,sha256=354ZL5wKvijJ2A25pM0xK5JMhgTyZF6urjHZNjosINI,1846
44
44
  digitalhub/entities/_processors/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
45
45
  digitalhub/entities/_processors/base.py,sha256=K_XfwgzsYWKMQ5Que1C_oTwQU67jQJPbA98g26OND58,13440
46
- digitalhub/entities/_processors/context.py,sha256=D6X9l6ZSnsqi94h93IiyyCLahayUcvYAEXaqlfu6SUA,34445
46
+ digitalhub/entities/_processors/context.py,sha256=euGE8yM2nthFbq7PNcTUjGIR5kHNCmOyNM1m7u957No,34571
47
47
  digitalhub/entities/_processors/utils.py,sha256=byhWUv3CfaS-RNPu5FdOdNNCakaKh5zNQFziJvwZdkY,3791
48
48
  digitalhub/entities/artifact/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
49
49
  digitalhub/entities/artifact/crud.py,sha256=smyZLWfkBEH1pxwFJXhoqfFpLrKeeWTqXmahyPj8QAY,7983
@@ -87,7 +87,7 @@ digitalhub/entities/function/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NM
87
87
  digitalhub/entities/function/crud.py,sha256=NZ7nbCdpMW2shGD1AWx2CKpE_eX_v7bVtDC0EZwJmJc,6662
88
88
  digitalhub/entities/function/_base/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
89
89
  digitalhub/entities/function/_base/builder.py,sha256=xTVOpH3GYU-BqtzMEuI3uMtLLvF9IYfrVYMVPkkJc2g,2035
90
- digitalhub/entities/function/_base/entity.py,sha256=2_64VJTIPuQAwempvuHYX-YT5HA94pXaWE3c9hkp8Ok,4566
90
+ digitalhub/entities/function/_base/entity.py,sha256=Ydhj1Zg97FrUtg1ujqEfNhDYwc6JVfoaApGNAlxrA88,3081
91
91
  digitalhub/entities/function/_base/spec.py,sha256=SjCtp3JBUTPTLMY_TE8wM1HPKVl7jH_wFEqQXBj1rfo,274
92
92
  digitalhub/entities/function/_base/status.py,sha256=N-Z1hw13qV7kWFJLQPaH3rRZ2z7AvZeuWYER95lG344,170
93
93
  digitalhub/entities/model/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -153,16 +153,21 @@ digitalhub/entities/task/_base/spec.py,sha256=4JsbQxx05UYjAerSNBCrLSjwMLYeMSqgPI
153
153
  digitalhub/entities/task/_base/status.py,sha256=FCSSQscQ0dHEpXdc5vSrIkTXon9FNNOr0M1KVh2ZVAA,162
154
154
  digitalhub/entities/task/_base/utils.py,sha256=faeAN7r_5q0KWDj1vrbVvFMcCpeMw7fK7vGScSpFZCI,448
155
155
  digitalhub/entities/trigger/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
156
- digitalhub/entities/trigger/crud.py,sha256=6z7lzS4FanOzCvoHpkMYNEoPBDKsAy4D0QjZx2VpgS0,6642
156
+ digitalhub/entities/trigger/crud.py,sha256=nIHmFUkQxud6TiEh2UYMD40Sq5gc0AbyN1Fuw7YjDJ8,6889
157
157
  digitalhub/entities/trigger/_base/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
158
158
  digitalhub/entities/trigger/_base/builder.py,sha256=U__HQi1TLRRIZxl2ih4mU81S0V14iYsouYgrL4nYsmo,1727
159
159
  digitalhub/entities/trigger/_base/entity.py,sha256=f2Al2TPEDFR1asnjMZgoKOEmi01AZk9Q13gHiKzW_CA,937
160
- digitalhub/entities/trigger/_base/spec.py,sha256=8O3nr2QbsmgJ2TCB27ZWXU7_-mP2auYp5StlquF4mVY,594
160
+ digitalhub/entities/trigger/_base/spec.py,sha256=gYR0pwE-MuiEM-IQHxhLfNNHCHtLwr0g47S2qadO070,774
161
161
  digitalhub/entities/trigger/_base/status.py,sha256=74C6yFnsK55XDecEQ94kWQO_sva8bYNfKdoyEXM9FrM,168
162
+ digitalhub/entities/trigger/lifecycle/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
163
+ digitalhub/entities/trigger/lifecycle/builder.py,sha256=FYzHLQ4e8gdErwErNgME6Nigf7HOtCdOcorRUEJRJ2c,755
164
+ digitalhub/entities/trigger/lifecycle/entity.py,sha256=AeUv5wS6yUgEAI5_K54iB0WBgpQUiMihwKqAJuSeqos,879
165
+ digitalhub/entities/trigger/lifecycle/spec.py,sha256=Rs2CW3N38k95AV4h5DTslvP20Zd2Ms5BnYlQbvI7gKA,863
166
+ digitalhub/entities/trigger/lifecycle/status.py,sha256=RzGLkVGdXDeUG33mD2ZtIBztrwenFCUU9uT1mnnCAzQ,201
162
167
  digitalhub/entities/trigger/scheduler/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
163
168
  digitalhub/entities/trigger/scheduler/builder.py,sha256=I8FTl-xVnLq6yeErixBolmJQbwR6FwmNLk-YiZVjxLA,755
164
169
  digitalhub/entities/trigger/scheduler/entity.py,sha256=Lsb7e7mR3ddZryD3vvKzfW-vg87H-8qOtZxV1TvAt6I,879
165
- digitalhub/entities/trigger/scheduler/spec.py,sha256=63M6tIcUk5CgQE9Z7SvLIMjCuZD8rKbSc8KOApRmb3I,554
170
+ digitalhub/entities/trigger/scheduler/spec.py,sha256=wOYI2N0FL0ltUiHzaXwmBNLUkR8aprHZvoo3Akk4Nsg,676
166
171
  digitalhub/entities/trigger/scheduler/status.py,sha256=AhY2jzzX0FnwfIpz824MbZkGNj-ZqPq_heZ5Q689KZo,201
167
172
  digitalhub/entities/workflow/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
168
173
  digitalhub/entities/workflow/crud.py,sha256=pOl2JjKTqTl6-iermH53nO6hUElSCsLYmx3TYLenhmI,6587
@@ -223,7 +228,7 @@ digitalhub/stores/data/remote/store.py,sha256=9KCFk8Fz1Mr7AK8gEITMh2sMw_jQldNPaV
223
228
  digitalhub/stores/data/s3/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
224
229
  digitalhub/stores/data/s3/configurator.py,sha256=QowR285g3FBY6IktTLq0e8Y3XJdXL_eutzfM2mumLY8,3648
225
230
  digitalhub/stores/data/s3/enums.py,sha256=lgqcuCMbO00Ic8thcELifoebUL5Zqn1hb6hkos1v8ps,364
226
- digitalhub/stores/data/s3/store.py,sha256=BXyMdDjF_bj2TqAx5RSXrzWKIGE7PMObFSqEp1n-ZPo,19664
231
+ digitalhub/stores/data/s3/store.py,sha256=2DXDywVRFMoU24FWHXcqIToP9ZU2JikuabdbWAwLi0s,19685
227
232
  digitalhub/stores/data/s3/utils.py,sha256=vkgYL9auoyvPtWay50biIfSJ1T4gZT4CmpJdq83L4t8,1650
228
233
  digitalhub/stores/data/sql/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
229
234
  digitalhub/stores/data/sql/configurator.py,sha256=VCGukcuVpHDWHdL-hv4aPzyOXlhk-4tkjgIcfEIPXDM,3230
@@ -243,14 +248,14 @@ digitalhub/stores/readers/query/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm
243
248
  digitalhub/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
244
249
  digitalhub/utils/enums.py,sha256=BjsLkUQ15W3KYTRYd0kuut77jTNMDBtTfJbixMReEew,269
245
250
  digitalhub/utils/exceptions.py,sha256=CGiRXx6OvYpjg6d9yEn2OvyfF0FA5n1l8uH6loCDoAY,1233
246
- digitalhub/utils/file_utils.py,sha256=qRb0ETNaQKwBlF5iwflDFlkrku5TvJXHHhxgHtAeS9w,5117
251
+ digitalhub/utils/file_utils.py,sha256=D6h8yt52nJMn_3Y3NDQM1waPCRM_zE48N2eJjyJmbjQ,5110
247
252
  digitalhub/utils/generic_utils.py,sha256=gyFCRvujBreTarv7YCWbQ4WnFBPOeE3pNoaqvGVnrhw,5561
248
253
  digitalhub/utils/git_utils.py,sha256=6vnZoJnL6uMZj0ZtHj3Tf-NYJsw3V9yitTJooSaFYEg,3407
249
254
  digitalhub/utils/io_utils.py,sha256=8jD4Rp_b7LZEpY5JSMxVUowZsnifKnbGpHT5Hijx9-g,3299
250
255
  digitalhub/utils/logger.py,sha256=ml3ne6D8wuRdNZ4F6ywmvWotSxjmZWnmKgNiuHb4R5M,437
251
256
  digitalhub/utils/types.py,sha256=x8zXsbivD8vdaNeNRZLKOPvGbz6d-59nncuvO0FsueY,109
252
257
  digitalhub/utils/uri_utils.py,sha256=wVkA2OcfHG5EcQOr9YxLJzo--VV6sjFjgXDNx-gP94I,4021
253
- digitalhub-0.11.0b5.dist-info/METADATA,sha256=0mlxcxa7sNYnJt6u6wcf4j2ygQ-JRQJ4QqP1edQQBX8,15037
254
- digitalhub-0.11.0b5.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
255
- digitalhub-0.11.0b5.dist-info/licenses/LICENSE.txt,sha256=qmrTTXPlgU0kSRlRVbjhlyGs1IXs2QPxo_Y-Mn06J0k,11589
256
- digitalhub-0.11.0b5.dist-info/RECORD,,
258
+ digitalhub-0.11.0b7.dist-info/METADATA,sha256=vU-2Mer7B-Ox8GtViU5i1o-JQBgc-unDmH3GrmVotdQ,15037
259
+ digitalhub-0.11.0b7.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
260
+ digitalhub-0.11.0b7.dist-info/licenses/LICENSE.txt,sha256=qmrTTXPlgU0kSRlRVbjhlyGs1IXs2QPxo_Y-Mn06J0k,11589
261
+ digitalhub-0.11.0b7.dist-info/RECORD,,