Skip to content

Commit 8a5d417

Browse files
committed
Fix mypy errors of publish.py
1 parent 7201e3f commit 8a5d417

1 file changed

Lines changed: 43 additions & 26 deletions

File tree

publish.py

100755100644
Lines changed: 43 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,18 @@
1+
from __future__ import annotations
2+
3+
import json
14
import os
25
import subprocess
6+
from typing import TYPE_CHECKING
7+
from urllib.request import urlopen
38

4-
import requests
9+
if TYPE_CHECKING:
10+
from collections.abc import KeysView
511

612
MVN_BASE_URL = "https://search.maven.org"
713

814

9-
def download_openapi_generator_jar(version):
15+
def download_openapi_generator_jar(version: str) -> None:
1016
download_url = (
1117
MVN_BASE_URL
1218
+ "/remotecontent?filepath=org/openapitools/openapi-generator-cli/"
@@ -19,54 +25,65 @@ def download_openapi_generator_jar(version):
1925
if os.path.exists("openapi-generator.jar"):
2026
os.remove("openapi-generator.jar")
2127

22-
if os.path.exists("version"):
23-
os.remove("version")
24-
2528
print(download_url)
26-
response = requests.get(download_url)
29+
response = urlopen(download_url)
30+
31+
if response.status != 200:
32+
raise RuntimeError(f"{response.status}: {download_url}")
33+
2734
print("Downloading complete")
2835

29-
with open(
30-
"openapi_generator_cli/openapi-generator.jar", "wb"
31-
) as openapi_generator_jar:
32-
openapi_generator_jar.write(response.content)
36+
with open("openapi_generator_cli/openapi-generator.jar", "wb") as openapi_generator_jar:
37+
openapi_generator_jar.write(response.read())
3338
openapi_generator_jar.close()
3439

35-
with open("version", "w") as version_file:
36-
version_file.write(version)
37-
version_file.close()
40+
updated_toml = (
41+
open("pyproject.toml")
42+
.read()
43+
.replace(
44+
'[tool.poetry]\nversion = "0"',
45+
f'[tool.poetry]\nversion = "{version}"',
46+
1,
47+
)
48+
)
49+
with open("pyproject.toml", "w") as toml:
50+
toml.write(updated_toml)
3851

3952

40-
def get_available_versions():
53+
def get_available_versions() -> list[str]:
4154
mvn_url = (
42-
MVN_BASE_URL
43-
+ "/solrsearch/select?q=g:org.openapitools+AND+a:openapi-generator-cli&core=gav"
55+
MVN_BASE_URL + "/solrsearch/select?q=g:org.openapitools+AND+a:openapi-generator-cli&core=gav"
4456
"&start=0&rows=200"
4557
)
46-
response = requests.get(mvn_url)
47-
docs = response.json()["response"]["docs"]
58+
response = urlopen(mvn_url)
59+
docs = json.loads(response.read())["response"]["docs"]
4860
return [doc["v"] for doc in docs]
4961

5062

51-
def get_published_vesions():
63+
def get_published_vesions() -> KeysView[str]:
5264
pypi_url = "https://pypi.org/pypi/openapi-generator-cli/json"
53-
response = requests.get(pypi_url)
65+
response = urlopen(pypi_url)
66+
67+
if response.status != 200:
68+
raise RuntimeError(f"{response.status}: {pypi_url}")
5469

55-
if response.status_code == 404:
56-
return []
70+
published_releases = json.loads(response.read()).get("releases")
71+
if not isinstance(published_releases, dict):
72+
raise TypeError(f"Expected dict, got {type(published_releases)}")
5773

58-
published_versions = response.json().get("releases").keys()
59-
return published_versions
74+
return published_releases.keys()
6075

6176

62-
def publish():
77+
def publish() -> None:
6378
latest_version = get_available_versions()[0]
6479
published_versions = get_published_vesions()
6580

6681
if latest_version not in published_versions:
6782
print("Publishing version " + latest_version)
6883
download_openapi_generator_jar(latest_version)
69-
subprocess.check_call("python setup.py upload", shell=True)
84+
subprocess.check_call("poetry build", shell=True)
85+
subprocess.check_call("poetry publish -r testpypi", shell=True)
86+
subprocess.check_call("poetry publish", shell=True)
7087

7188

7289
if __name__ == "__main__":

0 commit comments

Comments
 (0)