Skip to content
Merged

Dev #157

Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
108 changes: 108 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
# forex-python

[![travis-ci](https://travis-ci.org/MicroPyramid/forex-python.svg?branch=master)](https://travis-ci.org/MicroPyramid/forex-python)
[![coveralls](https://coveralls.io/repos/github/MicroPyramid/forex-python/badge.svg?branch=master)](https://coveralls.io/github/MicroPyramid/forex-python?branch=master)
[![Code Health](https://landscape.io/github/MicroPyramid/forex-python/master/landscape.svg?style=flat)](https://landscape.io/github/MicroPyramid/forex-python/master)
[![pypi](https://img.shields.io/badge/python-3.6%2B-blue.svg)](https://pypi.python.org/pypi/forex-python)

**Forex Python** is a free library for foreign exchange rates and currency conversion, supporting Python 3.6 and above.

> **Note:** Install the latest version (`forex-python>=1.6`) to avoid `RatesNotAvailableError`.

## Features

- List all currency rates
- Bitcoin price for all currencies
- Convert amounts to and from Bitcoin
- Get historical rates (since 1999)
- Currency conversion (e.g., USD to INR)
- Currency symbols and names

## Currency Source

[theratesapi.com](https://theratesapi.com) provides current and historical foreign exchange rates published by the European Central Bank. Rates are updated daily at 3PM CET.

## Bitcoin Price Source

Bitcoin prices are updated every minute. For more information, visit [CoinDesk](http://www.coindesk.com).

## Installation

Install via pip:
```bash
pip install forex-python
```
Or clone the repository and install manually:
```bash
git clone https://github.com/MicroPyramid/forex-python.git
cd forex-python
python3 setup.py install
```

## Usage Examples

**Initialize the class:**
```python
from forex_python.converter import CurrencyRates
c = CurrencyRates()
```

**List all latest currency rates for "USD":**
```python
c.get_rates('USD')
# Example output: {'INR': 83.12, 'EUR': 0.92, ...}
```

**Get conversion rate from USD to INR:**
```python
c.get_rate('USD', 'INR')
# Example output: 83.12
```

**Convert amount from USD to INR:**
```python
c.convert('USD', 'INR', 10)
# Example output: 831.2
```

**Force use of Decimal:**
```python
from decimal import Decimal
c = CurrencyRates(force_decimal=True)
c.convert('USD', 'INR', Decimal('10.45'))
# Example output: 868.75
```

**Get latest Bitcoin price:**
```python
from forex_python.bitcoin import BtcConverter
b = BtcConverter()
b.get_latest_price('USD')
# Example output: 67000.0
```

**Convert amount to Bitcoins:**
```python
b.convert_to_btc(400, 'USD')
# Example output: 0.00597
```

**Get currency symbol using currency code:**
```python
from forex_python.converter import CurrencyCodes
codes = CurrencyCodes()
codes.get_symbol('GBP')
# Example output: '£'
```

For complete documentation, see the [forex-python docs](http://forex-python.readthedocs.org/en/latest/?badge=latest).

---

## Support & Feedback

- Found a bug? Please [open a GitHub issue](https://github.com/MicroPyramid/forex-python/issues).
- Need a new feature or custom development? [Contact us here](https://micropyramid.com/contact-us/).
- Visit our [Python Development Services](https://micropyramid.com/python-development-services/) page for more information.

---
162 changes: 0 additions & 162 deletions README.rst

This file was deleted.

4 changes: 2 additions & 2 deletions docs/source/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -59,9 +59,9 @@
# built documents.
#
# The short X.Y version.
version = u'1.6'
version = u'1.9.2'
# The full version, including alpha/beta/rc tags.
release = u'1.6'
release = u'1.9.2'

# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
Expand Down
4 changes: 2 additions & 2 deletions docs/source/currencysource.rst
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
currency source
===============

https://theforexapi.com
https://theratesapi.com
--------
https://theforexapi.com is a free API for current and historical foreign exchange rates published by European Central Bank. The rates are updated daily 3PM CET.
https://theratesapi.com is a free API for current and historical foreign exchange rates published by European Central Bank. The rates are updated daily 3PM CET.

List of Supported Currency codes.
---------------------------------
Expand Down
3 changes: 3 additions & 0 deletions forex_python/converter.py
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,9 @@ def convert(self, base_cur, dest_cur, amount, date_obj=None):
if not rate:
raise RatesNotAvailableError("Currency {0} => {1} rate not available for Date {2}.".format(
source_url, dest_cur, date_str))
# Ensure rate is numeric
if isinstance(rate, str):
rate = Decimal(rate) if use_decimal else float(rate)
try:
converted_amount = rate * amount
return converted_amount
Expand Down
54 changes: 29 additions & 25 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,47 +2,51 @@
import os
from setuptools import setup, find_packages

VERSION = '1.6'
long_description_text = """Forex Python is a Free Foreign exchange rates and currency conversion.
Features:
List all currency rates.
BitCoin price for all curuncies.
Converting amount to BitCoins.
Get historical rates for any day since 1999.
Conversion rate for one currency(ex; USD to INR).
Convert amount from one currency to other.('USD 10$' to INR).
Currency symbols.
Currency names.
# 1) Bump this version each release:
VERSION = '1.9.2'

Documentation: http://forex-python.readthedocs.io/en/latest/usage.html
GitHub: https://github.com/MicroPyramid/forex-python

"""
# 2) Pull your README.md in as long_description:
here = os.path.abspath(os.path.dirname(__file__))
with io.open(os.path.join(here, 'README.md'), encoding='utf-8') as f:
long_description = f.read()

setup(
name='forex-python',
version=VERSION,
author='Micro Pyramid Informatic Pvt. Ltd.',
author_email='hello@micropyramid.com',
description='Free foreign exchange rates and currency conversion.',
long_description=long_description,
long_description_content_type='text/markdown', # so PyPI renders your README properly
url='https://github.com/MicroPyramid/forex-python',
description='Foreign exchange rates and currency conversion.',
long_description=long_description_text,
packages=find_packages(exclude=['tests', 'tests.*']),
packages=find_packages(exclude=['tests*']),
include_package_data=True,
install_requires=[
'requests',
'simplejson',
'requests>=2.0',
'simplejson>=3.0',
],
python_requires='>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, <4',
classifiers=[
# audience
'Intended Audience :: Developers',
'Operating System :: OS Independent',
'Topic :: Software Development :: Internationalization',
# license
'License :: OSI Approved :: MIT License',
# OS
'Operating System :: OS Independent',
# languages
'Programming Language :: Python',
'Programming Language :: Python :: 2.7',
'Programming Language :: Python :: 3',
'Programming Language :: Python :: 3.3',
'Programming Language :: Python :: 3.4',
'Programming Language :: Python :: 3.5',
'Topic :: Software Development :: Internationalization',
'Programming Language :: Python :: 3.6',
'Programming Language :: Python :: 3.7',
'Programming Language :: Python :: 3.8',
'Programming Language :: Python :: 3.9',
'Programming Language :: Python :: 3.10',
],
project_urls={ # these show up as “Project Links” on PyPI
'Documentation': 'https://forex-python.readthedocs.io/',
'Source': 'https://github.com/MicroPyramid/forex-python',
'Tracker': 'https://github.com/MicroPyramid/forex-python/issues',
},
)