Merge pull request #188 from grillazz/187-python313

187 python313
This commit is contained in:
Jakub Miazek 2024-12-16 19:50:21 +01:00 committed by GitHub
commit d798635e3f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 1181 additions and 1334 deletions

View File

@ -12,8 +12,8 @@ jobs:
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
python-version: [ "3.12" ] python-version: [ "3.13" ]
poetry-version: [ "1.8.3" ] poetry-version: [ "1.8.5" ]
env: env:
PYTHONDONTWRITEBYTECODE: 1 PYTHONDONTWRITEBYTECODE: 1

View File

@ -1,4 +1,4 @@
FROM python:3.12-slim-bookworm AS base FROM python:3.13-slim-bookworm AS base
RUN apt-get update \ RUN apt-get update \
&& apt-get upgrade -y \ && apt-get upgrade -y \
&& apt-get install -y --no-install-recommends curl git build-essential \ && apt-get install -y --no-install-recommends curl git build-essential \
@ -10,7 +10,7 @@ FROM base AS install
WORKDIR /home/code WORKDIR /home/code
# allow controlling the poetry installation of dependencies via external args # allow controlling the poetry installation of dependencies via external args
ARG INSTALL_ARGS="--no-root" ARG INSTALL_ARGS="--no-root --no-interaction --no-ansi"
ENV POETRY_HOME="/opt/poetry" ENV POETRY_HOME="/opt/poetry"
ENV PATH="$POETRY_HOME/bin:$PATH" ENV PATH="$POETRY_HOME/bin:$PATH"
COPY pyproject.toml poetry.lock ./ COPY pyproject.toml poetry.lock ./

View File

@ -128,7 +128,7 @@ Setup user authentication with JWT and Redis as token storage.
### Local development with poetry ### Local development with poetry
```shell ```shell
pyenv install 3.12 && pyenv local 3.12 pyenv install 3.13 && pyenv local 3.13
``` ```
```shell ```shell
poetry install --with dev poetry install --with dev
@ -189,6 +189,7 @@ I've included a few of my favorites to kick things off!
- **[JUN 8 2024]** implement asyncpg connection pool :fast_forward: - **[JUN 8 2024]** implement asyncpg connection pool :fast_forward:
- **[AUG 17 2024]** granian use case implemented with docker compose and rich logger :fast_forward: - **[AUG 17 2024]** granian use case implemented with docker compose and rich logger :fast_forward:
- **[OCT 16 2024]** apscheduler added to project :fast_forward: - **[OCT 16 2024]** apscheduler added to project :fast_forward:
- **[DEC 16 2024]** bump project to Python 3.13 :fast_forward:
<p align="right">(<a href="#readme-top">back to top</a>)</p> <p align="right">(<a href="#readme-top">back to top</a>)</p>

2492
poetry.lock generated

File diff suppressed because it is too large Load Diff

View File

@ -1,19 +1,20 @@
[tool.poetry] [tool.poetry]
name = "fastapi-sqlalchemy-asyncpg" name = "fastapi-sqlalchemy-asyncpg"
version = "0.0.16" version = "0.0.17"
description = "" description = ""
authors = ["Jakub Miazek <the@grillazz.com>"] authors = ["Jakub Miazek <the@grillazz.com>"]
packages = [] packages = []
license = "MIT" license = "MIT"
package-mode = false
[tool.poetry.dependencies] [tool.poetry.dependencies]
python = "^3.12" python = "^3.13"
fastapi = {version = "^0.115.2", extras = ["all"]} fastapi = {version = "^0.115.2", extras = ["all"]}
pydantic = {version = "^2.9.2", extras = ["email"]} pydantic = {version = "^2.9.2", extras = ["email"]}
pydantic-settings = "^2.6.0" pydantic-settings = "^2.6.0"
sqlalchemy = "^2.0.36" sqlalchemy = "^2.0.36"
uvicorn = { version = "^0.32.0", extras = ["standard"]} uvicorn = { version = "^0.32.0", extras = ["standard"]}
asyncpg = "^0.29.0" asyncpg = "^0.30.0"
alembic = "^1.13.3" alembic = "^1.13.3"
httpx = "^0.27.2" httpx = "^0.27.2"
pytest = "^8.3.3" pytest = "^8.3.3"
@ -34,6 +35,7 @@ polyfactory = "^2.17.0"
granian = "^1.6.1" granian = "^1.6.1"
transformers = "^4.45.2" transformers = "^4.45.2"
apscheduler = {version = "^4.0.0a5", extras = ["redis,sqlalchemy"]} apscheduler = {version = "^4.0.0a5", extras = ["redis,sqlalchemy"]}
pendulum = {git = "https://github.com/sdispater/pendulum.git", rev="develop"}
[tool.poetry.group.dev.dependencies] [tool.poetry.group.dev.dependencies]
devtools = { extras = ["pygments"], version = "^0.12.2" } devtools = { extras = ["pygments"], version = "^0.12.2" }
@ -58,8 +60,8 @@ lint.ignore = ["E501"]
# Exclude a variety of commonly ignored directories. # Exclude a variety of commonly ignored directories.
exclude = ["alembic",] exclude = ["alembic",]
# Assume Python 3.12 # Assume Python 3.13
target-version = "py312" target-version = "py313"
[tool.ruff.lint.flake8-quotes] [tool.ruff.lint.flake8-quotes]
docstring-quotes = "double" docstring-quotes = "double"