


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							:	Optional[int]					      =				'''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							:    Any ,   __lowerCAmelCase							:    Optional[Any]=None       ):
							require_version(deps[pkg] ,   __lowerCAmelCase       )








snake_case							:	str					      =				{
    0: '''0''',
    1: '''1''',
    2: '''2''',
    3: '''3''',
    4: '''4''',
    5: '''5''',
    6: '''6''',
    7: '''7''',
    8: '''8''',
    9: '''9''',
    10: '''a''',
    11: '''b''',
    12: '''c''',
    13: '''d''',
    14: '''e''',
    15: '''f''',
}






def 							__lowercase       (			__lowerCAmelCase							:    float       ):
							assert type(__lowerCAmelCase       ) in (int, float) and decimal == int(__lowerCAmelCase       )
							a__					=					int(__lowerCAmelCase       )
							a__					=					''
							a__					=					False
							if decimal < 0:
														a__					=					True
														decimal *= -1
							while decimal > 0:
														a__				, a__					=					divmod(__lowerCAmelCase ,   1_6       )
														a__					=					values[remainder] + hexadecimal
							a__					=					'0x' + hexadecimal
							if negative:
														a__					=					'-' + hexadecimal
							return hexadecimal


if __name__ == "__main__":
						import doctest

						doctest.testmod()




