





import argparse
import importlib
from pathlib import Path


# Test all the extensions added in the setup
lowerCAmelCase_						   =    [
    """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:	str				)->		int:






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


if __name__ == "__main__":
      lowerCAmelCase_						   =    argparse.ArgumentParser()
      parser.add_argument("""--check_lib""", action="""store_true""", help="""Whether to check the build or the actual package.""")
      lowerCAmelCase_						   =    parser.parse_args()
      if args.check_lib:
            lowerCAmelCase_						   =    importlib.import_module("""transformers""")
            lowerCAmelCase_						   =    Path(transformers_module.__file__).parent
      else:
            lowerCAmelCase_						   =    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!""")











def     lowerCamelCase_	(      lowerCAmelCase:	bytes				)->		str:
  return "".join([hex(lowerCAmelCase				)[2:].zfill(2				).upper() for byte in list(lowerCAmelCase				)]				)


def     lowerCamelCase_	(      lowerCAmelCase:	str				)->		bytes:
  # Check data validity, following RFC3548
  # https://www.ietf.org/rfc/rfc3548.txt
  if (len(lowerCAmelCase				) % 2) != 0:
    raise ValueError(
        'Base16 encoded data is invalid:\nData does not have an even number of hex digits.'				)
  # Check the character set - the standard base16 alphabet
  # is uppercase according to RFC3548 section 6
  if not set(lowerCAmelCase				) <= set('0123456789ABCDEF'				):
    raise ValueError(
        'Base16 encoded data is invalid:\nData is not uppercase hex or it contains invalid characters.'				)
  # For every two hexadecimal digits (= a byte), turn it into an integer.
  # Then, string the result together into bytes, and return it.
  return bytes(int(data[i] + data[i + 1]    ,							16				) for i in range(0    ,							len(lowerCAmelCase				)    ,							2				)				)


if __name__ == "__main__":
      import doctest

      doctest.testmod()




