

from ...configuration_utils import PretrainedConfig
from ...utils import logging


UpperCamelCase__		 =     logging.get_logger(__name__)

UpperCamelCase__		 =     {
    'tiiuae/falcon-40b': 'https://huggingface.co/tiiuae/falcon-40b/resolve/main/config.json',
    'tiiuae/falcon-7b': 'https://huggingface.co/tiiuae/falcon-7b/resolve/main/config.json',
}

class     __snake_case    (				UpperCamelCase__  ):
       """simple docstring"""







       __SCREAMING_SNAKE_CASE				    =							"falcon"
       __SCREAMING_SNAKE_CASE				    =							["past_key_values"]


       def __init__(		self      , _UpperCamelCase=6_50_24      , _UpperCamelCase=45_44      , _UpperCamelCase=32      , _UpperCamelCase=71      , _UpperCamelCase=1E-5      , _UpperCamelCase=0.02      , _UpperCamelCase=True      , _UpperCamelCase=0.0      , _UpperCamelCase=0.0      , _UpperCamelCase=None      , _UpperCamelCase=False      , _UpperCamelCase=False      , _UpperCamelCase=True      , _UpperCamelCase=True      , _UpperCamelCase=False      , _UpperCamelCase=11      , _UpperCamelCase=11      , **_UpperCamelCase      , )      ->							Optional[Any]:






              """simple docstring"""


              __snake_case       	=							vocab_size
              # Backward compatibility with n_embed kwarg
              __snake_case       	=							kwargs.pop("""n_embed"""      , __lowerCamelCase   )
              __snake_case       	=							hidden_size if n_embed is None else n_embed
              __snake_case       	=							num_hidden_layers
              __snake_case       	=							num_attention_heads
              __snake_case       	=							layer_norm_epsilon
              __snake_case       	=							initializer_range
              __snake_case       	=							use_cache
              __snake_case       	=							hidden_dropout
              __snake_case       	=							attention_dropout

              __snake_case       	=							bos_token_id
              __snake_case       	=							eos_token_id
              __snake_case       	=							num_attention_heads if num_kv_heads is None else num_kv_heads
              __snake_case       	=							alibi
              __snake_case       	=							new_decoder_architecture
              __snake_case       	=							multi_query  # Ignored when new_decoder_architecture is True
              __snake_case       	=							parallel_attn
              __snake_case       	=							bias

              super().__init__(bos_token_id=__lowerCamelCase      , eos_token_id=__lowerCamelCase      , **__lowerCamelCase   )


       @property
       def 			a		(		self   )      ->							Dict:






              """simple docstring"""


              return self.hidden_size // self.num_attention_heads






       @property
       def 			a		(		self   )      ->							str:






              """simple docstring"""


              return not self.alibi








def       UpperCamelCase__(			UpperCamelCase__     :			str = "The quick brown fox jumps over the lazy dog"					,	)->bool:
       A__		   =		set()

       # Replace all the whitespace in our sentence
       A__		   =		input_str.replace(''' '''					,	''''''    )
       for alpha in input_str:
              if "a" <= alpha.lower() <= "z":
                     frequency.add(alpha.lower()    )
       return len(UpperCamelCase__    ) == 26


def       UpperCamelCase__(			UpperCamelCase__     :			str = "The quick brown fox jumps over the lazy dog"					,	)->bool:
       A__		   =		[False] * 26
       for char in input_str:
              if char.islower():
                     A__		   =		True
              elif char.isupper():
                     A__		   =		True
       return all(UpperCamelCase__    )


def       UpperCamelCase__(			UpperCamelCase__     :			str = "The quick brown fox jumps over the lazy dog"					,	)->bool:
       return len({char for char in input_str.lower() if char.isalpha()}    ) == 26


def       UpperCamelCase__(			)->None:
       from timeit import timeit

       A__		   =		'''from __main__ import is_pangram, is_pangram_faster, is_pangram_fastest'''
       print(timeit('''is_pangram()'''					,	setup=UpperCamelCase__    )    )
       print(timeit('''is_pangram_faster()'''					,	setup=UpperCamelCase__    )    )
       print(timeit('''is_pangram_fastest()'''					,	setup=UpperCamelCase__    )    )
       # 5.348480500048026, 2.6477354579837993, 1.8470395830227062
       # 5.036091582966037, 2.644472333951853,  1.8869528750656173


if __name__ == "__main__":
       import doctest

       doctest.testmod()
       benchmark()





