Closed pravirkr closed 2 years ago
Holy cow that is quite the refactor! 🕳️ 🐮 🕳️
Hi @telegraphic, the major change is in the Header
class. The rest of them are just moving files and PEP 8 changes. There is no rush to merge this. I should also add the psrfits io to have a better idea about a common Header class design.
Hi @telegraphic, I am going ahead with the refactoring. The plan is to make this package an entirely python-based replacement of sigproc
. Also, moving the core kernels from pybind11 to numba (easy to add new functions and no significant performance loss). Dependency on fftw3
and omp
is now external; easy to pip install.
This will break the existing API. So, moving the current code to a legacy branch.
Glorious work! Python only seems reasonable, but bit unpacking might be difficult?
BTW, I suggest tagging a release & updating the README.md
🚀
bit unpacking powered by numpy/numba. 1 bit (numpy.unpackbits
) is faster than numbits, whereas 2 and 4 bits (numba
) are comparatively slower but acceptable.
Yes, need to update README.
Refactoring of the whole package.
io module
io
module now. Removing theback_compatible
option and usingsigproc_keys
(defined in sigproc docs) as the definition of a sigproc header.Header
Header
structure. The aim is to have a common header class read from different formats sigproc/psrfits/inf and write back. The header class is now more rigid compared to the earlier version, with property attributes handled accordingly.C++
libcpp
module.other
FilterbankBlock
to a separate module.FoldedData
is nowfoldedcube.
Renaming theFilterbank
module tobase
(all readers should inherit from this base class).spp_header
andspp_decimate
for now).