Details
-
Type:
Improvement
-
Status: Done
-
Resolution: Done
-
Fix Version/s: None
-
Component/s: afw
-
Labels:None
-
Story Points:8
-
Epic Link:
-
Sprint:AP F19-4 (2H September), AP F19-5 (October)
-
Team:Alert Production
Description
lsst.afw.image.ExposureInfo is currently implemented in terms of a lsst.afw.typehandling.GenericMap. However, this class is brittle and difficult to use (see, e.g., DM-21216 and DM-21268), nor do we use its heterogeneity in ExposureInfo: we are only interested in storing lsst.afw.typehandling.Storable and shared_ptr<Storable>, and the only application for the former is incompatible with Storable due to custom persistence. Thus, GenericMap makes ExposureInfo difficult to use and maintain while not providing any needed functionality.
Reimplement ExposureInfo in terms of a homogeneous map from strings to shared_ptr<Storable>. This map should have its own class in order to encapsulate strongly-typed handling of Storable (the one form of heterogeneous type support in GenericMap that we do use). Unlike GenericMap, this class need not have a separate interface or a Python API, since it will exist only as an implementation detail of ExposureInfo.
Attachments
Issue Links
- relates to
-
DM-17982 Reimplement ExposureInfo using GenericMap
- Done
Hi John Parejko, would you be willing to review this 1200-line pure-C++ change? (It's about 400 lines of new code + 400 lines of tests, with most of the rest being file refactoring.)