From 49c990a53bbc0ea5259a9cbd508bef16d2de706e Mon Sep 17 00:00:00 2001 From: John Chilton Date: Fri, 16 Sep 2022 09:29:11 -0400 Subject: [PATCH] Typing for tool shed registry. --- lib/galaxy/tool_shed/tool_shed_registry.py | 20 +++++++++++++++----- lib/galaxy/util/tool_shed/xml_util.py | 3 ++- mypy.ini | 2 -- 3 files changed, 17 insertions(+), 8 deletions(-) diff --git a/lib/galaxy/tool_shed/tool_shed_registry.py b/lib/galaxy/tool_shed/tool_shed_registry.py index 31799a931ea..a413a9d8312 100644 --- a/lib/galaxy/tool_shed/tool_shed_registry.py +++ b/lib/galaxy/tool_shed/tool_shed_registry.py @@ -1,15 +1,22 @@ import logging -from typing import NamedTuple +from typing import ( + Dict, + NamedTuple, + Optional, +) from galaxy.util import parse_xml_string +from galaxy.util.path import StrPath from galaxy.util.tool_shed.common_util import remove_protocol_from_tool_shed_url from galaxy.util.tool_shed.xml_util import parse_xml log = logging.getLogger(__name__) -DEFAULT_TOOL_SHEDS_CONF_XML = """ +DEFAULT_TOOL_SHED_URL = "https://toolshed.g2.bx.psu.edu/" +DEFAULT_TOOL_SHED_NAME = "Galaxy Main Tool Shed" +DEFAULT_TOOL_SHEDS_CONF_XML = f""" - + """ @@ -20,7 +27,10 @@ class AUTH_TUPLE(NamedTuple): class Registry: - def __init__(self, config=None): + tool_sheds: Dict[str, str] + tool_sheds_auth: Dict[str, Optional[AUTH_TUPLE]] + + def __init__(self, config: Optional[StrPath] = None): self.tool_sheds = {} self.tool_sheds_auth = {} if config: @@ -49,7 +59,7 @@ class Registry: except Exception as e: log.warning(f'Error loading reference to tool shed "{name}", problem: {str(e)}') - def url_auth(self, url): + def url_auth(self, url: str) -> Optional[AUTH_TUPLE]: """ If the tool shed is using external auth, the client to the tool shed must authenticate to that as well. This provides access to the six.moves.urllib.request.HTTPPasswordMgrWithdefaultRealm() object for the diff --git a/lib/galaxy/util/tool_shed/xml_util.py b/lib/galaxy/util/tool_shed/xml_util.py index c68b27123f4..d61f8874a99 100644 --- a/lib/galaxy/util/tool_shed/xml_util.py +++ b/lib/galaxy/util/tool_shed/xml_util.py @@ -12,6 +12,7 @@ from galaxy.util import ( unicodify, xml_to_string, ) +from galaxy.util.path import StrPath log = logging.getLogger(__name__) @@ -25,7 +26,7 @@ def create_and_write_tmp_file(elem): return tmp_filename -def parse_xml(file_name, check_exists=True) -> Tuple[Optional[etree.ElementTree], str]: +def parse_xml(file_name: StrPath, check_exists=True) -> Tuple[Optional[etree.ElementTree], str]: """Returns a parsed xml tree with comments intact.""" error_message = "" if check_exists and not os.path.exists(file_name): diff --git a/mypy.ini b/mypy.ini index 3c7f9b14d7e..933d9e160eb 100644 --- a/mypy.ini +++ b/mypy.ini @@ -296,8 +296,6 @@ check_untyped_defs = False check_untyped_defs = False [mypy-galaxy.tool_util.verify.interactor] check_untyped_defs = False -[mypy-galaxy.tool_shed.tool_shed_registry] -check_untyped_defs = False [mypy-galaxy.objectstore.s3] check_untyped_defs = False [mypy-galaxy.objectstore.pithos]