diff --git a/src/poetry/config/source.py b/src/poetry/config/source.py index d3783bb5933..62549437017 100644 --- a/src/poetry/config/source.py +++ b/src/poetry/config/source.py @@ -2,9 +2,12 @@ import dataclasses import warnings +from typing import TYPE_CHECKING from poetry.repositories.repository_pool import Priority +if TYPE_CHECKING: + from tomlkit.items import Table @dataclasses.dataclass(order=True, eq=True) class Source: @@ -41,3 +44,13 @@ def to_dict(self) -> dict[str, str | bool]: if v }, ) + + def to_toml_table(self) -> Table: + from tomlkit import nl + from tomlkit import table + + source_table: Table = table() + for key, value in self.to_dict().items(): + source_table.add(key, value) + source_table.add(nl()) + return source_table diff --git a/src/poetry/console/commands/source/add.py b/src/poetry/console/commands/source/add.py index 9ce8ecc651d..669ac2f3c01 100644 --- a/src/poetry/console/commands/source/add.py +++ b/src/poetry/console/commands/source/add.py @@ -61,7 +61,6 @@ class SourceAddCommand(Command): def handle(self) -> int: from poetry.factory import Factory - from poetry.utils.source import source_to_table name: str = self.argument("name") lower_name = name.lower() @@ -147,11 +146,11 @@ def handle(self) -> int: source = new_source is_new_source = False - sources.append(source_to_table(source)) + sources.append(source.to_toml_table()) if is_new_source: self.line(f"Adding source with name {name}.") - sources.append(source_to_table(new_source)) + sources.append(new_source.to_toml_table()) else: self.line(f"Source with name {name} already exists. Updating.") diff --git a/src/poetry/console/commands/source/remove.py b/src/poetry/console/commands/source/remove.py index 776cc658737..f743361487f 100644 --- a/src/poetry/console/commands/source/remove.py +++ b/src/poetry/console/commands/source/remove.py @@ -25,8 +25,6 @@ class SourceRemoveCommand(Command): ] def handle(self) -> int: - from poetry.utils.source import source_to_table - name = self.argument("name") lower_name = name.lower() @@ -38,7 +36,7 @@ def handle(self) -> int: self.line(f"Removing source with name {source.name}.") removed = True continue - sources.append(source_to_table(source)) + sources.append(source.to_toml_table()) if not removed: self.line_error( diff --git a/src/poetry/utils/setup_reader.py b/src/poetry/utils/setup_reader.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/poetry/utils/source.py b/src/poetry/utils/source.py deleted file mode 100644 index dc8e1c8c92f..00000000000 --- a/src/poetry/utils/source.py +++ /dev/null @@ -1,20 +0,0 @@ -from __future__ import annotations - -from typing import TYPE_CHECKING - - -if TYPE_CHECKING: - from tomlkit.items import Table - - from poetry.config.source import Source - - -def source_to_table(source: Source) -> Table: - from tomlkit import nl - from tomlkit import table - - source_table: Table = table() - for key, value in source.to_dict().items(): - source_table.add(key, value) - source_table.add(nl()) - return source_table diff --git a/tests/utils/test_source.py b/tests/config/test_source.py similarity index 95% rename from tests/utils/test_source.py rename to tests/config/test_source.py index 909af9be27a..2331dcb4339 100644 --- a/tests/utils/test_source.py +++ b/tests/config/test_source.py @@ -8,7 +8,6 @@ from poetry.config.source import Source from poetry.repositories.repository_pool import Priority -from poetry.utils.source import source_to_table @pytest.mark.parametrize( @@ -36,7 +35,7 @@ def test_source_to_table(source: Source, table_body: dict[str, str | bool]) -> N table = Table(Container(), Trivia(), False) table._value = table_body # type: ignore[assignment] - assert source_to_table(source) == table + assert source.to_toml_table() == table def test_source_default_is_primary() -> None: