mirror of
				https://github.com/python/cpython.git
				synced 2025-11-04 11:49:12 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			44 lines
		
	
	
	
		
			1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			44 lines
		
	
	
	
		
			1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
#!/usr/bin/env python3
 | 
						|
"""
 | 
						|
Touch files that must pass Sphinx nit-picky mode
 | 
						|
so they are rebuilt and we can catch regressions.
 | 
						|
"""
 | 
						|
 | 
						|
from pathlib import Path
 | 
						|
 | 
						|
wrong_directory_msg = "Must run this script from the repo root"
 | 
						|
assert Path("Doc").exists() and Path("Doc").is_dir(), wrong_directory_msg
 | 
						|
 | 
						|
# Exclude these whether they're dirty or clean,
 | 
						|
# because they trigger a rebuild of dirty files.
 | 
						|
EXCLUDE_FILES = {
 | 
						|
    Path("Doc/whatsnew/changelog.rst"),
 | 
						|
}
 | 
						|
 | 
						|
# Subdirectories of Doc/ to exclude.
 | 
						|
EXCLUDE_SUBDIRS = {
 | 
						|
    ".env",
 | 
						|
    ".venv",
 | 
						|
    "env",
 | 
						|
    "includes",
 | 
						|
    "venv",
 | 
						|
}
 | 
						|
 | 
						|
ALL_RST = {
 | 
						|
    rst for rst in Path("Doc/").rglob("*.rst") if rst.parts[1] not in EXCLUDE_SUBDIRS
 | 
						|
}
 | 
						|
 | 
						|
with Path("Doc/tools/.nitignore").open() as clean_files:
 | 
						|
    DIRTY = {
 | 
						|
        Path(filename.strip())
 | 
						|
        for filename in clean_files
 | 
						|
        if filename.strip() and not filename.startswith("#")
 | 
						|
    }
 | 
						|
 | 
						|
CLEAN = ALL_RST - DIRTY - EXCLUDE_FILES
 | 
						|
 | 
						|
print("Touching:")
 | 
						|
for filename in sorted(CLEAN):
 | 
						|
    print(filename)
 | 
						|
    filename.touch()
 | 
						|
print(f"Touched {len(CLEAN)} files")
 |