You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ac...@apache.org on 2014/07/08 20:43:49 UTC
svn commit: r1608888 -
/qpid/dispatch/trunk/python/qpid_dispatch_internal/management/node.py
Author: aconway
Date: Tue Jul 8 18:43:48 2014
New Revision: 1608888
URL: http://svn.apache.org/r1608888
Log:
NO-JIRA: Python Url constructor, allow kwargs to replace values in Url
Modified:
qpid/dispatch/trunk/python/qpid_dispatch_internal/management/node.py
Modified: qpid/dispatch/trunk/python/qpid_dispatch_internal/management/node.py
URL: http://svn.apache.org/viewvc/qpid/dispatch/trunk/python/qpid_dispatch_internal/management/node.py?rev=1608888&r1=1608887&r2=1608888&view=diff
==============================================================================
--- qpid/dispatch/trunk/python/qpid_dispatch_internal/management/node.py (original)
+++ qpid/dispatch/trunk/python/qpid_dispatch_internal/management/node.py Tue Jul 8 18:43:48 2014
@@ -55,33 +55,29 @@ class Url:
AMQPS = "amqps"
AMQP = "amqp"
- def __init__(self, s=None, **kwargs):
+ def __init__(self, url=None, **kwargs):
"""
- @param s: String value to convert to URL
- @param kwargs: URL components: scheme, user, password, host, port, path.
+ @param url: String or Url instance to parse or copy.
+ @param kwargs: URL fields: scheme, user, password, host, port, path.
+ If specified, replaces corresponding component in url.
"""
- if s is None:
- self.scheme = kwargs.get('scheme')
- self.user = kwargs.get('user')
- self.password = kwargs.get('password')
- self.host = kwargs.get('host')
- self.port = kwargs.get('port')
- self.path = kwargs.get('path')
- elif isinstance(s, Url):
- self.scheme = s.scheme
- self.user = s.user
- self.password = s.password
- self.host = s.host
- self.port = s.port
- self.path = s.path
- else:
- match = Url.RE.match(s)
+
+ fields = ['scheme', 'user', 'password', 'host', 'port', 'path']
+ for field in fields: setattr(self, field, None)
+
+ if isinstance(url, Url): # Copy from url
+ for field in fields:
+ setattr(self, field, getattr(url, field))
+ elif url is not None: # Parse from url
+ match = Url.RE.match(url)
if match is None:
raise ValueError("Invalid AMQP URL: %s"%s)
- scheme, self.user, self.password, host4, host6, port, self.path = match.groups()
+ self.scheme, self.user, self.password, host4, host6, port, self.path = match.groups()
self.host = host4 or host6
self.port = port and int(port)
- self.scheme = scheme
+ # Let kwargs override values previously set from url
+ for field in fields:
+ setattr(self, field, kwargs.get(field, getattr(self, field)))
def __repr__(self):
return "Url(%r)" % str(self)
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org