Skip to content

Commit 3f4f1ef

Browse files
authored
Merge pull request #197 from grillazz/195-switch-project-to-uv
2 parents e88f68e + b594dee commit 3f4f1ef

30 files changed

+750
-288
lines changed

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,10 @@ jobs:
5454
with:
5555
python-version: ${{ matrix.python-version }}
5656

57+
- name: Lint with ruff
58+
run: uv run --frozen ruff check .
59+
5760
- name: Test with python ${{ matrix.python-version }}
5861
run: uv run --frozen pytest
5962

63+

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ safety: ## Check project and dependencies with safety https://github.com/pyupio/
3939

4040
.PHONY: py-upgrade
4141
py-upgrade: ## Upgrade project py files with pyupgrade library for python version 3.10
42-
pyupgrade --py312-plus `find app -name "*.py"`
42+
pyupgrade --py313-plus `find app -name "*.py"`
4343

4444
.PHONY: lint
4545
lint: ## Lint project code.

app/api/health.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
11
import logging
22
from typing import Annotated
33

4-
from fastapi import APIRouter, status, Request, Depends, Query
4+
from fastapi import APIRouter, Depends, Query, Request, status
55
from pydantic import EmailStr
66
from starlette.concurrency import run_in_threadpool
77

88
from app.services.smtp import SMTPEmailService
9-
109
from app.utils.logging import AppLogger
1110

1211
logger = AppLogger().get_logger()

app/api/nonsense.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
import io
2-
from fastapi import APIRouter, Depends, status, UploadFile, HTTPException
3-
from sqlalchemy.exc import SQLAlchemyError
2+
43
import polars as pl
4+
from fastapi import APIRouter, Depends, HTTPException, UploadFile, status
5+
from sqlalchemy.exc import SQLAlchemyError
56
from sqlalchemy.ext.asyncio import AsyncSession
67

78
from app.database import get_db

app/api/shakespeare.py

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,6 @@
33
from fastapi import APIRouter, Depends, Query
44
from sqlalchemy.ext.asyncio import AsyncSession
55

6-
from fastapi_cache.decorator import cache
7-
86
from app.database import get_db
97
from app.models.shakespeare import Paragraph
108

@@ -14,7 +12,6 @@
1412
@router.get(
1513
"/",
1614
)
17-
@cache(namespace="test-2", expire=60)
1815
async def find_paragraph(
1916
character: Annotated[str, Query(description="Character name")],
2017
db_session: AsyncSession = Depends(get_db),

app/api/stuff.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from fastapi import APIRouter, Depends, HTTPException, status, Request
1+
from fastapi import APIRouter, Depends, HTTPException, Request, status
22
from sqlalchemy.exc import SQLAlchemyError
33
from sqlalchemy.ext.asyncio import AsyncSession
44

app/api/user.py

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

3-
from fastapi import APIRouter, Depends, status, Request, HTTPException, Form
3+
from fastapi import APIRouter, Depends, Form, HTTPException, Request, status
44
from sqlalchemy.ext.asyncio import AsyncSession
55

66
from app.database import get_db
77
from app.models.user import User
8-
from app.schemas.user import UserSchema, UserResponse, UserLogin, TokenResponse
8+
from app.schemas.user import TokenResponse, UserLogin, UserResponse, UserSchema
99
from app.services.auth import create_access_token
1010
from app.utils.logging import AppLogger
1111

app/config.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import os
22

3-
from pydantic import PostgresDsn, RedisDsn, computed_field, BaseModel
3+
from pydantic import BaseModel, PostgresDsn, RedisDsn, computed_field
44
from pydantic_core import MultiHostUrl
55
from pydantic_settings import BaseSettings, SettingsConfigDict
66

app/database.py

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

3-
from sqlalchemy.ext.asyncio import create_async_engine
4-
from sqlalchemy.ext.asyncio import async_sessionmaker
3+
from sqlalchemy.ext.asyncio import async_sessionmaker, create_async_engine
54

65
from app.config import settings as global_settings
76
from app.utils.logging import AppLogger

app/main.py

Lines changed: 10 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,22 @@
1+
from contextlib import asynccontextmanager
2+
13
import asyncpg
2-
from apscheduler.eventbrokers.redis import RedisEventBroker
4+
from apscheduler import AsyncScheduler
35
from apscheduler.datastores.sqlalchemy import SQLAlchemyDataStore
4-
from fastapi import FastAPI, Depends
5-
from fastapi_cache import FastAPICache
6-
from fastapi_cache.backends.redis import RedisBackend
6+
from apscheduler.eventbrokers.redis import RedisEventBroker
7+
from fastapi import Depends, FastAPI
78

9+
from app.api.health import router as health_router
810
from app.api.nonsense import router as nonsense_router
911
from app.api.shakespeare import router as shakespeare_router
1012
from app.api.stuff import router as stuff_router
13+
from app.api.user import router as user_router
1114
from app.config import settings as global_settings
1215
from app.database import engine
13-
from app.utils.logging import AppLogger
14-
from app.api.user import router as user_router
15-
from app.api.health import router as health_router
16-
from app.redis import get_redis, get_cache
16+
from app.redis import get_redis
1717
from app.services.auth import AuthBearer
1818
from app.services.scheduler import SchedulerMiddleware
19-
20-
from contextlib import asynccontextmanager
21-
22-
from apscheduler import AsyncScheduler
19+
from app.utils.logging import AppLogger
2320

2421
logger = AppLogger().get_logger()
2522

@@ -32,10 +29,7 @@ async def lifespan(_app: FastAPI):
3229
_postgres_dsn = global_settings.postgres_url.unicode_string()
3330

3431
try:
35-
# Initialize the cache with the redis connection
36-
redis_cache = await get_cache()
37-
FastAPICache.init(RedisBackend(redis_cache), prefix="fastapi-cache")
38-
# logger.info(FastAPICache.get_cache_status_header())
32+
# TODO: cache with the redis connection
3933
# Initialize the postgres connection pool
4034
_app.postgres_pool = await asyncpg.create_pool(
4135
dsn=_postgres_dsn,

0 commit comments

Comments
 (0)