Details
-
Type:
Story
-
Status: Done
-
Resolution: Done
-
Fix Version/s: None
-
Component/s: afw
-
Labels:
-
Story Points:2
-
Epic Link:
-
Sprint:BG3_F18_08, BG3_F18_09
-
Team:Data Release Production
Description
As they're implemented in C++ and return non-polymorphic types, all of our FITS readers coerce the on-disk object to a specific type. Gen3 Butler code could be greatly simplified by providing Image, Mask, Exposure, and Catalog readers that return infer the template specialization from what's actually in the file.
Attachments
Issue Links
- blocks
-
DM-15238 Remove template-specialization StorageClasses
- To Do
- is blocked by
-
DM-15563 Refactor Mask global state and make it thread-friendly
- Done
-
DM-15836 Add helper code for invoking C++ templates from Python dtype arguments
- Done
- is triggered by
-
RFC-518 Image reading should reject conversions that could overflow
- Implemented
- relates to
-
DM-15613 Unsigned, uncompressed FITS images written with incorrect BZERO
- Done
-
DM-16043 Revert accidental dependency on numpy 1.14
- Done
-
DM-10141 provide ability to read non-header ExposureInfo objects
- Invalid
Activity
Risk Score | 0 |
Status | To Do [ 10001 ] | In Progress [ 3 ] |
Sprint | BG3_F18_08 [ 772 ] |
Sprint | BG3_F18_08 [ 772 ] | BG3_F18_08, BG3_F18_09 [ 772, 779 ] |
Reviewers | Nate Lust [ nlust ] | |
Status | In Progress [ 3 ] | In Review [ 10004 ] |
Status | In Review [ 10004 ] | Reviewed [ 10101 ] |
Reviewers | Nate Lust [ nlust ] | Colin Slater [ ctslater ] |
Status | Reviewed [ 10101 ] | In Review [ 10004 ] |
Status | In Review [ 10004 ] | Reviewed [ 10101 ] |
Resolution | Done [ 10000 ] | |
Status | Reviewed [ 10101 ] | Done [ 10002 ] |
Nate Lust, hate to dump a big review like this on you right now, as I know you tend to attract them, but I have been or will be dumping other big reviews on all of the other candidates. I'm hoping you'll find some of the modern C++ functional stuff in the pybind11 code more fun than scary, and maybe even have some ideas on how to make it less scary (I think it's actually quite readable and expressive once you've internalized C++ lambda capture syntax, but I'm well aware that's not something most readers of this code will have done).