�
ƪb�
� �: � d Z ddlmZmZ e� � Zdefd�ZdS )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-2022 by the Babel Team.
:license: BSD, see LICENSE for more details.
� )�Locale�default_locale�standardc �4 � t j |� � }| sdS t | � � dk r| d S ||j vr8t d|�d|�dt t
|j � � � � �d�� � �|j | }t | � � dk r |d j | � S |d
� | d | d � � }| dd� D ]}|d � ||� � }�|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 a '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
� � r zLocale z( does not support list formatting style z (supported are �)� �2�start����middle�end)r �parse�len�
list_patterns�
ValueError�list�sorted�format)�lst�style�locale�patterns�result�elems �-/usr/lib/python3/dist-packages/babel/lists.py�format_listr s3 � �T �\�&�
!�
!�F�� ��r�
�3�x�x�1�}�}��1�v�
��F�(�(�(��j��F�F��E�E����,�-�-�.�.�.�.�
� � � �
�#�E�*�H�
�3�x�x�1�}�}�#�x��}�#�S�)�)�
�g�
�
%�
%�c�!�f�c�!�f�
5�
5�F��A�b�D� � 9� 9���(�#�*�*�6�4�8�8���
�e�_�
#�
#�F�C��G�
4�
4�F��M� N)�__doc__�
babel.corer r �DEFAULT_LOCALEr � r r �<module>r$ sa ��� � .� -� -� -� -� -� -� -���!�!�� &�n� @� @� @� @� @� @r |