pymetadata 0.5.1__tar.gz → 0.5.3__tar.gz

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

Potentially problematic release.


This version of pymetadata might be problematic. Click here for more details.

Files changed (143) hide show
  1. {pymetadata-0.5.1 → pymetadata-0.5.3}/.bumpversion.toml +1 -1
  2. {pymetadata-0.5.1 → pymetadata-0.5.3}/.github/CONTRIBUTING.rst +1 -1
  3. {pymetadata-0.5.1 → pymetadata-0.5.3}/.github/ISSUE_TEMPLATE/01-bug-report.md +1 -1
  4. {pymetadata-0.5.1 → pymetadata-0.5.3}/.github/workflows/main.yml +4 -9
  5. pymetadata-0.5.3/.github/workflows/mypy.yml +21 -0
  6. {pymetadata-0.5.1 → pymetadata-0.5.3}/.github/workflows/ruff.yml +2 -2
  7. pymetadata-0.5.3/.pre-commit-config.yaml +35 -0
  8. {pymetadata-0.5.1 → pymetadata-0.5.3}/.ruff.toml +1 -1
  9. {pymetadata-0.5.1 → pymetadata-0.5.3}/LICENSE +1 -1
  10. pymetadata-0.5.3/PKG-INFO +115 -0
  11. pymetadata-0.5.3/README.md +74 -0
  12. {pymetadata-0.5.1 → pymetadata-0.5.3}/RELEASE.md +7 -6
  13. {pymetadata-0.5.1 → pymetadata-0.5.3}/docs/composite_annotations.md +2 -2
  14. {pymetadata-0.5.1 → pymetadata-0.5.3}/docs/images/favicon/site.webmanifest +1 -1
  15. {pymetadata-0.5.1 → pymetadata-0.5.3}/pyproject.toml +1 -2
  16. {pymetadata-0.5.1 → pymetadata-0.5.3}/release-notes/0.0.17.md +0 -1
  17. {pymetadata-0.5.1 → pymetadata-0.5.3}/release-notes/0.0.18.md +1 -1
  18. {pymetadata-0.5.1 → pymetadata-0.5.3}/release-notes/0.0.19.md +1 -1
  19. {pymetadata-0.5.1 → pymetadata-0.5.3}/release-notes/0.0.20.md +1 -1
  20. {pymetadata-0.5.1 → pymetadata-0.5.3}/release-notes/0.0.21.md +1 -1
  21. {pymetadata-0.5.1 → pymetadata-0.5.3}/release-notes/0.0.22.md +1 -1
  22. {pymetadata-0.5.1 → pymetadata-0.5.3}/release-notes/0.1.0.md +1 -1
  23. {pymetadata-0.5.1 → pymetadata-0.5.3}/release-notes/0.2.1.md +1 -1
  24. {pymetadata-0.5.1 → pymetadata-0.5.3}/release-notes/0.2.10.md +1 -1
  25. {pymetadata-0.5.1 → pymetadata-0.5.3}/release-notes/0.2.2.md +1 -1
  26. {pymetadata-0.5.1 → pymetadata-0.5.3}/release-notes/0.2.3.md +1 -1
  27. {pymetadata-0.5.1 → pymetadata-0.5.3}/release-notes/0.2.4.md +1 -1
  28. {pymetadata-0.5.1 → pymetadata-0.5.3}/release-notes/0.2.5.md +1 -1
  29. {pymetadata-0.5.1 → pymetadata-0.5.3}/release-notes/0.2.6.md +2 -2
  30. {pymetadata-0.5.1 → pymetadata-0.5.3}/release-notes/0.2.7.md +1 -1
  31. {pymetadata-0.5.1 → pymetadata-0.5.3}/release-notes/0.2.8.md +1 -1
  32. {pymetadata-0.5.1 → pymetadata-0.5.3}/release-notes/0.2.9.md +1 -1
  33. {pymetadata-0.5.1 → pymetadata-0.5.3}/release-notes/0.3.0.md +1 -1
  34. {pymetadata-0.5.1 → pymetadata-0.5.3}/release-notes/0.3.1.md +1 -1
  35. {pymetadata-0.5.1 → pymetadata-0.5.3}/release-notes/0.3.10.md +1 -1
  36. {pymetadata-0.5.1 → pymetadata-0.5.3}/release-notes/0.3.11.md +1 -1
  37. {pymetadata-0.5.1 → pymetadata-0.5.3}/release-notes/0.3.2.md +1 -1
  38. {pymetadata-0.5.1 → pymetadata-0.5.3}/release-notes/0.3.3.md +1 -1
  39. {pymetadata-0.5.1 → pymetadata-0.5.3}/release-notes/0.3.4.md +1 -1
  40. {pymetadata-0.5.1 → pymetadata-0.5.3}/release-notes/0.3.5.md +1 -1
  41. {pymetadata-0.5.1 → pymetadata-0.5.3}/release-notes/0.3.6.md +1 -1
  42. {pymetadata-0.5.1 → pymetadata-0.5.3}/release-notes/0.3.7.md +1 -1
  43. {pymetadata-0.5.1 → pymetadata-0.5.3}/release-notes/0.3.8.md +1 -1
  44. {pymetadata-0.5.1 → pymetadata-0.5.3}/release-notes/0.3.9.md +1 -1
  45. {pymetadata-0.5.1 → pymetadata-0.5.3}/release-notes/0.4.0.md +1 -1
  46. {pymetadata-0.5.1 → pymetadata-0.5.3}/release-notes/0.4.1.md +1 -1
  47. {pymetadata-0.5.1 → pymetadata-0.5.3}/release-notes/0.4.2.md +1 -1
  48. {pymetadata-0.5.1 → pymetadata-0.5.3}/release-notes/0.4.3.md +1 -1
  49. {pymetadata-0.5.1 → pymetadata-0.5.3}/release-notes/0.4.4.md +1 -1
  50. {pymetadata-0.5.1 → pymetadata-0.5.3}/release-notes/0.5.0.md +1 -1
  51. {pymetadata-0.5.1 → pymetadata-0.5.3}/release-notes/0.5.1.md +1 -1
  52. pymetadata-0.5.3/release-notes/0.5.2.md +11 -0
  53. pymetadata-0.5.3/release-notes/0.5.3.md +11 -0
  54. {pymetadata-0.5.1 → pymetadata-0.5.3}/src/pymetadata/__init__.py +1 -1
  55. {pymetadata-0.5.1 → pymetadata-0.5.3}/src/pymetadata/examples/cache_path_example.py +0 -1
  56. {pymetadata-0.5.1 → pymetadata-0.5.3}/src/pymetadata/identifiers/registry.py +11 -33
  57. {pymetadata-0.5.1 → pymetadata-0.5.3}/src/pymetadata/metadata/eco.py +1246 -1340
  58. {pymetadata-0.5.1 → pymetadata-0.5.3}/src/pymetadata/metadata/kisao.py +83 -26
  59. {pymetadata-0.5.1 → pymetadata-0.5.3}/src/pymetadata/metadata/sbo.py +131 -378
  60. {pymetadata-0.5.1 → pymetadata-0.5.3}/src/pymetadata/ontologies/ontology.py +6 -5
  61. {pymetadata-0.5.1 → pymetadata-0.5.3}/src/pymetadata/resources/chebi_webservice_wsdl.xml +1 -1
  62. {pymetadata-0.5.1 → pymetadata-0.5.3}/src/pymetadata/resources/templates/ontology_enum.pytemplate +0 -2
  63. {pymetadata-0.5.1 → pymetadata-0.5.3}/src/pymetadata/unichem.py +2 -2
  64. {pymetadata-0.5.1 → pymetadata-0.5.3}/tox.ini +8 -22
  65. {pymetadata-0.5.1 → pymetadata-0.5.3}/uv.lock +0 -1
  66. pymetadata-0.5.1/.pre-commit-config.yaml +0 -12
  67. pymetadata-0.5.1/PKG-INFO +0 -154
  68. pymetadata-0.5.1/README.rst +0 -112
  69. {pymetadata-0.5.1 → pymetadata-0.5.3}/.github/ISSUE_TEMPLATE/02-question.md +0 -0
  70. {pymetadata-0.5.1 → pymetadata-0.5.3}/.github/ISSUE_TEMPLATE/03-feature-request.md +0 -0
  71. {pymetadata-0.5.1 → pymetadata-0.5.3}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  72. {pymetadata-0.5.1 → pymetadata-0.5.3}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  73. {pymetadata-0.5.1 → pymetadata-0.5.3}/.github/SUPPORT.rst +0 -0
  74. {pymetadata-0.5.1 → pymetadata-0.5.3}/.gitignore +0 -0
  75. {pymetadata-0.5.1 → pymetadata-0.5.3}/.python-version +0 -0
  76. {pymetadata-0.5.1 → pymetadata-0.5.3}/.zenodo.json +0 -0
  77. {pymetadata-0.5.1 → pymetadata-0.5.3}/docs/images/favicon/about.txt +0 -0
  78. {pymetadata-0.5.1 → pymetadata-0.5.3}/docs/images/favicon/android-chrome-192x192.png +0 -0
  79. {pymetadata-0.5.1 → pymetadata-0.5.3}/docs/images/favicon/android-chrome-512x512.png +0 -0
  80. {pymetadata-0.5.1 → pymetadata-0.5.3}/docs/images/favicon/apple-touch-icon.png +0 -0
  81. {pymetadata-0.5.1 → pymetadata-0.5.3}/docs/images/favicon/favicon-16x16.png +0 -0
  82. {pymetadata-0.5.1 → pymetadata-0.5.3}/docs/images/favicon/favicon-32x32.png +0 -0
  83. {pymetadata-0.5.1 → pymetadata-0.5.3}/docs/images/favicon/favicon.ico +0 -0
  84. {pymetadata-0.5.1 → pymetadata-0.5.3}/docs/images/favicon/favicon_io.zip +0 -0
  85. {pymetadata-0.5.1 → pymetadata-0.5.3}/docs/images/favicon/pymetadata-100x100-300dpi.png +0 -0
  86. {pymetadata-0.5.1 → pymetadata-0.5.3}/release-notes/0.0.10.md +0 -0
  87. {pymetadata-0.5.1 → pymetadata-0.5.3}/release-notes/0.0.11.md +0 -0
  88. {pymetadata-0.5.1 → pymetadata-0.5.3}/release-notes/0.0.12.md +0 -0
  89. {pymetadata-0.5.1 → pymetadata-0.5.3}/release-notes/0.0.13.md +0 -0
  90. {pymetadata-0.5.1 → pymetadata-0.5.3}/release-notes/0.0.14.md +0 -0
  91. {pymetadata-0.5.1 → pymetadata-0.5.3}/release-notes/0.0.15.md +0 -0
  92. {pymetadata-0.5.1 → pymetadata-0.5.3}/release-notes/0.0.16.md +0 -0
  93. {pymetadata-0.5.1 → pymetadata-0.5.3}/release-notes/0.0.2.md +0 -0
  94. {pymetadata-0.5.1 → pymetadata-0.5.3}/release-notes/0.0.3.md +0 -0
  95. {pymetadata-0.5.1 → pymetadata-0.5.3}/release-notes/0.0.4.md +0 -0
  96. {pymetadata-0.5.1 → pymetadata-0.5.3}/release-notes/0.0.5.md +0 -0
  97. {pymetadata-0.5.1 → pymetadata-0.5.3}/release-notes/0.0.6.md +0 -0
  98. {pymetadata-0.5.1 → pymetadata-0.5.3}/release-notes/0.0.7.md +0 -0
  99. {pymetadata-0.5.1 → pymetadata-0.5.3}/release-notes/0.0.8.md +0 -0
  100. {pymetadata-0.5.1 → pymetadata-0.5.3}/release-notes/0.0.9.md +0 -0
  101. {pymetadata-0.5.1 → pymetadata-0.5.3}/src/pymetadata/cache.py +0 -0
  102. {pymetadata-0.5.1 → pymetadata-0.5.3}/src/pymetadata/chebi.py +0 -0
  103. {pymetadata-0.5.1 → pymetadata-0.5.3}/src/pymetadata/console.py +0 -0
  104. {pymetadata-0.5.1 → pymetadata-0.5.3}/src/pymetadata/core/__init__.py +0 -0
  105. {pymetadata-0.5.1 → pymetadata-0.5.3}/src/pymetadata/core/annotation.py +0 -0
  106. {pymetadata-0.5.1 → pymetadata-0.5.3}/src/pymetadata/core/creator.py +0 -0
  107. {pymetadata-0.5.1 → pymetadata-0.5.3}/src/pymetadata/core/synonym.py +0 -0
  108. {pymetadata-0.5.1 → pymetadata-0.5.3}/src/pymetadata/core/xref.py +0 -0
  109. {pymetadata-0.5.1 → pymetadata-0.5.3}/src/pymetadata/examples/__init__.py +0 -0
  110. {pymetadata-0.5.1 → pymetadata-0.5.3}/src/pymetadata/examples/omex_example.py +0 -0
  111. {pymetadata-0.5.1 → pymetadata-0.5.3}/src/pymetadata/examples/results/test_from_files.omex +0 -0
  112. {pymetadata-0.5.1 → pymetadata-0.5.3}/src/pymetadata/examples/results/test_from_omex.omex +0 -0
  113. {pymetadata-0.5.1 → pymetadata-0.5.3}/src/pymetadata/examples/results/testomex/README.md +0 -0
  114. {pymetadata-0.5.1 → pymetadata-0.5.3}/src/pymetadata/examples/results/testomex/manifest.xml +0 -0
  115. {pymetadata-0.5.1 → pymetadata-0.5.3}/src/pymetadata/examples/results/testomex/models/omex_comp.xml +0 -0
  116. {pymetadata-0.5.1 → pymetadata-0.5.3}/src/pymetadata/examples/results/testomex/models/omex_comp_flat.xml +0 -0
  117. {pymetadata-0.5.1 → pymetadata-0.5.3}/src/pymetadata/examples/results/testomex/models/omex_minimal.xml +0 -0
  118. {pymetadata-0.5.1 → pymetadata-0.5.3}/src/pymetadata/examples/test.omex +0 -0
  119. {pymetadata-0.5.1 → pymetadata-0.5.3}/src/pymetadata/identifiers/__init__.py +0 -0
  120. {pymetadata-0.5.1 → pymetadata-0.5.3}/src/pymetadata/identifiers/miriam.py +0 -0
  121. {pymetadata-0.5.1 → pymetadata-0.5.3}/src/pymetadata/log.py +0 -0
  122. {pymetadata-0.5.1 → pymetadata-0.5.3}/src/pymetadata/metadata/__init__.py +0 -0
  123. {pymetadata-0.5.1 → pymetadata-0.5.3}/src/pymetadata/omex.py +0 -0
  124. {pymetadata-0.5.1 → pymetadata-0.5.3}/src/pymetadata/omex_v2.py +0 -0
  125. {pymetadata-0.5.1 → pymetadata-0.5.3}/src/pymetadata/ontologies/__init__.py +0 -0
  126. {pymetadata-0.5.1 → pymetadata-0.5.3}/src/pymetadata/ontologies/ols.py +0 -0
  127. {pymetadata-0.5.1 → pymetadata-0.5.3}/src/pymetadata/py.typed +0 -0
  128. {pymetadata-0.5.1 → pymetadata-0.5.3}/src/pymetadata/resources/ontologies/README.md +0 -0
  129. {pymetadata-0.5.1 → pymetadata-0.5.3}/tests/core/test_annotation.py +0 -0
  130. {pymetadata-0.5.1 → pymetadata-0.5.3}/tests/core/test_creator.py +0 -0
  131. {pymetadata-0.5.1 → pymetadata-0.5.3}/tests/data/omex/BIOMD0000000001.omex +0 -0
  132. {pymetadata-0.5.1 → pymetadata-0.5.3}/tests/data/omex/CombineArchiveShowCase.omex +0 -0
  133. {pymetadata-0.5.1 → pymetadata-0.5.3}/tests/data/omex/CombineArchiveShowCase_manifest.xml +0 -0
  134. {pymetadata-0.5.1 → pymetadata-0.5.3}/tests/data/omex/CompModels.omex +0 -0
  135. {pymetadata-0.5.1 → pymetadata-0.5.3}/tests/data/omex/CompModels_manifest.xml +0 -0
  136. {pymetadata-0.5.1 → pymetadata-0.5.3}/tests/data/omex/iCGB21FR.omex +0 -0
  137. {pymetadata-0.5.1 → pymetadata-0.5.3}/tests/test_chebi.py +0 -0
  138. {pymetadata-0.5.1 → pymetadata-0.5.3}/tests/test_ols.py +0 -0
  139. {pymetadata-0.5.1 → pymetadata-0.5.3}/tests/test_omex.py +0 -0
  140. {pymetadata-0.5.1 → pymetadata-0.5.3}/tests/test_ontology.py +0 -0
  141. {pymetadata-0.5.1 → pymetadata-0.5.3}/tests/test_registry.py +0 -0
  142. {pymetadata-0.5.1 → pymetadata-0.5.3}/tests/test_sbo_kisao.py +0 -0
  143. {pymetadata-0.5.1 → pymetadata-0.5.3}/tests/test_unichem.py +0 -0
@@ -1,5 +1,5 @@
1
1
  [tool.bumpversion]
2
- current_version = "0.5.1"
2
+ current_version = "0.5.3"
3
3
  commit = true
4
4
  parse = "(?P<major>\\d+)\\.(?P<minor>\\d+)\\.(?P<patch>\\d+)"
5
5
  serialize = ["{major}.{minor}.{patch}"]
@@ -117,7 +117,7 @@ Unit tests and benchmarks
117
117
 
118
118
  pymetadata uses `pytest <http://docs.pytest.org/en/latest/>`_ for its
119
119
  unit-tests and new features should in general always come with new
120
- tests that make sure that the code runs as intended.
120
+ tests that make sure that the code runs as intended.
121
121
 
122
122
  To run all tests do::
123
123
 
@@ -7,7 +7,7 @@ about: Report a bug to help improve this project
7
7
 
8
8
  Before you create a new problem report, please look through the list of existing open
9
9
  and closed issues to see if there are similar ones.
10
-
10
+
11
11
  https://github.com/matthiaskoenig/pymetadata/issues
12
12
 
13
13
  -->
@@ -25,19 +25,14 @@ jobs:
25
25
 
26
26
  steps:
27
27
  - uses: actions/checkout@v4
28
- - name: Set up Python ${{ matrix.python-version }}
29
- uses: actions/setup-python@v5
28
+ - name: Install uv and set the python version
29
+ uses: astral-sh/setup-uv@v5
30
30
  with:
31
31
  python-version: ${{ matrix.python-version }}
32
- - name: Install dependencies
33
- run: |
34
- python -m pip install --upgrade pip wheel
35
- python -m pip install tox tox-gh-actions
36
-
37
- # Update output format to enable automatic inline annotations.
32
+ enable-cache: true
38
33
  - name: Test with tox
39
34
  run:
40
- tox --
35
+ uvx --with tox-uv tox -e py${{ matrix.python-version }}
41
36
 
42
37
  release:
43
38
  needs: test
@@ -0,0 +1,21 @@
1
+ name: MyPy
2
+ on: [push]
3
+ jobs:
4
+ mypy:
5
+ runs-on: ubuntu-latest
6
+ strategy:
7
+ fail-fast: false
8
+ matrix:
9
+ os: [ ubuntu-latest ]
10
+ python-version: [ "3.13" ]
11
+
12
+ steps:
13
+ - uses: actions/checkout@v4
14
+ - name: Install uv and set the python version
15
+ uses: astral-sh/setup-uv@v5
16
+ with:
17
+ python-version: ${{ matrix.python-version }}
18
+ enable-cache: true
19
+ - name: Test with tox
20
+ run:
21
+ uvx --with tox-uv tox -e mypy
@@ -1,8 +1,8 @@
1
1
  name: Ruff
2
- on: [ push, pull_request ]
2
+ on: [push]
3
3
  jobs:
4
4
  ruff:
5
5
  runs-on: ubuntu-latest
6
6
  steps:
7
7
  - uses: actions/checkout@v4
8
- - uses: astral-sh/ruff-action@v3
8
+ - uses: astral-sh/ruff-action@v3
@@ -0,0 +1,35 @@
1
+ # This is run as a precondition to commits, run manually via `pre-commit run`
2
+
3
+ # When adding new hooks, it may make sense to once run
4
+ # `pre-commit run --all-files` as by default only changed files are checked
5
+
6
+ repos:
7
+ - repo: https://github.com/pre-commit/pre-commit-hooks
8
+ rev: v5.0.0
9
+ hooks:
10
+ - id: check-yaml
11
+ description: Check yaml files for parseable syntax
12
+ - id: check-added-large-files
13
+ description: Prevent large files from being committed
14
+ - id: check-merge-conflict
15
+ description: Check for files that contain merge conflict strings
16
+ - id: check-symlinks
17
+ description: Check for symlinks which do not point to anything
18
+ - id: trailing-whitespace
19
+ description: Trim trailing whitespaces
20
+ - id: end-of-file-fixer
21
+ description: Fix empty lines at ends of files
22
+ - id: detect-private-key
23
+ description: Detects the presence of private keys
24
+
25
+ - repo: https://github.com/astral-sh/ruff-pre-commit
26
+ # Ruff version.
27
+ rev: v0.8.6
28
+ hooks:
29
+ # Run the linter.
30
+ - id: ruff
31
+ types_or: [ python, pyi ]
32
+ args: [ --fix ]
33
+ # Run the formatter.
34
+ - id: ruff-format
35
+ types_or: [ python, pyi ]
@@ -47,4 +47,4 @@ docstring-code-format = false
47
47
  docstring-code-line-length = "dynamic"
48
48
 
49
49
  [lint.pydocstyle]
50
- convention = "google" # Accepts: "google", "numpy", or "pep257".
50
+ convention = "google" # Accepts: "google", "numpy", or "pep257".
@@ -4,4 +4,4 @@ Permission is hereby granted, free of charge, to any person obtaining a copy of
4
4
 
5
5
  The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
6
6
 
7
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
7
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,115 @@
1
+ Metadata-Version: 2.4
2
+ Name: pymetadata
3
+ Version: 0.5.3
4
+ Summary: pymetadata are python utilities for working with metadata.
5
+ Author-email: Matthias König <konigmatt@googlemail.com>
6
+ Maintainer-email: Matthias König <konigmatt@googlemail.com>
7
+ License-File: LICENSE
8
+ Keywords: COMBINE,annotation,archive,metadata,modeling,standardization
9
+ Classifier: Development Status :: 4 - Beta
10
+ Classifier: Intended Audience :: Science/Research
11
+ Classifier: License :: OSI Approved :: MIT License
12
+ Classifier: Operating System :: OS Independent
13
+ Classifier: Programming Language :: Python :: 3.10
14
+ Classifier: Programming Language :: Python :: 3.11
15
+ Classifier: Programming Language :: Python :: 3.12
16
+ Classifier: Programming Language :: Python :: 3.13
17
+ Classifier: Programming Language :: Python :: Implementation :: CPython
18
+ Classifier: Topic :: Scientific/Engineering
19
+ Classifier: Topic :: Scientific/Engineering :: Bio-Informatics
20
+ Requires-Python: >=3.10
21
+ Requires-Dist: depinfo>=2.2.0
22
+ Requires-Dist: fastobo>=0.12.3
23
+ Requires-Dist: jinja2>=3.1.5
24
+ Requires-Dist: lxml>=5.3
25
+ Requires-Dist: pronto>=2.5.8
26
+ Requires-Dist: pydantic>=2.10.4
27
+ Requires-Dist: requests>=2.32.3
28
+ Requires-Dist: rich>=13.9.4
29
+ Requires-Dist: xmltodict>=0.14.2
30
+ Requires-Dist: zeep>=4.3.1
31
+ Provides-Extra: dev
32
+ Requires-Dist: bump-my-version>=0.29.0; extra == 'dev'
33
+ Requires-Dist: mypy>=1.9.0; extra == 'dev'
34
+ Requires-Dist: pre-commit>=4.0.1; extra == 'dev'
35
+ Requires-Dist: ruff>=0.8.6; extra == 'dev'
36
+ Provides-Extra: test
37
+ Requires-Dist: pytest-cov>=5.0.0; extra == 'test'
38
+ Requires-Dist: pytest>=8.1.1; extra == 'test'
39
+ Requires-Dist: tox>=4.14.2; extra == 'test'
40
+ Description-Content-Type: text/markdown
41
+
42
+ ![pymetadata logo](https://github.com/matthiaskoenig/pymetadata/raw/develop/docs/images/favicon/pymetadata-100x100-300dpi.png)
43
+
44
+ # pymetadata: python utilities for metadata and COMBINE archives
45
+ [![GitHub Actions CI/CD Status](https://github.com/matthiaskoenig/pymetadata/workflows/CI-CD/badge.svg)](https://github.com/matthiaskoenig/pymetadata/actions/workflows/main.yml)
46
+ [![Version](https://img.shields.io/pypi/v/pymetadata.svg)](https://pypi.org/project/pymetadata/)
47
+ [![Python Versions](https://img.shields.io/pypi/pyversions/pymetadata.svg)](https://pypi.org/project/pymetadata/)
48
+ [![MIT License](https://img.shields.io/pypi/l/pymetadata.svg)](https://opensource.org/licenses/MIT)
49
+ [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.5308801.svg)](https://doi.org/10.5281/zenodo.5308801)
50
+
51
+ pymetadata is a collection of python utilities for working with
52
+ metadata in the context of COMBINE standards with source code available from
53
+ [https://github.com/matthiaskoenig/pymetadata](https://github.com/matthiaskoenig/pymetadata).
54
+
55
+ Features include among others
56
+
57
+ - [core](src/pymetadata/core)COMBINE archive version 1 support (OMEX)
58
+ - annotation classes and helpers
59
+ - SBO and KISAO ontology enums
60
+
61
+ If you have any questions or issues please [open an issue](https://github.com/matthiaskoenig/pymetadata/issues).
62
+
63
+ # Documentation
64
+ Documentation is still work in progress. For an example usage of the COMBINE archive
65
+ see [omex_example.py](src/pymetadata/examples/omex_example.py).
66
+
67
+ # How to cite
68
+ [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.5308801.svg)](https://doi.org/10.5281/zenodo.5308801)
69
+
70
+ # Contributing
71
+ Contributions are always welcome! Please read the [contributing guidelines](https://github.com/matthiaskoenig/pymetadata/blob/develop/.github/CONTRIBUTING.rst) to get started.
72
+
73
+ # License
74
+ - Source Code: [MIT](https://opensource.org/license/MIT)
75
+ - Documentation: [CC BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/)
76
+
77
+ # Funding
78
+ Matthias König (MK) was supported by the Federal Ministry of Education and Research (BMBF, Germany) within the research network Systems Medicine of the Liver (LiSyM, grant number 031L0054). MK is supported by the Federal Ministry of Education and Research (BMBF, Germany) within ATLAS by grant number 031L0304B and by the German Research Foundation (DFG) within the Research Unit Program FOR 5151 QuaLiPerF (Quantifying Liver Perfusion-Function Relationship in Complex Resection - A Systems Medicine Approach) by grant number 436883643 and by grant number 465194077 (Priority Programme SPP 2311, Subproject SimLivA).
79
+
80
+ # Installation
81
+ `pymetadata` is available from [pypi](https://pypi.python.org/pypi/pymetadata) and
82
+ can be installed via
83
+
84
+ ```bash
85
+ pip install pymetadata
86
+ ```
87
+
88
+ ## Develop version
89
+ The latest develop version can be installed via
90
+ ```bash
91
+ pip install git+https://github.com/matthiaskoenig/pymetadata.git@develop
92
+ ```
93
+
94
+ Or via cloning the repository and installing via
95
+ ```bash
96
+ git clone https://github.com/matthiaskoenig/pymetadata.git
97
+ cd pymetadata
98
+ pip install -e .
99
+ ```
100
+
101
+ # Cache path
102
+ `pymetadata` caches some information for faster retrieval. The cache path is set to
103
+
104
+ ```python
105
+ CACHE_PATH: Path = Path.home() / ".cache" / "pymetadata"
106
+ ```
107
+
108
+ To use a custom cache path use
109
+
110
+ ```python
111
+ import pymetadata
112
+ pymetadata.CACHE_PATH = <cache_path>
113
+ ```
114
+
115
+ © 2021-2025 Matthias König
@@ -0,0 +1,74 @@
1
+ ![pymetadata logo](https://github.com/matthiaskoenig/pymetadata/raw/develop/docs/images/favicon/pymetadata-100x100-300dpi.png)
2
+
3
+ # pymetadata: python utilities for metadata and COMBINE archives
4
+ [![GitHub Actions CI/CD Status](https://github.com/matthiaskoenig/pymetadata/workflows/CI-CD/badge.svg)](https://github.com/matthiaskoenig/pymetadata/actions/workflows/main.yml)
5
+ [![Version](https://img.shields.io/pypi/v/pymetadata.svg)](https://pypi.org/project/pymetadata/)
6
+ [![Python Versions](https://img.shields.io/pypi/pyversions/pymetadata.svg)](https://pypi.org/project/pymetadata/)
7
+ [![MIT License](https://img.shields.io/pypi/l/pymetadata.svg)](https://opensource.org/licenses/MIT)
8
+ [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.5308801.svg)](https://doi.org/10.5281/zenodo.5308801)
9
+
10
+ pymetadata is a collection of python utilities for working with
11
+ metadata in the context of COMBINE standards with source code available from
12
+ [https://github.com/matthiaskoenig/pymetadata](https://github.com/matthiaskoenig/pymetadata).
13
+
14
+ Features include among others
15
+
16
+ - [core](src/pymetadata/core)COMBINE archive version 1 support (OMEX)
17
+ - annotation classes and helpers
18
+ - SBO and KISAO ontology enums
19
+
20
+ If you have any questions or issues please [open an issue](https://github.com/matthiaskoenig/pymetadata/issues).
21
+
22
+ # Documentation
23
+ Documentation is still work in progress. For an example usage of the COMBINE archive
24
+ see [omex_example.py](src/pymetadata/examples/omex_example.py).
25
+
26
+ # How to cite
27
+ [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.5308801.svg)](https://doi.org/10.5281/zenodo.5308801)
28
+
29
+ # Contributing
30
+ Contributions are always welcome! Please read the [contributing guidelines](https://github.com/matthiaskoenig/pymetadata/blob/develop/.github/CONTRIBUTING.rst) to get started.
31
+
32
+ # License
33
+ - Source Code: [MIT](https://opensource.org/license/MIT)
34
+ - Documentation: [CC BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/)
35
+
36
+ # Funding
37
+ Matthias König (MK) was supported by the Federal Ministry of Education and Research (BMBF, Germany) within the research network Systems Medicine of the Liver (LiSyM, grant number 031L0054). MK is supported by the Federal Ministry of Education and Research (BMBF, Germany) within ATLAS by grant number 031L0304B and by the German Research Foundation (DFG) within the Research Unit Program FOR 5151 QuaLiPerF (Quantifying Liver Perfusion-Function Relationship in Complex Resection - A Systems Medicine Approach) by grant number 436883643 and by grant number 465194077 (Priority Programme SPP 2311, Subproject SimLivA).
38
+
39
+ # Installation
40
+ `pymetadata` is available from [pypi](https://pypi.python.org/pypi/pymetadata) and
41
+ can be installed via
42
+
43
+ ```bash
44
+ pip install pymetadata
45
+ ```
46
+
47
+ ## Develop version
48
+ The latest develop version can be installed via
49
+ ```bash
50
+ pip install git+https://github.com/matthiaskoenig/pymetadata.git@develop
51
+ ```
52
+
53
+ Or via cloning the repository and installing via
54
+ ```bash
55
+ git clone https://github.com/matthiaskoenig/pymetadata.git
56
+ cd pymetadata
57
+ pip install -e .
58
+ ```
59
+
60
+ # Cache path
61
+ `pymetadata` caches some information for faster retrieval. The cache path is set to
62
+
63
+ ```python
64
+ CACHE_PATH: Path = Path.home() / ".cache" / "pymetadata"
65
+ ```
66
+
67
+ To use a custom cache path use
68
+
69
+ ```python
70
+ import pymetadata
71
+ pymetadata.CACHE_PATH = <cache_path>
72
+ ```
73
+
74
+ © 2021-2025 Matthias König
@@ -3,15 +3,14 @@
3
3
  ## make release
4
4
  * update ontologies via `ontology.update_ontology_files()`
5
5
  * update release notes in `release-notes` with commit
6
- * make sure all tests run (`tox run-parallel`)
6
+ * make sure all tests run (`tox -p`)
7
7
  * check formating and linting (`ruff check`)
8
- * test bump version (`bump-my-version bump [major|minor|patch] --dry-run -vv`)
9
- * bump version (`bump-my-version bump [major|minor|patch]`)
8
+ * test bump version (`uvx bump-my-version bump [major|minor|patch] --dry-run -vv`)
9
+ * bump version (`uvx bump-my-version bump [major|minor|patch]`)
10
10
  * `git push --tags` (triggers release)
11
11
  * `git push`
12
-
13
12
  * test installation in virtualenv from pypi
14
- ```
13
+ ```bash
15
14
  uv venv --python 3.13
16
15
  uv pip install pymetadata
17
16
  ```
@@ -39,6 +38,8 @@ tox run-parallel
39
38
  ```
40
39
 
41
40
  # Setup pre-commit
42
- pip install pre-commit
41
+ ```bash
42
+ uv pip install pre-commit
43
43
  pre-commit install
44
44
  pre-commit run
45
+ ```
@@ -13,7 +13,7 @@ of ATP in the cytoplasm, blood in a cardiac cavity, the glucokinase reaction).
13
13
 
14
14
 
15
15
 
16
- **entity**
16
+ **entity**
17
17
  OPB: https://bioportal.bioontology.org/ontologies/OPB
18
18
  Ontology of Physics for Biology
19
19
 
@@ -31,6 +31,6 @@ aborption rate: "Material flow rate"
31
31
  Property first; entity second
32
32
 
33
33
 
34
- **Properties of processes**
34
+ **Properties of processes**
35
35
  - describe process: source, sink & mediator; flow of material from one pool to another
36
36
  - to describe the source: stomach; sink
@@ -1 +1 @@
1
- {"name":"","short_name":"","icons":[{"src":"/android-chrome-192x192.png","sizes":"192x192","type":"image/png"},{"src":"/android-chrome-512x512.png","sizes":"512x512","type":"image/png"}],"theme_color":"#ffffff","background_color":"#ffffff","display":"standalone"}
1
+ {"name":"","short_name":"","icons":[{"src":"/android-chrome-192x192.png","sizes":"192x192","type":"image/png"},{"src":"/android-chrome-512x512.png","sizes":"512x512","type":"image/png"}],"theme_color":"#ffffff","background_color":"#ffffff","display":"standalone"}
@@ -6,7 +6,7 @@ build-backend = "hatchling.build"
6
6
  name = "pymetadata"
7
7
  dynamic = ["version"]
8
8
  description = "pymetadata are python utilities for working with metadata."
9
- readme = "README.rst"
9
+ readme = "README.md"
10
10
  requires-python = ">=3.10"
11
11
  authors = [
12
12
  {name="Matthias König", email="konigmatt@googlemail.com"}
@@ -54,7 +54,6 @@ dev = [
54
54
  "ruff>=0.8.6",
55
55
  "pre-commit>=4.0.1",
56
56
  "mypy>=1.9.0",
57
- "hatch"
58
57
  ]
59
58
  test = [
60
59
  "tox>=4.14.2",
@@ -1,4 +1,3 @@
1
1
  # Release notes for pymetadata 0.0.17
2
2
 
3
3
  - SBO and KISAO helper functions
4
-
@@ -1,6 +1,6 @@
1
1
  # Release notes for pymetadata 0.0.18
2
2
 
3
- We are pleased to release the next version of pymetadata including the
3
+ We are pleased to release the next version of pymetadata including the
4
4
  following changes:
5
5
 
6
6
  ## Features
@@ -1,6 +1,6 @@
1
1
  # Release notes for pymetadata 0.0.19
2
2
 
3
- We are pleased to release the next version of pymetadata including the
3
+ We are pleased to release the next version of pymetadata including the
4
4
  following changes:
5
5
 
6
6
  ## Features
@@ -1,6 +1,6 @@
1
1
  # Release notes for pymetadata 0.0.20
2
2
 
3
- We are pleased to release the next version of pymetadata including the
3
+ We are pleased to release the next version of pymetadata including the
4
4
  following changes:
5
5
 
6
6
  ## Features
@@ -1,6 +1,6 @@
1
1
  # Release notes for pymetadata 0.0.21
2
2
 
3
- We are pleased to release the next version of pymetadata including the
3
+ We are pleased to release the next version of pymetadata including the
4
4
  following changes:
5
5
 
6
6
  ## Features
@@ -1,6 +1,6 @@
1
1
  # Release notes for pymetadata 0.0.22
2
2
 
3
- We are pleased to release the next version of pymetadata including the
3
+ We are pleased to release the next version of pymetadata including the
4
4
  following changes:
5
5
 
6
6
  ## Features
@@ -1,6 +1,6 @@
1
1
  # Release notes for pymetadata 0.1.0
2
2
 
3
- We are pleased to release the next version of pymetadata including the
3
+ We are pleased to release the next version of pymetadata including the
4
4
  following changes:
5
5
 
6
6
  ## Features
@@ -1,6 +1,6 @@
1
1
  # Release notes for pymetadata 0.2.1
2
2
 
3
- We are pleased to release the next version of pymetadata including the
3
+ We are pleased to release the next version of pymetadata including the
4
4
  following changes:
5
5
 
6
6
  ## Features
@@ -1,7 +1,7 @@
1
1
  # Release notes for pymetadata 0.2.10
2
2
  ![pymetadata](https://github.com/matthiaskoenig/pymetadata/raw/develop/docs/images/favicon/pymetadata-100x100-300dpi.png)
3
3
 
4
- We are pleased to release the next version of pymetadata including the
4
+ We are pleased to release the next version of pymetadata including the
5
5
  following changes:
6
6
 
7
7
  ## Features
@@ -1,6 +1,6 @@
1
1
  # Release notes for pymetadata 0.2.2
2
2
 
3
- We are pleased to release the next version of pymetadata including the
3
+ We are pleased to release the next version of pymetadata including the
4
4
  following changes:
5
5
 
6
6
  ## Features
@@ -1,6 +1,6 @@
1
1
  # Release notes for pymetadata 0.2.3
2
2
 
3
- We are pleased to release the next version of pymetadata including the
3
+ We are pleased to release the next version of pymetadata including the
4
4
  following changes:
5
5
 
6
6
  ## Features
@@ -1,6 +1,6 @@
1
1
  # Release notes for pymetadata 0.2.4
2
2
 
3
- We are pleased to release the next version of pymetadata including the
3
+ We are pleased to release the next version of pymetadata including the
4
4
  following changes:
5
5
 
6
6
  ## Features
@@ -1,6 +1,6 @@
1
1
  # Release notes for pymetadata 0.2.5
2
2
 
3
- We are pleased to release the next version of pymetadata including the
3
+ We are pleased to release the next version of pymetadata including the
4
4
  following changes:
5
5
 
6
6
  ## Features
@@ -1,11 +1,11 @@
1
1
  # Release notes for pymetadata 0.2.6
2
2
 
3
- We are pleased to release the next version of pymetadata including the
3
+ We are pleased to release the next version of pymetadata including the
4
4
  following changes:
5
5
 
6
6
  ## Features
7
7
  - bugfix SBML detection in omex
8
- -
8
+ -
9
9
 
10
10
  ## Fixes
11
11
 
@@ -1,6 +1,6 @@
1
1
  # Release notes for pymetadata 0.2.7
2
2
 
3
- We are pleased to release the next version of pymetadata including the
3
+ We are pleased to release the next version of pymetadata including the
4
4
  following changes:
5
5
 
6
6
  ## Features
@@ -1,6 +1,6 @@
1
1
  # Release notes for pymetadata 0.2.8
2
2
 
3
- We are pleased to release the next version of pymetadata including the
3
+ We are pleased to release the next version of pymetadata including the
4
4
  following changes:
5
5
 
6
6
  ## Features
@@ -1,6 +1,6 @@
1
1
  # Release notes for pymetadata 0.2.9
2
2
 
3
- We are pleased to release the next version of pymetadata including the
3
+ We are pleased to release the next version of pymetadata including the
4
4
  following changes:
5
5
 
6
6
  ## Features
@@ -1,7 +1,7 @@
1
1
  # Release notes for pymetadata 0.3.0
2
2
  ![pymetadata](https://github.com/matthiaskoenig/pymetadata/raw/develop/docs/images/favicon/pymetadata-100x100-300dpi.png)
3
3
 
4
- We are pleased to release the next version of pymetadata including the
4
+ We are pleased to release the next version of pymetadata including the
5
5
  following changes:
6
6
 
7
7
  ## Features
@@ -1,7 +1,7 @@
1
1
  # Release notes for pymetadata 0.3.1
2
2
  ![pymetadata](https://github.com/matthiaskoenig/pymetadata/raw/develop/docs/images/favicon/pymetadata-100x100-300dpi.png)
3
3
 
4
- We are pleased to release the next version of pymetadata including the
4
+ We are pleased to release the next version of pymetadata including the
5
5
  following changes:
6
6
 
7
7
  ## Features
@@ -1,7 +1,7 @@
1
1
  # Release notes for pymetadata 0.3.10
2
2
  ![pymetadata](https://github.com/matthiaskoenig/pymetadata/raw/develop/docs/images/favicon/pymetadata-100x100-300dpi.png)
3
3
 
4
- We are pleased to release the next version of pymetadata including the
4
+ We are pleased to release the next version of pymetadata including the
5
5
  following changes:
6
6
 
7
7
  ## Features
@@ -1,7 +1,7 @@
1
1
  # Release notes for pymetadata 0.3.11
2
2
  ![pymetadata](https://github.com/matthiaskoenig/pymetadata/raw/develop/docs/images/favicon/pymetadata-100x100-300dpi.png)
3
3
 
4
- We are pleased to release the next version of pymetadata including the
4
+ We are pleased to release the next version of pymetadata including the
5
5
  following changes:
6
6
 
7
7
  ## Features
@@ -1,7 +1,7 @@
1
1
  # Release notes for pymetadata 0.3.2
2
2
  ![pymetadata](https://github.com/matthiaskoenig/pymetadata/raw/develop/docs/images/favicon/pymetadata-100x100-300dpi.png)
3
3
 
4
- We are pleased to release the next version of pymetadata including the
4
+ We are pleased to release the next version of pymetadata including the
5
5
  following changes:
6
6
 
7
7
  ## Features
@@ -1,7 +1,7 @@
1
1
  # Release notes for pymetadata 0.3.3
2
2
  ![pymetadata](https://github.com/matthiaskoenig/pymetadata/raw/develop/docs/images/favicon/pymetadata-100x100-300dpi.png)
3
3
 
4
- We are pleased to release the next version of pymetadata including the
4
+ We are pleased to release the next version of pymetadata including the
5
5
  following changes:
6
6
 
7
7
  ## Features
@@ -1,7 +1,7 @@
1
1
  # Release notes for pymetadata 0.3.4
2
2
  ![pymetadata](https://github.com/matthiaskoenig/pymetadata/raw/develop/docs/images/favicon/pymetadata-100x100-300dpi.png)
3
3
 
4
- We are pleased to release the next version of pymetadata including the
4
+ We are pleased to release the next version of pymetadata including the
5
5
  following changes:
6
6
 
7
7
  ## Features
@@ -1,7 +1,7 @@
1
1
  # Release notes for pymetadata 0.3.5
2
2
  ![pymetadata](https://github.com/matthiaskoenig/pymetadata/raw/develop/docs/images/favicon/pymetadata-100x100-300dpi.png)
3
3
 
4
- We are pleased to release the next version of pymetadata including the
4
+ We are pleased to release the next version of pymetadata including the
5
5
  following changes:
6
6
 
7
7
  ## Features