+
    ÖÍi�  ã                   óÞ  a € R t+0 t R t^ RIHtHt ^ RIHtHtHtH	t	 ^ RI
t. t] ^ k R R ltR R ltR R	 ltR
t] ^k ]! 4       t] ^k ]! 4       t] ^k ]! 4       t] ^k  ]'       d   ^ RIHt ^ RIt^ RIHt ^ RIHtHtHt ^ RIHtH t  ]].]PB                  PD                  3,          t#] ^k R R lt$R R lt%R R lt& ! R R] 4      t'R R lt(R#   ]) d   t*R R lt( Rt*A*R# Rt*A*ii ; i)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ÚcastNc                óF   € V ^8„  d   QhR\         \        \        3,          /# ©é   Úreturn)ÚdictÚstr)Úformats   "Ú:/usr/lib/python3/dist-packages/numpy/typing/mypy_plugin.pyÚ__annotate__r   ,   s   € ÷ ñ œT¤#¤s (�^ñ ó    c                  ó  € R \         P                  3R\         P                  3R\         P                  3R\         P                  3R\         P
                  3R\         P                  3R\         P                  3R\         P                  3R\         P                  3R	\         P                  3R
\         P                  3.p / pV  FD  w  r#^\         P                  ! V4      P                  ,          p\         RV R2V\         RV 2&   KF  	  V# )Ú	_NBitByteÚ
_NBitShortÚ	_NBitIntCÚ	_NBitIntPÚ_NBitIntÚ	_NBitLongÚ_NBitLongLongÚ	_NBitHalfÚ_NBitSingleÚ_NBitDoubleÚ_NBitLongDoublez._nbit_base._ÚBitú._nbit.)ÚnpÚbyteÚshortÚintcÚintpÚint_ÚlongÚlonglongÚhalfÚsingleÚdoubleÚ
longdoubleÚdtypeÚitemsizeÚ_MODULE)ÚnamesÚretÚnameÚtypÚns        r   Ú_get_precision_dictr4   ,   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Ð%Ó&ñ ð €Jr   c                ó:   € V ^8„  d   QhR\         \        ,          /# r	   )Úlistr   )r   s   "r   r   r   B   s   € ÷ 9ñ 9¤d¬3¥iñ 9r   c                  óh   € . ROp V  Uu. uF  p\        \        V4      '       g   K  VNK  	  up# u upi )Úfloat96)r8   Úfloat128Ú
complex192Ú
complex256)Úhasattrr    )Úextended_namesÚis     r   Ú_get_extended_precision_listr?   B   s-   € ò€Nñ &Ó8‘~�!¬´°Q¯�AˆA‘~Ñ8Ð8ùÒ8s   ‰/¦/c                ó$   € V ^8„  d   QhR\         /# r	   )r   )r   s   "r   r   r   K   s   € ÷ (ñ (œ#ñ (r   c                  ón   € R RRRRR/P                  \        P                  ! R4      P                  R4      # )r>   Úc_intÚlÚc_longÚqÚ
c_longlongr3   )Úgetr    r,   Úchar© r   r   Ú_get_c_intp_namerJ   K   s9   € ð 	ˆWØˆXØˆ\ð÷ 
�cŒ"�(Š(�3‹-×
Ñ
˜hÓ'ð	(r   znumpy._typing)ÚTypeAnalyser)ÚPRI_MED)Ú
ImportFromÚMypyFileÚ	Statement)ÚAnalyzeTypeContextÚPluginc                óX   € V ^8„  d   QhR\         R\        P                  P                  /# )r
   Úctxr   )rP   ÚmypyÚtypesÚType)r   s   "r   r   r   s   s#   € ÷ >ñ >Ô%ð >¬$¯*©*¯/©/ñ >r   c                ó²   € V w  rpVP                   P                  R4      R,          p\        \         RV 2,          p\	        RV4      P                  V4      # )z;Replace a type-alias with a concrete ``NBitBase`` subclass.Ú.r   rK   éÿÿÿÿ)r1   ÚsplitÚ_PRECISION_DICTr.   r   Ú
named_type)rS   r2   Ú_Úapir1   Úname_news   &     r   Ú_hookr`   s   sO   € à‰ˆ�Ø�x‰x�~‰~˜cÓ" 2Õ&ˆÜ"¤g Y¨g°d°VÐ#<Õ=ˆÜ�N CÓ(×3Ñ3°HÓ=Ð=r   c                óR   € V ^8„  d   QhR\         \        ,          R\        R\        /# )r
   ÚiterableÚidr   )r   rO   r   Úint)r   s   "r   r   r   z   s&   € ÷ ;ñ ;œ¤)Õ,ð ;´#ð ;¼#ñ ;r   c                ót   € \        V 4       F  w  r#\        VRR4      V8X  g   K  Vu # 	  \        RV: 24      h)z>Identify the first ``ImportFrom`` instance the specified `id`.rc   NzBFailed to identify a `ImportFrom` instance with the following id: )Ú	enumerateÚgetattrÚ
ValueError)rb   rc   r>   Úvalues   &&  r   Ú_indexrj   z   sG   € ä! (Ö+‰HˆAÜ�u˜d DÓ)¨RÖ/Ø’ñ ,ô ð 3Ø35±&ð:ó ;ð 	;r   c          
      ó†   € V ^8„  d   QhR\         R\        R\        \        \        \        R,          3,          ,          RR/# )r
   ÚfileÚmoduleÚimportsNr   )rN   r   r6   Útuple)r   s   "r   r   r   ‚   sB   € ÷  ñ  Üð äð ô ”eœC¤ t¥˜OÕ,Õ-ð ð 
ñ	 r   c                ó    € \        V^ VR7      pRVn        V P                  \        RV P                  4      3 F  p\        WA4      pW4V&   K  	  R# )z<Override the first `module`-based import with new `imports`.)r/   Tzlist[Statement]N)rM   Úis_top_levelÚdefsr   rn   rj   )rl   rm   rn   Ú
import_objÚlstr>   s   &&&   r   Ú_override_importsru   ‚   sM   € ô   ¨°Ô9ˆ
Ø"&ˆ
Ôð —I‘IœtÐ$5°t·|±|ÓDÓEˆCÜ�sÓ#ˆAØ�‹Fó Fr   c                   óH   a € ] tR t^‘t o RtV 3R lR ltV 3R lR ltRtV tR# )Ú_NumpyPluginz>A mypy plugin for handling versus numpy-specific typing tasks.c                ó4   <€ V ^8„  d   QhRS[ RS[R,          /# )r
   Úfullnamer   N)r   Ú	_HookFunc)r   Ú__classdict__s   "€r   r   Ú_NumpyPlugin.__annotate__”   s    ø€ ÷ 	ñ 	±#ð 	¹)ÀdÕ:Jñ 	r   c                ó(   € V\         9   d   \        # R# )z‡Set the precision of platform-specific `numpy.number`
subclasses.

For example: `numpy.int_`, `numpy.longlong` and `numpy.longdouble`.
N)r[   r`   )Úselfry   s   &&r   Úget_type_analyze_hookÚ"_NumpyPlugin.get_type_analyze_hook”   s   € ð œ?Ô*Ü�Ùr   c                óP   <€ V ^8„  d   QhRS[ RS[S[S[S[S[3,          ,          /# )r
   rl   r   )rN   r6   ro   rd   r   )r   r{   s   "€r   r   r|   ž   s-   ø€ ÷ 	-ñ 	-Ù ð	-á‘%™™S¡#˜Õ&Õ'ñ	-r   c           	     óÔ   € VP                   pVR8X  d,   \        T\         R2\         Uu. uF  q3V3NK  	  upR7       MVR8X  d   \        VR\        R3.R7       \
        VR3.# u upi )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)rn   znumpy.ctypeslibÚctypesÚ_c_intprY   )ry   ru   r.   Ú_EXTENDED_PRECISION_LISTÚ_C_INTPrL   )r~   rl   ry   Ú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%rI   N)	Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   r‰   Ú__static_attributes__Ú__classdictcell__)r{   s   @r   rw   rw   ‘   s   ø‡ € ÙL÷	ð 	÷	-ö 	-r   rw   c                ó0   € V ^8„  d   QhR\         R\        /# ©r
   Úversionr   ©r   Útype)r   s   "r   r   r   ·   s   € ÷ ñ œð ¤ñ r   c                 ó\   € ^ RI pRpRV RV R2pVP                  V\        ^R7       \        # )é    Nz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ÚDeprecationWarningrw   )r”   r›   ÚpluginÚwarn_msgs   &   r   rž   rž   ·   sG   € Ûà+ˆð �ˆxð 1Ø17°ð 9(ð)ð 	ð
 	�‰�hÔ 2¸qˆÔAäÐr   c                ó0   € V ^8„  d   QhR\         R\        /# r“   r•   )r   s   "r   r   r   l   s   € ÷ ñ œð ¤ñ r   c                 ó   € \         h)N)Úe)r”   s   &r   rž   rž   l   s   € Üˆr   c                ó  € V ^8„  d   Qh/ ^ \         9   d   \        \        ,          ;R&   ^\         9   d
   \        ;R&   ^\         9   d
   \        ;R&   ^\         9   d
   \        ;R&   ^\         9   d
   \        ;R&   ^\         9   d
   \        ;R&   # )r
   Ú__all__r.   r[   r†   r‡   rz   )Ú__conditional_annotations__r6   r   r   r   )r   s   "r   r   r      sŠ   € ÷ !ñ !÷P Ò ŒŒc�Ñ ñQ!÷f !Ò  ŒÑ  ñg!÷n /Ò .”Ñ .ño!÷t AÒ @œ%Ñ @ñu!÷z $Ò #ŒÑ #ñ{!÷` KÒJŒyÑJòa!r   ),r¥   r�   Úcollections.abcr   r   Útypingr   r   r   r   rƒ   r    r¤   r4   r?   rJ   r.   r[   r†   r‡   Úmypy.typeanalrK   Ú
mypy.typesrT   Ú
mypy.buildrL   Ú
mypy.nodesrM   rN   rO   Úmypy.pluginrP   rQ   rU   rV   rz   r`   rj   ru   rw   rž   ÚModuleNotFoundErrorr¢   r   )r¥   s   @r   Ú<module>r®      sÜ   øðö!÷F /ß 8Ó 8ã à€Ó õõ,9õ(ð !€Ó  ñ -Ó.€Ó .ñ #?Ó"@Ð Ó @ñ "Ó#€Ó #ðbßÝ.ãÝ"ß:Ñ:ß6ð $Ð%7Ð$8¸$¿*¹*¿/¹/Ð$IÕJ€IÓJõ>õ;õ ô$-�vô $-÷Løð[ ô ÷ó ûðús   Á!C Á)"C ÃC,ÃC'Ã'C,