+
    4O|j,   ã                  ó¶   € R t ^ RIHt ^ RIHtHtHtHt ^ RIH	t	 ^ RI
Ht  ! R R4      t ! R R4      t ! R	 R
4      t ! R R4      t ! R R4      tR R ltR# )zÑTools for working with `collations`_.

.. _collations: https://www.mongodb.com/docs/manual/reference/collation/

.. seealso:: This module is compatible with both the synchronous and asynchronous PyMongo APIs.
)Úannotations)ÚAnyÚMappingÚOptionalÚUnion)Úcommon)Úvalidate_booleanc                  ó6   € ] tR t^tRt^t ^t ^t ^t ^t	Rt
R# )ÚCollationStrengthzX
An enum that defines values for `strength` on a
:class:`~pymongo.collation.Collation`.
© N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__ÚPRIMARYÚ	SECONDARYÚTERTIARYÚ
QUATERNARYÚ	IDENTICALÚ__static_attributes__r   ó    ÚJC:\Users\alokc\chatbot\backend\venv\Lib\site-packages\pymongo/collation.pyr
   r
      s1   † ñð
 €GØ4à€IØ*à€HØ'à€JØ;à€IÛNr   r
   c                  ó$   € ] tR t^3tRtRt RtRtR# )ÚCollationAlternatezY
An enum that defines values for `alternate` on a
:class:`~pymongo.collation.Collation`.
znon-ignorableÚshiftedr   N)r   r   r   r   r   ÚNON_IGNORABLEÚSHIFTEDr   r   r   r   r   r   3   s   † ñð
 $€MØ@à€Gór   r   c                  ó$   € ] tR t^FtRtRt RtRtR# )ÚCollationMaxVariablez\
An enum that defines values for `max_variable` on a
:class:`~pymongo.collation.Collation`.
ÚpunctÚspacer   N)r   r   r   r   r   ÚPUNCTÚSPACEr   r   r   r   r   r   F   s   † ñð
 €EØ2à€EÛ#r   r   c                  ó*   € ] tR t^StRtRt Rt RtRtR# )ÚCollationCaseFirstzZ
An enum that defines values for `case_first` on a
:class:`~pymongo.collation.Collation`.
ÚupperÚlowerÚoffr   N)	r   r   r   r   r   ÚUPPERÚLOWERÚOFFr   r   r   r   r%   r%   S   s!   † ñð
 €EØ*à€EØ*à
€CÛ3r   r%   c                  óh   € ] tR t^ctRtRtRR R llt]R R l4       tR R lt	R	 R
 lt
R R ltRtR# )Ú	Collationa{	  Collation

:param locale: (string) The locale of the collation. This should be a string
    that identifies an `ICU locale ID` exactly. For example, ``en_US`` is
    valid, but ``en_us`` and ``en-US`` are not. Consult the MongoDB
    documentation for a list of supported locales.
:param caseLevel: (optional) If ``True``, turn on case sensitivity if
    `strength` is 1 or 2 (case sensitivity is implied if `strength` is
    greater than 2). Defaults to ``False``.
:param caseFirst: (optional) Specify that either uppercase or lowercase
    characters take precedence. Must be one of the following values:

      * :data:`~CollationCaseFirst.UPPER`
      * :data:`~CollationCaseFirst.LOWER`
      * :data:`~CollationCaseFirst.OFF` (the default)

:param strength: Specify the comparison strength. This is also
    known as the ICU comparison level. This must be one of the following
    values:

      * :data:`~CollationStrength.PRIMARY`
      * :data:`~CollationStrength.SECONDARY`
      * :data:`~CollationStrength.TERTIARY` (the default)
      * :data:`~CollationStrength.QUATERNARY`
      * :data:`~CollationStrength.IDENTICAL`

    Each successive level builds upon the previous. For example, a
    `strength` of :data:`~CollationStrength.SECONDARY` differentiates
    characters based both on the unadorned base character and its accents.

:param numericOrdering: If ``True``, order numbers numerically
    instead of in collation order (defaults to ``False``).
:param alternate: Specify whether spaces and punctuation are
    considered base characters. This must be one of the following values:

      * :data:`~CollationAlternate.NON_IGNORABLE` (the default)
      * :data:`~CollationAlternate.SHIFTED`

:param maxVariable: When `alternate` is
    :data:`~CollationAlternate.SHIFTED`, this option specifies what
    characters may be ignored. This must be one of the following values:

      * :data:`~CollationMaxVariable.PUNCT` (the default)
      * :data:`~CollationMaxVariable.SPACE`

:param normalization: If ``True``, normalizes text into Unicode
    NFD. Defaults to ``False``.
:param backwards: If ``True``, accents on characters are
    considered from the back of the word to the front, as it is done in some
    French dictionary ordering traditions. Defaults to ``False``.
:param kwargs: Keyword arguments supplying any additional options
    to be sent with this Collation object.

.. versionadded: 3.4

Nc               óD   € V ^8„  d   QhRRRRRRRRR	RR
RRRRRRRRRRR/# )é   ÚlocaleÚstrÚ	caseLevelzOptional[bool]Ú	caseFirstzOptional[str]ÚstrengthzOptional[int]ÚnumericOrderingÚ	alternateÚmaxVariableÚnormalizationÚ	backwardsÚkwargsr   ÚreturnÚNoner   )Úformats   "r   Ú__annotate__ÚCollation.__annotate__Ÿ   sx   € ÷ !'ñ !'àð!'ð "ð!'ð !ð	!'ð
  ð!'ð (ð!'ð !ð!'ð #ð!'ð &ð!'ð "ð!'ð ð!'ð 
ñ!'r   c
                	ó¤  € \         P                  ! R V4      pR V/V n        Ve   \        RV4      V P                  R&   Ve%   \         P                  ! RV4      V P                  R&   Ve%   \         P                  ! RV4      V P                  R&   Ve   \        RV4      V P                  R&   Ve%   \         P                  ! RV4      V P                  R&   Ve%   \         P                  ! RV4      V P                  R&   Ve   \        RV4      V P                  R&   V	e   \        R	V	4      V P                  R	&   V P                  P                  V
4       R# )
r0   Nr2   r3   r4   r5   r6   r7   r8   r9   )r   Úvalidate_stringÚ_Collation__documentr   Úvalidate_integerÚupdate)Úselfr0   r2   r3   r4   r5   r6   r7   r8   r9   r:   s   &&&&&&&&&&,r   Ú__init__ÚCollation.__init__Ÿ   s,  € ô ×'Ò'¨°&Ó9ˆØ+3°VÐ*<ˆŒØÒ Ü+;¸KÈÓ+SˆD�O‰O˜KÑ(ØÒ Ü+1×+AÒ+AÀ+ÈyÓ+YˆD�O‰O˜KÑ(ØÒÜ*0×*AÒ*AÀ*ÈhÓ*WˆD�O‰O˜JÑ'ØÒ&Ü1AØ! ?ó2ˆD�O‰OÐ-Ñ.ð Ò Ü+1×+AÒ+AÀ+ÈyÓ+YˆD�O‰O˜KÑ(ØÒ"Ü-3×-CÒ-CÀMÐS^Ó-_ˆD�O‰O˜MÑ*ØÒ$Ü/?ÀÐQ^Ó/_ˆD�O‰O˜OÑ,ØÒ Ü+;¸KÈÓ+SˆD�O‰O˜KÑ(Ø�‰×Ñ˜vÖ&r   c               ó   € V ^8„  d   QhRR/# )r/   r;   zdict[str, Any]r   )r=   s   "r   r>   r?   Ã   s   € ÷ &ñ &˜.ñ &r   c                ó6   € V P                   P                  4       # )z¯The document representation of this collation.

.. note::
  :class:`Collation` is immutable. Mutating the value of
  :attr:`document` does not mutate this :class:`Collation`.
)rB   Úcopy)rE   s   &r   ÚdocumentÚCollation.documentÂ   s   € ð �‰×#Ñ#Ó%Ð%r   c               ó   € V ^8„  d   QhRR/# )r/   r;   r1   r   )r=   s   "r   r>   r?   Ì   s   € ÷ añ a˜#ñ ar   c                	óp   a€ V P                   oR P                  RP                  V3R lS 4       4      4      # )zCollation({})z, c              3  ó@   <"  € T F  q R SV,          : 2x € K  	  R# 5i)Ú=Nr   )Ú.0ÚkeyrK   s   & €r   Ú	<genexpr>Ú%Collation.__repr__.<locals>.<genexpr>Î   s!   øé € Ð/_ÑV^Ès°%°q¸À#½Ñ8IÕ0JÓV^ùs   ƒ)rK   r=   Újoin)rE   rK   s   &@r   Ú__repr__ÚCollation.__repr__Ì   s-   ø€ Ø—=‘=ˆØ×%Ñ% d§i¡iÔ/_ÑV^Ó/_Ó&_Ó`Ð`r   c               ó    € V ^8„  d   QhRRRR/# ©r/   Úotherr   r;   Úboolr   )r=   s   "r   r>   r?   Ð   s   € ÷ ñ ˜Cð  Dñ r   c                	ól   € \        V\        4      '       d   V P                  VP                  8H  # \        # ©N)Ú
isinstancer-   rK   ÚNotImplemented©rE   rZ   s   &&r   Ú__eq__ÚCollation.__eq__Ð   s(   € Ü�eœY×'Ò'Ø—=‘= E§N¡NÑ2Ð2ÜÐr   c               ó    € V ^8„  d   QhRRRR/# rY   r   )r=   s   "r   r>   r?   Õ   s   € ÷ !ñ !˜Cð ! Dñ !r   c                	ó   € W8X  * # r]   r   r`   s   &&r   Ú__ne__ÚCollation.__ne__Õ   s   € ØÒ Ð r   )Ú
__document)NNNNNNNN)r   r   r   r   r   Ú	__slots__rF   ÚpropertyrK   rV   ra   re   r   r   r   r   r-   r-   c   s>   † ñ7ðr  €I÷!'ðF ô&ó ð&õaõ÷
!ñ !r   r-   c               ó    € V ^8„  d   QhRRRR/# )r/   Úvaluez-Optional[Union[Mapping[str, Any], Collation]]r;   zOptional[dict[str, Any]]r   )r=   s   "r   r>   r>   Ù   s    € ÷ 	]ñ 	]Ø8ð	]àñ	]r   c                ó˜   € V f   R # \        V \        4      '       d   V P                  # \        V \        4      '       d   V # \	        R4      h)NzEcollation must be a dict, an instance of collation.Collation, or None)r^   r-   rK   ÚdictÚ	TypeError)rk   s   &r   Úvalidate_collation_or_nonero   Ù   sA   € ð ‚}ÙÜ�%œ×#Ò#Ø�~‰~ÐÜ�%œ×ÒØˆÜ
Ð[Ó
\Ð\r   N)r   Ú
__future__r   Útypingr   r   r   r   Úpymongor   Úpymongo.write_concernr   r
   r   r   r%   r-   ro   r   r   r   Ú<module>rt      sX   ðñõ #ç 0Ó 0å Ý 2÷Oñ O÷,ñ ÷&
$ñ 
$÷4ñ 4÷ s!ñ s!÷l	]r   