From commits-return-46077-archive-asf-public=cust-asf.ponee.io@qpid.apache.org Wed Jul 4 17:57:35 2018 Return-Path: X-Original-To: archive-asf-public@cust-asf.ponee.io Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by mx-eu-01.ponee.io (Postfix) with SMTP id 84B7B180674 for ; Wed, 4 Jul 2018 17:57:34 +0200 (CEST) Received: (qmail 87293 invoked by uid 500); 4 Jul 2018 15:57:33 -0000 Mailing-List: contact commits-help@qpid.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@qpid.apache.org Delivered-To: mailing list commits@qpid.apache.org Received: (qmail 87277 invoked by uid 99); 4 Jul 2018 15:57:33 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 04 Jul 2018 15:57:33 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 252E2E090E; Wed, 4 Jul 2018 15:57:33 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: aconway@apache.org To: commits@qpid.apache.org Date: Wed, 04 Jul 2018 15:57:35 -0000 Message-Id: <764ac951b32e4aefa7e647362bb2581f@git.apache.org> In-Reply-To: References: X-Mailer: ASF-Git Admin Mailer Subject: [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