# xwnode Requirements
# Company: eXonware.com
# Author: eXonware Backend Team
# Email: connect@exonware.com
# Version: 0.1.0.1
# Generation Date: February 2, 2025
#
# This file contains all dependencies needed for xwnode
# Requires Python 3.12+
#
# Usage:
#   pip install -r requirements.txt
#   
# For Replit and other cloud IDEs:
#   Just add this file to your project root and dependencies will be auto-installed

# =============================================================================
# CORE DEPENDENCIES (REQUIRED)
# =============================================================================
# Source size (src/*): ~2.49 MB
pip                     # Package installer (CI and lazy install)

# eXonware ecosystem dependencies (xwnode requires xwsystem)
exonware-xwsystem                   # Core utilities, serialization, security, caching

# =============================================================================
# PERFORMANCE DEPENDENCIES (INSTALLED UPFRONT TO AVOID xwlazy DELAYS)
# =============================================================================

# These are installed upfront to avoid xwlazy auto-install delays during runtime
# This prevents performance penalties when strategies are first used
numpy>=1.24.0                        # Required for learned_index, probabilistic strategies, and many graph operations
scipy>=1.10.0                        # Required for statistical strategies and scientific computations
scikit-learn>=1.2.0                  # Required for learned_index strategy (ML-based indexing)

# =============================================================================
# OPTIONAL DEPENDENCIES (For Extended Features)
# =============================================================================

# Excel support for benchmarks/examples
openpyxl>=3.0.0                     # Excel file generation and reading for benchmarks

# =============================================================================
# DEVELOPMENT AND TESTING DEPENDENCIES
# =============================================================================

# Testing Framework
pytest>=7.0.0                       # Testing framework
pytest-cov>=4.0.0                   # Coverage reporting
pytest-asyncio>=0.20.0              # Async testing support

# Code Quality
black>=22.0.0                       # Code formatting
isort>=5.10.0                       # Import sorting
flake8>=4.0.0                       # Linting

# Type Checking
mypy>=0.950                          # Static type checking

# =============================================================================
# OPTIONAL PERFORMANCE ENHANCEMENTS
# =============================================================================

# Add optional performance dependencies here
# Example:
# orjson>=3.8.0                       # Ultra-fast JSON parsing (optional)

# =============================================================================
# COMPATIBILITY NOTES
# =============================================================================
#
# Python Version Compatibility:
# - Minimum: Python 3.12
# - Tested: Python 3.12+
#
# Platform Compatibility:
# - Windows: Full support
# - Linux: Full support  
# - macOS: Full support
#
# Cloud IDE Support:
# - Replit: ✅ Full support
# - GitHub Codespaces: ✅ Full support  
# - GitPod: ✅ Full support
# - Google Colab: ✅ Full support
# - Jupyter: ✅ Full support
#
# =============================================================================
# INSTALLATION VERIFICATION
# =============================================================================
#
# After installing requirements, verify with:
#   python -c "from exonware.xwnode import *; print('✅ xwnode loaded!')"
#
# Or run comprehensive verification:
#   python tests/verify_installation.py
#
# Expected output:
#   🎉 SUCCESS! exonware.xwnode is ready to use!
cython
uarray
pandas
pyarrow
cloudpickle
numexpr
bottleneck
lark
regex
atomicwrites
interegular
