Spaces:
Runtime error
Runtime error
from dataclasses import dataclass | |
from typing import Optional | |
from app import route_prefix | |
class PageMeta: | |
module_name: str | |
_id: Optional[str] = None | |
_name: Optional[str] = None | |
_path: Optional[str] = None | |
def id_(self) -> str: | |
if not self._id: | |
# Split the module name and get the last part | |
parts = self.module_name.split(".") | |
if len(parts) < 2: | |
raise ValueError(f"Invalid module name: {self.module_name}") | |
self._id = parts[1] | |
return self._id | |
def name(self) -> str: | |
if not self._name: | |
self._name = self.id_.replace("_", " ").capitalize() | |
return self._name | |
def path(self) -> str: | |
if not self._path: | |
self._path = route_prefix + self.id_ | |
return self._path | |
def from_module(cls, module_name: str = __name__) -> 'PageMeta': | |
return cls(module_name=module_name) | |
class BasePage: | |
def create(module_name: str, layout): | |
# Create PageMeta for the page | |
page_meta = PageMeta.from_module(module_name) | |
# Create and return the page (e.g., as a Flask Blueprint) | |
page = { | |
"meta": page_meta, | |
"layout": layout, | |
} | |
return page |