Total Complexity | 0 |
Total Lines | 37 |
Duplicated Lines | 0 % |
Changes | 0 |
1 | # SPDX-FileCopyrightText: Copyright 2020-2023, Contributors to pocketutils |
||
2 | # SPDX-PackageHomePage: https://github.com/dmyersturnbull/pocketutils |
||
3 | # SPDX-License-Identifier: Apache-2.0 |
||
4 | """ |
||
5 | Metadata and environment variables. |
||
6 | """ |
||
7 | |||
8 | import logging |
||
9 | import tomllib |
||
10 | from importlib.metadata import PackageNotFoundError |
||
11 | from importlib.metadata import metadata as __load |
||
12 | from pathlib import Path |
||
13 | |||
14 | __all__ = ["Metadata"] |
||
15 | |||
16 | _pkg = Path(__file__).parent.name |
||
17 | logger = logging.getLogger(_pkg) |
||
18 | _metadata = {} |
||
19 | try: |
||
20 | _metadata = __load(_pkg) |
||
21 | except PackageNotFoundError: # nocov |
||
22 | _pyproject = Path(__file__).parent / "pyproject.toml" |
||
23 | if _pyproject.exists(): |
||
24 | _data = tomllib.loads(_pyproject.read_text(encoding="utf-8")) |
||
25 | _metadata = {k.capitalize(): v for k, v in _data["project"]} |
||
26 | else: |
||
27 | logger.error(f"Could not load metadata for package {_pkg}. Is it installed?") |
||
28 | |||
29 | |||
30 | class Metadata: |
||
31 | pkg = _pkg |
||
32 | homepage = _metadata.get("Home-page") |
||
33 | title = _metadata.get("Name") |
||
34 | summary = _metadata.get("Summary") |
||
35 | license = _metadata.get("License") |
||
36 | version = _metadata.get("Version") |
||
37 |