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 (
withandasync 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:
Development - Features developed in feature branches
Testing - Comprehensive testing on develop branch
Beta Release - Released as 0.9.x for testing
Stable Release - Tagged as 1.x.x after validation
Documentation - Auto-deployed to Read the Docs
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