Skip to content

Commit 76762fd

Browse files
committed
mypy Base(DeclarativeBase)
1 parent e1490ca commit 76762fd

File tree

2 files changed

+20
-25
lines changed

2 files changed

+20
-25
lines changed

src/opengeodeweb_back/data.py

Lines changed: 16 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,40 +1,32 @@
1-
from typing import List, Optional, TYPE_CHECKING
1+
from typing import List, Optional
22
from sqlalchemy import String, JSON
3-
from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column
4-
from .database import database
3+
from sqlalchemy.orm import Mapped, mapped_column
4+
from .database import database, Base
55
import uuid
66

7-
8-
class Base(DeclarativeBase):
9-
pass
10-
11-
12-
if TYPE_CHECKING:
13-
from sqlalchemy.orm import DeclarativeBase
14-
15-
167
class Data(Base):
178
__tablename__ = "datas"
189

1910
id: Mapped[str] = mapped_column(
2011
String, primary_key=True, default=lambda: str(uuid.uuid4()).replace("-", "")
2112
)
22-
name = database.Column(String, nullable=False)
23-
native_file_name = database.Column(String, nullable=False)
24-
viewable_file_name = database.Column(String, nullable=False)
25-
light_viewable = database.Column(String, nullable=True)
26-
geode_object = database.Column(String, nullable=False)
27-
input_file = database.Column(JSON, nullable=True)
28-
additional_files = database.Column(JSON, nullable=True)
13+
name: Mapped[str] = mapped_column(String, nullable=False)
14+
native_file_name: Mapped[str] = mapped_column(String, nullable=False)
15+
viewable_file_name: Mapped[str] = mapped_column(String, nullable=False)
16+
light_viewable: Mapped[Optional[str]] = mapped_column(String, nullable=True)
17+
geode_object: Mapped[str] = mapped_column(String, nullable=False)
18+
input_file: Mapped[Optional[dict]] = mapped_column(JSON, nullable=True)
19+
additional_files: Mapped[Optional[List[str]]] = mapped_column(JSON, nullable=True)
2920

3021
@staticmethod
3122
def create(
32-
name: str, geode_object: str, input_file: str, additional_files: list[str]
23+
name: str,
24+
geode_object: str,
25+
input_file: Optional[dict] = None,
26+
additional_files: Optional[List[str]] = None
3327
) -> "Data":
34-
if input_file is None:
35-
input_file = []
36-
if additional_files is None:
37-
additional_files = []
28+
input_file = input_file if input_file is not None else {}
29+
additional_files = additional_files if additional_files is not None else []
3830

3931
data_entry = Data(
4032
name=name,

src/opengeodeweb_back/database.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,13 @@
11
from flask import Flask
22
from flask_sqlalchemy import SQLAlchemy
3+
from sqlalchemy.orm import DeclarativeBase
34

45
DATABASE_FILENAME = "project.db"
56

6-
database = SQLAlchemy()
7+
class Base(DeclarativeBase):
8+
pass
79

10+
database = SQLAlchemy(model_class=Base)
811

912
def initialize_database(app: Flask) -> SQLAlchemy:
1013
database.init_app(app)

0 commit comments

Comments
 (0)