Ctrl K
ComunidadGuías…

scripts/probe_kotakneo_live.py

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
#!/usr/bin/env python3
"""Compatibility wrapper for the Kotak Neo read-only live probe."""

from __future__ import annotations

import argparse
import asyncio
import sys
from pathlib import Path

ROOT = Path(__file__).resolve().parents[1]
root_path = str(ROOT)
if root_path not in sys.path:
    sys.path.insert(0, root_path)

from scripts.probe_native_broker_live import broker_read_help, run_probe  # noqa: E402


def parse_args(argv: list[str]) -> argparse.Namespace:
    parser = argparse.ArgumentParser(
        description="Read-only Kotak Neo native adapter probe with redacted output.",
    )
    parser.add_argument(
        "--environment",
        default="prod",
        choices=("prod", "uat"),
        help="Kotak Neo SDK environment to use.",
    )
    parser.add_argument(
        "--reads",
        nargs="+",
        default=["default"],
        help=f"Read-only calls: default, all, or any of {broker_read_help('kotakneo')}.",
    )
    parser.add_argument(
        "--logout",
        action="store_true",
        help="Call the broker logout endpoint after probing; this may revoke access tokens.",
    )
    return parser.parse_args(argv)


def main(argv: list[str] | None = None) -> int:
    args = parse_args(sys.argv[1:] if argv is None else argv)
    try:
        return asyncio.run(run_probe("kotakneo", "totp_mpin", args.reads, args.environment, logout=args.logout))
    except KeyboardInterrupt:
        print("probe: cancelled")
        return 130


if __name__ == "__main__":
    raise SystemExit(main())