================
- The minimum versions required by baseband are now python 3.7, numpy 1.17
and astropy 4.0.
- Baseband now requires the (very small) ``entrypoints`` package.
New Features
------------
- Baseband now provides an ``baseband.io`` entry point, which allows other
packages to make new readers accessible to baseband by defining an entry
point in their ``setup.cfg``. [418]
- Similarly, baseband also provides an ``baseband.tasks`` entry point, which
allows other packages to define tasks useful for processing baseband
data by defining an entry point in their ``setup.cfg``. This is primarily
intended for the future ``baseband-tasks`` package. [445]
API Changes
-----------
The internals of baseband have undergone fairly substantial refactoring to
make the classes more coherent. This should not affect users directly, but may
affect those that have built their own readers.
- Following python 3.9, ``HeaderParser`` instances (which are subclasses of
``dict``), can now be merged together using the ``|`` operator. For
backward compatibility, using the ``+`` operator will remain supported.
[424]
- All ``StreamWriters`` now require an explicit ``header0`` to be passed
in (as was already the case for DADA and GUPPI). Creation of a ``header0``
from keyword arguments is now done inside the opener. [417]
- The ``vlbi_base`` module has been deprecated in favour of ``base``,
and ``VLBI`` prefixes of classes have been removed where these were
not specific to actual VLBI data, leaving only ``VLBIHeaderBase``,
``VLBIFileReaderBase``, and ``VLBIStreamReaderBase``. [425]
- The stream base classes will now try to get information that is not
passed in explicitly from ``header0``. Given this change, the keyword
argument ``unsliced_shape`` become somewhat illogical, so was changed
to ``sample_shape`` (still referring to the pre-squeeze and subset
shape) [415, 433]
- Support for memory mapping of payloads has been moved into the base
``PayloadBase`` and ``FrameBase`` classes and thus is available for all
formats. [427]
- Payloads and frames now all take ``sample_shape`` as an argument, instead
of some taking ``nchan``. [429]
Bug Fixes
---------
- Extraneous arguments to stream writers are no longer ignored, but give
rise to a ``TypeError``. [417]
- The GUPPI stream reader now will include any overlap samples from the
last frame. [431]
Other Changes and Additions
---------------------------
- All baseband formats now support passing in template strings for stream
readers and writers (e.g., ``'{file_nr:07d}.vdif'``). [417]
- The headers for VDIF and Mark 4 now expose standard ``complex_data``
and ``sample_shape`` properties, to match what is done for the other
headers. Mark 5B headers expose only ``complex_data``, as the sample
shape cannot be inferred from the header. [414, 428]
- General classes to help writing ``open`` and ``info`` functions are now
provided in ``baseband.vlbi_base.FileOpener`` and ``FileInfo``. [418]
- The general ``open`` and ``file_open`` functions are now defined in
``baseband.io`` (but still imported at the top level). They are able
to use any format defined via the plugin system. [444]