


from typing import TYPE_CHECKING

from ...utils import (
    OptionalDependencyNotAvailable,
    _LazyModule,
    is_tokenizers_available,
    is_torch_available,
    is_vision_available,
)


lowerCAmelCase__			:      Tuple								={
    'configuration_perceiver': ['PERCEIVER_PRETRAINED_CONFIG_ARCHIVE_MAP', 'PerceiverConfig', 'PerceiverOnnxConfig'],
    'tokenization_perceiver': ['PerceiverTokenizer'],
}

try:
				if not is_vision_available():
								raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
				pass
else:
				lowerCAmelCase__			:      Tuple								=['PerceiverFeatureExtractor']
				lowerCAmelCase__			:      List[str]								=['PerceiverImageProcessor']

try:
				if not is_torch_available():
								raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
				pass
else:
				lowerCAmelCase__			:      Optional[Any]								=[
				    'PERCEIVER_PRETRAINED_MODEL_ARCHIVE_LIST',
				    'PerceiverForImageClassificationConvProcessing',
				    'PerceiverForImageClassificationFourier',
				    'PerceiverForImageClassificationLearned',
				    'PerceiverForMaskedLM',
				    'PerceiverForMultimodalAutoencoding',
				    'PerceiverForOpticalFlow',
				    'PerceiverForSequenceClassification',
				    'PerceiverLayer',
				    'PerceiverModel',
				    'PerceiverPreTrainedModel',
				]


if TYPE_CHECKING:
				from .configuration_perceiver import PERCEIVER_PRETRAINED_CONFIG_ARCHIVE_MAP, PerceiverConfig, PerceiverOnnxConfig
				from .tokenization_perceiver import PerceiverTokenizer

				try:
								if not is_vision_available():
												raise OptionalDependencyNotAvailable()
				except OptionalDependencyNotAvailable:
								pass
				else:
								from .feature_extraction_perceiver import PerceiverFeatureExtractor
								from .image_processing_perceiver import PerceiverImageProcessor

				try:
								if not is_torch_available():
												raise OptionalDependencyNotAvailable()
				except OptionalDependencyNotAvailable:
								pass
				else:
								from .modeling_perceiver import (
								    PERCEIVER_PRETRAINED_MODEL_ARCHIVE_LIST,
								    PerceiverForImageClassificationConvProcessing,
								    PerceiverForImageClassificationFourier,
								    PerceiverForImageClassificationLearned,
								    PerceiverForMaskedLM,
								    PerceiverForMultimodalAutoencoding,
								    PerceiverForOpticalFlow,
								    PerceiverForSequenceClassification,
								    PerceiverLayer,
								    PerceiverModel,
								    PerceiverPreTrainedModel,
								)

else:
				import sys

				lowerCAmelCase__			:      Any								=_LazyModule(__name__, globals()['__file__'], _import_structure, module_spec=__spec__)









import webbrowser
from sys import argv
from urllib.parse import parse_qs, quote

import requests
from bsa import BeautifulSoup
from fake_useragent import UserAgent

if __name__ == "__main__":
				lowerCAmelCase__			:      Optional[int]								='%20'.join(argv[1:]) if len(argv) > 1 else quote(str(input('Search: ')))

				print('Googling.....')

				lowerCAmelCase__			:      Optional[int]								=F"""https://www.google.com/search?q={query}&num=100"""

				lowerCAmelCase__			:      Union[str, Any]								=requests.get(
				    url,
				    headers={'User-Agent': str(UserAgent().random)},
				)

				try:
								lowerCAmelCase__			:      str								=(
								    BeautifulSoup(res.text, 'html.parser')
								    .find('div', attrs={'class': 'yuRUbf'})
								    .find('a')
								    .get('href')
								)

				except AttributeError:
								lowerCAmelCase__			:      Optional[Any]								=parse_qs(
								    BeautifulSoup(res.text, 'html.parser')
								    .find('div', attrs={'class': 'kCrYT'})
								    .find('a')
								    .get('href')
								)['url'][0]

				webbrowser.open(link)





