from typing import Any import sqlalchemy as sa from sqlalchemy.dialects.postgresql import array as pg_array, JSONB def jsonb_set(target, path: list[str], val: Any): """ An easy wrapper over sa.func.jsonb_set(). Example: >>> jsonb_set(Instrument.state, ['status'], 'Running') """ return sa.func.jsonb_set(target, pg_array(path), sa.cast(val, JSONB)) def jsonb_concat(a, b, /): return a.op('||')(b)