summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHelmut Grohne <helmut@subdivi.de>2016-05-21 17:54:04 +0200
committerHelmut Grohne <helmut@subdivi.de>2016-05-21 17:54:04 +0200
commit4789c77936a634dc717f61309503f99a44b610ed (patch)
tree40e621b92ae1682709ce1f814ceddcbcebb727bb
parent4cdf80c2ba2535f9a4a66d1bde6f7ac1b380e3d2 (diff)
downloaddebian-dedup-4789c77936a634dc717f61309503f99a44b610ed.tar.gz
move from deprecated optparse to argparse
-rwxr-xr-xautoimport.py30
-rwxr-xr-ximportpkg.py16
-rwxr-xr-xreadyaml.py14
-rwxr-xr-xupdate_sharing.py14
-rwxr-xr-xwebapp.py14
5 files changed, 45 insertions, 43 deletions
diff --git a/autoimport.py b/autoimport.py
index 0d26fe4..bbe5029 100755
--- a/autoimport.py
+++ b/autoimport.py
@@ -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 = ?;",
diff --git a/importpkg.py b/importpkg.py
index 933ec80..fedad73 100755
--- a/importpkg.py
+++ b/importpkg.py
@@ -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()
diff --git a/readyaml.py b/readyaml.py
index 2ef9a3b..b6f7316 100755
--- a/readyaml.py
+++ b/readyaml.py
@@ -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__":
diff --git a/update_sharing.py b/update_sharing.py
index ca6890b..ac6c945 100755
--- a/update_sharing.py
+++ b/update_sharing.py
@@ -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))
diff --git a/webapp.py b/webapp.py
index 9612c38..f9e667e 100755
--- 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()