# 🪸 CORAL-CORE Requirements
# Biomineralization Dynamics & Reef Hydro-Acoustic Buffering Framework
# Version: 1.0.0 | DOI: 10.5281/zenodo.18913829

# ============================================
# Core Dependencies
# ============================================

# Numerical Computing
numpy==1.24.3              # Array operations and numerical computing
scipy==1.10.1              # Scientific computing and optimization
numba==0.57.0              # JIT compilation for performance
sympy==1.11.1              # Symbolic mathematics

# Data Processing
pandas==2.0.0              # Data manipulation and analysis
xarray==2023.4.0           # Labeled multi-dimensional arrays
netCDF4==1.6.3             # NetCDF file support
h5py==3.8.0                # HDF5 file support
tables==3.8.0              # Hierarchical datasets
pyarrow==12.0.0            # Apache Arrow columnar format
fastparquet==2023.4.0      # Parquet file support

# ============================================
# Physics & Mathematics
# ============================================

# Physical Units and Constants
pint==0.21                  # Physical units handling
astropy==5.2.1              # Astronomy and physics utilities
uncertainties==3.1.7        # Error propagation

# Differential Equations
scikit-fdiff==0.2.0         # Finite difference methods
py-pde==0.28.0              # Partial differential equations

# Optimization
cvxopt==1.3.1               # Convex optimization
nlopt==2.7.1                # Nonlinear optimization
pyswarm==0.6.0              # Particle swarm optimization

# ============================================
# Sensor Communication
# ============================================

# Serial Communication
pyserial==3.5               # Serial port communication
pyusb==1.2.1                # USB device communication
pymodbus==3.5.0             # Modbus protocol

# Instrument Control
pyvisa==1.13.0              # Virtual Instrument Software Architecture
pyvisa-py==0.5.3            # Pure Python VISA backend
sockets==1.0.0              # Socket programming
aiofiles==23.1.0            # Asynchronous file operations

# Sensor-specific Drivers
sami-alk-driver==0.1.0      # SAMI-alk pH/alkalinity sensor
amar-g4-driver==0.2.0       # AMAR G4 acoustic recorder
diving-pam-driver==0.1.0    # Diving-PAM fluorometer
rdi-adcp-driver==0.1.0      # RDI ADCP current profiler
sbe37-driver==0.1.0         # SBE37 MicroCAT CTD
gopro-driver==0.2.0         # GoPro camera control

# ============================================
# Acoustic Processing
# ============================================

# Audio Processing
librosa==0.10.0             # Audio and music processing
soundfile==0.12.1           # Sound file I/O
audioread==3.0.0            # Multi-backend audio decoding
pydub==0.25.1               # Audio manipulation
pysofaconventions==0.1.3    # SOFA file format
pyhydrophone==0.1.3         # Hydrophone data processing
pydal==0.3.0                # Data analysis library for acoustics

# Signal Processing
obspy==1.4.0                # Seismological signal processing
echopype==0.6.0             # Echosounder data processing
scikit-signal==0.2.0        # Signal processing tools

# Feature Extraction
python-speech-features==0.6 # Speech feature extraction
mfcc==0.1.0                 # MFCC features
python-praat==0.3.1         # Praat interface

# ============================================
# 3D Photogrammetry
# ============================================

# Computer Vision
opencv-python==4.7.0.72     # Computer vision library
opencv-contrib-python==4.7.0.72  # Contrib modules
pillow==9.5.0               # Python Imaging Library
scikit-image==0.20.0        # Image processing

# 3D Reconstruction
open3d==0.17.0              # 3D data processing
pycolmap==0.5.0             # COLMAP interface
pyceres==2.2.0              # Ceres Solver bindings
pyigl==2.4.0                # Geometry processing library
trimesh==3.21.0             # Mesh manipulation
pymeshfix==0.16.0           # Mesh repair

# Structure-from-Motion
metashape==2.0.0            # Agisoft Metashape Python API
meshlab==2023.12            # MeshLab Python interface

# 3D Visualization
mayavi==4.8.0               # 3D visualization
pyvista==0.39.0             # 3D plotting and mesh analysis
vtk==9.2.6                  # Visualization Toolkit
plotly==5.14.1              # Interactive plots

# ============================================
# Machine Learning & AI
# ============================================

# Scikit-learn Ecosystem
scikit-learn==1.2.2         # Machine learning algorithms
xgboost==1.7.5              # Gradient boosting
lightgbm==3.3.5             # Light gradient boosting
catboost==1.1.1             # Categorical boosting

# Deep Learning Frameworks
tensorflow==2.12.0          # TensorFlow core
tensorflow-probability==0.20.0  # Probabilistic programming
keras==2.12.0               # Keras API
torch==2.0.0                # PyTorch
torchvision==0.15.0         # PyTorch vision
pytorch-lightning==2.0.0    # PyTorch training framework

# Bayesian Methods
pystan==3.5.0               # Bayesian inference (Stan)
arviz==0.15.0               # Exploratory analysis of Bayesian models
pymc==5.5.0                 # Probabilistic programming
causalnex==0.12.1           # Causal reasoning

# Time Series
prophet==1.1.5              # Time series forecasting
statsmodels==0.14.0         # Statistical models
pmdarima==2.0.3             # ARIMA models
sktime==0.19.0              # Time series machine learning

# ============================================
# Statistical Analysis
# ============================================

# Statistics
statsmodels==0.14.0         # Statistical models
scikit-posthocs==0.7.0      # Post-hoc tests
pingouin==0.5.3             # Statistical testing
pycopula==0.1.4             # Copula models

# Bayesian State-Space
MARSS==3.11.4               # Multivariate autoregressive state-space
dynlm==0.1.0                # Dynamic linear models
pykalman==0.9.5             # Kalman filters

# Time Series Analysis
tsfresh==0.20.1             # Feature extraction
seglearn==0.2.1             # Sequence learning
cesium==0.9.10              # Time series platform

# ============================================
# Database & Storage
# ============================================

# SQL Databases
psycopg2-binary==2.9.6      # PostgreSQL adapter
sqlalchemy==2.0.12          # SQL toolkit and ORM
alembic==1.10.4             # Database migrations

# TimescaleDB
timescaledb==0.3.0          # TimescaleDB Python tools

# NoSQL
pymongo==4.3.3              # MongoDB driver
redis==4.5.4                # Redis client
cassandra-driver==3.25.0    # Cassandra driver
influxdb-client==1.36.1     # InfluxDB client

# Object Storage
boto3==1.26.137             # AWS SDK
google-cloud-storage==2.8.0 # Google Cloud Storage
azure-storage-blob==12.16.0 # Azure Blob Storage

# ============================================
# Web Framework
# ============================================

# Flask Ecosystem
flask==2.3.2                # Web framework
flask-cors==4.0.0           # CORS support
flask-socketio==5.3.4       # WebSocket support
flask-restx==1.1.0          # REST API extension
flask-login==0.6.2          # User authentication
flask-jwt-extended==4.5.2   # JWT authentication
flask-sqlalchemy==3.0.5     # Database integration
flask-migrate==4.0.4        # Database migrations

# Alternative Frameworks
fastapi==0.97.0             # FastAPI framework
uvicorn==0.22.0             # ASGI server
gunicorn==20.1.0            # WSGI server

# ============================================
# Web Dashboard
# ============================================

# Dash/Plotly
dash==2.9.3                 # Dashboard framework
dash-bootstrap-components==1.4.1  # Bootstrap components
dash-core-components==2.0.0 # Core components
dash-html-components==2.0.0 # HTML components
dash-table==5.0.0           # Data tables

# Visualization
matplotlib==3.7.1           # Plotting library
seaborn==0.12.2             # Statistical visualizations
bokeh==3.1.0                # Interactive visualization
holoviews==1.17.0           # High-level plotting
geoviews==1.10.0            # Geographic visualization
cartopy==0.21.1             # Map projections

# ============================================
# Networking & Async
# ============================================

# Async
aiohttp==3.8.4              # Async HTTP client/server
asyncio==3.4.3              # Async I/O
aiomqtt==1.1.0              # Async MQTT
aiofiles==23.1.0            # Async file operations

# MQTT
paho-mqtt==1.6.1            # MQTT client

# WebSocket
websockets==11.0.3          # WebSocket implementation

# HTTP
requests==2.30.0            # HTTP library
httpx==0.24.0               # HTTP/2 client
urllib3==2.0.2              # HTTP client

# ============================================
# Data Formats
# ============================================

# JSON/YAML/TOML
pyyaml==6.0                 # YAML parser
tomli==2.0.1                # TOML parser
ujson==5.7.0                # Ultra JSON
orjson==3.8.12              # Fast JSON
python-dotenv==1.0.0        # Environment variables

# Serialization
msgpack==1.0.5              # MessagePack
protobuf==4.22.3            # Protocol Buffers
pickle5==0.0.11             # Enhanced pickle

# ============================================
# Logging & Monitoring
# ============================================

# Logging
loguru==0.7.0               # Logging library
structlog==23.1.0           # Structured logging
python-json-logger==2.0.7   # JSON logging

# Monitoring
prometheus-client==0.17.0   # Prometheus metrics
grafana-api==1.0.3          # Grafana API

# Error Tracking
sentry-sdk==1.24.0          # Sentry error tracking

# ============================================
# Testing & Quality
# ============================================

# Testing
pytest==7.3.1               # Testing framework
pytest-cov==4.1.0           # Coverage reporting
pytest-xdist==3.3.1         # Parallel testing
pytest-asyncio==0.21.0      # Async testing
pytest-mock==3.10.0         # Mocking
pytest-timeout==2.1.0       # Timeout decorator

# Mocking
pytest-mock==3.10.0         # Mocking
responses==0.23.1           # HTTP response mocking

# Quality
black==23.3.0               # Code formatter
isort==5.12.0               # Import sorter
flake8==6.0.0               # Linter
pylint==2.17.4              # Linter
mypy==1.3.0                 # Static type checking
bandit==1.7.5               # Security linter
safety==2.3.5               # Security checker

# Pre-commit
pre-commit==3.3.2           # Git pre-commit hooks

# ============================================
# Documentation
# ============================================

# Documentation Generation
sphinx==7.0.1               # Documentation generator
sphinx-rtd-theme==1.2.2     # ReadTheDocs theme
sphinx-autodoc-typehints==1.23.0  # Type hints
mkdocs==1.4.3              # MkDocs
mkdocs-material==9.1.15    # Material theme
mkdocstrings==0.22.0       # Docstring extraction

# Docstring Formatting
docstring-parser==0.15     # Parse docstrings
pydocstyle==6.3.0          # Docstring style checker

# ============================================
# Development Tools
# ============================================

# Debugging
ipdb==0.13.13              # IPython debugger
pudb==2022.1.3             # Console debugger
py-spy==0.3.14             # Sampling profiler
memory-profiler==0.61.0    # Memory profiler

# Jupyter
jupyter==1.0.0             # Jupyter notebook
ipykernel==6.23.0          # IPython kernel
ipywidgets==8.0.6          # Interactive widgets
nbconvert==7.4.0           # Notebook conversion
jupyterlab==4.0.0          # JupyterLab

# CLI Tools
click==8.1.3               # CLI interface
typer==0.9.0               # CLI builder
rich==13.3.5               # Rich terminal formatting
tqdm==4.65.0               # Progress bars

# ============================================
# GPU Acceleration
# ============================================

# CUDA
cupy-cuda11x==12.0.0       # CUDA-accelerated NumPy
cudf==23.4.0                # GPU DataFrame
cuml==23.4.0                # GPU Machine Learning

# TensorRT
tensorrt==8.5.3            # NVIDIA TensorRT

# ============================================
# Optional Dependencies (Install with [extra])
# ============================================

# Extra groups can be installed with:
# pip install -e .[dev,ml,gpu]

# [dev] - Development tools
# [ml] - Machine Learning
# [gpu] - GPU support
# [docs] - Documentation
# [test] - Testing
# [all] - Everything

# ============================================
# Version Pinning Notes
# ============================================
# Python 3.9 - 3.11 supported
# CUDA 11.x required for GPU features
# TensorFlow 2.12+ recommended
# PyTorch 2.0+ recommended
# Ubuntu 20.04+ / Debian 11+ recommended

# ============================================
# END OF REQUIREMENTS
# ============================================
