
    z	i	                    x    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
Jr  SSKJr  \\\
4   r " S S	\5      rg
)z)
Primitive V1 result abstract base class
    )annotations)ABC)Sequence)fields)AnyDict)ndarrayc                  J    \ rS rSrSrSS jr\S	S j5       r\S
S j5       rSr	g)_BasePrimitiveResultV1   z8
Base class for deprecated Primitive V1 result methods.
c                   SnU R                    Hy  nUc  [        U5      n[        U[        [        45      (       a  [        U[
        [        45      (       a  [        S[        U5       S35      e[        U5      U:w  d  Mp  [        S5      e   g)a  
Verify that all fields in any inheriting result dataclass are consistent, after
instantiation, with the number of experiments being represented.

This magic method is specific of `dataclasses.dataclass`, therefore all inheriting
classes must have this decorator.

Raises:
    TypeError: If one of the data fields is not a Sequence or ``numpy.ndarray``.
    ValueError: Inconsistent number of experiments across data fields.
Nz/Expected sequence or `numpy.ndarray`, provided z	 instead.z6Inconsistent number of experiments across data fields.)
_field_valueslen
isinstancer   r	   strbytes	TypeErrortype
ValueError)selfnum_experimentsvalues      _/home/james-whalen/.local/lib/python3.13/site-packages/qiskit/primitives/base/base_result_v1.py__post_init__$_BasePrimitiveResultV1.__post_init__!   s     ''E&"%e*eh%899ZPSUZ|=\=\Ed5k]R[\  5z_, !YZZ (    c                8    [        S [        U 5       5       5      $ )z8Tuple of field names in any inheriting result dataclass.c              3  8   #    U  H  oR                   v   M     g 7fN)name).0fields     r   	<genexpr>6_BasePrimitiveResultV1._field_names.<locals>.<genexpr><   s     :\EZZ\s   )tupler   r   s    r   _field_names#_BasePrimitiveResultV1._field_names9   s     :VD\:::r   c                B   ^  [        U 4S jT R                   5       5      $ )z9Tuple of field values in any inheriting result dataclass.c              3  <   >#    U  H  n[        TU5      v   M     g 7fr   )getattr)r!   r    r   s     r   r#   7_BasePrimitiveResultV1._field_values.<locals>.<genexpr>A   s     G5FTWT4((5Fs   )r%   r'   r&   s   `r   r   $_BasePrimitiveResultV1._field_values>   s     GT5F5FGGGr    N)returnNone)r/   ztuple[str, ...])r/   r%   )
__name__
__module____qualname____firstlineno____doc__r   propertyr'   r   __static_attributes__r.   r   r   r   r      s7    [0 ; ; H Hr   r   N)r5   
__future__r   abcr   collections.abcr   dataclassesr   typingr   r   numpyr	   r   ExperimentDatar   r.   r   r   <module>r?      s9    #  $   c3h%HS %Hr   