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 |