Skip to content

Commit 55c755b

Browse files
committed
Clean up state.py
1 parent 905d41b commit 55c755b

3 files changed

Lines changed: 25 additions & 30 deletions

File tree

fastapi_forge/__main__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import click
2-
from fastapi_forge.frontend.main import init
2+
from fastapi_forge.frontend import init
33
from pathlib import Path
44
import os
55

fastapi_forge/frontend/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,4 @@
44
from fastapi_forge.frontend.panels.model_panel import ModelPanel
55
from fastapi_forge.frontend.panels.model_editor_panel import ModelEditorPanel
66
from fastapi_forge.frontend.panels.project_config_panel import ProjectConfigPanel
7+
from fastapi_forge.frontend.main import init

fastapi_forge/frontend/state.py

Lines changed: 23 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,24 @@
11
from pydantic import BaseModel, ValidationError
2-
from fastapi_forge import dtos as m
2+
from fastapi_forge.dtos import (
3+
Model,
4+
ModelField,
5+
ModelRelationship,
6+
ProjectSpec,
7+
)
8+
from fastapi_forge.enums import FieldDataType
39
from fastapi_forge.frontend import notifications as n
410
from nicegui import ui
5-
import typing as t
11+
from typing import Callable
612

713

814
class ProjectState(BaseModel):
9-
models: list[m.Model] = []
10-
selected_model: m.Model | None = None
11-
selected_field: m.ModelField | None = None
12-
selected_relation: m.ModelRelationship | None = None
15+
models: list[Model] = []
16+
selected_model: Model | None = None
17+
selected_field: ModelField | None = None
18+
selected_relation: ModelRelationship | None = None
1319

14-
render_models_fn: t.Callable | None = None
15-
select_model_fn: t.Callable | None = None
20+
render_models_fn: Callable | None = None
21+
select_model_fn: Callable | None = None
1622

1723
project_name: str = ""
1824
use_postgres: bool = False
@@ -21,7 +27,7 @@ class ProjectState(BaseModel):
2127
use_redis: bool = False
2228
use_rabbitmq: bool = False
2329

24-
def initialize_from_project(self, project: m.ProjectSpec) -> None:
30+
def initialize_from_project(self, project: ProjectSpec) -> None:
2531
"""Initialize the state from an existing project specification"""
2632
self.project_name = project.project_name
2733
self.use_postgres = project.use_postgres
@@ -44,24 +50,24 @@ def add_model(self, model_name: str) -> None:
4450
return
4551

4652
try:
47-
default_id_field = m.ModelField(
53+
default_id_field = ModelField(
4854
name="id",
49-
type=m.FieldDataType.UUID,
55+
type=FieldDataType.UUID,
5056
primary_key=True,
5157
nullable=False,
5258
unique=True,
5359
index=True,
5460
)
5561

56-
new_model = m.Model(name=model_name, fields=[default_id_field])
62+
new_model = Model(name=model_name, fields=[default_id_field])
5763
self.models.append(new_model)
5864

5965
self.render_models_fn()
6066

6167
except ValidationError as e:
6268
n.notify_validation_error(e)
6369

64-
def delete_model(self, model: m.Model) -> None:
70+
def delete_model(self, model: Model) -> None:
6571
if model not in self.models:
6672
ui.notify("Something went wrong...", type="warning")
6773
return
@@ -71,7 +77,7 @@ def delete_model(self, model: m.Model) -> None:
7177
if self.render_models_fn:
7278
self.render_models_fn()
7379

74-
def update_model_name(self, model: m.Model, new_name: str) -> None:
80+
def update_model_name(self, model: Model, new_name: str) -> None:
7581
if any(m.name == new_name for m in self.models if m != model):
7682
n.notify_model_exists(new_name)
7783
return
@@ -83,27 +89,15 @@ def update_model_name(self, model: m.Model, new_name: str) -> None:
8389
if self.render_models_fn:
8490
self.render_models_fn()
8591

86-
def add_field(self, **kwargs: t.Any) -> None:
87-
if not self.selected_model:
88-
n.notify_something_went_wrong()
89-
return
90-
91-
try:
92-
field = m.ModelField(**kwargs)
93-
print(field)
94-
self.selected_model.fields.append(field)
95-
except ValidationError as e:
96-
n.notify_validation_error(e)
97-
98-
def select_model(self, model: m.Model) -> None:
92+
def select_model(self, model: Model) -> None:
9993
if self.select_model_fn is None:
10094
n.notify_something_went_wrong()
10195
return
10296
self.selected_model = model
10397
self.select_model_fn(model)
10498

105-
def get_project_spec(self) -> m.ProjectSpec:
106-
return m.ProjectSpec(
99+
def get_project_spec(self) -> ProjectSpec:
100+
return ProjectSpec(
107101
project_name=self.project_name,
108102
use_postgres=self.use_postgres,
109103
use_alembic=self.use_alembic,

0 commit comments

Comments
 (0)