| import os # Import the os module to interact with the operating system | |
| from pathlib import Path # Import the Path class from pathlib module for handling file paths | |
| import logging # Import the logging module for logging messages | |
| # Configure the logging to display messages with time and message content | |
| logging.basicConfig(level=logging.INFO, format='[%(asctime)s]: %(message)s') | |
| # List of files that we want to create | |
| list_of_files = [ | |
| "src/__init__.py", # A Python package initialization file | |
| "src/helper.py", # A helper module | |
| "src/prompt.py", # A prompt module | |
| ".env", # Environment configuration file | |
| "setup.py", # Python setup script | |
| "research/trials.ipynb", # Jupyter notebook for research | |
| "app.py", # Main application script | |
| "store_index.py", # Index script for storage | |
| "static/.gitkeep", # Directory for static files (e.g., CSS, JS) | |
| "templates/chat.html" , # HTML template for chat | |
| ".gitignore" | |
| ] | |
| # Iterate over each file path in the list | |
| for filepath in list_of_files: | |
| filepath = Path(filepath) # Convert the file path to a Path object | |
| filedir, filename = os.path.split(filepath) # Split the path into directory and file name | |
| # Check if the directory part of the path is not empty | |
| if filedir: | |
| os.makedirs(filedir, exist_ok=True) # Create the directory if it doesn't exist | |
| logging.info(f"Creating directory: {filedir} for the file {filename}") # Log directory creation | |
| # Check if the file doesn't exist or if it exists but is empty | |
| if not os.path.exists(filepath) or os.path.getsize(filepath) == 0: | |
| with open(filepath, 'w') as f: # Open the file in write mode (this creates an empty file) | |
| pass # Do nothing else inside the with block | |
| logging.info(f"Creating empty file: {filepath}") # Log file creation | |
| else: | |
| logging.info(f"{filename} is already created") # Log that the file already exists | |