You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Jun 28, 2022. It is now read-only.
Copy file name to clipboardExpand all lines: crma_api_client/resources/dataset.py
+134-8Lines changed: 134 additions & 8 deletions
Original file line number
Diff line number
Diff line change
@@ -1,22 +1,144 @@
1
1
"""Contains definitions for the dataset resource"""
2
2
3
3
fromdatetimeimportdatetime
4
-
fromtypingimportList
4
+
fromenumimportEnum
5
+
fromtypingimportList, Optional, TypeVar
5
6
6
-
frompydanticimportBaseModel
7
+
frompydanticimportBaseModel, validator
7
8
8
9
from .userimportUser
9
10
from .utilimportto_camel
10
11
12
+
T=TypeVar("T")
11
13
12
-
classDataset(BaseModel):
14
+
15
+
classCRMAModel(BaseModel):
16
+
"""Base class for all models from the CRMA API
17
+
18
+
Has logic for converting camel case to snake case
19
+
"""
20
+
21
+
classConfig:
22
+
"""Model configuration"""
23
+
24
+
alias_generator=to_camel
25
+
26
+
27
+
classDataset(CRMAModel):
13
28
"""Dataset model"""
14
29
15
30
id: str
16
31
url: str
17
32
18
33
19
-
classDatasetVersion(BaseModel):
34
+
classDateType(Enum):
35
+
"""The type of date field"""
36
+
37
+
date="Date"
38
+
date_only="DateOnly"
39
+
date_time="DateTime"
40
+
41
+
42
+
classXmdDateFields(CRMAModel):
43
+
"""Date fields in the extended metadata format
44
+
45
+
See https://developer.salesforce.com/docs/atlas.en-us.230.0.bi_dev_guide_rest.meta/bi_dev_guide_rest/bi_resources_xmd_main.htm#XmdDateFieldRepresentation
This is needed since the Optional type doesn't distinguish between a field
69
+
being None and being missing.
70
+
71
+
Args:
72
+
v: the value to check
73
+
74
+
Raises:
75
+
ValueError: if the value is None
76
+
77
+
Returns:
78
+
the value if it's not None
79
+
80
+
"""
81
+
ifvisNone:
82
+
raiseValueError("Fiscal fields may not be None")
83
+
returnv
84
+
85
+
86
+
classXmdDate(CRMAModel):
87
+
"""Date in the extended metadata format
88
+
89
+
See https://developer.salesforce.com/docs/atlas.en-us.230.0.bi_dev_guide_rest.meta/bi_dev_guide_rest/bi_resources_xmd_main.htm#XmdDateRepresentation
90
+
"""
91
+
92
+
alias: str
93
+
fields: XmdDateFields
94
+
first_day_of_week: int
95
+
fiscal_month_offset: int
96
+
fully_qualified_name: str
97
+
is_year_end_fiscal_year: bool
98
+
label: str
99
+
type: DateType
100
+
101
+
102
+
classXmdDimension(CRMAModel):
103
+
"""Dimension in the Xmd format
104
+
105
+
See https://developer.salesforce.com/docs/atlas.en-us.230.0.bi_dev_guide_rest.meta/bi_dev_guide_rest/bi_resources_xmd_main.htm#XmdDimensionRepresentation
106
+
"""
107
+
108
+
field: str
109
+
label: str
110
+
111
+
112
+
classXmdMeasure(CRMAModel):
113
+
"""Measure in the Xmd format
114
+
115
+
See https://developer.salesforce.com/docs/atlas.en-us.230.0.bi_dev_guide_rest.meta/bi_dev_guide_rest/bi_resources_xmd_main.htm#XmdMeasureRepresentation
116
+
"""
117
+
118
+
field: str
119
+
label: str
120
+
121
+
122
+
classDatasetXmd(CRMAModel):
123
+
"""Extended metadata for a dataset
124
+
125
+
See https://developer.salesforce.com/docs/atlas.en-us.230.0.bi_dev_guide_rest.meta/bi_dev_guide_rest/bi_resources_xmd_main.htm
126
+
"""
127
+
128
+
created_by: User
129
+
created_date: datetime
130
+
dates: List[XmdDate]
131
+
derived_dimensions: List[XmdDimension]
132
+
derived_measures: List[XmdMeasure]
133
+
dimensions: List[XmdDimension]
134
+
last_modified_by: User
135
+
last_modified_date: datetime
136
+
measures: List[XmdMeasure]
137
+
type: str
138
+
url: str
139
+
140
+
141
+
classDatasetVersion(CRMAModel):
20
142
"""Dataset version model
21
143
22
144
See https://developer.salesforce.com/docs/atlas.en-us.bi_dev_guide_rest.meta/bi_dev_guide_rest/bi_responses_dataset_version.htm
@@ -32,13 +154,17 @@ class DatasetVersion(BaseModel):
32
154
type: str
33
155
url: str
34
156
35
-
classConfig:
36
-
"""Model configuration"""
37
157
38
-
alias_generator=to_camel
158
+
classDatasetVersionResponse(DatasetVersion):
159
+
"""Dataset version model
160
+
161
+
See https://developer.salesforce.com/docs/atlas.en-us.bi_dev_guide_rest.meta/bi_dev_guide_rest/bi_responses_dataset_version.htm
162
+
"""
163
+
164
+
xmd_main: DatasetXmd
39
165
40
166
41
-
classDatasetVersionsResponse(BaseModel):
167
+
classDatasetVersionsResponse(CRMAModel):
42
168
"""Response model for a list of dataset versions
43
169
44
170
See https://developer.salesforce.com/docs/atlas.en-us.bi_dev_guide_rest.meta/bi_dev_guide_rest/bi_responses_dataset_version_collection.htm
0 commit comments