# setup.py import os import sys import shutil from pathlib import Path import streamlit as st def setup_directories(): """Set up necessary directories and permissions.""" try: # Define base directories if os.path.exists('/data'): # Hugging Face Space environment base_path = Path('/data') else: # Local development environment base_path = Path(os.getcwd()) / 'data' # Create required directories directories = [ base_path / 'database', base_path / 'files', base_path / 'vectorstore', base_path / 'metadata', Path('img'), # for logo Path('components'), Path('utils'), Path('static/thumbnails') ] # Create each directory for directory in directories: directory.mkdir(parents=True, exist_ok=True) print(f"Created directory: {directory}") # Create empty __init__.py files for Python packages init_dirs = ['components', 'utils'] for dir_name in init_dirs: init_file = Path(dir_name) / '__init__.py' init_file.touch(exist_ok=True) print(f"Created {init_file}") # Create empty database file db_file = base_path / 'database' / 'rfp_analysis.db' db_file.touch(exist_ok=True) print(f"Created database file: {db_file}") # Set permissions if in Linux environment if sys.platform.startswith('linux'): try: for directory in directories: os.chmod(directory, 0o777) os.chmod(db_file, 0o666) print("Set permissions successfully") except Exception as e: print(f"Warning: Could not set permissions: {e}") print("Setup completed successfully!") return True except Exception as e: print(f"Error during setup: {e}") return False if __name__ == "__main__": setup_directories()