This issue is a collection of ideas for fitsio 2. The goal is to discuss, document, and plan.
It is unclear if these things ever need to be done and many of them are possible quality of life and/or API preference issues as opposed to things that are blocking or need fixing.
We also need to restrict ourselves to changes in fitsio as opposed to cfitsio and the FITS standard. For example, I'd love to support lossless snappy compression of tables and zstd compression, but that is a FITS standard issue, not something we can address here.
Exceptions
Move HDU interactions to ~exclusively use python properties?
NOTE: We'd retain some of the read_XYZ and write_XYZ methods for the image/table data.
Backend Changes & Performance
Data Handling Changes
This issue is a collection of ideas for fitsio 2. The goal is to discuss, document, and plan.
It is unclear if these things ever need to be done and many of them are possible quality of life and/or API preference issues as opposed to things that are blocking or need fixing.
We also need to restrict ourselves to changes in fitsio as opposed to cfitsio and the FITS standard. For example, I'd love to support lossless snappy compression of tables and zstd compression, but that is a FITS standard issue, not something we can address here.
Exceptions
Move HDU interactions to ~exclusively use python properties?
BaseHDU.headerproperty and remove the variouswrite_key,read_key, etc. methods__getitem__(This might encourage poor performing code if people add columns one-by-one to a table.)NOTE: We'd retain some of the
read_XYZandwrite_XYZmethods for the image/table data.Backend Changes & Performance
fits_flush_fileandfits_flush_buffercalls and instead mark the C fitsfile pointer as stale and do the call only as needed on the next C interactionData Handling Changes