pandas>=1.5.0
pydantic>=2.0.0
numpy>=1.21.0
openpyxl>=3.0.0
requests>=2.25.0
urllib3>=1.26.0

[all]
click>=8.0.0
rich>=13.0.0
tabulate>=0.9.0
flask>=2.3.0
flask-cors>=4.0.0
plotly>=5.15.0
dash>=2.14.0
dash-bootstrap-components>=1.5.0
gunicorn>=21.0.0
python-dotenv>=1.0.0
werkzeug>=2.3.0
flask-restx>=1.1.0
apispec>=6.0.0
marshmallow>=3.19.0
markdown>=3.4.0

[api]
flask>=2.3.0
flask-cors>=4.0.0
python-multipart>=0.0.6
flask-restx>=1.1.0
apispec>=6.0.0
marshmallow>=3.19.0
markdown>=3.4.0

[cli]
click>=8.0.0
rich>=13.0.0
tabulate>=0.9.0

[dashboard]
flask>=2.3.0
flask-cors>=4.0.0
plotly>=5.15.0
dash>=2.14.0
dash-bootstrap-components>=1.5.0
gunicorn>=21.0.0
python-dotenv>=1.0.0
werkzeug>=2.3.0

[dev]
pytest>=7.0.0
pytest-cov>=4.0.0
pytest-mock>=3.10.0
black>=23.0.0
isort>=5.12.0
flake8>=6.0.0
mypy>=1.0.0
bandit>=1.7.0
safety>=2.0.0
pre-commit>=3.0.0

[docs]
sphinx>=6.0.0
sphinx-rtd-theme>=1.2.0
myst-parser>=1.0.0
sphinx-autodoc-typehints>=1.23.0

[real-data]
requests>=2.25.0
matplotlib>=3.3.0
seaborn>=0.11.0
xlrd>=2.0.0
urllib3>=1.26.0

[test]
pytest>=7.0.0
pytest-cov>=4.0.0
pytest-mock>=3.10.0
pytest-benchmark>=4.0.0
selenium>=4.0.0
webdriver-manager>=4.0.0
matplotlib>=3.3.0
seaborn>=0.11.0
xlrd>=2.0.0

[web]
flask>=2.3.0
flask-cors>=4.0.0
plotly>=5.15.0
dash>=2.14.0
dash-bootstrap-components>=1.5.0
gunicorn>=21.0.0
python-dotenv>=1.0.0
werkzeug>=2.3.0

[web-all]
flask>=2.3.0
flask-cors>=4.0.0
plotly>=5.15.0
dash>=2.14.0
dash-bootstrap-components>=1.5.0
gunicorn>=21.0.0
python-dotenv>=1.0.0
werkzeug>=2.3.0
flask-restx>=1.1.0
apispec>=6.0.0
marshmallow>=3.19.0
markdown>=3.4.0
