summaryrefslogtreecommitdiff
path: root/autoimport.py
diff options
context:
space:
mode:
authorHelmut Grohne <helmut@subdivi.de>2023-05-09 15:10:25 +0200
committerHelmut Grohne <helmut@subdivi.de>2023-05-09 15:12:01 +0200
commit924f0c734a7accb87e2ac911cee6e24dd463f237 (patch)
treeeb1bcaa2f25933374d28905bcb56e2e8aabeec62 /autoimport.py
parent8a05a6d8bacea0643a4967eed4cd67019ee0b6d7 (diff)
downloaddebian-dedup-924f0c734a7accb87e2ac911cee6e24dd463f237.tar.gz
add type annotations to most of the codeHEADmaster
Diffstat (limited to 'autoimport.py')
-rwxr-xr-xautoimport.py23
1 files changed, 17 insertions, 6 deletions
diff --git a/autoimport.py b/autoimport.py
index 0f518c6..d4e03d0 100755
--- a/autoimport.py
+++ b/autoimport.py
@@ -11,6 +11,7 @@ import sqlite3
import subprocess
import sys
import tempfile
+import typing
import urllib.parse
import concurrent.futures
from debian.debian_support import version_compare
@@ -19,7 +20,13 @@ from dedup.utils import iterate_packages
from readyaml import readyaml
-def process_http(pkgs, url, addhash=True):
+
+PkgDict = typing.Dict[str, str]
+
+
+def process_http(
+ pkgs: typing.Dict[str, PkgDict], url: str, addhash: bool = True
+) -> None:
for pkg in iterate_packages(url, "amd64"):
name = pkg["Package"]
if name in pkgs and \
@@ -31,7 +38,10 @@ def process_http(pkgs, url, addhash=True):
inst["sha256hash"] = pkg["SHA256"]
pkgs[name] = inst
-def process_file(pkgs, filename):
+
+def process_file(
+ pkgs: typing.Dict[str, PkgDict], filename: pathlib.Path
+) -> None:
if filename.suffix != ".deb":
raise ValueError("filename does not end in .deb")
parts = filename.name.split("_")
@@ -43,14 +53,15 @@ def process_file(pkgs, filename):
return
pkgs[name] = dict(version=version, filename=str(filename))
-def process_dir(pkgs, d):
+
+def process_dir(pkgs: typing.Dict[str, PkgDict], d: pathlib.Path) -> None:
for entry in d.iterdir():
try:
process_file(pkgs, entry)
except ValueError:
pass
-def process_pkg(name, pkgdict, outpath):
+def process_pkg(name: str, pkgdict: PkgDict, outpath: pathlib.Path) -> None:
filename = pkgdict["filename"]
print("importing %s" % filename)
importcmd = [sys.executable, "importpkg.py"]
@@ -67,7 +78,7 @@ def process_pkg(name, pkgdict, outpath):
close_fds=True)
print("preprocessed %s" % name)
-def main():
+def main() -> None:
parser = argparse.ArgumentParser()
parser.add_argument("-n", "--new", action="store_true",
help="avoid reimporting same versions")
@@ -86,7 +97,7 @@ def main():
cur = db.cursor()
cur.execute("PRAGMA foreign_keys = ON;")
e = concurrent.futures.ThreadPoolExecutor(multiprocessing.cpu_count())
- pkgs = {}
+ pkgs: typing.Dict[str, PkgDict] = {}
for d in args.files:
print("processing %s" % d)
if d.startswith(("http://", "https://", "ftp://", "file://")):