Skip to content

Commit 5f584de

Browse files
committed
Fix deprecation warnings
- Update SQLAlchemy to use declarative_base from orm module - Migrate Pydantic models to v2 ConfigDict - Replace on_event with lifespan context manager
1 parent 030fd95 commit 5f584de

4 files changed

Lines changed: 13 additions & 10 deletions

File tree

app/database.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
from sqlalchemy import create_engine, Column, Integer, String, DateTime
2-
from sqlalchemy.ext.declarative import declarative_base
3-
from sqlalchemy.orm import sessionmaker
2+
from sqlalchemy.orm import declarative_base, sessionmaker
43
from datetime import datetime
54

65
SQLALCHEMY_DATABASE_URL = "sqlite:///./notes.db"

app/main.py

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,21 @@
11
from fastapi import FastAPI, Depends, HTTPException
22
from sqlalchemy.orm import Session
33
from typing import List
4+
from contextlib import asynccontextmanager
45

56
from .database import get_db, init_db, NoteDB
67
from .models import Note, NoteCreate, NoteUpdate
78

8-
app = FastAPI(title="Notes API", version="0.1.0")
99

10-
11-
@app.on_event("startup")
12-
def startup_event():
10+
@asynccontextmanager
11+
async def lifespan(app: FastAPI):
12+
# Startup
1313
init_db()
14+
yield
15+
# Shutdown (if needed in the future)
16+
17+
18+
app = FastAPI(title="Notes API", version="0.1.0", lifespan=lifespan)
1419

1520

1621
@app.get("/")

app/models.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from pydantic import BaseModel
1+
from pydantic import BaseModel, ConfigDict
22
from datetime import datetime
33
from typing import Optional
44

@@ -14,10 +14,9 @@ class NoteUpdate(BaseModel):
1414

1515

1616
class Note(BaseModel):
17+
model_config = ConfigDict(from_attributes=True)
18+
1719
id: int
1820
title: str
1921
content: str
2022
created_at: datetime
21-
22-
class Config:
23-
from_attributes = True

setup-git.sh

100755100644
File mode changed.

0 commit comments

Comments
 (0)