Login
Login
National Data Archive
An Online Microdata Catalog
  • Home
  • Catalog
  • Citations
    Home / Central Data Catalog / GENERALOV_PY-MONEYED
central

Provides Currency and Money classes for use in your Python code.

generalov_py-moneyed
generalov
Created on December 02, 2019 Last modified December 02, 2019 Page views 16 Metadata JSON
  • Project Description

Overview

Abstract
Overview
============================================================

The need to represent instances of money frequently arises in software
development, particularly any financial/economics software. To
address that need, the py-moneyed package provides the classes of
Money and Currency, at a level more useful than just using Python's
Decimal class, or ($DEITY forbid) the float primitive. The package is
meant to be stand-alone and easy to either use directly, or subclass
further. py-moneyed is BSD-licensed.

Some of the py-moneyed code was first derived from python-money
available via this URL: http://code.google.com/p/python-money/ Because
that Google Code version has been inactive since May 2008, I forked it
and modified it for my needs in 2010. Compared to python-money, major
changes here in py-moneyed include separating it from Django usage,
tightening types handling in operators, a complete suite of unit
tests, PEP8 adherence, providing a setup.py, and local currency
formatting/display.


Usage
-----

On to the code! The Money class is instantiated with:

- An amount which can be of type string, float, or Decimal.
- A currency, which usually is specified by the three-capital-letters
ISO currency code, e.g. USD, EUR, CNY, and so on.

For example,

::

from moneyed.classes import Money
sale_price_today = Money(amount='99.99', currency='USD')

The Money class also provides operators with type checking, matching
currency checking, and sensible dimensional behavior, e.g. you cannot
multiply two Money instances, nor can you add a Money instance to a
non-Money number; dividing a Money instance by another results in a
Decimal value, etc.

The Currency class is provided with a complete dictionary of ISO 4217
currencies data, each key (e.g. 'USD') mapping to a Currency instance
with ISO numeric code, canonical name in English, and countries using
the currency. Thanks to the python-money developers for their
(possibly tedious) data-entry of the ISO codes!


Testing
--------

Unit-tests have been provided, and can be run with tox_ (recommended)
or just py.test.

If you don't have tox installed on your system, it's a modern Python
tool to automate running tests and deployment; install it to your
global Python environment with:

::

sudo pip install tox

Then you can activate a virtualenv (any will do - by design tox will
not run from your globally-installed python), cd to the py-moneyed
source directory then run the tests at the shell:

::

cd where/py-moneyed-source/is
tox

The py-moneyed package has been tested with Python 2.6; it should work
with Python 2.x but I haven't tried other versions yet. Should you
use py-moneyed with other Python versions, please let me know if you
are successful or not.


.. _tox: http://tox.testrun.org/latest/


Future
------

Future versions of py-moneyed may provide currency conversions or
other capabilities, dependent on feedback and usage.
Authoring entity
Agency Name Role
generalov owner
Language
English

Methods, software and scripts

License
Name
BSD 3-Clause "New" or "Revised" License

Metadata production

Producers
Name Role
GitHub Bot bot
Date of Production
01 December 2019
National Data Archive

© National Data Archive, All Rights Reserved.