A lightweight Python package for retrieving and using foreign exchange rates and convert currencies
Project description
Python Currency Exchange Library
Currency Exchange Rate Library is a lightweight Python package for retrieving and using foreign exchange rates. It leverages the Exchange API by Fawaz Ahmed to provide up-to-date and historical exchange rates in a simple, developer-friendly manner.
Features:
- Real-Time Exchange Rates: Fetch the latest exchange rates for any supported currency pair.
- Historical Data: Retrieve exchange rates for any given date.
- Easy Integration: Simple and intuitive API for seamless integration.
- Case-insensitive currency codes support
- Developed with Asynchronous approach with AsyncIO and AIOHTTP
- High Accuracy: Powered by the reliable Exchange API.
- Open Source: Licensed under MIT for community contributions and customizations.
Installation
pip3 install pyxrate
Quick Start
from currency_exchange import converter
# Initialize the library
currency_client = converter.CurrencyConverter()
# Get the supported currency rates
all_currencies = currency_client.currencies()
print(f"All supported currencies: {all_currencies}")
# Check support of specific currency rate
# NOTE: currency codes are case-insensitive
currency = currency_client.currencies('uah')
print(f"Currency name: {currency}")
currency = currency_client.currencies('UAH')
print(f"Currency name: {currency}")
# Get exchange rate between two currencies
# NOTE: currency codes are case-insensitive
rate = currency_client.get_exchange_rate('USD', 'UAH')
print(f"USD to UAH rate: {rate}")
rate = currency_client.get_exchange_rate('usd', 'uah')
print(f"USD to UAH rate: {rate}")
# Get historical exchange rate between two currencies for particular date
# NOTE: currency codes are case-insensitive
currency_client.currency_date = '2024-11-20'
historical_rate = currency_client.get_exchange_rate('USD', 'UAH')
print(f"USD to UAH rate at {currency_client.currency_date}: {historical_rate}")
# Convert currencies based on latest rates
# NOTE: currency codes are case-insensitive
currency_convert = currency_client.convert(2400, 'usd', 'uah')
print(f"Convert USD to UAH: {currency_convert}")
# Convert currencies by rates based on historical data
# NOTE: currency codes are case-insensitive
currency_client.currency_date = '2024-11-20'
currency_convert = currency_client.convert(2400, 'usd', 'uah')
print(f"Converting USD to UAH at {currency_client.currency_date} date: {currency_convert}")
Debug mode
from currency_exchange import converter
# Initialize the library
currency_client = converter.CurrencyConverter()
# Set log level to debug
currency_client.log_level = "DEBUG"
# Convert currencies by rates based on historical data
currency_client.currency_date = '2024-11-20'
currency_convert = currency_client.convert(2400, 'usd', 'uah')
print(f"Converting USD to UAH at {currency_client.currency_date} date: {currency_convert}")
Setup Environment for development
Known Issues and Limitations
- Historical Data Availability: The Exchange API provides historical exchange rate data only up to March 2, 2024. Any requests for dates beyond this range may result in throwing exceptions expected. So, within that, please be notified that all exchange operations by using this lib in terms of historical data limited by date of March 2, 2024
Acknowledgments
- Thanks to Fawaz Ahmed for the amazing Exchange API.
- Much appreciated to SET University in scope of which this library was developed as part of final project for Python course as part of Master's deegree program for ML & Cloud Computing
- Big kudos to tutor and mentor Denys Kotov
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 pyxrate-0.1.8.tar.gz.
File metadata
- Download URL: pyxrate-0.1.8.tar.gz
- Upload date:
- Size: 5.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.4 CPython/3.9.19 Darwin/23.6.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3560b160d9829c0772ef8d99d5bccf75d77e03befa680e3c1dcefc9d37eb2db6
|
|
| MD5 |
c1e433f39c56035e4cf6e312074d2601
|
|
| BLAKE2b-256 |
86f1b261280bc491c2f0e14e02c02c77062b215c9823f00f77d60de68a4faaa0
|
File details
Details for the file pyxrate-0.1.8-py3-none-any.whl.
File metadata
- Download URL: pyxrate-0.1.8-py3-none-any.whl
- Upload date:
- Size: 8.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.4 CPython/3.9.19 Darwin/23.6.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0f950cf15563cd11ada4aac75d343b2e028b83fb2565f1dbb3e64a08b2a29353
|
|
| MD5 |
52786c50eacdae1560fb79093cec7483
|
|
| BLAKE2b-256 |
2466c14c0d7e7777ad499c3feace52aa725c356ba7420b64e9ba4064bcf870db
|