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


lowercase__		:Optional[int]   =    logging.get_logger(__name__)

lowercase__		:Any   =    {
    "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 				lowercase		(					SCREAMING_SNAKE_CASE__		):
							lowercase_       :       Optional[Any]       					='''falcon'''
							lowercase_       :       Union[str, Any]       					=['''past_key_values''']




							def __init__(				self   ,A__=6_5_0_2_4   ,A__=4_5_4_4   ,A__=3_2   ,A__=7_1   ,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__=1_1   ,A__=1_1   ,**A__   ,):
												lowercase							=						vocab_size
												# Backward compatibility with n_embed kwarg
												lowercase							=						kwargs.pop('''n_embed'''   ,A__)
												lowercase							=						hidden_size if n_embed is None else n_embed
												lowercase							=						num_hidden_layers
												lowercase							=						num_attention_heads
												lowercase							=						layer_norm_epsilon
												lowercase							=						initializer_range
												lowercase							=						use_cache
												lowercase							=						hidden_dropout
												lowercase							=						attention_dropout

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

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




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





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






from __future__ import annotations

lowercase__		:Any   =    1.60_21E-19  # units = C



def        UpperCamelCase    (							lowerCAmelCase__ ,			lowerCAmelCase__ ,			lowerCAmelCase__ ,			):
					'''simple docstring'''
					if (conductivity, electron_conc, mobility).count(0		) != 1:
										raise ValueError('''You cannot supply more or less than 2 values'''		)
					elif conductivity < 0:
										raise ValueError('''Conductivity cannot be negative'''		)
					elif electron_conc < 0:
										raise ValueError('''Electron concentration cannot be negative'''		)
					elif mobility < 0:
										raise ValueError('''mobility cannot be negative'''		)
					elif conductivity == 0:
										return (
										    "conductivity",
										    mobility * electron_conc * ELECTRON_CHARGE,
										)
					elif electron_conc == 0:
										return (
										    "electron_conc",
										    conductivity / (mobility * ELECTRON_CHARGE),
										)
					else:
										return (
										    "mobility",
										    conductivity / (electron_conc * ELECTRON_CHARGE),
										)


if __name__ == "__main__":
							import doctest

							doctest.testmod()




