summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/engine
diff options
context:
space:
mode:
authorTom Ritchford <tom@swirly.com>2021-12-05 13:27:45 -0500
committerMike Bayer <mike_mp@zzzcomputing.com>2021-12-06 16:57:02 -0500
commit924cc31975f8874d369db6599575e361bdb34be9 (patch)
tree210f4f3ed66439bea14a767acfd436cc49ac665f /lib/sqlalchemy/engine
parent995fb577a64061a9cbab62b481c65a4c4d3e5a67 (diff)
downloadsqlalchemy-924cc31975f8874d369db6599575e361bdb34be9.tar.gz
Add __copy__, __deepcopy__ to URL. Fixes: #7400
Added support for ``copy()`` and ``deepcopy()`` to the :class:`_url.URL` class. Pull request courtesy Tom Ritchford. Fixes: #7400 Closes: #7401 Pull-request: https://github.com/sqlalchemy/sqlalchemy/pull/7401 Pull-request-sha: a2c1b8992f5d153c6210178cda47b8ae96b91fb5 Change-Id: I55977338b2655a7d4f733ae786d31e589185e9ca
Diffstat (limited to 'lib/sqlalchemy/engine')
-rw-r--r--lib/sqlalchemy/engine/url.py16
1 files changed, 16 insertions, 0 deletions
diff --git a/lib/sqlalchemy/engine/url.py b/lib/sqlalchemy/engine/url.py
index 7cdf25c21..778d2112f 100644
--- a/lib/sqlalchemy/engine/url.py
+++ b/lib/sqlalchemy/engine/url.py
@@ -560,6 +560,22 @@ class URL(
def __repr__(self):
return self.render_as_string()
+ def __copy__(self):
+ return self.__class__.create(
+ self.drivername,
+ self.username,
+ self.password,
+ self.host,
+ self.port,
+ self.database,
+ # note this is an immutabledict of str-> str / tuple of str,
+ # also fully immutable. does not require deepcopy
+ self.query,
+ )
+
+ def __deepcopy__(self, memo):
+ return self.__copy__()
+
def __hash__(self):
return hash(str(self))