Changelog

All notable changes to nepse-client will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[Unreleased]

Planned features for future releases:

  • WebSocket support for real-time data streaming

  • Advanced caching layer with TTL support

  • CLI tool for command-line queries

  • Data export utilities (CSV, Excel, JSON)

  • Django/Flask integration packages

  • Interactive Jupyter notebook examples

  • Prometheus metrics export

  • Request rate limiting with automatic backoff

[1.0.0] - 2024-01-15

Initial release of nepse-client with complete NEPSE API coverage.

Added

  • Core Functionality

    • Synchronous client (NepseClient) for blocking operations

    • Asynchronous client (AsyncNepseClient) for concurrent operations

    • Automatic token management with refresh logic

    • Dummy ID management for POST request payloads

  • API Coverage

    • Market status and summary endpoints

    • Company information and details

    • Historical price and volume data

    • Floor sheet (trading) data with pagination

    • Market depth data

    • Top performers (gainers, losers, turnover)

    • News and announcements

    • Holiday lists

    • Debenture and bond information

    • NEPSE indices and sub-indices

  • Error Handling

    • Comprehensive exception hierarchy

    • Automatic retry logic with exponential backoff

    • Network error handling

    • Rate limiting detection

    • TLS verification controls

  • Developer Experience

    • Full type hints for all public APIs

    • Context manager support (with and async with)

    • Progress bars for long-running operations

    • Configurable logging

    • Custom timeout settings

  • Documentation

    • Complete Sphinx documentation

    • API reference with examples

    • Quickstart guide

    • Installation instructions

    • Usage examples (basic, async, advanced)

  • Testing

    • Comprehensive test suite with pytest

    • Unit tests for all modules

    • Integration tests

    • Test coverage >80%

  • CI/CD

    • GitHub Actions workflows for testing

    • Automated PyPI publishing

    • Documentation auto-deployment

    • Pre-commit hooks configuration

  • Code Quality

    • Black code formatting

    • isort import sorting

    • flake8 linting

    • mypy type checking

    • bandit security scanning

[0.9.0] - 2024-01-10 [BETA]

Beta release for testing and feedback.

Added

  • Basic synchronous client implementation

  • Core API endpoints

  • Token management

  • Basic error handling

  • Initial documentation

Changed

  • Improved API response parsing

  • Enhanced error messages

  • Better logging

Fixed

  • Token refresh issues

  • Date parsing errors

  • TLS verification bugs

[0.5.0] - 2024-01-05 [ALPHA]

Alpha release for early adopters.

Added

  • Proof of concept implementation

  • Basic market data endpoints

  • Simple authentication flow

Known Issues

  • Limited error handling

  • No async support

  • Incomplete documentation

Migration Guides

Migrating to 1.0.0 from 0.x

Version 1.0.0 introduces breaking changes. Follow this guide to migrate:

1. Import Changes

# Old (0.x)
from nepse_client import Nepse

# New (1.0.0)
from nepse_client import NepseClient

2. Client Initialization

# Old (0.x)
client = Nepse()

# New (1.0.0)
client = NepseClient()

3. Exception Handling

# Old (0.x)
from nepse_client.errors import NepseException

# New (1.0.0)
from nepse_client import NepseError

4. Async Support

# New in 1.0.0
from nepse_client import AsyncNepseClient

async def main():
   async with AsyncNepseClient() as client:
      data = await client.getMarketStatus()

Deprecation Warnings

The following features are deprecated and will be removed in future versions:

None currently.

Version History

Support Policy

Stable Releases (1.x.x)

  • Security updates: 2 years

  • Bug fixes: 1 year

  • Feature updates: 6 months

Beta Releases (0.9.x)

  • Limited support

  • Migration path provided

Alpha Releases (0.x.x)

  • No support guarantee

  • Breaking changes expected

Contributing

We welcome contributions! Please see our Contributing Guide for details.

To report bugs or suggest features:

Release Process

Our release process:

  1. Development - Features developed in feature branches

  2. Testing - Comprehensive testing on develop branch

  3. Beta Release - Released as 0.9.x for testing

  4. Stable Release - Tagged as 1.x.x after validation

  5. Documentation - Auto-deployed to Read the Docs

  6. PyPI - Auto-published via GitHub Actions

Semantic Versioning

We follow Semantic Versioning:

  • MAJOR (1.x.x) - Breaking changes

  • MINOR (x.1.x) - New features, backwards compatible

  • PATCH (x.x.1) - Bug fixes, backwards compatible