





from collections import OrderedDict
from typing import Mapping

from packaging import version

from ...configuration_utils import PretrainedConfig
from ...onnx import OnnxConfig
from ...utils import logging


lowerCAmelCase_    =    logging.get_logger(__name__)

lowerCAmelCase_    =    {
    '''sail/poolformer_s12''': '''https://huggingface.co/sail/poolformer_s12/resolve/main/config.json''',
    # See all PoolFormer models at https://huggingface.co/models?filter=poolformer
}



class  __lowerCAmelCase	(      _snake_case					):
   lowerCamelCase_					:					int	      =				'''poolformer'''






   def __init__(self ,							__magic_name__=3 ,							__magic_name__=16 ,							__magic_name__=16 ,							__magic_name__=3 ,							__magic_name__=4.0 ,							__magic_name__=[2, 2, 6, 2] ,							__magic_name__=[64, 128, 320, 512] ,							__magic_name__=[7, 3, 3, 3] ,							__magic_name__=[4, 2, 2, 2] ,							__magic_name__=[2, 1, 1, 1] ,							__magic_name__=4 ,							__magic_name__=0.0 ,							__magic_name__="gelu" ,							__magic_name__=True ,							__magic_name__=1e-5 ,							__magic_name__=0.02 ,							**__magic_name__ ,							)					->       Optional[int]:


       '''simple docstring'''



       snake_case_						:   Optional[int]           =  num_channels
       snake_case_						:   Tuple           =  patch_size
       snake_case_						:   Optional[Any]           =  stride
       snake_case_						:   Any           =  padding
       snake_case_						:   List[str]           =  pool_size
       snake_case_						:   Optional[int]           =  hidden_sizes
       snake_case_						:   Optional[int]           =  mlp_ratio
       snake_case_						:   Optional[int]           =  depths
       snake_case_						:   Optional[Any]           =  patch_sizes
       snake_case_						:   str           =  strides
       snake_case_						:   Optional[Any]           =  num_encoder_blocks
       snake_case_						:   Optional[int]           =  drop_path_rate
       snake_case_						:   Tuple           =  hidden_act
       snake_case_						:   List[str]           =  use_layer_scale
       snake_case_						:   List[str]           =  layer_scale_init_value
       snake_case_						:   Tuple           =  initializer_range
       super().__init__(**UpperCamelCase__   )




class  __lowerCAmelCase	(      _snake_case					):
   lowerCamelCase_					:					Union[str, Any]	      =				version.parse('''1.11'''					)






   @property
   def       lowerCamelCase  (self   )					->       Mapping[str, Mapping[int, str]]:


       '''simple docstring'''



       return OrderedDict(
           [
               ('''pixel_values''', {0: '''batch''', 1: '''num_channels''', 2: '''height''', 3: '''width'''}),
           ]   )






   @property
   def       lowerCamelCase  (self   )					->       float:


       '''simple docstring'''



       return 2e-3







import time
from contextlib import contextmanager
from pathlib import Path

import pytest
import requests
from huggingface_hub.hf_api import HfApi, HfFolder


lowerCAmelCase_    =    '''__DUMMY_TRANSFORMERS_USER__'''
lowerCAmelCase_    =    '''Dummy User'''
lowerCAmelCase_    =    '''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'''

lowerCAmelCase_    =    '''https://hub-ci.huggingface.co'''
lowerCAmelCase_    =    CI_HUB_ENDPOINT + '''/datasets/{repo_id}/resolve/{revision}/{path}'''
lowerCAmelCase_    =    CI_HUB_ENDPOINT + '''/{repo_id}/resolve/{revision}/{filename}'''
lowerCAmelCase_    =    Path('''~/.huggingface/hub_ci_token''').expanduser()






@pytest.fixture
def 					lowerCamelCase_						(    _UpperCamelCase			)		->						Optional[int]:






				"""simple docstring"""


				monkeypatch.setattr(
				    '''huggingface_hub.file_download.HUGGINGFACE_CO_URL_TEMPLATE'''			,    _UpperCamelCase			)






@pytest.fixture
def 					lowerCamelCase_						(    _UpperCamelCase			)		->						Optional[int]:






				"""simple docstring"""


				monkeypatch.setattr('''datasets.config.HF_ENDPOINT'''			,    _UpperCamelCase			)
				monkeypatch.setattr('''datasets.config.HUB_DATASETS_URL'''			,    _UpperCamelCase			)






@pytest.fixture
def 					lowerCamelCase_						(    _UpperCamelCase			)		->						Any:






				"""simple docstring"""


				monkeypatch.setattr('''huggingface_hub.hf_api.HfFolder.path_token'''			,    _UpperCamelCase			)






@pytest.fixture
def 					lowerCamelCase_						(    _UpperCamelCase			,    _UpperCamelCase			)		->						Optional[Any]:






				"""simple docstring"""


				HfFolder.save_token(_UpperCamelCase			)
				yield
				HfFolder.delete_token()






@pytest.fixture(scope='''session'''			)
def 					lowerCamelCase_						(    )		->						List[str]:






				"""simple docstring"""


				return HfApi(endpoint=_UpperCamelCase			)






@pytest.fixture(scope='''session'''			)
def 					lowerCamelCase_						(    _UpperCamelCase			)		->						Dict:






				"""simple docstring"""


				snake_case_						:   Union[str, Any]           =  HfFolder.get_token()
				HfFolder.save_token(_UpperCamelCase			)
				yield CI_HUB_USER_TOKEN
				if previous_token is not None:
								HfFolder.save_token(_UpperCamelCase			)






@pytest.fixture
def 					lowerCamelCase_						(    _UpperCamelCase			)		->						List[str]:






				"""simple docstring"""


				def _cleanup_repo(_UpperCamelCase			):
								hf_api.delete_repo(_UpperCamelCase			,    token=_UpperCamelCase			,    repo_type='''dataset'''			)

				return _cleanup_repo






@pytest.fixture
def 					lowerCamelCase_						(    _UpperCamelCase			)		->						List[str]:






				"""simple docstring"""


				@contextmanager
				def _temporary_repo(_UpperCamelCase			):
								try:
												yield repo_id
								finally:
												cleanup_repo(_UpperCamelCase			)

				return _temporary_repo






@pytest.fixture(scope='''session'''			)
def 					lowerCamelCase_						(    _UpperCamelCase			,    _UpperCamelCase			,    _UpperCamelCase			)		->						Dict:






				"""simple docstring"""


				snake_case_						:   Optional[int]           =  f'''repo_txt_data-{int(time.time() * 10E3			)}'''
				snake_case_						:   Any           =  f'''{CI_HUB_USER}/{repo_name}'''
				hf_api.create_repo(_UpperCamelCase			,    token=_UpperCamelCase			,    repo_type='''dataset'''			,    private=_UpperCamelCase			)
				hf_api.upload_file(
				    token=_UpperCamelCase			,    path_or_fileobj=str(_UpperCamelCase			)			,    path_in_repo='''data/text_data.txt'''			,    repo_id=_UpperCamelCase			,    repo_type='''dataset'''			,    )
				yield repo_id
				try:
								hf_api.delete_repo(_UpperCamelCase			,    token=_UpperCamelCase			,    repo_type='''dataset'''			)
				except (requests.exceptions.HTTPError, ValueError):  # catch http error and token invalid error
								pass






@pytest.fixture()
def 					lowerCamelCase_						(    _UpperCamelCase			,    _UpperCamelCase			,    _UpperCamelCase			)		->						Dict:






				"""simple docstring"""


				return hf_private_dataset_repo_txt_data_






@pytest.fixture(scope='''session'''			)
def 					lowerCamelCase_						(    _UpperCamelCase			,    _UpperCamelCase			,    _UpperCamelCase			)		->						Optional[Any]:






				"""simple docstring"""


				snake_case_						:   int           =  f'''repo_zipped_txt_data-{int(time.time() * 10E3			)}'''
				snake_case_						:   Tuple           =  f'''{CI_HUB_USER}/{repo_name}'''
				hf_api.create_repo(_UpperCamelCase			,    token=_UpperCamelCase			,    repo_type='''dataset'''			,    private=_UpperCamelCase			)
				hf_api.upload_file(
				    token=_UpperCamelCase			,    path_or_fileobj=str(_UpperCamelCase			)			,    path_in_repo='''data.zip'''			,    repo_id=_UpperCamelCase			,    repo_type='''dataset'''			,    )
				yield repo_id
				try:
								hf_api.delete_repo(_UpperCamelCase			,    token=_UpperCamelCase			,    repo_type='''dataset'''			)
				except (requests.exceptions.HTTPError, ValueError):  # catch http error and token invalid error
								pass






@pytest.fixture()
def 					lowerCamelCase_						(    _UpperCamelCase			,    _UpperCamelCase			,    _UpperCamelCase			)		->						Dict:






				"""simple docstring"""


				return hf_private_dataset_repo_zipped_txt_data_






@pytest.fixture(scope='''session'''			)
def 					lowerCamelCase_						(    _UpperCamelCase			,    _UpperCamelCase			,    _UpperCamelCase			)		->						Optional[Any]:






				"""simple docstring"""


				snake_case_						:   List[str]           =  f'''repo_zipped_img_data-{int(time.time() * 10E3			)}'''
				snake_case_						:   str           =  f'''{CI_HUB_USER}/{repo_name}'''
				hf_api.create_repo(_UpperCamelCase			,    token=_UpperCamelCase			,    repo_type='''dataset'''			,    private=_UpperCamelCase			)
				hf_api.upload_file(
				    token=_UpperCamelCase			,    path_or_fileobj=str(_UpperCamelCase			)			,    path_in_repo='''data.zip'''			,    repo_id=_UpperCamelCase			,    repo_type='''dataset'''			,    )
				yield repo_id
				try:
								hf_api.delete_repo(_UpperCamelCase			,    token=_UpperCamelCase			,    repo_type='''dataset'''			)
				except (requests.exceptions.HTTPError, ValueError):  # catch http error and token invalid error
								pass






@pytest.fixture()
def 					lowerCamelCase_						(    _UpperCamelCase			,    _UpperCamelCase			,    _UpperCamelCase			)		->						int:






				"""simple docstring"""


				return hf_private_dataset_repo_zipped_img_data_
