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

@@ -36,10 +36,14 @@ import os
36
36
  import sys
37
37
  from typing import Tuple
38
38
  from datatailr.logging import DatatailrLogger
39
-
39
+ from datatailr.utils import is_dt_installed
40
40
 
41
41
  logger = DatatailrLogger(os.path.abspath(__file__)).get_logger()
42
42
 
43
+ if not is_dt_installed():
44
+ logger.error("Datatailr is not installed.")
45
+ sys.exit(1)
46
+
43
47
 
44
48
  def get_env_var(name: str, default: str | None = None) -> str:
45
49
  """
@@ -28,11 +28,9 @@ from typing import Any, Dict, Optional
28
28
 
29
29
  from datatailr import is_dt_installed, Blob
30
30
  from datatailr.errors import DatatailrError
31
- from datatailr.logging import DatatailrLogger
32
31
 
33
32
 
34
33
  __BLOB_STORAGE__ = Blob()
35
- logger = DatatailrLogger(__name__).get_logger()
36
34
 
37
35
 
38
36
  class CacheNotFoundError(DatatailrError):
@@ -81,9 +79,6 @@ class ArgumentsCache:
81
79
  :param job_name: Name of the job.
82
80
  :return: Dictionary of arguments.
83
81
  """
84
- logger.info(
85
- f"Retrieving arguments for {batch_id=}, {job=}, {batch_run_id=}, {self.use_persistent_cache=}"
86
- )
87
82
  path = f"/tmp/datatailr/batch/arguments/{batch_id}.pkl"
88
83
  if self.use_persistent_cache and isinstance(job, str):
89
84
  try:
@@ -121,9 +116,6 @@ class ArgumentsCache:
121
116
  :param result: Result of the batch job.
122
117
  """
123
118
  path = f"/tmp/datatailr/batch/results/{batch_run_id}_{job}.pkl"
124
- logger.info(
125
- f"Adding result for {batch_run_id=}, {job=}, {result=}, {self.use_persistent_cache=}"
126
- )
127
119
  if self.use_persistent_cache and isinstance(job, str):
128
120
  self._add_to_persistent_cache(path, result)
129
121
  else:
@@ -160,7 +152,6 @@ class ArgumentsCache:
160
152
 
161
153
  """
162
154
  path = path.replace("/tmp/", "")
163
- logger.info(f"Adding arguments to persistent cache for {path=}")
164
155
  __BLOB_STORAGE__.put_blob(path, json.dumps(blob))
165
156
 
166
157
  def _get_from_persistent_cache(self, path: str) -> Any:
@@ -170,6 +161,5 @@ class ArgumentsCache:
170
161
  :param path: Path in the Blob storage where the blob is stored.
171
162
  """
172
163
  path = path.replace("/tmp/", "")
173
- logger.info(f"Retrieving arguments from persistent cache for {path=}")
174
164
  data = __BLOB_STORAGE__.get_blob(path)
175
165
  return json.loads(data)
@@ -96,13 +96,20 @@ class EntryPoint:
96
96
  # Find the absolute path to the repository and then the relative path to the module.
97
97
  # This will be used in the creation of the code 'bundle' when building the image.
98
98
  module_spec = importlib.util.find_spec(func.__module__)
99
- if module_spec is not None and module_spec.origin is not None:
100
- package_root = module_spec.origin
99
+ if not module_spec:
100
+ raise RepoValidationError(f"Cannot find spec for {self.module_name}")
101
+ # Resolve the filesystem directory of the top package for module_name
102
+ if module_spec.submodule_search_locations:
103
+ # It's a package; get its directory
104
+ package_root = os.path.abspath(
105
+ next(iter(module_spec.submodule_search_locations))
106
+ )
107
+ elif module_spec.origin:
108
+ # It's a module; use its containing directory
109
+ package_root = os.path.abspath(os.path.dirname(module_spec.origin))
101
110
  else:
102
- package_root = "."
103
- module_parts = self.module_name.split(".")
104
- for _ in module_parts:
105
- package_root = os.path.dirname(package_root)
111
+ raise RepoValidationError(f"Cannot resolve path for {self.module_name}")
112
+
106
113
  path_to_repo = run_shell_command(
107
114
  f"cd {package_root} && git rev-parse --show-toplevel"
108
115
  )[0]
datatailr/user.py CHANGED
@@ -177,6 +177,7 @@ class User:
177
177
  email=email,
178
178
  primary_group=primary_group,
179
179
  system=is_system_user,
180
+ json_enrichened=True,
180
181
  )
181
182
  else:
182
183
  new_user = __client__.add(
@@ -187,9 +188,10 @@ class User:
187
188
  password=password,
188
189
  primary_group=primary_group,
189
190
  system=is_system_user,
191
+ json_enrichened=True,
190
192
  )
191
193
 
192
- return new_user
194
+ return User(new_user["name"]) if new_user else None
193
195
 
194
196
  @staticmethod
195
197
  def exists(name: str) -> bool:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: datatailr
3
- Version: 0.1.22
3
+ Version: 0.1.24
4
4
  Summary: Ready-to-Use Platform That Drives Business Insights
5
5
  Author-email: Datatailr <info@datatailr.com>
6
6
  License-Expression: MIT
@@ -6,28 +6,28 @@ datatailr/errors.py,sha256=p_e4ao3sFEfz1g4LvEDqw6bVzHJPJSINLjJ8H6_PqOo,751
6
6
  datatailr/excel.py,sha256=7_13VFHrjHlIAEeTaGQIlq4ycJvzRo-TvkP_KRBELGs,425
7
7
  datatailr/group.py,sha256=ExsrkqUooAfFLWKvnkp1ZxisSJD1yCp9TKqoCXDCwhs,4360
8
8
  datatailr/logging.py,sha256=4Rsx3wf2tAr1334E2goBjhC877RwbUNaFgBlh902vU4,3270
9
- datatailr/user.py,sha256=THAHiHgcr6MGoF2EuFEUfPh-zRT4E_WhG6eoVNBNeKo,6624
9
+ datatailr/user.py,sha256=tjIMbQ-tb2yFhgLBl_eTb47kKiy-RoM3KtYS3zmJiwc,6736
10
10
  datatailr/utils.py,sha256=mqnnERMyHNAuAgFY4Ry4O4yW0ZjCRtJbjfI5fXVqt2s,1524
11
11
  datatailr/version.py,sha256=N9K8ZxlwFFSz8XSgbgaTWZY4k2J0JKfj698nZ_O2pIU,536
12
12
  datatailr/wrapper.py,sha256=K9ZD76cWey_ikA6C5sKejwRaYBDln4QMg-RcoRGiuFc,7991
13
13
  datatailr/build/__init__.py,sha256=_dA7b4L6wsaAFaSxUoYSJ1oaRqDHDMR20kqoCocSOss,487
14
14
  datatailr/build/image.py,sha256=YC8ML-l-sj6TcIBY-DCx_vaeI_7SmL9fPFhHnuxzRh0,5509
15
- datatailr/sbin/datatailr_run.py,sha256=l3xoX_Ex-U7vXCiH343D3SQnqP6BY-xIx5qB6iES5ns,5996
15
+ datatailr/sbin/datatailr_run.py,sha256=EiFhAHsgBVtRIhzdbswa01HztUL0CGg0p2h_u80IrBk,6130
16
16
  datatailr/sbin/datatailr_run_app.py,sha256=AOkutzv4DeKfWZs-ZBciAMKnK4A05SfkVf1ZJnSSFwA,1231
17
17
  datatailr/sbin/datatailr_run_batch.py,sha256=UWnp96j_G66R_Cape7Bb-rbK6UBLF7Y5_mTlWyGJAVQ,1818
18
18
  datatailr/sbin/datatailr_run_excel.py,sha256=Gr_QZgqJrwgRVD9_o4v-2tbvU-QMvNHL7xUvFGhftFc,1163
19
19
  datatailr/sbin/datatailr_run_service.py,sha256=R8eNLN2SGnMtyfLy3vq9isUHr3dRzeBqESTquNK9Iho,1156
20
20
  datatailr/scheduler/__init__.py,sha256=qydHYVtEP6SUWd2CQ6FRdTdRWNz3SbYPJy4FK_wOvMk,1772
21
- datatailr/scheduler/arguments_cache.py,sha256=ct9CiUF3IDB5S7dsQWFarc8yQXa6X8xvRrKjJ1zYKhM,6527
22
- datatailr/scheduler/base.py,sha256=4K39tQPpYnrhf2PmFWlcp0xkH2qEwhkfflt8qpWhxnQ,14633
21
+ datatailr/scheduler/arguments_cache.py,sha256=3sKXg4_baeZNo8jvSGTFK6zT5RM1TKMpH-UVS1CLn20,6014
22
+ datatailr/scheduler/base.py,sha256=cOTtXOloxjfJknWr3W1VEbpwGB5llrDreCot7Zv1Hkk,15015
23
23
  datatailr/scheduler/batch.py,sha256=JBSiFNwv2X2BkBocz7ddVmwND6MFds978f0Ok5f8aUc,16782
24
24
  datatailr/scheduler/batch_decorator.py,sha256=LqL1bsupWLn-YEQUvFJYae7R3ogrL5-VodyiiScrkRw,5806
25
25
  datatailr/scheduler/constants.py,sha256=5WWTsfwZ_BA8gVDOTa2AQX9DJ0NzfaWgtY3vrODS2-8,606
26
26
  datatailr/scheduler/schedule.py,sha256=0XJJen2nL1xplRs0Xbjwgq3T-0bFCOrJzkSALdio998,3741
27
27
  datatailr/scheduler/utils.py,sha256=up6oR2iwe6G52LkvgfO394xchXgCYNjOMGRQW3e8PQk,1082
28
- datatailr-0.1.22.dist-info/licenses/LICENSE,sha256=ikKP4_O-UD_b8FuNdKmbzTb6odd0JX085ZW_FAPN3VI,1066
29
- datatailr-0.1.22.dist-info/METADATA,sha256=KplXEwrUeqWjlRjkyN3NenplmPDlWPNzUsmCxbkD83Q,5146
30
- datatailr-0.1.22.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
31
- datatailr-0.1.22.dist-info/entry_points.txt,sha256=YqXfk2At-olW4PUSRkqvy_O3Mbv7uTKCCPuAAiz3Qbg,312
32
- datatailr-0.1.22.dist-info/top_level.txt,sha256=75gntW0X_SKpqxLL6hAPipvpk28GAhJBvoyqN_HohWU,10
33
- datatailr-0.1.22.dist-info/RECORD,,
28
+ datatailr-0.1.24.dist-info/licenses/LICENSE,sha256=ikKP4_O-UD_b8FuNdKmbzTb6odd0JX085ZW_FAPN3VI,1066
29
+ datatailr-0.1.24.dist-info/METADATA,sha256=1J1Cn8HJ1FeZs8PRADqYfqmY3kPioKXhOD2yiMihVXI,5146
30
+ datatailr-0.1.24.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
31
+ datatailr-0.1.24.dist-info/entry_points.txt,sha256=YqXfk2At-olW4PUSRkqvy_O3Mbv7uTKCCPuAAiz3Qbg,312
32
+ datatailr-0.1.24.dist-info/top_level.txt,sha256=75gntW0X_SKpqxLL6hAPipvpk28GAhJBvoyqN_HohWU,10
33
+ datatailr-0.1.24.dist-info/RECORD,,