[PR #3] [MERGED] chore(deps): update python #9
Labels
No labels
pull-request
No milestone
No project
No assignees
1 participant
Due date
No due date set.
Dependencies
No dependencies set.
Reference
webgrip/discord-moon#9
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 Pull Request Information
Original PR: https://github.com/webgrip/discord-moon/pull/3
Author: @webgrip-renovate[bot]
Created: 2/11/2026
Status: ✅ Merged
Merged: 2/13/2026
Merged by: @Ryangr0
Base:
main← Head:renovate/python📝 Commits (1)
8f6e0ecchore(deps): update python📊 Changes
2 files changed (+6 additions, -6 deletions)
View changed files
📝
requirements.txt(+3 -3)📝
spicey/requirements.txt(+3 -3)📄 Description
This PR contains the following updates:
~=7.0.1→~=7.2.0~=2.2.2→~=2.4.2~=2.0.7→~=2.1.2Release Notes
astropy/astropy (astropy)
v7.2.0Compare Source
==========================
New Features
astropy.constants
^^^^^^^^^^^^^^^^^
Added CODATA 2022 support in
astropy.constants.This update affects the following constants while the rest are unchanged from CODATA 2018:
m_p(Proton mass)m_n(Neutron mass)m_e(Electron mass)u(Atomic mass)eps0(Vacuum electric permittivity)Ryd(Rydberg constant)a0(Bohr radius)muB(Bohr magneton)alpha(Fine-structure constant)mu0(Vacuum magnetic permeability)sigma_T(Thomson scattering cross-section) [#18118]astropy.coordinates
^^^^^^^^^^^^^^^^^^^
Allow
np.concatenate,np.stackand similar numpy functions tobe applied on representations and differentials.
They can also be applied to coordinate frames and
SkyCoord, thoughwith the same limitation as for setting elements of frames and
coordinates: all frame attributes have to be scalars (or arrays with
only identical elements). [#18193]
The results of
match_coordinates_3d(),match_coordinates_sky(),search_around_3d()andsearch_around_sky()and the correspondingSkyCoordmethods now have named attributes. [#18459]astropy.cosmology
^^^^^^^^^^^^^^^^^
The trait
astropy.cosmology.traits.CurvatureComponenthas been added to work withobjects that have attributes and methods related to the global curvature. [#18232]
The trait
astropy.cosmology.traits.HubbleParameterhas been added to work with objects that have attributes and methods related to the Hubble parameter. [#18271]The trait
astropy.cosmology.traits.DarkEnergyComponenthas been added to work with objects that have attributes and methods related to the Dark Energy component. [#18447]Cosmology methods now exclusively return arrays, not floats or other scalars. [#18632]
The trait
astropy.cosmology.traits.DarkMatterComponenthas been added to work withobjects that have attributes and methods related to dark matter. [#18760]
The trait
astropy.cosmology.traits.MatterComponenthas been added to work withobjects that have attributes and methods related to matter density.
The trait
astropy.cosmology.traits.BaryonComponenthas been added to work withobjects that have attributes and methods related to baryonic matter.
The trait
astropy.cosmology.traits.CriticalDensityhas been added to work withobjects that have attributes and methods related to the critical density. [#18769]
The trait
astropy.cosmology.traits.PhotonComponenthas been added to work with objects that have attributes and methods related to photons. [#18787]The trait
astropy.cosmology.traits.TotalComponenthas been added to work with objects that have attributes and methods related to the total density component of the universe. [#18794]astropy.io.ascii
^^^^^^^^^^^^^^^^
astropy.io.fits
^^^^^^^^^^^^^^^
Enable color and suggestion-on-typos in all
argparseCLIs for Python 3.14(
fitscheck,fitsdiff,fitsheaderandfitsinfo). [#18151]Allow reading a FITS file hosted on a cloud resource like Amazon S3 via
Table.read(). This is done with a newfsspec_kwargsdict argumentthat gets passed through to
fsspecto access cloud resources. [#18379]It is now possible to check the existence of
ColumnsinColDefsby using the membership operator. [#18717]astropy.io.misc
^^^^^^^^^^^^^^^
Added a new ECSV table reading module that supports different backend engines for the
CSV data parsing. In addition to the default "io.ascii" engine, this includes engines
that use the PyArrow and Pandas CSV readers. These can be up to 16 times faster and are
more memory efficient than the native astropy ECSV reader. To get help with this
interface run
Table.read.help(format="ecsv"). [#18267]Improve support for compressed file formats in the ECSV and the pyarrow CSV
Table readers. All formats supported by
astropy.utils.data.get_readable_fileobj()(currently gzip, bzip2, lzma (xz) or lzw (Z)) will now work with these readers. [#18712]
astropy.io.registry
^^^^^^^^^^^^^^^^^^^
Tableto a FITS file, e.g.tbl.write("filename.fits", name="CAT", append=True). [#18470]astropy.io.votable
^^^^^^^^^^^^^^^^^^
Enable color and suggestion-on-typos in
volintCLI for Python 3.14 [#18151]Modified the constructor for
astropy.io.votable.tree.TableElementto use the version configuration information from the parentVOTableFileinstance. This allows for better handling of version-specific features and ensures that the table element is created with the correct context regarding the VOTable version. [#18366]astropy.modeling
^^^^^^^^^^^^^^^^
|(model composition) operator,using either
~astropy.modeling.compose_models_with_unitsor by setting theunit_change_compositionattribute on the model after composition. [#17304]astropy.nddata
^^^^^^^^^^^^^^
interpret_bit_flagsfunction now strips whitespace from flag names. [#18205]astropy.samp
^^^^^^^^^^^^
samp_hubCLI for Python 3.14 [#18151]astropy.table
^^^^^^^^^^^^^
Enable color and suggestion-on-typos in
showtableCLI for Python 3.14 [#18151]Added generic
from_dfandto_dfmethods toastropy.Tableusingnarwhals. These methods provide a unified interface for converting betweenAstropy Tables and various DataFrame formats (pandas, polars, pyarrow, etc.)
through the narwhals library. The
to_dfmethod converts an Astropy Tableto any supported DataFrame format, while
from_dfcreates an Astropy Tablefrom any narwhals-compatible DataFrame. Narwhals is a lightweight compatibility
layer that provides a unified API across different DataFrame libraries, allowing
seamless interoperability without requiring all DataFrame libraries as dependencies. [#18435]
Setting the
unitsordescriptionsofQTableandTablehas been made more flexible for tables with optional columns that may
or may not appear in the data. This applies to directly creating a table
as well as reading formatted data with the
read()method.In both cases you can supply
unitsanddescriptionarguments as adictthat specifies the units and descriptions for column names inthe table. Previously, if the input table did not contain a column that
was specified in the
unitsordescriptiondict, aValueErrorwas raised. Now, such columns are simply ignored. [#18641]
A new method has been added for accessing a table index for tables with multiple
indices. You can now select the index with the
with_index(index_id)method of the.loc,.iloc, and.loc_indicesproperties. For example, for a tabletwhich has two indices on columns
"a"and"b"respectively,t.loc.with_index("b")[2]will use index"b"to find all the table rows wheret["b"] == 2. Doing this query using the previous syntaxt.loc["b", 2]isdeprecated and this functionality is planned for removal in astropy 9.0.
In addition, support has been added for using
.loc,.iloc, and.loc_indiceswith an index based on two or more key columns. Previously this raised a
ValueError. [#18680]astropy.time
^^^^^^^^^^^^
Allow
np.concatenate,np.stackand similar numpy functions tobe applied on
TimeandTimeDeltainstances. [#18193]Add a new time format
galexfor the GALEX satellite.In GALEX data, due to uncertainty in the spacecraft clock, the absolute time is only accurate to
about 1-10 seconds while the relative time within an observation is better than 0.005 s or so,
except on days with leap seconds, where relative times can be wrong by up to 1 s.
See question 101.2 in https://www.galex.caltech.edu/researcher/faq.html [#18330]
astropy.units
^^^^^^^^^^^^^
emits a warning.
The new
deprecationsparameter of the unitto_string()methods allowsautomatically converting deprecated units (if possible), silencing the warnings
or raising them as errors instead. [#18586]
astropy.visualization
^^^^^^^^^^^^^^^^^^^^^
Enable color and suggestion-on-typos in
fits2bitmapCLI for Python 3.14 [#18151]Added
show_decimal_unittoset_major_formatterto control whetheror not units are shown in decimal mode. [#18312]
Added the methods
set_visible()andset_position()to control the visibility and position of ticks, tick labels, and axis labels in a single call.Also added
get_ticks_visible(),get_ticklabel_visible(), andget_axislabel_visible()methods to get the visibility state of each coordinate element. [#18443]Added an image interval option (
SymmetricInterval) for specifying asymmetric extent about a midpoint, and the extent that contains both the image
minimum and maximum can be automatically determined. [#18602]
astropy.wcs
^^^^^^^^^^^
Enable color and suggestion-on-typos in all
wcslintCLI for Python 3.14 [#18151]Added a
perserve_unitskeyword argument toWCSto optionally requestthat units are not converted to SI (the default behavior is for celestial axes
to have units converted to degrees, and spectral axes to m or Hz). [#18338]
API Changes
astropy.coordinates
^^^^^^^^^^^^^^^^^^^
The functionality of
astropy.coordinates.concatenateandastropy.coordinates.concatenate_representationsis now available usingnp.concatenate. Hence, these functions are being deprecated, emitting anAstropyPendingDeprecationWarningstarting with astropy 7.2. This will befollowed by a regular deprecation warning in astropy 8.0, and removal in 9.0. [#18193]
The
matrix_utilitiesmodule was not included in theastropyAPIdocumentation, but it was nonetheless explicitly referred to in some of the
other documentation.
This made it unclear if the functions in the module are public or private.
The public matrix utilities
is_rotation_or_reflection()androtation_matrix()have been made available from theastropy.coordinatesnamespace and should be imported from there.
Functions not available from the
astropy.coordinatenamespace are privateand may be changed or removed without warning.
However, three functions have been explicitly deprecated, despite being
private, as a courtesy to existing users.
matrix_utilites.angle_axis()andmatrix_utilites.is_rotation()aredeprecated without replacement.
matrix_utilities.is_O3()is deprecated and the publicis_rotation_or_reflection()function can be used as a replacement. [#18418]The undocumented
earth_orientationmodule has been removed. [#18638]astropyprefers reading data required forEarthLocation.of_site()froma local cache and tries downloading (and caching) the data from the Internet if
the cache is empty.
As a last resort
astropyhas so far read a small bundled data file thatprovided data for Greenwich as the single entry, but now
astropywill raisean error. [#18649]
astropy.io.registry
^^^^^^^^^^^^^^^^^^^
UnifiedInputRegistryandUnifiedOutputRegistry'sdelay_doc_updatesmethod's effect is disabled under Python's optimized mode (
-OOflag). [#17572]astropy.io.votable
^^^^^^^^^^^^^^^^^^
configproperty toastropy.io.votable.tree.VOTableFile.This property can be passed to the
configparameter of constructors that need to know the associated VOTable version, such asTimeSysandCooSys. [#18366]astropy.table
^^^^^^^^^^^^^
Add additional detail to the text of the
ValueErrorthat is raised whenpprintcannot parse a column format string. [#17631]Selecting a table index in the
.loc,.iloc, or.loc_indicesproperties bypassing the index identifier as the first element of the item is deprecated and is
planned for removal in astropy 9.0. For example, if a table
thas two indices oncolumns
"a"and"b"respectively, thent.loc["b", 2](to find table rowswhere
t["b"] == 2) is deprecated. This is replaced byt.loc.with_index("b")[2]. [#18680]astropy.tests
^^^^^^^^^^^^^
API changes towards a future deprecation of astropy test runner:
astropy.tests.runner.keywordis removed from public API.It is used internally as a decorator within astropy test runner and
its exposure as public API was a mistake. In the future, it will be
removed without any deprecation.
astropy.test,astropy.tests.runner.TestRunnerBase, andastropy.tests.runner.TestRunnerare now pending deprecation (
AstropyPendingDeprecationWarning).This will also affect downstream
packagename.testgenerated usingTestRunner.They may start to emit
AstropyDeprecationWarningin v8.0 (but no earlier). [#17874]astropy.utils
^^^^^^^^^^^^^
The
isiterable()utility is deprecated.numpy.iterable()can be used as a drop-in replacement. [#18053]astropy.utils.metadata.MergeStrategyno longer modifies themerge()methods of its subclasses at runtime to re-raise all exceptions as
MergeConflictError.This does not affect the functionality of
MergeStrategysubclasses withinthe
astropymetadata merging machinery. [#18518]astropy.visualization
^^^^^^^^^^^^^^^^^^^^^
A warning is now emitted for each axis name which is
invalid in
set_ticklabel_position,set_axislabel_position,and
set_ticks_position. This is a deprecation warning,and in future invalid axis names will result in an error. [#18324]
A warning is now emitted if arguments are given to the getter method
get_axislabel_visibility_rule. This is a deprecation warning, and infuture, giving arguments to this method will result in an error. [#18792]
Bug Fixes
astropy.config
^^^^^^^^^^^^^^
get_config_dir()andget_cache_dir()now emit warnings in all caseswhere the
XDG_CACHE_HOME(XDG_CONFIG_HOME, respectively) environmentvariable doesn't meet internal assumptions and is ignored as a result. [#17934]
astropy.coordinates
^^^^^^^^^^^^^^^^^^^
angleargument of therotation_matrix()function can now be anyangle-like value, like its docstring states.
Previously some angle-like values (e.g. angle-like strings) were erroneously
rejected. [#18504]
astropy.io.fits
^^^^^^^^^^^^^^^
Fix bug with heap which was not updated after a VLA column is modified. [#18487]
Make
fitscheckverify all HDUs before listing errors. [#18574]Fix calculation of DATASUM/CHECKSUM for heap data in
BinTableHDU. [#18681]Fixed a bug in
fitsdiffscript where failing to read a single file couldcrash the entire program. A warning is now printed instead, and such files
are simply ignored. [#18882]
astropy.io.misc
^^^^^^^^^^^^^^^
contains a value that is a numpy string. [#18677]
astropy.io.votable
^^^^^^^^^^^^^^^^^^
Updated IVOA UCD1+ controlled vocabulary from version 1.5 to 1.6. This adds
support for new atmospheric observation terms including
obs.atmos.wind,obs.atmos.humidity,obs.atmos.rain,obs.atmos.turbulence,obs.atmos.turbulence.isoplanatic,obs.atmos.water, andphys.temperature.dewwhich are now recognized when parsing UCDs withcheck_controlled_vocabulary=True. [#18483]Fixed a bug in
add_data_origin_info()wherecontentis ignored for some INFO names. [#18771]astropy.modeling
^^^^^^^^^^^^^^^^
modeling.tabularmodels when thelookup_tableis a Quantity, where the result might lose its unit in some cases. [#18958]astropy.nddata
^^^^^^^^^^^^^^
Fixed unexpected upcasting to 64 bits when doing arithmetic with Python scalars
on
numpy2.Don't upcast
NDDataunnecessarily when doing arithmetic involving a singleunit (consistent with the behaviour when there are no units). Upcasting still
occurs if an operand's unit gets converted to match the other, or where
required by the other operand's dtype. [#18392]
astropy.samp
^^^^^^^^^^^^
SAMPHubServer._call_and_waitraises a newSAMPProxyTimeoutError(derived fromSAMPProxyError) exception on timeout.This allows client code to more easily distinguish timeouts from other kind of exceptions. [#18169]
astropy.stats
^^^^^^^^^^^^^
poisson_conf_intervalkraft-burrows-nousekno longer fails for large N. [#18676]astropy.table
^^^^^^^^^^^^^
Fix a bug when slicing a table that has a multi-column index. Previously, after slicing
the table then
tbl.indiceswould show duplicates of the multi-column index, one foreach column in the index. The underlying indices on the index columns were incorrectly
distinct objects instead of the expected reference to a single index object. [#18694]
Fix bugs when indexing a
QTablewith aQuantitycolumn. Previously, after addingthe index then indexed item access via with a
Quantityor slicing was failing. [#18725]Fix a bug where the ECSV writer was not correctly quoting column names if the first name
starts with the "#" character or any names contain leading/trailing whitespace. In this
situation, all column names are now surrounded by double quotes per the ECSV standard.
Likewise the ECSV reader was incorrectly stripping surrounding whitespace from column
names, leading to a consistency check failure when reading. [#18752]
Fixed a bug when writing
Tableto FITS files, if the table contained masked arrays of integers. [#18818]astropy.units
^^^^^^^^^^^^^
The string representations of the liter with the different
astropyunitformatters are now more consistent with each other.
This change only affects converting units to strings, it has no effect on
parsing strings to units. [#18500]
So far only the
"cds"unit format has been capable of parsing the string"as"as the attosecond, but now the other unit formats recognize thatstring too. [#18723]
The
"ogip"unit formatter can now parse strings that include signedfractions in the exponent, e.g.
u.Unit("m**(-1/2)", format="ogip"). [#18776]astropy.utils
^^^^^^^^^^^^^
If
numpy.msort()is called with aMaskedarray thenastropynolonger erroneously hides the deprecation warning (with
numpyversions1.24-1.26). [#18173]
For
numpy < 2.0, applyingnp.atleast_*dto iterables of most astropyclasses will now return a list of instances instead of a tuple, to match the
behaviour for arrays. For numpy >= 2.0, tuples continue to be returned. [#18193]
astropy.visualization
^^^^^^^^^^^^^^^^^^^^^
ImageNormalizeinstance could be ignored when plotting. [#18590]
astropy.wcs
^^^^^^^^^^^
Other Changes and Additions
The minimum required NumPy version is now 1.24. [#18160]
The minimum required Matplotlib version is now 3.8.0. [#18164]
Bundled
expatis updated to version 2.7.3. [#18657]Updated the bundled CFITSIO library to 4.6.3. [#18689]
Wheels are now provided for Windows arm64. [#18786]
v7.1.1Compare Source
==========================
Bug Fixes
astropy.io.fits
^^^^^^^^^^^^^^^
Writing zero-row BinTableHDU with string columns no longer raises a broadcast error in _ascii_encode() [#18230]
Compute maximum absolute and relative differences reported by
ImageDataDiffon the full arrays instead of only a few values. [#18451]
Fix slicing FITS compressed file with
.sectionwhen data is scaled. [#18640]astropy.io.misc
^^^^^^^^^^^^^^^
an exception when saving a
SkyCoordobject in particular frames likegalactocentricin which frame attributes are themselves a frame. [#18526]astropy.io.votable
^^^^^^^^^^^^^^^^^^
astropy.nddata
^^^^^^^^^^^^^^
Fixed key error with numpy functions
np.min,np.max,np.mean, andnp.sum. [#18424]Fix partial cutouts with FITS compressed file and scaled data. [#18640]
astropy.table
^^^^^^^^^^^^^
Fixed a bug in
table.table_helpers.ArrayWrapperwhere byteorder of theunderlying data was not necessarily preserved through roundtrips. [#18139]
Fix bug #10732 where removing rows on an indexed table that was subsequently sliced
(e.g.
t.add_index("a"); ts = t[1:5]; ts.remove_row(2)) was giving incorrect resultsor failing. [#18511]
astropy.time
^^^^^^^^^^^^
Timeworks also with numpy 2.3.0, fixinga bug in our implementation which had no effect in previous numpy versions. [#18265]
astropy.timeseries
^^^^^^^^^^^^^^^^^^
aggregate_downsampleperformance degradation whennon-default
aggregate_funcis used. [#18188]astropy.units
^^^^^^^^^^^^^
DexUnitinastropy.units,and thus also how it is represented in, e.g., jupyter notebooks. [#18627]
astropy.visualization
^^^^^^^^^^^^^^^^^^^^^
Fix a bug that caused
WCSAxes.get_transformto not return the correcttransform when using WCS instances with celestial axes that were not in
degrees. [#18311]
Fixed a bug that under certain conditions could lead to ticks being incorrectly
labelled with a single "$" dollar sign in WCSAxes. [#18313]
Fixed WCSAxes.get_transform() in the case of 1D WCS [#18327]
Fixed a bug that caused the default format unit to be incorrect for RA/Dec WCSes with non-degree units [#18346]
Fix a bug where the units of the
values=keyword argument toset_tickswas not respected. [#18577]astropy.wcs
^^^^^^^^^^^
Fixed an issue which caused calls to WCS coordinate conversion routines to not be thread-safe due to calls to WCS.wcs.set() from multiple threads. [#16411]
Fix a bug that caused the output of
WCS.wcs.print_contents()to be truncatedand to then cause the output of subsequent
print_contents()calls (onWCS.wcsor other wcs objects such asWCS.wcs.wtb) to be corrupted. [#18350]Fixed a bug in
WCS.pixel_to_worldfor spectral WCS whererestfrqwasdefined but CTYPE was
VOPT, and likewise whererestwavwas defined butCTYPE was
VRAD. [#18352]Fixed a bug where world->pixel conversions did not work correctly on a 1D WCS
sliced via
SlicedLowLevelWCS. [#18394]Fixed a bug that caused slicing of WCS objects with an ellipsis to not return a WCS
object but instead a SlicedLowLevelWCS object. [#18417]
Fixed a bug in
wcs.pythat caused the WCS object to not properly initializethe
_naxisattribute when the header was empty or did not contain any WCSinformation. This could lead to crashes when attempting to take a slice of a 3D
WCS object or it could lead unexpected behavior when accessing pixel shape
or other properties that depend on the number of axes. [#18419]
Fixed a race condition when using the APE-14 API for the
WCSclass in a multi-threaded environment. [#18692]Performance Improvements
astropy.modeling
^^^^^^^^^^^^^^^^
modeling.rotations.spherical2cartesian()by 11-18% depending on the size of the input data arrays. [#18238]Other Changes and Additions
Fixed errors with building the package from source on Windows via
python -m buildand similar commands. [#18253]Pre-built binaries (wheels) for Linux are now built using the
manylinux_2_28image (previously,
manylinux2014was used). [#18374]v7.1.0Compare Source
==========================
New Features
astropy.coordinates
^^^^^^^^^^^^^^^^^^^
search_around_skyandsearch_around_3Dnow accept separations/distlimitsbroadcastable to the same shape as
coords1. [#17824]astropy.io.ascii
^^^^^^^^^^^^^^^^
Add functionality to read and write to a Table from the TDAT format as part of
the Unified File Read/Write Interface. [#16780]
io.asciinow supports on-the-fly decompression of LZW-compressed files(typically ".Z" extension) via the optional package uncompresspy. [#17960]
astropy.io.fits
^^^^^^^^^^^^^^^
Astropy can now not only read but also write headers that have
HIERARCHkeys with long values, by allowing the use of
CONTINUEcards for those(as was already the case for regular FITS keys). [#17748]
Add
strip_spacesoption toTable.readto strip trailing whitespaces instring columns. This will be activated by default in the next major release. [#17777]
io.fitsnow supports on-the-fly decompression of LZW-compressed files(typically ".Z" extension) via the optional package uncompresspy. [#17960]
io.fitsnow supports on-the-fly decompression of LZMA-compressed files(typically ".xz" extension) if the lzma module is provided by the Python
installation. [#17968]
astropy.io.misc
^^^^^^^^^^^^^^^
TableCSV reader that uses the PyArrowread_csv()function. This canbe significantly faster and more memory-efficient than the
astropy.io.asciifastreader. This new reader can be used with
Table.read()by settingformat="pyarrow.csv". [#17706]astropy.io.votable
^^^^^^^^^^^^^^^^^^
New module
astropy.io.votable.dataoriginto extract Data Origin information from INFO in VOTable. [#17839]CooSysVOTable elements now have a methodto_astropy_framethat returns thecorresponding astropy built-in frame, when possible. [#17999]
astropy.modeling
^^^^^^^^^^^^^^^^
fit_info=keyword argument toparallel_fit_daskto allow users to preserve fit information from each individual fit. [#17538]astropy.nddata
^^^^^^^^^^^^^^
Adds a utility class,
astropy.nddata.Covariance, used to construct, access,and store covariance matrices. The class depends on use of the
scipy.sparsemodule. [#16690]
Add the
limit_rounding_methodparameter to~astropy.nddata.Cutout2D,~astropy.nddata.overlap_slices,~astropy.nddata.extract_array, and~astropy.nddata.add_arrayto allow users to specify the rounding methodused when calculating the pixel limits of the cutout. The default method
is to use
~numpy.ceil. [#17876]astropy.table
^^^^^^^^^^^^^
Table.group_by's underlying sorting algorithm is guaranteedto be stable. This reflects behavior that was already present but undocumented,
at least since astropy 6.0 . [#17676]
astropy.timeseries
^^^^^^^^^^^^^^^^^^
MaskedColumnandMaskedQuantitywith possibly masked elements. Furthermore, the type of(Masked) column will now be properly preserved in downsampling. [#18023]
astropy.units
^^^^^^^^^^^^^
Units with the "micro" prefix can now be imported using
"μ"in the name.For example, the microgram can now be imported with
from astropy.units import μg. [#17651]It is now possible to import angström, litre and ohm from
astropy.unitsusing the
Å,ℓandΩsymbols. [#17829]Unit conversions between kelvins and degrees Rankine no longer require the
temperatureequivalency. [#17985]astropy.utils
^^^^^^^^^^^^^
Make commonly used Masked subclasses importable for ASDF support.
Registered types associated with ASDF converters must be importable by
their fully qualified name. Masked classes are dynamically created and have
apparent names like
astropy.utils.masked.core.MaskedQuantityalthoughthey aren't actually attributes of this module. Customize module attribute
lookup so that certain commonly used Masked classes are importable.
See:
astropy.utils.data.download_filecan now recover from aTimeoutErrorwhen given a list of alternative source URLs. Previously, only
URLErrorexceptions were recoverable. An exception is still being raised after trying all
URLs provided if none of them could be reached. [#17691]
utils.datanow supports on-the-fly decompression of LZW-compressed files(typically ".Z" extension) via the optional package uncompresspy. [#17960]
API Changes
astropy.coordinates
^^^^^^^^^^^^^^^^^^^
get_namehas been deprecated in favor of the class-levelattribute
name. The method will be removed in a future release. [#17503]astropy.cosmology
^^^^^^^^^^^^^^^^^
A new public module,
astropy.cosmology.io, has been added to provide supportfor reading, writing, and converting cosmology instances.
The private modules
astropy.cosmology.funcs,astropy.cosmology.parameter,astropy.cosmology.connect,astropy.cosmology.core, andastropy.cosmology.flrwhave been deprecated.Their functionality remains accessible in the
astropy.cosmologymodule or inthe new
astropy.cosmology.iomodule. [#17543]Comoving distances now accept an optional 2nd argument, where the two-argument form is
the comoving distance between two redshifts. The one-argument form is the comoving
distance from redshift 0 to the input redshift. [#17701]
A new public module,
astropy.cosmology.traits, has been added to provide buildingblocks for custom cosmologies. The currently available traits are:
astropy.cosmology.traits.ScaleFactorastropy.cosmology.traits.TemperatureCMB[#17702]astropy.extern
^^^^^^^^^^^^^^
interactive (e.g. sorting by column values) tables using the
show_in_browser()method.
This bundling requires relatively large files in astropy itself, for a relatively minor feature.
Furthermore, the astropy developers are not experts in javascript development, and
javascript libraries many need updates to improve on security vulnerabilities.
This change removes the bundled versions of jQuery and DataTables from astropy,
updates the default version of the remote URLs to version 2.1.8 of DataTables, and
sets the default for
show_in_browser(use_local_files=False)to use the remote versionsin all cases. If the method is called with
use_local_files=True, a warning isdisplayed and remote version are used anyway.
This may break the use of the method when working offline, unless the javascript
files are cached by the browser from a previous online session. [#17521]
astropy.table
^^^^^^^^^^^^^
showtableCLI is now deprecated to avoid a name clash on Debian; useshowtable-astropyinstead. [#18047]Fix issues in the handling of a call like
tbl.loc[item]ortbl.loc_indices[item]and make the behavior consistent with pandas. Here
tblis aTableorQTablewith an index defined.
If
itemis an empty list or zero-lengthnp.ndarrayor an empty slice, thenpreviously
tbl.loc[item]would raise aKeyErrorexception. Now it returns thezero-length table
tbl[[]].If
itemis a one-element list like["foo"], then previouslytbl.loc[item]would return either aRowor aTablewith multiple row,depending on whether the index was unique. Now it always returns a
Table, consistentwith behavior for
tbl.loc[[]]andtbl.loc[["foo", "bar"]].See #18051 for more details. [#18051]
astropy.units
^^^^^^^^^^^^^
Passing
fraction='multiline'tounit.to_string()will no longer raisean exception if the given format does not support multiline fractions, but
rather give a warning and use an inline fraction. [#17374]
Automatic conversion of a
strorbytesinstance to a unit when it ismultiplied or divided with an existing unit or quantity is deprecated. [#17586]
Accessing the contents of the
units.deprecatedmodule now emits deprecationwarnings.
The module may be removed in a future version. [#17929]
astropy.visualization
^^^^^^^^^^^^^^^^^^^^^
simple_normare marked as future keyword-only, with theexception of the first two (
dataandstretch).A warning is now displayed if any other arguments are passed positionally. [#17489]
Bug Fixes
astropy.io.fits
^^^^^^^^^^^^^^^
astropy.io.votable
^^^^^^^^^^^^^^^^^^
CooSyselements, the system was not checked for votable version 1.5 [#17999]astropy.samp
^^^^^^^^^^^^
samp_hubcommand line.Previously,
samp_hub --log-level OFFwas documented as supported but actually caused an exception to be raised.The patch infers valid choices from the standard library's
loggingmodule.A
CRITICALlevel will closely emulate the intendedOFFsetting. [#17673]astropy.table
^^^^^^^^^^^^^
Initializing a Table with
rowsordataset to[]or a numpy array withzero size (e.g.,
np.array([[], []])) is now equivalent toTable(data=None, ...)and creates a table with no data values. This allowsdefining the table names and/or dtype when creating the table, for instance:
Table(rows=[], names=["a", "b"], dtype=[int, float]). Previously thisraised an exception. [#17717]
Fix issues in the handling of a call like
tbl.loc[item]ortbl.loc_indices[item]and make the behavior consistent with pandas. Here
tblis aTableorQTablewith an index defined.
If
itemis an empty list or zero-lengthnp.ndarrayor an empty slice, thenpreviously
tbl.loc[item]would raise aKeyErrorexception. Now it returns thezero-length table
tbl[[]].If
itemis a one-element list like["foo"], then previouslytbl.loc[item]would return either aRowor aTablewith multiple row,depending on whether the index was unique. Now it always returns a
Table, consistentwith behavior for
tbl.loc[[]]andtbl.loc[["foo", "bar"]].See #18051 for more details. [#18051]
astropy.timeseries
^^^^^^^^^^^^^^^^^^
TimeSeries.from_pandasandBinnedTimeSeries.readmore robust tosubclassing. [#17351]
astropy.units
^^^^^^^^^^^^^
For the Angstrom unit in the CDS module,
u.cds.Angstrom, the stringrepresentation is now "Angstrom" (instead of "AA"), consistent with what was
always the case for
u.Angstrom, and conformant with the CDS standard. [#17536]Previously the string representation of the
solMassunit in the"cds"format depended on whether the unit was imported directly from
unitsorfrom
units.cds.Although both representations were valid according to the CDS standard, the
inconsistency was nonetheless needlessly surprising.
The representation of
units.cds.solMasshas been changed to match therepresentation of
units.solMass. [#17560]The degrees Rankine is now represented as "$\mathrm{{}^{\circ}R}$" in the
"latex"and"latex_inline"formats and as "°R" in the"unicode"format. [#18049]
astropy.utils
^^^^^^^^^^^^^
utils.data. [#17984]astropy.visualization
^^^^^^^^^^^^^^^^^^^^^
plot_coordafter slicing theWCSobject coordinates. [#18005]Performance Improvements
astropy.timeseries
^^^^^^^^^^^^^^^^^^
aggregate_downsampleperformance using a new defaultaggregate_func. [#17574]astropy.units
^^^^^^^^^^^^^
Converting strings to units with
Unit()is now up to 225% faster. [#17399]UnitBase.compose()is now 20% faster. [#17425]Other Changes and Additions
After
import astropy,dir(astropy)will now list all subpackages,including those that have not yet been loaded. This also means tab
completion will work as expected (e.g.,
from astropy.coo<TAB>willexpand to
from astropy.coordinates). [#17598]Updated bundled WCSLIB version to 8.4, fixing issues in
wcs_chksumand
wcs_fletcher32. For a full list of changes - seeastropy/cextern/wcslib/CHANGES. [#17886]numpy/numpy (numpy)
v2.4.2: 2.4.2 (Feb 1, 2026)Compare Source
NumPy 2.4.2 Release Notes
The NumPy 2.4.2 is a patch release that fixes bugs discovered after the
2.4.1 release. Highlights are:
This release supports Python versions 3.11-3.14
Contributors
A total of 9 people contributed to this release. People with a "+" by their
names contributed a patch for the first time.
Pull requests merged
A total of 12 pull requests were merged for this release.
arange: accept datetime stringsos.environ...array_getbuffer(#30667)v2.4.1: 2.4.1 (Jan 10, 2026)Compare Source
NumPy 2.4.1 Release Notes
The NumPy 2.4.1 is a patch release that fixes bugs discoved after the
2.4.0 release. In particular, the typo
SeedlessSequenceis preserved toenable wheels using the random Cython API and built against NumPy < 2.4.0
to run without errors.
This release supports Python versions 3.11-3.14
Contributors
A total of 9 people contributed to this release. People with a "+" by their
names contributed a patch for the first time.
Pull requests merged
A total of 15 pull requests were merged for this release.
numpy.select: fixdefaultparameter docstring...numpy.select: allow passing array-likedefault...v2.4.0: 2.4.0 (Dec 20, 2025)Compare Source
NumPy 2.4.0 Release Notes
The NumPy 2.4.0 release continues the work to improve free threaded Python
support, user dtypes implementation, and annotations. There are many expired
deprecations and bug fixes as well.
This release supports Python versions 3.11-3.14
Highlights
Apart from annotations and
same_valuekwarg, the 2.4 highlights are mostlyof interest to downstream developers. They should help in implementing new user
dtypes.
castingkwarg'same_value'for casting by value.PyUFunc_AddLoopsFromSpecfunction that can be used to add user sortloops using the
ArrayMethodAPI.__numpy_dtype__protocol.Deprecations
Setting the
stridesattribute is deprecatedSetting the strides attribute is now deprecated since mutating
an array is unsafe if an array is shared, especially by multiple
threads. As an alternative, you can create a new view (no copy) via:
np.lib.stride_tricks.strided_window_viewif applicable,np.lib.stride_tricks.as_stridedfor the general case,np.ndarrayconstructor (bufferis the original array) for alight-weight version.
(gh-28925)
Positional
outargument tonp.maximum,np.minimumis deprecatedPassing the output array
outpositionally tonumpy.maximumandnumpy.minimumis deprecated. For example,np.maximum(a, b, c)will emita deprecation warning, since
cis treated as the output buffer rather thana third input.
Always pass the output with the keyword form, e.g.
np.maximum(a, b, out=c).This makes intent clear and simplifies type annotations.
(gh-29052)
align=must be passed as boolean tonp.dtype()When creating a new
dtypeaVisibleDeprecationWarningwill be given ifalign=is not a boolean. This is mainly to prevent accidentally passing asubarray align flag where it has no effect, such as
np.dtype("f8", 3)instead of
np.dtype(("f8", 3)). We strongly suggest to always passalign=as a keyword argument.(gh-29301)
Assertion and warning control utilities are deprecated
np.testing.assert_warnsandnp.testing.suppress_warningsaredeprecated. Use
warnings.catch_warnings,warnings.filterwarnings,pytest.warns, orpytest.filterwarningsinstead.(gh-29550)
np.fixis pending deprecationThe
numpy.fixfunction will be deprecated in a future release. It isrecommended to use
numpy.truncinstead, as it provides the samefunctional
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.
This PR has been generated by Renovate Bot.
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.