Files
Autoparts-DB/pos/json_provider.py
consultoria-as 042acd6207 OPCIÓN C + A1: Consolidación técnica + orjson
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
2026-04-27 09:36:03 +00:00

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)