diff options
author | mike bayer <mike_mp@zzzcomputing.com> | 2021-11-25 14:46:33 +0000 |
---|---|---|
committer | Gerrit Code Review <gerrit@ci3.zzzcomputing.com> | 2021-11-25 14:46:33 +0000 |
commit | 3619f084bfb5208ae45686a0993d620b2711adf2 (patch) | |
tree | 45a273205c06947c098b48971cdd3d0ab0052e9a /lib/sqlalchemy/engine/url.py | |
parent | e9c8b5307e6f107d03224453354ae0eaab7d42b1 (diff) | |
parent | 31acba8ff7c123a20ae308b7f4ab6df3df264b48 (diff) | |
download | sqlalchemy-3619f084bfb5208ae45686a0993d620b2711adf2.tar.gz |
Merge "Clean up most py3k compat" into main
Diffstat (limited to 'lib/sqlalchemy/engine/url.py')
-rw-r--r-- | lib/sqlalchemy/engine/url.py | 25 |
1 files changed, 12 insertions, 13 deletions
diff --git a/lib/sqlalchemy/engine/url.py b/lib/sqlalchemy/engine/url.py index 7f09b1eac..c83753bdc 100644 --- a/lib/sqlalchemy/engine/url.py +++ b/lib/sqlalchemy/engine/url.py @@ -14,15 +14,17 @@ argument; alternatively, the URL is a public-facing construct which can be used directly and is also accepted directly by ``create_engine()``. """ +import collections.abc as collections_abc import re +from urllib.parse import parse_qsl +from urllib.parse import quote_plus +from urllib.parse import unquote from .interfaces import Dialect from .. import exc from .. import util from ..dialects import plugins from ..dialects import registry -from ..util import collections_abc -from ..util import compat class URL( @@ -165,7 +167,7 @@ class URL( @classmethod def _assert_str(cls, v, paramname): - if not isinstance(v, compat.string_types): + if not isinstance(v, str): raise TypeError("%s must be a string" % paramname) return v @@ -193,7 +195,7 @@ class URL( ) def _assert_str(v): - if not isinstance(v, compat.string_types): + if not isinstance(v, str): raise TypeError("Query dictionary keys must be strings") return v @@ -308,9 +310,7 @@ class URL( :meth:`_engine.URL.update_query_dict` """ # noqa: E501 - return self.update_query_pairs( - util.parse_qsl(query_string), append=append - ) + return self.update_query_pairs(parse_qsl(query_string), append=append) def update_query_pairs(self, key_value_pairs, append=False): """Return a new :class:`_engine.URL` object with the @@ -548,7 +548,7 @@ class URL( keys = list(self.query) keys.sort() s += "?" + "&".join( - "%s=%s" % (util.quote_plus(k), util.quote_plus(element)) + "%s=%s" % (quote_plus(k), quote_plus(element)) for k in keys for element in util.to_list(self.query[k]) ) @@ -711,7 +711,7 @@ def make_url(name_or_url): existing URL object is passed, just returns the object. """ - if isinstance(name_or_url, util.string_types): + if isinstance(name_or_url, str): return _parse_rfc1738_args(name_or_url) else: return name_or_url @@ -744,7 +744,7 @@ def _parse_rfc1738_args(name): if components["query"] is not None: query = {} - for key, value in util.parse_qsl(components["query"]): + for key, value in parse_qsl(components["query"]): if key in query: query[key] = util.to_list(query[key]) query[key].append(value) @@ -780,15 +780,14 @@ def _rfc_1738_quote(text): return re.sub(r"[:@/]", lambda m: "%%%X" % ord(m.group(0)), text) -def _rfc_1738_unquote(text): - return util.unquote(text) +_rfc_1738_unquote = unquote def _parse_keyvalue_args(name): m = re.match(r"(\w+)://(.*)", name) if m is not None: (name, args) = m.group(1, 2) - opts = dict(util.parse_qsl(args)) + opts = dict(parse_qsl(args)) return URL(name, *opts) else: return None |