scope-client 1.4.915__py3-none-any.whl → 1.4.917__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.
@@ -220,6 +220,8 @@ from scope_client.api_bindings.models.post_group import PostGroup
220
220
  from scope_client.api_bindings.models.post_group_membership import PostGroupMembership
221
221
  from scope_client.api_bindings.models.post_job import PostJob
222
222
  from scope_client.api_bindings.models.post_job_batch import PostJobBatch
223
+ from scope_client.api_bindings.models.post_job_kind import PostJobKind
224
+ from scope_client.api_bindings.models.post_job_spec import PostJobSpec
223
225
  from scope_client.api_bindings.models.post_metrics_query import PostMetricsQuery
224
226
  from scope_client.api_bindings.models.post_metrics_query_result_filter import PostMetricsQueryResultFilter
225
227
  from scope_client.api_bindings.models.post_metrics_query_result_filter_and_group import PostMetricsQueryResultFilterAndGroup
@@ -179,6 +179,8 @@ from scope_client.api_bindings.models.post_group import PostGroup
179
179
  from scope_client.api_bindings.models.post_group_membership import PostGroupMembership
180
180
  from scope_client.api_bindings.models.post_job import PostJob
181
181
  from scope_client.api_bindings.models.post_job_batch import PostJobBatch
182
+ from scope_client.api_bindings.models.post_job_kind import PostJobKind
183
+ from scope_client.api_bindings.models.post_job_spec import PostJobSpec
182
184
  from scope_client.api_bindings.models.post_metrics_query import PostMetricsQuery
183
185
  from scope_client.api_bindings.models.post_metrics_query_result_filter import PostMetricsQueryResultFilter
184
186
  from scope_client.api_bindings.models.post_metrics_query_result_filter_and_group import PostMetricsQueryResultFilterAndGroup
@@ -20,9 +20,9 @@ import json
20
20
  from datetime import datetime
21
21
  from pydantic import BaseModel, ConfigDict, Field, StrictStr
22
22
  from typing import Any, ClassVar, Dict, List, Optional
23
- from scope_client.api_bindings.models.job_kind import JobKind
24
23
  from scope_client.api_bindings.models.job_priority import JobPriority
25
- from scope_client.api_bindings.models.job_spec import JobSpec
24
+ from scope_client.api_bindings.models.post_job_kind import PostJobKind
25
+ from scope_client.api_bindings.models.post_job_spec import PostJobSpec
26
26
  from typing import Optional, Set
27
27
  from typing_extensions import Self
28
28
 
@@ -30,8 +30,8 @@ class PostJob(BaseModel):
30
30
  """
31
31
  PostJob
32
32
  """ # noqa: E501
33
- kind: JobKind = Field(description="Type of job.")
34
- job_spec: JobSpec
33
+ kind: PostJobKind = Field(description="Type of job.")
34
+ job_spec: PostJobSpec
35
35
  schedule_id: Optional[StrictStr] = None
36
36
  ready_at: Optional[datetime] = None
37
37
  nonce: Optional[StrictStr] = None
@@ -113,7 +113,7 @@ class PostJob(BaseModel):
113
113
 
114
114
  _obj = cls.model_validate({
115
115
  "kind": obj.get("kind"),
116
- "job_spec": JobSpec.from_dict(obj["job_spec"]) if obj.get("job_spec") is not None else None,
116
+ "job_spec": PostJobSpec.from_dict(obj["job_spec"]) if obj.get("job_spec") is not None else None,
117
117
  "schedule_id": obj.get("schedule_id"),
118
118
  "ready_at": obj.get("ready_at"),
119
119
  "nonce": obj.get("nonce"),
@@ -0,0 +1,41 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ Arthur Scope
5
+
6
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
7
+
8
+ The version of the OpenAPI document: 0.1.0
9
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
10
+
11
+ Do not edit the class manually.
12
+ """ # noqa: E501
13
+
14
+
15
+ from __future__ import annotations
16
+ import json
17
+ from enum import Enum
18
+ from typing_extensions import Self
19
+
20
+
21
+ class PostJobKind(str, Enum):
22
+ """
23
+ The set of jobs that are available to submit via the PostJobs API Notably, this does not include the fetch_data job, as there are dedicated endpoints for that
24
+ """
25
+
26
+ """
27
+ allowed enum values
28
+ """
29
+ METRICS_CALCULATION = 'metrics_calculation'
30
+ CONNECTOR_CHECK = 'connector_check'
31
+ LIST_DATASETS = 'list_datasets'
32
+ SCHEMA_INSPECTION = 'schema_inspection'
33
+ ALERT_CHECK = 'alert_check'
34
+ SCHEDULE_JOBS = 'schedule_jobs'
35
+
36
+ @classmethod
37
+ def from_json(cls, json_str: str) -> Self:
38
+ """Create an instance of PostJobKind from a JSON string"""
39
+ return cls(json.loads(json_str))
40
+
41
+
@@ -0,0 +1,194 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ Arthur Scope
5
+
6
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
7
+
8
+ The version of the OpenAPI document: 0.1.0
9
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
10
+
11
+ Do not edit the class manually.
12
+ """ # noqa: E501
13
+
14
+
15
+ from __future__ import annotations
16
+ from inspect import getfullargspec
17
+ import json
18
+ import pprint
19
+ import re # noqa: F401
20
+ from pydantic import BaseModel, ConfigDict, Field, StrictStr, ValidationError, field_validator
21
+ from typing import Optional
22
+ from scope_client.api_bindings.models.alert_check_job_spec import AlertCheckJobSpec
23
+ from scope_client.api_bindings.models.connector_check_job_spec import ConnectorCheckJobSpec
24
+ from scope_client.api_bindings.models.list_datasets_job_spec import ListDatasetsJobSpec
25
+ from scope_client.api_bindings.models.metrics_calculation_job_spec import MetricsCalculationJobSpec
26
+ from scope_client.api_bindings.models.schedule_jobs_job_spec import ScheduleJobsJobSpec
27
+ from scope_client.api_bindings.models.schema_inspection_job_spec import SchemaInspectionJobSpec
28
+ from typing import Union, Any, List, Set, TYPE_CHECKING, Optional, Dict
29
+ from typing_extensions import Literal, Self
30
+ from pydantic import Field
31
+
32
+ POSTJOBSPEC_ANY_OF_SCHEMAS = ["AlertCheckJobSpec", "ConnectorCheckJobSpec", "ListDatasetsJobSpec", "MetricsCalculationJobSpec", "ScheduleJobsJobSpec", "SchemaInspectionJobSpec"]
33
+
34
+ class PostJobSpec(BaseModel):
35
+ """
36
+ Job specification for the job kind.
37
+ """
38
+
39
+ # data type: MetricsCalculationJobSpec
40
+ anyof_schema_1_validator: Optional[MetricsCalculationJobSpec] = None
41
+ # data type: SchemaInspectionJobSpec
42
+ anyof_schema_2_validator: Optional[SchemaInspectionJobSpec] = None
43
+ # data type: ConnectorCheckJobSpec
44
+ anyof_schema_3_validator: Optional[ConnectorCheckJobSpec] = None
45
+ # data type: ListDatasetsJobSpec
46
+ anyof_schema_4_validator: Optional[ListDatasetsJobSpec] = None
47
+ # data type: ScheduleJobsJobSpec
48
+ anyof_schema_5_validator: Optional[ScheduleJobsJobSpec] = None
49
+ # data type: AlertCheckJobSpec
50
+ anyof_schema_6_validator: Optional[AlertCheckJobSpec] = None
51
+ if TYPE_CHECKING:
52
+ actual_instance: Optional[Union[AlertCheckJobSpec, ConnectorCheckJobSpec, ListDatasetsJobSpec, MetricsCalculationJobSpec, ScheduleJobsJobSpec, SchemaInspectionJobSpec]] = None
53
+ else:
54
+ actual_instance: Any = None
55
+ any_of_schemas: Set[str] = { "AlertCheckJobSpec", "ConnectorCheckJobSpec", "ListDatasetsJobSpec", "MetricsCalculationJobSpec", "ScheduleJobsJobSpec", "SchemaInspectionJobSpec" }
56
+
57
+ model_config = {
58
+ "validate_assignment": True,
59
+ "protected_namespaces": (),
60
+ }
61
+
62
+ def __init__(self, *args, **kwargs) -> None:
63
+ if args:
64
+ if len(args) > 1:
65
+ raise ValueError("If a position argument is used, only 1 is allowed to set `actual_instance`")
66
+ if kwargs:
67
+ raise ValueError("If a position argument is used, keyword arguments cannot be used.")
68
+ super().__init__(actual_instance=args[0])
69
+ else:
70
+ super().__init__(**kwargs)
71
+
72
+ @field_validator('actual_instance')
73
+ def actual_instance_must_validate_anyof(cls, v):
74
+ instance = PostJobSpec.model_construct()
75
+ error_messages = []
76
+ # validate data type: MetricsCalculationJobSpec
77
+ if not isinstance(v, MetricsCalculationJobSpec):
78
+ error_messages.append(f"Error! Input type `{type(v)}` is not `MetricsCalculationJobSpec`")
79
+ else:
80
+ return v
81
+
82
+ # validate data type: SchemaInspectionJobSpec
83
+ if not isinstance(v, SchemaInspectionJobSpec):
84
+ error_messages.append(f"Error! Input type `{type(v)}` is not `SchemaInspectionJobSpec`")
85
+ else:
86
+ return v
87
+
88
+ # validate data type: ConnectorCheckJobSpec
89
+ if not isinstance(v, ConnectorCheckJobSpec):
90
+ error_messages.append(f"Error! Input type `{type(v)}` is not `ConnectorCheckJobSpec`")
91
+ else:
92
+ return v
93
+
94
+ # validate data type: ListDatasetsJobSpec
95
+ if not isinstance(v, ListDatasetsJobSpec):
96
+ error_messages.append(f"Error! Input type `{type(v)}` is not `ListDatasetsJobSpec`")
97
+ else:
98
+ return v
99
+
100
+ # validate data type: ScheduleJobsJobSpec
101
+ if not isinstance(v, ScheduleJobsJobSpec):
102
+ error_messages.append(f"Error! Input type `{type(v)}` is not `ScheduleJobsJobSpec`")
103
+ else:
104
+ return v
105
+
106
+ # validate data type: AlertCheckJobSpec
107
+ if not isinstance(v, AlertCheckJobSpec):
108
+ error_messages.append(f"Error! Input type `{type(v)}` is not `AlertCheckJobSpec`")
109
+ else:
110
+ return v
111
+
112
+ if error_messages:
113
+ # no match
114
+ raise ValueError("No match found when setting the actual_instance in PostJobSpec with anyOf schemas: AlertCheckJobSpec, ConnectorCheckJobSpec, ListDatasetsJobSpec, MetricsCalculationJobSpec, ScheduleJobsJobSpec, SchemaInspectionJobSpec. Details: " + ", ".join(error_messages))
115
+ else:
116
+ return v
117
+
118
+ @classmethod
119
+ def from_dict(cls, obj: Dict[str, Any]) -> Self:
120
+ return cls.from_json(json.dumps(obj))
121
+
122
+ @classmethod
123
+ def from_json(cls, json_str: str) -> Self:
124
+ """Returns the object represented by the json string"""
125
+ instance = cls.model_construct()
126
+ error_messages = []
127
+ # anyof_schema_1_validator: Optional[MetricsCalculationJobSpec] = None
128
+ try:
129
+ instance.actual_instance = MetricsCalculationJobSpec.from_json(json_str)
130
+ return instance
131
+ except (ValidationError, ValueError) as e:
132
+ error_messages.append(str(e))
133
+ # anyof_schema_2_validator: Optional[SchemaInspectionJobSpec] = None
134
+ try:
135
+ instance.actual_instance = SchemaInspectionJobSpec.from_json(json_str)
136
+ return instance
137
+ except (ValidationError, ValueError) as e:
138
+ error_messages.append(str(e))
139
+ # anyof_schema_3_validator: Optional[ConnectorCheckJobSpec] = None
140
+ try:
141
+ instance.actual_instance = ConnectorCheckJobSpec.from_json(json_str)
142
+ return instance
143
+ except (ValidationError, ValueError) as e:
144
+ error_messages.append(str(e))
145
+ # anyof_schema_4_validator: Optional[ListDatasetsJobSpec] = None
146
+ try:
147
+ instance.actual_instance = ListDatasetsJobSpec.from_json(json_str)
148
+ return instance
149
+ except (ValidationError, ValueError) as e:
150
+ error_messages.append(str(e))
151
+ # anyof_schema_5_validator: Optional[ScheduleJobsJobSpec] = None
152
+ try:
153
+ instance.actual_instance = ScheduleJobsJobSpec.from_json(json_str)
154
+ return instance
155
+ except (ValidationError, ValueError) as e:
156
+ error_messages.append(str(e))
157
+ # anyof_schema_6_validator: Optional[AlertCheckJobSpec] = None
158
+ try:
159
+ instance.actual_instance = AlertCheckJobSpec.from_json(json_str)
160
+ return instance
161
+ except (ValidationError, ValueError) as e:
162
+ error_messages.append(str(e))
163
+
164
+ if error_messages:
165
+ # no match
166
+ raise ValueError("No match found when deserializing the JSON string into PostJobSpec with anyOf schemas: AlertCheckJobSpec, ConnectorCheckJobSpec, ListDatasetsJobSpec, MetricsCalculationJobSpec, ScheduleJobsJobSpec, SchemaInspectionJobSpec. Details: " + ", ".join(error_messages))
167
+ else:
168
+ return instance
169
+
170
+ def to_json(self) -> str:
171
+ """Returns the JSON representation of the actual instance"""
172
+ if self.actual_instance is None:
173
+ return "null"
174
+
175
+ if hasattr(self.actual_instance, "to_json") and callable(self.actual_instance.to_json):
176
+ return self.actual_instance.to_json()
177
+ else:
178
+ return json.dumps(self.actual_instance)
179
+
180
+ def to_dict(self) -> Optional[Union[Dict[str, Any], AlertCheckJobSpec, ConnectorCheckJobSpec, ListDatasetsJobSpec, MetricsCalculationJobSpec, ScheduleJobsJobSpec, SchemaInspectionJobSpec]]:
181
+ """Returns the dict representation of the actual instance"""
182
+ if self.actual_instance is None:
183
+ return None
184
+
185
+ if hasattr(self.actual_instance, "to_dict") and callable(self.actual_instance.to_dict):
186
+ return self.actual_instance.to_dict()
187
+ else:
188
+ return self.actual_instance
189
+
190
+ def to_str(self) -> str:
191
+ """Returns the string representation of the actual instance"""
192
+ return pprint.pformat(self.model_dump())
193
+
194
+
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: scope_client
3
- Version: 1.4.915
3
+ Version: 1.4.917
4
4
  Summary: Arthur Python API Client Library
5
5
  Author-email: Arthur <info@arthur.ai>
6
6
  License: MIT
@@ -1,5 +1,5 @@
1
1
  scope_client/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
- scope_client/api_bindings/__init__.py,sha256=UTgiQf5bffoF4Mbz6pSJjthad2qj_-ZEvgKYOPHfL2U,23349
2
+ scope_client/api_bindings/__init__.py,sha256=ALawafy9ZNhjSQFmdrwOK3M7_X_SofoKEzjSQKV-g-8,23491
3
3
  scope_client/api_bindings/api_client.py,sha256=nkt88XDyPiuURu94lnI4MtOfMeYXd_jazGUde0T4xVU,27538
4
4
  scope_client/api_bindings/api_response.py,sha256=eMxw1mpmJcoGZ3gs9z6jM4oYoZ10Gjk333s9sKxGv7s,652
5
5
  scope_client/api_bindings/configuration.py,sha256=a0o2OhNYo7GdZscfNtFKW2kfgoln1mcWE-8E_UeiWv8,15338
@@ -31,7 +31,7 @@ scope_client/api_bindings/api/upsolve_v1_api.py,sha256=Vdep9x-_lIJq_kOwtsGqYqkss
31
31
  scope_client/api_bindings/api/users_v1_api.py,sha256=F1n0VJy3IWrxRIddhdFTM2NgW5qnNF8s40UZrZUd9k4,92844
32
32
  scope_client/api_bindings/api/webhooks_v1_api.py,sha256=86tRi7pgwICshf8WVyYA1WrJggThpnsTaON9Mx8R-0M,71286
33
33
  scope_client/api_bindings/api/workspaces_v1_api.py,sha256=OjMc-pJe2JAGgv5ZGTD8_TkQxw82vz2e381-5m37vJ4,58653
34
- scope_client/api_bindings/models/__init__.py,sha256=0gX_KKuAznbr37aBzsQq_o_LuHOQlla3ExXsnYjOlSQ,20843
34
+ scope_client/api_bindings/models/__init__.py,sha256=uhlzgMNblTCPeEVAaLyl2lF6XNvWHVywIQTFP1gAq3k,20985
35
35
  scope_client/api_bindings/models/aggregation_metric_type.py,sha256=USKpDqhX4TQ4lqIoHOp3q70mydsf1u_zc1EKus9QhYo,783
36
36
  scope_client/api_bindings/models/aggregation_spec.py,sha256=gWFTgLqxNdiIw4iXwbNqKAnAwDpbcgeoFfQ_7VxtKOQ,4109
37
37
  scope_client/api_bindings/models/aggregation_spec_schema.py,sha256=MHGlB9eF8NfOasOHiqj1ZzYiBaIl8y8J2SmQysoSWVU,4624
@@ -195,8 +195,10 @@ scope_client/api_bindings/models/post_dataset_join_spec.py,sha256=DsZo-dgW28Iumi
195
195
  scope_client/api_bindings/models/post_end_user.py,sha256=dyyj7R3ff8CUmQ6dIRMapj7pApc3WVL3H-1LtUpMsGc,3424
196
196
  scope_client/api_bindings/models/post_group.py,sha256=iVXr8DzpOVqjMFTHQ-6GrWjJGVqL7WW2NOCyNhLSLcE,2857
197
197
  scope_client/api_bindings/models/post_group_membership.py,sha256=U2iIN_YwDS1aIpZM_X0wEYb5QEaBC51Del2dr_ROlvk,2589
198
- scope_client/api_bindings/models/post_job.py,sha256=52PDqvnOfmp9MJdg4gGmNNvFJaqYPUk_VY5OyTK8Qc4,4317
198
+ scope_client/api_bindings/models/post_job.py,sha256=Se-f7PDR21gQZqssBhV3h0gVNa90sWkJRJc0KunI53Y,4347
199
199
  scope_client/api_bindings/models/post_job_batch.py,sha256=F-iF4EuSuFENVNnaT42A3VxVllVFW_jFtZzZO6qXGz4,2963
200
+ scope_client/api_bindings/models/post_job_kind.py,sha256=lBG5zzx--Fiwg--cgt923O7r91lK_7dTkYnlOjqmXXY,1090
201
+ scope_client/api_bindings/models/post_job_spec.py,sha256=yEb1gZy8Y1UX7hY__DcsOTRSB2r7HJE1bdnIuIRC_gU,8627
200
202
  scope_client/api_bindings/models/post_metrics_query.py,sha256=LyHkJ3aWw0sE2ra3plSGVwGIIv9tnGmc7ucchE-g_RA,4353
201
203
  scope_client/api_bindings/models/post_metrics_query_result_filter.py,sha256=g1RxGTaBvqiFxRpADR-UZufw-KrZz-7al1PAyZMaJqg,3235
202
204
  scope_client/api_bindings/models/post_metrics_query_result_filter_and_group.py,sha256=g4GDNqfjpNT6J-y9JiATrvfY2fc7G3WXr5A2x5tPm_g,3413
@@ -291,7 +293,7 @@ scope_client/auth/device_authorizer.py,sha256=bJMIZRjkwQwoSWTLEp7OoXM2MytO3ADSD9
291
293
  scope_client/auth/discovery.py,sha256=hR0MglzRWHdwyi72If5hTnjO50fDJhquP_DD7OzjIQQ,1188
292
294
  scope_client/auth/oauth_api_config.py,sha256=wcEslusOFKr0oTzW0Ku2MhM1mvc-nm4BEJU8LHo1uXA,1347
293
295
  scope_client/auth/session.py,sha256=wCriib5ajfm1e1WTL_QXVCJmEOrGwQg_0v91e5qrC6g,2649
294
- scope_client-1.4.915.dist-info/METADATA,sha256=JMwBbH4iBMpJ56RgvdtceySztqsBnZ0H7_37q6emcoY,1776
295
- scope_client-1.4.915.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
296
- scope_client-1.4.915.dist-info/top_level.txt,sha256=x6MngS09hi-TUDoUGb3SLzmnf8_cf8IVAVNPSqtTzAY,13
297
- scope_client-1.4.915.dist-info/RECORD,,
296
+ scope_client-1.4.917.dist-info/METADATA,sha256=26XUdhu48BQsNULWYkVV7hrj_VGt0Pephzp7L0Y7ts0,1776
297
+ scope_client-1.4.917.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
298
+ scope_client-1.4.917.dist-info/top_level.txt,sha256=x6MngS09hi-TUDoUGb3SLzmnf8_cf8IVAVNPSqtTzAY,13
299
+ scope_client-1.4.917.dist-info/RECORD,,