# Path: mangopay/exceptions.py
# class CurrencyMismatch(Exception):
#     pass


import copy
import datetime
import decimal
import inspect
import sys
import pytz
import six
    import urllib
from calendar import timegm
from functools import wraps
from .compat import python_2_unicode_compatible
from .exceptions import CurrencyMismatch
    from urllib import request
def add_camelcase_aliases(cls):
    for name in cls().__dict__.keys():
        if name[0] == '_':
            continue
        setattr(cls, name.title().replace('_', ''), AliasProperty(name))
    return cls


@add_camelcase_aliases
@python_2_unicode_compatible
class Money(object):
    __hash__ = None

    def __init__(self, amount="0", currency=None):
        try:
            self.amount = decimal.Decimal(amount)
        except decimal.InvalidOperation:
            raise ValueError("amount value could not be converted to "
                             "Decimal(): '{}'".format(amount))
        self.currency = currency

    def __repr__(self):
        return "{} {}".format(self.currency, self.amount)

    def __str__(self):
        return force_text("{} {:,.2f}".format(self.currency, self.amount))

    def __lt__(self, other):
        if isinstance(other, Money):
            if other.currency != self.currency:

# Path: mangopay/exceptions.py
# class CurrencyMismatch(Exception):
#     pass


# Path: mangopay/utils.py
import copy
import datetime
import decimal
import inspect
import sys
import pytz
import six
    import urllib
from calendar import timegm
from functools import wraps
from .compat import python_2_unicode_compatible
from .exceptions import CurrencyMismatch
    from urllib import request

def add_camelcase_aliases(cls):
    for name in cls().__dict__.keys():
        if name[0] == '_':
            continue
        setattr(cls, name.title().replace('_', ''), AliasProperty(name))
    return cls


@add_camelcase_aliases
@python_2_unicode_compatible
class Money(object):
    __hash__ = None

    def __init__(self, amount="0", currency=None):
        try:
            self.amount = decimal.Decimal(amount)
        except decimal.InvalidOperation:
            raise ValueError("amount value could not be converted to "
                             "Decimal(): '{}'".format(amount))
        self.currency = currency

    def __repr__(self):
        return "{} {}".format(self.currency, self.amount)

    def __str__(self):
        return force_text("{} {:,.2f}".format(self.currency, self.amount))

    def __lt__(self, other):
        if isinstance(other, Money):
            if other.currency != self.currency:

                raise CurrencyMismatch(self.currency, other.currency, '<')