Spaces:
Build error
Build error
| import subprocess | |
| import sys | |
| import os | |
| import time | |
| from datetime import datetime | |
| def check_dependencies(): | |
| """Check if all required dependencies are installed""" | |
| required_packages = [ | |
| 'streamlit', 'pandas', 'numpy', 'plotly', | |
| 'python-dateutil', 'pytz', 'openpyxl', | |
| 'watchdog', 'python-dotenv', 'pydantic', | |
| 'sqlalchemy', 'psycopg2-binary', 'bcrypt', 'jinja2' | |
| ] | |
| missing_packages = [] | |
| for package in required_packages: | |
| try: | |
| __import__(package) | |
| except ImportError: | |
| missing_packages.append(package) | |
| return missing_packages | |
| def install_package(package_name): | |
| """Install a Python package using pip""" | |
| try: | |
| subprocess.check_call([sys.executable, "-m", "pip", "install", package_name]) | |
| return True | |
| except subprocess.CalledProcessError: | |
| return False | |
| def create_virtual_environment(env_name="venv"): | |
| """Create a virtual environment""" | |
| try: | |
| subprocess.check_call([sys.executable, "-m", "venv", env_name]) | |
| return True | |
| except subprocess.CalledProcessError: | |
| return False | |
| def setup_database(): | |
| """Setup database configuration""" | |
| # This is a placeholder function | |
| # In a real application, this would configure database connections | |
| return True | |
| def log_message(message, level="info"): | |
| """Log messages with timestamp""" | |
| timestamp = datetime.now().strftime("%Y-%m-%d %H:%M:%S") | |
| log_entry = f"[{timestamp}] [{level.upper()}] {message}" | |
| # Print to console | |
| print(log_entry) | |
| # In a real application, you might write to a log file | |
| # with open("installation.log", "a") as f: | |
| # f.write(log_entry + "\n") | |
| return log_entry | |
| def validate_python_version(): | |
| """Validate Python version""" | |
| import platform | |
| version = platform.python_version() | |
| major, minor, patch = map(int, version.split('.')) | |
| if major < 3 or (major == 3 and minor < 11): | |
| return False, f"Python 3.11+ required, but found {version}" | |
| return True, f"Python {version} is compatible" | |
| def test_database_connection(config): | |
| """Test database connection""" | |
| # This is a placeholder function | |
| # In a real application, this would test the actual database connection | |
| return True, "Database connection successful"<|end_of_box|> | |
| <|begin_of_box|> |