
    i
                     x    S r SSKJrJr  SSKrSSKJr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)zCircuit-runner result class    )ListUnionN)ResultQuasiDistribution)_hex_to_bin)QiskitError   )ResultDecoder)RuntimeDecoderc                   f    \ rS rSrSr\S\SS 4S j5       r S
S\\	\
4   S\\\
\   4   4S jjrS	rg)RunnerResult   z7Result class for Qiskit Runtime program circuit-runner.datareturnc                 R    U R                  [        R                  " U[        S95      $ )z.Decoding for results from Qiskit runtime jobs.)cls)	from_dictjsonloadsr   )r   r   s     `/home/james-whalen/.local/lib/python3.13/site-packages/qiskit_ibm_runtime/utils/runner_result.pydecodeRunnerResult.decode   s     }}TZZ.ABB    N
experimentc                    Uc  [        [        U R                  5      5      nOU/n/ nU GH
  nSU R                  U5      R	                  5       ;   a  U R                  U   R
                  nU R                  U   R                  R                  n[        U R                  U   R                  R                  5      n0 nUR                  5        H!  u  pX[        U	5      R                  U5      '   M#     [        X5      nX[l        UR                  U5        M  [        SR                  [!        U5      5      5      e   [        U5      S:X  a  US   $ U$ )a?  Get quasiprobabilites associated with one or more experiments.

Parameters:
    experiment: Indices of experiments to grab quasi-probability distribution from.

Returns:
    A single distribution or a list of distributions.

Raises:
    QiskitError: If experiment result doesn't contain quasi-probability distribution.
quasiprobabilitiesz5No quasi-probability distribution for experiment "{}"r	   r   )rangelenresultsr   keysshotsr   headerfinal_measurement_mappingitemsr   zfillr   appendr   formatrepr)selfr   exp_keys	dict_listkeyr!   	hex_quasi	bit_lenthquasihkeyvalouts               r   get_quasiprobabilities#RunnerResult.get_quasiprobabilities"   s(    S./H"|H	C#tyy~':':'<<S)// LL-22EE	S 1 8 8 R RS	!*!2ID@C+d+11)<= "3 (5!	  %!KRRSWX[S\]  $ y>QQ<r    )N)__name__
__module____qualname____firstlineno____doc__classmethodstrr   r   intr   r   r3   __static_attributes__r5   r   r   r   r      sb    AC# C. C C
 .2)T	*)	 $'8"99	:) )r   r   )r:   typingr   r   r   qiskit.resultr   r   qiskit.result.postprocessr   qiskit.exceptionsr   result_decoderr
   r   r   r5   r   r   <module>rD      s-    "   3 1 ) )  16= 1r   