TopicWrapper#
- class lsst.ts.watcher.TopicWrapper(model, topic)#
Bases:
objectTopic wrapper that caches data by a specified key.
To make a topic wrapper, call
Model.make_non_filtered_topic_wrapper, instead of constructing aTopicWrapperdirectly. That allows using a cached instance, if available (and avoids aRuntimeErrorin the constructor if an instance exists).- Parameters:
model (
Model) – Watcher model. Used to add a TopicCallback to the topic if one does not already exist.topic (
lsst.ts.salobj.ReadTopic) – Topic to read.
- Raises:
ValueError – If the key does not exist in the data, or if it exists but is an array.
RuntimeError – If this
NonFilteredTopicWrapperalready exists in the model. To avoid this, construct field wrappers by callingModel.make_non_filtered_field_wrapper.
- topic#
topicconstructor argument.- Type:
lsst.ts.salobj.ReadTopic
- default_data#
Default-constructed data. Use for validation of field wrappers.
- call_event#
An event that
__call__sets when it finishes. This is intended for use by unit tests.- Type:
Notes
A rule will typically use non-filtered _field_ wrappers (subclasses of
BaseFilteredFieldWrapper) rather thanNonFilteredTopicWrapper.Non-filtered field wrappers are high-level objects that store data for a particular key.
NonFilteredTopicWrapperis a lower level object that stores data for all keys.Each
BaseFilteredFieldWrappermay contain aNonFilteredTopicWrapper.Methods Summary
__call__(data, topic_callback)Update the cached data.
add_field_wrapper(field_wrapper)Add a filtered field wrapper to the internal cache.
get_data()Get the most recently seen data, or None if no data seen.
Methods Documentation
- __call__(data, topic_callback)#
Update the cached data.
Set data_cache[“key”] to the new data and call update_value for each field wrapper with the matching filter value “self.key”.
- Parameters:
data (
lsst.ts.salobj.BaseMsgType) – Topic data.topic_callback (
TopicCallback) – The topic callback that triggered this call.
- add_field_wrapper(field_wrapper)#
Add a filtered field wrapper to the internal cache.
- Parameters:
field_wrapper (
BaseFilteredFieldWrapper) – The filtered field wrapper to add.
- get_data()#
Get the most recently seen data, or None if no data seen.