From 0fb887acde9d9bf989875fa1a4f98f52af788f2e Mon Sep 17 00:00:00 2001 From: omg-xtao Date: Sat, 24 Dec 2022 20:37:39 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=8E=A8=20format:=20code?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- compiler/errors/compiler.py | 29 ++- docs/conf.py | 10 +- mipac/_version.py | 480 ++++++++++++++++++++---------------- mipac/errors/base.py | 13 +- mipac/http.py | 2 +- 5 files changed, 298 insertions(+), 236 deletions(-) diff --git a/compiler/errors/compiler.py b/compiler/errors/compiler.py index 96df083..8a48c86 100644 --- a/compiler/errors/compiler.py +++ b/compiler/errors/compiler.py @@ -1,34 +1,37 @@ -pre = """from .base import APIError +pre = '''from .base import APIError -""" -template = """class %sError(APIError): +''' +template = '''class %sError(APIError): \"\"\" %s \"\"\" -""" +''' def error_name_to_hump(name: str) -> str: - return "".join([i.capitalize() for i in name.split("_")]) + return ''.join([i.capitalize() for i in name.split('_')]) def gen_errors_py_files(): - with open("errors.csv", "r", encoding="utf-8") as f: + with open('errors.csv', 'r', encoding='utf-8') as f: content = f.read() - content = content.split("\n")[1:] + content = content.split('\n')[1:] error_list = {} for i in content: if i: - i = i.split(",") + i = i.split(',') error_list[i[0]] = i[1] - all_content = [template % (error_name_to_hump(i), value) for i, value in error_list.items()] + all_content = [ + template % (error_name_to_hump(i), value) + for i, value in error_list.items() + ] - with open("../../mipac/errors/errors.py", "w", encoding="utf-8") as f: - f.write(pre + "\n\n".join(all_content)) + with open('../../mipac/errors/errors.py', 'w', encoding='utf-8') as f: + f.write(pre + '\n\n'.join(all_content)) -if __name__ == "__main__": +if __name__ == '__main__': gen_errors_py_files() - print("Done") + print('Done') diff --git a/docs/conf.py b/docs/conf.py index 2471722..1f83670 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -8,6 +8,7 @@ import os import sys + sys.path.insert(0, os.path.abspath('../')) project = 'MiPAC' @@ -19,13 +20,18 @@ sys.path.append(os.path.abspath('extensions')) # -- General configuration --------------------------------------------------- # https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration -extensions = ['sphinx.ext.autodoc', 'sphinx.ext.napoleon', 'sphinxcontrib_trio', 'sphinx.ext.autosummary', 'sphinx.ext.todo'] +extensions = [ + 'sphinx.ext.autodoc', + 'sphinx.ext.napoleon', + 'sphinxcontrib_trio', + 'sphinx.ext.autosummary', + 'sphinx.ext.todo', +] templates_path = ['_templates'] exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store'] - # -- Options for HTML output ------------------------------------------------- # https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output diff --git a/mipac/_version.py b/mipac/_version.py index 064a843..d704497 100644 --- a/mipac/_version.py +++ b/mipac/_version.py @@ -1,4 +1,3 @@ - # This file helps to compute a version number in source trees obtained from # git-archive tarball (such as those provided by githubs download-from-tag # feature). Distribution tarballs (built by setup.py sdist) and build @@ -26,10 +25,10 @@ def get_keywords(): # setup.py/versioneer.py will grep for the variable names, so they must # each be defined on a line of their own. _version.py will just call # get_keywords(). - git_refnames = "$Format:%d$" - git_full = "$Format:%H$" - git_date = "$Format:%ci$" - keywords = {"refnames": git_refnames, "full": git_full, "date": git_date} + git_refnames = '$Format:%d$' + git_full = '$Format:%H$' + git_date = '$Format:%ci$' + keywords = {'refnames': git_refnames, 'full': git_full, 'date': git_date} return keywords @@ -42,11 +41,11 @@ def get_config(): # these strings are filled in when 'setup.py versioneer' creates # _version.py cfg = VersioneerConfig() - cfg.VCS = "git" - cfg.style = "pep440" - cfg.tag_prefix = "" - cfg.parentdir_prefix = "" - cfg.versionfile_source = "mipac/_version.py" + cfg.VCS = 'git' + cfg.style = 'pep440' + cfg.tag_prefix = '' + cfg.parentdir_prefix = '' + cfg.versionfile_source = 'mipac/_version.py' cfg.verbose = False return cfg @@ -61,54 +60,61 @@ HANDLERS: Dict[str, Dict[str, Callable]] = {} def register_vcs_handler(vcs, method): # decorator """Create decorator to mark a method as the handler of a VCS.""" + def decorate(f): """Store f in HANDLERS[vcs][method].""" if vcs not in HANDLERS: HANDLERS[vcs] = {} HANDLERS[vcs][method] = f return f + return decorate -def run_command(commands, args, cwd=None, verbose=False, hide_stderr=False, - env=None): +def run_command( + commands, args, cwd=None, verbose=False, hide_stderr=False, env=None +): """Call the given command(s).""" assert isinstance(commands, list) process = None popen_kwargs = {} - if sys.platform == "win32": + if sys.platform == 'win32': # This hides the console window if pythonw.exe is used startupinfo = subprocess.STARTUPINFO() startupinfo.dwFlags |= subprocess.STARTF_USESHOWWINDOW - popen_kwargs["startupinfo"] = startupinfo + popen_kwargs['startupinfo'] = startupinfo for command in commands: try: dispcmd = str([command] + args) # remember shell=False, so use git.cmd on windows, not just git - process = subprocess.Popen([command] + args, cwd=cwd, env=env, - stdout=subprocess.PIPE, - stderr=(subprocess.PIPE if hide_stderr - else None), **popen_kwargs) + process = subprocess.Popen( + [command] + args, + cwd=cwd, + env=env, + stdout=subprocess.PIPE, + stderr=(subprocess.PIPE if hide_stderr else None), + **popen_kwargs, + ) break except OSError: e = sys.exc_info()[1] if e.errno == errno.ENOENT: continue if verbose: - print("unable to run %s" % dispcmd) + print('unable to run %s' % dispcmd) print(e) return None, None else: if verbose: - print("unable to find command, tried %s" % (commands,)) + print('unable to find command, tried %s' % (commands,)) return None, None stdout = process.communicate()[0].strip().decode() if process.returncode != 0: if verbose: - print("unable to run %s (error)" % dispcmd) - print("stdout was %s" % stdout) + print('unable to run %s (error)' % dispcmd) + print('stdout was %s' % stdout) return None, process.returncode return stdout, process.returncode @@ -125,19 +131,25 @@ def versions_from_parentdir(parentdir_prefix, root, verbose): for _ in range(3): dirname = os.path.basename(root) if dirname.startswith(parentdir_prefix): - return {"version": dirname[len(parentdir_prefix):], - "full-revisionid": None, - "dirty": False, "error": None, "date": None} + return { + 'version': dirname[len(parentdir_prefix) :], + 'full-revisionid': None, + 'dirty': False, + 'error': None, + 'date': None, + } rootdirs.append(root) root = os.path.dirname(root) # up a level if verbose: - print("Tried directories %s but none started with prefix %s" % - (str(rootdirs), parentdir_prefix)) + print( + 'Tried directories %s but none started with prefix %s' + % (str(rootdirs), parentdir_prefix) + ) raise NotThisMethod("rootdir doesn't start with parentdir_prefix") -@register_vcs_handler("git", "get_keywords") +@register_vcs_handler('git', 'get_keywords') def git_get_keywords(versionfile_abs): """Extract version information from the given file.""" # the code embedded in _version.py can just fetch the value of these @@ -146,31 +158,31 @@ def git_get_keywords(versionfile_abs): # _version.py. keywords = {} try: - with open(versionfile_abs, "r") as fobj: + with open(versionfile_abs, 'r') as fobj: for line in fobj: - if line.strip().startswith("git_refnames ="): + if line.strip().startswith('git_refnames ='): mo = re.search(r'=\s*"(.*)"', line) if mo: - keywords["refnames"] = mo.group(1) - if line.strip().startswith("git_full ="): + keywords['refnames'] = mo.group(1) + if line.strip().startswith('git_full ='): mo = re.search(r'=\s*"(.*)"', line) if mo: - keywords["full"] = mo.group(1) - if line.strip().startswith("git_date ="): + keywords['full'] = mo.group(1) + if line.strip().startswith('git_date ='): mo = re.search(r'=\s*"(.*)"', line) if mo: - keywords["date"] = mo.group(1) + keywords['date'] = mo.group(1) except OSError: pass return keywords -@register_vcs_handler("git", "keywords") +@register_vcs_handler('git', 'keywords') def git_versions_from_keywords(keywords, tag_prefix, verbose): """Get version information from git keywords.""" - if "refnames" not in keywords: - raise NotThisMethod("Short version file found") - date = keywords.get("date") + if 'refnames' not in keywords: + raise NotThisMethod('Short version file found') + date = keywords.get('date') if date is not None: # Use only the last line. Previous lines may contain GPG signature # information. @@ -182,17 +194,17 @@ def git_versions_from_keywords(keywords, tag_prefix, verbose): # it's been around since git-1.5.3, and it's too difficult to # discover which version we're using, or to work around using an # older one. - date = date.strip().replace(" ", "T", 1).replace(" ", "", 1) - refnames = keywords["refnames"].strip() - if refnames.startswith("$Format"): + date = date.strip().replace(' ', 'T', 1).replace(' ', '', 1) + refnames = keywords['refnames'].strip() + if refnames.startswith('$Format'): if verbose: - print("keywords are unexpanded, not using") - raise NotThisMethod("unexpanded keywords, not a git-archive tarball") - refs = {r.strip() for r in refnames.strip("()").split(",")} + print('keywords are unexpanded, not using') + raise NotThisMethod('unexpanded keywords, not a git-archive tarball') + refs = {r.strip() for r in refnames.strip('()').split(',')} # starting in git-1.8.3, tags are listed as "tag: foo-1.0" instead of # just "foo-1.0". If we see a "tag: " prefix, prefer those. - TAG = "tag: " - tags = {r[len(TAG):] for r in refs if r.startswith(TAG)} + TAG = 'tag: ' + tags = {r[len(TAG) :] for r in refs if r.startswith(TAG)} if not tags: # Either we're using git < 1.8.3, or there really are no tags. We use # a heuristic: assume all version tags have a digit. The old git %d @@ -203,33 +215,40 @@ def git_versions_from_keywords(keywords, tag_prefix, verbose): # "stabilization", as well as "HEAD" and "master". tags = {r for r in refs if re.search(r'\d', r)} if verbose: - print("discarding '%s', no digits" % ",".join(refs - tags)) + print("discarding '%s', no digits" % ','.join(refs - tags)) if verbose: - print("likely tags: %s" % ",".join(sorted(tags))) + print('likely tags: %s' % ','.join(sorted(tags))) for ref in sorted(tags): # sorting will prefer e.g. "2.0" over "2.0rc1" if ref.startswith(tag_prefix): - r = ref[len(tag_prefix):] + r = ref[len(tag_prefix) :] # Filter out refs that exactly match prefix or that don't start # with a number once the prefix is stripped (mostly a concern # when prefix is '') if not re.match(r'\d', r): continue if verbose: - print("picking %s" % r) - return {"version": r, - "full-revisionid": keywords["full"].strip(), - "dirty": False, "error": None, - "date": date} + print('picking %s' % r) + return { + 'version': r, + 'full-revisionid': keywords['full'].strip(), + 'dirty': False, + 'error': None, + 'date': date, + } # no suitable tags, so version is "0+unknown", but full hex is still there if verbose: - print("no suitable tags, using unknown + full revision id") - return {"version": "0+unknown", - "full-revisionid": keywords["full"].strip(), - "dirty": False, "error": "no suitable tags", "date": None} + print('no suitable tags, using unknown + full revision id') + return { + 'version': '0+unknown', + 'full-revisionid': keywords['full'].strip(), + 'dirty': False, + 'error': 'no suitable tags', + 'date': None, + } -@register_vcs_handler("git", "pieces_from_vcs") +@register_vcs_handler('git', 'pieces_from_vcs') def git_pieces_from_vcs(tag_prefix, root, verbose, runner=run_command): """Get version from 'git describe' in the root of the source tree. @@ -237,96 +256,108 @@ def git_pieces_from_vcs(tag_prefix, root, verbose, runner=run_command): expanded, and _version.py hasn't already been rewritten with a short version string, meaning we're inside a checked out source tree. """ - GITS = ["git"] - if sys.platform == "win32": - GITS = ["git.cmd", "git.exe"] + GITS = ['git'] + if sys.platform == 'win32': + GITS = ['git.cmd', 'git.exe'] # GIT_DIR can interfere with correct operation of Versioneer. # It may be intended to be passed to the Versioneer-versioned project, # but that should not change where we get our version from. env = os.environ.copy() - env.pop("GIT_DIR", None) + env.pop('GIT_DIR', None) runner = functools.partial(runner, env=env) - _, rc = runner(GITS, ["rev-parse", "--git-dir"], cwd=root, - hide_stderr=not verbose) + _, rc = runner( + GITS, ['rev-parse', '--git-dir'], cwd=root, hide_stderr=not verbose + ) if rc != 0: if verbose: - print("Directory %s not under git control" % root) + print('Directory %s not under git control' % root) raise NotThisMethod("'git rev-parse --git-dir' returned error") # if there is a tag matching tag_prefix, this yields TAG-NUM-gHEX[-dirty] # if there isn't one, this yields HEX[-dirty] (no NUM) - describe_out, rc = runner(GITS, [ - "describe", "--tags", "--dirty", "--always", "--long", - "--match", f"{tag_prefix}[[:digit:]]*" - ], cwd=root) + describe_out, rc = runner( + GITS, + [ + 'describe', + '--tags', + '--dirty', + '--always', + '--long', + '--match', + f'{tag_prefix}[[:digit:]]*', + ], + cwd=root, + ) # --long was added in git-1.5.5 if describe_out is None: raise NotThisMethod("'git describe' failed") describe_out = describe_out.strip() - full_out, rc = runner(GITS, ["rev-parse", "HEAD"], cwd=root) + full_out, rc = runner(GITS, ['rev-parse', 'HEAD'], cwd=root) if full_out is None: raise NotThisMethod("'git rev-parse' failed") full_out = full_out.strip() pieces = {} - pieces["long"] = full_out - pieces["short"] = full_out[:7] # maybe improved later - pieces["error"] = None + pieces['long'] = full_out + pieces['short'] = full_out[:7] # maybe improved later + pieces['error'] = None - branch_name, rc = runner(GITS, ["rev-parse", "--abbrev-ref", "HEAD"], - cwd=root) + branch_name, rc = runner( + GITS, ['rev-parse', '--abbrev-ref', 'HEAD'], cwd=root + ) # --abbrev-ref was added in git-1.6.3 if rc != 0 or branch_name is None: raise NotThisMethod("'git rev-parse --abbrev-ref' returned error") branch_name = branch_name.strip() - if branch_name == "HEAD": + if branch_name == 'HEAD': # If we aren't exactly on a branch, pick a branch which represents # the current commit. If all else fails, we are on a branchless # commit. - branches, rc = runner(GITS, ["branch", "--contains"], cwd=root) + branches, rc = runner(GITS, ['branch', '--contains'], cwd=root) # --contains was added in git-1.5.4 if rc != 0 or branches is None: raise NotThisMethod("'git branch --contains' returned error") - branches = branches.split("\n") + branches = branches.split('\n') # Remove the first line if we're running detached - if "(" in branches[0]: + if '(' in branches[0]: branches.pop(0) # Strip off the leading "* " from the list of branches. branches = [branch[2:] for branch in branches] - if "master" in branches: - branch_name = "master" + if 'master' in branches: + branch_name = 'master' elif not branches: branch_name = None else: # Pick the first branch that is returned. Good or bad. branch_name = branches[0] - pieces["branch"] = branch_name + pieces['branch'] = branch_name # parse describe_out. It will be like TAG-NUM-gHEX[-dirty] or HEX[-dirty] # TAG might have hyphens. git_describe = describe_out # look for -dirty suffix - dirty = git_describe.endswith("-dirty") - pieces["dirty"] = dirty + dirty = git_describe.endswith('-dirty') + pieces['dirty'] = dirty if dirty: - git_describe = git_describe[:git_describe.rindex("-dirty")] + git_describe = git_describe[: git_describe.rindex('-dirty')] # now we have TAG-NUM-gHEX or HEX - if "-" in git_describe: + if '-' in git_describe: # TAG-NUM-gHEX mo = re.search(r'^(.+)-(\d+)-g([0-9a-f]+)$', git_describe) if not mo: # unparsable. Maybe git-describe is misbehaving? - pieces["error"] = ("unable to parse git-describe output: '%s'" - % describe_out) + pieces['error'] = ( + "unable to parse git-describe output: '%s'" % describe_out + ) return pieces # tag @@ -335,38 +366,42 @@ def git_pieces_from_vcs(tag_prefix, root, verbose, runner=run_command): if verbose: fmt = "tag '%s' doesn't start with prefix '%s'" print(fmt % (full_tag, tag_prefix)) - pieces["error"] = ("tag '%s' doesn't start with prefix '%s'" - % (full_tag, tag_prefix)) + pieces['error'] = "tag '%s' doesn't start with prefix '%s'" % ( + full_tag, + tag_prefix, + ) return pieces - pieces["closest-tag"] = full_tag[len(tag_prefix):] + pieces['closest-tag'] = full_tag[len(tag_prefix) :] # distance: number of commits since tag - pieces["distance"] = int(mo.group(2)) + pieces['distance'] = int(mo.group(2)) # commit: short hex revision ID - pieces["short"] = mo.group(3) + pieces['short'] = mo.group(3) else: # HEX: no tags - pieces["closest-tag"] = None - out, rc = runner(GITS, ["rev-list", "HEAD", "--left-right"], cwd=root) - pieces["distance"] = len(out.split()) # total number of commits + pieces['closest-tag'] = None + out, rc = runner(GITS, ['rev-list', 'HEAD', '--left-right'], cwd=root) + pieces['distance'] = len(out.split()) # total number of commits # commit date: see ISO-8601 comment in git_versions_from_keywords() - date = runner(GITS, ["show", "-s", "--format=%ci", "HEAD"], cwd=root)[0].strip() + date = runner(GITS, ['show', '-s', '--format=%ci', 'HEAD'], cwd=root)[ + 0 + ].strip() # Use only the last line. Previous lines may contain GPG signature # information. date = date.splitlines()[-1] - pieces["date"] = date.strip().replace(" ", "T", 1).replace(" ", "", 1) + pieces['date'] = date.strip().replace(' ', 'T', 1).replace(' ', '', 1) return pieces def plus_or_dot(pieces): """Return a + if we don't already have one, else return a .""" - if "+" in pieces.get("closest-tag", ""): - return "." - return "+" + if '+' in pieces.get('closest-tag', ''): + return '.' + return '+' def render_pep440(pieces): @@ -378,19 +413,18 @@ def render_pep440(pieces): Exceptions: 1: no tags. git_describe was just HEX. 0+untagged.DISTANCE.gHEX[.dirty] """ - if pieces["closest-tag"]: - rendered = pieces["closest-tag"] - if pieces["distance"] or pieces["dirty"]: + if pieces['closest-tag']: + rendered = pieces['closest-tag'] + if pieces['distance'] or pieces['dirty']: rendered += plus_or_dot(pieces) - rendered += "%d.g%s" % (pieces["distance"], pieces["short"]) - if pieces["dirty"]: - rendered += ".dirty" + rendered += '%d.g%s' % (pieces['distance'], pieces['short']) + if pieces['dirty']: + rendered += '.dirty' else: # exception #1 - rendered = "0+untagged.%d.g%s" % (pieces["distance"], - pieces["short"]) - if pieces["dirty"]: - rendered += ".dirty" + rendered = '0+untagged.%d.g%s' % (pieces['distance'], pieces['short']) + if pieces['dirty']: + rendered += '.dirty' return rendered @@ -403,24 +437,23 @@ def render_pep440_branch(pieces): Exceptions: 1: no tags. 0[.dev0]+untagged.DISTANCE.gHEX[.dirty] """ - if pieces["closest-tag"]: - rendered = pieces["closest-tag"] - if pieces["distance"] or pieces["dirty"]: - if pieces["branch"] != "master": - rendered += ".dev0" + if pieces['closest-tag']: + rendered = pieces['closest-tag'] + if pieces['distance'] or pieces['dirty']: + if pieces['branch'] != 'master': + rendered += '.dev0' rendered += plus_or_dot(pieces) - rendered += "%d.g%s" % (pieces["distance"], pieces["short"]) - if pieces["dirty"]: - rendered += ".dirty" + rendered += '%d.g%s' % (pieces['distance'], pieces['short']) + if pieces['dirty']: + rendered += '.dirty' else: # exception #1 - rendered = "0" - if pieces["branch"] != "master": - rendered += ".dev0" - rendered += "+untagged.%d.g%s" % (pieces["distance"], - pieces["short"]) - if pieces["dirty"]: - rendered += ".dirty" + rendered = '0' + if pieces['branch'] != 'master': + rendered += '.dev0' + rendered += '+untagged.%d.g%s' % (pieces['distance'], pieces['short']) + if pieces['dirty']: + rendered += '.dirty' return rendered @@ -430,7 +463,7 @@ def pep440_split_post(ver): Returns the release segments before the post-release and the post-release version number (or -1 if no post-release segment is present). """ - vc = str.split(ver, ".post") + vc = str.split(ver, '.post') return vc[0], int(vc[1] or 0) if len(vc) == 2 else None @@ -440,21 +473,26 @@ def render_pep440_pre(pieces): Exceptions: 1: no tags. 0.post0.devDISTANCE """ - if pieces["closest-tag"]: - if pieces["distance"]: + if pieces['closest-tag']: + if pieces['distance']: # update the post release segment - tag_version, post_version = pep440_split_post(pieces["closest-tag"]) + tag_version, post_version = pep440_split_post( + pieces['closest-tag'] + ) rendered = tag_version if post_version is not None: - rendered += ".post%d.dev%d" % (post_version + 1, pieces["distance"]) + rendered += '.post%d.dev%d' % ( + post_version + 1, + pieces['distance'], + ) else: - rendered += ".post0.dev%d" % (pieces["distance"]) + rendered += '.post0.dev%d' % (pieces['distance']) else: # no commits, use the tag as the version - rendered = pieces["closest-tag"] + rendered = pieces['closest-tag'] else: # exception #1 - rendered = "0.post0.dev%d" % pieces["distance"] + rendered = '0.post0.dev%d' % pieces['distance'] return rendered @@ -468,20 +506,20 @@ def render_pep440_post(pieces): Exceptions: 1: no tags. 0.postDISTANCE[.dev0] """ - if pieces["closest-tag"]: - rendered = pieces["closest-tag"] - if pieces["distance"] or pieces["dirty"]: - rendered += ".post%d" % pieces["distance"] - if pieces["dirty"]: - rendered += ".dev0" + if pieces['closest-tag']: + rendered = pieces['closest-tag'] + if pieces['distance'] or pieces['dirty']: + rendered += '.post%d' % pieces['distance'] + if pieces['dirty']: + rendered += '.dev0' rendered += plus_or_dot(pieces) - rendered += "g%s" % pieces["short"] + rendered += 'g%s' % pieces['short'] else: # exception #1 - rendered = "0.post%d" % pieces["distance"] - if pieces["dirty"]: - rendered += ".dev0" - rendered += "+g%s" % pieces["short"] + rendered = '0.post%d' % pieces['distance'] + if pieces['dirty']: + rendered += '.dev0' + rendered += '+g%s' % pieces['short'] return rendered @@ -493,24 +531,24 @@ def render_pep440_post_branch(pieces): Exceptions: 1: no tags. 0.postDISTANCE[.dev0]+gHEX[.dirty] """ - if pieces["closest-tag"]: - rendered = pieces["closest-tag"] - if pieces["distance"] or pieces["dirty"]: - rendered += ".post%d" % pieces["distance"] - if pieces["branch"] != "master": - rendered += ".dev0" + if pieces['closest-tag']: + rendered = pieces['closest-tag'] + if pieces['distance'] or pieces['dirty']: + rendered += '.post%d' % pieces['distance'] + if pieces['branch'] != 'master': + rendered += '.dev0' rendered += plus_or_dot(pieces) - rendered += "g%s" % pieces["short"] - if pieces["dirty"]: - rendered += ".dirty" + rendered += 'g%s' % pieces['short'] + if pieces['dirty']: + rendered += '.dirty' else: # exception #1 - rendered = "0.post%d" % pieces["distance"] - if pieces["branch"] != "master": - rendered += ".dev0" - rendered += "+g%s" % pieces["short"] - if pieces["dirty"]: - rendered += ".dirty" + rendered = '0.post%d' % pieces['distance'] + if pieces['branch'] != 'master': + rendered += '.dev0' + rendered += '+g%s' % pieces['short'] + if pieces['dirty']: + rendered += '.dirty' return rendered @@ -522,17 +560,17 @@ def render_pep440_old(pieces): Exceptions: 1: no tags. 0.postDISTANCE[.dev0] """ - if pieces["closest-tag"]: - rendered = pieces["closest-tag"] - if pieces["distance"] or pieces["dirty"]: - rendered += ".post%d" % pieces["distance"] - if pieces["dirty"]: - rendered += ".dev0" + if pieces['closest-tag']: + rendered = pieces['closest-tag'] + if pieces['distance'] or pieces['dirty']: + rendered += '.post%d' % pieces['distance'] + if pieces['dirty']: + rendered += '.dev0' else: # exception #1 - rendered = "0.post%d" % pieces["distance"] - if pieces["dirty"]: - rendered += ".dev0" + rendered = '0.post%d' % pieces['distance'] + if pieces['dirty']: + rendered += '.dev0' return rendered @@ -544,15 +582,15 @@ def render_git_describe(pieces): Exceptions: 1: no tags. HEX[-dirty] (note: no 'g' prefix) """ - if pieces["closest-tag"]: - rendered = pieces["closest-tag"] - if pieces["distance"]: - rendered += "-%d-g%s" % (pieces["distance"], pieces["short"]) + if pieces['closest-tag']: + rendered = pieces['closest-tag'] + if pieces['distance']: + rendered += '-%d-g%s' % (pieces['distance'], pieces['short']) else: # exception #1 - rendered = pieces["short"] - if pieces["dirty"]: - rendered += "-dirty" + rendered = pieces['short'] + if pieces['dirty']: + rendered += '-dirty' return rendered @@ -565,51 +603,57 @@ def render_git_describe_long(pieces): Exceptions: 1: no tags. HEX[-dirty] (note: no 'g' prefix) """ - if pieces["closest-tag"]: - rendered = pieces["closest-tag"] - rendered += "-%d-g%s" % (pieces["distance"], pieces["short"]) + if pieces['closest-tag']: + rendered = pieces['closest-tag'] + rendered += '-%d-g%s' % (pieces['distance'], pieces['short']) else: # exception #1 - rendered = pieces["short"] - if pieces["dirty"]: - rendered += "-dirty" + rendered = pieces['short'] + if pieces['dirty']: + rendered += '-dirty' return rendered def render(pieces, style): """Render the given version pieces into the requested style.""" - if pieces["error"]: - return {"version": "unknown", - "full-revisionid": pieces.get("long"), - "dirty": None, - "error": pieces["error"], - "date": None} - - if not style or style == "default": - style = "pep440" # the default - - if style == "pep440": + if pieces['error']: + return { + 'version': 'unknown', + 'full-revisionid': pieces.get('long'), + 'dirty': None, + 'error': pieces['error'], + 'date': None, + } + + if not style or style == 'default': + style = 'pep440' # the default + + if style == 'pep440': rendered = render_pep440(pieces) - elif style == "pep440-branch": + elif style == 'pep440-branch': rendered = render_pep440_branch(pieces) - elif style == "pep440-pre": + elif style == 'pep440-pre': rendered = render_pep440_pre(pieces) - elif style == "pep440-post": + elif style == 'pep440-post': rendered = render_pep440_post(pieces) - elif style == "pep440-post-branch": + elif style == 'pep440-post-branch': rendered = render_pep440_post_branch(pieces) - elif style == "pep440-old": + elif style == 'pep440-old': rendered = render_pep440_old(pieces) - elif style == "git-describe": + elif style == 'git-describe': rendered = render_git_describe(pieces) - elif style == "git-describe-long": + elif style == 'git-describe-long': rendered = render_git_describe_long(pieces) else: raise ValueError("unknown style '%s'" % style) - return {"version": rendered, "full-revisionid": pieces["long"], - "dirty": pieces["dirty"], "error": None, - "date": pieces.get("date")} + return { + 'version': rendered, + 'full-revisionid': pieces['long'], + 'dirty': pieces['dirty'], + 'error': None, + 'date': pieces.get('date'), + } def get_versions(): @@ -623,8 +667,9 @@ def get_versions(): verbose = cfg.verbose try: - return git_versions_from_keywords(get_keywords(), cfg.tag_prefix, - verbose) + return git_versions_from_keywords( + get_keywords(), cfg.tag_prefix, verbose + ) except NotThisMethod: pass @@ -636,10 +681,13 @@ def get_versions(): for _ in cfg.versionfile_source.split('/'): root = os.path.dirname(root) except NameError: - return {"version": "0+unknown", "full-revisionid": None, - "dirty": None, - "error": "unable to find root of source tree", - "date": None} + return { + 'version': '0+unknown', + 'full-revisionid': None, + 'dirty': None, + 'error': 'unable to find root of source tree', + 'date': None, + } try: pieces = git_pieces_from_vcs(cfg.tag_prefix, root, verbose) @@ -653,6 +701,10 @@ def get_versions(): except NotThisMethod: pass - return {"version": "0+unknown", "full-revisionid": None, - "dirty": None, - "error": "unable to compute version", "date": None} + return { + 'version': '0+unknown', + 'full-revisionid': None, + 'dirty': None, + 'error': 'unable to compute version', + 'date': None, + } diff --git a/mipac/errors/base.py b/mipac/errors/base.py index 8fdae4a..9986ce9 100644 --- a/mipac/errors/base.py +++ b/mipac/errors/base.py @@ -4,6 +4,7 @@ from typing import Optional, Union class APIError(Exception): """APIのエラー""" + def __init__(self, data: Union[dict, str], status: int): self.raw: Union[dict, str] = data self.status: int = status @@ -11,18 +12,18 @@ class APIError(Exception): self.id: Optional[str] = None self.message: Optional[str] = None if isinstance(data, dict): - error = data.get("error", {}) - self.code: Optional[str] = error.get("code", "") - self.id: Optional[str] = error.get("id") - self.message: Optional[str] = error.get("message", "") + error = data.get('error', {}) + self.code: Optional[str] = error.get('code', '') + self.id: Optional[str] = error.get('id') + self.message: Optional[str] = error.get('message', '') super().__init__(self.message or self.raw) def raise_error(self): if not self.code: raise self if value := getattr( - import_module("mipac.errors.errors"), - "".join([i.capitalize() for i in self.code.split("_")]) + "Error", + import_module('mipac.errors.errors'), + ''.join([i.capitalize() for i in self.code.split('_')]) + 'Error', None, ): raise value(self.raw, self.status) diff --git a/mipac/http.py b/mipac/http.py index 5d0b815..b7660b7 100644 --- a/mipac/http.py +++ b/mipac/http.py @@ -108,7 +108,7 @@ class HTTPClient: return data # type: ignore if 511 > res.status >= 300: APIError(data, res.status).raise_error() - APIError("HTTP ERROR", res.status).raise_error() + APIError('HTTP ERROR', res.status).raise_error() async def close_session(self) -> None: await self._session.close()