aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/wikiget/dl.py10
-rw-r--r--src/wikiget/logging.py3
-rw-r--r--src/wikiget/parse.py4
-rw-r--r--src/wikiget/validations.py7
-rw-r--r--src/wikiget/wikiget.py4
5 files changed, 17 insertions, 11 deletions
diff --git a/src/wikiget/dl.py b/src/wikiget/dl.py
index 5491378..5b5b43b 100644
--- a/src/wikiget/dl.py
+++ b/src/wikiget/dl.py
@@ -18,9 +18,11 @@
import logging
import os
import sys
+from argparse import Namespace
from concurrent.futures import ThreadPoolExecutor
from mwclient import APIError, InvalidResponse, LoginError, Site
+from mwclient.image import Image
from requests import ConnectionError, HTTPError
from tqdm import tqdm
@@ -32,7 +34,7 @@ from wikiget.parse import get_dest
from wikiget.validations import verify_hash
-def query_api(filename, site_name, args):
+def query_api(filename: str, site_name: str, args: Namespace) -> Image:
# connect to site and identify ourselves
logging.info(f"Connecting to {site_name}")
try:
@@ -75,13 +77,13 @@ def query_api(filename, site_name, args):
return image
-def prep_download(dl, args):
+def prep_download(dl: str, args: Namespace) -> File:
file = get_dest(dl, args)
file.image = query_api(file.name, file.site, args)
return file
-def batch_download(args):
+def batch_download(args: Namespace) -> int:
input_file = args.FILE
dl_list = {}
errors = 0
@@ -129,7 +131,7 @@ def batch_download(args):
return errors
-def download(f, args):
+def download(f: File, args: Namespace) -> int:
file = f.image
filename = f.name
dest = f.dest
diff --git a/src/wikiget/logging.py b/src/wikiget/logging.py
index 1536156..87b917c 100644
--- a/src/wikiget/logging.py
+++ b/src/wikiget/logging.py
@@ -16,6 +16,7 @@
# along with Wikiget. If not, see <https://www.gnu.org/licenses/>.
import logging
+from argparse import Namespace
import wikiget
@@ -25,7 +26,7 @@ class FileLogAdapter(logging.LoggerAdapter):
return f"[{self.extra['filename']}] {msg}", kwargs
-def configure_logging(args):
+def configure_logging(args: Namespace) -> None:
loglevel = logging.WARNING
if args.verbose >= wikiget.VERY_VERBOSE:
# this includes API and library messages
diff --git a/src/wikiget/parse.py b/src/wikiget/parse.py
index 4e9b195..fe3fe43 100644
--- a/src/wikiget/parse.py
+++ b/src/wikiget/parse.py
@@ -16,14 +16,16 @@
# along with Wikiget. If not, see <https://www.gnu.org/licenses/>.
import logging
+from argparse import Namespace
from urllib.parse import unquote, urlparse
import wikiget
from wikiget.exceptions import ParseError
+from wikiget.file import File
from wikiget.validations import valid_file
-def get_dest(dl, args):
+def get_dest(dl: str, args: Namespace) -> File:
url = urlparse(dl)
if url.netloc:
diff --git a/src/wikiget/validations.py b/src/wikiget/validations.py
index 2bce34e..c9e7bcf 100644
--- a/src/wikiget/validations.py
+++ b/src/wikiget/validations.py
@@ -17,11 +17,12 @@
import hashlib
import re
+from typing import Optional
from wikiget import BLOCKSIZE
-def valid_file(search_string):
+def valid_file(search_string: str) -> Optional[re.Match]:
"""
Determines if the given string contains a valid file name, defined as a string
ending with a '.' and at least one character, beginning with 'File:' or 'Image:',
@@ -38,7 +39,7 @@ def valid_file(search_string):
return file_regex.search(search_string)
-def valid_site(search_string):
+def valid_site(search_string: str) -> Optional[re.Match]:
"""
Determines if the given string contains a valid site name, defined as a string
ending with 'wikipedia.org' or 'wikimedia.org'. This covers all subdomains of those
@@ -54,7 +55,7 @@ def valid_site(search_string):
return site_regex.search(search_string)
-def verify_hash(filename):
+def verify_hash(filename: str) -> str:
"""
Calculates the SHA1 hash of the given file for comparison with a known value.
diff --git a/src/wikiget/wikiget.py b/src/wikiget/wikiget.py
index 5b84dac..e64d00e 100644
--- a/src/wikiget/wikiget.py
+++ b/src/wikiget/wikiget.py
@@ -28,7 +28,7 @@ from wikiget.exceptions import ParseError
from wikiget.logging import configure_logging
-def construct_parser():
+def construct_parser() -> argparse.ArgumentParser:
parser = argparse.ArgumentParser(
description="""
A tool for downloading files from MediaWiki sites using the file name or
@@ -115,7 +115,7 @@ def construct_parser():
return parser
-def main():
+def main() -> None:
# setup our environment
parser = construct_parser()
args = parser.parse_args()