Details
-
Type:
Story
-
Status: Done
-
Resolution: Done
-
Fix Version/s: None
-
Component/s: daf_base
-
Labels:None
-
Story Points:3
-
Epic Link:
-
Sprint:Arch 2019-04-01
-
Team:Architecture
Description
In DM-5466, we needed to pass the results from ParseTask.getInfo() to the butler as a dataId. This is normally valid, since both are dictionaries, and even though getInfo() often contains extraneous entries that aren't relevant, the butler will usually ignore them. However, when parsing calibration files this dictionary contains some values that are set to None, since they will be filled in later. These extraneous keys are then placed in ButlerLocation.additionalData (butlerLocation.py:221), which throws an exception as it is a PropertySet and does not support python None as a value.
DM-5466 has a work-around that strips these None values from the dictionary, but this is inelegant. The main driver for excluding None from PropertySet seems to compatibility with FITS headers. This seems like an unwarranted mixing of data model and persistence formats. Unless there is some advantage to not being able to store None in our dictionary-like objects, it seems preferable to shift the burden of accommodating FITS's peculiarities onto the persistence layer rather than PropertySet.
Attachments
Issue Links
- is duplicated by
-
DM-8101 Add support for missing values to PropertyList
- Invalid
- is triggered by
-
RFC-239 PropertyList should support missing values and possibly units
- Implemented
- is triggering
-
DM-18864 Update afw to support undefined values in FITS headers
- Done
- relates to
-
DM-8100 Determine what astropy.io.fits does with FITS header cards for missing data
- Done
Colin Slater do you know what I need to reverse from
DM-5466to test that None now works?