1515#
1616from __future__ import annotations
1717
18- from typing import Any
18+ from typing import TYPE_CHECKING , Any
1919
2020from MDANSE .Framework .Parameters .Choices import SubclassChoice
21- from MDANSE .Framework .Parameters .Parameters import ConfigError , Configurable
21+ from MDANSE .Framework .Parameters .Parameters import (
22+ ConfigError ,
23+ Configurable ,
24+ ConfigureDescriptor ,
25+ CustomConfig ,
26+ )
27+ from MDANSE .Framework .Parameters .UtilTypes import Depends , DescID , PredictionResult
2228from MDANSE .Framework .QVectors .IQVectors import IQVectors
2329
24- from . Parameters import CustomConfig
25- from . UtilTypes import DescID
30+ if TYPE_CHECKING :
31+ from collections . abc import Iterator
2632
2733
2834class QVectors (CustomConfig ):
@@ -48,7 +54,8 @@ def __set__(self, owner: Configurable, value):
4854
4955 match value :
5056 case (generator , params ):
51- self .generator , self .generator .configuration = generator , params
57+ self .generator = generator
58+ self .generator .configuration = params
5259 case dict ():
5360 self .generator .configuration = value
5461 case IQVectors ():
@@ -58,9 +65,18 @@ def __set__(self, owner: Configurable, value):
5865 case _:
5966 super ().__set__ (owner , value )
6067
61- def vaidate (self , value : Configurable ):
68+ def validate (self , conf : ConfigureDescriptor , value : Configurable ):
6269 try :
63- self .generator .generate ()
64- except Exception as err :
65- raise ConfigError ("Invalid or incomplete QVector configuration." ) from err
66- return value
70+ return self .generator .validate (conf , value )
71+ except Exception :
72+ return value
73+
74+ def preview_output_axis (self ) -> Iterator [PredictionResult ]:
75+ """Output the values of |Q| from current parameters.
76+
77+ Yields
78+ ------
79+ PredictionResult
80+ Prediction.
81+ """
82+ yield PredictionResult ("Q Shells" , self .generator .shells , "1/nm" )
0 commit comments