38 lines
1.5 KiB
Python
38 lines
1.5 KiB
Python
# Left this file for backward-compatibility before 0.2.99
|
|
from scrapling.core.utils import log
|
|
|
|
|
|
# A lightweight approach to create lazy loader for each import for backward compatibility
|
|
# This will reduces initial memory footprint significantly (only loads what's used)
|
|
def __getattr__(name):
|
|
if name == "Fetcher":
|
|
from scrapling.fetchers import Fetcher as cls
|
|
|
|
log.warning(
|
|
"This import is deprecated now and it will be removed with v0.3. Use `from scrapling.fetchers import Fetcher` instead"
|
|
)
|
|
return cls
|
|
elif name == "AsyncFetcher":
|
|
from scrapling.fetchers import AsyncFetcher as cls
|
|
|
|
log.warning(
|
|
"This import is deprecated now and it will be removed with v0.3. Use `from scrapling.fetchers import AsyncFetcher` instead"
|
|
)
|
|
return cls
|
|
elif name == "StealthyFetcher":
|
|
from scrapling.fetchers import StealthyFetcher as cls
|
|
|
|
log.warning(
|
|
"This import is deprecated now and it will be removed with v0.3. Use `from scrapling.fetchers import StealthyFetcher` instead"
|
|
)
|
|
return cls
|
|
elif name == "PlayWrightFetcher":
|
|
from scrapling.fetchers import PlayWrightFetcher as cls
|
|
|
|
log.warning(
|
|
"This import is deprecated now and it will be removed with v0.3. Use `from scrapling.fetchers import PlayWrightFetcher` instead"
|
|
)
|
|
return cls
|
|
else:
|
|
raise AttributeError(f"module 'scrapling' has no attribute '{name}'")
|