



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      (   SCREAMING_SNAKE_CASE):







							'''simple docstring'''






							UpperCamelCase__         =					"""falcon"""
							UpperCamelCase__         =					["""past_key_values"""]


							def __init__(							self  ,  a_=65_024  ,  a_=4_544  ,  a_=32  ,  a_=71  ,  a_=1E-5  ,  a_=0.02  ,  a_=True  ,  a_=0.0  ,  a_=0.0  ,  a_=None  ,  a_=False  ,  a_=False  ,  a_=True  ,  a_=True  ,  a_=False  ,  a_=11  ,  a_=11  ,  **a_  ,  ):
											a__				      =		vocab_size
											# Backward compatibility with n_embed kwarg
											a__				      =		kwargs.pop("""n_embed"""  ,  UpperCAmelCase__		)
											a__				      =		hidden_size if n_embed is None else n_embed
											a__				      =		num_hidden_layers
											a__				      =		num_attention_heads
											a__				      =		layer_norm_epsilon
											a__				      =		initializer_range
											a__				      =		use_cache
											a__				      =		hidden_dropout
											a__				      =		attention_dropout

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

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


							@property
							def _a      (							self		):
											return self.hidden_size // self.num_attention_heads







							@property
							def _a      (							self		):
											return not self.alibi






def 			A_      (	__a     :				str = "The quick brown fox jumps over the lazy dog" ,		):

				"""simple docstring"""
				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(__a		) == 26

def 			A_      (	__a     :				str = "The quick brown fox jumps over the lazy dog" ,		):

				"""simple docstring"""
				a__				      =		[False] * 26
				for char in input_str:
								if char.islower():
												a__				      =		True
								elif char.isupper():
												a__				      =		True
				return all(__a		)

def 			A_      (	__a     :				str = "The quick brown fox jumps over the lazy dog" ,		):

				"""simple docstring"""
				return len({char for char in input_str.lower() if char.isalpha()}		) == 26

def 			A_      (	):

				"""simple docstring"""
				from timeit import timeit

				a__				      =		"""from __main__ import is_pangram, is_pangram_faster, is_pangram_fastest"""
				print(timeit("""is_pangram()""" ,		setup=__a		)		)
				print(timeit("""is_pangram_faster()""" ,		setup=__a		)		)
				print(timeit("""is_pangram_fastest()""" ,		setup=__a		)		)
				# 5.348480500048026, 2.6477354579837993, 1.8470395830227062
				# 5.036091582966037, 2.644472333951853,  1.8869528750656173


if __name__ == "__main__":
	import doctest

	doctest.testmod()
	benchmark()

