Datum Constraints
A DatumObservation stores the output of a tao datum.
These can be defined and evaluated on the fly using a DatumObservable.
Observation Classes
flowchart TD
LatticeObservable([LatticeObservable]) --> Observable([Observable])
LiteralObservable([LiteralObservable]) --> Observable
DatumObservable[DatumObservable] --> LatticeObservable
DatumLiteral[DatumLiteral] --> LiteralObservable
IsClose([IsClose]) --> Comparison([Comparison])
IsLess([IsLess]) --> Comparison
DatumIsClose[DatumIsClose] --> IsClose
DatumLessThan[DatumLessThan] --> IsLess
DatumObservable -. creates .-> DatumObservation[DatumObservation]
DatumLiteral -. creates .-> DatumObservation
DatumIsClose -. creates .-> DatumIsCloseResult[DatumIsCloseResult]
DatumLessThan -. creates .-> DatumLessThanResult[DatumLessThanResult]
pytao.constraints.observables.DatumObservation
Bases: Observation
Observation containing the result of a Tao datum evaluation.
Attributes:
| Name | Type | Description |
|---|---|---|
obs_type |
str
|
Discriminator literal. Always |
model_value |
float
|
Model value of the datum. |
design_value |
float
|
Design value of the datum. |
Observables
pytao.constraints.observables.DatumObservable
Bases: LatticeObservable[DatumObservation]
Observable that creates a temporary Tao datum and evaluates it.
Attributes:
| Name | Type | Description |
|---|---|---|
obs_type |
str
|
Discriminator literal. Always |
data_type |
str
|
Tao datum data type (e.g. |
ele_name |
str
|
Name of the element at which the datum is evaluated. |
ele_start_name |
str
|
Start element name for range datums. |
ele_ref_name |
str
|
Reference element name. |
eval_point |
EvalPoint
|
Where along the element to evaluate (beginning, center, or end). |
data_source |
DataSource
|
Source of the data (lat, data, var, or beam). |
pytao.constraints.observables.DatumLiteral
Bases: LiteralObservable[DatumObservation]
Literal datum observable with user-specified model and design values.
Attributes:
| Name | Type | Description |
|---|---|---|
obs_type |
str
|
Discriminator literal. Always |
model_value |
float
|
Model value for the produced observation. |
design_value |
float
|
Design value for the produced observation. |
Operators and Results
pytao.constraints.observables.DatumIsClose
Bases: IsClose[DatumObservation]
IsClose operator comparing two DatumObservation instances.
Set a field to None to skip that comparison.
Attributes:
| Name | Type | Description |
|---|---|---|
model_value_test |
TolComparison or None
|
Comparison for the model value. |
design_value_test |
TolComparison or None
|
Comparison for the design value. |
pytao.constraints.observables.DatumIsCloseResult
Bases: IsCloseResult
Result of a DatumIsClose comparison with per-field check results.
Each field is None if the corresponding comparison was not run.
Attributes:
| Name | Type | Description |
|---|---|---|
result_type |
str
|
Discriminator literal. Always |
model_value |
CheckResult or None
|
Model value comparison result. |
design_value |
CheckResult or None
|
Design value comparison result. |
pytao.constraints.observables.DatumLessThan
Bases: IsLess[DatumObservation]
Component-wise less-than comparison between two DatumObservations.
Set a field to True to enable the less-than check for that component.
Attributes:
| Name | Type | Description |
|---|---|---|
model_value |
bool
|
Check model value. |
design_value |
bool
|
Check design value. |
pytao.constraints.observables.DatumLessThanResult
Bases: IsLessResult
Result of a DatumLessThan comparison with per-field less-than check results.
Each field is None if the corresponding component was not checked.
Attributes:
| Name | Type | Description |
|---|---|---|
result_type |
str
|
Discriminator literal. Always |
model_value |
CheckResult or None
|
Model value comparison result. |
design_value |
CheckResult or None
|
Design value comparison result. |
Constraints Classes
flowchart TD
ComparisonConstraint([ComparisonConstraint]) --> Constraint([Constraint])
RegressionConstraint([RegressionConstraint]) --> Constraint
IsCloseConstraint([IsCloseConstraint]) --> ComparisonConstraint
IsLessConstraint([IsLessConstraint]) --> ComparisonConstraint
DatumIsCloseConstraint[DatumIsCloseConstraint] --> IsCloseConstraint
DatumLessThanConstraint[DatumLessThanConstraint] --> IsLessConstraint
DatumRegressionConstraint[DatumRegressionConstraint] --> RegressionConstraint
DatumIsCloseConstraint -. creates .-> DatumIsCloseResult[DatumIsCloseResult]
DatumLessThanConstraint -. creates .-> DatumLessThanResult[DatumLessThanResult]
DatumRegressionConstraint -. creates .-> DatumIsCloseResult
pytao.constraints.config.DatumIsCloseConstraint
Bases: IsCloseConstraint
Constraint checking that two datum observables are approximately equal.
Attributes:
| Name | Type | Description |
|---|---|---|
constraint_type |
str
|
Discriminator literal. Always |
obs_a |
DatumObservables
|
First datum observable. |
obs_b |
DatumObservables
|
Second datum observable. |
comparison |
DatumIsClose
|
Comparison operator applied to the two observations. |
pytao.constraints.config.DatumLessThanConstraint
Bases: IsLessConstraint
Constraint checking that obs_a is component-wise less than obs_b.
Attributes:
| Name | Type | Description |
|---|---|---|
constraint_type |
str
|
Discriminator literal. Always |
obs_a |
DatumObservables
|
Left-hand side observable. |
obs_b |
DatumObservables
|
Right-hand side observable. |
comparison |
DatumLessThan
|
Less-than operator configuration. |
pytao.constraints.config.DatumRegressionConstraint
Bases: RegressionConstraint
Constraint comparing current datum observations against a saved reference.
Attributes:
| Name | Type | Description |
|---|---|---|
constraint_type |
str
|
Discriminator literal. Always |
obs |
DatumObservables
|
Datum observable to evaluate and compare. |
comparison |
DatumIsClose
|
Comparison operator used to check current against reference. |