release commit
This commit is contained in:
71
biocypher/_metadata.py
Normal file
71
biocypher/_metadata.py
Normal file
@ -0,0 +1,71 @@
|
||||
#!/usr/bin/env python
|
||||
#
|
||||
# Copyright 2021, Heidelberg University Clinic
|
||||
#
|
||||
# File author(s): Sebastian Lobentanzer
|
||||
# ...
|
||||
#
|
||||
# Distributed under MIT licence, see the file `LICENSE`.
|
||||
#
|
||||
"""
|
||||
Package metadata (version, authors, etc).
|
||||
"""
|
||||
|
||||
__all__ = ["get_metadata"]
|
||||
|
||||
import os
|
||||
import pathlib
|
||||
import importlib.metadata
|
||||
|
||||
import toml
|
||||
|
||||
_VERSION = "0.6.0"
|
||||
|
||||
|
||||
def get_metadata():
|
||||
"""
|
||||
Basic package metadata.
|
||||
|
||||
Retrieves package metadata from the current project directory or from
|
||||
the installed package.
|
||||
"""
|
||||
|
||||
here = pathlib.Path(__file__).parent
|
||||
pyproj_toml = "pyproject.toml"
|
||||
meta = {}
|
||||
|
||||
for project_dir in (here, here.parent):
|
||||
toml_path = str(project_dir.joinpath(pyproj_toml).absolute())
|
||||
|
||||
if os.path.exists(toml_path):
|
||||
pyproject = toml.load(toml_path)
|
||||
|
||||
meta = {
|
||||
"name": pyproject["tool"]["poetry"]["name"],
|
||||
"version": pyproject["tool"]["poetry"]["version"],
|
||||
"author": pyproject["tool"]["poetry"]["authors"],
|
||||
"license": pyproject["tool"]["poetry"]["license"],
|
||||
"full_metadata": pyproject,
|
||||
}
|
||||
|
||||
break
|
||||
|
||||
if not meta:
|
||||
try:
|
||||
meta = {
|
||||
k.lower(): v
|
||||
for k, v in importlib.metadata.metadata(here.name).items()
|
||||
}
|
||||
|
||||
except importlib.metadata.PackageNotFoundError:
|
||||
pass
|
||||
|
||||
meta["version"] = meta.get("version", None) or _VERSION
|
||||
|
||||
return meta
|
||||
|
||||
|
||||
metadata = get_metadata()
|
||||
__version__ = metadata.get("version", None)
|
||||
__author__ = metadata.get("author", None)
|
||||
__license__ = metadata.get("license", None)
|
Reference in New Issue
Block a user