C1: Materialized view part_vehicle_preview (creación en progreso) - Migración v3.3_materialized_view.sql - catalog_service.py y dashboard/server.py ahora usan la MV - Script refresh_part_vehicle_preview.py + warm_vehicle_cache.py actualizado C2: Fix cache warming script (autónomo) - Auto-re-ejecuta con sudo -u postgres si peer auth falla - Args CLI: --dsn, --batch-size, --ttl, --dry-run C3: CSS dinámico residual extraído - sidebar.js → sidebar.css (nuevo) - pos-utils.js → common.css (nuevo) - Links agregados a 14 templates POS C4: Script de load testing básico - scripts/load_test.py: métricas p50/p95/p99, throughput, errores C5: Documentación actualizada - FASES_IMPLEMENTADAS.md: test count real, FASE 7 completa - performance_audit_2026.md: anexo post-FASE 7, métricas actualizadas A1: Serialización orjson - pos/json_provider.py: DefaultJSONProvider con orjson.dumps/loads - Aplicado a POS app y Dashboard server - Fix indentation error en pos_bp.py Tests: 73/73 pasando
18 lines
634 B
Python
18 lines
634 B
Python
"""Custom Flask JSON provider using orjson for faster serialization."""
|
|
|
|
import orjson
|
|
from flask.json.provider import DefaultJSONProvider
|
|
|
|
|
|
class OrjsonProvider(DefaultJSONProvider):
|
|
"""Drop-in replacement for Flask's default JSON provider using orjson."""
|
|
|
|
def dumps(self, obj, **kwargs):
|
|
# Remove Flask-specific kwargs that orjson doesn't understand
|
|
# (indent, separators, sort_keys are not used by orjson in the same way)
|
|
# orjson returns bytes; decode to str for Flask
|
|
return orjson.dumps(obj, default=str).decode('utf-8')
|
|
|
|
def loads(self, s, **kwargs):
|
|
return orjson.loads(s)
|