§
    `Štj¾  ã            
       ó\  — U d Z ddlmZmZ ddlmZmZmZmZ ddl	Z
g Zee         ed<   deeef         fd„Zdee         fd„Zdefd	„Zd
Zeed<    e¦   «         Zeed<    e¦   «         Zeed<    e¦   «         Zeed<   	 erddlmZ ddlZddlmZ ddlmZmZm Z  ddl!m"Z"m#Z# ee"gej$        j%        f         Z&eed<   de"dej$        j%        fd„Z'dee          dede(fd„Z)dededee*eedz  f                  ddfd„Z+ G d„ de#¦  «        Z,dede-fd „Z.dS # e/$ rZ0dede-fd!„Z.Y dZ0[0dS dZ0[0ww xY w)"aK  A mypy_ plugin for managing a number of platform-specific annotations.
Its functionality can be split into three distinct parts:

* Assigning the (platform-dependent) precisions of certain `~numpy.number`
  subclasses, including the likes of `~numpy.int_`, `~numpy.intp` and
  `~numpy.longlong`. See the documentation on
  :ref:`scalar types <arrays.scalars.built-in>` for a comprehensive overview
  of the affected classes. Without the plugin the precision of all relevant
  classes will be inferred as `~typing.Any`.
* Removing all extended-precision `~numpy.number` subclasses that are
  unavailable for the platform in question. Most notably this includes the
  likes of `~numpy.float128` and `~numpy.complex256`. Without the plugin *all*
  extended-precision types will, as far as mypy is concerned, be available
  to all platforms.
* Assigning the (platform-dependent) precision of `~numpy.ctypeslib.c_intp`.
  Without the plugin the type will default to `ctypes.c_int64`.

  .. versionadded:: 1.22

.. deprecated:: 2.3
    The :mod:`numpy.typing.mypy_plugin` entry-point is deprecated in favor of
    platform-agnostic static type inference. Remove
    ``numpy.typing.mypy_plugin`` from the ``plugins`` section of your mypy
    configuration; if that surfaces new errors, please open an issue with a
    minimal reproducer.

Examples
--------
To enable the plugin, one must add it to their mypy `configuration file`_:

.. code-block:: ini

    [mypy]
    plugins = numpy.typing.mypy_plugin

.. _mypy: https://mypy-lang.org/
.. _configuration file: https://mypy.readthedocs.io/en/stable/config_file.html

é    )ÚCallableÚIterable)ÚTYPE_CHECKINGÚFinalÚ	TypeAliasÚcastNÚ__all__Úreturnc                  ó¨  — dt           j        fdt           j        fdt           j        fdt           j        fdt           j        fdt           j        fdt           j        fdt           j        fd	t           j	        fd
t           j
        fdt           j        fg} i }| D ];\  }}dt          j        |¦  «        j        z  }t          › d|› d�|t          › d|› �<   Œ<|S )NÚ	_NBitByteÚ
_NBitShortÚ	_NBitIntCÚ	_NBitIntPÚ_NBitIntÚ	_NBitLongÚ_NBitLongLongÚ	_NBitHalfÚ_NBitSingleÚ_NBitDoubleÚ_NBitLongDoubleé   z._nbit_base._ÚBitú._nbit.)ÚnpÚbyteÚshortÚintcÚintpÚint_ÚlongÚlonglongÚhalfÚsingleÚdoubleÚ
longdoubleÚdtypeÚitemsizeÚ_MODULE)ÚnamesÚretÚnameÚtypÚns        úV/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/numpy/typing/mypy_plugin.pyÚ_get_precision_dictr/   1   sÙ   € à	•b”gÐØ	•r”xÐ Ø	•b”gÐØ	•b”gÐØ	•R”WÐØ	•b”gÐØ	�"œ+Ð&à	•b”gÐØ	�œ	Ð"Ø	�œ	Ð"Ø	�BœMÐ*ð€Eð €CØð Ið I‰	ˆˆcØ•”˜‘”Ô&Ñ&ˆÝ,3Ð)HÐ)HÀ!Ð)HÐ)HÐ)Hˆ�wÐ%Ð%˜tÐ%Ð%Ñ&Ð&Ø€Jó    c                  ó"   — g d¢} d„ | D ¦   «         S )N)Úfloat96Úfloat128Ú
complex192Ú
complex256c                 ó<   — g | ]}t          t          |¦  «        ¯|‘ŒS © )Úhasattrr   )Ú.0Úis     r.   ú
<listcomp>z0_get_extended_precision_list.<locals>.<listcomp>N   s%   € Ð8Ð8Ð8�!­µ°Q©¬Ð8ˆAÐ8Ð8Ð8r0   r7   )Úextended_namess    r.   Ú_get_extended_precision_listr=   G   s)   € ðð ð €Nð 9Ð8�~Ð8Ñ8Ô8Ð8r0   c                  ód   — ddddœ                      t          j        d¦  «        j        d¦  «        S )NÚc_intÚc_longÚ
c_longlong)r:   ÚlÚqr-   )Úgetr   r&   Úcharr7   r0   r.   Ú_get_c_intp_namerF   P   s8   € ð ØØðð ÷ 
‚c�"Œ(�3‰-Œ-Ô
˜hÑ'Ô'ð	(r0   znumpy._typingr(   Ú_PRECISION_DICTÚ_EXTENDED_PRECISION_LISTÚ_C_INTP)ÚTypeAnalyser)ÚPRI_MED)Ú
ImportFromÚMypyFileÚ	Statement)ÚAnalyzeTypeContextÚPluginÚ	_HookFuncÚctxc                 óÂ   — | \  }}}|j                              d¦  «        d         }t          t          › d|› �         }t	          d|¦  «                             |¦  «        S )z;Replace a type-alias with a concrete ``NBitBase`` subclass.ú.éÿÿÿÿr   rJ   )r+   ÚsplitrG   r(   r   Ú
named_type)rR   r,   Ú_Úapir+   Úname_news         r.   Ú_hookr[   x   s[   € à‰ˆˆQ�ØŒx�~Š~˜cÑ"Ô" 2Ô&ˆÝ"¥gÐ#<Ð#<°dÐ#<Ð#<Ô=ˆÝ�N CÑ(Ô(×3Ò3°HÑ=Ô=Ð=r0   ÚiterableÚidc                 ó‚   — t          | ¦  «        D ]\  }}t          |dd¦  «        |k    r|c S Œt          d|›�¦  «        ‚)z>Identify the first ``ImportFrom`` instance the specified `id`.r]   NzBFailed to identify a `ImportFrom` instance with the following id: )Ú	enumerateÚgetattrÚ
ValueError)r\   r]   r:   Úvalues       r.   Ú_indexrc      sf   € å! (Ñ+Ô+ð 	ð 	‰HˆAˆuÝ�u˜d DÑ)Ô)¨RÒ/Ð/Ø���ð 0åð :Ø35ð:ð :ñ ;ô ;ð 	;r0   ÚfileÚmoduleÚimportsc                 ó    — t          |d|¬¦  «        }d|_        | j        t          d| j        ¦  «        fD ]}t          ||¦  «        }|||<   ŒdS )z<Override the first `module`-based import with new `imports`.r   )r)   Tzlist[Statement]N)rL   Úis_top_levelÚdefsr   rf   rc   )rd   re   rf   Ú
import_objÚlstr:   s         r.   Ú_override_importsrl   ‡   si   € õ   ¨°Ð9Ñ9Ô9ˆ
Ø"&ˆ
Ôð ”I�tÐ$5°t´|ÑDÔDÐEð 	 ð 	 ˆCÝ�s˜FÑ#Ô#ˆAØˆC�‰FˆFð	 ð 	 r0   c                   óV   — e Zd ZdZdededz  fd„Zdedee	e
ee
f                  fd„ZdS )Ú_NumpyPluginz>A mypy plugin for handling versus numpy-specific typing tasks.Úfullnamer
   Nc                 ó&   — |t           v rt          S dS )z«Set the precision of platform-specific `numpy.number`
            subclasses.

            For example: `numpy.int_`, `numpy.longlong` and `numpy.longdouble`.
            N)rG   r[   )Úselfro   s     r.   Úget_type_analyze_hookz"_NumpyPlugin.get_type_analyze_hook™   s   € ð �?Ð*Ð*Ý�Ø�4r0   rd   c                 óÆ   — |j         }|dk    r*t          |t          › d�d„ t          D ¦   «         ¬¦  «         n |dk    rt          |dt          dfg¬¦  «         t
          |dfgS )	a  Handle all import-based overrides.

            * Import platform-specific extended-precision `numpy.number`
              subclasses (*e.g.* `numpy.float96` and `numpy.float128`).
            * Import the appropriate `ctypes` equivalent to `numpy.intp`.

            Únumpyz._extended_precisionc                 ó   — g | ]}||f‘ŒS r7   r7   )r9   Úvs     r.   r;   z4_NumpyPlugin.get_additional_deps.<locals>.<listcomp>²   s   € ÐFÐFÐF¨˜a ˜VÐFÐFÐFr0   )rf   znumpy.ctypeslibÚctypesÚ_c_intprU   )ro   rl   r(   rH   rI   rK   )rq   rd   ro   s      r.   Úget_additional_depsz _NumpyPlugin.get_additional_deps£   s›   € ð ”}ˆHØ˜7Ò"Ð"Ý!ØÝÐ4Ð4Ð4ØFÐFÕ-EÐFÑFÔFðñ ô ð ð ð
 Ð.Ò.Ð.Ý!ØØÝ% yÐ1Ð2ðñ ô ð õ
 ˜h¨Ð+Ð,Ð,r0   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚstrrQ   rr   rM   ÚlistÚtupleÚintry   r7   r0   r.   rn   rn   –   su   € € € € € ØLÐLð	°#ð 	¸)ÀdÑ:Jð 	ð 	ð 	ð 	ð	-Ø ð	-à�%˜˜S #˜Ô&Ô'ð	-ð 	-ð 	-ð 	-ð 	-ð 	-r0   rn   Úversionc                 óh   — dd l }d}d|› d|› d�}|                     |t          d¬¦  «         t          S )Nr   znumpy.typing.mypy_pluginú`zS` is deprecated, and will be removed in a future release. Please remove `plugins = z/` in your mypy config.(deprecated in NumPy 2.3)é   )Ú
stacklevel)ÚwarningsÚwarnÚDeprecationWarningrn   )r‚   r‡   ÚpluginÚwarn_msgs       r.   rŠ   rŠ   ¼   sY   € Øˆˆˆà+ˆð)�ð )ð )Ø17ð)ð )ð )ð 	ð
 	�Š�hÕ 2¸qˆÑAÔAÐAåÐr0   c                 ó   — t           ‚)N)Úe)r‚   s    r.   rŠ   rŠ   q   s   € Ýˆr0   )1r}   Úcollections.abcr   r   Útypingr   r   r   r   rt   r   r	   r   r~   Ú__annotations__Údictr/   r=   rF   r(   rG   rH   rI   Úmypy.typeanalrJ   Ú
mypy.typesÚmypyÚ
mypy.buildrK   Ú
mypy.nodesrL   rM   rN   Úmypy.pluginrO   rP   ÚtypesÚTyperQ   r[   r�   rc   r€   rl   rn   ÚtyperŠ   ÚModuleNotFoundErrorr�   r7   r0   r.   ú<module>rœ      s$  ðð&ð &ð &ðP /Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ø 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8à Ð Ð Ð à€ˆˆcŒÐ Ð Ñ ð˜T # s (œ^ð ð ð ð ð,9 d¨3¤ið 9ð 9ð 9ð 9ð(˜#ð (ð (ð (ð (ð !€ˆÐ  Ð  Ñ  ð -Ð,Ñ.Ô.€�Ð .Ð .Ñ .ð #?Ð">Ñ"@Ô"@Ð ˜%Ð @Ð @Ñ @ð "Ð!Ñ#Ô#€ˆÐ #Ð #Ñ #ðbØð /Ø.Ð.Ð.Ð.Ð.Ð.àÐÐÐØ"Ð"Ð"Ð"Ð"Ð"Ø:Ð:Ð:Ð:Ð:Ð:Ð:Ð:Ð:Ð:Ø6Ð6Ð6Ð6Ð6Ð6Ð6Ð6ð $Ð%7Ð$8¸$¼*¼/Ð$IÔJ€IˆyÐJÐJÑJð>Ð%ð >¨$¬*¬/ð >ð >ð >ð >ð;˜ )Ô,ð ;°#ð ;¸#ð ;ð ;ð ;ð ;ð Øð àð ð �e˜C  t¡˜OÔ,Ô-ð ð 
ð	 ð  ð  ð  ð$-ð $-ð $-ð $-ð $-�vñ $-ô $-ð $-ðL˜ð  ð ð ð ð ð ð øð[ ð ð ð ð˜ð  ð ð ð ð ð ð ð ð ð ð øøøøðøøøs   Á>$D ÄD+ÄD&Ä&D+