pypi galpy 1.11.2
Version 1.11.2

13 hours ago

Revolutionized by the rise of agentic AI, this release contains many new additions, including a major change, and otherwise many bug fixes and dependency/project maintenance.

Major change

  • Implement CompositePotential, planarCompositePotential, and linearCompositePotential classes for unified potential combination interface by @Copilot in #794:

    Previously, potentials and forces could be added by creating a list of them and passing it to all functions and methods taking Potential/Force input. In the current release, this list-based combination has been replaced by classes representing combined potentials in 3D, 2D, and 1D. Lists of potentials/forces are currently still allowed in the code, but they are being deprecated and are scheduled for removal in version 1.13.0. But because combined potentials should have been created using addition with + already, unless you were explicitly creating lists, current code should still work (because + now creates instances of the new combined-potential classes). This means that now there is no functional difference between single and combined potentials/forces and combined potentials can be called with methods just like single potentials, e.g., MWPotential2014.vcirc(8*u.kpc) works.

New Features

  • Add functionality to continue orbit integrations in forward and backward time by @Copilot in #781
  • Upload dev wheels to a simple pypi index by @jobovy in #782
  • Inject git hash into development wheel versions by @Copilot in #783
  • Add C implementation for TwoPowerSphericalPotential with bundled xsf library by @Copilot in #785
  • Add C implementation for TwoPowerTriaxialPotential by @Copilot in #788
  • Add C implementation of EllipsoidalPotential planar second derivatives with caching by @Copilot in #790
  • Add enhanced __repr__ methods to Force, planarForce, linearPotential, conversion classes, and WrapperPotentials by @Copilot in #804
  • Add wrapper to turn any axisymmetric potential into a potential that separates in R and z by @jobovy in #818
  • Add frequencies and angles for actionAngleAdiabatic in Python by @jobovy in #819
  • Add automatic time determination for orbit integration by @jobovy in #823

Bug fixes and minor tweaks

  • Rename _dens to _dens_host in ChandrasekharDynamicalFrictionForce by @Copilot in #779
  • Increase tolerance for flaky test_python_vs_c_arbitraryaxisrotation_funcomega by @Copilot in #792
  • Lower the tolerance for the test_python_vs_c_arbitraryaxisrotation_funcomega a bit more to avoid flaky tests by @jobovy in #793
  • Fix some non-existent reference in the docs by @jobovy in #795
  • Re-arrange some functions within Force, DissipativeForce, and Potential by @jobovy in #796
  • Add sdist build verification job to wheels.yml by @Copilot in #797
  • Re-arrange some functions within planarForce, planarDissipativeForce, and planarPotential by @jobovy in #798
  • Consolidate plotRotcurve and plotEscapecurve into Potential.py by @Copilot in #803
  • Correctly deal with Simbad distances in units that are not kpc; fixes #807 by @jobovy in #813
  • Add missing boundary term in Eddington calculation by @jobovy in #817
  • fix/divergent potential sampling by @caverac in #812
  • Add iteration support to single Potentials, planarForces, and linearPotentials by @Copilot in #824
  • Move vcirc, omegac, and epifreq to planarPotential for composite potential support by @Copilot in #825
  • Simplify SCFPotential for spherical harmonics abstraction by @jobovy in #826
  • Simplify SCFPotential.c for spherical harmonics abstraction by @jobovy in #828
  • Correctly record SCF potential type for handling its data in C by @jobovy in #830
  • Auto-detect GSL paths in setup.py to fix compilation failures when CFLAGS/LDFLAGS are unset by @Copilot in #831

Dependencies / maintenance

  • Bump to next development version v1.11.2 by @jobovy in #776
  • Speed up pyodide wheel build by @jobovy in #777
  • [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci[bot] in #778
  • Add .github/copilot-instructions.md for agent onboarding by @Copilot in #780
  • Add copilot-setup-steps.yml workflow to properly onboard copilot by @jobovy in #784
  • Remove caching and global env in copilot setup by @jobovy in #786
  • Bump pypa/cibuildwheel from 3.2 to 3.3 in the actions group by @dependabot[bot] in #787
  • Remove obsolete commented code from EllipsoidalPotential.c by @Copilot in #789
  • Bump actions/checkout from 5 to 6 in the actions group by @dependabot[bot] in #791
  • [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci[bot] in #801
  • Add Python 3.14 support by @jobovy in #750
  • Remove support for Python 3.9 by @jobovy in #809
  • Fix macosx segmentation fault on GitHub Action Runners by @jobovy in #810
  • Bump the actions group with 3 updates by @dependabot[bot] in #806
  • Add macosx arm64 build/test to GH Actions workflow by @jobovy in #811
  • [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci[bot] in #814
  • Drop Python 3.11 pyodide wheels as auditwheel-emscripten doesn't support Python 3.11 anymore by @jobovy in #821
  • [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci[bot] in #820
  • Replace global variables with pytest fixtures in test_sphericaldf.py by @Copilot in #822
  • Release 1.11.2 by @jobovy in #832

New Contributors

Full Changelog: v1.11.1...v1.11.2

Don't miss a new galpy release

NewReleases is sending notifications on new releases.