indie-status-page/venv/lib/python3.11/site-packages/mypyc/lower/misc_ops.py
IndieStatusBot 902133edd3 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
2026-04-25 05:00:00 +00:00

20 lines
920 B
Python

from __future__ import annotations
from mypyc.ir.ops import ComparisonOp, GetElementPtr, Integer, LoadMem, Value
from mypyc.ir.rtypes import PyVarObject, c_pyssize_t_rprimitive, object_rprimitive
from mypyc.irbuild.ll_builder import LowLevelIRBuilder
from mypyc.lower.registry import lower_primitive_op
@lower_primitive_op("var_object_size")
def var_object_size(builder: LowLevelIRBuilder, args: list[Value], line: int) -> Value:
elem_address = builder.add(GetElementPtr(args[0], PyVarObject, "ob_size"))
return builder.add(LoadMem(c_pyssize_t_rprimitive, elem_address, line))
@lower_primitive_op("propagate_if_error")
def propagate_if_error_op(builder: LowLevelIRBuilder, args: list[Value], line: int) -> Value:
# Return False on NULL. The primitive uses ERR_FALSE, so this is an error.
return builder.add(
ComparisonOp(args[0], Integer(0, object_rprimitive), ComparisonOp.NEQ, line)
)