style: Format watch.py with black and add newlines between functions

This commit is contained in:
Paul Gauthier (aider) 2024-10-25 09:41:33 -07:00
parent 81903598a8
commit 21876e72fe

View file

@ -1,7 +1,9 @@
from pathlib import Path
from typing import Set
from watchfiles import watch
def is_source_file(path: Path) -> bool:
"""
Check if a file is a source file that uses # or // style comments.
@ -9,20 +11,42 @@ def is_source_file(path: Path) -> bool:
"""
COMMENT_STYLE_EXTENSIONS = {
# # style comments
'.py', '.r', '.rb', '.pl', '.pm', '.sh', '.bash', '.yaml', '.yml',
".py",
".r",
".rb",
".pl",
".pm",
".sh",
".bash",
".yaml",
".yml",
# // style comments
'.js', '.ts', '.jsx', '.tsx', '.cpp', '.c', '.h', '.hpp', '.java',
'.swift', '.kt', '.cs', '.go', '.rs', '.php'
".js",
".ts",
".jsx",
".tsx",
".cpp",
".c",
".h",
".hpp",
".java",
".swift",
".kt",
".cs",
".go",
".rs",
".php",
}
return path.suffix.lower() in COMMENT_STYLE_EXTENSIONS
def watch_source_files(directory: str) -> Set[str]:
"""
Watch for changes to source files in the given directory and its subdirectories.
Returns a set of changed file paths whenever changes are detected.
"""
root = Path(directory)
# Create a filter function that only accepts source files
def filter_func(change_type, path):
return is_source_file(Path(path))
@ -33,17 +57,18 @@ def watch_source_files(directory: str) -> Set[str]:
changed_files = {str(Path(change[1])) for change in changes}
yield changed_files
def main():
"""Example usage of the file watcher"""
import sys
if len(sys.argv) != 2:
print("Usage: python watch.py <directory>")
sys.exit(1)
directory = sys.argv[1]
print(f"Watching source files in {directory}...")
try:
for changed_files in watch_source_files(directory):
print("\nChanged files:")
@ -52,5 +77,6 @@ def main():
except KeyboardInterrupt:
print("\nStopped watching files")
if __name__ == "__main__":
main()