Full Changelog

2.0.1.4 (2024-04-12)

Reintroduces a work-around such that pyerfa can also be built on older numpy.

2.0.1.3 (2024-04-05)

No new features, but wheels that are compatible with numpy 2.0 as well as older supported versions of numpy 1.x.

2.0.1.2 (2024-04-04)

Failed attempt to create wheels compatible with numpy 2.0. Yanked from pypi.

2.0.1.1 (2023-10-19)

  • Ensured pyerfa works on PyPy too with the Python limited API. [gh-120]

  • Ensure any non-contigous multi-dimensional inputs are recognized properly, so that, e.g., a non-contiguous matrix is copied as needed before input to the erfa functions. [gh-124]

2.0.1 (2023-10-13)

  • Bundled liberfa version update to v2.0.1, which is derived from SOFA version 19 (20231011), which has a few bug fixes. [gh-118]

  • Fix dangling pointer leading to unexpected behavior with -O3. [gh-104]

  • PyERFA now only uses the Python limited API. [gh-94]

  • Ensure things work under python 3.12 and recent setuptools-scm. [gh-113]

2.0.0.3 (2023-03-22)

  • Ensure minimum numpy version of 1.17 continues to work (for astropy LTS).

2.0.0.2 (2023-03-19)

  • Fix compatibility with numpy v1.24.

  • Ensure documentation is correct also for functions without parameters.

  • CI configuration updated.

  • Switch building of wheels to GitHub Actions.

  • Min setuptools_scm updated.

  • Min numpy version in tox.ini updated to fix CI issues.

2.0.0.1 (2021-11-02)

  • The underlying universal functions in erfa.ufunc now work with an out argument also if the required output is a structured array. [gh-76]

2.0.0 (2021-05-17)

  • Bundled liberfa version update to v2.0.0. This includes new functionality, and hence pyerfa 2.0.0 cannot run with previous versions of liberfa.

  • erfa.dt_eraLDBODY has been corrected to ensure that the ‘pv’ entry is now of type erfa.dt_pv, so that cross-assignments with that dtype work correctly. [gh-74]

  • erfa_generator now also generates a test_ufunc.py file that runs all the C code tests on the ufuncs, thus verifying the code wrapping worked correctly. As part of that, the ability to give specific output file names has been removed, as it was not used. (Note: these changes have no effect on use of PyERFA.) [gh-71]

1.7.3 (2021-04-25)

  • Bundled liberfa version update to v1.7.3.

  • Fixed a bug that caused the output of rx, ry, and rz to be boolean rather than float for some compilers/OS. [gh-72]

1.7.2 (2021-01-25)

1.7.1.1 (2020-11-18)

  • Fix incorrect __version__ value [gh-60].

1.7.1 (2020-11-16)

  • Bundled liberfa version update to v1.7.1.

  • Now it is possible to build against system liberfa [gh-39].

  • Improved the setup machinery to ensure a proper configuration of the embedded liberfa [gh-53] (see also https://github.com/liberfa/erfa/pull/73).

  • Improve version testing [gh-53] (see issue gh-52 for rationale).

  • Reworked version management [gh-57].

  • Make pyerfa build reproducible [gh-46] (see issue gh-45 for rationale).

  • Improved docstring titles [gh-47].

  • Most of the CI has been moved to GitHub Actions.

1.7 (2020-05-31)

  • Initial release, based on ERFA version 1.7.0, which in turn is based on SOFA version 20190722.

PyERFA repository import from Astropy

copyright:

2020 Antonio Valentino

Python wrapper for ERFA, Essential Routines for Fundamental Astronomy.

The project is a split of the astropy._erfa sub-module, developed in the context of Astropy project, into a standalone package.

See also https://github.com/astropy/astropy/issues/9802.

The code has been imported form the git revision 60ab27c.

The following import script has been used:

#!/bin/sh

set -e

if [ ! -d astropy ]
then
  git clone https://github.com/astropy/astropy.git
fi

if [ ! -d pyerfa ]
then
  git init pyerfa
fi

if [ ! -d git-filter-repo ]
then
  git clone https://github.com/newren/git-filter-repo.git
fi

export PATH=${PATH}:${PWD}/git-filter-repo

# if [ ! -d astropy/.git/filter-repo ]
# then
#   cd astropy
#   git-filter-repo --analyze
#   cd -
# fi

git-filter-repo \
--source astropy \
--target pyerfa \
--path astropy/erfa \
--path astropy/_erfa \
--path .gitignore \
--path licenses/ERFA.rst \
--path licenses/LICENSE.rst \
--path licenses/README.rst \
--path-glob 'LICENSE*' \
--path-rename astropy/_erfa:erfa \
--path-rename astropy/erfa:erfa \
--tag-rename v:astropy-v \
--message-callback '
  return message.replace(b"pull request #", b"pull request astropy/astropy#")
'

The full list of re-used files is the following:

Astropy

PyERFA

astropy/_erfa/*

erfa/*

astropy/_erfa/setup_package.py

setup.py

astropy/_erfa/erfa_generator.py

erfa_generator.py

astropy/tests/helpers.py

erfa/tests/helpers.py

licenses/ERFA.rst

licenses/ERFA.rst

licenses/README.rst

licenses/README.rst

MANIFEST.in

MANIFEST.in

pyproject.toml

pyproject.toml

setup.cfg

setup.cfg

Please note that some of the files have been slightly modified (e.g. import statements have been updated) to allow the code to work properly as a standalone package totally independent from Astropy.

The erfa.tests.helpers module is duplicated form the original Astropy project, but all the code not strictly necessary to the PyERFA package has been removed.

In addition:

  • the ErfaError and ErfaWarning classes have been copied form astropy/utils/exceptions.py into erfa/core.py.templ.

  • the classproperty has been copied form astropy/utils/decorators.py into erfa/helpers.py.