Skip to content

Commit

Permalink
feat(cli): support pep 735 on init and new
Browse files Browse the repository at this point in the history
  • Loading branch information
finswimmer committed Jan 31, 2025
1 parent 335c5e7 commit ee49998
Show file tree
Hide file tree
Showing 2 changed files with 52 additions and 52 deletions.
13 changes: 7 additions & 6 deletions src/poetry/layouts/layout.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,10 +38,12 @@
dependencies = [
]
[dependency-groups]
dev = [
]
[tool.poetry]
packages = []
[tool.poetry.group.dev.dependencies]
"""

poetry_core_version = Version.parse(importlib.metadata.version("poetry-core"))
Expand Down Expand Up @@ -179,11 +181,10 @@ def generate_project_content(self) -> TOMLDocument:

if self._dev_dependencies:
for dep_name, dep_constraint in self._dev_dependencies.items():
poetry_content["group"]["dev"]["dependencies"][dep_name] = (
dep_constraint
)
dependency = Factory.create_dependency(dep_name, dep_constraint)
content["dependency-groups"]["dev"].append(dependency.to_pep_508())
else:
del poetry_content["group"]
del content["dependency-groups"]

if not poetry_content:
del content["tool"]["poetry"]
Expand Down
91 changes: 45 additions & 46 deletions tests/console/commands/test_init.py
Original file line number Diff line number Diff line change
Expand Up @@ -153,10 +153,11 @@ def test_interactive_with_dependencies(
"flask (>=2.0.0,<3.0.0)"
]
[tool.poetry]
[dependency-groups]
dev = [
"pytest (>=3.6.0,<4.0.0)"
]
[tool.poetry.group.dev.dependencies]
pytest = "^3.6.0"
[build-system]
requires = ["poetry-core>=2.0.0,<3.0.0"]
Expand Down Expand Up @@ -278,10 +279,10 @@ def test_interactive_with_git_dependencies(
"demo @ git+https://github.com/demo/demo.git"
]
[tool.poetry]
[tool.poetry.group.dev.dependencies]
pytest = "^3.6.0"
[dependency-groups]
dev = [
"pytest (>=3.6.0,<4.0.0)"
]
"""

assert expected in tester.io.fetch_output()
Expand Down Expand Up @@ -374,10 +375,10 @@ def test_interactive_with_git_dependencies_with_reference(
"demo @ git+https://github.com/demo/demo.git@develop"
]
[tool.poetry]
[tool.poetry.group.dev.dependencies]
pytest = "^3.6.0"
[dependency-groups]
dev = [
"pytest (>=3.6.0,<4.0.0)"
]
"""

assert expected in tester.io.fetch_output()
Expand Down Expand Up @@ -423,10 +424,10 @@ def test_interactive_with_git_dependencies_and_other_name(
"demo @ git+https://github.com/demo/pyproject-demo.git"
]
[tool.poetry]
[tool.poetry.group.dev.dependencies]
pytest = "^3.6.0"
[dependency-groups]
dev = [
"pytest (>=3.6.0,<4.0.0)"
]
"""

assert expected in tester.io.fetch_output()
Expand Down Expand Up @@ -479,10 +480,10 @@ def test_interactive_with_directory_dependency(
"demo @ {demo_uri}"
]
[tool.poetry]
[tool.poetry.group.dev.dependencies]
pytest = "^3.6.0"
[dependency-groups]
dev = [
"pytest (>=3.6.0,<4.0.0)"
]
"""
assert expected in tester.io.fetch_output()

Expand Down Expand Up @@ -534,10 +535,10 @@ def test_interactive_with_directory_dependency_and_other_name(
"demo @ {demo_uri}"
]
[tool.poetry]
[tool.poetry.group.dev.dependencies]
pytest = "^3.6.0"
[dependency-groups]
dev = [
"pytest (>=3.6.0,<4.0.0)"
]
"""

assert expected in tester.io.fetch_output()
Expand Down Expand Up @@ -590,10 +591,10 @@ def test_interactive_with_file_dependency(
"demo @ {demo_uri}"
]
[tool.poetry]
[tool.poetry.group.dev.dependencies]
pytest = "^3.6.0"
[dependency-groups]
dev = [
"pytest (>=3.6.0,<4.0.0)"
]
"""

assert expected in tester.io.fetch_output()
Expand Down Expand Up @@ -639,10 +640,10 @@ def test_interactive_with_wrong_dependency_inputs(
"pendulum (>=2.0.0,<3.0.0)"
]
[tool.poetry]
[tool.poetry.group.dev.dependencies]
pytest = "3.6.0"
[dependency-groups]
dev = [
"pytest (==3.6.0)"
]
"""

assert expected in tester.io.fetch_output()
Expand Down Expand Up @@ -786,10 +787,10 @@ def test_predefined_dev_dependency(tester: CommandTester, repo: TestRepository)
dependencies = [
]
[tool.poetry]
[tool.poetry.group.dev.dependencies]
pytest = "^3.6.0"
[dependency-groups]
dev = [
"pytest (>=3.6.0,<4.0.0)"
]
"""

assert expected in tester.io.fetch_output()
Expand Down Expand Up @@ -833,17 +834,15 @@ def test_predefined_and_interactive_dev_dependencies(
dependencies = [
]
[tool.poetry]
[tool.poetry.group.dev.dependencies]
pytest = "^3.6.0"
pytest-requests = "^0.2.0"
[dependency-groups]
dev = [
"pytest (>=3.6.0,<4.0.0)",
"pytest-requests (>=0.2.0,<0.3.0)"
]
"""

output = tester.io.fetch_output()
assert expected in output
assert 'pytest-requests = "^0.2.0"' in output
assert 'pytest = "^3.6.0"' in output


def test_predefined_all_options(tester: CommandTester, repo: TestRepository) -> None:
Expand Down Expand Up @@ -884,10 +883,10 @@ def test_predefined_all_options(tester: CommandTester, repo: TestRepository) ->
"pendulum (>=2.0.0,<3.0.0)"
]
[tool.poetry]
[tool.poetry.group.dev.dependencies]
pytest = "^3.6.0"
[dependency-groups]
dev = [
"pytest (>=3.6.0,<4.0.0)"
]
"""

output = tester.io.fetch_output()
Expand Down

0 comments on commit ee49998

Please sign in to comment.