+
    ` Àj©1  ã                  ó  a € 0 t $ R t^ RIHt ^ RIHt ^ RIHtHtH	t	H
t
HtHtHt ^ RIt^ RIHt ]'       d   ^ RIHt ^ RIHt ^ RIHtHt R	]R
&    ^ RIt ! R R]4      tR#   ] d    Rt]P4                  ! R4        L*i ; i)a,  Integration code for CSS selectors using `Soup Sieve <https://facelessuser.github.io/soupsieve/>`_ (pypi: ``soupsieve``).

Acquire a `CSS` object through the `element.Tag.css` attribute of
the starting point of your CSS selector, or (if you want to run a
selector against the entire document) of the `BeautifulSoup` object
itself.

The main advantage of doing this instead of using ``soupsieve``
functions is that you don't need to keep passing the `element.Tag` to be
selected against, since the `CSS` object is permanently scoped to that
`element.Tag`.

)Úannotations)Ú
ModuleType)ÚAnyÚcastÚIterableÚIteratorÚMutableSequenceÚOptionalÚTYPE_CHECKINGN)Ú_NamespaceMapping)Ú	SoupSieve)Úelement)Ú	ResultSetÚTagúOptional[ModuleType]Ú	soupsievezEThe soupsieve package is not installed. CSS selectors cannot be used.c                  ó¾   € ] tR t^-tRtRR R lltR R ltR R ltR	 R
 ltRR R llt	RR R llt
RR R lltRR R lltRR R lltRR R lltRR R lltRtR# )ÚCSSat  A proxy object against the ``soupsieve`` library, to simplify its
CSS selector API.

You don't need to instantiate this class yourself; instead, use
`element.Tag.css`.

:param tag: All CSS selectors run by this object will use this as
    their starting point.

:param api: An optional drop-in replacement for the ``soupsieve`` module,
    intended for use in unit tests.
Nc               ó    € V ^8„  d   QhRRRR/# )é   Útagzelement.TagÚapir   © )Úformats   "Ú[/var/www/html/mycamper/aliexpress-site/backend/venv/lib/python3.14/site-packages/bs4/css.pyÚ__annotate__ÚCSS.__annotate__;   s   € ÷ ñ ˜Kð Ð.Bñ ó    c                	óP   € Vf   \         pVf   \        R4      hW n        Wn        R # )NzLCannot execute CSS selectors because the soupsieve package is not installed.)r   ÚNotImplementedErrorr   r   )Úselfr   r   s   &&&r   Ú__init__ÚCSS.__init__;   s-   € ØŠ;ÜˆCØŠ;Ü%Ø^óð ð ŒØŽr   c               ó    € V ^8„  d   QhRRRR/# )r   ÚidentÚstrÚreturnr   )r   s   "r   r   r   E   s   € ÷ 
1ñ 
1˜Cð 
1 Cñ 
1r   c                óz   € \         f   \        R4      h\        \        V P                  P                  V4      4      # )zÏEscape a CSS identifier.

This is a simple wrapper around `soupsieve.escape() <https://facelessuser.github.io/soupsieve/api/#soupsieveescape>`_. See the
documentation for that function for more information.
zMCannot escape CSS identifiers because the soupsieve package is not installed.)r   r   r   r%   r   Úescape)r    r$   s   &&r   r(   Ú
CSS.escapeE   s6   € ô ÒÜ%Ø_óð ô ”C˜Ÿ™Ÿ™¨Ó/Ó0Ð0r   c               ó$   € V ^8„  d   QhRRRRRR/# )r   ÚnsúOptional[_NamespaceMapping]Úselectr%   r&   r   )r   s   "r   r   r   Q   s$   € ÷ 	ñ 	Ø-ð	Ø7:ð	à	$ñ	r   c                ó„   € \        W P                  P                  4      '       g   Vf   V P                  P                  pV# )z%Normalize a dictionary of namespaces.)Ú
isinstancer   r   r   Ú_namespaces)r    r+   r-   s   &&&r   Ú_nsÚCSS._nsQ   s3   € ô ˜&§(¡(×"4Ñ"4×5Ò5¸"º*ð —‘×%Ñ%ˆBØˆ	r   c               ó    € V ^8„  d   QhRRRR/# )r   ÚresultszMutableSequence[Tag]r&   zResultSet[Tag]r   )r   s   "r   r   r   \   s   € ÷ (ñ (Ð/ð (°Nñ (r   c                ó    € ^ RI Hp V! RV4      # )a  Normalize a list of results to a py:class:`ResultSet`.

A py:class:`ResultSet` is more consistent with the rest of
Beautiful Soup's API, and :py:meth:`ResultSet.__getattr__` has
a helpful error message if you try to treat a list of results
as a single result (a common mistake).
)r   N)Úbs4r   )r    r4   r   s   && r   Ú_rsÚCSS._rs\   s   € õ 	"á˜˜wÓ'Ð'r   c          
     ó,   € V ^8„  d   QhRRRRRRRRR	R
/# )r   r-   r%   Ú
namespacesr,   ÚflagsÚintÚkwargsr   r&   r   r   )r   s   "r   r   r   i   sC   € ÷ Wñ WàðWð 0ðWð ð	Wð
 ðWð 
ñWr   c                ó\   € V P                   P                  ! WP                  W!4      V3/ VB # )a§  Pre-compile a selector and return the compiled object.

:param selector: A CSS selector.

:param namespaces: A dictionary mapping namespace prefixes
   used in the CSS selector to namespace URIs. By default,
   Beautiful Soup will use the prefixes it encountered while
   parsing the document.

:param flags: Flags to be passed into Soup Sieve's
    `soupsieve.compile() <https://facelessuser.github.io/soupsieve/api/#soupsievecompile>`_ method.

:param kwargs: Keyword arguments to be passed into Soup Sieve's
   `soupsieve.compile() <https://facelessuser.github.io/soupsieve/api/#soupsievecompile>`_ method.

:return: A precompiled selector object.
:rtype: soupsieve.SoupSieve
)r   Úcompiler1   ©r    r-   r:   r;   r=   s   &&&&,r   r?   ÚCSS.compilei   s)   € ð2 �x‰x×Ò ¯©°Ó(DÀeÑVÈvÑVÐVr   c          
     ó,   € 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&   zelement.Tag | Noner   )r   s   "r   r   r   „   s<   € ÷ 
ñ 
àð
ð 0ð
ð ð	
ð
 ð
ð 
ñ
r   c                ór   € V P                   P                  ! WP                  V P                  W!4      V3/ VB # )aY  Perform a CSS selection operation on the current Tag and return the
first result, if any.

This uses the Soup Sieve library. For more information, see
that library's documentation for the `soupsieve.select_one() <https://facelessuser.github.io/soupsieve/api/#soupsieveselect_one>`_ method.

:param selector: A CSS selector.

:param namespaces: A dictionary mapping namespace prefixes
   used in the CSS selector to namespace URIs. By default,
   Beautiful Soup will use the prefixes it encountered while
   parsing the document.

:param flags: Flags to be passed into Soup Sieve's
    `soupsieve.select_one() <https://facelessuser.github.io/soupsieve/api/#soupsieveselect_one>`_ method.

:param kwargs: Keyword arguments to be passed into Soup Sieve's
   `soupsieve.select_one() <https://facelessuser.github.io/soupsieve/api/#soupsieveselect_one>`_ method.
)r   Ú
select_oner   r1   r@   s   &&&&,r   rD   ÚCSS.select_one„   s7   € ð4 �x‰x×"Ò"Ø—H‘H˜dŸh™h zÓ:¸Eñ
ØEKñ
ð 	
r   c               ó0   € V ^8„  d   QhRRRRRRRRRR	R
R/# )r   r-   r%   r:   r,   Úlimitr<   r;   r=   r   r&   úResultSet[element.Tag]r   )r   s   "r   r   r   ¢   sF   € ÷ #
ñ #
àð#
ð 0ð#
ð ð	#
ð
 ð#
ð ð#
ð 
 ñ#
r   c           
     óœ   € Vf   ^ pV P                  V P                  P                  ! WP                  V P	                  W!4      W43/ VB 4      # )aq  Perform a CSS selection operation on the current `element.Tag`.

This uses the Soup Sieve library. For more information, see
that library's documentation for the `soupsieve.select() <https://facelessuser.github.io/soupsieve/api/#soupsieveselect>`_ method.

:param selector: A CSS selector.

:param namespaces: A dictionary mapping namespace prefixes
    used in the CSS selector to namespace URIs. By default,
    Beautiful Soup will pass in the prefixes it encountered while
    parsing the document.

:param limit: After finding this number of results, stop looking.

:param flags: Flags to be passed into Soup Sieve's
    `soupsieve.select() <https://facelessuser.github.io/soupsieve/api/#soupsieveselect>`_ method.

:param kwargs: Keyword arguments to be passed into Soup Sieve's
   `soupsieve.select() <https://facelessuser.github.io/soupsieve/api/#soupsieveselect>`_ method.
)r7   r   r-   r   r1   ©r    r-   r:   rG   r;   r=   s   &&&&&,r   r-   Ú
CSS.select¢   sK   € ð8 Š=ØˆEà�x‰xØ�H‰H�OŠOØŸ™ $§(¡(¨:Ó">ÀñØPVñó
ð 	
r   c               ó0   € V ^8„  d   QhRRRRRRRRRR	R
R/# )r   r-   r%   r:   r,   rG   r<   r;   r=   r   r&   zIterator[element.Tag]r   )r   s   "r   r   r   Ç   sF   € ÷ !
ñ !
àð!
ð 0ð!
ð ð	!
ð
 ð!
ð ð!
ð 
ñ!
r   c                ór   € V P                   P                  ! WP                  V P                  W!4      W43/ VB # )aÕ  Perform a CSS selection operation on the current `element.Tag`.

This uses the Soup Sieve library. For more information, see
that library's documentation for the `soupsieve.iselect()
<https://facelessuser.github.io/soupsieve/api/#soupsieveiselect>`_
method. It is the same as select(), but it returns a generator
instead of a list.

:param selector: A string containing a CSS selector.

:param namespaces: A dictionary mapping namespace prefixes
    used in the CSS selector to namespace URIs. By default,
    Beautiful Soup will pass in the prefixes it encountered while
    parsing the document.

:param limit: After finding this number of results, stop looking.

:param flags: Flags to be passed into Soup Sieve's
    `soupsieve.iselect() <https://facelessuser.github.io/soupsieve/api/#soupsieveiselect>`_ method.

:param kwargs: Keyword arguments to be passed into Soup Sieve's
   `soupsieve.iselect() <https://facelessuser.github.io/soupsieve/api/#soupsieveiselect>`_ method.
)r   Úiselectr   r1   rJ   s   &&&&&,r   rN   ÚCSS.iselectÇ   s7   € ð> �x‰x×ÒØ—H‘H˜dŸh™h zÓ:¸Eñ
ØLRñ
ð 	
r   c          
     ó,   € 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&   zOptional[element.Tag]r   )r   s   "r   r   r   ê   s<   € ÷ 
ñ 
àð
ð 0ð
ð ð	
ð
 ð
ð 
ñ
r   c                ór   € V P                   P                  ! WP                  V P                  W!4      V3/ VB # )aU  Find the `element.Tag` closest to this one that matches the given selector.

This uses the Soup Sieve library. For more information, see
that library's documentation for the `soupsieve.closest()
<https://facelessuser.github.io/soupsieve/api/#soupsieveclosest>`_
method.

:param selector: A string containing a CSS selector.

:param namespaces: A dictionary mapping namespace prefixes
    used in the CSS selector to namespace URIs. By default,
    Beautiful Soup will pass in the prefixes it encountered while
    parsing the document.

:param flags: Flags to be passed into Soup Sieve's
    `soupsieve.closest() <https://facelessuser.github.io/soupsieve/api/#soupsieveclosest>`_ method.

:param kwargs: Keyword arguments to be passed into Soup Sieve's
   `soupsieve.closest() <https://facelessuser.github.io/soupsieve/api/#soupsieveclosest>`_ method.

)r   Úclosestr   r1   r@   s   &&&&,r   rR   ÚCSS.closestê   s7   € ð8 �x‰x×ÒØ—H‘H˜dŸh™h zÓ:¸Eñ
ØEKñ
ð 	
r   c          
     ó,   € 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&   Úboolr   )r   s   "r   r   r   
  s<   € ÷ $
ñ $
àð$
ð 0ð$
ð ð	$
ð
 ð$
ð 
ñ$
r   c                óŽ   € \        \        V P                  P                  ! WP                  V P                  W!4      V3/ VB 4      # )a7  Check whether or not this `element.Tag` matches the given CSS selector.

This uses the Soup Sieve library. For more information, see
that library's documentation for the `soupsieve.match()
<https://facelessuser.github.io/soupsieve/api/#soupsievematch>`_
method.

:param: a CSS selector.

:param namespaces: A dictionary mapping namespace prefixes
    used in the CSS selector to namespace URIs. By default,
    Beautiful Soup will pass in the prefixes it encountered while
    parsing the document.

:param flags: Flags to be passed into Soup Sieve's
    `soupsieve.match()
    <https://facelessuser.github.io/soupsieve/api/#soupsievematch>`_
    method.

:param kwargs: Keyword arguments to be passed into SoupSieve's
    `soupsieve.match()
    <https://facelessuser.github.io/soupsieve/api/#soupsievematch>`_
    method.
)r   rU   r   Úmatchr   r1   r@   s   &&&&,r   rW   Ú	CSS.match
  s@   € ô> ÜØ�H‰H�NŠNØŸ™ $§(¡(¨:Ó">ÀñØIOñó
ð 	
r   c          
     ó,   € 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&   rH   r   )r   s   "r   r   r   0  s<   € ÷ #
ñ #
àð#
ð 0ð#
ð ð	#
ð
 ð#
ð 
 ñ#
r   c           
     ó�   € V P                  V P                  P                  ! WP                  V P	                  W!4      V3/ VB 4      # )a¶  Filter this `element.Tag`'s direct children based on the given CSS selector.

This uses the Soup Sieve library. It works the same way as
passing a `element.Tag` into that library's `soupsieve.filter()
<https://facelessuser.github.io/soupsieve/api/#soupsievefilter>`_
method. For more information, see the documentation for
`soupsieve.filter()
<https://facelessuser.github.io/soupsieve/api/#soupsievefilter>`_.

:param namespaces: A dictionary mapping namespace prefixes
    used in the CSS selector to namespace URIs. By default,
    Beautiful Soup will pass in the prefixes it encountered while
    parsing the document.

:param flags: Flags to be passed into Soup Sieve's
    `soupsieve.filter()
    <https://facelessuser.github.io/soupsieve/api/#soupsievefilter>`_
    method.

:param kwargs: Keyword arguments to be passed into SoupSieve's
    `soupsieve.filter()
    <https://facelessuser.github.io/soupsieve/api/#soupsievefilter>`_
    method.
)r7   r   Úfilterr   r1   r@   s   &&&&,r   r[   Ú
CSS.filter0  sA   € ð> �x‰xØ�H‰H�OŠOØŸ™ $§(¡(¨:Ó">ÀñØIOñó
ð 	
r   )r   r   )N)Né    )Nr]   r]   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r!   r(   r1   r7   r?   rD   r-   rN   rR   rW   r[   Ú__static_attributes__r   r   r   r   r   -   sH   † ñ÷õ
1õ	õ(÷W÷6
÷<#
÷J!
÷F
÷@$
÷L#
ó #
r   r   )Ú__conditional_annotations__rb   Ú
__future__r   Útypesr   Útypingr   r   r   r   r   r	   r
   ÚwarningsÚbs4._typingr   r   r   r6   r   Úbs4.elementr   r   Ú__annotations__ÚImportErrorÚwarnÚobjectr   )rd   s   @r   Ú<module>ro      sw   øðôõ #å ÷÷ ñ ó Ý )çÝ#Ýß*àÓ ðÛôf
ˆ&ö f
øð ô Ø€IØ‡M‚MØOöðús   ÁA" Á"B Á?B 