diff --git a/README.md b/README.md index 9c8b573..5fbf899 100644 --- a/README.md +++ b/README.md @@ -45,7 +45,7 @@ poetry export -f requirements.txt --output requirements.txt * `--without`: The dependency groups to ignore when exporting. * `--with`: The optional dependency groups to include when exporting. * `--only`: The only dependency groups to include when exporting. -* `--default`: Only export the default dependencies. +* `--default`: Only export the main dependencies. (**Deprecated**) * `--dev`: Include development dependencies. (**Deprecated**) * `--extras (-E)`: Extra sets of dependencies to include. * `--without-hashes`: Exclude hashes from the exported file. diff --git a/docs/_index.md b/docs/_index.md index 9eee64a..6849144 100644 --- a/docs/_index.md +++ b/docs/_index.md @@ -70,7 +70,7 @@ poetry export --only test,docs * `--without`: The dependency groups to ignore when exporting. * `--with`: The optional dependency groups to include when exporting. * `--only`: The only dependency groups to include when exporting. -* `--default`: Only export the default dependencies. +* `--default`: Only export the main dependencies. (**Deprecated**) * {{< option name="dev" deprecated=true >}}Include development dependencies.{{< /option >}} * `--extras (-E)`: Extra sets of dependencies to include. * `--without-hashes`: Exclude hashes from the exported file. diff --git a/src/poetry_plugin_export/command.py b/src/poetry_plugin_export/command.py index 5cf81b0..2909728 100644 --- a/src/poetry_plugin_export/command.py +++ b/src/poetry_plugin_export/command.py @@ -3,6 +3,12 @@ from cleo.helpers import option from poetry.console.commands.installer_command import InstallerCommand + +try: + from poetry.core.packages.dependency_group import MAIN_GROUP +except ImportError: + MAIN_GROUP = "default" + from poetry_plugin_export.exporter import Exporter @@ -42,8 +48,8 @@ class ExportCommand(InstallerCommand): ] @property - def non_optional_groups(self) -> set[str]: - return {"default"} + def default_groups(self) -> set[str]: + return {MAIN_GROUP} def handle(self) -> None: fmt = self.option("format") diff --git a/src/poetry_plugin_export/exporter.py b/src/poetry_plugin_export/exporter.py index dff0bbb..a70dbb9 100644 --- a/src/poetry_plugin_export/exporter.py +++ b/src/poetry_plugin_export/exporter.py @@ -8,6 +8,12 @@ from cleo.io.io import IO +try: + from poetry.core.packages.dependency_group import MAIN_GROUP +except ImportError: + MAIN_GROUP = "default" + + if TYPE_CHECKING: from pathlib import Path @@ -30,7 +36,7 @@ def __init__(self, poetry: Poetry) -> None: self._with_credentials = False self._with_urls = True self._extras: list[str] = [] - self._groups: Iterable[str] = ["default"] + self._groups: Iterable[str] = [MAIN_GROUP] @classmethod def is_format_supported(cls, fmt: str) -> bool: diff --git a/tests/command/test_command_export.py b/tests/command/test_command_export.py index 848d3cf..3dfe1f7 100644 --- a/tests/command/test_command_export.py +++ b/tests/command/test_command_export.py @@ -152,13 +152,13 @@ def test_export_uses_requirements_txt_format_by_default( f"baz==2.0.0 ; {MARKER_PY}\nfoo==1.0.0 ; {MARKER_PY}\nopt==2.2.0 ;" f" {MARKER_PY}\n", ), - ("--without default", "\n"), + ("--without main", "\n"), ("--without dev", f"foo==1.0.0 ; {MARKER_PY}\n"), ("--without opt", f"foo==1.0.0 ; {MARKER_PY}\n"), - ("--without default,dev,opt", "\n"), - ("--only default", f"foo==1.0.0 ; {MARKER_PY}\n"), + ("--without main,dev,opt", "\n"), + ("--only main", f"foo==1.0.0 ; {MARKER_PY}\n"), ("--only dev", f"baz==2.0.0 ; {MARKER_PY}\n"), - ("--only default,dev", f"baz==2.0.0 ; {MARKER_PY}\nfoo==1.0.0 ; {MARKER_PY}\n"), + ("--only main,dev", f"baz==2.0.0 ; {MARKER_PY}\nfoo==1.0.0 ; {MARKER_PY}\n"), ], ) def test_export_groups( diff --git a/tests/test_exporter.py b/tests/test_exporter.py index e512079..38d86ce 100644 --- a/tests/test_exporter.py +++ b/tests/test_exporter.py @@ -540,7 +540,7 @@ def test_exporter_can_export_requirements_txt_with_nested_packages_and_markers_a exporter = Exporter(poetry) if dev: - exporter.only_groups(["default", "dev"]) + exporter.only_groups(["main", "dev"]) exporter.export("requirements.txt", Path(tmp_dir), "requirements.txt") with (Path(tmp_dir) / "requirements.txt").open(encoding="utf-8") as f: @@ -715,7 +715,7 @@ def test_exporter_exports_requirements_txt_with_dev_packages_if_opted_in( set_package_requires(poetry) exporter = Exporter(poetry) - exporter.only_groups(["default", "dev"]) + exporter.only_groups(["main", "dev"]) exporter.export("requirements.txt", Path(tmp_dir), "requirements.txt") with (Path(tmp_dir) / "requirements.txt").open(encoding="utf-8") as f: @@ -802,7 +802,7 @@ def test_exporter_exports_requirements_txt_without_optional_packages( set_package_requires(poetry) exporter = Exporter(poetry) - exporter.only_groups(["default", "dev"]) + exporter.only_groups(["main", "dev"]) exporter.export("requirements.txt", Path(tmp_dir), "requirements.txt") with (Path(tmp_dir) / "requirements.txt").open(encoding="utf-8") as f: @@ -888,7 +888,7 @@ def test_exporter_exports_requirements_txt_with_optional_packages( set_package_requires(poetry) exporter = Exporter(poetry) - exporter.only_groups(["default", "dev"]) + exporter.only_groups(["main", "dev"]) exporter.with_hashes(False) exporter.with_extras(extras) exporter.export( @@ -1457,7 +1457,7 @@ def test_exporter_exports_requirements_txt_with_legacy_packages( set_package_requires(poetry) exporter = Exporter(poetry) - exporter.only_groups(["default", "dev"]) + exporter.only_groups(["main", "dev"]) exporter.export("requirements.txt", Path(tmp_dir), "requirements.txt") with (Path(tmp_dir) / "requirements.txt").open(encoding="utf-8") as f: @@ -1515,7 +1515,7 @@ def test_exporter_exports_requirements_txt_with_url_false(tmp_dir: str, poetry: set_package_requires(poetry) exporter = Exporter(poetry) - exporter.only_groups(["default", "dev"]) + exporter.only_groups(["main", "dev"]) exporter.with_urls(False) exporter.export("requirements.txt", Path(tmp_dir), "requirements.txt") @@ -1566,7 +1566,7 @@ def test_exporter_exports_requirements_txt_with_legacy_packages_trusted_host( ) set_package_requires(poetry) exporter = Exporter(poetry) - exporter.only_groups(["default", "dev"]) + exporter.only_groups(["main", "dev"]) exporter.export("requirements.txt", Path(tmp_dir), "requirements.txt") with (Path(tmp_dir) / "requirements.txt").open(encoding="utf-8") as f: @@ -1650,7 +1650,7 @@ def test_exporter_exports_requirements_txt_with_dev_extras( exporter = Exporter(poetry) if dev: - exporter.only_groups(["default", "dev"]) + exporter.only_groups(["main", "dev"]) exporter.export("requirements.txt", Path(tmp_dir), "requirements.txt") with (Path(tmp_dir) / "requirements.txt").open(encoding="utf-8") as f: @@ -1724,7 +1724,7 @@ def test_exporter_exports_requirements_txt_with_legacy_packages_and_duplicate_so set_package_requires(poetry) exporter = Exporter(poetry) - exporter.only_groups(["default", "dev"]) + exporter.only_groups(["main", "dev"]) exporter.export("requirements.txt", Path(tmp_dir), "requirements.txt") with (Path(tmp_dir) / "requirements.txt").open(encoding="utf-8") as f: @@ -1790,7 +1790,7 @@ def test_exporter_exports_requirements_txt_with_legacy_packages_and_credentials( set_package_requires(poetry) exporter = Exporter(poetry) - exporter.only_groups(["default", "dev"]) + exporter.only_groups(["main", "dev"]) exporter.with_credentials() exporter.export( "requirements.txt", @@ -1956,7 +1956,7 @@ def test_exporter_doesnt_confuse_repeated_packages(tmp_dir: str, poetry: Poetry) poetry._package = root exporter = Exporter(poetry) - exporter.only_groups(["default", "dev"]) + exporter.only_groups(["main", "dev"]) io = BufferedIO() exporter.export("requirements.txt", Path(tmp_dir), io)