mirror of
https://github.com/Garmelon/PFERD.git
synced 2023-12-21 10:23:01 +01:00
Add --debug-transforms flag
This commit is contained in:
parent
adb5d4ade3
commit
533f75ea71
@ -119,7 +119,7 @@ def main() -> None:
|
|||||||
|
|
||||||
try:
|
try:
|
||||||
loop = asyncio.get_event_loop()
|
loop = asyncio.get_event_loop()
|
||||||
loop.run_until_complete(pferd.run())
|
loop.run_until_complete(pferd.run(args.debug_transforms))
|
||||||
loop.run_until_complete(asyncio.sleep(1))
|
loop.run_until_complete(asyncio.sleep(1))
|
||||||
loop.close()
|
loop.close()
|
||||||
except ConfigOptionError as e:
|
except ConfigOptionError as e:
|
||||||
|
@ -164,6 +164,11 @@ PARSER.add_argument(
|
|||||||
help="dump current configuration to a file and exit."
|
help="dump current configuration to a file and exit."
|
||||||
" Use '-' as path to print to stdout instead"
|
" Use '-' as path to print to stdout instead"
|
||||||
)
|
)
|
||||||
|
PARSER.add_argument(
|
||||||
|
"--debug-transforms",
|
||||||
|
action="store_true",
|
||||||
|
help="apply transform rules to files of previous run"
|
||||||
|
)
|
||||||
PARSER.add_argument(
|
PARSER.add_argument(
|
||||||
"--crawler", "-C",
|
"--crawler", "-C",
|
||||||
action="append",
|
action="append",
|
||||||
|
@ -3,7 +3,7 @@ import os
|
|||||||
from abc import ABC, abstractmethod
|
from abc import ABC, abstractmethod
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from pathlib import Path, PurePath
|
from pathlib import Path, PurePath
|
||||||
from typing import Any, Awaitable, Callable, Dict, List, Optional, Sequence, Tuple, TypeVar
|
from typing import Any, Awaitable, Callable, Dict, List, Optional, Sequence, Set, Tuple, TypeVar
|
||||||
|
|
||||||
from rich.markup import escape
|
from rich.markup import escape
|
||||||
|
|
||||||
@ -334,3 +334,21 @@ class Crawler(ABC):
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
def debug_transforms(self) -> None:
|
||||||
|
self._output_dir.load_prev_report()
|
||||||
|
|
||||||
|
if not self.prev_report:
|
||||||
|
log.warn("Couldn't find or load old report")
|
||||||
|
return
|
||||||
|
|
||||||
|
seen: Set[PurePath] = set()
|
||||||
|
for known in self.prev_report.known_files:
|
||||||
|
looking_at = list(reversed(known.parents)) + [known]
|
||||||
|
for path in looking_at:
|
||||||
|
if path in seen:
|
||||||
|
continue
|
||||||
|
|
||||||
|
log.explain_topic(f"Transforming {fmt_path(path)}")
|
||||||
|
self._transformer.transform(path)
|
||||||
|
seen.add(path)
|
||||||
|
@ -92,7 +92,14 @@ class Pferd:
|
|||||||
if isinstance(crawler, KitIliasWebCrawler):
|
if isinstance(crawler, KitIliasWebCrawler):
|
||||||
crawler.share_cookies(kit_ilias_web_paths)
|
crawler.share_cookies(kit_ilias_web_paths)
|
||||||
|
|
||||||
async def run(self) -> None:
|
def debug_transforms(self) -> None:
|
||||||
|
for name in self._crawlers_to_run:
|
||||||
|
crawler = self._crawlers[name]
|
||||||
|
log.print("")
|
||||||
|
log.print(f"[bold bright_cyan]Debugging transforms[/] for {escape(name)}")
|
||||||
|
crawler.debug_transforms()
|
||||||
|
|
||||||
|
async def run(self, debug_transforms: bool) -> None:
|
||||||
"""
|
"""
|
||||||
May throw ConfigOptionError.
|
May throw ConfigOptionError.
|
||||||
"""
|
"""
|
||||||
@ -103,6 +110,12 @@ class Pferd:
|
|||||||
self._load_authenticators()
|
self._load_authenticators()
|
||||||
self._load_crawlers()
|
self._load_crawlers()
|
||||||
|
|
||||||
|
if debug_transforms:
|
||||||
|
log.output_explain = True
|
||||||
|
log.output_report = False
|
||||||
|
self.debug_transforms()
|
||||||
|
return
|
||||||
|
|
||||||
log.print("")
|
log.print("")
|
||||||
|
|
||||||
for name in self._crawlers_to_run:
|
for name in self._crawlers_to_run:
|
||||||
|
Loading…
Reference in New Issue
Block a user