def sum_string(amount, gender, items):
    """
    in_words and choose_plural in a one flask
    Makes in-words representation of value with
    choosing correct form of noun.

    First parameter is an amount of objects. Second is a
    gender (MALE, FEMALE, NEUTER). Third is a variants
    of forms for object name.

    Examples::
        {% sum_string some_int MALE "пример,примера,примеров" %}
        {% sum_string some_other_int FEMALE "задача,задачи,задач" %}
    """
    try:
        if isinstance(items, basestring):
            uitems = pseudo_unicode(items, encoding, default_uvalue)
        else:
            uitems = [
                pseudo_unicode(i, encoding, default_uvalue) for i in items
            ]
        ures = numeral.sum_string(amount, getattr(numeral, str(gender), None),
                                  uitems)
        res = pseudo_str(ures, encoding, default_value)
    except Exception, err:
        # because tag's renderer must die silently
        res = default_value % {'error': err, 'value': str(amount)}
示例#2
0
def sum_string(amount, gender, items):
    """
    in_words and choose_plural in a one flask
    Makes in-words representation of value with
    choosing correct form of noun.

    First parameter is an amount of objects. Second is a
    gender (MALE, FEMALE, NEUTER). Third is a variants
    of forms for object name.

    Examples::
        {% sum_string some_int MALE "пример,примера,примеров" %}
        {% sum_string some_other_int FEMALE "задача,задачи,задач" %}
    """
    try:
        if isinstance(items, basestring):
            uitems = pseudo_unicode(items, encoding, default_uvalue)
        else:
            uitems = [pseudo_unicode(i, encoding, default_uvalue) for i in items]
        ures = numeral.sum_string(amount, getattr(numeral, str(gender), None), uitems)
        res = pseudo_str(
                ures,
                encoding,
                default_value
            )
    except Exception, err:
        # because tag's renderer must die silently
        res = default_value % {'error': err, 'value': str(amount)}
示例#3
0
    if six.PY3:
        out = s
    else:
        out = s.encode('UTF-8')
    print(out)


# sum_string объединяет в себе choose_plural и in_words
# т.е. передаются и количество, и варианты названия объекта
# а на выходе получаем количество объектов в правильной форме

# параметры:
# 1) amount, количество (только целое)
# 2) gender, пол (1=мужской, 2=женский, 3=средний)
# 3) items, варианты названий объекта (необязательно),
#    правила аналогичны таковым у choose_plural

print_(numeral.sum_string(3, numeral.MALE, ("носок", "носка", "носков")))
#-> три носка

print_(numeral.sum_string(5, numeral.FEMALE,
                          ("коробка", "коробки", "коробок")))
#-> пять коробок

print_(numeral.sum_string(21, numeral.NEUTER, ("очко", "очка", "очков")))
#-> двадцать одно очко

# если варианты не указывать, то действие функции аналогично дейтсвию in_words
print_(numeral.sum_string(21, gender=numeral.NEUTER))
#-> двадцать одно
示例#4
0
        out = s
    else:
        out = s.encode('UTF-8')
    print(out)


# sum_string объединяет в себе choose_plural и in_words
# т.е. передаются и количество, и варианты названия объекта
# а на выходе получаем количество объектов в правильной форме

# параметры:
# 1) amount, количество (только целое)
# 2) gender, пол (1=мужской, 2=женский, 3=средний)
# 3) items, варианты названий объекта (необязательно),
#    правила аналогичны таковым у choose_plural

print_(numeral.sum_string(3, numeral.MALE, (u"носок", u"носка", u"носков")))
#-> три носка

print_(numeral.sum_string(5, numeral.FEMALE, (u"коробка", u"коробки", u"коробок")))
#-> пять коробок

print_(numeral.sum_string(21, numeral.NEUTER, (u"очко", u"очка", u"очков")))
#-> двадцать одно очко

# если варианты не указывать, то действие функции аналогично дейтсвию in_words
print_(numeral.sum_string(21, gender=numeral.NEUTER))
#-> двадцать одно


示例#5
0
#!/usr/bin/env python
# -*- coding: utf-8 -*-

from pytils import numeral

# sum_string объединяет в себе choose_plural и in_words
# т.е. передаются и количество, и варианты названия объекта
# а на выходе получаем количество объектов в правильной форме

# параметры:
# 1) amount, количество (только целое)
# 2) gender, пол (1=мужской, 2=женский, 3=средний)
# 3) items, варианты названий объекта (необязательно),
#    правила аналогичны таковым у choose_plural

print numeral.sum_string(3, numeral.MALE, (u"носок", u"носка", u"носков"))
#-> три носка

print numeral.sum_string(5, numeral.FEMALE,
                         (u"коробка", u"коробки", u"коробок"))
#-> пять коробок

print numeral.sum_string(21, numeral.NEUTER, (u"очко", u"очка", u"очков"))
#-> двадцать одно очко

# если варианты не указывать, то действие функции аналогично дейтсвию in_words
print numeral.sum_string(21, gender=numeral.NEUTER)
#-> двадцать одно