feat: indie status page MVP -- FastAPI + SQLite
- 8 DB models (services, incidents, monitors, subscribers, etc.) - Full CRUD API for services, incidents, monitors - Public status page with live data - Incident detail page with timeline - API key authentication - Uptime monitoring scheduler - 13 tests passing - TECHNICAL_DESIGN.md with full spec
This commit is contained in:
commit
902133edd3
4655 changed files with 1342691 additions and 0 deletions
|
|
@ -0,0 +1,30 @@
|
|||
from __future__ import annotations
|
||||
|
||||
import sys
|
||||
|
||||
|
||||
__all__ = ["TimeoutError", "aiter", "anext", "asyncio_timeout", "asyncio_timeout_at"]
|
||||
|
||||
|
||||
if sys.version_info[:2] >= (3, 11):
|
||||
TimeoutError = TimeoutError
|
||||
aiter = aiter
|
||||
anext = anext
|
||||
from asyncio import (
|
||||
timeout as asyncio_timeout, # noqa: F401
|
||||
timeout_at as asyncio_timeout_at, # noqa: F401
|
||||
)
|
||||
|
||||
else: # Python < 3.11
|
||||
from asyncio import TimeoutError
|
||||
|
||||
def aiter(async_iterable):
|
||||
return type(async_iterable).__aiter__(async_iterable)
|
||||
|
||||
async def anext(async_iterator):
|
||||
return await type(async_iterator).__anext__(async_iterator)
|
||||
|
||||
from .async_timeout import (
|
||||
timeout as asyncio_timeout, # noqa: F401
|
||||
timeout_at as asyncio_timeout_at, # noqa: F401
|
||||
)
|
||||
Loading…
Add table
Add a link
Reference in a new issue