python: Clean up examples.
authorJustus Winter <justus@gnupg.org>
Tue, 17 May 2016 12:15:21 +0000 (14:15 +0200)
committerJustus Winter <justus@gnupg.org>
Tue, 17 May 2016 12:22:22 +0000 (14:22 +0200)
* lang/python/examples/delkey.py: Clean up example.
* lang/python/examples/encrypt-to-all.py: Likewise.
* lang/python/examples/genkey.py: Likewise.
* lang/python/examples/inter-edit.py: Likewise.
* lang/python/examples/sign.py: Likewise.
* lang/python/examples/signverify.py: Likewise.
* lang/python/examples/simple.py: Likewise.
* lang/python/examples/t-edit.py: Likewise.
* lang/python/examples/verifydetails.py: Likewise.
* lang/python/pyme/__init__.py: Likewise.

Signed-off-by: Justus Winter <justus@gnupg.org>
lang/python/examples/delkey.py
lang/python/examples/encrypt-to-all.py
lang/python/examples/genkey.py
lang/python/examples/inter-edit.py
lang/python/examples/sign.py
lang/python/examples/signverify.py
lang/python/examples/simple.py
lang/python/examples/t-edit.py
lang/python/examples/verifydetails.py
lang/python/pyme/__init__.py

index 600e0c0..773b262 100755 (executable)
@@ -31,6 +31,6 @@ core.check_version(None)
 
 c = core.Context()
 # 0 in keylist means to list not only public but secret keys as well.
-for thekey in [x for x in c.op_keylist_all(b"joe@example.org", 0)]:
+for thekey in [x for x in c.op_keylist_all("joe+pyme@example.org", 0)]:
     # 1 in delete means to delete not only public but secret keys as well.
     c.op_delete(thekey, 1)
index 672e661..331933e 100755 (executable)
@@ -23,13 +23,14 @@ This program will try to encrypt a simple message to each key on your
 keyring.  If your keyring has any invalid keys on it, those keys will
 be skipped and it will re-try the encryption."""
 
+import sys
+import os
 from pyme import core
 from pyme.core import Data, Context
-from pyme.constants import validity
 
 core.check_version(None)
 
-plain = Data(b'This is my message.')
+plain = Data('This is my message.')
 
 c = Context()
 c.set_armor(1)
@@ -37,7 +38,7 @@ c.set_armor(1)
 def sendto(keylist):
     cipher = Data()
     c.op_encrypt(keylist, 1, plain, cipher)
-    cipher.seek(0,0)
+    cipher.seek(0, os.SEEK_SET)
     return cipher.read()
 
 names = []
@@ -64,4 +65,4 @@ for key in c.op_keylist_all(None, 0):
 passno = 0
 
 print("Encrypting to %d recipients" % len(names))
-print(sendto(names))
+sys.stdout.buffer.write(sendto(names))
index 14497eb..bc70833 100755 (executable)
@@ -28,14 +28,14 @@ c.set_progress_cb(callbacks.progress_stdout, None)
 
 # This example from the GPGME manual
 
-parms = b"""<GnupgKeyParms format="internal">
+parms = """<GnupgKeyParms format="internal">
 Key-Type: RSA
 Key-Length: 2048
 Subkey-Type: RSA
 Subkey-Length: 2048
 Name-Real: Joe Tester
 Name-Comment: with stupid passphrase
-Name-Email: joe@example.org
+Name-Email: joe+pyme@example.org
 Passphrase: Crypt0R0cks
 Expire-Date: 2020-12-31
 </GnupgKeyParms>
index 32f8edd..f00928b 100644 (file)
@@ -17,7 +17,6 @@
 #    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
 #    02111-1307 USA
 
-import os
 import sys
 from pyme import core
 from pyme.core import Data, Context
@@ -40,21 +39,21 @@ def edit_fnc(stat, args, helper):
             helper["data"].seek(helper["skip"], 0)
             data = helper["data"].read()
             helper["skip"] += len(data)
-            print(data)
+            sys.stdout.buffer.write(data)
             return input("(%s) %s > " % (stat2str[stat], args))
     except EOFError:
         pass
 
 # Simple interactive editor to test editor scripts
 if len(sys.argv) != 2:
-    sys.stderr.write("Usage: %s <Gpg key patter>\n" % sys.argv[0])
+    sys.stderr.write("Usage: %s <Gpg key pattern>\n" % sys.argv[0])
 else:
     c = Context()
     out = Data()
-    c.op_keylist_start(sys.argv[1].encode('utf-8'), 0)
+    c.op_keylist_start(sys.argv[1], 0)
     key = c.op_keylist_next()
     helper = {"skip": 0, "data": out}
     c.op_edit(key, edit_fnc, helper, out)
     print("[-- Final output --]")
     out.seek(helper["skip"], 0)
-    print(out.read())
+    sys.stdout.buffer.write(out.read())
index 5667cc2..ca43958 100755 (executable)
@@ -17,6 +17,8 @@
 #    along with this program; if not, write to the Free Software
 #    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
+import sys
+import os
 from pyme import core, callbacks
 from pyme.constants.sig import mode
 
@@ -27,5 +29,5 @@ sig = core.Data()
 c = core.Context()
 c.set_passphrase_cb(callbacks.passphrase_stdin, b'for signing')
 c.op_sign(plain, sig, mode.CLEAR)
-sig.seek(0,0)
-print(sig.read())
+sig.seek(0, os.SEEK_SET)
+sys.stdout.buffer.write(sig.read())
index 7194157..292deee 100755 (executable)
@@ -20,7 +20,8 @@
 # It uses keys for joe@example.org generated by genkey.pl script
 
 import sys
-from pyme import core, callbacks
+import os
+from pyme import core
 from pyme.constants.sig import mode
 
 core.check_version(None)
@@ -28,7 +29,7 @@ core.check_version(None)
 plain = core.Data(b"Test message")
 sig = core.Data()
 c = core.Context()
-user = b"joe@example.org"
+user = "joe"
 
 c.signers_clear()
 # Add joe@example.org's keys in the list of signers
@@ -50,9 +51,9 @@ c.set_passphrase_cb(lambda x,y,z: passlist[x[x.rindex("<"):]])
 c.op_sign(plain, sig, mode.CLEAR)
 
 # Print out the signature (don't forget to rewind since signing put sig at EOF)
-sig.seek(0,0)
+sig.seek(0, os.SEEK_SET)
 signedtext = sig.read()
-print(signedtext)
+sys.stdout.buffer.write(signedtext)
 
 # Create Data with signed text.
 sig2 = core.Data(signedtext)
@@ -63,9 +64,7 @@ c.op_verify(sig2, None, plain2)
 result = c.op_verify_result()
 
 # List results for all signatures. Status equal 0 means "Ok".
-index = 0
-for sign in result.signatures:
-    index += 1
+for index, sign in enumerate(result.signatures):
     print("signature", index, ":")
     print("  summary:    ", sign.summary)
     print("  status:     ", sign.status)
@@ -74,5 +73,6 @@ for sign in result.signatures:
     print("  uid:        ", c.get_key(sign.fpr, 0).uids[0].uid)
 
 # Print "unsigned" text. Rewind since verify put plain2 at EOF.
-plain2.seek(0,0)
-print("\n", plain2.read())
+plain2.seek(0, os.SEEK_SET)
+print("\n")
+sys.stdout.buffer.write(plain2.read())
index 4ff6d28..faa0f4c 100755 (executable)
@@ -18,8 +18,8 @@
 #    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
 import sys
-from pyme import core, constants, errors
-import pyme.constants.validity
+import os
+from pyme import core, errors
 
 core.check_version(None)
 
@@ -47,7 +47,7 @@ else:
     # Do the encryption.
     try:
         c.op_encrypt([r], 1, plain, cipher)
-        cipher.seek(0,0)
+        cipher.seek(0, os.SEEK_SET)
         sys.stdout.buffer.write(cipher.read())
     except errors.GPGMEError as ex:
         print(ex.getstring())
index 5e5857a..5c35f96 100644 (file)
@@ -30,8 +30,8 @@ class KeyEditor:
 
     def edit_fnc(self, status, args, out):
         print("[-- Response --]")
-        out.seek(0,0)
-        print(out.read(), end=' ')
+        out.seek(0, os.SEEK_SET)
+        sys.stdout.buffer.write(out.read())
         print("[-- Code: %d, %s --]" % (status, args))
 
         if args == "keyedit.prompt":
@@ -59,5 +59,5 @@ else:
                  "Did you point GNUPGHOME to GPGME's tests/gpg dir?")
     c.op_edit(key, KeyEditor().edit_fnc, out, out)
     print("[-- Last response --]")
-    out.seek(0,0)
-    print(out.read(), end=' ')
+    out.seek(0, os.SEEK_SET)
+    sys.stdout.buffer.write(out.read())
index a8d840e..0aa6f15 100755 (executable)
@@ -25,8 +25,8 @@
 #    along with this program. If not, see <http://www.gnu.org/licenses/>.
 
 import sys
-from pyme import core, callbacks, constants
-from pyme.constants.sig import mode
+import os
+from pyme import core
 from pyme.constants import protocol
 
 def print_engine_infos():
@@ -58,9 +58,7 @@ def verifyprintdetails(sigfilename, filefilename=None):
     result = c.op_verify_result()
 
     # List results for all signatures. Status equal 0 means "Ok".
-    index = 0
-    for sign in result.signatures:
-        index += 1
+    for index, sign in enumerate(result.signatures):
         print("signature", index, ":")
         print("  summary:     %#0x" % (sign.summary))
         print("  status:      %#0x" % (sign.status))
@@ -71,8 +69,9 @@ def verifyprintdetails(sigfilename, filefilename=None):
     # Print "unsigned" text if inline signature
     if plain2:
         #Rewind since verify put plain2 at EOF.
-        plain2.seek(0,0)
-        print("\n", plain2.read())
+        plain2.seek(0, os.SEEK_SET)
+        print("\n")
+        sys.stdout.buffer.write(plain2.read())
 
 def main():
     print_engine_infos()
@@ -86,13 +85,13 @@ def main():
         sys.exit(1)
 
     if argc == 2:
-        print("trying to verify file: " + sys.argv[1].encode('utf-8'))
-        verifyprintdetails(sys.argv[1].encode('utf-8'))
+        print("trying to verify file: " + sys.argv[1])
+        verifyprintdetails(sys.argv[1])
     if argc == 3:
         print("trying to verify signature %s for file %s" \
-                    % (sys.argv[1].encode('utf-8'), sys.argv[2].encode('utf-8')))
+                    % (sys.argv[1], sys.argv[2]))
 
-        verifyprintdetails(sys.argv[1].encode('utf-8'), sys.argv[2].encode('utf-8'))
+        verifyprintdetails(sys.argv[1], sys.argv[2])
 
 if __name__ == "__main__":
     main()
index 4934afe..7716e51 100644 (file)
@@ -84,6 +84,7 @@ QUICK START SAMPLE PROGRAM
 This program is not for serious encryption, but for example purposes only!
 
 import sys
+import os
 from pyme import core, constants
 
 # Set up our input and output buffers.
@@ -99,6 +100,7 @@ c.set_armor(1)
 # Set up the recipients.
 
 sys.stdout.write("Enter name of your recipient: ")
+sys.stdout.flush()
 name = sys.stdin.readline().strip()
 c.op_keylist_start(name, 0)
 r = c.op_keylist_next()
@@ -106,8 +108,8 @@ r = c.op_keylist_next()
 # Do the encryption.
 
 c.op_encrypt([r], 1, plain, cipher)
-cipher.seek(0,0)
-print cipher.read()
+cipher.seek(0, os.SEEK_SET)
+sys.stdout.buffer.write(cipher.read())
 
 Note that although there is no explicit error checking done here, the
 Python GPGME library is automatically doing error-checking, and will