'''simple docstring'''




import argparse
import os
import re

import packaging.version


_A								=   'examples/'
_A								=   {
    'examples': (re.compile(R'^check_min_version\(\"[^\"]+\"\)\s*$', re.MULTILINE), 'check_min_version(\"VERSION\")\n'),
    'init': (re.compile(R'^__version__\s+=\s+\"([^\"]+)\"\s*$', re.MULTILINE), '__version__ = \"VERSION\"\n'),
    'setup': (re.compile(R'^(\s*)version\s*=\s*\"[^\"]+\",', re.MULTILINE), R'\1version=\"VERSION\",'),
    'doc': (re.compile(R'^(\s*)release\s*=\s*\"[^\"]+\"$', re.MULTILINE), 'release = \"VERSION\"\n'),
}
_A								=   {
    'init': 'src/transformers/__init__.py',
    'setup': 'setup.py',
}
_A								=   'README.md'

def _UpperCamelCase   (       SCREAMING_SNAKE_CASE_  ,       SCREAMING_SNAKE_CASE_  ,       SCREAMING_SNAKE_CASE_							):






     with open(__SCREAMING_SNAKE_CASE  ,       'r'  ,       encoding='utf-8'  ,       newline='\n'							) as f:
          lowercase_					:       Dict     				=					f.read()
     lowercase_					:       int     				=					REPLACE_PATTERNS[pattern]
     lowercase_					:       int     				=					replace.replace('VERSION'  ,       __SCREAMING_SNAKE_CASE							)
     lowercase_					:       Any     				=					re_pattern.sub(__SCREAMING_SNAKE_CASE  ,       __SCREAMING_SNAKE_CASE							)
     with open(__SCREAMING_SNAKE_CASE  ,       'w'  ,       encoding='utf-8'  ,       newline='\n'							) as f:
          f.write(__SCREAMING_SNAKE_CASE							)

def _UpperCamelCase   (       SCREAMING_SNAKE_CASE_							):






     for folder, directories, fnames in os.walk(__SCREAMING_SNAKE_CASE							):
          # Removing some of the folders with non-actively maintained examples from the walk
          if "research_projects" in directories:
               directories.remove('research_projects'							)
          if "legacy" in directories:
               directories.remove('legacy'							)
          for fname in fnames:
               if fname.endswith('.py'							):
                    update_version_in_file(os.path.join(__SCREAMING_SNAKE_CASE  ,       __SCREAMING_SNAKE_CASE							)  ,       __SCREAMING_SNAKE_CASE  ,       pattern='examples'							)

def _UpperCamelCase   (       SCREAMING_SNAKE_CASE_  ,       SCREAMING_SNAKE_CASE_=False							):






     for pattern, fname in REPLACE_FILES.items():
          update_version_in_file(__SCREAMING_SNAKE_CASE  ,       __SCREAMING_SNAKE_CASE  ,       __SCREAMING_SNAKE_CASE							)
     if not patch:
          update_version_in_examples(__SCREAMING_SNAKE_CASE							)

def _UpperCamelCase   (       ):
     lowercase_					:       Union[str, Any]     				=					"🤗 Transformers currently provides the following architectures"
     lowercase_					:       str     				=					"1. Want to contribute a new model?"
     with open(__SCREAMING_SNAKE_CASE  ,       'r'  ,       encoding='utf-8'  ,       newline='\n'							) as f:
          lowercase_					:       int     				=					f.readlines()

     # Find the start of the list.
     lowercase_					:       str     				=					0
     while not lines[start_index].startswith(_start_prompt							):
          start_index += 1
     start_index += 1

     lowercase_					:       List[str]     				=					start_index
     # Update the lines in the model list.
     while not lines[index].startswith(_end_prompt							):
          if lines[index].startswith('1.'							):
               lowercase_					:       int     				=					lines[index].replace(
                   'https://huggingface.co/docs/transformers/main/model_doc'  ,       'https://huggingface.co/docs/transformers/model_doc'  ,       )
          index += 1

     with open(__SCREAMING_SNAKE_CASE  ,       'w'  ,       encoding='utf-8'  ,       newline='\n'							) as f:
          f.writelines(__SCREAMING_SNAKE_CASE							)

def _UpperCamelCase   (       ):






     with open(REPLACE_FILES['init']  ,       'r'							) as f:
          lowercase_					:       Tuple     				=					f.read()
     lowercase_					:       List[Any]     				=					REPLACE_PATTERNS["init"][0].search(__SCREAMING_SNAKE_CASE							).groups()[0]
     return packaging.version.parse(__SCREAMING_SNAKE_CASE							)

def _UpperCamelCase   (       SCREAMING_SNAKE_CASE_=False							):
     lowercase_					:       List[Any]     				=					get_version()
     if patch and default_version.is_devrelease:
          raise ValueError('Can\'t create a patch version from the dev branch, checkout a released version!'							)
     if default_version.is_devrelease:
          lowercase_					:       Any     				=					default_version.base_version
     elif patch:
          lowercase_					:       List[Any]     				=					f'''{default_version.major}.{default_version.minor}.{default_version.micro + 1}'''
     else:
          lowercase_					:       str     				=					f'''{default_version.major}.{default_version.minor + 1}.0'''

     # Now let's ask nicely if that's the right one.
     lowercase_					:       Optional[Any]     				=					input(f'''Which version are you releasing? [{default_version}]'''							)
     if len(__SCREAMING_SNAKE_CASE							) == 0:
          lowercase_					:       Any     				=					default_version

     print(f'''Updating version to {version}.'''							)
     global_version_update(__SCREAMING_SNAKE_CASE  ,       patch=__SCREAMING_SNAKE_CASE							)
     if not patch:
          print('Cleaning main README, don\'t forget to run `make fix-copies`.'							)
          clean_main_ref_in_model_list()

def _UpperCamelCase   (       ):
     lowercase_					:       int     				=					get_version()
     lowercase_					:       Tuple     				=					f'''{current_version.major}.{current_version.minor + 1}.0.dev0'''
     lowercase_					:       Optional[Any]     				=					current_version.base_version

     # Check with the user we got that right.
     lowercase_					:       Tuple     				=					input(f'''Which version are we developing now? [{dev_version}]'''							)
     if len(__SCREAMING_SNAKE_CASE							) == 0:
          lowercase_					:       Union[str, Any]     				=					dev_version

     print(f'''Updating version to {version}.'''							)
     global_version_update(__SCREAMING_SNAKE_CASE							)
     print('Cleaning main README, don\'t forget to run `make fix-copies`.'							)
     clean_main_ref_in_model_list()


if __name__ == "__main__":
 _A								=   argparse.ArgumentParser()
 parser.add_argument('--post_release', action='store_true', help='Whether this is pre or post release.')
 parser.add_argument('--patch', action='store_true', help='Whether or not this is a patch release.')
 _A								=   parser.parse_args()
 if not args.post_release:
  pre_release_work(patch=args.patch)
 elif args.patch:
  print('Nothing to do after a patch :-)')
 else:
  post_release_work()







'''simple docstring'''




from decimal import Decimal, getcontext
from math import ceil, factorial

def _UpperCamelCase   (       SCREAMING_SNAKE_CASE_							):

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

     lowercase_					:       str     				=					precision
     lowercase_					:       List[str]     				=					ceil(precision / 14							)
     lowercase_					:       Union[str, Any]     				=					426_880 * Decimal(10_005							).sqrt()
     lowercase_					:       List[Any]     				=					1
     lowercase_					:       Optional[int]     				=					13_591_409
     lowercase_					:       Dict     				=					Decimal(SCREAMING_SNAKE_CASE_							)
     for k in range(1  ,       SCREAMING_SNAKE_CASE_							):
          lowercase_					:       List[str]     				=					factorial(6 * k							) // (factorial(3 * k							) * factorial(SCREAMING_SNAKE_CASE_							) ** 3)
          linear_term += 545_140_134
          exponential_term *= -262_537_412_640_768_000
          partial_sum += Decimal(multinomial_term * linear_term							) / exponential_term
     return str(constant_term / partial_sum							)[:-1]


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




