[Pkg-gnupg-commit] [gpgme] 134/412: python: Move the base wrapper class.

Daniel Kahn Gillmor dkg at fifthhorseman.net
Thu Sep 22 21:26:32 UTC 2016


This is an automated email from the git hooks/post-receive script.

dkg pushed a commit to branch master
in repository gpgme.

commit 0ebd6a1b43a96bffa78da89dc8629edac0a74d35
Author: Justus Winter <justus at gnupg.org>
Date:   Tue May 24 16:45:39 2016 +0200

    python: Move the base wrapper class.
    
    * python/lang/pyme/util.py (GpgmeWrapper): Move...
    * python/lang/pyme/core.py: ... here.
    
    Signed-off-by: Justus Winter <justus at gnupg.org>
---
 lang/python/pyme/core.py | 78 +++++++++++++++++++++++++++++++++++++++++++++++-
 lang/python/pyme/util.py | 78 ------------------------------------------------
 2 files changed, 77 insertions(+), 79 deletions(-)

diff --git a/lang/python/pyme/core.py b/lang/python/pyme/core.py
index f15444b..aca5ec2 100644
--- a/lang/python/pyme/core.py
+++ b/lang/python/pyme/core.py
@@ -22,7 +22,83 @@
 from . import pygpgme
 from .errors import errorcheck, GPGMEError
 from . import errors
-from .util import GpgmeWrapper
+
+class GpgmeWrapper(object):
+    """Base class all Pyme wrappers for GPGME functionality.  Not to be
+    instantiated directly."""
+
+    def __init__(self, wrapped):
+        self._callback_excinfo = None
+        self.wrapped = wrapped
+
+    def __repr__(self):
+        return '<instance of %s.%s with GPG object at %s>' % \
+               (__name__, self.__class__.__name__,
+                self.wrapped)
+
+    def __str__(self):
+        return repr(self)
+
+    def __hash__(self):
+        return hash(repr(self.wrapped))
+
+    def __eq__(self, other):
+        if other == None:
+            return False
+        else:
+            return repr(self.wrapped) == repr(other.wrapped)
+
+    def _getctype(self):
+        """Must be implemented by child classes.
+
+        Must return the name of the c type."""
+        raise NotImplementedError()
+
+    def _getnameprepend(self):
+        """Must be implemented by child classes.
+
+        Must return the prefix of all c functions mapped to methods of
+        this class."""
+        raise NotImplementedError()
+
+    def _errorcheck(self, name):
+        """Must be implemented by child classes.
+
+        This function must return a trueish value for all c functions
+        returning gpgme_error_t."""
+        raise NotImplementedError()
+
+    def __getattr__(self, key):
+        """On-the-fly function generation."""
+        if key[0] == '_' or self._getnameprepend() == None:
+            return None
+        name = self._getnameprepend() + key
+        func = getattr(pygpgme, name)
+
+        if self._errorcheck(name):
+            def _funcwrap(slf, *args, **kwargs):
+                result = func(slf.wrapped, *args, **kwargs)
+                if slf._callback_excinfo:
+                    pygpgme.pygpgme_raise_callback_exception(slf)
+                return errorcheck(result, "Invocation of " + name)
+        else:
+            def _funcwrap(slf, *args, **kwargs):
+                result = func(slf.wrapped, *args, **kwargs)
+                if slf._callback_excinfo:
+                    pygpgme.pygpgme_raise_callback_exception(slf)
+                return result
+
+        _funcwrap.__doc__ = getattr(func, "__doc__")
+
+        # Monkey-patch the class.
+        setattr(self.__class__, key, _funcwrap)
+
+        # Bind the method to 'self'.
+        def wrapper(*args, **kwargs):
+            return _funcwrap(self, *args, **kwargs)
+        _funcwrap.__doc__ = getattr(func, "__doc__")
+
+        return wrapper
 
 class Context(GpgmeWrapper):
     """From the GPGME C documentation:
diff --git a/lang/python/pyme/util.py b/lang/python/pyme/util.py
index b54cd4d..d52cd1f 100644
--- a/lang/python/pyme/util.py
+++ b/lang/python/pyme/util.py
@@ -17,7 +17,6 @@
 #    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307  USA
 
 from . import pygpgme
-from .errors import errorcheck
 
 def process_constants(starttext, dict):
     """Called by the constant libraries to load up the appropriate constants
@@ -28,80 +27,3 @@ def process_constants(starttext, dict):
             continue
         name = identifier[index:]
         dict[name] = getattr(pygpgme, identifier)
-
-class GpgmeWrapper(object):
-    """Base class all Pyme wrappers for GPGME functionality.  Not to be
-    instantiated directly."""
-
-    def __init__(self, wrapped):
-        self._callback_excinfo = None
-        self.wrapped = wrapped
-
-    def __repr__(self):
-        return '<instance of %s.%s with GPG object at %s>' % \
-               (__name__, self.__class__.__name__,
-                self.wrapped)
-
-    def __str__(self):
-        return repr(self)
-
-    def __hash__(self):
-        return hash(repr(self.wrapped))
-
-    def __eq__(self, other):
-        if other == None:
-            return False
-        else:
-            return repr(self.wrapped) == repr(other.wrapped)
-
-    def _getctype(self):
-        """Must be implemented by child classes.
-
-        Must return the name of the c type."""
-        raise NotImplementedError()
-
-    def _getnameprepend(self):
-        """Must be implemented by child classes.
-
-        Must return the prefix of all c functions mapped to methods of
-        this class."""
-        raise NotImplementedError()
-
-    def _errorcheck(self, name):
-        """Must be implemented by child classes.
-
-        This function must return a trueish value for all c functions
-        returning gpgme_error_t."""
-        raise NotImplementedError()
-
-    def __getattr__(self, key):
-        """On-the-fly function generation."""
-        if key[0] == '_' or self._getnameprepend() == None:
-            return None
-        name = self._getnameprepend() + key
-        func = getattr(pygpgme, name)
-
-        if self._errorcheck(name):
-            def _funcwrap(slf, *args, **kwargs):
-                result = func(slf.wrapped, *args, **kwargs)
-                if slf._callback_excinfo:
-                    pygpgme.pygpgme_raise_callback_exception(slf)
-                return errorcheck(result, "Invocation of " + name)
-        else:
-            def _funcwrap(slf, *args, **kwargs):
-                result = func(slf.wrapped, *args, **kwargs)
-                if slf._callback_excinfo:
-                    pygpgme.pygpgme_raise_callback_exception(slf)
-                return result
-
-        _funcwrap.__doc__ = getattr(func, "__doc__")
-
-        # Monkey-patch the class.
-        setattr(self.__class__, key, _funcwrap)
-
-        # Bind the method to 'self'.
-        def wrapper(*args, **kwargs):
-            return _funcwrap(self, *args, **kwargs)
-        _funcwrap.__doc__ = getattr(func, "__doc__")
-
-        return wrapper

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-gnupg/gpgme.git



More information about the Pkg-gnupg-commit mailing list