32 lines
1 KiB
Python
32 lines
1 KiB
Python
"""Boto/botocore helpers"""
|
|
import warnings
|
|
|
|
from scrapy.exceptions import NotConfigured, ScrapyDeprecationWarning
|
|
|
|
|
|
def is_botocore():
|
|
""" Returns True if botocore is available, otherwise raises NotConfigured. Never returns False.
|
|
|
|
Previously, when boto was supported in addition to botocore, this returned False if boto was available
|
|
but botocore wasn't.
|
|
"""
|
|
message = (
|
|
'is_botocore() is deprecated and always returns True or raises an Exception, '
|
|
'so it cannot be used for checking if boto is available instead of botocore. '
|
|
'You can use scrapy.utils.boto.is_botocore_available() to check if botocore '
|
|
'is available.'
|
|
)
|
|
warnings.warn(message, ScrapyDeprecationWarning, stacklevel=2)
|
|
try:
|
|
import botocore # noqa: F401
|
|
return True
|
|
except ImportError:
|
|
raise NotConfigured('missing botocore library')
|
|
|
|
|
|
def is_botocore_available():
|
|
try:
|
|
import botocore # noqa: F401
|
|
return True
|
|
except ImportError:
|
|
return False
|