Skip to content

Releases: PyFstat/PyFstat

v2.0.2

12 Oct 10:31
25e2214
Compare
Choose a tag to compare

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

11 Oct 17:22
9351583
Compare
Choose a tag to compare

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

11 Oct 16:54
e475b2a
Compare
Choose a tag to compare
v2.0.1rc1 Pre-release
Pre-release

This is a pre-release for the v2.0.1 release of PyFstat, a python package for gravitational-wave data analysis with the F-statistic, dated 11/10/2023. This is mainly for testing an updated PyPI uploading procedure.

v2.0.0

18 Apr 15:12
f5f0480
Compare
Choose a tag to compare

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 for Writer 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 use SFTWindowParam.
    • noiseSFTs no longer requires SFTWindow[Beta/Param], only if a window specification cannot be read from the headers of input SFTs.
  • 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 named lalpulsar_. (Old LALSuite versions with lalapps_ 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() and estimateAntennaPatternConditionNumber().
    • Now falls back to F=2 (2F=4) if Ddinv=0, also equivalent to lalpulsar.
    • Added unit tests.
    • Improved CUDA device info logging.
  • 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

19 Dec 14:27
97c1c42
Compare
Choose a tag to compare

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 (or lalpulsar<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-accessible
  • Writer: warning about inferring parameters (in noiseSFTs 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

01 Dec 19:26
1458a1f
Compare
Choose a tag to compare

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 (or lalpulsar<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-accessible
  • Writer: warning about inferring parameters (in noiseSFTs 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

03 Oct 16:14
ec86602
Compare
Choose a tag to compare

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 of Literal typing checks to facilitate python 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

06 Sep 12:43
3625c7e
Compare
Choose a tag to compare

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 the helper_functions.set_up_command_line_arguments() function. Please use pyfstat.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 or None
      • default is now return_output=False
      • log_level argument removed (please use pyfstat.set_up_logger instead)
    • capture and handling of output from SWIG-wrapped LALSuite functions likely to be further improved in future versions
  • refactored helper_functions module into utils 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 new utils.safe_X_less_plt()
    • removed deprecated/unused helper functions:
      • get_peak_values
      • get_comb_values
      • get_sft_array
  • 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 recommended pyfstat-dev.yml)
  • removed peakutils dependency
  • optional [dev] set of dependencies now also includes docs dependencies
  • added sphinx_autodoc_typehints to docs dependencies and updated pinned versions of other sphinx packages
  • DetectorStates: fixed passing plain lists as values of a timestamps dict

For a list of known issues, or to report any problems, please see: https://github.com/PyFstat/PyFstat/issues

v1.17.0

26 Aug 13:36
588ae81
Compare
Choose a tag to compare

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 requiring lalpulsar>=5.0.0 instead, where LALSuite executables now live (corresponding to lalsuite>=7.7)
    • there is a get_lal_exec() helper function to still allow running on old installations where the executables live in lalapps
  • 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 argument num_threads to the one class FrequencyModulatedArtifactWriter 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

26 Aug 13:06
588ae81
Compare
Choose a tag to compare
v1.17.0rc1 Pre-release
Pre-release

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 requiring lalpulsar>=5.0.0 instead, where LALSuite executables now live (corresponding to lalsuite>=7.7)
    • there is a get_lal_exec() helper function to still allow running on old installations where the executables live in lalapps
  • 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 argument num_threads to the one class FrequencyModulatedArtifactWriter 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