Fix Groww funds parsing
This commit is contained in:
parent
28ec6c9a4d
commit
760eb6ea1a
@ -216,22 +216,36 @@ def _normalize_groww_funds(data: dict | None) -> dict:
|
|||||||
available = payload.get("available") if isinstance(payload.get("available"), dict) else {}
|
available = payload.get("available") if isinstance(payload.get("available"), dict) else {}
|
||||||
equity = payload.get("equity") if isinstance(payload.get("equity"), dict) else {}
|
equity = payload.get("equity") if isinstance(payload.get("equity"), dict) else {}
|
||||||
equity_available = equity.get("available") if isinstance(equity.get("available"), dict) else {}
|
equity_available = equity.get("available") if isinstance(equity.get("available"), dict) else {}
|
||||||
|
equity_margin = (
|
||||||
|
payload.get("equity_margin_details")
|
||||||
|
if isinstance(payload.get("equity_margin_details"), dict)
|
||||||
|
else {}
|
||||||
|
)
|
||||||
|
|
||||||
cash = _first_number(
|
cash = _first_number(
|
||||||
|
payload.get("clear_cash"),
|
||||||
payload.get("cash"),
|
payload.get("cash"),
|
||||||
payload.get("available_cash"),
|
payload.get("available_cash"),
|
||||||
payload.get("available_balance"),
|
payload.get("available_balance"),
|
||||||
|
payload.get("available_margin"),
|
||||||
available.get("cash"),
|
available.get("cash"),
|
||||||
available.get("available_cash"),
|
available.get("available_cash"),
|
||||||
|
available.get("available_margin"),
|
||||||
available.get("balance"),
|
available.get("balance"),
|
||||||
equity.get("cash"),
|
equity.get("cash"),
|
||||||
|
equity.get("available_margin"),
|
||||||
equity_available.get("cash"),
|
equity_available.get("cash"),
|
||||||
equity_available.get("live_balance"),
|
equity_available.get("live_balance"),
|
||||||
|
equity_margin.get("cnc_balance_available"),
|
||||||
|
equity_margin.get("mis_balance_available"),
|
||||||
)
|
)
|
||||||
net = _first_number(
|
net = _first_number(
|
||||||
payload.get("net"),
|
payload.get("net"),
|
||||||
payload.get("total"),
|
payload.get("total"),
|
||||||
payload.get("margin_available"),
|
payload.get("margin_available"),
|
||||||
|
payload.get("available_margin"),
|
||||||
|
payload.get("clear_cash"),
|
||||||
|
payload.get("utilised_margin"),
|
||||||
equity.get("net"),
|
equity.get("net"),
|
||||||
cash,
|
cash,
|
||||||
)
|
)
|
||||||
@ -239,20 +253,32 @@ def _normalize_groww_funds(data: dict | None) -> dict:
|
|||||||
payload.get("withdrawable"),
|
payload.get("withdrawable"),
|
||||||
payload.get("available_to_withdraw"),
|
payload.get("available_to_withdraw"),
|
||||||
available.get("withdrawable"),
|
available.get("withdrawable"),
|
||||||
|
equity_margin.get("cnc_balance_available"),
|
||||||
|
payload.get("clear_cash"),
|
||||||
cash,
|
cash,
|
||||||
)
|
)
|
||||||
balance = _first_number(
|
balance = _first_number(
|
||||||
payload.get("balance"),
|
payload.get("balance"),
|
||||||
payload.get("available_balance"),
|
payload.get("available_balance"),
|
||||||
available.get("balance"),
|
available.get("balance"),
|
||||||
|
payload.get("clear_cash"),
|
||||||
cash,
|
cash,
|
||||||
)
|
)
|
||||||
|
utilized = _first_number(
|
||||||
|
payload.get("utilized"),
|
||||||
|
payload.get("utilised"),
|
||||||
|
payload.get("utilised_margin"),
|
||||||
|
payload.get("used_margin"),
|
||||||
|
equity_margin.get("utilised_margin"),
|
||||||
|
default=0.0,
|
||||||
|
)
|
||||||
|
|
||||||
return {
|
return {
|
||||||
"net": net,
|
"net": net,
|
||||||
"cash": cash,
|
"cash": cash,
|
||||||
"withdrawable": withdrawable,
|
"withdrawable": withdrawable,
|
||||||
"balance": balance,
|
"balance": balance,
|
||||||
|
"utilized": utilized,
|
||||||
"available": {
|
"available": {
|
||||||
"live_balance": cash,
|
"live_balance": cash,
|
||||||
"cash": cash,
|
"cash": cash,
|
||||||
|
|||||||
@ -98,7 +98,12 @@ def _first_data(payload: dict | None):
|
|||||||
if not isinstance(payload, dict):
|
if not isinstance(payload, dict):
|
||||||
return payload
|
return payload
|
||||||
data = payload.get("data")
|
data = payload.get("data")
|
||||||
return data if data is not None else payload
|
if data is not None:
|
||||||
|
return data
|
||||||
|
envelope = payload.get("payload")
|
||||||
|
if envelope is not None:
|
||||||
|
return envelope
|
||||||
|
return payload
|
||||||
|
|
||||||
|
|
||||||
def _auth_headers(access_token: str) -> dict:
|
def _auth_headers(access_token: str) -> dict:
|
||||||
|
|||||||
@ -86,22 +86,35 @@ def _normalize_groww_funds(data: dict | None) -> dict:
|
|||||||
available = payload.get("available") if isinstance(payload.get("available"), dict) else {}
|
available = payload.get("available") if isinstance(payload.get("available"), dict) else {}
|
||||||
equity = payload.get("equity") if isinstance(payload.get("equity"), dict) else {}
|
equity = payload.get("equity") if isinstance(payload.get("equity"), dict) else {}
|
||||||
equity_available = equity.get("available") if isinstance(equity.get("available"), dict) else {}
|
equity_available = equity.get("available") if isinstance(equity.get("available"), dict) else {}
|
||||||
|
equity_margin = (
|
||||||
|
payload.get("equity_margin_details")
|
||||||
|
if isinstance(payload.get("equity_margin_details"), dict)
|
||||||
|
else {}
|
||||||
|
)
|
||||||
|
|
||||||
cash = _first_numeric(
|
cash = _first_numeric(
|
||||||
|
payload.get("clear_cash"),
|
||||||
payload.get("cash"),
|
payload.get("cash"),
|
||||||
payload.get("available_cash"),
|
payload.get("available_cash"),
|
||||||
payload.get("available_balance"),
|
payload.get("available_balance"),
|
||||||
|
payload.get("available_margin"),
|
||||||
available.get("cash"),
|
available.get("cash"),
|
||||||
available.get("available_cash"),
|
available.get("available_cash"),
|
||||||
|
available.get("available_margin"),
|
||||||
available.get("balance"),
|
available.get("balance"),
|
||||||
equity.get("cash"),
|
equity.get("cash"),
|
||||||
|
equity.get("available_margin"),
|
||||||
equity_available.get("cash"),
|
equity_available.get("cash"),
|
||||||
equity_available.get("live_balance"),
|
equity_available.get("live_balance"),
|
||||||
|
equity_margin.get("cnc_balance_available"),
|
||||||
|
equity_margin.get("mis_balance_available"),
|
||||||
)
|
)
|
||||||
net = _first_numeric(
|
net = _first_numeric(
|
||||||
payload.get("net"),
|
payload.get("net"),
|
||||||
payload.get("total"),
|
payload.get("total"),
|
||||||
payload.get("margin_available"),
|
payload.get("margin_available"),
|
||||||
|
payload.get("available_margin"),
|
||||||
|
payload.get("clear_cash"),
|
||||||
equity.get("net"),
|
equity.get("net"),
|
||||||
cash,
|
cash,
|
||||||
)
|
)
|
||||||
@ -109,12 +122,15 @@ def _normalize_groww_funds(data: dict | None) -> dict:
|
|||||||
payload.get("withdrawable"),
|
payload.get("withdrawable"),
|
||||||
payload.get("available_to_withdraw"),
|
payload.get("available_to_withdraw"),
|
||||||
available.get("withdrawable"),
|
available.get("withdrawable"),
|
||||||
|
equity_margin.get("cnc_balance_available"),
|
||||||
|
payload.get("clear_cash"),
|
||||||
cash,
|
cash,
|
||||||
)
|
)
|
||||||
balance = _first_numeric(
|
balance = _first_numeric(
|
||||||
payload.get("balance"),
|
payload.get("balance"),
|
||||||
payload.get("available_balance"),
|
payload.get("available_balance"),
|
||||||
available.get("balance"),
|
available.get("balance"),
|
||||||
|
payload.get("clear_cash"),
|
||||||
cash,
|
cash,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user