dapla-toolbelt-metadata 0.4.2__tar.gz → 0.5.0__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 dapla-toolbelt-metadata might be problematic. Click here for more details.
- {dapla_toolbelt_metadata-0.4.2 → dapla_toolbelt_metadata-0.5.0}/PKG-INFO +5 -7
- {dapla_toolbelt_metadata-0.4.2 → dapla_toolbelt_metadata-0.5.0}/README.md +0 -2
- {dapla_toolbelt_metadata-0.4.2 → dapla_toolbelt_metadata-0.5.0}/pyproject.toml +20 -21
- dapla_toolbelt_metadata-0.5.0/src/dapla_metadata/__init__.py +13 -0
- dapla_toolbelt_metadata-0.5.0/src/dapla_metadata/dapla/__init__.py +1 -0
- {dapla_toolbelt_metadata-0.4.2/src/dapla_metadata/_shared → dapla_toolbelt_metadata-0.5.0/src/dapla_metadata/dapla}/user_info.py +55 -8
- {dapla_toolbelt_metadata-0.4.2 → dapla_toolbelt_metadata-0.5.0}/src/dapla_metadata/datasets/code_list.py +1 -1
- {dapla_toolbelt_metadata-0.4.2 → dapla_toolbelt_metadata-0.5.0}/src/dapla_metadata/datasets/core.py +1 -1
- {dapla_toolbelt_metadata-0.4.2 → dapla_toolbelt_metadata-0.5.0}/src/dapla_metadata/datasets/dataset_parser.py +1 -1
- {dapla_toolbelt_metadata-0.4.2 → dapla_toolbelt_metadata-0.5.0}/src/dapla_metadata/datasets/model_backwards_compatibility.py +6 -6
- {dapla_toolbelt_metadata-0.4.2 → dapla_toolbelt_metadata-0.5.0}/src/dapla_metadata/datasets/model_validation.py +2 -2
- {dapla_toolbelt_metadata-0.4.2 → dapla_toolbelt_metadata-0.5.0}/src/dapla_metadata/datasets/utility/constants.py +1 -0
- {dapla_toolbelt_metadata-0.4.2 → dapla_toolbelt_metadata-0.5.0}/src/dapla_metadata/datasets/utility/enums.py +1 -1
- {dapla_toolbelt_metadata-0.4.2 → dapla_toolbelt_metadata-0.5.0}/src/dapla_metadata/datasets/utility/utils.py +7 -11
- dapla_toolbelt_metadata-0.5.0/src/dapla_metadata/variable_definitions/__init__.py +9 -0
- {dapla_toolbelt_metadata-0.4.2/src/dapla_metadata/variable_definitions/generated → dapla_toolbelt_metadata-0.5.0/src/dapla_metadata/variable_definitions/_generated}/.openapi-generator/FILES +0 -5
- dapla_toolbelt_metadata-0.5.0/src/dapla_metadata/variable_definitions/_generated/.openapi-generator/VERSION +1 -0
- {dapla_toolbelt_metadata-0.4.2/src/dapla_metadata/variable_definitions/generated → dapla_toolbelt_metadata-0.5.0/src/dapla_metadata/variable_definitions/_generated}/vardef_client/__init__.py +0 -5
- {dapla_toolbelt_metadata-0.4.2/src/dapla_metadata/variable_definitions/generated → dapla_toolbelt_metadata-0.5.0/src/dapla_metadata/variable_definitions/_generated}/vardef_client/api/__init__.py +0 -1
- {dapla_toolbelt_metadata-0.4.2/src/dapla_metadata/variable_definitions/generated → dapla_toolbelt_metadata-0.5.0/src/dapla_metadata/variable_definitions/_generated}/vardef_client/api/data_migration_api.py +2 -2
- {dapla_toolbelt_metadata-0.4.2/src/dapla_metadata/variable_definitions/generated → dapla_toolbelt_metadata-0.5.0/src/dapla_metadata/variable_definitions/_generated}/vardef_client/api/draft_variable_definitions_api.py +14 -14
- {dapla_toolbelt_metadata-0.4.2/src/dapla_metadata/variable_definitions/generated → dapla_toolbelt_metadata-0.5.0/src/dapla_metadata/variable_definitions/_generated}/vardef_client/api/patches_api.py +15 -15
- {dapla_toolbelt_metadata-0.4.2/src/dapla_metadata/variable_definitions/generated → dapla_toolbelt_metadata-0.5.0/src/dapla_metadata/variable_definitions/_generated}/vardef_client/api/validity_periods_api.py +8 -281
- dapla_toolbelt_metadata-0.4.2/src/dapla_metadata/variable_definitions/generated/vardef_client/api/public_api.py → dapla_toolbelt_metadata-0.5.0/src/dapla_metadata/variable_definitions/_generated/vardef_client/api/variable_definitions_api.py +73 -358
- {dapla_toolbelt_metadata-0.4.2/src/dapla_metadata/variable_definitions/generated → dapla_toolbelt_metadata-0.5.0/src/dapla_metadata/variable_definitions/_generated}/vardef_client/models/__init__.py +2 -6
- {dapla_toolbelt_metadata-0.4.2/src/dapla_metadata/variable_definitions/generated → dapla_toolbelt_metadata-0.5.0/src/dapla_metadata/variable_definitions/_generated}/vardef_client/models/complete_response.py +8 -32
- {dapla_toolbelt_metadata-0.4.2/src/dapla_metadata/variable_definitions/generated → dapla_toolbelt_metadata-0.5.0/src/dapla_metadata/variable_definitions/_generated}/vardef_client/models/contact.py +2 -2
- {dapla_toolbelt_metadata-0.4.2/src/dapla_metadata/variable_definitions/generated → dapla_toolbelt_metadata-0.5.0/src/dapla_metadata/variable_definitions/_generated}/vardef_client/models/draft.py +8 -23
- {dapla_toolbelt_metadata-0.4.2/src/dapla_metadata/variable_definitions/generated → dapla_toolbelt_metadata-0.5.0/src/dapla_metadata/variable_definitions/_generated}/vardef_client/models/language_string_type.py +7 -6
- {dapla_toolbelt_metadata-0.4.2/src/dapla_metadata/variable_definitions/generated → dapla_toolbelt_metadata-0.5.0/src/dapla_metadata/variable_definitions/_generated}/vardef_client/models/owner.py +2 -2
- {dapla_toolbelt_metadata-0.4.2/src/dapla_metadata/variable_definitions/generated → dapla_toolbelt_metadata-0.5.0/src/dapla_metadata/variable_definitions/_generated}/vardef_client/models/patch.py +16 -61
- {dapla_toolbelt_metadata-0.4.2/src/dapla_metadata/variable_definitions/generated → dapla_toolbelt_metadata-0.5.0/src/dapla_metadata/variable_definitions/_generated}/vardef_client/models/problem.py +2 -2
- {dapla_toolbelt_metadata-0.4.2/src/dapla_metadata/variable_definitions/generated → dapla_toolbelt_metadata-0.5.0/src/dapla_metadata/variable_definitions/_generated}/vardef_client/models/update_draft.py +22 -55
- {dapla_toolbelt_metadata-0.4.2/src/dapla_metadata/variable_definitions/generated → dapla_toolbelt_metadata-0.5.0/src/dapla_metadata/variable_definitions/_generated}/vardef_client/models/validity_period.py +14 -48
- dapla_toolbelt_metadata-0.5.0/src/dapla_metadata/variable_definitions/_generated/vardef_client/models/variable_status.py +33 -0
- dapla_toolbelt_metadata-0.5.0/src/dapla_metadata/variable_definitions/_utils/__init__.py +1 -0
- {dapla_toolbelt_metadata-0.4.2/src/dapla_metadata/variable_definitions → dapla_toolbelt_metadata-0.5.0/src/dapla_metadata/variable_definitions/_utils}/_client.py +5 -3
- {dapla_toolbelt_metadata-0.4.2/src/dapla_metadata/variable_definitions → dapla_toolbelt_metadata-0.5.0/src/dapla_metadata/variable_definitions/_utils}/config.py +25 -1
- dapla_toolbelt_metadata-0.5.0/src/dapla_metadata/variable_definitions/_utils/constants.py +41 -0
- dapla_toolbelt_metadata-0.5.0/src/dapla_metadata/variable_definitions/_utils/descriptions.py +86 -0
- dapla_toolbelt_metadata-0.5.0/src/dapla_metadata/variable_definitions/_utils/files.py +273 -0
- dapla_toolbelt_metadata-0.5.0/src/dapla_metadata/variable_definitions/_utils/template_files.py +112 -0
- dapla_toolbelt_metadata-0.5.0/src/dapla_metadata/variable_definitions/_utils/variable_definition_files.py +93 -0
- dapla_toolbelt_metadata-0.5.0/src/dapla_metadata/variable_definitions/exceptions.py +196 -0
- dapla_toolbelt_metadata-0.5.0/src/dapla_metadata/variable_definitions/resources/vardef_model_descriptions_nb.yaml +63 -0
- {dapla_toolbelt_metadata-0.4.2 → dapla_toolbelt_metadata-0.5.0}/src/dapla_metadata/variable_definitions/vardef.py +131 -10
- dapla_toolbelt_metadata-0.5.0/src/dapla_metadata/variable_definitions/variable_definition.py +410 -0
- dapla_toolbelt_metadata-0.4.2/src/dapla_metadata/__init__.py +0 -6
- dapla_toolbelt_metadata-0.4.2/src/dapla_metadata/variable_definitions/__init__.py +0 -7
- dapla_toolbelt_metadata-0.4.2/src/dapla_metadata/variable_definitions/exceptions.py +0 -66
- dapla_toolbelt_metadata-0.4.2/src/dapla_metadata/variable_definitions/generated/.openapi-generator/VERSION +0 -1
- dapla_toolbelt_metadata-0.4.2/src/dapla_metadata/variable_definitions/generated/vardef_client/api/variable_definitions_api.py +0 -1205
- dapla_toolbelt_metadata-0.4.2/src/dapla_metadata/variable_definitions/generated/vardef_client/models/klass_reference.py +0 -99
- dapla_toolbelt_metadata-0.4.2/src/dapla_metadata/variable_definitions/generated/vardef_client/models/rendered_contact.py +0 -92
- dapla_toolbelt_metadata-0.4.2/src/dapla_metadata/variable_definitions/generated/vardef_client/models/rendered_variable_definition.py +0 -235
- dapla_toolbelt_metadata-0.4.2/src/dapla_metadata/variable_definitions/generated/vardef_client/models/supported_languages.py +0 -33
- dapla_toolbelt_metadata-0.4.2/src/dapla_metadata/variable_definitions/generated/vardef_client/models/variable_status.py +0 -33
- dapla_toolbelt_metadata-0.4.2/src/dapla_metadata/variable_definitions/variable_definition.py +0 -212
- {dapla_toolbelt_metadata-0.4.2 → dapla_toolbelt_metadata-0.5.0}/LICENSE +0 -0
- {dapla_toolbelt_metadata-0.4.2 → dapla_toolbelt_metadata-0.5.0}/src/dapla_metadata/_shared/__init__.py +0 -0
- {dapla_toolbelt_metadata-0.4.2 → dapla_toolbelt_metadata-0.5.0}/src/dapla_metadata/_shared/config.py +0 -0
- {dapla_toolbelt_metadata-0.4.2 → dapla_toolbelt_metadata-0.5.0}/src/dapla_metadata/_shared/enums.py +0 -0
- {dapla_toolbelt_metadata-0.4.2 → dapla_toolbelt_metadata-0.5.0}/src/dapla_metadata/_shared/py.typed +0 -0
- {dapla_toolbelt_metadata-0.4.2 → dapla_toolbelt_metadata-0.5.0}/src/dapla_metadata/datasets/__init__.py +0 -0
- {dapla_toolbelt_metadata-0.4.2 → dapla_toolbelt_metadata-0.5.0}/src/dapla_metadata/datasets/dapla_dataset_path_info.py +0 -0
- {dapla_toolbelt_metadata-0.4.2 → dapla_toolbelt_metadata-0.5.0}/src/dapla_metadata/datasets/external_sources/__init__.py +0 -0
- {dapla_toolbelt_metadata-0.4.2 → dapla_toolbelt_metadata-0.5.0}/src/dapla_metadata/datasets/external_sources/external_sources.py +0 -0
- {dapla_toolbelt_metadata-0.4.2 → dapla_toolbelt_metadata-0.5.0}/src/dapla_metadata/datasets/py.typed +0 -0
- {dapla_toolbelt_metadata-0.4.2 → dapla_toolbelt_metadata-0.5.0}/src/dapla_metadata/datasets/statistic_subject_mapping.py +0 -0
- {dapla_toolbelt_metadata-0.4.2 → dapla_toolbelt_metadata-0.5.0}/src/dapla_metadata/datasets/utility/__init__.py +0 -0
- {dapla_toolbelt_metadata-0.4.2/src/dapla_metadata/variable_definitions/generated → dapla_toolbelt_metadata-0.5.0/src/dapla_metadata/variable_definitions/_generated}/.openapi-generator-ignore +0 -0
- {dapla_toolbelt_metadata-0.4.2/src/dapla_metadata/variable_definitions/generated → dapla_toolbelt_metadata-0.5.0/src/dapla_metadata/variable_definitions/_generated}/README.md +0 -0
- {dapla_toolbelt_metadata-0.4.2/src/dapla_metadata/variable_definitions/generated → dapla_toolbelt_metadata-0.5.0/src/dapla_metadata/variable_definitions/_generated}/__init__.py +0 -0
- {dapla_toolbelt_metadata-0.4.2/src/dapla_metadata/variable_definitions/generated → dapla_toolbelt_metadata-0.5.0/src/dapla_metadata/variable_definitions/_generated}/vardef_client/api_client.py +0 -0
- {dapla_toolbelt_metadata-0.4.2/src/dapla_metadata/variable_definitions/generated → dapla_toolbelt_metadata-0.5.0/src/dapla_metadata/variable_definitions/_generated}/vardef_client/api_response.py +0 -0
- {dapla_toolbelt_metadata-0.4.2/src/dapla_metadata/variable_definitions/generated → dapla_toolbelt_metadata-0.5.0/src/dapla_metadata/variable_definitions/_generated}/vardef_client/configuration.py +0 -0
- {dapla_toolbelt_metadata-0.4.2/src/dapla_metadata/variable_definitions/generated → dapla_toolbelt_metadata-0.5.0/src/dapla_metadata/variable_definitions/_generated}/vardef_client/docs/CompleteResponse.md +0 -0
- {dapla_toolbelt_metadata-0.4.2/src/dapla_metadata/variable_definitions/generated → dapla_toolbelt_metadata-0.5.0/src/dapla_metadata/variable_definitions/_generated}/vardef_client/docs/Contact.md +0 -0
- {dapla_toolbelt_metadata-0.4.2/src/dapla_metadata/variable_definitions/generated → dapla_toolbelt_metadata-0.5.0/src/dapla_metadata/variable_definitions/_generated}/vardef_client/docs/DataMigrationApi.md +0 -0
- {dapla_toolbelt_metadata-0.4.2/src/dapla_metadata/variable_definitions/generated → dapla_toolbelt_metadata-0.5.0/src/dapla_metadata/variable_definitions/_generated}/vardef_client/docs/Draft.md +0 -0
- {dapla_toolbelt_metadata-0.4.2/src/dapla_metadata/variable_definitions/generated → dapla_toolbelt_metadata-0.5.0/src/dapla_metadata/variable_definitions/_generated}/vardef_client/docs/DraftVariableDefinitionsApi.md +0 -0
- {dapla_toolbelt_metadata-0.4.2/src/dapla_metadata/variable_definitions/generated → dapla_toolbelt_metadata-0.5.0/src/dapla_metadata/variable_definitions/_generated}/vardef_client/docs/LanguageStringType.md +0 -0
- {dapla_toolbelt_metadata-0.4.2/src/dapla_metadata/variable_definitions/generated → dapla_toolbelt_metadata-0.5.0/src/dapla_metadata/variable_definitions/_generated}/vardef_client/docs/Owner.md +0 -0
- {dapla_toolbelt_metadata-0.4.2/src/dapla_metadata/variable_definitions/generated → dapla_toolbelt_metadata-0.5.0/src/dapla_metadata/variable_definitions/_generated}/vardef_client/docs/Patch.md +0 -0
- {dapla_toolbelt_metadata-0.4.2/src/dapla_metadata/variable_definitions/generated → dapla_toolbelt_metadata-0.5.0/src/dapla_metadata/variable_definitions/_generated}/vardef_client/docs/PatchesApi.md +0 -0
- {dapla_toolbelt_metadata-0.4.2/src/dapla_metadata/variable_definitions/generated → dapla_toolbelt_metadata-0.5.0/src/dapla_metadata/variable_definitions/_generated}/vardef_client/docs/PublicApi.md +0 -0
- {dapla_toolbelt_metadata-0.4.2/src/dapla_metadata/variable_definitions/generated → dapla_toolbelt_metadata-0.5.0/src/dapla_metadata/variable_definitions/_generated}/vardef_client/docs/SupportedLanguages.md +0 -0
- {dapla_toolbelt_metadata-0.4.2/src/dapla_metadata/variable_definitions/generated → dapla_toolbelt_metadata-0.5.0/src/dapla_metadata/variable_definitions/_generated}/vardef_client/docs/UpdateDraft.md +0 -0
- {dapla_toolbelt_metadata-0.4.2/src/dapla_metadata/variable_definitions/generated → dapla_toolbelt_metadata-0.5.0/src/dapla_metadata/variable_definitions/_generated}/vardef_client/docs/ValidityPeriod.md +0 -0
- {dapla_toolbelt_metadata-0.4.2/src/dapla_metadata/variable_definitions/generated → dapla_toolbelt_metadata-0.5.0/src/dapla_metadata/variable_definitions/_generated}/vardef_client/docs/ValidityPeriodsApi.md +0 -0
- {dapla_toolbelt_metadata-0.4.2/src/dapla_metadata/variable_definitions/generated → dapla_toolbelt_metadata-0.5.0/src/dapla_metadata/variable_definitions/_generated}/vardef_client/docs/VariableDefinitionsApi.md +0 -0
- {dapla_toolbelt_metadata-0.4.2/src/dapla_metadata/variable_definitions/generated → dapla_toolbelt_metadata-0.5.0/src/dapla_metadata/variable_definitions/_generated}/vardef_client/docs/VariableStatus.md +0 -0
- {dapla_toolbelt_metadata-0.4.2/src/dapla_metadata/variable_definitions/generated → dapla_toolbelt_metadata-0.5.0/src/dapla_metadata/variable_definitions/_generated}/vardef_client/exceptions.py +0 -0
- {dapla_toolbelt_metadata-0.4.2/src/dapla_metadata/variable_definitions/generated → dapla_toolbelt_metadata-0.5.0/src/dapla_metadata/variable_definitions/_generated}/vardef_client/py.typed +0 -0
- {dapla_toolbelt_metadata-0.4.2/src/dapla_metadata/variable_definitions/generated → dapla_toolbelt_metadata-0.5.0/src/dapla_metadata/variable_definitions/_generated}/vardef_client/rest.py +0 -0
|
@@ -1,16 +1,14 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.3
|
|
2
2
|
Name: dapla-toolbelt-metadata
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.5.0
|
|
4
4
|
Summary: Dapla Toolbelt Metadata
|
|
5
|
-
Home-page: https://github.com/statisticsnorway/dapla-toolbelt-metadata
|
|
6
5
|
License: MIT
|
|
7
6
|
Author: Team Metadata
|
|
8
7
|
Author-email: metadata@ssb.no
|
|
9
|
-
Requires-Python: >=3.
|
|
8
|
+
Requires-Python: >=3.11,<4.0
|
|
10
9
|
Classifier: Development Status :: 4 - Beta
|
|
11
10
|
Classifier: License :: OSI Approved :: MIT License
|
|
12
11
|
Classifier: Programming Language :: Python :: 3
|
|
13
|
-
Classifier: Programming Language :: Python :: 3.10
|
|
14
12
|
Classifier: Programming Language :: Python :: 3.11
|
|
15
13
|
Classifier: Programming Language :: Python :: 3.12
|
|
16
14
|
Classifier: Programming Language :: Python :: 3.13
|
|
@@ -24,11 +22,13 @@ Requires-Dist: pydantic (>=2.5.2)
|
|
|
24
22
|
Requires-Dist: pyjwt (>=2.8.0)
|
|
25
23
|
Requires-Dist: python-dotenv (>=1.0.1)
|
|
26
24
|
Requires-Dist: requests (>=2.31.0)
|
|
25
|
+
Requires-Dist: ruamel-yaml (>=0.18.10,<0.19.0)
|
|
27
26
|
Requires-Dist: ssb-datadoc-model (>=6.0.0,<7.0.0)
|
|
28
27
|
Requires-Dist: ssb-klass-python (>=0.0.9)
|
|
29
28
|
Requires-Dist: typing-extensions (>=4.12.2)
|
|
30
29
|
Project-URL: Changelog, https://github.com/statisticsnorway/dapla-toolbelt-metadata/releases
|
|
31
30
|
Project-URL: Documentation, https://statisticsnorway.github.io/dapla-toolbelt-metadata
|
|
31
|
+
Project-URL: Homepage, https://github.com/statisticsnorway/dapla-toolbelt-metadata
|
|
32
32
|
Project-URL: Repository, https://github.com/statisticsnorway/dapla-toolbelt-metadata
|
|
33
33
|
Description-Content-Type: text/markdown
|
|
34
34
|
|
|
@@ -45,7 +45,6 @@ Description-Content-Type: text/markdown
|
|
|
45
45
|
[][sonarquality]
|
|
46
46
|
|
|
47
47
|
[][pre-commit]
|
|
48
|
-
[][black]
|
|
49
48
|
[](https://github.com/astral-sh/ruff)
|
|
50
49
|
[][poetry]
|
|
51
50
|
|
|
@@ -56,7 +55,6 @@ Description-Content-Type: text/markdown
|
|
|
56
55
|
[sonarcov]: https://sonarcloud.io/summary/overall?id=statisticsnorway_dapla-toolbelt-metadata
|
|
57
56
|
[sonarquality]: https://sonarcloud.io/summary/overall?id=statisticsnorway_dapla-toolbelt-metadata
|
|
58
57
|
[pre-commit]: https://github.com/pre-commit/pre-commit
|
|
59
|
-
[black]: https://github.com/psf/black
|
|
60
58
|
[poetry]: https://python-poetry.org/
|
|
61
59
|
|
|
62
60
|
Tools and clients for working with the Dapla Metadata system.
|
|
@@ -11,7 +11,6 @@
|
|
|
11
11
|
[][sonarquality]
|
|
12
12
|
|
|
13
13
|
[][pre-commit]
|
|
14
|
-
[][black]
|
|
15
14
|
[](https://github.com/astral-sh/ruff)
|
|
16
15
|
[][poetry]
|
|
17
16
|
|
|
@@ -22,7 +21,6 @@
|
|
|
22
21
|
[sonarcov]: https://sonarcloud.io/summary/overall?id=statisticsnorway_dapla-toolbelt-metadata
|
|
23
22
|
[sonarquality]: https://sonarcloud.io/summary/overall?id=statisticsnorway_dapla-toolbelt-metadata
|
|
24
23
|
[pre-commit]: https://github.com/pre-commit/pre-commit
|
|
25
|
-
[black]: https://github.com/psf/black
|
|
26
24
|
[poetry]: https://python-poetry.org/
|
|
27
25
|
|
|
28
26
|
Tools and clients for working with the Dapla Metadata system.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[tool.poetry]
|
|
2
2
|
name = "dapla-toolbelt-metadata"
|
|
3
|
-
version = "0.
|
|
3
|
+
version = "0.5.0"
|
|
4
4
|
description = "Dapla Toolbelt Metadata"
|
|
5
5
|
authors = ["Team Metadata <metadata@ssb.no>"]
|
|
6
6
|
license = "MIT"
|
|
@@ -16,7 +16,7 @@ packages = [{ include = "dapla_metadata", from = "src" }]
|
|
|
16
16
|
Changelog = "https://github.com/statisticsnorway/dapla-toolbelt-metadata/releases"
|
|
17
17
|
|
|
18
18
|
[tool.poetry.dependencies]
|
|
19
|
-
python = ">=3.
|
|
19
|
+
python = ">=3.11,<4.0"
|
|
20
20
|
pyarrow = ">=8.0.0"
|
|
21
21
|
pydantic = ">=2.5.2"
|
|
22
22
|
pandas = ">=1.4.2"
|
|
@@ -30,9 +30,9 @@ pyjwt = ">=2.8.0"
|
|
|
30
30
|
ssb-klass-python = ">=0.0.9"
|
|
31
31
|
ssb-datadoc-model = "^6.0.0"
|
|
32
32
|
typing-extensions = ">=4.12.2"
|
|
33
|
+
ruamel-yaml = "^0.18.10"
|
|
33
34
|
|
|
34
35
|
[tool.poetry.group.dev.dependencies]
|
|
35
|
-
black = ">=24.8.0"
|
|
36
36
|
pygments = ">=2.18.0"
|
|
37
37
|
coverage = { extras = ["toml"], version = ">=6.2" }
|
|
38
38
|
faker = ">=26.1.0"
|
|
@@ -49,7 +49,6 @@ xdoctest = { extras = ["colors"], version = ">=0.15.10" }
|
|
|
49
49
|
myst-parser = { version = ">=0.16.1" }
|
|
50
50
|
mypy = ">=0.950"
|
|
51
51
|
pytest-cov = ">=3.0.0"
|
|
52
|
-
nbstripout = "^0.8.1"
|
|
53
52
|
python-kacl = "*"
|
|
54
53
|
pytest-mock = ">=3.14.0"
|
|
55
54
|
deptry = ">=0.12.0"
|
|
@@ -78,19 +77,14 @@ source = ["dapla_metadata"]
|
|
|
78
77
|
omit = [
|
|
79
78
|
"tests/*",
|
|
80
79
|
"__init__.py",
|
|
81
|
-
"*/dapla_metadata/variable_definitions/
|
|
80
|
+
"*/dapla_metadata/variable_definitions/_generated/*",
|
|
82
81
|
]
|
|
83
82
|
relative_files = true
|
|
84
83
|
|
|
85
84
|
[tool.coverage.report]
|
|
86
85
|
show_missing = true
|
|
87
86
|
fail_under = 80
|
|
88
|
-
omit = ["*/dapla_metadata/variable_definitions/
|
|
89
|
-
|
|
90
|
-
[tool.black]
|
|
91
|
-
# We don't want to format generated files because it creates large diffs
|
|
92
|
-
# when generated code is updated.
|
|
93
|
-
extend-exclude = "/generated/"
|
|
87
|
+
omit = ["*/dapla_metadata/variable_definitions/_generated/*"]
|
|
94
88
|
|
|
95
89
|
[tool.mypy]
|
|
96
90
|
plugins = ["pydantic.mypy"]
|
|
@@ -100,10 +94,10 @@ pretty = true
|
|
|
100
94
|
show_column_numbers = true
|
|
101
95
|
show_error_context = true
|
|
102
96
|
# Generated code is not high quality, just ignore the problems there
|
|
103
|
-
exclude = "
|
|
97
|
+
exclude = "_generated/vardef_client/.*"
|
|
104
98
|
|
|
105
99
|
[[tool.mypy.overrides]]
|
|
106
|
-
module = ["dapla_metadata.variable_definitions.
|
|
100
|
+
module = ["dapla_metadata.variable_definitions._generated.vardef_client.*"]
|
|
107
101
|
warn_unreachable = false
|
|
108
102
|
ignore_errors = true
|
|
109
103
|
disable_error_code = ["unreachable"]
|
|
@@ -141,7 +135,7 @@ disable_error_code = [
|
|
|
141
135
|
force-exclude = true # Apply excludes to pre-commit
|
|
142
136
|
show-fixes = true
|
|
143
137
|
src = ["src", "tests"]
|
|
144
|
-
target-version = "
|
|
138
|
+
target-version = "py311" # Minimum Python version supported
|
|
145
139
|
include = ["*.py", "*.pyi", "**/pyproject.toml", "*.ipynb"]
|
|
146
140
|
extend-exclude = [
|
|
147
141
|
"__pycache__",
|
|
@@ -149,19 +143,21 @@ extend-exclude = [
|
|
|
149
143
|
".ipynb_checkpoints",
|
|
150
144
|
"noxfile.py",
|
|
151
145
|
"docs/conf.py",
|
|
146
|
+
"_generated/",
|
|
152
147
|
]
|
|
153
148
|
|
|
154
149
|
# Ruff rules may be customized as desired: https://docs.astral.sh/ruff/rules/
|
|
155
150
|
[tool.ruff.lint]
|
|
156
151
|
select = ["ALL"]
|
|
157
152
|
ignore = [
|
|
158
|
-
"
|
|
159
|
-
"
|
|
160
|
-
"
|
|
161
|
-
"
|
|
162
|
-
"
|
|
163
|
-
"E402",
|
|
164
|
-
"E501",
|
|
153
|
+
"ANN202", # Don't requiere return type annotation for private functions.
|
|
154
|
+
"ANN401", # Allow type annotation with type Any.
|
|
155
|
+
"D100", # Supress undocumented-public-module. Only doc of public api required.
|
|
156
|
+
"FBT001", # Allow boolean positional arguments in a function.
|
|
157
|
+
"FBT002", # Allow boolean default positional arguments in a function.
|
|
158
|
+
"E402", # Supress module-import-not-at-top-of-file, needed in jupyter notebooks.
|
|
159
|
+
"E501", # Supress line-too-long warnings: trust black's judgement on this one.
|
|
160
|
+
"PLR2004", # Allow to compare with unnamed numerical constants.
|
|
165
161
|
]
|
|
166
162
|
|
|
167
163
|
[tool.ruff.lint.isort]
|
|
@@ -176,6 +172,9 @@ convention = "google" # You can also use "numpy".
|
|
|
176
172
|
[tool.ruff.lint.flake8-pytest-style]
|
|
177
173
|
fixture-parentheses = false
|
|
178
174
|
|
|
175
|
+
[tool.ruff.lint.pylint]
|
|
176
|
+
max-args = 8
|
|
177
|
+
|
|
179
178
|
[tool.ruff.lint.pep8-naming]
|
|
180
179
|
classmethod-decorators = [
|
|
181
180
|
"classmethod",
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"""Tools and clients for working with the Dapla Metadata system."""
|
|
2
|
+
|
|
3
|
+
import warnings
|
|
4
|
+
|
|
5
|
+
warnings.filterwarnings(
|
|
6
|
+
"ignore",
|
|
7
|
+
message="As the c extension couldn't be imported, `google-crc32c` is using a pure python implementation that is significantly slower.",
|
|
8
|
+
)
|
|
9
|
+
|
|
10
|
+
import datadoc_model.model as datadoc_model
|
|
11
|
+
|
|
12
|
+
from . import datasets
|
|
13
|
+
from . import variable_definitions
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"""Expose information specific to the Dapla platform."""
|
|
@@ -14,6 +14,8 @@ logger = logging.getLogger(__name__)
|
|
|
14
14
|
|
|
15
15
|
|
|
16
16
|
PLACEHOLDER_EMAIL_ADDRESS = "default_user@ssb.no"
|
|
17
|
+
PLACEHOLDER_GROUP = "default-team-developers"
|
|
18
|
+
PLACEHOLDER_TEAM = "default-team"
|
|
17
19
|
|
|
18
20
|
|
|
19
21
|
class UserInfo(Protocol):
|
|
@@ -27,6 +29,16 @@ class UserInfo(Protocol):
|
|
|
27
29
|
"""Get the short email address."""
|
|
28
30
|
...
|
|
29
31
|
|
|
32
|
+
@property
|
|
33
|
+
def current_group(self) -> str:
|
|
34
|
+
"""Get the group which the user is currently representing."""
|
|
35
|
+
...
|
|
36
|
+
|
|
37
|
+
@property
|
|
38
|
+
def current_team(self) -> str:
|
|
39
|
+
"""Get the team which the user is currently representing."""
|
|
40
|
+
...
|
|
41
|
+
|
|
30
42
|
|
|
31
43
|
class UnknownUserInfo:
|
|
32
44
|
"""Fallback when no implementation is found."""
|
|
@@ -36,6 +48,16 @@ class UnknownUserInfo:
|
|
|
36
48
|
"""Unknown email address."""
|
|
37
49
|
return None
|
|
38
50
|
|
|
51
|
+
@property
|
|
52
|
+
def current_group(self) -> str:
|
|
53
|
+
"""Get the group which the user is currently representing."""
|
|
54
|
+
return ""
|
|
55
|
+
|
|
56
|
+
@property
|
|
57
|
+
def current_team(self) -> str:
|
|
58
|
+
"""Get the team which the user is currently representing."""
|
|
59
|
+
return ""
|
|
60
|
+
|
|
39
61
|
|
|
40
62
|
class TestUserInfo:
|
|
41
63
|
"""Information about the current user for local development and testing."""
|
|
@@ -45,6 +67,16 @@ class TestUserInfo:
|
|
|
45
67
|
"""Get the short email address."""
|
|
46
68
|
return PLACEHOLDER_EMAIL_ADDRESS
|
|
47
69
|
|
|
70
|
+
@property
|
|
71
|
+
def current_group(self) -> str | None:
|
|
72
|
+
"""Get the group which the user is currently representing."""
|
|
73
|
+
return PLACEHOLDER_GROUP
|
|
74
|
+
|
|
75
|
+
@property
|
|
76
|
+
def current_team(self) -> str | None:
|
|
77
|
+
"""Get the team which the user is currently representing."""
|
|
78
|
+
return PLACEHOLDER_TEAM
|
|
79
|
+
|
|
48
80
|
|
|
49
81
|
class DaplaLabUserInfo:
|
|
50
82
|
"""Information about the current user when running on Dapla Lab."""
|
|
@@ -65,6 +97,19 @@ class DaplaLabUserInfo:
|
|
|
65
97
|
)
|
|
66
98
|
return None
|
|
67
99
|
|
|
100
|
+
@property
|
|
101
|
+
def current_group(self) -> str:
|
|
102
|
+
"""Get the group which the user is currently representing."""
|
|
103
|
+
if group := config.get_dapla_group_context():
|
|
104
|
+
return group
|
|
105
|
+
msg = "DAPLA_GROUP_CONTEXT environment variable not found"
|
|
106
|
+
raise OSError(msg)
|
|
107
|
+
|
|
108
|
+
@property
|
|
109
|
+
def current_team(self) -> str:
|
|
110
|
+
"""Get the team which the user is currently representing."""
|
|
111
|
+
return parse_team_name(self.current_group)
|
|
112
|
+
|
|
68
113
|
|
|
69
114
|
class JupyterHubUserInfo:
|
|
70
115
|
"""Information about the current user when running on JupyterHub."""
|
|
@@ -74,6 +119,16 @@ class JupyterHubUserInfo:
|
|
|
74
119
|
"""Get the short email address."""
|
|
75
120
|
return config.get_jupyterhub_user()
|
|
76
121
|
|
|
122
|
+
@property
|
|
123
|
+
def current_group(self) -> str:
|
|
124
|
+
"""Get the group which the user is currently representing."""
|
|
125
|
+
raise NotImplementedError
|
|
126
|
+
|
|
127
|
+
@property
|
|
128
|
+
def current_team(self) -> str:
|
|
129
|
+
"""Get the team which the user is currently representing."""
|
|
130
|
+
raise NotImplementedError
|
|
131
|
+
|
|
77
132
|
|
|
78
133
|
def get_user_info_for_current_platform() -> UserInfo:
|
|
79
134
|
"""Return the correct implementation of UserInfo for the current platform."""
|
|
@@ -88,14 +143,6 @@ def get_user_info_for_current_platform() -> UserInfo:
|
|
|
88
143
|
return UnknownUserInfo()
|
|
89
144
|
|
|
90
145
|
|
|
91
|
-
def get_owner() -> str:
|
|
92
|
-
"""Returns the owner read from the GROUP_CONTEXT environment variable."""
|
|
93
|
-
if group := config.get_dapla_group_context():
|
|
94
|
-
return parse_team_name(group)
|
|
95
|
-
msg = "DAPLA_GROUP_CONTEXT environment variable not found"
|
|
96
|
-
raise OSError(msg)
|
|
97
|
-
|
|
98
|
-
|
|
99
146
|
def parse_team_name(group: str) -> str:
|
|
100
147
|
"""Parses the group to get the current team.
|
|
101
148
|
|
{dapla_toolbelt_metadata-0.4.2 → dapla_toolbelt_metadata-0.5.0}/src/dapla_metadata/datasets/core.py
RENAMED
|
@@ -14,7 +14,7 @@ from datadoc_model import model
|
|
|
14
14
|
from datadoc_model.model import DataSetStatus
|
|
15
15
|
|
|
16
16
|
from dapla_metadata._shared import config
|
|
17
|
-
from dapla_metadata.
|
|
17
|
+
from dapla_metadata.dapla import user_info
|
|
18
18
|
from dapla_metadata.datasets.dapla_dataset_path_info import DaplaDatasetPathInfo
|
|
19
19
|
from dapla_metadata.datasets.dataset_parser import DatasetParser
|
|
20
20
|
from dapla_metadata.datasets.model_backwards_compatibility import (
|
|
@@ -5,7 +5,7 @@ Handles reading in the data and transforming data types to generic metadata type
|
|
|
5
5
|
|
|
6
6
|
from __future__ import annotations
|
|
7
7
|
|
|
8
|
-
import pathlib # noqa:
|
|
8
|
+
import pathlib # noqa: TC003 import is needed for docs build
|
|
9
9
|
import re
|
|
10
10
|
import typing as t
|
|
11
11
|
from abc import ABC
|
|
@@ -15,8 +15,8 @@ from __future__ import annotations
|
|
|
15
15
|
|
|
16
16
|
from collections import OrderedDict
|
|
17
17
|
from dataclasses import dataclass
|
|
18
|
+
from datetime import UTC
|
|
18
19
|
from datetime import datetime
|
|
19
|
-
from datetime import timezone
|
|
20
20
|
from typing import TYPE_CHECKING
|
|
21
21
|
from typing import Any
|
|
22
22
|
|
|
@@ -305,10 +305,10 @@ def handle_version_2_2_0(supplied_metadata: dict[str, Any]) -> dict[str, Any]:
|
|
|
305
305
|
)
|
|
306
306
|
supplied_metadata["datadoc"]["variables"][i]["special_value"] = None
|
|
307
307
|
supplied_metadata["datadoc"]["variables"][i]["custom_type"] = None
|
|
308
|
-
supplied_metadata["datadoc"]["variables"][
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
308
|
+
supplied_metadata["datadoc"]["variables"][i] = (
|
|
309
|
+
_find_and_update_language_strings(
|
|
310
|
+
supplied_metadata["datadoc"]["variables"][i],
|
|
311
|
+
)
|
|
312
312
|
)
|
|
313
313
|
supplied_metadata["datadoc"]["dataset"]["custom_type"] = None
|
|
314
314
|
supplied_metadata["datadoc"]["dataset"] = _find_and_update_language_strings(
|
|
@@ -384,7 +384,7 @@ def handle_version_1_0_0(supplied_metadata: dict[str, Any]) -> dict[str, Any]:
|
|
|
384
384
|
if supplied_metadata["dataset"][field]:
|
|
385
385
|
supplied_metadata["dataset"][field] = datetime.isoformat(
|
|
386
386
|
datetime.fromisoformat(supplied_metadata["dataset"][field]).astimezone(
|
|
387
|
-
tz=
|
|
387
|
+
tz=UTC,
|
|
388
388
|
),
|
|
389
389
|
timespec="seconds",
|
|
390
390
|
)
|
|
@@ -5,11 +5,11 @@ from __future__ import annotations
|
|
|
5
5
|
import logging
|
|
6
6
|
import warnings
|
|
7
7
|
from typing import TYPE_CHECKING
|
|
8
|
+
from typing import Self
|
|
8
9
|
from typing import TextIO
|
|
9
10
|
|
|
10
11
|
from datadoc_model import model
|
|
11
12
|
from pydantic import model_validator
|
|
12
|
-
from typing_extensions import Self
|
|
13
13
|
|
|
14
14
|
from dapla_metadata.datasets.utility.constants import DATE_VALIDATION_MESSAGE
|
|
15
15
|
from dapla_metadata.datasets.utility.constants import NUM_OBLIGATORY_DATASET_FIELDS
|
|
@@ -176,7 +176,7 @@ class ObligatoryVariableWarning(UserWarning):
|
|
|
176
176
|
"""Custom warning for checking obligatory metadata for variables."""
|
|
177
177
|
|
|
178
178
|
|
|
179
|
-
def custom_warning_handler(
|
|
179
|
+
def custom_warning_handler(
|
|
180
180
|
message: Warning | str,
|
|
181
181
|
category: type[Warning],
|
|
182
182
|
filename: str,
|
|
@@ -11,6 +11,6 @@ class SupportedLanguages(str, Enum):
|
|
|
11
11
|
Reference: https://www.iana.org/assignments/language-subtag-registry/language-subtag-registry
|
|
12
12
|
"""
|
|
13
13
|
|
|
14
|
-
NORSK_BOKMÅL = "nb"
|
|
14
|
+
NORSK_BOKMÅL = "nb" # noqa: PLC2401 the listed problems do not apply in this case
|
|
15
15
|
NORSK_NYNORSK = "nn"
|
|
16
16
|
ENGLISH = "en"
|
|
@@ -8,13 +8,13 @@ import uuid
|
|
|
8
8
|
from cloudpathlib import CloudPath
|
|
9
9
|
from cloudpathlib import GSClient
|
|
10
10
|
from cloudpathlib import GSPath
|
|
11
|
-
from dapla import AuthClient
|
|
12
11
|
from datadoc_model import model
|
|
13
12
|
from datadoc_model.model import Assessment
|
|
14
13
|
from datadoc_model.model import DataSetState
|
|
15
14
|
from datadoc_model.model import VariableRole
|
|
16
15
|
|
|
17
|
-
from
|
|
16
|
+
from dapla import AuthClient
|
|
17
|
+
from dapla_metadata.dapla import user_info
|
|
18
18
|
from dapla_metadata.datasets.utility.constants import (
|
|
19
19
|
DATASET_FIELDS_FROM_EXISTING_METADATA,
|
|
20
20
|
)
|
|
@@ -37,7 +37,7 @@ logger = logging.getLogger(__name__)
|
|
|
37
37
|
|
|
38
38
|
def get_timestamp_now() -> datetime.datetime:
|
|
39
39
|
"""Return a timestamp for the current moment."""
|
|
40
|
-
return datetime.datetime.now(tz=datetime.
|
|
40
|
+
return datetime.datetime.now(tz=datetime.UTC)
|
|
41
41
|
|
|
42
42
|
|
|
43
43
|
def normalize_path(path: str) -> pathlib.Path | CloudPath:
|
|
@@ -79,7 +79,7 @@ def derive_assessment_from_state(state: DataSetState) -> Assessment:
|
|
|
79
79
|
Returns:
|
|
80
80
|
The derived assessment of the dataset.
|
|
81
81
|
"""
|
|
82
|
-
match
|
|
82
|
+
match state:
|
|
83
83
|
case (
|
|
84
84
|
DataSetState.INPUT_DATA
|
|
85
85
|
| DataSetState.PROCESSED_DATA
|
|
@@ -147,7 +147,7 @@ def set_dataset_owner(dataset: model.Dataset) -> None:
|
|
|
147
147
|
dataset: The dataset object to set default values on.
|
|
148
148
|
"""
|
|
149
149
|
try:
|
|
150
|
-
dataset.owner = user_info.
|
|
150
|
+
dataset.owner = user_info.get_user_info_for_current_platform().current_team
|
|
151
151
|
except OSError:
|
|
152
152
|
logger.exception("Failed to find environment variable DAPLA_GROUP_CONTEXT")
|
|
153
153
|
|
|
@@ -245,10 +245,7 @@ def _is_missing_multilanguage_value(
|
|
|
245
245
|
len(field_value[0]) > 0
|
|
246
246
|
and not field_value[0]["languageText"]
|
|
247
247
|
and (len(field_value) <= 1 or not field_value[1]["languageText"])
|
|
248
|
-
and (
|
|
249
|
-
len(field_value) <= 2 # noqa: PLR2004 approve magic value
|
|
250
|
-
or not field_value[2]["languageText"]
|
|
251
|
-
)
|
|
248
|
+
and (len(field_value) <= 2 or not field_value[2]["languageText"])
|
|
252
249
|
),
|
|
253
250
|
)
|
|
254
251
|
|
|
@@ -277,8 +274,7 @@ def _is_missing_metadata(
|
|
|
277
274
|
True if the field doesn't have a value, False otherwise.
|
|
278
275
|
"""
|
|
279
276
|
return bool(
|
|
280
|
-
field_name in obligatory_list
|
|
281
|
-
and field_value is None
|
|
277
|
+
(field_name in obligatory_list and field_value is None)
|
|
282
278
|
or _is_missing_multilanguage_value(
|
|
283
279
|
field_name,
|
|
284
280
|
field_value,
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"""Client for working with Variable Definitions at Statistics Norway."""
|
|
2
|
+
|
|
3
|
+
from ._generated.vardef_client import models
|
|
4
|
+
from ._generated.vardef_client.exceptions import * # noqa: F403
|
|
5
|
+
from .exceptions import VardefClientError
|
|
6
|
+
from .exceptions import VardefFileError
|
|
7
|
+
from .exceptions import VariableNotFoundError
|
|
8
|
+
from .vardef import Vardef
|
|
9
|
+
from .variable_definition import VariableDefinition
|
|
@@ -2,21 +2,16 @@ vardef_client/api/__init__.py
|
|
|
2
2
|
vardef_client/api/data_migration_api.py
|
|
3
3
|
vardef_client/api/draft_variable_definitions_api.py
|
|
4
4
|
vardef_client/api/patches_api.py
|
|
5
|
-
vardef_client/api/public_api.py
|
|
6
5
|
vardef_client/api/validity_periods_api.py
|
|
7
6
|
vardef_client/api/variable_definitions_api.py
|
|
8
7
|
vardef_client/models/__init__.py
|
|
9
8
|
vardef_client/models/complete_response.py
|
|
10
9
|
vardef_client/models/contact.py
|
|
11
10
|
vardef_client/models/draft.py
|
|
12
|
-
vardef_client/models/klass_reference.py
|
|
13
11
|
vardef_client/models/language_string_type.py
|
|
14
12
|
vardef_client/models/owner.py
|
|
15
13
|
vardef_client/models/patch.py
|
|
16
14
|
vardef_client/models/problem.py
|
|
17
|
-
vardef_client/models/rendered_contact.py
|
|
18
|
-
vardef_client/models/rendered_variable_definition.py
|
|
19
|
-
vardef_client/models/supported_languages.py
|
|
20
15
|
vardef_client/models/update_draft.py
|
|
21
16
|
vardef_client/models/validity_period.py
|
|
22
17
|
vardef_client/models/variable_status.py
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
7.11.0
|
|
@@ -20,7 +20,6 @@ __version__ = "1.0.0"
|
|
|
20
20
|
from .api.data_migration_api import DataMigrationApi
|
|
21
21
|
from .api.draft_variable_definitions_api import DraftVariableDefinitionsApi
|
|
22
22
|
from .api.patches_api import PatchesApi
|
|
23
|
-
from .api.public_api import PublicApi
|
|
24
23
|
from .api.validity_periods_api import ValidityPeriodsApi
|
|
25
24
|
from .api.variable_definitions_api import VariableDefinitionsApi
|
|
26
25
|
|
|
@@ -39,14 +38,10 @@ from .exceptions import ApiException
|
|
|
39
38
|
from .models.complete_response import CompleteResponse
|
|
40
39
|
from .models.contact import Contact
|
|
41
40
|
from .models.draft import Draft
|
|
42
|
-
from .models.klass_reference import KlassReference
|
|
43
41
|
from .models.language_string_type import LanguageStringType
|
|
44
42
|
from .models.owner import Owner
|
|
45
43
|
from .models.patch import Patch
|
|
46
44
|
from .models.problem import Problem
|
|
47
|
-
from .models.rendered_contact import RenderedContact
|
|
48
|
-
from .models.rendered_variable_definition import RenderedVariableDefinition
|
|
49
|
-
from .models.supported_languages import SupportedLanguages
|
|
50
45
|
from .models.update_draft import UpdateDraft
|
|
51
46
|
from .models.validity_period import ValidityPeriod
|
|
52
47
|
from .models.variable_status import VariableStatus
|
|
@@ -4,6 +4,5 @@
|
|
|
4
4
|
from ..api.data_migration_api import DataMigrationApi
|
|
5
5
|
from ..api.draft_variable_definitions_api import DraftVariableDefinitionsApi
|
|
6
6
|
from ..api.patches_api import PatchesApi
|
|
7
|
-
from ..api.public_api import PublicApi
|
|
8
7
|
from ..api.validity_periods_api import ValidityPeriodsApi
|
|
9
8
|
from ..api.variable_definitions_api import VariableDefinitionsApi
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
"""Variable Definitions
|
|
1
|
+
"""Internal Variable Definitions Administration API
|
|
2
2
|
|
|
3
|
-
## Introduction Variable Definitions are centralized definitions of concrete variables which are typically present in multiple datasets. Variable Definitions support standardization of data and metadata and facilitate sharing and joining of data by clarifying when variables have an identical definition. ## Maintenance of Variable Definitions This API allows for creation, maintenance and access of Variable Definitions. ### Ownership Creation and maintenance of variables may only be performed by Statistics Norway employees representing a specific Dapla team, who are defined as the owners of a given Variable Definition. The team an owner represents must be specified when making a request through the `active_group` query parameter. All maintenance is to be performed by the owners, with no intervention from administrators. ### Status All Variable Definitions have an associated status. The possible values for status are `DRAFT`, `PUBLISHED_INTERNAL` and `PUBLISHED_EXTERNAL`.
|
|
3
|
+
## Introduction Variable Definitions are centralized definitions of concrete variables which are typically present in multiple datasets. Variable Definitions support standardization of data and metadata and facilitate sharing and joining of data by clarifying when variables have an identical definition. ## Maintenance of Variable Definitions This API allows for creation, maintenance and access of Variable Definitions. ### Ownership Creation and maintenance of variables may only be performed by Statistics Norway employees representing a specific Dapla team, who are defined as the owners of a given Variable Definition. The team an owner represents must be specified when making a request through the `active_group` query parameter. All maintenance is to be performed by the owners, with no intervention from administrators. ### Status All Variable Definitions have an associated status. The possible values for status are `DRAFT`, `PUBLISHED_INTERNAL` and `PUBLISHED_EXTERNAL`. #### Draft When a Variable Definition is created it is assigned the status `DRAFT`. Under this status the Variable Definition is: - Only visible to Statistics Norway employees. - Mutable (it may be changed directly without need for versioning). - Not suitable to refer to from other systems. This status may be changed to `PUBLISHED_INTERNAL` or `PUBLISHED_EXTERNAL` with a direct update. #### Published Internal Under this status the Variable Definition is: - Only visible to Statistics Norway employees. - Immutable (all changes are versioned). - Suitable to refer to in internal systems for statistics production. - Not suitable to refer to for external use (for example in Statistikkbanken). This status may be changed to `PUBLISHED_EXTERNAL` by creating a Patch version. #### Published External Under this status the Variable Definition is: - Visible to the general public. - Immutable (all changes are versioned). - Suitable to refer to from any system. This status may not be changed as it would break immutability. If a Variable Definition is no longer relevant then its period of validity should be ended by specifying a `valid_until` date in a Patch version. ### Immutability Variable Definitions are immutable. This means that any changes must be performed in a strict versioning system. Consumers can avoid being exposed to breaking changes by specifying a `date_of_validity` when they request a Variable Definition. #### Patches Patches are for changes which do not affect the fundamental meaning of the Variable Definition. #### Validity Periods Validity Periods are versions with a period defined by a `valid_from` date and optionally a `valid_until` date. If the fundamental meaning of a Variable Definition is to be changed, it should be done by creating a new Validity Period.
|
|
4
4
|
|
|
5
5
|
The version of the OpenAPI document: 0.1
|
|
6
6
|
Contact: metadata@ssb.no
|