dapla-toolbelt-metadata 0.9.11__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.
- dapla_toolbelt_metadata-0.9.11/.cookiecutter.json +22 -0
- dapla_toolbelt_metadata-0.9.11/.cruft.json +30 -0
- dapla_toolbelt_metadata-0.9.11/.editorconfig +15 -0
- dapla_toolbelt_metadata-0.9.11/.gitattributes +3 -0
- dapla_toolbelt_metadata-0.9.11/.github/ISSUE_TEMPLATE/bug_report.yml +73 -0
- dapla_toolbelt_metadata-0.9.11/.github/ISSUE_TEMPLATE/feature_request.yml +17 -0
- dapla_toolbelt_metadata-0.9.11/.github/dependabot.yml +33 -0
- dapla_toolbelt_metadata-0.9.11/.github/labels.yml +66 -0
- dapla_toolbelt_metadata-0.9.11/.github/release-drafter.yml +30 -0
- dapla_toolbelt_metadata-0.9.11/.github/workflows/constraints.txt +2 -0
- dapla_toolbelt_metadata-0.9.11/.github/workflows/docs.yml +66 -0
- dapla_toolbelt_metadata-0.9.11/.github/workflows/labeler.yml +25 -0
- dapla_toolbelt_metadata-0.9.11/.github/workflows/release.yml +73 -0
- dapla_toolbelt_metadata-0.9.11/.github/workflows/tests.yml +144 -0
- dapla_toolbelt_metadata-0.9.11/.gitignore +308 -0
- dapla_toolbelt_metadata-0.9.11/.pre-commit-config.yaml +30 -0
- dapla_toolbelt_metadata-0.9.11/.vscode/settings.json +30 -0
- dapla_toolbelt_metadata-0.9.11/CODEOWNERS +3 -0
- dapla_toolbelt_metadata-0.9.11/CODE_OF_CONDUCT.md +132 -0
- dapla_toolbelt_metadata-0.9.11/CONTRIBUTING.md +146 -0
- dapla_toolbelt_metadata-0.9.11/LICENSE +21 -0
- dapla_toolbelt_metadata-0.9.11/Makefile +20 -0
- dapla_toolbelt_metadata-0.9.11/PKG-INFO +112 -0
- dapla_toolbelt_metadata-0.9.11/README.md +79 -0
- dapla_toolbelt_metadata-0.9.11/SECURITY.md +13 -0
- dapla_toolbelt_metadata-0.9.11/backstage.yaml +69 -0
- dapla_toolbelt_metadata-0.9.11/bin/__init__.py +1 -0
- dapla_toolbelt_metadata-0.9.11/bin/openapi_generate_post_process.sh +24 -0
- dapla_toolbelt_metadata-0.9.11/bin/upgrade_metadata_file.py +22 -0
- dapla_toolbelt_metadata-0.9.11/demo/datasets/create_metadata_for_new_dataset.ipynb +103 -0
- dapla_toolbelt_metadata-0.9.11/demo/datasets/create_metadata_for_new_period.ipynb +40 -0
- dapla_toolbelt_metadata-0.9.11/demo/datasets/resources/sykefratot/klargjorte_data/person_testdata_p2021_v1__DOC.json +399 -0
- dapla_toolbelt_metadata-0.9.11/demo/standards/navnestandard.ipynb +89 -0
- dapla_toolbelt_metadata-0.9.11/demo/variable_definitions/les_variabeldefinisjon.ipynb +179 -0
- dapla_toolbelt_metadata-0.9.11/demo/variable_definitions/les_variabeldefinisjoner.ipynb +437 -0
- dapla_toolbelt_metadata-0.9.11/demo/variable_definitions/migrer_variabeldefinisjoner.ipynb +175 -0
- dapla_toolbelt_metadata-0.9.11/demo/variable_definitions/ny_gyldighetsperiode_variabeldefinisjon.ipynb +151 -0
- dapla_toolbelt_metadata-0.9.11/demo/variable_definitions/ny_variabeldefinisjon.ipynb +141 -0
- dapla_toolbelt_metadata-0.9.11/demo/variable_definitions/publiser_variabeldefinisjon_eksternt.ipynb +128 -0
- dapla_toolbelt_metadata-0.9.11/demo/variable_definitions/publiser_variabeldefinisjon_internt.ipynb +129 -0
- dapla_toolbelt_metadata-0.9.11/demo/variable_definitions/rediger_publisert_variabeldefinisjon.ipynb +161 -0
- dapla_toolbelt_metadata-0.9.11/demo/variable_definitions/rediger_utkast_variabeldefinisjon.ipynb +147 -0
- dapla_toolbelt_metadata-0.9.11/demo/variable_definitions/sjekk_kortnavn_variabeldefinisjon.ipynb +111 -0
- dapla_toolbelt_metadata-0.9.11/demo/variable_definitions/sjekk_migrerte_variabeldefinisjoner.ipynb +178 -0
- dapla_toolbelt_metadata-0.9.11/demo/variable_definitions/slett_utkast_variabeldefinisjon.ipynb +100 -0
- dapla_toolbelt_metadata-0.9.11/docs/Makefile +20 -0
- dapla_toolbelt_metadata-0.9.11/docs/codeofconduct.md +3 -0
- dapla_toolbelt_metadata-0.9.11/docs/conf.py +69 -0
- dapla_toolbelt_metadata-0.9.11/docs/contributing.md +7 -0
- dapla_toolbelt_metadata-0.9.11/docs/index.md +24 -0
- dapla_toolbelt_metadata-0.9.11/docs/license.md +7 -0
- dapla_toolbelt_metadata-0.9.11/docs/make.bat +35 -0
- dapla_toolbelt_metadata-0.9.11/docs/reference.md +457 -0
- dapla_toolbelt_metadata-0.9.11/docs/templates/package.rst_t +48 -0
- dapla_toolbelt_metadata-0.9.11/docs/vardef_client.md +3 -0
- dapla_toolbelt_metadata-0.9.11/noxfile.py +257 -0
- dapla_toolbelt_metadata-0.9.11/pyproject.toml +187 -0
- dapla_toolbelt_metadata-0.9.11/schemas/jsonschema/complete-response-schema.json +243 -0
- dapla_toolbelt_metadata-0.9.11/sonar-project.properties +13 -0
- dapla_toolbelt_metadata-0.9.11/src/dapla_metadata/__init__.py +15 -0
- dapla_toolbelt_metadata-0.9.11/src/dapla_metadata/_shared/__init__.py +1 -0
- dapla_toolbelt_metadata-0.9.11/src/dapla_metadata/_shared/config.py +109 -0
- dapla_toolbelt_metadata-0.9.11/src/dapla_metadata/_shared/enums.py +27 -0
- dapla_toolbelt_metadata-0.9.11/src/dapla_metadata/_shared/py.typed +0 -0
- dapla_toolbelt_metadata-0.9.11/src/dapla_metadata/dapla/__init__.py +4 -0
- dapla_toolbelt_metadata-0.9.11/src/dapla_metadata/dapla/user_info.py +138 -0
- dapla_toolbelt_metadata-0.9.11/src/dapla_metadata/datasets/__init__.py +9 -0
- dapla_toolbelt_metadata-0.9.11/src/dapla_metadata/datasets/_merge.py +333 -0
- dapla_toolbelt_metadata-0.9.11/src/dapla_metadata/datasets/code_list.py +243 -0
- dapla_toolbelt_metadata-0.9.11/src/dapla_metadata/datasets/compatibility/__init__.py +10 -0
- dapla_toolbelt_metadata-0.9.11/src/dapla_metadata/datasets/compatibility/_handlers.py +363 -0
- dapla_toolbelt_metadata-0.9.11/src/dapla_metadata/datasets/compatibility/_utils.py +259 -0
- dapla_toolbelt_metadata-0.9.11/src/dapla_metadata/datasets/compatibility/model_backwards_compatibility.py +135 -0
- dapla_toolbelt_metadata-0.9.11/src/dapla_metadata/datasets/core.py +481 -0
- dapla_toolbelt_metadata-0.9.11/src/dapla_metadata/datasets/dapla_dataset_path_info.py +811 -0
- dapla_toolbelt_metadata-0.9.11/src/dapla_metadata/datasets/dataset_parser.py +254 -0
- dapla_toolbelt_metadata-0.9.11/src/dapla_metadata/datasets/external_sources/__init__.py +1 -0
- dapla_toolbelt_metadata-0.9.11/src/dapla_metadata/datasets/external_sources/external_sources.py +87 -0
- dapla_toolbelt_metadata-0.9.11/src/dapla_metadata/datasets/model_validation.py +203 -0
- dapla_toolbelt_metadata-0.9.11/src/dapla_metadata/datasets/py.typed +0 -0
- dapla_toolbelt_metadata-0.9.11/src/dapla_metadata/datasets/statistic_subject_mapping.py +187 -0
- dapla_toolbelt_metadata-0.9.11/src/dapla_metadata/datasets/utility/__init__.py +1 -0
- dapla_toolbelt_metadata-0.9.11/src/dapla_metadata/datasets/utility/constants.py +103 -0
- dapla_toolbelt_metadata-0.9.11/src/dapla_metadata/datasets/utility/enums.py +23 -0
- dapla_toolbelt_metadata-0.9.11/src/dapla_metadata/datasets/utility/urn.py +234 -0
- dapla_toolbelt_metadata-0.9.11/src/dapla_metadata/datasets/utility/utils.py +564 -0
- dapla_toolbelt_metadata-0.9.11/src/dapla_metadata/standards/__init__.py +4 -0
- dapla_toolbelt_metadata-0.9.11/src/dapla_metadata/standards/name_validator.py +250 -0
- dapla_toolbelt_metadata-0.9.11/src/dapla_metadata/standards/standard_validators.py +98 -0
- dapla_toolbelt_metadata-0.9.11/src/dapla_metadata/standards/utils/__init__.py +1 -0
- dapla_toolbelt_metadata-0.9.11/src/dapla_metadata/standards/utils/constants.py +49 -0
- dapla_toolbelt_metadata-0.9.11/src/dapla_metadata/variable_definitions/__init__.py +11 -0
- dapla_toolbelt_metadata-0.9.11/src/dapla_metadata/variable_definitions/_generated/.openapi-generator/FILES +20 -0
- dapla_toolbelt_metadata-0.9.11/src/dapla_metadata/variable_definitions/_generated/.openapi-generator/VERSION +1 -0
- dapla_toolbelt_metadata-0.9.11/src/dapla_metadata/variable_definitions/_generated/.openapi-generator-ignore +6 -0
- dapla_toolbelt_metadata-0.9.11/src/dapla_metadata/variable_definitions/_generated/README.md +148 -0
- dapla_toolbelt_metadata-0.9.11/src/dapla_metadata/variable_definitions/_generated/__init__.py +0 -0
- dapla_toolbelt_metadata-0.9.11/src/dapla_metadata/variable_definitions/_generated/vardef_client/__init__.py +47 -0
- dapla_toolbelt_metadata-0.9.11/src/dapla_metadata/variable_definitions/_generated/vardef_client/api/__init__.py +8 -0
- dapla_toolbelt_metadata-0.9.11/src/dapla_metadata/variable_definitions/_generated/vardef_client/api/data_migration_api.py +766 -0
- dapla_toolbelt_metadata-0.9.11/src/dapla_metadata/variable_definitions/_generated/vardef_client/api/draft_variable_definitions_api.py +888 -0
- dapla_toolbelt_metadata-0.9.11/src/dapla_metadata/variable_definitions/_generated/vardef_client/api/patches_api.py +888 -0
- dapla_toolbelt_metadata-0.9.11/src/dapla_metadata/variable_definitions/_generated/vardef_client/api/validity_periods_api.py +583 -0
- dapla_toolbelt_metadata-0.9.11/src/dapla_metadata/variable_definitions/_generated/vardef_client/api/variable_definitions_api.py +613 -0
- dapla_toolbelt_metadata-0.9.11/src/dapla_metadata/variable_definitions/_generated/vardef_client/api_client.py +779 -0
- dapla_toolbelt_metadata-0.9.11/src/dapla_metadata/variable_definitions/_generated/vardef_client/api_response.py +27 -0
- dapla_toolbelt_metadata-0.9.11/src/dapla_metadata/variable_definitions/_generated/vardef_client/configuration.py +474 -0
- dapla_toolbelt_metadata-0.9.11/src/dapla_metadata/variable_definitions/_generated/vardef_client/docs/CompleteResponse.md +51 -0
- dapla_toolbelt_metadata-0.9.11/src/dapla_metadata/variable_definitions/_generated/vardef_client/docs/Contact.md +30 -0
- dapla_toolbelt_metadata-0.9.11/src/dapla_metadata/variable_definitions/_generated/vardef_client/docs/DataMigrationApi.md +90 -0
- dapla_toolbelt_metadata-0.9.11/src/dapla_metadata/variable_definitions/_generated/vardef_client/docs/Draft.md +42 -0
- dapla_toolbelt_metadata-0.9.11/src/dapla_metadata/variable_definitions/_generated/vardef_client/docs/DraftVariableDefinitionsApi.md +259 -0
- dapla_toolbelt_metadata-0.9.11/src/dapla_metadata/variable_definitions/_generated/vardef_client/docs/LanguageStringType.md +31 -0
- dapla_toolbelt_metadata-0.9.11/src/dapla_metadata/variable_definitions/_generated/vardef_client/docs/Owner.md +31 -0
- dapla_toolbelt_metadata-0.9.11/src/dapla_metadata/variable_definitions/_generated/vardef_client/docs/Patch.md +43 -0
- dapla_toolbelt_metadata-0.9.11/src/dapla_metadata/variable_definitions/_generated/vardef_client/docs/PatchesApi.md +249 -0
- dapla_toolbelt_metadata-0.9.11/src/dapla_metadata/variable_definitions/_generated/vardef_client/docs/PublicApi.md +218 -0
- dapla_toolbelt_metadata-0.9.11/src/dapla_metadata/variable_definitions/_generated/vardef_client/docs/SupportedLanguages.md +15 -0
- dapla_toolbelt_metadata-0.9.11/src/dapla_metadata/variable_definitions/_generated/vardef_client/docs/UpdateDraft.md +44 -0
- dapla_toolbelt_metadata-0.9.11/src/dapla_metadata/variable_definitions/_generated/vardef_client/docs/ValidityPeriod.md +42 -0
- dapla_toolbelt_metadata-0.9.11/src/dapla_metadata/variable_definitions/_generated/vardef_client/docs/ValidityPeriodsApi.md +236 -0
- dapla_toolbelt_metadata-0.9.11/src/dapla_metadata/variable_definitions/_generated/vardef_client/docs/VariableDefinitionsApi.md +304 -0
- dapla_toolbelt_metadata-0.9.11/src/dapla_metadata/variable_definitions/_generated/vardef_client/docs/VariableStatus.md +17 -0
- dapla_toolbelt_metadata-0.9.11/src/dapla_metadata/variable_definitions/_generated/vardef_client/exceptions.py +193 -0
- dapla_toolbelt_metadata-0.9.11/src/dapla_metadata/variable_definitions/_generated/vardef_client/models/__init__.py +31 -0
- dapla_toolbelt_metadata-0.9.11/src/dapla_metadata/variable_definitions/_generated/vardef_client/models/complete_response.py +260 -0
- dapla_toolbelt_metadata-0.9.11/src/dapla_metadata/variable_definitions/_generated/vardef_client/models/contact.py +94 -0
- dapla_toolbelt_metadata-0.9.11/src/dapla_metadata/variable_definitions/_generated/vardef_client/models/draft.py +228 -0
- dapla_toolbelt_metadata-0.9.11/src/dapla_metadata/variable_definitions/_generated/vardef_client/models/get_vardok_vardef_mapping_by_id200_response.py +158 -0
- dapla_toolbelt_metadata-0.9.11/src/dapla_metadata/variable_definitions/_generated/vardef_client/models/language_string_type.py +101 -0
- dapla_toolbelt_metadata-0.9.11/src/dapla_metadata/variable_definitions/_generated/vardef_client/models/owner.py +87 -0
- dapla_toolbelt_metadata-0.9.11/src/dapla_metadata/variable_definitions/_generated/vardef_client/models/patch.py +244 -0
- dapla_toolbelt_metadata-0.9.11/src/dapla_metadata/variable_definitions/_generated/vardef_client/models/problem.py +118 -0
- dapla_toolbelt_metadata-0.9.11/src/dapla_metadata/variable_definitions/_generated/vardef_client/models/update_draft.py +274 -0
- dapla_toolbelt_metadata-0.9.11/src/dapla_metadata/variable_definitions/_generated/vardef_client/models/validity_period.py +225 -0
- dapla_toolbelt_metadata-0.9.11/src/dapla_metadata/variable_definitions/_generated/vardef_client/models/vardok_id_response.py +81 -0
- dapla_toolbelt_metadata-0.9.11/src/dapla_metadata/variable_definitions/_generated/vardef_client/models/vardok_vardef_id_pair_response.py +84 -0
- dapla_toolbelt_metadata-0.9.11/src/dapla_metadata/variable_definitions/_generated/vardef_client/models/variable_status.py +33 -0
- dapla_toolbelt_metadata-0.9.11/src/dapla_metadata/variable_definitions/_generated/vardef_client/py.typed +0 -0
- dapla_toolbelt_metadata-0.9.11/src/dapla_metadata/variable_definitions/_generated/vardef_client/rest.py +249 -0
- dapla_toolbelt_metadata-0.9.11/src/dapla_metadata/variable_definitions/_utils/__init__.py +1 -0
- dapla_toolbelt_metadata-0.9.11/src/dapla_metadata/variable_definitions/_utils/_client.py +32 -0
- dapla_toolbelt_metadata-0.9.11/src/dapla_metadata/variable_definitions/_utils/config.py +54 -0
- dapla_toolbelt_metadata-0.9.11/src/dapla_metadata/variable_definitions/_utils/constants.py +80 -0
- dapla_toolbelt_metadata-0.9.11/src/dapla_metadata/variable_definitions/_utils/files.py +309 -0
- dapla_toolbelt_metadata-0.9.11/src/dapla_metadata/variable_definitions/_utils/template_files.py +99 -0
- dapla_toolbelt_metadata-0.9.11/src/dapla_metadata/variable_definitions/_utils/variable_definition_files.py +143 -0
- dapla_toolbelt_metadata-0.9.11/src/dapla_metadata/variable_definitions/exceptions.py +255 -0
- dapla_toolbelt_metadata-0.9.11/src/dapla_metadata/variable_definitions/vardef.py +372 -0
- dapla_toolbelt_metadata-0.9.11/src/dapla_metadata/variable_definitions/vardok_id.py +48 -0
- dapla_toolbelt_metadata-0.9.11/src/dapla_metadata/variable_definitions/vardok_vardef_id_pair.py +47 -0
- dapla_toolbelt_metadata-0.9.11/src/dapla_metadata/variable_definitions/variable_definition.py +422 -0
- dapla_toolbelt_metadata-0.9.11/tests/__init__.py +1 -0
- dapla_toolbelt_metadata-0.9.11/tests/conftest.py +54 -0
- dapla_toolbelt_metadata-0.9.11/tests/dapla/__init__.py +1 -0
- dapla_toolbelt_metadata-0.9.11/tests/dapla/test_user_info.py +107 -0
- dapla_toolbelt_metadata-0.9.11/tests/datasets/__init__.py +1 -0
- dapla_toolbelt_metadata-0.9.11/tests/datasets/conftest.py +279 -0
- dapla_toolbelt_metadata-0.9.11/tests/datasets/constants.py +78 -0
- dapla_toolbelt_metadata-0.9.11/tests/datasets/resources/code_list/code_list.csv +27 -0
- dapla_toolbelt_metadata-0.9.11/tests/datasets/resources/code_list/code_list_en.csv +4 -0
- dapla_toolbelt_metadata-0.9.11/tests/datasets/resources/code_list/code_list_nb.csv +4 -0
- dapla_toolbelt_metadata-0.9.11/tests/datasets/resources/code_list/code_list_nn.csv +4 -0
- dapla_toolbelt_metadata-0.9.11/tests/datasets/resources/code_list/empty.csv +1 -0
- dapla_toolbelt_metadata-0.9.11/tests/datasets/resources/code_list/no_code.csv +4 -0
- dapla_toolbelt_metadata-0.9.11/tests/datasets/resources/datasets/fewer_variables_p2021-12-31_p2021-12-31_v1.parquet +0 -0
- dapla_toolbelt_metadata-0.9.11/tests/datasets/resources/datasets/ifpn/klargjorte_data/person_testdata_p2021-12-31_p2021-12-31_v1.parquet +0 -0
- dapla_toolbelt_metadata-0.9.11/tests/datasets/resources/datasets/person_data.csv +5 -0
- dapla_toolbelt_metadata-0.9.11/tests/datasets/resources/datasets/person_data_v1.parquet +0 -0
- dapla_toolbelt_metadata-0.9.11/tests/datasets/resources/datasets/person_data_v1.parquet.gzip +0 -0
- dapla_toolbelt_metadata-0.9.11/tests/datasets/resources/datasets/person_testdata_p2021-12-31_p2021-12-31_v1.parquet +0 -0
- dapla_toolbelt_metadata-0.9.11/tests/datasets/resources/datasets/sasdata.sas7bdat +0 -0
- dapla_toolbelt_metadata-0.9.11/tests/datasets/resources/existing_metadata_file/compatibility/README.md +9 -0
- dapla_toolbelt_metadata-0.9.11/tests/datasets/resources/existing_metadata_file/compatibility/v0_1_1/person_data_v1__DOC.json +196 -0
- dapla_toolbelt_metadata-0.9.11/tests/datasets/resources/existing_metadata_file/compatibility/v1_0_0/person_data_v1__DOC.json +252 -0
- dapla_toolbelt_metadata-0.9.11/tests/datasets/resources/existing_metadata_file/compatibility/v2_1_0/person_data_v1__DOC.json +253 -0
- dapla_toolbelt_metadata-0.9.11/tests/datasets/resources/existing_metadata_file/compatibility/v2_2_0/person_data_v1__DOC.json +253 -0
- dapla_toolbelt_metadata-0.9.11/tests/datasets/resources/existing_metadata_file/compatibility/v3_1_0/person_data_v1__DOC.json +393 -0
- dapla_toolbelt_metadata-0.9.11/tests/datasets/resources/existing_metadata_file/compatibility/v3_2_0/person_data_v1__DOC.json +380 -0
- dapla_toolbelt_metadata-0.9.11/tests/datasets/resources/existing_metadata_file/compatibility/v3_3_0/person_data_v1__DOC.json +380 -0
- dapla_toolbelt_metadata-0.9.11/tests/datasets/resources/existing_metadata_file/compatibility/v4_0_0/person_data_v1__DOC.json +380 -0
- dapla_toolbelt_metadata-0.9.11/tests/datasets/resources/existing_metadata_file/compatibility/v5_0_1/person_data_v1__DOC.json +387 -0
- dapla_toolbelt_metadata-0.9.11/tests/datasets/resources/existing_metadata_file/compatibility/v6_0_0/person_data_v1__DOC.json +395 -0
- dapla_toolbelt_metadata-0.9.11/tests/datasets/resources/existing_metadata_file/fewer_variables_p2020-12-31_p2020-12-31_v1__DOC.json +148 -0
- dapla_toolbelt_metadata-0.9.11/tests/datasets/resources/existing_metadata_file/invalid_id_field/person_data_v1__DOC.json +248 -0
- dapla_toolbelt_metadata-0.9.11/tests/datasets/resources/existing_metadata_file/person_data_v1__DOC.json +395 -0
- dapla_toolbelt_metadata-0.9.11/tests/datasets/resources/existing_metadata_file/person_testdata_p2020-12-31_p2020-12-31_v1__DOC.json +406 -0
- dapla_toolbelt_metadata-0.9.11/tests/datasets/resources/existing_metadata_file/pseudo/dataset_and_pseudo/no_pseudo_v4_0_0_person_data_v1__DOC.json +379 -0
- dapla_toolbelt_metadata-0.9.11/tests/datasets/resources/existing_metadata_file/pseudo/dataset_and_pseudo/person_data_v1__DOC.json +230 -0
- dapla_toolbelt_metadata-0.9.11/tests/datasets/resources/existing_metadata_file/pseudo/dataset_and_pseudo/v4_0_0_person_data_v1__DOC.json +399 -0
- dapla_toolbelt_metadata-0.9.11/tests/datasets/resources/existing_metadata_file/pseudo/pseudo/person_data_v1__DOC.json +22 -0
- dapla_toolbelt_metadata-0.9.11/tests/datasets/resources/existing_metadata_file/pseudo/pseudo_missing_variables/person_data_v1__DOC.json +9 -0
- dapla_toolbelt_metadata-0.9.11/tests/datasets/resources/existing_metadata_file/valid_id_field/person_data_v1__DOC.json +248 -0
- dapla_toolbelt_metadata-0.9.11/tests/datasets/resources/existing_metadata_file/valid_variable_id_field/person_data_v1__DOC.json +201 -0
- dapla_toolbelt_metadata-0.9.11/tests/datasets/resources/klargjorte_data/person_testdata_p2021-12-31_p2021-12-31_v1.parquet +0 -0
- dapla_toolbelt_metadata-0.9.11/tests/datasets/resources/klargjorte_data/person_testdata_p2021-12-31_p2021-12-31_v1__DOC.json +344 -0
- dapla_toolbelt_metadata-0.9.11/tests/datasets/resources/statistical_subject_structure/empty.xml +5 -0
- dapla_toolbelt_metadata-0.9.11/tests/datasets/resources/statistical_subject_structure/extract_secondary_subject.xml +77 -0
- dapla_toolbelt_metadata-0.9.11/tests/datasets/resources/statistical_subject_structure/missing_language.xml +61 -0
- dapla_toolbelt_metadata-0.9.11/tests/datasets/resources/statistical_subject_structure/simple.xml +23 -0
- dapla_toolbelt_metadata-0.9.11/tests/datasets/test_code_list.py +67 -0
- dapla_toolbelt_metadata-0.9.11/tests/datasets/test_dapla_dataset_path_info.py +365 -0
- dapla_toolbelt_metadata-0.9.11/tests/datasets/test_datadoc_metadata.py +583 -0
- dapla_toolbelt_metadata-0.9.11/tests/datasets/test_dataset_consistency.py +290 -0
- dapla_toolbelt_metadata-0.9.11/tests/datasets/test_dataset_parser.py +129 -0
- dapla_toolbelt_metadata-0.9.11/tests/datasets/test_model_backwards_compatibility.py +266 -0
- dapla_toolbelt_metadata-0.9.11/tests/datasets/test_pseudonymization.py +534 -0
- dapla_toolbelt_metadata-0.9.11/tests/datasets/test_statistic_subject_mapping.py +168 -0
- dapla_toolbelt_metadata-0.9.11/tests/datasets/test_urn.py +285 -0
- dapla_toolbelt_metadata-0.9.11/tests/datasets/test_utils.py +73 -0
- dapla_toolbelt_metadata-0.9.11/tests/datasets/test_validators.py +281 -0
- dapla_toolbelt_metadata-0.9.11/tests/standards/__init__.py +1 -0
- dapla_toolbelt_metadata-0.9.11/tests/standards/conftest.py +55 -0
- dapla_toolbelt_metadata-0.9.11/tests/standards/test_check_naming_standard.py +397 -0
- dapla_toolbelt_metadata-0.9.11/tests/utils/__init__.py +1 -0
- dapla_toolbelt_metadata-0.9.11/tests/utils/constants.py +83 -0
- dapla_toolbelt_metadata-0.9.11/tests/utils/microcks_testcontainer.py +94 -0
- dapla_toolbelt_metadata-0.9.11/tests/variable_definitions/__init__.py +1 -0
- dapla_toolbelt_metadata-0.9.11/tests/variable_definitions/conftest.py +408 -0
- dapla_toolbelt_metadata-0.9.11/tests/variable_definitions/constants.py +7 -0
- dapla_toolbelt_metadata-0.9.11/tests/variable_definitions/resources/openapi/variable-definitions-internal.yml +2551 -0
- dapla_toolbelt_metadata-0.9.11/tests/variable_definitions/resources/variable_definition_editing_files/classification_reference.yaml +1 -0
- dapla_toolbelt_metadata-0.9.11/tests/variable_definitions/resources/variable_definition_editing_files/date_and_definition.yaml +5 -0
- dapla_toolbelt_metadata-0.9.11/tests/variable_definitions/resources/variable_definition_editing_files/variable_definition_landbak_wypvb3wd_2025-05-02T10-06-20.yaml +63 -0
- dapla_toolbelt_metadata-0.9.11/tests/variable_definitions/resources/variable_definition_editing_files/variable_definition_var_test_wypvb3wd_2025-09-18T14-19-28.yaml +62 -0
- dapla_toolbelt_metadata-0.9.11/tests/variable_definitions/test_config.py +90 -0
- dapla_toolbelt_metadata-0.9.11/tests/variable_definitions/test_template_files.py +179 -0
- dapla_toolbelt_metadata-0.9.11/tests/variable_definitions/test_vardef.py +343 -0
- dapla_toolbelt_metadata-0.9.11/tests/variable_definitions/test_variable_definition.py +598 -0
- dapla_toolbelt_metadata-0.9.11/tests/variable_definitions/test_variable_definition_files.py +217 -0
- dapla_toolbelt_metadata-0.9.11/tests/variable_definitions/vardef_client/__init__.py +1 -0
- dapla_toolbelt_metadata-0.9.11/tests/variable_definitions/vardef_client/api/__init__.py +1 -0
- dapla_toolbelt_metadata-0.9.11/tests/variable_definitions/vardef_client/api/test_happy_path.py +100 -0
- dapla_toolbelt_metadata-0.9.11/tests/variable_definitions/vardef_client/models/__init__.py +1 -0
- dapla_toolbelt_metadata-0.9.11/tests/variable_definitions/vardef_client/models/test_models_instantiation.py +137 -0
- dapla_toolbelt_metadata-0.9.11/tests/variable_definitions/vardef_client/test_exceptions.py +99 -0
- dapla_toolbelt_metadata-0.9.11/uv.lock +3648 -0
- dapla_toolbelt_metadata-0.9.11/vardef-maintenance/README.md +23 -0
- dapla_toolbelt_metadata-0.9.11/vardef-maintenance/vardef-maintenance.toml +13 -0
- dapla_toolbelt_metadata-0.9.11/vardef-maintenance/vardef_client_init.sh +51 -0
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
{
|
|
2
|
+
"_copy_without_render": [
|
|
3
|
+
"*.rst_t"
|
|
4
|
+
],
|
|
5
|
+
"_jinja2_env_vars": {
|
|
6
|
+
"lstrip_blocks": true,
|
|
7
|
+
"trim_blocks": true
|
|
8
|
+
},
|
|
9
|
+
"_template": "https://github.com/statisticsnorway/ssb-pypitemplate.git",
|
|
10
|
+
"author": "Team Metadata",
|
|
11
|
+
"code_quality_level": "High",
|
|
12
|
+
"copyright_owner": "Statistics Norway",
|
|
13
|
+
"copyright_year": "2024",
|
|
14
|
+
"development_status": "Development Status :: 4 - Beta",
|
|
15
|
+
"email": "metadata@ssb.no",
|
|
16
|
+
"friendly_name": "Dapla Toolbelt Metadata",
|
|
17
|
+
"github_organization": "statisticsnorway",
|
|
18
|
+
"license": "MIT",
|
|
19
|
+
"package_name": "dapla_toolbelt_metadata",
|
|
20
|
+
"project_name": "dapla-toolbelt-metadata",
|
|
21
|
+
"version": "0.0.0"
|
|
22
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
{
|
|
2
|
+
"template": "https://github.com/statisticsnorway/ssb-pypitemplate.git",
|
|
3
|
+
"commit": "0d33fca0d1c29c79aef9c7053e36d9e7cdd2bd20",
|
|
4
|
+
"checkout": null,
|
|
5
|
+
"context": {
|
|
6
|
+
"cookiecutter": {
|
|
7
|
+
"project_name": "dapla-toolbelt-metadata",
|
|
8
|
+
"package_name": "dapla_toolbelt_metadata",
|
|
9
|
+
"friendly_name": "Dapla Toolbelt Metadata",
|
|
10
|
+
"copyright_owner": "Statistics Norway",
|
|
11
|
+
"copyright_year": "2024",
|
|
12
|
+
"author": "Team Metadata",
|
|
13
|
+
"email": "metadata@ssb.no",
|
|
14
|
+
"github_organization": "statisticsnorway",
|
|
15
|
+
"version": "0.0.0",
|
|
16
|
+
"license": "MIT",
|
|
17
|
+
"development_status": "Development Status :: 4 - Beta",
|
|
18
|
+
"code_quality_level": "High",
|
|
19
|
+
"_copy_without_render": [
|
|
20
|
+
"*.rst_t"
|
|
21
|
+
],
|
|
22
|
+
"_jinja2_env_vars": {
|
|
23
|
+
"lstrip_blocks": true,
|
|
24
|
+
"trim_blocks": true
|
|
25
|
+
},
|
|
26
|
+
"_template": "https://github.com/statisticsnorway/ssb-pypitemplate.git"
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
"directory": null
|
|
30
|
+
}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
name: "\U0001F41E Bug Report"
|
|
2
|
+
description: Report a bug
|
|
3
|
+
labels: ["bug"]
|
|
4
|
+
body:
|
|
5
|
+
- type: markdown
|
|
6
|
+
attributes:
|
|
7
|
+
value: |
|
|
8
|
+
Please fill out the sections below to help everyone identify and fix the bug
|
|
9
|
+
- type: textarea
|
|
10
|
+
id: description
|
|
11
|
+
attributes:
|
|
12
|
+
label: Describe the bug
|
|
13
|
+
placeholder: A clear and concise description of what the bug is.
|
|
14
|
+
validations:
|
|
15
|
+
required: true
|
|
16
|
+
- type: textarea
|
|
17
|
+
id: reproduce
|
|
18
|
+
attributes:
|
|
19
|
+
label: To Reproduce
|
|
20
|
+
description: Steps to reproduce the behavior.
|
|
21
|
+
placeholder: |
|
|
22
|
+
1. Step 1...
|
|
23
|
+
2. Step 2...
|
|
24
|
+
3. Step 3...
|
|
25
|
+
4. Step 4...
|
|
26
|
+
validations:
|
|
27
|
+
required: false
|
|
28
|
+
- type: textarea
|
|
29
|
+
id: expected
|
|
30
|
+
attributes:
|
|
31
|
+
label: Expected behaviour
|
|
32
|
+
placeholder: A clear and concise description of what you expected to happen.
|
|
33
|
+
validations:
|
|
34
|
+
required: false
|
|
35
|
+
- type: dropdown
|
|
36
|
+
id: platform
|
|
37
|
+
attributes:
|
|
38
|
+
label: Platforms and Environments
|
|
39
|
+
multiple: true
|
|
40
|
+
description: >
|
|
41
|
+
On which platforms does the bug occur?
|
|
42
|
+
The first four items are platforms in Statistics Norway.
|
|
43
|
+
You can select multiple platforms.
|
|
44
|
+
options:
|
|
45
|
+
- DaplaLab with vscode
|
|
46
|
+
- DaplaLab with Jupyter
|
|
47
|
+
- Jupyter on-prem
|
|
48
|
+
- Old Dapla with Jupyter
|
|
49
|
+
- Windows
|
|
50
|
+
- Linux
|
|
51
|
+
- macOS
|
|
52
|
+
validations:
|
|
53
|
+
required: true
|
|
54
|
+
- type: input
|
|
55
|
+
id: version
|
|
56
|
+
attributes:
|
|
57
|
+
label: Version
|
|
58
|
+
description: What version of our software are you running?
|
|
59
|
+
placeholder: 1.0.0
|
|
60
|
+
validations:
|
|
61
|
+
required: false
|
|
62
|
+
- type: textarea
|
|
63
|
+
id: logs
|
|
64
|
+
attributes:
|
|
65
|
+
label: Error messages or logs
|
|
66
|
+
description: Please copy and paste any relevant log output or error messages.
|
|
67
|
+
render: shell
|
|
68
|
+
validations:
|
|
69
|
+
required: false
|
|
70
|
+
- type: markdown
|
|
71
|
+
attributes:
|
|
72
|
+
value: |
|
|
73
|
+
Thanks for reporting this issue! We will get back to you as soon as possible.
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
name: "\U0001F381 Feature Request"
|
|
2
|
+
description: Suggest a new feature or enhancment.
|
|
3
|
+
labels: ["enhancement"]
|
|
4
|
+
body:
|
|
5
|
+
- type: textarea
|
|
6
|
+
id: description
|
|
7
|
+
attributes:
|
|
8
|
+
label: Description
|
|
9
|
+
description: >
|
|
10
|
+
Describe the feature or enhancement and explain why it should be implemented.
|
|
11
|
+
Include a code example if applicable.
|
|
12
|
+
validations:
|
|
13
|
+
required: true
|
|
14
|
+
- type: markdown
|
|
15
|
+
attributes:
|
|
16
|
+
value: |
|
|
17
|
+
Thanks for reporting this issue! We will get back to you as soon as possible.
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
version: 2
|
|
2
|
+
# Needed for uv support
|
|
3
|
+
enable-beta-ecosystems: true
|
|
4
|
+
updates:
|
|
5
|
+
- package-ecosystem: "github-actions"
|
|
6
|
+
directory: "/"
|
|
7
|
+
schedule:
|
|
8
|
+
interval: "monthly"
|
|
9
|
+
open-pull-requests-limit: 99
|
|
10
|
+
groups:
|
|
11
|
+
github-action-dependencies:
|
|
12
|
+
patterns:
|
|
13
|
+
- "*"
|
|
14
|
+
- package-ecosystem: "pip"
|
|
15
|
+
directory: "/.github/workflows"
|
|
16
|
+
schedule:
|
|
17
|
+
interval: "monthly"
|
|
18
|
+
open-pull-requests-limit: 99
|
|
19
|
+
groups:
|
|
20
|
+
workflows-dependencies:
|
|
21
|
+
patterns:
|
|
22
|
+
- "*"
|
|
23
|
+
- package-ecosystem: "uv"
|
|
24
|
+
directory: "/"
|
|
25
|
+
schedule:
|
|
26
|
+
interval: "monthly"
|
|
27
|
+
allow:
|
|
28
|
+
- dependency-type: "all"
|
|
29
|
+
open-pull-requests-limit: 99
|
|
30
|
+
groups:
|
|
31
|
+
python-dependencies:
|
|
32
|
+
patterns:
|
|
33
|
+
- "*"
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
---
|
|
2
|
+
# Labels names are important as they are used by Release Drafter to decide
|
|
3
|
+
# regarding where to record them in changelog or if to skip them.
|
|
4
|
+
#
|
|
5
|
+
# The repository labels will be automatically configured using this file and
|
|
6
|
+
# the GitHub Action https://github.com/marketplace/actions/github-labeler.
|
|
7
|
+
- name: breaking
|
|
8
|
+
description: Breaking Changes
|
|
9
|
+
color: bfd4f2
|
|
10
|
+
- name: bug
|
|
11
|
+
description: Something isn't working
|
|
12
|
+
color: d73a4a
|
|
13
|
+
- name: ci
|
|
14
|
+
description: Continuous Integration
|
|
15
|
+
color: 4a97d6
|
|
16
|
+
- name: dependencies
|
|
17
|
+
description: Pull requests that update a dependency file
|
|
18
|
+
color: 0366d6
|
|
19
|
+
- name: documentation
|
|
20
|
+
description: Improvements or additions to documentation
|
|
21
|
+
color: 0075ca
|
|
22
|
+
- name: duplicate
|
|
23
|
+
description: This issue or pull request already exists
|
|
24
|
+
color: cfd3d7
|
|
25
|
+
- name: enhancement
|
|
26
|
+
description: New feature or request
|
|
27
|
+
color: a2eeef
|
|
28
|
+
- name: github_actions
|
|
29
|
+
description: Pull requests that update Github_actions code
|
|
30
|
+
color: "000000"
|
|
31
|
+
- name: good first issue
|
|
32
|
+
description: Good for newcomers
|
|
33
|
+
color: 7057ff
|
|
34
|
+
- name: help wanted
|
|
35
|
+
description: Extra attention is needed
|
|
36
|
+
color: 008672
|
|
37
|
+
- name: invalid
|
|
38
|
+
description: This doesn't seem right
|
|
39
|
+
color: e4e669
|
|
40
|
+
- name: performance
|
|
41
|
+
description: Performance
|
|
42
|
+
color: "016175"
|
|
43
|
+
- name: python
|
|
44
|
+
description: Pull requests that update Python code
|
|
45
|
+
color: 2b67c6
|
|
46
|
+
- name: question
|
|
47
|
+
description: Further information is requested
|
|
48
|
+
color: d876e3
|
|
49
|
+
- name: refactoring
|
|
50
|
+
description: Refactoring
|
|
51
|
+
color: ef67c4
|
|
52
|
+
- name: removal
|
|
53
|
+
description: Removals and Deprecations
|
|
54
|
+
color: 9ae7ea
|
|
55
|
+
- name: style
|
|
56
|
+
description: Style
|
|
57
|
+
color: c120e5
|
|
58
|
+
- name: testing
|
|
59
|
+
description: Testing
|
|
60
|
+
color: b1fc6f
|
|
61
|
+
- name: wontfix
|
|
62
|
+
description: This will not be worked on
|
|
63
|
+
color: ffffff
|
|
64
|
+
- name: "skip-changelog"
|
|
65
|
+
description: Changes that should be omitted from the release notes
|
|
66
|
+
color: ededed
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
categories:
|
|
2
|
+
- title: ":boom: Breaking Changes"
|
|
3
|
+
label: "breaking"
|
|
4
|
+
- title: ":rocket: Features"
|
|
5
|
+
label: "enhancement"
|
|
6
|
+
- title: ":fire: Removals and Deprecations"
|
|
7
|
+
label: "removal"
|
|
8
|
+
- title: ":beetle: Fixes"
|
|
9
|
+
label: "bug"
|
|
10
|
+
- title: ":racehorse: Performance"
|
|
11
|
+
label: "performance"
|
|
12
|
+
- title: ":rotating_light: Testing"
|
|
13
|
+
label: "testing"
|
|
14
|
+
- title: ":construction_worker: Continuous Integration"
|
|
15
|
+
label: "ci"
|
|
16
|
+
- title: ":books: Documentation"
|
|
17
|
+
label: "documentation"
|
|
18
|
+
- title: ":hammer: Refactoring"
|
|
19
|
+
label: "refactoring"
|
|
20
|
+
- title: ":lipstick: Style"
|
|
21
|
+
label: "style"
|
|
22
|
+
- title: ":package: Dependencies"
|
|
23
|
+
labels:
|
|
24
|
+
- "dependencies"
|
|
25
|
+
exclude-labels:
|
|
26
|
+
- "skip-changelog"
|
|
27
|
+
template: |
|
|
28
|
+
## Changes
|
|
29
|
+
|
|
30
|
+
$CHANGES
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
name: Documentation
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches:
|
|
6
|
+
- main
|
|
7
|
+
- master
|
|
8
|
+
|
|
9
|
+
# Allows you to run this workflow manually from the Actions tab
|
|
10
|
+
workflow_dispatch:
|
|
11
|
+
|
|
12
|
+
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
|
|
13
|
+
permissions:
|
|
14
|
+
contents: read
|
|
15
|
+
pages: write
|
|
16
|
+
id-token: write
|
|
17
|
+
|
|
18
|
+
# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
|
|
19
|
+
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
|
|
20
|
+
concurrency:
|
|
21
|
+
group: "pages"
|
|
22
|
+
cancel-in-progress: false
|
|
23
|
+
|
|
24
|
+
jobs:
|
|
25
|
+
build:
|
|
26
|
+
runs-on: ubuntu-latest
|
|
27
|
+
steps:
|
|
28
|
+
- name: Check out the repository
|
|
29
|
+
uses: actions/checkout@v5
|
|
30
|
+
|
|
31
|
+
- name: Set up Python
|
|
32
|
+
uses: actions/setup-python@v6.0.0
|
|
33
|
+
with:
|
|
34
|
+
python-version-file: pyproject.toml
|
|
35
|
+
|
|
36
|
+
- name: Install uv
|
|
37
|
+
uses: astral-sh/setup-uv@v6
|
|
38
|
+
with:
|
|
39
|
+
enable-cache: true
|
|
40
|
+
|
|
41
|
+
- name: Install dependencies
|
|
42
|
+
run: |
|
|
43
|
+
uv sync --locked --all-extras --dev
|
|
44
|
+
|
|
45
|
+
- name: Build doc with Sphinx
|
|
46
|
+
run: |
|
|
47
|
+
uv run sphinx-build docs docs/_build
|
|
48
|
+
|
|
49
|
+
- name: Upload artifact
|
|
50
|
+
uses: actions/upload-pages-artifact@v4
|
|
51
|
+
with:
|
|
52
|
+
path: "docs/_build"
|
|
53
|
+
|
|
54
|
+
deploy:
|
|
55
|
+
environment:
|
|
56
|
+
name: github-pages
|
|
57
|
+
url: ${{ steps.deployment.outputs.page_url }}
|
|
58
|
+
runs-on: ubuntu-latest
|
|
59
|
+
needs: build
|
|
60
|
+
steps:
|
|
61
|
+
- name: Setup Pages
|
|
62
|
+
uses: actions/configure-pages@v5
|
|
63
|
+
|
|
64
|
+
- name: Deploy to GitHub Pages
|
|
65
|
+
id: deployment
|
|
66
|
+
uses: actions/deploy-pages@v4
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
name: Labeler
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches:
|
|
6
|
+
- main
|
|
7
|
+
- master
|
|
8
|
+
paths:
|
|
9
|
+
- ".github/labels.yml"
|
|
10
|
+
- ".github/workflows/labeler.yml"
|
|
11
|
+
|
|
12
|
+
jobs:
|
|
13
|
+
labeler:
|
|
14
|
+
runs-on: ubuntu-latest
|
|
15
|
+
permissions:
|
|
16
|
+
issues: write
|
|
17
|
+
contents: read
|
|
18
|
+
steps:
|
|
19
|
+
- name: Check out the repository
|
|
20
|
+
uses: actions/checkout@v5
|
|
21
|
+
|
|
22
|
+
- name: Run Labeler
|
|
23
|
+
uses: crazy-max/ghaction-github-labeler@v5.3.0
|
|
24
|
+
with:
|
|
25
|
+
skip-delete: true
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
name: Release
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
workflow_dispatch:
|
|
5
|
+
push:
|
|
6
|
+
branches:
|
|
7
|
+
- main
|
|
8
|
+
- master
|
|
9
|
+
|
|
10
|
+
jobs:
|
|
11
|
+
release:
|
|
12
|
+
name: Release
|
|
13
|
+
runs-on: ubuntu-latest
|
|
14
|
+
permissions:
|
|
15
|
+
id-token: write
|
|
16
|
+
contents: write
|
|
17
|
+
pull-requests: read
|
|
18
|
+
steps:
|
|
19
|
+
- name: Check out the repository
|
|
20
|
+
uses: actions/checkout@v5
|
|
21
|
+
with:
|
|
22
|
+
fetch-depth: 2
|
|
23
|
+
|
|
24
|
+
- name: Set up Python
|
|
25
|
+
uses: actions/setup-python@v6.0.0
|
|
26
|
+
with:
|
|
27
|
+
python-version-file: pyproject.toml
|
|
28
|
+
|
|
29
|
+
- name: Install uv
|
|
30
|
+
uses: astral-sh/setup-uv@v6
|
|
31
|
+
with:
|
|
32
|
+
enable-cache: true
|
|
33
|
+
|
|
34
|
+
- name: Check if there is a parent commit
|
|
35
|
+
id: check-parent-commit
|
|
36
|
+
run: |
|
|
37
|
+
echo "sha=$(git rev-parse --verify --quiet HEAD^)" >> $GITHUB_OUTPUT
|
|
38
|
+
|
|
39
|
+
- name: Detect and tag new version
|
|
40
|
+
id: check-version
|
|
41
|
+
if: steps.check-parent-commit.outputs.sha
|
|
42
|
+
uses: salsify/action-detect-and-tag-new-version@v2.0.3
|
|
43
|
+
with:
|
|
44
|
+
version-command: |
|
|
45
|
+
bash -o pipefail -c "uvx --from=toml-cli toml get --toml-path=pyproject.toml project.version"
|
|
46
|
+
|
|
47
|
+
- name: Bump version for developmental release
|
|
48
|
+
if: (!steps.check-version.outputs.tag)
|
|
49
|
+
run: |
|
|
50
|
+
version=$(uvx --from=toml-cli toml get --toml-path=pyproject.toml project.version) &&
|
|
51
|
+
uvx --from=toml-cli toml set --toml-path=pyproject.toml project.version $version.dev.$(date +%s)
|
|
52
|
+
|
|
53
|
+
- name: Build package
|
|
54
|
+
run: |
|
|
55
|
+
uv build
|
|
56
|
+
|
|
57
|
+
- name: Publish package on PyPI
|
|
58
|
+
if: steps.check-version.outputs.tag
|
|
59
|
+
uses: pypa/gh-action-pypi-publish@v1.13.0
|
|
60
|
+
|
|
61
|
+
- name: Publish package on TestPyPI
|
|
62
|
+
if: (!steps.check-version.outputs.tag)
|
|
63
|
+
uses: pypa/gh-action-pypi-publish@v1.13.0
|
|
64
|
+
with:
|
|
65
|
+
repository-url: https://test.pypi.org/legacy/
|
|
66
|
+
|
|
67
|
+
- name: Publish the release notes
|
|
68
|
+
uses: release-drafter/release-drafter@v6.1.0
|
|
69
|
+
with:
|
|
70
|
+
publish: ${{ steps.check-version.outputs.tag != '' }}
|
|
71
|
+
tag: ${{ steps.check-version.outputs.tag }}
|
|
72
|
+
env:
|
|
73
|
+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
name: Tests
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches:
|
|
6
|
+
- "**"
|
|
7
|
+
paths:
|
|
8
|
+
- "src/**"
|
|
9
|
+
- "tests/**"
|
|
10
|
+
- "docs/**"
|
|
11
|
+
- "pyproject.toml"
|
|
12
|
+
- "uv.lock"
|
|
13
|
+
- ".pre-commit-config.yaml"
|
|
14
|
+
- "noxfile.py"
|
|
15
|
+
- ".github/workflows/tests.yml"
|
|
16
|
+
- ".github/workflows/constraints.txt"
|
|
17
|
+
|
|
18
|
+
jobs:
|
|
19
|
+
tests:
|
|
20
|
+
name: ${{ matrix.session }} ${{ matrix.python }} / ${{ matrix.os }}
|
|
21
|
+
runs-on: ${{ matrix.os }}
|
|
22
|
+
permissions:
|
|
23
|
+
contents: read
|
|
24
|
+
strategy:
|
|
25
|
+
fail-fast: false
|
|
26
|
+
matrix:
|
|
27
|
+
include:
|
|
28
|
+
- { python: "3.12", os: "ubuntu-latest", session: "pre-commit" }
|
|
29
|
+
- { python: "3.13", os: "ubuntu-latest", session: "mypy" }
|
|
30
|
+
- { python: "3.12", os: "ubuntu-latest", session: "mypy" }
|
|
31
|
+
- { python: "3.10", os: "ubuntu-latest", session: "tests" }
|
|
32
|
+
- { python: "3.11", os: "ubuntu-latest", session: "tests" }
|
|
33
|
+
- { python: "3.12", os: "ubuntu-latest", session: "tests" }
|
|
34
|
+
- { python: "3.13", os: "ubuntu-latest", session: "tests" }
|
|
35
|
+
- { python: "3.12", os: "ubuntu-latest", session: "typeguard" }
|
|
36
|
+
- { python: "3.12", os: "ubuntu-latest", session: "xdoctest" }
|
|
37
|
+
- { python: "3.12", os: "ubuntu-latest", session: "docs-build" }
|
|
38
|
+
|
|
39
|
+
env:
|
|
40
|
+
NOXSESSION: ${{ matrix.session }}
|
|
41
|
+
FORCE_COLOR: "1"
|
|
42
|
+
PRE_COMMIT_COLOR: "always"
|
|
43
|
+
|
|
44
|
+
steps:
|
|
45
|
+
- name: Check out the repository
|
|
46
|
+
uses: actions/checkout@v5
|
|
47
|
+
|
|
48
|
+
- name: Set up Python ${{ matrix.python }}
|
|
49
|
+
uses: actions/setup-python@v6.0.0
|
|
50
|
+
with:
|
|
51
|
+
python-version: ${{ matrix.python }}
|
|
52
|
+
|
|
53
|
+
- name: Install uv
|
|
54
|
+
uses: astral-sh/setup-uv@v6
|
|
55
|
+
with:
|
|
56
|
+
enable-cache: true
|
|
57
|
+
|
|
58
|
+
- name: Compute pre-commit cache key
|
|
59
|
+
if: matrix.session == 'pre-commit'
|
|
60
|
+
id: pre-commit-cache
|
|
61
|
+
shell: python
|
|
62
|
+
run: |
|
|
63
|
+
import hashlib
|
|
64
|
+
import subprocess
|
|
65
|
+
import sys
|
|
66
|
+
|
|
67
|
+
python = "py{}.{}".format(*sys.version_info[:2])
|
|
68
|
+
payload = sys.version.encode() + sys.executable.encode()
|
|
69
|
+
digest = hashlib.sha256(payload).hexdigest()
|
|
70
|
+
result = "${{ runner.os }}-{}-{}-pre-commit".format(python, digest[:8])
|
|
71
|
+
cmd = f'echo "result={result}" >> $GITHUB_OUTPUT'
|
|
72
|
+
subprocess.run(cmd, shell=True)
|
|
73
|
+
|
|
74
|
+
- name: Restore pre-commit cache
|
|
75
|
+
uses: actions/cache@v4
|
|
76
|
+
if: matrix.session == 'pre-commit'
|
|
77
|
+
with:
|
|
78
|
+
path: ~/.cache/pre-commit
|
|
79
|
+
key: ${{ steps.pre-commit-cache.outputs.result }}-${{ hashFiles('.pre-commit-config.yaml') }}
|
|
80
|
+
restore-keys: |
|
|
81
|
+
${{ steps.pre-commit-cache.outputs.result }}-
|
|
82
|
+
|
|
83
|
+
- name: Run Nox
|
|
84
|
+
run: |
|
|
85
|
+
uvx --constraints "${{ github.workspace }}/.github/workflows/constraints.txt" nox --python=${{ matrix.python }}
|
|
86
|
+
|
|
87
|
+
- name: Upload coverage data
|
|
88
|
+
if: always() && matrix.session == 'tests'
|
|
89
|
+
uses: "actions/upload-artifact@v4"
|
|
90
|
+
with:
|
|
91
|
+
name: coverage-data-${{ matrix.os }}-${{ matrix.python }}
|
|
92
|
+
path: ".coverage.*"
|
|
93
|
+
include-hidden-files: true
|
|
94
|
+
|
|
95
|
+
- name: Upload documentation
|
|
96
|
+
if: matrix.session == 'docs-build'
|
|
97
|
+
uses: actions/upload-artifact@v4
|
|
98
|
+
with:
|
|
99
|
+
name: docs
|
|
100
|
+
path: docs/_build
|
|
101
|
+
|
|
102
|
+
coverage:
|
|
103
|
+
runs-on: ubuntu-latest
|
|
104
|
+
needs: tests
|
|
105
|
+
permissions:
|
|
106
|
+
contents: read
|
|
107
|
+
steps:
|
|
108
|
+
- name: Check out the repository
|
|
109
|
+
uses: actions/checkout@v5
|
|
110
|
+
with:
|
|
111
|
+
fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis
|
|
112
|
+
|
|
113
|
+
- name: Install uv
|
|
114
|
+
uses: astral-sh/setup-uv@v6
|
|
115
|
+
with:
|
|
116
|
+
enable-cache: true
|
|
117
|
+
|
|
118
|
+
- name: Download coverage data
|
|
119
|
+
uses: actions/download-artifact@v5
|
|
120
|
+
with:
|
|
121
|
+
pattern: coverage-data-*
|
|
122
|
+
merge-multiple: true
|
|
123
|
+
|
|
124
|
+
- name: Combine coverage data and display human readable report
|
|
125
|
+
run: |
|
|
126
|
+
uvx --constraints "${{ github.workspace }}/.github/workflows/constraints.txt" nox --session=coverage
|
|
127
|
+
|
|
128
|
+
- name: Create coverage report
|
|
129
|
+
run: |
|
|
130
|
+
uvx --constraints "${{ github.workspace }}/.github/workflows/constraints.txt" nox --session=coverage -- xml
|
|
131
|
+
|
|
132
|
+
# Need to fix coverage source paths for SonarCloud scanning in GitHub actions.
|
|
133
|
+
# Replace root path with /github/workspace (mounted in docker container).
|
|
134
|
+
- name: Override coverage source paths for SonarCloud
|
|
135
|
+
run: |
|
|
136
|
+
sed -i "s/<source><\/source>/<source>\/home\/runner\/work\/dapla-toolbelt-metadata\/dapla-toolbelt-metadata<\/source>/g" coverage.xml
|
|
137
|
+
sed -i "s/<source>tests/<source>\/home\/runner\/work\/dapla-toolbelt-metadata\/dapla-toolbelt-metadata\/tests/g" coverage.xml
|
|
138
|
+
|
|
139
|
+
- name: SonarQube Cloud Scan
|
|
140
|
+
env:
|
|
141
|
+
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
|
|
142
|
+
# No need to run SonarCloud analysis if dependabot update or token not defined
|
|
143
|
+
if: env.SONAR_TOKEN != '' && (github.actor != 'dependabot[bot]')
|
|
144
|
+
uses: SonarSource/sonarqube-scan-action@v6.0.0
|