Commit 65ff74a9 by Randy Döring Committed by Bjorn Neergaard

mypy: adapt type hints to change in poetry-core#442

parent d1dbdefc
......@@ -44,7 +44,7 @@ generate-setup-file = false
[tool.poetry.dependencies]
python = "^3.7"
poetry-core = "^1.1.0b3"
poetry-core = "^1.1.0rc1"
poetry-plugin-export = "^1.0.6"
cachecontrol = { version = "^0.12.9", extras = ["filecache"] }
cachy = "^0.3.0"
......
......@@ -19,6 +19,7 @@ from poetry.utils.dependency_specification import parse_dependency_specification
if TYPE_CHECKING:
from packaging.utils import NormalizedName
from poetry.core.packages.package import Package
from tomlkit.items import InlineTable
......@@ -238,7 +239,7 @@ You can specify a package in the following forms:
return 0
def _generate_choice_list(
self, matches: list[Package], canonicalized_name: str
self, matches: list[Package], canonicalized_name: NormalizedName
) -> list[str]:
choices = []
matches_names = [p.name for p in matches]
......
......@@ -11,6 +11,7 @@ from poetry.console.commands.group_command import GroupCommand
if TYPE_CHECKING:
from cleo.io.io import IO
from packaging.utils import NormalizedName
from poetry.core.packages.dependency import Dependency
from poetry.core.packages.package import Package
from poetry.core.packages.project_package import ProjectPackage
......@@ -423,7 +424,7 @@ lists all packages available."""
io: IO,
dependency: Dependency,
installed_packages: list[Package],
packages_in_tree: list[str],
packages_in_tree: list[NormalizedName],
previous_tree_bar: str = "├",
level: int = 1,
) -> None:
......
......@@ -544,6 +544,7 @@ class Installer:
Maybe we just let the solver handle it?
"""
extras: dict[str, list[str]]
if self._update:
extras = {k: [d.name for d in v] for k, v in self._package.extras.items()}
else:
......
......@@ -14,6 +14,7 @@ from poetry.repositories.link_sources.html import SimpleRepositoryPage
if TYPE_CHECKING:
from packaging.utils import NormalizedName
from poetry.core.packages.utils.link import Link
from poetry.core.semver.version_constraint import VersionConstraint
......@@ -66,13 +67,15 @@ class LegacyRepository(HTTPRepository):
return list(page.links_for_version(package.name, package.version))
def _find_packages(self, name: str, constraint: VersionConstraint) -> list[Package]:
def _find_packages(
self, name: NormalizedName, constraint: VersionConstraint
) -> list[Package]:
"""
Find packages on the remote server.
"""
versions: list[Version]
key = name
key: str = name
if not constraint.is_any():
key = f"{key}:{constraint!s}"
......
......@@ -27,6 +27,7 @@ logger = logging.getLogger(__name__)
if TYPE_CHECKING:
from packaging.utils import NormalizedName
from poetry.core.semver.version_constraint import VersionConstraint
......@@ -90,7 +91,7 @@ class PyPiRepository(HTTPRepository):
return results
def get_package_info(self, name: str) -> dict[str, Any]:
def get_package_info(self, name: NormalizedName) -> dict[str, Any]:
"""
Return the package information given its name.
......@@ -105,7 +106,9 @@ class PyPiRepository(HTTPRepository):
)
return package_info
def _find_packages(self, name: str, constraint: VersionConstraint) -> list[Package]:
def _find_packages(
self, name: NormalizedName, constraint: VersionConstraint
) -> list[Package]:
"""
Find packages on the remote server.
"""
......@@ -145,7 +148,7 @@ class PyPiRepository(HTTPRepository):
return packages
def _get_package_info(self, name: str) -> dict[str, Any]:
def _get_package_info(self, name: NormalizedName) -> dict[str, Any]:
data = self._get(f"pypi/{name}/json")
if data is None:
raise PackageNotFound(f"Package [{name}] not found.")
......
......@@ -12,6 +12,7 @@ from poetry.repositories.exceptions import PackageNotFound
if TYPE_CHECKING:
from packaging.utils import NormalizedName
from poetry.core.packages.dependency import Dependency
from poetry.core.packages.package import Package
from poetry.core.packages.utils.link import Link
......@@ -112,7 +113,9 @@ class Repository:
return constraint, allow_prereleases
def _find_packages(self, name: str, constraint: VersionConstraint) -> list[Package]:
def _find_packages(
self, name: NormalizedName, constraint: VersionConstraint
) -> list[Package]:
return [
package
for package in self._packages
......
......@@ -641,8 +641,9 @@ class EnvManager:
def deactivate(self, io: IO) -> None:
venv_path = self._poetry.config.virtualenvs_path
name = self._poetry.package.name
name = self.generate_env_name(name, str(self._poetry.file.parent))
name = self.generate_env_name(
self._poetry.package.name, str(self._poetry.file.parent)
)
envs_file = TOMLFile(venv_path / self.ENVS_FILE)
if envs_file.exists():
......
......@@ -9,6 +9,7 @@ if TYPE_CHECKING:
from collections.abc import Sequence
from typing import Mapping
from packaging.utils import NormalizedName
from poetry.core.packages.package import Package
......@@ -43,13 +44,15 @@ def get_extra_package_names(
# keep record of packages seen during recursion in order to avoid recursion error
seen_package_names = set()
def _extra_packages(package_names: Iterable[str]) -> Iterator[str]:
def _extra_packages(
package_names: Iterable[NormalizedName],
) -> Iterator[NormalizedName]:
"""Recursively find dependencies for packages names"""
# for each extra package name
for package_name in package_names:
# Find the actual Package object. A missing key indicates an implicit
# dependency (like setuptools), which should be ignored
package = packages_by_name.get(canonicalize_name(package_name))
package = packages_by_name.get(package_name)
if package:
if package.name not in seen_package_names:
seen_package_names.add(package.name)
......
......@@ -63,7 +63,7 @@ def test_get_extra_package_names(
extras: dict[str, list[str]],
extra_names: list[str],
expected_extra_package_names: list[str],
):
) -> None:
assert (
list(get_extra_package_names(packages, extras, extra_names))
== expected_extra_package_names
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment