sunstone-data-platform 1.4.0__tar.gz → 1.4.1__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.
- {sunstone_data_platform-1.4.0 → sunstone_data_platform-1.4.1}/PKG-INFO +1 -1
- {sunstone_data_platform-1.4.0 → sunstone_data_platform-1.4.1}/src/sunstone_data/_version.py +2 -2
- {sunstone_data_platform-1.4.0 → sunstone_data_platform-1.4.1}/src/sunstone_data/graph/client.py +31 -2
- {sunstone_data_platform-1.4.0 → sunstone_data_platform-1.4.1}/src/sunstone_pipeline/assets/mirrors.py +1 -1
- {sunstone_data_platform-1.4.0 → sunstone_data_platform-1.4.1}/.gitignore +0 -0
- {sunstone_data_platform-1.4.0 → sunstone_data_platform-1.4.1}/README.md +0 -0
- {sunstone_data_platform-1.4.0 → sunstone_data_platform-1.4.1}/pyproject.toml +0 -0
- {sunstone_data_platform-1.4.0 → sunstone_data_platform-1.4.1}/src/sunstone_data/__init__.py +0 -0
- {sunstone_data_platform-1.4.0 → sunstone_data_platform-1.4.1}/src/sunstone_data/auth/__init__.py +0 -0
- {sunstone_data_platform-1.4.0 → sunstone_data_platform-1.4.1}/src/sunstone_data/auth/client_creds.py +0 -0
- {sunstone_data_platform-1.4.0 → sunstone_data_platform-1.4.1}/src/sunstone_data/auth/pkce.py +0 -0
- {sunstone_data_platform-1.4.0 → sunstone_data_platform-1.4.1}/src/sunstone_data/auth/stepup.py +0 -0
- {sunstone_data_platform-1.4.0 → sunstone_data_platform-1.4.1}/src/sunstone_data/auth/store.py +0 -0
- {sunstone_data_platform-1.4.0 → sunstone_data_platform-1.4.1}/src/sunstone_data/branch.py +0 -0
- {sunstone_data_platform-1.4.0 → sunstone_data_platform-1.4.1}/src/sunstone_data/catalog.py +0 -0
- {sunstone_data_platform-1.4.0 → sunstone_data_platform-1.4.1}/src/sunstone_data/cli/__init__.py +0 -0
- {sunstone_data_platform-1.4.0 → sunstone_data_platform-1.4.1}/src/sunstone_data/cli/_app.py +0 -0
- {sunstone_data_platform-1.4.0 → sunstone_data_platform-1.4.1}/src/sunstone_data/cli/_errors.py +0 -0
- {sunstone_data_platform-1.4.0 → sunstone_data_platform-1.4.1}/src/sunstone_data/cli/commands/__init__.py +0 -0
- {sunstone_data_platform-1.4.0 → sunstone_data_platform-1.4.1}/src/sunstone_data/cli/commands/conceptmap.py +0 -0
- {sunstone_data_platform-1.4.0 → sunstone_data_platform-1.4.1}/src/sunstone_data/cli/commands/data_auth.py +0 -0
- {sunstone_data_platform-1.4.0 → sunstone_data_platform-1.4.1}/src/sunstone_data/cli/commands/data_import.py +0 -0
- {sunstone_data_platform-1.4.0 → sunstone_data_platform-1.4.1}/src/sunstone_data/cli/commands/data_info.py +0 -0
- {sunstone_data_platform-1.4.0 → sunstone_data_platform-1.4.1}/src/sunstone_data/cli/commands/data_publish.py +0 -0
- {sunstone_data_platform-1.4.0 → sunstone_data_platform-1.4.1}/src/sunstone_data/cli/commands/ls.py +0 -0
- {sunstone_data_platform-1.4.0 → sunstone_data_platform-1.4.1}/src/sunstone_data/cli/commands/prov.py +0 -0
- {sunstone_data_platform-1.4.0 → sunstone_data_platform-1.4.1}/src/sunstone_data/cli/commands/refs.py +0 -0
- {sunstone_data_platform-1.4.0 → sunstone_data_platform-1.4.1}/src/sunstone_data/cli/commands/show.py +0 -0
- {sunstone_data_platform-1.4.0 → sunstone_data_platform-1.4.1}/src/sunstone_data/cli/commands/snapshots.py +0 -0
- {sunstone_data_platform-1.4.0 → sunstone_data_platform-1.4.1}/src/sunstone_data/cli/commands/sparql.py +0 -0
- {sunstone_data_platform-1.4.0 → sunstone_data_platform-1.4.1}/src/sunstone_data/cli/main.py +0 -0
- {sunstone_data_platform-1.4.0 → sunstone_data_platform-1.4.1}/src/sunstone_data/conceptmap.py +0 -0
- {sunstone_data_platform-1.4.0 → sunstone_data_platform-1.4.1}/src/sunstone_data/config.py +0 -0
- {sunstone_data_platform-1.4.0 → sunstone_data_platform-1.4.1}/src/sunstone_data/discovery.py +0 -0
- {sunstone_data_platform-1.4.0 → sunstone_data_platform-1.4.1}/src/sunstone_data/env_commands.py +0 -0
- {sunstone_data_platform-1.4.0 → sunstone_data_platform-1.4.1}/src/sunstone_data/env_section.py +0 -0
- {sunstone_data_platform-1.4.0 → sunstone_data_platform-1.4.1}/src/sunstone_data/graph/__init__.py +0 -0
- {sunstone_data_platform-1.4.0 → sunstone_data_platform-1.4.1}/src/sunstone_data/graph/dataset.py +0 -0
- {sunstone_data_platform-1.4.0 → sunstone_data_platform-1.4.1}/src/sunstone_data/graph/terms.py +0 -0
- {sunstone_data_platform-1.4.0 → sunstone_data_platform-1.4.1}/src/sunstone_data/identifiers.py +0 -0
- {sunstone_data_platform-1.4.0 → sunstone_data_platform-1.4.1}/src/sunstone_data/import_/__init__.py +0 -0
- {sunstone_data_platform-1.4.0 → sunstone_data_platform-1.4.1}/src/sunstone_data/import_/fetcher.py +0 -0
- {sunstone_data_platform-1.4.0 → sunstone_data_platform-1.4.1}/src/sunstone_data/import_/owner.py +0 -0
- {sunstone_data_platform-1.4.0 → sunstone_data_platform-1.4.1}/src/sunstone_data/import_/parser.py +0 -0
- {sunstone_data_platform-1.4.0 → sunstone_data_platform-1.4.1}/src/sunstone_data/import_/pipeline.py +0 -0
- {sunstone_data_platform-1.4.0 → sunstone_data_platform-1.4.1}/src/sunstone_data/import_/storage.py +0 -0
- {sunstone_data_platform-1.4.0 → sunstone_data_platform-1.4.1}/src/sunstone_data/metadata/__init__.py +0 -0
- {sunstone_data_platform-1.4.0 → sunstone_data_platform-1.4.1}/src/sunstone_data/metadata/builder.py +0 -0
- {sunstone_data_platform-1.4.0 → sunstone_data_platform-1.4.1}/src/sunstone_data/metadata/models.py +0 -0
- {sunstone_data_platform-1.4.0 → sunstone_data_platform-1.4.1}/src/sunstone_data/metadata/provenance.py +0 -0
- {sunstone_data_platform-1.4.0 → sunstone_data_platform-1.4.1}/src/sunstone_data/metadata/provenance_rdf.py +0 -0
- {sunstone_data_platform-1.4.0 → sunstone_data_platform-1.4.1}/src/sunstone_data/plugin.py +0 -0
- {sunstone_data_platform-1.4.0 → sunstone_data_platform-1.4.1}/src/sunstone_data/publish.py +0 -0
- {sunstone_data_platform-1.4.0 → sunstone_data_platform-1.4.1}/src/sunstone_data/push.py +0 -0
- {sunstone_data_platform-1.4.0 → sunstone_data_platform-1.4.1}/src/sunstone_data/queries/conceptmap-mappings.rq +0 -0
- {sunstone_data_platform-1.4.0 → sunstone_data_platform-1.4.1}/src/sunstone_data/query.py +0 -0
- {sunstone_data_platform-1.4.0 → sunstone_data_platform-1.4.1}/src/sunstone_data/resolve.py +0 -0
- {sunstone_data_platform-1.4.0 → sunstone_data_platform-1.4.1}/src/sunstone_data/sssom.py +0 -0
- {sunstone_data_platform-1.4.0 → sunstone_data_platform-1.4.1}/src/sunstone_data/url.py +0 -0
- {sunstone_data_platform-1.4.0 → sunstone_data_platform-1.4.1}/src/sunstone_data/utils/__init__.py +0 -0
- {sunstone_data_platform-1.4.0 → sunstone_data_platform-1.4.1}/src/sunstone_data/utils/checksum.py +0 -0
- {sunstone_data_platform-1.4.0 → sunstone_data_platform-1.4.1}/src/sunstone_data/utils/encoding.py +0 -0
- {sunstone_data_platform-1.4.0 → sunstone_data_platform-1.4.1}/src/sunstone_data/utils/naming.py +0 -0
- {sunstone_data_platform-1.4.0 → sunstone_data_platform-1.4.1}/src/sunstone_data/versioning/__init__.py +0 -0
- {sunstone_data_platform-1.4.0 → sunstone_data_platform-1.4.1}/src/sunstone_data/versioning/schema_evolution.py +0 -0
- {sunstone_data_platform-1.4.0 → sunstone_data_platform-1.4.1}/src/sunstone_pipeline/__init__.py +0 -0
- {sunstone_data_platform-1.4.0 → sunstone_data_platform-1.4.1}/src/sunstone_pipeline/assets/__init__.py +0 -0
- {sunstone_data_platform-1.4.0 → sunstone_data_platform-1.4.1}/src/sunstone_pipeline/assets/transforms.py +0 -0
- {sunstone_data_platform-1.4.0 → sunstone_data_platform-1.4.1}/src/sunstone_pipeline/definitions.py +0 -0
- {sunstone_data_platform-1.4.0 → sunstone_data_platform-1.4.1}/src/sunstone_pipeline/io_manager.py +0 -0
- {sunstone_data_platform-1.4.0 → sunstone_data_platform-1.4.1}/src/sunstone_pipeline/resources/__init__.py +0 -0
- {sunstone_data_platform-1.4.0 → sunstone_data_platform-1.4.1}/src/sunstone_pipeline/resources/iceberg.py +0 -0
- {sunstone_data_platform-1.4.0 → sunstone_data_platform-1.4.1}/src/sunstone_pipeline/resources/refs.py +0 -0
|
@@ -18,7 +18,7 @@ version_tuple: tuple[int | str, ...]
|
|
|
18
18
|
commit_id: str | None
|
|
19
19
|
__commit_id__: str | None
|
|
20
20
|
|
|
21
|
-
__version__ = version = '1.4.
|
|
22
|
-
__version_tuple__ = version_tuple = (1, 4,
|
|
21
|
+
__version__ = version = '1.4.1'
|
|
22
|
+
__version_tuple__ = version_tuple = (1, 4, 1)
|
|
23
23
|
|
|
24
24
|
__commit_id__ = commit_id = None
|
{sunstone_data_platform-1.4.0 → sunstone_data_platform-1.4.1}/src/sunstone_data/graph/client.py
RENAMED
|
@@ -14,6 +14,7 @@ or the sentinel ``*`` for "whatever is current".
|
|
|
14
14
|
from __future__ import annotations
|
|
15
15
|
|
|
16
16
|
import fnmatch
|
|
17
|
+
import json
|
|
17
18
|
import re
|
|
18
19
|
from collections.abc import Callable
|
|
19
20
|
|
|
@@ -107,11 +108,39 @@ class PushRejected(RuntimeError):
|
|
|
107
108
|
|
|
108
109
|
|
|
109
110
|
class Unavailable(RuntimeError):
|
|
110
|
-
"""graph
|
|
111
|
+
"""graph-server answered 503.
|
|
112
|
+
|
|
113
|
+
With no server message the text is the generic "safe to retry" line. When the
|
|
114
|
+
server gave a reason, the text is "graph-server unavailable: <reason>" and
|
|
115
|
+
makes no retry claim, because some 503s are configuration errors.
|
|
116
|
+
"""
|
|
111
117
|
|
|
112
118
|
def __init__(self, message: str = "graph SoR unavailable; safe to retry"):
|
|
113
119
|
super().__init__(message)
|
|
114
120
|
|
|
121
|
+
@classmethod
|
|
122
|
+
def from_response(cls, resp: httpx.Response) -> "Unavailable":
|
|
123
|
+
"""Build from a 503 response, using the server's reason when it sent one."""
|
|
124
|
+
detail = _server_message(resp)
|
|
125
|
+
if not detail:
|
|
126
|
+
return cls()
|
|
127
|
+
return cls(f"graph-server unavailable: {detail}")
|
|
128
|
+
|
|
129
|
+
|
|
130
|
+
def _server_message(resp: httpx.Response) -> str:
|
|
131
|
+
"""The JSON ``error`` string if the body has one, else the stripped text body."""
|
|
132
|
+
try:
|
|
133
|
+
text = resp.text.strip()
|
|
134
|
+
except Exception:
|
|
135
|
+
return ""
|
|
136
|
+
try:
|
|
137
|
+
body = json.loads(text)
|
|
138
|
+
except ValueError:
|
|
139
|
+
return text
|
|
140
|
+
if isinstance(body, dict) and isinstance(body.get("error"), str) and body["error"].strip():
|
|
141
|
+
return body["error"].strip()
|
|
142
|
+
return text
|
|
143
|
+
|
|
115
144
|
|
|
116
145
|
# graph-server's default protected-ref globs (DP-SPEC-14 D9). The deployed
|
|
117
146
|
# rules file may differ; this client only uses them to word its 403s.
|
|
@@ -447,7 +476,7 @@ class GraphClient:
|
|
|
447
476
|
if status == 415:
|
|
448
477
|
return UnsupportedMedia()
|
|
449
478
|
if status == 503:
|
|
450
|
-
return Unavailable()
|
|
479
|
+
return Unavailable.from_response(resp)
|
|
451
480
|
return None
|
|
452
481
|
|
|
453
482
|
|
|
@@ -76,7 +76,7 @@ def build_mirror_asset(config: SourceConfig) -> dg.AssetsDefinition:
|
|
|
76
76
|
new_hash = compute_checksum_bytes(raw)
|
|
77
77
|
|
|
78
78
|
# Compare with stored hash
|
|
79
|
-
current_hash = iceberg.get_table_property(config.table_ref, "sunstone.import.
|
|
79
|
+
current_hash = iceberg.get_table_property(config.table_ref, "sunstone.import.checksum")
|
|
80
80
|
|
|
81
81
|
if new_hash == current_hash:
|
|
82
82
|
context.log.info(f"No change for {config.table_ref} (hash: {new_hash[:12]}...)")
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sunstone_data_platform-1.4.0 → sunstone_data_platform-1.4.1}/src/sunstone_data/auth/__init__.py
RENAMED
|
File without changes
|
{sunstone_data_platform-1.4.0 → sunstone_data_platform-1.4.1}/src/sunstone_data/auth/client_creds.py
RENAMED
|
File without changes
|
{sunstone_data_platform-1.4.0 → sunstone_data_platform-1.4.1}/src/sunstone_data/auth/pkce.py
RENAMED
|
File without changes
|
{sunstone_data_platform-1.4.0 → sunstone_data_platform-1.4.1}/src/sunstone_data/auth/stepup.py
RENAMED
|
File without changes
|
{sunstone_data_platform-1.4.0 → sunstone_data_platform-1.4.1}/src/sunstone_data/auth/store.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sunstone_data_platform-1.4.0 → sunstone_data_platform-1.4.1}/src/sunstone_data/cli/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{sunstone_data_platform-1.4.0 → sunstone_data_platform-1.4.1}/src/sunstone_data/cli/_errors.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sunstone_data_platform-1.4.0 → sunstone_data_platform-1.4.1}/src/sunstone_data/cli/commands/ls.py
RENAMED
|
File without changes
|
{sunstone_data_platform-1.4.0 → sunstone_data_platform-1.4.1}/src/sunstone_data/cli/commands/prov.py
RENAMED
|
File without changes
|
{sunstone_data_platform-1.4.0 → sunstone_data_platform-1.4.1}/src/sunstone_data/cli/commands/refs.py
RENAMED
|
File without changes
|
{sunstone_data_platform-1.4.0 → sunstone_data_platform-1.4.1}/src/sunstone_data/cli/commands/show.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sunstone_data_platform-1.4.0 → sunstone_data_platform-1.4.1}/src/sunstone_data/conceptmap.py
RENAMED
|
File without changes
|
|
File without changes
|
{sunstone_data_platform-1.4.0 → sunstone_data_platform-1.4.1}/src/sunstone_data/discovery.py
RENAMED
|
File without changes
|
{sunstone_data_platform-1.4.0 → sunstone_data_platform-1.4.1}/src/sunstone_data/env_commands.py
RENAMED
|
File without changes
|
{sunstone_data_platform-1.4.0 → sunstone_data_platform-1.4.1}/src/sunstone_data/env_section.py
RENAMED
|
File without changes
|
{sunstone_data_platform-1.4.0 → sunstone_data_platform-1.4.1}/src/sunstone_data/graph/__init__.py
RENAMED
|
File without changes
|
{sunstone_data_platform-1.4.0 → sunstone_data_platform-1.4.1}/src/sunstone_data/graph/dataset.py
RENAMED
|
File without changes
|
{sunstone_data_platform-1.4.0 → sunstone_data_platform-1.4.1}/src/sunstone_data/graph/terms.py
RENAMED
|
File without changes
|
{sunstone_data_platform-1.4.0 → sunstone_data_platform-1.4.1}/src/sunstone_data/identifiers.py
RENAMED
|
File without changes
|
{sunstone_data_platform-1.4.0 → sunstone_data_platform-1.4.1}/src/sunstone_data/import_/__init__.py
RENAMED
|
File without changes
|
{sunstone_data_platform-1.4.0 → sunstone_data_platform-1.4.1}/src/sunstone_data/import_/fetcher.py
RENAMED
|
File without changes
|
{sunstone_data_platform-1.4.0 → sunstone_data_platform-1.4.1}/src/sunstone_data/import_/owner.py
RENAMED
|
File without changes
|
{sunstone_data_platform-1.4.0 → sunstone_data_platform-1.4.1}/src/sunstone_data/import_/parser.py
RENAMED
|
File without changes
|
{sunstone_data_platform-1.4.0 → sunstone_data_platform-1.4.1}/src/sunstone_data/import_/pipeline.py
RENAMED
|
File without changes
|
{sunstone_data_platform-1.4.0 → sunstone_data_platform-1.4.1}/src/sunstone_data/import_/storage.py
RENAMED
|
File without changes
|
{sunstone_data_platform-1.4.0 → sunstone_data_platform-1.4.1}/src/sunstone_data/metadata/__init__.py
RENAMED
|
File without changes
|
{sunstone_data_platform-1.4.0 → sunstone_data_platform-1.4.1}/src/sunstone_data/metadata/builder.py
RENAMED
|
File without changes
|
{sunstone_data_platform-1.4.0 → sunstone_data_platform-1.4.1}/src/sunstone_data/metadata/models.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
|
{sunstone_data_platform-1.4.0 → sunstone_data_platform-1.4.1}/src/sunstone_data/utils/__init__.py
RENAMED
|
File without changes
|
{sunstone_data_platform-1.4.0 → sunstone_data_platform-1.4.1}/src/sunstone_data/utils/checksum.py
RENAMED
|
File without changes
|
{sunstone_data_platform-1.4.0 → sunstone_data_platform-1.4.1}/src/sunstone_data/utils/encoding.py
RENAMED
|
File without changes
|
{sunstone_data_platform-1.4.0 → sunstone_data_platform-1.4.1}/src/sunstone_data/utils/naming.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sunstone_data_platform-1.4.0 → sunstone_data_platform-1.4.1}/src/sunstone_pipeline/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sunstone_data_platform-1.4.0 → sunstone_data_platform-1.4.1}/src/sunstone_pipeline/definitions.py
RENAMED
|
File without changes
|
{sunstone_data_platform-1.4.0 → sunstone_data_platform-1.4.1}/src/sunstone_pipeline/io_manager.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|