bam-masterdata 0.4.2__tar.gz → 0.5.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/.github/workflows/actions.yml +4 -4
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/.github/workflows/mkdocs-deploy.yml +2 -2
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/.github/workflows/publish.yml +2 -2
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/PKG-INFO +21 -51
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/README.md +17 -47
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/bam_masterdata/_version.py +2 -2
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/bam_masterdata/checker/masterdata_validator.py +2 -2
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/bam_masterdata/checker/source_loader.py +2 -2
- {bam_masterdata-0.4.2/bam_masterdata → bam_masterdata-0.5.0/bam_masterdata/checker}/validation_rules/all_validation_rules.json +75 -75
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/bam_masterdata/checker/validation_rules/excel_validation_rules.json +2 -2
- {bam_masterdata-0.4.2/bam_masterdata → bam_masterdata-0.5.0/bam_masterdata/checker}/validation_rules/validation_rules.json +109 -109
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/bam_masterdata/cli/entities_to_rdf.py +1 -1
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/bam_masterdata/excel/excel_to_entities.py +4 -4
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/bam_masterdata/metadata/_maps.py +1 -1
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/bam_masterdata/metadata/definitions.py +18 -23
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/bam_masterdata/metadata/entities.py +154 -7
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/bam_masterdata/utils/utils.py +2 -2
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/bam_masterdata.egg-info/PKG-INFO +21 -51
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/bam_masterdata.egg-info/SOURCES.txt +1 -4
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/pyproject.toml +5 -5
- bam_masterdata-0.5.0/scripts/install_python_dependencies.bat +8 -0
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/tests/checker/test_source_loader.py +1 -1
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/tests/cli/test_entities_to_excel.py +1 -1
- bam_masterdata-0.5.0/tests/data/checker/example07_codeexists_objtype_warningdefschanged.xlsx +0 -0
- bam_masterdata-0.5.0/tests/data/checker/example08_codeexists_objtype_assignprop_listcodeschanged_add.xlsx +0 -0
- bam_masterdata-0.5.0/tests/data/checker/example09_codeexists_objtype_assignprop_listcodeschanged_del.xlsx +0 -0
- bam_masterdata-0.5.0/tests/data/checker/example10_codeexists_objtype_assignprop_codedoesnotexists.xlsx +0 -0
- bam_masterdata-0.5.0/tests/data/checker/example11_codeexists_objtype_assignprop_listcodeschanged_datatypechanged.xlsx +0 -0
- bam_masterdata-0.5.0/tests/data/checker/example12_codeexists_objtype_assignprop_listcodeschanged_warningdefschanged.xlsx +0 -0
- bam_masterdata-0.5.0/tests/data/checker/example13_codeexists_objtype_assignprop_coincide2objects.xlsx +0 -0
- bam_masterdata-0.5.0/tests/data/checker/example_incoming_excel.xlsx +0 -0
- bam_masterdata-0.5.0/tests/data/checker/masterdata_example.xlsx +0 -0
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/tests/data/checker/masterdata_excel_output.json +1 -1
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/tests/data/checker/masterdata_python_output.json +1 -1
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/tests/excel/test_excel_to_entities.py +12 -14
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/tests/metadata/test_definitions.py +46 -47
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/tests/metadata/test_entities.py +92 -2
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/tests/metadata/test_entities_dict.py +1 -1
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/tests/test_logger.py +1 -1
- bam_masterdata-0.4.2/bam_masterdata/checker/validation_rules/all_validation_rules.json +0 -80
- bam_masterdata-0.4.2/bam_masterdata/checker/validation_rules/validation_rules.json +0 -119
- bam_masterdata-0.4.2/bam_masterdata/validation_rules/excel_validation_rules.json +0 -75
- bam_masterdata-0.4.2/setup.py +0 -3
- bam_masterdata-0.4.2/tests/data/checker/example07_codeexists_objtype_warningdefschanged.xlsx +0 -0
- bam_masterdata-0.4.2/tests/data/checker/example08_codeexists_objtype_assignprop_listcodeschanged_add.xlsx +0 -0
- bam_masterdata-0.4.2/tests/data/checker/example09_codeexists_objtype_assignprop_listcodeschanged_del.xlsx +0 -0
- bam_masterdata-0.4.2/tests/data/checker/example10_codeexists_objtype_assignprop_codedoesnotexists.xlsx +0 -0
- bam_masterdata-0.4.2/tests/data/checker/example11_codeexists_objtype_assignprop_listcodeschanged_datatypechanged.xlsx +0 -0
- bam_masterdata-0.4.2/tests/data/checker/example12_codeexists_objtype_assignprop_listcodeschanged_warningdefschanged.xlsx +0 -0
- bam_masterdata-0.4.2/tests/data/checker/example13_codeexists_objtype_assignprop_coincide2objects.xlsx +0 -0
- bam_masterdata-0.4.2/tests/data/checker/example_incoming_excel.xlsx +0 -0
- bam_masterdata-0.4.2/tests/data/checker/masterdata_example.xlsx +0 -0
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/.coveragerc +0 -0
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/.github/workflows/coveralls.yml +0 -0
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/.gitignore +0 -0
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/.vscode/settings.json +0 -0
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/AUTHORS +0 -0
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/LICENSE +0 -0
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/bam_masterdata/__init__.py +0 -0
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/bam_masterdata/checker/__init__.py +0 -0
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/bam_masterdata/checker/checker.py +0 -0
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/bam_masterdata/cli/__init__.py +0 -0
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/bam_masterdata/cli/cli.py +0 -0
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/bam_masterdata/cli/entities_to_excel.py +0 -0
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/bam_masterdata/cli/fill_masterdata.py +0 -0
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/bam_masterdata/datamodel/__init__.py +0 -0
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/bam_masterdata/datamodel/collection_types.py +0 -0
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/bam_masterdata/datamodel/dataset_types.py +0 -0
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/bam_masterdata/datamodel/object_types.py +0 -0
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/bam_masterdata/datamodel/vocabulary_types.py +0 -0
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/bam_masterdata/excel/__init__.py +0 -0
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/bam_masterdata/logger.py +0 -0
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/bam_masterdata/metadata/__init__.py +0 -0
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/bam_masterdata/metadata/entities_dict.py +0 -0
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/bam_masterdata/openbis/__init__.py +0 -0
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/bam_masterdata/openbis/get_entities.py +0 -0
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/bam_masterdata/openbis/login.py +0 -0
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/bam_masterdata/utils/__init__.py +0 -0
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/bam_masterdata/utils/paths.py +0 -0
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/bam_masterdata.egg-info/dependency_links.txt +0 -0
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/bam_masterdata.egg-info/entry_points.txt +0 -0
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/bam_masterdata.egg-info/requires.txt +2 -2
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/bam_masterdata.egg-info/top_level.txt +0 -0
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/docs/assets/bammasterdata_blue_transparent.png +0 -0
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/docs/assets/bammasterdata_blue_transparent_text.png +0 -0
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/docs/assets/bammasterdata_blue_transparent_text.svg +0 -0
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/docs/assets/bammasterdata_blue_white.png +0 -0
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/docs/assets/bammasterdata_blue_white_text.png +0 -0
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/docs/assets/datastore-logo-white.png +0 -0
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/docs/assets/datastore-logo.png +0 -0
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/docs/assets/drawio/checker-structure.drawio +0 -0
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/docs/assets/drawio/masterdata-workflow.drawio +0 -0
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/docs/assets/drawio/masterdata-workflow.drawio.png +0 -0
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/docs/assets/fonts/BAMKlavika-Light.ttf +0 -0
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/docs/assets/fonts/BAMKlavika-LightItalic.ttf +0 -0
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/docs/assets/fonts/BAMKlavika-Medium.ttf +0 -0
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/docs/assets/fonts/BAMKlavika-MediumItalic.ttf +0 -0
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/docs/explanations/data-store.md +0 -0
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/docs/explanations/openbis.md +0 -0
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/docs/explanations/pybis.md +0 -0
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/docs/howtos/overview.md +0 -0
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/docs/howtos/pybis/collections.md +0 -0
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/docs/howtos/pybis/datasets.md +0 -0
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/docs/howtos/pybis/objects.md +0 -0
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/docs/howtos/pybis/objects_props.md +0 -0
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/docs/howtos/pybis/parent_child.md +0 -0
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/docs/howtos/pybis/projects.md +0 -0
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/docs/howtos/pybis/searches.md +0 -0
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/docs/howtos/pybis/setup.md +0 -0
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/docs/howtos/pybis/spaces.md +0 -0
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/docs/index.md +0 -0
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/docs/references/collection.md +0 -0
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/docs/references/controlled-vocabulary.md +0 -0
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/docs/references/dataset.md +0 -0
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/docs/stylesheets/extra.css +0 -0
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/docs/tutorials/create-masterdata.md +0 -0
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/docs/tutorials/pybis.md +0 -0
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/mkdocs.yml +0 -0
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/scripts/install_python_dependencies.sh +0 -0
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/scripts/pkg_size.py +0 -0
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/setup.cfg +0 -0
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/tests/__init__.py +0 -0
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/tests/cli/test_entities_to_rdf.py +0 -0
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/tests/conftest.py +0 -0
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/tests/data/checker/datamodel_test/collection_types.py +0 -0
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/tests/data/checker/datamodel_test/dataset_types.py +0 -0
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/tests/data/checker/datamodel_test/object_types.py +0 -0
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/tests/data/checker/example01_codedoesnoteexists.xlsx +0 -0
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/tests/data/checker/example02_codeexists_proptype_datatypechanged.xlsx +0 -0
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/tests/data/checker/example03_codeexists_proptype_contvoccodechanged.xlsx +0 -0
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/tests/data/checker/example04_codeexists_proptype_objectcodechanged.xlsx +0 -0
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/tests/data/checker/example05_codeexists_proptype_warningdefschanged.xlsx +0 -0
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/tests/data/checker/example06_codeexists_proptype_vocobjcodemiss.xlsx +0 -0
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/tests/data/checker/example_incoming_python/collection_types.py +0 -0
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/tests/data/checker/example_incoming_python/dataset_types.py +0 -0
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/tests/data/checker/example_incoming_python/object_types.py +0 -0
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/tests/data/utils/example_prop_types_1.py +0 -0
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/tests/data/utils/example_prop_types_2.py +0 -0
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/tests/utils/test_paths.py +0 -0
- {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/tests/utils/test_utils.py +0 -0
|
@@ -18,7 +18,7 @@ jobs:
|
|
|
18
18
|
strategy:
|
|
19
19
|
fail-fast: false
|
|
20
20
|
matrix:
|
|
21
|
-
python_version: ["3.
|
|
21
|
+
python_version: ["3.10", "3.11", "3.12"]
|
|
22
22
|
steps:
|
|
23
23
|
- uses: actions/checkout@v4
|
|
24
24
|
- name: Set up Python ${{matrix.python_version}}
|
|
@@ -32,9 +32,9 @@ jobs:
|
|
|
32
32
|
run: |
|
|
33
33
|
pip install --upgrade pip
|
|
34
34
|
uv pip install -e '.[dev]'
|
|
35
|
-
- name: mypy
|
|
36
|
-
|
|
37
|
-
|
|
35
|
+
# - name: mypy
|
|
36
|
+
# run: |
|
|
37
|
+
# python -m mypy --ignore-missing-imports --follow-imports=silent --no-strict-optional bam_masterdata tests
|
|
38
38
|
- name: Test with pytest
|
|
39
39
|
run: |
|
|
40
40
|
python -m pytest -sv --ignore=tests/cli --ignore=tests/metadata/test_entities_dict.py tests
|
|
@@ -14,10 +14,10 @@ jobs:
|
|
|
14
14
|
steps:
|
|
15
15
|
- name: Checkout Repository
|
|
16
16
|
uses: actions/checkout@v4
|
|
17
|
-
- name: Set up Python 3.
|
|
17
|
+
- name: Set up Python 3.12
|
|
18
18
|
uses: actions/setup-python@v5
|
|
19
19
|
with:
|
|
20
|
-
python-version: 3.
|
|
20
|
+
python-version: 3.12
|
|
21
21
|
- name: Install Documentation Dependencies
|
|
22
22
|
run: |
|
|
23
23
|
pip install --upgrade pip
|
|
@@ -23,10 +23,10 @@ jobs:
|
|
|
23
23
|
runs-on: ubuntu-latest
|
|
24
24
|
steps:
|
|
25
25
|
- uses: actions/checkout@v4
|
|
26
|
-
- name: Set up Python 3.
|
|
26
|
+
- name: Set up Python 3.12
|
|
27
27
|
uses: actions/setup-python@v5
|
|
28
28
|
with:
|
|
29
|
-
python-version: 3.
|
|
29
|
+
python-version: 3.12
|
|
30
30
|
- name: Install uv
|
|
31
31
|
run: |
|
|
32
32
|
curl -LsSf https://astral.sh/uv/install.sh | sh
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: bam-masterdata
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.5.0
|
|
4
4
|
Summary: The BAM Data Store utility tools and masterdata models wrapped in a Python package with a front-end web interface.
|
|
5
5
|
Author-email: BAM Data Store <datastore@bam.de>
|
|
6
6
|
Maintainer-email: "Jose M. Pizarro" <jose.pizarro-blanco@bam.de>
|
|
@@ -31,15 +31,15 @@ License: MIT License - MODIFIED
|
|
|
31
31
|
done if you use parts of this datamodel in your own modelling.
|
|
32
32
|
Project-URL: Homepage, https://github.com/BAMresearch/bam-masterdata
|
|
33
33
|
Project-URL: Bug Tracker, https://github.com/BAMresearch/bam-masterdata/issues
|
|
34
|
+
Project-URL: Documentation, https://bamresearch.github.io/bam-masterdata/
|
|
34
35
|
Classifier: Natural Language :: English
|
|
35
36
|
Classifier: Intended Audience :: Science/Research
|
|
36
37
|
Classifier: Operating System :: OS Independent
|
|
37
38
|
Classifier: Programming Language :: Python
|
|
38
|
-
Classifier: Programming Language :: Python :: 3.9
|
|
39
39
|
Classifier: Programming Language :: Python :: 3.10
|
|
40
40
|
Classifier: Programming Language :: Python :: 3.11
|
|
41
41
|
Classifier: Programming Language :: Python :: 3.12
|
|
42
|
-
Requires-Python: >=3.
|
|
42
|
+
Requires-Python: >=3.10
|
|
43
43
|
Description-Content-Type: text/markdown
|
|
44
44
|
License-File: LICENSE
|
|
45
45
|
License-File: AUTHORS
|
|
@@ -49,14 +49,14 @@ Requires-Dist: click
|
|
|
49
49
|
Requires-Dist: pydantic~=2.10.5
|
|
50
50
|
Requires-Dist: rdflib
|
|
51
51
|
Requires-Dist: h5py~=3.12.1
|
|
52
|
+
Requires-Dist: python-decouple
|
|
53
|
+
Requires-Dist: structlog==24.4.0
|
|
52
54
|
Provides-Extra: dev
|
|
53
55
|
Requires-Dist: mypy==1.0.1; extra == "dev"
|
|
54
56
|
Requires-Dist: ruff; extra == "dev"
|
|
55
57
|
Requires-Dist: pytest; extra == "dev"
|
|
56
58
|
Requires-Dist: pytest-timeout; extra == "dev"
|
|
57
59
|
Requires-Dist: pytest-cov; extra == "dev"
|
|
58
|
-
Requires-Dist: python-decouple; extra == "dev"
|
|
59
|
-
Requires-Dist: structlog==24.4.0; extra == "dev"
|
|
60
60
|
Provides-Extra: docu
|
|
61
61
|
Requires-Dist: mkdocs-material; extra == "docu"
|
|
62
62
|
Requires-Dist: mkdocs-click; extra == "docu"
|
|
@@ -82,24 +82,19 @@ Dynamic: license-file
|
|
|
82
82
|
|
|
83
83
|
</h4>
|
|
84
84
|
|
|
85
|
-
The BAM Masterdata
|
|
85
|
+
The BAM Masterdata repository contains the masterdata schemas defined at BAM and provides utility functions for working with them.
|
|
86
86
|
|
|
87
87
|
If you want to install it, do:
|
|
88
88
|
```sh
|
|
89
89
|
pip install bam-masterdata
|
|
90
90
|
```
|
|
91
91
|
|
|
92
|
-
In order to include the CLI functionalities, you have to add the optional `[dev]` dependencies when pip installing the package:
|
|
93
|
-
```sh
|
|
94
|
-
pip install bam-masterdata[dev]
|
|
95
|
-
```
|
|
96
|
-
|
|
97
92
|
## Development
|
|
98
93
|
|
|
99
94
|
If you want to develop locally this package, clone the project and enter in the workspace folder:
|
|
100
95
|
|
|
101
96
|
```sh
|
|
102
|
-
git clone https://
|
|
97
|
+
git clone https://github.com/BAMresearch/bam-masterdata.git
|
|
103
98
|
cd bam-masterdata
|
|
104
99
|
```
|
|
105
100
|
|
|
@@ -110,11 +105,17 @@ python3 -m venv .venv
|
|
|
110
105
|
source .venv/bin/activate
|
|
111
106
|
```
|
|
112
107
|
|
|
113
|
-
Run the following script:
|
|
108
|
+
Run the following script depending on your OS:
|
|
109
|
+
- *Linux/MacOS*:
|
|
110
|
+
```sh
|
|
111
|
+
./scripts/install_python_dependencies.sh
|
|
112
|
+
```
|
|
113
|
+
- *Windows*:
|
|
114
|
+
```sh
|
|
115
|
+
scripts/install_python_dependencies.bat
|
|
116
|
+
```
|
|
114
117
|
|
|
115
|
-
|
|
116
|
-
./scripts/install_python_dependencies
|
|
117
|
-
```
|
|
118
|
+
**Note**: This script installs the required dependencies for development, testing, and documentation, using `uv` and `pip`.
|
|
118
119
|
|
|
119
120
|
### Run the tests
|
|
120
121
|
|
|
@@ -143,53 +144,22 @@ ruff check .
|
|
|
143
144
|
This will produce an output with the specific issues found. In order to auto-fix them, run:
|
|
144
145
|
|
|
145
146
|
```sh
|
|
146
|
-
ruff format .
|
|
147
|
+
ruff format .
|
|
147
148
|
```
|
|
148
149
|
|
|
149
150
|
If some issues are not possible to fix automatically, you will need to visit the file and fix them by hand.
|
|
150
151
|
|
|
151
|
-
### Run the local website
|
|
152
|
-
|
|
153
|
-
**Under construction!**
|
|
154
|
-
|
|
155
|
-
<!-- ### Debugging
|
|
156
|
-
|
|
157
|
-
For interactive debugging of the tests, use `pytest` with the `--pdb` flag. We recommend using an IDE for debugging, e.g., _VSCode_. If that is the case, add the following snippet to your `.vscode/launch.json`:
|
|
158
|
-
```json
|
|
159
|
-
{
|
|
160
|
-
"configurations": [
|
|
161
|
-
{
|
|
162
|
-
"name": "<descriptive tag>",
|
|
163
|
-
"type": "debugpy",
|
|
164
|
-
"request": "launch",
|
|
165
|
-
"cwd": "${workspaceFolder}",
|
|
166
|
-
"program": "${workspaceFolder}/.pyenv/bin/pytest",
|
|
167
|
-
"justMyCode": true,
|
|
168
|
-
"env": {
|
|
169
|
-
"_PYTEST_RAISE": "1"
|
|
170
|
-
},
|
|
171
|
-
"args": [
|
|
172
|
-
"-sv",
|
|
173
|
-
"--pdb",
|
|
174
|
-
"<path-to-plugin-tests>",
|
|
175
|
-
]
|
|
176
|
-
}
|
|
177
|
-
]
|
|
178
|
-
}
|
|
179
|
-
```
|
|
180
|
-
|
|
181
|
-
where `<path-to-plugin-tests>` must be changed to the local path to the test module to be debugged.
|
|
182
|
-
|
|
183
|
-
The settings configuration file `.vscode/settings.json` automatically applies the linting and formatting upon saving the modified file. -->
|
|
184
152
|
|
|
185
153
|
### Documentation on Github pages
|
|
186
154
|
|
|
187
|
-
To view the documentation locally, make sure to have installed the extra packages (this is part of the `scripts/install_python_dependencies
|
|
155
|
+
To view the documentation locally, make sure to have installed the extra packages (this is part of the `scripts/install_python_dependencies.*`, so if you ran this script before, you don't need to do it again now):
|
|
188
156
|
|
|
189
157
|
```sh
|
|
190
158
|
uv pip install -e '[docu]'
|
|
191
159
|
```
|
|
192
160
|
|
|
161
|
+
**Note**: This command installs `mkdocs`, `mkdocs-material`, and other documentation-related dependencies.
|
|
162
|
+
|
|
193
163
|
The first time, build the server:
|
|
194
164
|
|
|
195
165
|
```sh
|
|
@@ -17,24 +17,19 @@
|
|
|
17
17
|
|
|
18
18
|
</h4>
|
|
19
19
|
|
|
20
|
-
The BAM Masterdata
|
|
20
|
+
The BAM Masterdata repository contains the masterdata schemas defined at BAM and provides utility functions for working with them.
|
|
21
21
|
|
|
22
22
|
If you want to install it, do:
|
|
23
23
|
```sh
|
|
24
24
|
pip install bam-masterdata
|
|
25
25
|
```
|
|
26
26
|
|
|
27
|
-
In order to include the CLI functionalities, you have to add the optional `[dev]` dependencies when pip installing the package:
|
|
28
|
-
```sh
|
|
29
|
-
pip install bam-masterdata[dev]
|
|
30
|
-
```
|
|
31
|
-
|
|
32
27
|
## Development
|
|
33
28
|
|
|
34
29
|
If you want to develop locally this package, clone the project and enter in the workspace folder:
|
|
35
30
|
|
|
36
31
|
```sh
|
|
37
|
-
git clone https://
|
|
32
|
+
git clone https://github.com/BAMresearch/bam-masterdata.git
|
|
38
33
|
cd bam-masterdata
|
|
39
34
|
```
|
|
40
35
|
|
|
@@ -45,11 +40,17 @@ python3 -m venv .venv
|
|
|
45
40
|
source .venv/bin/activate
|
|
46
41
|
```
|
|
47
42
|
|
|
48
|
-
Run the following script:
|
|
43
|
+
Run the following script depending on your OS:
|
|
44
|
+
- *Linux/MacOS*:
|
|
45
|
+
```sh
|
|
46
|
+
./scripts/install_python_dependencies.sh
|
|
47
|
+
```
|
|
48
|
+
- *Windows*:
|
|
49
|
+
```sh
|
|
50
|
+
scripts/install_python_dependencies.bat
|
|
51
|
+
```
|
|
49
52
|
|
|
50
|
-
|
|
51
|
-
./scripts/install_python_dependencies
|
|
52
|
-
```
|
|
53
|
+
**Note**: This script installs the required dependencies for development, testing, and documentation, using `uv` and `pip`.
|
|
53
54
|
|
|
54
55
|
### Run the tests
|
|
55
56
|
|
|
@@ -78,53 +79,22 @@ ruff check .
|
|
|
78
79
|
This will produce an output with the specific issues found. In order to auto-fix them, run:
|
|
79
80
|
|
|
80
81
|
```sh
|
|
81
|
-
ruff format .
|
|
82
|
+
ruff format .
|
|
82
83
|
```
|
|
83
84
|
|
|
84
85
|
If some issues are not possible to fix automatically, you will need to visit the file and fix them by hand.
|
|
85
86
|
|
|
86
|
-
### Run the local website
|
|
87
|
-
|
|
88
|
-
**Under construction!**
|
|
89
|
-
|
|
90
|
-
<!-- ### Debugging
|
|
91
|
-
|
|
92
|
-
For interactive debugging of the tests, use `pytest` with the `--pdb` flag. We recommend using an IDE for debugging, e.g., _VSCode_. If that is the case, add the following snippet to your `.vscode/launch.json`:
|
|
93
|
-
```json
|
|
94
|
-
{
|
|
95
|
-
"configurations": [
|
|
96
|
-
{
|
|
97
|
-
"name": "<descriptive tag>",
|
|
98
|
-
"type": "debugpy",
|
|
99
|
-
"request": "launch",
|
|
100
|
-
"cwd": "${workspaceFolder}",
|
|
101
|
-
"program": "${workspaceFolder}/.pyenv/bin/pytest",
|
|
102
|
-
"justMyCode": true,
|
|
103
|
-
"env": {
|
|
104
|
-
"_PYTEST_RAISE": "1"
|
|
105
|
-
},
|
|
106
|
-
"args": [
|
|
107
|
-
"-sv",
|
|
108
|
-
"--pdb",
|
|
109
|
-
"<path-to-plugin-tests>",
|
|
110
|
-
]
|
|
111
|
-
}
|
|
112
|
-
]
|
|
113
|
-
}
|
|
114
|
-
```
|
|
115
|
-
|
|
116
|
-
where `<path-to-plugin-tests>` must be changed to the local path to the test module to be debugged.
|
|
117
|
-
|
|
118
|
-
The settings configuration file `.vscode/settings.json` automatically applies the linting and formatting upon saving the modified file. -->
|
|
119
87
|
|
|
120
88
|
### Documentation on Github pages
|
|
121
89
|
|
|
122
|
-
To view the documentation locally, make sure to have installed the extra packages (this is part of the `scripts/install_python_dependencies
|
|
90
|
+
To view the documentation locally, make sure to have installed the extra packages (this is part of the `scripts/install_python_dependencies.*`, so if you ran this script before, you don't need to do it again now):
|
|
123
91
|
|
|
124
92
|
```sh
|
|
125
93
|
uv pip install -e '[docu]'
|
|
126
94
|
```
|
|
127
95
|
|
|
96
|
+
**Note**: This command installs `mkdocs`, `mkdocs-material`, and other documentation-related dependencies.
|
|
97
|
+
|
|
128
98
|
The first time, build the server:
|
|
129
99
|
|
|
130
100
|
```sh
|
|
@@ -173,4 +143,4 @@ The main datamodel developers are:
|
|
|
173
143
|
- Julien Lecompagnon
|
|
174
144
|
- Jan Lisec
|
|
175
145
|
- Mathias Röllig
|
|
176
|
-
- Bastian Rühle
|
|
146
|
+
- Bastian Rühle
|
{bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/bam_masterdata/checker/masterdata_validator.py
RENAMED
|
@@ -180,7 +180,7 @@ class MasterdataValidator:
|
|
|
180
180
|
# Check if required properties exist in specific sections
|
|
181
181
|
required_properties = {
|
|
182
182
|
"Additional Information": "NOTES",
|
|
183
|
-
"Comments": "
|
|
183
|
+
"Comments": "$XMLCOMMENTS",
|
|
184
184
|
}
|
|
185
185
|
|
|
186
186
|
# Track found properties
|
|
@@ -573,7 +573,7 @@ class MasterdataValidator:
|
|
|
573
573
|
if "code" in property_item:
|
|
574
574
|
codes.add(property_item["code"])
|
|
575
575
|
# Recursively check for more nested structures
|
|
576
|
-
elif isinstance(value,
|
|
576
|
+
elif isinstance(value, dict | list):
|
|
577
577
|
codes.update(self.extract_property_codes(value))
|
|
578
578
|
|
|
579
579
|
elif isinstance(data, list):
|
|
@@ -107,8 +107,8 @@ class SourceLoader:
|
|
|
107
107
|
transformed_entity["defs"]["generated_code_prefix"] = (
|
|
108
108
|
entity_data.get("generatedCodePrefix")
|
|
109
109
|
)
|
|
110
|
-
transformed_entity["defs"]["
|
|
111
|
-
|
|
110
|
+
transformed_entity["defs"]["auto_generate_codes"] = entity_data.get(
|
|
111
|
+
"autoGeneratedCode"
|
|
112
112
|
)
|
|
113
113
|
|
|
114
114
|
# Convert properties from dict to list
|
|
@@ -1,76 +1,76 @@
|
|
|
1
|
-
{
|
|
2
|
-
"code": {
|
|
3
|
-
"pattern": "^\\$?[A-Za-z0-9_.]+$"
|
|
4
|
-
},
|
|
5
|
-
"description": {
|
|
6
|
-
"pattern": ".*",
|
|
7
|
-
"is_description": true
|
|
8
|
-
},
|
|
9
|
-
"validation_script": {
|
|
10
|
-
"pattern": "^[A-Za-z0-9_\\.]+$",
|
|
11
|
-
"allow_empty": true
|
|
12
|
-
},
|
|
13
|
-
"
|
|
14
|
-
"is_bool": true
|
|
15
|
-
},
|
|
16
|
-
"main_dataset_pattern": {
|
|
17
|
-
"pattern": ".*",
|
|
18
|
-
"allow_empty": true
|
|
19
|
-
},
|
|
20
|
-
"main_dataset_path": {
|
|
21
|
-
"pattern": ".*",
|
|
22
|
-
"allow_empty": true
|
|
23
|
-
},
|
|
24
|
-
"property_label": {
|
|
25
|
-
"pattern": ".*"
|
|
26
|
-
},
|
|
27
|
-
"data_type": {
|
|
28
|
-
"is_data": true
|
|
29
|
-
},
|
|
30
|
-
"vocabulary_code": {
|
|
31
|
-
"pattern": "^\\$?[A-Za-z0-9_.]+$",
|
|
32
|
-
"allow_empty": true
|
|
33
|
-
},
|
|
34
|
-
"object_code": {
|
|
35
|
-
"pattern": "^\\$?[A-Za-z0-9_.]+$",
|
|
36
|
-
"allow_empty": true
|
|
37
|
-
},
|
|
38
|
-
"metadata": {
|
|
39
|
-
"pattern": ".*",
|
|
40
|
-
"allow_empty": true
|
|
41
|
-
},
|
|
42
|
-
"url_template": {
|
|
43
|
-
"pattern": "https?://(?:www\\.)?[a-zA-Z0-9-._~:/?#@!$&'()*+,;=%]+",
|
|
44
|
-
"is_url": true,
|
|
45
|
-
"allow_empty": true
|
|
46
|
-
},
|
|
47
|
-
"dynamic_script": {
|
|
48
|
-
"pattern": "^[A-Za-z0-9_\\.]+$",
|
|
49
|
-
"allow_empty": true
|
|
50
|
-
},
|
|
51
|
-
"mandatory": {
|
|
52
|
-
"is_bool": true
|
|
53
|
-
},
|
|
54
|
-
"show_in_edit_views": {
|
|
55
|
-
"is_bool": true
|
|
56
|
-
},
|
|
57
|
-
"section": {
|
|
58
|
-
"pattern": ".*"
|
|
59
|
-
},
|
|
60
|
-
"unique": {
|
|
61
|
-
"is_bool": true,
|
|
62
|
-
"allow_empty": true
|
|
63
|
-
},
|
|
64
|
-
"internal_assignment": {
|
|
65
|
-
"pattern": ".*",
|
|
66
|
-
"allow_empty": true
|
|
67
|
-
},
|
|
68
|
-
"generated_code_prefix": {
|
|
69
|
-
"pattern": ".*",
|
|
70
|
-
"extra_validation": "is_reduced_version"
|
|
71
|
-
},
|
|
72
|
-
"official": {
|
|
73
|
-
"is_bool": true,
|
|
74
|
-
"allow_empty": true
|
|
75
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"code": {
|
|
3
|
+
"pattern": "^\\$?[A-Za-z0-9_.]+$"
|
|
4
|
+
},
|
|
5
|
+
"description": {
|
|
6
|
+
"pattern": ".*",
|
|
7
|
+
"is_description": true
|
|
8
|
+
},
|
|
9
|
+
"validation_script": {
|
|
10
|
+
"pattern": "^[A-Za-z0-9_\\.]+$",
|
|
11
|
+
"allow_empty": true
|
|
12
|
+
},
|
|
13
|
+
"auto_generate_codes": {
|
|
14
|
+
"is_bool": true
|
|
15
|
+
},
|
|
16
|
+
"main_dataset_pattern": {
|
|
17
|
+
"pattern": ".*",
|
|
18
|
+
"allow_empty": true
|
|
19
|
+
},
|
|
20
|
+
"main_dataset_path": {
|
|
21
|
+
"pattern": ".*",
|
|
22
|
+
"allow_empty": true
|
|
23
|
+
},
|
|
24
|
+
"property_label": {
|
|
25
|
+
"pattern": ".*"
|
|
26
|
+
},
|
|
27
|
+
"data_type": {
|
|
28
|
+
"is_data": true
|
|
29
|
+
},
|
|
30
|
+
"vocabulary_code": {
|
|
31
|
+
"pattern": "^\\$?[A-Za-z0-9_.]+$",
|
|
32
|
+
"allow_empty": true
|
|
33
|
+
},
|
|
34
|
+
"object_code": {
|
|
35
|
+
"pattern": "^\\$?[A-Za-z0-9_.]+$",
|
|
36
|
+
"allow_empty": true
|
|
37
|
+
},
|
|
38
|
+
"metadata": {
|
|
39
|
+
"pattern": ".*",
|
|
40
|
+
"allow_empty": true
|
|
41
|
+
},
|
|
42
|
+
"url_template": {
|
|
43
|
+
"pattern": "https?://(?:www\\.)?[a-zA-Z0-9-._~:/?#@!$&'()*+,;=%]+",
|
|
44
|
+
"is_url": true,
|
|
45
|
+
"allow_empty": true
|
|
46
|
+
},
|
|
47
|
+
"dynamic_script": {
|
|
48
|
+
"pattern": "^[A-Za-z0-9_\\.]+$",
|
|
49
|
+
"allow_empty": true
|
|
50
|
+
},
|
|
51
|
+
"mandatory": {
|
|
52
|
+
"is_bool": true
|
|
53
|
+
},
|
|
54
|
+
"show_in_edit_views": {
|
|
55
|
+
"is_bool": true
|
|
56
|
+
},
|
|
57
|
+
"section": {
|
|
58
|
+
"pattern": ".*"
|
|
59
|
+
},
|
|
60
|
+
"unique": {
|
|
61
|
+
"is_bool": true,
|
|
62
|
+
"allow_empty": true
|
|
63
|
+
},
|
|
64
|
+
"internal_assignment": {
|
|
65
|
+
"pattern": ".*",
|
|
66
|
+
"allow_empty": true
|
|
67
|
+
},
|
|
68
|
+
"generated_code_prefix": {
|
|
69
|
+
"pattern": ".*",
|
|
70
|
+
"extra_validation": "is_reduced_version"
|
|
71
|
+
},
|
|
72
|
+
"official": {
|
|
73
|
+
"is_bool": true,
|
|
74
|
+
"allow_empty": true
|
|
75
|
+
}
|
|
76
76
|
}
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
"pattern": ".*",
|
|
13
13
|
"extra_validation": "is_reduced_version"
|
|
14
14
|
},
|
|
15
|
-
"Auto
|
|
15
|
+
"Auto generate codes": {"key": "autoGeneratedCode", "pattern": null, "is_bool": true}
|
|
16
16
|
},
|
|
17
17
|
"OBJECT_TYPE": {
|
|
18
18
|
"Code": {"key": "code", "pattern": "^\\$?[A-Za-z0-9_.-]+$"},
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
"pattern": ".*",
|
|
28
28
|
"extra_validation": "is_reduced_version"
|
|
29
29
|
},
|
|
30
|
-
"Auto
|
|
30
|
+
"Auto generate codes": {"key": "autoGeneratedCode", "pattern": null, "is_bool": true}
|
|
31
31
|
},
|
|
32
32
|
"EXPERIMENT_TYPE": {
|
|
33
33
|
"Code": {"key": "code", "pattern": "^\\$?[A-Za-z0-9_.-]+$"},
|