Source code for hbutils.string.plural

"""
Overview:
    Useful utilities for pluralize your words.
"""

from .inflection import pluralize, singularize

__all__ = [
    'plural_form', 'plural_word', 'singular_form'
]


[docs]def plural_form(word: str) -> str: """ Overview: Get the pluralized form of the given ``word``. The same as :func:`hbutils.string.inflection.pluralize`. Arguments: - word (:obj:`str`): The given word to be pluralized. Returns: - pluralized (:obj:`str`): Pluralized word. Examples:: >>> from hbutils.string import plural_form >>> plural_form('it') 'they' >>> plural_form('word') 'words' >>> plural_form('woman') 'women' """ return pluralize(word)
[docs]def singular_form(word: str) -> str: """ Overview: Get the singular form of the given ``word``. The same as :func:`hbutils.string.inflection.singularize`. Arguments: - word (:obj:`str`): The given word to be singularized. Returns: - single (:obj:`str`): Singular form of word. Examples:: >>> from hbutils.string import singular_form >>> singular_form('they') 'it' >>> singular_form('it') 'it' >>> singular_form('women') 'woman' >>> singular_form('words') 'word' >>> singular_form('themselves') 'itself' """ return singularize(word)
[docs]def plural_word(count: int, word: str) -> str: """ Overview: Get plural form of the whole word, with the number before the word. Arguments: - count (:obj:`int`): Count of the word, should be a non-negative integer. - word (:obj:`str`): Word to be pluralized. Returns: - plural_word (:obj:`str`): Pluralized word, with the number. Examples:: >>> from hbutils.string import plural_word >>> plural_word(0, 'word') '0 words' >>> plural_word(1, 'word') '1 word' >>> plural_word(2, 'word') '2 words' >>> plural_word(20, 'word') '20 words' >>> plural_word(233, 'word') '233 words' """ single_word = singular_form(word) if count != 1: return f'{count} {plural_form(single_word)}' else: return f'{count} {single_word}'