dasl-client 1.0.5__tar.gz → 1.0.7__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.
Potentially problematic release.
This version of dasl-client might be problematic. Click here for more details.
- {dasl_client-1.0.5 → dasl_client-1.0.7}/PKG-INFO +2 -2
- dasl_client-1.0.7/dasl_client/conn/client_identifier.py +23 -0
- {dasl_client-1.0.5 → dasl_client-1.0.7}/dasl_client/conn/conn.py +1 -1
- {dasl_client-1.0.5 → dasl_client-1.0.7}/dasl_client/types/datasource.py +0 -17
- {dasl_client-1.0.5 → dasl_client-1.0.7}/dasl_client/types/rule.py +6 -0
- {dasl_client-1.0.5 → dasl_client-1.0.7}/dasl_client/types/types.py +7 -0
- {dasl_client-1.0.5 → dasl_client-1.0.7}/dasl_client/types/workspace_config.py +0 -49
- {dasl_client-1.0.5 → dasl_client-1.0.7}/dasl_client.egg-info/PKG-INFO +2 -2
- {dasl_client-1.0.5 → dasl_client-1.0.7}/dasl_client.egg-info/SOURCES.txt +1 -1
- {dasl_client-1.0.5 → dasl_client-1.0.7}/dasl_client.egg-info/requires.txt +1 -1
- {dasl_client-1.0.5 → dasl_client-1.0.7}/pyproject.toml +2 -2
- {dasl_client-1.0.5 → dasl_client-1.0.7}/test/test_api_changes.py +0 -1
- {dasl_client-1.0.5 → dasl_client-1.0.7}/test/test_api_surface.py +1 -0
- {dasl_client-1.0.5 → dasl_client-1.0.7}/test/test_marshaling.py +3 -62
- dasl_client-1.0.5/dasl_client/conn/user_agent.py +0 -11
- {dasl_client-1.0.5 → dasl_client-1.0.7}/LICENSE +0 -0
- {dasl_client-1.0.5 → dasl_client-1.0.7}/README.md +0 -0
- {dasl_client-1.0.5 → dasl_client-1.0.7}/dasl_client/__init__.py +0 -0
- {dasl_client-1.0.5 → dasl_client-1.0.7}/dasl_client/auth/__init__.py +0 -0
- {dasl_client-1.0.5 → dasl_client-1.0.7}/dasl_client/auth/auth.py +0 -0
- {dasl_client-1.0.5 → dasl_client-1.0.7}/dasl_client/client.py +0 -0
- {dasl_client-1.0.5 → dasl_client-1.0.7}/dasl_client/conn/__init__.py +0 -0
- {dasl_client-1.0.5 → dasl_client-1.0.7}/dasl_client/errors/__init__.py +0 -0
- {dasl_client-1.0.5 → dasl_client-1.0.7}/dasl_client/errors/errors.py +0 -0
- {dasl_client-1.0.5 → dasl_client-1.0.7}/dasl_client/helpers.py +0 -0
- {dasl_client-1.0.5 → dasl_client-1.0.7}/dasl_client/types/__init__.py +0 -0
- {dasl_client-1.0.5 → dasl_client-1.0.7}/dasl_client/types/admin_config.py +0 -0
- {dasl_client-1.0.5 → dasl_client-1.0.7}/dasl_client/types/dbui.py +0 -0
- {dasl_client-1.0.5 → dasl_client-1.0.7}/dasl_client/types/helpers.py +0 -0
- {dasl_client-1.0.5 → dasl_client-1.0.7}/dasl_client.egg-info/dependency_links.txt +0 -0
- {dasl_client-1.0.5 → dasl_client-1.0.7}/dasl_client.egg-info/top_level.txt +0 -0
- {dasl_client-1.0.5 → dasl_client-1.0.7}/setup.cfg +0 -0
- {dasl_client-1.0.5 → dasl_client-1.0.7}/setup.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: dasl_client
|
|
3
|
-
Version: 1.0.
|
|
3
|
+
Version: 1.0.7
|
|
4
4
|
Summary: The DASL client library used for interacting with the DASL workspace
|
|
5
5
|
Home-page: https://github.com/antimatter/asl
|
|
6
6
|
Author: Antimatter Team
|
|
@@ -8,7 +8,7 @@ Author-email: Antimatter Team <support@antimatter.io>
|
|
|
8
8
|
Requires-Python: >=3.8
|
|
9
9
|
Description-Content-Type: text/markdown
|
|
10
10
|
License-File: LICENSE
|
|
11
|
-
Requires-Dist: dasl_api==0.1.
|
|
11
|
+
Requires-Dist: dasl_api==0.1.12
|
|
12
12
|
Requires-Dist: databricks-sdk>=0.41.0
|
|
13
13
|
Requires-Dist: pydantic>=2
|
|
14
14
|
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
from importlib.metadata import version
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
def get_user_agent() -> str:
|
|
5
|
+
"""
|
|
6
|
+
A helper function defining the user agent for requests originating from
|
|
7
|
+
the ASL python conn library. We include the version of the API that the
|
|
8
|
+
connection was built off.
|
|
9
|
+
|
|
10
|
+
:return: A user-agent string.
|
|
11
|
+
"""
|
|
12
|
+
return get_client_identifier()
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
def get_client_identifier() -> str:
|
|
16
|
+
"""
|
|
17
|
+
A helper function defining the client identifier for identifying the python
|
|
18
|
+
client. We include the version of the version of the API that the client
|
|
19
|
+
uses.
|
|
20
|
+
|
|
21
|
+
:return: The python client identifier.
|
|
22
|
+
"""
|
|
23
|
+
return f"asl-python-client/{version('dasl_api')}"
|
|
@@ -4,7 +4,7 @@ from typing import Optional
|
|
|
4
4
|
import urllib3
|
|
5
5
|
from dasl_api import ApiClient, Configuration
|
|
6
6
|
|
|
7
|
-
from dasl_client.conn.
|
|
7
|
+
from dasl_client.conn.client_identifier import get_user_agent
|
|
8
8
|
|
|
9
9
|
|
|
10
10
|
def get_base_conn(enable_retries: bool = True, host: Optional[str] = None) -> ApiClient:
|
|
@@ -507,7 +507,6 @@ class SilverSpec(BaseModel):
|
|
|
507
507
|
Overrides for preset filters.
|
|
508
508
|
add_fields (Optional[List[FieldSpec]]): User defined fields to
|
|
509
509
|
add to the transformation.
|
|
510
|
-
utils (Optional[FieldUtils]): Utilities for handling fields.
|
|
511
510
|
"""
|
|
512
511
|
|
|
513
512
|
class Custom(BaseModel):
|
|
@@ -574,7 +573,6 @@ class SilverSpec(BaseModel):
|
|
|
574
573
|
post_filter: Optional[str] = None
|
|
575
574
|
preset_overrides: Optional["SilverSpec.PreTransform.PresetOverrides"] = None
|
|
576
575
|
add_fields: Optional[List[FieldSpec]] = None
|
|
577
|
-
utils: Optional[FieldUtils] = None
|
|
578
576
|
|
|
579
577
|
@staticmethod
|
|
580
578
|
def from_api_obj(
|
|
@@ -595,7 +593,6 @@ class SilverSpec(BaseModel):
|
|
|
595
593
|
obj.preset_overrides
|
|
596
594
|
),
|
|
597
595
|
add_fields=add_fields,
|
|
598
|
-
utils=FieldUtils.from_api_obj(obj.utils),
|
|
599
596
|
)
|
|
600
597
|
|
|
601
598
|
def to_api_obj(self) -> CoreV1DataSourceSpecSilverPreTransform:
|
|
@@ -611,7 +608,6 @@ class SilverSpec(BaseModel):
|
|
|
611
608
|
post_filter=self.post_filter,
|
|
612
609
|
preset_overrides=Helpers.maybe(to_api_obj, self.preset_overrides),
|
|
613
610
|
add_fields=add_fields,
|
|
614
|
-
utils=Helpers.maybe(to_api_obj, self.utils),
|
|
615
611
|
)
|
|
616
612
|
|
|
617
613
|
class Transform(BaseModel):
|
|
@@ -936,7 +932,6 @@ class GoldSpec(BaseModel):
|
|
|
936
932
|
filter (Optional[str]): A SQL filter to apply before processing.
|
|
937
933
|
post_filter (Optional[str]): A SQL filter to apply after
|
|
938
934
|
processing.
|
|
939
|
-
utils (Optional[FieldUtils]): Utilities for field handling.
|
|
940
935
|
"""
|
|
941
936
|
|
|
942
937
|
class Custom(BaseModel):
|
|
@@ -979,7 +974,6 @@ class GoldSpec(BaseModel):
|
|
|
979
974
|
add_fields: Optional[List[FieldSpec]] = None
|
|
980
975
|
filter: Optional[str] = None
|
|
981
976
|
post_filter: Optional[str] = None
|
|
982
|
-
utils: Optional[FieldUtils] = None
|
|
983
977
|
|
|
984
978
|
@staticmethod
|
|
985
979
|
def from_api_obj(
|
|
@@ -998,7 +992,6 @@ class GoldSpec(BaseModel):
|
|
|
998
992
|
add_fields=add_fields,
|
|
999
993
|
filter=obj.filter,
|
|
1000
994
|
post_filter=obj.post_filter,
|
|
1001
|
-
utils=FieldUtils.from_api_obj(obj.utils),
|
|
1002
995
|
)
|
|
1003
996
|
|
|
1004
997
|
def to_api_obj(
|
|
@@ -1016,7 +1009,6 @@ class GoldSpec(BaseModel):
|
|
|
1016
1009
|
add_fields=add_fields,
|
|
1017
1010
|
filter=self.filter,
|
|
1018
1011
|
post_filter=self.post_filter,
|
|
1019
|
-
utils=Helpers.maybe(to_api_obj, self.utils),
|
|
1020
1012
|
)
|
|
1021
1013
|
|
|
1022
1014
|
class AddTables(BaseModel):
|
|
@@ -1032,11 +1024,8 @@ class GoldSpec(BaseModel):
|
|
|
1032
1024
|
filter (Optional[str]): A SQL filter to apply.
|
|
1033
1025
|
post_filter (Optional[str]): A SQL filter to apply after
|
|
1034
1026
|
processing.
|
|
1035
|
-
override_liquid_columns (Optional[List[str]]): Columns to override
|
|
1036
|
-
in the preset.
|
|
1037
1027
|
fields (Optional[List[FieldSpec]]): Field specifications for the
|
|
1038
1028
|
new table.
|
|
1039
|
-
utils (Optional[FieldUtils]): Utilities for field handling.
|
|
1040
1029
|
"""
|
|
1041
1030
|
|
|
1042
1031
|
class Custom(BaseModel):
|
|
@@ -1077,9 +1066,7 @@ class GoldSpec(BaseModel):
|
|
|
1077
1066
|
custom: Optional["GoldSpec.AddTables.Custom"] = None
|
|
1078
1067
|
filter: Optional[str] = None
|
|
1079
1068
|
post_filter: Optional[str] = None
|
|
1080
|
-
override_liquid_columns: Optional[List[str]] = None
|
|
1081
1069
|
fields: Optional[List[FieldSpec]] = None
|
|
1082
|
-
utils: Optional[FieldUtils] = None
|
|
1083
1070
|
|
|
1084
1071
|
@staticmethod
|
|
1085
1072
|
def from_api_obj(
|
|
@@ -1096,9 +1083,7 @@ class GoldSpec(BaseModel):
|
|
|
1096
1083
|
source_table=obj.source_table,
|
|
1097
1084
|
filter=obj.filter,
|
|
1098
1085
|
post_filter=obj.post_filter,
|
|
1099
|
-
override_liquid_columns=obj.override_liquid_columns,
|
|
1100
1086
|
fields=fields,
|
|
1101
|
-
utils=FieldUtils.from_api_obj(obj.utils),
|
|
1102
1087
|
)
|
|
1103
1088
|
|
|
1104
1089
|
def to_api_obj(self) -> CoreV1DataSourceSpecGoldPresetOverridesAddTablesInner:
|
|
@@ -1112,9 +1097,7 @@ class GoldSpec(BaseModel):
|
|
|
1112
1097
|
source_table=self.source_table,
|
|
1113
1098
|
filter=self.filter,
|
|
1114
1099
|
post_filter=self.post_filter,
|
|
1115
|
-
override_liquid_columns=self.override_liquid_columns,
|
|
1116
1100
|
fields=fields,
|
|
1117
|
-
utils=Helpers.maybe(to_api_obj, self.utils),
|
|
1118
1101
|
)
|
|
1119
1102
|
|
|
1120
1103
|
omit_tables: Optional[List[str]] = None
|
|
@@ -289,6 +289,9 @@ class Rule(BaseModel):
|
|
|
289
289
|
join_expr (Optional[str]): For tables other than the
|
|
290
290
|
first, the join condition expression to join with
|
|
291
291
|
the preceding table.
|
|
292
|
+
streaming (Optional[bool]): For tables other than the
|
|
293
|
+
first, is this a streaming join or static. Default
|
|
294
|
+
is false, except on the first table.
|
|
292
295
|
"""
|
|
293
296
|
|
|
294
297
|
class Watermark(BaseModel):
|
|
@@ -335,6 +338,7 @@ class Rule(BaseModel):
|
|
|
335
338
|
alias: Optional[str] = None
|
|
336
339
|
join_type: Optional[str] = None
|
|
337
340
|
join_expr: Optional[str] = None
|
|
341
|
+
streaming: Optional[bool] = None
|
|
338
342
|
|
|
339
343
|
@staticmethod
|
|
340
344
|
def from_api_obj(
|
|
@@ -350,6 +354,7 @@ class Rule(BaseModel):
|
|
|
350
354
|
alias=obj.alias,
|
|
351
355
|
join_type=obj.join_type,
|
|
352
356
|
join_expr=obj.join_expr,
|
|
357
|
+
streaming=obj.streaming,
|
|
353
358
|
)
|
|
354
359
|
|
|
355
360
|
def to_api_obj(self) -> CoreV1RuleSpecInputStreamTablesInner:
|
|
@@ -361,6 +366,7 @@ class Rule(BaseModel):
|
|
|
361
366
|
alias=self.alias,
|
|
362
367
|
join_type=self.join_type,
|
|
363
368
|
join_expr=self.join_expr,
|
|
369
|
+
streaming=self.streaming,
|
|
364
370
|
)
|
|
365
371
|
|
|
366
372
|
tables: Optional[List["Rule.Input.Stream.Table"]] = None
|
|
@@ -9,6 +9,8 @@ from dasl_api import (
|
|
|
9
9
|
CoreV1Schedule,
|
|
10
10
|
)
|
|
11
11
|
|
|
12
|
+
from dasl_client.conn.client_identifier import get_client_identifier
|
|
13
|
+
|
|
12
14
|
|
|
13
15
|
class Metadata(BaseModel):
|
|
14
16
|
"""
|
|
@@ -39,6 +41,8 @@ class Metadata(BaseModel):
|
|
|
39
41
|
be updated by the user.
|
|
40
42
|
ui_status (Optional[str]): Internal resource status. Cannot be
|
|
41
43
|
updated by the user.
|
|
44
|
+
client_of_origin (Optional[str]): The client that last created or
|
|
45
|
+
modified this resource.
|
|
42
46
|
"""
|
|
43
47
|
|
|
44
48
|
name: Optional[str] = None
|
|
@@ -54,6 +58,7 @@ class Metadata(BaseModel):
|
|
|
54
58
|
deleted: Optional[bool] = None
|
|
55
59
|
resource_status: Optional[str] = None
|
|
56
60
|
ui_status: Optional[str] = None
|
|
61
|
+
client_of_origin: Optional[str] = None
|
|
57
62
|
|
|
58
63
|
@staticmethod
|
|
59
64
|
def from_api_obj(obj: Optional[CommonV1ObjectMeta]) -> "Metadata":
|
|
@@ -73,6 +78,7 @@ class Metadata(BaseModel):
|
|
|
73
78
|
deleted=obj.deleted,
|
|
74
79
|
resource_status=obj.resource_status,
|
|
75
80
|
ui_status=obj.ui_status,
|
|
81
|
+
client_of_origin=obj.client_of_origin,
|
|
76
82
|
)
|
|
77
83
|
|
|
78
84
|
def to_api_obj(self) -> CommonV1ObjectMeta:
|
|
@@ -90,6 +96,7 @@ class Metadata(BaseModel):
|
|
|
90
96
|
deleted=self.deleted,
|
|
91
97
|
resource_status=self.resource_status,
|
|
92
98
|
ui_status=self.ui_status,
|
|
99
|
+
client_of_origin=self.client_of_origin or get_client_identifier(),
|
|
93
100
|
)
|
|
94
101
|
|
|
95
102
|
|
|
@@ -8,7 +8,6 @@ from dasl_api import (
|
|
|
8
8
|
WorkspaceV1ExportConfigWebhookConfigDestination,
|
|
9
9
|
WorkspaceV1WorkspaceConfig,
|
|
10
10
|
WorkspaceV1WorkspaceConfigSpec,
|
|
11
|
-
WorkspaceV1WorkspaceConfigSpecComputeGroupLimitsInner,
|
|
12
11
|
WorkspaceV1WorkspaceConfigSpecDefaultConfig,
|
|
13
12
|
WorkspaceV1WorkspaceConfigSpecDetectionRuleMetadata,
|
|
14
13
|
WorkspaceV1WorkspaceConfigSpecManagedRetentionInner,
|
|
@@ -238,35 +237,6 @@ class WorkspaceConfigObservables(BaseModel):
|
|
|
238
237
|
)
|
|
239
238
|
|
|
240
239
|
|
|
241
|
-
class ComputeGroupLimits(BaseModel):
|
|
242
|
-
"""
|
|
243
|
-
Configuration of limits for the number of resources that can be placed
|
|
244
|
-
in a user-defined compute group.
|
|
245
|
-
|
|
246
|
-
Attributes:
|
|
247
|
-
group_name (Optional[str]): Name of the compute group for this limit.
|
|
248
|
-
limit (Optional[int]): Limit of maximum number of resources in the group.
|
|
249
|
-
"""
|
|
250
|
-
|
|
251
|
-
group_name: Optional[str] = None
|
|
252
|
-
limit: Optional[int] = None
|
|
253
|
-
|
|
254
|
-
@staticmethod
|
|
255
|
-
def from_api_obj(
|
|
256
|
-
obj: WorkspaceV1WorkspaceConfigSpecComputeGroupLimitsInner,
|
|
257
|
-
) -> "ComputeGroupLimits":
|
|
258
|
-
return ComputeGroupLimits(
|
|
259
|
-
group_name=obj.group_name,
|
|
260
|
-
limit=obj.limit,
|
|
261
|
-
)
|
|
262
|
-
|
|
263
|
-
def to_api_obj(self) -> WorkspaceV1WorkspaceConfigSpecComputeGroupLimitsInner:
|
|
264
|
-
return WorkspaceV1WorkspaceConfigSpecComputeGroupLimitsInner(
|
|
265
|
-
group_name=self.group_name,
|
|
266
|
-
limit=self.limit,
|
|
267
|
-
)
|
|
268
|
-
|
|
269
|
-
|
|
270
240
|
class DefaultConfig(BaseModel):
|
|
271
241
|
"""
|
|
272
242
|
Configuration of the schemas, notebook storage locations, checkpoint
|
|
@@ -592,10 +562,6 @@ class WorkspaceConfig(BaseModel):
|
|
|
592
562
|
to the export of operational alerts to various destinations.
|
|
593
563
|
observables (Optional[WorkspaceConfigObservables]): Declaration of
|
|
594
564
|
the types of observables generated by the system.
|
|
595
|
-
compute_group_limits (Optional[List[ComputeGroupLimits]]): Limits
|
|
596
|
-
on the number of resources placed in a manually specified
|
|
597
|
-
compute group - corresponds to the number of resources that
|
|
598
|
-
are grouped into a single Job.
|
|
599
565
|
dasl_storage_path (Optional[str]): The path to a directory where
|
|
600
566
|
DASL can store internal files and state.
|
|
601
567
|
default_config (Optional[DefaultConfig]): Configuration settings
|
|
@@ -615,7 +581,6 @@ class WorkspaceConfig(BaseModel):
|
|
|
615
581
|
notable_export: Optional[ExportConfig] = None
|
|
616
582
|
operational_alert_export: Optional[ExportConfig] = None
|
|
617
583
|
observables: Optional[WorkspaceConfigObservables] = None
|
|
618
|
-
compute_group_limits: Optional[List[ComputeGroupLimits]] = None
|
|
619
584
|
dasl_storage_path: Optional[str] = None
|
|
620
585
|
default_config: Optional[DefaultConfig] = None
|
|
621
586
|
managed_retention: Optional[List[ManagedRetention]] = None
|
|
@@ -625,13 +590,6 @@ class WorkspaceConfig(BaseModel):
|
|
|
625
590
|
def from_api_obj(obj: WorkspaceV1WorkspaceConfig) -> "WorkspaceConfig":
|
|
626
591
|
spec = obj.spec
|
|
627
592
|
|
|
628
|
-
compute_group_limits = None
|
|
629
|
-
if spec.compute_group_limits is not None:
|
|
630
|
-
compute_group_limits = [
|
|
631
|
-
ComputeGroupLimits.from_api_obj(item)
|
|
632
|
-
for item in spec.compute_group_limits
|
|
633
|
-
]
|
|
634
|
-
|
|
635
593
|
managed_retention = None
|
|
636
594
|
if spec.managed_retention is not None:
|
|
637
595
|
managed_retention = [
|
|
@@ -652,7 +610,6 @@ class WorkspaceConfig(BaseModel):
|
|
|
652
610
|
spec.operational_alert_export
|
|
653
611
|
),
|
|
654
612
|
observables=WorkspaceConfigObservables.from_api_obj(spec.observables),
|
|
655
|
-
compute_group_limits=compute_group_limits,
|
|
656
613
|
dasl_storage_path=spec.dasl_storage_path,
|
|
657
614
|
default_config=DefaultConfig.from_api_obj(spec.default_config),
|
|
658
615
|
managed_retention=managed_retention,
|
|
@@ -660,11 +617,6 @@ class WorkspaceConfig(BaseModel):
|
|
|
660
617
|
)
|
|
661
618
|
|
|
662
619
|
def to_api_obj(self) -> WorkspaceV1WorkspaceConfig:
|
|
663
|
-
compute_group_limits = None
|
|
664
|
-
if self.compute_group_limits is not None:
|
|
665
|
-
compute_group_limits = [
|
|
666
|
-
item.to_api_obj() for item in self.compute_group_limits
|
|
667
|
-
]
|
|
668
620
|
|
|
669
621
|
managed_retention = None
|
|
670
622
|
if self.managed_retention is not None:
|
|
@@ -687,7 +639,6 @@ class WorkspaceConfig(BaseModel):
|
|
|
687
639
|
to_api_obj, self.operational_alert_export
|
|
688
640
|
),
|
|
689
641
|
observables=Helpers.maybe(to_api_obj, self.observables),
|
|
690
|
-
compute_group_limits=compute_group_limits,
|
|
691
642
|
dasl_storage_path=self.dasl_storage_path,
|
|
692
643
|
default_config=Helpers.maybe(to_api_obj, self.default_config),
|
|
693
644
|
managed_retention=managed_retention,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: dasl_client
|
|
3
|
-
Version: 1.0.
|
|
3
|
+
Version: 1.0.7
|
|
4
4
|
Summary: The DASL client library used for interacting with the DASL workspace
|
|
5
5
|
Home-page: https://github.com/antimatter/asl
|
|
6
6
|
Author: Antimatter Team
|
|
@@ -8,7 +8,7 @@ Author-email: Antimatter Team <support@antimatter.io>
|
|
|
8
8
|
Requires-Python: >=3.8
|
|
9
9
|
Description-Content-Type: text/markdown
|
|
10
10
|
License-File: LICENSE
|
|
11
|
-
Requires-Dist: dasl_api==0.1.
|
|
11
|
+
Requires-Dist: dasl_api==0.1.12
|
|
12
12
|
Requires-Dist: databricks-sdk>=0.41.0
|
|
13
13
|
Requires-Dist: pydantic>=2
|
|
14
14
|
|
|
@@ -13,8 +13,8 @@ dasl_client.egg-info/top_level.txt
|
|
|
13
13
|
dasl_client/auth/__init__.py
|
|
14
14
|
dasl_client/auth/auth.py
|
|
15
15
|
dasl_client/conn/__init__.py
|
|
16
|
+
dasl_client/conn/client_identifier.py
|
|
16
17
|
dasl_client/conn/conn.py
|
|
17
|
-
dasl_client/conn/user_agent.py
|
|
18
18
|
dasl_client/errors/__init__.py
|
|
19
19
|
dasl_client/errors/errors.py
|
|
20
20
|
dasl_client/types/__init__.py
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "dasl_client"
|
|
7
|
-
version = "1.0.
|
|
7
|
+
version = "1.0.7"
|
|
8
8
|
description = "The DASL client library used for interacting with the DASL workspace"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
authors = [
|
|
@@ -13,7 +13,7 @@ authors = [
|
|
|
13
13
|
requires-python = ">=3.8"
|
|
14
14
|
|
|
15
15
|
dependencies = [
|
|
16
|
-
"dasl_api==0.1.
|
|
16
|
+
"dasl_api==0.1.12",
|
|
17
17
|
"databricks-sdk>=0.41.0",
|
|
18
18
|
"pydantic>=2"
|
|
19
19
|
]
|
|
@@ -62,6 +62,7 @@ def test_workspace_config(api_client):
|
|
|
62
62
|
metadata=Metadata(
|
|
63
63
|
name="config",
|
|
64
64
|
workspace=workspace,
|
|
65
|
+
client_of_origin=get_client_identifier(),
|
|
65
66
|
),
|
|
66
67
|
dasl_storage_path="/Volumes/automated_test_cases/default/test",
|
|
67
68
|
system_tables_config=SystemTablesConfig(
|
|
@@ -22,6 +22,7 @@ def test_workspace_config_marshal_unmarshal():
|
|
|
22
22
|
deleted=False,
|
|
23
23
|
resource_status="none",
|
|
24
24
|
ui_status="ok",
|
|
25
|
+
client_of_origin=get_client_identifier(),
|
|
25
26
|
),
|
|
26
27
|
system_tables_config=SystemTablesConfig(
|
|
27
28
|
catalog_name="catalog_random", var_schema="schema_random"
|
|
@@ -73,10 +74,6 @@ def test_workspace_config_marshal_unmarshal():
|
|
|
73
74
|
],
|
|
74
75
|
relationships=["rel1", "rel2"],
|
|
75
76
|
),
|
|
76
|
-
compute_group_limits=[
|
|
77
|
-
ComputeGroupLimits(group_name="group1", limit=1),
|
|
78
|
-
ComputeGroupLimits(group_name="group2", limit=2),
|
|
79
|
-
],
|
|
80
77
|
dasl_storage_path="/random/storage/path",
|
|
81
78
|
default_config=DefaultConfig(
|
|
82
79
|
datasources=DefaultConfig.Config(
|
|
@@ -221,6 +218,7 @@ def test_data_source_marshal_unmarshal():
|
|
|
221
218
|
deleted=False,
|
|
222
219
|
resource_status="deletionPending",
|
|
223
220
|
ui_status="ok",
|
|
221
|
+
client_of_origin=get_client_identifier(),
|
|
224
222
|
),
|
|
225
223
|
source="s3://data-bucket/source",
|
|
226
224
|
source_type="custom",
|
|
@@ -315,28 +313,6 @@ def test_data_source_marshal_unmarshal():
|
|
|
315
313
|
),
|
|
316
314
|
),
|
|
317
315
|
],
|
|
318
|
-
utils=FieldUtils(
|
|
319
|
-
unreferenced_columns=FieldUtils.UnreferencedColumns(
|
|
320
|
-
preserve=True,
|
|
321
|
-
embed_column="embed_col1",
|
|
322
|
-
omit_columns=["omit1", "omit2"],
|
|
323
|
-
duplicate_prefix="dup_",
|
|
324
|
-
),
|
|
325
|
-
json_extract=[
|
|
326
|
-
FieldUtils.JsonExtract(
|
|
327
|
-
source="json_source1",
|
|
328
|
-
omit_fields=["json_omit1", "json_omit2"],
|
|
329
|
-
duplicate_prefix="json_dup_",
|
|
330
|
-
embed_column="json_embed1",
|
|
331
|
-
),
|
|
332
|
-
FieldUtils.JsonExtract(
|
|
333
|
-
source="json_source2",
|
|
334
|
-
omit_fields=["json_omit3", "json_omit4"],
|
|
335
|
-
duplicate_prefix="json_dup2_",
|
|
336
|
-
embed_column="json_embed2",
|
|
337
|
-
),
|
|
338
|
-
],
|
|
339
|
-
),
|
|
340
316
|
),
|
|
341
317
|
transform=SilverSpec.Transform(
|
|
342
318
|
skip_silver_transform=False,
|
|
@@ -494,22 +470,6 @@ def test_data_source_marshal_unmarshal():
|
|
|
494
470
|
],
|
|
495
471
|
filter="gold_filter_condition",
|
|
496
472
|
post_filter="gold_post_filter_condition",
|
|
497
|
-
utils=FieldUtils(
|
|
498
|
-
unreferenced_columns=FieldUtils.UnreferencedColumns(
|
|
499
|
-
preserve=False,
|
|
500
|
-
embed_column="gold_embed",
|
|
501
|
-
omit_columns=["gold_omit_col1", "gold_omit_col2"],
|
|
502
|
-
duplicate_prefix="gold_dup_",
|
|
503
|
-
),
|
|
504
|
-
json_extract=[
|
|
505
|
-
FieldUtils.JsonExtract(
|
|
506
|
-
source="gold_json_source",
|
|
507
|
-
omit_fields=["gold_json_omit1", "gold_json_omit2"],
|
|
508
|
-
duplicate_prefix="gold_json_dup_",
|
|
509
|
-
embed_column="gold_json_embed",
|
|
510
|
-
)
|
|
511
|
-
],
|
|
512
|
-
),
|
|
513
473
|
)
|
|
514
474
|
],
|
|
515
475
|
add_tables=[
|
|
@@ -522,7 +482,6 @@ def test_data_source_marshal_unmarshal():
|
|
|
522
482
|
),
|
|
523
483
|
filter="gold_add_filter_condition",
|
|
524
484
|
post_filter="gold_add_post_filter_condition",
|
|
525
|
-
override_liquid_columns=["gold_liquid1", "gold_liquid2"],
|
|
526
485
|
fields=[
|
|
527
486
|
FieldSpec(
|
|
528
487
|
name="gold_add_field1",
|
|
@@ -547,25 +506,6 @@ def test_data_source_marshal_unmarshal():
|
|
|
547
506
|
),
|
|
548
507
|
)
|
|
549
508
|
],
|
|
550
|
-
utils=FieldUtils(
|
|
551
|
-
unreferenced_columns=FieldUtils.UnreferencedColumns(
|
|
552
|
-
preserve=True,
|
|
553
|
-
embed_column="gold_add_embed",
|
|
554
|
-
omit_columns=["gold_add_omit1", "gold_add_omit2"],
|
|
555
|
-
duplicate_prefix="gold_add_dup_",
|
|
556
|
-
),
|
|
557
|
-
json_extract=[
|
|
558
|
-
FieldUtils.JsonExtract(
|
|
559
|
-
source="gold_add_json_source",
|
|
560
|
-
omit_fields=[
|
|
561
|
-
"gold_add_json_omit1",
|
|
562
|
-
"gold_add_json_omit2",
|
|
563
|
-
],
|
|
564
|
-
duplicate_prefix="gold_add_json_dup_",
|
|
565
|
-
embed_column="gold_add_json_embed",
|
|
566
|
-
)
|
|
567
|
-
],
|
|
568
|
-
),
|
|
569
509
|
),
|
|
570
510
|
],
|
|
571
511
|
),
|
|
@@ -610,6 +550,7 @@ def test_rule_marshal_unmarshal():
|
|
|
610
550
|
deleted=False,
|
|
611
551
|
resource_status="none",
|
|
612
552
|
ui_status="ok",
|
|
553
|
+
client_of_origin=get_client_identifier(),
|
|
613
554
|
),
|
|
614
555
|
rule_metadata=Rule.RuleMetadata(
|
|
615
556
|
version=1.0,
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
from importlib.metadata import version
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
def get_user_agent() -> str:
|
|
5
|
-
"""
|
|
6
|
-
A helper function defining the user agent for requests originating from
|
|
7
|
-
the ASL python conn library. We include the version of the API that the
|
|
8
|
-
connection was built off.
|
|
9
|
-
:return: A user-agent string.
|
|
10
|
-
"""
|
|
11
|
-
return f"asl-python-conn/{version('dasl_api')}"
|
|
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
|