@ -1,5 +1,6 @@
# src/database.py
# src/database.py
import functools
import functools
import operator
import re
import re
from contextlib import asynccontextmanager , contextmanager
from contextlib import asynccontextmanager , contextmanager
from typing import Annotated , Any , AsyncGenerator
from typing import Annotated , Any , AsyncGenerator
@ -58,7 +59,7 @@ class Base(DeclarativeBase):
def dict ( self ) :
def dict ( self ) :
""" Returns a dict representation of a model. """
""" Returns a dict representation of a model. """
if hasattr ( self , ' __table__ ' ) :
if hasattr ( self , ' __table__ ' ) :
return { c . name : getattr ( self , c . name ) for c in self . __table__ . columns }
return { c . name : operator . attrgetter ( c . name ) ( self ) for c in self . __table__ . columns }
return { }
return { }
class CollectorBase ( DeclarativeBase ) :
class CollectorBase ( DeclarativeBase ) :
@ -69,7 +70,7 @@ class CollectorBase(DeclarativeBase):
def dict ( self ) :
def dict ( self ) :
""" Returns a dict representation of a model. """
""" Returns a dict representation of a model. """
if hasattr ( self , ' __table__ ' ) :
if hasattr ( self , ' __table__ ' ) :
return { c . name : getattr ( self , c . name ) for c in self . __table__ . columns }
return { c . name : operator . attrgetter ( c . name ) ( self ) for c in self . __table__ . columns }
return { }
return { }
@asynccontextmanager
@asynccontextmanager