|
1 | | -from typing import List, Optional, TYPE_CHECKING |
| 1 | +from typing import List, Optional |
2 | 2 | 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 |
5 | 5 | import uuid |
6 | 6 |
|
7 | | - |
8 | | -class Base(DeclarativeBase): |
9 | | - pass |
10 | | - |
11 | | - |
12 | | -if TYPE_CHECKING: |
13 | | - from sqlalchemy.orm import DeclarativeBase |
14 | | - |
15 | | - |
16 | 7 | class Data(Base): |
17 | 8 | __tablename__ = "datas" |
18 | 9 |
|
19 | 10 | id: Mapped[str] = mapped_column( |
20 | 11 | String, primary_key=True, default=lambda: str(uuid.uuid4()).replace("-", "") |
21 | 12 | ) |
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) |
29 | 20 |
|
30 | 21 | @staticmethod |
31 | 22 | 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 |
33 | 27 | ) -> "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 [] |
38 | 30 |
|
39 | 31 | data_entry = Data( |
40 | 32 | name=name, |
|
0 commit comments