move from deprecated optparse to argparse
authorHelmut Grohne <helmut@subdivi.de>
Sat, 21 May 2016 15:54:04 +0000 (17:54 +0200)
committerHelmut Grohne <helmut@subdivi.de>
Sat, 21 May 2016 15:54:04 +0000 (17:54 +0200)
autoimport.py
importpkg.py
readyaml.py
update_sharing.py
webapp.py

index 0d26fe4..bbe5029 100755 (executable)
@@ -3,11 +3,11 @@
 packages contained. It has rather strong assumptions on the working directory.
 """
 
+import argparse
 import gzip
 import errno
 import io
 import multiprocessing
-import optparse
 import os
 import sqlite3
 import subprocess
@@ -86,22 +86,24 @@ def process_pkg(name, pkgdict, outpath):
     print("preprocessed %s" % name)
 
 def main():
-    parser = optparse.OptionParser()
-    parser.add_option("-n", "--new", action="store_true",
-                      help="avoid reimporting same versions")
-    parser.add_option("-p", "--prune", action="store_true",
-                      help="prune packages old packages")
-    parser.add_option("-d", "--database", action="store",
-                      default="test.sqlite3",
-                      help="path to the sqlite3 database file")
-    options, args = parser.parse_args()
+    parser = argparse.ArgumentParser()
+    parser.add_argument("-n", "--new", action="store_true",
+                        help="avoid reimporting same versions")
+    parser.add_argument("-p", "--prune", action="store_true",
+                        help="prune packages old packages")
+    parser.add_argument("-d", "--database", action="store",
+                        default="test.sqlite3",
+                        help="path to the sqlite3 database file")
+    parser.add_argument("files", nargs='+',
+                        help="files or directories or repository urls")
+    args = parser.parse_args()
     tmpdir = tempfile.mkdtemp(prefix="debian-dedup")
-    db = sqlite3.connect(options.database)
+    db = sqlite3.connect(args.database)
     cur = db.cursor()
     cur.execute("PRAGMA foreign_keys = ON;")
     e = concurrent.futures.ThreadPoolExecutor(multiprocessing.cpu_count())
     pkgs = {}
-    for d in args:
+    for d in args.files:
         print("processing %s" % d)
         if d.startswith(("http://", "https://", "ftp://", "file://")):
             process_http(pkgs, d)
@@ -114,7 +116,7 @@ def main():
     cur.execute("SELECT name, version FROM package;")
     knownpkgs = dict((row[0], row[1]) for row in cur.fetchall())
     distpkgs = set(pkgs.keys())
-    if options.new:
+    if args.new:
         for name in distpkgs:
             if name in knownpkgs and version_compare(pkgs[name]["version"],
                     knownpkgs[name]) <= 0:
@@ -142,7 +144,7 @@ def main():
                 else:
                     os.unlink(inf)
 
-    if options.prune:
+    if args.prune:
         delpkgs = knownpkgs - distpkgs
         print("clearing packages %s" % " ".join(delpkgs))
         cur.executemany("DELETE FROM package WHERE name = ?;",
index 933ec80..fedad73 100755 (executable)
@@ -5,8 +5,8 @@ on multiple machines. The generated yaml contains multiple documents. The first
 document contains package metadata. Then a document is emitted for each file.
 And finally a document consisting of the string "commit" is emitted."""
 
+import argparse
 import hashlib
-import optparse
 import sys
 import zlib
 
@@ -72,17 +72,17 @@ class ImportpkgExtractor(DebExtractor):
         raise ProcessingFinished()
 
 def main():
-    parser = optparse.OptionParser()
-    parser.add_option("-H", "--hash", action="store",
-                      help="verify that stdin hash given sha256 hash")
-    options, args = parser.parse_args()
+    parser = argparse.ArgumentParser()
+    parser.add_argument("-H", "--hash", action="store",
+                        help="verify that stdin hash given sha256 hash")
+    args = parser.parse_args()
     try:
         stdin = sys.stdin.buffer
     except AttributeError: # python2
         stdin = sys.stdin
     dumper = yaml.SafeDumper(sys.stdout)
     dumper.open()
-    if options.hash:
+    if args.hash:
         stdin = HashedStream(stdin, hashlib.sha256())
     try:
         ImportpkgExtractor(dumper.represent).process(stdin)
@@ -90,8 +90,8 @@ def main():
         pass
     else:
         raise RuntimeError("unexpected termination of extractor")
-    if options.hash:
-        stdin.validate(options.hash)
+    if args.hash:
+        stdin.validate(args.hash)
     dumper.represent("commit")
     dumper.close()
 
index 2ef9a3b..b6f7316 100755 (executable)
@@ -2,7 +2,7 @@
 """This tool reads a yaml file as generated by importpkg.py on stdin and
 updates the database with the contents."""
 
-import optparse
+import argparse
 import sqlite3
 import sys
 
@@ -54,12 +54,12 @@ def readyaml(db, stream):
     raise ValueError("missing commit block")
 
 def main():
-    parser = optparse.OptionParser()
-    parser.add_option("-d", "--database", action="store",
-                      default="test.sqlite3",
-                      help="path to the sqlite3 database file")
-    options, args = parser.parse_args()
-    db = sqlite3.connect(options.database)
+    parser = argparse.ArgumentParser()
+    parser.add_argument("-d", "--database", action="store",
+                        default="test.sqlite3",
+                        help="path to the sqlite3 database file")
+    args = parser.parse_args()
+    db = sqlite3.connect(args.database)
     readyaml(db, sys.stdin)
 
 if __name__ == "__main__":
index ca6890b..ac6c945 100755 (executable)
@@ -1,6 +1,6 @@
 #!/usr/bin/python
 
-import optparse
+import argparse
 import sqlite3
 
 from dedup.utils import fetchiter
@@ -67,9 +67,9 @@ def main(db):
     db.commit()
 
 if __name__ == "__main__":
-    parser = optparse.OptionParser()
-    parser.add_option("-d", "--database", action="store",
-                      default="test.sqlite3",
-                      help="path to the sqlite3 database file")
-    options, args = parser.parse_args()
-    main(sqlite3.connect(options.database))
+    parser = argparse.ArgumentParser()
+    parser.add_argument("-d", "--database", action="store",
+                        default="test.sqlite3",
+                        help="path to the sqlite3 database file")
+    args = parser.parse_args()
+    main(sqlite3.connect(args.database))
index 9612c38..f9e667e 100755 (executable)
--- a/webapp.py
+++ b/webapp.py
@@ -1,8 +1,8 @@
 #!/usr/bin/python
 
+import argparse
 import contextlib
 import datetime
-import optparse
 import sqlite3
 from wsgiref.simple_server import make_server
 
@@ -256,12 +256,12 @@ class Application(object):
         return html_response(source_template.render(params))
 
 def main():
-    parser = optparse.OptionParser()
-    parser.add_option("-d", "--database", action="store",
-                      default="test.sqlite3",
-                      help="path to the sqlite3 database file")
-    options, args = parser.parse_args()
-    app = Application(sqlite3.connect(options.database))
+    parser = argparse.ArgumentParser()
+    parser.add_argument("-d", "--database", action="store",
+                        default="test.sqlite3",
+                        help="path to the sqlite3 database file")
+    args = parser.parse_args()
+    app = Application(sqlite3.connect(args.database))
     app = SharedDataMiddleware(app, {"/static": ("dedup", "static")})
     make_server("0.0.0.0", 8800, app).serve_forever()