Remove unneeded code
This commit is contained in:
parent
93e9332474
commit
16f767de7e
51
publish.py
51
publish.py
@ -20,7 +20,7 @@ import tempfile
|
|||||||
import time
|
import time
|
||||||
from contextlib import contextmanager, suppress
|
from contextlib import contextmanager, suppress
|
||||||
from http.client import HTTPResponse, HTTPSConnection
|
from http.client import HTTPResponse, HTTPSConnection
|
||||||
from typing import IO, Any, Callable, Dict, Generator, Iterable, Optional, Tuple, Union, cast
|
from typing import Any, Callable, Dict, Generator, Iterable, Optional, Tuple, Union
|
||||||
from urllib.parse import urlencode, urlparse
|
from urllib.parse import urlencode, urlparse
|
||||||
|
|
||||||
os.chdir(os.path.dirname(os.path.abspath(__file__)))
|
os.chdir(os.path.dirname(os.path.abspath(__file__)))
|
||||||
@ -222,23 +222,7 @@ class ReadFileWithProgressReporting(io.FileIO): # {{{
|
|||||||
# }}}
|
# }}}
|
||||||
|
|
||||||
|
|
||||||
class Base: # {{{
|
class GitHub: # {{{
|
||||||
|
|
||||||
def info(self, *args: Any, **kwargs: Any) -> None:
|
|
||||||
print(*args, **kwargs)
|
|
||||||
sys.stdout.flush()
|
|
||||||
|
|
||||||
def warn(self, *args: Any, **kwargs: Any) -> None:
|
|
||||||
print('\n' + '_' * 20, 'WARNING', '_' * 20)
|
|
||||||
print(*args, **kwargs)
|
|
||||||
print('_' * 50)
|
|
||||||
sys.stdout.flush()
|
|
||||||
|
|
||||||
|
|
||||||
# }}}
|
|
||||||
|
|
||||||
|
|
||||||
class GitHub(Base): # {{{
|
|
||||||
|
|
||||||
API = 'https://api.github.com'
|
API = 'https://api.github.com'
|
||||||
|
|
||||||
@ -258,6 +242,12 @@ class GitHub(Base): # {{{
|
|||||||
self.auth = 'Basic ' + base64.standard_b64encode((self.username + ':' + self.password).encode()).decode()
|
self.auth = 'Basic ' + base64.standard_b64encode((self.username + ':' + self.password).encode()).decode()
|
||||||
self.url_base = f'{self.API}/repos/{self.username}/{self.reponame}/releases'
|
self.url_base = f'{self.API}/repos/{self.username}/{self.reponame}/releases'
|
||||||
|
|
||||||
|
def info(self, *args: Any) -> None:
|
||||||
|
print(*args, flush=True)
|
||||||
|
|
||||||
|
def error(self, *args: Any) -> None:
|
||||||
|
print(*args, flush=True, file=sys.stderr)
|
||||||
|
|
||||||
def make_request(
|
def make_request(
|
||||||
self, url: str, data: Optional[Dict[str, Any]] = None, method:str = 'GET',
|
self, url: str, data: Optional[Dict[str, Any]] = None, method:str = 'GET',
|
||||||
upload_data: Optional[ReadFileWithProgressReporting] = None,
|
upload_data: Optional[ReadFileWithProgressReporting] = None,
|
||||||
@ -294,7 +284,6 @@ class GitHub(Base): # {{{
|
|||||||
params: Optional[Dict[str, str]] = None,
|
params: Optional[Dict[str, str]] = None,
|
||||||
failure_callback: Callable[[HTTPResponse], None] = lambda r: None,
|
failure_callback: Callable[[HTTPResponse], None] = lambda r: None,
|
||||||
) -> Any:
|
) -> Any:
|
||||||
rdata: Optional[Union[Dict[str, str], io.FileIO]] = None
|
|
||||||
for i in range(num_tries):
|
for i in range(num_tries):
|
||||||
if upload_path:
|
if upload_path:
|
||||||
conn = self.make_request(url, method='POST', upload_data=ReadFileWithProgressReporting(upload_path), params=params)
|
conn = self.make_request(url, method='POST', upload_data=ReadFileWithProgressReporting(upload_path), params=params)
|
||||||
@ -304,19 +293,17 @@ class GitHub(Base): # {{{
|
|||||||
with contextlib.closing(conn):
|
with contextlib.closing(conn):
|
||||||
r = conn.getresponse()
|
r = conn.getresponse()
|
||||||
if r.status in success_codes:
|
if r.status in success_codes:
|
||||||
if return_data:
|
return json.loads(r.read()) if return_data else None
|
||||||
return json.loads(r.read())
|
|
||||||
return {}
|
|
||||||
if i == num_tries -1 :
|
if i == num_tries -1 :
|
||||||
self.fail(r, failure_msg)
|
self.fail(r, failure_msg)
|
||||||
else:
|
else:
|
||||||
self.print_failed_response_details(r, failure_msg)
|
self.print_failed_response_details(r, failure_msg)
|
||||||
failure_callback(r)
|
failure_callback(r)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print(failure_msg, 'with error:', e, file=sys.stderr)
|
self.error(failure_msg, 'with error:', e)
|
||||||
print(f'Retrying after {sleep_between_tries} seconds', file=sys.stderr)
|
self.error(f'Retrying after {sleep_between_tries} seconds')
|
||||||
time.sleep(sleep_between_tries)
|
time.sleep(sleep_between_tries)
|
||||||
return {}
|
return None
|
||||||
|
|
||||||
def patch(self, url: str, fail_msg: str, **data: str) -> None:
|
def patch(self, url: str, fail_msg: str, **data: str) -> None:
|
||||||
self.make_request_with_retries(url, data, method='PATCH', failure_msg=fail_msg)
|
self.make_request_with_retries(url, data, method='PATCH', failure_msg=fail_msg)
|
||||||
@ -354,8 +341,7 @@ class GitHub(Base): # {{{
|
|||||||
fname = fname.replace(version, 'nightly')
|
fname = fname.replace(version, 'nightly')
|
||||||
if fname in existing_assets:
|
if fname in existing_assets:
|
||||||
self.info(f'Deleting {fname} from GitHub with id: {existing_assets[fname]}')
|
self.info(f'Deleting {fname} from GitHub with id: {existing_assets[fname]}')
|
||||||
delete_asset(existing_assets[fname])
|
delete_asset(existing_assets.pop(fname))
|
||||||
del existing_assets[fname]
|
|
||||||
params = {'name': fname, 'label': desc}
|
params = {'name': fname, 'label': desc}
|
||||||
|
|
||||||
def handle_failure(r: HTTPResponse) -> None:
|
def handle_failure(r: HTTPResponse) -> None:
|
||||||
@ -379,8 +365,7 @@ class GitHub(Base): # {{{
|
|||||||
if self.is_nightly:
|
if self.is_nightly:
|
||||||
for fname in tuple(existing_assets):
|
for fname in tuple(existing_assets):
|
||||||
self.info(f'Deleting {fname} from GitHub with id: {existing_assets[fname]}')
|
self.info(f'Deleting {fname} from GitHub with id: {existing_assets[fname]}')
|
||||||
delete_asset(existing_assets[fname])
|
delete_asset(existing_assets.pop(fname))
|
||||||
del existing_assets[fname]
|
|
||||||
self.update_nightly_description(release['id'])
|
self.update_nightly_description(release['id'])
|
||||||
for path, desc in self.files.items():
|
for path, desc in self.files.items():
|
||||||
self.info('')
|
self.info('')
|
||||||
@ -388,22 +373,20 @@ class GitHub(Base): # {{{
|
|||||||
|
|
||||||
def clean_older_releases(self, releases: Iterable[Dict[str, Any]]) -> None:
|
def clean_older_releases(self, releases: Iterable[Dict[str, Any]]) -> None:
|
||||||
for release in releases:
|
for release in releases:
|
||||||
if release.get(
|
if release.get('assets') and release['tag_name'] != self.current_tag_name:
|
||||||
'assets',
|
|
||||||
None) and release['tag_name'] != self.current_tag_name:
|
|
||||||
self.info(f'\nDeleting old released installers from: {release["tag_name"]}')
|
self.info(f'\nDeleting old released installers from: {release["tag_name"]}')
|
||||||
for asset in release['assets']:
|
for asset in release['assets']:
|
||||||
self.delete_asset(
|
self.delete_asset(
|
||||||
f'{self.url_base}/assets/{asset["id"]}', asset['name'])
|
f'{self.url_base}/assets/{asset["id"]}', asset['name'])
|
||||||
|
|
||||||
def print_failed_response_details(self, r: HTTPResponse, msg: str) -> None:
|
def print_failed_response_details(self, r: HTTPResponse, msg: str) -> None:
|
||||||
print(msg, f'\nStatus Code: {r.status} {r.reason}', file=sys.stderr)
|
self.error(msg, f'\nStatus Code: {r.status} {r.reason}')
|
||||||
try:
|
try:
|
||||||
jr = json.loads(r.read())
|
jr = json.loads(r.read())
|
||||||
except Exception:
|
except Exception:
|
||||||
pass
|
pass
|
||||||
else:
|
else:
|
||||||
print('JSON from response:', file=sys.stderr)
|
self.error('JSON from response:')
|
||||||
pprint.pprint(jr, stream=sys.stderr)
|
pprint.pprint(jr, stream=sys.stderr)
|
||||||
|
|
||||||
def fail(self, r: HTTPResponse, msg: str) -> None:
|
def fail(self, r: HTTPResponse, msg: str) -> None:
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user