|
| tuple[decimal.Decimal|int, int, int, int, int, int, Literal[0], Literal[0]] | extract_operands (float|decimal.Decimal source) |
| |
| str | to_javascript (Mapping[str, str]|Iterable[tuple[str, str]]|PluralRule rule) |
| |
| Callable[[float|decimal.Decimal], str] | to_python (Mapping[str, str]|Iterable[tuple[str, str]]|PluralRule rule) |
| |
| str | to_gettext (Mapping[str, str]|Iterable[tuple[str, str]]|PluralRule rule) |
| |
| bool | in_range_list (float|decimal.Decimal num, Iterable[Iterable[float|decimal.Decimal]] range_list) |
| |
| bool | within_range_list (float|decimal.Decimal num, Iterable[Iterable[float|decimal.Decimal]] range_list) |
| |
| float | cldr_modulo (float a, float b) |
| |
|
list[tuple[str, str]] | tokenize_rule (str s) |
| |
|
list[tuple[str, str]]|bool | test_next_token (list[tuple[str, str]] tokens, str type_, str|None value=None) |
| |
|
| skip_token (list[tuple[str, str]] tokens, str type_, str|None value=None) |
| |
|
tuple[Literal[ 'value'], tuple[int]] | value_node (int value) |
| |
|
tuple[str, tuple[()]] | ident_node (str name) |
| |
|
tuple[Literal[ 'range_list'], Iterable[Iterable[float|decimal.Decimal]]] | range_list_node (Iterable[Iterable[float|decimal.Decimal]] range_list) |
| |
|
tuple[Literal[ 'not'], tuple[tuple[Any,...]]] | negate (tuple[Any,...] rv) |
| |
| | _binary_compiler (tmpl) |
| |
| | _unary_compiler (tmpl) |
| |
babel.numbers
~~~~~~~~~~~~~
CLDR Plural support. See UTS #35.
:copyright: (c) 2013-2025 by the Babel Team.
:license: BSD, see LICENSE for more details.
| tuple[decimal.Decimal | int, int, int, int, int, int, Literal[0], Literal[0]] babel.plural.extract_operands |
( |
float | decimal.Decimal |
source | ) |
|
Extract operands from a decimal, a float or an int, according to `CLDR rules`_.
The result is an 8-tuple (n, i, v, w, f, t, c, e), where those symbols are as follows:
====== ===============================================================
Symbol Value
------ ---------------------------------------------------------------
n absolute value of the source number (integer and decimals).
i integer digits of n.
v number of visible fraction digits in n, with trailing zeros.
w number of visible fraction digits in n, without trailing zeros.
f visible fractional digits in n, with trailing zeros.
t visible fractional digits in n, without trailing zeros.
c compact decimal exponent value: exponent of the power of 10 used in compact decimal formatting.
e currently, synonym for ācā. however, may be redefined in the future.
====== ===============================================================
.. _`CLDR rules`: https://www.unicode.org/reports/tr35/tr35-61/tr35-numbers.html#Operands
:param source: A real number
:type source: int|float|decimal.Decimal
:return: A n-i-v-w-f-t-c-e tuple
:rtype: tuple[decimal.Decimal, int, int, int, int, int, int, int]
| bool babel.plural.in_range_list |
( |
float | decimal.Decimal |
num, |
|
|
Iterable[Iterable[float | decimal.Decimal]] |
range_list |
|
) |
| |
Integer range list test. This is the callback for the "in" operator
of the UTS #35 pluralization rule language:
>>> in_range_list(1, [(1, 3)])
True
>>> in_range_list(3, [(1, 3)])
True
>>> in_range_list(3, [(1, 3), (5, 8)])
True
>>> in_range_list(1.2, [(1, 4)])
False
>>> in_range_list(10, [(1, 4)])
False
>>> in_range_list(10, [(1, 4), (6, 8)])
False
| bool babel.plural.within_range_list |
( |
float | decimal.Decimal |
num, |
|
|
Iterable[Iterable[float | decimal.Decimal]] |
range_list |
|
) |
| |
Float range test. This is the callback for the "within" operator
of the UTS #35 pluralization rule language:
>>> within_range_list(1, [(1, 3)])
True
>>> within_range_list(1.0, [(1, 3)])
True
>>> within_range_list(1.2, [(1, 4)])
True
>>> within_range_list(8.8, [(1, 4), (7, 15)])
True
>>> within_range_list(10, [(1, 4)])
False
>>> within_range_list(10.5, [(1, 4), (20, 30)])
False