dapla-toolbelt-metadata 0.9.6.dev1759398171__tar.gz → 0.9.7__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of dapla-toolbelt-metadata might be problematic. Click here for more details.

Files changed (241) hide show
  1. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/.github/workflows/release.yml +2 -4
  2. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/.github/workflows/tests.yml +1 -1
  3. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/PKG-INFO +5 -1
  4. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/pyproject.toml +5 -1
  5. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/src/dapla_metadata/datasets/core.py +20 -13
  6. dapla_toolbelt_metadata-0.9.7/src/dapla_metadata/datasets/utility/urn.py +161 -0
  7. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/src/dapla_metadata/datasets/utility/utils.py +1 -1
  8. dapla_toolbelt_metadata-0.9.7/tests/datasets/test_urn.py +162 -0
  9. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/uv.lock +256 -213
  10. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/vardef-maintenance/vardef-maintenance.toml +1 -1
  11. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/.cookiecutter.json +0 -0
  12. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/.cruft.json +0 -0
  13. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/.editorconfig +0 -0
  14. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/.gitattributes +0 -0
  15. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
  16. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
  17. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/.github/dependabot.yml +0 -0
  18. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/.github/labels.yml +0 -0
  19. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/.github/release-drafter.yml +0 -0
  20. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/.github/workflows/constraints.txt +0 -0
  21. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/.github/workflows/docs.yml +0 -0
  22. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/.github/workflows/labeler.yml +0 -0
  23. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/.gitignore +0 -0
  24. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/.pre-commit-config.yaml +0 -0
  25. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/.vscode/settings.json +0 -0
  26. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/CODEOWNERS +0 -0
  27. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/CODE_OF_CONDUCT.md +0 -0
  28. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/CONTRIBUTING.md +0 -0
  29. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/LICENSE +0 -0
  30. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/Makefile +0 -0
  31. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/README.md +0 -0
  32. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/SECURITY.md +0 -0
  33. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/backstage.yaml +0 -0
  34. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/bin/__init__.py +0 -0
  35. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/bin/openapi_generate_post_process.sh +0 -0
  36. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/bin/upgrade_metadata_file.py +0 -0
  37. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/demo/datasets/create_metadata_for_new_dataset.ipynb +0 -0
  38. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/demo/datasets/create_metadata_for_new_period.ipynb +0 -0
  39. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/demo/datasets/resources/sykefratot/klargjorte_data/person_testdata_p2021_v1__DOC.json +0 -0
  40. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/demo/standards/navnestandard.ipynb +0 -0
  41. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/demo/variable_definitions/les_variabeldefinisjon.ipynb +0 -0
  42. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/demo/variable_definitions/les_variabeldefinisjoner.ipynb +0 -0
  43. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/demo/variable_definitions/migrer_variabeldefinisjoner.ipynb +0 -0
  44. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/demo/variable_definitions/ny_gyldighetsperiode_variabeldefinisjon.ipynb +0 -0
  45. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/demo/variable_definitions/ny_variabeldefinisjon.ipynb +0 -0
  46. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/demo/variable_definitions/publiser_variabeldefinisjon_eksternt.ipynb +0 -0
  47. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/demo/variable_definitions/publiser_variabeldefinisjon_internt.ipynb +0 -0
  48. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/demo/variable_definitions/rediger_publisert_variabeldefinisjon.ipynb +0 -0
  49. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/demo/variable_definitions/rediger_utkast_variabeldefinisjon.ipynb +0 -0
  50. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/demo/variable_definitions/reserver_kortnavn.ipynb +0 -0
  51. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/demo/variable_definitions/sjekk_kortnavn_variabeldefinisjon.ipynb +0 -0
  52. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/demo/variable_definitions/sjekk_migrerte_variabeldefinisjoner.ipynb +0 -0
  53. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/demo/variable_definitions/slett_utkast_variabeldefinisjon.ipynb +0 -0
  54. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/docs/Makefile +0 -0
  55. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/docs/codeofconduct.md +0 -0
  56. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/docs/conf.py +0 -0
  57. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/docs/contributing.md +0 -0
  58. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/docs/index.md +0 -0
  59. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/docs/license.md +0 -0
  60. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/docs/make.bat +0 -0
  61. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/docs/reference.md +0 -0
  62. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/docs/templates/package.rst_t +0 -0
  63. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/docs/vardef_client.md +0 -0
  64. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/noxfile.py +0 -0
  65. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/schemas/jsonschema/complete-response-schema.json +0 -0
  66. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/sonar-project.properties +0 -0
  67. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/src/dapla_metadata/__init__.py +0 -0
  68. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/src/dapla_metadata/_shared/__init__.py +0 -0
  69. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/src/dapla_metadata/_shared/config.py +0 -0
  70. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/src/dapla_metadata/_shared/enums.py +0 -0
  71. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/src/dapla_metadata/_shared/py.typed +0 -0
  72. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/src/dapla_metadata/dapla/__init__.py +0 -0
  73. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/src/dapla_metadata/dapla/user_info.py +0 -0
  74. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/src/dapla_metadata/datasets/__init__.py +0 -0
  75. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/src/dapla_metadata/datasets/_merge.py +0 -0
  76. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/src/dapla_metadata/datasets/code_list.py +0 -0
  77. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/src/dapla_metadata/datasets/compatibility/__init__.py +0 -0
  78. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/src/dapla_metadata/datasets/compatibility/_handlers.py +0 -0
  79. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/src/dapla_metadata/datasets/compatibility/_utils.py +0 -0
  80. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/src/dapla_metadata/datasets/compatibility/model_backwards_compatibility.py +0 -0
  81. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/src/dapla_metadata/datasets/dapla_dataset_path_info.py +0 -0
  82. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/src/dapla_metadata/datasets/dataset_parser.py +0 -0
  83. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/src/dapla_metadata/datasets/external_sources/__init__.py +0 -0
  84. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/src/dapla_metadata/datasets/external_sources/external_sources.py +0 -0
  85. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/src/dapla_metadata/datasets/model_validation.py +0 -0
  86. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/src/dapla_metadata/datasets/py.typed +0 -0
  87. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/src/dapla_metadata/datasets/statistic_subject_mapping.py +0 -0
  88. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/src/dapla_metadata/datasets/utility/__init__.py +0 -0
  89. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/src/dapla_metadata/datasets/utility/constants.py +0 -0
  90. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/src/dapla_metadata/datasets/utility/enums.py +0 -0
  91. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/src/dapla_metadata/standards/__init__.py +0 -0
  92. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/src/dapla_metadata/standards/name_validator.py +0 -0
  93. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/src/dapla_metadata/standards/standard_validators.py +0 -0
  94. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/src/dapla_metadata/standards/utils/__init__.py +0 -0
  95. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/src/dapla_metadata/standards/utils/constants.py +0 -0
  96. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/src/dapla_metadata/variable_definitions/__init__.py +0 -0
  97. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/src/dapla_metadata/variable_definitions/_generated/.openapi-generator/FILES +0 -0
  98. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/src/dapla_metadata/variable_definitions/_generated/.openapi-generator/VERSION +0 -0
  99. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/src/dapla_metadata/variable_definitions/_generated/.openapi-generator-ignore +0 -0
  100. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/src/dapla_metadata/variable_definitions/_generated/README.md +0 -0
  101. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/src/dapla_metadata/variable_definitions/_generated/__init__.py +0 -0
  102. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/src/dapla_metadata/variable_definitions/_generated/vardef_client/__init__.py +0 -0
  103. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/src/dapla_metadata/variable_definitions/_generated/vardef_client/api/__init__.py +0 -0
  104. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/src/dapla_metadata/variable_definitions/_generated/vardef_client/api/data_migration_api.py +0 -0
  105. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/src/dapla_metadata/variable_definitions/_generated/vardef_client/api/draft_variable_definitions_api.py +0 -0
  106. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/src/dapla_metadata/variable_definitions/_generated/vardef_client/api/patches_api.py +0 -0
  107. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/src/dapla_metadata/variable_definitions/_generated/vardef_client/api/validity_periods_api.py +0 -0
  108. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/src/dapla_metadata/variable_definitions/_generated/vardef_client/api/variable_definitions_api.py +0 -0
  109. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/src/dapla_metadata/variable_definitions/_generated/vardef_client/api_client.py +0 -0
  110. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/src/dapla_metadata/variable_definitions/_generated/vardef_client/api_response.py +0 -0
  111. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/src/dapla_metadata/variable_definitions/_generated/vardef_client/configuration.py +0 -0
  112. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/src/dapla_metadata/variable_definitions/_generated/vardef_client/docs/CompleteResponse.md +0 -0
  113. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/src/dapla_metadata/variable_definitions/_generated/vardef_client/docs/Contact.md +0 -0
  114. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/src/dapla_metadata/variable_definitions/_generated/vardef_client/docs/DataMigrationApi.md +0 -0
  115. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/src/dapla_metadata/variable_definitions/_generated/vardef_client/docs/Draft.md +0 -0
  116. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/src/dapla_metadata/variable_definitions/_generated/vardef_client/docs/DraftVariableDefinitionsApi.md +0 -0
  117. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/src/dapla_metadata/variable_definitions/_generated/vardef_client/docs/LanguageStringType.md +0 -0
  118. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/src/dapla_metadata/variable_definitions/_generated/vardef_client/docs/Owner.md +0 -0
  119. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/src/dapla_metadata/variable_definitions/_generated/vardef_client/docs/Patch.md +0 -0
  120. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/src/dapla_metadata/variable_definitions/_generated/vardef_client/docs/PatchesApi.md +0 -0
  121. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/src/dapla_metadata/variable_definitions/_generated/vardef_client/docs/PublicApi.md +0 -0
  122. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/src/dapla_metadata/variable_definitions/_generated/vardef_client/docs/SupportedLanguages.md +0 -0
  123. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/src/dapla_metadata/variable_definitions/_generated/vardef_client/docs/UpdateDraft.md +0 -0
  124. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/src/dapla_metadata/variable_definitions/_generated/vardef_client/docs/ValidityPeriod.md +0 -0
  125. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/src/dapla_metadata/variable_definitions/_generated/vardef_client/docs/ValidityPeriodsApi.md +0 -0
  126. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/src/dapla_metadata/variable_definitions/_generated/vardef_client/docs/VariableDefinitionsApi.md +0 -0
  127. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/src/dapla_metadata/variable_definitions/_generated/vardef_client/docs/VariableStatus.md +0 -0
  128. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/src/dapla_metadata/variable_definitions/_generated/vardef_client/exceptions.py +0 -0
  129. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/src/dapla_metadata/variable_definitions/_generated/vardef_client/models/__init__.py +0 -0
  130. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/src/dapla_metadata/variable_definitions/_generated/vardef_client/models/complete_response.py +0 -0
  131. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/src/dapla_metadata/variable_definitions/_generated/vardef_client/models/contact.py +0 -0
  132. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/src/dapla_metadata/variable_definitions/_generated/vardef_client/models/draft.py +0 -0
  133. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/src/dapla_metadata/variable_definitions/_generated/vardef_client/models/get_vardok_vardef_mapping_by_id200_response.py +0 -0
  134. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/src/dapla_metadata/variable_definitions/_generated/vardef_client/models/language_string_type.py +0 -0
  135. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/src/dapla_metadata/variable_definitions/_generated/vardef_client/models/owner.py +0 -0
  136. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/src/dapla_metadata/variable_definitions/_generated/vardef_client/models/patch.py +0 -0
  137. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/src/dapla_metadata/variable_definitions/_generated/vardef_client/models/problem.py +0 -0
  138. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/src/dapla_metadata/variable_definitions/_generated/vardef_client/models/update_draft.py +0 -0
  139. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/src/dapla_metadata/variable_definitions/_generated/vardef_client/models/validity_period.py +0 -0
  140. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/src/dapla_metadata/variable_definitions/_generated/vardef_client/models/vardok_id_response.py +0 -0
  141. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/src/dapla_metadata/variable_definitions/_generated/vardef_client/models/vardok_vardef_id_pair_response.py +0 -0
  142. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/src/dapla_metadata/variable_definitions/_generated/vardef_client/models/variable_status.py +0 -0
  143. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/src/dapla_metadata/variable_definitions/_generated/vardef_client/py.typed +0 -0
  144. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/src/dapla_metadata/variable_definitions/_generated/vardef_client/rest.py +0 -0
  145. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/src/dapla_metadata/variable_definitions/_utils/__init__.py +0 -0
  146. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/src/dapla_metadata/variable_definitions/_utils/_client.py +0 -0
  147. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/src/dapla_metadata/variable_definitions/_utils/config.py +0 -0
  148. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/src/dapla_metadata/variable_definitions/_utils/constants.py +0 -0
  149. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/src/dapla_metadata/variable_definitions/_utils/files.py +0 -0
  150. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/src/dapla_metadata/variable_definitions/_utils/template_files.py +0 -0
  151. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/src/dapla_metadata/variable_definitions/_utils/variable_definition_files.py +0 -0
  152. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/src/dapla_metadata/variable_definitions/exceptions.py +0 -0
  153. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/src/dapla_metadata/variable_definitions/vardef.py +0 -0
  154. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/src/dapla_metadata/variable_definitions/vardok_id.py +0 -0
  155. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/src/dapla_metadata/variable_definitions/vardok_vardef_id_pair.py +0 -0
  156. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/src/dapla_metadata/variable_definitions/variable_definition.py +0 -0
  157. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/tests/__init__.py +0 -0
  158. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/tests/conftest.py +0 -0
  159. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/tests/dapla/__init__.py +0 -0
  160. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/tests/dapla/test_user_info.py +0 -0
  161. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/tests/datasets/__init__.py +0 -0
  162. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/tests/datasets/conftest.py +0 -0
  163. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/tests/datasets/constants.py +0 -0
  164. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/tests/datasets/resources/code_list/code_list.csv +0 -0
  165. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/tests/datasets/resources/code_list/code_list_en.csv +0 -0
  166. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/tests/datasets/resources/code_list/code_list_nb.csv +0 -0
  167. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/tests/datasets/resources/code_list/code_list_nn.csv +0 -0
  168. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/tests/datasets/resources/code_list/empty.csv +0 -0
  169. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/tests/datasets/resources/code_list/no_code.csv +0 -0
  170. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/tests/datasets/resources/datasets/fewer_variables_p2021-12-31_p2021-12-31_v1.parquet +0 -0
  171. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/tests/datasets/resources/datasets/ifpn/klargjorte_data/person_testdata_p2021-12-31_p2021-12-31_v1.parquet +0 -0
  172. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/tests/datasets/resources/datasets/person_data.csv +0 -0
  173. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/tests/datasets/resources/datasets/person_data_v1.parquet +0 -0
  174. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/tests/datasets/resources/datasets/person_data_v1.parquet.gzip +0 -0
  175. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/tests/datasets/resources/datasets/person_testdata_p2021-12-31_p2021-12-31_v1.parquet +0 -0
  176. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/tests/datasets/resources/datasets/sasdata.sas7bdat +0 -0
  177. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/tests/datasets/resources/existing_metadata_file/compatibility/README.md +0 -0
  178. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/tests/datasets/resources/existing_metadata_file/compatibility/v0_1_1/person_data_v1__DOC.json +0 -0
  179. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/tests/datasets/resources/existing_metadata_file/compatibility/v1_0_0/person_data_v1__DOC.json +0 -0
  180. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/tests/datasets/resources/existing_metadata_file/compatibility/v2_1_0/person_data_v1__DOC.json +0 -0
  181. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/tests/datasets/resources/existing_metadata_file/compatibility/v2_2_0/person_data_v1__DOC.json +0 -0
  182. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/tests/datasets/resources/existing_metadata_file/compatibility/v3_1_0/person_data_v1__DOC.json +0 -0
  183. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/tests/datasets/resources/existing_metadata_file/compatibility/v3_2_0/person_data_v1__DOC.json +0 -0
  184. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/tests/datasets/resources/existing_metadata_file/compatibility/v3_3_0/person_data_v1__DOC.json +0 -0
  185. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/tests/datasets/resources/existing_metadata_file/compatibility/v4_0_0/person_data_v1__DOC.json +0 -0
  186. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/tests/datasets/resources/existing_metadata_file/compatibility/v5_0_1/person_data_v1__DOC.json +0 -0
  187. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/tests/datasets/resources/existing_metadata_file/compatibility/v6_0_0/person_data_v1__DOC.json +0 -0
  188. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/tests/datasets/resources/existing_metadata_file/fewer_variables_p2020-12-31_p2020-12-31_v1__DOC.json +0 -0
  189. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/tests/datasets/resources/existing_metadata_file/invalid_id_field/person_data_v1__DOC.json +0 -0
  190. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/tests/datasets/resources/existing_metadata_file/person_data_v1__DOC.json +0 -0
  191. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/tests/datasets/resources/existing_metadata_file/person_testdata_p2020-12-31_p2020-12-31_v1__DOC.json +0 -0
  192. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/tests/datasets/resources/existing_metadata_file/pseudo/dataset_and_pseudo/no_pseudo_v4_0_0_person_data_v1__DOC.json +0 -0
  193. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/tests/datasets/resources/existing_metadata_file/pseudo/dataset_and_pseudo/person_data_v1__DOC.json +0 -0
  194. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/tests/datasets/resources/existing_metadata_file/pseudo/dataset_and_pseudo/v4_0_0_person_data_v1__DOC.json +0 -0
  195. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/tests/datasets/resources/existing_metadata_file/pseudo/pseudo/person_data_v1__DOC.json +0 -0
  196. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/tests/datasets/resources/existing_metadata_file/pseudo/pseudo_missing_variables/person_data_v1__DOC.json +0 -0
  197. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/tests/datasets/resources/existing_metadata_file/valid_id_field/person_data_v1__DOC.json +0 -0
  198. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/tests/datasets/resources/existing_metadata_file/valid_variable_id_field/person_data_v1__DOC.json +0 -0
  199. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/tests/datasets/resources/klargjorte_data/person_testdata_p2021-12-31_p2021-12-31_v1.parquet +0 -0
  200. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/tests/datasets/resources/klargjorte_data/person_testdata_p2021-12-31_p2021-12-31_v1__DOC.json +0 -0
  201. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/tests/datasets/resources/statistical_subject_structure/empty.xml +0 -0
  202. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/tests/datasets/resources/statistical_subject_structure/extract_secondary_subject.xml +0 -0
  203. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/tests/datasets/resources/statistical_subject_structure/missing_language.xml +0 -0
  204. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/tests/datasets/resources/statistical_subject_structure/simple.xml +0 -0
  205. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/tests/datasets/test_code_list.py +0 -0
  206. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/tests/datasets/test_dapla_dataset_path_info.py +0 -0
  207. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/tests/datasets/test_datadoc_metadata.py +0 -0
  208. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/tests/datasets/test_dataset_consistency.py +0 -0
  209. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/tests/datasets/test_dataset_parser.py +0 -0
  210. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/tests/datasets/test_model_backwards_compatibility.py +0 -0
  211. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/tests/datasets/test_pseudonymization.py +0 -0
  212. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/tests/datasets/test_statistic_subject_mapping.py +0 -0
  213. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/tests/datasets/test_utils.py +0 -0
  214. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/tests/datasets/test_validators.py +0 -0
  215. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/tests/standards/__init__.py +0 -0
  216. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/tests/standards/conftest.py +0 -0
  217. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/tests/standards/test_check_naming_standard.py +0 -0
  218. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/tests/utils/__init__.py +0 -0
  219. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/tests/utils/constants.py +0 -0
  220. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/tests/utils/microcks_testcontainer.py +0 -0
  221. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/tests/variable_definitions/__init__.py +0 -0
  222. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/tests/variable_definitions/conftest.py +0 -0
  223. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/tests/variable_definitions/constants.py +0 -0
  224. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/tests/variable_definitions/resources/openapi/variable-definitions-internal.yml +0 -0
  225. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/tests/variable_definitions/resources/variable_definition_editing_files/classification_reference.yaml +0 -0
  226. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/tests/variable_definitions/resources/variable_definition_editing_files/date_and_definition.yaml +0 -0
  227. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/tests/variable_definitions/resources/variable_definition_editing_files/variable_definition_landbak_wypvb3wd_2025-05-02T10-06-20.yaml +0 -0
  228. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/tests/variable_definitions/resources/variable_definition_editing_files/variable_definition_var_test_wypvb3wd_2025-09-18T14-19-28.yaml +0 -0
  229. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/tests/variable_definitions/test_config.py +0 -0
  230. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/tests/variable_definitions/test_template_files.py +0 -0
  231. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/tests/variable_definitions/test_vardef.py +0 -0
  232. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/tests/variable_definitions/test_variable_definition.py +0 -0
  233. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/tests/variable_definitions/test_variable_definition_files.py +0 -0
  234. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/tests/variable_definitions/vardef_client/__init__.py +0 -0
  235. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/tests/variable_definitions/vardef_client/api/__init__.py +0 -0
  236. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/tests/variable_definitions/vardef_client/api/test_happy_path.py +0 -0
  237. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/tests/variable_definitions/vardef_client/models/__init__.py +0 -0
  238. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/tests/variable_definitions/vardef_client/models/test_models_instantiation.py +0 -0
  239. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/tests/variable_definitions/vardef_client/test_exceptions.py +0 -0
  240. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/vardef-maintenance/README.md +0 -0
  241. {dapla_toolbelt_metadata-0.9.6.dev1759398171 → dapla_toolbelt_metadata-0.9.7}/vardef-maintenance/vardef_client_init.sh +0 -0
@@ -1,14 +1,11 @@
1
1
  name: Release
2
2
 
3
3
  on:
4
+ workflow_dispatch:
4
5
  push:
5
6
  branches:
6
7
  - main
7
8
  - master
8
- - release/0.9.6
9
- tags:
10
- - 'v*'
11
-
12
9
 
13
10
  jobs:
14
11
  release:
@@ -58,6 +55,7 @@ jobs:
58
55
  uv build
59
56
 
60
57
  - name: Publish package on PyPI
58
+ if: steps.check-version.outputs.tag
61
59
  uses: pypa/gh-action-pypi-publish@v1.13.0
62
60
 
63
61
  - name: Publish package on TestPyPI
@@ -141,4 +141,4 @@ jobs:
141
141
  SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
142
142
  # No need to run SonarCloud analysis if dependabot update or token not defined
143
143
  if: env.SONAR_TOKEN != '' && (github.actor != 'dependabot[bot]')
144
- uses: SonarSource/sonarqube-scan-action@v5.3.1
144
+ uses: SonarSource/sonarqube-scan-action@v6.0.0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dapla-toolbelt-metadata
3
- Version: 0.9.6.dev1759398171
3
+ Version: 0.9.7
4
4
  Summary: Dapla Toolbelt Metadata
5
5
  Project-URL: homepage, https://github.com/statisticsnorway/dapla-toolbelt-metadata
6
6
  Project-URL: repository, https://github.com/statisticsnorway/dapla-toolbelt-metadata
@@ -16,15 +16,19 @@ Requires-Dist: beautifulsoup4>=4.12.3
16
16
  Requires-Dist: cloudpathlib[gs]>=0.17.0
17
17
  Requires-Dist: google-auth>=2.38.0
18
18
  Requires-Dist: lxml>=5.3.1
19
+ Requires-Dist: pandas>=2.3.3
19
20
  Requires-Dist: pyarrow>=8.0.0
20
21
  Requires-Dist: pydantic>=2.5.2
21
22
  Requires-Dist: pyjwt>=2.8.0
23
+ Requires-Dist: python-dateutil>=2.9.0.post0
22
24
  Requires-Dist: python-dotenv>=1.0.1
25
+ Requires-Dist: pytz>=2025.2
23
26
  Requires-Dist: requests>=2.31.0
24
27
  Requires-Dist: ruamel-yaml>=0.18.10
25
28
  Requires-Dist: ssb-datadoc-model<9.0.0,>=8.0.0
26
29
  Requires-Dist: ssb-klass-python>=1.0.1
27
30
  Requires-Dist: typing-extensions>=4.12.2
31
+ Requires-Dist: urllib3>=2.5.0
28
32
  Description-Content-Type: text/markdown
29
33
 
30
34
  # Dapla Toolbelt Metadata
@@ -2,7 +2,7 @@
2
2
  name = "dapla-toolbelt-metadata"
3
3
  description = "Dapla Toolbelt Metadata"
4
4
  license = "MIT"
5
- version = "0.9.6.dev.1759398171"
5
+ version = "0.9.7"
6
6
  classifiers = ["Development Status :: 4 - Beta"]
7
7
  readme = "README.md"
8
8
  authors = [{ name = "Statistics Norway", email = "metadata@ssb.no" }]
@@ -22,6 +22,10 @@ dependencies = [
22
22
  'ruamel-yaml >=0.18.10',
23
23
  'google-auth >=2.38.0',
24
24
  'lxml >=5.3.1',
25
+ "pandas>=2.3.3",
26
+ "urllib3>=2.5.0",
27
+ "pytz>=2025.2",
28
+ "python-dateutil>=2.9.0.post0",
25
29
  ]
26
30
 
27
31
  [project.urls]
@@ -33,7 +33,12 @@ from dapla_metadata.datasets.utility.constants import (
33
33
  from dapla_metadata.datasets.utility.constants import METADATA_DOCUMENT_FILE_SUFFIX
34
34
  from dapla_metadata.datasets.utility.constants import NUM_OBLIGATORY_DATASET_FIELDS
35
35
  from dapla_metadata.datasets.utility.constants import NUM_OBLIGATORY_VARIABLES_FIELDS
36
+ from dapla_metadata.datasets.utility.urn import convert_uris_to_urns
37
+ from dapla_metadata.datasets.utility.urn import klass_urn_converter
38
+ from dapla_metadata.datasets.utility.urn import vardef_urn_converter
36
39
  from dapla_metadata.datasets.utility.utils import OptionalDatadocMetadataType
40
+ from dapla_metadata.datasets.utility.utils import VariableListType
41
+ from dapla_metadata.datasets.utility.utils import VariableType
37
42
  from dapla_metadata.datasets.utility.utils import calculate_percentage
38
43
  from dapla_metadata.datasets.utility.utils import derive_assessment_from_state
39
44
  from dapla_metadata.datasets.utility.utils import get_timestamp_now
@@ -108,8 +113,8 @@ class Datadoc:
108
113
  self.container: all_optional_model.MetadataContainer | None = None
109
114
  self.dataset_path: pathlib.Path | CloudPath | None = None
110
115
  self.dataset = all_optional_model.Dataset()
111
- self.variables: list = []
112
- self.variables_lookup: dict[str, all_optional_model.Variable] = {}
116
+ self.variables: VariableListType = []
117
+ self.variables_lookup: dict[str, VariableType] = {}
113
118
  self.explicitly_defined_metadata_document = False
114
119
  self.dataset_consistency_status: list[DatasetConsistencyStatus] = []
115
120
  if metadata_document_path:
@@ -204,22 +209,24 @@ class Datadoc:
204
209
  else:
205
210
  self._set_metadata(existing_metadata or extracted_metadata)
206
211
 
207
- set_default_values_variables(self.variables)
208
- set_default_values_dataset(cast("all_optional_model.Dataset", self.dataset))
209
- set_dataset_owner(self.dataset)
210
- self._create_variables_lookup()
211
-
212
212
  def _set_metadata(
213
213
  self,
214
- merged_metadata: OptionalDatadocMetadataType,
214
+ metadata: OptionalDatadocMetadataType,
215
215
  ) -> None:
216
- if not merged_metadata or not (
217
- merged_metadata.dataset and merged_metadata.variables
218
- ):
216
+ if not metadata or not (metadata.dataset and metadata.variables):
219
217
  msg = "Could not read metadata"
220
218
  raise ValueError(msg)
221
- self.dataset = cast("all_optional_model.Dataset", merged_metadata.dataset)
222
- self.variables = merged_metadata.variables
219
+ self.dataset = cast("all_optional_model.Dataset", metadata.dataset)
220
+ self.variables = metadata.variables
221
+
222
+ set_default_values_variables(self.variables)
223
+ set_default_values_dataset(cast("all_optional_model.Dataset", self.dataset))
224
+ set_dataset_owner(self.dataset)
225
+ convert_uris_to_urns(self.variables, "definition_uri", [vardef_urn_converter])
226
+ convert_uris_to_urns(
227
+ self.variables, "classification_uri", [klass_urn_converter]
228
+ )
229
+ self._create_variables_lookup()
223
230
 
224
231
  def _create_variables_lookup(self) -> None:
225
232
  self.variables_lookup = {
@@ -0,0 +1,161 @@
1
+ """Validate, parse and render URNs."""
2
+
3
+ import logging
4
+ import re
5
+ from collections.abc import Iterable
6
+ from dataclasses import dataclass
7
+ from enum import Enum
8
+ from enum import auto
9
+
10
+ from pydantic import AnyUrl
11
+
12
+ from dapla_metadata.datasets.utility.utils import VariableListType
13
+
14
+ logger = logging.getLogger(__name__)
15
+
16
+ URN_ERROR_MESSAGE_BASE = "The URL is not in a supported format"
17
+
18
+ URN_ERROR_MESSAGE_TEMPLATE = (
19
+ URN_ERROR_MESSAGE_BASE
20
+ + " for field '{field_name}' of variable '{short_name}'. URL: '{value}'. Please contact Team Metadata if this URL should be supported."
21
+ )
22
+
23
+
24
+ VARDEF_URL_TEMPLATE = "https://{subdomain}.{domain}/variable-definitions"
25
+
26
+
27
+ class SsbNaisDomains(str, Enum):
28
+ """The available domains on SSBs Nais instance."""
29
+
30
+ TEST_EXTERNAL = "test.ssb.no"
31
+ TEST_INTERNAL = "intern.test.ssb.no"
32
+ PROD_EXTERNAL = "ssb.no"
33
+ PROD_INTERNAL = "intern.ssb.no"
34
+
35
+
36
+ class ReferenceUrlTypes(Enum):
37
+ """The general category of the URL.
38
+
39
+ This can be useful to refer to when constructing a URL from a URN for a
40
+ specific context.
41
+ """
42
+
43
+ API = auto()
44
+ FRONTEND = auto()
45
+
46
+
47
+ @dataclass
48
+ class UrnConverter:
49
+ """Converts URLs to URNs and vice versa.
50
+
51
+ Fields:
52
+ urn_base: The format for the URN, up to the identifier.
53
+ id_pattern: A capturing group pattern which matches identifiers for this resource.
54
+ url_bases: The list of all the different URL representations for a resource. There
55
+ will typically be a number of URL representations for a particular resource,
56
+ depending on which system or technology they are accessed through and other
57
+ technical factors. This list defines which concrete URLs can be considered
58
+ equivalent to a URN.
59
+ """
60
+
61
+ urn_base: str
62
+ id_pattern: str
63
+ url_bases: list[tuple[ReferenceUrlTypes, str]]
64
+
65
+ def _extract_id(self, url: str, pattern: re.Pattern[str]) -> str | None:
66
+ if match := pattern.match(url):
67
+ return match.group(1)
68
+ return None
69
+
70
+ def _build_pattern(self, url_base: str) -> re.Pattern[str]:
71
+ return re.compile(f"^{url_base}/{self.id_pattern}")
72
+
73
+ def build_urn(self, identifier: str) -> str:
74
+ """Build a URN for the given identifier."""
75
+ return f"{self.urn_base}:{identifier}"
76
+
77
+ def convert_to_urn(self, url: str | AnyUrl) -> AnyUrl | None:
78
+ """Convert a URL to a generalized URN for that same resource.
79
+
80
+ Args:
81
+ url (str | AnyUrl): The URL to convert.
82
+
83
+ Returns:
84
+ str | None: The URN or None if it can't be converted.
85
+ """
86
+ if str(url).startswith(self.urn_base):
87
+ # In this case the value is already in the expected format and nothing needs to be done.
88
+ return AnyUrl(url)
89
+ patterns = (self._build_pattern(url[-1]) for url in self.url_bases)
90
+ matches = (self._extract_id(str(url), p) for p in patterns)
91
+ identifier = next((m for m in matches if m), None)
92
+ if identifier:
93
+ return AnyUrl(self.build_urn(identifier))
94
+
95
+ return None
96
+
97
+
98
+ vardef_urn_converter = UrnConverter(
99
+ urn_base="urn:ssb:variable-definition:vardef",
100
+ id_pattern=r"([a-z0-9]{8})",
101
+ url_bases=[
102
+ *[
103
+ (
104
+ ReferenceUrlTypes.API,
105
+ VARDEF_URL_TEMPLATE.format(
106
+ subdomain="metadata", domain=nais_domain.value
107
+ ),
108
+ )
109
+ for nais_domain in SsbNaisDomains
110
+ ],
111
+ *[
112
+ (
113
+ ReferenceUrlTypes.FRONTEND,
114
+ VARDEF_URL_TEMPLATE.format(
115
+ subdomain="catalog", domain=nais_domain.value
116
+ ),
117
+ )
118
+ for nais_domain in SsbNaisDomains
119
+ ],
120
+ ],
121
+ )
122
+
123
+ klass_urn_converter = UrnConverter(
124
+ urn_base="urn:ssb:classification:klass",
125
+ id_pattern=r"([0-9]{1,5})",
126
+ url_bases=[
127
+ (ReferenceUrlTypes.FRONTEND, "https://www.ssb.no/klass/klassifikasjoner"),
128
+ (ReferenceUrlTypes.FRONTEND, "https://www.ssb.no/en/klass/klassifikasjoner"),
129
+ (ReferenceUrlTypes.API, "https://data.ssb.no/api/klass/v1/classifications"),
130
+ ],
131
+ )
132
+
133
+
134
+ def convert_uris_to_urns(
135
+ variables: VariableListType, field_name: str, converters: Iterable[UrnConverter]
136
+ ) -> None:
137
+ """Where URIs are recognized URLs, convert them to URNs.
138
+
139
+ Where the value is not a known URL we preserve the value as it is and log an
140
+ ERROR level message.
141
+
142
+ Args:
143
+ variables (VariableListType): The list of variables.
144
+ field_name (str): The name of the field which has URLs to convert to URNs
145
+ converters (Iterable[UrnConverter]): One or more converters which implement
146
+ conversion of URLs into one specific URN format. These will typically be
147
+ specific to an individual metadata reference system.
148
+ """
149
+ for v in variables:
150
+ field = getattr(v, field_name, None)
151
+ if field:
152
+ if urn := next((c.convert_to_urn(field) for c in converters), None):
153
+ setattr(v, field_name, urn)
154
+ else:
155
+ logger.error(
156
+ URN_ERROR_MESSAGE_TEMPLATE.format(
157
+ field_name=field_name,
158
+ short_name=v.short_name,
159
+ value=field,
160
+ )
161
+ )
@@ -121,7 +121,7 @@ def derive_assessment_from_state(state: DataSetState) -> Assessment:
121
121
  return Assessment.SENSITIVE
122
122
 
123
123
 
124
- def set_default_values_variables(variables: list) -> None:
124
+ def set_default_values_variables(variables: VariableListType) -> None:
125
125
  """Set default values on variables.
126
126
 
127
127
  Args:
@@ -0,0 +1,162 @@
1
+ import logging
2
+
3
+ import datadoc_model.all_optional.model as all_optional_model
4
+ import pytest
5
+ from pydantic import AnyUrl
6
+
7
+ from dapla_metadata.datasets.core import Datadoc
8
+ from dapla_metadata.datasets.utility.urn import URN_ERROR_MESSAGE_BASE
9
+ from dapla_metadata.datasets.utility.urn import SsbNaisDomains
10
+ from dapla_metadata.datasets.utility.urn import klass_urn_converter
11
+ from dapla_metadata.datasets.utility.urn import vardef_urn_converter
12
+
13
+ EXAMPLE_KLASS_ID = "91"
14
+ EXAMPLE_KLASS_URN = AnyUrl(klass_urn_converter.build_urn(EXAMPLE_KLASS_ID))
15
+ EXAMPLE_VARDEF_ID = "hd8sks89"
16
+ EXAMPLE_VARDEF_URN = AnyUrl(vardef_urn_converter.build_urn(EXAMPLE_VARDEF_ID))
17
+
18
+ VARIABLE_DEFINITION_URN_TEST_CASES = [
19
+ *[
20
+ (
21
+ f"https://metadata.{domain.value}/variable-definitions/{EXAMPLE_VARDEF_ID}",
22
+ EXAMPLE_VARDEF_URN,
23
+ False,
24
+ )
25
+ for domain in SsbNaisDomains
26
+ ],
27
+ *[
28
+ (
29
+ f"https://catalog.{domain.value}/variable-definitions/{EXAMPLE_VARDEF_ID}",
30
+ EXAMPLE_VARDEF_URN,
31
+ False,
32
+ )
33
+ for domain in SsbNaisDomains
34
+ ],
35
+ (
36
+ EXAMPLE_VARDEF_URN,
37
+ EXAMPLE_VARDEF_URN,
38
+ False,
39
+ ),
40
+ ]
41
+
42
+
43
+ @pytest.mark.parametrize(
44
+ ("case", "expected_result", "expect_warning"),
45
+ [
46
+ *VARIABLE_DEFINITION_URN_TEST_CASES,
47
+ ("https://www.vg.no", None, True),
48
+ ],
49
+ )
50
+ def test_convert_to_vardef_urn(
51
+ case: str,
52
+ expected_result: AnyUrl | None,
53
+ expect_warning: bool, # noqa: ARG001
54
+ ):
55
+ assert vardef_urn_converter.convert_to_urn(case) == expected_result
56
+
57
+
58
+ @pytest.mark.parametrize(
59
+ ("case", "expected_result", "expect_warning"),
60
+ [
61
+ *VARIABLE_DEFINITION_URN_TEST_CASES,
62
+ ("https://www.vg.no", AnyUrl("https://www.vg.no/"), True),
63
+ (None, None, False),
64
+ ],
65
+ )
66
+ def test_convert_to_vardef_urn_end_to_end(
67
+ case: str | None,
68
+ expected_result: str | None,
69
+ expect_warning: bool,
70
+ caplog: pytest.LogCaptureFixture,
71
+ ):
72
+ caplog.set_level(logging.ERROR)
73
+ meta = Datadoc()
74
+ meta._set_metadata( # noqa: SLF001
75
+ all_optional_model.DatadocMetadata(
76
+ dataset=all_optional_model.Dataset(),
77
+ variables=[
78
+ all_optional_model.Variable(
79
+ short_name="my_variable", definition_uri=case
80
+ )
81
+ ],
82
+ )
83
+ )
84
+ if not expected_result:
85
+ assert meta.variables[0].definition_uri is None
86
+ else:
87
+ assert meta.variables[0].definition_uri == expected_result
88
+ assert (URN_ERROR_MESSAGE_BASE in caplog.text) is expect_warning
89
+
90
+
91
+ CLASSIFICATION_URN_TEST_CASES = [
92
+ (
93
+ f"https://www.ssb.no/klass/klassifikasjoner/{EXAMPLE_KLASS_ID}",
94
+ EXAMPLE_KLASS_URN,
95
+ False,
96
+ ),
97
+ (
98
+ f"https://www.ssb.no/en/klass/klassifikasjoner/{EXAMPLE_KLASS_ID}",
99
+ EXAMPLE_KLASS_URN,
100
+ False,
101
+ ),
102
+ (
103
+ f"https://data.ssb.no/api/klass/v1/classifications/{EXAMPLE_KLASS_ID}",
104
+ EXAMPLE_KLASS_URN,
105
+ False,
106
+ ),
107
+ (
108
+ f"https://data.ssb.no/api/klass/v1/classifications/{EXAMPLE_KLASS_ID}.json",
109
+ EXAMPLE_KLASS_URN,
110
+ False,
111
+ ),
112
+ (
113
+ EXAMPLE_KLASS_URN,
114
+ EXAMPLE_KLASS_URN,
115
+ False,
116
+ ),
117
+ ]
118
+
119
+
120
+ @pytest.mark.parametrize(
121
+ ("case", "expected_result", "expect_warning"),
122
+ CLASSIFICATION_URN_TEST_CASES,
123
+ )
124
+ def test_convert_to_klass_urn(
125
+ case: str,
126
+ expected_result: str,
127
+ expect_warning: bool, # noqa: ARG001
128
+ ):
129
+ assert klass_urn_converter.convert_to_urn(case) == expected_result
130
+
131
+
132
+ @pytest.mark.parametrize(
133
+ ("case", "expected_result", "expect_warning"),
134
+ [
135
+ *CLASSIFICATION_URN_TEST_CASES,
136
+ ("https://www.vg.no", AnyUrl("https://www.vg.no/"), True),
137
+ (None, None, False),
138
+ ],
139
+ )
140
+ def test_convert_to_klass_urn_end_to_end(
141
+ case: str | None,
142
+ expected_result: str | None,
143
+ expect_warning: bool,
144
+ caplog: pytest.LogCaptureFixture,
145
+ ):
146
+ caplog.set_level(logging.ERROR)
147
+ meta = Datadoc()
148
+ meta._set_metadata( # noqa: SLF001
149
+ all_optional_model.DatadocMetadata(
150
+ dataset=all_optional_model.Dataset(),
151
+ variables=[
152
+ all_optional_model.Variable(
153
+ short_name="my_variable", classification_uri=case
154
+ )
155
+ ],
156
+ )
157
+ )
158
+ if not expected_result:
159
+ assert meta.variables[0].classification_uri is None
160
+ else:
161
+ assert meta.variables[0].classification_uri == expected_result
162
+ assert (URN_ERROR_MESSAGE_BASE in caplog.text) is expect_warning