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.
Files changed (140) hide show
  1. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/.github/workflows/actions.yml +4 -4
  2. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/.github/workflows/mkdocs-deploy.yml +2 -2
  3. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/.github/workflows/publish.yml +2 -2
  4. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/PKG-INFO +21 -51
  5. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/README.md +17 -47
  6. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/bam_masterdata/_version.py +2 -2
  7. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/bam_masterdata/checker/masterdata_validator.py +2 -2
  8. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/bam_masterdata/checker/source_loader.py +2 -2
  9. {bam_masterdata-0.4.2/bam_masterdata → bam_masterdata-0.5.0/bam_masterdata/checker}/validation_rules/all_validation_rules.json +75 -75
  10. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/bam_masterdata/checker/validation_rules/excel_validation_rules.json +2 -2
  11. {bam_masterdata-0.4.2/bam_masterdata → bam_masterdata-0.5.0/bam_masterdata/checker}/validation_rules/validation_rules.json +109 -109
  12. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/bam_masterdata/cli/entities_to_rdf.py +1 -1
  13. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/bam_masterdata/excel/excel_to_entities.py +4 -4
  14. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/bam_masterdata/metadata/_maps.py +1 -1
  15. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/bam_masterdata/metadata/definitions.py +18 -23
  16. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/bam_masterdata/metadata/entities.py +154 -7
  17. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/bam_masterdata/utils/utils.py +2 -2
  18. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/bam_masterdata.egg-info/PKG-INFO +21 -51
  19. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/bam_masterdata.egg-info/SOURCES.txt +1 -4
  20. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/pyproject.toml +5 -5
  21. bam_masterdata-0.5.0/scripts/install_python_dependencies.bat +8 -0
  22. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/tests/checker/test_source_loader.py +1 -1
  23. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/tests/cli/test_entities_to_excel.py +1 -1
  24. bam_masterdata-0.5.0/tests/data/checker/example07_codeexists_objtype_warningdefschanged.xlsx +0 -0
  25. bam_masterdata-0.5.0/tests/data/checker/example08_codeexists_objtype_assignprop_listcodeschanged_add.xlsx +0 -0
  26. bam_masterdata-0.5.0/tests/data/checker/example09_codeexists_objtype_assignprop_listcodeschanged_del.xlsx +0 -0
  27. bam_masterdata-0.5.0/tests/data/checker/example10_codeexists_objtype_assignprop_codedoesnotexists.xlsx +0 -0
  28. bam_masterdata-0.5.0/tests/data/checker/example11_codeexists_objtype_assignprop_listcodeschanged_datatypechanged.xlsx +0 -0
  29. bam_masterdata-0.5.0/tests/data/checker/example12_codeexists_objtype_assignprop_listcodeschanged_warningdefschanged.xlsx +0 -0
  30. bam_masterdata-0.5.0/tests/data/checker/example13_codeexists_objtype_assignprop_coincide2objects.xlsx +0 -0
  31. bam_masterdata-0.5.0/tests/data/checker/example_incoming_excel.xlsx +0 -0
  32. bam_masterdata-0.5.0/tests/data/checker/masterdata_example.xlsx +0 -0
  33. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/tests/data/checker/masterdata_excel_output.json +1 -1
  34. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/tests/data/checker/masterdata_python_output.json +1 -1
  35. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/tests/excel/test_excel_to_entities.py +12 -14
  36. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/tests/metadata/test_definitions.py +46 -47
  37. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/tests/metadata/test_entities.py +92 -2
  38. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/tests/metadata/test_entities_dict.py +1 -1
  39. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/tests/test_logger.py +1 -1
  40. bam_masterdata-0.4.2/bam_masterdata/checker/validation_rules/all_validation_rules.json +0 -80
  41. bam_masterdata-0.4.2/bam_masterdata/checker/validation_rules/validation_rules.json +0 -119
  42. bam_masterdata-0.4.2/bam_masterdata/validation_rules/excel_validation_rules.json +0 -75
  43. bam_masterdata-0.4.2/setup.py +0 -3
  44. bam_masterdata-0.4.2/tests/data/checker/example07_codeexists_objtype_warningdefschanged.xlsx +0 -0
  45. bam_masterdata-0.4.2/tests/data/checker/example08_codeexists_objtype_assignprop_listcodeschanged_add.xlsx +0 -0
  46. bam_masterdata-0.4.2/tests/data/checker/example09_codeexists_objtype_assignprop_listcodeschanged_del.xlsx +0 -0
  47. bam_masterdata-0.4.2/tests/data/checker/example10_codeexists_objtype_assignprop_codedoesnotexists.xlsx +0 -0
  48. bam_masterdata-0.4.2/tests/data/checker/example11_codeexists_objtype_assignprop_listcodeschanged_datatypechanged.xlsx +0 -0
  49. bam_masterdata-0.4.2/tests/data/checker/example12_codeexists_objtype_assignprop_listcodeschanged_warningdefschanged.xlsx +0 -0
  50. bam_masterdata-0.4.2/tests/data/checker/example13_codeexists_objtype_assignprop_coincide2objects.xlsx +0 -0
  51. bam_masterdata-0.4.2/tests/data/checker/example_incoming_excel.xlsx +0 -0
  52. bam_masterdata-0.4.2/tests/data/checker/masterdata_example.xlsx +0 -0
  53. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/.coveragerc +0 -0
  54. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/.github/workflows/coveralls.yml +0 -0
  55. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/.gitignore +0 -0
  56. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/.vscode/settings.json +0 -0
  57. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/AUTHORS +0 -0
  58. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/LICENSE +0 -0
  59. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/bam_masterdata/__init__.py +0 -0
  60. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/bam_masterdata/checker/__init__.py +0 -0
  61. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/bam_masterdata/checker/checker.py +0 -0
  62. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/bam_masterdata/cli/__init__.py +0 -0
  63. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/bam_masterdata/cli/cli.py +0 -0
  64. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/bam_masterdata/cli/entities_to_excel.py +0 -0
  65. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/bam_masterdata/cli/fill_masterdata.py +0 -0
  66. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/bam_masterdata/datamodel/__init__.py +0 -0
  67. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/bam_masterdata/datamodel/collection_types.py +0 -0
  68. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/bam_masterdata/datamodel/dataset_types.py +0 -0
  69. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/bam_masterdata/datamodel/object_types.py +0 -0
  70. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/bam_masterdata/datamodel/vocabulary_types.py +0 -0
  71. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/bam_masterdata/excel/__init__.py +0 -0
  72. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/bam_masterdata/logger.py +0 -0
  73. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/bam_masterdata/metadata/__init__.py +0 -0
  74. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/bam_masterdata/metadata/entities_dict.py +0 -0
  75. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/bam_masterdata/openbis/__init__.py +0 -0
  76. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/bam_masterdata/openbis/get_entities.py +0 -0
  77. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/bam_masterdata/openbis/login.py +0 -0
  78. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/bam_masterdata/utils/__init__.py +0 -0
  79. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/bam_masterdata/utils/paths.py +0 -0
  80. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/bam_masterdata.egg-info/dependency_links.txt +0 -0
  81. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/bam_masterdata.egg-info/entry_points.txt +0 -0
  82. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/bam_masterdata.egg-info/requires.txt +2 -2
  83. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/bam_masterdata.egg-info/top_level.txt +0 -0
  84. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/docs/assets/bammasterdata_blue_transparent.png +0 -0
  85. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/docs/assets/bammasterdata_blue_transparent_text.png +0 -0
  86. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/docs/assets/bammasterdata_blue_transparent_text.svg +0 -0
  87. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/docs/assets/bammasterdata_blue_white.png +0 -0
  88. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/docs/assets/bammasterdata_blue_white_text.png +0 -0
  89. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/docs/assets/datastore-logo-white.png +0 -0
  90. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/docs/assets/datastore-logo.png +0 -0
  91. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/docs/assets/drawio/checker-structure.drawio +0 -0
  92. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/docs/assets/drawio/masterdata-workflow.drawio +0 -0
  93. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/docs/assets/drawio/masterdata-workflow.drawio.png +0 -0
  94. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/docs/assets/fonts/BAMKlavika-Light.ttf +0 -0
  95. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/docs/assets/fonts/BAMKlavika-LightItalic.ttf +0 -0
  96. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/docs/assets/fonts/BAMKlavika-Medium.ttf +0 -0
  97. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/docs/assets/fonts/BAMKlavika-MediumItalic.ttf +0 -0
  98. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/docs/explanations/data-store.md +0 -0
  99. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/docs/explanations/openbis.md +0 -0
  100. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/docs/explanations/pybis.md +0 -0
  101. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/docs/howtos/overview.md +0 -0
  102. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/docs/howtos/pybis/collections.md +0 -0
  103. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/docs/howtos/pybis/datasets.md +0 -0
  104. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/docs/howtos/pybis/objects.md +0 -0
  105. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/docs/howtos/pybis/objects_props.md +0 -0
  106. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/docs/howtos/pybis/parent_child.md +0 -0
  107. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/docs/howtos/pybis/projects.md +0 -0
  108. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/docs/howtos/pybis/searches.md +0 -0
  109. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/docs/howtos/pybis/setup.md +0 -0
  110. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/docs/howtos/pybis/spaces.md +0 -0
  111. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/docs/index.md +0 -0
  112. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/docs/references/collection.md +0 -0
  113. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/docs/references/controlled-vocabulary.md +0 -0
  114. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/docs/references/dataset.md +0 -0
  115. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/docs/stylesheets/extra.css +0 -0
  116. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/docs/tutorials/create-masterdata.md +0 -0
  117. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/docs/tutorials/pybis.md +0 -0
  118. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/mkdocs.yml +0 -0
  119. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/scripts/install_python_dependencies.sh +0 -0
  120. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/scripts/pkg_size.py +0 -0
  121. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/setup.cfg +0 -0
  122. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/tests/__init__.py +0 -0
  123. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/tests/cli/test_entities_to_rdf.py +0 -0
  124. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/tests/conftest.py +0 -0
  125. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/tests/data/checker/datamodel_test/collection_types.py +0 -0
  126. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/tests/data/checker/datamodel_test/dataset_types.py +0 -0
  127. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/tests/data/checker/datamodel_test/object_types.py +0 -0
  128. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/tests/data/checker/example01_codedoesnoteexists.xlsx +0 -0
  129. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/tests/data/checker/example02_codeexists_proptype_datatypechanged.xlsx +0 -0
  130. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/tests/data/checker/example03_codeexists_proptype_contvoccodechanged.xlsx +0 -0
  131. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/tests/data/checker/example04_codeexists_proptype_objectcodechanged.xlsx +0 -0
  132. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/tests/data/checker/example05_codeexists_proptype_warningdefschanged.xlsx +0 -0
  133. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/tests/data/checker/example06_codeexists_proptype_vocobjcodemiss.xlsx +0 -0
  134. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/tests/data/checker/example_incoming_python/collection_types.py +0 -0
  135. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/tests/data/checker/example_incoming_python/dataset_types.py +0 -0
  136. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/tests/data/checker/example_incoming_python/object_types.py +0 -0
  137. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/tests/data/utils/example_prop_types_1.py +0 -0
  138. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/tests/data/utils/example_prop_types_2.py +0 -0
  139. {bam_masterdata-0.4.2 → bam_masterdata-0.5.0}/tests/utils/test_paths.py +0 -0
  140. {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.9", "3.10", "3.11", "3.12"]
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
- run: |
37
- python -m mypy --ignore-missing-imports --follow-imports=silent --no-strict-optional bam_masterdata tests
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.11
17
+ - name: Set up Python 3.12
18
18
  uses: actions/setup-python@v5
19
19
  with:
20
- python-version: 3.11
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.11
26
+ - name: Set up Python 3.12
27
27
  uses: actions/setup-python@v5
28
28
  with:
29
- python-version: 3.11
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.4.2
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.9
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 is a repository containing all the masterdata schema defining in BAM, as well as some utility functions to handle the 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://git.bam.de/bam-data-store/bam-masterdata.git
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
- ```sh
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 . --check
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.sh`, so if you ran this script before, you don't need to do it again now):
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 is a repository containing all the masterdata schema defining in BAM, as well as some utility functions to handle the 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://git.bam.de/bam-data-store/bam-masterdata.git
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
- ```sh
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 . --check
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.sh`, so if you ran this script before, you don't need to do it again now):
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
@@ -17,5 +17,5 @@ __version__: str
17
17
  __version_tuple__: VERSION_TUPLE
18
18
  version_tuple: VERSION_TUPLE
19
19
 
20
- __version__ = version = '0.4.2'
21
- __version_tuple__ = version_tuple = (0, 4, 2)
20
+ __version__ = version = '0.5.0'
21
+ __version_tuple__ = version_tuple = (0, 5, 0)
@@ -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": "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, (dict, list)):
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"]["auto_generated_codes"] = (
111
- entity_data.get("autoGeneratedCode")
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
- "auto_generated_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
- }
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 generated codes": {"key": "autoGeneratedCode", "pattern": null, "is_bool": true}
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 generated codes": {"key": "autoGeneratedCode", "pattern": null, "is_bool": true}
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_.-]+$"},