From a6f9a31fd96b35101f6e70945f9375a4d1a8c0bf Mon Sep 17 00:00:00 2001 From: Athanasius <Athanasius@miggy.org> Date: Sun, 4 Dec 2022 16:20:08 +0000 Subject: [PATCH] plugins/edsy: flake8 and mypy pass --- plugins/edsy.py | 36 +++++++++++++++++++++++++++--------- 1 file changed, 27 insertions(+), 9 deletions(-) diff --git a/plugins/edsy.py b/plugins/edsy.py index df61683e..5ceb21d5 100644 --- a/plugins/edsy.py +++ b/plugins/edsy.py @@ -1,4 +1,4 @@ -# EDShipyard ship export +"""Export data for ED Shipyard.""" # ! $# ! $# ! $# ! $# ! $# ! $# ! $# ! $# ! $# ! $# ! $# ! $# ! $# ! $# ! $# # ! $# ! $# ! $# ! $# ! $# ! $# ! $# ! $# ! $# ! $# ! $# ! $# ! $# ! $# ! $# @@ -15,25 +15,41 @@ # Thus you **MUST** check if any imports you add in this file are only # referenced in this file (or only in any other core plugin), and if so... # -# YOU MUST ENSURE THAT PERTINENT ADJUSTMENTS ARE MADE IN `setup.py` -# SO AS TO ENSURE THE FILES ARE ACTUALLY PRESENT IN AN END-USER -# INSTALLATION ON WINDOWS. +# YOU MUST ENSURE THAT PERTINENT ADJUSTMENTS ARE MADE IN +# `Build-exe-and-msi.py` SO AS TO ENSURE THE FILES ARE ACTUALLY PRESENT IN +# AN END-USER INSTALLATION ON WINDOWS. # # # ! $# ! $# ! $# ! $# ! $# ! $# ! $# ! $# ! $# ! $# ! $# ! $# ! $# ! $# ! $# # ! $# ! $# ! $# ! $# ! $# ! $# ! $# ! $# ! $# ! $# ! $# ! $# ! $# ! $# ! $# import base64 import gzip -import json import io +import json +from typing import Any, Mapping -def plugin_start3(plugin_dir): +def plugin_start3(plugin_dir: str) -> str: + """ + Start the plugin. + + :param plugin_dir: NAme of directory this was loaded from. + :return: Identifier string for this plugin. + """ return 'EDSY' + # Return a URL for the current ship -def shipyard_url(loadout, is_beta): - string = json.dumps(loadout, ensure_ascii=False, sort_keys=True, separators=(',', ':')).encode('utf-8') # most compact representation +def shipyard_url(loadout: Mapping[str, Any], is_beta) -> bool | str: + """ + Construct a URL for ship loadout. + + :param loadout: + :param is_beta: + :return: + """ + # most compact representation + string = json.dumps(loadout, ensure_ascii=False, sort_keys=True, separators=(',', ':')).encode('utf-8') if not string: return False @@ -41,4 +57,6 @@ def shipyard_url(loadout, is_beta): with gzip.GzipFile(fileobj=out, mode='w') as f: f.write(string) - return (is_beta and 'http://edsy.org/beta/#/I=' or 'http://edsy.org/#/I=') + base64.urlsafe_b64encode(out.getvalue()).decode().replace('=', '%3D') + return ( + is_beta and 'http://edsy.org/beta/#/I=' or 'http://edsy.org/#/I=' + ) + base64.urlsafe_b64encode(out.getvalue()).decode().replace('=', '%3D')