Skip to main content

Python currencies

Project description

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.

PyPI:Latest PyPI version Number of PyPI downloads
Master CI:master-build coverage-master
Dev CI:dev-build coverage-dev
Documentation:http://pythonhosted.org/ccy/
Dowloads:http://pypi.python.org/pypi/ccy
Source:https://github.com/lsbardel/ccy

Currency object

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

Currency Crosses

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.

Country information

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.

Date and Periods

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

Installation

This library works for Python 2.6 and higher, including Python 3. In addition, it requires:

  • pytz for Countries information.
  • dateutils for date calculations

Install using pip:

pip install ccy

or from source:

python setup.py install

Runnung tests

From within the package directory:

python runtests.py

Project details


Release history Release notifications

History Node

0.7.0

History Node

0.6.1

This version
History Node

0.6.0

History Node

0.5.1

History Node

0.5.0

History Node

0.4.1

History Node

0.4.0

History Node

0.3.9

History Node

0.3.8

History Node

0.3.7

History Node

0.3.5

History Node

0.3.4

History Node

0.3.3

History Node

0.3.2

History Node

0.3

History Node

0.2

History Node

0.1.2

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
ccy-0.6.0.tar.gz (37.1 kB) Copy SHA256 hash SHA256 Source None Jan 14, 2014

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging CloudAMQP CloudAMQP RabbitMQ AWS AWS Cloud computing Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page