# ====================================================================
# QuantumDGM: Quantum Circuits for Discrete Graphical Models
# Requirements File
# ====================================================================

# --------------------------------------------------------------------
# Core Dependencies (Required)
# --------------------------------------------------------------------
numpy>=1.20.0
qiskit>=1.0.0
qiskit-aer>=0.13.0
scipy>=1.7.0

# --------------------------------------------------------------------
# Quantum Backend Support
# --------------------------------------------------------------------
# IBM Quantum (for real hardware access)
qiskit-ibm-runtime>=0.15.0

# --------------------------------------------------------------------
# Visualization Dependencies (Recommended)
# --------------------------------------------------------------------
pylatexenc>=2.10
matplotlib>=3.5.0,<4.0.0
networkx>=2.5,<4.0.0
seaborn>=0.11.0,<1.0.0

# --------------------------------------------------------------------
# Jupyter Notebook Support (Optional)
# --------------------------------------------------------------------
jupyter>=1.0.0
ipywidgets>=7.7.0
notebook>=6.4.0

# --------------------------------------------------------------------
# Development Tools (Optional)
# --------------------------------------------------------------------
# Testing
pytest>=7.0.0,<9.0.0
pytest-cov>=3.0.0,<5.0.0
pytest-mock>=3.10.0

# Code Quality
black>=22.0.0,<25.0.0
flake8>=4.0.0,<8.0.0
isort>=5.10.0
pylint>=2.12.0

# Type Checking
mypy>=0.950,<2.0.0

# Documentation
sphinx>=4.5.0
sphinx-rtd-theme>=1.0.0
sphinx-autodoc-typehints>=1.18.0

# --------------------------------------------------------------------
# Installation Groups
# --------------------------------------------------------------------
# Install core only:
#   pip install -r requirements.txt --no-deps
#   pip install numpy qiskit qiskit-aer scipy
#
# Install with visualization:
#   pip install numpy qiskit qiskit-aer scipy matplotlib networkx
#
# Install for development:
#   pip install -r requirements.txt
#
# Install minimal:
#   See requirements-minimal.txt