Analyzer::Python::MountedRouterSupport
Decorator routes on a receiver, plus parent.<mount>(child, prefix=...)
calls that prefix every route of child — the shape AWS Chalice
blueprints and Lambda Powertools routers share. The adapter reads one
file into a FileScan; emit_mounted_routes resolves each mount target
(same-file name, from m import router, or m.router) and joins the
prefixes. Mounts are one level deep: neither framework nests them.
Constants
ATTR_ALIAS_RE = /\b([A-Za-z_]\w*)\s*=\s*((?:\w+\.)*\w+)\.(\w+)\s*(?:or\s*\{\s*\}\s*)?$/m
MOUNT_TARGET_RE = /\A[A-Za-z_]\w*(?:\.[A-Za-z_]\w*)?\z/
OR_EMPTY_RE = /\(\s*((?:\w+\.)*\w+)\s+or\s+\{\s*\}\s*\)/
<accessor>.<attr>.get("k") / ["k"] reads (also through a local
alias of the accessor), typed by attrs; a bare .json_body read with
no keyed access becomes one body JSON param.
x.query_params or {}: Chalice leaves an absent query dict as None.