Source code for betty.project.extension.demo.serve
"""
Tools to serve demonstration sites.
"""
from __future__ import annotations
from contextlib import AsyncExitStack
from typing import final, TYPE_CHECKING
from typing_extensions import override
from betty import serve
from betty.locale.localizer import DEFAULT_LOCALIZER
from betty.project import load, generate
from betty.project.extension.demo.project import create_project
from betty.serve import Server, NoPublicUrlBecauseServerNotStartedError
if TYPE_CHECKING:
from betty.app import App
[docs]
@final
class DemoServer(Server):
"""
Serve the Betty demonstration site.
"""
@override
@property
def public_url(self) -> str:
if self._server is not None:
return self._server.public_url
raise NoPublicUrlBecauseServerNotStartedError()