

from functools import lru_cache

@lru_cache
def 		UpperCamelCase      (lowercase_:				int      )  ->   int:
	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()






import os

try:
	from .build_directory_md import good_file_paths
except ImportError:
	from build_directory_md import good_file_paths  # type: ignore

A_ :				Dict						 =    list(good_file_paths())
assert filepaths, "good_file_paths() failed!"

A_ :				Optional[Any]						 =    [file for file in filepaths if file != file.lower()]
if upper_files:
	print(f'''{len(upper_files)} files contain uppercase characters:''')
	print('\n'.join(upper_files) + '\n')

A_ :				Tuple						 =    [file for file in filepaths if ' ' in file]
if space_files:
	print(f'''{len(space_files)} files contain space characters:''')
	print('\n'.join(space_files) + '\n')

A_ :				Any						 =    [file for file in filepaths if '-' in file]
if hyphen_files:
	print(f'''{len(hyphen_files)} files contain hyphen characters:''')
	print('\n'.join(hyphen_files) + '\n')

A_ :				List[str]						 =    [file for file in filepaths if os.sep not in file]
if nodir_files:
	print(f'''{len(nodir_files)} files are not in a directory:''')
	print('\n'.join(nodir_files) + '\n')

A_ :				Any						 =    len(upper_files + space_files + hyphen_files + nodir_files)
if bad_files:
	import sys

	sys.exit(bad_files)



