import argparse
import importlib
from pathlib import Path


# Test all the extensions added in the setup
__snake_case						=			[
    '''kernels/rwkv/wkv_cuda.cu''',
    '''kernels/rwkv/wkv_op.cpp''',
    '''kernels/deformable_detr/ms_deform_attn.h''',
    '''kernels/deformable_detr/cuda/ms_deform_im2col_cuda.cuh''',
    '''models/graphormer/algos_graphormer.pyx''',
]





def      lowerCAmelCase_       ( __lowerCAmelCase  )->     Tuple:






      '''simple docstring'''





      for file in FILES_TO_FIND:
            if not (transformers_path / file).exists():
                  return False
      return True


if __name__ == "__main__":
     __snake_case						=			argparse.ArgumentParser()
     parser.add_argument('''--check_lib''', action='''store_true''', help='''Whether to check the build or the actual package.''')
     __snake_case						=			parser.parse_args()
     if args.check_lib:
          __snake_case						=			importlib.import_module('''transformers''')
          __snake_case						=			Path(transformers_module.__file__).parent
     else:
          __snake_case						=			Path.cwd() / '''build/lib/transformers'''
     if not test_custom_files_are_present(transformers_path):
          raise ValueError('''The built release does not contain the custom files. Fix this before going further!''')

from functools import lru_cache




@lru_cache
def       _snake_case	(   lowerCAmelCase							:   int	):
		"""simple docstring"""







		if num < 0:
				raise ValueError("Number should not be negative."	)

		return 1 if num in (0, 1) else num * factorial(num - 1	)


if __name__ == "__main__":
		import doctest

		doctest.testmod()
