PhysLean/scripts/check-file-import.py
2024-05-14 10:42:43 -04:00

63 lines
No EOL
1.7 KiB
Python

#!/usr/bin/env python3
"""
This file locally checks if all files in the HepLean directory are imported correctly in
the HepLean.lean file.
"""
import os
import re
directory = "./HepLean/"
files = []
for root, _, filenames in os.walk(directory):
for filename in filenames:
if filename.endswith(".lean"):
files.append(os.path.join(root, filename))
with open("./HepLean.lean", 'r') as f:
content = f.read()
imports = []
for line in content.split('\n'):
match = re.match(r'import\s+(.*)', line)
if match:
imports.append(match.group(1))
files_as_imports = []
for file in files:
file_name = file
file_name = file.replace("./", "").replace("/", ".").replace(".lean", "")
files_as_imports.append(file_name)
files_as_imports.sort()
a = [0,3,2]
def file_check(imports, files_as_imports):
fail = False
if imports != sorted(imports):
print("The imports list is not sorted.")
fail = True
to_add = []
for file in files_as_imports:
if file not in imports:
fail = True
to_add.append(file)
to_delete = []
for file in imports:
if file not in files_as_imports:
fail = True
to_delete.append(file)
if len(to_add) != 0 :
print("The following files are not imported: ")
for f in to_add:
print(f)
if len(to_delete) != 0 :
print("The following files should be deleted from HepLean.lean: ")
for f in to_delete:
print(f)
if not fail:
print("All files are imported correctly.")
print ("----- Local import check of files: ")
file_check(imports, files_as_imports)
print ("----- End of local import check of files ")