Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion src/poetry/console/commands/init.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@


if TYPE_CHECKING:
from packaging.utils import NormalizedName
from poetry.core.packages.package import Package
from tomlkit.items import InlineTable

Expand Down Expand Up @@ -238,7 +239,7 @@ def handle(self) -> int:
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]
Expand Down
3 changes: 2 additions & 1 deletion src/poetry/console/commands/show.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@

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
Expand Down Expand Up @@ -423,7 +424,7 @@ def _display_tree(
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:
Expand Down
1 change: 1 addition & 0 deletions src/poetry/installation/installer.py
Original file line number Diff line number Diff line change
Expand Up @@ -544,6 +544,7 @@ def _get_extra_packages(self, repo: Repository) -> list[str]:

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:
Expand Down
2 changes: 1 addition & 1 deletion src/poetry/repositories/legacy_repository.py
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ def find_packages(self, dependency: Dependency) -> list[Package]:
dependency
)

key = dependency.name
key: str = dependency.name
if not constraint.is_any():
key = f"{key}:{constraint!s}"

Expand Down
5 changes: 3 additions & 2 deletions src/poetry/utils/env.py
Original file line number Diff line number Diff line change
Expand Up @@ -641,8 +641,9 @@ def activate(self, python: str, io: IO) -> Env:

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():
Expand Down
9 changes: 6 additions & 3 deletions src/poetry/utils/extras.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,15 @@
from collections.abc import Sequence
from typing import Mapping

from packaging.utils import NormalizedName
from poetry.core.packages.package import Package


def get_extra_package_names(
packages: Sequence[Package],
extras: Mapping[str, list[str]],
extra_names: Sequence[str],
) -> Iterable[str]:
) -> Iterable[NormalizedName]:
"""
Returns all package names required by the given extras.

Expand All @@ -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)
Expand Down