# polymorphisma/nepse_scraper architecture

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

- Interactive diagram: https://gitdiagram.com/polymorphisma/nepse_scraper
- Repository: https://github.com/polymorphisma/nepse_scraper

## Overview

Nepse Scraper is a Python client for retrieving NEPSE market and company data. A user calls the public NepseScraper API; its market-data methods use a session to authenticate and make requests, then return decoded API responses. The client covers live, daily, historical, company, index, broker, and market-summary data, and supports registered custom endpoints. The session parses tokens and calculates request payload IDs with dedicated helpers. The feature areas are documented in the README; sampled client excerpts are incomplete, so internal wiring beyond the shown session calls is not inferred.

Main entry points: [`nepse_scraper/core.py`](https://github.com/polymorphisma/nepse_scraper/blob/main/nepse_scraper/core.py) (API session), [`nepse_scraper/client.py`](https://github.com/polymorphisma/nepse_scraper/blob/main/nepse_scraper/client.py) (NepseScraper), [`nepse_scraper/endpoints.py`](https://github.com/polymorphisma/nepse_scraper/blob/main/nepse_scraper/endpoints.py) (Endpoint catalog), [`nepse_scraper/auth.py`](https://github.com/polymorphisma/nepse_scraper/blob/main/nepse_scraper/auth.py) (Token parser)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_client["Client API"]
  node_scraper["NepseScraper<br/>[client.py]"]
  node_endpoint_catalog["Endpoint catalog<br/>[endpoints.py]"]
  node_custom_endpoints["Custom endpoints<br/>[client.py]"]
end

subgraph group_market["Market Data"]
  node_market_status["Market status<br/>[client.py]"]
  node_live_data["Live data<br/>[client.py]"]
  node_daily_data["Daily data<br/>[client.py]"]
  node_historical_data["Historical data<br/>[client.py]"]
  node_company_data["Company details<br/>[client.py]"]
  node_market_rankings["Top stocks<br/>[client.py]"]
  node_market_summaries["Market summaries<br/>[client.py]"]
end

subgraph group_transport["Auth And Transport"]
  node_nepse_session["API session<br/>[core.py]"]
  node_token_parser["Token parser<br/>[auth.py]"]
  node_payload_parser["Payload parser<br/>[auth.py]"]
end

node_user(("Library user"))
node_nepse_api{{"NEPSE API"}}

node_user -->|"calls"| node_scraper
node_scraper -->|"reads"| node_endpoint_catalog
node_scraper -->|"initializes"| node_nepse_session
node_custom_endpoints -->|"calls"| node_nepse_session
node_market_status -->|"requests"| node_nepse_session
node_live_data -->|"requests"| node_nepse_session
node_daily_data -->|"requests"| node_nepse_session
node_historical_data -->|"requests"| node_nepse_session
node_company_data -->|"requests"| node_nepse_session
node_market_rankings -->|"requests"| node_nepse_session
node_market_summaries -->|"requests"| node_nepse_session
node_nepse_session -->|"reads"| node_endpoint_catalog
node_nepse_session -->|"parses tokens"| node_token_parser
node_nepse_session -->|"calculates IDs"| node_payload_parser
node_nepse_session -->|"sends requests"| node_nepse_api
node_nepse_api -->|"returns responses"| node_nepse_session

click node_scraper "https://github.com/polymorphisma/nepse_scraper/blob/main/nepse_scraper/client.py"
click node_endpoint_catalog "https://github.com/polymorphisma/nepse_scraper/blob/main/nepse_scraper/endpoints.py"
click node_custom_endpoints "https://github.com/polymorphisma/nepse_scraper/blob/main/nepse_scraper/client.py"
click node_market_status "https://github.com/polymorphisma/nepse_scraper/blob/main/nepse_scraper/client.py"
click node_live_data "https://github.com/polymorphisma/nepse_scraper/blob/main/nepse_scraper/client.py"
click node_daily_data "https://github.com/polymorphisma/nepse_scraper/blob/main/nepse_scraper/client.py"
click node_historical_data "https://github.com/polymorphisma/nepse_scraper/blob/main/nepse_scraper/client.py"
click node_company_data "https://github.com/polymorphisma/nepse_scraper/blob/main/nepse_scraper/client.py"
click node_market_rankings "https://github.com/polymorphisma/nepse_scraper/blob/main/nepse_scraper/client.py"
click node_market_summaries "https://github.com/polymorphisma/nepse_scraper/blob/main/nepse_scraper/client.py"
click node_nepse_session "https://github.com/polymorphisma/nepse_scraper/blob/main/nepse_scraper/core.py"
click node_token_parser "https://github.com/polymorphisma/nepse_scraper/blob/main/nepse_scraper/auth.py"
click node_payload_parser "https://github.com/polymorphisma/nepse_scraper/blob/main/nepse_scraper/auth.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_scraper,node_endpoint_catalog,node_custom_endpoints,node_user toneBlue
class node_market_status,node_live_data,node_daily_data,node_historical_data,node_company_data,node_market_rankings,node_market_summaries toneAmber
class node_nepse_session,node_token_parser,node_payload_parser,node_nepse_api toneMint
```

## Components

### Client API

- [NepseScraper](https://github.com/polymorphisma/nepse_scraper/blob/main/nepse_scraper/client.py): `nepse_scraper/client.py`
- [Endpoint catalog](https://github.com/polymorphisma/nepse_scraper/blob/main/nepse_scraper/endpoints.py): `nepse_scraper/endpoints.py`
- [Custom endpoints](https://github.com/polymorphisma/nepse_scraper/blob/main/nepse_scraper/client.py): `nepse_scraper/client.py`

### Market Data

- [Market status](https://github.com/polymorphisma/nepse_scraper/blob/main/nepse_scraper/client.py): `nepse_scraper/client.py`
- [Live data](https://github.com/polymorphisma/nepse_scraper/blob/main/nepse_scraper/client.py): `nepse_scraper/client.py`
- [Daily data](https://github.com/polymorphisma/nepse_scraper/blob/main/nepse_scraper/client.py): `nepse_scraper/client.py`
- [Historical data](https://github.com/polymorphisma/nepse_scraper/blob/main/nepse_scraper/client.py): `nepse_scraper/client.py`
- [Company details](https://github.com/polymorphisma/nepse_scraper/blob/main/nepse_scraper/client.py): `nepse_scraper/client.py`
- [Top stocks](https://github.com/polymorphisma/nepse_scraper/blob/main/nepse_scraper/client.py): `nepse_scraper/client.py`
- [Market summaries](https://github.com/polymorphisma/nepse_scraper/blob/main/nepse_scraper/client.py): `nepse_scraper/client.py`

### Auth And Transport

- [API session](https://github.com/polymorphisma/nepse_scraper/blob/main/nepse_scraper/core.py): `nepse_scraper/core.py`
- [Token parser](https://github.com/polymorphisma/nepse_scraper/blob/main/nepse_scraper/auth.py): `nepse_scraper/auth.py`
- [Payload parser](https://github.com/polymorphisma/nepse_scraper/blob/main/nepse_scraper/auth.py): `nepse_scraper/auth.py`

### Other components

- **Library user**
- **NEPSE API**

## Connections

- Library user → NepseScraper: calls
- NepseScraper → Endpoint catalog: reads
- NepseScraper → API session: initializes
- Custom endpoints → API session: calls
- Market status → API session: requests
- Live data → API session: requests
- Daily data → API session: requests
- Historical data → API session: requests
- Company details → API session: requests
- Top stocks → API session: requests
- Market summaries → API session: requests
- API session → Endpoint catalog: reads
- API session → Token parser: parses tokens
- API session → Payload parser: calculates IDs
- API session → NEPSE API: sends requests
- NEPSE API → API session: returns responses
