HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //home/arjun/projects/env/lib/python3.10/site-packages/babel/__pycache__/lists.cpython-310.pyc
o

!we��@sbdZddlmZddlmZddlmZddlmZm	Z	er$ddl
mZe	�Zdefddd�Z
dS)aY
    babel.lists
    ~~~~~~~~~~~

    Locale dependent formatting of lists.

    The default locale for the functions in this module is determined by the
    following environment variables, in that order:

     * ``LC_ALL``, and
     * ``LANG``

    :copyright: (c) 2015-2023 by the Babel Team.
    :license: BSD, see LICENSE for more details.
�)�annotations)�Sequence)�
TYPE_CHECKING)�Locale�default_locale)�Literal�standard�lst�
Sequence[str]�style�\Literal['standard', 'standard-short', 'or', 'or-short', 'unit', 'unit-short', 'unit-narrow']�locale�Locale | str | None�return�strcCs�t�|�}|s	dSt|�dkr|dS||jvr)td|�d|�dt|j��d���|j|}t|�dkr;|d	j|�S|d
�|d|d�}|dd�D]
}|d�||�}qM|d
�||d�}|S)u�
    Format the items in `lst` as a list.

    >>> format_list(['apples', 'oranges', 'pears'], locale='en')
    u'apples, oranges, and pears'
    >>> format_list(['apples', 'oranges', 'pears'], locale='zh')
    u'apples、oranges和pears'
    >>> format_list(['omena', 'peruna', 'aplari'], style='or', locale='fi')
    u'omena, peruna tai aplari'

    These styles are defined, but not all are necessarily available in all locales.
    The following text is verbatim from the Unicode TR35-49 spec [1].

    * standard:
      A typical 'and' list for arbitrary placeholders.
      eg. "January, February, and March"
    * standard-short:
      A short version of an 'and' list, suitable for use with short or abbreviated placeholder values.
      eg. "Jan., Feb., and Mar."
    * or:
      A typical 'or' list for arbitrary placeholders.
      eg. "January, February, or March"
    * or-short:
      A short version of an 'or' list.
      eg. "Jan., Feb., or Mar."
    * unit:
      A list suitable for wide units.
      eg. "3 feet, 7 inches"
    * unit-short:
      A list suitable for short units
      eg. "3 ft, 7 in"
    * unit-narrow:
      A list suitable for narrow units, where space on the screen is very limited.
      eg. "3′ 7″"

    [1]: https://www.unicode.org/reports/tr35/tr35-49/tr35-general.html#ListPatterns

    :param lst: a sequence of items to format in to a list
    :param style: the style to format the list with. See above for description.
    :param locale: the locale
    ��rzLocale z( does not support list formatting style z (supported are �)��2�start����middle�end)r�parse�len�
list_patterns�
ValueError�sorted�format)r	rr
�patterns�result�elem�r#�D/home/arjun/projects/env/lib/python3.10/site-packages/babel/lists.py�format_lists&
,
��
r%N)r	r
rrr
rrr)�__doc__�
__future__r�collections.abcr�typingr�
babel.corerr�typing_extensionsr�DEFAULT_LOCALEr%r#r#r#r$�<module>s�