Fix defaults for client.prepare() args

None is a legitimate value to pass in for any of these args, so use a
marker object to distinguish between None and "no value supplied".
This commit is contained in:
Mark McLoughlin 2013-06-07 14:18:01 +01:00
parent 5d34b37109
commit e6a237d766
1 changed files with 17 additions and 12 deletions

View File

@ -132,21 +132,26 @@ class RPCClient(object):
super(RPCClient, self).__init__()
def prepare(self, exchange=None, topic=None, namespace=None,
version=None, server=None, fanout=None,
timeout=None, check_for_lock=None, version_cap=None):
target = self.target(exchange=exchange,
topic=topic,
namespace=namespace,
version=version,
server=server,
fanout=fanout)
_marker = object()
if timeout is None:
def prepare(self, exchange=_marker, topic=_marker, namespace=_marker,
version=_marker, server=_marker, fanout=_marker,
timeout=_marker, check_for_lock=_marker, version_cap=_marker):
kwargs = dict(
exchange=exchange,
topic=topic,
namespace=namespace,
version=version,
server=server,
fanout=fanout)
kwargs = dict([(k, v) for k, v in kwargs.items() if v is not self._marker])
target = self.target(**kwargs)
if timeout is self._marker:
timeout = self.timeout
if check_for_lock is None:
if check_for_lock is self._marker:
check_for_lock = self.check_for_lock
if version_cap is None:
if version_cap is self._marker:
version_cap = self.version_cap
return _CallContext(self.transport, target,