
    i                         S r SSKJrJrJr  SSKJr  SSKJrJ	r	  SSK
JrJr  SSKJrJr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   r\S   r\ " S S5      5       rg)zResilience options.    )LiteralSequenceUnion)asdict)model_validatorField   )
LayerErrorNoiseLearnerResult   )Unset	UnsetTypeDictprimitive_dataclass)MeasureNoiseLearningOptions)
ZneOptions)
PecOptions)LayerNoiseLearningOptions)LocalFoldingAmplifier)LinearExtrapolatorQuadraticExtrapolatorCubicExtrapolatorQuarticExtrapolatorc                   0   \ rS rSr% Sr\r\\\	4   \
S'    \" \S9r\\\4   \
S'    \r\\\	4   \
S'    \" \S9r\\\4   \
S'    \r\\\	4   \
S'    \" \S9r\\\4   \
S	'    \" \S9r\\\4   \
S
'    \r\\\\\   S4   \
S'    \" SS9SS j5       rSrg)ResilienceOptionsV2%   z$Resilience options for V2 Estimator.measure_mitigation)default_factorymeasure_noise_learningzne_mitigationznepec_mitigationpeclayer_noise_learningNlayer_noise_modelafter)modec                     U R                   (       dC  [        S [        U R                  5      R	                  5        5       5      (       a  [        S5      eU R                  SL a  U R                  SL a  [        S5      eU $ )zValidate the model.c              3   2   #    U  H  o[         :g  v   M     g 7f)N)r   ).0values     g/home/james-whalen/.local/lib/python3.13/site-packages/qiskit_ibm_runtime/options/resilience_options.py	<genexpr>8ResilienceOptionsV2._validate_options.<locals>.<genexpr>a   s      /
(TuUN(Ts   zV'measure_noise_learning' options are set, but 'measure_mitigation' is not set to True.Tzi'pec_mitigation' and 'zne_mitigation' options cannot be simultaneously enabled. Set one of them to False.)r   anyr   r   values
ValueErrorr"   r    )selfs    r,   _validate_options%ResilienceOptionsV2._validate_options^   s     &&3 /
(.t/J/J(K(R(R(T/
 ,
 ,
 h 
 $&4+>+>$+FD 
      )returnr   )__name__
__module____qualname____firstlineno____doc__r   r   r   r   bool__annotations__r   r   r   r   r    r   r!   r"   r   r#   r   r$   r%   r   r   r
   r   r3   __static_attributes__r6   r5   r,   r   r   %   s(   .16io.6 HM3HE"=t"CD  .3NE)T/*2 $)#DCz4	 D .3NE)T/*2 $)#DCz4	 D DI1D% 94 ?@  [`uY(:HZ<PRVVW_ '" #r5   r   N)r<   typingr   r   r   dataclassesr   pydanticr   r   utils.noise_learner_resultr
   r   utilsr   r   r   r   measure_noise_learning_optionsr   zne_optionsr   pec_optionsr   layer_noise_learning_optionsr   NoiseAmplifierTypeExtrapolatorTyper   r6   r5   r,   <module>rK      se     + +  + G > > G # # C 56   I I Ir5   