
"""simple docstring"""





from string import ascii_uppercase

_a		       =							{str(ord(c) - 55): c for c in ascii_uppercase}







def 	__a     (		__lowerCamelCase,		__lowerCamelCase  ):
   if isinstance(__lowerCamelCase,		__lowerCamelCase  ):
      raise TypeError("int() can't convert non-string with explicit base"  )
   if num < 0:
      raise ValueError("parameter must be positive int"  )
   if isinstance(__lowerCamelCase,		__lowerCamelCase  ):
      raise TypeError("'str' object cannot be interpreted as an integer"  )
   if isinstance(__lowerCamelCase,		__lowerCamelCase  ):
      raise TypeError("'float' object cannot be interpreted as an integer"  )
   if base in (0, 1):
      raise ValueError("base must be >= 2"  )
   if base > 36:
      raise ValueError("base must be <= 36"  )
   UpperCAmelCase_					:					Optional[Any]			     =    ""
   UpperCAmelCase_					:					int			     =    0
   UpperCAmelCase_					:					str			     =    0
   while div != 1:
      UpperCAmelCase_     ,   UpperCAmelCase_					:					str			     =    divmod(__lowerCamelCase,		__lowerCamelCase  )
      if base >= 11 and 9 < mod < 36:
         UpperCAmelCase_					:					Tuple			     =    ALPHABET_VALUES[str(__lowerCamelCase  )]
      else:
         UpperCAmelCase_					:					int			     =    str(__lowerCamelCase  )
      new_value += actual_value
      UpperCAmelCase_					:					Any			     =    num // base
      UpperCAmelCase_					:					Optional[int]			     =    div
      if div == 0:
         return str(new_value[::-1]  )
      elif div == 1:
         new_value += str(__lowerCamelCase  )
         return str(new_value[::-1]  )

   return new_value[::-1]


if __name__ == "__main__":
    import doctest

    doctest.testmod()

    for base in range(2, 37):
        for num in range(1_000):
            assert int(decimal_to_any(num, base), base) == num, (
                num,
                base,
                decimal_to_any(num, base),
                int(decimal_to_any(num, base), base),
            )






import sys

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

snake_case							:       List[str]     			=      '''python tqdm regex requests packaging filelock numpy tokenizers'''.split()
if sys.version_info < (3, 7):
						pkgs_to_check_at_runtime.append('''dataclasses''')
if sys.version_info < (3, 8):
						pkgs_to_check_at_runtime.append('''importlib_metadata''')

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

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






def 							__lowercase   ( __lowerCAmelCase							:				Optional[Any]					,    __lowerCAmelCase							:				Tuple=None   ):
							require_version(deps[pkg]					,    __lowerCAmelCase   )




