From 5cd86e896ab074228c54562e9a27b52e3240a18b Mon Sep 17 00:00:00 2001 From: HC-ONLINE Date: Tue, 3 Mar 2026 15:20:02 -0500 Subject: [PATCH 1/4] =?UTF-8?q?feat:=20migrar=20configuraci=C3=B3n=20a=20p?= =?UTF-8?q?yproject.toml=20y=20actualizar=20dependencias?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pyproject.toml | 43 +++++++++++++++++++++++++++++++++++++++++++ requirements-dev.txt | 25 ------------------------- requirements.txt | 20 -------------------- 3 files changed, 43 insertions(+), 45 deletions(-) delete mode 100644 requirements-dev.txt delete mode 100644 requirements.txt diff --git a/pyproject.toml b/pyproject.toml index 84de913..bef891c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,3 +1,46 @@ +[build-system] +requires = ["setuptools>=61.0", "wheel"] +build-backend = "setuptools.build_meta" + +[project] +name = "modelrouter" +version = "0.1.0" +description = "API asíncrona para orquestación multi-proveedor de LLM con streaming y fallback automático." +readme = "README.md" +license = { text = "Apache-2.0" } +authors = [ + { name = "HC-ONLINE" } +] +requires-python = ">=3.11" +dependencies = [ + "fastapi==0.115.6", + "uvicorn[standard]==0.34.0", + "pydantic==2.10.6", + "pydantic-settings==2.7.1", + "httpx==0.26.0", + "redis==5.0.1", + "hiredis==2.3.2", + "prometheus-client==0.19.0", + "python-json-logger==2.0.7", + "python-dotenv==1.0.0", + "python-multipart==0.0.22", +] + +[project.optional-dependencies] +dev = [ + "black==24.10.0", + "flake8==7.1.1", + "pre-commit==4.0.1", + "mypy==1.13.0", + "types-redis==4.6.0.20240425", + "types-requests==2.31.0.20240125", + "typing-extensions==4.12.2", + "pytest==8.3.4", + "pytest-asyncio==0.24.0", + "pytest-cov==6.0.0", + "pytest-mock==3.14.0", +] + [tool.black] line-length = 88 target-version = ['py311'] diff --git a/requirements-dev.txt b/requirements-dev.txt deleted file mode 100644 index 2d44ca3..0000000 --- a/requirements-dev.txt +++ /dev/null @@ -1,25 +0,0 @@ -# Dependencias de desarrollo y CI --r requirements.txt - -# Linting y formato -black==24.10.0 -flake8==7.1.1 -pre-commit==4.0.1 -setuptools>=75.5.0 -wheel>=0.46.2 - -# Type checking -mypy==1.13.0 -types-redis==4.6.0.20240425 -types-requests==2.31.0.20240125 -typing-extensions==4.12.2 - -# Instalar stubs inline para las bibliotecas que no los tienen -fastapi # Tiene stubs propios -pydantic # Tiene stubs propios - -# Testing -pytest==8.3.4 -pytest-asyncio==0.24.0 -pytest-cov==6.0.0 -pytest-mock==3.14.0 diff --git a/requirements.txt b/requirements.txt deleted file mode 100644 index 46817ab..0000000 --- a/requirements.txt +++ /dev/null @@ -1,20 +0,0 @@ -# Core -fastapi==0.115.6 -uvicorn[standard]==0.34.0 -pydantic==2.10.6 -pydantic-settings==2.7.1 - -# HTTP Client -httpx==0.26.0 - -# Redis -redis==5.0.1 -hiredis==2.3.2 - -# Observabilidad -prometheus-client==0.19.0 -python-json-logger==2.0.7 - -# Utilidades -python-dotenv==1.0.0 -python-multipart==0.0.22 From 011e925c8f72adbf936444881c014b154f433e6c Mon Sep 17 00:00:00 2001 From: HC-ONLINE Date: Tue, 3 Mar 2026 15:34:08 -0500 Subject: [PATCH 2/4] =?UTF-8?q?feat:=20actualizar=20configuraci=C3=B3n=20p?= =?UTF-8?q?ara=20usar=20pyproject.toml=20y=20simplificar=20instalaci=C3=B3?= =?UTF-8?q?n=20de=20dependencias?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/actions/setup-python/action.yml | 5 +++-- .github/workflows/ci.yml | 6 ++++++ Dockerfile | 6 +++--- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/.github/actions/setup-python/action.yml b/.github/actions/setup-python/action.yml index a6d0565..eeebf5f 100644 --- a/.github/actions/setup-python/action.yml +++ b/.github/actions/setup-python/action.yml @@ -9,10 +9,11 @@ runs: with: python-version: '3.11' cache: 'pip' - cache-dependency-path: 'requirements-dev.txt' + cache-dependency-path: 'pyproject.toml' - name: Instalar dependencias shell: bash run: | python -m pip install --upgrade pip - pip install -r requirements-dev.txt + # install editable package with dev extras per pyproject.toml + pip install -e '.[dev]' diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f4ad7db..cdf4ed6 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -18,6 +18,12 @@ jobs: - name: Setup Python uses: ./.github/actions/setup-python + - name: Install dev dependencies + shell: bash + run: | + python -m pip install --upgrade pip + pip install -e '.[dev]' + - name: Black run: black --check api/ tests/ diff --git a/Dockerfile b/Dockerfile index 7ccdfda..dc7c091 100644 --- a/Dockerfile +++ b/Dockerfile @@ -15,10 +15,10 @@ RUN apt-get update && apt-get upgrade -y && apt-get install -y --no-install-reco gcc \ && rm -rf /var/lib/apt/lists/* -# Copiar requirements e instalar dependencias -COPY requirements.txt . +# Copiar pyproject y usarlo para instalar dependencias +COPY pyproject.toml . RUN pip install --upgrade pip setuptools wheel && \ - pip install --no-cache-dir -r requirements.txt + pip install --no-cache-dir . # Stage 2: Runtime FROM python:3.11-slim-bookworm From a37a70b0788f47711485b7d50c9a47b2850d0f6a Mon Sep 17 00:00:00 2001 From: HC-ONLINE Date: Tue, 3 Mar 2026 15:34:48 -0500 Subject: [PATCH 3/4] =?UTF-8?q?feat(docs):=20actualizar=20gu=C3=ADa=20de?= =?UTF-8?q?=20desarrollo=20para=20instalar=20dependencias=20desde=20pyproj?= =?UTF-8?q?ect.toml?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/development.md | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/docs/development.md b/docs/development.md index d21e0ab..d1fafe6 100644 --- a/docs/development.md +++ b/docs/development.md @@ -17,10 +17,8 @@ python -m venv .venv # Unix source .venv/bin/activate # Instalar dependencias - -pip install -r requirements.txt -# o -pip install -r requirements-dev.txt +python -m pip install --upgrade pip +pip install -e '.[dev]' # Levantar Redis para desarrollo docker run -d -p 6379:6379 redis:7-alpine From 60f252c6aa9793b367c8a5329ee905d51e152095 Mon Sep 17 00:00:00 2001 From: HC-ONLINE Date: Tue, 3 Mar 2026 15:50:01 -0500 Subject: [PATCH 4/4] =?UTF-8?q?refactor:=20eliminar=20instalaci=C3=B3n=20d?= =?UTF-8?q?e=20dependencias=20en=20el=20flujo=20CI,=20ahora=20se=20maneja?= =?UTF-8?q?=20en=20la=20acci=C3=B3n=20de=20configuraci=C3=B3n=20de=20Pytho?= =?UTF-8?q?n?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/actions/setup-python/action.yml | 1 - .github/workflows/ci.yml | 6 ------ 2 files changed, 7 deletions(-) diff --git a/.github/actions/setup-python/action.yml b/.github/actions/setup-python/action.yml index eeebf5f..057b05e 100644 --- a/.github/actions/setup-python/action.yml +++ b/.github/actions/setup-python/action.yml @@ -15,5 +15,4 @@ runs: shell: bash run: | python -m pip install --upgrade pip - # install editable package with dev extras per pyproject.toml pip install -e '.[dev]' diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index cdf4ed6..f4ad7db 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -18,12 +18,6 @@ jobs: - name: Setup Python uses: ./.github/actions/setup-python - - name: Install dev dependencies - shell: bash - run: | - python -m pip install --upgrade pip - pip install -e '.[dev]' - - name: Black run: black --check api/ tests/