Skip to content

Commit e208c5b

Browse files
committed
Merge remote-tracking branch 'origin/switch-logger-to-rotoger' into switch-logger-to-rotoger
# Conflicts: # pyproject.toml # uv.lock
2 parents 9929a03 + f90513a commit e208c5b

File tree

17 files changed

+43
-140
lines changed

17 files changed

+43
-140
lines changed

.github/workflows/build-and-test.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ jobs:
1212
strategy:
1313
fail-fast: false
1414
matrix:
15-
python-version: [ "3.13" ]
15+
python-version: [ "3.14" ]
1616

1717
env:
1818
PYTHONDONTWRITEBYTECODE: 1

Dockerfile

Lines changed: 14 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,28 @@
1-
FROM ubuntu:oracular AS build
1+
FROM ubuntu:25.10 AS base
22

3-
RUN apt-get update -qy && apt-get install -qyy \
3+
RUN apt-get update -qy \
4+
&& apt-get install -qyy \
45
-o APT::Install-Recommends=false \
56
-o APT::Install-Suggests=false \
67
build-essential \
78
ca-certificates \
89
python3-setuptools \
9-
python3.13-dev \
10-
git
10+
python3.14-dev
11+
1112

12-
COPY --from=ghcr.io/astral-sh/uv:latest /uv /usr/local/bin/uv
13+
COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/
1314

1415
ENV UV_LINK_MODE=copy \
1516
UV_COMPILE_BYTECODE=1 \
16-
UV_PYTHON_DOWNLOADS=never \
17-
UV_PYTHON=python3.13 \
17+
UV_PYTHON=python3.14 \
1818
UV_PROJECT_ENVIRONMENT=/panettone
1919

2020
COPY pyproject.toml /_lock/
2121
COPY uv.lock /_lock/
2222

23-
RUN --mount=type=cache,target=/root/.cache
24-
RUN cd /_lock && uv sync \
25-
--locked \
26-
--no-dev \
27-
--no-install-project
23+
RUN cd /_lock && uv sync --locked --no-install-project
2824
##########################################################################
29-
FROM ubuntu:oracular
25+
FROM ubuntu:25.10
3026

3127
ENV PATH=/panettone/bin:$PATH
3228

@@ -38,15 +34,14 @@ STOPSIGNAL SIGINT
3834
RUN apt-get update -qy && apt-get install -qyy \
3935
-o APT::Install-Recommends=false \
4036
-o APT::Install-Suggests=false \
41-
python3.13 \
42-
libpython3.13 \
43-
libpcre3 \
44-
libxml2
37+
python3.14 \
38+
libpython3.14 \
39+
libpcre3
4540

4641
RUN apt-get clean
4742
RUN rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
4843

49-
COPY --from=build --chown=panettone:panettone /panettone /panettone
44+
COPY --from=base --chown=panettone:panettone /panettone /panettone
5045

5146
USER panettone
5247
WORKDIR /panettone
@@ -56,8 +51,4 @@ COPY /templates/ templates/
5651
COPY .env app/
5752
COPY alembic.ini /panettone/alembic.ini
5853
COPY /alembic/ /panettone/alembic/
59-
COPY pyproject.toml /panettone/pyproject.toml
60-
61-
RUN python -V
62-
RUN python -Im site
63-
RUN python -Ic 'import uvicorn'
54+
COPY pyproject.toml /panettone/pyproject.toml

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ docker-up: ## Run project with compose
2626
docker-clean: ## Clean and reset project containers and volumes
2727
docker compose down -v --remove-orphans | true
2828
docker compose rm -f | true
29-
docker volume rm panettone_postgres_data | true
29+
docker volume ls -q | grep panettone_postgres_data | xargs -r docker volume rm | true
3030

3131
# ====================================================================================
3232
# DATABASE MIGRATIONS

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
<ul>
2525
<li><a href="#make-will-help-you">Make will help you</a></li>
2626
<li><a href="#how-to-feed-database">How to feed database</a></li>
27-
<li><a href="#structured-&-asynchronous-logging-with-rotoger">Structured & Asynchronous Logging with Rotoger</a></li>
27+
<li><a href="#structured-asynchronous-logging-with-rotoger">Structured & Asynchronous Logging with Rotoger</a></li>
2828
<li><a href="#setup-user-auth">Setup user auth</a></li>
2929
<li><a href="#setup-local-env-with-uv">Setup local development with uv</a></li>
3030
<li><a href="#import-xlsx-files-with-polars-and-calamine">Import xlsx files with polars and calamine</a></li>

app/api/health.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,12 @@
22

33
from fastapi import APIRouter, Depends, Query, Request, status
44
from pydantic import EmailStr
5-
from rotoger import Rotoger
5+
from rotoger import get_logger
66
from starlette.concurrency import run_in_threadpool
77

88
from app.services.smtp import SMTPEmailService
99

10-
logger = Rotoger().get_logger()
10+
logger = get_logger()
1111

1212
router = APIRouter()
1313

app/api/ml.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@
22

33
from fastapi import APIRouter, Depends, Form
44
from fastapi.responses import StreamingResponse
5-
from rotoger import Rotoger
5+
from rotoger import get_logger
66

77
from app.services.llm import get_llm_service
88

9-
logger = Rotoger().get_logger()
9+
logger = get_logger()
1010

1111
router = APIRouter()
1212

app/api/stuff.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
from fastapi import APIRouter, Depends, HTTPException, Request, status
2-
from rotoger import Rotoger
2+
from rotoger import get_logger
33
from sqlalchemy.exc import SQLAlchemyError
44
from sqlalchemy.ext.asyncio import AsyncSession
55

@@ -8,7 +8,7 @@
88
from app.schemas.stuff import RandomStuff as RandomStuffSchema
99
from app.schemas.stuff import StuffResponse, StuffSchema
1010

11-
logger = Rotoger().get_logger()
11+
logger = get_logger()
1212

1313
router = APIRouter(prefix="/v1/stuff")
1414

app/api/user.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
from typing import Annotated
22

33
from fastapi import APIRouter, Depends, Form, HTTPException, Request, status
4-
from rotoger import Rotoger
4+
from rotoger import get_logger
55
from sqlalchemy.ext.asyncio import AsyncSession
66

77
from app.database import get_db
88
from app.models.user import User
99
from app.schemas.user import TokenResponse, UserLogin, UserResponse, UserSchema
1010
from app.services.auth import create_access_token
1111

12-
logger = Rotoger().get_logger()
12+
logger = get_logger()
1313

1414
router = APIRouter(prefix="/v1/user")
1515

app/database.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
from collections.abc import AsyncGenerator
22

33
from fastapi.exceptions import ResponseValidationError
4-
from rotoger import Rotoger
4+
from rotoger import get_logger
55
from sqlalchemy.exc import SQLAlchemyError
66
from sqlalchemy.ext.asyncio import async_sessionmaker, create_async_engine
77

88
from app.config import settings as global_settings
99

10-
logger = Rotoger().get_logger()
10+
logger = get_logger()
1111

1212
engine = create_async_engine(
1313
global_settings.asyncpg_url.unicode_string(),

app/exception_handlers/base.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
import orjson
22
from attrs import define, field
33
from fastapi import Request
4-
from rotoger import Rotoger
4+
from rotoger import get_logger
55

6-
logger = Rotoger().get_logger()
6+
logger = get_logger()
77

88

99
@define(slots=True)

0 commit comments

Comments
 (0)