pymetadata 0.5.1__py3-none-any.whl → 0.5.3__py3-none-any.whl

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.

@@ -26,6 +26,7 @@ from pronto.relationship import Relationship as ProntoRelationship
26
26
  from pronto.term import Term as ProntoTerm
27
27
 
28
28
  from pymetadata import ENUM_DIR, RESOURCES_DIR, log
29
+ from pymetadata.console import console
29
30
 
30
31
  logger = log.get_logger(__name__)
31
32
 
@@ -51,18 +52,18 @@ class OntologyFile:
51
52
  @property
52
53
  def path(self) -> Path:
53
54
  """Path of ontology file."""
54
- return RESOURCES_DIR / "ontologies" / f"{self.id.lower()}.{self.format}.gz"
55
+ return RESOURCES_DIR / "ontologies" / f"{self.id.lower()}.{self.format.value}.gz"
55
56
 
56
57
  @property
57
58
  def filename(self) -> str:
58
59
  """Filename of ontology file.
59
60
 
60
- :return: ontolgoy filename
61
+ :return: ontology filename
61
62
  :rtype: str
62
63
  """
63
- data = str(self.path)
64
- print(data)
65
- return data
64
+ name = str(self.path)
65
+ console.print(name)
66
+ return name
66
67
 
67
68
 
68
69
  _ontology_files: List[OntologyFile] = [
@@ -506,4 +506,4 @@
506
506
  <soap:address location="http://www.ebi.ac.uk:80/webservices/chebi/2.0/webservice"/>
507
507
  </port>
508
508
  </service>
509
- </definitions>
509
+ </definitions>
@@ -57,5 +57,3 @@ __all__ = [
57
57
  "{{ontology_id}}",
58
58
  "{{ontology_id}}Type",
59
59
  ]
60
-
61
-
pymetadata/unichem.py CHANGED
@@ -130,7 +130,7 @@ class UnichemQuery:
130
130
  xrefs: List[CrossReference] = []
131
131
  if data:
132
132
  if "error" in data:
133
- logger.error(f"No xrefs for inchikey: '{inchikey}'")
133
+ logger.warning(f"No xrefs for inchikey: '{inchikey}'")
134
134
  return []
135
135
 
136
136
  # process data
@@ -138,7 +138,7 @@ class UnichemQuery:
138
138
  for item in data:
139
139
  source_id: int = int(item["src_id"])
140
140
  if source_id not in self.sources:
141
- if source_id != 40:
141
+ if source_id not in {40, 49, 50}:
142
142
  # number 40 is missing from definitions
143
143
  logger.error(
144
144
  f"No UniChem source for source id '{source_id}', in item "
@@ -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
@@ -1,4 +1,4 @@
1
- pymetadata/__init__.py,sha256=wbfOX13kHGrC-MqKiZrALY1lIQJTpnjr1EKcsnqZ5DI,357
1
+ pymetadata/__init__.py,sha256=LZIT9zZ1A-rNn5hpngSn0bh-HCpO7Wg6vv9X1jlkZrU,357
2
2
  pymetadata/cache.py,sha256=tQuMIcd1cOfO0dvODQMG92_IrHqgswPfshhFjtl7Pd0,1409
3
3
  pymetadata/chebi.py,sha256=EH8sYRx7af3Hi1O8x5Tvj_T9cawGVMtlYp_4B3L8tHY,2730
4
4
  pymetadata/console.py,sha256=ouDYOx_81ndvtMW5GVrut71uzPC5xlvibGu9N5YdbRA,332
@@ -6,14 +6,14 @@ pymetadata/log.py,sha256=3uRVMYolalrS0PVWS_4qSme8RYhot3_W2ad1JopI88g,664
6
6
  pymetadata/omex.py,sha256=ZFsX9Xbh8sgT1UeBpKMgdrOh2PGTxrH2IAdYo_R9xc0,29927
7
7
  pymetadata/omex_v2.py,sha256=HZBg_wmQWixweOZG3qVj2zqG_o1x9Ljxy-JEP6-ZFhM,584
8
8
  pymetadata/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
9
- pymetadata/unichem.py,sha256=slxTabar1ZdZQUyTyRloiWKxD92ixnDGsJ2xk3alrTo,6878
9
+ pymetadata/unichem.py,sha256=SCdljAA6dsR3DrD_OrjRoXIMhgwVV-MiXoCiNMVo_-0,6894
10
10
  pymetadata/core/__init__.py,sha256=VWZCD9TgSGldzdtXoarvp_2oUHKXQkC1T-VUSvMLwNA,28
11
11
  pymetadata/core/annotation.py,sha256=PO2dyjgDP91J6JcJ2i3CzvdSd-6I0-3lAeTaaRd_cyY,13695
12
12
  pymetadata/core/creator.py,sha256=0_z0HPhO2Tq8FnAED_4kuVzUiPfm_tYMiZSvyw73Aho,1307
13
13
  pymetadata/core/synonym.py,sha256=-2_1ouSWAtQK5eZv2-p6CIJgYZX4xGKua-09ubBg5uo,155
14
14
  pymetadata/core/xref.py,sha256=qlUfAb5wk4bOwPiUCEV0s9gIWVdWf5yup1W8UxR5uHY,1594
15
15
  pymetadata/examples/__init__.py,sha256=LHY-XmQoiBxoHQW9mQN1_fUYnpfkALuRsdxDXU9sIeU,31
16
- pymetadata/examples/cache_path_example.py,sha256=f1-uvvIO28voxpehIvlXuWybNsAkAldmS70Bd77Cb78,377
16
+ pymetadata/examples/cache_path_example.py,sha256=WGDiwVmRO47r2k19y3mtyQGYD74NgTfiK6V4Cm8kaEQ,376
17
17
  pymetadata/examples/omex_example.py,sha256=z8fKyI1z5NMze8DdTfGYvG0rxzinFk61ruiT6NDdcT4,1403
18
18
  pymetadata/examples/test.omex,sha256=uVrkDrA59F0S6TpQOk_UulDO-pTu0nU3f6zmaWI7zi4,26219
19
19
  pymetadata/examples/results/test_from_files.omex,sha256=wFBnU3v8uUiKkh4RcvMBWSUuaKtSCixQMwwZtbwEiZE,1807
@@ -25,18 +25,18 @@ pymetadata/examples/results/testomex/models/omex_comp_flat.xml,sha256=3avaqyiP07
25
25
  pymetadata/examples/results/testomex/models/omex_minimal.xml,sha256=r6FDgMu4rEXR2H_EKyQlSh4JkisH1Yu2clVkqKarPOI,6619
26
26
  pymetadata/identifiers/__init__.py,sha256=6Jd-w9Izl_wpWKV8IMBv7rW0Aq067V2czu00LNfPTL8,34
27
27
  pymetadata/identifiers/miriam.py,sha256=pa7lB1_C2cKRUuojFPvxAQ6yDI_ZQNjGEoYMb1395pY,982
28
- pymetadata/identifiers/registry.py,sha256=FzajEoFXlywtAqhGQ2YpxkViAoBRXZM5P82J6ZOHyPc,13081
28
+ pymetadata/identifiers/registry.py,sha256=B2LgtNhGyEwL_X-PlwmrJy4IWUuOQPN6-54L-WZs8xk,12152
29
29
  pymetadata/metadata/__init__.py,sha256=wrZtmqudWwyxJXrsHoTx235ooDepKgiia8kHKiIZO4Y,154
30
- pymetadata/metadata/eco.py,sha256=wsF-nRuXdI5Fm8T1e8wWYFtBPgzQ9ap2zIkH3nXjab4,662767
31
- pymetadata/metadata/kisao.py,sha256=oI3zuCDhDmA-aK5pWLhNJu1Y0XgBvI6IpmLlEnymgdo,89273
32
- pymetadata/metadata/sbo.py,sha256=rJEtdhOP5YUY1i8-6drWsglDmayFEpWVA2h2t3fjLCo,141756
30
+ pymetadata/metadata/eco.py,sha256=5htFnOP7y5EKVJujTcuUvGQWHiBBjpQBrKl5Z0wN41g,704651
31
+ pymetadata/metadata/kisao.py,sha256=W8ZrG79zRUftOLIIvuSSIp-b33YtLhJqifYF40v7jv4,91588
32
+ pymetadata/metadata/sbo.py,sha256=x8Sg6k4VhqkcFF_NjBRF_RixCYIwJvUAz2YSuq-77HU,139787
33
33
  pymetadata/ontologies/__init__.py,sha256=vIpTqwqrhOAOYfnavWBQL149dNMAPv-OE5IyloYQCrQ,18
34
34
  pymetadata/ontologies/ols.py,sha256=lKmhRMKuEx29QAZsxCRlzUwH48CGtl8YKM2AcsiDFVk,6814
35
- pymetadata/ontologies/ontology.py,sha256=cnAgXzxPn3XxZ8FUAMuSAH0eOGio-YK1Enzy3ZuKzcc,9100
36
- pymetadata/resources/chebi_webservice_wsdl.xml,sha256=0AEgcZ48bk4L6l3jO5-6BIVwfTr4yXnRZCtXue5NyHo,23846
35
+ pymetadata/ontologies/ontology.py,sha256=-3_AAq-HxRBOZReuLb3dj56HPPFUXsW22ULwaYQLIBc,9153
36
+ pymetadata/resources/chebi_webservice_wsdl.xml,sha256=a5P4An0PAANmrBbkLKkFnm4JObFPm2Xq5DbcwO-rbN8,23847
37
37
  pymetadata/resources/ontologies/README.md,sha256=h1LIKpr42-s0RzwpCufkR_YJ2nWiwOapZX_frRXk3Qg,163
38
- pymetadata/resources/templates/ontology_enum.pytemplate,sha256=fK7SBTVfRzVk-z_6wiZ_9MDbTNSlEpGGellRoliGqac,1674
39
- pymetadata-0.5.1.dist-info/METADATA,sha256=U98HB_QbhuBiAYZn2gJRmNyp1whz3VzwxsUhjoankhc,5725
40
- pymetadata-0.5.1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
41
- pymetadata-0.5.1.dist-info/licenses/LICENSE,sha256=bIHEDEMiQfVe9c81lFP7Q9hsCOmEuj2c_m50LuotsMM,1058
42
- pymetadata-0.5.1.dist-info/RECORD,,
38
+ pymetadata/resources/templates/ontology_enum.pytemplate,sha256=nona0KbGoFumgJo2v_J-pcTniXveiTGb8bz-1rMoDR8,1672
39
+ pymetadata-0.5.3.dist-info/METADATA,sha256=DzZIAnmceHSX68VFYy7Uj9zDMLRGoyDNRkjSjHLQhxU,4963
40
+ pymetadata-0.5.3.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
41
+ pymetadata-0.5.3.dist-info/licenses/LICENSE,sha256=4oZhYj-TN8e6NrD0wup4nJfQUH9zX0v3gz43xN6F2hs,1059
42
+ pymetadata-0.5.3.dist-info/RECORD,,
@@ -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.
@@ -1,154 +0,0 @@
1
- Metadata-Version: 2.4
2
- Name: pymetadata
3
- Version: 0.5.1
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