datatailr 0.1.71__py3-none-any.whl → 0.1.72__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.

@@ -93,11 +93,8 @@ def create_user_and_group() -> Tuple[str, str]:
93
93
  | stat.S_IXGRP
94
94
  )
95
95
 
96
- if os.path.exists(f"/home/{user}"):
97
- os.chmod(f"/home/{user}", permissions)
98
-
99
- if os.path.exists(f"/home/{user}/tmp/.dt"):
100
- os.chmod(f"/home/{user}/tmp/.dt", permissions)
96
+ os.makedirs(f"/home/{user}/tmp/.dt", exist_ok=True)
97
+ os.chmod(f"/home/{user}/tmp/.dt", permissions)
101
98
 
102
99
  return user, group
103
100
 
@@ -294,7 +294,7 @@ class BatchJob:
294
294
  env = {
295
295
  "DATATAILR_BATCH_ID": str(self.dag.id),
296
296
  "DATATAILR_JOB_ID": str(self.__id),
297
- "DATATAILR_JOB_NAME": self.name,
297
+ "DATATAILR_JOB_NAME": f"{self.dag.name}[{self.__id}]",
298
298
  }
299
299
  self.entrypoint(env=env)
300
300
  else:
@@ -479,10 +479,26 @@ class Batch(Job):
479
479
 
480
480
  def prepare_args(self) -> None:
481
481
  def arg_name(arg: Union[BatchJob, str]) -> str:
482
- return arg.name if isinstance(arg, BatchJob) else arg
482
+ return f"{self.name}[{arg.id}]" if isinstance(arg, BatchJob) else arg
483
+
484
+ def adjust_mapping(mapping: Dict[str, str]) -> Dict[str, str]:
485
+ result = {}
486
+ for k, v in mapping.items():
487
+ if isinstance(v, BatchJob):
488
+ result[k] = f"{self.name}[{v.id}]"
489
+ elif isinstance(v, str):
490
+ job = self.get_job_by_name(v)
491
+ if job is not None:
492
+ result[k] = f"{self.name}[{job.id}]"
493
+ else:
494
+ result[k] = v
495
+ else:
496
+ raise TypeError(
497
+ f"Unsupported type in argument mapping: {type(v)} for key {k}"
498
+ )
499
+ return result
483
500
 
484
501
  def merged(dst: dict[str, str], src: dict[str, str]) -> dict[str, str]:
485
- # copy so we don't mutate the original mapping
486
502
  out = dict(dst)
487
503
  seen_vals = set(out.values())
488
504
  for k, v in src.items():
@@ -492,12 +508,12 @@ class Batch(Job):
492
508
  return out
493
509
 
494
510
  args = {
495
- j.name: merged(
496
- j.argument_mapping, {k: arg_name(v) for k, v in j.args.items()}
511
+ f"{self.name}[{j.id}]": merged(
512
+ adjust_mapping(j.argument_mapping),
513
+ {j.argument_mapping.get(k, k): arg_name(v) for k, v in j.args.items()},
497
514
  )
498
515
  for j in self.__jobs
499
516
  }
500
-
501
517
  __ARGUMENTS_CACHE__.add_arguments(self.id, args)
502
518
 
503
519
  def save(self) -> Tuple[bool, str]:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: datatailr
3
- Version: 0.1.71
3
+ Version: 0.1.72
4
4
  Summary: Ready-to-Use Platform That Drives Business Insights
5
5
  Author-email: Datatailr <info@datatailr.com>
6
6
  License-Expression: MIT
@@ -14,7 +14,7 @@ datatailr/build/__init__.py,sha256=_dA7b4L6wsaAFaSxUoYSJ1oaRqDHDMR20kqoCocSOss,4
14
14
  datatailr/build/image.py,sha256=YC8ML-l-sj6TcIBY-DCx_vaeI_7SmL9fPFhHnuxzRh0,5509
15
15
  datatailr/excel/__init__.py,sha256=wox5ltPeOYZcZoRDW4R6tJsfOjf-0WZM2_pGgltGjdo,682
16
16
  datatailr/excel/addin.py,sha256=at0S1cNHShCOCXAml1W2sJmJ5DdNroTN6Bp6KWnYZ94,6104
17
- datatailr/sbin/datatailr_run.py,sha256=MKNlI6YM1UvBwdk90YUYYQbrbAEdba5ZryFIbYT2CiE,10051
17
+ datatailr/sbin/datatailr_run.py,sha256=m8FZLYYXw7LFrvZhBXKWaBL784EKz27Qk7Se0Vo-KVY,9967
18
18
  datatailr/sbin/datatailr_run_app.py,sha256=itF76XC2F4RK9s6bkoEppEiYwSLHK_5Jai3yvC-kFhY,1501
19
19
  datatailr/sbin/datatailr_run_batch.py,sha256=UWnp96j_G66R_Cape7Bb-rbK6UBLF7Y5_mTlWyGJAVQ,1818
20
20
  datatailr/sbin/datatailr_run_excel.py,sha256=BLWmvxpKEE_8vJhs8E4VWq07FOBof5tlow-AkIEXtHw,1470
@@ -22,14 +22,14 @@ datatailr/sbin/datatailr_run_service.py,sha256=DO9LGOpz3CVZOJJRHb4ac7AgY_mLbXHGa
22
22
  datatailr/scheduler/__init__.py,sha256=qydHYVtEP6SUWd2CQ6FRdTdRWNz3SbYPJy4FK_wOvMk,1772
23
23
  datatailr/scheduler/arguments_cache.py,sha256=00OE0DhobYteBOnirjulO1ltgGBRamAdCO168O3_Zes,6236
24
24
  datatailr/scheduler/base.py,sha256=WWi_VnDxev0GG6QolF3Wtj-p_JS5t2CN9VALYPl1OYo,16994
25
- datatailr/scheduler/batch.py,sha256=CQCH1wHhW1qx09J7iQNQleErJ4n0nssAbd6u9YS6FMY,17735
25
+ datatailr/scheduler/batch.py,sha256=ZhEf3YkXf1_ieV5ivk4-me60ov9v5r9f9BdkJw84i_0,18475
26
26
  datatailr/scheduler/batch_decorator.py,sha256=LqL1bsupWLn-YEQUvFJYae7R3ogrL5-VodyiiScrkRw,5806
27
27
  datatailr/scheduler/constants.py,sha256=5WWTsfwZ_BA8gVDOTa2AQX9DJ0NzfaWgtY3vrODS2-8,606
28
28
  datatailr/scheduler/schedule.py,sha256=0XJJen2nL1xplRs0Xbjwgq3T-0bFCOrJzkSALdio998,3741
29
29
  datatailr/scheduler/utils.py,sha256=up6oR2iwe6G52LkvgfO394xchXgCYNjOMGRQW3e8PQk,1082
30
- datatailr-0.1.71.dist-info/licenses/LICENSE,sha256=ikKP4_O-UD_b8FuNdKmbzTb6odd0JX085ZW_FAPN3VI,1066
31
- datatailr-0.1.71.dist-info/METADATA,sha256=jtM6J7uHqGgQ_MHJBvKDuIdYAMvQ8T4XM16b0RyF09M,5146
32
- datatailr-0.1.71.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
33
- datatailr-0.1.71.dist-info/entry_points.txt,sha256=YqXfk2At-olW4PUSRkqvy_O3Mbv7uTKCCPuAAiz3Qbg,312
34
- datatailr-0.1.71.dist-info/top_level.txt,sha256=75gntW0X_SKpqxLL6hAPipvpk28GAhJBvoyqN_HohWU,10
35
- datatailr-0.1.71.dist-info/RECORD,,
30
+ datatailr-0.1.72.dist-info/licenses/LICENSE,sha256=ikKP4_O-UD_b8FuNdKmbzTb6odd0JX085ZW_FAPN3VI,1066
31
+ datatailr-0.1.72.dist-info/METADATA,sha256=w-sZvCPuMwHr_mFMYq9xTMwg1i1TD3sZ4VGhroQL7aU,5146
32
+ datatailr-0.1.72.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
33
+ datatailr-0.1.72.dist-info/entry_points.txt,sha256=YqXfk2At-olW4PUSRkqvy_O3Mbv7uTKCCPuAAiz3Qbg,312
34
+ datatailr-0.1.72.dist-info/top_level.txt,sha256=75gntW0X_SKpqxLL6hAPipvpk28GAhJBvoyqN_HohWU,10
35
+ datatailr-0.1.72.dist-info/RECORD,,