mirror of
				https://github.com/Garmelon/PFERD.git
				synced 2025-11-03 22:23:41 +01:00 
			
		
		
		
	Fix mypy errors and add missing await
This commit is contained in:
		@@ -1,9 +1,10 @@
 | 
			
		||||
import asyncio
 | 
			
		||||
import os
 | 
			
		||||
from abc import ABC, abstractmethod
 | 
			
		||||
from collections.abc import Awaitable, Coroutine
 | 
			
		||||
from datetime import datetime
 | 
			
		||||
from pathlib import Path, PurePath
 | 
			
		||||
from typing import Any, Awaitable, Callable, Dict, List, Optional, Sequence, Set, Tuple, TypeVar
 | 
			
		||||
from typing import Any, Callable, Dict, List, Optional, Sequence, Set, Tuple, TypeVar
 | 
			
		||||
 | 
			
		||||
from ..auth import Authenticator
 | 
			
		||||
from ..config import Config, Section
 | 
			
		||||
@@ -58,7 +59,7 @@ def noncritical(f: Wrapped) -> Wrapped:
 | 
			
		||||
    return wrapper  # type: ignore
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
AWrapped = TypeVar("AWrapped", bound=Callable[..., Awaitable[Optional[Any]]])
 | 
			
		||||
AWrapped = TypeVar("AWrapped", bound=Callable[..., Coroutine[Any, Any, Optional[Any]]])
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def anoncritical(f: AWrapped) -> AWrapped:
 | 
			
		||||
 
 | 
			
		||||
@@ -1,7 +1,8 @@
 | 
			
		||||
import asyncio
 | 
			
		||||
import re
 | 
			
		||||
from collections.abc import Awaitable, Coroutine
 | 
			
		||||
from pathlib import PurePath
 | 
			
		||||
from typing import Any, Awaitable, Callable, Dict, List, Optional, Set, TypeVar, Union, cast
 | 
			
		||||
from typing import Any, Callable, Dict, List, Optional, Set, Union, cast
 | 
			
		||||
 | 
			
		||||
import aiohttp
 | 
			
		||||
import yarl
 | 
			
		||||
@@ -13,7 +14,7 @@ from ...config import Config
 | 
			
		||||
from ...logging import ProgressBar, log
 | 
			
		||||
from ...output_dir import FileSink, Redownload
 | 
			
		||||
from ...utils import fmt_path, soupify, url_set_query_param
 | 
			
		||||
from ..crawler import CrawlError, CrawlToken, CrawlWarning, DownloadToken, anoncritical
 | 
			
		||||
from ..crawler import AWrapped, CrawlError, CrawlToken, CrawlWarning, DownloadToken, anoncritical
 | 
			
		||||
from ..http_crawler import HttpCrawler, HttpCrawlerSection
 | 
			
		||||
from .file_templates import Links
 | 
			
		||||
from .kit_ilias_html import IliasElementType, IliasPage, IliasPageElement
 | 
			
		||||
@@ -82,8 +83,6 @@ _VIDEO_ELEMENTS: Set[IliasElementType] = set([
 | 
			
		||||
    IliasElementType.VIDEO_FOLDER_MAYBE_PAGINATED,
 | 
			
		||||
])
 | 
			
		||||
 | 
			
		||||
AWrapped = TypeVar("AWrapped", bound=Callable[..., Awaitable[Optional[Any]]])
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def _iorepeat(attempts: int, name: str, failure_is_error: bool = False) -> Callable[[AWrapped], AWrapped]:
 | 
			
		||||
    def decorator(f: AWrapped) -> AWrapped:
 | 
			
		||||
@@ -252,7 +251,7 @@ instance's greatest bottleneck.
 | 
			
		||||
        url: str,
 | 
			
		||||
        parent: IliasPageElement,
 | 
			
		||||
        path: PurePath,
 | 
			
		||||
    ) -> Optional[Awaitable[None]]:
 | 
			
		||||
    ) -> Optional[Coroutine[Any, Any, None]]:
 | 
			
		||||
        maybe_cl = await self.crawl(path)
 | 
			
		||||
        if not maybe_cl:
 | 
			
		||||
            return None
 | 
			
		||||
@@ -310,7 +309,7 @@ instance's greatest bottleneck.
 | 
			
		||||
        self,
 | 
			
		||||
        parent_path: PurePath,
 | 
			
		||||
        element: IliasPageElement,
 | 
			
		||||
    ) -> Optional[Awaitable[None]]:
 | 
			
		||||
    ) -> Optional[Coroutine[Any, Any, None]]:
 | 
			
		||||
        if element.url in self._visited_urls:
 | 
			
		||||
            raise CrawlWarning(
 | 
			
		||||
                f"Found second path to element {element.name!r} at {element.url!r}. Aborting subpath"
 | 
			
		||||
@@ -360,7 +359,7 @@ instance's greatest bottleneck.
 | 
			
		||||
        self,
 | 
			
		||||
        element: IliasPageElement,
 | 
			
		||||
        element_path: PurePath,
 | 
			
		||||
    ) -> Optional[Awaitable[None]]:
 | 
			
		||||
    ) -> Optional[Coroutine[Any, Any, None]]:
 | 
			
		||||
        log.explain_topic(f"Decision: Crawl Link {fmt_path(element_path)}")
 | 
			
		||||
        log.explain(f"Links type is {self._links}")
 | 
			
		||||
 | 
			
		||||
@@ -407,7 +406,7 @@ instance's greatest bottleneck.
 | 
			
		||||
        self,
 | 
			
		||||
        element: IliasPageElement,
 | 
			
		||||
        element_path: PurePath,
 | 
			
		||||
    ) -> Optional[Awaitable[None]]:
 | 
			
		||||
    ) -> Optional[Coroutine[Any, Any, None]]:
 | 
			
		||||
        log.explain_topic(f"Decision: Crawl Booking Link {fmt_path(element_path)}")
 | 
			
		||||
        log.explain(f"Links type is {self._links}")
 | 
			
		||||
 | 
			
		||||
@@ -443,7 +442,7 @@ instance's greatest bottleneck.
 | 
			
		||||
            if hdrs.LOCATION not in resp.headers:
 | 
			
		||||
                return soupify(await resp.read()).select_one("a").get("href").strip()
 | 
			
		||||
 | 
			
		||||
        self._authenticate()
 | 
			
		||||
        await self._authenticate()
 | 
			
		||||
 | 
			
		||||
        async with self.session.get(export_url, allow_redirects=False) as resp:
 | 
			
		||||
            # No redirect means we were authenticated
 | 
			
		||||
@@ -456,7 +455,7 @@ instance's greatest bottleneck.
 | 
			
		||||
        self,
 | 
			
		||||
        element: IliasPageElement,
 | 
			
		||||
        element_path: PurePath,
 | 
			
		||||
    ) -> Optional[Awaitable[None]]:
 | 
			
		||||
    ) -> Optional[Coroutine[Any, Any, None]]:
 | 
			
		||||
        # Copy old mapping as it is likely still relevant
 | 
			
		||||
        if self.prev_report:
 | 
			
		||||
            self.report.add_custom_value(
 | 
			
		||||
@@ -564,7 +563,7 @@ instance's greatest bottleneck.
 | 
			
		||||
        self,
 | 
			
		||||
        element: IliasPageElement,
 | 
			
		||||
        element_path: PurePath,
 | 
			
		||||
    ) -> Optional[Awaitable[None]]:
 | 
			
		||||
    ) -> Optional[Coroutine[Any, Any, None]]:
 | 
			
		||||
        maybe_dl = await self.download(element_path, mtime=element.mtime)
 | 
			
		||||
        if not maybe_dl:
 | 
			
		||||
            return None
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user