diff --git a/.dockerignore b/.dockerignore index 9e1b4f9..5fdf7c4 100644 --- a/.dockerignore +++ b/.dockerignore @@ -29,6 +29,10 @@ Dependencies/all_instrument*.csv data/cache/ data/ipo/ data/universes/* +# DEPLOY-005: the pinned Hemant symbol lists must reach the image, or +# refresh_universe_files() cannot rebuild those universes in a container. +!data/universes/sources/ +!data/universes/sources/*.csv !data/universes/hemant_super_45.csv !data/universes/hemant_good_45.csv !data/universes/hemant_good_200.csv diff --git a/.gitignore b/.gitignore index 5008419..8dbd8fe 100644 --- a/.gitignore +++ b/.gitignore @@ -7,6 +7,11 @@ Dependencies/all_instrument*.csv data/cache/ data/ipo/ data/universes/* +# DEPLOY-005: the pinned Hemant symbol lists are inputs, not generated state. +# Git will not look inside an ignored directory, so the directory itself has to +# be un-ignored before the files in it can be. +!data/universes/sources/ +!data/universes/sources/*.csv !data/universes/hemant_super_45.csv !data/universes/hemant_good_45.csv !data/universes/hemant_good_200.csv diff --git a/README.md b/README.md index 501c7fe..a0c32ed 100644 --- a/README.md +++ b/README.md @@ -1174,9 +1174,12 @@ Supported universe keys are `nifty_100`, `nifty_500`, `fno`, `hemant_super_45`, `hemant_good_45`, `hemant_good_200`, and the composites `hemant_super_good_union` (Hemant Super 45 ∪ Good 45) and `hemant_super_good_200_union` (Hemant Super 45 ∪ Good 45 ∪ Good 200), both deduped. -The Hemant lists live in `data/universes/` alongside the other universe CSVs -and are mapped to Dhan cash-equity IDs when universe files are refreshed; the -union is assembled from those same source lists at refresh time. +The pinned Hemant symbol lists live in `data/universes/sources/` and are mapped +to Dhan cash-equity IDs when universe files are refreshed; the union is assembled +from those same source lists at refresh time. The generated universe CSVs are +written to `data/universes/` (which follows `DATA_DIR`), while the pinned sources +are resolved relative to the repository so a container that redirects `DATA_DIR` +to a volume can still rebuild them (DEPLOY-005). --- diff --git a/backend/config/__init__.py b/backend/config/__init__.py index 512d76b..7561047 100644 --- a/backend/config/__init__.py +++ b/backend/config/__init__.py @@ -24,6 +24,7 @@ PROJECT_ROOT, REQUEST_HEADERS, SCREENERS_DIR, + UNIVERSE_SOURCE_DIR, AppSettings, DhanCredentials, SettingsError, @@ -90,6 +91,7 @@ "REQUEST_HEADERS", "SCREENERS_DIR", "UNIVERSE_DIR", + "UNIVERSE_SOURCE_DIR", "AppSettings", "DhanCredentials", "SettingsError", diff --git a/backend/config/settings.py b/backend/config/settings.py index e0f0f9d..55260ef 100644 --- a/backend/config/settings.py +++ b/backend/config/settings.py @@ -30,6 +30,21 @@ DEFAULT_DATA_DIR = PROJECT_ROOT / "data" SCREENERS_DIR = PROJECT_ROOT / "screeners" +# The pinned universe *source* lists (the Hemant Google Doc snapshots) are code, +# not runtime state: they ship inside the image and are only ever edited by a +# reviewed commit. They therefore anchor to PROJECT_ROOT and deliberately do NOT +# follow DATA_DIR. +# +# Beginner note (DEPLOY-005): +# Generated universe CSVs live under `settings.universe_dir`, which follows +# DATA_DIR so a deployment can point them at a persistent volume. Before +# DEPLOY-005 the pinned sources were resolved the same way, so a container that +# set DATA_DIR=/data looked for its source lists on the (empty) volume instead of +# at /app/data/universes where COPY had actually put them - and +# `refresh_universe_files()` died with FileNotFoundError. Keeping the two paths +# on separate anchors is what makes that impossible rather than merely unlikely. +UNIVERSE_SOURCE_DIR = DEFAULT_DATA_DIR / "universes" / "sources" + # Default Claude model used by the Claude Agent SDK features (Check # Fundamentals, Technical Analysis AI, and 67 Ka Funda AI). DEFAULT_FUNDAMENTALS_MODEL = "claude-sonnet-4-6" diff --git a/backend/universe_builder.py b/backend/universe_builder.py index 102e38c..6a7fb36 100644 --- a/backend/universe_builder.py +++ b/backend/universe_builder.py @@ -23,17 +23,31 @@ DHAN_SCRIP_MASTER_URL, NIFTY_100_URL, NIFTY_500_URL, + PROJECT_ROOT, REQUEST_HEADERS, UNIVERSE_DIR, + UNIVERSE_SOURCE_DIR, ) # The Hemant lists are intentionally local CSVs. Unlike NIFTY 100/500, there is -# no stable public CSV endpoint to download during startup, so we keep the -# pinned source lists next to the generated universe files in `data/universes/`. +# no stable public CSV endpoint to download during startup, so the pinned source +# lists are committed under `data/universes/sources/`. +# +# Beginner note (DEPLOY-005): +# These paths come from UNIVERSE_SOURCE_DIR, which is anchored to PROJECT_ROOT, +# NOT from UNIVERSE_DIR, which follows DATA_DIR. That separation matters: +# * inputs - pinned, reviewed, shipped inside the image -> PROJECT_ROOT +# * outputs - regenerated every refresh, deployment state -> DATA_DIR +# They used to be the same directory, which caused two problems. A deployment +# that set DATA_DIR (Render, docker-compose) looked for its source lists on an +# empty volume and `refresh_universe_files()` raised FileNotFoundError, taking +# the daily-scan cron down with it. And locally, each refresh rewrote the very +# file it had just read, so a generated artifact was also its own source of +# truth. Keep these two constants distinct. HEMANT_SOURCE_FILES: dict[str, Path] = { - "hemant_super_45": UNIVERSE_DIR / "hemant_super_45.csv", - "hemant_good_45": UNIVERSE_DIR / "hemant_good_45.csv", - "hemant_good_200": UNIVERSE_DIR / "hemant_good_200.csv", + "hemant_super_45": UNIVERSE_SOURCE_DIR / "hemant_super_45.csv", + "hemant_good_45": UNIVERSE_SOURCE_DIR / "hemant_good_45.csv", + "hemant_good_200": UNIVERSE_SOURCE_DIR / "hemant_good_200.csv", } # Some symbols in the Hemant source use the Google Doc's naming, while Dhan's @@ -539,7 +553,10 @@ def build_symbol_list_universe( universe = universe.merge(equity_lookup, on="symbol", how="left") universe["universe"] = universe_key universe["universe_name"] = UNIVERSE_CONFIG[universe_key]["display_name"] - universe["source"] = source or UNIVERSE_CONFIG[universe_key].get("source_file", "") + configured_source = UNIVERSE_CONFIG[universe_key].get("source_file", "") + universe["source"] = source or ( + repo_relative_source_label(configured_source) if configured_source else "" + ) # Do not alphabetize custom source lists. Their order comes from the pinned # CSV snapshot and may be meaningful to the user reviewing the list. return finalize_universe(universe, sort_symbols=False) @@ -584,6 +601,26 @@ def finalize_universe(universe: pd.DataFrame, sort_symbols: bool = True) -> pd.D return result.reset_index(drop=True) +def repo_relative_source_label(path: Path | str) -> str: + """Return a machine-independent label for a pinned source file. + + Beginner note (DEPLOY-005): + This string is written into every row's ``source`` column, and the generated + Hemant universes are committed. An absolute path would therefore bake one + developer's home directory into the repository - noise in every diff, and + meaningless inside the container, where the repo lives at /app. A + repo-relative POSIX path says the same thing on every machine. + """ + candidate = Path(path) + try: + return candidate.resolve().relative_to(PROJECT_ROOT).as_posix() + except ValueError: + # A test (or an operator) pointed at a file outside the repository. + # Fall back to the bare file name rather than leaking an unrelated + # absolute path into a committed CSV. + return candidate.name + + def universe_file_path(universe_key: str, universe_dir: Path | str = UNIVERSE_DIR) -> Path: """Return where a universe CSV should live on disk.""" return Path(universe_dir) / UNIVERSE_CONFIG[universe_key]["file_name"] @@ -645,7 +682,7 @@ def refresh_universe_files( universe_key=key, raw_symbols=load_symbol_list_csv(source_file), equity_lookup=equity_lookup, - source=str(source_file), + source=repo_relative_source_label(source_file), ) else: source_df = index_sources.get(key) diff --git a/data/universes/hemant_good_200.csv b/data/universes/hemant_good_200.csv index b814e77..d359c6a 100644 --- a/data/universes/hemant_good_200.csv +++ b/data/universes/hemant_good_200.csv @@ -1,263 +1,263 @@ universe,universe_name,symbol,security_id,exchange_segment,instrument_type,company_name,series,source,mapping_status,source_symbol -hemant_good_200,Hemant Good 200,RRKABEL,18566,NSE_EQ,EQUITY,RR Kabel,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,RRKABEL -hemant_good_200,Hemant Good 200,CLEAN,5049,NSE_EQ,EQUITY,Clean Science & Technology,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,CLEAN -hemant_good_200,Hemant Good 200,VGUARD,15362,NSE_EQ,EQUITY,V-Guard Industries,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,VGUARD -hemant_good_200,Hemant Good 200,BEML,395,NSE_EQ,EQUITY,BEML,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,BEML -hemant_good_200,Hemant Good 200,INGERRAND,1597,NSE_EQ,EQUITY,Ingersoll Rand,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,INGERRAND -hemant_good_200,Hemant Good 200,VESUVIUS,3676,NSE_EQ,EQUITY,Vesuvius,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,VESUVIUS -hemant_good_200,Hemant Good 200,HAPPYFORGE,20854,NSE_EQ,EQUITY,Happy Forgings,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,HAPPYFORGE -hemant_good_200,Hemant Good 200,KPIGREEN,5108,NSE_EQ,EQUITY,KPI Green Energy,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,KPIGREEN -hemant_good_200,Hemant Good 200,INTELLECT,5926,NSE_EQ,EQUITY,Intellect Design Arena,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,INTELLECT -hemant_good_200,Hemant Good 200,FDC,4898,NSE_EQ,EQUITY,FDC,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,FDC -hemant_good_200,Hemant Good 200,LGBBROSLTD,18321,NSE_EQ,EQUITY,LG Balakrishnan & Bros,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,LGBBROSLTD -hemant_good_200,Hemant Good 200,SUVENPHAR,,,,,,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,missing_security_id,SUVENPHAR -hemant_good_200,Hemant Good 200,RAILTEL,2431,NSE_EQ,EQUITY,Railtel Corporation of India,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,RAILTEL -hemant_good_200,Hemant Good 200,BIKAJI,11966,NSE_EQ,EQUITY,Bikaji Foods International,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,BIKAJI -hemant_good_200,Hemant Good 200,DHANUKA,24409,NSE_EQ,EQUITY,Dhanuka Agritech,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,DHANUKA -hemant_good_200,Hemant Good 200,TITAGARH,15414,NSE_EQ,EQUITY,Titagarh Rail Systems,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,TITAGARH -hemant_good_200,Hemant Good 200,SATIN,10453,NSE_EQ,EQUITY,Satin Creditcare,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,SATIN -hemant_good_200,Hemant Good 200,NEWGEN,1164,NSE_EQ,EQUITY,Newgen Software Technologies,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,NEWGEN -hemant_good_200,Hemant Good 200,MASFIN,199,NSE_EQ,EQUITY,MAS Financial Services,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,MASFIN -hemant_good_200,Hemant Good 200,MUTHOOTMF,20831,NSE_EQ,EQUITY,Muthoot Microfin,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,MUTHOOTMF -hemant_good_200,Hemant Good 200,ANANDRATHI,7145,NSE_EQ,EQUITY,Anand Rathi Wealth,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,ANANDRATHI -hemant_good_200,Hemant Good 200,KSCL,14972,NSE_EQ,EQUITY,Kaveri Seed Company,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,KSCL -hemant_good_200,Hemant Good 200,GALAXYSURF,1315,NSE_EQ,EQUITY,Galaxy Surfactants,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,GALAXYSURF -hemant_good_200,Hemant Good 200,JYOTICNC,21334,NSE_EQ,EQUITY,Jyoti CNC Automation,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,JYOTICNC -hemant_good_200,Hemant Good 200,GAEL,8828,NSE_EQ,EQUITY,Gujarat Ambuja Exports,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,GAEL -hemant_good_200,Hemant Good 200,POLYMED,25718,NSE_EQ,EQUITY,Poly Medicure,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,POLYMED -hemant_good_200,Hemant Good 200,SHARDAMOTR,10530,NSE_EQ,EQUITY,Sharda Motor,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,SHARDAMOTR -hemant_good_200,Hemant Good 200,TECHNOE,6445,NSE_EQ,EQUITY,Techno Electric & Engineering,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,TECHNOE -hemant_good_200,Hemant Good 200,KFINTECH,13359,NSE_EQ,EQUITY,KFin Technologies,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,KFINTECH -hemant_good_200,Hemant Good 200,VOLTAMP,13577,NSE_EQ,EQUITY,Voltamp Transformers,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,VOLTAMP -hemant_good_200,Hemant Good 200,SURYAROSNI,3375,NSE_EQ,EQUITY,Surya Roshni,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,SURYAROSNI -hemant_good_200,Hemant Good 200,CONCORDBIO,18060,NSE_EQ,EQUITY,Concord Biotech,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,CONCORDBIO -hemant_good_200,Hemant Good 200,HBLENGINE,13966,NSE_EQ,EQUITY,HBL Engineering,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,HBLENGINE -hemant_good_200,Hemant Good 200,TRITURBINE,25584,NSE_EQ,EQUITY,Triveni Turbines,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,TRITURBINE -hemant_good_200,Hemant Good 200,CELLO,19795,NSE_EQ,EQUITY,Cello World,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,CELLO -hemant_good_200,Hemant Good 200,ROUTE,128,NSE_EQ,EQUITY,Route Mobile,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,ROUTE -hemant_good_200,Hemant Good 200,NORTHARC,25426,NSE_EQ,EQUITY,Northern Arc Capital,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,NORTHARC -hemant_good_200,Hemant Good 200,KAJARIACER,1808,NSE_EQ,EQUITY,Kajaria Ceramics,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,KAJARIACER -hemant_good_200,Hemant Good 200,MOIL,20830,NSE_EQ,EQUITY,MOIL,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,MOIL -hemant_good_200,Hemant Good 200,HOMEFIRST,2056,NSE_EQ,EQUITY,Home First Finance Company,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,HOMEFIRST -hemant_good_200,Hemant Good 200,SANOFI,1442,NSE_EQ,EQUITY,Sanofi,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,SANOFI -hemant_good_200,Hemant Good 200,AFFLE,11343,NSE_EQ,EQUITY,Affle 3i,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,AFFLE -hemant_good_200,Hemant Good 200,CMSINFO,7603,NSE_EQ,EQUITY,CMS Info Systems,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,CMSINFO -hemant_good_200,Hemant Good 200,MARKSANS,10579,NSE_EQ,EQUITY,Marksans Pharma,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,MARKSANS -hemant_good_200,Hemant Good 200,GRINDWELL,13560,NSE_EQ,EQUITY,Grindwell Norton,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,GRINDWELL -hemant_good_200,Hemant Good 200,JYOTHYLAB,15146,NSE_EQ,EQUITY,Jyothy Laboratories,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,JYOTHYLAB -hemant_good_200,Hemant Good 200,ELECON,13643,NSE_EQ,EQUITY,Elecon Engineering Company,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,ELECON -hemant_good_200,Hemant Good 200,RITES,3761,NSE_EQ,EQUITY,RITES,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,RITES -hemant_good_200,Hemant Good 200,JWL,20224,NSE_EQ,EQUITY,Jupiter Wagons,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,JWL -hemant_good_200,Hemant Good 200,WSTCSTPAPR,3799,NSE_EQ,EQUITY,West Coast Paper Mills,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,WSTCSTPAPR -hemant_good_200,Hemant Good 200,SHAKTIPUMP,25574,NSE_EQ,EQUITY,Shakti Pumps,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,SHAKTIPUMP -hemant_good_200,Hemant Good 200,ACE,13587,NSE_EQ,EQUITY,Action Construction Equipment,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,ACE -hemant_good_200,Hemant Good 200,GPPL,19731,NSE_EQ,EQUITY,Gujarat Pipavav Port,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,GPPL -hemant_good_200,Hemant Good 200,NESCO,15409,NSE_EQ,EQUITY,Nesco,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,NESCO -hemant_good_200,Hemant Good 200,VINATIORGA,17364,NSE_EQ,EQUITY,Vinati Organics,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,VINATIORGA -hemant_good_200,Hemant Good 200,GRSE,5475,NSE_EQ,EQUITY,Garden Reach Shipbuilders,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,GRSE -hemant_good_200,Hemant Good 200,IMFA,19235,NSE_EQ,EQUITY,Indian Metals & Ferro Alloys,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,IMFA -hemant_good_200,Hemant Good 200,IEX,220,NSE_EQ,EQUITY,Indian Energy Exchange,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,IEX -hemant_good_200,Hemant Good 200,TIMKEN,14198,NSE_EQ,EQUITY,Timken,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,TIMKEN -hemant_good_200,Hemant Good 200,HINDCOPPER,17939,NSE_EQ,EQUITY,Hindustan Copper,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,HINDCOPPER -hemant_good_200,Hemant Good 200,TCI,10580,NSE_EQ,EQUITY,Transport Corporation of India,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,TCI -hemant_good_200,Hemant Good 200,FINEORG,3744,NSE_EQ,EQUITY,Fine Organic Industries,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,FINEORG -hemant_good_200,Hemant Good 200,USHAMART,8840,NSE_EQ,EQUITY,Usha Martin,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,USHAMART -hemant_good_200,Hemant Good 200,SPLPETRO,9617,NSE_EQ,EQUITY,Supreme Petrochem,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,SPLPETRO -hemant_good_200,Hemant Good 200,ENGINERSIN,4907,NSE_EQ,EQUITY,Engineers India,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,ENGINERSIN -hemant_good_200,Hemant Good 200,LALPATHLAB,11654,NSE_EQ,EQUITY,Dr. Lal Path Labs,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,LALPATHLAB -hemant_good_200,Hemant Good 200,SHAREINDIA,104,NSE_EQ,EQUITY,Share India Securities,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,SHAREINDIA -hemant_good_200,Hemant Good 200,MAHAPEXLTD,5239,NSE_EQ,EQUITY,Maha Rashtra Apex Corporation,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,MAHAPEXLTD -hemant_good_200,Hemant Good 200,AKZOINDIA,,,,,,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,missing_security_id,AKZOINDIA -hemant_good_200,Hemant Good 200,CAMS,342,NSE_EQ,EQUITY,CAMS,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,CAMS -hemant_good_200,Hemant Good 200,LINDEINDIA,1627,NSE_EQ,EQUITY,Linde,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,LINDEINDIA -hemant_good_200,Hemant Good 200,ZFCVINDIA,16915,NSE_EQ,EQUITY,ZF Commercial,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,ZFCVINDIA -hemant_good_200,Hemant Good 200,KIRLOSBROS,18581,NSE_EQ,EQUITY,Kirloskar Brothers,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,KIRLOSBROS -hemant_good_200,Hemant Good 200,KRBL,10577,NSE_EQ,EQUITY,KRBL,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,KRBL -hemant_good_200,Hemant Good 200,IGIL,28378,NSE_EQ,EQUITY,International Gemological Institute,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,IGIL -hemant_good_200,Hemant Good 200,DBCORP,17881,NSE_EQ,EQUITY,DB Corp,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,DBCORP -hemant_good_200,Hemant Good 200,ALIVUS,5265,NSE_EQ,EQUITY,Alivus Life Sciences,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,ALIVUS -hemant_good_200,Hemant Good 200,CARBORUNIV,595,NSE_EQ,EQUITY,Carborundum Universal,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,CARBORUNIV -hemant_good_200,Hemant Good 200,SANDUMA,18359,NSE_EQ,EQUITY,Sandur Manganese & Iron Ores,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,SANDUMA -hemant_good_200,Hemant Good 200,INDIAMART,10726,NSE_EQ,EQUITY,IndiaMART InterMesh,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,INDIAMART -hemant_good_200,Hemant Good 200,GILLETTE,1576,NSE_EQ,EQUITY,Gillette,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,GILLETTE -hemant_good_200,Hemant Good 200,SHRIPISTON,17186,NSE_EQ,EQUITY,Shriram Pistons & Rings,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,SHRIPISTON -hemant_good_200,Hemant Good 200,AVANTIFEED,7936,NSE_EQ,EQUITY,Avanti Feeds,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,AVANTIFEED -hemant_good_200,Hemant Good 200,GVT&D,16783,NSE_EQ,EQUITY,GE Vernova T&D,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,GVT&D -hemant_good_200,Hemant Good 200,FORCEMOT,11573,NSE_EQ,EQUITY,Force Motors,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,FORCEMOT -hemant_good_200,Hemant Good 200,MEDANTA,11956,NSE_EQ,EQUITY,Global Health,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,MEDANTA -hemant_good_200,Hemant Good 200,SUMICHEM,17105,NSE_EQ,EQUITY,Sumitomo Chemical,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,SUMICHEM -hemant_good_200,Hemant Good 200,HSCL,14334,NSE_EQ,EQUITY,Himadri Speciality Chemical,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,HSCL -hemant_good_200,Hemant Good 200,CAPLIPOINT,3906,NSE_EQ,EQUITY,Caplin Point Laboratories,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,CAPLIPOINT -hemant_good_200,Hemant Good 200,ECLERX,15179,NSE_EQ,EQUITY,eClerx Services,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,ECLERX -hemant_good_200,Hemant Good 200,CROMPTON,17094,NSE_EQ,EQUITY,Crompton Greaves,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,CROMPTON -hemant_good_200,Hemant Good 200,TANLA,13976,NSE_EQ,EQUITY,Tanla Platforms,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,TANLA -hemant_good_200,Hemant Good 200,BAYERCROP,17927,NSE_EQ,EQUITY,Bayer Crop Science,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,BAYERCROP -hemant_good_200,Hemant Good 200,ASTRAL,14418,NSE_EQ,EQUITY,Astral,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,ASTRAL -hemant_good_200,Hemant Good 200,RATNAMANI,13451,NSE_EQ,EQUITY,Ratnamani Metals & Tubes,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,RATNAMANI -hemant_good_200,Hemant Good 200,HONAUT,3417,NSE_EQ,EQUITY,Honeywell Automation,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,HONAUT -hemant_good_200,Hemant Good 200,SKFINDIA,3186,NSE_EQ,EQUITY,SKF India,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,SKFINDIA -hemant_good_200,Hemant Good 200,FINCABLES,1038,NSE_EQ,EQUITY,Finolex Cables,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,FINCABLES -hemant_good_200,Hemant Good 200,GANESHHOUC,,,,,,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,missing_security_id,GANESHHOUC -hemant_good_200,Hemant Good 200,BLUESTARCO,8311,NSE_EQ,EQUITY,Blue Star,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,BLUESTARCO -hemant_good_200,Hemant Good 200,SUNDRMFAST,3345,NSE_EQ,EQUITY,Sundram Fasteners,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,SUNDRMFAST -hemant_good_200,Hemant Good 200,CSBBANK,14966,NSE_EQ,EQUITY,CSB Bank,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,CSBBANK -hemant_good_200,Hemant Good 200,3MINDIA,474,NSE_EQ,EQUITY,3M India,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,3MINDIA -hemant_good_200,Hemant Good 200,BDL,2144,NSE_EQ,EQUITY,Bharat Dynamics,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,BDL -hemant_good_200,Hemant Good 200,NBCC,31415,NSE_EQ,EQUITY,NBCC,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,NBCC -hemant_good_200,Hemant Good 200,BSOFT,6994,NSE_EQ,EQUITY,Birlasoft,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,BSOFT -hemant_good_200,Hemant Good 200,SONACOMS,4684,NSE_EQ,EQUITY,Sona BLW Precision Forgings,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,SONACOMS -hemant_good_200,Hemant Good 200,GHCL,1127,NSE_EQ,EQUITY,GHCL,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,GHCL -hemant_good_200,Hemant Good 200,BASF,368,NSE_EQ,EQUITY,BASF,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,BASF -hemant_good_200,Hemant Good 200,PFIZER,2643,NSE_EQ,EQUITY,Pfizer,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,PFIZER -hemant_good_200,Hemant Good 200,KANSAINER,1196,NSE_EQ,EQUITY,Kansai Nerolac Paints,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,KANSAINER -hemant_good_200,Hemant Good 200,MSUMI,8596,NSE_EQ,EQUITY,Motherson Sumi Wiring,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,MSUMI -hemant_good_200,Hemant Good 200,CYIENT,5748,NSE_EQ,EQUITY,Cyient,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,CYIENT -hemant_good_200,Hemant Good 200,KEI,13310,NSE_EQ,EQUITY,KEI Industries,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,KEI -hemant_good_200,Hemant Good 200,JBCHEPHARM,1726,NSE_EQ,EQUITY,J B Chemicals and Pharmaceuticals,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,JBCHEPHARM -hemant_good_200,Hemant Good 200,TATATECH,20293,NSE_EQ,EQUITY,Tata Technologies,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,TATATECH -hemant_good_200,Hemant Good 200,ZENSARTECH,1076,NSE_EQ,EQUITY,Zensar Technologies,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,ZENSARTECH -hemant_good_200,Hemant Good 200,CRISIL,757,NSE_EQ,EQUITY,CRISIL,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,CRISIL -hemant_good_200,Hemant Good 200,PAGEIND,14413,NSE_EQ,EQUITY,Page Industries,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,PAGEIND -hemant_good_200,Hemant Good 200,DEEPAKNTR,19943,NSE_EQ,EQUITY,Deepak Nitrite,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,DEEPAKNTR -hemant_good_200,Hemant Good 200,JSFB,22663,NSE_EQ,EQUITY,Jana Small Finance Bank,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,JSFB -hemant_good_200,Hemant Good 200,EIHOTEL,919,NSE_EQ,EQUITY,EIH Hotels,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,EIHOTEL -hemant_good_200,Hemant Good 200,APTUS,5435,NSE_EQ,EQUITY,Aptus Value Housing Finance,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,APTUS -hemant_good_200,Hemant Good 200,PGHH,2535,NSE_EQ,EQUITY,P&G Hygiene and Health Care,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,PGHH -hemant_good_200,Hemant Good 200,MAHSEAMLES,2088,NSE_EQ,EQUITY,Maharashtra Seamless,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,MAHSEAMLES -hemant_good_200,Hemant Good 200,BSE,19585,NSE_EQ,EQUITY,BSE,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,BSE -hemant_good_200,Hemant Good 200,KPITTECH,9683,NSE_EQ,EQUITY,KPIT Technologies,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,KPITTECH -hemant_good_200,Hemant Good 200,COFORGE,11543,NSE_EQ,EQUITY,Coforge,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,COFORGE -hemant_good_200,Hemant Good 200,EMAMILTD,13517,NSE_EQ,EQUITY,Emami,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,EMAMILTD -hemant_good_200,Hemant Good 200,STARHEALTH,7083,NSE_EQ,EQUITY,Star Health Insurance,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,STARHEALTH -hemant_good_200,Hemant Good 200,ENDURANCE,18822,NSE_EQ,EQUITY,Endurance Technologies,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,ENDURANCE -hemant_good_200,Hemant Good 200,UTIAMC,527,NSE_EQ,EQUITY,UTI AMC,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,UTIAMC -hemant_good_200,Hemant Good 200,APARINDS,11491,NSE_EQ,EQUITY,Apar Industries,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,APARINDS -hemant_good_200,Hemant Good 200,GPIL,13409,NSE_EQ,EQUITY,Godawari Power & Ispat,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,GPIL -hemant_good_200,Hemant Good 200,TATAELXSI,3411,NSE_EQ,EQUITY,Tata Elxsi,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,TATAELXSI -hemant_good_200,Hemant Good 200,533095,,,,,,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,missing_security_id,533095 -hemant_good_200,Hemant Good 200,EIDPARRY,916,NSE_EQ,EQUITY,EID Parry,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,EIDPARRY -hemant_good_200,Hemant Good 200,TIINDIA,312,NSE_EQ,EQUITY,Tube Investment,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,TIINDIA -hemant_good_200,Hemant Good 200,COCHINSHIP,21508,NSE_EQ,EQUITY,Cochin Shipyard,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,COCHINSHIP -hemant_good_200,Hemant Good 200,KPRMILL,14912,NSE_EQ,EQUITY,KPR Mill,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,KPRMILL -hemant_good_200,Hemant Good 200,CIEINDIA,14937,NSE_EQ,EQUITY,CIE Automotive,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,CIEINDIA -hemant_good_200,Hemant Good 200,CANFINHOME,583,NSE_EQ,EQUITY,Can Fin Homes,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,CANFINHOME -hemant_good_200,Hemant Good 200,GLAXO,1153,NSE_EQ,EQUITY,GlaxoSmithKline Pharmaceuticals,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,GLAXO -hemant_good_200,Hemant Good 200,AADHARHFC,23729,NSE_EQ,EQUITY,Aadhar Housing Finance,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,AADHARHFC -hemant_good_200,Hemant Good 200,CREDITACC,4421,NSE_EQ,EQUITY,Credit Access Grameen,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,CREDITACC -hemant_good_200,Hemant Good 200,AJANTPHARM,8124,NSE_EQ,EQUITY,Ajanta Pharma,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,AJANTPHARM -hemant_good_200,Hemant Good 200,ABSLAMC,6018,NSE_EQ,EQUITY,Aditya Birla Sun Life AMC,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,ABSLAMC -hemant_good_200,Hemant Good 200,CASTROLIND,1250,NSE_EQ,EQUITY,Castrol,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,CASTROLIND -hemant_good_200,Hemant Good 200,CGPOWER,760,NSE_EQ,EQUITY,CG Power & Industrial Solutions,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,CGPOWER -hemant_good_200,Hemant Good 200,ARE&M,100,NSE_EQ,EQUITY,Amara Raja Energy & Mobility,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,ARE&M -hemant_good_200,Hemant Good 200,UJJIVANSFB,15228,NSE_EQ,EQUITY,Ujjivan Small Finance Bank,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,UJJIVANSFB -hemant_good_200,Hemant Good 200,SCHAEFFLER,1011,NSE_EQ,EQUITY,Schaeffler India,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,SCHAEFFLER -hemant_good_200,Hemant Good 200,WAAREEENER,25907,NSE_EQ,EQUITY,Waaree Energies,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,WAAREEENER -hemant_good_200,Hemant Good 200,SUPREMEIND,3363,NSE_EQ,EQUITY,Supreme Industries,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,SUPREMEIND -hemant_good_200,Hemant Good 200,FIVESTAR,12032,NSE_EQ,EQUITY,Five Star Business Finance,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,FIVESTAR -hemant_good_200,Hemant Good 200,AIAENG,13086,NSE_EQ,EQUITY,AIA Engineering,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,AIAENG -hemant_good_200,Hemant Good 200,GODFRYPHLP,1181,NSE_EQ,EQUITY,Godfrey Phillips,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,GODFRYPHLP -hemant_good_200,Hemant Good 200,MGL,17534,NSE_EQ,EQUITY,Mahanagar Gas,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,MGL -hemant_good_200,Hemant Good 200,MAXHEALTH,22377,NSE_EQ,EQUITY,Max Healthcare Institute,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,MAXHEALTH -hemant_good_200,Hemant Good 200,NAVA,4014,NSE_EQ,EQUITY,Nava,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,NAVA -hemant_good_200,Hemant Good 200,IIFL,11809,NSE_EQ,EQUITY,IIFL Finance,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,IIFL -hemant_good_200,Hemant Good 200,360ONE,13061,NSE_EQ,EQUITY,360 One WAM,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,360ONE -hemant_good_200,Hemant Good 200,TVSHLTD,29008,NSE_EQ,EQUITY,TVS Holdings,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,TVSHLTD -hemant_good_200,Hemant Good 200,BERGEPAINT,404,NSE_EQ,EQUITY,Berger Paints,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,BERGEPAINT -hemant_good_200,Hemant Good 200,ESCORTS,958,NSE_EQ,EQUITY,Escorts Kubota,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,ESCORTS -hemant_good_200,Hemant Good 200,HEXT,29666,NSE_EQ,EQUITY,Hexaware Technologies,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,HEXT -hemant_good_200,Hemant Good 200,REDINGTON,14255,NSE_EQ,EQUITY,Redington,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,REDINGTON -hemant_good_200,Hemant Good 200,GUJGASLTD,10599,NSE_EQ,EQUITY,Gujarat Gas,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,GUJGASLTD -hemant_good_200,Hemant Good 200,IRCTC,13611,NSE_EQ,EQUITY,IRCTC,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,IRCTC -hemant_good_200,Hemant Good 200,LTTS,18564,NSE_EQ,EQUITY,L&T Technology Services,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,LTTS -hemant_good_200,Hemant Good 200,PERSISTENT,18365,NSE_EQ,EQUITY,Persistent Systems,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,PERSISTENT -hemant_good_200,Hemant Good 200,NAM-INDIA,357,NSE_EQ,EQUITY,Nippon Life India AMC,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,NAM-INDIA -hemant_good_200,Hemant Good 200,ABBOTINDIA,17903,NSE_EQ,EQUITY,Abbott,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,ABBOTINDIA -hemant_good_200,Hemant Good 200,GSPL,,,,,,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,missing_security_id,GSPL -hemant_good_200,Hemant Good 200,HAVELLS,9819,NSE_EQ,EQUITY,Havells,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,HAVELLS -hemant_good_200,Hemant Good 200,COLPAL,15141,NSE_EQ,EQUITY,Colgate Palmolive,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,COLPAL -hemant_good_200,Hemant Good 200,UNITDSPR,10447,NSE_EQ,EQUITY,United Spirits,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,UNITDSPR -hemant_good_200,Hemant Good 200,IGL,11262,NSE_EQ,EQUITY,Indraprastha Gas,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,IGL -hemant_good_200,Hemant Good 200,LLOYDSME,17313,NSE_EQ,EQUITY,Lloyds Metals & Energy,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,LLOYDSME -hemant_good_200,Hemant Good 200,MARICO,4067,NSE_EQ,EQUITY,Marico,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,MARICO -hemant_good_200,Hemant Good 200,CHAMBLFERT,637,NSE_EQ,EQUITY,Chambal Fertilisers & Chemicals,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,CHAMBLFERT -hemant_good_200,Hemant Good 200,COROMANDEL,739,NSE_EQ,EQUITY,Coromandel International,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,COROMANDEL -hemant_good_200,Hemant Good 200,MPHASIS,4503,NSE_EQ,EQUITY,Mphasis,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,MPHASIS -hemant_good_200,Hemant Good 200,IREDA,20261,NSE_EQ,EQUITY,IREDA,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,IREDA -hemant_good_200,Hemant Good 200,PIIND,24184,NSE_EQ,EQUITY,PI Industries,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,PIIND -hemant_good_200,Hemant Good 200,SUNTV,13404,NSE_EQ,EQUITY,Sun TV Network,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,SUNTV -hemant_good_200,Hemant Good 200,MRF,2277,NSE_EQ,EQUITY,MRF,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,MRF -hemant_good_200,Hemant Good 200,DABUR,772,NSE_EQ,EQUITY,Dabur India,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,DABUR -hemant_good_200,Hemant Good 200,POLYCAB,9590,NSE_EQ,EQUITY,Polycab,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,POLYCAB -hemant_good_200,Hemant Good 200,NATCOPHARM,3918,NSE_EQ,EQUITY,Natco Pharma,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,NATCOPHARM -hemant_good_200,Hemant Good 200,ABB,13,NSE_EQ,EQUITY,ABB,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,ABB -hemant_good_200,Hemant Good 200,KARURVYSYA,1838,NSE_EQ,EQUITY,Karur Vysya Bank,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,KARURVYSYA -hemant_good_200,Hemant Good 200,MANKIND,15380,NSE_EQ,EQUITY,Mankind Pharma,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,MANKIND -hemant_good_200,Hemant Good 200,CUMMINSIND,1901,NSE_EQ,EQUITY,Cummins,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,CUMMINSIND -hemant_good_200,Hemant Good 200,BAJAJHFL,25270,NSE_EQ,EQUITY,Bajaj Housing Finance,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,BAJAJHFL -hemant_good_200,Hemant Good 200,MANAPPURAM,19061,NSE_EQ,EQUITY,Manappuram Finance,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,MANAPPURAM -hemant_good_200,Hemant Good 200,PIDILITIND,2664,NSE_EQ,EQUITY,Pidilite Industries,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,PIDILITIND -hemant_good_200,Hemant Good 200,BOSCHLTD,2181,NSE_EQ,EQUITY,Bosch,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,BOSCHLTD -hemant_good_200,Hemant Good 200,SBICARD,17971,NSE_EQ,EQUITY,SBI Cards,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,SBICARD -hemant_good_200,Hemant Good 200,DIVISLAB,10940,NSE_EQ,EQUITY,Divis Laboratories,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,DIVISLAB -hemant_good_200,Hemant Good 200,CHOLAHLDNG,21740,NSE_EQ,EQUITY,Cholamandalam Financial Holdings,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,CHOLAHLDNG -hemant_good_200,Hemant Good 200,J&KBANK,5633,NSE_EQ,EQUITY,Jammu & Kashmir Bank,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,J&KBANK -hemant_good_200,Hemant Good 200,ALKEM,11703,NSE_EQ,EQUITY,Alkem Laboratories,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,ALKEM -hemant_good_200,Hemant Good 200,SIEMENS,3150,NSE_EQ,EQUITY,Siemens,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,SIEMENS -hemant_good_200,Hemant Good 200,OFSS,10738,NSE_EQ,EQUITY,Oracle Financial Services Software,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,OFSS -hemant_good_200,Hemant Good 200,HDFCAMC,4244,NSE_EQ,EQUITY,HDFC AMC,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,HDFCAMC -hemant_good_200,Hemant Good 200,GESHIP,13776,NSE_EQ,EQUITY,Great Eastern Shipping Company,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,GESHIP -hemant_good_200,Hemant Good 200,ACC,22,NSE_EQ,EQUITY,ACC,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,ACC -hemant_good_200,Hemant Good 200,ICICIGI,21770,NSE_EQ,EQUITY,ICICI Lombard General Insurance,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,ICICIGI -hemant_good_200,Hemant Good 200,OBEROIRLTY,20242,NSE_EQ,EQUITY,Oberoi Realty,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,OBEROIRLTY -hemant_good_200,Hemant Good 200,VBL,18921,NSE_EQ,EQUITY,Varun Beverages,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,VBL -hemant_good_200,Hemant Good 200,DMART,19913,NSE_EQ,EQUITY,Avenue Supermarts DMart,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,DMART -hemant_good_200,Hemant Good 200,MAZDOCK,509,NSE_EQ,EQUITY,Mazagon Dock Shipbuilders,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,MAZDOCK -hemant_good_200,Hemant Good 200,LUPIN,10440,NSE_EQ,EQUITY,Lupin,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,LUPIN -hemant_good_200,Hemant Good 200,NESTLEIND,17963,NSE_EQ,EQUITY,Nestle,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,NESTLEIND -hemant_good_200,Hemant Good 200,PETRONET,11351,NSE_EQ,EQUITY,Petronet LNG,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,PETRONET -hemant_good_200,Hemant Good 200,NATIONALUM,6364,NSE_EQ,EQUITY,NALCO,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,NATIONALUM -hemant_good_200,Hemant Good 200,AIIL,23553,NSE_EQ,EQUITY,Authum Inv & Infr,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,AIIL -hemant_good_200,Hemant Good 200,CHOLAFIN,685,NSE_EQ,EQUITY,Cholamandalam Investment,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,CHOLAFIN -hemant_good_200,Hemant Good 200,HEROMOTOCO,1348,NSE_EQ,EQUITY,Hero Motocorp,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,HEROMOTOCO -hemant_good_200,Hemant Good 200,ASIANPAINT,236,NSE_EQ,EQUITY,Asian Paints,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,ASIANPAINT -hemant_good_200,Hemant Good 200,EICHERMOT,910,NSE_EQ,EQUITY,Eicher Motors,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,EICHERMOT -hemant_good_200,Hemant Good 200,ZYDUSLIFE,7929,NSE_EQ,EQUITY,Zydus Life Science,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,ZYDUSLIFE -hemant_good_200,Hemant Good 200,LTIM,,,,,,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,missing_security_id,LTIM -hemant_good_200,Hemant Good 200,MUTHOOTFIN,23650,NSE_EQ,EQUITY,Muthoot Finance,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,MUTHOOTFIN -hemant_good_200,Hemant Good 200,CIPLA,694,NSE_EQ,EQUITY,Cipla,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,CIPLA -hemant_good_200,Hemant Good 200,BEL,383,NSE_EQ,EQUITY,Bharat Electronics,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,BEL -hemant_good_200,Hemant Good 200,LICHSGFIN,1997,NSE_EQ,EQUITY,LIC Housing Finance,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,LICHSGFIN -hemant_good_200,Hemant Good 200,MAHABANK,11377,NSE_EQ,EQUITY,Bank of Maharashtra,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,MAHABANK -hemant_good_200,Hemant Good 200,DRREDDY,881,NSE_EQ,EQUITY,Dr Reddys Laboratories,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,DRREDDY -hemant_good_200,Hemant Good 200,HYUNDAI,25844,NSE_EQ,EQUITY,Hyundai Motor India,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,HYUNDAI -hemant_good_200,Hemant Good 200,NMDC,15332,NSE_EQ,EQUITY,NMDC,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,NMDC -hemant_good_200,Hemant Good 200,INDUSINDBK,5258,NSE_EQ,EQUITY,Indusind Bank,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,INDUSINDBK -hemant_good_200,Hemant Good 200,GICRE,277,NSE_EQ,EQUITY,GIC of India,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,GICRE -hemant_good_200,Hemant Good 200,BAJAJ-AUTO,16669,NSE_EQ,EQUITY,Bajaj Auto,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,BAJAJ-AUTO -hemant_good_200,Hemant Good 200,SHRIRAMFIN,4306,NSE_EQ,EQUITY,Shriram Finance,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,SHRIRAMFIN -hemant_good_200,Hemant Good 200,BAJAJFINSV,16675,NSE_EQ,EQUITY,Bajaj Finserv,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,BAJAJFINSV -hemant_good_200,Hemant Good 200,HAL,2303,NSE_EQ,EQUITY,Hindustan Aeronautics,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,HAL -hemant_good_200,Hemant Good 200,HINDUNILVR,1394,NSE_EQ,EQUITY,Hindustan Unilever,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,HINDUNILVR -hemant_good_200,Hemant Good 200,INDIANB,14309,NSE_EQ,EQUITY,Indian Bank,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,INDIANB -hemant_good_200,Hemant Good 200,SUNPHARMA,3351,NSE_EQ,EQUITY,Sun Pharmaceutical,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,SUNPHARMA -hemant_good_200,Hemant Good 200,WIPRO,3787,NSE_EQ,EQUITY,Wipro,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,WIPRO -hemant_good_200,Hemant Good 200,MARUTI,10999,NSE_EQ,EQUITY,Maruti Suzuki,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,MARUTI -hemant_good_200,Hemant Good 200,RECLTD,15355,NSE_EQ,EQUITY,REC,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,RECLTD -hemant_good_200,Hemant Good 200,BAJFINANCE,317,NSE_EQ,EQUITY,Bajaj Finance,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,BAJFINANCE -hemant_good_200,Hemant Good 200,UNIONBANK,10753,NSE_EQ,EQUITY,Union Bank of India,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,UNIONBANK -hemant_good_200,Hemant Good 200,CANBK,10794,NSE_EQ,EQUITY,Canara Bank,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,CANBK -hemant_good_200,Hemant Good 200,HCLTECH,7229,NSE_EQ,EQUITY,HCL Technologies,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,HCLTECH -hemant_good_200,Hemant Good 200,KOTAKBANK,1922,NSE_EQ,EQUITY,Kotak Bank,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,KOTAKBANK -hemant_good_200,Hemant Good 200,ITC,1660,NSE_EQ,EQUITY,ITC,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,ITC -hemant_good_200,Hemant Good 200,BANKBARODA,4668,NSE_EQ,EQUITY,Bank of Baroda,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,BANKBARODA -hemant_good_200,Hemant Good 200,PFC,14299,NSE_EQ,EQUITY,Power Finance Corporation,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,PFC -hemant_good_200,Hemant Good 200,INFY,1594,NSE_EQ,EQUITY,Infosys,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,INFY -hemant_good_200,Hemant Good 200,AXISBANK,5900,NSE_EQ,EQUITY,Axis Bank,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,AXISBANK -hemant_good_200,Hemant Good 200,COALINDIA,20374,NSE_EQ,EQUITY,Coal India,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,COALINDIA -hemant_good_200,Hemant Good 200,LICI,9480,NSE_EQ,EQUITY,LIC of India,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,LICI -hemant_good_200,Hemant Good 200,TCS,11536,NSE_EQ,EQUITY,Tata Consultancy Services,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,TCS -hemant_good_200,Hemant Good 200,ICICIBANK,4963,NSE_EQ,EQUITY,ICICI Bank,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,ICICIBANK -hemant_good_200,Hemant Good 200,HDFCBANK,1333,NSE_EQ,EQUITY,HDFC Bank,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,HDFCBANK -hemant_good_200,Hemant Good 200,SBIN,3045,NSE_EQ,EQUITY,State Bank of India,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,SBIN -hemant_good_200,Hemant Good 200,BLS,17279,NSE_EQ,EQUITY,BLS International Services,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,BLS -hemant_good_200,Hemant Good 200,SUZLON,12018,NSE_EQ,EQUITY,Suzlon Energy,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_200.csv,mapped,SUZLON +hemant_good_200,Hemant Good 200,RRKABEL,18566,NSE_EQ,EQUITY,RR Kabel,EQ,data/universes/sources/hemant_good_200.csv,mapped,RRKABEL +hemant_good_200,Hemant Good 200,CLEAN,5049,NSE_EQ,EQUITY,Clean Science & Technology,EQ,data/universes/sources/hemant_good_200.csv,mapped,CLEAN +hemant_good_200,Hemant Good 200,VGUARD,15362,NSE_EQ,EQUITY,V-Guard Industries,EQ,data/universes/sources/hemant_good_200.csv,mapped,VGUARD +hemant_good_200,Hemant Good 200,BEML,395,NSE_EQ,EQUITY,BEML,EQ,data/universes/sources/hemant_good_200.csv,mapped,BEML +hemant_good_200,Hemant Good 200,INGERRAND,1597,NSE_EQ,EQUITY,Ingersoll Rand,EQ,data/universes/sources/hemant_good_200.csv,mapped,INGERRAND +hemant_good_200,Hemant Good 200,VESUVIUS,3676,NSE_EQ,EQUITY,Vesuvius,EQ,data/universes/sources/hemant_good_200.csv,mapped,VESUVIUS +hemant_good_200,Hemant Good 200,HAPPYFORGE,20854,NSE_EQ,EQUITY,Happy Forgings,EQ,data/universes/sources/hemant_good_200.csv,mapped,HAPPYFORGE +hemant_good_200,Hemant Good 200,KPIGREEN,5108,NSE_EQ,EQUITY,KPI Green Energy,EQ,data/universes/sources/hemant_good_200.csv,mapped,KPIGREEN +hemant_good_200,Hemant Good 200,INTELLECT,5926,NSE_EQ,EQUITY,Intellect Design Arena,EQ,data/universes/sources/hemant_good_200.csv,mapped,INTELLECT +hemant_good_200,Hemant Good 200,FDC,4898,NSE_EQ,EQUITY,FDC,EQ,data/universes/sources/hemant_good_200.csv,mapped,FDC +hemant_good_200,Hemant Good 200,LGBBROSLTD,18321,NSE_EQ,EQUITY,LG Balakrishnan & Bros,EQ,data/universes/sources/hemant_good_200.csv,mapped,LGBBROSLTD +hemant_good_200,Hemant Good 200,SUVENPHAR,,,,,,data/universes/sources/hemant_good_200.csv,missing_security_id,SUVENPHAR +hemant_good_200,Hemant Good 200,RAILTEL,2431,NSE_EQ,EQUITY,Railtel Corporation of India,EQ,data/universes/sources/hemant_good_200.csv,mapped,RAILTEL +hemant_good_200,Hemant Good 200,BIKAJI,11966,NSE_EQ,EQUITY,Bikaji Foods International,EQ,data/universes/sources/hemant_good_200.csv,mapped,BIKAJI +hemant_good_200,Hemant Good 200,DHANUKA,24409,NSE_EQ,EQUITY,Dhanuka Agritech,EQ,data/universes/sources/hemant_good_200.csv,mapped,DHANUKA +hemant_good_200,Hemant Good 200,TITAGARH,15414,NSE_EQ,EQUITY,Titagarh Rail Systems,EQ,data/universes/sources/hemant_good_200.csv,mapped,TITAGARH +hemant_good_200,Hemant Good 200,SATIN,10453,NSE_EQ,EQUITY,Satin Creditcare,EQ,data/universes/sources/hemant_good_200.csv,mapped,SATIN +hemant_good_200,Hemant Good 200,NEWGEN,1164,NSE_EQ,EQUITY,Newgen Software Technologies,EQ,data/universes/sources/hemant_good_200.csv,mapped,NEWGEN +hemant_good_200,Hemant Good 200,MASFIN,199,NSE_EQ,EQUITY,MAS Financial Services,EQ,data/universes/sources/hemant_good_200.csv,mapped,MASFIN +hemant_good_200,Hemant Good 200,MUTHOOTMF,20831,NSE_EQ,EQUITY,Muthoot Microfin,EQ,data/universes/sources/hemant_good_200.csv,mapped,MUTHOOTMF +hemant_good_200,Hemant Good 200,ANANDRATHI,7145,NSE_EQ,EQUITY,Anand Rathi Wealth,EQ,data/universes/sources/hemant_good_200.csv,mapped,ANANDRATHI +hemant_good_200,Hemant Good 200,KSCL,14972,NSE_EQ,EQUITY,Kaveri Seed Company,EQ,data/universes/sources/hemant_good_200.csv,mapped,KSCL +hemant_good_200,Hemant Good 200,GALAXYSURF,1315,NSE_EQ,EQUITY,Galaxy Surfactants,EQ,data/universes/sources/hemant_good_200.csv,mapped,GALAXYSURF +hemant_good_200,Hemant Good 200,JYOTICNC,21334,NSE_EQ,EQUITY,Jyoti CNC Automation,EQ,data/universes/sources/hemant_good_200.csv,mapped,JYOTICNC +hemant_good_200,Hemant Good 200,GAEL,8828,NSE_EQ,EQUITY,Gujarat Ambuja Exports,EQ,data/universes/sources/hemant_good_200.csv,mapped,GAEL +hemant_good_200,Hemant Good 200,POLYMED,25718,NSE_EQ,EQUITY,Poly Medicure,EQ,data/universes/sources/hemant_good_200.csv,mapped,POLYMED +hemant_good_200,Hemant Good 200,SHARDAMOTR,10530,NSE_EQ,EQUITY,Sharda Motor,EQ,data/universes/sources/hemant_good_200.csv,mapped,SHARDAMOTR +hemant_good_200,Hemant Good 200,TECHNOE,6445,NSE_EQ,EQUITY,Techno Electric & Engineering,EQ,data/universes/sources/hemant_good_200.csv,mapped,TECHNOE +hemant_good_200,Hemant Good 200,KFINTECH,13359,NSE_EQ,EQUITY,KFin Technologies,EQ,data/universes/sources/hemant_good_200.csv,mapped,KFINTECH +hemant_good_200,Hemant Good 200,VOLTAMP,13577,NSE_EQ,EQUITY,Voltamp Transformers,EQ,data/universes/sources/hemant_good_200.csv,mapped,VOLTAMP +hemant_good_200,Hemant Good 200,SURYAROSNI,3375,NSE_EQ,EQUITY,Surya Roshni,EQ,data/universes/sources/hemant_good_200.csv,mapped,SURYAROSNI +hemant_good_200,Hemant Good 200,CONCORDBIO,18060,NSE_EQ,EQUITY,Concord Biotech,EQ,data/universes/sources/hemant_good_200.csv,mapped,CONCORDBIO +hemant_good_200,Hemant Good 200,HBLENGINE,13966,NSE_EQ,EQUITY,HBL Engineering,EQ,data/universes/sources/hemant_good_200.csv,mapped,HBLENGINE +hemant_good_200,Hemant Good 200,TRITURBINE,25584,NSE_EQ,EQUITY,Triveni Turbines,EQ,data/universes/sources/hemant_good_200.csv,mapped,TRITURBINE +hemant_good_200,Hemant Good 200,CELLO,19795,NSE_EQ,EQUITY,Cello World,EQ,data/universes/sources/hemant_good_200.csv,mapped,CELLO +hemant_good_200,Hemant Good 200,ROUTE,128,NSE_EQ,EQUITY,Route Mobile,EQ,data/universes/sources/hemant_good_200.csv,mapped,ROUTE +hemant_good_200,Hemant Good 200,NORTHARC,25426,NSE_EQ,EQUITY,Northern Arc Capital,EQ,data/universes/sources/hemant_good_200.csv,mapped,NORTHARC +hemant_good_200,Hemant Good 200,KAJARIACER,1808,NSE_EQ,EQUITY,Kajaria Ceramics,EQ,data/universes/sources/hemant_good_200.csv,mapped,KAJARIACER +hemant_good_200,Hemant Good 200,MOIL,20830,NSE_EQ,EQUITY,MOIL,EQ,data/universes/sources/hemant_good_200.csv,mapped,MOIL +hemant_good_200,Hemant Good 200,HOMEFIRST,2056,NSE_EQ,EQUITY,Home First Finance Company,EQ,data/universes/sources/hemant_good_200.csv,mapped,HOMEFIRST +hemant_good_200,Hemant Good 200,SANOFI,1442,NSE_EQ,EQUITY,Sanofi,EQ,data/universes/sources/hemant_good_200.csv,mapped,SANOFI +hemant_good_200,Hemant Good 200,AFFLE,11343,NSE_EQ,EQUITY,Affle 3i,EQ,data/universes/sources/hemant_good_200.csv,mapped,AFFLE +hemant_good_200,Hemant Good 200,CMSINFO,7603,NSE_EQ,EQUITY,CMS Info Systems,EQ,data/universes/sources/hemant_good_200.csv,mapped,CMSINFO +hemant_good_200,Hemant Good 200,MARKSANS,10579,NSE_EQ,EQUITY,Marksans Pharma,EQ,data/universes/sources/hemant_good_200.csv,mapped,MARKSANS +hemant_good_200,Hemant Good 200,GRINDWELL,13560,NSE_EQ,EQUITY,Grindwell Norton,EQ,data/universes/sources/hemant_good_200.csv,mapped,GRINDWELL +hemant_good_200,Hemant Good 200,JYOTHYLAB,15146,NSE_EQ,EQUITY,Jyothy Laboratories,EQ,data/universes/sources/hemant_good_200.csv,mapped,JYOTHYLAB +hemant_good_200,Hemant Good 200,ELECON,13643,NSE_EQ,EQUITY,Elecon Engineering Company,EQ,data/universes/sources/hemant_good_200.csv,mapped,ELECON +hemant_good_200,Hemant Good 200,RITES,3761,NSE_EQ,EQUITY,RITES,EQ,data/universes/sources/hemant_good_200.csv,mapped,RITES +hemant_good_200,Hemant Good 200,JWL,20224,NSE_EQ,EQUITY,Jupiter Wagons,EQ,data/universes/sources/hemant_good_200.csv,mapped,JWL +hemant_good_200,Hemant Good 200,WSTCSTPAPR,3799,NSE_EQ,EQUITY,West Coast Paper Mills,EQ,data/universes/sources/hemant_good_200.csv,mapped,WSTCSTPAPR +hemant_good_200,Hemant Good 200,SHAKTIPUMP,25574,NSE_EQ,EQUITY,Shakti Pumps,EQ,data/universes/sources/hemant_good_200.csv,mapped,SHAKTIPUMP +hemant_good_200,Hemant Good 200,ACE,13587,NSE_EQ,EQUITY,Action Construction Equipment,EQ,data/universes/sources/hemant_good_200.csv,mapped,ACE +hemant_good_200,Hemant Good 200,GPPL,19731,NSE_EQ,EQUITY,Gujarat Pipavav Port,EQ,data/universes/sources/hemant_good_200.csv,mapped,GPPL +hemant_good_200,Hemant Good 200,NESCO,15409,NSE_EQ,EQUITY,Nesco,EQ,data/universes/sources/hemant_good_200.csv,mapped,NESCO +hemant_good_200,Hemant Good 200,VINATIORGA,17364,NSE_EQ,EQUITY,Vinati Organics,EQ,data/universes/sources/hemant_good_200.csv,mapped,VINATIORGA +hemant_good_200,Hemant Good 200,GRSE,5475,NSE_EQ,EQUITY,Garden Reach Shipbuilders,EQ,data/universes/sources/hemant_good_200.csv,mapped,GRSE +hemant_good_200,Hemant Good 200,IMFA,19235,NSE_EQ,EQUITY,Indian Metals & Ferro Alloys,EQ,data/universes/sources/hemant_good_200.csv,mapped,IMFA +hemant_good_200,Hemant Good 200,IEX,220,NSE_EQ,EQUITY,Indian Energy Exchange,EQ,data/universes/sources/hemant_good_200.csv,mapped,IEX +hemant_good_200,Hemant Good 200,TIMKEN,14198,NSE_EQ,EQUITY,Timken,EQ,data/universes/sources/hemant_good_200.csv,mapped,TIMKEN +hemant_good_200,Hemant Good 200,HINDCOPPER,17939,NSE_EQ,EQUITY,Hindustan Copper,EQ,data/universes/sources/hemant_good_200.csv,mapped,HINDCOPPER +hemant_good_200,Hemant Good 200,TCI,10580,NSE_EQ,EQUITY,Transport Corporation of India,EQ,data/universes/sources/hemant_good_200.csv,mapped,TCI +hemant_good_200,Hemant Good 200,FINEORG,3744,NSE_EQ,EQUITY,Fine Organic Industries,EQ,data/universes/sources/hemant_good_200.csv,mapped,FINEORG +hemant_good_200,Hemant Good 200,USHAMART,8840,NSE_EQ,EQUITY,Usha Martin,EQ,data/universes/sources/hemant_good_200.csv,mapped,USHAMART +hemant_good_200,Hemant Good 200,SPLPETRO,9617,NSE_EQ,EQUITY,Supreme Petrochem,EQ,data/universes/sources/hemant_good_200.csv,mapped,SPLPETRO +hemant_good_200,Hemant Good 200,ENGINERSIN,4907,NSE_EQ,EQUITY,Engineers India,EQ,data/universes/sources/hemant_good_200.csv,mapped,ENGINERSIN +hemant_good_200,Hemant Good 200,LALPATHLAB,11654,NSE_EQ,EQUITY,Dr. Lal Path Labs,EQ,data/universes/sources/hemant_good_200.csv,mapped,LALPATHLAB +hemant_good_200,Hemant Good 200,SHAREINDIA,104,NSE_EQ,EQUITY,Share India Securities,EQ,data/universes/sources/hemant_good_200.csv,mapped,SHAREINDIA +hemant_good_200,Hemant Good 200,MAHAPEXLTD,5239,NSE_EQ,EQUITY,Maha Rashtra Apex Corporation,EQ,data/universes/sources/hemant_good_200.csv,mapped,MAHAPEXLTD +hemant_good_200,Hemant Good 200,AKZOINDIA,,,,,,data/universes/sources/hemant_good_200.csv,missing_security_id,AKZOINDIA +hemant_good_200,Hemant Good 200,CAMS,342,NSE_EQ,EQUITY,CAMS,EQ,data/universes/sources/hemant_good_200.csv,mapped,CAMS +hemant_good_200,Hemant Good 200,LINDEINDIA,1627,NSE_EQ,EQUITY,Linde,EQ,data/universes/sources/hemant_good_200.csv,mapped,LINDEINDIA +hemant_good_200,Hemant Good 200,ZFCVINDIA,16915,NSE_EQ,EQUITY,ZF Commercial,EQ,data/universes/sources/hemant_good_200.csv,mapped,ZFCVINDIA +hemant_good_200,Hemant Good 200,KIRLOSBROS,18581,NSE_EQ,EQUITY,Kirloskar Brothers,EQ,data/universes/sources/hemant_good_200.csv,mapped,KIRLOSBROS +hemant_good_200,Hemant Good 200,KRBL,10577,NSE_EQ,EQUITY,KRBL,EQ,data/universes/sources/hemant_good_200.csv,mapped,KRBL +hemant_good_200,Hemant Good 200,IGIL,28378,NSE_EQ,EQUITY,International Gemological Institute,EQ,data/universes/sources/hemant_good_200.csv,mapped,IGIL +hemant_good_200,Hemant Good 200,DBCORP,17881,NSE_EQ,EQUITY,DB Corp,EQ,data/universes/sources/hemant_good_200.csv,mapped,DBCORP +hemant_good_200,Hemant Good 200,ALIVUS,5265,NSE_EQ,EQUITY,Alivus Life Sciences,EQ,data/universes/sources/hemant_good_200.csv,mapped,ALIVUS +hemant_good_200,Hemant Good 200,CARBORUNIV,595,NSE_EQ,EQUITY,Carborundum Universal,EQ,data/universes/sources/hemant_good_200.csv,mapped,CARBORUNIV +hemant_good_200,Hemant Good 200,SANDUMA,18359,NSE_EQ,EQUITY,Sandur Manganese & Iron Ores,EQ,data/universes/sources/hemant_good_200.csv,mapped,SANDUMA +hemant_good_200,Hemant Good 200,INDIAMART,10726,NSE_EQ,EQUITY,IndiaMART InterMesh,EQ,data/universes/sources/hemant_good_200.csv,mapped,INDIAMART +hemant_good_200,Hemant Good 200,GILLETTE,1576,NSE_EQ,EQUITY,Gillette,EQ,data/universes/sources/hemant_good_200.csv,mapped,GILLETTE +hemant_good_200,Hemant Good 200,SHRIPISTON,17186,NSE_EQ,EQUITY,Shriram Pistons & Rings,EQ,data/universes/sources/hemant_good_200.csv,mapped,SHRIPISTON +hemant_good_200,Hemant Good 200,AVANTIFEED,7936,NSE_EQ,EQUITY,Avanti Feeds,EQ,data/universes/sources/hemant_good_200.csv,mapped,AVANTIFEED +hemant_good_200,Hemant Good 200,GVT&D,16783,NSE_EQ,EQUITY,GE Vernova T&D,EQ,data/universes/sources/hemant_good_200.csv,mapped,GVT&D +hemant_good_200,Hemant Good 200,FORCEMOT,11573,NSE_EQ,EQUITY,Force Motors,EQ,data/universes/sources/hemant_good_200.csv,mapped,FORCEMOT +hemant_good_200,Hemant Good 200,MEDANTA,11956,NSE_EQ,EQUITY,Global Health,EQ,data/universes/sources/hemant_good_200.csv,mapped,MEDANTA +hemant_good_200,Hemant Good 200,SUMICHEM,17105,NSE_EQ,EQUITY,Sumitomo Chemical,EQ,data/universes/sources/hemant_good_200.csv,mapped,SUMICHEM +hemant_good_200,Hemant Good 200,HSCL,14334,NSE_EQ,EQUITY,Himadri Speciality Chemical,EQ,data/universes/sources/hemant_good_200.csv,mapped,HSCL +hemant_good_200,Hemant Good 200,CAPLIPOINT,3906,NSE_EQ,EQUITY,Caplin Point Laboratories,EQ,data/universes/sources/hemant_good_200.csv,mapped,CAPLIPOINT +hemant_good_200,Hemant Good 200,ECLERX,15179,NSE_EQ,EQUITY,eClerx Services,EQ,data/universes/sources/hemant_good_200.csv,mapped,ECLERX +hemant_good_200,Hemant Good 200,CROMPTON,17094,NSE_EQ,EQUITY,Crompton Greaves,EQ,data/universes/sources/hemant_good_200.csv,mapped,CROMPTON +hemant_good_200,Hemant Good 200,TANLA,13976,NSE_EQ,EQUITY,Tanla Platforms,EQ,data/universes/sources/hemant_good_200.csv,mapped,TANLA +hemant_good_200,Hemant Good 200,BAYERCROP,17927,NSE_EQ,EQUITY,Bayer Crop Science,EQ,data/universes/sources/hemant_good_200.csv,mapped,BAYERCROP +hemant_good_200,Hemant Good 200,ASTRAL,14418,NSE_EQ,EQUITY,Astral,EQ,data/universes/sources/hemant_good_200.csv,mapped,ASTRAL +hemant_good_200,Hemant Good 200,RATNAMANI,13451,NSE_EQ,EQUITY,Ratnamani Metals & Tubes,EQ,data/universes/sources/hemant_good_200.csv,mapped,RATNAMANI +hemant_good_200,Hemant Good 200,HONAUT,3417,NSE_EQ,EQUITY,Honeywell Automation,EQ,data/universes/sources/hemant_good_200.csv,mapped,HONAUT +hemant_good_200,Hemant Good 200,SKFINDIA,3186,NSE_EQ,EQUITY,SKF India,EQ,data/universes/sources/hemant_good_200.csv,mapped,SKFINDIA +hemant_good_200,Hemant Good 200,FINCABLES,1038,NSE_EQ,EQUITY,Finolex Cables,EQ,data/universes/sources/hemant_good_200.csv,mapped,FINCABLES +hemant_good_200,Hemant Good 200,GANESHHOUC,,,,,,data/universes/sources/hemant_good_200.csv,missing_security_id,GANESHHOUC +hemant_good_200,Hemant Good 200,BLUESTARCO,8311,NSE_EQ,EQUITY,Blue Star,EQ,data/universes/sources/hemant_good_200.csv,mapped,BLUESTARCO +hemant_good_200,Hemant Good 200,SUNDRMFAST,3345,NSE_EQ,EQUITY,Sundram Fasteners,EQ,data/universes/sources/hemant_good_200.csv,mapped,SUNDRMFAST +hemant_good_200,Hemant Good 200,CSBBANK,14966,NSE_EQ,EQUITY,CSB Bank,EQ,data/universes/sources/hemant_good_200.csv,mapped,CSBBANK +hemant_good_200,Hemant Good 200,3MINDIA,474,NSE_EQ,EQUITY,3M India,EQ,data/universes/sources/hemant_good_200.csv,mapped,3MINDIA +hemant_good_200,Hemant Good 200,BDL,2144,NSE_EQ,EQUITY,Bharat Dynamics,EQ,data/universes/sources/hemant_good_200.csv,mapped,BDL +hemant_good_200,Hemant Good 200,NBCC,31415,NSE_EQ,EQUITY,NBCC,EQ,data/universes/sources/hemant_good_200.csv,mapped,NBCC +hemant_good_200,Hemant Good 200,BSOFT,6994,NSE_EQ,EQUITY,Birlasoft,EQ,data/universes/sources/hemant_good_200.csv,mapped,BSOFT +hemant_good_200,Hemant Good 200,SONACOMS,4684,NSE_EQ,EQUITY,Sona BLW Precision Forgings,EQ,data/universes/sources/hemant_good_200.csv,mapped,SONACOMS +hemant_good_200,Hemant Good 200,GHCL,1127,NSE_EQ,EQUITY,GHCL,EQ,data/universes/sources/hemant_good_200.csv,mapped,GHCL +hemant_good_200,Hemant Good 200,BASF,368,NSE_EQ,EQUITY,BASF,EQ,data/universes/sources/hemant_good_200.csv,mapped,BASF +hemant_good_200,Hemant Good 200,PFIZER,2643,NSE_EQ,EQUITY,Pfizer,EQ,data/universes/sources/hemant_good_200.csv,mapped,PFIZER +hemant_good_200,Hemant Good 200,KANSAINER,1196,NSE_EQ,EQUITY,Kansai Nerolac Paints,EQ,data/universes/sources/hemant_good_200.csv,mapped,KANSAINER +hemant_good_200,Hemant Good 200,MSUMI,8596,NSE_EQ,EQUITY,Motherson Sumi Wiring,EQ,data/universes/sources/hemant_good_200.csv,mapped,MSUMI +hemant_good_200,Hemant Good 200,CYIENT,5748,NSE_EQ,EQUITY,Cyient,EQ,data/universes/sources/hemant_good_200.csv,mapped,CYIENT +hemant_good_200,Hemant Good 200,KEI,13310,NSE_EQ,EQUITY,KEI Industries,EQ,data/universes/sources/hemant_good_200.csv,mapped,KEI +hemant_good_200,Hemant Good 200,JBCHEPHARM,1726,NSE_EQ,EQUITY,J B Chemicals and Pharmaceuticals,EQ,data/universes/sources/hemant_good_200.csv,mapped,JBCHEPHARM +hemant_good_200,Hemant Good 200,TATATECH,20293,NSE_EQ,EQUITY,Tata Technologies,EQ,data/universes/sources/hemant_good_200.csv,mapped,TATATECH +hemant_good_200,Hemant Good 200,ZENSARTECH,1076,NSE_EQ,EQUITY,Zensar Technologies,EQ,data/universes/sources/hemant_good_200.csv,mapped,ZENSARTECH +hemant_good_200,Hemant Good 200,CRISIL,757,NSE_EQ,EQUITY,CRISIL,EQ,data/universes/sources/hemant_good_200.csv,mapped,CRISIL +hemant_good_200,Hemant Good 200,PAGEIND,14413,NSE_EQ,EQUITY,Page Industries,EQ,data/universes/sources/hemant_good_200.csv,mapped,PAGEIND +hemant_good_200,Hemant Good 200,DEEPAKNTR,19943,NSE_EQ,EQUITY,Deepak Nitrite,EQ,data/universes/sources/hemant_good_200.csv,mapped,DEEPAKNTR +hemant_good_200,Hemant Good 200,JSFB,22663,NSE_EQ,EQUITY,Jana Small Finance Bank,EQ,data/universes/sources/hemant_good_200.csv,mapped,JSFB +hemant_good_200,Hemant Good 200,EIHOTEL,919,NSE_EQ,EQUITY,EIH Hotels,EQ,data/universes/sources/hemant_good_200.csv,mapped,EIHOTEL +hemant_good_200,Hemant Good 200,APTUS,5435,NSE_EQ,EQUITY,Aptus Value Housing Finance,EQ,data/universes/sources/hemant_good_200.csv,mapped,APTUS +hemant_good_200,Hemant Good 200,PGHH,2535,NSE_EQ,EQUITY,P&G Hygiene and Health Care,EQ,data/universes/sources/hemant_good_200.csv,mapped,PGHH +hemant_good_200,Hemant Good 200,MAHSEAMLES,2088,NSE_EQ,EQUITY,Maharashtra Seamless,EQ,data/universes/sources/hemant_good_200.csv,mapped,MAHSEAMLES +hemant_good_200,Hemant Good 200,BSE,19585,NSE_EQ,EQUITY,BSE,EQ,data/universes/sources/hemant_good_200.csv,mapped,BSE +hemant_good_200,Hemant Good 200,KPITTECH,9683,NSE_EQ,EQUITY,KPIT Technologies,EQ,data/universes/sources/hemant_good_200.csv,mapped,KPITTECH +hemant_good_200,Hemant Good 200,COFORGE,11543,NSE_EQ,EQUITY,Coforge,EQ,data/universes/sources/hemant_good_200.csv,mapped,COFORGE +hemant_good_200,Hemant Good 200,EMAMILTD,13517,NSE_EQ,EQUITY,Emami,EQ,data/universes/sources/hemant_good_200.csv,mapped,EMAMILTD +hemant_good_200,Hemant Good 200,STARHEALTH,7083,NSE_EQ,EQUITY,Star Health Insurance,EQ,data/universes/sources/hemant_good_200.csv,mapped,STARHEALTH +hemant_good_200,Hemant Good 200,ENDURANCE,18822,NSE_EQ,EQUITY,Endurance Technologies,EQ,data/universes/sources/hemant_good_200.csv,mapped,ENDURANCE +hemant_good_200,Hemant Good 200,UTIAMC,527,NSE_EQ,EQUITY,UTI AMC,EQ,data/universes/sources/hemant_good_200.csv,mapped,UTIAMC +hemant_good_200,Hemant Good 200,APARINDS,11491,NSE_EQ,EQUITY,Apar Industries,EQ,data/universes/sources/hemant_good_200.csv,mapped,APARINDS +hemant_good_200,Hemant Good 200,GPIL,13409,NSE_EQ,EQUITY,Godawari Power & Ispat,EQ,data/universes/sources/hemant_good_200.csv,mapped,GPIL +hemant_good_200,Hemant Good 200,TATAELXSI,3411,NSE_EQ,EQUITY,Tata Elxsi,EQ,data/universes/sources/hemant_good_200.csv,mapped,TATAELXSI +hemant_good_200,Hemant Good 200,533095,,,,,,data/universes/sources/hemant_good_200.csv,missing_security_id,533095 +hemant_good_200,Hemant Good 200,EIDPARRY,916,NSE_EQ,EQUITY,EID Parry,EQ,data/universes/sources/hemant_good_200.csv,mapped,EIDPARRY +hemant_good_200,Hemant Good 200,TIINDIA,312,NSE_EQ,EQUITY,Tube Investment,EQ,data/universes/sources/hemant_good_200.csv,mapped,TIINDIA +hemant_good_200,Hemant Good 200,COCHINSHIP,21508,NSE_EQ,EQUITY,Cochin Shipyard,EQ,data/universes/sources/hemant_good_200.csv,mapped,COCHINSHIP +hemant_good_200,Hemant Good 200,KPRMILL,14912,NSE_EQ,EQUITY,KPR Mill,EQ,data/universes/sources/hemant_good_200.csv,mapped,KPRMILL +hemant_good_200,Hemant Good 200,CIEINDIA,14937,NSE_EQ,EQUITY,CIE Automotive,EQ,data/universes/sources/hemant_good_200.csv,mapped,CIEINDIA +hemant_good_200,Hemant Good 200,CANFINHOME,583,NSE_EQ,EQUITY,Can Fin Homes,EQ,data/universes/sources/hemant_good_200.csv,mapped,CANFINHOME +hemant_good_200,Hemant Good 200,GLAXO,1153,NSE_EQ,EQUITY,GlaxoSmithKline Pharmaceuticals,EQ,data/universes/sources/hemant_good_200.csv,mapped,GLAXO +hemant_good_200,Hemant Good 200,AADHARHFC,23729,NSE_EQ,EQUITY,Aadhar Housing Finance,EQ,data/universes/sources/hemant_good_200.csv,mapped,AADHARHFC +hemant_good_200,Hemant Good 200,CREDITACC,4421,NSE_EQ,EQUITY,Credit Access Grameen,EQ,data/universes/sources/hemant_good_200.csv,mapped,CREDITACC +hemant_good_200,Hemant Good 200,AJANTPHARM,8124,NSE_EQ,EQUITY,Ajanta Pharma,EQ,data/universes/sources/hemant_good_200.csv,mapped,AJANTPHARM +hemant_good_200,Hemant Good 200,ABSLAMC,6018,NSE_EQ,EQUITY,Aditya Birla Sun Life AMC,EQ,data/universes/sources/hemant_good_200.csv,mapped,ABSLAMC +hemant_good_200,Hemant Good 200,CASTROLIND,1250,NSE_EQ,EQUITY,Castrol,EQ,data/universes/sources/hemant_good_200.csv,mapped,CASTROLIND +hemant_good_200,Hemant Good 200,CGPOWER,760,NSE_EQ,EQUITY,CG Power & Industrial Solutions,EQ,data/universes/sources/hemant_good_200.csv,mapped,CGPOWER +hemant_good_200,Hemant Good 200,ARE&M,100,NSE_EQ,EQUITY,Amara Raja Energy & Mobility,EQ,data/universes/sources/hemant_good_200.csv,mapped,ARE&M +hemant_good_200,Hemant Good 200,UJJIVANSFB,15228,NSE_EQ,EQUITY,Ujjivan Small Finance Bank,EQ,data/universes/sources/hemant_good_200.csv,mapped,UJJIVANSFB +hemant_good_200,Hemant Good 200,SCHAEFFLER,1011,NSE_EQ,EQUITY,Schaeffler India,EQ,data/universes/sources/hemant_good_200.csv,mapped,SCHAEFFLER +hemant_good_200,Hemant Good 200,WAAREEENER,25907,NSE_EQ,EQUITY,Waaree Energies,EQ,data/universes/sources/hemant_good_200.csv,mapped,WAAREEENER +hemant_good_200,Hemant Good 200,SUPREMEIND,3363,NSE_EQ,EQUITY,Supreme Industries,EQ,data/universes/sources/hemant_good_200.csv,mapped,SUPREMEIND +hemant_good_200,Hemant Good 200,FIVESTAR,12032,NSE_EQ,EQUITY,Five Star Business Finance,EQ,data/universes/sources/hemant_good_200.csv,mapped,FIVESTAR +hemant_good_200,Hemant Good 200,AIAENG,13086,NSE_EQ,EQUITY,AIA Engineering,EQ,data/universes/sources/hemant_good_200.csv,mapped,AIAENG +hemant_good_200,Hemant Good 200,GODFRYPHLP,1181,NSE_EQ,EQUITY,Godfrey Phillips,EQ,data/universes/sources/hemant_good_200.csv,mapped,GODFRYPHLP +hemant_good_200,Hemant Good 200,MGL,17534,NSE_EQ,EQUITY,Mahanagar Gas,EQ,data/universes/sources/hemant_good_200.csv,mapped,MGL +hemant_good_200,Hemant Good 200,MAXHEALTH,22377,NSE_EQ,EQUITY,Max Healthcare Institute,EQ,data/universes/sources/hemant_good_200.csv,mapped,MAXHEALTH +hemant_good_200,Hemant Good 200,NAVA,4014,NSE_EQ,EQUITY,Nava,EQ,data/universes/sources/hemant_good_200.csv,mapped,NAVA +hemant_good_200,Hemant Good 200,IIFL,11809,NSE_EQ,EQUITY,IIFL Finance,EQ,data/universes/sources/hemant_good_200.csv,mapped,IIFL +hemant_good_200,Hemant Good 200,360ONE,13061,NSE_EQ,EQUITY,360 One WAM,EQ,data/universes/sources/hemant_good_200.csv,mapped,360ONE +hemant_good_200,Hemant Good 200,TVSHLTD,29008,NSE_EQ,EQUITY,TVS Holdings,EQ,data/universes/sources/hemant_good_200.csv,mapped,TVSHLTD +hemant_good_200,Hemant Good 200,BERGEPAINT,404,NSE_EQ,EQUITY,Berger Paints,EQ,data/universes/sources/hemant_good_200.csv,mapped,BERGEPAINT +hemant_good_200,Hemant Good 200,ESCORTS,958,NSE_EQ,EQUITY,Escorts Kubota,EQ,data/universes/sources/hemant_good_200.csv,mapped,ESCORTS +hemant_good_200,Hemant Good 200,HEXT,29666,NSE_EQ,EQUITY,Hexaware Technologies,EQ,data/universes/sources/hemant_good_200.csv,mapped,HEXT +hemant_good_200,Hemant Good 200,REDINGTON,14255,NSE_EQ,EQUITY,Redington,EQ,data/universes/sources/hemant_good_200.csv,mapped,REDINGTON +hemant_good_200,Hemant Good 200,GUJGASLTD,10599,NSE_EQ,EQUITY,Gujarat Gas,EQ,data/universes/sources/hemant_good_200.csv,mapped,GUJGASLTD +hemant_good_200,Hemant Good 200,IRCTC,13611,NSE_EQ,EQUITY,IRCTC,EQ,data/universes/sources/hemant_good_200.csv,mapped,IRCTC +hemant_good_200,Hemant Good 200,LTTS,18564,NSE_EQ,EQUITY,L&T Technology Services,EQ,data/universes/sources/hemant_good_200.csv,mapped,LTTS +hemant_good_200,Hemant Good 200,PERSISTENT,18365,NSE_EQ,EQUITY,Persistent Systems,EQ,data/universes/sources/hemant_good_200.csv,mapped,PERSISTENT +hemant_good_200,Hemant Good 200,NAM-INDIA,357,NSE_EQ,EQUITY,Nippon Life India AMC,EQ,data/universes/sources/hemant_good_200.csv,mapped,NAM-INDIA +hemant_good_200,Hemant Good 200,ABBOTINDIA,17903,NSE_EQ,EQUITY,Abbott,EQ,data/universes/sources/hemant_good_200.csv,mapped,ABBOTINDIA +hemant_good_200,Hemant Good 200,GSPL,,,,,,data/universes/sources/hemant_good_200.csv,missing_security_id,GSPL +hemant_good_200,Hemant Good 200,HAVELLS,9819,NSE_EQ,EQUITY,Havells,EQ,data/universes/sources/hemant_good_200.csv,mapped,HAVELLS +hemant_good_200,Hemant Good 200,COLPAL,15141,NSE_EQ,EQUITY,Colgate Palmolive,EQ,data/universes/sources/hemant_good_200.csv,mapped,COLPAL +hemant_good_200,Hemant Good 200,UNITDSPR,10447,NSE_EQ,EQUITY,United Spirits,EQ,data/universes/sources/hemant_good_200.csv,mapped,UNITDSPR +hemant_good_200,Hemant Good 200,IGL,11262,NSE_EQ,EQUITY,Indraprastha Gas,EQ,data/universes/sources/hemant_good_200.csv,mapped,IGL +hemant_good_200,Hemant Good 200,LLOYDSME,17313,NSE_EQ,EQUITY,Lloyds Metals & Energy,EQ,data/universes/sources/hemant_good_200.csv,mapped,LLOYDSME +hemant_good_200,Hemant Good 200,MARICO,4067,NSE_EQ,EQUITY,Marico,EQ,data/universes/sources/hemant_good_200.csv,mapped,MARICO +hemant_good_200,Hemant Good 200,CHAMBLFERT,637,NSE_EQ,EQUITY,Chambal Fertilisers & Chemicals,EQ,data/universes/sources/hemant_good_200.csv,mapped,CHAMBLFERT +hemant_good_200,Hemant Good 200,COROMANDEL,739,NSE_EQ,EQUITY,Coromandel International,EQ,data/universes/sources/hemant_good_200.csv,mapped,COROMANDEL +hemant_good_200,Hemant Good 200,MPHASIS,4503,NSE_EQ,EQUITY,Mphasis,EQ,data/universes/sources/hemant_good_200.csv,mapped,MPHASIS +hemant_good_200,Hemant Good 200,IREDA,20261,NSE_EQ,EQUITY,IREDA,EQ,data/universes/sources/hemant_good_200.csv,mapped,IREDA +hemant_good_200,Hemant Good 200,PIIND,24184,NSE_EQ,EQUITY,PI Industries,EQ,data/universes/sources/hemant_good_200.csv,mapped,PIIND +hemant_good_200,Hemant Good 200,SUNTV,13404,NSE_EQ,EQUITY,Sun TV Network,EQ,data/universes/sources/hemant_good_200.csv,mapped,SUNTV +hemant_good_200,Hemant Good 200,MRF,2277,NSE_EQ,EQUITY,MRF,EQ,data/universes/sources/hemant_good_200.csv,mapped,MRF +hemant_good_200,Hemant Good 200,DABUR,772,NSE_EQ,EQUITY,Dabur India,EQ,data/universes/sources/hemant_good_200.csv,mapped,DABUR +hemant_good_200,Hemant Good 200,POLYCAB,9590,NSE_EQ,EQUITY,Polycab,EQ,data/universes/sources/hemant_good_200.csv,mapped,POLYCAB +hemant_good_200,Hemant Good 200,NATCOPHARM,3918,NSE_EQ,EQUITY,Natco Pharma,EQ,data/universes/sources/hemant_good_200.csv,mapped,NATCOPHARM +hemant_good_200,Hemant Good 200,ABB,13,NSE_EQ,EQUITY,ABB,EQ,data/universes/sources/hemant_good_200.csv,mapped,ABB +hemant_good_200,Hemant Good 200,KARURVYSYA,1838,NSE_EQ,EQUITY,Karur Vysya Bank,EQ,data/universes/sources/hemant_good_200.csv,mapped,KARURVYSYA +hemant_good_200,Hemant Good 200,MANKIND,15380,NSE_EQ,EQUITY,Mankind Pharma,EQ,data/universes/sources/hemant_good_200.csv,mapped,MANKIND +hemant_good_200,Hemant Good 200,CUMMINSIND,1901,NSE_EQ,EQUITY,Cummins,EQ,data/universes/sources/hemant_good_200.csv,mapped,CUMMINSIND +hemant_good_200,Hemant Good 200,BAJAJHFL,25270,NSE_EQ,EQUITY,Bajaj Housing Finance,EQ,data/universes/sources/hemant_good_200.csv,mapped,BAJAJHFL +hemant_good_200,Hemant Good 200,MANAPPURAM,19061,NSE_EQ,EQUITY,Manappuram Finance,EQ,data/universes/sources/hemant_good_200.csv,mapped,MANAPPURAM +hemant_good_200,Hemant Good 200,PIDILITIND,2664,NSE_EQ,EQUITY,Pidilite Industries,EQ,data/universes/sources/hemant_good_200.csv,mapped,PIDILITIND +hemant_good_200,Hemant Good 200,BOSCHLTD,2181,NSE_EQ,EQUITY,Bosch,EQ,data/universes/sources/hemant_good_200.csv,mapped,BOSCHLTD +hemant_good_200,Hemant Good 200,SBICARD,17971,NSE_EQ,EQUITY,SBI Cards,EQ,data/universes/sources/hemant_good_200.csv,mapped,SBICARD +hemant_good_200,Hemant Good 200,DIVISLAB,10940,NSE_EQ,EQUITY,Divis Laboratories,EQ,data/universes/sources/hemant_good_200.csv,mapped,DIVISLAB +hemant_good_200,Hemant Good 200,CHOLAHLDNG,21740,NSE_EQ,EQUITY,Cholamandalam Financial Holdings,EQ,data/universes/sources/hemant_good_200.csv,mapped,CHOLAHLDNG +hemant_good_200,Hemant Good 200,J&KBANK,5633,NSE_EQ,EQUITY,Jammu & Kashmir Bank,EQ,data/universes/sources/hemant_good_200.csv,mapped,J&KBANK +hemant_good_200,Hemant Good 200,ALKEM,11703,NSE_EQ,EQUITY,Alkem Laboratories,EQ,data/universes/sources/hemant_good_200.csv,mapped,ALKEM +hemant_good_200,Hemant Good 200,SIEMENS,3150,NSE_EQ,EQUITY,Siemens,EQ,data/universes/sources/hemant_good_200.csv,mapped,SIEMENS +hemant_good_200,Hemant Good 200,OFSS,10738,NSE_EQ,EQUITY,Oracle Financial Services Software,EQ,data/universes/sources/hemant_good_200.csv,mapped,OFSS +hemant_good_200,Hemant Good 200,HDFCAMC,4244,NSE_EQ,EQUITY,HDFC AMC,EQ,data/universes/sources/hemant_good_200.csv,mapped,HDFCAMC +hemant_good_200,Hemant Good 200,GESHIP,13776,NSE_EQ,EQUITY,Great Eastern Shipping Company,EQ,data/universes/sources/hemant_good_200.csv,mapped,GESHIP +hemant_good_200,Hemant Good 200,ACC,22,NSE_EQ,EQUITY,ACC,EQ,data/universes/sources/hemant_good_200.csv,mapped,ACC +hemant_good_200,Hemant Good 200,ICICIGI,21770,NSE_EQ,EQUITY,ICICI Lombard General Insurance,EQ,data/universes/sources/hemant_good_200.csv,mapped,ICICIGI +hemant_good_200,Hemant Good 200,OBEROIRLTY,20242,NSE_EQ,EQUITY,Oberoi Realty,EQ,data/universes/sources/hemant_good_200.csv,mapped,OBEROIRLTY +hemant_good_200,Hemant Good 200,VBL,18921,NSE_EQ,EQUITY,Varun Beverages,EQ,data/universes/sources/hemant_good_200.csv,mapped,VBL +hemant_good_200,Hemant Good 200,DMART,19913,NSE_EQ,EQUITY,Avenue Supermarts DMart,EQ,data/universes/sources/hemant_good_200.csv,mapped,DMART +hemant_good_200,Hemant Good 200,MAZDOCK,509,NSE_EQ,EQUITY,Mazagon Dock Shipbuilders,EQ,data/universes/sources/hemant_good_200.csv,mapped,MAZDOCK +hemant_good_200,Hemant Good 200,LUPIN,10440,NSE_EQ,EQUITY,Lupin,EQ,data/universes/sources/hemant_good_200.csv,mapped,LUPIN +hemant_good_200,Hemant Good 200,NESTLEIND,17963,NSE_EQ,EQUITY,Nestle,EQ,data/universes/sources/hemant_good_200.csv,mapped,NESTLEIND +hemant_good_200,Hemant Good 200,PETRONET,11351,NSE_EQ,EQUITY,Petronet LNG,EQ,data/universes/sources/hemant_good_200.csv,mapped,PETRONET +hemant_good_200,Hemant Good 200,NATIONALUM,6364,NSE_EQ,EQUITY,NALCO,EQ,data/universes/sources/hemant_good_200.csv,mapped,NATIONALUM +hemant_good_200,Hemant Good 200,AIIL,23553,NSE_EQ,EQUITY,Authum Inv & Infr,EQ,data/universes/sources/hemant_good_200.csv,mapped,AIIL +hemant_good_200,Hemant Good 200,CHOLAFIN,685,NSE_EQ,EQUITY,Cholamandalam Investment,EQ,data/universes/sources/hemant_good_200.csv,mapped,CHOLAFIN +hemant_good_200,Hemant Good 200,HEROMOTOCO,1348,NSE_EQ,EQUITY,Hero Motocorp,EQ,data/universes/sources/hemant_good_200.csv,mapped,HEROMOTOCO +hemant_good_200,Hemant Good 200,ASIANPAINT,236,NSE_EQ,EQUITY,Asian Paints,EQ,data/universes/sources/hemant_good_200.csv,mapped,ASIANPAINT +hemant_good_200,Hemant Good 200,EICHERMOT,910,NSE_EQ,EQUITY,Eicher Motors,EQ,data/universes/sources/hemant_good_200.csv,mapped,EICHERMOT +hemant_good_200,Hemant Good 200,ZYDUSLIFE,7929,NSE_EQ,EQUITY,Zydus Life Science,EQ,data/universes/sources/hemant_good_200.csv,mapped,ZYDUSLIFE +hemant_good_200,Hemant Good 200,LTIM,,,,,,data/universes/sources/hemant_good_200.csv,missing_security_id,LTIM +hemant_good_200,Hemant Good 200,MUTHOOTFIN,23650,NSE_EQ,EQUITY,Muthoot Finance,EQ,data/universes/sources/hemant_good_200.csv,mapped,MUTHOOTFIN +hemant_good_200,Hemant Good 200,CIPLA,694,NSE_EQ,EQUITY,Cipla,EQ,data/universes/sources/hemant_good_200.csv,mapped,CIPLA +hemant_good_200,Hemant Good 200,BEL,383,NSE_EQ,EQUITY,Bharat Electronics,EQ,data/universes/sources/hemant_good_200.csv,mapped,BEL +hemant_good_200,Hemant Good 200,LICHSGFIN,1997,NSE_EQ,EQUITY,LIC Housing Finance,EQ,data/universes/sources/hemant_good_200.csv,mapped,LICHSGFIN +hemant_good_200,Hemant Good 200,MAHABANK,11377,NSE_EQ,EQUITY,Bank of Maharashtra,EQ,data/universes/sources/hemant_good_200.csv,mapped,MAHABANK +hemant_good_200,Hemant Good 200,DRREDDY,881,NSE_EQ,EQUITY,Dr Reddys Laboratories,EQ,data/universes/sources/hemant_good_200.csv,mapped,DRREDDY +hemant_good_200,Hemant Good 200,HYUNDAI,25844,NSE_EQ,EQUITY,Hyundai Motor India,EQ,data/universes/sources/hemant_good_200.csv,mapped,HYUNDAI +hemant_good_200,Hemant Good 200,NMDC,15332,NSE_EQ,EQUITY,NMDC,EQ,data/universes/sources/hemant_good_200.csv,mapped,NMDC +hemant_good_200,Hemant Good 200,INDUSINDBK,5258,NSE_EQ,EQUITY,Indusind Bank,EQ,data/universes/sources/hemant_good_200.csv,mapped,INDUSINDBK +hemant_good_200,Hemant Good 200,GICRE,277,NSE_EQ,EQUITY,GIC of India,EQ,data/universes/sources/hemant_good_200.csv,mapped,GICRE +hemant_good_200,Hemant Good 200,BAJAJ-AUTO,16669,NSE_EQ,EQUITY,Bajaj Auto,EQ,data/universes/sources/hemant_good_200.csv,mapped,BAJAJ-AUTO +hemant_good_200,Hemant Good 200,SHRIRAMFIN,4306,NSE_EQ,EQUITY,Shriram Finance,EQ,data/universes/sources/hemant_good_200.csv,mapped,SHRIRAMFIN +hemant_good_200,Hemant Good 200,BAJAJFINSV,16675,NSE_EQ,EQUITY,Bajaj Finserv,EQ,data/universes/sources/hemant_good_200.csv,mapped,BAJAJFINSV +hemant_good_200,Hemant Good 200,HAL,2303,NSE_EQ,EQUITY,Hindustan Aeronautics,EQ,data/universes/sources/hemant_good_200.csv,mapped,HAL +hemant_good_200,Hemant Good 200,HINDUNILVR,1394,NSE_EQ,EQUITY,Hindustan Unilever,EQ,data/universes/sources/hemant_good_200.csv,mapped,HINDUNILVR +hemant_good_200,Hemant Good 200,INDIANB,14309,NSE_EQ,EQUITY,Indian Bank,EQ,data/universes/sources/hemant_good_200.csv,mapped,INDIANB +hemant_good_200,Hemant Good 200,SUNPHARMA,3351,NSE_EQ,EQUITY,Sun Pharmaceutical,EQ,data/universes/sources/hemant_good_200.csv,mapped,SUNPHARMA +hemant_good_200,Hemant Good 200,WIPRO,3787,NSE_EQ,EQUITY,Wipro,EQ,data/universes/sources/hemant_good_200.csv,mapped,WIPRO +hemant_good_200,Hemant Good 200,MARUTI,10999,NSE_EQ,EQUITY,Maruti Suzuki,EQ,data/universes/sources/hemant_good_200.csv,mapped,MARUTI +hemant_good_200,Hemant Good 200,RECLTD,15355,NSE_EQ,EQUITY,REC,EQ,data/universes/sources/hemant_good_200.csv,mapped,RECLTD +hemant_good_200,Hemant Good 200,BAJFINANCE,317,NSE_EQ,EQUITY,Bajaj Finance,EQ,data/universes/sources/hemant_good_200.csv,mapped,BAJFINANCE +hemant_good_200,Hemant Good 200,UNIONBANK,10753,NSE_EQ,EQUITY,Union Bank of India,EQ,data/universes/sources/hemant_good_200.csv,mapped,UNIONBANK +hemant_good_200,Hemant Good 200,CANBK,10794,NSE_EQ,EQUITY,Canara Bank,EQ,data/universes/sources/hemant_good_200.csv,mapped,CANBK +hemant_good_200,Hemant Good 200,HCLTECH,7229,NSE_EQ,EQUITY,HCL Technologies,EQ,data/universes/sources/hemant_good_200.csv,mapped,HCLTECH +hemant_good_200,Hemant Good 200,KOTAKBANK,1922,NSE_EQ,EQUITY,Kotak Bank,EQ,data/universes/sources/hemant_good_200.csv,mapped,KOTAKBANK +hemant_good_200,Hemant Good 200,ITC,1660,NSE_EQ,EQUITY,ITC,EQ,data/universes/sources/hemant_good_200.csv,mapped,ITC +hemant_good_200,Hemant Good 200,BANKBARODA,4668,NSE_EQ,EQUITY,Bank of Baroda,EQ,data/universes/sources/hemant_good_200.csv,mapped,BANKBARODA +hemant_good_200,Hemant Good 200,PFC,14299,NSE_EQ,EQUITY,Power Finance Corporation,EQ,data/universes/sources/hemant_good_200.csv,mapped,PFC +hemant_good_200,Hemant Good 200,INFY,1594,NSE_EQ,EQUITY,Infosys,EQ,data/universes/sources/hemant_good_200.csv,mapped,INFY +hemant_good_200,Hemant Good 200,AXISBANK,5900,NSE_EQ,EQUITY,Axis Bank,EQ,data/universes/sources/hemant_good_200.csv,mapped,AXISBANK +hemant_good_200,Hemant Good 200,COALINDIA,20374,NSE_EQ,EQUITY,Coal India,EQ,data/universes/sources/hemant_good_200.csv,mapped,COALINDIA +hemant_good_200,Hemant Good 200,LICI,9480,NSE_EQ,EQUITY,LIC of India,EQ,data/universes/sources/hemant_good_200.csv,mapped,LICI +hemant_good_200,Hemant Good 200,TCS,11536,NSE_EQ,EQUITY,Tata Consultancy Services,EQ,data/universes/sources/hemant_good_200.csv,mapped,TCS +hemant_good_200,Hemant Good 200,ICICIBANK,4963,NSE_EQ,EQUITY,ICICI Bank,EQ,data/universes/sources/hemant_good_200.csv,mapped,ICICIBANK +hemant_good_200,Hemant Good 200,HDFCBANK,1333,NSE_EQ,EQUITY,HDFC Bank,EQ,data/universes/sources/hemant_good_200.csv,mapped,HDFCBANK +hemant_good_200,Hemant Good 200,SBIN,3045,NSE_EQ,EQUITY,State Bank of India,EQ,data/universes/sources/hemant_good_200.csv,mapped,SBIN +hemant_good_200,Hemant Good 200,BLS,17279,NSE_EQ,EQUITY,BLS International Services,EQ,data/universes/sources/hemant_good_200.csv,mapped,BLS +hemant_good_200,Hemant Good 200,SUZLON,12018,NSE_EQ,EQUITY,Suzlon Energy,EQ,data/universes/sources/hemant_good_200.csv,mapped,SUZLON diff --git a/data/universes/hemant_good_45.csv b/data/universes/hemant_good_45.csv index 91ddfb9..651b4d2 100644 --- a/data/universes/hemant_good_45.csv +++ b/data/universes/hemant_good_45.csv @@ -1,44 +1,44 @@ universe,universe_name,symbol,security_id,exchange_segment,instrument_type,company_name,series,source,mapping_status,source_symbol -hemant_good_45,Hemant Good 45,3MINDIA,474,NSE_EQ,EQUITY,3M India,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_45.csv,mapped,3MINDIA -hemant_good_45,Hemant Good 45,PGHL,940,NSE_EQ,EQUITY,Procter & Gamble Health,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_45.csv,mapped,PGHL -hemant_good_45,Hemant Good 45,ASTRAZEN,5610,NSE_EQ,EQUITY,AstraZeneca Pharma,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_45.csv,mapped,ASTRAZEN -hemant_good_45,Hemant Good 45,AVANTIFEED,7936,NSE_EQ,EQUITY,Avanti Feeds,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_45.csv,mapped,AVANTIFEED -hemant_good_45,Hemant Good 45,BAYERCROP,17927,NSE_EQ,EQUITY,Bayer Crop Science,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_45.csv,mapped,BAYERCROP -hemant_good_45,Hemant Good 45,BOSCHLTD,2181,NSE_EQ,EQUITY,Bosch,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_45.csv,mapped,BOSCHLTD -hemant_good_45,Hemant Good 45,CAPLIPOINT,3906,NSE_EQ,EQUITY,Caplin Point Laboratories,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_45.csv,mapped,CAPLIPOINT -hemant_good_45,Hemant Good 45,KAJARIACER,1808,NSE_EQ,EQUITY,Kajaria Ceramics,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_45.csv,mapped,KAJARIACER -hemant_good_45,Hemant Good 45,CERA,15039,NSE_EQ,EQUITY,Cera Sanitaryware,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_45.csv,mapped,CERA -hemant_good_45,Hemant Good 45,DIXON,21690,NSE_EQ,EQUITY,Dixon Technologies,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_45.csv,mapped,DIXON -hemant_good_45,Hemant Good 45,TVSMOTOR,8479,NSE_EQ,EQUITY,TVS Motors,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_45.csv,mapped,TVSMOTOR -hemant_good_45,Hemant Good 45,HEROMOTOCO,1348,NSE_EQ,EQUITY,Hero Motocorp,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_45.csv,mapped,HEROMOTOCO -hemant_good_45,Hemant Good 45,EICHERMOT,910,NSE_EQ,EQUITY,Eicher Motors,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_45.csv,mapped,EICHERMOT -hemant_good_45,Hemant Good 45,EQUITAS,,,,,,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_45.csv,missing_security_id,EQUITAS -hemant_good_45,Hemant Good 45,ERIS,21154,NSE_EQ,EQUITY,Eris Lifesciences,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_45.csv,mapped,ERIS -hemant_good_45,Hemant Good 45,KEI,13310,NSE_EQ,EQUITY,KEI Industries,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_45.csv,mapped,KEI -hemant_good_45,Hemant Good 45,FINCABLES,1038,NSE_EQ,EQUITY,Finolex Cables,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_45.csv,mapped,FINCABLES -hemant_good_45,Hemant Good 45,FINEORG,3744,NSE_EQ,EQUITY,Fine Organic Industries,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_45.csv,mapped,FINEORG -hemant_good_45,Hemant Good 45,GODREJCP,10099,NSE_EQ,EQUITY,Godrej Consumer Products,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_45.csv,mapped,GODREJCP -hemant_good_45,Hemant Good 45,HONAUT,3417,NSE_EQ,EQUITY,Honeywell Automation,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_45.csv,mapped,HONAUT -hemant_good_45,Hemant Good 45,ISEC,,,,,,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_45.csv,missing_security_id,ISEC -hemant_good_45,Hemant Good 45,JCHAC,,,,,,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_45.csv,missing_security_id,JCHAC -hemant_good_45,Hemant Good 45,KANSAINER,1196,NSE_EQ,EQUITY,Kansai Nerolac Paints,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_45.csv,mapped,KANSAINER -hemant_good_45,Hemant Good 45,LALPATHLAB,11654,NSE_EQ,EQUITY,Dr. Lal Path Labs,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_45.csv,mapped,LALPATHLAB -hemant_good_45,Hemant Good 45,UNITDSPR,10447,NSE_EQ,EQUITY,United Spirits,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_45.csv,mapped,MCDOWELL_N -hemant_good_45,Hemant Good 45,MCX,31181,NSE_EQ,EQUITY,MCX,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_45.csv,mapped,MCX -hemant_good_45,Hemant Good 45,MOTILALOFS,14947,NSE_EQ,EQUITY,Motilal Oswal Financial Services,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_45.csv,mapped,MOTILALOFS -hemant_good_45,Hemant Good 45,OFSS,10738,NSE_EQ,EQUITY,Oracle Financial Services Software,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_45.csv,mapped,OFSS -hemant_good_45,Hemant Good 45,POLYCAB,9590,NSE_EQ,EQUITY,Polycab,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_45.csv,mapped,POLYCAB -hemant_good_45,Hemant Good 45,RADICO,10990,NSE_EQ,EQUITY,Radico Khaitan,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_45.csv,mapped,RADICO -hemant_good_45,Hemant Good 45,RAJESHEXPO,760461,NSE_EQ,EQUITY,Rajesh Exports,BZ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_45.csv,mapped,RAJESHEXPO -hemant_good_45,Hemant Good 45,RELAXO,24225,NSE_EQ,EQUITY,Relaxo Footwears,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_45.csv,mapped,RELAXO -hemant_good_45,Hemant Good 45,SFL,19184,NSE_EQ,EQUITY,Sheela Foam,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_45.csv,mapped,SFL -hemant_good_45,Hemant Good 45,SIS,21501,NSE_EQ,EQUITY,SIS,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_45.csv,mapped,SIS -hemant_good_45,Hemant Good 45,SUNTV,13404,NSE_EQ,EQUITY,Sun TV Network,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_45.csv,mapped,SUNTV -hemant_good_45,Hemant Good 45,SYMPHONY,24190,NSE_EQ,EQUITY,Symphony,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_45.csv,mapped,SYMPHONY -hemant_good_45,Hemant Good 45,TASTYBITE,20092,NSE_EQ,EQUITY,Tasty Bite Eatables,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_45.csv,mapped,TASTYBITE -hemant_good_45,Hemant Good 45,TEAMLEASE,12716,NSE_EQ,EQUITY,Teamlease Services,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_45.csv,mapped,TEAMLEASE -hemant_good_45,Hemant Good 45,TTKPRESTIG,3546,NSE_EQ,EQUITY,TTK Prestige,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_45.csv,mapped,TTKPRESTIG -hemant_good_45,Hemant Good 45,UJJIVANSFB,15228,NSE_EQ,EQUITY,Ujjivan Small Finance Bank,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_45.csv,mapped,UJJIVANSFB -hemant_good_45,Hemant Good 45,VGUARD,15362,NSE_EQ,EQUITY,V-Guard Industries,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_45.csv,mapped,VGUARD -hemant_good_45,Hemant Good 45,VINATIORGA,17364,NSE_EQ,EQUITY,Vinati Organics,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_45.csv,mapped,VINATIORGA -hemant_good_45,Hemant Good 45,VIPIND,3703,NSE_EQ,EQUITY,VIP Industries,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_good_45.csv,mapped,VIPIND +hemant_good_45,Hemant Good 45,3MINDIA,474,NSE_EQ,EQUITY,3M India,EQ,data/universes/sources/hemant_good_45.csv,mapped,3MINDIA +hemant_good_45,Hemant Good 45,PGHL,940,NSE_EQ,EQUITY,Procter & Gamble Health,EQ,data/universes/sources/hemant_good_45.csv,mapped,PGHL +hemant_good_45,Hemant Good 45,ASTRAZEN,5610,NSE_EQ,EQUITY,AstraZeneca Pharma,EQ,data/universes/sources/hemant_good_45.csv,mapped,ASTRAZEN +hemant_good_45,Hemant Good 45,AVANTIFEED,7936,NSE_EQ,EQUITY,Avanti Feeds,EQ,data/universes/sources/hemant_good_45.csv,mapped,AVANTIFEED +hemant_good_45,Hemant Good 45,BAYERCROP,17927,NSE_EQ,EQUITY,Bayer Crop Science,EQ,data/universes/sources/hemant_good_45.csv,mapped,BAYERCROP +hemant_good_45,Hemant Good 45,BOSCHLTD,2181,NSE_EQ,EQUITY,Bosch,EQ,data/universes/sources/hemant_good_45.csv,mapped,BOSCHLTD +hemant_good_45,Hemant Good 45,CAPLIPOINT,3906,NSE_EQ,EQUITY,Caplin Point Laboratories,EQ,data/universes/sources/hemant_good_45.csv,mapped,CAPLIPOINT +hemant_good_45,Hemant Good 45,KAJARIACER,1808,NSE_EQ,EQUITY,Kajaria Ceramics,EQ,data/universes/sources/hemant_good_45.csv,mapped,KAJARIACER +hemant_good_45,Hemant Good 45,CERA,15039,NSE_EQ,EQUITY,Cera Sanitaryware,EQ,data/universes/sources/hemant_good_45.csv,mapped,CERA +hemant_good_45,Hemant Good 45,DIXON,21690,NSE_EQ,EQUITY,Dixon Technologies,EQ,data/universes/sources/hemant_good_45.csv,mapped,DIXON +hemant_good_45,Hemant Good 45,TVSMOTOR,8479,NSE_EQ,EQUITY,TVS Motors,EQ,data/universes/sources/hemant_good_45.csv,mapped,TVSMOTOR +hemant_good_45,Hemant Good 45,HEROMOTOCO,1348,NSE_EQ,EQUITY,Hero Motocorp,EQ,data/universes/sources/hemant_good_45.csv,mapped,HEROMOTOCO +hemant_good_45,Hemant Good 45,EICHERMOT,910,NSE_EQ,EQUITY,Eicher Motors,EQ,data/universes/sources/hemant_good_45.csv,mapped,EICHERMOT +hemant_good_45,Hemant Good 45,EQUITAS,,,,,,data/universes/sources/hemant_good_45.csv,missing_security_id,EQUITAS +hemant_good_45,Hemant Good 45,ERIS,21154,NSE_EQ,EQUITY,Eris Lifesciences,EQ,data/universes/sources/hemant_good_45.csv,mapped,ERIS +hemant_good_45,Hemant Good 45,KEI,13310,NSE_EQ,EQUITY,KEI Industries,EQ,data/universes/sources/hemant_good_45.csv,mapped,KEI +hemant_good_45,Hemant Good 45,FINCABLES,1038,NSE_EQ,EQUITY,Finolex Cables,EQ,data/universes/sources/hemant_good_45.csv,mapped,FINCABLES +hemant_good_45,Hemant Good 45,FINEORG,3744,NSE_EQ,EQUITY,Fine Organic Industries,EQ,data/universes/sources/hemant_good_45.csv,mapped,FINEORG +hemant_good_45,Hemant Good 45,GODREJCP,10099,NSE_EQ,EQUITY,Godrej Consumer Products,EQ,data/universes/sources/hemant_good_45.csv,mapped,GODREJCP +hemant_good_45,Hemant Good 45,HONAUT,3417,NSE_EQ,EQUITY,Honeywell Automation,EQ,data/universes/sources/hemant_good_45.csv,mapped,HONAUT +hemant_good_45,Hemant Good 45,ISEC,,,,,,data/universes/sources/hemant_good_45.csv,missing_security_id,ISEC +hemant_good_45,Hemant Good 45,JCHAC,,,,,,data/universes/sources/hemant_good_45.csv,missing_security_id,JCHAC +hemant_good_45,Hemant Good 45,KANSAINER,1196,NSE_EQ,EQUITY,Kansai Nerolac Paints,EQ,data/universes/sources/hemant_good_45.csv,mapped,KANSAINER +hemant_good_45,Hemant Good 45,LALPATHLAB,11654,NSE_EQ,EQUITY,Dr. Lal Path Labs,EQ,data/universes/sources/hemant_good_45.csv,mapped,LALPATHLAB +hemant_good_45,Hemant Good 45,UNITDSPR,10447,NSE_EQ,EQUITY,United Spirits,EQ,data/universes/sources/hemant_good_45.csv,mapped,MCDOWELL_N +hemant_good_45,Hemant Good 45,MCX,31181,NSE_EQ,EQUITY,MCX,EQ,data/universes/sources/hemant_good_45.csv,mapped,MCX +hemant_good_45,Hemant Good 45,MOTILALOFS,14947,NSE_EQ,EQUITY,Motilal Oswal Financial Services,EQ,data/universes/sources/hemant_good_45.csv,mapped,MOTILALOFS +hemant_good_45,Hemant Good 45,OFSS,10738,NSE_EQ,EQUITY,Oracle Financial Services Software,EQ,data/universes/sources/hemant_good_45.csv,mapped,OFSS +hemant_good_45,Hemant Good 45,POLYCAB,9590,NSE_EQ,EQUITY,Polycab,EQ,data/universes/sources/hemant_good_45.csv,mapped,POLYCAB +hemant_good_45,Hemant Good 45,RADICO,10990,NSE_EQ,EQUITY,Radico Khaitan,EQ,data/universes/sources/hemant_good_45.csv,mapped,RADICO +hemant_good_45,Hemant Good 45,RAJESHEXPO,760461,NSE_EQ,EQUITY,Rajesh Exports,BZ,data/universes/sources/hemant_good_45.csv,mapped,RAJESHEXPO +hemant_good_45,Hemant Good 45,RELAXO,24225,NSE_EQ,EQUITY,Relaxo Footwears,EQ,data/universes/sources/hemant_good_45.csv,mapped,RELAXO +hemant_good_45,Hemant Good 45,SFL,19184,NSE_EQ,EQUITY,Sheela Foam,EQ,data/universes/sources/hemant_good_45.csv,mapped,SFL +hemant_good_45,Hemant Good 45,SIS,21501,NSE_EQ,EQUITY,SIS,EQ,data/universes/sources/hemant_good_45.csv,mapped,SIS +hemant_good_45,Hemant Good 45,SUNTV,13404,NSE_EQ,EQUITY,Sun TV Network,EQ,data/universes/sources/hemant_good_45.csv,mapped,SUNTV +hemant_good_45,Hemant Good 45,SYMPHONY,24190,NSE_EQ,EQUITY,Symphony,EQ,data/universes/sources/hemant_good_45.csv,mapped,SYMPHONY +hemant_good_45,Hemant Good 45,TASTYBITE,20092,NSE_EQ,EQUITY,Tasty Bite Eatables,EQ,data/universes/sources/hemant_good_45.csv,mapped,TASTYBITE +hemant_good_45,Hemant Good 45,TEAMLEASE,12716,NSE_EQ,EQUITY,Teamlease Services,EQ,data/universes/sources/hemant_good_45.csv,mapped,TEAMLEASE +hemant_good_45,Hemant Good 45,TTKPRESTIG,3546,NSE_EQ,EQUITY,TTK Prestige,EQ,data/universes/sources/hemant_good_45.csv,mapped,TTKPRESTIG +hemant_good_45,Hemant Good 45,UJJIVANSFB,15228,NSE_EQ,EQUITY,Ujjivan Small Finance Bank,EQ,data/universes/sources/hemant_good_45.csv,mapped,UJJIVANSFB +hemant_good_45,Hemant Good 45,VGUARD,15362,NSE_EQ,EQUITY,V-Guard Industries,EQ,data/universes/sources/hemant_good_45.csv,mapped,VGUARD +hemant_good_45,Hemant Good 45,VINATIORGA,17364,NSE_EQ,EQUITY,Vinati Organics,EQ,data/universes/sources/hemant_good_45.csv,mapped,VINATIORGA +hemant_good_45,Hemant Good 45,VIPIND,3703,NSE_EQ,EQUITY,VIP Industries,EQ,data/universes/sources/hemant_good_45.csv,mapped,VIPIND diff --git a/data/universes/hemant_super_45.csv b/data/universes/hemant_super_45.csv index 6298726..7be9b62 100644 --- a/data/universes/hemant_super_45.csv +++ b/data/universes/hemant_super_45.csv @@ -1,44 +1,44 @@ universe,universe_name,symbol,security_id,exchange_segment,instrument_type,company_name,series,source,mapping_status,source_symbol -hemant_super_45,Hemant Super 45,HDFCBANK,1333,NSE_EQ,EQUITY,HDFC Bank,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_super_45.csv,mapped,HDFCBANK -hemant_super_45,Hemant Super 45,ICICIBANK,4963,NSE_EQ,EQUITY,ICICI Bank,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_super_45.csv,mapped,ICICIBANK -hemant_super_45,Hemant Super 45,AXISBANK,5900,NSE_EQ,EQUITY,Axis Bank,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_super_45.csv,mapped,AXISBANK -hemant_super_45,Hemant Super 45,KOTAKBANK,1922,NSE_EQ,EQUITY,Kotak Bank,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_super_45.csv,mapped,KOTAKBANK -hemant_super_45,Hemant Super 45,BAJFINANCE,317,NSE_EQ,EQUITY,Bajaj Finance,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_super_45.csv,mapped,BAJFINANCE -hemant_super_45,Hemant Super 45,ICICIGI,21770,NSE_EQ,EQUITY,ICICI Lombard General Insurance,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_super_45.csv,mapped,ICICIGI -hemant_super_45,Hemant Super 45,HDFCLIFE,467,NSE_EQ,EQUITY,HDFC Life Insurance,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_super_45.csv,mapped,HDFCLIFE -hemant_super_45,Hemant Super 45,BAJAJFINSV,16675,NSE_EQ,EQUITY,Bajaj Finserv,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_super_45.csv,mapped,BAJAJFINSV -hemant_super_45,Hemant Super 45,ICICIPRULI,18652,NSE_EQ,EQUITY,ICICI Prudential Life Insurance,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_super_45.csv,mapped,ICICIPRULI -hemant_super_45,Hemant Super 45,HDFCAMC,4244,NSE_EQ,EQUITY,HDFC AMC,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_super_45.csv,mapped,HDFCAMC -hemant_super_45,Hemant Super 45,NAM-INDIA,357,NSE_EQ,EQUITY,Nippon Life India AMC,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_super_45.csv,mapped,NAM_INDIA -hemant_super_45,Hemant Super 45,PGHH,2535,NSE_EQ,EQUITY,P&G Hygiene and Health Care,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_super_45.csv,mapped,PGHH -hemant_super_45,Hemant Super 45,MARICO,4067,NSE_EQ,EQUITY,Marico,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_super_45.csv,mapped,MARICO -hemant_super_45,Hemant Super 45,COLPAL,15141,NSE_EQ,EQUITY,Colgate Palmolive,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_super_45.csv,mapped,COLPAL -hemant_super_45,Hemant Super 45,HINDUNILVR,1394,NSE_EQ,EQUITY,Hindustan Unilever,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_super_45.csv,mapped,HINDUNILVR -hemant_super_45,Hemant Super 45,BAJAJHLDNG,305,NSE_EQ,EQUITY,Bajaj Holdings & Investments,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_super_45.csv,mapped,BAJAJHLDNG -hemant_super_45,Hemant Super 45,DABUR,772,NSE_EQ,EQUITY,Dabur India,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_super_45.csv,mapped,DABUR -hemant_super_45,Hemant Super 45,NESTLEIND,17963,NSE_EQ,EQUITY,Nestle,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_super_45.csv,mapped,NESTLEIND -hemant_super_45,Hemant Super 45,ITC,1660,NSE_EQ,EQUITY,ITC,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_super_45.csv,mapped,ITC -hemant_super_45,Hemant Super 45,ASIANPAINT,236,NSE_EQ,EQUITY,Asian Paints,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_super_45.csv,mapped,ASIANPAINT -hemant_super_45,Hemant Super 45,BERGEPAINT,404,NSE_EQ,EQUITY,Berger Paints,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_super_45.csv,mapped,BERGEPAINT -hemant_super_45,Hemant Super 45,KANSAINER,1196,NSE_EQ,EQUITY,Kansai Nerolac Paints,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_super_45.csv,mapped,KANSAINER -hemant_super_45,Hemant Super 45,AKZOINDIA,,,,,,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_super_45.csv,missing_security_id,AKZOINDIA -hemant_super_45,Hemant Super 45,TITAN,3506,NSE_EQ,EQUITY,Titan,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_super_45.csv,mapped,TITAN -hemant_super_45,Hemant Super 45,BATAINDIA,371,NSE_EQ,EQUITY,Bata,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_super_45.csv,mapped,BATAINDIA -hemant_super_45,Hemant Super 45,PAGEIND,14413,NSE_EQ,EQUITY,Page Industries,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_super_45.csv,mapped,PAGEIND -hemant_super_45,Hemant Super 45,WHIRLPOOL,18011,NSE_EQ,EQUITY,Whirlpool,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_super_45.csv,mapped,WHIRLPOOL -hemant_super_45,Hemant Super 45,HAVELLS,9819,NSE_EQ,EQUITY,Havells,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_super_45.csv,mapped,HAVELLS -hemant_super_45,Hemant Super 45,TCS,11536,NSE_EQ,EQUITY,Tata Consultancy Services,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_super_45.csv,mapped,TCS -hemant_super_45,Hemant Super 45,INFY,1594,NSE_EQ,EQUITY,Infosys,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_super_45.csv,mapped,INFY -hemant_super_45,Hemant Super 45,HCLTECH,7229,NSE_EQ,EQUITY,HCL Technologies,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_super_45.csv,mapped,HCLTECH -hemant_super_45,Hemant Super 45,WIPRO,3787,NSE_EQ,EQUITY,Wipro,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_super_45.csv,mapped,WIPRO -hemant_super_45,Hemant Super 45,ABBOTINDIA,17903,NSE_EQ,EQUITY,Abbott,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_super_45.csv,mapped,ABBOTINDIA -hemant_super_45,Hemant Super 45,GLAXO,1153,NSE_EQ,EQUITY,GlaxoSmithKline Pharmaceuticals,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_super_45.csv,mapped,GLAXO -hemant_super_45,Hemant Super 45,SANOFI,1442,NSE_EQ,EQUITY,Sanofi,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_super_45.csv,mapped,SANOFI -hemant_super_45,Hemant Super 45,PFIZER,2643,NSE_EQ,EQUITY,Pfizer,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_super_45.csv,mapped,PFIZER -hemant_super_45,Hemant Super 45,PIDILITIND,2664,NSE_EQ,EQUITY,Pidilite Industries,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_super_45.csv,mapped,PIDILITIND -hemant_super_45,Hemant Super 45,GILLETTE,1576,NSE_EQ,EQUITY,Gillette,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_super_45.csv,mapped,GILLETTE -hemant_super_45,Hemant Super 45,NIFTYBEES,10576,NSE_EQ,EQUITY,Nippon Nifty 50 ETF (NIFTYBEES),EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_super_45.csv,mapped,NIFTYBEES -hemant_super_45,Hemant Super 45,BANKBEES,11439,NSE_EQ,EQUITY,Nippon Nifty Bank ETF (BANKBEES),EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_super_45.csv,mapped,BANKBEES -hemant_super_45,Hemant Super 45,BAJAJ-AUTO,16669,NSE_EQ,EQUITY,Bajaj Auto,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_super_45.csv,mapped,BAJAJ_AUTO -hemant_super_45,Hemant Super 45,ULTRACEMCO,11532,NSE_EQ,EQUITY,UltraTech Cement,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_super_45.csv,mapped,UTLTRACEMCO -hemant_super_45,Hemant Super 45,AMBUJACEM,1270,NSE_EQ,EQUITY,Ambuja Cements,EQ,C:\Users\Sunny\Desktop\Coding Practice\Algo Trading\Streamlit Scanner App\data\universes\hemant_super_45.csv,mapped,AMBUJACEM +hemant_super_45,Hemant Super 45,HDFCBANK,1333,NSE_EQ,EQUITY,HDFC Bank,EQ,data/universes/sources/hemant_super_45.csv,mapped,HDFCBANK +hemant_super_45,Hemant Super 45,ICICIBANK,4963,NSE_EQ,EQUITY,ICICI Bank,EQ,data/universes/sources/hemant_super_45.csv,mapped,ICICIBANK +hemant_super_45,Hemant Super 45,AXISBANK,5900,NSE_EQ,EQUITY,Axis Bank,EQ,data/universes/sources/hemant_super_45.csv,mapped,AXISBANK +hemant_super_45,Hemant Super 45,KOTAKBANK,1922,NSE_EQ,EQUITY,Kotak Bank,EQ,data/universes/sources/hemant_super_45.csv,mapped,KOTAKBANK +hemant_super_45,Hemant Super 45,BAJFINANCE,317,NSE_EQ,EQUITY,Bajaj Finance,EQ,data/universes/sources/hemant_super_45.csv,mapped,BAJFINANCE +hemant_super_45,Hemant Super 45,ICICIGI,21770,NSE_EQ,EQUITY,ICICI Lombard General Insurance,EQ,data/universes/sources/hemant_super_45.csv,mapped,ICICIGI +hemant_super_45,Hemant Super 45,HDFCLIFE,467,NSE_EQ,EQUITY,HDFC Life Insurance,EQ,data/universes/sources/hemant_super_45.csv,mapped,HDFCLIFE +hemant_super_45,Hemant Super 45,BAJAJFINSV,16675,NSE_EQ,EQUITY,Bajaj Finserv,EQ,data/universes/sources/hemant_super_45.csv,mapped,BAJAJFINSV +hemant_super_45,Hemant Super 45,ICICIPRULI,18652,NSE_EQ,EQUITY,ICICI Prudential Life Insurance,EQ,data/universes/sources/hemant_super_45.csv,mapped,ICICIPRULI +hemant_super_45,Hemant Super 45,HDFCAMC,4244,NSE_EQ,EQUITY,HDFC AMC,EQ,data/universes/sources/hemant_super_45.csv,mapped,HDFCAMC +hemant_super_45,Hemant Super 45,NAM-INDIA,357,NSE_EQ,EQUITY,Nippon Life India AMC,EQ,data/universes/sources/hemant_super_45.csv,mapped,NAM_INDIA +hemant_super_45,Hemant Super 45,PGHH,2535,NSE_EQ,EQUITY,P&G Hygiene and Health Care,EQ,data/universes/sources/hemant_super_45.csv,mapped,PGHH +hemant_super_45,Hemant Super 45,MARICO,4067,NSE_EQ,EQUITY,Marico,EQ,data/universes/sources/hemant_super_45.csv,mapped,MARICO +hemant_super_45,Hemant Super 45,COLPAL,15141,NSE_EQ,EQUITY,Colgate Palmolive,EQ,data/universes/sources/hemant_super_45.csv,mapped,COLPAL +hemant_super_45,Hemant Super 45,HINDUNILVR,1394,NSE_EQ,EQUITY,Hindustan Unilever,EQ,data/universes/sources/hemant_super_45.csv,mapped,HINDUNILVR +hemant_super_45,Hemant Super 45,BAJAJHLDNG,305,NSE_EQ,EQUITY,Bajaj Holdings & Investments,EQ,data/universes/sources/hemant_super_45.csv,mapped,BAJAJHLDNG +hemant_super_45,Hemant Super 45,DABUR,772,NSE_EQ,EQUITY,Dabur India,EQ,data/universes/sources/hemant_super_45.csv,mapped,DABUR +hemant_super_45,Hemant Super 45,NESTLEIND,17963,NSE_EQ,EQUITY,Nestle,EQ,data/universes/sources/hemant_super_45.csv,mapped,NESTLEIND +hemant_super_45,Hemant Super 45,ITC,1660,NSE_EQ,EQUITY,ITC,EQ,data/universes/sources/hemant_super_45.csv,mapped,ITC +hemant_super_45,Hemant Super 45,ASIANPAINT,236,NSE_EQ,EQUITY,Asian Paints,EQ,data/universes/sources/hemant_super_45.csv,mapped,ASIANPAINT +hemant_super_45,Hemant Super 45,BERGEPAINT,404,NSE_EQ,EQUITY,Berger Paints,EQ,data/universes/sources/hemant_super_45.csv,mapped,BERGEPAINT +hemant_super_45,Hemant Super 45,KANSAINER,1196,NSE_EQ,EQUITY,Kansai Nerolac Paints,EQ,data/universes/sources/hemant_super_45.csv,mapped,KANSAINER +hemant_super_45,Hemant Super 45,AKZOINDIA,,,,,,data/universes/sources/hemant_super_45.csv,missing_security_id,AKZOINDIA +hemant_super_45,Hemant Super 45,TITAN,3506,NSE_EQ,EQUITY,Titan,EQ,data/universes/sources/hemant_super_45.csv,mapped,TITAN +hemant_super_45,Hemant Super 45,BATAINDIA,371,NSE_EQ,EQUITY,Bata,EQ,data/universes/sources/hemant_super_45.csv,mapped,BATAINDIA +hemant_super_45,Hemant Super 45,PAGEIND,14413,NSE_EQ,EQUITY,Page Industries,EQ,data/universes/sources/hemant_super_45.csv,mapped,PAGEIND +hemant_super_45,Hemant Super 45,WHIRLPOOL,18011,NSE_EQ,EQUITY,Whirlpool,EQ,data/universes/sources/hemant_super_45.csv,mapped,WHIRLPOOL +hemant_super_45,Hemant Super 45,HAVELLS,9819,NSE_EQ,EQUITY,Havells,EQ,data/universes/sources/hemant_super_45.csv,mapped,HAVELLS +hemant_super_45,Hemant Super 45,TCS,11536,NSE_EQ,EQUITY,Tata Consultancy Services,EQ,data/universes/sources/hemant_super_45.csv,mapped,TCS +hemant_super_45,Hemant Super 45,INFY,1594,NSE_EQ,EQUITY,Infosys,EQ,data/universes/sources/hemant_super_45.csv,mapped,INFY +hemant_super_45,Hemant Super 45,HCLTECH,7229,NSE_EQ,EQUITY,HCL Technologies,EQ,data/universes/sources/hemant_super_45.csv,mapped,HCLTECH +hemant_super_45,Hemant Super 45,WIPRO,3787,NSE_EQ,EQUITY,Wipro,EQ,data/universes/sources/hemant_super_45.csv,mapped,WIPRO +hemant_super_45,Hemant Super 45,ABBOTINDIA,17903,NSE_EQ,EQUITY,Abbott,EQ,data/universes/sources/hemant_super_45.csv,mapped,ABBOTINDIA +hemant_super_45,Hemant Super 45,GLAXO,1153,NSE_EQ,EQUITY,GlaxoSmithKline Pharmaceuticals,EQ,data/universes/sources/hemant_super_45.csv,mapped,GLAXO +hemant_super_45,Hemant Super 45,SANOFI,1442,NSE_EQ,EQUITY,Sanofi,EQ,data/universes/sources/hemant_super_45.csv,mapped,SANOFI +hemant_super_45,Hemant Super 45,PFIZER,2643,NSE_EQ,EQUITY,Pfizer,EQ,data/universes/sources/hemant_super_45.csv,mapped,PFIZER +hemant_super_45,Hemant Super 45,PIDILITIND,2664,NSE_EQ,EQUITY,Pidilite Industries,EQ,data/universes/sources/hemant_super_45.csv,mapped,PIDILITIND +hemant_super_45,Hemant Super 45,GILLETTE,1576,NSE_EQ,EQUITY,Gillette,EQ,data/universes/sources/hemant_super_45.csv,mapped,GILLETTE +hemant_super_45,Hemant Super 45,NIFTYBEES,10576,NSE_EQ,EQUITY,Nippon Nifty 50 ETF (NIFTYBEES),EQ,data/universes/sources/hemant_super_45.csv,mapped,NIFTYBEES +hemant_super_45,Hemant Super 45,BANKBEES,11439,NSE_EQ,EQUITY,Nippon Nifty Bank ETF (BANKBEES),EQ,data/universes/sources/hemant_super_45.csv,mapped,BANKBEES +hemant_super_45,Hemant Super 45,BAJAJ-AUTO,16669,NSE_EQ,EQUITY,Bajaj Auto,EQ,data/universes/sources/hemant_super_45.csv,mapped,BAJAJ_AUTO +hemant_super_45,Hemant Super 45,ULTRACEMCO,11532,NSE_EQ,EQUITY,UltraTech Cement,EQ,data/universes/sources/hemant_super_45.csv,mapped,UTLTRACEMCO +hemant_super_45,Hemant Super 45,AMBUJACEM,1270,NSE_EQ,EQUITY,Ambuja Cements,EQ,data/universes/sources/hemant_super_45.csv,mapped,AMBUJACEM diff --git a/data/universes/sources/hemant_good_200.csv b/data/universes/sources/hemant_good_200.csv new file mode 100644 index 0000000..9ed0f01 --- /dev/null +++ b/data/universes/sources/hemant_good_200.csv @@ -0,0 +1,263 @@ +symbol +RRKABEL +CLEAN +VGUARD +BEML +INGERRAND +VESUVIUS +HAPPYFORGE +KPIGREEN +INTELLECT +FDC +LGBBROSLTD +SUVENPHAR +RAILTEL +BIKAJI +DHANUKA +TITAGARH +SATIN +NEWGEN +MASFIN +MUTHOOTMF +ANANDRATHI +KSCL +GALAXYSURF +JYOTICNC +GAEL +POLYMED +SHARDAMOTR +TECHNOE +KFINTECH +VOLTAMP +SURYAROSNI +CONCORDBIO +HBLENGINE +TRITURBINE +CELLO +ROUTE +NORTHARC +KAJARIACER +MOIL +HOMEFIRST +SANOFI +AFFLE +CMSINFO +MARKSANS +GRINDWELL +JYOTHYLAB +ELECON +RITES +JWL +WSTCSTPAPR +SHAKTIPUMP +ACE +GPPL +NESCO +VINATIORGA +GRSE +IMFA +IEX +TIMKEN +HINDCOPPER +TCI +FINEORG +USHAMART +SPLPETRO +ENGINERSIN +LALPATHLAB +SHAREINDIA +MAHAPEXLTD +AKZOINDIA +CAMS +LINDEINDIA +ZFCVINDIA +KIRLOSBROS +KRBL +IGIL +DBCORP +ALIVUS +CARBORUNIV +SANDUMA +INDIAMART +GILLETTE +SHRIPISTON +AVANTIFEED +GVT&D +FORCEMOT +MEDANTA +SUMICHEM +HSCL +CAPLIPOINT +ECLERX +CROMPTON +TANLA +BAYERCROP +ASTRAL +RATNAMANI +HONAUT +SKFINDIA +FINCABLES +GANESHHOUC +BLUESTARCO +SUNDRMFAST +CSBBANK +3MINDIA +BDL +NBCC +BSOFT +SONACOMS +GHCL +BASF +PFIZER +KANSAINER +MSUMI +CYIENT +KEI +JBCHEPHARM +TATATECH +ZENSARTECH +CRISIL +PAGEIND +DEEPAKNTR +JSFB +EIHOTEL +APTUS +PGHH +MAHSEAMLES +BSE +KPITTECH +COFORGE +EMAMILTD +STARHEALTH +ENDURANCE +UTIAMC +APARINDS +GPIL +TATAELXSI +533095 +EIDPARRY +TIINDIA +COCHINSHIP +KPRMILL +CIEINDIA +CANFINHOME +GLAXO +AADHARHFC +CREDITACC +AJANTPHARM +ABSLAMC +CASTROLIND +CGPOWER +ARE&M +UJJIVANSFB +SCHAEFFLER +WAAREEENER +SUPREMEIND +FIVESTAR +AIAENG +GODFRYPHLP +MGL +MAXHEALTH +NAVA +IIFL +360ONE +TVSHLTD +BERGEPAINT +ESCORTS +HEXT +REDINGTON +GUJGASLTD +IRCTC +LTTS +PERSISTENT +NAM-INDIA +ABBOTINDIA +GSPL +HAVELLS +COLPAL +UNITDSPR +IGL +LLOYDSME +MARICO +CHAMBLFERT +COROMANDEL +MPHASIS +IREDA +PIIND +SUNTV +MRF +DABUR +POLYCAB +NATCOPHARM +ABB +KARURVYSYA +MANKIND +CUMMINSIND +BAJAJHFL +MANAPPURAM +PIDILITIND +BOSCHLTD +SBICARD +DIVISLAB +CHOLAHLDNG +J&KBANK +ALKEM +SIEMENS +OFSS +HDFCAMC +GESHIP +ACC +ICICIGI +OBEROIRLTY +VBL +DMART +MAZDOCK +LUPIN +NESTLEIND +PETRONET +NATIONALUM +AIIL +CHOLAFIN +HEROMOTOCO +ASIANPAINT +EICHERMOT +ZYDUSLIFE +LTIM +MUTHOOTFIN +CIPLA +BEL +LICHSGFIN +MAHABANK +DRREDDY +HYUNDAI +NMDC +INDUSINDBK +GICRE +BAJAJ-AUTO +SHRIRAMFIN +BAJAJFINSV +HAL +HINDUNILVR +INDIANB +SUNPHARMA +WIPRO +MARUTI +RECLTD +BAJFINANCE +UNIONBANK +CANBK +HCLTECH +KOTAKBANK +ITC +BANKBARODA +PFC +INFY +AXISBANK +COALINDIA +LICI +TCS +ICICIBANK +HDFCBANK +SBIN +BLS +SUZLON diff --git a/data/universes/sources/hemant_good_45.csv b/data/universes/sources/hemant_good_45.csv new file mode 100644 index 0000000..fc3fd48 --- /dev/null +++ b/data/universes/sources/hemant_good_45.csv @@ -0,0 +1,44 @@ +symbol +3MINDIA +PGHL +ASTRAZEN +AVANTIFEED +BAYERCROP +BOSCHLTD +CAPLIPOINT +KAJARIACER +CERA +DIXON +TVSMOTOR +HEROMOTOCO +EICHERMOT +EQUITAS +ERIS +KEI +FINCABLES +FINEORG +GODREJCP +HONAUT +ISEC +JCHAC +KANSAINER +LALPATHLAB +MCDOWELL_N +MCX +MOTILALOFS +OFSS +POLYCAB +RADICO +RAJESHEXPO +RELAXO +SFL +SIS +SUNTV +SYMPHONY +TASTYBITE +TEAMLEASE +TTKPRESTIG +UJJIVANSFB +VGUARD +VINATIORGA +VIPIND diff --git a/data/universes/sources/hemant_super_45.csv b/data/universes/sources/hemant_super_45.csv new file mode 100644 index 0000000..655b248 --- /dev/null +++ b/data/universes/sources/hemant_super_45.csv @@ -0,0 +1,44 @@ +symbol +HDFCBANK +ICICIBANK +AXISBANK +KOTAKBANK +BAJFINANCE +ICICIGI +HDFCLIFE +BAJAJFINSV +ICICIPRULI +HDFCAMC +NAM_INDIA +PGHH +MARICO +COLPAL +HINDUNILVR +BAJAJHLDNG +DABUR +NESTLEIND +ITC +ASIANPAINT +BERGEPAINT +KANSAINER +AKZOINDIA +TITAN +BATAINDIA +PAGEIND +WHIRLPOOL +HAVELLS +TCS +INFY +HCLTECH +WIPRO +ABBOTINDIA +GLAXO +SANOFI +PFIZER +PIDILITIND +GILLETTE +NIFTYBEES +BANKBEES +BAJAJ_AUTO +UTLTRACEMCO +AMBUJACEM diff --git a/docs/architecture/components/universe-management.md b/docs/architecture/components/universe-management.md index 6884664..e8ca19c 100644 --- a/docs/architecture/components/universe-management.md +++ b/docs/architecture/components/universe-management.md @@ -33,7 +33,7 @@ flowchart TD N100["NIFTY 100/500 CSV"] --> IDX["build_index_universe"] MASTER["Dhan instrument master"] --> EQ["build_equity_lookup"] MASTER --> FNO["build_fno_universe"] - HEM["data/universes/hemant_*.csv"] --> SYM["build_symbol_list_universe"] + HEM["data/universes/sources/hemant_*.csv"] --> SYM["build_symbol_list_universe"] EQ --> IDX & FNO & SYM IDX & FNO & SYM --> FIN["finalize_universe → uniform CSV"] end @@ -46,7 +46,7 @@ flowchart TD ## 3. Public interface ### Builder -`UNIVERSE_CONFIG` (the single registry of every universe key) · `refresh_universe_files(keys=None, ...)` (the orchestrator: routes each key to `fno` / `union_of` / `source_file` / index branch) · `load_instrument_master` · `build_equity_lookup` · `build_index_universe` · `build_fno_universe` · `build_symbol_list_universe` · `finalize_universe` · `download_csv` (capped at `MAX_DOWNLOAD_BYTES=50MB`) · `prune_old_instrument_master_snapshots` · `universe_file_path` · `strip_fno_suffix` / `normalize_manual_symbol`. +`UNIVERSE_CONFIG` (the single registry of every universe key) · `HEMANT_SOURCE_FILES` (pinned inputs, resolved from `UNIVERSE_SOURCE_DIR`) · `repo_relative_source_label` (keeps the committed `source` column machine-independent) · `refresh_universe_files(keys=None, ...)` (the orchestrator: routes each key to `fno` / `union_of` / `source_file` / index branch) · `load_instrument_master` · `build_equity_lookup` · `build_index_universe` · `build_fno_universe` · `build_symbol_list_universe` · `finalize_universe` · `download_csv` (capped at `MAX_DOWNLOAD_BYTES=50MB`) · `prune_old_instrument_master_snapshots` · `universe_file_path` · `strip_fno_suffix` / `normalize_manual_symbol`. ### Loader `REQUIRED_UNIVERSE_COLUMNS = [symbol, security_id, exchange_segment, instrument_type]` · `load_universe(key, dir)` · `mapped_only(df)` · `list_known_universes()` · `universe_status(key)` / `all_universe_statuses()` · `union_of_mapped_universes(dir)`. @@ -62,7 +62,8 @@ flowchart TD | **Keep unmapped rows + `mapping_status`** | A symbol that didn't resolve stays visible for debugging in the status table rather than silently vanishing. | Drop unmapped — invisible data gaps. | | **One Dhan master snapshot per refresh, prune the rest** | Write-then-prune ordering guarantees a failed download never deletes the last usable master. | Prune-then-write — could leave zero snapshots. | | **Dedupe union by `security_id`, not symbol** | The same security id is always the same Dhan instrument; symbol strings can collide. | Dedupe by symbol — possible double fetch. | -| **Local Hemant lists, not remote** | No stable public CSV endpoint; pinned source lists live beside generated files. | Hardcode in Python — harder to edit. | +| **Local Hemant lists, not remote** | No stable public CSV endpoint, so the pinned lists are committed CSVs under `data/universes/sources/`. | Hardcode in Python — harder to edit. | +| **Sources anchor to `PROJECT_ROOT`, outputs to `DATA_DIR`** (DEPLOY-005) | Pinned lists are *code* and ship inside the image; generated universes are deployment state and belong on the data volume. When both followed `DATA_DIR`, a container looked for its inputs on an empty volume and `refresh_universe_files()` raised `FileNotFoundError`, taking the daily-scan cron with it. | One directory for both — simpler, but unbuildable in any deployment that sets `DATA_DIR`. | | **`source_symbol` retained on custom universes** | Preserves the original Google-Doc token (e.g. `UTLTRACEMCO`) after alias mapping to `ULTRACEMCO`. | Overwrite symbol — loses provenance. | | **Legacy `SEM_*` column normalization** | Accept old and new Dhan master schemas via `LEGACY_COLUMN_CANDIDATES`. | Hard-code current names — breaks on old files. | | **Don't alphabetize custom lists** | Pinned-list order may be meaningful to the reviewer. | Always sort — loses intent. | diff --git a/docs/operations.md b/docs/operations.md index 75a602b..bc52744 100644 --- a/docs/operations.md +++ b/docs/operations.md @@ -962,7 +962,9 @@ The disk attaches to `scanner-web` only (Render disks are single-attach) and is mounted at `DATA_DIR`. Both default to `/data`; change them together to relocate the persistent path. The disk starts empty, so after the first deploy open a **Render Shell** on `scanner-web` and seed the universe CSVs the UI needs -for screener selection: +for screener selection. This works on an empty disk because the pinned Hemant +symbol lists ship inside the image under `data/universes/sources/` and are +resolved relative to the code, not to `DATA_DIR` (DEPLOY-005): ```bash python -c "from backend.universe_builder import refresh_universe_files; refresh_universe_files()" diff --git a/render.yaml b/render.yaml index 79b6d54..7451e21 100644 --- a/render.yaml +++ b/render.yaml @@ -93,9 +93,13 @@ services: # Adjust to taste; Render cron schedules are evaluated in UTC. schedule: "30 13 * * 1-5" # The cron runs on an ephemeral filesystem with no persistent disk, so it - # first regenerates the universe CSVs (the nifty/fno lists are downloaded, - # not baked into the image), then runs the daily scan, which fetches candles - # fresh from Dhan and writes results to the shared Postgres above. + # first regenerates the universe CSVs, then runs the daily scan, which + # fetches candles fresh from Dhan and writes results to the shared Postgres + # above. The NIFTY/F&O lists are downloaded; the Hemant lists are rebuilt + # from the pinned sources baked into the image at + # /app/data/universes/sources/. Those sources deliberately do NOT follow + # DATA_DIR (DEPLOY-005) — when they did, this ephemeral cron looked for them + # on a volume it does not have and the whole `&&` chain died before the scan. dockerCommand: >- sh -c "python -c 'from backend.universe_builder import refresh_universe_files; refresh_universe_files()' && python -m backend.jobs.run_daily_scan --config config/daily_scans.yaml" envVars: diff --git a/tests/test_universe_builder.py b/tests/test_universe_builder.py index b4fb0ff..39810fd 100644 --- a/tests/test_universe_builder.py +++ b/tests/test_universe_builder.py @@ -2,12 +2,20 @@ from __future__ import annotations +import json +import os +import subprocess +import sys +import tempfile +import textwrap from datetime import date +from pathlib import Path import pandas as pd import pytest from backend import universe_builder +from backend.config import PROJECT_ROOT, UNIVERSE_SOURCE_DIR from backend.universe_builder import ( HEMANT_SOURCE_FILES, build_equity_lookup, @@ -18,6 +26,7 @@ load_symbol_list_csv, normalize_instrument_master_columns, refresh_universe_files, + repo_relative_source_label, ) @@ -222,8 +231,11 @@ def test_load_symbol_list_csv_prefers_source_symbol_from_generated_csv(tmp_path) def test_hemant_source_csvs_are_pinned_from_google_doc_snapshot(): - assert HEMANT_SOURCE_FILES["hemant_super_45"].parent.name == "universes" - assert HEMANT_SOURCE_FILES["hemant_super_45"].parent.parent.name == "data" + # DEPLOY-005 moved the pinned lists into their own `sources/` folder so a + # generated universe is never also its own input. + assert HEMANT_SOURCE_FILES["hemant_super_45"].parent.name == "sources" + assert HEMANT_SOURCE_FILES["hemant_super_45"].parent.parent.name == "universes" + assert HEMANT_SOURCE_FILES["hemant_super_45"].parent.parent.parent.name == "data" for universe_key, source_path in HEMANT_SOURCE_FILES.items(): config = universe_builder.UNIVERSE_CONFIG[universe_key] assert config["source_file"] == str(source_path) @@ -539,3 +551,96 @@ def test_union_of_mapped_universes_dedupes_by_security_id(tmp_path): assert "BADMAP" not in symbols # And RELIANCE should appear exactly once even though it was in two CSVs. assert int((union["symbol"] == "RELIANCE").sum()) == 1 + + +def test_pinned_source_dir_is_anchored_to_the_repo_not_the_data_volume(): + """The pinned lists must not live under the DATA_DIR-driven output folder. + + Beginner note (DEPLOY-005): + `UNIVERSE_DIR` follows the `DATA_DIR` environment variable so a deployment + can point generated files at a persistent volume. `UNIVERSE_SOURCE_DIR` must + NOT, because the pinned lists ship inside the image. If the two ever share a + root again, a container that sets DATA_DIR would look for its inputs on an + empty volume. + """ + assert UNIVERSE_SOURCE_DIR.is_relative_to(PROJECT_ROOT) + for source_path in HEMANT_SOURCE_FILES.values(): + assert source_path.is_relative_to(UNIVERSE_SOURCE_DIR) + assert source_path.is_file(), f"pinned source list is missing: {source_path}" + + +def test_refresh_reads_pinned_sources_when_data_dir_points_elsewhere(): + """Rebuild a Hemant universe in a subprocess with a relocated DATA_DIR. + + Beginner note: + This regression has to run in a subprocess. `DATA_DIR` is read once, at + import time, to build the module-level path constants, so monkeypatching the + environment inside this already-imported process would prove nothing. A + fresh interpreter is exactly what Render's cron and `docker compose` give + us, so that is what we reproduce. + + Before DEPLOY-005 this raised + ``FileNotFoundError: Universe source CSV not found: /universes/ + hemant_super_45.csv`` - which, in the Render blueprint's + ``refresh && run_daily_scan`` command, meant the daily scan never ran. + """ + script = textwrap.dedent( + """ + import json, sys, tempfile + from pathlib import Path + + import pandas as pd + + from backend.universe_builder import ( + CANONICAL_INSTRUMENT_COLUMNS, + refresh_universe_files, + ) + + # A structurally valid one-row Dhan master keeps this offline. + master = pd.DataFrame( + [["NSE", "E", "11536", "EQUITY", "TCS", "TCS", "Tata Consultancy", "EQ"]], + columns=CANONICAL_INSTRUMENT_COLUMNS, + ) + with tempfile.TemporaryDirectory() as out_dir: + written = refresh_universe_files( + universe_keys=["hemant_super_45"], + universe_dir=Path(out_dir), + instrument_master=master, + ) + frame = pd.read_csv(written["hemant_super_45"], dtype=str).fillna("") + print(json.dumps({"rows": len(frame), "source": frame["source"].iloc[0]})) + """ + ) + + repo_root = Path(universe_builder.__file__).resolve().parents[1] + env = dict(os.environ) + # The exact shape of the production bug: generated data is redirected to a + # volume that does not contain the pinned source lists. + with tempfile.TemporaryDirectory() as relocated: + env["DATA_DIR"] = str(Path(relocated) / "volume") + env["PYTHONPATH"] = str(repo_root) + completed = subprocess.run( + [sys.executable, "-c", script], + capture_output=True, + text=True, + env=env, + cwd=relocated, + check=False, + ) + + assert completed.returncode == 0, completed.stderr + payload = json.loads(completed.stdout.strip().splitlines()[-1]) + assert payload["rows"] == 43 + # And the committed `source` label stays machine-independent. + assert payload["source"] == "data/universes/sources/hemant_super_45.csv" + + +def test_repo_relative_source_label_never_leaks_an_absolute_path(tmp_path): + """Rows written into a committed CSV must not carry a developer's home dir.""" + inside = HEMANT_SOURCE_FILES["hemant_good_45"] + assert repo_relative_source_label(inside) == "data/universes/sources/hemant_good_45.csv" + + # A path outside the repository degrades to the bare file name rather than + # embedding somewhere unrelated on the machine. + outside = tmp_path / "somebody_elses_list.csv" + assert repo_relative_source_label(outside) == "somebody_elses_list.csv"