0.9.0: development release of GWpy Backwards-incompatible changes: - [#703] removed `gwpy._version_helper` module - [#708] modified behaviour of `known` segmentlist during `DataQualityFlag` logic operations Backwards-compatible changes: - [#704] added XOR logic method for `DataQualityDict` - [#705] added new `TimeSeries.demodulate` method - [#707] added support for a new `GWPY_CACHE` environment variable, which defaults `cache=True` for all open data methods - [#711] added support for writing extra attributes to `LIGO_LW` XML when writing segments Bug fixes (including package, unit test, and documentation updates): - [#680] fixed bugs in `gwpy.signal.fft` - [#682] simplified `gwpy.utils.lal` to support only lal>=6.18.0 - [#684] fixed bugs in slicing `Array2D` - [#685] fixed bugs related to glue-1.58.1 - [#688] fixed `name` output for `TimeSeries` boolean logic - [#690] fixed ordering of datasets when using `gwpy-plot` - [#691] fixed bug related to using `Array(..., copy=True)` - [#692] new example to demonstrate `FrequencySeriesAxes.plot_mmm` - [#698] fixed `SpectralVariance.yspan` - [#701] deprecated the `@axes_method` decorator (`gwpy.plotter`) - [#706] fixed bug in sorting LOSC datasets based on GPS times - [#709] fixed bugs in subclassing of `gwpy.plotter.SeriesAxes` - [#714] fixed bug in `BodePlot` `frequencies` keyword - [#715] added workaround for segmentation fault in frameCPP - [#717] deprecated custom properties of `gwpy.plotter.Axes` - [#719] simplified internal calls to gravityspy similarity search - [#681,#687,#702] numerous style and complexity improvements - [#689,#693,#700,#712] documentation improvements - [#695,] a few continuous integration and testing updates See https://github.com/gwpy/gwpy/compare/v0.8.1...v0.9.0 for a full statement of what has changes since the last release.