# SOMA - Advanced Text Tokenization Framework
# Core dependencies

# Web framework - Updated for compatibility
fastapi>=0.104.0
uvicorn[standard]>=0.24.0
pydantic>=2.5.0
python-multipart>=0.0.6  # Required for FastAPI file uploads (Form data)

# Data processing
pandas==2.1.3
numpy==1.24.3

# HTTP client
httpx==0.25.2
requests==2.31.0

# JSON handling
orjson==3.9.10

# File handling
pathlib2==2.3.7

# Testing
pytest==7.4.3
pytest-asyncio==0.21.1
pytest-cov==4.1.0

# Performance monitoring
psutil==5.9.6
memory-profiler==0.61.0

# CLI tools
click==8.1.7
rich==13.7.0

# Development tools
black==23.11.0
flake8==6.1.0
mypy==1.7.1

# Documentation
sphinx==7.2.6
sphinx-rtd-theme==1.3.0

# Optional: Machine learning (for advanced tokenization)
# scikit-learn==1.3.2
# transformers==4.35.2
# torch==2.1.1
tensorflow>=2.13.0  # For deep learning model training
tf-keras>=2.13.0    # Backwards-compatible Keras for Transformers (required by sentence-transformers)

# Optional: Database support
# sqlalchemy==2.0.23
# alembic==1.12.1

# Optional: Caching
# redis==5.0.1
# memcached==1.6.3

# Embedding generation and vector databases
sentence-transformers>=2.2.0  # For hybrid embeddings (text + features)
chromadb>=0.4.0               # Vector database option 1 (recommended)
faiss-cpu>=1.7.4             # Vector database option 2 (high performance)
weaviate-client>=4.0.0       # Vector database option 3 (cloud-based, optional)
python-dotenv>=1.0.0         # For Weaviate environment variable loading (optional)

# Authentication & Security
PyJWT>=2.8.0                 # JWT token support for authentication