Skip to content

Commit 3db2e04

Browse files
authored
Merge pull request #37 from Light-it-labs/feat/enum-handling
feat: automatic handling of enums in models and migrations
2 parents f269ae6 + 4c69aae commit 3db2e04

1 file changed

Lines changed: 14 additions & 9 deletions

File tree

app/common/models/base_class.py

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,15 @@
1-
from uuid import UUID, uuid4
21
from datetime import datetime
2+
from enum import Enum
3+
from typing import Literal
4+
from uuid import UUID
5+
from uuid import uuid4
36

4-
from sqlalchemy import MetaData, func, UUID as SQLA_UUID, DateTime
5-
from sqlalchemy.orm import (
6-
DeclarativeBase,
7-
Mapped,
8-
mapped_column,
9-
)
7+
from sqlalchemy import MetaData
8+
from sqlalchemy import func
9+
from sqlalchemy import types
10+
from sqlalchemy.orm import DeclarativeBase
11+
from sqlalchemy.orm import Mapped
12+
from sqlalchemy.orm import mapped_column
1013

1114

1215
class Base(DeclarativeBase):
@@ -23,8 +26,10 @@ class Base(DeclarativeBase):
2326
)
2427

2528
type_annotation_map = {
26-
UUID: SQLA_UUID,
27-
datetime: DateTime(timezone=True),
29+
UUID: types.UUID,
30+
datetime: types.DateTime(timezone=True),
31+
Enum: types.Enum(Enum, native_enum=False),
32+
Literal: types.Enum(Enum, native_enum=False),
2833
}
2934

3035
id: Mapped[UUID] = mapped_column(

0 commit comments

Comments
 (0)