


'''simple docstring'''



import importlib.metadata
import sys

from transformers.testing_utils import TestCasePlus
from transformers.utils.versions import require_version, require_version_core


__UpperCAmelCase     :Tuple												=  importlib.metadata.version("numpy")
__UpperCAmelCase     :str												=  ".".join([str(x) for x in sys.version_info[:3]])



class       a							(						_a			):


     """simple docstring"""






     def 					lowerCamelCase__					(							self	:						List[str]     )		->				List[Any]:
          # lt + different version strings
          require_version_core('''numpy<1000.4.5'''     )
          require_version_core('''numpy<1000.4'''     )
          require_version_core('''numpy<1000'''     )

          # le
          require_version_core('''numpy<=1000.4.5'''     )
          require_version_core(f'numpy<={numpy_ver}'     )

          # eq
          require_version_core(f'numpy=={numpy_ver}'     )

          # ne
          require_version_core('''numpy!=1000.4.5'''     )

          # ge
          require_version_core('''numpy>=1.0'''     )
          require_version_core('''numpy>=1.0.0'''     )
          require_version_core(f'numpy>={numpy_ver}'     )

          # gt
          require_version_core('''numpy>1.0.0'''     )

          # mix
          require_version_core('''numpy>1.0.0,<1000'''     )

          # requirement w/o version
          require_version_core('''numpy'''     )

          # unmet requirements due to version conflict
          for req in ["numpy==1.0.0", "numpy>=1000.0.0", f'numpy<{numpy_ver}']:
               try:
                    require_version_core(snake_case     )
               except ImportError as e:
                    self.assertIn(f'{req} is required'				,					str(snake_case     )     )
                    self.assertIn('''but found'''				,					str(snake_case     )     )

        # unmet requirements due to missing module
          for req in ["numpipypie>1", "numpipypie2"]:
               try:
                    require_version_core(snake_case     )
               except importlib.metadata.PackageNotFoundError as e:
                    self.assertIn(f'The \'{req}\' distribution was not found and is required by this application'				,					str(snake_case     )     )
                    self.assertIn('''Try: pip install transformers -U'''				,					str(snake_case     )     )

        # bogus requirements formats:
        # 1. whole thing
          for req in ["numpy??1.0.0", "numpy1.0.0"]:
               try:
                    require_version_core(snake_case     )
               except ValueError as e:
                    self.assertIn('''requirement needs to be in the pip package format'''				,					str(snake_case     )     )
        # 2. only operators
          for req in ["numpy=1.0.0", "numpy == 1.00", "numpy<>1.0.0", "numpy><1.00", "numpy>>1.0.0"]:
               try:
                    require_version_core(snake_case     )
               except ValueError as e:
                    self.assertIn('''need one of '''				,					str(snake_case     )     )






     def 					lowerCamelCase__					(							self	:						Union[str, Any]     )		->				int:
          # matching requirement
          require_version('''python>=3.6.0'''     )

          # not matching requirements
          for req in ["python>9.9.9", "python<3.0.0"]:
               try:
                    require_version_core(snake_case     )
               except ImportError as e:
                    self.assertIn(f'{req} is required'				,					str(snake_case     )     )
                    self.assertIn(f'but found python=={python_ver}'				,					str(snake_case     )     )



'''simple docstring'''



import re




def       _a      (		_lowercase   :      List[Any]    ):





     '''simple docstring'''






     def docstring_decorator(_lowercase   :      str    ):
          __UpperCAmelCase      :					Tuple    				=     fn.__doc__
          __UpperCAmelCase      :					Tuple    				=     func_doc.split('''\n'''    )
          __UpperCAmelCase      :					Optional[Any]    				=     0
          while i < len(_lowercase    ) and re.search(R'''^\s*Examples?:\s*$'''     ,   lines[i]    ) is None:
               i += 1
          if i < len(_lowercase    ):
               __UpperCAmelCase      :					Optional[int]    				=     example_docstring
               __UpperCAmelCase      :					Tuple    				=     '''\n'''.join(_lowercase    )
          else:
               raise ValueError(
                   F'The function {fn} should have an empty \'Examples:\' in its docstring as placeholder, '
                   F'current docstring is:\n{func_doc}'    )
          __UpperCAmelCase      :					Tuple    				=     func_doc
          return fn

     return docstring_decorator