


import os


# All paths are set with the intent you should run this script from the root of the repo with the command
# python utils/check_doctest_list.py
A	:		Optional[Any]    =       '.'


if __name__ == "__main__":
	A	:		str    =       os.path.join(REPO_PATH, 'utils/documentation_tests.txt')
	A	:		Union[str, Any]    =       []
	A	:		List[str]    =       []
	with open(doctest_file_path) as fp:
		for line in fp:
			A	:		Tuple    =       line.strip()
			A	:		str    =       os.path.join(REPO_PATH, line)
			if not (os.path.isfile(path) or os.path.isdir(path)):
				non_existent_paths.append(line)
			all_paths.append(path)
	if len(non_existent_paths) > 0:
		A	:		Dict    =       '\n'.join(non_existent_paths)
		raise ValueError(F'`utils/documentation_tests.txt` contains non-existent paths:\n{non_existent_paths}')
	if all_paths != sorted(all_paths):
		raise ValueError('Files in `utils/documentation_tests.txt` are not in alphabetical order.')





A	:		Tuple    =       'ABCDEFGHIJKLMNOPQRSTUVWXYZ'






def 			UpperCamelCase (     )       ->  None:
		"""simple docstring"""




		lowercase__					      =		input("""Enter message: """					)
		lowercase__					      =		input("""Enter key [alphanumeric]: """					)
		lowercase__					      =		input("""Encrypt/Decrypt [e/d]: """					)

		if mode.lower().startswith("""e"""					):
				lowercase__					      =		"""encrypt"""
				lowercase__					      =		encrypt_message(__magic_name__   ,   __magic_name__					)
		elif mode.lower().startswith("""d"""					):
				lowercase__					      =		"""decrypt"""
				lowercase__					      =		decrypt_message(__magic_name__   ,   __magic_name__					)

		print(f'''\n{mode.title()}ed message:'''					)
		print(__magic_name__					)






def 			UpperCamelCase (     __magic_name__					:							str   ,   __magic_name__					:							str					)       ->  str:
		"""simple docstring"""




		return translate_message(__magic_name__   ,   __magic_name__   ,   """encrypt"""					)






def 			UpperCamelCase (     __magic_name__					:							str   ,   __magic_name__					:							str					)       ->  str:
		"""simple docstring"""




		return translate_message(__magic_name__   ,   __magic_name__   ,   """decrypt"""					)






def 			UpperCamelCase (     __magic_name__					:							str   ,   __magic_name__					:							str   ,   __magic_name__					:							str					)       ->  str:
		"""simple docstring"""




		lowercase__					      =		[]
		lowercase__					      =		0
		lowercase__					      =		key.upper()

		for symbol in message:
				lowercase__					      =		LETTERS.find(symbol.upper()					)
				if num != -1:
						if mode == "encrypt":
								num += LETTERS.find(key[key_index]					)
						elif mode == "decrypt":
								num -= LETTERS.find(key[key_index]					)

						num %= len(__magic_name__					)

						if symbol.isupper():
								translated.append(LETTERS[num]					)
						elif symbol.islower():
								translated.append(LETTERS[num].lower()					)

						key_index += 1
						if key_index == len(__magic_name__					):
								lowercase__					      =		0
				else:
						translated.append(__magic_name__					)
		return "".join(__magic_name__					)


if __name__ == "__main__":
	main()

