diff options
author | 2017-02-01 21:13:23 +0200 | |
---|---|---|
committer | 2017-02-02 14:26:12 +0200 | |
commit | 781d71db20b0c5acbe940eff1b1ef2f1b765ce54 (patch) | |
tree | 444ef9944a789eaf7d51729d8e84f0b1ab70bda4 /scripts/external_libs/pyzmq-14.5.0/python2/ucs2/32bit/zmq/sugar/attrsettr.py | |
parent | 7b39a77194c736194b40a40fdd19928b98310959 (diff) |
zmq os independent
Change-Id: Iaf5a782be4db26a979a7535454719e8e62b5969a
Signed-off-by: Yaroslav Brustinov <ybrustin@cisco.com>
Diffstat (limited to 'scripts/external_libs/pyzmq-14.5.0/python2/ucs2/32bit/zmq/sugar/attrsettr.py')
-rw-r--r-- | scripts/external_libs/pyzmq-14.5.0/python2/ucs2/32bit/zmq/sugar/attrsettr.py | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/scripts/external_libs/pyzmq-14.5.0/python2/ucs2/32bit/zmq/sugar/attrsettr.py b/scripts/external_libs/pyzmq-14.5.0/python2/ucs2/32bit/zmq/sugar/attrsettr.py new file mode 100644 index 00000000..4bbd36d6 --- /dev/null +++ b/scripts/external_libs/pyzmq-14.5.0/python2/ucs2/32bit/zmq/sugar/attrsettr.py @@ -0,0 +1,52 @@ +# coding: utf-8 +"""Mixin for mapping set/getattr to self.set/get""" + +# Copyright (C) PyZMQ Developers +# Distributed under the terms of the Modified BSD License. + + +from . import constants + +class AttributeSetter(object): + + def __setattr__(self, key, value): + """set zmq options by attribute""" + + # regular setattr only allowed for class-defined attributes + for obj in [self] + self.__class__.mro(): + if key in obj.__dict__: + object.__setattr__(self, key, value) + return + + upper_key = key.upper() + try: + opt = getattr(constants, upper_key) + except AttributeError: + raise AttributeError("%s has no such option: %s" % ( + self.__class__.__name__, upper_key) + ) + else: + self._set_attr_opt(upper_key, opt, value) + + def _set_attr_opt(self, name, opt, value): + """override if setattr should do something other than call self.set""" + self.set(opt, value) + + def __getattr__(self, key): + """get zmq options by attribute""" + upper_key = key.upper() + try: + opt = getattr(constants, upper_key) + except AttributeError: + raise AttributeError("%s has no such option: %s" % ( + self.__class__.__name__, upper_key) + ) + else: + return self._get_attr_opt(upper_key, opt) + + def _get_attr_opt(self, name, opt): + """override if getattr should do something other than call self.get""" + return self.get(opt) + + +__all__ = ['AttributeSetter'] |