# pratik141/nsedt architecture

> Architecture diagram of the GitHub repository pratik141/nsedt, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-11). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/pratik141/nsedt
- Repository: https://github.com/pratik141/nsedt

## Overview

Nsedt is a Python client for retrieving NSE equity, index, derivatives, and report data, returning JSON or pandas-oriented results. Users call the relevant package API; it builds NSE requests, fetches and formats responses, and returns data. The graph preserves the README’s major product areas. Source excerpts show key request and formatting paths, but several modules are only partly sampled, so unsampled internal links are omitted rather than inferred.

Main entry points: [`nsedt/utils/__init__.py`](https://github.com/pratik141/nsedt/blob/main/nsedt/utils/__init__.py) (HTTP Utilities), [`nsedt/resources/constants.py`](https://github.com/pratik141/nsedt/blob/main/nsedt/resources/constants.py) (Endpoint Constants), [`nsedt/derivatives/options.py`](https://github.com/pratik141/nsedt/blob/main/nsedt/derivatives/options.py) (Options Data), [`nsedt/indices.py`](https://github.com/pratik141/nsedt/blob/main/nsedt/indices.py) (Index History)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_market["Market Data"]
  node_equity["Equity Queries<br/>[equity.py]"]
  node_indices["Index History<br/>[indices.py]"]
end

subgraph group_derivatives["Derivatives"]
  node_deriv_api["Derivatives API<br/>[__init__.py]"]
  node_options["Options Data<br/>[options.py]"]
  node_futures["Futures Data<br/>[futures.py]"]
end

subgraph group_reports["Reports"]
  node_reports_api["Report Queries<br/>[reports.py]"]
end

subgraph group_shared["Shared Runtime"]
  node_utils["HTTP Utilities<br/>[__init__.py]"]
  node_format["Data Formatting<br/>[data_format.py]"]
  node_constants["Endpoint Constants<br/>[constants.py]"]
  node_symbols["Index Symbol Map<br/>[index_symbol.py]"]
  node_exceptions["Data Exceptions<br/>[exceptions.py]"]
end

node_user(("Python User"))
node_nse{{"NSE Service"}}

node_user -->|"requests equity data"| node_equity
node_user -->|"requests index prices"| node_indices
node_user -->|"requests derivatives"| node_deriv_api
node_user -->|"requests reports"| node_reports_api
node_equity -->|"fetches NSE data"| node_utils
node_equity -->|"uses endpoints"| node_constants
node_indices -->|"fetches NSE data"| node_utils
node_indices -->|"formats results"| node_format
node_indices -->|"uses endpoints"| node_constants
node_deriv_api -->|"fetches VIX data"| node_utils
node_deriv_api -->|"formats VIX data"| node_format
node_deriv_api -->|"uses endpoints"| node_constants
node_options -->|"fetches option data"| node_utils
node_options -->|"formats option data"| node_format
node_options -->|"raises range error"| node_exceptions
node_options -->|"uses endpoints"| node_constants
node_futures -->|"fetches futures data"| node_utils
node_futures -->|"formats futures data"| node_format
node_futures -->|"uses endpoints"| node_constants
node_reports_api -->|"fetches report files"| node_utils
node_reports_api -->|"uses report paths"| node_constants
node_utils -->|"sends HTTP requests"| node_nse
node_constants -->|"loads symbol map"| node_symbols

click node_equity "https://github.com/pratik141/nsedt/blob/main/nsedt/equity.py"
click node_indices "https://github.com/pratik141/nsedt/blob/main/nsedt/indices.py"
click node_deriv_api "https://github.com/pratik141/nsedt/blob/main/nsedt/derivatives/__init__.py"
click node_options "https://github.com/pratik141/nsedt/blob/main/nsedt/derivatives/options.py"
click node_futures "https://github.com/pratik141/nsedt/blob/main/nsedt/derivatives/futures.py"
click node_reports_api "https://github.com/pratik141/nsedt/blob/main/nsedt/reports.py"
click node_utils "https://github.com/pratik141/nsedt/blob/main/nsedt/utils/__init__.py"
click node_format "https://github.com/pratik141/nsedt/blob/main/nsedt/utils/data_format.py"
click node_constants "https://github.com/pratik141/nsedt/blob/main/nsedt/resources/constants.py"
click node_symbols "https://github.com/pratik141/nsedt/blob/main/nsedt/resources/index_symbol.py"
click node_exceptions "https://github.com/pratik141/nsedt/blob/main/nsedt/utils/exceptions.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_equity,node_indices,node_user toneBlue
class node_deriv_api,node_options,node_futures toneAmber
class node_reports_api toneMint
class node_utils,node_format,node_constants,node_symbols,node_exceptions toneRose
class node_nse toneIndigo
```

## Components

### Market Data

- [Equity Queries](https://github.com/pratik141/nsedt/blob/main/nsedt/equity.py): `nsedt/equity.py`
- [Index History](https://github.com/pratik141/nsedt/blob/main/nsedt/indices.py): `nsedt/indices.py`

### Derivatives

- [Derivatives API](https://github.com/pratik141/nsedt/blob/main/nsedt/derivatives/__init__.py): `nsedt/derivatives/__init__.py`
- [Options Data](https://github.com/pratik141/nsedt/blob/main/nsedt/derivatives/options.py): `nsedt/derivatives/options.py`
- [Futures Data](https://github.com/pratik141/nsedt/blob/main/nsedt/derivatives/futures.py): `nsedt/derivatives/futures.py`

### Reports

- [Report Queries](https://github.com/pratik141/nsedt/blob/main/nsedt/reports.py): `nsedt/reports.py`

### Shared Runtime

- [HTTP Utilities](https://github.com/pratik141/nsedt/blob/main/nsedt/utils/__init__.py): `nsedt/utils/__init__.py`
- [Data Formatting](https://github.com/pratik141/nsedt/blob/main/nsedt/utils/data_format.py): `nsedt/utils/data_format.py`
- [Endpoint Constants](https://github.com/pratik141/nsedt/blob/main/nsedt/resources/constants.py): `nsedt/resources/constants.py`
- [Index Symbol Map](https://github.com/pratik141/nsedt/blob/main/nsedt/resources/index_symbol.py): `nsedt/resources/index_symbol.py`
- [Data Exceptions](https://github.com/pratik141/nsedt/blob/main/nsedt/utils/exceptions.py): `nsedt/utils/exceptions.py`

### Other components

- **Python User**
- **NSE Service**

## Connections

- Python User → Equity Queries: requests equity data (evidence: `README.md`)
- Python User → Index History: requests index prices (evidence: `README.md`)
- Python User → Derivatives API: requests derivatives (evidence: `README.md`)
- Python User → Report Queries: requests reports (evidence: `README.md`)
- Equity Queries → HTTP Utilities: fetches NSE data (evidence: `nsedt/equity.py`)
- Equity Queries → Endpoint Constants: uses endpoints (evidence: `nsedt/equity.py`)
- Index History → HTTP Utilities: fetches NSE data (evidence: `nsedt/indices.py`)
- Index History → Data Formatting: formats results (evidence: `nsedt/indices.py`)
- Index History → Endpoint Constants: uses endpoints (evidence: `nsedt/indices.py`)
- Derivatives API → HTTP Utilities: fetches VIX data (evidence: `nsedt/derivatives/__init__.py`)
- Derivatives API → Data Formatting: formats VIX data (evidence: `nsedt/derivatives/__init__.py`)
- Derivatives API → Endpoint Constants: uses endpoints (evidence: `nsedt/derivatives/__init__.py`)
- Options Data → HTTP Utilities: fetches option data (evidence: `nsedt/derivatives/options.py`)
- Options Data → Data Formatting: formats option data (evidence: `nsedt/derivatives/options.py`)
- Options Data → Data Exceptions: raises range error (evidence: `nsedt/derivatives/options.py`)
- Options Data → Endpoint Constants: uses endpoints (evidence: `nsedt/derivatives/options.py`)
- Futures Data → HTTP Utilities: fetches futures data (evidence: `nsedt/derivatives/futures.py`)
- Futures Data → Data Formatting: formats futures data (evidence: `nsedt/derivatives/futures.py`)
- Futures Data → Endpoint Constants: uses endpoints (evidence: `nsedt/derivatives/futures.py`)
- Report Queries → HTTP Utilities: fetches report files (evidence: `nsedt/reports.py`)
- Report Queries → Endpoint Constants: uses report paths (evidence: `nsedt/reports.py`)
- HTTP Utilities → NSE Service: sends HTTP requests (evidence: `nsedt/utils/__init__.py`)
- Endpoint Constants → Index Symbol Map: loads symbol map (evidence: `nsedt/resources/constants.py`)
