Source code for backend.dynamic_metadata

# SPDX-License-Identifier: LGPL-3.0-or-later
import sys
from pathlib import (
    Path,
)
from typing import (
    Dict,
    List,
    Optional,
)

from .find_tensorflow import (
    get_tf_requirement,
)
from .read_env import (
    get_argument_from_env,
)

if sys.version_info >= (3, 11):
    import tomllib
else:
    import tomli as tomllib

__all__ = ["dynamic_metadata"]


def __dir__() -> List[str]:
    return __all__


[docs]def dynamic_metadata( field: str, settings: Optional[Dict[str, object]] = None, ): assert field in ["optional-dependencies", "entry-points", "scripts"] _, _, find_libpython_requires, extra_scripts, tf_version = get_argument_from_env() with Path("pyproject.toml").open("rb") as f: pyproject = tomllib.load(f) if field == "scripts": return { **pyproject["tool"]["deepmd_build_backend"]["scripts"], **extra_scripts, } elif field == "optional-dependencies": optional_dependencies = pyproject["tool"]["deepmd_build_backend"][ "optional-dependencies" ] optional_dependencies["lmp"].extend(find_libpython_requires) optional_dependencies["ipi"].extend(find_libpython_requires) return { **optional_dependencies, **get_tf_requirement(tf_version), }