Skip to content

Commit 7ce029e

Browse files
finswimmerabn
andcommitted
layouts: add readme to pyproject.toml on creation
Relates-to: #280 Co-authored-by: Arun Babu Neelicattu <[email protected]>
1 parent add61e9 commit 7ce029e

File tree

2 files changed

+38
-7
lines changed

2 files changed

+38
-7
lines changed

poetry/layouts/layout.py

+16-7
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
description = ""
2626
authors = []
2727
license = ""
28+
readme = ""
2829
packages = []
2930
3031
[tool.poetry.dependencies]
@@ -37,6 +38,8 @@
3738

3839

3940
class Layout:
41+
ACCEPTED_README_FORMATS = {"md", "rst"}
42+
4043
def __init__(
4144
self,
4245
project: str,
@@ -56,7 +59,15 @@ def __init__(
5659
self._package_name = ".".join(self._package_path_relative.parts)
5760
self._version = version
5861
self._description = description
59-
self._readme_format = readme_format
62+
63+
self._readme_format = readme_format.lower()
64+
if self._readme_format not in self.ACCEPTED_README_FORMATS:
65+
raise ValueError(
66+
"Invalid readme format '{}', use one of {}.".format(
67+
readme_format, ", ".join(self.ACCEPTED_README_FORMATS)
68+
)
69+
)
70+
6071
self._license = license
6172
self._python = python
6273
self._dependencies = dependencies or {}
@@ -120,6 +131,7 @@ def generate_poetry_content(
120131
else:
121132
poetry_content.remove("license")
122133

134+
poetry_content["readme"] = "README.{}".format(self._readme_format)
123135
packages = self.get_package_include()
124136
if packages:
125137
poetry_content["packages"].append(packages)
@@ -164,13 +176,10 @@ def _create_default(self, path: "Path", src: bool = True) -> None:
164176
package_init = package_path / "__init__.py"
165177
package_init.touch()
166178

167-
def _create_readme(self, path: "Path") -> None:
168-
if self._readme_format == "rst":
169-
readme_file = path / "README.rst"
170-
else:
171-
readme_file = path / "README.md"
172-
179+
def _create_readme(self, path: "Path") -> "Path":
180+
readme_file = path.joinpath("README.{}".format(self._readme_format))
173181
readme_file.touch()
182+
return readme_file
174183

175184
@staticmethod
176185
def _create_tests(path: "Path") -> None:

tests/console/commands/test_init.py

+22
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@ def init_basic_toml():
6666
description = "This is a description"
6767
authors = ["Your Name <[email protected]>"]
6868
license = "MIT"
69+
readme = "README.md"
6970
packages = [{include = "my_package"}]
7071
7172
[tool.poetry.dependencies]
@@ -113,6 +114,7 @@ def test_interactive_with_dependencies(tester, repo):
113114
description = "This is a description"
114115
authors = ["Your Name <[email protected]>"]
115116
license = "MIT"
117+
readme = "README.md"
116118
packages = [{include = "my_package"}]
117119
118120
[tool.poetry.dependencies]
@@ -146,6 +148,7 @@ def test_empty_license(tester):
146148
version = "1.2.3"
147149
description = ""
148150
authors = ["Your Name <[email protected]>"]
151+
readme = "README.md"
149152
packages = [{{include = "my_package"}}]
150153
151154
[tool.poetry.dependencies]
@@ -188,6 +191,7 @@ def test_interactive_with_git_dependencies(tester, repo):
188191
description = "This is a description"
189192
authors = ["Your Name <[email protected]>"]
190193
license = "MIT"
194+
readme = "README.md"
191195
packages = [{include = "my_package"}]
192196
193197
[tool.poetry.dependencies]
@@ -231,6 +235,7 @@ def test_interactive_with_git_dependencies_with_reference(tester, repo):
231235
description = "This is a description"
232236
authors = ["Your Name <[email protected]>"]
233237
license = "MIT"
238+
readme = "README.md"
234239
packages = [{include = "my_package"}]
235240
236241
[tool.poetry.dependencies]
@@ -274,6 +279,7 @@ def test_interactive_with_git_dependencies_and_other_name(tester, repo):
274279
description = "This is a description"
275280
authors = ["Your Name <[email protected]>"]
276281
license = "MIT"
282+
readme = "README.md"
277283
packages = [{include = "my_package"}]
278284
279285
[tool.poetry.dependencies]
@@ -320,6 +326,7 @@ def test_interactive_with_directory_dependency(tester, repo, source_dir, fixture
320326
description = "This is a description"
321327
authors = ["Your Name <[email protected]>"]
322328
license = "MIT"
329+
readme = "README.md"
323330
packages = [{include = "my_package"}]
324331
325332
[tool.poetry.dependencies]
@@ -367,6 +374,7 @@ def test_interactive_with_directory_dependency_and_other_name(
367374
description = "This is a description"
368375
authors = ["Your Name <[email protected]>"]
369376
license = "MIT"
377+
readme = "README.md"
370378
packages = [{include = "my_package"}]
371379
372380
[tool.poetry.dependencies]
@@ -413,6 +421,7 @@ def test_interactive_with_file_dependency(tester, repo, source_dir, fixture_dir)
413421
description = "This is a description"
414422
authors = ["Your Name <[email protected]>"]
415423
license = "MIT"
424+
readme = "README.md"
416425
packages = [{include = "my_package"}]
417426
418427
[tool.poetry.dependencies]
@@ -446,6 +455,8 @@ def test_python_option(tester):
446455
description = "This is a description"
447456
authors = ["Your Name <[email protected]>"]
448457
license = "MIT"
458+
readme = "README.md"
459+
packages = [{include = "my_package"}]
449460
450461
[tool.poetry.dependencies]
451462
python = "~2.7 || ^3.6"
@@ -479,6 +490,7 @@ def test_predefined_dependency(tester, repo):
479490
description = "This is a description"
480491
authors = ["Your Name <[email protected]>"]
481492
license = "MIT"
493+
readme = "README.md"
482494
packages = [{include = "my_package"}]
483495
484496
[tool.poetry.dependencies]
@@ -520,6 +532,8 @@ def test_predefined_and_interactive_dependencies(tester, repo):
520532
description = "This is a description"
521533
authors = ["Your Name <[email protected]>"]
522534
license = "MIT"
535+
readme = "README.md"
536+
packages = [{include = "my_package"}]
523537
524538
[tool.poetry.dependencies]
525539
python = "~2.7 || ^3.6"
@@ -554,6 +568,8 @@ def test_predefined_dev_dependency(tester, repo):
554568
description = "This is a description"
555569
authors = ["Your Name <[email protected]>"]
556570
license = "MIT"
571+
readme = "README.md"
572+
packages = [{include = "my_package"}]
557573
558574
[tool.poetry.dependencies]
559575
python = "~2.7 || ^3.6"
@@ -594,11 +610,15 @@ def test_predefined_and_interactive_dev_dependencies(tester, repo):
594610
description = "This is a description"
595611
authors = ["Your Name <[email protected]>"]
596612
license = "MIT"
613+
readme = "README.md"
614+
packages = [{include = "my_package"}]
597615
598616
[tool.poetry.dependencies]
599617
python = "~2.7 || ^3.6"
600618
601619
[tool.poetry.dev-dependencies]
620+
pytest = "^3.6.0"
621+
pytest-requests = "^0.2.0"
602622
"""
603623

604624
output = tester.io.fetch_output()
@@ -657,6 +677,8 @@ def test_init_non_interactive_existing_pyproject_add_dependency(
657677
version = "0.1.0"
658678
description = ""
659679
authors = ["Your Name <[email protected]>"]
680+
readme = "README.md"
681+
packages = [{include = "my_package"}]
660682
661683
[tool.poetry.dependencies]
662684
python = "^3.6"

0 commit comments

Comments
 (0)