ó
    �œ‘hP  ã            
       óZ  • % S r SSKJrJr  SSKJrJrJrJr  SSK	r
/ r\\   \S'   S\\\4   4S jrS\\   4S jrS\4S	 jrS
r\\S'   \" 5       r\\S'   \" 5       r\\S'   \" 5       r\\S'    \(       a  SSKJr  SSKrSSKJr  SSKJrJrJ r   SSK!J"r"J#r#  \\"/\RH                  RJ                  4   r&\\S'   S\"S\RH                  RJ                  4S jr'S\\    S\S\(4S jr)S\S\S\\*\\S-  4      SS4S jr+ " S S\#5      r,S\S\-4S  jr.g! \/ a  r0S\S\-4S! jr. Sr0C0gSr0C0ff = f)"a  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

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                  ó  • S[         R                  4S[         R                  4S[         R                  4S[         R                  4S[         R
                  4S[         R                  4S[         R                  4S[         R                  4S	[         R                  4S
[         R                  4S[         R                  4/n 0 nU  H@  u  p#S[         R                  " U5      R                  -  n[         SU S3U[         SU 3'   MB     U$ )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        Ú\C:\Users\psant\Downloads\Noiseback\school\venv\Lib\site-packages\numpy/typing/mypy_plugin.pyÚ_get_precision_dictr/   ,   sá   € à	”b—g‘gÐØ	”r—x‘xÐ Ø	”b—g‘gÐØ	”b—g‘gÐØ	”R—W‘WÐØ	”b—g‘gÐØ	œ"Ÿ+™+Ð&à	”b—g‘gÐØ	œŸ	™	Ð"Ø	œŸ	™	Ð"Ø	œBŸM™MÐ*ð€Eð €CÛ‰	ˆØ”—’˜“×&Ñ&Ñ&ˆÜ,3¨9°MÀ!ÀÀCÐ)HˆŒwˆi�w˜t˜fÐ%Ó&ñ ð €Jó    c                  óh   • / SQn U  Vs/ s H  n[        [        U5      (       d  M  UPM     sn$ s  snf )N)Úfloat96Úfloat128Ú
complex192Ú
complex256)Úhasattrr   )Úextended_namesÚis     r.   Ú_get_extended_precision_listr9   B   s+   € ò€Nñ &Ó8’~�!¬´°Q¯�A‘~Ñ8Ð8ùÒ8s   ‰/¦/c                  ój   • SSSS.R                  [        R                  " S5      R                  S5      $ )NÚc_intÚc_longÚ
c_longlong)r8   ÚlÚqr-   )Úgetr   r&   Úchar© r0   r.   Ú_get_c_intp_namerC   K   s3   € ð ØØñ÷ 
�cŒ"�(Š(�3‹-×
Ñ
˜hÓ'ð	(r0   znumpy._typingr(   Ú_PRECISION_DICTÚ_EXTENDED_PRECISION_LISTÚ_C_INTP)ÚTypeAnalyser)ÚPRI_MED)Ú
ImportFromÚMypyFileÚ	Statement)ÚAnalyzeTypeContextÚPluginÚ	_HookFuncÚctxc                 ó¢   • U u  pnUR                   R                  S5      S   n[        [         SU 3   n[	        SU5      R                  U5      $ )z;Replace a type-alias with a concrete ``NBitBase`` subclass.Ú.éÿÿÿÿr   rG   )r+   ÚsplitrD   r(   r   Ú
named_type)rO   r,   Ú_Úapir+   Úname_news         r.   Ú_hookrX   s   sO   € à‰ˆ�Ø�x‰x�~‰~˜cÓ" 2Ñ&ˆÜ"¤g Y¨g°d°VÐ#<Ñ=ˆÜ�N CÓ(×3Ñ3°HÓ=Ð=r0   ÚiterableÚidc                 ór   • [        U 5       H  u  p#[        USS5      U:X  d  M  Us  $    [        SU< 35      e)z>Identify the first ``ImportFrom`` instance the specified `id`.rZ   NzBFailed to identify a `ImportFrom` instance with the following id: )Ú	enumerateÚgetattrÚ
ValueError)rY   rZ   r8   Úvalues       r.   Ú_indexr`   z   sG   € ä! (Ö+‰HˆAÜ�u˜d DÓ)¨RÕ/Ø’ñ ,ô ð 3Ø35±&ð:ó ;ð 	;r0   ÚfileÚmoduleÚimportsc                 ó˜   • [        USUS9nSUl        U R                  [        SU R                  5      4 H  n[        XA5      nX4U'   M     g)z<Override the first `module`-based import with new `imports`.r   )r)   Tzlist[Statement]N)rI   Úis_top_levelÚdefsr   rc   r`   )ra   rb   rc   Ú
import_objÚlstr8   s         r.   Ú_override_importsri   ‚   sM   € ô   ¨°Ñ9ˆ
Ø"&ˆ
Ôð —I‘IœtÐ$5°t·|±|ÓDÓEˆCÜ�sÓ#ˆAØ�‹Fò Fr0   c                   óT   • \ rS rSrSrS\S\S-  4S jrS\S\	\
\\\4      4S jrS	rg)
Ú_NumpyPluginé‘   z>A mypy plugin for handling versus numpy-specific typing tasks.Úfullnamer
   Nc                 ó$   • U[         ;   a  [        $ g)z‡Set the precision of platform-specific `numpy.number`
subclasses.

For example: `numpy.int_`, `numpy.longlong` and `numpy.longdouble`.
N)rD   rX   )Úselfrm   s     r.   Úget_type_analyze_hookÚ"_NumpyPlugin.get_type_analyze_hook”   s   € ð œ?Ó*Ü�Ør0   ra   c           	      óÆ   • UR                   nUS:X  a)  [        U[         S3[         Vs/ s H  o3U4PM     snS9  OUS:X  a  [        US[        S4/S9  [
        US4/$ s  snf )zÜ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_precision)rc   znumpy.ctypeslibÚctypesÚ_c_intprR   )rm   ri   r(   rE   rF   rH   )ro   ra   rm   Úvs       r.   Úget_additional_depsÚ _NumpyPlugin.get_additional_depsž   s}   € ð —}‘}ˆHØ˜7Ó"Ü!ØÜ�iÐ3Ð4Ý-EÓFÒ-E¨ ›VÑ-EÑFóð
 Ð.Ó.Ü!ØØÜ% yÐ1Ð2òô
 ˜h¨Ð+Ð,Ð,ùò Gs   ©ArB   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__ÚstrrN   rp   rJ   ÚlistÚtupleÚintrw   Ú__static_attributes__rB   r0   r.   rk   rk   ‘   sB   † ÙLð	°#ð 	¸)ÀdÑ:Jô 	ð	-Ø ð	-à�%˜˜S #˜Ñ&Ñ'÷	-r0   rk   Úversionc                 óV   • SS K nSnSU SU S3nUR                  U[        SS9  [        $ )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ÚDeprecationWarningrk   )rƒ   rˆ   ÚpluginÚwarn_msgs       r.   r‹   r‹   ·   sG   € Ûà+ˆð �ˆxð 1Ø17°ð 9(ð)ð 	ð
 	�‰�hÔ 2¸qˆÑAäÐr0   c                 ó   • [         e)N)Úe)rƒ   s    r.   r‹   r‹   l   s   € Üˆr0   )1r}   Úcollections.abcr   r   Útypingr   r   r   r   rs   r   r	   r   r~   Ú__annotations__Údictr/   r9   rC   r(   rD   rE   rF   Úmypy.typeanalrG   Ú
mypy.typesÚmypyÚ
mypy.buildrH   Ú
mypy.nodesrI   rJ   rK   Úmypy.pluginrL   rM   ÚtypesÚTyperN   rX   r�   r`   r€   ri   rk   Útyper‹   ÚModuleNotFoundErrorrŽ   rB   r0   r.   Ú<module>r�      s�  ðò!÷F /ß 8Ó 8ã à€ˆˆc‰Ó ð˜T # s (™^ô ð,9 d¨3¡iô 9ð(˜#ô (ð !€ˆÓ  ñ -Ó.€�Ó .ñ #?Ó"@Ð ˜%Ó @ñ "Ó#€ˆÓ #ðbÞÝ.ãÝ"ß:Ñ:ß6ð $Ð%7Ð$8¸$¿*¹*¿/¹/Ð$IÑJ€IˆyÓJð>Ð%ð >¨$¯*©*¯/©/ô >ð;˜ )Ñ,ð ;°#ð ;¸#ô ;ð Øð àð ð �e˜C  t¡˜OÑ,Ñ-ð ð 
ô	 ô$-�vô $-ðL˜ð  õ øð[ ó ð˜ð  ÷ ñ ûðús   Á/)D ÄD*Ä	D%Ä%D*