ó
    Eñi‘(  ã                   ó‚   • S r SSKJrJrJrJrJrJrJrJ	r	J
r
JrJrJrJrJrJr  SSKJr  \" S5       " S S5      5       rg)zÖ
Array API Inspection namespace

This is the namespace for inspection functions as defined by the array API
standard. See
https://data-apis.org/array-api/latest/API_specification/inspection.html for
more details.

é    )ÚboolÚ	complex64Ú
complex128ÚdtypeÚfloat32Úfloat64Úint8Úint16Úint32Úint64ÚintpÚuint8Úuint16Úuint32Úuint64)Ú
set_moduleÚnumpyc                   óH   • \ rS rSrSrS rS rSS.S jrSSS.S	 jrS
 r	Sr
g)Ú__array_namespace_info__é   aO  
Get the array API inspection namespace for NumPy.

The array API inspection namespace defines the following functions:

- capabilities()
- default_device()
- default_dtypes()
- dtypes()
- devices()

See
https://data-apis.org/array-api/latest/API_specification/inspection.html
for more details.

Returns
-------
info : ModuleType
    The array API inspection namespace for NumPy.

Examples
--------
>>> info = np.__array_namespace_info__()
>>> info.default_dtypes()
{'real floating': numpy.float64,
 'complex floating': numpy.complex128,
 'integral': numpy.int64,
 'indexing': numpy.int64}

c                 ó   • SSSS.$ )a�  
Return a dictionary of array API library capabilities.

The resulting dictionary has the following keys:

- **"boolean indexing"**: boolean indicating whether an array library
  supports boolean indexing. Always ``True`` for NumPy.

- **"data-dependent shapes"**: boolean indicating whether an array
  library supports data-dependent output shapes. Always ``True`` for
  NumPy.

See
https://data-apis.org/array-api/latest/API_specification/generated/array_api.info.capabilities.html
for more details.

See Also
--------
__array_namespace_info__.default_device,
__array_namespace_info__.default_dtypes,
__array_namespace_info__.dtypes,
__array_namespace_info__.devices

Returns
-------
capabilities : dict
    A dictionary of array API library capabilities.

Examples
--------
>>> info = np.__array_namespace_info__()
>>> info.capabilities()
{'boolean indexing': True,
 'data-dependent shapes': True,
 'max dimensions': 64}

Té@   )zboolean indexingzdata-dependent shapeszmax dimensions© ©Úselfs    ÚR/home/mande/repo/quber/.venv/lib/python3.13/site-packages/numpy/_array_api_info.pyÚcapabilitiesÚ%__array_namespace_info__.capabilities?   s   € ðN !%Ø%)Ø ñ
ð 	
ó    c                 ó   • g)a¬  
The default device used for new NumPy arrays.

For NumPy, this always returns ``'cpu'``.

See Also
--------
__array_namespace_info__.capabilities,
__array_namespace_info__.default_dtypes,
__array_namespace_info__.dtypes,
__array_namespace_info__.devices

Returns
-------
device : str
    The default device used for new NumPy arrays.

Examples
--------
>>> info = np.__array_namespace_info__()
>>> info.default_device()
'cpu'

Úcpur   r   s    r   Údefault_deviceÚ'__array_namespace_info__.default_devicek   s   € ð2 r   N)Údevicec                ó    • US;  a  [        SU 35      e[        [        5      [        [        5      [        [        5      [        [        5      S.$ )a{  
The default data types used for new NumPy arrays.

For NumPy, this always returns the following dictionary:

- **"real floating"**: ``numpy.float64``
- **"complex floating"**: ``numpy.complex128``
- **"integral"**: ``numpy.intp``
- **"indexing"**: ``numpy.intp``

Parameters
----------
device : str, optional
    The device to get the default data types for. For NumPy, only
    ``'cpu'`` is allowed.

Returns
-------
dtypes : dict
    A dictionary describing the default data types used for new NumPy
    arrays.

See Also
--------
__array_namespace_info__.capabilities,
__array_namespace_info__.default_device,
__array_namespace_info__.dtypes,
__array_namespace_info__.devices

Examples
--------
>>> info = np.__array_namespace_info__()
>>> info.default_dtypes()
{'real floating': numpy.float64,
 'complex floating': numpy.complex128,
 'integral': numpy.int64,
 'indexing': numpy.int64}

©r!   Nú<Device not understood. Only "cpu" is allowed, but received: )úreal floatingúcomplex floatingÚintegralÚindexing)Ú
ValueErrorr   r   r   r   )r   r$   s     r   Údefault_dtypesÚ'__array_namespace_info__.default_dtypes†   sR   € ðP ˜Ó&ÜðØ�8ðóð ô
 #¤7›^Ü %¤jÓ 1Üœd›Üœd›ñ	
ð 	
r   )r$   Úkindc                óH  • US;  a  [        SU 35      eUc¹  [        [        5      [        [        5      [        [        5      [        [
        5      [        [        5      [        [        5      [        [        5      [        [        5      [        [        5      [        [        5      [        [        5      [        [        5      [        [        5      S.$ US:X  a  S[        0$ US:X  a;  [        [        5      [        [        5      [        [
        5      [        [        5      S.$ US:X  a;  [        [        5      [        [        5      [        [        5      [        [        5      S.$ US	:X  as  [        [        5      [        [        5      [        [
        5      [        [        5      [        [        5      [        [        5      [        [        5      [        [        5      S
.$ US:X  a  [        [        5      [        [        5      S.$ US:X  a  [        [        5      [        [        5      S.$ US:X  a«  [        [        5      [        [        5      [        [
        5      [        [        5      [        [        5      [        [        5      [        [        5      [        [        5      [        [        5      [        [        5      [        [        5      [        [        5      S.$ [        U[         5      (       a+  0 nU H!  nUR#                  U R%                  US95        M#     U$ [        SU< 35      e)aæ  
The array API data types supported by NumPy.

Note that this function only returns data types that are defined by
the array API.

Parameters
----------
device : str, optional
    The device to get the data types for. For NumPy, only ``'cpu'`` is
    allowed.
kind : str or tuple of str, optional
    The kind of data types to return. If ``None``, all data types are
    returned. If a string, only data types of that kind are returned.
    If a tuple, a dictionary containing the union of the given kinds
    is returned. The following kinds are supported:

    - ``'bool'``: boolean data types (i.e., ``bool``).
    - ``'signed integer'``: signed integer data types (i.e., ``int8``,
      ``int16``, ``int32``, ``int64``).
    - ``'unsigned integer'``: unsigned integer data types (i.e.,
      ``uint8``, ``uint16``, ``uint32``, ``uint64``).
    - ``'integral'``: integer data types. Shorthand for ``('signed
      integer', 'unsigned integer')``.
    - ``'real floating'``: real-valued floating-point data types
      (i.e., ``float32``, ``float64``).
    - ``'complex floating'``: complex floating-point data types (i.e.,
      ``complex64``, ``complex128``).
    - ``'numeric'``: numeric data types. Shorthand for ``('integral',
      'real floating', 'complex floating')``.

Returns
-------
dtypes : dict
    A dictionary mapping the names of data types to the corresponding
    NumPy data types.

See Also
--------
__array_namespace_info__.capabilities,
__array_namespace_info__.default_device,
__array_namespace_info__.default_dtypes,
__array_namespace_info__.devices

Examples
--------
>>> info = np.__array_namespace_info__()
>>> info.dtypes(kind='signed integer')
{'int8': numpy.int8,
 'int16': numpy.int16,
 'int32': numpy.int32,
 'int64': numpy.int64}

r&   r'   )r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   zsigned integer)r	   r
   r   r   zunsigned integer)r   r   r   r   r*   )r	   r
   r   r   r   r   r   r   r(   )r   r   r)   )r   r   Únumeric)r	   r
   r   r   r   r   r   r   r   r   r   r   )r/   zunsupported kind: )r,   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   Ú
isinstanceÚtupleÚupdateÚdtypes)r   r$   r/   ÚresÚks        r   r5   Ú__array_namespace_info__.dtypesº   sT  € ðn ˜Ó&ÜðØ�8ðóð ð ‰<äœd›Üœd›Üœu›Üœu›Üœu›Üœu›Ü¤›-Ü¤›-Ü¤›-Ü ¤›>Ü ¤›>Ü"¤9Ó-Ü#¤JÓ/ñð ð �6‹>ØœD�>Ð!ØÐ#Ó#äœd›Üœu›Üœu›Üœu›ñ	ð ð Ð%Ó%äœu›Ü¤›-Ü¤›-Ü¤›-ñ	ð ð �:Óäœd›Üœu›Üœu›Üœu›Üœu›Ü¤›-Ü¤›-Ü¤›-ñ	ð 	ð �?Ó"ä ¤›>Ü ¤›>ñð ð Ð%Ó%ä"¤9Ó-Ü#¤JÓ/ñð ð �9Óäœd›Üœu›Üœu›Üœu›Üœu›Ü¤›-Ü¤›-Ü¤›-Ü ¤›>Ü ¤›>Ü"¤9Ó-Ü#¤JÓ/ñð ô �dœE×"Ñ"ØˆCÛ�Ø—
‘
˜4Ÿ;™;¨A˜;Ð.Ö/ñ àˆJÜÐ-¨d©XÐ6Ó7Ð7r   c                 ó   • S/$ )a�  
The devices supported by NumPy.

For NumPy, this always returns ``['cpu']``.

Returns
-------
devices : list of str
    The devices supported by NumPy.

See Also
--------
__array_namespace_info__.capabilities,
__array_namespace_info__.default_device,
__array_namespace_info__.default_dtypes,
__array_namespace_info__.dtypes

Examples
--------
>>> info = np.__array_namespace_info__()
>>> info.devices()
['cpu']

r!   r   r   s    r   ÚdevicesÚ __array_namespace_info__.devicesA  s   € ð2 ˆwˆr   r   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   r"   r-   r5   r:   Ú__static_attributes__r   r   r   r   r      s0   † ñò>*
òXð6 (,õ 2
ðh  $¨$õ E8õNr   r   N)r@   Únumpy._corer   r   r   r   r   r   r	   r
   r   r   r   r   r   r   r   Únumpy._utilsr   r   r   r   r   Ú<module>rD      sI   ðñ÷÷ ÷ ÷ ñ õ" $ñ ˆGÓ÷{ð {ó ñ{r   