Files
enlace/pyproject.toml
msaldain 03dadc93da
YAML / yaml (push) Failing after 1m58s
Python / calidad (push) Successful in 6s
Python / tests (push) Failing after 1m22s
Aplicar ruff format a todo el código
Cambio mecánico, sin efecto en el comportamiento: la suite pasa igual antes y
después. Va en un commit propio para no tapar los cambios con sentido.

Se agregan además dos flujos de verificación que corren en cada carga al
repositorio:

- YAML: yamllint para sintaxis y estilo, más la carga de cada config contra su
  esquema de pydantic. Son cosas distintas — un YAML puede ser sintácticamente
  perfecto y estar roto igual, con 'run_nombre' en vez de 'run_name'. Ese paso
  no instala torch: se verificó que la capa de configuración no lo importa, así
  que corre en segundos en vez de descargar dos gigas y medio de CUDA.
- Python: ruff check, ruff format --check y la suite completa con torch de CPU.

Las rutas ignoradas de .yamllint.yml van ancladas con barra inicial. Sin
anclar, 'data/' y 'runs/' excluían configs/data/ y configs/runs/ — siete
archivos, justo los que más importa revisar — y el linter pasaba en verde sin
haber mirado nada. Es el mismo defecto que ya había aparecido en .gitignore.
2026-07-28 07:25:51 -03:00

53 lines
1.3 KiB
TOML

[project]
name = "enlace"
version = "0.1.0"
description = "Modelo de lenguaje propio, entrenado desde cero, para asistencia general y familiar en español."
requires-python = ">=3.11"
# Las versiones se pinean con cuidado: el salto a Blackwell (RTX 5090, sm_120)
# exige torch >= 2.7 con CUDA 12.8. Turing (RTX 2060, sm_75) funciona con
# cualquier torch reciente. Ver configs/hardware/ y docs/HARDWARE.md.
dependencies = [
"torch>=2.5",
"pydantic>=2.7",
"omegaconf>=2.3",
"numpy>=1.26",
]
[project.optional-dependencies]
data = [
"datasets>=2.20", # streaming del corpus; nunca se baja entero
"tokenizers>=0.20",
"fasttext-wheel>=0.9", # filtro de idioma
"datasketch>=1.6", # deduplicación MinHash
]
distill = [
# Solo para generar el dataset SFT (Etapa 3) con la Batch API. No hace falta
# en el servidor de entrenamiento: enlace/data/distill.py importa el SDK de
# forma perezosa para que el paquete funcione sin él.
"anthropic>=0.69",
]
dev = [
"pytest>=8.0",
"ruff>=0.6",
"yamllint>=1.35",
]
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[tool.hatch.build.targets.wheel]
packages = ["enlace"]
[tool.pytest.ini_options]
testpaths = ["tests"]
addopts = "-q"
[tool.ruff]
line-length = 100
target-version = "py311"
[tool.ruff.lint]
select = ["E", "F", "I", "UP", "B"]