Skip to content

Commit 95b75d0

Browse files
committed
refactor: set default formats for includes in Factory
1 parent 5d007ed commit 95b75d0

File tree

3 files changed

+18
-16
lines changed

3 files changed

+18
-16
lines changed

src/poetry/core/factory.py

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -367,10 +367,18 @@ def _configure_package_poetry_specifics(
367367
package.build_config = build or {}
368368

369369
if includes := tool_poetry.get("include"):
370-
package.include = [
371-
include if isinstance(include, dict) else {"path": include}
372-
for include in includes
373-
]
370+
includes_ = []
371+
for include in includes:
372+
if not isinstance(include, dict):
373+
include = {"path": include}
374+
375+
formats = include.get("format", ["sdist"])
376+
if not isinstance(formats, list):
377+
formats = [formats]
378+
379+
includes_.append({**include, "format": formats})
380+
381+
package.include = includes_
374382

375383
if exclude := tool_poetry.get("exclude"):
376384
package.exclude = exclude

src/poetry/core/masonry/builders/builder.py

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -48,21 +48,15 @@ def _module(self) -> Module:
4848

4949
packages: list[dict[str, str | dict[str, str]]] = []
5050
includes: list[dict[str, str | dict[str, str]]] = []
51-
for source_list, target_list, default in [
52-
(self._package.packages, packages, ["sdist", "wheel"]),
53-
(self._package.include, includes, ["sdist"]),
51+
for source_list, target_list in [
52+
(self._package.packages, packages),
53+
(self._package.include, includes),
5454
]:
5555
for item in source_list:
56-
# Default to including in both sdist & wheel
57-
# if the `format` key is not provided.
58-
formats = item.get("format", default)
59-
if not isinstance(formats, list):
60-
formats = [formats]
61-
62-
if self.format and self.format not in formats:
56+
if self.format and self.format not in item["format"]:
6357
continue
6458

65-
target_list.append({**item, "format": formats})
59+
target_list.append({**item})
6660

6761
return Module(
6862
self._package.name,

tests/test_factory.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -379,7 +379,7 @@ def test_create_poetry_with_packages_and_includes() -> None:
379379

380380
assert package.include == [
381381
{"path": "extra_dir/vcs_excluded.py", "format": ["sdist", "wheel"]},
382-
{"path": "notes.txt"},
382+
{"path": "notes.txt", "format": ["sdist"]},
383383
]
384384

385385

0 commit comments

Comments
 (0)