Resetting utils subtree.

This commit is contained in:
2025-02-28 13:35:45 +05:30
parent 07800bd403
commit d07ed14854
212 changed files with 171 additions and 148158 deletions
@@ -58,6 +58,9 @@ import socket
import datetime
import time
# To work with tabulated data:
import pandas as pd
# Controllers:
from controllers_v2.finstitutions.trading.all_trading import AllTradingController
@@ -236,6 +239,12 @@ def setup_zerodha_kite_feed(
:return: True if successful, else False.
"""
# Ensure that we filter out duplicate records:
total_instruments_df = pd.DataFrame(total_instruments)
# print(total_instruments_df.to_string())
total_instruments_df.drop_duplicates(subset = "broker_token", keep = "first", inplace = True)
total_instruments = total_instruments_df.to_dict(orient = "records")
# Declare the required global variables:
global ZERODHA_INSTRUMENT_TOKENS
global ZERODHA_INSTRUMENT_LOOKUP
@@ -271,10 +280,35 @@ def setup_zerodha_kite_feed(
instruments = [TradingSymbol.from_zerodha_kite(i) for i in instruments]
# Create the lookup:
# invalid_broken_token_count = 0
# print("INVALID BROKEN TOKENS:\n")
all_temp_instr = {}
pop_count = 0
for i in instruments:
if str(i.brokerToken) in valid_broker_tokens:
ZERODHA_INSTRUMENT_TOKENS.append(i.brokerToken)
ZERODHA_INSTRUMENT_LOOKUP[i.brokerToken] = i.model_dump()
all_temp_instr[i.brokerToken] = i
pop_count += 1
print(f"Populated: {pop_count}")
invalid_broken_token_count = 0
not_found_broker_tokens = []
for broker_token, broker_symbol in zip(valid_broker_tokens, valid_broker_symbols):
broker_token = int(broker_token)
if ZERODHA_INSTRUMENT_LOOKUP.get(broker_token) is None:
not_found_broker_tokens.append(str(broker_token))
try: print(f"FAILED: {broker_token: ^15} | {all_temp_instr[broker_token].symbol: ^30} | {all_temp_instr[broker_token].exchange}")
except: print(f"FAILED: {broker_token: ^15} | {broker_symbol: ^30} | ")
invalid_broken_token_count += 1
print("\nTOTAL:", invalid_broken_token_count)
not_found_df = total_instruments_df[total_instruments_df["broker_token"].isin(not_found_broker_tokens)]
not_found_df['expiry_date'] = pd.to_datetime(not_found_df['expiry_date'])
not_found_df['expiry_date'] = not_found_df['expiry_date'].dt.strftime('%Y-%m-%d')
print(not_found_df.to_string())
while True: pass
printer("Zerodha instruments loaded.")
# If there are no symbols or too many symbols, we return with failure: