Add your description here
Project description
AD-BS Converter
A Python library for converting Gregorian calendar (AD) dates to Bikram Sambat (BS) dates used in Nepal.
Overview
This library provides functionality to convert dates from the Gregorian calendar (AD) to the Bikram Sambat (BS) calendar system, which is the official calendar of Nepal. The implementation uses a pre-defined lookup table for Nepali calendar data from 1970 BS (1913 AD) to 2082 BS (2026 AD) for accurate conversions.
Features
- Convert AD dates to BS dates
- Get formatted BS date in YYYY-MM-DD format
- Get Nepali month names
- Built-in validation for date ranges
- LRU caching for improved performance
Installation
pip install ad_bs_converter
Usage
Basic Conversion
from datetime import date
from ad_bs_converter import ADToBSConverter
# Create a converter with an AD date
ad_date = date(2023, 5, 15)
converter = ADToBSConverter(ad_date)
# Get the BS date
bs_date = converter.get_bs_date()
print(bs_date) # Output: 2080-2-1
# Get formatted date
formatted_date = converter.get_formatted()
print(formatted_date) # Output: 2080-2-1
# Get Nepali month name
month_name = converter.get_month_name()
print(month_name) # Output: Jestha
Cache Management
The library uses LRU caching to improve performance for repeated conversions.
# Configure cache size when creating a converter
converter = ADToBSConverter(date(2023, 5, 15), cache_size=256)
# Get cache information
cache_info = ADToBSConverter.get_cache_info()
print(cache_info)
# Clear the cache if needed
ADToBSConverter.clear_cache()
Error Handling
The library provides specific error handling for date range validation:
from datetime import date
from ad_bs_converter import ADToBSConverter
from ad_bs_converter.exceptions import ADDateOutOfBoundsError
try:
# Try with a date outside the supported range
converter = ADToBSConverter(date(1900, 1, 1))
except ADDateOutOfBoundsError as e:
print(f"Error: {e}")
Supported Date Range
The converter supports AD dates from approximately 1913 to 2026, corresponding to BS dates from 1970 to 2082.
Documentation
For more detailed documentation including:
- API reference
- Implementation details
- Calendar data sources
Please refer to the github link Aayush Dip Giri.
License
This project is licensed under the MIT License - see the LICENSE file for details.
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ad_bs_converter-1.2.0.tar.gz.
File metadata
- Download URL: ad_bs_converter-1.2.0.tar.gz
- Upload date:
- Size: 8.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f3503c492d1786e6c3f3cf086a0c0d6b977939761be93a0867af8dac4286ed63
|
|
| MD5 |
c66ac57a0865c5f513b0b28d36f419f4
|
|
| BLAKE2b-256 |
8b96ec246c43026d603223cad7d742f86b69204a91b0a1ee9750f3978d9a7dd4
|
File details
Details for the file ad_bs_converter-1.2.0-py3-none-any.whl.
File metadata
- Download URL: ad_bs_converter-1.2.0-py3-none-any.whl
- Upload date:
- Size: 8.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
118e994ccefe5966cfc1bfa6b56d624ccb8a1f7e0fe6471fc7eb1e95bea5662a
|
|
| MD5 |
ae154b41c480c74e42b1740f8767468e
|
|
| BLAKE2b-256 |
268e59c421683e2a1ca59a72bde88ab837861d80d95b995cc8efdfc0c4b5819b
|