diff --git a/CHANGES.rst b/CHANGES.rst index 87be776a98fc..547ef2b63d0e 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -1,3 +1,721 @@ +Version 7.0.0 (2024-11-21) +========================== + + +New Features +------------ + +astropy.config +^^^^^^^^^^^^^^ + +- Added ``get_config_dir_path`` (and ``get_cache_dir_path``) which is equivalent + to ``get_config_dir`` (respectively ``get_cache_dir``) except that it returns a + ``pathlib.Path`` object instead of ``str``. [#17118] + +astropy.coordinates +^^^^^^^^^^^^^^^^^^^ + +- ``BaseCoordinateFrame`` instances such as ``ICRS``, ``SkyOffsetFrame``, etc., + can now be stored directly in tables (previously, they were stored as + ``object`` type columns). Furthermore, storage in tables is now also possible + for frames that have no data (but which have attributes with the correct shape + to fit in the table). [#16831] + +- ``BaseCoordinateFrame`` now has a ``to_table()`` method, which converts the + frame to a ``QTable``, analogously to the ``SkyCoord.to_table()`` method. [#17009] + +- ``SkyCoord``, coordinate frames, and representations have all have gained the + ability to deal with ``Masked`` data. In general, the procedure is similar to + that of ``Time``, except that different representation components do not share + the mask, to enable holding, e.g., a catalogue of objects in which only some + have associated distances. [#17016] + +astropy.io.ascii +^^^^^^^^^^^^^^^^ + +- Add support for ``pathlib.Path`` objects in + ``astropy.io.ascii.core.BaseInputter.get_lines``. [#16930] + +astropy.io.fits +^^^^^^^^^^^^^^^ + +- Expanded ``FITSDiff`` output for ``PrimaryHDU`` and ``ImageHDU`` to include the + maximum relative and absolute differences in the data. [#17097] + +astropy.io.misc +^^^^^^^^^^^^^^^ + +- The HDF5 writer, ``write_table_hdf5()``, now accepts ``os.PathLike`` objects + as ``output``. [#16955] + +astropy.io.votable +^^^^^^^^^^^^^^^^^^ + +- Support reading and writing of VOTable version 1.5, including the new + ``refposition`` attribute of ``COOSYS``. [#16856] + +astropy.modeling +^^^^^^^^^^^^^^^^ + +- Added ``Model.has_tied``, ``Model.has_fixed``, and ``Model.has_bounds`` attributes to make + it easy to check whether models have various kinds of constraints set without having to + inspect ``Model.tied``, ``Model.fixed``, and ``Model.bounds`` in detail. [#16677] + +- Added a new ``parallel_fit_dask`` function that can be used to fit models to + many sections (e.g. spectra, image slices) on an N-dimensional array in + parallel. [#16696] + +- Added a ``Lorentz2D`` model. [#16800] + +- Added ``inplace=False/True`` keyword argument to the ``__call__`` method of most fitters, + to optionally allow the original model passed to the fitter to be modified with the fitted + values of the parameters, rather than return a copy. This can improve performance if users + don't need to keep hold of the initial parameter values. [#17033] + +astropy.stats +^^^^^^^^^^^^^ + +- Added a ``SigmaClippedStats`` convenience class for computing sigma-clipped + statistics. [#17221] + +astropy.table +^^^^^^^^^^^^^ + +- Changed a number of dict-like containers in ``io.ascii`` from ``OrderedDict`` to + ``dict``. The ``dict`` class maintains key order since Python 3.8 so ``OrderedDict`` is + no longer needed. The changes are largely internal and should not affect users in any + way. See also the API change log entry for this PR. [#16250] + +- Add a ``keep_order`` argument to the ``astropy.table.join`` function which specifies to + maintain the original order of the key table in the joined output. This applies for + inner, left, and right joins. The default is ``False`` in which case the output is + ordered by the join keys, consistent with prior behavior. [#16361] + +astropy.units +^^^^^^^^^^^^^ + +- Add a ``formatter`` argument to the ``to_string`` method of the ``Quantity`` + class. Enables custom number formatting with a callable formatter or + format_spec, especially useful for consistent notation. [#16087] + +- Add the unit foe (or Bethe, equivalent to 1e51 erg), which is often used to + express the energy emitted by a supernova explosion. [#16441] + +- Add ``magnetic_flux_field`` equivalency to convert magnetic field between + magnetic field strength (H) and magnetic flux density (B). [#16516] + +- Added SI-units ``sievert``, ``gray``, ``katal``, and ``hectare`` in ``astropy.units.si``. [#16729] + +- When parsing invalid unit strings with ``u.Unit(..., parse_strict="warn")`` or + ``u.Unit(..., parse_strict="silent")``, a normal unit may be returned if the + problem is not too serious. + If parsing the string fails completely then an ``UnrecognizedUnit`` instance is + returned, just as before. [#16892] + +- Added a ``np.arange`` dispatch for ``Quantity`` (requires one to use + ``like=``). [#17059] + +- Added support for calling numpy array constructors (``np.empty``, ``np.ones``, + ``np.zeros`` and ``np.full``) with ``like=Quantity(...)`` . [#17120] + +- Added support for calling numpy array constructors (``np.array``, + ``np.asarray``, ``np.asanyarray``, ``np.ascontiguousarray`` and + ``np.asfortranarray``) with ``like=Quantity(...)`` . [#17125] + +- Added support for calling numpy array constructors (``np.frombuffer``, + ``np.fromfile``, ``np.fromiter``, ``np.fromstring`` and ``np.fromfunction``) + with ``like=Quantity(...))`` . [#17128] + +- Added support for calling numpy array constructors (``np.require``, + ``np.identity``, ``np.eye``, ``np.tri``, ``np.genfromtxt`` and ``np.loadtxt``) + with ``like=Quantity(...))`` . [#17130] + +astropy.utils +^^^^^^^^^^^^^ + +- Added the ``astropy.system_info`` function to help document runtime systems in + bug reports. [#16335] + +- Add support for specifying files as ``pathlib.Path`` objects in ``IERS_A.read`` + and ``IERS_B.read``. [#16931] + +astropy.visualization +^^^^^^^^^^^^^^^^^^^^^ + +- Add ``make_rgb()``, a convenience + function for creating RGB images with independent scaling on each filter. + Refactors ``make_lupton_rgb()`` to work with instances of subclasses of + ``BaseStretch``, including the new Lupton-specific classes + ``LuptonAsinhStretch`` and ``LuptonAsinhZscaleStretch``. [#15081] + +- Add support for custom coordinate frames for ``WCSAxes`` through a context + manager ``astropy.visualization.wcsaxes.custom_ucd_coord_meta_mapping``. [#16347] + +- Added ``get_ticks_position``, ``get_ticklabel_position``, and + ``get_axislabel_position`` methods on ``CoordinateHelper`` in WCSAxes. [#16686] + +- Added the ability to disable the automatic simplification of WCSAxes tick labels + by specifying ``simplify=False`` to ``set_ticklabel()`` for a coordinate axis. [#16938] + +- Added the ability to specify that WCSAxes tick labels always include the sign + (namely for positive values) by starting the format string with a ``+`` + character. [#16985] + +- Allow ``astropy.visualization.units.quantity_support`` to be used as a + decorator in addition to the already supported use as a context manager. [#17006] + +- Added the ability to specify a callable function in ``CoordinateHelper.set_major_formatter`` [#17020] + +- Added a ``SimpleNorm`` class to create a matplotlib normalization object. [#17217] + +- WCSAxes will now select which axis to draw which tick labels and axis labels on based on the number of drawn tick labels, rather than picking them in the order they are listed in the WCS. This means that axes may be swapped in comparison with previous versions of Astropy by default. [#17243] + + +API Changes +----------- + +astropy.coordinates +^^^^^^^^^^^^^^^^^^^ + +- For non-scalar frames without data, ``len(frame)`` will now return the first + element of its ``shape``, just like for frames with data (or arrays more + generally). For scalar frames, a ``TypeError`` will be raised. Both these + instead of raising a ``ValueError`` stating the frame has no data. [#16833] + +- The deprecated ``coordinates.get_moon()`` function has been removed. Use + ``coordinates.get_body("moon")`` instead. [#17046] + +- The deprecated ``BaseCoordinateFrame.get_frame_attr_names()`` is removed. + Use ``get_frame_attr_defaults()`` instead. [#17252] + +astropy.cosmology +^^^^^^^^^^^^^^^^^ + +- Passing redshift arguments as keywords is deprecated in many methods. [#16597] + +- Deprecated ``cosmology.utils`` module has been removed. Any public API may + be imported directly from the ``cosmology`` module instead. [#16730] + +- Setting ``Ob0 = None`` in FLRW cosmologies has been deprecated in favor of ``Ob0 = + 0.0``. Conceptually this is a change in that baryons are now always a component of the + cosmology. Practically, the only change (besides that ``Ob0`` is never ``None``) is that + methods relying on ``Ob0`` always work, rather than sometimes raising an exception, + instead by default taking the contribution of the baryons to be negligible. [#16847] + +astropy.io.ascii +^^^^^^^^^^^^^^^^ + +- Remove all deprecated arguments from functions within ``astropy.io.ascii``. + + ``read()``: + - ``Reader`` is removed. Instead supply the equivalent ``format`` argument. + - Use ``inputter_cls`` instead of ``Inputter``. + - Use ``outputter_cls`` instead of ``Outputter``. + + ``get_reader()``: + - Use ``reader_cls`` instead of ``Reader``. + - Use ``inputter_cls`` instead of ``Inputter``. + - Use ``outputter_cls`` instead of ``Outputter``. + + ``write()``: + - ``Writer`` is removed. Instead supply the equivalent ``format`` argument. + + ``get_writer()``: + - Use ``writer_cls`` instead of ``Writer``. [#15758] + +astropy.io.fits +^^^^^^^^^^^^^^^ + +- The ``CompImageHDU`` class has been refactored to inherit from ``ImageHDU`` + instead of ``BinTableHDU``. This change should be for the most part preserve the + API, but any calls to ``isinstance(hdu, BinTableHDU)`` will now return ``False`` + if ``hdu`` is a ``CompImageHDU`` whereas before it would have returned ``True``. + In addition, the ``uint`` keyword argument to ``CompImageHDU`` now defaults to + ``True`` for consistency with ``ImageHDU``. [#15474] + +- Remove many unintended exports from ``astropy.io.fits.hdu.compressed``. + The low-level functions ``compress_image_data`` and ``decompress_image_data_section`` + are now only available at the qualified names + ``astropy.io.fits.hdu.compressed._tiled_compression.compress_image_data`` + and ``astropy.io.fits.hdu.compressed._tiled_compression.decompress_image_data_section``. + The rest of the removed exports are external modules or properly exported + elsewhere in astropy. May break imports in rare cases that relied + on these exports. [#15781] + +- The ``CompImageHeader`` class is now deprecated, and headers on ``CompImageHDU`` + instances are now plain ``Header`` instances. If a reserved keyword is set on + ``CompImageHDU.header``, a warning will now be emitted at the point where the + file is written rather than at the point where the keyword is set. [#17100] + +- - Remove code that was deprecated in previous versions: ``_ExtensionHDU`` and + ``_NonstandardExtHDU``, ``(Bin)Table.update``, ``tile_size`` argument for + ``CompImageHDU``. Also specifying an invalid ``tile_shape`` now raises an + error. [#17155] + +astropy.io.misc +^^^^^^^^^^^^^^^ + +- New format ``"parquet.votable"`` is added to read and write a parquet file + with a votable metadata included. [#16375] + +astropy.io.votable +^^^^^^^^^^^^^^^^^^ + +- ``Table.read(..., format='votable')``, ``votable.parse`` and + ``votable.parse_single_table`` now respect the ``columns`` argument and will only output + selected columns. Previously, unselected columns would just be masked (and unallocated). + ``astropy.io.votable.tree.TableElement.create_arrays`` also gained a ``colnumbers`` + keyword argument to allow column selection. [#15959] + +astropy.modeling +^^^^^^^^^^^^^^^^ + +- Subclasses of ``_NonLinearLSQFitter``, so any subclasses of the public ``LevMarLSQFitter``, ``TRFLSQFitter``, ``LMLSQFitter`` or ``DogBoxLSQFitter``, should now accept an additional ``fit_param_indices`` kwarg in the function signature of their ``objective_function`` methods. + Nothing is needed to be done with this kwarg, and it might not be set, but it can optionally be passed through to ``fitter_to_model_params_array`` for a performance improvement. + We also recommended accepting all kwargs (with ``**kwargs``) in this method so that future additional kwargs do not cause breakage. [#16673] + +- Exception message for when broadcast shapes mismatch has changed. + Previously, it used complicated regex to maintain backward compatibility. + To ease maintenance, this regex has been removed and now directly + passes exception from ``numpy.broadcast_shapes`` function. [#16770] + +- Using the ``LMLSQFitter`` fitter with models that have bounds is now deprecated, + as support for bounds was very basic. Instead, non-linear fitters with more + sophisticated support for bounds should be used instead. [#16994] + +- The optional ``use_min_max_bounds`` keyword argument in ``TRFLSQFitter`` and + ``DogBoxLSQFitter`` has now been deprecated and should not be used. These + fitters handle bounds correctly by default and this keyword argument was only + provided to opt-in to a more basic form of bounds handling. [#16995] + +- The deprecated ``comb()`` function has been removed. + Use ``math.comb()`` from the Python standard library instead. [#17248] + +astropy.stats +^^^^^^^^^^^^^ + +- Integer inputs to ``sigma_clip`` and ``SigmaClip`` are not converted to + ``np.float32`` instead of ``float`` if necessary. [#17116] + +astropy.table +^^^^^^^^^^^^^ + +- Change the default type for the ``meta`` attribute in ``Table`` and ``Column`` (and + subclasses) from ``OrderedDict`` to ``dict``. Since Python 3.8 the ``dict`` class is + ordered by default, so there is no need to use ``OrderedDict``. + + In addition the ECSV table writer in ``astropy.io.ascii`` was updated to consistently + write the ``meta`` attribute as an ordered map using the ``!!omap`` tag. This + convention conforms to the ECSV specification and is supported by existing ECSV readers. + Previously the ``meta`` attribute could be written as an ordinary YAML map, which is not + guaranteed to preserve the order of the keys. [#16250] + +- An exception is now raised when trying to add a multi-dimensional column as an + index via ``Table.add_index``. [#16360] + +- Aggregating table groups for ``MaskedColumn`` no longer converts + fully masked groups to ``NaN``, but instead returns a masked element. [#16498] + +- Always use ``MaskedQuantity`` in ``QTable`` to represent masked ``Quantity`` + data or when the ``QTable`` is created with ``masked=True``. Previously the + default was to use a normal ``Quantity`` with a ``mask`` attribute of type + ``FalseArray`` as a stub to allow a minimal level of compatibility for certain + operations. This update brings more consistent behavior and fixes functions + like reading of table data from a list of dict that includes quantities with + missing entries, and aggregation of ``MaskedQuantity`` in table groups. [#16500] + +- Setting an empty table to a scalar no longer raises an exception, but + creates an empty column. This is to support cases where the number of + elements in a table is not known in advance, and could be zero. [#17102] + +- ``show_in_notebook`` method for Astropy tables has been un-deprecated and the API has + been updated to accept a ``backend`` keyword and require only keyword arguments. The new + default ``backend="ipydatagrid"`` relies on an optional dependency, ``ipydatagrid``. The + previous default table viewer (prior to v7.0) is still available as + ``backend="classic"``, but it has been deprecated since v6.1 and will be removed in a future release. [#17165] + +- The default behavior of ``Table.pformat`` was changed to include all rows and columns + instead of truncating the outputs to fit the current terminal. The new default + keyword arguments ``max_width=-1`` and ``max_lines=-1`` now match those in + ``Table.pformat_all``. Since the ``Table.pformat_all`` method is now redundant, it is + pending deprecation. Similarly, the default behavior of ``Column.pformat`` was changed + to include all rows instead of truncating the outputs to fit the current terminal. [#17184] + +astropy.time +^^^^^^^^^^^^ + +- ``Time.ptp`` now properly emits a deprecation warning independently of NumPy's + version. This method was previously deprecated in astropy 6.1, but the warning + was not visible for users that had NumPy 1.x installed. Because of this, the + warning message was updated to state that ``Time.ptp`` is deprecated since + version 7.0 instead. [#17212] + +astropy.units +^^^^^^^^^^^^^ + +- The deprecated ``Quantity.nansum()`` method has been removed. Use + ``np.nansum`` instead. [#15642] + +- The ``factor`` parameter of the ``spectral_density`` equivalency, the use of + which has been discouraged in the documentation since version 0.3, is now + deprecated. + Use the ``wav`` parameter as a ``Quantity``, not as a bare unit. [#16343] + +- The ``format.Fits`` formatter class has been renamed to ``format.FITS`` and the + old name is deprecated. + Specifying the FITS format for converting ``Quantity`` and ``UnitBase`` + instances to and from strings is not affected by this change. [#16455] + +- Conversion from one unit to another using ``old_unit.to(new_unit, value)`` no longer + converts ``value`` automatically to a numpy array, but passes through array duck types + such as ``dask`` arrays, with equivalencies properly accounted for. [#16613] + +- The ``format_exponential_notation()`` method of the ``Base`` unit formatter has + changed. + Any unit formatters that inherit directly from ``Base`` but have not + implemented their own ``format_exponential_notation()`` and wish to retain + previous behavior should implement it as: + + .. code-block:: python + + def format_exponential_notation(cls, val, format_spec): + return format(val, format_spec) + + Any formatters that inherit directly from ``Base`` and call + ``super().format_exponential_notation(val, format_spec)`` should instead call + ``format(val, format_spec)`` + The specific unit formatters in ``astropy.units`` and custom formatters that + inherit from any of them are not affected. [#16676] + +- The deprecated ``units.format.Unscaled`` has been removed. Use ``units.format.Generic`` + instead. [#16707] + +- Added a __round__() dunder method to ``Quantity`` + in order to support the built-in round() function. [#16784] + +- For ``Masked`` initialization in which a mask is passed in, ensure that that + mask is combined with any mask present on the input. [#16875] + +- The ``get_format_name()`` method of ``NamedUnit`` and its subclasses is + deprecated. + The ``to_string()`` method can be used instead. [#16958] + +- The ``UnitBase.in_units()`` method is deprecated. + The ``to()`` method can be used as a drop-in replacement. [#17121] + +- Unit conversions to a given system with ``unit.to_system()``, + ``unit.si``, and ``unit.cgs``, will now prefer the simplest unit if it + is in the given system, rather than prioritizing more complicated + units if those had a base unit component. E.g., ``u.Pa.si`` will now + simply return ``Unit("Pa")`` rather than ``Unit("N / m2")``. However, + the case where a unit can be simply described in base units remains + unchanged: ``u.Gal.cgs`` will still give ``Unit("cm / s2")``. [#17122] + +- The ``CDS``, ``OGIP`` and ``VOUnit`` unit formatters are now subclasses of the + ``FITS`` unit formatter. [#17178] + +- The ``eV`` and ``rydberg`` units were moved to ``astropy.units.misc`` (from + ``astropy.units.si`` and ``astropy.units.astrophys``, respectively). + Practically, this means that ``Unit.to_system(u.si)`` no longer includes + ``eV`` as a SI-compatible unit. [#17246] + +astropy.utils +^^^^^^^^^^^^^ + +- ``IERS_Auto.open()`` now always returns a table of type ``IERS_Auto`` that + contains the combination of IERS-A and IERS-B data, even if automatic + updating of the IERS-A file is disabled or if downloading the new file fails. + Previously, under those conditions, it would return a table of a different type + (``IERS_B``) with only IERS-B data. [#16187] + +- ``astropy.utils.check_broadcast`` is now deprecated in favor of + ``numpy.broadcast_shapes`` [#16346] + +- Added a new keyword ``pending_warning_type`` to ``deprecated`` decorator so downstream developers could customize the type of warning for pending deprecation state. [#16463] + +- The ``introspection.resolve_name()`` function is deprecated. + It is better to use the standard library ``importlib`` instead. [#16479] + +- ``format_exception()`` is deprecated because it provides little benefit, if + any, over normal Python tracebacks. [#16807] + +- The ``utils.masked`` module has gained a mixin class, ``MaskableShapedLikeNDArray``, + as well as two utility functions, ``get_data_and_mask`` and ``combine_masks``, + that can help make a container classes carry masked data. Within astropy, these + are now used in the implementation of masks for ``Time``. [#16844] + +- The deprecated ``compat.override__dir__()`` utility has been removed. [#17190] + +astropy.visualization +^^^^^^^^^^^^^^^^^^^^^ + +- Removed deprecated ``exp`` attribute in the ``LogStretch``, + ``InvertedLogStretch``, ``PowerDistStretch``, and + ``InvertedPowerDistStretch`` stretch classes, and the ``power`` + attribute in the ``PowerStretch``. Instead, use the ``a`` attribute, + which matches the input keyword. [#15751] + +- Removes the unintended NumPy export previously at ``astropy.visualization.np``. [#15781] + +- Accessing or setting the following attributes on ``CoordinateHelper`` has been deprecated: + + * ``ticks`` + * ``ticklabels`` + * ``axislabels`` + + Setting the following attributes on ``CoordinateHelper`` directly has been deprecated: + + * ``parent_axes`` + * ``parent_map`` + * ``transform`` + * ``coord_index`` + * ``coord_unit`` + * ``coord_type`` (use ``set_coord_type`` instead) + * ``coord_wrap`` (use ``set_coord_type`` instead) + * ``frame`` + * ``default_label`` + + Accessing or setting the following attributes on ``CoordinateHelper`` has been + removed (without deprecation, as these were clearly internal variables): + + * ``grid_lines_kwargs`` + * ``grid_lines`` + * ``lblinfo`` + * ``lbl_world`` + * ``minor_frequency`` (there were already public methods to set/get this) [#16685] + +- The deprecated ``nsamples`` parameter of ``ZScaleInterval`` is removed. [#17186] + +astropy.wcs +^^^^^^^^^^^ + +- Errors may now occur if a ``BaseLowLevelWCS`` class defines + ``world_axis_object_components`` which returns values that are not scalars or + plain Numpy arrays as per APE 14. [#16287] + +- ``WCS.pixel_to_world_values``, ``WCS.world_to_pixel_values``, + ``WCS.pixel_to_world`` and ``WCS.world_to_pixel`` now correctly return NaN values for + pixel positions that are outside of ``pixel_bounds``. [#16328] + + +Bug Fixes +--------- + +astropy.io.ascii +^^^^^^^^^^^^^^^^ + +- Fix the broken behavior of reading an ASCII table and filling values using column names. + This PR addresses the issue and improves the functionality. [#15774] + +astropy.io.fits +^^^^^^^^^^^^^^^ + +- Fix a number of bugs in ``CompImageHDU``: + + * Fix the ability to pickle ``CompImageHDU`` objects + * Ensure that compression settings are not lost if initializing ``CompImageHDU`` + without data but with compression settings and setting the data later + * Make sure that keywords are properly updated when setting the header of a + ``CompImageHDU`` to an existing image header. + * Fix the ability to use ``CompImageHDU.section`` on instances that have not yet + been written to disk + * Fix the image checksum/datasum in ``CompImageHDU.header`` to be those for the + image HDU instead of for the underlying binary table. [#15474] + +- Fix a spurious exception when reading integer compressed images with blanks. [#17099] + +- Fix creating ``CompImageHDU`` from header with BSCALE/BZERO: keywords are now + ignored, as done in ``ImageHDU``. [#17237] + +astropy.io.votable +^^^^^^^^^^^^^^^^^^ + +- Making the "votable.parquet" format available as a reader format to ensure + consistency with the writer formats, even though the format it recognised + automatically by "votable". [#16488] + +- Explicitly set ``usedforsecurity=False`` when using ``hashlib.md5``. Without this, ``hashlib.md5`` will be blocked in FIPS mode. + FIPS (Federal Information Processing Standards) is a set of standards created by NIST (National Institute of Standards and Technology) for US government agencies regarding computer security and interoperability. + This affects validation results ingestion. [#17156] + +astropy.modeling +^^^^^^^^^^^^^^^^ + +- Fixed the output representation of models with parameters that have + units of ``dimensionless_unscaled``. [#16829] + +astropy.stats +^^^^^^^^^^^^^ + +- Fixed accuracy of sigma clipping for large ``float32`` arrays when + ``bottleneck`` is installed. Performance may be impacted for computations + involving arrays with dtype other than ``float64``. This change has no impact + for environments that do not have ``bottleneck`` installed. [#17204] + +- Fix an issue in sigma-clipping where the use of ``np.copy()`` was causing + the input data mask to be discarded in cases where ``grow`` was set. [#17402] + +astropy.table +^^^^^^^^^^^^^ + +- Fix a bug where column names would be lost when instantiating ``Table`` from a list of ``Row`` objects. [#15735] + +- Aggregating table groups for ``MaskedColumn`` now ensures that fully-masked + groups result in masked elements rather than ``NaN``. [#16498] + +- Ensure that tables holding coordinates or representations can also be stacked + if they have zero length. This fix also ensures that the ``insert`` method + works correctly with a zero-length table holding a coordinate object. [#17380] + +- Fixed table aggregate with empty columns when float is present. [#17385] + +astropy.units +^^^^^^^^^^^^^ + +- Allow SI-prefixes for radioactivity units ``becquerel`` and ``curie`` in ``astropy.units.si``, conforming to BIPM's guidelines for SI units. [#16529] + +- The OGIP unit parser no longer accepts strings where a component unit is + followed by a parenthesized unit without a separator in between, such as + ``'m(s)'`` or ``'m(s)**2'``. + Such strings are not allowed by the OGIP standard. [#16749] + +- A few edge cases that could result in a power of a unit to be a numerical value + from ``numpy``, instead of the intended Python ``int``, ``float`` or + ``fractions.Fraction`` instance, have been fixed. [#16779] + +- The OGIP unit parser now detects negative powers that are not enclosed in + parenthesis. + For example, ``u.Unit("s**-1", format="ogip")`` now raises an error because the + OGIP standard expects the string to be written as ``"s**(-1)"`` instead, but it + is still possible to parse the unit with + ``u.Unit("s**-1", format="ogip", parse_strict="warn")`` or + ``parse_strict="silent"``. [#16788] + +- ``UnitScaleError`` can now be imported from the ``astropy.units`` namespace. [#16861] + +- Parsing custom units with ``u.Unit()`` using the ``"vounit"`` format now obeys + the ``parse_strict`` parameter, unless the custom units are made explicit with + quotation marks. + For example, ``u.Unit("custom_unit", format="vounit")`` now raises an error, + but ``u.Unit("custom_unit", format="vounit", parse_strict="silent")`` or + ``u.Unit("'custom_unit'", format="vounit")`` do not. [#17232] + +- It is now possible to use ``Unit`` to create dimensionless units with a scale + factor that is a complex number or a ``fractions.Fraction`` instance. + It was already possible to create such units directly with ``CompositeUnit``. [#17355] + +astropy.utils +^^^^^^^^^^^^^ + +- Fixed the unintended behavior where the IERS-A file bundled in ``astropy-iers-data`` would be ignored if automatic updating of the IERS-A file were disabled or if downloading the new file failed. [#16187] + +- Ensure ``MaskedQuantity`` can be initialized with a list of masked + quantities (as long as their shapes match), just like regular + ``Quantity`` and ``ndarray``. [#16503] + +- For ``Masked`` instances, ``np.put``, ``np.putmask``, ``np.place`` and + ``np.copyto`` can now handle putting/copying not just ``np.ma.masked`` but + also ``np.ma.nomask``; for both cases, only the mask of the relevant entries + will be set. [#17014] + +- Explicitly set ``usedforsecurity=False`` when using ``hashlib.md5``. Without this, ``hashlib.md5`` will be blocked in FIPS mode. + FIPS (Federal Information Processing Standards) is a set of standards created by NIST (National Institute of Standards and Technology) for US government agencies regarding computer security and interoperability. + This affects download caching. [#17156] + +- Fixed a bug where an old IERS-A table with stale predictive values could trigger + the download of a new IERS-A table even if automatic downloading was disabled. [#17387] + +astropy.wcs +^^^^^^^^^^^ + +- Avoid a ``RuntimeWarning`` in ``WCS.world_to_array_index`` by converting + NaN inputs to int. [#17236] + + +Performance Improvements +------------------------ + +astropy.io.ascii +^^^^^^^^^^^^^^^^ + +- The performance of guessing the table format when reading large files with + ``astropy.io.ascii`` has been improved. Now the process uses at most + 10000 lines of the file to check if it matches the format. This behavior can + be configured using the ``astropy.io.ascii.conf.guess_limit_lines`` + configuration item, including disabling the limit entirely. [#16840] + +astropy.io.fits +^^^^^^^^^^^^^^^ + +- Optimize checksum computation. [#17209] + +astropy.modeling +^^^^^^^^^^^^^^^^ + +- Improved the performance of 1D models, models with scalar parameters, and models + without units, when evaluating them with scalar or small arrays of inputs. For + models that satisfy all of the conditions above, the improvement can be on the + order of 30-40% in execution time. [#16670] + +- Performance of most non-linear fitters has been significantly improved by reducing the overhead in evaluating models inside the objective function. [#16673] + +- Improved the performance of ``parallel_fit_dask`` by avoiding unnecessary copies of the + model inside the fitter. [#17033] + +- ``CompoundModel`` now implements numerical derivatives of parameters when using the +, -, * or / operators. This improves the speed of fitting these models because numerical derivatives of the parameters are not calculated. [#17034] + +astropy.stats +^^^^^^^^^^^^^ + +- The performance of biweight_location, biweight_scale, + biweight_midvariance, and median_absolute_deviation has been improved by + using the bottleneck nan* functions when available. This requires the + bottleneck optional dependency to be installed. [#16967] + +astropy.units +^^^^^^^^^^^^^ + +- The ``units.quantity_input`` decorator has been optimized, especially in the case that no equivalencies are provided to the decorator, and the speed-up is very noticeable when wrapping short functions. [#16742] + +- Parsing composite units with the OGIP formatter is now up to 25% faster. [#16761] + +- Parsing units with scale factors is now up to 50% faster. [#16813] + +- Parsing strings representing non-composite units with ``Unit`` is now up to 25% + faster. [#17004] + +- Converting composite units to strings with the ``"cds"``, ``"fits"``, + ``"ogip"`` and ``"vounit"`` formatters is now at least twice as fast. [#17043] + +astropy.visualization +^^^^^^^^^^^^^^^^^^^^^ + +- Removed redundant transformations when WCSAxes determines the coordinate ranges + for ticks/gridlines, which speeds up typical plot generation by ~10%, and by + much more if ``astropy.visualization.wcsaxes.conf.coordinate_range_samples`` is + set to a large value [#16366] + + +Other Changes and Additions +--------------------------- + +- Updated minimum supported Python version to 3.11. As a result, minimum + requirements were updated to compatible versions. + Astropy now requires + - ``numpy>=1.23.2`` + - ``PyYAML>=6.0.0`` + - ``packaging>=22.0.0`` [#16903] + +- The minimum supported version of Pandas is now v2.0. + This is in line with https://scientific-python.org/specs/spec-0000/. [#16308] + +- Update minimal recommendation for matplotlib from version 3.3.4 to 3.6.0 [#16557] + +- The Contributor documentation has been significantly improved. It now includes a + Quickstart Guide with concise instructions on setting up a development environment and + making a pull request. In addition, the developer documentation was reorganized and + simplified where possible to improve readability and accessibility. [#16561] + Version 6.1.6 (2024-11-11) ========================== diff --git a/docs/changes/16308.other.rst b/docs/changes/16308.other.rst deleted file mode 100644 index a3a06bde1c6a..000000000000 --- a/docs/changes/16308.other.rst +++ /dev/null @@ -1,2 +0,0 @@ -The minimum supported version of Pandas is now v2.0. -This is in line with https://scientific-python.org/specs/spec-0000/. diff --git a/docs/changes/16557.other.rst b/docs/changes/16557.other.rst deleted file mode 100644 index 707b47032ab4..000000000000 --- a/docs/changes/16557.other.rst +++ /dev/null @@ -1 +0,0 @@ -Update minimal recommendation for matplotlib from version 3.3.4 to 3.6.0 diff --git a/docs/changes/16561.other.rst b/docs/changes/16561.other.rst deleted file mode 100644 index 1aed96eec147..000000000000 --- a/docs/changes/16561.other.rst +++ /dev/null @@ -1,4 +0,0 @@ -The Contributor documentation has been significantly improved. It now includes a -Quickstart Guide with concise instructions on setting up a development environment and -making a pull request. In addition, the developer documentation was reorganized and -simplified where possible to improve readability and accessibility. diff --git a/docs/changes/16903.other.rst b/docs/changes/16903.other.rst deleted file mode 100644 index 5f9073e391e2..000000000000 --- a/docs/changes/16903.other.rst +++ /dev/null @@ -1,6 +0,0 @@ -Updated minimum supported Python version to 3.11. As a result, minimum -requirements were updated to compatible versions. -Astropy now requires -- ``numpy>=1.23.2`` -- ``PyYAML>=6.0.0`` -- ``packaging>=22.0.0`` diff --git a/docs/changes/config/17118.feature.rst b/docs/changes/config/17118.feature.rst deleted file mode 100644 index 648f4874444b..000000000000 --- a/docs/changes/config/17118.feature.rst +++ /dev/null @@ -1,3 +0,0 @@ -Added ``get_config_dir_path`` (and ``get_cache_dir_path``) which is equivalent -to ``get_config_dir`` (respectively ``get_cache_dir``) except that it returns a -``pathlib.Path`` object instead of ``str``. diff --git a/docs/changes/coordinates/16831.feature.rst b/docs/changes/coordinates/16831.feature.rst deleted file mode 100644 index 53b2e5739239..000000000000 --- a/docs/changes/coordinates/16831.feature.rst +++ /dev/null @@ -1,5 +0,0 @@ -``BaseCoordinateFrame`` instances such as ``ICRS``, ``SkyOffsetFrame``, etc., -can now be stored directly in tables (previously, they were stored as -``object`` type columns). Furthermore, storage in tables is now also possible -for frames that have no data (but which have attributes with the correct shape -to fit in the table). diff --git a/docs/changes/coordinates/16833.api.rst b/docs/changes/coordinates/16833.api.rst deleted file mode 100644 index 5f3e4859e178..000000000000 --- a/docs/changes/coordinates/16833.api.rst +++ /dev/null @@ -1,4 +0,0 @@ -For non-scalar frames without data, ``len(frame)`` will now return the first -element of its ``shape``, just like for frames with data (or arrays more -generally). For scalar frames, a ``TypeError`` will be raised. Both these -instead of raising a ``ValueError`` stating the frame has no data. diff --git a/docs/changes/coordinates/17009.feature.rst b/docs/changes/coordinates/17009.feature.rst deleted file mode 100644 index d24f8d0c5a3c..000000000000 --- a/docs/changes/coordinates/17009.feature.rst +++ /dev/null @@ -1,2 +0,0 @@ -``BaseCoordinateFrame`` now has a ``to_table()`` method, which converts the -frame to a ``QTable``, analogously to the ``SkyCoord.to_table()`` method. diff --git a/docs/changes/coordinates/17016.feature.rst b/docs/changes/coordinates/17016.feature.rst deleted file mode 100644 index 3ba2f0bc8dfe..000000000000 --- a/docs/changes/coordinates/17016.feature.rst +++ /dev/null @@ -1,5 +0,0 @@ -``SkyCoord``, coordinate frames, and representations have all have gained the -ability to deal with ``Masked`` data. In general, the procedure is similar to -that of ``Time``, except that different representation components do not share -the mask, to enable holding, e.g., a catalogue of objects in which only some -have associated distances. diff --git a/docs/changes/coordinates/17046.api.rst b/docs/changes/coordinates/17046.api.rst deleted file mode 100644 index 13b1c2528143..000000000000 --- a/docs/changes/coordinates/17046.api.rst +++ /dev/null @@ -1,2 +0,0 @@ -The deprecated ``coordinates.get_moon()`` function has been removed. Use -``coordinates.get_body("moon")`` instead. diff --git a/docs/changes/coordinates/17252.api.rst b/docs/changes/coordinates/17252.api.rst deleted file mode 100644 index 695ec79992bb..000000000000 --- a/docs/changes/coordinates/17252.api.rst +++ /dev/null @@ -1,2 +0,0 @@ -The deprecated ``BaseCoordinateFrame.get_frame_attr_names()`` is removed. -Use ``get_frame_attr_defaults()`` instead. diff --git a/docs/changes/cosmology/16597.api.rst b/docs/changes/cosmology/16597.api.rst deleted file mode 100644 index b2134b8092a3..000000000000 --- a/docs/changes/cosmology/16597.api.rst +++ /dev/null @@ -1 +0,0 @@ -Passing redshift arguments as keywords is deprecated in many methods. diff --git a/docs/changes/cosmology/16730.api.rst b/docs/changes/cosmology/16730.api.rst deleted file mode 100644 index 56aac48358c1..000000000000 --- a/docs/changes/cosmology/16730.api.rst +++ /dev/null @@ -1,2 +0,0 @@ -Deprecated ``cosmology.utils`` module has been removed. Any public API may -be imported directly from the ``cosmology`` module instead. diff --git a/docs/changes/cosmology/16847.api.rst b/docs/changes/cosmology/16847.api.rst deleted file mode 100644 index 34255cc77b5d..000000000000 --- a/docs/changes/cosmology/16847.api.rst +++ /dev/null @@ -1,5 +0,0 @@ -Setting ``Ob0 = None`` in FLRW cosmologies has been deprecated in favor of ``Ob0 = -0.0``. Conceptually this is a change in that baryons are now always a component of the -cosmology. Practically, the only change (besides that ``Ob0`` is never ``None``) is that -methods relying on ``Ob0`` always work, rather than sometimes raising an exception, -instead by default taking the contribution of the baryons to be negligible. diff --git a/docs/changes/io.ascii/15758.api.rst b/docs/changes/io.ascii/15758.api.rst deleted file mode 100644 index 788f4b96d3cc..000000000000 --- a/docs/changes/io.ascii/15758.api.rst +++ /dev/null @@ -1,17 +0,0 @@ -Remove all deprecated arguments from functions within ``astropy.io.ascii``. - -``read()``: -- ``Reader`` is removed. Instead supply the equivalent ``format`` argument. -- Use ``inputter_cls`` instead of ``Inputter``. -- Use ``outputter_cls`` instead of ``Outputter``. - -``get_reader()``: -- Use ``reader_cls`` instead of ``Reader``. -- Use ``inputter_cls`` instead of ``Inputter``. -- Use ``outputter_cls`` instead of ``Outputter``. - -``write()``: -- ``Writer`` is removed. Instead supply the equivalent ``format`` argument. - -``get_writer()``: -- Use ``writer_cls`` instead of ``Writer``. diff --git a/docs/changes/io.ascii/15774.bugfix.rst b/docs/changes/io.ascii/15774.bugfix.rst deleted file mode 100644 index ddea55f804a6..000000000000 --- a/docs/changes/io.ascii/15774.bugfix.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fix the broken behavior of reading an ASCII table and filling values using column names. -This PR addresses the issue and improves the functionality. diff --git a/docs/changes/io.ascii/16840.perf.rst b/docs/changes/io.ascii/16840.perf.rst deleted file mode 100644 index d5b25bea3e3d..000000000000 --- a/docs/changes/io.ascii/16840.perf.rst +++ /dev/null @@ -1,5 +0,0 @@ -The performance of guessing the table format when reading large files with -``astropy.io.ascii`` has been improved. Now the process uses at most -10000 lines of the file to check if it matches the format. This behavior can -be configured using the ``astropy.io.ascii.conf.guess_limit_lines`` -configuration item, including disabling the limit entirely. diff --git a/docs/changes/io.ascii/16930.feature.rst b/docs/changes/io.ascii/16930.feature.rst deleted file mode 100644 index 3fad269c4e44..000000000000 --- a/docs/changes/io.ascii/16930.feature.rst +++ /dev/null @@ -1,2 +0,0 @@ -Add support for `pathlib.Path` objects in -`astropy.io.ascii.core.BaseInputter.get_lines`. diff --git a/docs/changes/io.fits/15474.api.rst b/docs/changes/io.fits/15474.api.rst deleted file mode 100644 index 307dfec2ca46..000000000000 --- a/docs/changes/io.fits/15474.api.rst +++ /dev/null @@ -1,6 +0,0 @@ -The ``CompImageHDU`` class has been refactored to inherit from ``ImageHDU`` -instead of ``BinTableHDU``. This change should be for the most part preserve the -API, but any calls to ``isinstance(hdu, BinTableHDU)`` will now return ``False`` -if ``hdu`` is a ``CompImageHDU`` whereas before it would have returned ``True``. -In addition, the ``uint`` keyword argument to ``CompImageHDU`` now defaults to -``True`` for consistency with ``ImageHDU``. diff --git a/docs/changes/io.fits/15474.bugfix.rst b/docs/changes/io.fits/15474.bugfix.rst deleted file mode 100644 index 5650714919ce..000000000000 --- a/docs/changes/io.fits/15474.bugfix.rst +++ /dev/null @@ -1,11 +0,0 @@ -Fix a number of bugs in ``CompImageHDU``: - -* Fix the ability to pickle ``CompImageHDU`` objects -* Ensure that compression settings are not lost if initializing ``CompImageHDU`` - without data but with compression settings and setting the data later -* Make sure that keywords are properly updated when setting the header of a - ``CompImageHDU`` to an existing image header. -* Fix the ability to use ``CompImageHDU.section`` on instances that have not yet - been written to disk -* Fix the image checksum/datasum in ``CompImageHDU.header`` to be those for the - image HDU instead of for the underlying binary table. diff --git a/docs/changes/io.fits/15781.api.rst b/docs/changes/io.fits/15781.api.rst deleted file mode 100644 index 7531f2934b35..000000000000 --- a/docs/changes/io.fits/15781.api.rst +++ /dev/null @@ -1,8 +0,0 @@ -Remove many unintended exports from ``astropy.io.fits.hdu.compressed``. -The low-level functions ``compress_image_data`` and ``decompress_image_data_section`` -are now only available at the qualified names -``astropy.io.fits.hdu.compressed._tiled_compression.compress_image_data`` -and ``astropy.io.fits.hdu.compressed._tiled_compression.decompress_image_data_section``. -The rest of the removed exports are external modules or properly exported -elsewhere in astropy. May break imports in rare cases that relied -on these exports. diff --git a/docs/changes/io.fits/17097.feature.rst b/docs/changes/io.fits/17097.feature.rst deleted file mode 100644 index 55da93486329..000000000000 --- a/docs/changes/io.fits/17097.feature.rst +++ /dev/null @@ -1,2 +0,0 @@ -Expanded ``FITSDiff`` output for ``PrimaryHDU`` and ``ImageHDU`` to include the -maximum relative and absolute differences in the data. diff --git a/docs/changes/io.fits/17099.bugfix.rst b/docs/changes/io.fits/17099.bugfix.rst deleted file mode 100644 index cff2187839a4..000000000000 --- a/docs/changes/io.fits/17099.bugfix.rst +++ /dev/null @@ -1 +0,0 @@ -Fix a spurious exception when reading integer compressed images with blanks. diff --git a/docs/changes/io.fits/17100.api.rst b/docs/changes/io.fits/17100.api.rst deleted file mode 100644 index e009a17eeb7a..000000000000 --- a/docs/changes/io.fits/17100.api.rst +++ /dev/null @@ -1,4 +0,0 @@ -The ``CompImageHeader`` class is now deprecated, and headers on ``CompImageHDU`` -instances are now plain ``Header`` instances. If a reserved keyword is set on -``CompImageHDU.header``, a warning will now be emitted at the point where the -file is written rather than at the point where the keyword is set. diff --git a/docs/changes/io.fits/17155.api.rst b/docs/changes/io.fits/17155.api.rst deleted file mode 100644 index 8d419a7fc183..000000000000 --- a/docs/changes/io.fits/17155.api.rst +++ /dev/null @@ -1,4 +0,0 @@ -- Remove code that was deprecated in previous versions: ``_ExtensionHDU`` and - ``_NonstandardExtHDU``, ``(Bin)Table.update``, ``tile_size`` argument for - ``CompImageHDU``. Also specifying an invalid ``tile_shape`` now raises an - error. diff --git a/docs/changes/io.fits/17209.perf.rst b/docs/changes/io.fits/17209.perf.rst deleted file mode 100644 index dc6e91181562..000000000000 --- a/docs/changes/io.fits/17209.perf.rst +++ /dev/null @@ -1 +0,0 @@ -Optimize checksum computation. diff --git a/docs/changes/io.fits/17237.bugfix.rst b/docs/changes/io.fits/17237.bugfix.rst deleted file mode 100644 index 2bc43c02c942..000000000000 --- a/docs/changes/io.fits/17237.bugfix.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fix creating CompImageHDU from header with BSCALE/BZERO: keywords are now -ignored, as done in ImageHDU. diff --git a/docs/changes/io.misc/16375.api.rst b/docs/changes/io.misc/16375.api.rst deleted file mode 100644 index a29d4340c87b..000000000000 --- a/docs/changes/io.misc/16375.api.rst +++ /dev/null @@ -1,2 +0,0 @@ -New format ``"parquet.votable"`` is added to read and write a parquet file -with a votable metadata included. diff --git a/docs/changes/io.misc/16955.feature.rst b/docs/changes/io.misc/16955.feature.rst deleted file mode 100644 index 091e3fb7c09d..000000000000 --- a/docs/changes/io.misc/16955.feature.rst +++ /dev/null @@ -1,2 +0,0 @@ -The HDF5 writer, ``write_table_hdf5()``, now accepts ``os.PathLike`` objects -as ``output``. diff --git a/docs/changes/io.votable/15959.api.rst b/docs/changes/io.votable/15959.api.rst deleted file mode 100644 index 488ee77fd668..000000000000 --- a/docs/changes/io.votable/15959.api.rst +++ /dev/null @@ -1,5 +0,0 @@ -``Table.read(..., format='votable')``, ``votable.parse`` and -``votable.parse_single_table`` now respect the ``columns`` argument and will only output -selected columns. Previously, unselected columns would just be masked (and unallocated). -``astropy.io.votable.tree.TableElement.create_arrays`` also gained a ``colnumbers`` -keyword argument to allow column selection. diff --git a/docs/changes/io.votable/16488.bugfix.rst b/docs/changes/io.votable/16488.bugfix.rst deleted file mode 100644 index f2a9c583f79d..000000000000 --- a/docs/changes/io.votable/16488.bugfix.rst +++ /dev/null @@ -1,3 +0,0 @@ -Making the "votable.parquet" format available as a reader format to ensure -consistency with the writer formats, even though the format it recognised -automatically by "votable". diff --git a/docs/changes/io.votable/16856.feature.rst b/docs/changes/io.votable/16856.feature.rst deleted file mode 100644 index 0ec2eea4936a..000000000000 --- a/docs/changes/io.votable/16856.feature.rst +++ /dev/null @@ -1,2 +0,0 @@ -Support reading and writing of VOTable version 1.5, including the new -``refposition`` attribute of ``COOSYS``. diff --git a/docs/changes/io.votable/17156.bugfix.rst b/docs/changes/io.votable/17156.bugfix.rst deleted file mode 100644 index 6e58ea3fb10e..000000000000 --- a/docs/changes/io.votable/17156.bugfix.rst +++ /dev/null @@ -1,3 +0,0 @@ -Explicitly set ``usedforsecurity=False`` when using ``hashlib.md5``. Without this, ``hashlib.md5`` will be blocked in FIPS mode. -FIPS (Federal Information Processing Standards) is a set of standards created by NIST (National Institute of Standards and Technology) for US government agencies regarding computer security and interoperability. -This affects validation results ingestion. diff --git a/docs/changes/modeling/16670.perf.rst b/docs/changes/modeling/16670.perf.rst deleted file mode 100644 index 8335337df393..000000000000 --- a/docs/changes/modeling/16670.perf.rst +++ /dev/null @@ -1,4 +0,0 @@ -Improved the performance of 1D models, models with scalar parameters, and models -without units, when evaluating them with scalar or small arrays of inputs. For -models that satisfy all of the conditions above, the improvement can be on the -order of 30-40% in execution time. diff --git a/docs/changes/modeling/16673.api.rst b/docs/changes/modeling/16673.api.rst deleted file mode 100644 index 8204b6d46214..000000000000 --- a/docs/changes/modeling/16673.api.rst +++ /dev/null @@ -1,3 +0,0 @@ -Subclasses of ``_NonLinearLSQFitter``, so any subclasses of the public ``LevMarLSQFitter``, ``TRFLSQFitter``, ``LMLSQFitter`` or ``DogBoxLSQFitter``, should now accept an additional ``fit_param_indices`` kwarg in the function signature of their ``objective_function`` methods. -Nothing is needed to be done with this kwarg, and it might not be set, but it can optionally be passed through to ``fitter_to_model_params_array`` for a performance improvement. -We also recommended accepting all kwargs (with ``**kwargs``) in this method so that future additional kwargs do not cause breakage. diff --git a/docs/changes/modeling/16673.perf.rst b/docs/changes/modeling/16673.perf.rst deleted file mode 100644 index 2633e61faded..000000000000 --- a/docs/changes/modeling/16673.perf.rst +++ /dev/null @@ -1 +0,0 @@ -Performance of most non-linear fitters has been significantly improved by reducing the overhead in evaluating models inside the objective function. diff --git a/docs/changes/modeling/16677.feature.rst b/docs/changes/modeling/16677.feature.rst deleted file mode 100644 index 8c7d14e8555d..000000000000 --- a/docs/changes/modeling/16677.feature.rst +++ /dev/null @@ -1,3 +0,0 @@ -Added ``Model.has_tied``, ``Model.has_fixed``, and ``Model.has_bounds`` attributes to make -it easy to check whether models have various kinds of constraints set without having to -inspect ``Model.tied``, ``Model.fixed``, and ``Model.bounds`` in detail. diff --git a/docs/changes/modeling/16696.feature.rst b/docs/changes/modeling/16696.feature.rst deleted file mode 100644 index 4749d50eb63c..000000000000 --- a/docs/changes/modeling/16696.feature.rst +++ /dev/null @@ -1,3 +0,0 @@ -Added a new ``parallel_fit_dask`` function that can be used to fit models to -many sections (e.g. spectra, image slices) on an N-dimensional array in -parallel. diff --git a/docs/changes/modeling/16770.api.rst b/docs/changes/modeling/16770.api.rst deleted file mode 100644 index bbb4e93a158d..000000000000 --- a/docs/changes/modeling/16770.api.rst +++ /dev/null @@ -1,4 +0,0 @@ -Exception message for when broadcast shapes mismatch has changed. -Previously, it used complicated regex to maintain backward compatibility. -To ease maintenance, this regex has been removed and now directly -passes exception from ``numpy.broadcast_shapes`` function. diff --git a/docs/changes/modeling/16800.feature.rst b/docs/changes/modeling/16800.feature.rst deleted file mode 100644 index e1dd8caf33fa..000000000000 --- a/docs/changes/modeling/16800.feature.rst +++ /dev/null @@ -1 +0,0 @@ -Added a ``Lorentz2D`` model. diff --git a/docs/changes/modeling/16829.bugfix.rst b/docs/changes/modeling/16829.bugfix.rst deleted file mode 100644 index a8428a9661f8..000000000000 --- a/docs/changes/modeling/16829.bugfix.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fixed the output representation of models with parameters that have -units of ``dimensionless_unscaled``. diff --git a/docs/changes/modeling/16994.api.rst b/docs/changes/modeling/16994.api.rst deleted file mode 100644 index 8328e5cd8363..000000000000 --- a/docs/changes/modeling/16994.api.rst +++ /dev/null @@ -1,3 +0,0 @@ -Using the ``LMLSQFitter`` fitter with models that have bounds is now deprecated, -as support for bounds was very basic. Instead, non-linear fitters with more -sophisticated support for bounds should be used instead. diff --git a/docs/changes/modeling/16995.api.rst b/docs/changes/modeling/16995.api.rst deleted file mode 100644 index 87a1a578648a..000000000000 --- a/docs/changes/modeling/16995.api.rst +++ /dev/null @@ -1,4 +0,0 @@ -The optional ``use_min_max_bounds`` keyword argument in ``TRFLSQFitter`` and -``DogBoxLSQFitter`` has now been deprecated and should not be used. These -fitters handle bounds correctly by default and this keyword argument was only -provided to opt-in to a more basic form of bounds handling. diff --git a/docs/changes/modeling/17033.feature.rst b/docs/changes/modeling/17033.feature.rst deleted file mode 100644 index 953fb57db628..000000000000 --- a/docs/changes/modeling/17033.feature.rst +++ /dev/null @@ -1,4 +0,0 @@ -Added ``inplace=False/True`` keyword argument to the ``__call__`` method of most fitters, -to optionally allow the original model passed to the fitter to be modified with the fitted -values of the parameters, rather than return a copy. This can improve performance if users -don't need to keep hold of the initial parameter values. diff --git a/docs/changes/modeling/17033.perf.rst b/docs/changes/modeling/17033.perf.rst deleted file mode 100644 index 702a43b42e91..000000000000 --- a/docs/changes/modeling/17033.perf.rst +++ /dev/null @@ -1,2 +0,0 @@ -Improved the performance of ``parallel_fit_dask`` by avoiding unnecessary copies of the -model inside the fitter. diff --git a/docs/changes/modeling/17034.perf.rst b/docs/changes/modeling/17034.perf.rst deleted file mode 100644 index 090e3b633c6d..000000000000 --- a/docs/changes/modeling/17034.perf.rst +++ /dev/null @@ -1 +0,0 @@ -``CompoundModel`` now implements numerical derivatives of parameters when using the +, -, * or / operators. This improves the speed of fitting these models because numerical derivatives of the parameters are not calculated. diff --git a/docs/changes/modeling/17248.api.rst b/docs/changes/modeling/17248.api.rst deleted file mode 100644 index 7c92935bb022..000000000000 --- a/docs/changes/modeling/17248.api.rst +++ /dev/null @@ -1,2 +0,0 @@ -The deprecated ``comb()`` function has been removed. -Use ``math.comb()`` from the Python standard library instead. diff --git a/docs/changes/stats/16967.perf.rst b/docs/changes/stats/16967.perf.rst deleted file mode 100644 index c447bb96a77e..000000000000 --- a/docs/changes/stats/16967.perf.rst +++ /dev/null @@ -1,4 +0,0 @@ -The performance of biweight_location, biweight_scale, -biweight_midvariance, and median_absolute_deviation has been improved by -using the bottleneck nan* functions when available. This requires the -bottleneck optional dependency to be installed. diff --git a/docs/changes/stats/17116.api.rst b/docs/changes/stats/17116.api.rst deleted file mode 100644 index 0dcb3e59b7ed..000000000000 --- a/docs/changes/stats/17116.api.rst +++ /dev/null @@ -1,2 +0,0 @@ -Integer inputs to ``sigma_clip`` and ``SigmaClip`` are not converted to -``np.float32`` instead of ``float`` if necessary. diff --git a/docs/changes/stats/17204.bugfix.rst b/docs/changes/stats/17204.bugfix.rst deleted file mode 100644 index c6ef08b1d396..000000000000 --- a/docs/changes/stats/17204.bugfix.rst +++ /dev/null @@ -1,4 +0,0 @@ -Fixed accuracy of sigma clipping for large ``float32`` arrays when -``bottleneck`` is installed. Performance may be impacted for computations -involving arrays with dtype other than ``float64``. This change has no impact -for environments that do not have ``bottleneck`` installed. diff --git a/docs/changes/stats/17221.feature.rst b/docs/changes/stats/17221.feature.rst deleted file mode 100644 index 665fd7fd2030..000000000000 --- a/docs/changes/stats/17221.feature.rst +++ /dev/null @@ -1,2 +0,0 @@ -Added a SigmaClippedStats convenience class for computing sigma-clipped -statistics. diff --git a/docs/changes/stats/17402.bugfix.rst b/docs/changes/stats/17402.bugfix.rst deleted file mode 100644 index 88cd3c073493..000000000000 --- a/docs/changes/stats/17402.bugfix.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fix an issue in sigma-clipping where the use of ``np.copy()`` was causing -the input data mask to be discarded in cases where ``grow`` was set. diff --git a/docs/changes/table/15735.bugfix.rst b/docs/changes/table/15735.bugfix.rst deleted file mode 100644 index 5c83d2f27397..000000000000 --- a/docs/changes/table/15735.bugfix.rst +++ /dev/null @@ -1 +0,0 @@ -Fix a bug where column names would be lost when instantiating ``Table`` from a list of ``Row`` objects. diff --git a/docs/changes/table/16250.api.rst b/docs/changes/table/16250.api.rst deleted file mode 100644 index 3ee9a61547c4..000000000000 --- a/docs/changes/table/16250.api.rst +++ /dev/null @@ -1,9 +0,0 @@ -Change the default type for the ``meta`` attribute in ``Table`` and ``Column`` (and -subclasses) from ``OrderedDict`` to ``dict``. Since Python 3.8 the ``dict`` class is -ordered by default, so there is no need to use ``OrderedDict``. - -In addition the ECSV table writer in ``astropy.io.ascii`` was updated to consistently -write the ``meta`` attribute as an ordered map using the ``!!omap`` tag. This -convention conforms to the ECSV specification and is supported by existing ECSV readers. -Previously the ``meta`` attribute could be written as an ordinary YAML map, which is not -guaranteed to preserve the order of the keys. diff --git a/docs/changes/table/16250.feature.rst b/docs/changes/table/16250.feature.rst deleted file mode 100644 index 741e0fe754e7..000000000000 --- a/docs/changes/table/16250.feature.rst +++ /dev/null @@ -1,4 +0,0 @@ -Changed a number of dict-like containers in ``io.ascii`` from ``OrderedDict`` to -``dict``. The ``dict`` class maintains key order since Python 3.8 so ``OrderedDict`` is -no longer needed. The changes are largely internal and should not affect users in any -way. See also the API change log entry for this PR. diff --git a/docs/changes/table/16360.api.rst b/docs/changes/table/16360.api.rst deleted file mode 100644 index 047dba475610..000000000000 --- a/docs/changes/table/16360.api.rst +++ /dev/null @@ -1,2 +0,0 @@ -An exception is now raised when trying to add a multi-dimensional column as an -index via ``Table.add_index``. diff --git a/docs/changes/table/16361.feature.rst b/docs/changes/table/16361.feature.rst deleted file mode 100644 index f1cc02fc50d0..000000000000 --- a/docs/changes/table/16361.feature.rst +++ /dev/null @@ -1,4 +0,0 @@ -Add a ``keep_order`` argument to the ``astropy.table.join`` function which specifies to -maintain the original order of the key table in the joined output. This applies for -inner, left, and right joins. The default is ``False`` in which case the output is -ordered by the join keys, consistent with prior behavior. diff --git a/docs/changes/table/16498.api.rst b/docs/changes/table/16498.api.rst deleted file mode 100644 index 89e601dc807f..000000000000 --- a/docs/changes/table/16498.api.rst +++ /dev/null @@ -1,2 +0,0 @@ -Aggregating table groups for ``MaskedColumn`` no longer converts -fully masked groups to ``NaN``, but instead returns a masked element. diff --git a/docs/changes/table/16498.bugfix.rst b/docs/changes/table/16498.bugfix.rst deleted file mode 100644 index 172e9e39fb56..000000000000 --- a/docs/changes/table/16498.bugfix.rst +++ /dev/null @@ -1,2 +0,0 @@ -Aggregating table groups for ``MaskedColumn`` now ensures that fully-masked -groups result in masked elements rather than ``NaN``. diff --git a/docs/changes/table/16500.api.rst b/docs/changes/table/16500.api.rst deleted file mode 100644 index 0e3500730a4b..000000000000 --- a/docs/changes/table/16500.api.rst +++ /dev/null @@ -1,7 +0,0 @@ -Always use ``MaskedQuantity`` in ``QTable`` to represent masked ``Quantity`` -data or when the ``QTable`` is created with ``masked=True``. Previously the -default was to use a normal ``Quantity`` with a ``mask`` attribute of type -``FalseArray`` as a stub to allow a minimal level of compatibility for certain -operations. This update brings more consistent behavior and fixes functions -like reading of table data from a list of dict that includes quantities with -missing entries, and aggregation of ``MaskedQuantity`` in table groups. diff --git a/docs/changes/table/17102.api.rst b/docs/changes/table/17102.api.rst deleted file mode 100644 index 08a002ca036c..000000000000 --- a/docs/changes/table/17102.api.rst +++ /dev/null @@ -1,3 +0,0 @@ -Setting an empty table to a scalar no longer raises an exception, but -creates an empty column. This is to support cases where the number of -elements in a table is not known in advance, and could be zero. diff --git a/docs/changes/table/17165.api.rst b/docs/changes/table/17165.api.rst deleted file mode 100644 index eeb545b4744c..000000000000 --- a/docs/changes/table/17165.api.rst +++ /dev/null @@ -1,5 +0,0 @@ -``show_in_notebook`` method for Astropy tables has been un-deprecated and the API has -been updated to accept a ``backend`` keyword and require only keyword arguments. The new -default ``backend="ipydatagrid"`` relies on an optional dependency, ``ipydatagrid``. The -previous default table viewer (prior to v7.0) is still available as -``backend="classic"``, but it has been deprecated since v6.1 and will be removed in a future release. diff --git a/docs/changes/table/17184.api.rst b/docs/changes/table/17184.api.rst deleted file mode 100644 index 4c85e1a8625b..000000000000 --- a/docs/changes/table/17184.api.rst +++ /dev/null @@ -1,6 +0,0 @@ -The default behavior of ``Table.pformat`` was changed to include all rows and columns -instead of truncating the outputs to fit the current terminal. The new default -keyword arguments ``max_width=-1`` and ``max_lines=-1`` now match those in -``Table.pformat_all``. Since the ``Table.pformat_all`` method is now redundant, it is -pending deprecation. Similarly, the default behavior of ``Column.pformat`` was changed -to include all rows instead of truncating the outputs to fit the current terminal. diff --git a/docs/changes/table/17380.bugfix.rst b/docs/changes/table/17380.bugfix.rst deleted file mode 100644 index 3a9cfba8defc..000000000000 --- a/docs/changes/table/17380.bugfix.rst +++ /dev/null @@ -1,3 +0,0 @@ -Ensure that tables holding coordinates or representations can also be stacked -if they have zero length. This fix also ensures that the ``insert`` method -works correctly with a zero-length table holding a coordinate object. diff --git a/docs/changes/table/17385.bugfix.rst b/docs/changes/table/17385.bugfix.rst deleted file mode 100644 index c31e40a9b2d5..000000000000 --- a/docs/changes/table/17385.bugfix.rst +++ /dev/null @@ -1 +0,0 @@ -Fixed table aggregate with empty columns when float is present. diff --git a/docs/changes/time/17212.api.rst b/docs/changes/time/17212.api.rst deleted file mode 100644 index 238495be31fa..000000000000 --- a/docs/changes/time/17212.api.rst +++ /dev/null @@ -1,5 +0,0 @@ -``Time.ptp`` now properly emits a deprecation warning independently of NumPy's -version. This method was previously deprecated in astropy 6.1, but the warning -was not visible for users that had NumPy 1.x installed. Because of this, the -warning message was updated to state that ``Time.ptp`` is deprecated since -version 7.0 instead. diff --git a/docs/changes/units/15642.api.rst b/docs/changes/units/15642.api.rst deleted file mode 100644 index fedc4b8ec388..000000000000 --- a/docs/changes/units/15642.api.rst +++ /dev/null @@ -1,2 +0,0 @@ -The deprecated ``Quantity.nansum()`` method has been removed. Use -``np.nansum`` instead. diff --git a/docs/changes/units/16087.feature.rst b/docs/changes/units/16087.feature.rst deleted file mode 100644 index 48c900d6dc69..000000000000 --- a/docs/changes/units/16087.feature.rst +++ /dev/null @@ -1,3 +0,0 @@ -Add a ``formatter`` argument to the ``to_string`` method of the ``Quantity`` -class. Enables custom number formatting with a callable formatter or -format_spec, especially useful for consistent notation. diff --git a/docs/changes/units/16343.api.rst b/docs/changes/units/16343.api.rst deleted file mode 100644 index fbedfd65df09..000000000000 --- a/docs/changes/units/16343.api.rst +++ /dev/null @@ -1,4 +0,0 @@ -The ``factor`` parameter of the ``spectral_density`` equivalency, the use of -which has been discouraged in the documentation since version 0.3, is now -deprecated. -Use the ``wav`` parameter as a ``Quantity``, not as a bare unit. diff --git a/docs/changes/units/16441.feature.rst b/docs/changes/units/16441.feature.rst deleted file mode 100644 index 0add905f959c..000000000000 --- a/docs/changes/units/16441.feature.rst +++ /dev/null @@ -1,2 +0,0 @@ -Add the unit foe (or Bethe, equivalent to 1e51 erg), which is often used to -express the energy emitted by a supernova explosion. diff --git a/docs/changes/units/16455.api.rst b/docs/changes/units/16455.api.rst deleted file mode 100644 index 93ef1af92e68..000000000000 --- a/docs/changes/units/16455.api.rst +++ /dev/null @@ -1,4 +0,0 @@ -The ``format.Fits`` formatter class has been renamed to ``format.FITS`` and the -old name is deprecated. -Specifying the FITS format for converting ``Quantity`` and ``UnitBase`` -instances to and from strings is not affected by this change. diff --git a/docs/changes/units/16516.feature.rst b/docs/changes/units/16516.feature.rst deleted file mode 100644 index 4fa419d8579b..000000000000 --- a/docs/changes/units/16516.feature.rst +++ /dev/null @@ -1,2 +0,0 @@ -Add ``magnetic_flux_field`` equivalency to convert magnetic field between -magnetic field strength (H) and magnetic flux density (B). diff --git a/docs/changes/units/16529.bugfix.rst b/docs/changes/units/16529.bugfix.rst deleted file mode 100644 index 10ea5a30276b..000000000000 --- a/docs/changes/units/16529.bugfix.rst +++ /dev/null @@ -1 +0,0 @@ -Allow SI-prefixes for radioactivity units ``becquerel`` and ``curie`` in ``astropy.units.si``, conforming to BIPM's guidelines for SI units. diff --git a/docs/changes/units/16613.api.rst b/docs/changes/units/16613.api.rst deleted file mode 100644 index bd2fa9da4390..000000000000 --- a/docs/changes/units/16613.api.rst +++ /dev/null @@ -1,3 +0,0 @@ -Conversion from one unit to another using ``old_unit.to(new_unit, value)`` no longer -converts ``value`` automatically to a numpy array, but passes through array duck types -such as ``dask`` arrays, with equivalencies properly accounted for. diff --git a/docs/changes/units/16676.api.rst b/docs/changes/units/16676.api.rst deleted file mode 100644 index 5927575843e3..000000000000 --- a/docs/changes/units/16676.api.rst +++ /dev/null @@ -1,16 +0,0 @@ -The ``format_exponential_notation()`` method of the ``Base`` unit formatter has -changed. -Any unit formatters that inherit directly from ``Base`` but have not -implemented their own ``format_exponential_notation()`` and wish to retain -previous behavior should implement it as: - -.. code-block:: python - - def format_exponential_notation(cls, val, format_spec): - return format(val, format_spec) - -Any formatters that inherit directly from ``Base`` and call -``super().format_exponential_notation(val, format_spec)`` should instead call -``format(val, format_spec)`` -The specific unit formatters in ``astropy.units`` and custom formatters that -inherit from any of them are not affected. diff --git a/docs/changes/units/16707.api.rst b/docs/changes/units/16707.api.rst deleted file mode 100644 index 2a2fe43abf9f..000000000000 --- a/docs/changes/units/16707.api.rst +++ /dev/null @@ -1,2 +0,0 @@ -The deprecated ``units.format.Unscaled`` has been removed. Use ``units.format.Generic`` -instead. diff --git a/docs/changes/units/16729.feature.rst b/docs/changes/units/16729.feature.rst deleted file mode 100644 index 30b958a2ef3d..000000000000 --- a/docs/changes/units/16729.feature.rst +++ /dev/null @@ -1 +0,0 @@ -Added SI-units ``sievert``, ``gray``, ``katal``, and ``hectare`` in ``astropy.units.si``. diff --git a/docs/changes/units/16742.perf.rst b/docs/changes/units/16742.perf.rst deleted file mode 100644 index 37ac5e9dede2..000000000000 --- a/docs/changes/units/16742.perf.rst +++ /dev/null @@ -1 +0,0 @@ -The ``units.quantity_input`` decorator has been optimized, especially in the case that no equivalencies are provided to the decorator, and the speed-up is very noticeable when wrapping short functions. diff --git a/docs/changes/units/16749.bugfix.rst b/docs/changes/units/16749.bugfix.rst deleted file mode 100644 index 76abe28c86ea..000000000000 --- a/docs/changes/units/16749.bugfix.rst +++ /dev/null @@ -1,4 +0,0 @@ -The OGIP unit parser no longer accepts strings where a component unit is -followed by a parenthesized unit without a separator in between, such as -``'m(s)'`` or ``'m(s)**2'``. -Such strings are not allowed by the OGIP standard. diff --git a/docs/changes/units/16761.perf.rst b/docs/changes/units/16761.perf.rst deleted file mode 100644 index 27d6d3453110..000000000000 --- a/docs/changes/units/16761.perf.rst +++ /dev/null @@ -1 +0,0 @@ -Parsing composite units with the OGIP formatter is now up to 25% faster. diff --git a/docs/changes/units/16779.bugfix.rst b/docs/changes/units/16779.bugfix.rst deleted file mode 100644 index d033f4bbe696..000000000000 --- a/docs/changes/units/16779.bugfix.rst +++ /dev/null @@ -1,3 +0,0 @@ -A few edge cases that could result in a power of a unit to be a numerical value -from ``numpy``, instead of the intended Python ``int``, ``float`` or -``fractions.Fraction`` instance, have been fixed. diff --git a/docs/changes/units/16784.api.rst b/docs/changes/units/16784.api.rst deleted file mode 100644 index 6579cf2a654c..000000000000 --- a/docs/changes/units/16784.api.rst +++ /dev/null @@ -1,2 +0,0 @@ -Added a __round__() dunder method to ``Quantity`` -in order to support the built-in round() function. diff --git a/docs/changes/units/16788.bugfix.rst b/docs/changes/units/16788.bugfix.rst deleted file mode 100644 index 0254ba3ddfe2..000000000000 --- a/docs/changes/units/16788.bugfix.rst +++ /dev/null @@ -1,7 +0,0 @@ -The OGIP unit parser now detects negative powers that are not enclosed in -parenthesis. -For example, ``u.Unit("s**-1", format="ogip")`` now raises an error because the -OGIP standard expects the string to be written as ``"s**(-1)"`` instead, but it -is still possible to parse the unit with -``u.Unit("s**-1", format="ogip", parse_strict="warn")`` or -``parse_strict="silent"``. diff --git a/docs/changes/units/16813.perf.rst b/docs/changes/units/16813.perf.rst deleted file mode 100644 index 048552997f6c..000000000000 --- a/docs/changes/units/16813.perf.rst +++ /dev/null @@ -1 +0,0 @@ -Parsing units with scale factors is now up to 50% faster. diff --git a/docs/changes/units/16861.bugfix.rst b/docs/changes/units/16861.bugfix.rst deleted file mode 100644 index 835392b10c7a..000000000000 --- a/docs/changes/units/16861.bugfix.rst +++ /dev/null @@ -1 +0,0 @@ -``UnitScaleError`` can now be imported from the ``astropy.units`` namespace. diff --git a/docs/changes/units/16875.api.rst b/docs/changes/units/16875.api.rst deleted file mode 100644 index 4a730e876017..000000000000 --- a/docs/changes/units/16875.api.rst +++ /dev/null @@ -1,2 +0,0 @@ -For ``Masked`` initialization in which a mask is passed in, ensure that that -mask is combined with any mask present on the input. diff --git a/docs/changes/units/16892.feature.rst b/docs/changes/units/16892.feature.rst deleted file mode 100644 index 44492dba351e..000000000000 --- a/docs/changes/units/16892.feature.rst +++ /dev/null @@ -1,5 +0,0 @@ -When parsing invalid unit strings with ``u.Unit(..., parse_strict="warn")`` or -``u.Unit(..., parse_strict="silent")``, a normal unit may be returned if the -problem is not too serious. -If parsing the string fails completely then an ``UnrecognizedUnit`` instance is -returned, just as before. diff --git a/docs/changes/units/16958.api.rst b/docs/changes/units/16958.api.rst deleted file mode 100644 index e42f4815fe95..000000000000 --- a/docs/changes/units/16958.api.rst +++ /dev/null @@ -1,3 +0,0 @@ -The ``get_format_name()`` method of ``NamedUnit`` and its subclasses is -deprecated. -The ``to_string()`` method can be used instead. diff --git a/docs/changes/units/17004.perf.rst b/docs/changes/units/17004.perf.rst deleted file mode 100644 index 313adda81479..000000000000 --- a/docs/changes/units/17004.perf.rst +++ /dev/null @@ -1,2 +0,0 @@ -Parsing strings representing non-composite units with ``Unit`` is now up to 25% -faster. diff --git a/docs/changes/units/17043.perf.rst b/docs/changes/units/17043.perf.rst deleted file mode 100644 index 1bc1c5a12d84..000000000000 --- a/docs/changes/units/17043.perf.rst +++ /dev/null @@ -1,2 +0,0 @@ -Converting composite units to strings with the ``"cds"``, ``"fits"``, -``"ogip"`` and ``"vounit"`` formatters is now at least twice as fast. diff --git a/docs/changes/units/17059.feature.rst b/docs/changes/units/17059.feature.rst deleted file mode 100644 index e8a51be411f2..000000000000 --- a/docs/changes/units/17059.feature.rst +++ /dev/null @@ -1,2 +0,0 @@ -Added a ``np.arange`` dispatch for ``Quantity`` (requires one to use -``like=``). diff --git a/docs/changes/units/17120.feature.rst b/docs/changes/units/17120.feature.rst deleted file mode 100644 index 75e9d4ad9870..000000000000 --- a/docs/changes/units/17120.feature.rst +++ /dev/null @@ -1,2 +0,0 @@ -Added support for calling numpy array constructors (``np.empty``, ``np.ones``, -``np.zeros`` and ``np.full``) with ``like=Quantity(...)`` . diff --git a/docs/changes/units/17121.api.rst b/docs/changes/units/17121.api.rst deleted file mode 100644 index 7ac2ff86db21..000000000000 --- a/docs/changes/units/17121.api.rst +++ /dev/null @@ -1,2 +0,0 @@ -The ``UnitBase.in_units()`` method is deprecated. -The ``to()`` method can be used as a drop-in replacement. diff --git a/docs/changes/units/17122.api.rst b/docs/changes/units/17122.api.rst deleted file mode 100644 index 49156a5b47a1..000000000000 --- a/docs/changes/units/17122.api.rst +++ /dev/null @@ -1,7 +0,0 @@ -Unit conversions to a given system with ``unit.to_system()``, -``unit.si``, and ``unit.cgs``, will now prefer the simplest unit if it -is in the given system, rather than prioritizing more complicated -units if those had a base unit component. E.g., ``u.Pa.si`` will now -simply return ``Unit("Pa")`` rather than ``Unit("N / m2")``. However, -the case where a unit can be simply described in base units remains -unchanged: ``u.Gal.cgs`` will still give ``Unit("cm / s2")``. diff --git a/docs/changes/units/17125.feature.rst b/docs/changes/units/17125.feature.rst deleted file mode 100644 index 18a4cdd71404..000000000000 --- a/docs/changes/units/17125.feature.rst +++ /dev/null @@ -1,3 +0,0 @@ -Added support for calling numpy array constructors (``np.array``, -``np.asarray``, ``np.asanyarray``, ``np.ascontiguousarray`` and -``np.asfortranarray``) with ``like=Quantity(...)`` . diff --git a/docs/changes/units/17128.feature.rst b/docs/changes/units/17128.feature.rst deleted file mode 100644 index ff1aa068199b..000000000000 --- a/docs/changes/units/17128.feature.rst +++ /dev/null @@ -1,3 +0,0 @@ -Added support for calling numpy array constructors (``np.frombuffer``, -``np.fromfile``, ``np.fromiter``, ``np.fromstring`` and ``np.fromfunction``) -with ``like=Quantity(...))`` . diff --git a/docs/changes/units/17130.feature.rst b/docs/changes/units/17130.feature.rst deleted file mode 100644 index d49966d6f7cb..000000000000 --- a/docs/changes/units/17130.feature.rst +++ /dev/null @@ -1,3 +0,0 @@ -Added support for calling numpy array constructors (``np.require``, -``np.identity``, ``np.eye``, ``np.tri``, ``np.genfromtxt`` and ``np.loadtxt``) -with ``like=Quantity(...))`` . diff --git a/docs/changes/units/17178.api.rst b/docs/changes/units/17178.api.rst deleted file mode 100644 index c7f4fc731832..000000000000 --- a/docs/changes/units/17178.api.rst +++ /dev/null @@ -1,2 +0,0 @@ -The ``CDS``, ``OGIP`` and ``VOUnit`` unit formatters are now subclasses of the -``FITS`` unit formatter. diff --git a/docs/changes/units/17232.bugfix.rst b/docs/changes/units/17232.bugfix.rst deleted file mode 100644 index 003f270b7b62..000000000000 --- a/docs/changes/units/17232.bugfix.rst +++ /dev/null @@ -1,6 +0,0 @@ -Parsing custom units with ``u.Unit()`` using the ``"vounit"`` format now obeys -the ``parse_strict`` parameter, unless the custom units are made explicit with -quotation marks. -For example, ``u.Unit("custom_unit", format="vounit")`` now raises an error, -but ``u.Unit("custom_unit", format="vounit", parse_strict="silent")`` or -``u.Unit("'custom_unit'", format="vounit")`` do not. diff --git a/docs/changes/units/17246.api.rst b/docs/changes/units/17246.api.rst deleted file mode 100644 index ef69bb2da20e..000000000000 --- a/docs/changes/units/17246.api.rst +++ /dev/null @@ -1,4 +0,0 @@ -The ``eV`` and ``rydberg`` units were moved to ``astropy.units.misc`` (from -``astropy.units.si`` and ``astropy.units.astrophys``, respectively). -Practically, this means that ``Unit.to_system(u.si)`` no longer includes -``eV`` as a SI-compatible unit. diff --git a/docs/changes/units/17355.bugfix.rst b/docs/changes/units/17355.bugfix.rst deleted file mode 100644 index 16952271bf53..000000000000 --- a/docs/changes/units/17355.bugfix.rst +++ /dev/null @@ -1,3 +0,0 @@ -It is now possible to use ``Unit`` to create dimensionless units with a scale -factor that is a complex number or a ``fractions.Fraction`` instance. -It was already possible to create such units directly with ``CompositeUnit``. diff --git a/docs/changes/utils/16187.api.rst b/docs/changes/utils/16187.api.rst deleted file mode 100644 index f5eccb2bf79b..000000000000 --- a/docs/changes/utils/16187.api.rst +++ /dev/null @@ -1,5 +0,0 @@ -``IERS_Auto.open()`` now always returns a table of type ``IERS_Auto`` that -contains the combination of IERS-A and IERS-B data, even if automatic -updating of the IERS-A file is disabled or if downloading the new file fails. -Previously, under those conditions, it would return a table of a different type -(``IERS_B``) with only IERS-B data. diff --git a/docs/changes/utils/16187.bugfix.rst b/docs/changes/utils/16187.bugfix.rst deleted file mode 100644 index 50d7d578f2ab..000000000000 --- a/docs/changes/utils/16187.bugfix.rst +++ /dev/null @@ -1 +0,0 @@ -Fixed the unintended behavior where the IERS-A file bundled in ``astropy-iers-data`` would be ignored if automatic updating of the IERS-A file were disabled or if downloading the new file failed. diff --git a/docs/changes/utils/16335.feature.rst b/docs/changes/utils/16335.feature.rst deleted file mode 100644 index 1c8495837458..000000000000 --- a/docs/changes/utils/16335.feature.rst +++ /dev/null @@ -1,2 +0,0 @@ -Added the ``astropy.system_info`` function to help document runtime systems in -bug reports. diff --git a/docs/changes/utils/16346.api.rst b/docs/changes/utils/16346.api.rst deleted file mode 100644 index 79e99ed68873..000000000000 --- a/docs/changes/utils/16346.api.rst +++ /dev/null @@ -1,2 +0,0 @@ -``astropy.utils.check_broadcast`` is now deprecated in favor of -``numpy.broadcast_shapes`` diff --git a/docs/changes/utils/16463.api.rst b/docs/changes/utils/16463.api.rst deleted file mode 100644 index e8fcd68068c4..000000000000 --- a/docs/changes/utils/16463.api.rst +++ /dev/null @@ -1 +0,0 @@ -Added a new keyword ``pending_warning_type`` to ``deprecated`` decorator so downstream developers could customize the type of warning for pending deprecation state. diff --git a/docs/changes/utils/16479.api.rst b/docs/changes/utils/16479.api.rst deleted file mode 100644 index c89f111dabd5..000000000000 --- a/docs/changes/utils/16479.api.rst +++ /dev/null @@ -1,2 +0,0 @@ -The ``introspection.resolve_name()`` function is deprecated. -It is better to use the standard library ``importlib`` instead. diff --git a/docs/changes/utils/16503.bugfix.rst b/docs/changes/utils/16503.bugfix.rst deleted file mode 100644 index c52cbb6252d5..000000000000 --- a/docs/changes/utils/16503.bugfix.rst +++ /dev/null @@ -1,3 +0,0 @@ -Ensure ``MaskedQuantity`` can be initialized with a list of masked -quantities (as long as their shapes match), just like regular -``Quantity`` and ``ndarray``. diff --git a/docs/changes/utils/16807.api.rst b/docs/changes/utils/16807.api.rst deleted file mode 100644 index 307c8f916096..000000000000 --- a/docs/changes/utils/16807.api.rst +++ /dev/null @@ -1,2 +0,0 @@ -``format_exception()`` is deprecated because it provides little benefit, if -any, over normal Python tracebacks. diff --git a/docs/changes/utils/16844.api.rst b/docs/changes/utils/16844.api.rst deleted file mode 100644 index 6139448bc520..000000000000 --- a/docs/changes/utils/16844.api.rst +++ /dev/null @@ -1,4 +0,0 @@ -The ``utils.masked`` module has gained a mixin class, ``MaskableShapedLikeNDArray``, -as well as two utility functions, ``get_data_and_mask`` and ``combine_masks``, -that can help make a container classes carry masked data. Within astropy, these -are now used in the implementation of masks for ``Time``. diff --git a/docs/changes/utils/16931.feature.rst b/docs/changes/utils/16931.feature.rst deleted file mode 100644 index c9c7174e1e1f..000000000000 --- a/docs/changes/utils/16931.feature.rst +++ /dev/null @@ -1,2 +0,0 @@ -Add support for specifying files as ``pathlib.Path`` objects in ``IERS_A.read`` -and ``IERS_B.read``. diff --git a/docs/changes/utils/17014.bugfix.rst b/docs/changes/utils/17014.bugfix.rst deleted file mode 100644 index 1c5983739836..000000000000 --- a/docs/changes/utils/17014.bugfix.rst +++ /dev/null @@ -1,4 +0,0 @@ -For ``Masked`` instances, ``np.put``, ``np.putmask``, ``np.place`` and -``np.copyto`` can now handle putting/copying not just ``np.ma.masked`` but -also ``np.ma.nomask``; for both cases, only the mask of the relevant entries -will be set. diff --git a/docs/changes/utils/17156.bugfix.rst b/docs/changes/utils/17156.bugfix.rst deleted file mode 100644 index 246e566ea52b..000000000000 --- a/docs/changes/utils/17156.bugfix.rst +++ /dev/null @@ -1,3 +0,0 @@ -Explicitly set ``usedforsecurity=False`` when using ``hashlib.md5``. Without this, ``hashlib.md5`` will be blocked in FIPS mode. -FIPS (Federal Information Processing Standards) is a set of standards created by NIST (National Institute of Standards and Technology) for US government agencies regarding computer security and interoperability. -This affects download caching. diff --git a/docs/changes/utils/17190.api.rst b/docs/changes/utils/17190.api.rst deleted file mode 100644 index b701c89d3efe..000000000000 --- a/docs/changes/utils/17190.api.rst +++ /dev/null @@ -1 +0,0 @@ -The deprecated ``compat.override__dir__()`` utility has been removed. diff --git a/docs/changes/utils/17387.bugfix.rst b/docs/changes/utils/17387.bugfix.rst deleted file mode 100644 index 71a82d59183c..000000000000 --- a/docs/changes/utils/17387.bugfix.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fixed a bug where an old IERS-A table with stale predictive values could trigger -the download of a new IERS-A table even if automatic downloading was disabled. diff --git a/docs/changes/visualization/15081.feature.rst b/docs/changes/visualization/15081.feature.rst deleted file mode 100644 index c75aacb0f664..000000000000 --- a/docs/changes/visualization/15081.feature.rst +++ /dev/null @@ -1,5 +0,0 @@ -Add ``make_rgb()``, a convenience -function for creating RGB images with independent scaling on each filter. -Refactors ``make_lupton_rgb()`` to work with instances of subclasses of -``BaseStretch``, including the new Lupton-specific classes -``LuptonAsinhStretch`` and ``LuptonAsinhZscaleStretch``. diff --git a/docs/changes/visualization/15751.api.rst b/docs/changes/visualization/15751.api.rst deleted file mode 100644 index 1cd338316919..000000000000 --- a/docs/changes/visualization/15751.api.rst +++ /dev/null @@ -1,5 +0,0 @@ -Removed deprecated ``exp`` attribute in the ``LogStretch``, -``InvertedLogStretch``, ``PowerDistStretch``, and -``InvertedPowerDistStretch`` stretch classes, and the ``power`` -attribute in the ``PowerStretch``. Instead, use the ``a`` attribute, -which matches the input keyword. diff --git a/docs/changes/visualization/15781.api.rst b/docs/changes/visualization/15781.api.rst deleted file mode 100644 index 4968543cf531..000000000000 --- a/docs/changes/visualization/15781.api.rst +++ /dev/null @@ -1 +0,0 @@ -Removes the unintended NumPy export previously at ``astropy.visualization.np``. diff --git a/docs/changes/visualization/16347.feature.rst b/docs/changes/visualization/16347.feature.rst deleted file mode 100644 index a65c158e34d5..000000000000 --- a/docs/changes/visualization/16347.feature.rst +++ /dev/null @@ -1,2 +0,0 @@ -Add support for custom coordinate frames for ``WCSAxes`` through a context -manager ``astropy.visualization.wcsaxes.custom_ucd_coord_meta_mapping``. diff --git a/docs/changes/visualization/16366.perf.rst b/docs/changes/visualization/16366.perf.rst deleted file mode 100644 index edd79397ee9c..000000000000 --- a/docs/changes/visualization/16366.perf.rst +++ /dev/null @@ -1,4 +0,0 @@ -Removed redundant transformations when WCSAxes determines the coordinate ranges -for ticks/gridlines, which speeds up typical plot generation by ~10%, and by -much more if ``astropy.visualization.wcsaxes.conf.coordinate_range_samples`` is -set to a large value diff --git a/docs/changes/visualization/16685.api.rst b/docs/changes/visualization/16685.api.rst deleted file mode 100644 index 4f10bcd5ec5c..000000000000 --- a/docs/changes/visualization/16685.api.rst +++ /dev/null @@ -1,26 +0,0 @@ -Accessing or setting the following attributes on ``CoordinateHelper`` has been deprecated: - -* ``ticks`` -* ``ticklabels`` -* ``axislabels`` - -Setting the following attributes on ``CoordinateHelper`` directly has been deprecated: - -* ``parent_axes`` -* ``parent_map`` -* ``transform`` -* ``coord_index`` -* ``coord_unit`` -* ``coord_type`` (use ``set_coord_type`` instead) -* ``coord_wrap`` (use ``set_coord_type`` instead) -* ``frame`` -* ``default_label`` - -Accessing or setting the following attributes on ``CoordinateHelper`` has been -removed (without deprecation, as these were clearly internal variables): - -* ``grid_lines_kwargs`` -* ``grid_lines`` -* ``lblinfo`` -* ``lbl_world`` -* ``minor_frequency`` (there were already public methods to set/get this) diff --git a/docs/changes/visualization/16686.feature.rst b/docs/changes/visualization/16686.feature.rst deleted file mode 100644 index 9494457bb6bd..000000000000 --- a/docs/changes/visualization/16686.feature.rst +++ /dev/null @@ -1,2 +0,0 @@ -Added ``get_ticks_position``, ``get_ticklabel_position``, and -``get_axislabel_position`` methods on ``CoordinateHelper`` in WCSAxes. diff --git a/docs/changes/visualization/16938.feature.rst b/docs/changes/visualization/16938.feature.rst deleted file mode 100644 index b81d6d094746..000000000000 --- a/docs/changes/visualization/16938.feature.rst +++ /dev/null @@ -1,2 +0,0 @@ -Added the ability to disable the automatic simplification of WCSAxes tick labels -by specifying ``simplify=False`` to ``set_ticklabel()`` for a coordinate axis. diff --git a/docs/changes/visualization/16985.feature.rst b/docs/changes/visualization/16985.feature.rst deleted file mode 100644 index c6db13ac4653..000000000000 --- a/docs/changes/visualization/16985.feature.rst +++ /dev/null @@ -1,3 +0,0 @@ -Added the ability to specify that WCSAxes tick labels always include the sign -(namely for positive values) by starting the format string with a ``+`` -character. diff --git a/docs/changes/visualization/17006.feature.rst b/docs/changes/visualization/17006.feature.rst deleted file mode 100644 index e196e06d75f1..000000000000 --- a/docs/changes/visualization/17006.feature.rst +++ /dev/null @@ -1,2 +0,0 @@ -Allow ``astropy.visualization.units.quantity_support`` to be used as a -decorator in addition to the already supported use as a context manager. diff --git a/docs/changes/visualization/17020.feature.rst b/docs/changes/visualization/17020.feature.rst deleted file mode 100644 index b1645183d5e0..000000000000 --- a/docs/changes/visualization/17020.feature.rst +++ /dev/null @@ -1 +0,0 @@ -Added the ability to specify a callable function in ``CoordinateHelper.set_major_formatter`` diff --git a/docs/changes/visualization/17186.api.rst b/docs/changes/visualization/17186.api.rst deleted file mode 100644 index 9d5e2912e7a5..000000000000 --- a/docs/changes/visualization/17186.api.rst +++ /dev/null @@ -1 +0,0 @@ -The deprecated ``nsamples`` parameter of ``ZScaleInterval`` is removed. diff --git a/docs/changes/visualization/17217.feature.rst b/docs/changes/visualization/17217.feature.rst deleted file mode 100644 index 8d58074a9c1f..000000000000 --- a/docs/changes/visualization/17217.feature.rst +++ /dev/null @@ -1 +0,0 @@ -Added a SimpleNorm class to create a matplotlib normalization object. diff --git a/docs/changes/visualization/17243.feature.rst b/docs/changes/visualization/17243.feature.rst deleted file mode 100644 index e04479616847..000000000000 --- a/docs/changes/visualization/17243.feature.rst +++ /dev/null @@ -1 +0,0 @@ -WCSAxes will now select which axis to draw which tick labels and axis labels on based on the number of drawn tick labels, rather than picking them in the order they are listed in the WCS. This means that axes may be swapped in comparison with previous versions of Astropy by default. diff --git a/docs/changes/wcs/16287.api.rst b/docs/changes/wcs/16287.api.rst deleted file mode 100644 index 8a791e94e62e..000000000000 --- a/docs/changes/wcs/16287.api.rst +++ /dev/null @@ -1,3 +0,0 @@ -Errors may now occur if a ``BaseLowLevelWCS`` class defines -``world_axis_object_components`` which returns values that are not scalars or -plain Numpy arrays as per APE 14. diff --git a/docs/changes/wcs/16328.api.rst b/docs/changes/wcs/16328.api.rst deleted file mode 100644 index 674f921a125f..000000000000 --- a/docs/changes/wcs/16328.api.rst +++ /dev/null @@ -1,3 +0,0 @@ -``WCS.pixel_to_world_values``, ``WCS.world_to_pixel_values``, -``WCS.pixel_to_world`` and ``WCS.world_to_pixel`` now correctly return NaN values for -pixel positions that are outside of ``pixel_bounds``. diff --git a/docs/changes/wcs/17236.bugfix.rst b/docs/changes/wcs/17236.bugfix.rst deleted file mode 100644 index 8f391288c54a..000000000000 --- a/docs/changes/wcs/17236.bugfix.rst +++ /dev/null @@ -1,2 +0,0 @@ -Avoid a ``RuntimeWarning`` in ``WCS.world_to_array_index`` by converting -NaN inputs to int.