Spaces:
Build error
Build error
| # 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() |