feat(ml): initialise le pipeline d'entrainement LightGBM (ADR 0005)
ML / Lint, typage et tests (push) Successful in 2m2s
ML / Lint, typage et tests (push) Successful in 2m2s
This commit is contained in:
@@ -0,0 +1,79 @@
|
||||
[project]
|
||||
name = "enervision-ml"
|
||||
version = "0.1.0"
|
||||
description = "Pipeline d'entrainement et de scoring du modele de prediction EnerVision (LightGBM)"
|
||||
requires-python = ">=3.14,<3.15"
|
||||
dependencies = [
|
||||
"pandas>=3.0.5",
|
||||
"sqlalchemy>=2.0.52",
|
||||
"psycopg[binary]>=3.2",
|
||||
"lightgbm>=4.6",
|
||||
"scikit-learn>=1.7",
|
||||
"mlflow>=3.0",
|
||||
]
|
||||
|
||||
[dependency-groups]
|
||||
dev = [
|
||||
"ruff>=0.16.7",
|
||||
"mypy>=2.3.1",
|
||||
"pytest>=9.1.1",
|
||||
"pandas-stubs>=3.0.5.260914",
|
||||
]
|
||||
|
||||
[build-system]
|
||||
requires = ["hatchling>=1.32.0"]
|
||||
build-backend = "hatchling.build"
|
||||
|
||||
[tool.hatch.build.targets.wheel]
|
||||
packages = ["enervision_ml"]
|
||||
|
||||
[tool.ruff]
|
||||
line-length = 100
|
||||
target-version = "py314"
|
||||
src = ["enervision_ml", "tests"]
|
||||
|
||||
[tool.ruff.lint]
|
||||
select = [
|
||||
"E", "W",
|
||||
"F",
|
||||
"I",
|
||||
"N",
|
||||
"UP",
|
||||
"B",
|
||||
"C4",
|
||||
"SIM",
|
||||
"TID",
|
||||
"RUF",
|
||||
"S",
|
||||
"PT",
|
||||
]
|
||||
# N806 : `X`/`y` (donnees/cible) est la convention scikit-learn/LightGBM, pas une variable mal
|
||||
# nommee.
|
||||
ignore = ["B008", "N806"]
|
||||
|
||||
[tool.ruff.lint.per-file-ignores]
|
||||
"tests/**/*.py" = ["S101"]
|
||||
|
||||
[tool.ruff.lint.isort]
|
||||
known-first-party = ["enervision_ml"]
|
||||
|
||||
[tool.ruff.format]
|
||||
quote-style = "double"
|
||||
|
||||
[tool.mypy]
|
||||
python_version = "3.14"
|
||||
strict = true
|
||||
warn_unreachable = true
|
||||
|
||||
[[tool.mypy.overrides]]
|
||||
module = ["tests.*"]
|
||||
disallow_untyped_defs = false
|
||||
|
||||
[[tool.mypy.overrides]]
|
||||
module = ["lightgbm.*", "mlflow.*", "sklearn.*"]
|
||||
ignore_missing_imports = true
|
||||
|
||||
[tool.pytest.ini_options]
|
||||
testpaths = ["tests"]
|
||||
addopts = "-q --strict-markers -m 'not integration'"
|
||||
markers = ["integration: requiert une base PostgreSQL joignable"]
|
||||
Reference in New Issue
Block a user