diff --git a/mina/backend/__init__.py b/mina/backend/__init__.py index 94c2f6d..21185b8 100644 --- a/mina/backend/__init__.py +++ b/mina/backend/__init__.py @@ -5,14 +5,22 @@ from pathlib import Path from typing import Any, Dict, Mapping, Optional -from pdm.pep517._vendor import tomli +try: + import tomllib as tomli # type: ignore +except ImportError: + try: + from pdm.pep517._vendor import tomli + except ImportError: + import tomli + from pdm.pep517._vendor.packaging.requirements import Requirement from pdm.pep517.api import _prepare_metadata -from pdm.pep517.api import get_requires_for_build_sdist as get_requires_for_build_sdist -from pdm.pep517.api import get_requires_for_build_wheel as get_requires_for_build_wheel -from pdm.pep517.api import ( - prepare_metadata_for_build_wheel as prepare_metadata_for_build_wheel, -) +from pdm.pep517.api import \ + get_requires_for_build_sdist as get_requires_for_build_sdist +from pdm.pep517.api import \ + get_requires_for_build_wheel as get_requires_for_build_wheel +from pdm.pep517.api import \ + prepare_metadata_for_build_wheel as prepare_metadata_for_build_wheel from pdm.pep517.base import Builder from pdm.pep517.editable import EditableBuilder from pdm.pep517.metadata import Config, Metadata @@ -23,7 +31,7 @@ @functools.lru_cache(None) def _get_config_root(): cwd = Path.cwd() - return tomli.loads((cwd / "pyproject.toml").read_text(encoding='utf-8')) + return tomli.loads((cwd / "pyproject.toml").read_text(encoding="utf-8")) @functools.lru_cache(None) @@ -103,7 +111,9 @@ def _patch_dep(_meta: Metadata, pkg_project: dict[str, Any]): if req.name is None: raise ValueError(f"'{dep}' is not a valid requirement") if req.name not in workspace_deps: - raise ValueError(f"{req.name} is not defined in project requirements") + raise ValueError( + f"{req.name} is not defined in project requirements" + ) group_deps.append(str(workspace_deps[req.name])) optional_dependencies[group] = group_deps @@ -116,7 +126,7 @@ def _patch_pdm_metadata(package: str): cwd = Path.cwd() _meta = Builder(cwd).meta - config = tomli.loads((cwd / "pyproject.toml").read_text(encoding='utf-8')) + config = tomli.loads((cwd / "pyproject.toml").read_text(encoding="utf-8")) package_conf = ( config.get("tool", {}).get("mina", {}).get("packages", {}).get(package, None) diff --git a/mina/commands/build.py b/mina/commands/build.py index 247b963..1f9d73d 100644 --- a/mina/commands/build.py +++ b/mina/commands/build.py @@ -5,7 +5,13 @@ import sys from pathlib import Path -import tomli +try: + import tomllib as tomli # type: ignore +except ImportError: + try: + from pdm.pep517._vendor import tomli + except ImportError: + import tomli from pdm.builders.sdist import SdistBuilder from pdm.builders.wheel import WheelBuilder from pdm.cli.commands.base import BaseCommand @@ -120,7 +126,9 @@ def handle(self, project: Project, options: MinaCommandNamespace): if not (project.root / "pyproject.toml").exists(): project.core.ui.echo("No pyproject.toml found.", err=True) sys.exit(1) - pyproj = tomli.loads((project.root / "pyproject.toml").read_text(encoding='utf-8')) + pyproj = tomli.loads( + (project.root / "pyproject.toml").read_text(encoding="utf-8") + ) mina_packages = pyproj.get("tool", {}).get("mina", {}).get("packages", []) packages = options.packages diff --git a/mina/commands/list.py b/mina/commands/list.py index 0d42562..3f3f0d1 100644 --- a/mina/commands/list.py +++ b/mina/commands/list.py @@ -1,7 +1,13 @@ import sys from argparse import Namespace -import tomli +try: + import tomllib as tomli # type: ignore +except ImportError: + try: + from pdm.pep517._vendor import tomli + except ImportError: + import tomli from pdm.cli.commands.base import BaseCommand from pdm.project.core import Project @@ -11,7 +17,9 @@ def handle(self, project: Project, options: Namespace): if not (project.root / "pyproject.toml").exists(): project.core.ui.echo("No pyproject.toml found.", err=True) sys.exit(1) - pyproj = tomli.loads((project.root / "pyproject.toml").read_text(encoding='utf-8')) + pyproj = tomli.loads( + (project.root / "pyproject.toml").read_text(encoding="utf-8") + ) mina_packages = pyproj.get("tool", {}).get("mina", {}).get("packages", []) if not mina_packages: project.core.ui.echo( diff --git a/pyproject.toml b/pyproject.toml index 4fed2df..745df97 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -10,6 +10,7 @@ dependencies = [ "pdm-pep517>=1.0.1", "mina-build>=0.2.1", "twine>=4.0.0", + "tomli>=1.1.0; python_version < \"3.11\"" ] requires-python = ">=3.9" readme = "README.md" @@ -49,13 +50,14 @@ raw-dependencies = [] [tool.mina.packages."backend".project] name = "mina-build" -version = "0.2.8" +version = "0.2.9" description = "build backend for Mina Package Structure" authors = [ {name = "GreyElaina", email = "GreyElaina@outlook.com"}, ] dependencies = [ "pdm-pep517", + "tomli" ] requires-python = ">=3.9" readme = "README.build.md" @@ -72,10 +74,11 @@ excludes = [ [tool.mina.packages."cli-pdm".project] name = "pdm-mina" -version = "0.2.0" +version = "0.2.1" dependencies = [ "pdm", "mina-build", + "tomli" ] requires-python = ">=3.9" readme = "README.md"