Releases: PyFstat/PyFstat
v2.0.2
This is the v2.0.2 release of PyFstat, a python package for gravitational-wave data analysis with the F-statistic, dated 12/10/2023.
This release supports python versions from 3.8 to 3.11.
From the changelog:
- Pinned to python<3.12 until more dependencies are updated and a few things fixed on our end.
For a list of known issues, or to report any problems, please see: https://github.com/PyFstat/PyFstat/issues
v2.0.1
This is the v2.0.1 release of PyFstat, a python package for gravitational-wave data analysis with the F-statistic, dated 11/10/2023.
This release supports python versions from 3.8 to 3.11.
From the changelog:
- Fixed compatibility with matplotlib=3.8 and bumped minimum requirement to >=3.3.
- Fixed pulling in ephemerides via lalpulsar optional dependency.
- Fixed line simulation in "generating noise" tutorial.
- Fixed some type checks to conform to flake8>=1.7 standards.
- PyPI uploads now done using "trusted publishing" (OIDC).
For a list of known issues, or to report any problems, please see: https://github.com/PyFstat/PyFstat/issues
v2.0.1rc1
v2.0.0
This is the v2.0.0 release of PyFstat, a python package for gravitational-wave data analysis with the F-statistic, dated 18/04/2023.
This release supports python versions from 3.8 to 3.11.
This is a major release of PyFstat in the sense that users will likely have to make some changes to the way they call it, but mostly just regarding class instance labels / file naming.
From the changelog:
- Mainly, we follow the recent
lalpulsar
upgrade to v3 of the SFT file format specification (see https://dcc.ligo.org/T040164-v2/public and note the v2 in the URL is not a typo, this file version describes both the v2 and v3 specifications).- We now require
lalsuite>=7.13
. - The file format update itself is fully backwards compatible: the only change is including window information in the header, which however reuses existing padding bytes, and hence does not affect compatibility.
- The file naming convention however has become more restrictive: SFT files, and hence
label
arguments forWriter
and derived classes, now may only contain ASCII alphanumerical characters, which specifically makes the old PyFstat habit of using underscores illegal. We suggest CamelCase instead. - Instead of
SFTWindowBeta
, one must now useSFTWindowParam
. noiseSFTs
no longer requiresSFTWindow[Beta/Param]
, only if a window specification cannot be read from the headers of input SFTs.
- We now require
- Fixed an error that prevented one parameter to be printed in search output file header comments.
- Fixed compatibility with
corner=2.2.2
. - Removed
utils.get_lal_exec()
, now always expect executables to be namedlalpulsar_
. (Old LALSuite versions withlalapps_
CW executables are quite outdated by now.) - Removed deprecated prior formats in
InjectionParametersGenerator
class. - Transient F-stat GPU implementation:
- Introduced F-stat condition number check, with threshold equivalent to defaults of
XLALComputeAntennaPatternSqrtDeterminant()
andestimateAntennaPatternConditionNumber()
. - Now falls back to F=2 (2F=4) if Ddinv=0, also equivalent to
lalpulsar
. - Added unit tests.
- Improved CUDA device info logging.
- Introduced F-stat condition number check, with threshold equivalent to defaults of
- For developers: updated coding style to
black
23.1.0 rules (mostly newlines policy).
For a list of known issues, or to report any problems, please see: https://github.com/PyFstat/PyFstat/issues
v1.19.1
This is the v1.19.1 release of PyFstat, a python package for gravitational-wave data analysis with the F-statistic, dated 19/12/2022.
This release supports python versions from 3.8 to 3.11.
The only change since v1.19.0 is that we've pinned, until further notice, to numpy<1.24.0
to avoid incompatibility with ptemcee
.
Previous changes, from the changelog of v1.19.0:
- LALSuite is introducing an SFT specification and filename update
- see https://dcc.ligo.org/T040164-v2/public
- This version of PyFstat is pinned to
lalsuite<=7.11
(orlalpulsar<6.0
) so that it is ensured to keep working with the old convention. - Next PyFstat release will adapt to the LALSuite changes.
- Added
get_official_sft_filename()
utility function to ease migration.
- Improvements to
injection_parameters
module with new priors logic (see documentation); old input style still supported for now but deprecated. Writer
: improved timestamps handling: support 1-column format (without nanoseconds), which has been the LALPulsar default for a while.- Changed
ComputeFstat.write_atoms_to_file()
method to use consistent%%
comment markers. - Fixed segfault in
get_semicoherent_single_IFO_twoFs()
with recent LALSuite (need to properly copy FstatAtomVector struct). - Fixed
TransientGridSearch
when not setting any actual transient parameters. - Added (h0,cosi)<->(aplus,across) functions to
utils.converting
. - Added
utils.atom
submodule with tools related to F-stat atoms. utils.get_sft_as_arrays()
now user-accessibleWriter
: warning about inferring parameters (innoiseSFTs is not None
case) downgraded to info message- improvements to documentation and test suite
For a list of known issues, or to report any problems, please see: https://github.com/PyFstat/PyFstat/issues
v1.19.0
This is the v1.19.0 release of PyFstat, a python package for gravitational-wave data analysis with the F-statistic, dated 01/12/2022.
This release supports python versions from 3.8 to 3.11.
From the changelog:
- LALSuite is introducing an SFT specification and filename update
- see https://dcc.ligo.org/T040164-v2/public
- This version of PyFstat is pinned to
lalsuite<=7.11
(orlalpulsar<6.0
) so that it is ensured to keep working with the old convention. - Next PyFstat release will adapt to the LALSuite changes.
- Added
get_official_sft_filename()
utility function to ease migration.
- Improvements to
injection_parameters
module with new priors logic (see documentation); old input style still supported for now but deprecated. Writer
: improved timestamps handling: support 1-column format (without nanoseconds), which has been the LALPulsar default for a while.- Changed
ComputeFstat.write_atoms_to_file()
method to use consistent%%
comment markers. - Fixed segfault in
get_semicoherent_single_IFO_twoFs()
with recent LALSuite (need to properly copy FstatAtomVector struct). - Fixed
TransientGridSearch
when not setting any actual transient parameters. - Added (h0,cosi)<->(aplus,across) functions to
utils.converting
. - Added
utils.atom
submodule with tools related to F-stat atoms. utils.get_sft_as_arrays()
now user-accessibleWriter
: warning about inferring parameters (innoiseSFTs is not None
case) downgraded to info message- improvements to documentation and test suite
For a list of known issues, or to report any problems, please see: https://github.com/PyFstat/PyFstat/issues
v1.18.1
This is the v1.18.1 release of PyFstat, a python package for gravitational-wave data analysis with the F-statistic, dated 03/10/2022.
This release supports python versions from 3.8 to 3.10.
From the changelog:
- fixed finalizer setup for calling
ComputeFstat
and its children in context-manager mode - reverted "walrus operators" (
:=
) and use ofLiteral
typing checks to facilitatepython 3.7
backwards compatibility (not officially supported from release, but can be easily restored on branches / local clones) - lalsuite-from-source install instructions no longer included in README, now live on wiki
- fixed logging use in examples
- improved testing of tutorial notebooks
For a list of known issues, or to report any problems, please see: https://github.com/PyFstat/PyFstat/issues
v1.18.0
This is the v1.18.0 release of PyFstat, a python package for gravitational-wave data analysis with the F-statistic, dated 06/09/2022.
This release supports python versions from 3.8 to 3.10.
From the changelog:
- refurbished logging system:
- on
import.pyfstat
, stdout logging at INFO level is activated unless there are already handlers attached to the root logger - recommended to further call
pyfstat.set_up_logger
and define an output log file, as demonstrated in our examples - see https://pyfstat.readthedocs.io/en/v1.18.0/pyfstat.html#module-pyfstat.logging for details
- removed the last global argparse options
--quite
and--verbose
, along with the remainders of thehelper_functions.set_up_command_line_arguments()
function. Please usepyfstat.set_up_logger
instead to determine verbosity level. - tests now by default print all >=WARNING messages even for passing cases and full >=INFO for failing cases
- improved handling of LALSuite executables through
run_commandline
- better stderr/stdout capture
- return is now either a
subprocess.CompletedProcess
object orNone
- default is now
return_output=False
log_level
argument removed (please usepyfstat.set_up_logger
instead)
- capture and handling of output from SWIG-wrapped LALSuite functions likely to be further improved in future versions
- on
- refactored
helper_functions
module intoutils
subpackage with multiple source files;- user can access all functions directly as
utils.some_function
without worrying about the level one further down - moved
matplotlib
setup into newutils.safe_X_less_plt()
- removed deprecated/unused helper functions:
get_peak_values
get_comb_values
get_sft_array
- user can access all functions directly as
- can install with
NO_LALSUITE_FROM_PYPI
environment variable, e.g. to avoid duplication of dependencies from conda and pip (now used this way in recommendedpyfstat-dev.yml
) - removed
peakutils
dependency - optional
[dev]
set of dependencies now also includesdocs
dependencies - added
sphinx_autodoc_typehints
todocs
dependencies and updated pinned versions of other sphinx packages DetectorStates
: fixed passing plain lists as values of atimestamps
dict
For a list of known issues, or to report any problems, please see: https://github.com/PyFstat/PyFstat/issues
v1.17.0
This is the v1.17.0 release of PyFstat, a python package for gravitational-wave data analysis with the F-statistic, dated 26/08/2022.
This release supports python versions from 3.8 to 3.10. We no longer support python 3.7 as of this release, as there are no recent LALSuite releases for it any more.
From the changelog:
- dropped dependency on
lalapps
and now requiringlalpulsar>=5.0.0
instead, where LALSuite executables now live (corresponding tolalsuite>=7.7
)- there is a
get_lal_exec()
helper function to still allow running on old installations where the executables live inlalapps
- there is a
- removed most of the old package-level hardcoded
argparse
options, this should reduce conflicts when users import it in their own caller scripts:--clean
to be given as an argument to supporting classes-N
to be given as class argumentnum_threads
to the one classFrequencyModulatedArtifactWriter
that supported it--setup-only
and--no-template-counting
to be given as class arguments to the (now deprecated)MCMCFollowUpSearch
--no-interactive
was not supported anywhere
- LaTeX no longer enabled for plotting by default
- removed
bashplotlib
dependency and SFT timestamps ASCII art - removed fallbacks in case
tqdm
is not available, which is a dependency anyway snr
class: fixed behaviour when instantiating with a dictionary of timestamps- removed old backwards compatibility code from
FrequencyModulatedArtifactWriter
- developers: updated pre-commit hooks
For a list of known issues, or to report any problems, please see: https://github.com/PyFstat/PyFstat/issues
v1.17.0rc1
This is a pre-release for the v1.17.0 release of PyFstat, a python package for gravitational-wave data analysis with the F-statistic, dated 26/08/2022.
This release supports python versions from 3.8 to 3.10. We no longer support python 3.7 as of this release, as there are no recent LALSuite releases for it any more.
From the changelog:
- dropped dependency on
lalapps
and now requiringlalpulsar>=5.0.0
instead, where LALSuite executables now live (corresponding tolalsuite>=7.7
)- there is a
get_lal_exec()
helper function to still allow running on old installations where the executables live inlalapps
- there is a
- removed most of the old package-level hardcoded
argparse
options, this should reduce conflicts when users import it in their own caller scripts:--clean
to be given as an argument to supporting classes-N
to be given as class argumentnum_threads
to the one classFrequencyModulatedArtifactWriter
that supported it--setup-only
and--no-template-counting
to be given as class arguments to the (now deprecated)MCMCFollowUpSearch
--no-interactive
was not supported anywhere
- LaTeX no longer enabled for plotting by default
- removed
bashplotlib
dependency and SFT timestamps ASCII art - removed fallbacks in case
tqdm
is not available, which is a dependency anyway snr
class: fixed behaviour when instantiating with a dictionary of timestamps- removed old backwards compatibility code from
FrequencyModulatedArtifactWriter
- developers: updated pre-commit hooks
For a list of known issues, or to report any problems, please see: https://github.com/PyFstat/PyFstat/issues