dasl-client 1.0.6__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.

Files changed (33) hide show
  1. {dasl_client-1.0.6 → dasl_client-1.0.7}/PKG-INFO +2 -2
  2. dasl_client-1.0.7/dasl_client/conn/client_identifier.py +23 -0
  3. {dasl_client-1.0.6 → dasl_client-1.0.7}/dasl_client/conn/conn.py +1 -1
  4. {dasl_client-1.0.6 → dasl_client-1.0.7}/dasl_client/types/datasource.py +0 -17
  5. {dasl_client-1.0.6 → dasl_client-1.0.7}/dasl_client/types/types.py +7 -0
  6. {dasl_client-1.0.6 → dasl_client-1.0.7}/dasl_client/types/workspace_config.py +0 -49
  7. {dasl_client-1.0.6 → dasl_client-1.0.7}/dasl_client.egg-info/PKG-INFO +2 -2
  8. {dasl_client-1.0.6 → dasl_client-1.0.7}/dasl_client.egg-info/SOURCES.txt +1 -1
  9. {dasl_client-1.0.6 → dasl_client-1.0.7}/dasl_client.egg-info/requires.txt +1 -1
  10. {dasl_client-1.0.6 → dasl_client-1.0.7}/pyproject.toml +2 -2
  11. {dasl_client-1.0.6 → dasl_client-1.0.7}/test/test_api_changes.py +0 -1
  12. {dasl_client-1.0.6 → dasl_client-1.0.7}/test/test_api_surface.py +1 -0
  13. {dasl_client-1.0.6 → dasl_client-1.0.7}/test/test_marshaling.py +3 -62
  14. dasl_client-1.0.6/dasl_client/conn/user_agent.py +0 -11
  15. {dasl_client-1.0.6 → dasl_client-1.0.7}/LICENSE +0 -0
  16. {dasl_client-1.0.6 → dasl_client-1.0.7}/README.md +0 -0
  17. {dasl_client-1.0.6 → dasl_client-1.0.7}/dasl_client/__init__.py +0 -0
  18. {dasl_client-1.0.6 → dasl_client-1.0.7}/dasl_client/auth/__init__.py +0 -0
  19. {dasl_client-1.0.6 → dasl_client-1.0.7}/dasl_client/auth/auth.py +0 -0
  20. {dasl_client-1.0.6 → dasl_client-1.0.7}/dasl_client/client.py +0 -0
  21. {dasl_client-1.0.6 → dasl_client-1.0.7}/dasl_client/conn/__init__.py +0 -0
  22. {dasl_client-1.0.6 → dasl_client-1.0.7}/dasl_client/errors/__init__.py +0 -0
  23. {dasl_client-1.0.6 → dasl_client-1.0.7}/dasl_client/errors/errors.py +0 -0
  24. {dasl_client-1.0.6 → dasl_client-1.0.7}/dasl_client/helpers.py +0 -0
  25. {dasl_client-1.0.6 → dasl_client-1.0.7}/dasl_client/types/__init__.py +0 -0
  26. {dasl_client-1.0.6 → dasl_client-1.0.7}/dasl_client/types/admin_config.py +0 -0
  27. {dasl_client-1.0.6 → dasl_client-1.0.7}/dasl_client/types/dbui.py +0 -0
  28. {dasl_client-1.0.6 → dasl_client-1.0.7}/dasl_client/types/helpers.py +0 -0
  29. {dasl_client-1.0.6 → dasl_client-1.0.7}/dasl_client/types/rule.py +0 -0
  30. {dasl_client-1.0.6 → dasl_client-1.0.7}/dasl_client.egg-info/dependency_links.txt +0 -0
  31. {dasl_client-1.0.6 → dasl_client-1.0.7}/dasl_client.egg-info/top_level.txt +0 -0
  32. {dasl_client-1.0.6 → dasl_client-1.0.7}/setup.cfg +0 -0
  33. {dasl_client-1.0.6 → 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.6
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
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.user_agent import get_user_agent
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
@@ -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.6
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
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
@@ -1,3 +1,3 @@
1
- dasl_api==0.1.11
1
+ dasl_api==0.1.12
2
2
  databricks-sdk>=0.41.0
3
3
  pydantic>=2
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "dasl_client"
7
- version = "1.0.6"
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.11",
16
+ "dasl_api==0.1.12",
17
17
  "databricks-sdk>=0.41.0",
18
18
  "pydantic>=2"
19
19
  ]
@@ -1,6 +1,5 @@
1
1
  import inspect
2
2
  import json
3
- import os
4
3
 
5
4
  import pytest
6
5
 
@@ -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