cryogenic22's picture
Update setup.py
b8bc7ef verified
# 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()