diff options
| author | Cody Logan <cody@lokken.dev> | 2023-10-20 16:36:14 -0700 |
|---|---|---|
| committer | Cody Logan <cody@lokken.dev> | 2023-10-20 16:41:11 -0700 |
| commit | c1820026f97eaf671c29ab30f02879de0ac4df89 (patch) | |
| tree | 4a0d9edb5301b26d9dbd22ceb307a7e3b1db4820 /src/wikiget | |
| parent | 3d37cf6f86eb6c48a3a0a094c42ade6d7aed1daf (diff) | |
| download | wikiget-c1820026f97eaf671c29ab30f02879de0ac4df89.tar.gz wikiget-c1820026f97eaf671c29ab30f02879de0ac4df89.zip | |
Add type annotations to source files
Diffstat (limited to 'src/wikiget')
| -rw-r--r-- | src/wikiget/dl.py | 10 | ||||
| -rw-r--r-- | src/wikiget/logging.py | 3 | ||||
| -rw-r--r-- | src/wikiget/parse.py | 4 | ||||
| -rw-r--r-- | src/wikiget/validations.py | 7 | ||||
| -rw-r--r-- | src/wikiget/wikiget.py | 4 |
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() |
