A python module for currencies. The module compiles a dictionary of currency objects containing information useful in financial analysis. Not all currencies in the world are supported yet. You are welcome to join and add more.
Master CI: | |
---|---|
Dev CI: | |
Documentation: | http://pythonhosted.org/ccy/ |
Dowloads: | http://pypi.python.org/pypi/ccy |
Source: | https://github.com/lsbardel/ccy |
To use it:
>>> import ccy >>> c = ccy.currency('aud') >>> c.printinfo() code: AUD twoletterscode: AD rounding: 4 default_country: AU isonumber: 036 order: 3 name: Australian Dollar >>> c.as_cross() 'AUDUSD' >>> c.as_cross('/') 'AUD/USD'
a currency object has the following properties:
- code: the ISO 4217 code.
- twoletterscode: two letter code (can't remeber the ISO number). Very useful for financial data providers such as Bloomberg.
- default_country: the default ISO 3166-1 alpha-2 country code for the currency.
- isonumber: the ISO 4217 number.
- name: the name of the currency.
- order: default ordering in currency pairs (more of this below).
- rounding: number of decimal places
You can create currency pairs by using the currency_pair
function:
>>> import ccy >>> p = ccy.currency_pair('eurusd') >>> p ccy_pair: EURUSD >>> p.mkt() # market convention pair ccy_pair: EURUSD >>> p = ccy.currency_pair('chfusd') >>> p ccy_pair: CHFUSD >>> p.mkt() # market convention pair ccy_pair: USDCHF
Some shortcuts:
>>> import ccy >>> ccy.cross('aud') 'AUDUSD' >>> ccy.crossover('eur') 'EUR/USD' >>> ccy.crossover('chf') 'USD/CHF'
Note, the Swiss franc cross is represented as 'USD/CHF', while the Aussie Dollar and Euro crosses are represented with the USD as denominator. This is the market convention which is handled by the order property of a currency object.
To use it:
>>> import ccy >>> c = ccy.country('us') >>> c 'United States' >>> ccy.countryccy('us') 'USD'
Not all the country codes are standard ISO 3166-1 alpha-2. There is a function for adding extra pseudo-countries:
import ccy ccy.set_new_country('EU','EUR','Eurozone')
Set a new country with code 'EU', currency 'EUR' named 'Eurozone'. This pseudo country is set in the library already.
Country information is obtained via the pytz package which is strict
requirement for ccy
.
>>> from ccy import country >>> country('it') 'Italy'
It knows about the 18 eurozone countries (European countries which share the euro as common currency):
>>> from ccy import eurozone
eurozone is tuple of country ISO codes
>>> from ccy import eurozone >>> print_eurozone() Austria Belgium Cyprus Estonia Finland France Germany Greece Ireland Italy Latvia Luxembourg Morocco Netherlands Portugal Slovakia Slovenia Spain
The module is shipped with a date
module for manipulating time periods and
converting dates between different formats. The period function can be used
to create Period
instances:
>>> from ccy import period >>> p = period('1m') >>> p 1M >>> p += '2w' >>> p 1M2W >>> P += '3m' >>> p 4M2W
This library works for Python 2.6 and higher, including Python 3. In addition, it requires:
Install using pip:
pip install ccy
or from source:
python setup.py install
From within the package directory:
python runtests.py