FiberGate / pyproject.toml
AzizMiladi's picture
fix(ci): make ruff + mypy green on the new src/ layout
dc73111
Raw
History Blame
4.1 kB
# ──────────────────────────────────────────────────────────────────────────
# GuichetOI ML β€” Python project metadata
# ──────────────────────────────────────────────────────────────────────────
# Install for development:
# pip install -e .[dev]
#
# Install runtime only:
# pip install -e .
# # then: pip install -r requirements.txt (for exact pins)
#
# `requirements.txt` remains the source of truth for fully-pinned versions
# used in CI and the Dockerfile. `pyproject.toml` declares loose runtime
# bounds so the library is `pip install`-friendly.
# ──────────────────────────────────────────────────────────────────────────
[build-system]
requires = ["setuptools>=68", "wheel"]
build-backend = "setuptools.build_meta"
[project]
name = "guichetoi"
version = "1.0.0"
description = "Inference + recommendation + CMS generation for Orange Guichet Accueil Infrastructures (demande de localisation PAR)."
readme = "README.md"
requires-python = ">=3.11"
license = { text = "MIT" }
authors = [{ name = "Aziz Mohamed Miladi", email = "medazizmiledi@ieee.org" }]
keywords = ["layoutlmv3", "document-ai", "ocr", "fiber", "orange"]
classifiers = [
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Operating System :: POSIX :: Linux",
"Operating System :: Microsoft :: Windows",
"License :: OSI Approved :: MIT License",
]
dependencies = [
"torch>=2.0",
"transformers>=4.35",
"tokenizers>=0.20",
"safetensors>=0.4",
"pytesseract>=0.3.10",
"PyMuPDF>=1.24",
"pillow>=10.0",
"openpyxl>=3.1",
"fastapi>=0.110",
"uvicorn[standard]>=0.30",
"python-multipart>=0.0.9",
]
[project.optional-dependencies]
dev = [
"pytest>=8.0",
"ruff>=0.6",
"mypy>=1.10",
]
ui = ["streamlit>=1.30", "altair>=5.0"]
[project.urls]
Homepage = "https://github.com/MedAziz012/GuichetOI_ML"
Issues = "https://github.com/MedAziz012/GuichetOI_ML/issues"
# ──────────────────────────────────────────────────────────────────────────
# Packaging β€” src/ layout
# ──────────────────────────────────────────────────────────────────────────
[tool.setuptools.packages.find]
where = ["src"]
# ──────────────────────────────────────────────────────────────────────────
# Ruff β€” linting
# ──────────────────────────────────────────────────────────────────────────
[tool.ruff]
line-length = 100
target-version = "py311"
extend-exclude = ["scripts", "tools", "apps"] # legacy scripts, not lib code
[tool.ruff.lint]
select = ["E", "F", "I", "B", "UP"]
ignore = [
"E501", # line length β€” codebase has long French strings
"B008", # function-call-in-default-arg β€” used intentionally with FastAPI Depends/File
"E701", # multiple-statements-on-one-line β€” cms.py uses column-aligned
# `if cond: ws.cell(row=r, column=N, value=…)` as a visual table
# mapping conditions β†’ spreadsheet columns. Splitting destroys the grid.
]