dapla-toolbelt-metadata 0.2.1__py3-none-any.whl → 0.9.11__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.
Potentially problematic release.
This version of dapla-toolbelt-metadata might be problematic. Click here for more details.
- dapla_metadata/__init__.py +11 -1
- dapla_metadata/_shared/__init__.py +1 -0
- dapla_metadata/_shared/config.py +109 -0
- dapla_metadata/_shared/enums.py +27 -0
- dapla_metadata/_shared/py.typed +0 -0
- dapla_metadata/dapla/__init__.py +4 -0
- dapla_metadata/dapla/user_info.py +138 -0
- dapla_metadata/datasets/__init__.py +1 -1
- dapla_metadata/datasets/_merge.py +333 -0
- dapla_metadata/datasets/code_list.py +5 -6
- dapla_metadata/datasets/compatibility/__init__.py +10 -0
- dapla_metadata/datasets/compatibility/_handlers.py +363 -0
- dapla_metadata/datasets/compatibility/_utils.py +259 -0
- dapla_metadata/datasets/compatibility/model_backwards_compatibility.py +135 -0
- dapla_metadata/datasets/core.py +136 -182
- dapla_metadata/datasets/dapla_dataset_path_info.py +145 -19
- dapla_metadata/datasets/dataset_parser.py +41 -28
- dapla_metadata/datasets/model_validation.py +29 -20
- dapla_metadata/datasets/statistic_subject_mapping.py +5 -1
- dapla_metadata/datasets/utility/constants.py +22 -15
- dapla_metadata/datasets/utility/enums.py +8 -20
- dapla_metadata/datasets/utility/urn.py +234 -0
- dapla_metadata/datasets/utility/utils.py +183 -111
- dapla_metadata/standards/__init__.py +4 -0
- dapla_metadata/standards/name_validator.py +250 -0
- dapla_metadata/standards/standard_validators.py +98 -0
- dapla_metadata/standards/utils/__init__.py +1 -0
- dapla_metadata/standards/utils/constants.py +49 -0
- dapla_metadata/variable_definitions/__init__.py +11 -0
- dapla_metadata/variable_definitions/_generated/.openapi-generator/FILES +20 -0
- dapla_metadata/variable_definitions/_generated/.openapi-generator/VERSION +1 -0
- dapla_metadata/variable_definitions/_generated/.openapi-generator-ignore +6 -0
- dapla_metadata/variable_definitions/_generated/README.md +148 -0
- dapla_metadata/variable_definitions/_generated/__init__.py +0 -0
- dapla_metadata/variable_definitions/_generated/vardef_client/__init__.py +47 -0
- dapla_metadata/variable_definitions/_generated/vardef_client/api/__init__.py +8 -0
- dapla_metadata/variable_definitions/_generated/vardef_client/api/data_migration_api.py +766 -0
- dapla_metadata/variable_definitions/_generated/vardef_client/api/draft_variable_definitions_api.py +888 -0
- dapla_metadata/variable_definitions/_generated/vardef_client/api/patches_api.py +888 -0
- dapla_metadata/variable_definitions/_generated/vardef_client/api/validity_periods_api.py +583 -0
- dapla_metadata/variable_definitions/_generated/vardef_client/api/variable_definitions_api.py +613 -0
- dapla_metadata/variable_definitions/_generated/vardef_client/api_client.py +779 -0
- dapla_metadata/variable_definitions/_generated/vardef_client/api_response.py +27 -0
- dapla_metadata/variable_definitions/_generated/vardef_client/configuration.py +474 -0
- dapla_metadata/variable_definitions/_generated/vardef_client/docs/CompleteResponse.md +51 -0
- dapla_metadata/variable_definitions/_generated/vardef_client/docs/Contact.md +30 -0
- dapla_metadata/variable_definitions/_generated/vardef_client/docs/DataMigrationApi.md +90 -0
- dapla_metadata/variable_definitions/_generated/vardef_client/docs/Draft.md +42 -0
- dapla_metadata/variable_definitions/_generated/vardef_client/docs/DraftVariableDefinitionsApi.md +259 -0
- dapla_metadata/variable_definitions/_generated/vardef_client/docs/LanguageStringType.md +31 -0
- dapla_metadata/variable_definitions/_generated/vardef_client/docs/Owner.md +31 -0
- dapla_metadata/variable_definitions/_generated/vardef_client/docs/Patch.md +43 -0
- dapla_metadata/variable_definitions/_generated/vardef_client/docs/PatchesApi.md +249 -0
- dapla_metadata/variable_definitions/_generated/vardef_client/docs/PublicApi.md +218 -0
- dapla_metadata/variable_definitions/_generated/vardef_client/docs/SupportedLanguages.md +15 -0
- dapla_metadata/variable_definitions/_generated/vardef_client/docs/UpdateDraft.md +44 -0
- dapla_metadata/variable_definitions/_generated/vardef_client/docs/ValidityPeriod.md +42 -0
- dapla_metadata/variable_definitions/_generated/vardef_client/docs/ValidityPeriodsApi.md +236 -0
- dapla_metadata/variable_definitions/_generated/vardef_client/docs/VariableDefinitionsApi.md +304 -0
- dapla_metadata/variable_definitions/_generated/vardef_client/docs/VariableStatus.md +17 -0
- dapla_metadata/variable_definitions/_generated/vardef_client/exceptions.py +193 -0
- dapla_metadata/variable_definitions/_generated/vardef_client/models/__init__.py +31 -0
- dapla_metadata/variable_definitions/_generated/vardef_client/models/complete_response.py +260 -0
- dapla_metadata/variable_definitions/_generated/vardef_client/models/contact.py +94 -0
- dapla_metadata/variable_definitions/_generated/vardef_client/models/draft.py +228 -0
- dapla_metadata/variable_definitions/_generated/vardef_client/models/get_vardok_vardef_mapping_by_id200_response.py +158 -0
- dapla_metadata/variable_definitions/_generated/vardef_client/models/language_string_type.py +101 -0
- dapla_metadata/variable_definitions/_generated/vardef_client/models/owner.py +87 -0
- dapla_metadata/variable_definitions/_generated/vardef_client/models/patch.py +244 -0
- dapla_metadata/variable_definitions/_generated/vardef_client/models/problem.py +118 -0
- dapla_metadata/variable_definitions/_generated/vardef_client/models/update_draft.py +274 -0
- dapla_metadata/variable_definitions/_generated/vardef_client/models/validity_period.py +225 -0
- dapla_metadata/variable_definitions/_generated/vardef_client/models/vardok_id_response.py +81 -0
- dapla_metadata/variable_definitions/_generated/vardef_client/models/vardok_vardef_id_pair_response.py +84 -0
- dapla_metadata/variable_definitions/_generated/vardef_client/models/variable_status.py +33 -0
- dapla_metadata/variable_definitions/_generated/vardef_client/py.typed +0 -0
- dapla_metadata/variable_definitions/_generated/vardef_client/rest.py +249 -0
- dapla_metadata/variable_definitions/_utils/__init__.py +1 -0
- dapla_metadata/variable_definitions/_utils/_client.py +32 -0
- dapla_metadata/variable_definitions/_utils/config.py +54 -0
- dapla_metadata/variable_definitions/_utils/constants.py +80 -0
- dapla_metadata/variable_definitions/_utils/files.py +309 -0
- dapla_metadata/variable_definitions/_utils/template_files.py +99 -0
- dapla_metadata/variable_definitions/_utils/variable_definition_files.py +143 -0
- dapla_metadata/variable_definitions/exceptions.py +255 -0
- dapla_metadata/variable_definitions/vardef.py +372 -0
- dapla_metadata/variable_definitions/vardok_id.py +48 -0
- dapla_metadata/variable_definitions/vardok_vardef_id_pair.py +47 -0
- dapla_metadata/variable_definitions/variable_definition.py +422 -0
- {dapla_toolbelt_metadata-0.2.1.dist-info → dapla_toolbelt_metadata-0.9.11.dist-info}/METADATA +34 -36
- dapla_toolbelt_metadata-0.9.11.dist-info/RECORD +97 -0
- {dapla_toolbelt_metadata-0.2.1.dist-info → dapla_toolbelt_metadata-0.9.11.dist-info}/WHEEL +1 -1
- dapla_metadata/datasets/config.py +0 -80
- dapla_metadata/datasets/model_backwards_compatibility.py +0 -520
- dapla_metadata/datasets/user_info.py +0 -88
- dapla_toolbelt_metadata-0.2.1.dist-info/RECORD +0 -22
- {dapla_toolbelt_metadata-0.2.1.dist-info → dapla_toolbelt_metadata-0.9.11.dist-info/licenses}/LICENSE +0 -0
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import logging
|
|
2
|
+
from pathlib import Path
|
|
3
|
+
|
|
4
|
+
from pydantic import ConfigDict
|
|
5
|
+
from pydantic import PrivateAttr
|
|
6
|
+
|
|
7
|
+
from dapla_metadata.variable_definitions._generated.vardef_client.models.vardok_vardef_id_pair_response import (
|
|
8
|
+
VardokVardefIdPairResponse,
|
|
9
|
+
)
|
|
10
|
+
from dapla_metadata.variable_definitions._utils.variable_definition_files import (
|
|
11
|
+
_convert_to_yaml_output,
|
|
12
|
+
)
|
|
13
|
+
|
|
14
|
+
logger = logging.getLogger(__name__)
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
class VardokVardefIdPair(VardokVardefIdPairResponse):
|
|
18
|
+
"""A Vardok id.
|
|
19
|
+
|
|
20
|
+
- Provides access to the fields of a Vardok Vardef id pair.
|
|
21
|
+
- Provides methods allowing for nicer output of the Vardok Vardef id pair.
|
|
22
|
+
|
|
23
|
+
Args:
|
|
24
|
+
VardokVardefIdPairResponse: The Pydantic model superclass, representing a Vardok Vardef id pair response.
|
|
25
|
+
"""
|
|
26
|
+
|
|
27
|
+
_file_path: Path | None = PrivateAttr(None)
|
|
28
|
+
model_config = ConfigDict(use_enum_values=True, str_strip_whitespace=True)
|
|
29
|
+
|
|
30
|
+
@staticmethod
|
|
31
|
+
def from_model(
|
|
32
|
+
model: VardokVardefIdPairResponse,
|
|
33
|
+
) -> "VardokVardefIdPair":
|
|
34
|
+
"""Create a VardokVardefIdPair instance from a VardokVardefIdPairResponse."""
|
|
35
|
+
self = VardokVardefIdPair.from_dict(model.model_dump())
|
|
36
|
+
if not self:
|
|
37
|
+
msg = f"Could not construct a VardokVardefIdPair instance from {model}"
|
|
38
|
+
raise ValueError(msg)
|
|
39
|
+
return self
|
|
40
|
+
|
|
41
|
+
def __str__(self) -> str:
|
|
42
|
+
"""Format as indented YAML."""
|
|
43
|
+
return _convert_to_yaml_output(self)
|
|
44
|
+
|
|
45
|
+
def __repr__(self) -> str:
|
|
46
|
+
"""Format as indented YAML."""
|
|
47
|
+
return _convert_to_yaml_output(self)
|
|
@@ -0,0 +1,422 @@
|
|
|
1
|
+
import logging
|
|
2
|
+
from datetime import date
|
|
3
|
+
from os import PathLike
|
|
4
|
+
from pathlib import Path
|
|
5
|
+
|
|
6
|
+
from pydantic import ConfigDict
|
|
7
|
+
from pydantic import PrivateAttr
|
|
8
|
+
|
|
9
|
+
from dapla_metadata.variable_definitions._generated.vardef_client.api.draft_variable_definitions_api import (
|
|
10
|
+
DraftVariableDefinitionsApi,
|
|
11
|
+
)
|
|
12
|
+
from dapla_metadata.variable_definitions._generated.vardef_client.api.patches_api import (
|
|
13
|
+
PatchesApi,
|
|
14
|
+
)
|
|
15
|
+
from dapla_metadata.variable_definitions._generated.vardef_client.api.validity_periods_api import (
|
|
16
|
+
ValidityPeriodsApi,
|
|
17
|
+
)
|
|
18
|
+
from dapla_metadata.variable_definitions._generated.vardef_client.models.complete_response import (
|
|
19
|
+
CompleteResponse,
|
|
20
|
+
)
|
|
21
|
+
from dapla_metadata.variable_definitions._generated.vardef_client.models.patch import (
|
|
22
|
+
Patch,
|
|
23
|
+
)
|
|
24
|
+
from dapla_metadata.variable_definitions._generated.vardef_client.models.update_draft import (
|
|
25
|
+
UpdateDraft,
|
|
26
|
+
)
|
|
27
|
+
from dapla_metadata.variable_definitions._generated.vardef_client.models.validity_period import (
|
|
28
|
+
ValidityPeriod,
|
|
29
|
+
)
|
|
30
|
+
from dapla_metadata.variable_definitions._generated.vardef_client.models.variable_status import (
|
|
31
|
+
VariableStatus,
|
|
32
|
+
)
|
|
33
|
+
from dapla_metadata.variable_definitions._utils import config
|
|
34
|
+
from dapla_metadata.variable_definitions._utils._client import VardefClient
|
|
35
|
+
from dapla_metadata.variable_definitions._utils.variable_definition_files import (
|
|
36
|
+
_convert_to_yaml_output,
|
|
37
|
+
)
|
|
38
|
+
from dapla_metadata.variable_definitions._utils.variable_definition_files import (
|
|
39
|
+
_read_file_to_model,
|
|
40
|
+
)
|
|
41
|
+
from dapla_metadata.variable_definitions._utils.variable_definition_files import (
|
|
42
|
+
create_variable_yaml,
|
|
43
|
+
)
|
|
44
|
+
from dapla_metadata.variable_definitions.exceptions import (
|
|
45
|
+
publishing_blocked_error_handler,
|
|
46
|
+
)
|
|
47
|
+
from dapla_metadata.variable_definitions.exceptions import vardef_exception_handler
|
|
48
|
+
from dapla_metadata.variable_definitions.exceptions import vardef_file_error_handler
|
|
49
|
+
|
|
50
|
+
logger = logging.getLogger(__name__)
|
|
51
|
+
|
|
52
|
+
IDENTICAL_PATCH_ERROR_MESSAGE = (
|
|
53
|
+
"No changes detected in supported fields. Not creating identical patch."
|
|
54
|
+
)
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
class VariableDefinition(CompleteResponse):
|
|
58
|
+
"""A Variable Definition.
|
|
59
|
+
|
|
60
|
+
- Provides access to the fields of the specific Variable Definition.
|
|
61
|
+
- Provides methods to access Patches and Validity Periods of this Variable Definition.
|
|
62
|
+
- Provides methods allowing maintenance of this Variable Definition.
|
|
63
|
+
|
|
64
|
+
Args:
|
|
65
|
+
CompleteResponse: The Pydantic model superclass, representing a Variable Definition.
|
|
66
|
+
"""
|
|
67
|
+
|
|
68
|
+
_file_path: Path | None = PrivateAttr(None)
|
|
69
|
+
|
|
70
|
+
model_config = ConfigDict(use_enum_values=True, str_strip_whitespace=True)
|
|
71
|
+
|
|
72
|
+
def get_file_path(self) -> Path | None:
|
|
73
|
+
"""Get the file path where the variable definition has been written to for editing."""
|
|
74
|
+
return self._file_path
|
|
75
|
+
|
|
76
|
+
def set_file_path(self, file_path: Path | None) -> None:
|
|
77
|
+
"""Set the file path where the variable definition has been written to for editing."""
|
|
78
|
+
self._file_path = file_path
|
|
79
|
+
|
|
80
|
+
@staticmethod
|
|
81
|
+
def from_model(
|
|
82
|
+
model: CompleteResponse,
|
|
83
|
+
) -> "VariableDefinition":
|
|
84
|
+
"""Create a VariableDefinition instance from a CompleteResponse."""
|
|
85
|
+
self = VariableDefinition.from_dict(model.model_dump())
|
|
86
|
+
if not self:
|
|
87
|
+
msg = f"Could not construct a VariableDefinition instance from {model}"
|
|
88
|
+
raise ValueError(msg)
|
|
89
|
+
return self
|
|
90
|
+
|
|
91
|
+
@vardef_exception_handler
|
|
92
|
+
def list_validity_periods(self) -> list["VariableDefinition"]:
|
|
93
|
+
"""List all Validity Periods for this Variable Definition."""
|
|
94
|
+
return [
|
|
95
|
+
VariableDefinition.from_model(validity_period)
|
|
96
|
+
for validity_period in ValidityPeriodsApi(
|
|
97
|
+
VardefClient.get_client(),
|
|
98
|
+
).list_validity_periods(
|
|
99
|
+
variable_definition_id=self.id,
|
|
100
|
+
)
|
|
101
|
+
]
|
|
102
|
+
|
|
103
|
+
@vardef_exception_handler
|
|
104
|
+
def list_patches(self) -> list["VariableDefinition"]:
|
|
105
|
+
"""List all Patches for this Variable Definition."""
|
|
106
|
+
return [
|
|
107
|
+
VariableDefinition.from_model(patch)
|
|
108
|
+
for patch in PatchesApi(VardefClient.get_client()).list_patches(
|
|
109
|
+
variable_definition_id=self.id,
|
|
110
|
+
)
|
|
111
|
+
]
|
|
112
|
+
|
|
113
|
+
@publishing_blocked_error_handler
|
|
114
|
+
@vardef_exception_handler
|
|
115
|
+
def update_draft(
|
|
116
|
+
self,
|
|
117
|
+
update_draft: UpdateDraft,
|
|
118
|
+
) -> "VariableDefinition":
|
|
119
|
+
"""Update this Variable Definition.
|
|
120
|
+
|
|
121
|
+
- Variable definition must have status 'DRAFT'.
|
|
122
|
+
- Supply only the fields to be changed. Other fields will retain their current values.
|
|
123
|
+
|
|
124
|
+
Args:
|
|
125
|
+
update_draft: The input with updated values.
|
|
126
|
+
|
|
127
|
+
Returns:
|
|
128
|
+
VariableDefinition: Updated Variable definition with all details.
|
|
129
|
+
"""
|
|
130
|
+
updated = VariableDefinition.from_model(
|
|
131
|
+
DraftVariableDefinitionsApi(
|
|
132
|
+
VardefClient.get_client(),
|
|
133
|
+
).update_variable_definition_by_id(
|
|
134
|
+
variable_definition_id=self.id,
|
|
135
|
+
active_group=config.get_active_group(),
|
|
136
|
+
update_draft=update_draft,
|
|
137
|
+
),
|
|
138
|
+
)
|
|
139
|
+
self.__dict__.update(updated)
|
|
140
|
+
|
|
141
|
+
logger.info(
|
|
142
|
+
"✅ Successfully updated variable definition '%s' with ID '%s'",
|
|
143
|
+
updated.short_name,
|
|
144
|
+
updated.id,
|
|
145
|
+
)
|
|
146
|
+
return updated
|
|
147
|
+
|
|
148
|
+
@vardef_file_error_handler
|
|
149
|
+
def update_draft_from_file(
|
|
150
|
+
self,
|
|
151
|
+
file_path: PathLike | None = None,
|
|
152
|
+
) -> "VariableDefinition":
|
|
153
|
+
"""Update this Variable Definition.
|
|
154
|
+
|
|
155
|
+
Will automatically read the relevant file pertaining to this variable definition. Can
|
|
156
|
+
be overridden by specifying the file_path parameter.
|
|
157
|
+
|
|
158
|
+
- Variable definition must have status 'DRAFT'.
|
|
159
|
+
- Supply only the fields to be changed. Other fields will retain their current values.
|
|
160
|
+
|
|
161
|
+
Args:
|
|
162
|
+
file_path: Optionally specify the path to read from.
|
|
163
|
+
|
|
164
|
+
Returns:
|
|
165
|
+
VariableDefinition: Updated Variable definition with all details.
|
|
166
|
+
"""
|
|
167
|
+
return self.update_draft(
|
|
168
|
+
_read_file_to_model(
|
|
169
|
+
file_path or self.get_file_path(),
|
|
170
|
+
UpdateDraft,
|
|
171
|
+
),
|
|
172
|
+
)
|
|
173
|
+
|
|
174
|
+
@vardef_exception_handler
|
|
175
|
+
def delete_draft(
|
|
176
|
+
self,
|
|
177
|
+
) -> str:
|
|
178
|
+
"""Delete this Variable definition.
|
|
179
|
+
|
|
180
|
+
Variable definition must have status 'DRAFT'.
|
|
181
|
+
|
|
182
|
+
Returns:
|
|
183
|
+
str: A message if the operation was succsessful.
|
|
184
|
+
|
|
185
|
+
"""
|
|
186
|
+
DraftVariableDefinitionsApi(
|
|
187
|
+
VardefClient.get_client(),
|
|
188
|
+
).delete_variable_definition_by_id(
|
|
189
|
+
variable_definition_id=self.id,
|
|
190
|
+
active_group=config.get_active_group(),
|
|
191
|
+
)
|
|
192
|
+
return f"✅ Variable {self.id} safely deleted"
|
|
193
|
+
|
|
194
|
+
@vardef_exception_handler
|
|
195
|
+
def get_patch(self, patch_id: int) -> "VariableDefinition":
|
|
196
|
+
"""Get a single Patch by ID.
|
|
197
|
+
|
|
198
|
+
Args:
|
|
199
|
+
patch_id (int): The ID of the patch.
|
|
200
|
+
|
|
201
|
+
Returns:
|
|
202
|
+
VariableDefinition: The desired patch.
|
|
203
|
+
"""
|
|
204
|
+
return VariableDefinition.from_model(
|
|
205
|
+
PatchesApi(VardefClient.get_client()).get_patch(
|
|
206
|
+
variable_definition_id=self.id,
|
|
207
|
+
patch_id=patch_id,
|
|
208
|
+
),
|
|
209
|
+
)
|
|
210
|
+
|
|
211
|
+
@vardef_exception_handler
|
|
212
|
+
def create_patch(
|
|
213
|
+
self,
|
|
214
|
+
patch: Patch,
|
|
215
|
+
valid_from: date | None = None,
|
|
216
|
+
) -> "VariableDefinition":
|
|
217
|
+
"""Create a new Patch for this Variable Definition.
|
|
218
|
+
|
|
219
|
+
Patches are to be used for minor changes which don't require a new Validity Period.
|
|
220
|
+
Examples of reasons for creating a new Patch:
|
|
221
|
+
- Correcting a typo
|
|
222
|
+
- Adding a translation
|
|
223
|
+
- Adding a subject field
|
|
224
|
+
|
|
225
|
+
Supply only the fields to be changed. Other fields will retain their current values.
|
|
226
|
+
|
|
227
|
+
Args:
|
|
228
|
+
patch: The input for a new patch.
|
|
229
|
+
valid_from: Optional date for selecting a Validity Period to create patch in. The date must
|
|
230
|
+
exactly match the Validity Period `valid_from`. If value is None the patch is
|
|
231
|
+
created in the last validity period.
|
|
232
|
+
|
|
233
|
+
Returns:
|
|
234
|
+
VariableDefinition: Variable Definition with all details.
|
|
235
|
+
|
|
236
|
+
"""
|
|
237
|
+
new_patch = VariableDefinition.from_model(
|
|
238
|
+
PatchesApi(
|
|
239
|
+
VardefClient.get_client(),
|
|
240
|
+
).create_patch(
|
|
241
|
+
variable_definition_id=self.id,
|
|
242
|
+
active_group=config.get_active_group(),
|
|
243
|
+
patch=patch,
|
|
244
|
+
valid_from=valid_from,
|
|
245
|
+
),
|
|
246
|
+
)
|
|
247
|
+
self.__dict__.update(new_patch)
|
|
248
|
+
|
|
249
|
+
logger.info(
|
|
250
|
+
"✅ Successfully created patch with patch ID '%s' for variable definition '%s' with ID '%s'",
|
|
251
|
+
new_patch.patch_id,
|
|
252
|
+
new_patch.short_name,
|
|
253
|
+
new_patch.id,
|
|
254
|
+
)
|
|
255
|
+
return new_patch
|
|
256
|
+
|
|
257
|
+
@vardef_file_error_handler
|
|
258
|
+
def create_patch_from_file(
|
|
259
|
+
self,
|
|
260
|
+
file_path: PathLike | None = None,
|
|
261
|
+
valid_from: date | None = None,
|
|
262
|
+
) -> "VariableDefinition":
|
|
263
|
+
"""Create a new Patch for this Variable Definition from a file.
|
|
264
|
+
|
|
265
|
+
Will automatically read the relevant file pertaining to this variable definition. Can
|
|
266
|
+
be overridden by specifying the file_path parameter.
|
|
267
|
+
|
|
268
|
+
Patches are to be used for minor changes which don't require a new Validity Period.
|
|
269
|
+
Examples of reasons for creating a new Patch:
|
|
270
|
+
- Correcting a typo
|
|
271
|
+
- Adding a translation
|
|
272
|
+
- Adding a subject field
|
|
273
|
+
|
|
274
|
+
Supply only the fields to be changed. Other fields will retain their current values.
|
|
275
|
+
|
|
276
|
+
Args:
|
|
277
|
+
file_path: Optionally specify the path to read from.
|
|
278
|
+
valid_from: Optional date for selecting a Validity Period to create patch in. The date must
|
|
279
|
+
exactly match the Validity Period `valid_from`. If value is None the patch is
|
|
280
|
+
created in the last validity period.
|
|
281
|
+
|
|
282
|
+
Returns:
|
|
283
|
+
VariableDefinition: Variable Definition with all details.
|
|
284
|
+
"""
|
|
285
|
+
new_patch = _read_file_to_model(
|
|
286
|
+
file_path or self.get_file_path(),
|
|
287
|
+
Patch,
|
|
288
|
+
)
|
|
289
|
+
if new_patch == Patch.from_dict(self.to_dict()):
|
|
290
|
+
raise ValueError(IDENTICAL_PATCH_ERROR_MESSAGE)
|
|
291
|
+
return self.create_patch(
|
|
292
|
+
patch=new_patch,
|
|
293
|
+
valid_from=valid_from,
|
|
294
|
+
)
|
|
295
|
+
|
|
296
|
+
@vardef_exception_handler
|
|
297
|
+
def create_validity_period(
|
|
298
|
+
self,
|
|
299
|
+
validity_period: ValidityPeriod,
|
|
300
|
+
) -> "VariableDefinition":
|
|
301
|
+
"""Create a new Validity Period for this Variable Definition.
|
|
302
|
+
|
|
303
|
+
In order to create a new Validity Period input must contain updated
|
|
304
|
+
'definition' text for all present languages and a new valid from.
|
|
305
|
+
|
|
306
|
+
A new Validity Period should be created only when the fundamental definition
|
|
307
|
+
of the variable has changed. This way the previous definition can be preserved
|
|
308
|
+
for use in historical data.
|
|
309
|
+
|
|
310
|
+
Args:
|
|
311
|
+
validity_period: The input for new Validity Period
|
|
312
|
+
|
|
313
|
+
Returns:
|
|
314
|
+
VariableDefinition: Variable Definition with all details.
|
|
315
|
+
"""
|
|
316
|
+
new_validity_period = VariableDefinition.from_model(
|
|
317
|
+
ValidityPeriodsApi(
|
|
318
|
+
VardefClient.get_client(),
|
|
319
|
+
).create_validity_period(
|
|
320
|
+
variable_definition_id=self.id,
|
|
321
|
+
active_group=config.get_active_group(),
|
|
322
|
+
validity_period=validity_period,
|
|
323
|
+
),
|
|
324
|
+
)
|
|
325
|
+
self.__dict__.update(new_validity_period)
|
|
326
|
+
|
|
327
|
+
logger.info(
|
|
328
|
+
"✅ Successfully created validity period that is valid from '%s' for variable definition '%s' with ID '%s'",
|
|
329
|
+
new_validity_period.valid_from,
|
|
330
|
+
new_validity_period.short_name,
|
|
331
|
+
new_validity_period.id,
|
|
332
|
+
)
|
|
333
|
+
return new_validity_period
|
|
334
|
+
|
|
335
|
+
@vardef_file_error_handler
|
|
336
|
+
def create_validity_period_from_file(
|
|
337
|
+
self,
|
|
338
|
+
file_path: PathLike | None = None,
|
|
339
|
+
) -> "VariableDefinition":
|
|
340
|
+
"""Create a new ValidityPeriod for this Variable Definition from a file.
|
|
341
|
+
|
|
342
|
+
In order to create a new Validity Period the input file must contain updated
|
|
343
|
+
'definition' text for all present languages and a new valid from.
|
|
344
|
+
|
|
345
|
+
Args:
|
|
346
|
+
file_path: Optionally specify the path to read from.
|
|
347
|
+
|
|
348
|
+
Returns:
|
|
349
|
+
VariableDefinition: Variable Definition with all details.
|
|
350
|
+
"""
|
|
351
|
+
return self.create_validity_period(
|
|
352
|
+
validity_period=_read_file_to_model(
|
|
353
|
+
file_path or self.get_file_path(),
|
|
354
|
+
ValidityPeriod,
|
|
355
|
+
),
|
|
356
|
+
)
|
|
357
|
+
|
|
358
|
+
@publishing_blocked_error_handler
|
|
359
|
+
def publish_internal(self) -> "VariableDefinition":
|
|
360
|
+
"""Publish this variable definition internally."""
|
|
361
|
+
if self.variable_status != VariableStatus.DRAFT.name:
|
|
362
|
+
msg = "That won't work here. Only variable definitions with status DRAFT may be published internally."
|
|
363
|
+
raise ValueError(
|
|
364
|
+
msg,
|
|
365
|
+
)
|
|
366
|
+
update = self.update_draft(
|
|
367
|
+
UpdateDraft(variable_status=VariableStatus.PUBLISHED_INTERNAL),
|
|
368
|
+
)
|
|
369
|
+
logger.info(
|
|
370
|
+
"✅ Variable definition '%s' with ID '%s' successfully published, new status: %s",
|
|
371
|
+
update.short_name,
|
|
372
|
+
update.id,
|
|
373
|
+
update.variable_status,
|
|
374
|
+
)
|
|
375
|
+
return update
|
|
376
|
+
|
|
377
|
+
@publishing_blocked_error_handler
|
|
378
|
+
def publish_external(self) -> "VariableDefinition":
|
|
379
|
+
"""Publish this variable definition externally."""
|
|
380
|
+
if self.variable_status == VariableStatus.PUBLISHED_EXTERNAL.name:
|
|
381
|
+
msg = "That won't work here. The variable definition is already published."
|
|
382
|
+
raise ValueError(
|
|
383
|
+
msg,
|
|
384
|
+
)
|
|
385
|
+
if self.variable_status is VariableStatus.DRAFT:
|
|
386
|
+
update = self.update_draft(
|
|
387
|
+
UpdateDraft(variable_status=VariableStatus.PUBLISHED_EXTERNAL),
|
|
388
|
+
)
|
|
389
|
+
else:
|
|
390
|
+
update = self.create_patch(
|
|
391
|
+
Patch(variable_status=VariableStatus.PUBLISHED_EXTERNAL),
|
|
392
|
+
)
|
|
393
|
+
logger.info(
|
|
394
|
+
"✅ Variable definition '%s' with ID '%s' successfully published, new status: %s",
|
|
395
|
+
update.short_name,
|
|
396
|
+
update.id,
|
|
397
|
+
update.variable_status,
|
|
398
|
+
)
|
|
399
|
+
return update
|
|
400
|
+
|
|
401
|
+
def to_file(self) -> "VariableDefinition":
|
|
402
|
+
"""Write this variable definition to file."""
|
|
403
|
+
file_path = create_variable_yaml(
|
|
404
|
+
model_instance=self,
|
|
405
|
+
)
|
|
406
|
+
self.set_file_path(file_path)
|
|
407
|
+
logger.info(
|
|
408
|
+
f"✅ Created editable variable definition file at {file_path}", # noqa: G004
|
|
409
|
+
)
|
|
410
|
+
return self
|
|
411
|
+
|
|
412
|
+
def to_dict(self) -> dict:
|
|
413
|
+
"""Return as dictionary."""
|
|
414
|
+
return super().to_dict()
|
|
415
|
+
|
|
416
|
+
def __str__(self) -> str:
|
|
417
|
+
"""Format as indented YAML."""
|
|
418
|
+
return _convert_to_yaml_output(self)
|
|
419
|
+
|
|
420
|
+
def __repr__(self) -> str:
|
|
421
|
+
"""Format as indented YAML."""
|
|
422
|
+
return _convert_to_yaml_output(self)
|
{dapla_toolbelt_metadata-0.2.1.dist-info → dapla_toolbelt_metadata-0.9.11.dist-info}/METADATA
RENAMED
|
@@ -1,34 +1,34 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: dapla-toolbelt-metadata
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.9.11
|
|
4
4
|
Summary: Dapla Toolbelt Metadata
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
Author-email: metadata@ssb.no
|
|
9
|
-
Requires-Python: >=3.10,<4.0
|
|
10
|
-
Classifier: Development Status :: 4 - Beta
|
|
11
|
-
Classifier: License :: OSI Approved :: MIT License
|
|
12
|
-
Classifier: Programming Language :: Python :: 3
|
|
13
|
-
Classifier: Programming Language :: Python :: 3.10
|
|
14
|
-
Classifier: Programming Language :: Python :: 3.11
|
|
15
|
-
Classifier: Programming Language :: Python :: 3.12
|
|
16
|
-
Requires-Dist: arrow (>=1.3.0)
|
|
17
|
-
Requires-Dist: beautifulsoup4 (>=4.12.3)
|
|
18
|
-
Requires-Dist: cloudpathlib[gs] (>=0.17.0)
|
|
19
|
-
Requires-Dist: dapla-toolbelt (>=1.3.3)
|
|
20
|
-
Requires-Dist: pandas (>=1.4.2)
|
|
21
|
-
Requires-Dist: pyarrow (>=8.0.0)
|
|
22
|
-
Requires-Dist: pydantic (>=2.5.2)
|
|
23
|
-
Requires-Dist: pyjwt (>=2.8.0)
|
|
24
|
-
Requires-Dist: python-dotenv (>=1.0.1)
|
|
25
|
-
Requires-Dist: requests (>=2.31.0)
|
|
26
|
-
Requires-Dist: ssb-datadoc-model (>=6.0.0,<7.0.0)
|
|
27
|
-
Requires-Dist: ssb-klass-python (>=0.0.9)
|
|
28
|
-
Requires-Dist: typing-extensions (>=4.12.2)
|
|
5
|
+
Project-URL: homepage, https://github.com/statisticsnorway/dapla-toolbelt-metadata
|
|
6
|
+
Project-URL: repository, https://github.com/statisticsnorway/dapla-toolbelt-metadata
|
|
7
|
+
Project-URL: documentation, https://statisticsnorway.github.io/dapla-toolbelt-metadata
|
|
29
8
|
Project-URL: Changelog, https://github.com/statisticsnorway/dapla-toolbelt-metadata/releases
|
|
30
|
-
|
|
31
|
-
|
|
9
|
+
Author-email: Statistics Norway <metadata@ssb.no>
|
|
10
|
+
License-Expression: MIT
|
|
11
|
+
License-File: LICENSE
|
|
12
|
+
Classifier: Development Status :: 4 - Beta
|
|
13
|
+
Requires-Python: >=3.10
|
|
14
|
+
Requires-Dist: arrow>=1.3.0
|
|
15
|
+
Requires-Dist: beautifulsoup4>=4.12.3
|
|
16
|
+
Requires-Dist: cloudpathlib[gs]>=0.17.0
|
|
17
|
+
Requires-Dist: google-auth>=2.38.0
|
|
18
|
+
Requires-Dist: lxml>=5.3.1
|
|
19
|
+
Requires-Dist: pandas>=2.3.3
|
|
20
|
+
Requires-Dist: pyarrow>=8.0.0
|
|
21
|
+
Requires-Dist: pydantic>=2.5.2
|
|
22
|
+
Requires-Dist: pyjwt>=2.8.0
|
|
23
|
+
Requires-Dist: python-dateutil>=2.9.0.post0
|
|
24
|
+
Requires-Dist: python-dotenv>=1.0.1
|
|
25
|
+
Requires-Dist: pytz>=2025.2
|
|
26
|
+
Requires-Dist: requests>=2.31.0
|
|
27
|
+
Requires-Dist: ruamel-yaml>=0.18.10
|
|
28
|
+
Requires-Dist: ssb-datadoc-model<9.0.0,>=8.0.0
|
|
29
|
+
Requires-Dist: ssb-klass-python>=1.0.1
|
|
30
|
+
Requires-Dist: typing-extensions>=4.12.2
|
|
31
|
+
Requires-Dist: urllib3>=2.5.0
|
|
32
32
|
Description-Content-Type: text/markdown
|
|
33
33
|
|
|
34
34
|
# Dapla Toolbelt Metadata
|
|
@@ -44,30 +44,29 @@ Description-Content-Type: text/markdown
|
|
|
44
44
|
[][sonarquality]
|
|
45
45
|
|
|
46
46
|
[][pre-commit]
|
|
47
|
-
[][black]
|
|
48
47
|
[](https://github.com/astral-sh/ruff)
|
|
49
|
-
[][uv]
|
|
50
49
|
|
|
51
50
|
[pypi status]: https://pypi.org/project/dapla-toolbelt-metadata/
|
|
52
51
|
[documentation]: https://statisticsnorway.github.io/dapla-toolbelt-metadata
|
|
53
52
|
[tests]: https://github.com/statisticsnorway/dapla-toolbelt-metadata/actions?workflow=Tests
|
|
54
|
-
|
|
55
53
|
[sonarcov]: https://sonarcloud.io/summary/overall?id=statisticsnorway_dapla-toolbelt-metadata
|
|
56
54
|
[sonarquality]: https://sonarcloud.io/summary/overall?id=statisticsnorway_dapla-toolbelt-metadata
|
|
57
55
|
[pre-commit]: https://github.com/pre-commit/pre-commit
|
|
58
|
-
[
|
|
59
|
-
[poetry]: https://python-poetry.org/
|
|
56
|
+
[uv]: https://docs.astral.sh/uv/
|
|
60
57
|
|
|
61
58
|
Tools and clients for working with the Dapla Metadata system.
|
|
62
59
|
|
|
63
60
|
## Features
|
|
64
61
|
|
|
65
|
-
- Create and update metadata for datasets (Datadoc).
|
|
62
|
+
- Create and update metadata for datasets (aka Datadoc).
|
|
63
|
+
- Read, create and update variable definitions (aka Vardef).
|
|
64
|
+
- Check compliance with SSBs naming standard.
|
|
66
65
|
|
|
67
66
|
### Coming
|
|
68
67
|
|
|
69
|
-
- Read, create and update variable definitions.
|
|
70
68
|
- Publish dataset metadata to Statistics Norway's data catalogue.
|
|
69
|
+
- Maintain classifications and code lists.
|
|
71
70
|
|
|
72
71
|
## Installation
|
|
73
72
|
|
|
@@ -111,4 +110,3 @@ This project was generated from [Statistics Norway]'s [SSB PyPI Template].
|
|
|
111
110
|
[license]: https://github.com/statisticsnorway/dapla-toolbelt-metadata/blob/main/LICENSE
|
|
112
111
|
[contributor guide]: https://github.com/statisticsnorway/dapla-toolbelt-metadata/blob/main/CONTRIBUTING.md
|
|
113
112
|
[reference guide]: https://statisticsnorway.github.io/dapla-toolbelt-metadata/reference.html
|
|
114
|
-
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
dapla_metadata/__init__.py,sha256=37yh9XWYQoLIVIS_fDdwNN8OXzbYY-6kMYwvjQrLMJQ,428
|
|
2
|
+
dapla_metadata/_shared/__init__.py,sha256=qUFgnVhBVlPRQP0ePmY76c8FvWRrJ-9c5GvzibwERnQ,103
|
|
3
|
+
dapla_metadata/_shared/config.py,sha256=qx1Y39EPve0b2b_wCd-OTFE-Hnq3Fa50TcXnWeuSkug,3118
|
|
4
|
+
dapla_metadata/_shared/enums.py,sha256=_YORmacAlxtdC4WAvI0YKlE9dJX-T1Lq1fytL9CSB9A,493
|
|
5
|
+
dapla_metadata/_shared/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
6
|
+
dapla_metadata/dapla/__init__.py,sha256=tkapF-YwmruPPrKvN3pEoCZqb7xvJx_ogBM8XyGMuJI,130
|
|
7
|
+
dapla_metadata/dapla/user_info.py,sha256=UAerZkYfHwF2nrz0IS9vbI2X5lvzjxMrffKydU_UM8I,4085
|
|
8
|
+
dapla_metadata/datasets/__init__.py,sha256=an-REJgi7N8-S1SCz-MYO_8as6fMe03WvhjRP_hWWkg,293
|
|
9
|
+
dapla_metadata/datasets/_merge.py,sha256=hoNBqiPi1an2mF9ZFnl4K-E7eg9xhlzG3986iPwHAj0,13005
|
|
10
|
+
dapla_metadata/datasets/code_list.py,sha256=JtCE-5Q8grAKvkn0KKjzeGhO-96O7yGsastbuoakreg,9057
|
|
11
|
+
dapla_metadata/datasets/core.py,sha256=zofQ4MwCPCdStPXXjO9GUwpBVEmqGbzabmef-jmGvyw,20871
|
|
12
|
+
dapla_metadata/datasets/dapla_dataset_path_info.py,sha256=WPeV_mwKk2B9sXd14SaP-kTb1bOQ_8W2KtrqOG7sJIY,26867
|
|
13
|
+
dapla_metadata/datasets/dataset_parser.py,sha256=3dtRXNy1C8SfG8zTYWdY26nV4l-dG25IC_0J5t2bYwI,8285
|
|
14
|
+
dapla_metadata/datasets/model_validation.py,sha256=6qqq1ueTWRWBPTwEGJD49Pv7ksMEaq0iDtuOXelaw-s,7223
|
|
15
|
+
dapla_metadata/datasets/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
16
|
+
dapla_metadata/datasets/statistic_subject_mapping.py,sha256=ovT-bZv6eGPD3L0UIs5nIw4AjJrfZn0hyWyD72JBmhs,6395
|
|
17
|
+
dapla_metadata/datasets/compatibility/__init__.py,sha256=hKoLOIhF-BMS8EZQUaAI_S-rf6QXufyI0tr9LB3ly74,400
|
|
18
|
+
dapla_metadata/datasets/compatibility/_handlers.py,sha256=8ITKPeaNRpg2ACX-IKvu764z52yAHYMkQUx-52SjzVQ,13858
|
|
19
|
+
dapla_metadata/datasets/compatibility/_utils.py,sha256=bPhI0D78Le12IO3fOJhzijYrSBYbf8Lj3_YxJzupS7U,9030
|
|
20
|
+
dapla_metadata/datasets/compatibility/model_backwards_compatibility.py,sha256=W5AgCu1CGQgQh3-enN5_4Syrs12LPCF9dTUpULxY3_g,6038
|
|
21
|
+
dapla_metadata/datasets/external_sources/__init__.py,sha256=qvIdXwqyEmXNUCB94ZtZXRzifdW4hiXASFFPtC70f6E,83
|
|
22
|
+
dapla_metadata/datasets/external_sources/external_sources.py,sha256=9eIcOIUbaodNX1w9Tj2wl4U4wUmr5kF1R0i01fKUzGs,2974
|
|
23
|
+
dapla_metadata/datasets/utility/__init__.py,sha256=pp6tUcgUbo8iq9OPtFKQrTbLuI3uY7NHptwWSTpasOU,33
|
|
24
|
+
dapla_metadata/datasets/utility/constants.py,sha256=4ixDvz5nErQwXa3BEtaGZb2AFUUUldJtNZV46SKwUBc,2817
|
|
25
|
+
dapla_metadata/datasets/utility/enums.py,sha256=i6dcxWya5k4LjLdGGIM_H37rRndizug3peaAgoE5UdM,652
|
|
26
|
+
dapla_metadata/datasets/utility/urn.py,sha256=1NtM9OkTUe4_T5Iy8cR-ofwuR0gUlrtA7oQqEmgWKOc,8141
|
|
27
|
+
dapla_metadata/datasets/utility/utils.py,sha256=q76UJI8W4j2aHSq1jz_AfYnJmLfygEflgUrQpqQEPnY,20157
|
|
28
|
+
dapla_metadata/standards/__init__.py,sha256=n8jnMrudLuScSdfQ4UMJorc-Ptg3Y1-ilT8zAaQnM70,179
|
|
29
|
+
dapla_metadata/standards/name_validator.py,sha256=6-DQE_EKVd6UjL--EXpFcZDQtusVbSFaWaUY-CfOV2c,9184
|
|
30
|
+
dapla_metadata/standards/standard_validators.py,sha256=tcCiCI76wUVtMzXA2oCgdauZc0uGgUi11FKu-t7KGwQ,3767
|
|
31
|
+
dapla_metadata/standards/utils/__init__.py,sha256=AiM7JcpFsAgyuCyLDYZo9kI94wvIImMDGoV2lKhS4pE,42
|
|
32
|
+
dapla_metadata/standards/utils/constants.py,sha256=mhWNFnS6NMsRl0c_deIdzY7_bD_wKn_oej6rzDjgwq4,2578
|
|
33
|
+
dapla_metadata/variable_definitions/__init__.py,sha256=z48vevGb8UuQ8mwkqCtBGoyM-Ts53vUcKo7Ag5rE_Wc,482
|
|
34
|
+
dapla_metadata/variable_definitions/exceptions.py,sha256=ImB81bne-h45kX9lE5hIh80QAWkOPS52uzcOftuoouM,10118
|
|
35
|
+
dapla_metadata/variable_definitions/vardef.py,sha256=WUpiKfvgFGPhMdjYSFSmdlXQKAolmRgW4-t-EocddQs,13934
|
|
36
|
+
dapla_metadata/variable_definitions/vardok_id.py,sha256=hHX3muzz-cJD7fPJbt5QPwIWlUbuoxWxXXz-sn_s92k,1409
|
|
37
|
+
dapla_metadata/variable_definitions/vardok_vardef_id_pair.py,sha256=E4UEddg6VjcL3wdf2DbIu0v6071m7M6ll2MifegPwNA,1540
|
|
38
|
+
dapla_metadata/variable_definitions/variable_definition.py,sha256=CFy5i53zFp6rCoWlALe5HLCx-QaOg5fj3YeUnfWYQ6I,15020
|
|
39
|
+
dapla_metadata/variable_definitions/_generated/.openapi-generator-ignore,sha256=x9lryVB5wtVEuKQ5GcZ94b10RgtkVXbtvWXOArO1XsM,169
|
|
40
|
+
dapla_metadata/variable_definitions/_generated/README.md,sha256=Y4et1oAhZTCr7a-CZfLbIpyYnhKzpygNg-gj7qJ09Eg,7650
|
|
41
|
+
dapla_metadata/variable_definitions/_generated/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
42
|
+
dapla_metadata/variable_definitions/_generated/.openapi-generator/FILES,sha256=262V-LIx_NsddtK6OZVH1rRr6S7AQPhPO6g4scZiypY,800
|
|
43
|
+
dapla_metadata/variable_definitions/_generated/.openapi-generator/VERSION,sha256=Y6lrqS2bXoujk5K-DCAwRFdRmkCKuTgvlngEx6FY5So,7
|
|
44
|
+
dapla_metadata/variable_definitions/_generated/vardef_client/__init__.py,sha256=7WZfJtGCTCWX-IDogKS1V3BQl1HzaIfWzm5Xykrv930,4211
|
|
45
|
+
dapla_metadata/variable_definitions/_generated/vardef_client/api_client.py,sha256=D2Jd8RBNbrhGusN5TGz0JVF9euIwd9GgDrbD1Gbseog,29531
|
|
46
|
+
dapla_metadata/variable_definitions/_generated/vardef_client/api_response.py,sha256=FDrkcrL60n7sBj5kEEfbhGehtIsBcnKV9XsQUF-vZw0,738
|
|
47
|
+
dapla_metadata/variable_definitions/_generated/vardef_client/configuration.py,sha256=bzzTunhv7xUk_rKxipGopP9khWyTCD4-wu4TrJIyZNU,17979
|
|
48
|
+
dapla_metadata/variable_definitions/_generated/vardef_client/exceptions.py,sha256=YiEZFepEuBfg2aBZcuDSp7NXjk6VL06ecySIOJch13o,8444
|
|
49
|
+
dapla_metadata/variable_definitions/_generated/vardef_client/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
50
|
+
dapla_metadata/variable_definitions/_generated/vardef_client/rest.py,sha256=x4PWmg3IYQBr8OgnrWr3l4Ke2rElHP3zAEVxk2U-mOc,12022
|
|
51
|
+
dapla_metadata/variable_definitions/_generated/vardef_client/api/__init__.py,sha256=LsTxGiOxCBqPeztRvoCANeVr-t0ApkHUqWiouWM8YS8,343
|
|
52
|
+
dapla_metadata/variable_definitions/_generated/vardef_client/api/data_migration_api.py,sha256=P6eY76I0xayOxnqt8e6RS6jPk509qXv7FX6V_1km20s,34811
|
|
53
|
+
dapla_metadata/variable_definitions/_generated/vardef_client/api/draft_variable_definitions_api.py,sha256=C3ZBBNQbinZjVAkNUKg-XvK1tfHxU7JXKEGx5NUt7B8,39930
|
|
54
|
+
dapla_metadata/variable_definitions/_generated/vardef_client/api/patches_api.py,sha256=oAedyr4BaJzIKy2s1x9KsmS6gMaJB4GQrUVhsqxhniQ,39788
|
|
55
|
+
dapla_metadata/variable_definitions/_generated/vardef_client/api/validity_periods_api.py,sha256=MbAHYpKpSiNzSi0c1qrzIlVJ6-L4PYevGKQ7kfzo-z4,27016
|
|
56
|
+
dapla_metadata/variable_definitions/_generated/vardef_client/api/variable_definitions_api.py,sha256=BF6nw3wxw1FzIaQ6ShzPG3Ag7qIrAp2qhrtcD9o2y2o,27768
|
|
57
|
+
dapla_metadata/variable_definitions/_generated/vardef_client/docs/CompleteResponse.md,sha256=CpB_PB8BkLAM5pwDPHb9AjMtk5Lxkhrf3bpZZhtFGeo,4092
|
|
58
|
+
dapla_metadata/variable_definitions/_generated/vardef_client/docs/Contact.md,sha256=UrWzrB2oK38fWCV2XRQ8SBfBz9yRRKcNuO6h-A8ZOdw,847
|
|
59
|
+
dapla_metadata/variable_definitions/_generated/vardef_client/docs/DataMigrationApi.md,sha256=_PSmVqGcyHipdn5dtv3gKpzLkYnZnD6r56n07jN3LEY,3269
|
|
60
|
+
dapla_metadata/variable_definitions/_generated/vardef_client/docs/Draft.md,sha256=q0M9ccLM7_OCm4-AMS7oD9pxz5OfGI90x6Hf-vexz7E,2952
|
|
61
|
+
dapla_metadata/variable_definitions/_generated/vardef_client/docs/DraftVariableDefinitionsApi.md,sha256=kTuqDARkMqfixTqndJT8XPcRBlLAocR8qNa-XvP3lR8,9674
|
|
62
|
+
dapla_metadata/variable_definitions/_generated/vardef_client/docs/LanguageStringType.md,sha256=oruJPTD3C0qc7fhWCbKfkm595UjMWtYTqblOBdDYzRI,1012
|
|
63
|
+
dapla_metadata/variable_definitions/_generated/vardef_client/docs/Owner.md,sha256=_pZguqrnnuJzMBFJ0IYgDucjefs47VOB7w869wEWcz4,793
|
|
64
|
+
dapla_metadata/variable_definitions/_generated/vardef_client/docs/Patch.md,sha256=2bMQeGYSRy49icB7zviSG8xugSbN3RqrOOSGapE2PVw,3253
|
|
65
|
+
dapla_metadata/variable_definitions/_generated/vardef_client/docs/PatchesApi.md,sha256=i_XHjsBRJ2awop7JBHby_UcR0NzAoPhEzOUh79jdrDA,8537
|
|
66
|
+
dapla_metadata/variable_definitions/_generated/vardef_client/docs/PublicApi.md,sha256=Wsn54DoVnbO6uG476_uzRukRTTsf-xaZY55OBTarXmI,7839
|
|
67
|
+
dapla_metadata/variable_definitions/_generated/vardef_client/docs/SupportedLanguages.md,sha256=2MVFjtoEZVyFclVf7hp2_HqGyVzNFisZShSZRa0Ffoc,304
|
|
68
|
+
dapla_metadata/variable_definitions/_generated/vardef_client/docs/UpdateDraft.md,sha256=v8JAfsnJIDYWWXKNf9p88lHdCiBEcY1GUS0grumXpBM,3473
|
|
69
|
+
dapla_metadata/variable_definitions/_generated/vardef_client/docs/ValidityPeriod.md,sha256=Owio0YiQdgdMB55C-uMb8TAr13sYp1APmJsFEty1AoE,3186
|
|
70
|
+
dapla_metadata/variable_definitions/_generated/vardef_client/docs/ValidityPeriodsApi.md,sha256=oKw2fbxeUqdR4JcDSFA0nwX5Emroog8OuoaVt7FORJo,8172
|
|
71
|
+
dapla_metadata/variable_definitions/_generated/vardef_client/docs/VariableDefinitionsApi.md,sha256=Gm4oBYTzOx0-pZiocAhLWcWukMzk9980pmH38nGCdYE,10812
|
|
72
|
+
dapla_metadata/variable_definitions/_generated/vardef_client/docs/VariableStatus.md,sha256=UL4LmoMEdHA9Nv1XARIe8YMm6e5sA9KOtxkOU-Ujh74,418
|
|
73
|
+
dapla_metadata/variable_definitions/_generated/vardef_client/models/__init__.py,sha256=AXEkxN7a89KC1oPZ_mZUp8MRJF8o-vXOd5HiL7bH99w,3788
|
|
74
|
+
dapla_metadata/variable_definitions/_generated/vardef_client/models/complete_response.py,sha256=EGYcmV_QRqoSwhWyKcNKP5V2QdLbljgpa6Fc9fu9hY8,13411
|
|
75
|
+
dapla_metadata/variable_definitions/_generated/vardef_client/models/contact.py,sha256=QQbiI34m467sFWV4LpN7vLxualKfOq9lns2QlaXPLkc,5551
|
|
76
|
+
dapla_metadata/variable_definitions/_generated/vardef_client/models/draft.py,sha256=KW7Csy-HO41yIZZLE4l0qxdxNJ_a2AmBkBgMsBiAJ0s,12134
|
|
77
|
+
dapla_metadata/variable_definitions/_generated/vardef_client/models/get_vardok_vardef_mapping_by_id200_response.py,sha256=uS59L1GEMYtcfiUagE-DBygEoYY6hRXJp_mXHz7Q4Yw,8424
|
|
78
|
+
dapla_metadata/variable_definitions/_generated/vardef_client/models/language_string_type.py,sha256=f0gBl5gVpaC4pUcotaH1xtjMuusFfTKwTEjYAmBRBV8,6171
|
|
79
|
+
dapla_metadata/variable_definitions/_generated/vardef_client/models/owner.py,sha256=FGMkldLEwqX56reRJByT9cIWAFWmEbwkD-Yg4nGdKVw,5323
|
|
80
|
+
dapla_metadata/variable_definitions/_generated/vardef_client/models/patch.py,sha256=Nxmuv8hB0fblXzOKn25qei5MGJ1klZvcX1641F_6r90,12881
|
|
81
|
+
dapla_metadata/variable_definitions/_generated/vardef_client/models/problem.py,sha256=UhZDwyLXpAVMMebD6-QhFl99r2IsoO_s1ftkmSdhMU4,7019
|
|
82
|
+
dapla_metadata/variable_definitions/_generated/vardef_client/models/update_draft.py,sha256=a0KKFepHH2DA3HLCVX75O0vNDwDaBOLZoEQLoK9Wq5s,14135
|
|
83
|
+
dapla_metadata/variable_definitions/_generated/vardef_client/models/validity_period.py,sha256=5S4VoIBh76UJSADptYcUctSstNuH1s8YJFGjeqda7Z0,12074
|
|
84
|
+
dapla_metadata/variable_definitions/_generated/vardef_client/models/vardok_id_response.py,sha256=ArX_-UcvXaPBt1MGdCwaB-n5wRyzFsnCeEEV_u_zGzE,5149
|
|
85
|
+
dapla_metadata/variable_definitions/_generated/vardef_client/models/vardok_vardef_id_pair_response.py,sha256=7GWZPE63_JdNb3vsecyieEtMPK8qD2995z5yxOS5GjY,5284
|
|
86
|
+
dapla_metadata/variable_definitions/_generated/vardef_client/models/variable_status.py,sha256=x9PZJMkE4rFAPm_d0e1PWdVoa8x049y16Po9iP7npP0,3541
|
|
87
|
+
dapla_metadata/variable_definitions/_utils/__init__.py,sha256=qAhRLJoTBqtR3f9xRXTRhD7-5Xg0Opk1Ks5F4AUYnpA,45
|
|
88
|
+
dapla_metadata/variable_definitions/_utils/_client.py,sha256=v1-9VjrdPI6-sroam5vXMPEV1dQMPsYk7KyGd48HjYw,971
|
|
89
|
+
dapla_metadata/variable_definitions/_utils/config.py,sha256=cc03xlcy_pnn06_6px0taO8LopmVJ9ud75oayGge8Vk,1814
|
|
90
|
+
dapla_metadata/variable_definitions/_utils/constants.py,sha256=zr5FNVCEz6TM9PVErQ672LNm-8CATrXyY94BGhV_ZJQ,2431
|
|
91
|
+
dapla_metadata/variable_definitions/_utils/files.py,sha256=JbPgPNQ7iA38juMqGEdcg5OjZZUwCb6NQtPL0AEspD0,10933
|
|
92
|
+
dapla_metadata/variable_definitions/_utils/template_files.py,sha256=7fcc7yEHOl5JUZ698kqj4IiikXPHBi3SrAVOk4wqQtw,3308
|
|
93
|
+
dapla_metadata/variable_definitions/_utils/variable_definition_files.py,sha256=sGhcSpckR9NtYGNh2oVkiCd5SI3bbJEBhc1PA2uShs0,4701
|
|
94
|
+
dapla_toolbelt_metadata-0.9.11.dist-info/METADATA,sha256=-pzWYKpPE-mwtxkq5QS-QiprNuQANUnOe5Al-9HIxCs,4855
|
|
95
|
+
dapla_toolbelt_metadata-0.9.11.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
96
|
+
dapla_toolbelt_metadata-0.9.11.dist-info/licenses/LICENSE,sha256=np3IfD5m0ZUofn_kVzDZqliozuiO6wrktw3LRPjyEiI,1073
|
|
97
|
+
dapla_toolbelt_metadata-0.9.11.dist-info/RECORD,,
|