[build-system]
requires = ["setuptools"]
build-backend = "setuptools.build_meta"

[project]
requires-python = ">=3.9"
name = "spaceflights_mlflow"
readme = "README.md"
dynamic = ["version"]
dependencies = [
    "ipython>=8.10",
    "jupyterlab>=3.0",
    "notebook",
    "kedro[jupyter]~=0.19.11",
    "kedro-datasets[pandas-csvdataset, pandas-exceldataset, pandas-parquetdataset, plotly-plotlydataset, plotly-jsondataset, matplotlib-matplotlibwriter]>=3.0",
    "kedro-viz>=6.7.0",
    "scikit-learn~=1.5.1",
    "seaborn~=0.12.1"
]

[project.scripts]
"spaceflights-mlflow" = "spaceflights_mlflow.__main__:main"

[project.entry-points."kedro.hooks"]

[project.optional-dependencies]
docs = [
    "docutils<0.21",
    "sphinx>=5.3,<7.3",
    "sphinx_rtd_theme==2.0.0",
    "nbsphinx==0.8.1",
    "sphinx-autodoc-typehints==1.20.2",
    "sphinx_copybutton==0.5.2",
    "ipykernel>=5.3, <7.0",
    "Jinja2<3.2.0",
    "myst-parser>=1.0,<2.1"
]
dev = [
    "pytest-cov~=3.0",
    "pytest-mock>=1.7.1, <2.0",
    "pytest~=7.2",
    "ruff~=0.1.8"
]

[tool.setuptools.dynamic]
version = {attr = "spaceflights_mlflow.__version__"}

[tool.setuptools.packages.find]
where = ["src"]
namespaces = false

[tool.kedro]
package_name = "spaceflights_mlflow"
project_name = "spaceflights-mlflow"
kedro_init_version = "0.19.11"
tools = "['None']"
example_pipeline = "False"
source_dir = "src"

[tool.pytest.ini_options]
addopts = """
--cov-report term-missing \
--cov src/spaceflights_mlflow -ra"""

[tool.coverage.report]
fail_under = 0
show_missing = true
exclude_lines = ["pragma: no cover", "raise NotImplementedError"]

[tool.ruff.format]
docstring-code-format = true

[tool.ruff]
line-length = 88
show-fixes = true
select = [
    "F",   # Pyflakes
    "W",   # pycodestyle
    "E",   # pycodestyle
    "I",   # isort
    "UP",  # pyupgrade
    "PL",  # Pylint
    "T201", # Print Statement
]
ignore = ["E501"]  # Ruff format takes care of line-too-long