diff --git a/poetry.lock b/poetry.lock index 06cbf032bcd..f538a59ab19 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,4 +1,4 @@ -# This file is automatically @generated by Poetry 2.3.4 and should not be changed by hand. +# This file is automatically @generated by Poetry 2.4.1 and should not be changed by hand. [[package]] name = "anyio" @@ -1977,14 +1977,14 @@ markers = {main = "python_version == \"3.10\"", github-actions = "python_version [[package]] name = "tomlkit" -version = "0.14.0" +version = "0.15.0" description = "Style preserving TOML library" optional = false python-versions = ">=3.9" groups = ["main"] files = [ - {file = "tomlkit-0.14.0-py3-none-any.whl", hash = "sha256:592064ed85b40fa213469f81ac584f67a4f2992509a7c3ea2d632208623a3680"}, - {file = "tomlkit-0.14.0.tar.gz", hash = "sha256:cf00efca415dbd57575befb1f6634c4f42d2d87dbba376128adb42c121b87064"}, + {file = "tomlkit-0.15.0-py3-none-any.whl", hash = "sha256:4dbc8f0fc024412b57ced8757ac7461305126a648ff8c2c807fcb8e133a78738"}, + {file = "tomlkit-0.15.0.tar.gz", hash = "sha256:7d1a9ecba3086638211b13814ea79c90dd54dd11993564376f3aa92271f5c7a3"}, ] [[package]] diff --git a/src/poetry/config/file_config_source.py b/src/poetry/config/file_config_source.py index cd75a4214f6..eff711499cf 100644 --- a/src/poetry/config/file_config_source.py +++ b/src/poetry/config/file_config_source.py @@ -48,8 +48,7 @@ def get_property(self, key: str | Sequence[str]) -> Any: config = config[sub_key] def add_property(self, key: str | Sequence[str], value: Any) -> None: - with self.secure() as toml: - config: dict[str, Any] = toml + with self.secure() as config: keys = split_key(key) for i, sub_key in enumerate(keys): @@ -63,8 +62,7 @@ def add_property(self, key: str | Sequence[str], value: Any) -> None: config = config[sub_key] def remove_property(self, key: str | Sequence[str]) -> None: - with self.secure() as toml: - config: dict[str, Any] = toml + with self.secure() as config: keys = split_key(key) # Descend to the leaf, recording the (parent, key) at each step. diff --git a/src/poetry/console/commands/add.py b/src/poetry/console/commands/add.py index 81daf97407e..28a2a7bc030 100644 --- a/src/poetry/console/commands/add.py +++ b/src/poetry/console/commands/add.py @@ -12,7 +12,6 @@ from packaging.utils import canonicalize_name from poetry.core.packages.dependency import Dependency from poetry.core.packages.dependency_group import MAIN_GROUP -from tomlkit.toml_document import TOMLDocument from poetry.console.commands.init import InitCommand from poetry.console.commands.installer_command import InstallerCommand @@ -148,9 +147,7 @@ def handle(self) -> int: if optional and group != MAIN_GROUP: raise ValueError("You can only add optional dependencies to the main group") - # tomlkit types are awkward to work with, treat content as a mostly untyped - # dictionary. - content: dict[str, Any] = self.poetry.file.read() + content = self.poetry.file.read() project_content = content.get("project", table()) poetry_content = content.get("tool", {}).get("poetry", table()) groups_content = content.get("dependency-groups", {}) @@ -244,7 +241,7 @@ def handle(self) -> int: assert isinstance(version, str) parse_constraint(version) - constraint: dict[str, Any] = inline_table() + constraint = inline_table() for key, value in _constraint.items(): if key == "name": continue @@ -331,7 +328,7 @@ def handle(self) -> int: # create a second constraint for tool.poetry.dependencies with keys # that cannot be stored in the project section - poetry_constraint: dict[str, Any] = inline_table() + poetry_constraint = inline_table() if not isinstance(constraint, str): for key in ["allow-prereleases", "develop", "source"]: if value := constraint.get(key): @@ -413,7 +410,6 @@ def handle(self) -> int: status = self.installer.run() if status == 0 and not self.option("dry-run"): - assert isinstance(content, TOMLDocument) self.poetry.file.write(content) return status diff --git a/src/poetry/console/commands/remove.py b/src/poetry/console/commands/remove.py index 5180080a00e..52353e783cb 100644 --- a/src/poetry/console/commands/remove.py +++ b/src/poetry/console/commands/remove.py @@ -9,7 +9,6 @@ from packaging.utils import canonicalize_name from poetry.core.packages.dependency import Dependency from poetry.core.packages.dependency_group import MAIN_GROUP -from tomlkit.toml_document import TOMLDocument from poetry.console.commands.installer_command import InstallerCommand @@ -63,7 +62,7 @@ def handle(self) -> int: else: group = self.option("group", self.default_group) - content: dict[str, Any] = self.poetry.file.read() + content = self.poetry.file.read() project_content = content.get("project", {}) groups_content = content.get("dependency-groups", {}) poetry_content = content.get("tool", {}).get("poetry", {}) @@ -179,7 +178,6 @@ def handle(self) -> int: status = self.installer.run() if not self.option("dry-run") and status == 0: - assert isinstance(content, TOMLDocument) self.poetry.file.write(content) return status diff --git a/src/poetry/console/commands/self/self_command.py b/src/poetry/console/commands/self/self_command.py index 4317f09f6c9..ff0e4037998 100644 --- a/src/poetry/console/commands/self/self_command.py +++ b/src/poetry/console/commands/self/self_command.py @@ -87,10 +87,10 @@ def generate_system_pyproject(self) -> None: package.python_versions = ".".join(str(v) for v in self.env.version_info[:3]) content = Factory.create_legacy_pyproject_from_package(package=package) - content["tool"]["poetry"]["package-mode"] = False # type: ignore[index] + content["tool"]["poetry"]["package-mode"] = False for key in preserved: - content["tool"]["poetry"][key] = preserved[key] # type: ignore[index] + content["tool"]["poetry"][key] = preserved[key] if preserved_groups: content["dependency-groups"] = preserved_groups diff --git a/src/poetry/console/commands/source/add.py b/src/poetry/console/commands/source/add.py index 19aa42aff1d..93bd1cd108a 100644 --- a/src/poetry/console/commands/source/add.py +++ b/src/poetry/console/commands/source/add.py @@ -1,7 +1,6 @@ from __future__ import annotations from typing import TYPE_CHECKING -from typing import Any from typing import ClassVar from cleo.helpers import argument @@ -106,9 +105,7 @@ def handle(self) -> int: ) return 1 - # tomlkit types are awkward to work with, treat content as a mostly untyped - # dictionary. - content: dict[str, Any] = self.poetry.pyproject.data + content = self.poetry.pyproject.data if "tool" not in content: content["tool"] = table() if "poetry" not in content["tool"]: diff --git a/src/poetry/console/commands/version.py b/src/poetry/console/commands/version.py index 8bf7d61b428..f3b1575927c 100644 --- a/src/poetry/console/commands/version.py +++ b/src/poetry/console/commands/version.py @@ -1,13 +1,11 @@ from __future__ import annotations from typing import TYPE_CHECKING -from typing import Any from typing import ClassVar from cleo.helpers import argument from cleo.helpers import option from poetry.core.version.exceptions import InvalidVersionError -from tomlkit.toml_document import TOMLDocument from poetry.console.commands.command import Command @@ -68,7 +66,7 @@ def handle(self) -> int: ) if not self.option("dry-run"): - content: dict[str, Any] = self.poetry.file.read() + content = self.poetry.file.read() project_content = content.get("project", {}) if "version" in project_content: project_content["version"] = version.text @@ -76,7 +74,6 @@ def handle(self) -> int: if "version" in poetry_content: poetry_content["version"] = version.text - assert isinstance(content, TOMLDocument) self.poetry.file.write(content) else: if self.option("short"): diff --git a/src/poetry/factory.py b/src/poetry/factory.py index f548290413c..7b2792b35d4 100644 --- a/src/poetry/factory.py +++ b/src/poetry/factory.py @@ -6,7 +6,6 @@ from typing import TYPE_CHECKING from typing import Any -from typing import cast from cleo.io.null_io import NullIO from packaging.utils import NormalizedName @@ -254,7 +253,7 @@ def create_legacy_pyproject_from_package(cls, package: Package) -> TOMLDocument: from poetry.utils.dependency_specification import dependency_to_specification - pyproject: dict[str, Any] = tomlkit.document() + pyproject = tomlkit.document() pyproject["tool"] = tomlkit.table(is_super_table=True) @@ -350,8 +349,6 @@ def create_legacy_pyproject_from_package(cls, package: Package) -> TOMLDocument: if extras_section: content["extras"] = extras_section - pyproject = cast("TOMLDocument", pyproject) - return pyproject @classmethod diff --git a/src/poetry/layouts/layout.py b/src/poetry/layouts/layout.py index 768b3737191..cbd406500a8 100644 --- a/src/poetry/layouts/layout.py +++ b/src/poetry/layouts/layout.py @@ -13,7 +13,6 @@ from tomlkit import inline_table from tomlkit import loads from tomlkit import table -from tomlkit.toml_document import TOMLDocument from poetry.factory import Factory from poetry.pyproject.toml import PyProjectTOML @@ -23,6 +22,7 @@ from collections.abc import Mapping from tomlkit.items import InlineTable + from tomlkit.toml_document import TOMLDocument POETRY_DEFAULT = """\ @@ -141,7 +141,7 @@ def generate_project_content( ) -> TOMLDocument: template = POETRY_DEFAULT - content: dict[str, Any] = loads(template) + content = loads(template) project_content = content["project"] project_content["name"] = self._project @@ -212,7 +212,6 @@ def generate_project_content( build_system.add("requires", ["poetry-core" + build_system_version]) build_system.add("build-backend", "poetry.core.masonry.api") - assert isinstance(content, TOMLDocument) content.add("build-system", build_system) return content diff --git a/src/poetry/pyproject/toml.py b/src/poetry/pyproject/toml.py index 77a9be55a9a..0a275e5a6df 100644 --- a/src/poetry/pyproject/toml.py +++ b/src/poetry/pyproject/toml.py @@ -46,10 +46,7 @@ def save(self) -> None: data = self.data if self._build_system is not None: - if "build-system" not in data: - data["build-system"] = table() - - build_system = data["build-system"] + build_system = data.setdefault("build-system", table()) assert isinstance(build_system, Table) build_system["requires"] = self._build_system.requires diff --git a/tests/config/test_file_config_source.py b/tests/config/test_file_config_source.py index d7fa4dab553..011d2da0b62 100644 --- a/tests/config/test_file_config_source.py +++ b/tests/config/test_file_config_source.py @@ -104,7 +104,7 @@ def test_file_config_source_add_property_with_list_keys(tmp_path: Path) -> None: ) data = config_source._file.read() repos = data["repositories"] - assert repos["my.repo"]["url"] == "https://example.com/simple/" # type: ignore[index] + assert repos["my.repo"]["url"] == "https://example.com/simple/" def test_file_config_source_get_property_with_list_keys(tmp_path: Path) -> None: @@ -141,4 +141,4 @@ def test_file_config_source_remove_property_with_list_keys( repos = data.get("repositories", {}) assert "my.repo" not in repos other = data["repositories"] - assert other["other"]["url"] == "https://other.com/simple/" # type: ignore[index] + assert other["other"]["url"] == "https://other.com/simple/" diff --git a/tests/console/commands/env/test_use.py b/tests/console/commands/env/test_use.py index e24dd5afedb..899f36b39e5 100644 --- a/tests/console/commands/env/test_use.py +++ b/tests/console/commands/env/test_use.py @@ -4,7 +4,6 @@ from pathlib import Path from typing import TYPE_CHECKING -from typing import Any import pytest import tomlkit @@ -88,7 +87,7 @@ def test_activate_activates_non_existing_virtualenv_no_envs_file( ) assert envs_file.exists() - envs: dict[str, Any] = envs_file.read() + envs = envs_file.read() assert envs[venv_name]["minor"] == "3.7" assert envs[venv_name]["patch"] == "3.7.1" diff --git a/tests/console/commands/self/test_remove_plugins.py b/tests/console/commands/self/test_remove_plugins.py index 2e708725c8e..077ce46a647 100644 --- a/tests/console/commands/self/test_remove_plugins.py +++ b/tests/console/commands/self/test_remove_plugins.py @@ -34,10 +34,10 @@ def install_plugin(installed: Repository) -> None: content = Factory.create_legacy_pyproject_from_package(package) content["dependency-groups"] = tomlkit.table() - content["dependency-groups"][SelfCommand.ADDITIONAL_PACKAGE_GROUP] = tomlkit.array( # type: ignore[index] + content["dependency-groups"][SelfCommand.ADDITIONAL_PACKAGE_GROUP] = tomlkit.array( "[\n]" ) - content["dependency-groups"][SelfCommand.ADDITIONAL_PACKAGE_GROUP].append( # type: ignore[index, union-attr, call-arg] + content["dependency-groups"][SelfCommand.ADDITIONAL_PACKAGE_GROUP].append( Dependency(plugin.name, "^1.2.3").to_pep_508() ) diff --git a/tests/console/commands/self/utils.py b/tests/console/commands/self/utils.py index 28448914315..a91c38da89d 100644 --- a/tests/console/commands/self/utils.py +++ b/tests/console/commands/self/utils.py @@ -1,7 +1,6 @@ from __future__ import annotations from pathlib import Path -from typing import Any from tomlkit.items import Array @@ -22,7 +21,7 @@ def get_self_command_dependencies(locked: bool = True) -> Array | None: poetry = Factory().create_poetry(system_pyproject_file.parent, disable_plugins=True) - pyproject: dict[str, Any] = poetry.file.read() + pyproject = poetry.file.read() content = pyproject.get("dependency-groups", {}) if SelfCommand.ADDITIONAL_PACKAGE_GROUP not in content: diff --git a/tests/console/commands/test_add.py b/tests/console/commands/test_add.py index 1c1ad36287b..c6352854008 100644 --- a/tests/console/commands/test_add.py +++ b/tests/console/commands/test_add.py @@ -4,7 +4,6 @@ from pathlib import Path from typing import TYPE_CHECKING -from typing import cast import pytest import tomlkit @@ -27,7 +26,6 @@ from cleo.testers.command_tester import CommandTester from pytest_mock import MockerFixture - from tomlkit import TOMLDocument from poetry.config.config import Config from poetry.poetry import Poetry @@ -137,7 +135,7 @@ def test_add_no_constraint(app: PoetryTestApplication, tester: CommandTester) -> assert isinstance(tester.command, InstallerCommand) assert tester.command.installer.executor.installations_count == 2 - pyproject: dict[str, Any] = app.poetry.file.read() + pyproject = app.poetry.file.read() content = pyproject["tool"]["poetry"] assert "cachy" in content["dependencies"] @@ -164,7 +162,7 @@ def test_add_local_version(app: PoetryTestApplication, tester: CommandTester) -> assert isinstance(tester.command, InstallerCommand) assert tester.command.installer.executor.installations_count == 1 - pyproject: dict[str, Any] = app.poetry.file.read() + pyproject = app.poetry.file.read() content = pyproject["tool"]["poetry"] assert "torch" in content["dependencies"] @@ -184,7 +182,7 @@ def test_add_non_package_mode_no_name( assert isinstance(tester.command, InstallerCommand) assert tester.command.installer.executor.installations_count == 2 - pyproject: dict[str, Any] = poetry.file.read() + pyproject = poetry.file.read() content = pyproject["tool"]["poetry"] assert "cachy" in content["dependencies"] @@ -213,7 +211,7 @@ def test_add_replace_by_constraint( assert isinstance(tester.command, InstallerCommand) assert tester.command.installer.executor.installations_count == 2 - pyproject: dict[str, Any] = app.poetry.file.read() + pyproject = app.poetry.file.read() content = pyproject["tool"]["poetry"] assert "cachy" in content["dependencies"] @@ -232,7 +230,7 @@ def test_add_replace_by_constraint( """ assert tester.io.fetch_output() == expected - pyproject2: dict[str, Any] = app.poetry.file.read() + pyproject2 = app.poetry.file.read() content = pyproject2["tool"]["poetry"] assert "cachy" in content["dependencies"] @@ -242,7 +240,7 @@ def test_add_replace_by_constraint( def test_add_no_constraint_editable_error( app: PoetryTestApplication, tester: CommandTester ) -> None: - pyproject: dict[str, Any] = app.poetry.file.read() + pyproject = app.poetry.file.read() content = pyproject["tool"]["poetry"] tester.execute("-e cachy") @@ -258,7 +256,7 @@ def test_add_no_constraint_editable_error( assert isinstance(tester.command, InstallerCommand) assert tester.command.installer.executor.installations_count == 0 - pyproject2: dict[str, Any] = app.poetry.file.read() + pyproject2 = app.poetry.file.read() assert content == pyproject2["tool"]["poetry"] @@ -353,7 +351,7 @@ def test_add_with_markers(app: PoetryTestApplication, tester: CommandTester) -> marker = "python_version <= '3.4' or sys_platform == 'win32'" tester.execute(f"""cachy --markers "{marker}" """) - pyproject: dict[str, Any] = app.poetry.file.read() + pyproject = app.poetry.file.read() content = pyproject["tool"]["poetry"] assert "cachy" in content["dependencies"] @@ -387,7 +385,7 @@ def test_add_git_constraint( assert tester.io.fetch_output() == expected assert tester.command.installer.executor.installations_count == 2 - pyproject: dict[str, Any] = app.poetry.file.read() + pyproject = app.poetry.file.read() content = pyproject["tool"]["poetry"] assert "demo" in content["dependencies"] @@ -452,7 +450,7 @@ def test_add_git_constraint_with_extras( assert tester.io.fetch_output().strip() == expected.strip() assert tester.command.installer.executor.installations_count == 4 - pyproject: dict[str, Any] = app.poetry.file.read() + pyproject = app.poetry.file.read() content = pyproject["tool"]["poetry"] assert "demo" in content["dependencies"] @@ -494,7 +492,7 @@ def test_add_git_constraint_with_subdirectory( assert isinstance(tester.command, InstallerCommand) assert tester.command.installer.executor.installations_count == 1 - pyproject: dict[str, Any] = app.poetry.file.read() + pyproject = app.poetry.file.read() content = pyproject["tool"]["poetry"] constraint = { @@ -538,7 +536,7 @@ def test_add_git_ssh_constraint( assert tester.io.fetch_output() == expected assert tester.command.installer.executor.installations_count == 2 - pyproject: dict[str, Any] = app.poetry.file.read() + pyproject = app.poetry.file.read() content = pyproject["tool"]["poetry"] assert "demo" in content["dependencies"] @@ -584,7 +582,7 @@ def test_add_directory_constraint( assert isinstance(tester.command, InstallerCommand) assert tester.command.installer.executor.installations_count == 2 - pyproject: dict[str, Any] = app.poetry.file.read() + pyproject = app.poetry.file.read() content = pyproject["tool"]["poetry"] assert "demo" in content["dependencies"] @@ -599,8 +597,8 @@ def test_add_directory_constraint( def test_add_to_new_group_keeps_existing_group( app: PoetryTestApplication, tester: CommandTester ) -> None: - pyproject: dict[str, Any] = app.poetry.file.read() - groups_content: dict[str, Any] = tomlkit.parse( + pyproject = app.poetry.file.read() + groups_content = tomlkit.parse( """\ [dependency-groups] example = [ @@ -609,7 +607,6 @@ def test_add_to_new_group_keeps_existing_group( """ ) pyproject["dependency-groups"] = groups_content["dependency-groups"] - pyproject = cast("TOMLDocument", pyproject) app.poetry.file.write(pyproject) tester.execute("-G foo pendulum") @@ -623,7 +620,6 @@ def test_add_to_new_group_keeps_existing_group( assert tester.command.installer.executor.installations_count == 1 pyproject = app.poetry.file.read() - pyproject = cast("dict[str, Any]", pyproject) assert "example" in pyproject["dependency-groups"] assert pyproject["dependency-groups"]["example"] == [ "cachy (>=0.2.0,<0.3.0)", @@ -637,8 +633,8 @@ def test_add_to_new_group_keeps_existing_group( def test_add_to_existing_group( app: PoetryTestApplication, tester: CommandTester, additional_poetry_group: bool ) -> None: - pyproject: dict[str, Any] = app.poetry.file.read() - groups_content: dict[str, Any] = tomlkit.parse( + pyproject = app.poetry.file.read() + groups_content = tomlkit.parse( """\ [dependency-groups] example = [ @@ -650,7 +646,7 @@ def test_add_to_existing_group( ) pyproject["dependency-groups"] = groups_content["dependency-groups"] if additional_poetry_group: - poetry_groups_content: dict[str, Any] = tomlkit.parse( + poetry_groups_content = tomlkit.parse( """\ [tool.poetry.group.example.dependencies] cachy = { allow-prereleases = true } @@ -659,7 +655,6 @@ def test_add_to_existing_group( pyproject["tool"]["poetry"]["group"] = poetry_groups_content["tool"]["poetry"][ "group" ] - pyproject = cast("TOMLDocument", pyproject) app.poetry.file.write(pyproject) tester.execute("-G example pendulum") @@ -673,7 +668,6 @@ def test_add_to_existing_group( assert tester.command.installer.executor.installations_count == 1 pyproject = app.poetry.file.read() - pyproject = cast("dict[str, Any]", pyproject) assert "example" in pyproject["dependency-groups"] assert pyproject["dependency-groups"]["example"] == [ "cachy (>=0.2.0,<0.3.0)", @@ -692,8 +686,8 @@ def test_add_to_existing_group( def test_add_to_group_with_latest_overwrite_existing( app: PoetryTestApplication, tester: CommandTester ) -> None: - pyproject: dict[str, Any] = app.poetry.file.read() - groups_content: dict[str, Any] = tomlkit.parse( + pyproject = app.poetry.file.read() + groups_content = tomlkit.parse( """\ [dependency-groups] example = [ @@ -705,7 +699,6 @@ def test_add_to_group_with_latest_overwrite_existing( """ ) pyproject["dependency-groups"] = groups_content["dependency-groups"] - pyproject = cast("TOMLDocument", pyproject) app.poetry.file.write(pyproject) tester.execute("-G example cachy@latest") @@ -720,7 +713,6 @@ def test_add_to_group_with_latest_overwrite_existing( assert tester.command.installer.executor.installations_count == 2 pyproject = app.poetry.file.read() - pyproject = cast("dict[str, Any]", pyproject) assert "example" in pyproject["dependency-groups"] assert pyproject["dependency-groups"]["example"] == [ {"include-group": "included"}, @@ -741,7 +733,7 @@ def test_add_multiple_dependencies_to_dependency_group( assert tester.io.fetch_output().startswith(expected) - pyproject: dict[str, Any] = app.poetry.file.read() + pyproject = app.poetry.file.read() assert isinstance(tester.command, InstallerCommand) # `cachy` has `msgpack-python` as dependency. So installation count increases by 1. assert tester.command.installer.executor.installations_count == 3 @@ -756,16 +748,14 @@ def test_add_multiple_dependencies_to_dependency_group( def test_add_to_group_uses_existing_legacy_group( app: PoetryTestApplication, tester: CommandTester ) -> None: - pyproject: dict[str, Any] = app.poetry.file.read() - groups_content: dict[str, Any] = tomlkit.parse( + pyproject = app.poetry.file.read() + groups_content = tomlkit.parse( """\ [tool.poetry.group.example.dependencies] pendulum = "^1.4.4" """ ) pyproject["tool"]["poetry"]["group"] = groups_content["tool"]["poetry"]["group"] - - pyproject = cast("TOMLDocument", pyproject) app.poetry.file.write(pyproject) tester.execute("-G example cachy") @@ -780,7 +770,6 @@ def test_add_to_group_uses_existing_legacy_group( assert tester.command.installer.executor.installations_count == 2 pyproject = app.poetry.file.read() - pyproject = cast("dict[str, Any]", pyproject) assert "dependency-groups" not in pyproject assert "example" in pyproject["tool"]["poetry"]["group"] assert "pendulum" in pyproject["tool"]["poetry"]["group"]["example"]["dependencies"] @@ -816,7 +805,7 @@ def test_add_group_directory_constraint_mix_pep735( assert isinstance(tester.command, InstallerCommand) assert tester.command.installer.executor.installations_count == 2 - pyproject: dict[str, Any] = app.poetry.file.read() + pyproject = app.poetry.file.read() assert "demo @ file://" in pyproject["dependency-groups"]["example"][0] assert demo_path in pyproject["dependency-groups"]["example"][0] @@ -885,7 +874,7 @@ def test_add_file_constraint_wheel( assert isinstance(tester.command, InstallerCommand) assert tester.command.installer.executor.installations_count == 2 - pyproject: dict[str, Any] = app.poetry.file.read() + pyproject = app.poetry.file.read() content = pyproject["tool"]["poetry"] assert "demo" in content["dependencies"] @@ -921,7 +910,7 @@ def test_add_file_constraint_sdist( assert isinstance(tester.command, InstallerCommand) assert tester.command.installer.executor.installations_count == 2 - pyproject: dict[str, Any] = app.poetry.file.read() + pyproject = app.poetry.file.read() content = pyproject["tool"]["poetry"] assert "demo" in content["dependencies"] @@ -953,7 +942,7 @@ def test_add_constraint_with_extras_option( assert isinstance(tester.command, InstallerCommand) assert tester.command.installer.executor.installations_count == 2 - pyproject: dict[str, Any] = app.poetry.file.read() + pyproject = app.poetry.file.read() content = pyproject["tool"]["poetry"] assert "cachy" in content["dependencies"] @@ -993,7 +982,7 @@ def test_add_url_constraint_wheel( assert isinstance(tester.command, InstallerCommand) assert tester.command.installer.executor.installations_count == 2 - pyproject: dict[str, Any] = app.poetry.file.read() + pyproject = app.poetry.file.read() content = pyproject["tool"]["poetry"] assert "demo" in content["dependencies"] @@ -1035,7 +1024,7 @@ def test_add_url_constraint_wheel_with_extras( assert isinstance(tester.command, InstallerCommand) assert tester.command.installer.executor.installations_count == 4 - pyproject: dict[str, Any] = app.poetry.file.read() + pyproject = app.poetry.file.read() content = pyproject["tool"]["poetry"] assert "demo" in content["dependencies"] @@ -1073,14 +1062,13 @@ def test_add_constraint_with_optional( existing_extras: dict[str, list[str]] | None, expected_extras: dict[str, list[str]], ) -> None: - pyproject: dict[str, Any] = app.poetry.file.read() + pyproject = app.poetry.file.read() if project_dependencies: pyproject["project"]["dependencies"] = ["tomlkit (<1)"] if existing_extras: pyproject["project"]["optional-dependencies"] = existing_extras else: pyproject["tool"]["poetry"]["dependencies"]["tomlkit"] = "<1" - pyproject = cast("TOMLDocument", pyproject) app.poetry.file.write(pyproject) app.reset_poetry() @@ -1091,7 +1079,7 @@ def test_add_constraint_with_optional( assert tester.command.installer.executor.installations_count > 0 # check pyproject content - pyproject2: dict[str, Any] = app.poetry.file.read() + pyproject2 = app.poetry.file.read() project_content = pyproject2["project"] poetry_content = pyproject2["tool"]["poetry"] @@ -1164,7 +1152,7 @@ def test_add_constraint_with_python( assert isinstance(tester.command, InstallerCommand) assert tester.command.installer.executor.installations_count == 2 - pyproject: dict[str, Any] = app.poetry.file.read() + pyproject = app.poetry.file.read() content = pyproject["tool"]["poetry"] assert "cachy" in content["dependencies"] @@ -1198,7 +1186,7 @@ def test_add_constraint_with_platform( assert isinstance(tester.command, InstallerCommand) assert tester.command.installer.executor.installations_count == 2 - pyproject: dict[str, Any] = app.poetry.file.read() + pyproject = app.poetry.file.read() content = pyproject["tool"]["poetry"] assert "cachy" in content["dependencies"] @@ -1246,7 +1234,7 @@ def test_add_constraint_with_source( assert isinstance(tester.command, InstallerCommand) assert tester.command.installer.executor.installations_count == 1 - pyproject: dict[str, Any] = app.poetry.file.read() + pyproject = app.poetry.file.read() content = pyproject["tool"]["poetry"] assert "cachy" in content["dependencies"] @@ -1308,7 +1296,7 @@ def test_add_to_section_that_does_not_exist_yet( assert isinstance(tester.command, InstallerCommand) assert tester.command.installer.executor.installations_count == 2 - pyproject: dict[str, Any] = app.poetry.file.read() + pyproject = app.poetry.file.read() content = pyproject["dependency-groups"] assert content[group_name][0] == "cachy (>=0.2.0,<0.3.0)" @@ -1346,7 +1334,7 @@ def test_add_creating_poetry_section_does_not_remove_existing_tools( assert isinstance(tester.command, InstallerCommand) assert tester.command.installer.executor.installations_count == 2 - pyproject: dict[str, Any] = poetry.file.read() + pyproject = poetry.file.read() content = pyproject["dependency-groups"] assert content["dev"][0] == "cachy (>=0.2.0,<0.3.0)" @@ -1376,7 +1364,7 @@ def test_add_to_dev_group(app: PoetryTestApplication, tester: CommandTester) -> assert isinstance(tester.command, InstallerCommand) assert tester.command.installer.executor.installations_count == 2 - pyproject: dict[str, Any] = app.poetry.file.read() + pyproject = app.poetry.file.read() content = pyproject["dependency-groups"] assert content["dev"][0] == "cachy (>=0.2.0,<0.3.0)" @@ -1404,7 +1392,7 @@ def test_add_should_not_select_prereleases( assert isinstance(tester.command, InstallerCommand) assert tester.command.installer.executor.installations_count == 1 - pyproject: dict[str, Any] = app.poetry.file.read() + pyproject = app.poetry.file.read() content = pyproject["tool"]["poetry"] assert "pyyaml" in content["dependencies"] @@ -1418,12 +1406,11 @@ def test_add_should_skip_when_adding_existing_package_with_no_constraint( tester: CommandTester, project_dependencies: bool, ) -> None: - pyproject: dict[str, Any] = app.poetry.file.read() + pyproject = app.poetry.file.read() if project_dependencies: pyproject["project"]["dependencies"] = ["foo>1"] else: pyproject["tool"]["poetry"]["dependencies"]["foo"] = "^1.0" - pyproject = cast("TOMLDocument", pyproject) app.poetry.file.write(pyproject) repo.add_package(get_package("foo", "1.1.2")) @@ -1450,12 +1437,11 @@ def test_add_should_skip_when_adding_canonicalized_existing_package_with_no_cons tester: CommandTester, project_dependencies: bool, ) -> None: - pyproject: dict[str, Any] = app.poetry.file.read() + pyproject = app.poetry.file.read() if project_dependencies: pyproject["project"]["dependencies"] = ["foo-bar>1"] else: pyproject["tool"]["poetry"]["dependencies"]["foo-bar"] = "^1.0" - pyproject = cast("TOMLDocument", pyproject) app.poetry.file.write(pyproject) repo.add_package(get_package("foo-bar", "1.1.2")) @@ -1530,7 +1516,7 @@ def test_add_latest_should_not_create_duplicate_keys( """ poetry = project_factory(name="simple-project", pyproject_content=pyproject_content) - pyproject: dict[str, Any] = poetry.file.read() + pyproject = poetry.file.read() if project_dependencies: assert "tool" not in pyproject @@ -1545,7 +1531,7 @@ def test_add_latest_should_not_create_duplicate_keys( repo.add_package(get_package("foo", "1.1.2")) tester.execute("foo@latest") - updated_pyproject: dict[str, Any] = poetry.file.read() + updated_pyproject = poetry.file.read() if project_dependencies: assert "tool" not in updated_pyproject assert updated_pyproject["project"]["dependencies"] == ["foo (>=1.1.2,<2.0.0)"] @@ -1563,12 +1549,11 @@ def test_add_should_work_when_adding_existing_package_with_latest_constraint( tester: CommandTester, project_dependencies: bool, ) -> None: - pyproject: dict[str, Any] = app.poetry.file.read() + pyproject = app.poetry.file.read() if project_dependencies: pyproject["project"]["dependencies"] = ["foo>1"] else: pyproject["tool"]["poetry"]["dependencies"]["foo"] = "^1.0" - pyproject = cast("TOMLDocument", pyproject) app.poetry.file.write(pyproject) repo.add_package(get_package("foo", "1.1.2")) @@ -1590,7 +1575,7 @@ def test_add_should_work_when_adding_existing_package_with_latest_constraint( assert expected in tester.io.fetch_output() - pyproject2: dict[str, Any] = app.poetry.file.read() + pyproject2 = app.poetry.file.read() project_content = pyproject2["project"] poetry_content = pyproject2["tool"]["poetry"] @@ -1797,7 +1782,7 @@ def test_add_extras_are_parsed_and_included( assert tester.io.fetch_output() == expected - pyproject: dict[str, Any] = app.poetry.file.read() + pyproject = app.poetry.file.read() content = pyproject["tool"]["poetry"] assert "cleo" in content["dependencies"] @@ -1893,7 +1878,7 @@ def test_add_creates_dependencies_array_if_necessary( tester = command_tester_factory("add", poetry=poetry) tester.execute("bar>=1.0") - updated_pyproject: dict[str, Any] = poetry.file.read() + updated_pyproject = poetry.file.read() assert updated_pyproject["project"]["dependencies"] == ["bar (>=1.0)"] @@ -1919,7 +1904,7 @@ def test_add_does_not_add_poetry_dependencies_if_not_necessary( """ poetry = project_factory(name="simple-project", pyproject_content=pyproject_content) - pyproject: dict[str, Any] = poetry.file.read() + pyproject = poetry.file.read() if has_poetry_section: assert "dependencies" not in pyproject["tool"]["poetry"] @@ -1932,7 +1917,7 @@ def test_add_does_not_add_poetry_dependencies_if_not_necessary( tester = command_tester_factory("add", poetry=poetry) tester.execute("bar>=1.0 --platform linux") - updated_pyproject: dict[str, Any] = poetry.file.read() + updated_pyproject = poetry.file.read() if has_poetry_section: assert "dependencies" not in pyproject["tool"]["poetry"] else: @@ -1966,7 +1951,7 @@ def test_add_poetry_dependencies_if_necessary( """ poetry = project_factory(name="simple-project", pyproject_content=pyproject_content) - pyproject: dict[str, Any] = poetry.file.read() + pyproject = poetry.file.read() if has_poetry_section: assert "dependencies" not in pyproject["tool"]["poetry"] @@ -1990,7 +1975,7 @@ def test_add_poetry_dependencies_if_necessary( tester = command_tester_factory("add", poetry=poetry) tester.execute("bar>=1.0 --platform linux --allow-prereleases --source my-index") - updated_pyproject: dict[str, Any] = poetry.file.read() + updated_pyproject = poetry.file.read() if has_poetry_section: assert "dependencies" not in pyproject["tool"]["poetry"] else: diff --git a/tests/console/commands/test_remove.py b/tests/console/commands/test_remove.py index 68f9223be6a..06c2827ed27 100644 --- a/tests/console/commands/test_remove.py +++ b/tests/console/commands/test_remove.py @@ -1,8 +1,6 @@ from __future__ import annotations from typing import TYPE_CHECKING -from typing import Any -from typing import cast import pytest import tomlkit @@ -20,7 +18,6 @@ from cleo.testers.command_tester import CommandTester from pytest_mock import MockerFixture - from tomlkit import TOMLDocument from poetry.poetry import Poetry from poetry.repositories import Repository @@ -65,9 +62,9 @@ def test_remove_from_project_and_poetry( repo.add_package(Package("foo", "2.0.0")) repo.add_package(Package("bar", "1.0.0")) - pyproject: dict[str, Any] = app.poetry.file.read() + pyproject = app.poetry.file.read() - project_dependencies: dict[str, Any] = tomlkit.parse( + project_dependencies = tomlkit.parse( """\ [project] dependencies = [ @@ -77,7 +74,7 @@ def test_remove_from_project_and_poetry( """ ) - poetry_dependencies: dict[str, Any] = tomlkit.parse( + poetry_dependencies = tomlkit.parse( """\ [tool.poetry.dependencies] foo = "^2.0.0" @@ -92,7 +89,6 @@ def test_remove_from_project_and_poetry( pyproject["tool"]["poetry"]["dependencies"] = poetry_dependencies["tool"]["poetry"][ "dependencies" ] - pyproject = cast("TOMLDocument", pyproject) app.poetry.file.write(pyproject) app.poetry.package.add_dependency(Factory.create_dependency("foo", "^2.0.0")) @@ -101,7 +97,6 @@ def test_remove_from_project_and_poetry( tester.execute("foo") pyproject = app.poetry.file.read() - pyproject = cast("dict[str, Any]", pyproject) project_dependencies = pyproject["project"]["dependencies"] assert "foo>=2.0" not in project_dependencies assert "bar>=1.0" in project_dependencies @@ -120,7 +115,6 @@ def test_remove_from_project_and_poetry( bar = "^1.0.0" """ - pyproject = cast("TOMLDocument", pyproject) string_content = pyproject.as_string() if "\r\n" in string_content: # consistent line endings @@ -140,9 +134,9 @@ def test_remove_from_pep735_group_and_poetry_group( repo.add_package(Package("foo", "2.0.0")) repo.add_package(Package("bar", "1.0.0")) - pyproject: dict[str, Any] = app.poetry.file.read() + pyproject = app.poetry.file.read() - pep735_dependencies: dict[str, Any] = tomlkit.parse( + pep735_dependencies = tomlkit.parse( """\ [dependency-groups] dev = [ @@ -152,7 +146,7 @@ def test_remove_from_pep735_group_and_poetry_group( """ ) - poetry_dependencies: dict[str, Any] = tomlkit.parse( + poetry_dependencies = tomlkit.parse( """\ [tool.poetry.group.dev.dependencies] foo = "^2.0.0" @@ -165,7 +159,6 @@ def test_remove_from_pep735_group_and_poetry_group( pyproject["tool"]["poetry"]["group"] = poetry_dependencies["tool"]["poetry"][ "group" ] - pyproject = cast("TOMLDocument", pyproject) app.poetry.file.write(pyproject) app.poetry.package.add_dependency( @@ -178,7 +171,6 @@ def test_remove_from_pep735_group_and_poetry_group( tester.execute("foo") pyproject = app.poetry.file.read() - pyproject = cast("dict[str, Any]", pyproject) pep735_dependencies = pyproject["dependency-groups"]["dev"] assert "foo>=2.0" not in pep735_dependencies assert "bar>=1.0" in pep735_dependencies @@ -198,7 +190,6 @@ def test_remove_from_pep735_group_and_poetry_group( bar = "^1.0.0" """ - pyproject = cast("TOMLDocument", pyproject) string_content = pyproject.as_string() if "\r\n" in string_content: # consistent line endings @@ -224,11 +215,11 @@ def test_remove_without_specific_group_removes_from_all_groups( repo.add_package(Package("foo", "2.0.0")) repo.add_package(Package("baz", "1.0.0")) - pyproject: dict[str, Any] = app.poetry.file.read() + pyproject = app.poetry.file.read() pyproject["tool"]["poetry"]["dependencies"]["foo"] = "^2.0.0" if pep_735: - groups_content: dict[str, Any] = tomlkit.parse( + groups_content = tomlkit.parse( """\ [dependency-groups] bar = [ @@ -248,10 +239,7 @@ def test_remove_without_specific_group_removes_from_all_groups( """ ) - groups_content = cast("dict[str, Any]", groups_content) pyproject["tool"]["poetry"]["group"] = groups_content["tool"]["poetry"]["group"] - - pyproject = cast("TOMLDocument", pyproject) app.poetry.file.write(pyproject) app.poetry.package.add_dependency(Factory.create_dependency("foo", "^2.0.0")) @@ -265,7 +253,6 @@ def test_remove_without_specific_group_removes_from_all_groups( tester.execute("foo") pyproject = app.poetry.file.read() - pyproject = cast("dict[str, Any]", pyproject) content = pyproject["tool"]["poetry"] assert "foo" not in content["dependencies"] @@ -286,7 +273,6 @@ def test_remove_without_specific_group_removes_from_all_groups( [tool.poetry.group.bar.dependencies] baz = "^1.0.0" """ - pyproject = cast("TOMLDocument", pyproject) string_content = pyproject.as_string() if "\r\n" in string_content: # consistent line endings @@ -310,11 +296,11 @@ def test_remove_with_specific_group_removes_from_specific_groups( repo.add_package(Package("foo", "2.0.0")) repo.add_package(Package("baz", "1.0.0")) - pyproject: dict[str, Any] = app.poetry.file.read() + pyproject = app.poetry.file.read() pyproject["tool"]["poetry"]["dependencies"]["foo"] = "^2.0.0" if pep_735: - groups_content: dict[str, Any] = tomlkit.parse( + groups_content = tomlkit.parse( """\ [dependency-groups] bar = [ @@ -333,10 +319,7 @@ def test_remove_with_specific_group_removes_from_specific_groups( baz = "^1.0.0" """ ) - groups_content = cast("dict[str, Any]", groups_content) pyproject["tool"]["poetry"]["group"] = groups_content["tool"]["poetry"]["group"] - - pyproject = cast("TOMLDocument", pyproject) app.poetry.file.write(pyproject) app.poetry.package.add_dependency(Factory.create_dependency("foo", "^2.0.0")) @@ -350,7 +333,6 @@ def test_remove_with_specific_group_removes_from_specific_groups( tester.execute("foo --group bar") pyproject = app.poetry.file.read() - pyproject = cast("dict[str, Any]", pyproject) content = pyproject["tool"]["poetry"] assert "foo" in content["dependencies"] @@ -371,7 +353,6 @@ def test_remove_with_specific_group_removes_from_specific_groups( [tool.poetry.group.bar.dependencies] baz = "^1.0.0" """ - pyproject = cast("TOMLDocument", pyproject) string_content = pyproject.as_string() if "\r\n" in string_content: # consistent line endings @@ -395,11 +376,11 @@ def test_remove_does_not_keep_empty_groups( repo.add_package(Package("foo", "2.0.0")) repo.add_package(Package("baz", "1.0.0")) - pyproject: dict[str, Any] = app.poetry.file.read() + pyproject = app.poetry.file.read() pyproject["tool"]["poetry"]["dependencies"]["foo"] = "^2.0.0" if pep_735: - groups_content: dict[str, Any] = tomlkit.parse( + groups_content = tomlkit.parse( """\ [dependency-groups] bar = [ @@ -418,9 +399,7 @@ def test_remove_does_not_keep_empty_groups( """ ) - groups_content = cast("dict[str, Any]", groups_content) pyproject["tool"]["poetry"]["group"] = groups_content["tool"]["poetry"]["group"] - pyproject = cast("TOMLDocument", pyproject) app.poetry.file.write(pyproject) app.poetry.package.add_dependency(Factory.create_dependency("foo", "^2.0.0")) @@ -434,7 +413,6 @@ def test_remove_does_not_keep_empty_groups( tester.execute("foo baz --group bar") pyproject = app.poetry.file.read() - pyproject = cast("dict[str, Any]", pyproject) content = pyproject["tool"]["poetry"] assert "foo" in content["dependencies"] @@ -445,7 +423,6 @@ def test_remove_does_not_keep_empty_groups( else: # The group 'bar' should be removed entirely from the configuration assert "group" not in content - content = cast("TOMLDocument", content) assert "[tool.poetry.group.bar]" not in content.as_string() assert "[tool.poetry.group]" not in content.as_string() @@ -465,11 +442,11 @@ def test_remove_canonicalized_named_removes_dependency_correctly( repo.add_package(Package("foo-bar", "2.0.0")) repo.add_package(Package("baz", "1.0.0")) - pyproject: dict[str, Any] = app.poetry.file.read() + pyproject = app.poetry.file.read() pyproject["tool"]["poetry"]["dependencies"]["foo-bar"] = "^2.0.0" if pep_735: - groups_content: dict[str, Any] = tomlkit.parse( + groups_content = tomlkit.parse( """\ [dependency-groups] bar = [ @@ -488,11 +465,9 @@ def test_remove_canonicalized_named_removes_dependency_correctly( """ ) - groups_content = cast("dict[str, Any]", groups_content) pyproject["tool"]["poetry"].value._insert_after( "dependencies", "group", groups_content["tool"]["poetry"]["group"] ) - pyproject = cast("TOMLDocument", pyproject) app.poetry.file.write(pyproject) app.poetry.package.add_dependency(Factory.create_dependency("foo-bar", "^2.0.0")) @@ -506,7 +481,6 @@ def test_remove_canonicalized_named_removes_dependency_correctly( tester.execute("Foo_Bar") pyproject = app.poetry.file.read() - pyproject = cast("dict[str, Any]", pyproject) content = pyproject["tool"]["poetry"] assert "foo-bar" not in content["dependencies"] @@ -528,7 +502,6 @@ def test_remove_canonicalized_named_removes_dependency_correctly( [tool.poetry.group.bar.dependencies] baz = "^1.0.0" """ - pyproject = cast("TOMLDocument", pyproject) string_content = pyproject.as_string() if "\r\n" in string_content: # consistent line endings @@ -562,10 +535,9 @@ def test_remove_package_no_dependencies( ) -> None: repo.add_package(Package("foo", "2.0.0")) - pyproject: dict[str, Any] = app.poetry.file.read() + pyproject = app.poetry.file.read() assert "dependencies" not in pyproject["project"] del pyproject["tool"]["poetry"]["dependencies"] - pyproject = cast("TOMLDocument", pyproject) app.poetry.file.write(pyproject) app.poetry.package._dependency_groups = {} @@ -688,11 +660,11 @@ def test_remove_from_nested_pep735_group_and_poetry_group( repo.add_package(Package("foo", "2.0.0")) repo.add_package(Package("baz", "1.0.0")) - pyproject: dict[str, Any] = app.poetry.file.read() + pyproject = app.poetry.file.read() pyproject["tool"]["poetry"]["dependencies"]["foo"] = "^2.0.0" if pep_735: - groups_content: dict[str, Any] = tomlkit.parse( + groups_content = tomlkit.parse( """\ [dependency-groups] bar = [ @@ -721,9 +693,7 @@ def test_remove_from_nested_pep735_group_and_poetry_group( baz = "^1.0.0" """ ) - groups_content = cast("dict[str, Any]", groups_content) pyproject["tool"]["poetry"]["group"] = groups_content["tool"]["poetry"]["group"] - pyproject = cast("TOMLDocument", pyproject) app.poetry.file.write(pyproject) app.poetry.package.add_dependency(Factory.create_dependency("foo", "^2.0.0")) @@ -737,7 +707,6 @@ def test_remove_from_nested_pep735_group_and_poetry_group( tester.execute("baz") pyproject = app.poetry.file.read() - pyproject = cast("dict[str, Any]", pyproject) content = pyproject["tool"]["poetry"] if pep_735: @@ -767,7 +736,6 @@ def test_remove_from_nested_pep735_group_and_poetry_group( "bar", ] """ - pyproject = cast("TOMLDocument", pyproject) string_content = pyproject.as_string() if "\r\n" in string_content: # consistent line endings @@ -795,10 +763,10 @@ def test_remove_group_cleans_up_include_group_references( repo.add_package(Package("foo", "2.0.0")) repo.add_package(Package("baz", "1.0.0")) - pyproject: dict[str, Any] = app.poetry.file.read() + pyproject = app.poetry.file.read() if pep_735: - groups_content: dict[str, Any] = tomlkit.parse( + groups_content = tomlkit.parse( """\ [dependency-groups] bar = [ @@ -845,10 +813,7 @@ def test_remove_group_cleans_up_include_group_references( ] """ ) - groups_content = cast("dict[str, Any]", groups_content) pyproject["tool"]["poetry"]["group"] = groups_content["tool"]["poetry"]["group"] - - pyproject = cast("TOMLDocument", pyproject) app.poetry.file.write(pyproject) app.poetry.package.add_dependency( @@ -873,7 +838,6 @@ def test_remove_group_cleans_up_include_group_references( tester.execute(f"foo{args}") pyproject = app.poetry.file.read() - pyproject = cast("dict[str, Any]", pyproject) content = pyproject["tool"]["poetry"] if pep_735: diff --git a/tests/utils/env/test_env_manager.py b/tests/utils/env/test_env_manager.py index cc6878968c6..3e990e81872 100644 --- a/tests/utils/env/test_env_manager.py +++ b/tests/utils/env/test_env_manager.py @@ -189,7 +189,7 @@ def test_activate_activates_non_existing_virtualenv_no_envs_file( envs_file = TOMLFile(tmp_path / "envs.toml") assert envs_file.exists() - envs: dict[str, Any] = envs_file.read() + envs = envs_file.read() assert envs[venv_name]["minor"] == "3.7" assert envs[venv_name]["patch"] == "3.7.1" @@ -247,7 +247,7 @@ def test_activate_activates_existing_virtualenv_no_envs_file( envs_file = TOMLFile(tmp_path / "envs.toml") assert envs_file.exists() - envs: dict[str, Any] = envs_file.read() + envs = envs_file.read() assert envs[venv_name]["minor"] == "3.7" assert envs[venv_name]["patch"] == "3.7.1" @@ -284,7 +284,7 @@ def test_activate_activates_same_virtualenv_with_envs_file( m.assert_not_called() assert envs_file.exists() - envs: dict[str, Any] = envs_file.read() + envs = envs_file.read() assert envs[venv_name]["minor"] == "3.7" assert envs[venv_name]["patch"] == "3.7.1" @@ -329,7 +329,7 @@ def test_activate_activates_different_virtualenv_with_envs_file( ) assert envs_file.exists() - envs: dict[str, Any] = envs_file.read() + envs = envs_file.read() assert envs[venv_name]["minor"] == "3.6" assert envs[venv_name]["patch"] == "3.6.6" @@ -378,7 +378,7 @@ def test_activate_activates_recreates_for_different_patch( remove_venv_m.assert_called_with(tmp_path / f"{venv_name}-py3.7") assert envs_file.exists() - envs: dict[str, Any] = envs_file.read() + envs = envs_file.read() assert envs[venv_name]["minor"] == "3.7" assert envs[venv_name]["patch"] == "3.7.1" @@ -425,7 +425,7 @@ def test_activate_does_not_recreate_when_switching_minor( remove_venv_m.assert_not_called() assert envs_file.exists() - envs: dict[str, Any] = envs_file.read() + envs = envs_file.read() assert envs[venv_name]["minor"] == "3.6" assert envs[venv_name]["patch"] == "3.6.6" @@ -1328,7 +1328,7 @@ def test_create_venv_does_not_keep_inconsistent_envs_entry( m.assert_called() assert envs_file.exists() - envs: dict[str, Any] = envs_file.read() + envs = envs_file.read() assert venv_name not in envs assert envs["other"]["minor"] == "3.7" assert envs["other"]["patch"] == "3.7.0"