Jitendra12421 commited on
Commit
b770025
·
verified ·
1 Parent(s): 3a89854

Upload 42 files

Browse files
__pycache__/kotak_neo.cpython-311.pyc CHANGED
Binary files a/__pycache__/kotak_neo.cpython-311.pyc and b/__pycache__/kotak_neo.cpython-311.pyc differ
 
kotak_neo.py CHANGED
@@ -58,6 +58,19 @@ def _first_number(*values: Any) -> float | None:
58
  return None
59
 
60
 
 
 
 
 
 
 
 
 
 
 
 
 
 
61
  def _first_text(*values: Any) -> str | None:
62
  for value in values:
63
  if isinstance(value, dict):
@@ -403,6 +416,14 @@ class KotakNeoManager:
403
  raise KotakNeoError("Kotak Neo did not return a NIFTY 50 quote.")
404
 
405
  item = items[0]
 
 
 
 
 
 
 
 
406
  payload = {
407
  "symbol": "NIFTY 50",
408
  "exchange_segment": "nse_cm",
@@ -414,13 +435,13 @@ class KotakNeoManager:
414
  reference["quote_instrument_token"],
415
  ),
416
  "display_name": _first_text(item.get("trading_symbol"), item.get("ts"), item.get("name"), "NIFTY 50"),
417
- "last_traded_price": _first_number(item.get("last_traded_price"), item.get("ltp"), item.get("iv")),
418
- "close": _first_number(item.get("close"), item.get("c"), item.get("ic")),
419
- "change": _first_number(item.get("change"), item.get("cng")),
420
- "change_pct": _first_number(item.get("net_change_percentage"), item.get("nc")),
421
- "open": _first_number(item.get("openingPrice"), item.get("open"), item.get("o")),
422
- "high": _first_number(item.get("highPrice"), item.get("high"), item.get("h")),
423
- "low": _first_number(item.get("lowPrice"), item.get("low"), item.get("l")),
424
  "exchange_feed_time": _first_text(item.get("tvalue"), item.get("updRecvTm"), item.get("hsUpTm")),
425
  "as_of": _utc_now_iso(),
426
  "source": {
 
58
  return None
59
 
60
 
61
+ def _first_market_number(*values: Any) -> float | None:
62
+ fallback = None
63
+ for value in values:
64
+ parsed = _to_float(value)
65
+ if parsed is None:
66
+ continue
67
+ if fallback is None:
68
+ fallback = parsed
69
+ if parsed > 0:
70
+ return parsed
71
+ return fallback
72
+
73
+
74
  def _first_text(*values: Any) -> str | None:
75
  for value in values:
76
  if isinstance(value, dict):
 
416
  raise KotakNeoError("Kotak Neo did not return a NIFTY 50 quote.")
417
 
418
  item = items[0]
419
+ last_traded_price = _first_market_number(item.get("last_traded_price"), item.get("ltp"), item.get("iv"))
420
+ close = _first_market_number(item.get("ic"), item.get("close"), item.get("c"))
421
+ change = _first_number(item.get("cng"), item.get("change"))
422
+ change_pct = _first_number(item.get("nc"), item.get("net_change_percentage"))
423
+ high = _first_market_number(item.get("highPrice"), item.get("high"), item.get("h"), item.get("hp"))
424
+ low = _first_market_number(item.get("lowPrice"), item.get("low"), item.get("l"), item.get("lp"))
425
+ open_price = _first_market_number(item.get("openingPrice"), item.get("open"), item.get("o"))
426
+
427
  payload = {
428
  "symbol": "NIFTY 50",
429
  "exchange_segment": "nse_cm",
 
435
  reference["quote_instrument_token"],
436
  ),
437
  "display_name": _first_text(item.get("trading_symbol"), item.get("ts"), item.get("name"), "NIFTY 50"),
438
+ "last_traded_price": last_traded_price,
439
+ "close": close,
440
+ "change": change,
441
+ "change_pct": change_pct,
442
+ "open": open_price,
443
+ "high": high,
444
+ "low": low,
445
  "exchange_feed_time": _first_text(item.get("tvalue"), item.get("updRecvTm"), item.get("hsUpTm")),
446
  "as_of": _utc_now_iso(),
447
  "source": {