
    {	i                     d    S r SSKJr  SSKJr  SSKJr  SSKJr  SSK	J
r
  SSKJr   " S	 S
5      rg)Provider for Aer backends.    )QiskitBackendNotFoundError)filter_backends   )AerSimulator)QasmSimulator)StatevectorSimulator)UnitarySimulatorc                   J    \ rS rSrSrSrSr\S 5       rS
S jr	SS jr
S rS	rg)AerProvider   r   Nr   c                     [         R                  Gc-  [        5       R                  5       n [        5       R	                  5       n/ nU  H  nU H  nSnUS;   a  UR                  U[        X445        M%  USU 3-  nUS:X  a8  US:X  a0  USU 3R                  5       -  nUR                  U[        X445        Mi  Mk  US:X  a  UR                  U[        X445        M  US;   d  M  USU 3R                  5       -  nUR                  U[        X445        M     M     US[        S S 4S	[        S S 4S
[        S S 4/-  nU[         l        [         R                  $ )Naer_simulator)N	automatic_tensor_networkGPUCPU)statevectordensity_matrixunitaryqasm_simulatorstatevector_simulatorunitary_simulator)
r   	_BACKENDSr   available_methodsavailable_devicesappendlowerr   r	   r
   )methodsdevicesbackendsmethoddevicenames         P/home/james-whalen/.local/lib/python3.13/site-packages/qiskit_aer/aerprovider.py_get_backendsAerProvider._get_backends    sW     ("n668G"n668GH!%F*D!44 |V(LM!F8,!%55% $!F8(:(:(< < (|V0T U  /  & (|V0T U!'+W!W $!F8(:(:(< < (|V0T U & "& !=$=(*>dK$&6dC H
 %-K!$$$    c                     U R                   " U40 UD6n[        U5      S:  a  [        S5      eU(       d  [        S5      eUS   $ )aZ  Return a single Aer backend matching the specified filtering.

Args:
    name (str): name of the Aer backend.
    **kwargs: dict used for filtering.

Returns:
    Backend: an Aer backend matching the filtering.

Raises:
    QiskitBackendNotFoundError: if no backend could be found or
        more than one backend matches the filtering criteria.
r   z*More than one backend matches the criteriazNo backend matches the criteriar   )r"   lenr   )selfr%   kwargsr"   s       r&   get_backendAerProvider.get_backendC   sH     ==00x=1,-YZZ,-NOO{r)   c                     / nU R                  5        H9  u  pVpxSU 0n	Ub  XyS'   Ub  XS'   Ub  XQ:X  d  M"  UR                  U" S0 U	D65        M;     [        XBS9$ )a&  Return a list of backends matching the specified filtering.

Args:
    name (str): name of the backend.
    filters (callable): filtering conditions as a callable.
    **kwargs: dict used for filtering.

Returns:
    list[Backend]: a list of Backends that match the filtering
        criteria.
providerr#   r$   )filters )r'   r   r   )
r,   r%   r2   r-   r"   backend_namebackend_clsr#   r$   optss
             r&   r"   AerProvider.backendsY   ss      :>9K9K9M5Lv%D!!'X!!'X||3 3d 34 :N x99r)   c                     g)Nr   r3   )r,   s    r&   __str__AerProvider.__str__v   s    r)   r3   )N)NN)__name__
__module____qualname____firstlineno____doc__r   versionstaticmethodr'   r.   r"   r9   __static_attributes__r3   r)   r&   r   r      s1    $IG %  %D,::r)   r   N)r?   qiskit.providersr   qiskit.providers.providerutilsr   backends.aer_simulatorr   backends.qasm_simulatorr   backends.statevector_simulatorr	   backends.unitary_simulatorr
   r   r3   r)   r&   <module>rI      s*    ! 8 : 0 2 @ 8] ]r)   