fix: backward-compatibility with the new import logic
This commit is contained in:
+11
-5
@@ -1,19 +1,25 @@
|
|||||||
# If you are going to use Fetchers with the default settings, import them from this file instead for a cleaner looking code
|
# 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
|
# 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)
|
# This will reduces initial memory footprint significantly (only loads what's used)
|
||||||
def __getattr__(name):
|
def __getattr__(name):
|
||||||
if name == 'Fetcher':
|
if name == 'Fetcher':
|
||||||
from scrapling.fetchers import Fetcher as cls
|
from scrapling.fetchers import Fetcher as cls
|
||||||
return 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':
|
elif name == 'AsyncFetcher':
|
||||||
from scrapling.fetchers import AsyncFetcher as cls
|
from scrapling.fetchers import AsyncFetcher as cls
|
||||||
return 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':
|
elif name == 'StealthyFetcher':
|
||||||
from scrapling.fetchers import StealthyFetcher as cls
|
from scrapling.fetchers import StealthyFetcher as cls
|
||||||
return 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':
|
elif name == 'PlayWrightFetcher':
|
||||||
from scrapling.fetchers import PlayWrightFetcher as cls
|
from scrapling.fetchers import PlayWrightFetcher as cls
|
||||||
return 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:
|
else:
|
||||||
raise AttributeError(f"module 'scrapling' has no attribute '{name}'")
|
raise AttributeError(f"module 'scrapling' has no attribute '{name}'")
|
||||||
|
|||||||
Reference in New Issue
Block a user