

from decimal import Decimal, getcontext
from math import ceil, factorial
def 	a (     A__      :  int	)       -> str:





      """simple docstring"""



      if not isinstance(UpperCAmelCase_ ,  UpperCAmelCase_	):
            raise TypeError('Undefined for non-integers'	)
      elif precision < 1:
            raise ValueError('Undefined for non-natural numbers'	)

      _lowercase      			=precision
      _lowercase      			=ceil(precision / 14	)
      _lowercase      			=426880 * Decimal(10005	).sqrt()
      _lowercase      			=1
      _lowercase      			=13591409
      _lowercase      			=Decimal(UpperCAmelCase_	)
      for k in range(1 ,  UpperCAmelCase_	):
            _lowercase      			=factorial(6 * k	) // (factorial(3 * k	) * factorial(UpperCAmelCase_	) ** 3)
            linear_term += 545140134
            exponential_term *= -262537412640768000
            partial_sum += Decimal(multinomial_term * linear_term	) / exponential_term
      return str(constant_term / partial_sum	)[:-1]


if __name__ == "__main__":
  lowercase_   							=  5_0
  print(f"The first {n} digits of pi is: {pi(n)}")






'''simple docstring'''



from .dependency_versions_table import deps
from .utils.versions import require_version, require_version_core


# define which module versions we always want to check at run time
# (usually the ones defined in `install_requires` in setup.py)
#
# order specific notes:
# - tqdm must be checked before tokenizers

A__						:   Dict				=    [
    """python""",
    """tqdm""",
    """regex""",
    """requests""",
    """packaging""",
    """filelock""",
    """numpy""",
    """tokenizers""",
    """huggingface-hub""",
    """safetensors""",
    """accelerate""",
    """pyyaml""",
]

for pkg in pkgs_to_check_at_runtime:
      if pkg in deps:
            if pkg == "tokenizers":
                  # must be loaded here, or else tqdm check may fail
                  from .utils import is_tokenizers_available

                  if not is_tokenizers_available():
                        continue  # not required, check version only if installed
            elif pkg == "accelerate":
                  # must be loaded here, or else tqdm check may fail
                  from .utils import is_accelerate_available

                  # Maybe switch to is_torch_available in the future here so that Accelerate is hard dep of
                  # Transformers with PyTorch
                  if not is_accelerate_available():
                        continue  # not required, check version only if installed

            require_version_core(deps[pkg])
      else:
            raise ValueError(f'''can\'t find {pkg} in {deps.keys()}, check dependency_versions_table.py''')



def      UpperCAmelCase__   (      UpperCAmelCase_       :							List[Any] ,       UpperCAmelCase_       :							List[Any]=None				)	->						List[Any]:
     require_version(deps[pkg] ,       UpperCAmelCase_				)






