def __unicode__(self): if self.__use_l10n(): locale = self.__get_current_locale() if locale: return format_money(self, locale=locale) return format_money(self)
def __str__(self): from moneyed.localization import format_money if PYTHON2: return '%s%s' % (self.currency.code, format_money(self, include_symbol=False)) else: return format_money(self)
def test_format_money_uses_default_formatting_definition_if_given_locale_not_registered( self): m1 = Money(Decimal('100'), 'GBP') # should format with 'default' formatting definition expected_default_formatting = format_money(m1) # should format with 'default' formatting definition since # 'en_AU' is not a registered formatting definition returned_formatting = format_money(m1, locale='en_AU') assert returned_formatting == expected_default_formatting
def __str__(self): from moneyed.localization import format_money first = True us = u"" for mon in self.getMoneys(): if first: us = u"" + format_money(mon) first = False else: us = us + u", " + format_money(mon) return us
def test_format_money(self): # Two decimal places by default assert format_money(self.one_million_bucks) == 'US$1,000,000.00' # No decimal point without fractional part assert format_money(self.one_million_bucks, decimal_places=0) == 'US$1,000,000' # locale == pl_PL one_million_pln = Money('1000000', 'PLN') # Two decimal places by default assert format_money(one_million_pln, locale='pl_PL') == '1 000 000,00 zł' assert format_money(self.one_million_bucks, locale='pl_PL') == '1 000 000,00 USD' # No decimal point without fractional part assert format_money(one_million_pln, locale='pl_PL', decimal_places=0) == '1 000 000 zł'
def default(self, o): if isinstance(o, Money): return format_money(o, locale=translation.get_language()) if isinstance(o, Decimal): return str(m.floor(o)) # Let the base class default method raise the TypeError return json.JSONEncoder.default(self, o)
def format_money(m: Money, latex: bool = False) -> str: from moneyed import localization ret: str = localization.format_money(m, locale="en_US") if latex and "$" in ret: ret = ret.replace("$", r"\$") return ret
def format_money_remove_aud(self, **kwargs): """ Monkey patch money.Money.format so that the default currency (AUD) isn't displayed when calling Money.format() @author: Alex Hayes <*****@*****.**> """ return format_money(self, **kwargs).replace('A$', '$')
def __unicode__(self): kwargs = {'money': self, 'decimal_places': DECIMAL_PLACES} if self.is_localized: locale = get_current_locale() if locale: kwargs['locale'] = locale return format_money(**kwargs)
def __str__(self): kwargs = {"money": self, "decimal_places": self.decimal_places} if self.is_localized: locale = get_current_locale() if locale: kwargs["locale"] = locale return format_money(**kwargs)
def moneyformat(value, currency = 'PLN', decimal_pos = 2, locale = None): locale = get_money_locale(locale) if isinstance(value, Money): pass else: value = Money(value, currency = get_currency(str(currency))) return format_money(value, decimal_places = decimal_pos, locale = locale)
def format_money(self, money): """Returns locale formated money :param money: Money :type money: moneyed.Money :rtype: unicode """ return format_money(money, locale=self.locale())
def convtomoney(arr): """ Converts array of floats/integers into an array of formatted money objects. """ floatarr = np.array(arr) flat = floatarr.flatten() nelem = len(flat) dim = floatarr.shape monarr = np.zeros(nelem, dtype = object) for i in range(nelem): monarr[i] = format_money(Money(amount = str(flat[i]), currency = 'USD'), locale = 'en_US') return monarr.reshape(dim)
def test_format_money_fr(self): # locale == fr_FR one_million_eur = Money('1000000', 'EUR') one_million_cad = Money('1000000', 'CAD') assert format_money(one_million_eur, locale='fr_FR') == '1 000 000,00 €' assert format_money(self.one_million_bucks, locale='fr_FR') == '1 000 000,00 $ US' assert format_money(one_million_cad, locale='fr_FR') == '1 000 000,00 $ CA' # No decimal point without fractional part assert format_money(one_million_eur, locale='fr_FR', decimal_places=0) == '1 000 000 €' # locale == fr_CA assert format_money(one_million_cad, locale='fr_CA') == '1 000 000,00 $' assert format_money(self.one_million_bucks, locale='fr_CA') == '1 000 000,00 $ US' assert format_money(one_million_eur, locale='fr_CA') == '1 000 000,00 €'
def test_format_money(self): # Two decimal places by default assert format_money(self.one_million_bucks) == 'US$1,000,000.00' # No decimal point without fractional part assert format_money(self.one_million_bucks, decimal_places=0) == 'US$1,000,000' # Locale format not included, should fallback to DEFAULT assert format_money(self.one_million_bucks, locale='es_ES') == 'US$1,000,000.00' # locale == pl_PL one_million_pln = Money('1000000', 'PLN') # Two decimal places by default assert format_money(one_million_pln, locale='pl_PL') == '1 000 000,00 zł' assert format_money(self.one_million_bucks, locale='pl_PL') == '1 000 000,00 USD' # No decimal point without fractional part assert format_money(one_million_pln, locale='pl_PL', decimal_places=0) == '1 000 000 zł'
def test_format_money(self): # Two decimal places by default assert format_money(self.one_million_bucks) == 'US$1,000,000.00' # No decimal point without fractional part assert format_money(self.one_million_bucks, decimal_places=0) == 'US$1,000,000' # Locale format not included, should fallback to DEFAULT assert format_money(self.one_million_bucks, locale='es_ES') == 'US$1,000,000.00' # locale == pl_PL one_million_pln = Money('1000000', 'PLN') # Two decimal places by default assert format_money(one_million_pln, locale='pl_PL') == '1 000 000,00 zł' assert format_money(self.one_million_bucks, locale='pl_PL') == 'US$1 000 000,00' # No decimal point without fractional part assert format_money(one_million_pln, locale='pl_PL', decimal_places=0) == '1 000 000 zł'
def currency(value): return format_money(value, locale=DJANGO)
def fmt(money): return format_money(money, locale=to_locale(get_language() or 'en-us'))
def test_format_money(self): # Two decimal places by default assert format_money(self.one_million_bucks) == 'US$1,000,000.00' # No decimal point without fractional part assert format_money(self.one_million_bucks, decimal_places=0) == 'US$1,000,000' # locale == pl_PL one_million_pln = Money('1000000', 'PLN') # Two decimal places by default assert format_money(one_million_pln, locale='pl_PL') == '1 000 000,00 zł' # overriden sign/format locale display default sign with locale group parameter assert format_money(self.one_million_bucks, locale='pl_PL') == 'US$1 000 000,00' # non overriden sign/format locale display default money sign with default group parameter assert format_money(self.one_million_bucks, locale='fr_FR') == 'US$1,000,000.00' # No decimal point without fractional part assert format_money(one_million_pln, locale='pl_PL', decimal_places=0) == '1 000 000 zł' # add different sign for money USD in locale pl_PL _sign('pl_PL', moneyed.USD, prefix='$') assert format_money(self.one_million_bucks, locale='pl_PL') == '$1 000 000,00' # default locale display correct money sign with default group parameter assert format_money(self.one_million_euros) == '1,000,000.00 €' # non overriden sign/format locale display default money sign with default group parameter assert format_money(self.one_million_euros, locale='fr_FR') == '1,000,000.00 €' # overriden sign/locale locale display default money sign with locale group parameter assert format_money(self.one_million_euros, locale='en_US') == '1,000,000.00 €' # add format for fr_FR locale _format("fr_FR", group_size=3, group_separator=" ", decimal_point=",", positive_sign="", trailing_positive_sign="", negative_sign="-", trailing_negative_sign="", rounding_method=ROUND_HALF_EVEN) # overriden format locale display correct sign with locale group parameter assert format_money(self.one_million_euros, locale='fr_FR') == '1 000 000,00 €'
def formatted_captured_amount(self, obj): if obj.captured_amount is not None: return format_money(obj.captured_amount)
def __unicode__(self): from moneyed.localization import format_money return format_money(self)
def formatted_total(self, obj): return format_money(obj.total)
def test_format_money(self): # Two decimal places by default assert format_money(self.one_million_bucks) == 'US$1,000,000.00' # No decimal point without fractional part assert format_money(self.one_million_bucks, decimal_places=0) == 'US$1,000,000'
def test_format_money_by(self): assert format_money(Money('10', 'BYN'), locale='ru_RU') == '10,00 руб.' assert format_money(Money('10.15', 'BYN'), locale='ru_RU') == '10,15 руб.' assert format_money(Money('1234.56', 'BYN'), locale='ru_RU') == '1 234,56 руб.'
def unbreakable_amount(self, obj): """Correctly formatted amount with unbreakable spaces.""" locale = to_locale(get_language()) amount = format_money(obj.amount, locale=locale) return mark_safe(amount.replace(' ', ' '))
def __str__(self): from moneyed.localization import format_money return format_money(self)
def test_format_money_ru(self): assert format_money(Money('10', 'RUB'), locale='ru_RU') == '10₽' assert format_money(Money('1234', 'RUB'), locale='ru_RU') == '1 234₽'
def money_str(amount): return format_money(Money(amount, 'GBP'), locale='en_GB')
def amount(obj): return format_money(obj.amount)