dagster-shared 1.11.9__tar.gz → 1.11.11__tar.gz
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.
- {dagster_shared-1.11.9/dagster_shared.egg-info → dagster_shared-1.11.11}/PKG-INFO +1 -1
- {dagster_shared-1.11.9 → dagster_shared-1.11.11}/dagster_shared/error.py +6 -5
- {dagster_shared-1.11.9 → dagster_shared-1.11.11}/dagster_shared/serdes/objects/__init__.py +0 -4
- dagster_shared-1.11.11/dagster_shared/serdes/objects/models/__init__.py +4 -0
- dagster_shared-1.11.11/dagster_shared/serdes/objects/models/defs_state_info.py +41 -0
- {dagster_shared-1.11.9 → dagster_shared-1.11.11}/dagster_shared/utils/cached_method.py +10 -5
- {dagster_shared-1.11.9 → dagster_shared-1.11.11}/dagster_shared/utils/timing.py +31 -0
- dagster_shared-1.11.11/dagster_shared/version.py +1 -0
- {dagster_shared-1.11.9 → dagster_shared-1.11.11/dagster_shared.egg-info}/PKG-INFO +1 -1
- {dagster_shared-1.11.9 → dagster_shared-1.11.11}/dagster_shared.egg-info/SOURCES.txt +2 -1
- dagster_shared-1.11.9/dagster_shared/serdes/objects/defs_state_info.py +0 -55
- dagster_shared-1.11.9/dagster_shared/version.py +0 -1
- {dagster_shared-1.11.9 → dagster_shared-1.11.11}/LICENSE +0 -0
- {dagster_shared-1.11.9 → dagster_shared-1.11.11}/MANIFEST.in +0 -0
- {dagster_shared-1.11.9 → dagster_shared-1.11.11}/README.md +0 -0
- {dagster_shared-1.11.9 → dagster_shared-1.11.11}/dagster_shared/__init__.py +0 -0
- {dagster_shared-1.11.9 → dagster_shared-1.11.11}/dagster_shared/check/README.md +0 -0
- {dagster_shared-1.11.9 → dagster_shared-1.11.11}/dagster_shared/check/__init__.py +0 -0
- {dagster_shared-1.11.9 → dagster_shared-1.11.11}/dagster_shared/check/builder.py +0 -0
- {dagster_shared-1.11.9 → dagster_shared-1.11.11}/dagster_shared/check/decorator.py +0 -0
- {dagster_shared-1.11.9 → dagster_shared-1.11.11}/dagster_shared/check/functions.py +0 -0
- {dagster_shared-1.11.9 → dagster_shared-1.11.11}/dagster_shared/check/record.py +0 -0
- {dagster_shared-1.11.9 → dagster_shared-1.11.11}/dagster_shared/cli/__init__.py +0 -0
- {dagster_shared-1.11.9 → dagster_shared-1.11.11}/dagster_shared/dagster_model/__init__.py +0 -0
- {dagster_shared-1.11.9 → dagster_shared-1.11.11}/dagster_shared/dagster_model/pydantic_compat_layer.py +0 -0
- {dagster_shared-1.11.9 → dagster_shared-1.11.11}/dagster_shared/ipc.py +0 -0
- {dagster_shared-1.11.9 → dagster_shared-1.11.11}/dagster_shared/libraries/__init__.py +0 -0
- {dagster_shared-1.11.9 → dagster_shared-1.11.11}/dagster_shared/match.py +0 -0
- {dagster_shared-1.11.9 → dagster_shared-1.11.11}/dagster_shared/merger.py +0 -0
- {dagster_shared-1.11.9 → dagster_shared-1.11.11}/dagster_shared/modules.py +0 -0
- {dagster_shared-1.11.9 → dagster_shared-1.11.11}/dagster_shared/plus/__init__.py +0 -0
- {dagster_shared-1.11.9 → dagster_shared-1.11.11}/dagster_shared/plus/config.py +0 -0
- {dagster_shared-1.11.9 → dagster_shared-1.11.11}/dagster_shared/plus/config_utils.py +0 -0
- {dagster_shared-1.11.9 → dagster_shared-1.11.11}/dagster_shared/plus/login_server.py +0 -0
- {dagster_shared-1.11.9 → dagster_shared-1.11.11}/dagster_shared/py.typed +0 -0
- {dagster_shared-1.11.9 → dagster_shared-1.11.11}/dagster_shared/record/__init__.py +0 -0
- {dagster_shared-1.11.9 → dagster_shared-1.11.11}/dagster_shared/scaffold/__init__.py +0 -0
- {dagster_shared-1.11.9 → dagster_shared-1.11.11}/dagster_shared/serdes/__init__.py +0 -0
- {dagster_shared-1.11.9 → dagster_shared-1.11.11}/dagster_shared/serdes/errors.py +0 -0
- {dagster_shared-1.11.9 → dagster_shared-1.11.11}/dagster_shared/serdes/objects/definition_metadata.py +0 -0
- {dagster_shared-1.11.9 → dagster_shared-1.11.11}/dagster_shared/serdes/objects/package_entry.py +0 -0
- {dagster_shared-1.11.9 → dagster_shared-1.11.11}/dagster_shared/serdes/serdes.py +0 -0
- {dagster_shared-1.11.9 → dagster_shared-1.11.11}/dagster_shared/serdes/utils.py +0 -0
- {dagster_shared-1.11.9 → dagster_shared-1.11.11}/dagster_shared/seven/__init__.py +0 -0
- {dagster_shared-1.11.9 → dagster_shared-1.11.11}/dagster_shared/seven/abc.py +0 -0
- {dagster_shared-1.11.9 → dagster_shared-1.11.11}/dagster_shared/seven/compat/__init__.py +0 -0
- {dagster_shared-1.11.9 → dagster_shared-1.11.11}/dagster_shared/seven/json.py +0 -0
- {dagster_shared-1.11.9 → dagster_shared-1.11.11}/dagster_shared/seven/temp_dir.py +0 -0
- {dagster_shared-1.11.9 → dagster_shared-1.11.11}/dagster_shared/telemetry/__init__.py +0 -0
- {dagster_shared-1.11.9 → dagster_shared-1.11.11}/dagster_shared/utils/__init__.py +0 -0
- {dagster_shared-1.11.9 → dagster_shared-1.11.11}/dagster_shared/utils/config.py +0 -0
- {dagster_shared-1.11.9 → dagster_shared-1.11.11}/dagster_shared/utils/hash.py +0 -0
- {dagster_shared-1.11.9 → dagster_shared-1.11.11}/dagster_shared/utils/test.py +0 -0
- {dagster_shared-1.11.9 → dagster_shared-1.11.11}/dagster_shared/utils/warnings.py +0 -0
- {dagster_shared-1.11.9 → dagster_shared-1.11.11}/dagster_shared/yaml_utils/__init__.py +0 -0
- {dagster_shared-1.11.9 → dagster_shared-1.11.11}/dagster_shared/yaml_utils/sample_yaml.py +0 -0
- {dagster_shared-1.11.9 → dagster_shared-1.11.11}/dagster_shared/yaml_utils/source_position.py +0 -0
- {dagster_shared-1.11.9 → dagster_shared-1.11.11}/dagster_shared.egg-info/dependency_links.txt +0 -0
- {dagster_shared-1.11.9 → dagster_shared-1.11.11}/dagster_shared.egg-info/not-zip-safe +0 -0
- {dagster_shared-1.11.9 → dagster_shared-1.11.11}/dagster_shared.egg-info/requires.txt +0 -0
- {dagster_shared-1.11.9 → dagster_shared-1.11.11}/dagster_shared.egg-info/top_level.txt +0 -0
- {dagster_shared-1.11.9 → dagster_shared-1.11.11}/setup.cfg +0 -0
- {dagster_shared-1.11.9 → dagster_shared-1.11.11}/setup.py +0 -0
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
# mypy does not support recursive types, so "cause" has to be typed `Any`
|
|
2
|
+
import os
|
|
2
3
|
import sys
|
|
3
4
|
import traceback
|
|
4
5
|
from collections.abc import Sequence
|
|
@@ -102,14 +103,14 @@ class SerializableErrorInfo(
|
|
|
102
103
|
|
|
103
104
|
|
|
104
105
|
DAGSTER_FRAMEWORK_SUBSTRINGS = [
|
|
105
|
-
"
|
|
106
|
-
"
|
|
107
|
-
"
|
|
106
|
+
os.sep + os.path.join("site-packages", "dagster"),
|
|
107
|
+
os.sep + os.path.join("python_modules", "dagster"),
|
|
108
|
+
os.sep + os.path.join("python_modules", "libraries", "dagster"),
|
|
108
109
|
]
|
|
109
110
|
|
|
110
111
|
IMPORT_MACHINERY_SUBSTRINGS = [
|
|
111
|
-
"importlib
|
|
112
|
-
"importlib
|
|
112
|
+
os.path.join("importlib", "__init__.py"),
|
|
113
|
+
os.path.join("importlib", "metadata", "__init__.py"),
|
|
113
114
|
"importlib._bootstrap",
|
|
114
115
|
]
|
|
115
116
|
|
|
@@ -1,7 +1,3 @@
|
|
|
1
|
-
from dagster_shared.serdes.objects.defs_state_info import (
|
|
2
|
-
DefsKeyStateInfo as DefsKeyStateInfo,
|
|
3
|
-
DefsStateInfo as DefsStateInfo,
|
|
4
|
-
)
|
|
5
1
|
from dagster_shared.serdes.objects.package_entry import (
|
|
6
2
|
ComponentFeatureData as ComponentFeatureData,
|
|
7
3
|
EnvRegistryKey as EnvRegistryKey,
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import time
|
|
2
|
+
from collections.abc import Mapping
|
|
3
|
+
from typing import Optional
|
|
4
|
+
|
|
5
|
+
from dagster_shared.dagster_model import DagsterModel
|
|
6
|
+
from dagster_shared.serdes import whitelist_for_serdes
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
@whitelist_for_serdes
|
|
10
|
+
class DefsKeyStateInfo(DagsterModel):
|
|
11
|
+
"""Records information about the version of the state for a given defs key."""
|
|
12
|
+
|
|
13
|
+
version: str
|
|
14
|
+
create_timestamp: float
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
@whitelist_for_serdes
|
|
18
|
+
class DefsStateInfo(DagsterModel):
|
|
19
|
+
"""All of the information about the state version that will be used to load a given code location."""
|
|
20
|
+
|
|
21
|
+
info_mapping: Mapping[str, Optional[DefsKeyStateInfo]]
|
|
22
|
+
|
|
23
|
+
@staticmethod
|
|
24
|
+
def empty() -> "DefsStateInfo":
|
|
25
|
+
return DefsStateInfo(info_mapping={})
|
|
26
|
+
|
|
27
|
+
@staticmethod
|
|
28
|
+
def add_version(
|
|
29
|
+
current_info: Optional["DefsStateInfo"], key: str, version: Optional[str]
|
|
30
|
+
) -> "DefsStateInfo":
|
|
31
|
+
new_info = (
|
|
32
|
+
DefsKeyStateInfo(version=version, create_timestamp=time.time()) if version else None
|
|
33
|
+
)
|
|
34
|
+
if current_info is None:
|
|
35
|
+
return DefsStateInfo(info_mapping={key: new_info})
|
|
36
|
+
else:
|
|
37
|
+
return DefsStateInfo(info_mapping={**current_info.info_mapping, key: new_info})
|
|
38
|
+
|
|
39
|
+
def get_version(self, key: str) -> Optional[str]:
|
|
40
|
+
info = self.info_mapping.get(key)
|
|
41
|
+
return info.version if info else None
|
|
@@ -105,9 +105,11 @@ def cached_method(method: Callable[Concatenate[S, P], T]) -> Callable[Concatenat
|
|
|
105
105
|
cache_dict[method.__name__] = {}
|
|
106
106
|
|
|
107
107
|
cache = cache_dict[method.__name__]
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
108
|
+
if not args and not kwargs:
|
|
109
|
+
key = NO_ARGS_HASH_VALUE
|
|
110
|
+
else:
|
|
111
|
+
canonical_kwargs = get_canonical_kwargs(*args, **kwargs)
|
|
112
|
+
key = make_cached_method_cache_key(canonical_kwargs)
|
|
111
113
|
|
|
112
114
|
if key not in cache:
|
|
113
115
|
result = await method(self, *args, **kwargs)
|
|
@@ -128,9 +130,12 @@ def cached_method(method: Callable[Concatenate[S, P], T]) -> Callable[Concatenat
|
|
|
128
130
|
cache_dict[method.__name__] = {}
|
|
129
131
|
|
|
130
132
|
cache = cache_dict[method.__name__]
|
|
133
|
+
if not args and not kwargs:
|
|
134
|
+
key = NO_ARGS_HASH_VALUE
|
|
135
|
+
else:
|
|
136
|
+
canonical_kwargs = get_canonical_kwargs(*args, **kwargs)
|
|
137
|
+
key = make_cached_method_cache_key(canonical_kwargs)
|
|
131
138
|
|
|
132
|
-
canonical_kwargs = get_canonical_kwargs(*args, **kwargs)
|
|
133
|
-
key = make_cached_method_cache_key(canonical_kwargs)
|
|
134
139
|
if key not in cache:
|
|
135
140
|
result = method(self, *args, **kwargs)
|
|
136
141
|
cache[key] = result
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
import os
|
|
2
|
+
import time
|
|
3
|
+
from contextlib import contextmanager
|
|
4
|
+
|
|
5
|
+
|
|
1
6
|
def format_duration(milliseconds: float) -> str:
|
|
2
7
|
"""Given milliseconds, return human readable duration string such as:
|
|
3
8
|
533ms, 2.1s, 4m52s, 34m12s, 1h4m.
|
|
@@ -31,3 +36,29 @@ def format_duration(milliseconds: float) -> str:
|
|
|
31
36
|
hours = int(milliseconds // (1000 * 60 * 60))
|
|
32
37
|
minutes = int(milliseconds % (1000 * 60 * 60) // (1000 * 60))
|
|
33
38
|
return f"{hours}h{minutes}m"
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
@contextmanager
|
|
42
|
+
def fixed_timezone(tzname: str = "UTC"):
|
|
43
|
+
"""Temporarily set the process-wide timezone to `tzname`.
|
|
44
|
+
Temporarily set the process-wide timezone to `tzname`.
|
|
45
|
+
|
|
46
|
+
Example:
|
|
47
|
+
with fixed_timezone("America/New_York"):
|
|
48
|
+
dt = datetime.fromtimestamp(0)
|
|
49
|
+
print(dt.strftime("%Y-%m-%d %H:%M %Z"))
|
|
50
|
+
# 1969-12-31 19:00 EST
|
|
51
|
+
"""
|
|
52
|
+
prev = os.environ.get("TZ")
|
|
53
|
+
os.environ["TZ"] = tzname
|
|
54
|
+
if hasattr(time, "tzset"):
|
|
55
|
+
time.tzset()
|
|
56
|
+
try:
|
|
57
|
+
yield
|
|
58
|
+
finally:
|
|
59
|
+
if prev is None:
|
|
60
|
+
os.environ.pop("TZ", None)
|
|
61
|
+
else:
|
|
62
|
+
os.environ["TZ"] = prev
|
|
63
|
+
if hasattr(time, "tzset"):
|
|
64
|
+
time.tzset()
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "1.11.11"
|
|
@@ -39,8 +39,9 @@ dagster_shared/serdes/serdes.py
|
|
|
39
39
|
dagster_shared/serdes/utils.py
|
|
40
40
|
dagster_shared/serdes/objects/__init__.py
|
|
41
41
|
dagster_shared/serdes/objects/definition_metadata.py
|
|
42
|
-
dagster_shared/serdes/objects/defs_state_info.py
|
|
43
42
|
dagster_shared/serdes/objects/package_entry.py
|
|
43
|
+
dagster_shared/serdes/objects/models/__init__.py
|
|
44
|
+
dagster_shared/serdes/objects/models/defs_state_info.py
|
|
44
45
|
dagster_shared/seven/__init__.py
|
|
45
46
|
dagster_shared/seven/abc.py
|
|
46
47
|
dagster_shared/seven/json.py
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
import time
|
|
2
|
-
from collections.abc import Mapping
|
|
3
|
-
from typing import Any, Optional
|
|
4
|
-
|
|
5
|
-
from dagster_shared.record import record
|
|
6
|
-
from dagster_shared.serdes import whitelist_for_serdes
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
@whitelist_for_serdes
|
|
10
|
-
@record
|
|
11
|
-
class DefsKeyStateInfo:
|
|
12
|
-
"""Records information about the version of the state for a given defs key."""
|
|
13
|
-
|
|
14
|
-
version: str
|
|
15
|
-
create_timestamp: float
|
|
16
|
-
|
|
17
|
-
@staticmethod
|
|
18
|
-
def from_dict(val: dict[str, Any]) -> "DefsKeyStateInfo":
|
|
19
|
-
return DefsKeyStateInfo(version=val["version"], create_timestamp=val["create_timestamp"])
|
|
20
|
-
|
|
21
|
-
def to_dict(self) -> dict[str, Any]:
|
|
22
|
-
return {"version": self.version, "create_timestamp": self.create_timestamp}
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
@whitelist_for_serdes
|
|
26
|
-
@record
|
|
27
|
-
class DefsStateInfo:
|
|
28
|
-
"""All of the information about the state version that will be used to load a given code location."""
|
|
29
|
-
|
|
30
|
-
info_mapping: Mapping[str, DefsKeyStateInfo]
|
|
31
|
-
|
|
32
|
-
@staticmethod
|
|
33
|
-
def add_version(
|
|
34
|
-
current_info: Optional["DefsStateInfo"], key: str, version: str
|
|
35
|
-
) -> "DefsStateInfo":
|
|
36
|
-
new_info = DefsKeyStateInfo(version=version, create_timestamp=time.time())
|
|
37
|
-
if current_info is None:
|
|
38
|
-
return DefsStateInfo(info_mapping={key: new_info})
|
|
39
|
-
else:
|
|
40
|
-
return DefsStateInfo(info_mapping={**current_info.info_mapping, key: new_info})
|
|
41
|
-
|
|
42
|
-
@staticmethod
|
|
43
|
-
def from_dict(val: dict[str, Any]) -> "DefsStateInfo":
|
|
44
|
-
"""Used for converting from the user-facing dict representation."""
|
|
45
|
-
return DefsStateInfo(
|
|
46
|
-
info_mapping={key: DefsKeyStateInfo.from_dict(info) for key, info in val.items()}
|
|
47
|
-
)
|
|
48
|
-
|
|
49
|
-
def to_dict(self) -> dict[str, Any]:
|
|
50
|
-
"""Used for converting to the user-facing dict representation."""
|
|
51
|
-
return {key: info.to_dict() for key, info in self.info_mapping.items()}
|
|
52
|
-
|
|
53
|
-
def get_version(self, key: str) -> Optional[str]:
|
|
54
|
-
info = self.info_mapping.get(key)
|
|
55
|
-
return info.version if info else None
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "1.11.9"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dagster_shared-1.11.9 → dagster_shared-1.11.11}/dagster_shared/serdes/objects/package_entry.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dagster_shared-1.11.9 → dagster_shared-1.11.11}/dagster_shared/yaml_utils/source_position.py
RENAMED
|
File without changes
|
{dagster_shared-1.11.9 → dagster_shared-1.11.11}/dagster_shared.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|