datatailr 0.1.2__py3-none-any.whl → 0.1.4__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 datatailr might be problematic. Click here for more details.

@@ -20,11 +20,18 @@ from typing import Callable, Optional, Tuple, Union
20
20
 
21
21
  from datatailr import ACL, Environment, User, dt__Job, is_dt_installed
22
22
  from datatailr.build.image import Image
23
+ from datatailr.errors import BatchJobError
23
24
  from datatailr.logging import DatatailrLogger
24
25
 
25
26
  logger = DatatailrLogger(os.path.abspath(__file__)).get_logger()
26
27
 
27
28
 
29
+ class RepoValidationError(BatchJobError):
30
+ def __init__(self, message: str):
31
+ super().__init__(message)
32
+ self.message = message
33
+
34
+
28
35
  class JobType(Enum):
29
36
  """
30
37
  Enum representing different types of DataTailr jobs.
@@ -220,7 +227,7 @@ class Job:
220
227
  if is_dt_installed():
221
228
  check_result = self.verify_repo_is_ready()
222
229
  if not check_result[0]:
223
- return False, check_result[1]
230
+ raise RepoValidationError(check_result[1])
224
231
  logger.info(
225
232
  f"Running job '{self.name}' in environment '{self.environment}' as '{self.run_as}'"
226
233
  )
@@ -14,7 +14,7 @@ import contextvars
14
14
  import json
15
15
  import os
16
16
  from functools import reduce
17
- from typing import List, Optional, Sequence, Set, Tuple, Union
17
+ from typing import Dict, List, Optional, Sequence, Set, Tuple, Union
18
18
 
19
19
  from datatailr import Image
20
20
  from datatailr.errors import BatchJobError
@@ -31,7 +31,6 @@ from datatailr.scheduler.base import (
31
31
  from datatailr.scheduler.constants import DEFAULT_TASK_CPU, DEFAULT_TASK_MEMORY
32
32
  from datatailr.utils import is_dt_installed
33
33
 
34
- __BATCH_JOB_NAMES__ = {}
35
34
  __DAG_CONTEXT__: contextvars.ContextVar = contextvars.ContextVar("dag_context")
36
35
  logger = DatatailrLogger(os.path.abspath(__file__)).get_logger()
37
36
 
@@ -103,7 +102,7 @@ class BatchJob:
103
102
  raise MissingDagError()
104
103
  self.__id = dag.next_job_id
105
104
  self.dag = dag
106
- __BATCH_JOB_NAMES__[self.name] = self.__id
105
+ self.dag.__BATCH_JOB_NAMES__[self.name] = self.__id
107
106
  self.dependencies = self.translate_dependencies()
108
107
  assert all(
109
108
  isinstance(dep, int) for dep in self.dependencies
@@ -116,10 +115,10 @@ class BatchJob:
116
115
 
117
116
  :param name: The alias name to set.
118
117
  """
119
- if name in __BATCH_JOB_NAMES__:
118
+ if name in self.dag.__BATCH_JOB_NAMES__:
120
119
  raise DuplicateJobNameError(name)
121
- assert __BATCH_JOB_NAMES__.pop(self.name) == self.__id
122
- __BATCH_JOB_NAMES__[name] = self.__id
120
+ assert self.dag.__BATCH_JOB_NAMES__.pop(self.name) == self.__id
121
+ self.dag.__BATCH_JOB_NAMES__[name] = self.__id
123
122
  self.name = name
124
123
  return self
125
124
 
@@ -162,7 +161,10 @@ class BatchJob:
162
161
  raise TypeError(f"Unsupported dependency type: {type(dep)}")
163
162
 
164
163
  return set(
165
- [__BATCH_JOB_NAMES__[get_dependency_name(dep)] for dep in self.dependencies]
164
+ [
165
+ self.dag.__BATCH_JOB_NAMES__[get_dependency_name(dep)]
166
+ for dep in self.dependencies
167
+ ]
166
168
  )
167
169
 
168
170
  def __add_dependency__(self, other):
@@ -240,6 +242,7 @@ class Batch(Job):
240
242
  self.__jobs: List[BatchJob] = []
241
243
  self._auto_run = False
242
244
  self.__next_job_id = next_batch_job_id()
245
+ self.__BATCH_JOB_NAMES__: Dict[str, int] = {}
243
246
 
244
247
  @property
245
248
  def next_job_id(self):
@@ -285,11 +288,10 @@ class Batch(Job):
285
288
  return json.dumps(self.to_dict(), indent=4)
286
289
 
287
290
  def __repr__(self):
288
- jobs_repr = ", ".join(repr(job) for job in self.__jobs)
289
291
  return (
290
292
  f"Batch(name={self.name}, environment={self.environment}, "
291
293
  f"run_as={self.run_as}, resources={self.resources}, "
292
- f"acl={self.acl}, jobs=[{jobs_repr}])"
294
+ f"acl={self.acl}, {len(self.__jobs)} jobs)"
293
295
  )
294
296
 
295
297
  def set_autorun(self, auto_run):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: datatailr
3
- Version: 0.1.2
3
+ Version: 0.1.4
4
4
  Summary: The datatailr package
5
5
  Author-email: Datatailr <pypi@datatailr.com>
6
6
  License-Expression: MIT
@@ -14,16 +14,16 @@ datatailr/build/image.py,sha256=P2MiGxpzuZ6hOm9JubkLoOq-RdzKYnXbKJHiryIbJeA,3103
14
14
  datatailr/sbin/run_job.py,sha256=B3H3UI3zpll7zVm7lZLsfPtnRlA6jjk8s_D_w89pvC4,2175
15
15
  datatailr/scheduler/__init__.py,sha256=YtCnv9vuX-EPGr3WBXvXJIlLsZ94mW1dBzI6h7Yjcu0,1009
16
16
  datatailr/scheduler/arguments_cache.py,sha256=-JnAWXfHMSSkYJx8iYt9JgvdPgR-1Z8DcN5Kvcx9Amo,4574
17
- datatailr/scheduler/base.py,sha256=trsW3ETK0X00qoYYRHQrkfxoHEWhwgTrsJFVrhu6saY,7623
18
- datatailr/scheduler/batch.py,sha256=daxFRl5894Hb3cKEm_pubXchNwN8qjVuFi0G-zMj-kI,10712
17
+ datatailr/scheduler/base.py,sha256=IRduJjhng4Uuv3Y9vDqUNTbs636AgH2ZISWRbIP6LqQ,7826
18
+ datatailr/scheduler/batch.py,sha256=BlZq609thXM0skZiPZjGHLO9WozOq8T3SiErpFPU4Zg,10779
19
19
  datatailr/scheduler/batch_decorator.py,sha256=o6DAEODwsfYx9uYwjnaJZ9iUmqbFH2wMh-jz_L5bgNo,4598
20
20
  datatailr/scheduler/constants.py,sha256=ISG5uMnVPbGbjaaulU0xdmSggnd-DMr9ed0WTAZSUmU,604
21
21
  datatailr/scheduler/utils.py,sha256=YHtAc5sCwfgiClr5G6R3hfAjdlrFdnNW2l-3XwPZLXM,1070
22
- datatailr-0.1.2.dist-info/licenses/LICENSE,sha256=ikKP4_O-UD_b8FuNdKmbzTb6odd0JX085ZW_FAPN3VI,1066
22
+ datatailr-0.1.4.dist-info/licenses/LICENSE,sha256=ikKP4_O-UD_b8FuNdKmbzTb6odd0JX085ZW_FAPN3VI,1066
23
23
  test_module/__init__.py,sha256=OF9XaL3RKdbWD5Ug4L-ufLqbykSt_rTK6gqZr4uBJ8g,576
24
24
  test_module/test_submodule.py,sha256=O07fFbzJEy5rf1vdlYzPvs8v0IxHFg-CaYMqaHkskbc,1294
25
- datatailr-0.1.2.dist-info/METADATA,sha256=yfNet0SvA-XFRMQa8YYFJRduScQFdB3j4wVEz7XU3oQ,774
26
- datatailr-0.1.2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
27
- datatailr-0.1.2.dist-info/entry_points.txt,sha256=4lNE9VXvztJdIQsODI308v9FRzkVgmMu-VKGEceNxJs,59
28
- datatailr-0.1.2.dist-info/top_level.txt,sha256=UZOKaWS1kZGGwV7hP476-EcSUJBNspxVSSp9WqtORzk,22
29
- datatailr-0.1.2.dist-info/RECORD,,
25
+ datatailr-0.1.4.dist-info/METADATA,sha256=8dyH2odt79utbgrPRP6--_aQRbWyv1ubfV6F4PSVpLM,774
26
+ datatailr-0.1.4.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
27
+ datatailr-0.1.4.dist-info/entry_points.txt,sha256=4lNE9VXvztJdIQsODI308v9FRzkVgmMu-VKGEceNxJs,59
28
+ datatailr-0.1.4.dist-info/top_level.txt,sha256=UZOKaWS1kZGGwV7hP476-EcSUJBNspxVSSp9WqtORzk,22
29
+ datatailr-0.1.4.dist-info/RECORD,,