Skip to content

Commit

Permalink
dependency groups: rename implicit group "default" to "main"
Browse files Browse the repository at this point in the history
This is done in order to avoid ambiguity between "default group" and "default dependencies" (the groups that are considered by a command
  • Loading branch information
radoering committed Apr 18, 2022
1 parent 22a6923 commit d0ed838
Show file tree
Hide file tree
Showing 6 changed files with 32 additions and 20 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down
2 changes: 1 addition & 1 deletion docs/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down
10 changes: 8 additions & 2 deletions src/poetry_plugin_export/command.py
Original file line number Diff line number Diff line change
Expand Up @@ -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


Expand Down Expand Up @@ -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")
Expand Down
8 changes: 7 additions & 1 deletion src/poetry_plugin_export/exporter.py
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand All @@ -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:
Expand Down
8 changes: 4 additions & 4 deletions tests/command/test_command_export.py
Original file line number Diff line number Diff line change
Expand Up @@ -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(
Expand Down
22 changes: 11 additions & 11 deletions tests/test_exporter.py
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down Expand Up @@ -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:
Expand Down Expand Up @@ -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:
Expand Down Expand Up @@ -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(
Expand Down Expand Up @@ -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:
Expand Down Expand Up @@ -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")

Expand Down Expand Up @@ -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:
Expand Down Expand Up @@ -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:
Expand Down Expand Up @@ -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:
Expand Down Expand Up @@ -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",
Expand Down Expand Up @@ -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)

Expand Down

0 comments on commit d0ed838

Please sign in to comment.