Skip to content

Commit 0cf674a

Browse files
committed
Add option to fallback to Poetry 1.x style pyproject.toml
1 parent b554c1b commit 0cf674a

2 files changed

Lines changed: 51 additions & 0 deletions

File tree

modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PythonClientCodegen.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ public class PythonClientCodegen extends AbstractPythonCodegen implements Codege
4747
public static final String DATETIME_FORMAT = "datetimeFormat";
4848
public static final String DATE_FORMAT = "dateFormat";
4949
public static final String SET_ENSURE_ASCII_TO_FALSE = "setEnsureAsciiToFalse";
50+
public static final String POETRY1_FALLBACK = "poetry1";
5051

5152
@Setter protected String packageUrl;
5253
protected String apiDocPath = "docs/";
@@ -149,6 +150,7 @@ public PythonClientCodegen() {
149150
cliOptions.add(new CliOption(DATE_FORMAT, "date format for query parameters")
150151
.defaultValue("%Y-%m-%d"));
151152
cliOptions.add(new CliOption(CodegenConstants.USE_ONEOF_DISCRIMINATOR_LOOKUP, CodegenConstants.USE_ONEOF_DISCRIMINATOR_LOOKUP_DESC).defaultValue("false"));
153+
cliOptions.add(new CliOption(POETRY1_FALLBACK, "Fallback to formatting pyproject.toml to Poetry 1.x format."));
152154

153155
supportedLibraries.put("urllib3", "urllib3-based client");
154156
supportedLibraries.put("asyncio", "asyncio-based client");

modules/openapi-generator/src/main/resources/python/pyproject.mustache

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,54 @@
1+
{{#poetry1}}
2+
[tool.poetry]
3+
{{/poetry1}}
4+
{{^poetry1}}
15
[project]
6+
{{/poetry1}}
27
name = "{{{packageName}}}"
38
version = "{{{packageVersion}}}"
49
description = "{{{appName}}}"
10+
{{#poetry1}}
11+
authors = ["{{infoName}}{{^infoName}}OpenAPI Generator Community{{/infoName}} <{{infoEmail}}{{^infoEmail}}team@openapitools.org{{/infoEmail}}>"]
12+
{{/poetry1}}
13+
{{^poetry1}}
514
authors = [
615
{name = "{{infoName}}{{^infoName}}OpenAPI Generator Community{{/infoName}}",email = "{{infoEmail}}{{^infoEmail}}team@openapitools.org{{/infoEmail}}"},
716
]
17+
{{/poetry1}}
818
license = "{{{licenseInfo}}}{{^licenseInfo}}NoLicense{{/licenseInfo}}"
919
readme = "README.md"
20+
{{#poetry1}}
21+
repository = "https://{{{gitHost}}}/{{{gitUserId}}}/{{{gitRepoId}}}"
22+
{{/poetry1}}
23+
{{^poetry1}}
24+
25+
[project.urls]
26+
Repository = "https://{{{gitHost}}}/{{{gitUserId}}}/{{{gitRepoId}}}"
27+
28+
{{/poetry1}}
1029
keywords = ["OpenAPI", "OpenAPI-Generator", "{{{appName}}}"]
30+
{{#poetry1}}
31+
include = ["{{packageName}}/py.typed"]
32+
33+
[tool.poetry.dependencies]
34+
python = "^3.9"
35+
urllib3 = ">= 2.1.0, < 3.0.0"
36+
python-dateutil = ">= 2.8.2"
37+
{{#asyncio}}
38+
aiohttp = ">= 3.8.4"
39+
aiohttp-retry = ">= 2.8.3"
40+
{{/asyncio}}
41+
{{#tornado}}
42+
tornado = ">=4.2, <5"
43+
{{/tornado}}
44+
{{#hasHttpSignatureMethods}}
45+
pem = ">= 19.3.0"
46+
pycryptodome = ">= 3.9.0"
47+
{{/hasHttpSignatureMethods}}
48+
pydantic = ">= 2"
49+
typing-extensions = ">= 4.7.1"
50+
{{/poetry1}}
51+
{{^poetry1}}
1152
requires-python = "^3.9"
1253

1354
dependencies = [
@@ -27,11 +68,19 @@ dependencies = [
2768
"pydantic (>=2)",
2869
"typing-extensions (>=4.7.1)"
2970
]
71+
{{/poetry1}}
3072

73+
{{^poetry1}}
3174
[tool.poetry]
3275
requires-poetry = ">=2.0"
76+
{{/poetry1}}
3377

78+
{{#poetry1}}
79+
[tool.poetry.dev-dependencies]
80+
{{/poetry1}}
81+
{{^poetry1}}
3482
[tool.poetry.group.dev.dependencies]
83+
{{/poetry1}}
3584
pytest = ">= 7.2.1"
3685
pytest-cov = ">= 2.8.1"
3786
tox = ">= 3.9.0"

0 commit comments

Comments
 (0)