pymetadata 0.5.0__tar.gz → 0.5.2__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 (141) hide show
  1. {pymetadata-0.5.0 → pymetadata-0.5.2}/.bumpversion.toml +1 -1
  2. {pymetadata-0.5.0 → pymetadata-0.5.2}/.github/workflows/main.yml +19 -11
  3. pymetadata-0.5.2/.github/workflows/mypy.yml +21 -0
  4. pymetadata-0.5.2/PKG-INFO +115 -0
  5. pymetadata-0.5.2/README.md +74 -0
  6. {pymetadata-0.5.0 → pymetadata-0.5.2}/RELEASE.md +19 -18
  7. {pymetadata-0.5.0 → pymetadata-0.5.2}/pyproject.toml +1 -2
  8. pymetadata-0.5.2/release-notes/0.5.1.md +10 -0
  9. pymetadata-0.5.2/release-notes/0.5.2.md +11 -0
  10. {pymetadata-0.5.0 → pymetadata-0.5.2}/src/pymetadata/__init__.py +1 -1
  11. {pymetadata-0.5.0 → pymetadata-0.5.2}/src/pymetadata/omex.py +2 -0
  12. {pymetadata-0.5.0 → pymetadata-0.5.2}/tox.ini +8 -22
  13. {pymetadata-0.5.0 → pymetadata-0.5.2}/uv.lock +1 -1
  14. pymetadata-0.5.0/PKG-INFO +0 -154
  15. pymetadata-0.5.0/README.rst +0 -112
  16. {pymetadata-0.5.0 → pymetadata-0.5.2}/.github/CONTRIBUTING.rst +0 -0
  17. {pymetadata-0.5.0 → pymetadata-0.5.2}/.github/ISSUE_TEMPLATE/01-bug-report.md +0 -0
  18. {pymetadata-0.5.0 → pymetadata-0.5.2}/.github/ISSUE_TEMPLATE/02-question.md +0 -0
  19. {pymetadata-0.5.0 → pymetadata-0.5.2}/.github/ISSUE_TEMPLATE/03-feature-request.md +0 -0
  20. {pymetadata-0.5.0 → pymetadata-0.5.2}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  21. {pymetadata-0.5.0 → pymetadata-0.5.2}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  22. {pymetadata-0.5.0 → pymetadata-0.5.2}/.github/SUPPORT.rst +0 -0
  23. {pymetadata-0.5.0 → pymetadata-0.5.2}/.github/workflows/ruff.yml +0 -0
  24. {pymetadata-0.5.0 → pymetadata-0.5.2}/.gitignore +0 -0
  25. {pymetadata-0.5.0 → pymetadata-0.5.2}/.pre-commit-config.yaml +0 -0
  26. {pymetadata-0.5.0 → pymetadata-0.5.2}/.python-version +0 -0
  27. {pymetadata-0.5.0 → pymetadata-0.5.2}/.ruff.toml +0 -0
  28. {pymetadata-0.5.0 → pymetadata-0.5.2}/.zenodo.json +0 -0
  29. {pymetadata-0.5.0 → pymetadata-0.5.2}/LICENSE +0 -0
  30. {pymetadata-0.5.0 → pymetadata-0.5.2}/docs/composite_annotations.md +0 -0
  31. {pymetadata-0.5.0 → pymetadata-0.5.2}/docs/images/favicon/about.txt +0 -0
  32. {pymetadata-0.5.0 → pymetadata-0.5.2}/docs/images/favicon/android-chrome-192x192.png +0 -0
  33. {pymetadata-0.5.0 → pymetadata-0.5.2}/docs/images/favicon/android-chrome-512x512.png +0 -0
  34. {pymetadata-0.5.0 → pymetadata-0.5.2}/docs/images/favicon/apple-touch-icon.png +0 -0
  35. {pymetadata-0.5.0 → pymetadata-0.5.2}/docs/images/favicon/favicon-16x16.png +0 -0
  36. {pymetadata-0.5.0 → pymetadata-0.5.2}/docs/images/favicon/favicon-32x32.png +0 -0
  37. {pymetadata-0.5.0 → pymetadata-0.5.2}/docs/images/favicon/favicon.ico +0 -0
  38. {pymetadata-0.5.0 → pymetadata-0.5.2}/docs/images/favicon/favicon_io.zip +0 -0
  39. {pymetadata-0.5.0 → pymetadata-0.5.2}/docs/images/favicon/pymetadata-100x100-300dpi.png +0 -0
  40. {pymetadata-0.5.0 → pymetadata-0.5.2}/docs/images/favicon/site.webmanifest +0 -0
  41. {pymetadata-0.5.0 → pymetadata-0.5.2}/release-notes/0.0.10.md +0 -0
  42. {pymetadata-0.5.0 → pymetadata-0.5.2}/release-notes/0.0.11.md +0 -0
  43. {pymetadata-0.5.0 → pymetadata-0.5.2}/release-notes/0.0.12.md +0 -0
  44. {pymetadata-0.5.0 → pymetadata-0.5.2}/release-notes/0.0.13.md +0 -0
  45. {pymetadata-0.5.0 → pymetadata-0.5.2}/release-notes/0.0.14.md +0 -0
  46. {pymetadata-0.5.0 → pymetadata-0.5.2}/release-notes/0.0.15.md +0 -0
  47. {pymetadata-0.5.0 → pymetadata-0.5.2}/release-notes/0.0.16.md +0 -0
  48. {pymetadata-0.5.0 → pymetadata-0.5.2}/release-notes/0.0.17.md +0 -0
  49. {pymetadata-0.5.0 → pymetadata-0.5.2}/release-notes/0.0.18.md +0 -0
  50. {pymetadata-0.5.0 → pymetadata-0.5.2}/release-notes/0.0.19.md +0 -0
  51. {pymetadata-0.5.0 → pymetadata-0.5.2}/release-notes/0.0.2.md +0 -0
  52. {pymetadata-0.5.0 → pymetadata-0.5.2}/release-notes/0.0.20.md +0 -0
  53. {pymetadata-0.5.0 → pymetadata-0.5.2}/release-notes/0.0.21.md +0 -0
  54. {pymetadata-0.5.0 → pymetadata-0.5.2}/release-notes/0.0.22.md +0 -0
  55. {pymetadata-0.5.0 → pymetadata-0.5.2}/release-notes/0.0.3.md +0 -0
  56. {pymetadata-0.5.0 → pymetadata-0.5.2}/release-notes/0.0.4.md +0 -0
  57. {pymetadata-0.5.0 → pymetadata-0.5.2}/release-notes/0.0.5.md +0 -0
  58. {pymetadata-0.5.0 → pymetadata-0.5.2}/release-notes/0.0.6.md +0 -0
  59. {pymetadata-0.5.0 → pymetadata-0.5.2}/release-notes/0.0.7.md +0 -0
  60. {pymetadata-0.5.0 → pymetadata-0.5.2}/release-notes/0.0.8.md +0 -0
  61. {pymetadata-0.5.0 → pymetadata-0.5.2}/release-notes/0.0.9.md +0 -0
  62. {pymetadata-0.5.0 → pymetadata-0.5.2}/release-notes/0.1.0.md +0 -0
  63. {pymetadata-0.5.0 → pymetadata-0.5.2}/release-notes/0.2.1.md +0 -0
  64. {pymetadata-0.5.0 → pymetadata-0.5.2}/release-notes/0.2.10.md +0 -0
  65. {pymetadata-0.5.0 → pymetadata-0.5.2}/release-notes/0.2.2.md +0 -0
  66. {pymetadata-0.5.0 → pymetadata-0.5.2}/release-notes/0.2.3.md +0 -0
  67. {pymetadata-0.5.0 → pymetadata-0.5.2}/release-notes/0.2.4.md +0 -0
  68. {pymetadata-0.5.0 → pymetadata-0.5.2}/release-notes/0.2.5.md +0 -0
  69. {pymetadata-0.5.0 → pymetadata-0.5.2}/release-notes/0.2.6.md +0 -0
  70. {pymetadata-0.5.0 → pymetadata-0.5.2}/release-notes/0.2.7.md +0 -0
  71. {pymetadata-0.5.0 → pymetadata-0.5.2}/release-notes/0.2.8.md +0 -0
  72. {pymetadata-0.5.0 → pymetadata-0.5.2}/release-notes/0.2.9.md +0 -0
  73. {pymetadata-0.5.0 → pymetadata-0.5.2}/release-notes/0.3.0.md +0 -0
  74. {pymetadata-0.5.0 → pymetadata-0.5.2}/release-notes/0.3.1.md +0 -0
  75. {pymetadata-0.5.0 → pymetadata-0.5.2}/release-notes/0.3.10.md +0 -0
  76. {pymetadata-0.5.0 → pymetadata-0.5.2}/release-notes/0.3.11.md +0 -0
  77. {pymetadata-0.5.0 → pymetadata-0.5.2}/release-notes/0.3.2.md +0 -0
  78. {pymetadata-0.5.0 → pymetadata-0.5.2}/release-notes/0.3.3.md +0 -0
  79. {pymetadata-0.5.0 → pymetadata-0.5.2}/release-notes/0.3.4.md +0 -0
  80. {pymetadata-0.5.0 → pymetadata-0.5.2}/release-notes/0.3.5.md +0 -0
  81. {pymetadata-0.5.0 → pymetadata-0.5.2}/release-notes/0.3.6.md +0 -0
  82. {pymetadata-0.5.0 → pymetadata-0.5.2}/release-notes/0.3.7.md +0 -0
  83. {pymetadata-0.5.0 → pymetadata-0.5.2}/release-notes/0.3.8.md +0 -0
  84. {pymetadata-0.5.0 → pymetadata-0.5.2}/release-notes/0.3.9.md +0 -0
  85. {pymetadata-0.5.0 → pymetadata-0.5.2}/release-notes/0.4.0.md +0 -0
  86. {pymetadata-0.5.0 → pymetadata-0.5.2}/release-notes/0.4.1.md +0 -0
  87. {pymetadata-0.5.0 → pymetadata-0.5.2}/release-notes/0.4.2.md +0 -0
  88. {pymetadata-0.5.0 → pymetadata-0.5.2}/release-notes/0.4.3.md +0 -0
  89. {pymetadata-0.5.0 → pymetadata-0.5.2}/release-notes/0.4.4.md +0 -0
  90. {pymetadata-0.5.0 → pymetadata-0.5.2}/release-notes/0.5.0.md +0 -0
  91. {pymetadata-0.5.0 → pymetadata-0.5.2}/src/pymetadata/cache.py +0 -0
  92. {pymetadata-0.5.0 → pymetadata-0.5.2}/src/pymetadata/chebi.py +0 -0
  93. {pymetadata-0.5.0 → pymetadata-0.5.2}/src/pymetadata/console.py +0 -0
  94. {pymetadata-0.5.0 → pymetadata-0.5.2}/src/pymetadata/core/__init__.py +0 -0
  95. {pymetadata-0.5.0 → pymetadata-0.5.2}/src/pymetadata/core/annotation.py +0 -0
  96. {pymetadata-0.5.0 → pymetadata-0.5.2}/src/pymetadata/core/creator.py +0 -0
  97. {pymetadata-0.5.0 → pymetadata-0.5.2}/src/pymetadata/core/synonym.py +0 -0
  98. {pymetadata-0.5.0 → pymetadata-0.5.2}/src/pymetadata/core/xref.py +0 -0
  99. {pymetadata-0.5.0 → pymetadata-0.5.2}/src/pymetadata/examples/__init__.py +0 -0
  100. {pymetadata-0.5.0 → pymetadata-0.5.2}/src/pymetadata/examples/cache_path_example.py +0 -0
  101. {pymetadata-0.5.0 → pymetadata-0.5.2}/src/pymetadata/examples/omex_example.py +0 -0
  102. {pymetadata-0.5.0 → pymetadata-0.5.2}/src/pymetadata/examples/results/test_from_files.omex +0 -0
  103. {pymetadata-0.5.0 → pymetadata-0.5.2}/src/pymetadata/examples/results/test_from_omex.omex +0 -0
  104. {pymetadata-0.5.0 → pymetadata-0.5.2}/src/pymetadata/examples/results/testomex/README.md +0 -0
  105. {pymetadata-0.5.0 → pymetadata-0.5.2}/src/pymetadata/examples/results/testomex/manifest.xml +0 -0
  106. {pymetadata-0.5.0 → pymetadata-0.5.2}/src/pymetadata/examples/results/testomex/models/omex_comp.xml +0 -0
  107. {pymetadata-0.5.0 → pymetadata-0.5.2}/src/pymetadata/examples/results/testomex/models/omex_comp_flat.xml +0 -0
  108. {pymetadata-0.5.0 → pymetadata-0.5.2}/src/pymetadata/examples/results/testomex/models/omex_minimal.xml +0 -0
  109. {pymetadata-0.5.0 → pymetadata-0.5.2}/src/pymetadata/examples/test.omex +0 -0
  110. {pymetadata-0.5.0 → pymetadata-0.5.2}/src/pymetadata/identifiers/__init__.py +0 -0
  111. {pymetadata-0.5.0 → pymetadata-0.5.2}/src/pymetadata/identifiers/miriam.py +0 -0
  112. {pymetadata-0.5.0 → pymetadata-0.5.2}/src/pymetadata/identifiers/registry.py +0 -0
  113. {pymetadata-0.5.0 → pymetadata-0.5.2}/src/pymetadata/log.py +0 -0
  114. {pymetadata-0.5.0 → pymetadata-0.5.2}/src/pymetadata/metadata/__init__.py +0 -0
  115. {pymetadata-0.5.0 → pymetadata-0.5.2}/src/pymetadata/metadata/eco.py +0 -0
  116. {pymetadata-0.5.0 → pymetadata-0.5.2}/src/pymetadata/metadata/kisao.py +0 -0
  117. {pymetadata-0.5.0 → pymetadata-0.5.2}/src/pymetadata/metadata/sbo.py +0 -0
  118. {pymetadata-0.5.0 → pymetadata-0.5.2}/src/pymetadata/omex_v2.py +0 -0
  119. {pymetadata-0.5.0 → pymetadata-0.5.2}/src/pymetadata/ontologies/__init__.py +0 -0
  120. {pymetadata-0.5.0 → pymetadata-0.5.2}/src/pymetadata/ontologies/ols.py +0 -0
  121. {pymetadata-0.5.0 → pymetadata-0.5.2}/src/pymetadata/ontologies/ontology.py +0 -0
  122. {pymetadata-0.5.0 → pymetadata-0.5.2}/src/pymetadata/py.typed +0 -0
  123. {pymetadata-0.5.0 → pymetadata-0.5.2}/src/pymetadata/resources/chebi_webservice_wsdl.xml +0 -0
  124. {pymetadata-0.5.0 → pymetadata-0.5.2}/src/pymetadata/resources/ontologies/README.md +0 -0
  125. {pymetadata-0.5.0 → pymetadata-0.5.2}/src/pymetadata/resources/templates/ontology_enum.pytemplate +0 -0
  126. {pymetadata-0.5.0 → pymetadata-0.5.2}/src/pymetadata/unichem.py +0 -0
  127. {pymetadata-0.5.0 → pymetadata-0.5.2}/tests/core/test_annotation.py +0 -0
  128. {pymetadata-0.5.0 → pymetadata-0.5.2}/tests/core/test_creator.py +0 -0
  129. {pymetadata-0.5.0 → pymetadata-0.5.2}/tests/data/omex/BIOMD0000000001.omex +0 -0
  130. {pymetadata-0.5.0 → pymetadata-0.5.2}/tests/data/omex/CombineArchiveShowCase.omex +0 -0
  131. {pymetadata-0.5.0 → pymetadata-0.5.2}/tests/data/omex/CombineArchiveShowCase_manifest.xml +0 -0
  132. {pymetadata-0.5.0 → pymetadata-0.5.2}/tests/data/omex/CompModels.omex +0 -0
  133. {pymetadata-0.5.0 → pymetadata-0.5.2}/tests/data/omex/CompModels_manifest.xml +0 -0
  134. {pymetadata-0.5.0 → pymetadata-0.5.2}/tests/data/omex/iCGB21FR.omex +0 -0
  135. {pymetadata-0.5.0 → pymetadata-0.5.2}/tests/test_chebi.py +0 -0
  136. {pymetadata-0.5.0 → pymetadata-0.5.2}/tests/test_ols.py +0 -0
  137. {pymetadata-0.5.0 → pymetadata-0.5.2}/tests/test_omex.py +0 -0
  138. {pymetadata-0.5.0 → pymetadata-0.5.2}/tests/test_ontology.py +0 -0
  139. {pymetadata-0.5.0 → pymetadata-0.5.2}/tests/test_registry.py +0 -0
  140. {pymetadata-0.5.0 → pymetadata-0.5.2}/tests/test_sbo_kisao.py +0 -0
  141. {pymetadata-0.5.0 → pymetadata-0.5.2}/tests/test_unichem.py +0 -0
@@ -1,5 +1,5 @@
1
1
  [tool.bumpversion]
2
- current_version = "0.5.0"
2
+ current_version = "0.5.2"
3
3
  commit = true
4
4
  parse = "(?P<major>\\d+)\\.(?P<minor>\\d+)\\.(?P<patch>\\d+)"
5
5
  serialize = ["{major}.{minor}.{patch}"]
@@ -1,30 +1,38 @@
1
1
  name: CI-CD
2
2
 
3
- on: [push]
3
+ on: [ push, pull_request ]
4
4
  jobs:
5
5
  test:
6
6
  runs-on: ${{ matrix.os }}
7
7
  strategy:
8
8
  fail-fast: false
9
9
  matrix:
10
- os: [ubuntu-latest]
10
+ os: [ubuntu-latest, windows-latest, macos-latest]
11
11
  python-version: ["3.10", "3.11", "3.12", "3.13"]
12
+ exclude:
13
+ - os: windows-latest
14
+ python-version: "3.10"
15
+ - os: windows-latest
16
+ python-version: "3.11"
17
+ - os: windows-latest
18
+ python-version: "3.13"
19
+ - os: macos-latest
20
+ python-version: "3.10"
21
+ - os: macos-latest
22
+ python-version: "3.11"
23
+ - os: macos-latest
24
+ python-version: "3.13"
12
25
 
13
26
  steps:
14
27
  - uses: actions/checkout@v4
15
- - name: Set up Python ${{ matrix.python-version }}
16
- uses: actions/setup-python@v5
28
+ - name: Install uv and set the python version
29
+ uses: astral-sh/setup-uv@v5
17
30
  with:
18
31
  python-version: ${{ matrix.python-version }}
19
- - name: Install dependencies
20
- run: |
21
- python -m pip install --upgrade pip wheel
22
- python -m pip install tox tox-gh-actions
23
-
24
- # Update output format to enable automatic inline annotations.
32
+ enable-cache: true
25
33
  - name: Test with tox
26
34
  run:
27
- tox --
35
+ uvx --with tox-uv tox -e py${{ matrix.python-version }}
28
36
 
29
37
  release:
30
38
  needs: test
@@ -0,0 +1,21 @@
1
+ name: MyPy
2
+ on: [ push, pull_request ]
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
@@ -0,0 +1,115 @@
1
+ Metadata-Version: 2.4
2
+ Name: pymetadata
3
+ Version: 0.5.2
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
+ - 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
+ - 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
@@ -5,39 +5,40 @@
5
5
  * update release notes in `release-notes` with commit
6
6
  * make sure all tests run (`tox run-parallel`)
7
7
  * check formating and linting (`ruff check`)
8
- * test bump version (`bump-my-version bump [major|minor|patch] --dry-run -vv`)
8
+ * test bump version (`uv run bump-my-version bump [major|minor|patch] --dry-run -vv`)
9
9
  * bump version (`bump-my-version bump [major|minor|patch]`)
10
10
  * `git push --tags` (triggers release)
11
11
  * `git push`
12
12
 
13
13
  * test installation in virtualenv from pypi
14
14
  ```
15
- mkvirtualenv test --python=python3.13
16
- (test) pip install pymetadata
15
+ uv venv --python 3.13
16
+ uv pip install pymetadata
17
17
  ```
18
18
 
19
- ## setup environment
20
-
21
- https://github.com/tox-dev/tox-uv
22
- uv tool install tox --with tox-uv
23
- tox r -e py312
24
- tox run-parallel
25
-
26
-
27
- # install dev dependencies:
19
+ # Install dev dependencies:
28
20
  ```bash
29
- # install dependencies
21
+ # install core dependencies
30
22
  uv sync
31
23
  # install dev dependencies
32
24
  uv pip install -r pyproject.toml --extra dev
33
- # install tox-uv support
25
+ ```
26
+
27
+ ## Setup tox testing
28
+ See information on https://github.com/tox-dev/tox-uv
29
+ ```bash
34
30
  uv tool install tox --with tox-uv
35
31
  ```
32
+ Run single tox target
33
+ ```bash
34
+ tox r -e py312
35
+ ```
36
+ Run all tests in parallel
37
+ ```bash
38
+ tox run-parallel
39
+ ```
36
40
 
37
- # pre-commit
41
+ # Setup pre-commit
38
42
  pip install pre-commit
39
43
  pre-commit install
40
-
41
44
  pre-commit run
42
-
43
-
@@ -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",
@@ -0,0 +1,10 @@
1
+ # Release notes for pymetadata 0.5.1
2
+ ![pymetadata](https://github.com/matthiaskoenig/pymetadata/raw/develop/docs/images/favicon/pymetadata-100x100-300dpi.png)
3
+
4
+ We are pleased to release the next version of pymetadata including the
5
+ following changes:
6
+
7
+ ## Features & fixes
8
+ - Fix #52 windows paths
9
+
10
+ Your pymetadata team
@@ -0,0 +1,11 @@
1
+ # Release notes for pymetadata 0.5.2
2
+ ![pymetadata](https://github.com/matthiaskoenig/pymetadata/raw/develop/docs/images/favicon/pymetadata-100x100-300dpi.png)
3
+
4
+ We are pleased to release the next version of pymetadata including the
5
+ following changes:
6
+
7
+ ## Features & fixes
8
+ - Speedup CI-CD with uv
9
+ - Markdown README
10
+
11
+ Your pymetadata team
@@ -3,7 +3,7 @@
3
3
  from pathlib import Path
4
4
 
5
5
  __author__ = "Matthias Koenig"
6
- __version__ = "0.5.0"
6
+ __version__ = "0.5.2"
7
7
 
8
8
 
9
9
  program_name: str = "pymetadata"
@@ -574,6 +574,8 @@ class Omex:
574
574
  for file in files:
575
575
  file_path = os.path.join(root, file)
576
576
  location = f"./{os.path.relpath(file_path, directory)}"
577
+ # bugfix for windows paths
578
+ location = location.replace("\\", "/")
577
579
  if location == "./manifest.xml":
578
580
  # manifest is created from the internal manifest entries
579
581
  continue
@@ -1,13 +1,5 @@
1
- # --- tox -----------------------------------------------------------------------------------------------------------
2
1
  [tox]
3
- envlist = mypy, py3{10,11,12,13}
4
-
5
- [gh-actions]
6
- python =
7
- 3.10: py310
8
- 3.11: py311
9
- 3.12: py312
10
- 3.13: py313
2
+ envlist = mypy, py3.{10,11,12,13}
11
3
 
12
4
  [testenv]
13
5
  package = wheel
@@ -18,15 +10,6 @@ deps=
18
10
  commands =
19
11
  pytest
20
12
 
21
- [testenv:mypy]
22
- skip_install = True
23
-
24
- deps=[]
25
- mypy
26
- commands=
27
- mypy {toxinidir}/src/pymetadata {toxinidir}/tests --config-file tox.ini
28
-
29
-
30
13
  [testenv:install]
31
14
  skip_install = True
32
15
  deps=
@@ -37,9 +20,13 @@ commands=
37
20
  python -m build {toxinidir}
38
21
  twine check {toxinidir}/dist/*
39
22
 
40
- ################################################################################
41
- # Testing tools configuration #
42
- ################################################################################
23
+ [testenv:mypy]
24
+ skip_install = True
25
+ deps=[]
26
+ mypy
27
+ commands=
28
+ mypy {toxinidir}/src/pymetadata {toxinidir}/tests --config-file tox.ini
29
+
43
30
  [pytest]
44
31
  testpaths =
45
32
  tests
@@ -47,7 +34,6 @@ markers =
47
34
  raises
48
35
 
49
36
  [mypy]
50
- # mypy src/pymetadata --config-file tox.ini
51
37
  warn_return_any = True
52
38
  follow_imports = silent
53
39
  disallow_untyped_defs = True
@@ -749,7 +749,7 @@ wheels = [
749
749
 
750
750
  [[package]]
751
751
  name = "pymetadata"
752
- version = "0.4.4"
752
+ version = "0.5.1"
753
753
  source = { editable = "." }
754
754
  dependencies = [
755
755
  { name = "depinfo" },
pymetadata-0.5.0/PKG-INFO DELETED
@@ -1,154 +0,0 @@
1
- Metadata-Version: 2.4
2
- Name: pymetadata
3
- Version: 0.5.0
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: hatch; extra == 'dev'
34
- Requires-Dist: mypy>=1.9.0; extra == 'dev'
35
- Requires-Dist: pre-commit>=4.0.1; extra == 'dev'
36
- Requires-Dist: ruff>=0.8.6; extra == 'dev'
37
- Provides-Extra: test
38
- Requires-Dist: pytest-cov>=5.0.0; extra == 'test'
39
- Requires-Dist: pytest>=8.1.1; extra == 'test'
40
- Requires-Dist: tox>=4.14.2; extra == 'test'
41
- Description-Content-Type: text/x-rst
42
-
43
- .. image:: https://github.com/matthiaskoenig/pymetadata/raw/develop/docs/images/favicon/pymetadata-100x100-300dpi.png
44
- :align: left
45
- :alt: pymetadata logo
46
-
47
- pymetadata: python utilities for metadata and COMBINE archives
48
- ==============================================================
49
- |icon1| |icon2| |icon3| |icon4| |icon5| |icon6|
50
-
51
-
52
- .. |icon1| image:: https://github.com/matthiaskoenig/pymetadata/workflows/CI-CD/badge.svg
53
- :target: https://github.com/matthiaskoenig/pymetadata/workflows/CI-CD
54
- :alt: GitHub Actions CI/CD Status
55
- .. |icon2| image:: https://img.shields.io/pypi/v/pymetadata.svg
56
- :target: https://pypi.org/project/pymetadata/
57
- :alt: Current PyPI Version
58
- .. |icon3| image:: https://img.shields.io/pypi/pyversions/pymetadata.svg
59
- :target: https://pypi.org/project/pymetadata/
60
- :alt: Supported Python Versions
61
- .. |icon4| image:: https://img.shields.io/pypi/l/pymetadata.svg
62
- :target: https://opensource.org/licenses/MIT
63
- :alt: MIT License
64
- .. |icon5| image:: https://zenodo.org/badge/DOI/10.5281/zenodo.5308801.svg
65
- :target: https://doi.org/10.5281/zenodo.5308801
66
- :alt: Zenodo DOI
67
- .. |icon6| image:: http://www.mypy-lang.org/static/mypy_badge.svg
68
- :target: http://mypy-lang.org/
69
- :alt: mypy
70
-
71
- pymetadata is a collection of python utilities for working with
72
- metadata in the context of COMBINE standards with source code available from
73
- `https://github.com/matthiaskoenig/pymetadata <https://github.com/matthiaskoenig/pymetadata>`__.
74
-
75
- Features include among others
76
-
77
- - COMBINE archive version 1 support (OMEX)
78
- - annotation classes and helpers
79
- - SBO and KISAO ontology enums
80
-
81
- If you have any questions or issues please `open an issue <https://github.com/matthiaskoenig/pymetadata/issues>`__.
82
-
83
- Documentation
84
- =============
85
- Documentation is still work in progress. For an example usage of the COMBINE archive
86
- see `src/pymetadata/examples/omex_example.py <src/pymetadata/examples/omex_example.py>`__.
87
-
88
- How to cite
89
- ===========
90
-
91
- .. image:: https://zenodo.org/badge/DOI/10.5281/zenodo.5308801.svg
92
- :target: https://doi.org/10.5281/zenodo.5308801
93
- :alt: Zenodo DOI
94
-
95
- Contributing
96
- ============
97
-
98
- Contributions are always welcome! Please read the `contributing guidelines
99
- <https://github.com/matthiaskoenig/pymetadata/blob/develop/.github/CONTRIBUTING.rst>`__ to
100
- get started.
101
-
102
- License
103
- =======
104
- * Source Code: `MIT <https://opensource.org/license/MIT>`__
105
- * Documentation: `CC BY-SA 4.0 <https://creativecommons.org/licenses/by-sa/4.0/>`__
106
-
107
- Funding
108
- =======
109
- 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).
110
-
111
- Installation
112
- ============
113
- `pymetadata` is available from `pypi <https://pypi.python.org/pypi/pymetadata>`__ and
114
- can be installed via::
115
-
116
- pip install pymetadata
117
-
118
- Develop version
119
- ---------------
120
- The latest develop version can be installed via::
121
-
122
- pip install git+https://github.com/matthiaskoenig/pymetadata.git@develop
123
-
124
- Or via cloning the repository and installing via::
125
-
126
- git clone https://github.com/matthiaskoenig/pymetadata.git
127
- cd pymetadata
128
- pip install -e .
129
-
130
-
131
- To install for development use::
132
-
133
- pip install -e .[development]
134
-
135
-
136
- Cache path
137
- ==========
138
- `pymetadata` caches some information for faster retrieval. The cache path is set to::
139
-
140
- CACHE_PATH: Path = Path.home() / ".cache" / "pymetadata"
141
-
142
- To use a custom cache path use::
143
-
144
- import pymetadata
145
- pymetadata.CACHE_PATH = <cache_path>
146
-
147
-
148
- Checks
149
- ==========
150
- - uv for project setup
151
- - ruff for linting, formating
152
- - mypy for type checking
153
-
154
- © 2021-2025 Matthias König
@@ -1,112 +0,0 @@
1
- .. image:: https://github.com/matthiaskoenig/pymetadata/raw/develop/docs/images/favicon/pymetadata-100x100-300dpi.png
2
- :align: left
3
- :alt: pymetadata logo
4
-
5
- pymetadata: python utilities for metadata and COMBINE archives
6
- ==============================================================
7
- |icon1| |icon2| |icon3| |icon4| |icon5| |icon6|
8
-
9
-
10
- .. |icon1| image:: https://github.com/matthiaskoenig/pymetadata/workflows/CI-CD/badge.svg
11
- :target: https://github.com/matthiaskoenig/pymetadata/workflows/CI-CD
12
- :alt: GitHub Actions CI/CD Status
13
- .. |icon2| image:: https://img.shields.io/pypi/v/pymetadata.svg
14
- :target: https://pypi.org/project/pymetadata/
15
- :alt: Current PyPI Version
16
- .. |icon3| image:: https://img.shields.io/pypi/pyversions/pymetadata.svg
17
- :target: https://pypi.org/project/pymetadata/
18
- :alt: Supported Python Versions
19
- .. |icon4| image:: https://img.shields.io/pypi/l/pymetadata.svg
20
- :target: https://opensource.org/licenses/MIT
21
- :alt: MIT License
22
- .. |icon5| image:: https://zenodo.org/badge/DOI/10.5281/zenodo.5308801.svg
23
- :target: https://doi.org/10.5281/zenodo.5308801
24
- :alt: Zenodo DOI
25
- .. |icon6| image:: http://www.mypy-lang.org/static/mypy_badge.svg
26
- :target: http://mypy-lang.org/
27
- :alt: mypy
28
-
29
- pymetadata is a collection of python utilities for working with
30
- metadata in the context of COMBINE standards with source code available from
31
- `https://github.com/matthiaskoenig/pymetadata <https://github.com/matthiaskoenig/pymetadata>`__.
32
-
33
- Features include among others
34
-
35
- - COMBINE archive version 1 support (OMEX)
36
- - annotation classes and helpers
37
- - SBO and KISAO ontology enums
38
-
39
- If you have any questions or issues please `open an issue <https://github.com/matthiaskoenig/pymetadata/issues>`__.
40
-
41
- Documentation
42
- =============
43
- Documentation is still work in progress. For an example usage of the COMBINE archive
44
- see `src/pymetadata/examples/omex_example.py <src/pymetadata/examples/omex_example.py>`__.
45
-
46
- How to cite
47
- ===========
48
-
49
- .. image:: https://zenodo.org/badge/DOI/10.5281/zenodo.5308801.svg
50
- :target: https://doi.org/10.5281/zenodo.5308801
51
- :alt: Zenodo DOI
52
-
53
- Contributing
54
- ============
55
-
56
- Contributions are always welcome! Please read the `contributing guidelines
57
- <https://github.com/matthiaskoenig/pymetadata/blob/develop/.github/CONTRIBUTING.rst>`__ to
58
- get started.
59
-
60
- License
61
- =======
62
- * Source Code: `MIT <https://opensource.org/license/MIT>`__
63
- * Documentation: `CC BY-SA 4.0 <https://creativecommons.org/licenses/by-sa/4.0/>`__
64
-
65
- Funding
66
- =======
67
- 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).
68
-
69
- Installation
70
- ============
71
- `pymetadata` is available from `pypi <https://pypi.python.org/pypi/pymetadata>`__ and
72
- can be installed via::
73
-
74
- pip install pymetadata
75
-
76
- Develop version
77
- ---------------
78
- The latest develop version can be installed via::
79
-
80
- pip install git+https://github.com/matthiaskoenig/pymetadata.git@develop
81
-
82
- Or via cloning the repository and installing via::
83
-
84
- git clone https://github.com/matthiaskoenig/pymetadata.git
85
- cd pymetadata
86
- pip install -e .
87
-
88
-
89
- To install for development use::
90
-
91
- pip install -e .[development]
92
-
93
-
94
- Cache path
95
- ==========
96
- `pymetadata` caches some information for faster retrieval. The cache path is set to::
97
-
98
- CACHE_PATH: Path = Path.home() / ".cache" / "pymetadata"
99
-
100
- To use a custom cache path use::
101
-
102
- import pymetadata
103
- pymetadata.CACHE_PATH = <cache_path>
104
-
105
-
106
- Checks
107
- ==========
108
- - uv for project setup
109
- - ruff for linting, formating
110
- - mypy for type checking
111
-
112
- © 2021-2025 Matthias König
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes