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 2018/07/04 15:57:35 UTC

[03/41] qpid-proton git commit: PROTON-1850: Split up proton __init__.py into multiple files - Reformatted python source to (mostly) PEP-8 standards - Control what gets exported from __init__ by restricting what it imports - Move most of the reactor impl

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/d28fecf5/python/proton/wrapper.py
----------------------------------------------------------------------
diff --git a/python/proton/wrapper.py b/python/proton/wrapper.py
deleted file mode 100644
index f009de5..0000000
--- a/python/proton/wrapper.py
+++ /dev/null
@@ -1,112 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-#
-from cproton import *
-
-class EmptyAttrs:
-
-    def __contains__(self, name):
-        return False
-
-    def __getitem__(self, name):
-        raise KeyError(name)
-
-    def __setitem__(self, name, value):
-        raise TypeError("does not support item assignment")
-
-EMPTY_ATTRS = EmptyAttrs()
-
-class Wrapper(object):
-
-    def __init__(self, impl_or_constructor, get_context=None):
-        init = False
-        if callable(impl_or_constructor):
-            # we are constructing a new object
-            impl = impl_or_constructor()
-            if impl is None:
-                self.__dict__["_impl"] = impl
-                self.__dict__["_attrs"] = EMPTY_ATTRS
-                self.__dict__["_record"] = None
-                from proton import ProtonException
-                raise ProtonException("Wrapper failed to create wrapped object. Check for file descriptor or memory exhaustion.")
-            init = True
-        else:
-            # we are wrapping an existing object
-            impl = impl_or_constructor
-            pn_incref(impl)
-
-        if get_context:
-            record = get_context(impl)
-            attrs = pn_void2py(pn_record_get(record, PYCTX))
-            if attrs is None:
-                attrs = {}
-                pn_record_def(record, PYCTX, PN_PYREF)
-                pn_record_set(record, PYCTX, pn_py2void(attrs))
-                init = True
-        else:
-            attrs = EMPTY_ATTRS
-            init = False
-            record = None
-        self.__dict__["_impl"] = impl
-        self.__dict__["_attrs"] = attrs
-        self.__dict__["_record"] = record
-        if init: self._init()
-
-    def __getattr__(self, name):
-        attrs = self.__dict__["_attrs"]
-        if name in attrs:
-            return attrs[name]
-        else:
-            raise AttributeError(name + " not in _attrs")
-
-    def __setattr__(self, name, value):
-        if hasattr(self.__class__, name):
-            object.__setattr__(self, name, value)
-        else:
-            attrs = self.__dict__["_attrs"]
-            attrs[name] = value
-
-    def __delattr__(self, name):
-        attrs = self.__dict__["_attrs"]
-        if attrs:
-            del attrs[name]
-
-    def __hash__(self):
-        return hash(addressof(self._impl))
-
-    def __eq__(self, other):
-        if isinstance(other, Wrapper):
-            return addressof(self._impl) == addressof(other._impl)
-        return False
-
-    def __ne__(self, other):
-        if isinstance(other, Wrapper):
-            return addressof(self._impl) != addressof(other._impl)
-        return True
-
-    def __del__(self):
-        pn_decref(self._impl)
-
-    def __repr__(self):
-        return '<%s.%s 0x%x ~ 0x%x>' % (self.__class__.__module__,
-                                               self.__class__.__name__,
-                                               id(self), addressof(self._impl))
-
-
-PYCTX = int(pn_py2void(Wrapper))
-addressof = int


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org