aboutsummaryrefslogtreecommitdiffstats
path: root/lang/python/pyme/util.py
diff options
context:
space:
mode:
authorJustus Winter <[email protected]>2016-09-13 08:44:14 +0000
committerJustus Winter <[email protected]>2016-09-13 11:29:43 +0000
commit70a3be27a509a1b5ea7372bee93d83c5019427ff (patch)
tree26424006293c90a51baec2276c633850fa2f539b /lang/python/pyme/util.py
parentpython: Fix types and error handling. (diff)
downloadgpgme-70a3be27a509a1b5ea7372bee93d83c5019427ff.tar.gz
gpgme-70a3be27a509a1b5ea7372bee93d83c5019427ff.zip
python: Handle slight differences between Python 2 and 3.
* lang/python/helpers.c (pyDataWriteCb): Handle Python integers being returned on Python 2. (pyDataSeekCb): Likewise. * lang/python/pyme/core.py (Data.__init__): Fix testing for string argument. (Data.new_from_filepart): Likewise. * lang/python/pyme/util.py (is_a_string): New function. * lang/python/tests/t-encrypt-large.py (read_cb): Force evaluation of generator. * lang/python/tests/t-idiomatic.py: Partly skip test on Python 2. * lang/python/tests/t-verify.py (check_result): Here, the difference between 2 and 3 really matters. We cannot change the char * conversion in Python 2 without breaking all existing applications, and using bytestrings in Python 3 would be very inconvenient. Signed-off-by: Justus Winter <[email protected]>
Diffstat (limited to '')
-rw-r--r--lang/python/pyme/util.py12
1 files changed, 12 insertions, 0 deletions
diff --git a/lang/python/pyme/util.py b/lang/python/pyme/util.py
index c4c9e180..bf25ccb0 100644
--- a/lang/python/pyme/util.py
+++ b/lang/python/pyme/util.py
@@ -16,6 +16,8 @@
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+import sys
+
def process_constants(prefix, scope):
"""Called by the constant modules to load up the constants from the C
library starting with PREFIX. Matching constants will be inserted
@@ -36,3 +38,13 @@ def percent_escape(s):
'%{0:2x}'.format(ord(c))
if c == '+' or c == '"' or c == '%' or ord(c) <= 0x20 else c
for c in s)
+
+# Python2/3 compatibility
+if sys.version_info[0] == 3:
+ # Python3
+ def is_a_string(x):
+ return isinstance(x, str)
+else:
+ # Python2
+ def is_a_string(x):
+ return isinstance(x, basestring)