diff --git a/PFERD/crawler.py b/PFERD/crawler.py index 140ae20..cb31223 100644 --- a/PFERD/crawler.py +++ b/PFERD/crawler.py @@ -3,8 +3,7 @@ from contextlib import asynccontextmanager from datetime import datetime from pathlib import Path, PurePath # TODO In Python 3.9 and above, AsyncContextManager is deprecated -from typing import (Any, AsyncContextManager, AsyncIterator, Awaitable, - Callable, Dict, Optional, TypeVar) +from typing import Any, AsyncContextManager, AsyncIterator, Awaitable, Callable, Dict, Optional, TypeVar import aiohttp from rich.markup import escape diff --git a/PFERD/crawlers/ilias.py b/PFERD/crawlers/ilias.py index edb48a8..f2a7656 100644 --- a/PFERD/crawlers/ilias.py +++ b/PFERD/crawlers/ilias.py @@ -7,11 +7,11 @@ from enum import Enum from pathlib import PurePath # TODO In Python 3.9 and above, AsyncContextManager is deprecated from typing import Any, Dict, List, Optional, Set, Union -from urllib.parse import (parse_qs, urlencode, urljoin, urlparse, urlsplit, - urlunsplit) +from urllib.parse import parse_qs, urlencode, urljoin, urlparse, urlsplit, urlunsplit import aiohttp from bs4 import BeautifulSoup, Tag + from PFERD.output_dir import Redownload from PFERD.utils import soupify diff --git a/PFERD/output_dir.py b/PFERD/output_dir.py index 23d4a31..ae69d10 100644 --- a/PFERD/output_dir.py +++ b/PFERD/output_dir.py @@ -9,8 +9,7 @@ from datetime import datetime from enum import Enum from pathlib import Path, PurePath # TODO In Python 3.9 and above, AsyncContextManager is deprecated -from typing import (AsyncContextManager, AsyncIterator, BinaryIO, Iterator, - Optional) +from typing import AsyncContextManager, AsyncIterator, BinaryIO, Iterator, Optional from rich.markup import escape diff --git a/PFERD/utils.py b/PFERD/utils.py index d7c61ec..3022ab6 100644 --- a/PFERD/utils.py +++ b/PFERD/utils.py @@ -25,6 +25,7 @@ async def ainput(prompt: str) -> str: async def agetpass(prompt: str) -> str: return await to_thread(lambda: getpass.getpass(prompt)) + def soupify(data: bytes) -> bs4.BeautifulSoup: """ Parses HTML to a beautifulsoup object. @@ -32,6 +33,7 @@ def soupify(data: bytes) -> bs4.BeautifulSoup: return bs4.BeautifulSoup(data, "html.parser") + async def prompt_yes_no(query: str, default: Optional[bool]) -> bool: """ Asks the user a yes/no question and returns their choice.