# Requirements only for development (upload library to Nexus, testing, code style, ...)
#   python_version: 3.8
# ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────

# --------------------------------------------------------------------------------------------------------------------
# --- Utilities
# --------------------------------------------------------------------------------------------------------------------

# Command line utility to show dependency tree of packages
pipdeptree==2.25.0

# --------------------------------------------------------------------------------------------------------------------
# --- Code Style Tools:
# --------------------------------------------------------------------------------------------------------------------

# Tool for catch errors and ensure that the code is idiomatic Python (ie PEP8)
flake8==7.1.1

# Google tool for finding bugs and style problems in Python source code.
# also suggests avoiding some tricky-but-useful features
pylint==3.3.4

# Mypy has a powerful type system with features such as type inference,
# gradual typing, generics and union types.
mypy==1.14.1
pandas-stubs>=1.0.0,<3.0.0

pydantic>=1.0.0,<2.0.0

# Black applyies automatic formatting to the codebase
black==25.1.0

# --------------------------------------------------------------------------------------------------------------------
# --- Testing:
# --------------------------------------------------------------------------------------------------------------------

# Framework to write small tests, yet scales to support complex functional testing for applications and libraries.
pytest==8.3.4

# Pytest plugin for measuring coverage.
pytest-cov==6.0.0

# Pytest plugin for paralell execution
pytest-xdist==3.6.1

# Pytest pluging in order to split test execution
pytest-split==0.10.0

# Mocking module for pytest
pytest-mock==3.14.0

# Benchmarking for pytest
pytest-benchmark==5.1.0

# Faker is a Python package that generates fake data for you.
Faker==35.2.0

# Libraries lazily imported at runtime of fit_transform
optuna>=3.1.0,<4.3.0
sklearn-contrib-lightning>=0.6.2,<1.0.0

# --------------------------------------------------------------------------------------------------------------------
# Uploading PyPI Package to Nexus
# --------------------------------------------------------------------------------------------------------------------

# Client tool to upload them to a hosted repository on the repository manager
twine==6.1.0

# --------------------------------------------------------------------------------------------------------------------
# Management of commit hooks.
# --------------------------------------------------------------------------------------------------------------------

# A framework for managing and maintaining multi-language pre-commit hooks.
pre-commit==4.1.0

evoml-api-models>=3.1.0,<4.0.0
