1
0
python-astropy/python-astropy.changes
Benjamin Greiner 04356f115b Accepting request 1030591 from home:bnavigator:branches:devel:languages:python:numeric
- Update to 5.1.1
  # API Changes
  ## astropy.wcs
  * The pixel argument to
    astropy.visualization.wcsaxes.ticklabels.TickLabels.add no
    longer does anything, is deprecated, and will be removed in a
    future astropy version. It has been replaced by a new required
    data argument, which should be used to specify the data
    coordinates of the tick label being added.
  * This changes has been made because it is (in general) not
    possible to correctly calculate pixel coordinates before
    Matplotlib is drawing a figure. [#12630]
  # Bug Fixes
  ## astropy.coordinates
  * Fixed a bug that prevented SkyOffsetFrame instances to be
    pickled by adding a custom __reduce__ method to the class (see
    issue #9249). [#13305]
  * Fixed the check for invalid Latitude values for float32 values.
    Latitude now accepts the float32 value of pi/2, which was
    rejected before because a comparison was made using the
    slightly smaller float64 representation. See issue #13708.
    [#13745]
  ## astropy.io.ascii
  * Fixed confusing chained exception messages of read() function
    when it fails. [#13170]
  * When writing out a :class:`~astropy.table.Table` to HTML
    format, the formats keyword argument to the
    :meth:`~astropy.table.Table.write` method will now be applied.
    [#13453]
  ## astropy.io.fits

OBS-URL: https://build.opensuse.org/request/show/1030591
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:numeric/python-astropy?expand=0&rev=78
2022-10-23 10:58:58 +00:00

4799 lines
262 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

-------------------------------------------------------------------
Sun Oct 23 10:46:04 UTC 2022 - Ben Greiner <code@bnavigator.de>
- Update to 5.1.1
# API Changes
## astropy.wcs
* The pixel argument to
astropy.visualization.wcsaxes.ticklabels.TickLabels.add no
longer does anything, is deprecated, and will be removed in a
future astropy version. It has been replaced by a new required
data argument, which should be used to specify the data
coordinates of the tick label being added.
* This changes has been made because it is (in general) not
possible to correctly calculate pixel coordinates before
Matplotlib is drawing a figure. [#12630]
# Bug Fixes
## astropy.coordinates
* Fixed a bug that prevented SkyOffsetFrame instances to be
pickled by adding a custom __reduce__ method to the class (see
issue #9249). [#13305]
* Fixed the check for invalid Latitude values for float32 values.
Latitude now accepts the float32 value of pi/2, which was
rejected before because a comparison was made using the
slightly smaller float64 representation. See issue #13708.
[#13745]
## astropy.io.ascii
* Fixed confusing chained exception messages of read() function
when it fails. [#13170]
* When writing out a :class:`~astropy.table.Table` to HTML
format, the formats keyword argument to the
:meth:`~astropy.table.Table.write` method will now be applied.
[#13453]
## astropy.io.fits
* heapsize is now checked for VLA tables. An error is thrown
whether P format is used but the heap size is bigger than what
can be indexed with a 32 bit signed int. [#13429]
* Fix parsing of ascii TFORM when precision is missing. [#13520]
* A compressed image HDU created from the header of a PRIMARY
HDU, now correctly updates 'XTENSION' and 'SIMPLE' keywords.
[#13557]
* Empty variable-length arrays are now properly handled when
pathological combinations of heapoffset and heapsize are
encountered. [#13621]
* PCOUNT and GCOUNT keywords are now removed from an uncompressed
Primary header, for compliancy with fitsverify behavior.
[#13753]
## astropy.modeling
* Bugfix for using MagUnit units on model parameters. [#13158]
* Fix bug in using non-linear fitters to fit 0-degree polynomials
using weights. [#13628]
## astropy.table
* Fix a problem where accessing one field of a structured column
returned a Column with the same info as the original column.
This resulted in unintuitive behavior in general and an
exception if the format for the column was set. [#13269]
* Tables with columns with structured data can now be properly
stacked and joined. [#13306]
* Update jQuery to 3.6.0, to pick up security fixes. [#13438]
* Fix a Python 3.11 compatibility issue. Ensure that when
removing a table column that the pprint_include_names or
pprint_exclude_names attributes get updated correctly. [#13639]
* When using add_columns with same indexes in indexes option or
without specifying the option, the order of the new columns
will now be kept. [#13783]
* Fix a bug when printing or getting the representation of a
multidimensional table column that has a zero dimension.
[#13838]
* Ensure that mixin columns and their info are not shared between
tables even when their underlying data is shared with
copy=False. [#13842]
## astropy.time
* Fix Time.insert() on times which have their out_subfmt set.
[#12732]
* Prevent Time() from being initialized with an invalid precision
leading to incorrect results when representing the time as a
string. [#13068]
* Fix a bug in Time where a date string like "2022-08-01.123" was
being parsed as an ISO-format time "2022-08-01 00:00:00.123".
The fractional part at the end of the string was being taken as
seconds. Now this raises an exception because the string is not
in ISO format. [#13731]
## astropy.units
* Significantly improved the performance of parsing composite
units with the FITS format, by ensuring the detailed_exception
argument is properly passed on and thus used. [#12699]
* Ensure that np.concatenate on quantities can take a dtype
argument (added in numpy 1.20). [#13323]
* Ensure that the units of any initial argument to reductions
such as np.add.reduce (which underlies np.sum) are properly
taken into account. [#13340]
## astropy.utils
* Ensure that np.concatenate on masked data can take a dtype
argument (added in numpy 1.20). [#13323]
* Fix error when suppressing download progress bar while using
non-default sys.stdout stream. [#13352]
* Ensure str and repr work properly for Masked versions of
structured subarrays. [#13404]
* If an attribute is created using deprecated_attribute() with
the alternative argument then getting or setting the value of
the deprecated attribute now accesses its replacement. [#13824]
## astropy.visualization
* Fixed calling .tight_layout() on a WCSAxes. [#12418]
## astropy.wcs
* WCS.pixel_to_world now creates an EarthLocation object using
MJD-AVG if present before falling back to the old behaviour of
using MJD-OBS. [#12598]
* The locations of WCSAxes ticks and tick-labels are now
correctly calculated when the DPI of a figure changes between a
WCSAxes being created and the figure being drawn, or when a
rasterized artist is added to the WCSAxes. [#12630]
* Fix a bug where SlicedLowLevelWCS.world_to_pixel_values would
break when the result of the transform is dependent on the
coordinate of a sliced out pixel. [#13579]
* Updated bundled WCSLIB version to 7.12. This update includes
bug fixes to wcssub() in how it handles temporal axes with -TAB
and fixes handling of status returns from linp2x() and linx2p()
relating to distortion functions, in particular affecting TPV
distortions - see #13509. For a full list of changes - see
http://www.atnf.csiro.au/people/mcalabre/WCS/CHANGES or
astropy/cextern/wcslib/CHANGES. [#13635]
* Fixed WCS validation not working properly if HDUList is needed
for multi-extension FITS file. [#13668]
-------------------------------------------------------------------
Mon Jun 20 09:55:12 UTC 2022 - Ben Greiner <code@bnavigator.de>
- Skip two tests because of hypothesis -- gh#astropy/astropy#13275
-------------------------------------------------------------------
Tue May 31 20:51:59 UTC 2022 - Ben Greiner <code@bnavigator.de>
- Skip two test categories segfaulting: gh#astropy/astropy#13286
-------------------------------------------------------------------
Thu May 26 15:46:09 UTC 2022 - Ben Greiner <code@bnavigator.de>
- Update to 5.1
* Astropy 5.1 is a major release that adds significant new
functionality since the 5.0 LTS release.
* In particular, this release includes:
- Updates to cosmology
- doppler_redshift() equivalency
- Specifying data types when reading ASCII tables
- Structured Columns
- New model fitters have been added
- Allow time conversions without predictive Earth rotation data
(IERS-A)
- Uncertainty classes can be transformed into each other
- Schechter1D Model
* In addition to these major changes, Astropy v5.1 includes a
large number of smaller improvements and bug fixes, which are
described in the Full Changelog.
-------------------------------------------------------------------
Sat Apr 23 19:27:14 UTC 2022 - Ben Greiner <code@bnavigator.de>
- Enable tests requiring Pytest 7
-------------------------------------------------------------------
Fri Apr 1 17:57:36 UTC 2022 - Ben Greiner <code@bnavigator.de>
- Update to 5.0.4
# Bug Fixes
## astropy.modeling
* Fixed the Gaussian2D bounding_box when theta is an angular
Quantity. [#13021]
## astropy.utils
* Reverted astropy.utils.iers.iers.IERS_A_URL to
maia.usno.navy.mil domain instead of NASA FTP to work around
server issues. [#13004]
# Other Changes and Additions
* Updated bundled WCSLIB to version 7.9 with several bugfixes and
added support for time coordinate axes in wcsset() and
wcssub(). The four-digit type code for the time axis will have
the first digit set to 4, i.e., four digit code will be 4xxx
where x is a digit 0-9. For a full list of bug fixes see
https://www.atnf.csiro.au/people/mcalabre/WCS/CHANGES [#12994]
(when building --without system_wcslib)
- Release 5.0.3
# Bug Fixes
## astropy.convolution
* Bugfix in astropy.convolution.utils.discretize_model which
allows the function to handle a CompoundModel. Before this fix,
discretize_model was confusing CompoundModel with a callable
function. [#12959]
## astropy.io.fits
* Fix write and read FITS tables with multidimensional items,
using from_columns without previousely defined ColDefs
structure. [#12863]
## astropy.io.votable
* Fix VOTable linting to avoid use of shell option. [#12985]
astropy.utils
* Fix XML linting to avoid use of shell option. [#12985]
# Other Changes and Additions
* Updated the bundled CFITSIO library to 4.1.0. [#12967]
(when building --without system_cfitsio)
-------------------------------------------------------------------
Sun Mar 13 08:10:02 UTC 2022 - Ben Greiner <code@bnavigator.de>
- Update to 5.0.2
astropy.io.ascii
* Bugfix to add backwards compatibility for reading ECSV version
0.9 files with non-standard column datatypes (such as `object`,
`str`, `datetime64`, etc.), which would raise a ValueError in
ECSV version 1.0. [#12880]
* astropy.io.misc
* Bugfix for `units_mapping` schema's property name conflicts.
Changes:
- `inputs` to `unit_inputs`
- `outputs` to `unit_outputs` [#12800]
astropy.io.votable
* Fixed a bug where `astropy.io.votable.validate` was printing
output to `sys.stdout` when the `output` paramter was set to
`None`. `validate` now returns a string when `output` is set to
`None`, as documented. [#12604]
astropy.modeling
* Fix handling of units on `scale` parameter in BlackBody model.
[#12318]
* Indexing on models can now be used with all types of integers
(like `numpy.int64`) instead of just `int`. [#12561]
* Fix computation of the separability of a `CompoundModel` where
another `CompoundModel` is on the right hand side of the `&`
operator. [#12907]
* Provide a hook (`Model._calculate_separability_matrix`) to
allow subclasses of `Model` to define how to compute their
separability matrix. [#12900]
astropy.stats
* Fixed a bug in which running
`kuiper_false_positive_probability(D,N)` on distributions with
many data points could produce NaN values for the false
positive probability of the Kuiper statistic. [#12896]
astropy.wcs
* Fixed a bug due to which `naxis`, `pixel_shape`, and
`pixel_bounds` attributes of `astropy.wcs.WCS` were not
restored when an `astropy.wcs.WCS` object was unpickled. This
fix also eliminates `FITSFixedWarning` warning issued during
unpiclikng of the WCS objects related to the number of axes.
This fix also eliminates errors when unpickling WCS objects
originally created using non-default values for `key`,
`colsel`, and `keysel` parameters. [#12844]
-------------------------------------------------------------------
Fri Jan 28 19:27:20 UTC 2022 - Ben Greiner <code@bnavigator.de>
- Update to 5.0.1
astropy.coordinates
* Trying to create an instance of astropy.coordinates.Distance by
providing both z and parallax now raises the expected
ValueError. [#12531]
* Fixed a bug where changing the wrap angle of the longitude
component of a representation could raise a warning or error in
certain situations. [#12556]
* astropy.coordinates.Distance constructor no longer ignores the
unit keyword when parallax is provided. [#12569]
astropy.cosmology
* astropy.cosmology.utils.aszarr can now convert Column objects.
[#12525]
* Reading a cosmology from an ECSV will load redshift and Hubble
parameter units from the cosmology units module. [#12636]
astropy.io.fits
* Fix formatting issue in _dump_coldefs and add tests for
tabledump and tableload convenience functions. [#12526]
astropy.io.misc
* YAML can now also represent quantities and arrays with
structured dtype, as well as structured scalars based on
np.void. [#12509]
astropy.modeling
* Fixes error when fitting multiplication or division based
compound models where the sub-models have different output
units. [#12475]
* Bugfix for incorrectly initialized and filled parameters data
for Spline1D model. [#12523]
* Bugfix for keyerror thrown by Model.input_units_equivalencies
when used on fix_inputs models which have no set unit
equivalencies. [#12597]
astropy.table
* astropy.table.Table.keep_columns() and
astropy.table.Table.remove_columns() now work with generators
of column names. [#12529]
* Avoid duplicate storage of info in serialized columns if the
column used to serialize already can hold that information.
[#12607] astropy.timeseries
* Fixed edge case bugs which emerged when using
aggregate_downsample with custom bins. [#12527]
astropy.units
* Structured units can be serialized to/from yaml. [#12492]
* Fix bad typing problems by removing interaction with
NDArray.__class_getitem__. [#12511]
* Ensure that Quantity.to_string(format='latex') properly
typesets exponents also when
u.quantity.conf.latex_array_threshold = -1 (i.e., when the
threshold is taken from numpy). [#12573]
* Structured units can now be copied with copy.copy and
copy.deepcopy and also pickled and unpicked also for protocol
>= 2. This does not work for big-endian architecture with older
numpy<1.21.1. [#12583]
astropy.utils
* Ensure that a Masked instance can be used to initialize (or
viewed as) a numpy.ma.Maskedarray. [#12482]
* Ensure Masked also works with numpy >=1.22, which has a keyword
argument name change for np.quantile. [#12511]
* astropy.utils.iers.LeapSeconds.auto_open() no longer emits
unnecessary warnings when astropy.utils.iers.conf.auto_max_age
is set to None. [#12713]
-------------------------------------------------------------------
Tue Dec 28 20:00:07 UTC 2021 - Ben Greiner <code@bnavigator.de>
- Skip flaky test_color_print3
-------------------------------------------------------------------
Tue Dec 28 12:53:13 UTC 2021 - Ben Greiner <code@bnavigator.de>
- Update to version 5.0
* https://docs.astropy.org/en/stable/whatsnew/5.0.html
* Astropy 5.0 is a major release that adds significant new
functionality since the 4.3.x series of releases. In addition,
it is a long-term support release (LTS) which will be supported
with bug fixes for two years. In particular, this release
includes:
* Support for reading, writing, and converting Cosmology
* Cosmology units module
* New Models
* Added support for dask arrays in tables
* Added support for registering array-like objects as mixin
columns
* Support for reading and writing tables to Parquet format
* Support for reading and writing tables to MRT format
* Support for masked quantity columns, including masked FITS
columns with units
* Converting SkyCoord to QTable
* New Unified I/O architecture
* In addition to these major changes, Astropy v5.0 includes a
large number of smaller improvements and bug fixes, which
are described in the Full Changelog.
https://docs.astropy.org/en/stable/changelog.html#changelog
- Drop patches fixed upstream
* astropy-pr12006-cfitsio4.patch
* astropy-pr12159-py310.patch
-------------------------------------------------------------------
Mon Dec 27 17:29:17 UTC 2021 - Ben Greiner <code@bnavigator.de>
- Add astropy-pr12159-py310.patch -- gh#astropy/astropy#12159
-------------------------------------------------------------------
Thu Oct 28 20:50:43 UTC 2021 - Ben Greiner <code@bnavigator.de>
- Skip test_no_numpy_warnings[contours] due to wrong MPL version
check -- gh#astropy/astropy#12050
-------------------------------------------------------------------
Fri Aug 27 10:02:29 UTC 2021 - Ben Greiner <code@bnavigator.de>
- Suppress hypothesis health check for slow OBS episodes
-------------------------------------------------------------------
Wed Aug 18 11:19:36 UTC 2021 - Ben Greiner <code@bnavigator.de>
- Update to version 4.3.1
Bug Fixes
astropy.io.fits
* In fits.io.getdata do not fall back to first non-primary
extension when user explicitly specifies an extension. [#11860]
* Ensure multidimensional masked columns round-trip properly to
FITS. [#11911]
* Ensure masked times round-trip to FITS, even if
multi-dimensional. [#11913]
* Raise ValueError if an np.float32 NaN/Inf value is assigned to
a header keyword. [#11922]
astropy.modeling
* Fixed bug in fix_inputs handling of bounding boxes. [#11908]
astropy.table
* Fix an error when converting to pandas any Table subclass that
automatically adds a table index when the table is created. An
example is a binned TimeSeries table. [#12018]
astropy.units
* Ensure that unpickling quantities and units in new sessions
does not change hashes and thus cause problems with (de)
composition such as getting different answers from the .si
attribute. [#11879]
* Fixed cannot import name imperial from astropy.units
namespace. [#11977]
astropy.utils
* Ensure any .info on Masked instances is propagated correctly
when viewing or slicing. As a consequence, MaskedQuantity can
now be correctly written to, e.g., ECSV format with
serialize_method='data_mask'. [#11910]
-------------------------------------------------------------------
Thu Aug 5 23:57:51 UTC 2021 - Ben Greiner <code@bnavigator.de>
- Add astropy-pr12006-cfitsio4.patch for cfitsio 4
gh#astropy/astropy#12006
- Revert the use of bundled cfitsio for non x86 architectures.
Those just had cfitsio earlier in the repositories than x86.
-------------------------------------------------------------------
Thu Aug 5 14:04:16 UTC 2021 - Ben Greiner <code@bnavigator.de>
- Update to version 4.3.post1
Astropy 4.3 is a major release that adds significant new
functionality since the 4.2.x series of releases.
* Transformations to AltAz are now much more precise (and faster)
* Improvements in making Astropy thread-safe
* Performance improvements to sigma clipping
* Changes in the Time and IERS leap second handling
* Support for multidimensional and object columns in ECSV
* Support for reading and writing tables to QDP format
* Append table to existing FITS file
* General masked class for Quantity and other ndarray subclasses
* Configuration file improvements
* Support for different solvers and bracket option in z_at_value
* Full changelog:
https://docs.astropy.org/en/stable/changelog.html
- Drop patch and files merged upstream:
* astropy-pr11260+pr11549-wcs76.patch
* dss.14.29.56-62.41.05.fits.gz
* tab-time-last-axis.fits
- Use bundled cfitsio for s390x, Power and ARM
- Increase Hypothesis test deadline to 5s
-------------------------------------------------------------------
Sun Jul 4 13:26:14 UTC 2021 - Ben Greiner <code@bnavigator.de>
- Replace astropy-pr11260-wcsfailures.patch with
astropy-pr11260+pr11549-wcs76.patch
* fixes test failures because of the recent Tumbleweed update to
wcslib 7.6
* include binary test file tab-time-last-axis.fits from
gh#astropy/astropy#11549, which does not fit into the patchfile
-------------------------------------------------------------------
Sat Apr 17 15:30:57 UTC 2021 - Ben Greiner <code@bnavigator.de>
- Fix python_expand for test call
-------------------------------------------------------------------
Thu Apr 8 16:46:35 UTC 2021 - Ben Greiner <code@bnavigator.de>
- Update to version 4.2.1
astropy.cosmology
* Fixed an issue where specializations of the comoving distance
calculation for certain cosmologies could not handle redshift
arrays. [#10980]
astropy.io.fits
* Fix bug where manual fixes to invalid header cards were not
preserved when saving a FITS file. [#11108]
astropy.io.votable
* NumericArray converter now properly broadcasts scalar mask to
array. [#11157]
astropy.table
* Fix bug when initializing a Table subclass that uses
TableAttribute's. If the data were an instance of the table
then attributes provided in the table initialization call
could be ignored. [#11217]
astropy.time
* Change epoch of TimeUnixTAI ("unix_tai") from
1970-01-01T00:00:00 UTC to 1970-01-01T00:00:00 TAI to match
the intended and documented behaviour. This essentially
changes the resulting times by 8.000082 seconds, the initial
offset between TAI and UTC. [#11249]
astropy.units
* Fixed a bug with the quantity_input decorator where allowing
dimensionless inputs for an argument inadvertently disabled
any checking of compatible units for that argument. [#11283]
astropy.utils
* Fix a bug so that np.shape, np.ndim and np.size again work on
classes that use ShapedLikeNDArray, like representations,
frames, sky coordinates, and times. [#11133]
astropy.wcs
* Fix error when a user defined proj_point parameter is passed
to fit_wcs_from_points. [#11139]
-------------------------------------------------------------------
Mon Mar 8 12:07:01 UTC 2021 - Ben Greiner <code@bnavigator.de>
- Fix test failures with updated wcslib -- gh#astropy/astropy#11260
* Add astropy-pr11260-wcsfailures.patch
* Add dss.14.29.56-62.41.05.fits.gz
-------------------------------------------------------------------
Fri Jan 15 18:01:11 UTC 2021 - Benjamin Greiner <code@bnavigator.de>
- Make sure that the python >= 3.7 requirement is checked on
build time and let rpm do the rest.
- Use bundled libraries on Leap 15.X
-------------------------------------------------------------------
Fri Jan 1 19:03:47 UTC 2021 - Benjamin Greiner <code@bnavigator.de>
- Increase the hypothesis test deadline
-------------------------------------------------------------------
Tue Dec 8 22:41:32 UTC 2020 - Benjamin Greiner <code@bnavigator.de>
- OBS thinks the test flavor creates a build-cycle. Reintroduce
the pseudo package suffix.
-------------------------------------------------------------------
Sat Nov 28 21:28:47 UTC 2020 - Benjamin Greiner <code@bnavigator.de>
- Update to Version 4.2
Astropy 4.2 is a major release that adds new funcionality since
the 4.1 release.
In particular, this release includes:
* Planck 2018 is accepted and now the default cosmology
* Time performance improvements
* Removed ERFA module
In addition to these major changes, Astropy v4.2 includes smaller
improvements and bug fixes and significant cleanup, which are
described in the Full Changelog. By the numbers:
* 183 issues have been closed since v4.1
* 105 pull requests have been merged since v4.1
* 63 distinct people have contributed code
- Bump requirements versions
- Drop astropy-pr10329-unbundle-erfa_4.1.patch merged upstream
-------------------------------------------------------------------
Thu Oct 22 09:36:36 UTC 2020 - Benjamin Greiner <code@bnavigator.de>
- Update to 4.1
Astropy 4.1 is a major release that contains bug fixes and new
features since the 4.0.x series of releases. In particular, this
release includes:
* A new SpectralCoord class for representing and transforming
spectral quantities
* Support for writing Dask arrays to FITS files
* Added True Equator Mean Equinox (TEME) frame for satellite two-
line ephemeris data
* Support for in-place setting of array-valued SkyCoord and frame
objects
* Change in the definition of equality comparison for coordinate
classes
* Support use of SkyCoord in table vstack, dstack, and insert_row
* Support for table cross-match join with SkyCoord or N-d columns
* Support for custom attributes in Table subclasses
* Added a new Time subformat unix_tai
* Added support for the -TAB convention in FITS WCS
* Support for replacing submodels in CompoundModel
* Support for units on otherwise unitless models via the
Model.coerce_units method.
* Support for ASDF serialization of models
In addition to these major changes, Astropy v4.0 includes a large
number of smaller improvements and bug fixes, which are described
in the Full Changelog. By the numbers:
* 381 issues have been closed since v4.0
* 511 pull requests have been merged since v4.0
* 66 distinct people have contributed code to this release, 23 of
which are first time contributors to Astropy
- Drop astropy-pr10545-remove-newline-3d_cd_hdr.patch
* merged upstream
* gh#astropy/astropy#10545
- Add astropy-pr10329-unbundle-erfa_4.1.patch
* Remove bundled _erfa but use system package pyerfa instead
* gh#astropy/astropy#10329
- enable optional pytest-xdist
-------------------------------------------------------------------
Thu Oct 15 12:22:54 UTC 2020 - Benjamin Greiner <code@bnavigator.de>
- Update to 4.0.3
* astropy.table
Fixed a small bug where initializing an empty `Column`
with a structured dtype with a length and a shape
failed to give the requested dtype. [#10819]
* Fixed installation of the source distribution with
pip<19. [#10837, #10852]
-------------------------------------------------------------------
Sat Oct 10 20:46:40 UTC 2020 - Benjamin Greiner <code@bnavigator.de>
- Update to 4.0.2
New Features
* astropy.utils
astropy.utils.data.download_file now supports FTPS/FTP over
TLS. [#9964]
astropy.utils.data now uses a lock-free mechanism for caching.
This new mechanism uses a new cache layout and so ignores
caches created using earlier mechanisms (which were causing
lockups on clusters). The two cache formats can coexist but do
not share any files. [#10437, #10683]
astropy.utils.data now ignores the config item
astropy.utils.data.conf.download_cache_lock_attempts since no
locking is done. [#10437, #10683]
astropy.utils.data.download_file and related functions now
interpret the parameter or config file setting timeout=0 to
mean they should make no attempt to download files. [#10437,
#10683]
astropy.utils.import_file_to_cache now accepts a keyword-only
argument replace, defaulting to True, to determine whether it
should replace existing files in the cache, in a way as close
to atomic as possible. [#10437, #10683]
astropy.utils.data.download_file and related functions now
treat http://example.com and http://example.com/ as equivalent.
[#10631]
* astropy.wcs
The new auxiliary WCS parameters added in WCSLIB 7.1 are now
exposed as the aux attribute of Wcsprm. [#10333]
Updated bundled version of WCSLIB to v7.3. [#10433]
Bug fixes
* astropy.config
Added an extra fallback to os.expanduser('~') when trying to
find the user home directory. [#10570]
* astropy.constants
Corrected definition of parsec to 648 000 / pi AU following IAU
2015 B2 [#10569]
* astropy.convolution
Fixed a bug where a float-typed integers in the argument
x_range of astropy.convolution.utils.discretize_oversample_1D
(and the 2D version as well) fails because it uses
numpy.linspace, which requires an int. [#10696]
* astropy.coordinates
Ensure that for size-1 array SkyCoord and coordinate frames the
attributes also properly become scalars when indexed with 0.
[#10113]
Fixed a bug where SkyCoord.separation() and
SkyCoord.separation_3d were not accepting a frame object.
[#10332]
Ensure that the lon values in SkyOffsetFrame are wrapped
correctly at 180 degree regardless of how the underlying data
is represented. [#10163]
Fixed an error in the obliquity of the ecliptic when
transforming to/from the *TrueEcliptic coordinate frames. The
error would primarily result in an inaccuracy in the ecliptic
latitude on the order of arcseconds. [#10129]
Fixed an error in the computation of the location of solar
system bodies where the Earth location of the observer was
ignored during the correction for light travel time. [#10292]
Ensure that coordinates with proper motion that are transformed
to other coordinate frames still can be represented properly.
[#10276]
Improve the error message given when trying to get a cartesian
representation for coordinates that have both proper motion and
radial velocity, but no distance. [#10276]
Fixed an error where SkyCoord.apply_space_motion would return
incorrect results when no distance is set and proper motion is
high. [#10296]
Make the parsing of angles thread-safe so that Angle can be
used in Python multithreading. [#10556]
Fixed reporting of EarthLocation.info which previously raised
an exception. [#10592]
* astropy.io.ascii
Fixed a bug with the C fast_reader not correctly parsing
newlines when delimiter was also set to \n or \r; ensured
consistent handling of input strings without newline
characters. [#9929]
* astropy.io.fits
Fix integer formats of TFORMn=Iw columns in ASCII tables to
correctly read values exceeding int32 - setting int16, int32 or
int64 according to w. [#9901]
Fix unclosed memory-mapped FITS files in FITSDiff when
difference found. [#10159]
Fix crash when reading an invalid table file. [#10171]
Fix duplication issue when setting a keyword ending with space.
[#10482]
Fix ResourceWarning with fits.writeto and pathlib.Path object.
[#10599]
Fix repr for commentary cards and strip spaces for commentary
keywords. [#10640]
Fix compilation of cfitsio with Xcode 12. [#10772]
Fix handling of 1-dimensional arrays with a single element in
BinTableHDU [#10768]
* astropy.io.misc
Fix id URL in baseframe-1.0.0 ASDF schema. [#10223]
Write keys to ASDF only if the value is present, to account for
a change in behavior in asdf 2.8. [#10674]
* astropy.io.registry
Fix Table.(read|write).help when reader or writer has no
docstring. [#10460]
* astropy.io.votable
Fixed parsing failure of VOTable with no fields. When detecting
a non-empty table with no fields, the following warning/
exception is issued: E25 "No FIELDs are defined; DATA section
will be ignored." [#10192]
* astropy.modeling
Fixed a problem with mapping input_units and return_units of a
CompoundModel to the units of the constituent models. [#10158]
Removed hard-coded names of inputs and outputs. [#10174]
Fixed a problem where slicing a CompoundModel by name will
crash if there fix_inputs operators are present. [#10224]
Removed a limitation of fitting of data with units with
compound models without units when the expression involves
operators other than addition and subtraction. [#10415]
Fixed a problem with fitting Linear1D and Planar2D in model
sets. [#10623]
Fixed reported module name of math_functions model classes.
[#10694]
Fixed reported module name of tabular model classes. [#10709]
Do not create new math_functions models for ufuncs that are
only aliases (divide and mod). [#10697]
Fix calculation of the Moffat2D derivative with respect to
gamma. [#10784]
* astropy.stats
Fixed an API regression where SigmaClip.__call__ would convert
masked elements to nan and upcast the dtype to float64 in its
output MaskedArray when using the axis parameter along with the
defaults masked=True and copy=True. [#10610]
Fixed an issue where fully masked MaskedArray input to
sigma_clipped_stats gave incorrect results. [#10099]
Fixed an issue where sigma_clip and SigmaClip.__call__ would
return a masked array instead of a ndarray when masked=False
and the input was a full-masked MaskedArray. [#10099]
Fixed bug with funcs.poisson_conf_interval where an integer for
N with interval='kraft-burrows-nousek' would throw an error
with mpmath backend. [#10427]
Fixed bug in funcs.poisson_conf_interval with interval='kraft-
burrows-nousek' where certain combinations of source and
background count numbers led to ValueError due to the choice of
starting value for numerical optimization. [#10618]
* astropy.table
Fixed a bug when writing a table with mixin columns to FITS,
ECSV or HDF5. If one of the data attributes of the mixin (e.g.
skycoord.ra) had the same name as one of the table column names
(ra), the column (ra) would be dropped when reading the table
back. [#10222]
Fixed a bug when sorting an indexed table on the indexed column
after first sorting on another column. [#10103]
Fixed a bug in table argsort when called with reverse=True for
an indexed table. [#10103]
Fixed a performance regression introduced in #9048 when
initializing a table from Python lists. Also fixed incorrect
behavior (for data types other than float) when those lists
contain np.ma.masked elements to indicate masked data. [#10636]
Avoid modifying .meta when serializing columns to FITS.
[#10485]
Avoid crash when reading a FITS table that contains mixin info
and PyYAML is missing. [#10485]
* astropy.time
Ensure that for size-1 array Time, the location also properly
becomes a scalar when indexed with 0. [#10113]
* astropy.units
Refined test_parallax to resolve difference between 2012 and
2015 definitions. [#10569]
* astropy.utils
The default IERS server has been updated to use the FTPS server
hosted by CDDIS. [#9964]
Fixed memory allocation on 64-bit systems within xml.iterparse
[#10076]
Fix case where None could be used in a numerical computation.
[#10126]
* astropy.visualization
Fixed a bug where the ImageNormalize clip keyword was ignored
when used with calling the object on data. [#10098]
Fixed a bug where axes.xlabel/axes.ylabel where not correctly
set nor returned on an EllipticalFrame class WCSAxes plot.
[#10446]
* astropy.wcs
Handled WCS 360 -> 0 deg crossover in fit_wcs_from_points
[#10155]
Do not issue DATREF warning when MJDREF has default value.
[#10440]
Fixed a bug due to which naxis argument was ignored if header
was supplied during the initialization of a WCS object.
[#10532]
Other Changes and Additions
* Improved the speed of sorting a large Table on a single column
by a factor of around 5. [#10103]
* Ensure that astropy can be used inside Application bundles
built with pyinstaller. [#8795]
* Updated the bundled CFITSIO library to 3.49. See cextern/
cfitsio/docs/changes.txt for additional information. [#10256,
#10665]
* extract_array raises a ValueError if the data type of the input
array is inconsistent with the fill_value. [#10602]
- Drop merged PR patches
* astropy-pr10433-wcslib73-tests.patch gh#astropy/astropy#10433
* astropy-pr10440-wcs-datfix.patch gh#astropy/astropy#10440
- Skip test_compound_fitting_with_units gh#astropy/astropy#10675
-------------------------------------------------------------------
Fri Jul 17 11:42:19 UTC 2020 - Benjamin Greiner <code@bnavigator.de>
- actually detect unit test failures with sys.exit(astropy.tests())
- do not fail on DeprecationWarnings
- support updated system lib wcslib 7.3 with
astropy-pr10433-wcslib73-tests.patch gh#astropy/astropy#10433
astropy-pr10440-wcs-datfix.patch gh#astropy/astropy#10440
- clean up blank lines after pytest report and prevent possible
failure of tests depending on test order
astropy-pr10545-remove-newline-3d_cd_hdr.patch
gh#astropy/astropy#10545
-------------------------------------------------------------------
Thu Jul 9 23:14:09 UTC 2020 - Benjamin Greiner <code@bnavigator.de>
- Switch from pytest macro back to astropy.test()
This avoids compiling a second time inplace and obsoletes the
necessary deprecation warningsfilters. New deprecation warnings
from numpy 1.19 started to fail the test multibuild again.
Can now drop astropy-openSUSE-ignore-warnings.patch
- Fix update-alternatives warnings by expanding the loop early
-------------------------------------------------------------------
Sun Jul 5 12:24:49 UTC 2020 - Benjamin Greiner <code@bnavigator.de>
- Fix conftest collection error: import local source dir for tests
- Remove ignore pytest deprecation fixed by pytest-doctestplus >= 0.6
- Ignore leap second expiry and dubious year warnings for
reproducible builds: gh#astropy/astropy#10228
astropy-openSUSE-ignore-warnings.patch
-------------------------------------------------------------------
Wed Jun 3 07:42:45 UTC 2020 - Tomáš Chvátal <tchvatal@suse.com>
- Switch to multibuild to avoid cycle with python-asdf package
-------------------------------------------------------------------
Wed May 27 09:36:06 UTC 2020 - Petr Gajdos <pgajdos@suse.com>
- %python3_only -> %python_alternative
-------------------------------------------------------------------
Sun Apr 19 10:53:30 UTC 2020 - Benjamin Greiner <code@bnavigator.de>
- Update to 4.0.1.post1
* astropy.config
[gh#astropy/astropy#9975]
Fixed a bug where importing a development version of a package that
uses ``astropy`` configuration system can result in a
``~/.astropy/config/package..cfg`` file.
* astropy.coordinates
[gh#astropy/astropy#9815]
Fixed a bug where a vestigal trace of a frame class could persist in the
transformation graph even after the removal of all transformations involving
that frame class.
[gh#astropy/astropy#9815]
Fixed a bug with ``TransformGraph.remove_transform()`` when the "from" and
"to" frame classes are not explicitly specified.
[gh#astropy/astropy#9900]
Read-only longitudes can now be passed in to ``EarthLocation`` even if
they include angles outside of the range of -180 to 180 degrees.
[gh#astropy/astropy#9980]
```SkyCoord.radial_velocity_correction``` no longer raises an Exception
when space motion information is present on the SkyCoord.
* astropy.io
[gh#astropy/astropy#9866]
Fixed a bug that prevented the unified I/O infrastructure from working with
datasets that are represented by directories rather than files.
* astropy.io.ascii
[gh#astropy/astropy#9918]
Fixed a bug in the ``fast_reader`` C parsers incorrectly returning entries
of isolated positive/negative signs as ``float`` instead of ``str``.
[gh#astropy/astropy#9923]
Fixed a segmentation fault in the ``fast_reader`` C parsers when parsing an
invalid file with ``guess=True`` and the file contains inconsistent column
numbers in combination with a quoted field; e.g., ``"1 2\n 3 4 '5'"``.
[gh#astropy/astropy#9933]
Magnitude, decibel, and dex can now be stored in ``ecsv`` files.
* astropy.io.misc
[gh#astropy/astropy#9933]
Magnitude, decibel, and dex can now be stored in ``hdf5`` files.
[gh#astropy/astropy#9956, gh#astropy/astropy#9961]
Fixed serialization of polynomial models to include non default values of
domain and window values.
[gh#astropy/astropy#9950]
Fixed a bug which affected overwriting tables within ``hdf5`` files.
Overwriting an existing path with associated column meta data now also
overwrites the meta data associated with the table.
[gh#astropy/astropy#9983]
Fixed serialization of Time objects with location under time-1.0.0
ASDF schema.
* astropy.io.fits
[gh#astropy/astropy#9711, gh#astropy/astropy#9934]
Fix regression with ``GroupsHDU`` which needs to modify the header to handle
invalid headers, and fix accesing ``.data`` for empty HDU.
[gh#astropy/astropy#9711]
Fix ``fitsdiff`` when its arguments are directories that contain other
directories.
[gh#astropy/astropy#9958]
Fix writing noncontiguous data to a compressed HDU.
[gh#astropy/astropy#9978]
Added verification of ``disp`` (``TDISP``) keyword to ``fits.Column`` and
extended tests for ``TFORM`` and ``TDISP`` validation.
[gh#astropy/astropy#10012]
Fix checksum verification to process all HDUs instead of only the first one
because of the lazy loading feature.
[gh#astropy/astropy#10030]
Allow passing ``output_verify`` to ``.close`` when using the context manager.
[gh#astropy/astropy#10041]
Prevent instantiation of ``PrimaryHDU`` and ``ImageHDU`` with a scalar.
[gh#astropy/astropy#10069]
Fix column access by attribute with FITS_rec: columns with scaling or columns
from ASCII tables where not properly converted when accessed by attribute
name.
* astropy.io.misc
[gh#astropy/astropy#9933]
Magnitude, decibel, and dex can now be stored in ``hdf5`` files.
[gh#astropy/astropy#9956, gh#astropy/astropy#9961]
Fixed serialization of polynomial models to include non default values of
domain and window values.
[gh#astropy/astropy#9950]
Fixed a bug which affected overwriting tables within ``hdf5`` files.
Overwriting an existing path with associated column meta data now also
overwrites the meta data associated with the table.
[gh#astropy/astropy#9983]
Fixed serialization of Time objects with location under time-1.0.0
ASDF schema.
* astropy.modeling
[gh#astropy/astropy#9987]
Fixed a bug in setting default values of parameters of orthonormal
polynomials when constructing a model set.
* astropy.table
[gh#astropy/astropy#9839]
Fixed bug in ``Table.reverse`` for tables that contain non-mutable mixin columns
(like ``SkyCoord``) for which in-place item update is not allowed.
[gh#astropy/astropy#9933]
Tables containing Magnitude, decibel, and dex columns can now be saved to
``ecsv`` files.
[gh#astropy/astropy#10027]
Fixed bug where adding or inserting a row fails on a table with an index
defined on a column that is not the first one.
[gh#astropy/astropy#10068]
Ensured that ``table.show_in_browser`` also worked for mixin columns like
``Time`` and ``SkyCoord``.
* astropy.time
[gh#astropy/astropy#9679]
Fix inaccuracy when converting between TimeDelta and datetime.timedelta.
[gh#astropy/astropy#9812]
Fixed exception when changing ``format`` in the case when ``out_subfmt`` is
defined and is incompatible with the new format.
[gh#astropy/astropy#9812]
Fixed exceptions in ``Time.to_value()``: when supplying any ``subfmt`` argument
for string-based formats like 'iso', and for ``subfmt='long'`` for the formats
'byear', 'jyear', and 'decimalyear'.
[gh#astropy/astropy#9969]
Fixed bug where the location attribute was lost when creating a new ``Time``
object from an existing ``Time`` or list of ``Time`` objects.
[gh#astropy/astropy#10034]
Fixed a bug where an exception occurred when creating a ``Time`` object
if the ``val1`` argument was a regular double and the ``val2`` argument
was a ``longdouble``.
* astropy.timeseries
[gh#astropy/astropy#10013]
Fixed issue with reference time for the ``transit_time`` parameter returned by
the ``BoxLeastSquares`` periodogram. Now, the ``transit_time`` will be within
the range of the input data and arbitrary time offsets/zero points no longer
affect results.
* astropy.units
[gh#astropy/astropy#9948]
Fix for ``quantity_input`` annotation raising an exception on iterable
types that don't define a general ``__contains__`` for checking if ``None``
is contained (e.g. Enum as of python3.8), by instead checking for instance of
Sequence.
[gh#astropy/astropy#10066]
Fix for ``u.Quantity`` not taking into account ``ndmin`` if constructed from
another ``u.Quantity`` instance with different but convertible unit
* astropy.utils
[gh#astropy/astropy#9981]
Fixed ``deprecated_renamed_argument`` not passing in user value to
deprecated keyword when the keyword has no new name.
[gh#astropy/astropy#9985]
Fixed ``deprecated_renamed_argument`` not issuing a deprecation warning when
deprecated keyword without new name is passed in as positional argument.
[gh#astropy/astropy#10007]
Fixed detection of read-only filesystems in the caching code.
* astropy.visualization
[gh#astropy/astropy#9848]
Fixed bug from matplotlib >=3.1 where an empty Quantity array is
sent for unit conversion as an empty list.
[gh#astropy/astropy#9913]
Fix bug in ``ZScaleInterval`` to return the array minimum and
maximum when there are less then ``min_npixels`` in the input array.
[gh#astropy/astropy#8004, gh#astropy/astropy#9991]
Fix a bug in simplifying axis labels that affected non-rectangular frames.
* Increase minimum asdf version to 2.5.2.
[gh#astropy/astropy#9996, gh#astropy/astropy#9819]
* Updated wcslib to v7.2. [gh#astropy/astropy#10021]
- updated test requirements and recommends
- run pytest directly
-------------------------------------------------------------------
Tue Jan 7 10:19:19 UTC 2020 - Sebastian Wagner <sebix+novell.com@sebix.at>
- Require erfa >= 1.7 because of https://github.com/astropy/astropy/issues/9654
-------------------------------------------------------------------
Mon Jan 6 17:59:53 UTC 2020 - Todd R <toddrme2178@gmail.com>
- Update to 4.0
+ New Features
> astropy.config
* The config and cache directories and the name of the config file are now
customizable. This allows affiliated packages to put their configuration
files in locations other than ``CONFIG_DIR/.astropy/``.
> astropy.constants
* The version of constants can be specified via ScienceState in a way
that ``constants`` and ``units`` will be consistent.
* Default constants now use CODATA 2018 and IAU 2015 definitions.
* Constants can be pickled and unpickled.
> astropy.convolution
* Fixed a bug where having a kernel defined using unitless astropy
quantity objects would result in a crash
> astropy.coordinates
* Changed ``coordinates.solar_system_ephemeris`` to also accept local files
as input. The ephemeris can now be selected by either keyword (e.g. 'jpl',
'de430'), URL or file path.
* Added a ``cylindrical`` property to ``SkyCoord`` for shorthand access to a
``CylindricalRepresentation`` of the coordinate, as is already available
for other common representations.
* The default parameters for the ``Galactocentric`` frame are now controlled by
a ``ScienceState`` subclass, ``galactocentric_frame_defaults``. New
parameter sets will be added to this object periodically to keep up with
ever-improved measurements of the solar position and motion.
* Coordinate frame classes can now have multiple aliases by assigning a list
of aliases to the class variable ``name``. Any of the aliases can be used
for attribute-style access or as the target of ``tranform_to()`` calls.
* Passing a NaN to ``Distance`` no longer raises a warning.
> astropy.cosmology
* The pre-publication Planck 2018 cosmological parameters are included as the
``Planck2018_arXiv_v2`` object. Please note that the values are preliminary,
and when the paper is accepted a final version will be included as
``Planck18``.
> astropy.io.ascii
* Removed incorrect warnings on ``Overflow`` when reading in
``FloatType`` 0.0 with ``use_fast_converter``; synchronised
``IntType`` ``Overflow`` warning messages.
> astropy.io.misc
* Eliminate deprecated compatibility mode when writing ``Table`` metadata to
HDF5 format.
* Add support for orthogonal polynomial models to ASDF.
> astropy.io.fits
* Changed the ``fitscheck`` and ``fitsdiff`` script to use the ``argparse``
module instead of ``optparse``.
* Allow writing of ``Table`` objects with ``Time`` columns that are also table
indices to FITS files.
> astropy.io.votable
* Support VOTable version 1.4. The main addition is the new element, TIMESYS,
which allows defining of metadata for temporal coordinates much like COOSYS
defines metadata for celestial coordinates.
> astropy.logger
* Added a configuration option to specify the text encoding of the log file,
with the default behavior being the platform-preferred encoding.
> astropy.modeling
* Major rework of modeling internals. `See modeling documentation for details.
<https://docs.astropy.org/en/v4.0.x/modeling/changes_for_4.html>`_ .
* Add ``Tabular1D.inverse``.
* ``Model.rename`` was changed to add the ability to rename ``Model.inputs``
and ``Model.outputs``.
* New function ``fix_inputs`` to generate new models from others by fixing
specific inputs variable values to constants.
* ``inputs`` and ``outputs`` are now model instance attributes, and ``n_inputs``
and ``n_outputs`` are class attributes. Backwards compatible default
values of ``inputs`` and ``outputs`` are generated. ``Model.inputs`` and
``Model.outputs`` are now settable which allows renaming them on per user
case.
* Add a new model representing a sequence of rotations in 3D around an
arbitrary number of axes.
* Add many of the numpy ufunc functions as models.
* Add ``BlackBody`` model.
* Add ``Drude1D`` model.
* Added analytical King model (KingProjectedAnalytic1D).
* Added Exponential1D and Logarithmic1D models.
> astropy.nddata
* Add a way for technically invalid but unambiguous units in a fits header
to be parsed by ``CCDData``.
* ``NDData`` now only accepts WCS objects which implement either the high, or
low level APE 14 WCS API. All WCS objects are converted to a high level WCS
object, so ``NDData.wcs`` now always returns a high level APE 14 object. Not
all array slices are valid for wcs objects, so some slicing operations which
used to work may now fail.
> astropy.stats
* The ``biweight_location``, ``biweight_scale``, and
``biweight_midvariance`` functions now allow for the ``axis``
keyword to be a tuple of integers.
* Added an ``ignore_nan`` option to the ``biweight_location``,
``biweight_scale``, and ``biweight_midvariance`` functions.
* A numpy ``MaskedArray`` can now be input to the ``biweight_location``,
``biweight_scale``, and ``biweight_midvariance`` functions.
* Removed the warning related to p0 in the Bayesian blocks algorithm. The
caveat related to p0 is described in the docstring for ``Events``.
> astropy.table
* Improved the implementation of ``Table.replace_column()`` to provide
a speed-up of 5 to 10 times for wide tables. The method can now accept
any input which convertible to a column of the correct length, not just
``Column`` subclasses.
* Improved the implementation of ``Table.add_column()`` to provide a speed-up
of 2 to 10 (or more) when adding a column to tables, with increasing benefit
as the number of columns increases. The method can now accept any input
which is convertible to a column of the correct length, not just ``Column``
subclasses.
* Changed the implementation of ``Table.add_columns()`` to use the new
``Table.add_column()`` method. In most cases the performance is similar
or slightly faster to the previous implemenation.
* ``MaskedColumn.data`` will now return a plain ``MaskedArray`` rather than
the previous (unintended) ``masked_BaseColumn``.
* Added depth-wise stacking ``dstack()`` in higher level table operation.
It help will in stacking table column depth-wise.
* Added a new table equality method ``values_equal()`` which allows comparison
table values to another table, list, or value, and returns an
element-by-element equality table.
* Added new ``join_type='cartesian'`` option to the ``join`` operation.
* Allow adding a table column as a list of mixin-type objects, for instance
``t['q'] = [1 * u.m, 2 * u.m]``.
* Allow table ``join()`` using any sortable key column (e.g. Time), not
just ndarray subclasses. A column is considered sortable if there is a
``<column>.info.get_sortable_arrays()`` method that is implemented.
* Added ``Table.iterrows()`` for making row-wise iteration faster.
* Allow table to be initialized with a list of dict where the dict keys
are not the same in every row. The table column names are the set of all keys
found in the input data, and any missing key/value pairs are turned into
missing data in the table.
* Prevent unnecessary ERFA warnings when indexing by ``Time`` columns.
* Added support for sorting tables which contain non-mutable mixin columns
(like ``SkyCoord``) for which in-place item update is not allowed.
* Ensured that inserting ``np.ma.masked`` (or any other value with a mask) into
a ``MaskedColumn`` causes a masked entry to be inserted.
* Fixed a bug that caused an exception when initializing a ``MaskedColumn`` from
another ``MaskedColumn`` that has a structured dtype.
> astropy.tests
* The plugin that handles the custom header in the test output has been
moved to the ``pytest-astropy-header plugin`` package. `See the README at
<https://github.com/astropy/pytest-astropy-header>`__ for information about
using this new plugin.
> astropy.time
* Added a new time format ``ymdhms`` for representing times via year, month,
day, hour, minute, and second attributes.
* ``TimeDelta`` gained a ``to_value`` method, so that it becomes easier to
use it wherever a ``Quantity`` with units of time could be used.
* Made scalar ``Time`` and ``TimeDelta`` objects hashable based on JD, time
scale, and location attributes.
* Improved error message when bad input is used to initialize a ``Time`` or
``TimeDelta`` object and the format is specified.
* Allow numeric time formats to be initialized with numpy ``longdouble``,
``Decimal`` instances, and strings. One can select just one of these
using ``in_subfmt``. The output can be similarly set using ``out_subfmt``.
* Introduce a new ``.to_value()`` method for ``Time`` (and adjusted the
existing method for ``TimeDelta``) so that one can get values in a given
``format`` and possible ``subfmt`` (e.g., ``to_value('mjd', 'str')``.
* Prevent unecessary ERFA warnings when sorting ``Time`` objects.
> astropy.timeseries
* Addig ``epoch_phase``, ``wrap_phase`` and ``normalize_phase`` keywords to
``TimeSeries.fold()`` to control the phase of the epoch and to return
normalized phase rather than time for the folded TimeSeries.
> astropy.uncertainty
* ``Distribution`` was rewritten such that it deals better with subclasses.
As a result, Quantity distributions now behave correctly with ``to`` methods
yielding new distributions of the kind expected for the starting
distribution, and ``to_value`` yielding ``NdarrayDistribution`` instances.
* The ``pdf_*`` properties that were used to calculate statistical properties
of ``Distrubution`` instances were changed into methods. This allows one
to pass parameters such as ``ddof`` to ``pdf_std`` and ``pdf_var`` (which
generally should equal 1 instead of the default 0), and reflects that these
are fairly involved calcuations, not just "properties".
> astropy.units
* Support for unicode parsing. Currently supported superscripts are Ohm,
Ångström, and the micro-sign.
* Accept non-unit type annotations in @quantity_input.
* For numpy 1.17 and later, the new ``__array_function__`` protocol is used to
ensure that all top-level numpy functions interact properly with
``Quantity``, preserving units also in operations like ``np.concatenate``.
* Add equivalencies for surface brightness units to spectral_density.
> astropy.utils
* ``astropy.utils.data.download_file`` and
``astropy.utils.data.get_readable_fileobj`` now provides an ``http_headers``
keyword to pass in specific request headers for the download. It also now
defaults to providing ``User-Agent: Astropy`` and ``Accept: */*``
headers. The default ``User-Agent`` value can be set with a new
``astropy.data.conf.default_http_user_agent`` configuration item.
* Added a new ``astropy.utils.misc.unbroadcast`` function which can be used
to return the smallest array that can be broadcasted back to the initial
array.
* The specific IERS Earth rotation parameter table used for time and
coordinate transformations can now be set, either in a context or per
session, using ``astropy.utils.iers.earth_rotation_table``.
* Added ``export_cache`` and ``import_cache`` to permit transporting
downloaded data to machines with no Internet connection. Several new
functions are available to investigate the cache contents; e.g.,
``check_download_cache`` can be used to confirm that the persistent
cache has not become damaged.
* A new ``astropy.utils.iers.LeapSeconds`` class has been added to track
leap seconds.
> astropy.visualization
* Added a new ``time_support`` context manager/function for making it easy to
plot and format ``Time`` objects in Matplotlib.
* Added support for plotting any WCS compliant with the generalized (APE 14)
WCS API with WCSAxes.
* Improved display of information when inspecting ``WCSAxes.coords``.
* Improved error checking for the ``slices=`` argument to ``WCSAxes``.
* Added support for more solar frames in WCSAxes.
* Add support for one dimensional plots to ``WCSAxes``.
* Add a ``get_format_unit`` to ``wcsaxes.CoordinateHelper``.
* ``WCSAxes`` now, by default, sets a default label for plot axes which is the
WCS physical type (and unit) for that axis. This can be disabled using the
``coords[i].set_auto_axislabel(False)`` or by explicitly setting an axis
label.
* Fixed the display of tick labels when plotting all sky images that have a
coord_wrap less than 360.
> astropy.wcs
* Added a ``astropy.wcs.wcsapi.pixel_to_pixel`` function that can be used to
transform pixel coordinates in one dataset with a WCS to pixel coordinates
in another dataset with a different WCS. This function is designed to be
efficient when the input arrays are broadcasted views of smaller
arrays.
* Added a ``local_partial_pixel_derivatives`` function that can be used to
determine a matrix of partial derivatives of each world coordinate with
respect to each pixel coordinate.
* Updated wcslib to v6.4.
* Improved the ``SlicedLowLevelWCS`` class in ``astropy.wcs.wcsapi`` to avoid
storing chains of nested ``SlicedLowLevelWCS`` objects when applying multiple
slicing operations in turn.
* Added a ``wcs_info_str`` function to ``astropy.wcs.wcsapi`` to show a summary
of an APE-14-compliant WCS as a string.
* Added two new optional attributes to the APE 14 low-level WCS:
``pixel_axis_names`` and ``world_axis_names``.
* Updated the WCS class to now correctly take and return ``Time`` objects in
the high-level APE 14 API (e.g. ``pixel_to_world``.
* ``SlicedLowLevelWCS`` now raises ``IndexError`` rather than ``ValueError`` on
an invalid slice.
* Added ``fit_wcs_from_points`` function to ``astropy.wcs.utils``. Fits a WCS
object to set of matched detector/sky coordinates.
* Fix various bugs in ``SlicedLowLevelWCS`` when the WCS being sliced was one
dimensional.
+ API Changes
> astropy.constants
* Deprecated ``set_enabled_constants`` context manager. Use
``astropy.physical_constants`` and ``astropy.astronomical_constants``.
> astropy.convolution
* Removed the deprecated keyword argument ``interpolate_nan`` from
``convolve_fft``.
* Removed the deprecated keyword argument ``stddev`` from
``Gaussian2DKernel``.
* Deprecated and renamed ``MexicanHat1DKernel`` and ``MexicanHat2DKernel``
to ``RickerWavelet1DKernel`` and ``RickerWavelet2DKernel``.
> astropy.coordinates
* Removed the ``recommended_units`` attribute from Representations; it was
deprecated since 3.0.
* Removed the deprecated frame attribute classes, ``FrameAttribute``,
``TimeFrameAttribute``, ``QuantityFrameAttribute``,
``CartesianRepresentationFrameAttribute``; deprecated since 3.0.
* Removed ``longitude`` and ``latitude`` attributes from ``EarthLocation``;
deprecated since 2.0.
* The ``DifferentialAttribute`` for frame classes now passes through any input
to the ``allowed_classes`` if only one allowed class is specified, i.e. this
now allows passing a quantity in for frame attributes that use
``DifferentialAttribute``.
* Removed the deprecated ``galcen_ra`` and ``galcen_dec`` attributes from the
``Galactocentric`` frame.
> astropy.extern
* Remove the bundled ``six`` module.
> astropy.io.ascii
* Masked column handling has changed, see ``astropy.table`` entry below.
> astropy.io.misc
* Masked column handling has changed, see ``astropy.table`` entry below.
* Removed deprecated ``usecPickle`` kwarg from ``fnunpickle`` and
``fnpickle``.
> astropy.io.fits
* Masked column handling has changed, see ``astropy.table`` entry below.
* ``io.fits.Header`` has been made safe for subclasses for copying and slicing.
As a result of this change, the private subclass ``CompImageHeader``
now always should be passed an explicit ``image_header``.
* Removed the deprecated ``tolerance`` option in ``fitsdiff`` and
``io.fits.diff`` classes.
* Removed deprecated keyword arguments for ``CompImageHDU``:
``compressionType``, ``tileSize``, ``hcompScale``, ``hcompSmooth``,
``quantizeLevel``.
> astropy.io.votable
* Changed ``pedantic`` argument to ``verify`` and change it to have three
string-based options (``ignore``, ``warn``, and ``exception``) instead of
just being a boolean. In addition, changed default to ``ignore``, which means
that warnings will not be shown by default when loading VO tables.
> astropy.modeling
* Eliminates support for compound classes (but not compound instances!)
* Slicing compound models more restrictive.
* Shape of parameters now includes n_models as dimension.
* Parameter instances now hold values instead of models.
* Compound model parameters now share instance and value with
constituent models.
* No longer possible to assign slices of parameter values to model parameters
attribute (it is possible to replace it with a complete array).
* Many private attributes and methods have changed (see documentation).
* Deprecated ``BlackBody1D`` model and ``blackbody_nu`` and
``blackbody_lambda`` functions.
* The deprecated ``rotations.rotation_matrix_from_angle`` was removed.
* Deprecated and renamed ``MexicanHat1D`` and ``MexicanHat2D``
to ``RickerWavelet1D`` and ``RickerWavelet2D``.
* Deprecated ``modeling.utils.ExpressionTree``.
> astropy.stats
* Removed the ``iters`` keyword from sigma clipping stats functions.
* Renamed the ``a`` parameter to ``data`` in biweight stat functions.
* Renamed the ``a`` parameter to ``data`` in ``median_absolute_deviation``.
* Renamed the ``conflevel`` keyword to ``confidence_level`` in
``poisson_conf_interval``. Usage of ``conflevel`` now issues
``AstropyDeprecationWarning``.
* Renamed the ``conf`` keyword to ``confidence_level`` in
``binom_conf_interval`` and ``binned_binom_proportion``. Usage of ``conf``
now issues ``AstropyDeprecationWarning``.
* Renamed the ``conf_lvl`` keyword to ``confidence_level`` in
``jackknife_stats``. Usage of ``conf_lvl`` now issues
``AstropyDeprecationWarning``.
> astropy.table
* The handling of masked columns in the ``Table`` class has changed in a way
that may impact program behavior. Now a ``Table`` with ``masked=False``
may contain both ``Column`` and ``MaskedColumn`` objects, and adding a
masked column or row to a table no longer "upgrades" the table and columns
to masked. This means that tables with masked data which are read via
``Table.read()`` will now always have ``masked=False``, though specific
columns will be masked as needed. Two new table properties
``has_masked_columns`` and ``has_masked_values`` were added. See the
`Masking change in astropy 4.0 section within
<https://docs.astropy.org/en/v4.0.x/table/masking.html>`_ for
details.
* Table operation functions such as ``join``, ``vstack``, ``hstack``, etc now
always return a table with ``masked=False``, though the individual columns
may be masked as necessary.
* Changed implementation of ``Table.add_column()`` and ``Table.add_columns()``
methods. Now it is possible add any object(s) which can be converted or
broadcasted to a valid column for the table. ``Table.__setitem__`` now
just calls ``add_column``.
* Changed default table configuration setting ``replace_warnings`` from
``['slice']`` to ``[]``. This removes the default warning when replacing
a table column that is a slice of another column.
* Removed the non-public method
``astropy.table.np_utils.recarray_fromrecords``.
> astropy.tests
* In addition to ``DeprecationWarning``, now ``FutureWarning`` and
``ImportWarning`` would also be turned into exceptions.
* ``warnings_to_ignore_by_pyver`` option in
``enable_deprecations_as_exceptions()`` has changed. Please refer to API
documentation.
* Default settings for ``warnings_to_ignore_by_pyver`` are updated to remove
very old warnings that are no longer relevant and to add a new warning
caused by ``pytest-doctestplus``.
> astropy.time
* ``Time.get_ut1_utc`` now uses the auto-updated ``IERS_Auto`` by default,
instead of the bundled ``IERS_B`` file.
* Time formats that do not use ``val2`` now raise ValueError instead of
silently ignoring a provided value.
* Custom time formats can now accept floating-point types with extended
precision. Existing time formats raise exceptions rather than discarding
extended precision through conversion to ordinary floating-point.
* Time formats (implemented in subclasses of ``TimeFormat``) now have
their input and output routines more thoroughly validated, making it more
difficult to create damaged ``Time`` objects.
* The ``TimeDelta.to_value()`` method now can also take the ``format`` name
as its argument, in which case the value will be calculated using the
``TimeFormat`` machinery. For this case, one can also pass a ``subfmt``
argument to retrieve the value in another form than ``float``.
> astropy.timeseries
* Keyword ``midpoint_epoch`` is renamed to ``epoch_time``.
> astropy.uncertainty
* ``Distribution`` was rewritten such that it deals better with subclasses.
As a result, Quantity distributions now behave correctly with ``to`` methods
yielding new distributions of the kind expected for the starting distribution,
and ``to_value`` yielding ``NdarrayDistribution`` instances.
> astropy.units
* For consistency with ``ndarray``, scalar ``Quantity.value`` will now return
a numpy scalar rather than a python one. This should help keep track of
precision better, but may lead to unexpected results for the rare cases
where numpy scalars behave differently than python ones (e.g., taking the
square root of a negative number).
* Removed the ``magnitude_zero_points`` module, which was deprecated in
favour of ``astropy.units.photometric`` since 3.1.
* ``EquivalentUnitsList`` now has a ``_repr_html_`` method to output a HTML
table on a call to ``find_equivalent_units`` in Jupyter notebooks.
> astropy.utils
* ``download_file`` and related functions now accept a list of fallback
sources, and they are able to update the cache at the user's request.
* Allow ``astropy.utils.console.ProgressBarOrSpinner.map`` and
``.map_unordered`` to take an argument ``multiprocessing_start_method`` to
control how subprocesses are started; the different methods (``fork``,
``spawn``, and ``forkserver``) have different implications in terms of
security, efficiency, and behavioural anomalies. The option is useful in
particular for cross-platform testing because Windows supports only ``spawn``
while Linux defaults to ``fork``.
* All operations that act on the astropy download cache now take an argument
``pkgname`` that allows one to specify which package's cache to use.
* Removed deprecated ``funcsigs`` and ``futures`` from
``astropy.utils.compat``.
* Removed the deprecated ``astropy.utils.compat.numpy`` module.
* Deprecated ``InheritDocstrings`` as it is natively supported by
Sphinx 1.7 or higher.
* Deprecated ``astropy.utils.timer`` module, which has been moved to
``astroquery.utils.timer`` and will be part of ``astroquery`` 0.4.0.
* Deprecated ``astropy.utils.misc.set_locale`` function, as it is meant for
internal use only.
* The implementation of ``data_info.DataInfo`` has changed (for a considerable
performance boost). Generally, this should not affect simple subclasses, but
because the class now uses ``__slots__`` any attributes on the class have to
be explicitly given a slot.
* ``IERS`` tables now use ``nan`` to mark missing values
(rather than ``1e20``).
> astropy.visualization
* The default ``clip`` value is now ``False`` in ``ImageNormalize``.
* The default ``clip`` value is now ``False`` in ``simple_norm``.
* Infinite values are now excluded when calculating limits in
``ManualInterval`` and ``MinMaxInterval``. They were already excluded in
all other interval classes.
+ Bug Fixes
> astropy.coordinates
* The ``QuantityAttribute`` class now supports a None default value if a unit
is specified.
* When ``Representation`` classes with the same name are defined, this no
longer leads to a ``ValueError``, but instead to a warning and the removal
of both from the name registry (i.e., one either has to use the class itself
to set, e.g., ``representation_type``, or refer to the class by its fully
qualified name).
> astropy.io.fits
* Implemented skip (after warning) of header cards with reserved
keywords in ``table_to_hdu``.
* Add ``AstropyDeprecationWarning`` to ``read_table_fits`` when ``hdu=`` is
selected, but does not match single present table HDU.
> astropy.io.votable
* Ignore BINARY2 null mask bits for string values
on parsing a VOTable. In this way, the reader should never create masked
values for string types.
* Corrected a spurious warning issued for the ``value`` attribute of the
``<OPTION>`` element in VOTable, as well as a test that erroneously
treated the warning as acceptable.
> astropy.nddata
* ``Cutout2D`` will now get the WCS from its first argument if that argument
has with WCS property.
* ``overlap_slices`` will now raise a ``ValueError`` if the input
position contains any non-finite values (e.g. NaN or inf).
> astropy.stats
* Fixed a bug where ``bayesian_blocks`` returned a single edge.
* Fixed input data type validation for ``bayesian_blocks`` to work int
arrays.
> astropy.table
* Fix bug where adding a column consisting of a list of masked arrays was
dropping the masks.
* ``Quantity`` columns with custom units can now round-trip via FITS tables,
as long as the custom unit is enabled during reading (otherwise, the unit
will become an ``UnrecognizedUnit``).
* Fix bug where string values could be truncated when inserting into a
``Column`` or ``MaskedColumn``, or when adding or inserting a row containing
string values.
> astropy.time
* Fix bug when ``Time`` object is created with only masked elements.
* Fix inaccuracy when converting between TimeDelta and datetime.timedelta.
> astropy.units
* Ensure that output from test functions of and comparisons between quantities
can be stored into pre-allocated output arrays (using ``out=array``)
> astropy.utils
* For the default ``IERS_Auto`` table, which combines IERS A and B values, the
IERS nutation parameters "dX_2000A" and "dY_2000A" are now also taken from
the actual IERS B file rather than from the B values stored in the IERS A
file. Any differences should be negligible for any practical application,
but this may help exactly reproducing results.
> astropy.visualization
* Calling ``WCSAxes.set_axis_off()`` now correctly turns off drawing the Axes.
* Fix incorrect transformation behavior in ``WCSAxes.plot_coord`` and correctly
handle when input coordinates are not already in spherical representations.
* Fixed ``ImageNormalize`` so that when it is intialized without
``data`` it will still use the input ``interval`` class.
* Fixed ``ImageNormalize`` to handle input data with non-finite
values.
> astropy.wcs
* Fix incorrect value returned by
``wcsapi.HighLevelWCSWrapper.axis_correlation_matrix``.
* Fix NaN-masking of world coordinates when some but not all of the coordinates
were flagged as invalid by WCSLIB. This occurred for example with WCS with >2
dimensions where two of the dimensions were celestial coordinates and pixel
coordinates ouside of the 'sky' were converted to world coordinates -
previously all world coordinates were masked even if uncorrelated with the
celestial axes, but this is no longer the case.
* The default WCS to celestial frame mapping for world coordinate systems that
specify ``TLON`` and ``TLAT`` coordinates will now return an ITRS frame with
the representation class set to ``SphericalRepresentation``. This fixes a bug
that caused ``WCS.pixel_to_world`` to raise an error for such world
coordinate systems.
* ``FITSWCSAPIMixin`` now returns tuples not lists from ``pixel_to_world`` and
``world_to_pixel``.
+ Other Changes and Additions
* Versions of Python <3.6 are no longer supported.
* Matplotlib 2.1 and later is now required.
* Versions of Numpy <1.16 are no longer supported.
* Updated the bundled CFITSIO library to 3.470. See
``cextern/cfitsio/docs/changes.txt`` for additional information.
* The bundled ERFA was updated to version 1.7.0. This is based on
SOFA 20190722. This includes a fix to avoid precision loss for negative
JDs, and also includes additional routines to allow updates to the
leap-second table.
* The default server for the IERS data files has been updated to reflect
long-term downtime of the canonical USNO server.
-------------------------------------------------------------------
Wed Nov 20 20:08:31 UTC 2019 - Todd R <toddrme2178@gmail.com>
- Update to 3.2.3
+ Other Changes and Additions
* Updated IERS A URLs due to USNO prolonged maintenance
- Update to 3.2.2
+ Bug fixes
* astropy.convolution
> Fixed a bug in ``discretize_oversample_1D/2D()`` from
``astropy.convolution.utils``, which might occasionally introduce unexpected
oversampling grid dimensions due to a numerical precision issue.
> Fixed a bug where having a kernel defined using unitless astropy
quantity objects would result in a crash
* astropy.coordinates
> Fix concatenation of representations for cases where the units were different.
> Check for NaN values in catalog and match coordinates before building and
querying the ``KDTree`` for coordinate matching.
> Fix sky coordinate matching when a dimensionless distance is provided.
> Raise a faster and more meaningful error message when differential data units
are not compatible with a containing representation's units.
> Changed the timescale in ICRS to CIRS from 'tdb' to 'tt' conversion and
vice-versa, as the erfa function that gets called in the process, pnm06a
accepts time in TT.
* astropy.io.ascii
> Fixed the fast reader when used in parallel and with the multiprocessing
'spawn' method (which is the default on MacOS X with Python 3.8 and later),
and enable parallel fast reader on Windows.
* astropy.io.fits
> Fixes bug where an invalid TRPOS<n> keyword was being generated for FITS
time column when no location was available.
> Fixed a wrong exception when converting a Table with a unit that is not FITS
compliant and not convertible to a string using ``format='fits'``.
> Fixed an issue with A3DTABLE extension that could not be read.
> Fixed the update of the header when creating GroupsHDU from data.
* astropy.nddata
> Fix to ``add_array``, which now accepts ``array_small`` having dimensions
equal to ``array_large``, instead of only allowing smaller sizes of
arrays.
* astropy.stats
> Fixed ``median_absolute_deviation`` for the case where ``ignore_nan=True``
and an input masked array contained both NaNs and infs.
* astropy.table
> Comparisons between ``Column`` instances and ``Quantity`` will now
correctly take into account the unit (as was already the case for
regular operations such as addition).
* astropy.time
> Allow ``Time`` to be initialized with an empty value for all formats.
> Fixed a troubling bug in which ``Time`` could loose precision, with deviations
of 300 ns.
* astropy.timeseries
> Fixed handling of ``Quantity`` input data for all methods of
``LombScarge.false_alarm_probabilty``.
* astropy.units
> Allow conversion of ``Column`` with logarithmic units to a suitable
``Quantity`` subclass if ``subok=True``.
> Ensured that we simplify powers to smaller denominators if that is
consistent within rounding precision.
> Ensured that the powers shown in a unit's repr are always correct,
not oversimplified.
* astropy.utils
> Fixed ``find_api_page`` access by using custom request headers and HTTPS
when version is specified.
> Make ``download_file`` (and by extension ``get_readable_fileobj`` and others)
check the size of downloaded files against the size claimed by the server.
> Fix ``find_current_module`` so that it works properly if astropy is being used
inside a bundle such as that produced by PyInstaller.
> Fix path to renamed classes, which previously included duplicate path/module
information under certain circumstances.
* astropy.visualization
> Silence numpy runtime warnings in ``WCSAxes`` when drawing grids.
* astropy.wcs
> Fixed equality test between ``cunit`` where the first element was equal but
the following elements differed.
> Fixed a crash while loading a WCS from headers containing duplicate SIP
keywords.
> Fixed a possible buffer overflow when using too large negative indices for
``cunit`` or ``ctype``
> Fixed reference counting in ``WCSBase.__init__``
> Fix ``SlicedLowLevelWCS`` ``world_to_pixel_values`` and
``pixel_to_world_values`` when inputs need broadcasting to the same shape.
(i.e. when one input is sliced out)
> Fixed a bug that caused ``WCS.array_shape``, ``WCS.pixel_shape`` and
``WCS.pixel_bounds`` to be incorrect after using ``WCS.sub``.
+ Other Changes and Additions
* Fixed a bug that caused files outside of the astropy module directory to be
included as package data, resulting in some cases in errors when doing
repeated builds.
-------------------------------------------------------------------
Mon Jul 29 17:01:26 UTC 2019 - Todd R <toddrme2178@gmail.com>
- Add conflicts with perl-Data-ShowTable
-------------------------------------------------------------------
Tue Jul 23 01:55:47 UTC 2019 - Todd R <toddrme2178@gmail.com>
- Update to 3.2.1
+ Bug fixes
* astropy.io.fits
> Avoid reporting a warning with ``BinTableHDU.from_columns`` with keywords that
are not provided by the user.
> Fix ``Header.fromfile`` to work on FITS files.
> Fix reading of empty ``BinTableHDU`` when stored in a gzip-compressed file.
* astropy.table
> Fix a problem where mask was dropped when creating a ``MaskedColumn``
from a list of ``MaskedArray`` objects.
* astropy.wcs
> Added ``None`` to be displayed as a ``world_axis_physical_types`` in
the ``WCS`` repr, as ``None`` values are now supported in ``APE14``.
- Update to 3.2
+ New Features
* astropy.constants
> Add CODATA 2018 constants but not make them default because the
redefinition of SI units that will follow has not been implemented
yet.
* astropy.coordinates
> New ``BarycentricMeanEcliptic``, ``HeliocentricTrueEcliptic`` and
``GeocentricTrueEcliptic`` frames.
The ecliptic frames are no longer considered experimental.
> The default time scale for epochs like 'J2000' or 'B1975' is now "tt",
which is the correct one for 'J2000' and avoids leap-second warnings
for epochs in the far future or past.
* astropy.extern
> Bundled ``six`` now emits ``AstropyDeprecationWarning``. It will be removed
in 4.0.
* astropy.io.ascii
> IPAC tables now output data types of ``float`` instead of ``double``, or
``int`` instead of ``long``, based on the column ``dtype.itemsize``.
> Update handling of MaskedColumn columns when using the 'data_mask' serialization
method. This can make writing ECSV significantly faster if the data do not
actually have any masked values.
> Fixed a bug that caused newlines to be incorrect when writing out ASCII tables
on Windows (they were ``\r\r\n`` instead of ``\r\n``).
* astropy.io.misc
> Implement serialization of ``TimeDelta`` in ASDF.
> Implement serialization of ``EarthLocation`` in ASDF.
> Implement serialization of ``SkyCoord`` in ASDF.
> Support serialization of Astropy tables with mixin columns in ASDF.
> No warnings when reading HDF5 files with only one table and no ``path=``
argument
> The HDF5 writer will now create a default table instead of raising an
exception when ``path=`` is not specified and when writing to empty/new HDF5
files.
* astropy.io.fits
> Optimize parsing of cards within the ``Header`` class.
> Optimize the parsing of headers to get the structural keywords that are
needed to find extensions. Thanks to this, getting a random HDU from a file
with many extensions is much faster than before, in particular when the
extension headers contain many keywords.
> Change behavior of FITS undefined value in ``Header`` such that ``None``
is used in Python to represent FITS undefined when using dict interface.
``Undefined`` can also be assigned and is translated to ``None``.
Previously setting a header card value to ``None`` resulted in an
empty string field rather than a FITS undefined value.
> Allow ``Header.fromstring`` and ``Card.fromstring`` to accept ``bytes``.
* astropy.io.registry
> Implement ``Table`` reader and writer for ``ASDF``.
> Implement ``Table`` reader and writer methods to wrap ``pandas`` I/O methods
for CSV, Fixed width format, HTML, and JSON.
> Add ``help()`` and ``list_formats()`` methods to unified I/O ``read`` and
``write`` methods. For example ``Table.read.help()`` gives help on available
``Table`` read formats and ``Table.read.help('fits')`` gives detailed
help on the arguments for reading FITS table file.
* astropy.table
> Initializing a table with ``Table(rows=...)``, if the first item is an ``OrderedDict``,
now uses the column order of the first row.
> Added new pprint_all() and pformat_all() methods to Table. These two new
methods print the entire table by default.
> Removed restriction of initializing a Table from a dict with copy=False.
> Improved speed of table row access by a factor of about 2-3. Improved speed
of Table len() by a factor of around 3-10 (depending on the number of columns).
> Improved the Table - pandas ``DataFrame`` interface (``to_pandas()`` and
``from_pandas()``). Mixin columns like ``Time`` and ``Quantity`` can now be
converted to pandas by flattening the columns as necessary to plain
columns. ``Time`` and ``TimeDelta`` columns get converted to
corresponding pandas date or time delta types. The ``DataFrame``
index is now handled in the conversion methods.
> Added ``rename_columns`` method to rename multiple columns in one call.
> Improved Table performance by reducing unnecessary calls to copy and deepcopy,
especially as related to the table and column ``meta`` attributes. Changed the
behavior when slicing a table (either in rows or with a list of column names)
so now the sliced output gets a light (key-only) copy of ``meta`` instead of a
deepcopy. Changed the ``Table.meta`` class-level descriptor so that assigning
directly to ``meta``, e.g. ``tbl.meta = new_meta`` no longer does a deepcopy
and instead just directly assigns the ``new_meta`` object reference. Changed
Table initialization so that input ``meta`` is copied only if ``copy=True``.
> Improved Table slicing performance with internal implementation changes
related to column attribute access and certain input validation.
> Added ``reverse`` argument to the ``sort`` and ``argsort`` methods to allow
sorting in reverse order.
> Improved ``Table.sort()`` performance by removing ``self[keys]`` from code
which is creating deep copies of ``meta`` attribute and adding a new keyword
``names`` in ``get_index()`` to get index by using a list or tuple containing
names of columns.
> Expose ``represent_mixins_as_columns`` as a public function in the
``astropy.table`` subpackage. This previously-private function in the
``table.serialize`` module is used to represent mixin columns in a Table as
one or more plain Column objects.
* astropy.timeseries
> Added a new astropy.timeseries sub-package to represent and manipulate
sampled and binned time series.
> The ``BoxLeastSquares`` and ``LombScargle`` classes have been moved to
``astropy.timeseries.periodograms`` from ``astropy.stats``.
> Added the ability to provide absolute ``Time`` objects to the
``BoxLeastSquares`` and ``LombScargle`` periodogram classes.
> Added model inspection methods (``model_parameters()``, ``design_matrix()``,
and ``offset()``) to ``astropy.timeseries.LombScargle`` class .
* astropy.units
> ``Quantity`` overrides of ``ndarray`` methods such as ``sum``, ``min``,
``max``, which are implemented via reductions, have been removed since they
are dealt with in ``Quantity.__array_ufunc__``. This should not affect
subclasses, but they may consider doing similarly. Note that this
does not include methods that use more complicated python code such as
``mean``, ``std`` and ``var``.
* astropy.visualization
> Added ``CompositeStretch``, which inherits from ``CompositeTransform`` and
also ``BaseStretch`` so that it can be used with ``ImageNormalize``.
> Added a ``log_a`` argument to the ``simple_norm`` method. Similar to the
exposing of the ``asinh_a`` argument for ``AsinhStretch``, the new
``log_a`` argument is now exposed for ``LogStretch``.
* astropy.wcs
> WCSLIB was updated to v 6.2.
This adds support for time-related WCS keywords (WCS Paper VII).
FITS headers containing ``Time`` axis are parsed and the axis is included in
the WCS object.
> The ``OBSGEO`` attribute as expanded to 6 members - ``XYZLBH``.
> Added a new class ``SlicedLowLevelWCS`` in ``astropy.wcs.wcsapi`` that can be
used to slice any WCS that conforms to the ``BaseLowLevelWCS`` API.
> Updated implementation of ``WCS.__getitem__`` and ``WCS.slice`` to now return
a ``SlicedLowLevelWCS`` rather than raising an error when reducing the
dimensionality of the WCS.
+ API Changes
* astropy.coordinates
> ``QuantityAttribute`` no longer has a default value for ``default``. The
previous value of None was misleading as it always was an error.
> The default J2000 has been changed to use be January 1, 2000 12:00 TT instead
of UTC. This is more in line with convention.
* astropy.io.ascii
> IPAC tables now output data types of ``float`` instead of ``double``, or
``int`` instead of ``long``, based on the column ``dtype.itemsize``.
* astropy.io.misc
> Unit equivalencies can now be serialized to ASDF.
* astropy.modeling
> Composition of model classes is deprecated and will be removed in 4.0.
Composition of model instances remain unaffected.
* astropy.stats
> The ``BoxLeastSquares`` and ``LombScargle`` classes have been moved to the
``astropy.timeseries.periodograms`` module and will now emit a deprecation
warning when imported from ``astropy.stats``.
* astropy.table
> Converting an empty table to an array using ``as_array`` method now returns
an empty array instead of ``None``.
> Changed the behavior when slicing a table (either in rows or with a list of column
names) so now the sliced output gets a light (key-only) copy of ``meta`` instead of
a deepcopy. Changed the ``Table.meta`` class-level descriptor so that assigning
directly to ``meta``, e.g. ``tbl.meta = new_meta`` no longer does a deepcopy
and instead just directly assigns the ``new_meta`` object reference. Changed
Table initialization so that input ``meta`` is copied only if ``copy=True``.
> Added a keyword ``names`` in ``Table.as_array()``. If provided this specifies
a list of column names to include for the returned structured array.
* astropy.tests
> Removed ``pytest_plugins`` as they are completely broken for ``pytest>=4``.
> Removed the ``astropy.tests.plugins.config`` plugin and removed the
``--astropy-config-dir`` and ``--astropy-cache-dir`` options from
testing. Please use caching functionality that is natively in ``pytest``.
* astropy.time
> The default time scale for epochs like 'J2000' or 'B1975' is now "tt",
which is the correct one for 'J2000' and avoids leap-second warnings
for epochs in the far future or past.
* astropy.units
> Unit equivalencies can now be introspected.
* astropy.wcs
> The ``world_to_pixel``, ``world_to_array_index*``, ``pixel_to_world*`` and
``array_index_to_world*`` methods now all consistently return scalars, arrays,
or objects not wrapped in a one-element tuple/list when only one scalar,
array, or object (as was previously already the case for ``WCS.pixel_to_world``
and ``WCS.array_index_to_world``).
* astropy.utils
> It is now possible to control the number of cores used by ``ProgressBar.map``
by passing a positive integer as the ``multiprocess`` keyword argument. Use
``True`` to use all cores.
+ Bug Fixes
* astropy.coordinates
> ``BarycentricTrueEcliptic``, ``HeliocentricTrueEcliptic`` and
``GeocentricTrueEcliptic`` now use the correct transformation
(including nutation), whereas the new ``*MeanEcliptic`` classes
use the nutation-free transformation.
> Representations with ``float32`` coordinates can now be transformed,
although the output will always be ``float64``.
> Fixed bug that prevented using differentials with HCRS<->ICRS
transformations.
* astropy.io.ascii
> Fixed a bug where an exception was raised when writing a table which includes
mixin columns (e.g. a Quantity column) and the output format was specified
using the ``formats`` keyword.
* astropy.io.misc
> Fixed bug in ASDF tag that inadvertently introduced dependency on ``pytest``.
* astropy.modeling
> Fixed slowness for certain compound models consisting of large numbers
of multi-input models
> Fixed bugs in fitting of compound models with units.
* astropy.nddata
> Fixed bug in reading multi-extension FITS files written by earlier versions
of ``CCDData``.
> Fixed two errors in the way ``CCDData`` handles FITS files with WCS in the
header. Some of the WCS keywords that should have been removed from the
header were not, potentially leading to FITS files with inconsistent
WCS.
* astropy.table
> Fixed a bug when initializing from an empty list: ``Table([])`` no longer
results in a crash.
> Fixed a bug when initializing from an existing ``Table``. In this case the
input ``meta`` argument was being ignored. Now the input ``meta``, if
supplied, will be used as the ``meta`` for the new ``Table``.
> Fix the conversion of bytes values to Python ``str`` with ``Table.tolist``.
* astropy.time
> Fixed a number of issues to ensure a consistent output type resulting from
multiplication or division involving a ``TimeDelta`` instance. The output is
now always a ``TimeDelta`` if the result is a time unit (like u.s or u.d),
otherwise it will be a ``Quantity``.
> Multiplication between two ``TimeDelta`` instances is now possible, resulting
in a ``Quantity`` with units of time squared (division already correctly
resulted in a dimensionless ``Quantity``).
> Like for comparisons, addition, and subtraction of ``Time`` instances with
with non-time instances, multiplication and division of ``TimeDelta``
instances with incompatible other instances no longer immediately raise an
``UnitsError`` or ``TypeError`` (depending on the other instance), but
rather go through the regular Python mechanism of ``TimeDelta`` returning
``NotImplemented`` (which will lead to a regular ``TypeError`` unless the
other instance can handle ``TimeDelta``).
> Corrected small rounding errors that could cause the ``jd2`` values in
``Time`` to fall outside the range of -0.5 to 0.5.
* astropy.units
> Added a ``Quantity.to_string`` method to add flexibility to the string formatting
of quantities. It produces unadorned or LaTeX strings, and accepts two different
sets of delimiters in the latter case: ``inline`` and ``display``.
> Ensure classes that mimic quantities by having a ``unit`` attribute and/or
``to`` and ``to_value`` methods can be properly used to initialize ``Quantity``
or set ``Quantity`` instance items.
> Add support for ``<<`` to create logarithmic units.
> Add support for the ``clip`` ufunc, which in numpy 1.17 is used to implement
``np.clip``. As part of that, remove the ``Quantity.clip`` method under
numpy 1.17.
> Fix parsing of numerical powers in FITS-compatible units.
* astropy.wcs
> Added a ``PyUnitListProxy_richcmp`` method in ``UnitListProxy`` class to enable
``WCS.wcs.cunit`` equality testing. It helps to check whether the two instances of
``WCS.wcs.cunit`` are equal or not by comparing the data members of
``UnitListProxy`` class
> Fixed ``SlicedLowLevelWCS`` when ``array_shape`` is ``None``.
> Do not attempt to delete repeated distortion keywords multiple times when
loading distortions with ``_read_distortion_kw`` and
``_read_det2im_kw``.
+ Other Changes and Additions
> Update bundled expat to 2.2.6.
> Added instructions for uploading releases to Zenodo.
> The bug fixes to the behaviour of ``TimeDelta`` for multiplcation and
division, which ensure that the output is now always a ``TimeDelta`` if the
result is a time unit (like u.s or u.d) and otherwise a ``Quantity``, imply
that sometimes the output type will be different than it was before.
> For types unrecognized by ``TimeDelta``, multiplication and division now
will consistently return a ``TypeError`` if the other instance cannot handle
``TimeDelta`` (rather than ``UnitsError`` or ``TypeError`` depending on
presumed abilities of the other instance).
> Multiplication between two ``TimeDelta`` instances will no longer result in
an ``OperandTypeError``, but rather result in a ``Quantity`` with units of
time squared (division already correctly resulted in a dimensionless
``Quantity``).
> Made running the tests insensitive to local user configuration when running
the tests in parallel mode or directly with pytest.
> Added a narrative style guide to the documentation for contributor reference.
> Ensure we call numpy equality functions in a way that reduces the number
of ``DeprecationWarning``.
+ Installation
> We now require setuptools 30.3.0 or later to install the core astropy
package.
> We now define groups of dependencies that can be installed with pip, e.g.
``pip install astropy[all]`` (to install all optional dependencies).
-------------------------------------------------------------------
Wed Mar 20 16:59:23 CET 2019 - Matej Cepl <mcepl@suse.com>
- Update to 3.1.2, bug fixes
- astropy.coordinates
Convert the default of QuantityAttribute, thereby catching
the error case case of it being set to None at attribute
creation, and giving a more useful error message in the
process. [#8300]
- astropy.cosmology
Fix elliptic analytical solution for comoving distance.
Only relevant for non-flat cosmologies without radiation
and Om0 > Ode0. [#8391]
- astropy.modeling
Fixed slowness for certain compound models consisting of
large numbers of multi-input models [#8338, #8349]
- astropy.visualization.wcsaxes
Fix a bug that caused an error when passing an array with
all values the same to contour or contourf. [#8321]
Fix a bug that caused contour and contourf to return None
instead of the contour set. [#8321]
-------------------------------------------------------------------
Mon Jan 7 18:41:58 UTC 2019 - Todd R <toddrme2178@gmail.com>
- Use pytest-astropy since it is in Factory now.
-------------------------------------------------------------------
Fri Jan 4 17:31:38 UTC 2019 - Todd R <toddrme2178@gmail.com>
- Update to version 3.1
+ New Features
> astropy.convolution
* ``convolve`` now accepts any array-like input, not just ``numpy.ndarray`` or
lists. [#7303]
* ``convolve`` Now raises AstropyUserWarning if nan_treatment='interpolate' and
preserve_nan=False and NaN values are present post convolution. [#8088]
> astropy.coordinates
* The ``SkyCoord.from_name`` constructor now has the ability to create
coordinate objects by parsing object catalogue names that have embedded
J-coordinates. [#7830]
* The new function ``make_transform_graph_docs`` can be used to create a
docstring graph from a custom ``TransformGraph`` object. [#7135]
* ``KDTree`` for catalog matching is now built with sliding midpoint rule
rather than standard. In code, this means setting ``compact_nodes=False``
and ``balanced_tree=False`` in ``cKDTree``. The sliding midpoint rule is much
more suitable for catalog matching, and results in 1000x speedup in some
cases. [#7324]
* Additional information about a site loaded from the Astropy sites registry is
now available in ``EarthLocation.info.meta``. [#7857]
* Added a ``concatenate_representations`` function to combine coordinate
representation data and any associated differentials. [#7922]
* ``BaseCoordinateFrame`` will now check for a method named
``_astropy_repr_in_frame`` when constructing the string forms of attributes.
Allowing any class to control how ``BaseCoordinateFrame`` represents it when
it is an attribute of a frame. [#7745]
* Some rarely-changed attributes of frame classes are now cached, resulting in
speedups (up to 50% in some cases) when creating new scalar frame or
``SkyCoord`` objects. [#7949, #5952]
* Added a ``directional_offset_by`` method to ``SkyCoord`` that computes a new
coordinate given a coordinate, position angle, and angular separation [#5727]
> astropy.cosmology
* The default cosmology has been changed from ``WMAP9`` to ``Planck15``. [#8123]
* Distance calculations with ``LambaCDM`` with no radiation (T_CMB0=0)
are now 20x faster by using elliptic integrals for non-flat cases. [#7155]
* Distance calculations with ``FlatLambaCDM`` with no radiation (T_CMB0=0)
are now 20x faster by using the hypergeometric function solution
for this special case. [#7087]
* Age calculations with ``FlatLambdaCDM`` with no radiation (Tcmb0=0)
are now 1000x faster by using analytic solutions instead of integrating.
[#7117]
> astropy.io.ascii
* Latex reader now ignores ``\toprule``, ``\midrule``, and ``\bottomrule``
commands. [#7349]
* Added the RST (Restructured-text) table format and the fast version of the
RDB reader to the set of formats that are guessed by default. [#5578]
* The read trace (used primarily for debugging) now includes guess argument
sets that were skipped entirely e.g. for not supporting user-supplied kwargs.
All guesses thus removed from ``filtered_guess_kwargs`` are now listed as
"Disabled" at the beginning of the trace. [#5578]
* Emit a warning when reading an ECSV file without specifying the ``format``
and without PyYAML installed. Previously this silently fell through to
parsing as a basic format file and the file metadata was lost. [#7580]
* Optionally allow writing masked columns to ECSV with the mask explicitly
specified as a separate column instead of marking masked elements with ""
(empty string). This allows handling the case of a masked string column
with "" data rows. [#7481]
> astropy.io.misc
* Added support for saving all representation classes and many coordinate
frames to the asdf format. [#7079]
* Added support for saving models with units to the asdf format. [#7237]
* Added a new ``character_as_bytes`` keyword to the HDF5 Table reading
function to control whether byte string columns in the HDF5 file
are left as bytes or converted to unicode. The default is to read
as bytes (``character_as_bytes=True``). [#7024, #8017]
> astropy.io.fits
* ``HDUList.pop()`` now accepts string and tuple extension name
specifications. [#7236]
* Add an ``ignore_hdus`` keyword to ``FITSDiff`` to allow ignoring HDUs by
NAME when diffing two FITS files [#7538]
* Optionally allow writing masked columns to FITS with the mask explicitly
specified as a separate column instead of using the FITS standard of
certain embedded null values (``NaN`` for float, ``TNULL`` for integers).
This can be used to work around limitations in the FITS standard. [#7481]
* All time coordinates can now be written to and read from FITS binary tables,
including those with vectorized locations. [#7430]
* The ``fitsheader`` command line tool now supports a ``dfits+fitsort`` mode,
and the dotted notation for keywords (e.g. ``ESO.INS.ID``). [#7240]
* Fall back to reading arrays using mode='denywrite' if mode='readonly' fails
when using memory-mapping. This solves cases on some platforms when the
available address space was less than the file size (even when using memory
mapping). [#7926]
> astropy.modeling
* Add a ``Multiply`` model which preserves unit through evaluate, unlike
``Scale`` which is dimensionless. [#7210]
* Add a ``uses_quantity`` property to ``Model`` which allows introspection of if
the ``Model`` can accept ``Quantity`` objects. [#7417]
* Add a ``separability_matrix`` function which returns the correlation matrix
of inputs and outputs. [#7803]
* Fixed compatibility of ``JointFitter`` with the latest version of Numpy. [#7984]
* Add ``prior`` and ``posterior`` constraints to modeling parameters. These are
not used by any current fitters, but are provided to allow user code to
experiment with Bayesian fitters. [#7558]
> astropy.nddata
* ``NDUncertainty`` objects now have a ``quantity`` attribute for simple
conversion to quantities. [#7704]
* Add a ``bitmask`` module that provides functions for manipulating bitmasks
and data quality (DQ) arrays. [#7944]
> astropy.stats
* Add an ``astropy.stats.bls`` module with an implementation of the "box least
squares" periodogram that is commonly used for discovering transiting
exoplanets and eclipsing binaries. [#7391]
> astropy.table
* Added support for full use of ``Time`` mixin column for join, hstack, and
vstack table operations. [#6888]
* Added a new table index engine, ``SCEngine``, based on the Sorted Containers
package. [#7574]
* Add a new keyword argument ``serialize_method`` to ``Table.write`` to
control how ``Time`` and ``MaskedColumn`` columns are written. [#7481]
* Allow mixin columns to be used in table ``group`` and ``unique``
functions. This applies to both the key columns and the other data
columns. [#7712]
* Added support for stacking ``Column``, mixin column (e.g. ``Quantity``,
``Time``) or column-like objects. [#7674]
* Added support for inserting a row into a Table that has ``Time`` or
``TimeDelta`` column(s). [#7897]
> astropy.tests
* Added an option ``--readonly`` to the test command to change the
permissions on the temporary installation location to read-only. [#7598]
> astropy.time
* Allow array-valued ``Time`` object to be modified in place. [#6028]
* Added support for missing values (masking) to the ``Time`` class. [#6028]
* Added supper for a 'local' time scale (for free-running clocks, etc.),
and round-tripping to the corresponding FITS time scale. [#7122]
* Added `datetime.timedelta` format class for ``TimeDelta``. [#7441]
* Added ``strftime`` and ``strptime`` methods to ``Time`` class.
These methods are similar to those in the Python standard library
`time` package and provide flexible input and output formatting. [#7323]
* Added ``datetime64`` format to the ``Time`` class to support working with
``numpy.datetime64`` dtype arrays. [#7361]
* Add fractional second support for ``strftime`` and ``strptime`` methods
of ``Time`` class. [#7705]
* Added an ``insert`` method to allow inserting one or more values into a
``Time`` or ``TimeDelta`` object. [#7897]
* Remove timescale from string version of FITS format time string.
The timescale is not part of the FITS standard and should not be included.
This change may cause some compatibility issues for code that relies on
round-tripping a FITS format string with a timescale. Strings generated
from previous versions of this package are still understood but a
DeprecationWarning will be issued. [#7870]
> astropy.uncertainty
* This sub-package was added as a "preview" (i.e. API unstable), containing
the ``Distribution`` class and associated convenience functions. [#6945]
> astropy.units
* Add complex numbers support for ``Quantity._repr_latex_``. [#7676]
* Add ``thermodynamic_temperature`` equivalency to convert between
Jy/beam and "thermodynamic temperature" for cosmology. [#7054]
* Add millibar unit. [#7863]
* Add maggy and nanomaggy unit, as well as associated ``zero_point_flux``
equivalency. [#7891]
* ``AB`` and ``ST`` are now enabled by default, and have alternate names
``ABflux`` and ``STflux``. [#7891]
* Added ``littleh`` unit and associated ``with_H0`` equivalency. [#7970]
> astropy.visualization
* Added ``imshow_norm`` function, which combines imshow and creation of a
``ImageNormalize`` object. [#7785]
> astropy.visualization.wcsaxes
* Add support for setting ``set_separator(None)`` in WCSAxes to use default
separators. [#7570]
* Added two keyword argument options to ``CoordinateHelper.set_format_unit``:
``decimal`` can be used to specify whether to use decimal formatting for the
labels (by default this is False for degrees and hours and True otherwise),
and ``show_decimal_unit`` can be used to determine whether the units should be
shown for decimal labels. [#7318]
* Added documentation for ``transform=`` and ``coord_meta=``. [#7698]
* Allow ``coord_meta=`` to optionally include ``format_unit=``. [#7848]
* Add support for more rcParams related to the grid, ticks, and labels, and
should work with most built-in Matplotlib styles. [#7961]
* Improved rendering of outward-facing ticks. [#7961]
* Add support for ``tick_params`` (which is a standard Matplotlib
function/method) on both the ``WCSAxes`` class and the individual
``CoordinateHelper`` classes. Note that this is provided for compatibility
with Matplotlib syntax users may be familiar with, but it is not the
preferred way to change settings. Instead, methods such as ``set_ticks``
should be preferred. [#7969]
* Moved the argument ``exclude_overlapping`` from ``set_ticks`` to
``set_ticklabel``. [#7969]
* Added a ``pad=`` argument to ``set_ticklabel`` to provide a way to control
the padding between ticks and tick labels. [#7969]
* Added support for setting the tick direction in ``set_ticks`` using the
``direction=`` keyword argument. [#7969]
> astropy.wcs
* Map ITRS frames to terrestrial WCS coordinates. This will make it possible to
use WCSAxes to make figures that combine both celestial and terrestrial
features. An example is plotting the coordinates of an astronomical transient
over an all- sky satellite image to illustrate the position relative to the
Earth at the time of the event. The ITRS frame is identified with WCSs that
use the ``TLON-`` and ``TLAT-`` coordinate types. There are several examples
of WCSs where this syntax is used to describe terrestrial coordinate systems:
Section 7.4.1 of `WCS in FITS "Paper II" <http://adsabs.harvard.edu/abs/2002A%26A...395.1077C>`_
and the `WCSTools documentation <http://tdc-www.harvard.edu/software/wcstools/wcstools.multiwcs.html>`_.
[#6990]
* Added the abstract base class for the low-level WCS API described in APE 14
(https://doi.org/10.5281/zenodo.1188875). [#7325]
* Add ``WCS.contains()`` function to check if the WCS footprint contains a given sky coordinate. [#7273]
* Added the abstract base class for the high-level WCS API described in APE 14
(https://doi.org/10.5281/zenodo.1188875). [#7325]
* Added the high-level wrapper class for low-level WCS objects as described in
APE 14 (https://doi.org/10.5281/zenodo.1188875). [#7326]
* Added a new property ``WCS.has_distortion``. [#7326]
* Deprecated ``_naxis1`` and ``_naxis2`` in favor of ``pixel_shape``. [#7973]
* Added compatibility to wcslib version 6. [#8093]
+ API Changes
> astropy.convolution
* ``kernel`` can now be a tuple. [#7561]
* Not technically an API changes, however, the docstring indicated that ``boundary=None``
was the default when actually it is ``boundary='fill'``. The docstring has been corrected,
however, someone may interpret this as an API change not realizing that nothing has actually
changed. [#7293]
* ``interpolate_replace_nans()`` can no longer accept the keyword argument
``preserve_nan``. It is explicitly set to ``False``. [#8088]
> astropy.coordinates
* Fixed ``astropy.coordinates.concatenate`` to include velocity data in the
concatenation. [#7922]
* Changed the name of the single argument to ``Frame.realize_frame()`` from the
(incorrect) ``representation_type`` to ``data``. [#7923]
* Negative parallaxes passed to ``Distance()`` now raise an error by default
(``allow_negative=False``), or are converted to NaN values with a warning
(``allow_negative=True``). [#7988]
* Negating a ``SphericalRepresentation`` object now changes the angular
coordinates (by rotating 180º) instead of negating the distance. [#7988]
* Creation of new frames now generally creates copies of frame attributes,
rather than inconsistently either copying or making references. [#8204]
* The frame class method ``is_equivalent_frame`` now checks for equality of
components to determine if a frame is the same when it has frame attributes
that are representations, rather than checking if they are the same
object. [#8218]
> astropy.io.ascii
* If a fast reader is explicitly selected (e.g. ``fast_reader='force'``) and
options which are incompatible with the fast reader are provided
(e.g. ``quotechar='##'``) then now a ``ParameterError`` exception will be
raised. [#5578]
* The fast readers will now raise ``InconsistentTableError`` instead of
``CParserError`` if the number of data and header columns do not match.
[#5578]
* Changed a number of ``ValueError`` exceptions to ``InconsistentTableError``
in places where the exception is related to parsing a table which is
inconsistent with the specified table format. Note that
``InconsistentTableError`` inherits from ``ValueError`` so no user code
changes are required. [#7425]
> astropy.io.fits
* The ``fits.table_to_hdu()`` function will translate any column ``format``
attributes to a TDISPn format string, if possible, and store it as a TDISPn
keyword in the ``HDU`` header. [#7226]
> astropy.modeling
* Change the order of the return values from ``FittingWithOutlierRemoval``,
such that ``fitted_model`` comes first, for consistency with other fitters.
For the second value, return only a boolean outlier ``mask``, instead of the
previous ``MaskedArray`` (which included a copy of the input data that was
both redundant and inadvertently corrupted at masked points). Return a
consistent type for the second value when ``niter=0``. [#7407]
* Set the minimum value for the ``bolometric_flux`` parameter of the
``BlackBody1D`` model to zero. [#7045]
> astropy.nddata
* Add two new uncertainty classes, ``astropy.nddata.VarianceUncertainty`` and
``astropy.nddata.InverseVariance``. [#6971]
> astropy.stats
* String values can now be used for the ``cenfunc`` and ``stdfunc``
keywords in the ``SigmaClip`` class and ``sigma_clip`` and
``sigma_clipped_stats`` functions. [#7478]
* The ``SigmaClip`` class and ``sigma_clip`` and
``sigma_clipped_stats`` functions now have a ``masked`` keyword,
which can be used to return either a masked array (default) or an
ndarray with the min/max values. [#7478]
* The ``iters`` keyword has been renamed (and deprecated) to
``maxiters`` in the ``SigmaClip`` class and ``sigma_clip`` and
``sigma_clipped_stats`` functions. [#7478]
> astropy.table
* ``Table.read()`` on a FITS binary table file will convert any TDISPn header
keywords to a Python formatting string when possible, and store it in the
column ``format`` attribute. [#7226]
* No values provided to stack will now raise ``ValueError`` rather than
``TypeError``. [#7674]
> astropy.tests
* ``from astropy.tests.helper import *`` no longer includes
``quantity_allclose``. However,
``from astropy.tests.helper import quantity_allclose`` would still work.
[#7381]
* ``warnings_to_ignore_by_pyver`` option in
``enable_deprecations_as_exceptions()`` now takes ``None`` as key.
Any deprecation message that is mapped to ``None`` will be ignored
regardless of the Python version. [#7790]
> astropy.time
* Added the ability to use ``local`` as time scale in ``Time`` and
``TimeDelta``. [#6487]
* Comparisons, addition, and subtraction of ``Time`` instances with non-time
instances will now return ``NotImplemented`` rather than raise the
``Time``-specific ``OperandTypeError``. This will generally lead to a
regular ``TypeError``. As a result, ``OperandTypeError`` now only occurs if
the operation is between ``Time`` instances of incompatible type or scale.
[#7584]
> astropy.units
* In ``UnitBase.compose()``, if a sequence (list|tuple) is passed in to
``units``, the default for ``include_prefix_units`` is set to
`True`, so that no units get ignored. [#6957]
* Negative parallaxes are now converted to NaN values when using the
``parallax`` equivalency. [#7988]
> astropy.utils
* ``InheritDocstrings`` now also works on class properties. [#7166]
* ``diff_values()``, ``report_diff_values()``, and ``where_not_allclose()``
utility functions are moved from ``astropy.io.fits.diff``. [#7444]
* ``invalidate_caches()`` has been removed from the
``astropy.utils.compat`` namespace, use it directly from ``importlib``. [#7872]
> astropy.visualization
* In ``ImageNormalize``, the default for ``clip`` is set to ``True``. [#7800]
* Changed ``AsymmetricPercentileInterval`` and ``MinMaxInterval`` to
ignore NaN values in arrays. [#7360]
* Automatically default to using ``grid_type='contours'`` in WCSAxes when using
a custom ``Transform`` object if the transform has no inverse. [#7847]
+ Performance Improvements
* Reduced import time by more cautious use of the standard library. [#7647]
> astropy.convolution
* Major performance overhaul to ``convolve()``. [#7293]
* ``convolve()``: Boundaries ``fill``, ``extend``, and ``wrap`` now use a single
implementation that pads the image with the correct boundary values before convolving.
The runtimes of these three were significantly skewed. They now have
equivalent runtimes that are also faster than before due to performant contiguous
memory access. However, this does increase the memory footprint as an entire
new image array is required plus that needed for the padded region.[#7293]
* ``convolve()``: Core computation ported from Cython to C. Several optimization
techniques have been implemented to achieve performance gains, e.g. compiler
hoisting, and vectorization, etc. Compiler optimization level ``-O2`` required for
hoisting and ``-O3`` for vectorization. [#7293]
* ``convolve()``: ``nan_treatment=‘interpolate’`` was slow to compute irrespective of
whether any NaN values exist within the array. The input array is now
checked for NaN values and interpolation is disabled if non are found. This is a
significant performance boost for arrays without NaN values. [#7293]
> astropy.coordinates
* Sped up creating SkyCoord objects by a factor of ~2 in some cases. [#7615]
* Sped up getting xyz vectors from ``CartesianRepresentation`` (which
is used a lot internally). [#7638]
* Sped up transformations and some representation methods by replacing
python code with (compiled) ``erfa`` ufuncs. [#7639]
* Sped up adding differential (velocity) data to representations by a factor of
~20, which improves the speed of frame and SkyCoord initialization. [#7924]
* Refactored ``SkyCoord`` initializer to improve performance and code clarity.
[#7958]
* Sped up initialization of ``Longitude`` by ~40%. [#7616]
> astropy.stats
* The ``SigmaClip`` class and ``sigma_clip`` and
``sigma_clipped_stats`` functions are now significantly faster. [#7478]
* A Cython implementation for `astropy.stats.kuiper_two` and a vectorized
implementation for `astropy.stats.kuiper_false_positive_probability` have
been added, speeding up both functions. [#8104]
> astropy.units
* Sped up creating new composite units, and raising units to some power
[#7549, #7649]
* Sped up Unit.to when target unit is the same as the original unit.
[#7643]
* Lazy-load ``scipy.special`` to shorten ``astropy.units`` import time. [#7636]
> astropy.visualization
* Significantly sped up drawing of contours in WCSAxes. [#7568]
+ Bug Fixes
> astropy.convolution
* Fixed bug in ``convolve_fft`` where masked input was copied with
``numpy.asarray`` instead of ``numpy.asanyarray``.
``numpy.asarray`` removes the mask subclass causing
``numpy.ma.ismasked(input)`` to fail, causing ``convolve_fft``
to ignore all masked input. [#8137]
* Remove function side-effects of input data from ``convolve_fft``.
It was possible for input data to remain modified if particular exceptions
were raised. [#8152]
> astropy.coordinates
* ``EarthLocation.of_address`` now uses the OpenStreetMap geocoding API by
default to retrieve coordinates, with the Google API (which now requires an
API key) as an option. [#7918]
* Fixed a bug that caused frame objects with NaN distances to have NaN sky
positions, even if valid sky coordinates were specified. [#7988]
* Fixed ``represent_as()`` to not round-trip through cartesian if the same
representation class as the instance is passed in. [#7988]
> astropy.io.ascii
* Fixed a problem when ``guess=True`` that ``fast_reader`` options
could be dropped after the first fast reader class was tried. [#5578]
* Units in CDS-formatted tables are now parsed correctly by the units
module. [#7348]
> astropy.io.misc
* Fixed bug when writing a table with masked columns to HDF5. Previously
the mask was being silently dropped. If the ``serialize_meta`` option is
enabled the data mask will now be written as an additional column and the
masked columns will round-trip correctly. [#7481]
* Fixed a bug where writing to HDF5 failed for for tables with columns of
unicode strings. Now those columns are first encoded to UTF-8 and
written as byte strings. [#7024, #8017]
* Fixed a bug with serializing the bounding_box of models initialized
with ``Quantities`` . [#8052]
> astropy.io.fits
* Added support for ``copy.copy`` and ``copy.deepcopy`` for ``HDUList``. [#7218]
* Override ``HDUList.copy()`` to return a shallow HDUList instance. [#7218]
> astropy.modeling
* Fix behaviour of certain models with units, by making certain unit-related
attributes readonly. [#7210]
* Fixed an issue with validating a ``bounding_box`` whose items are
``Quantities``. [#8052]
* Fix ``Moffat1D`` and ``Moffat2D`` derivatives. [#8108]
> astropy.nddata
* Fixed rounding behavior in ``overlap_slices`` for even-sized small
arrays. [#7859]
* Added support for pickling ``NDData`` instances that have an uncertainty.
[#7383]
> astropy.stats
* Fix errors in ``kuiper_false_positive_probability``. [#7975]
> astropy.tests
* Fixing bug that prevented to run the doctests on only a single rst documentation
file rather than all of them. [#8055]
> astropy.time
* Fix a bug when setting a ``TimeDelta`` array item with plain float value(s).
This was always interpreted as a JD (day) value regardless of the
``TimeDelta`` format. [#7990]
> astropy.units
* To simplify fast creation of ``Quantity`` instances from arrays, one can now
write ``array << unit`` (equivalent to ``Quantity(array, unit, copy=False)``).
If ``array`` is already a ``Quantity``, this will convert the quantity to the
requested units; in-place conversion can be done with ``quantity <<= unit``.
[#7734]
> astropy.utils
* Fixed a bug due to which ``report_diff_values()`` was reporting incorrect
number of differences when comparing two ``numpy.ndarray``. [#7470]
* The download progress bar is now only displayed in terminals, to avoid
polluting piped output. [#7577]
* Ignore URL mirror caching when there is no internet. [#8163]
> astropy.visualization
* Right ascension coordinates are now shown in hours by default, and the
``set_format_unit`` method on ``CoordinateHelper`` now works correctly
with angle coordinates. [#7215]
+ Other Changes and Additions
* The documentation build now uses the Sphinx configuration from sphinx-astropy
rather than from astropy-helpers. [#7139]
* Versions of Numpy <1.13 are no longer supported. [#7058]
* Running tests now suppresses the output of the installation stage by default,
to allow easier viewing of the test results. To re-enable the output as
before, use ``python setup.py test --verbose-install``. [#7512]
* The ERFA functions are now wrapped in ufuncs instead of custom C code,
leading to some speed improvements, and setting the stage for allowing
overrides with ``__array_ufunc__``. [#7502]
* Updated the bundled CFITSIO library to 3.450. See
``cextern/cfitsio/docs/changes.txt`` for additional information. [#8014]
* The ``representation`` keywords in coordinate frames are now deprecated in
favor of the ``representation_type`` keywords (which are less
ambiguously named). [#8119]
-------------------------------------------------------------------
Wed Dec 5 18:30:30 CET 2018 - mcepl@suse.com
- Update to 3.0.5
* Update to 3.* is a large step, which contains these main
improvements:
- Full support for velocities in astropy.coordinates
- Support for position updates based on source motion for
SkyCoord objects
- Context managers for versioned constants
- Support for quantities in scipy special functions
- showtable command line script
- Lossless writing and reading mixin columns to HDF5 and
FITS
- Support for FITS time standard
- FITS table performance enhancements
- False alarm probabilities in astropy.stats.LombScargle
- Reading large ASCII files in chunks
- Astropy now only supports Python 3
- pytest plugins moved to external packages
Full changelog is available at http://docs.astropy.org/en/stable/changelog.html
-------------------------------------------------------------------
Fri Jan 5 09:01:00 UTC 2018 - alarrosa@suse.com
- Update to astropy 2.0.3
* Bugfixes:
* astropy.coordinates
- Ecliptic frame classes now support attributes v_x, v_y, v_z when using
with a Cartesian representation.
- Added a nicer error message when accidentally calling
frame.representation instead of frame.data in the context of methods
that use ._apply().
- Creating a new SkyCoord from a list of multiple SkyCoord objects now
yield the correct type of frame, and works at all for non-equatorial
frames.
- Improved accuracy of velocity calculation in
EarthLocation.get_gcrs_posvel.
- Improved accuracy of radial velocity corrections in
SkyCoord.radial_velocity_correction`.
- The precision of ecliptic frames is now much better, after removing the
nutation from the rotation and fixing the computation of the position
of the Sun.
* astropy.extern
- Version 0.2.1 of pytest-astropy is included as an external package.
* astropy.io.fits
- Fix writing the result of fitsdiff to file with --output-file.
- Fix a minor bug where FITS_rec instances can not be indexed with tuples
and other sequences that end up with a scalar.
* astropy.io.misc
- Fix ImportError when hdf5 is imported first in a fresh Python
interpreter in Python 3.
* astropy.nddata
- Suppress errors during WCS creation in CCDData.read().
- Fixed a problem with CCDData.read when the extension wasn't given and
the primary HDU contained no data but another HDU did. In that case the
header were not correctly combined.
* astropy.stats
- Fixed an issue where the biweight statistics functions would sometimes
cause runtime underflow/overflow errors for float32 input arrays.
* astropy.table
- Fixed a problem when printing a table when a column is deleted and
garbage-collected, and the format function caching mechanism happens to
re-use the same cache key.
- Fixed a problem when comparing a unicode masked column (on left side)
to a bytes masked column (on right side).
- Fixed a problem in comparing masked columns in bytes and unicode when
the unicode had masked entries.
* astropy.tests
- Fixed a bug that causes tests for rst files to not be run on certain
platforms.
- Fixed a bug that caused the doctestplus plugin to not work nicely with
the hypothesis package.
- Fixed a bug that meant that the data.astropy.org mirror could not be
used when using --remote-data=astropy.
- Support compatibility with new pytest-astropy plugins.
- When testing, astropy (or the package being tested) is now installed to
a temporary directory instead of copying the build. This allows entry
points to work correctly.
* astropy.time
- Initialization of Time instances now is consistent for all formats to
ensure that -0.5 <= jd2 < 0.5.
* astropy.units
- Ensure that Quantity slices can be set with objects that have a unit
attribute (such as Column).
* astropy.utils
- download_files_in_parallel now respects the given timeout value.
- Fixed bugs in remote data handling and also in IERS unit test related
to path URL, and URI normalization on Windows.
- Fixed a bug that caused get_pkg_data_fileobj to not work correctly when
used with non-local data from inside packages.
- Make sure get_pkg_data_fileobj fails if the URL can not be read, and
correctly falls back on the mirror if necessary.
- Fix the finddiff option in find_current_module to properly deal with
submodules.
- Fixed pyreadline import in utils.console.isatty for older IPython
versions on Windows.
* astropy.visualization
- Fixed the vertical orientation of the fits2bitmap output bitmap image
to match that of the FITS image.
- Added a workaround for a bug in matplotlib so that the fits2bitmap
script generates the correct output file type.
* Other Changes and Additions
* No longer require LaTeX to build the documentation locally and use
mathjax instead.
* Fixed broken links in the documentation.
* Ensured that all tests use the Astropy data mirror if needed.
-------------------------------------------------------------------
Thu Dec 14 09:47:18 UTC 2017 - alarrosa@suse.com
- Remove test bcond since it wasn't really used at all
-------------------------------------------------------------------
Mon Dec 11 15:34:36 UTC 2017 - alarrosa@suse.com
- Update to astropy 2.0.2 . Astropy 2.0 is a major release that adds
significant new functionality since the 1.3.x series of releases:
* New unit support for most models
* New image class CCDData added
* Experimental velocity support in astropy.coordinates
* New functionality in astropy.stats
* Easier use of efficient bytestring Table columns in Python 3
* New way to instantiate a BinTableHDU directly from a Table
* New printdiff convenience function for FITS
* New molar_mass_amu unit equivalency
* Store astropy core object types in ASCII ECSV table file
* Improvements to astropy.convolution
* No relativistic species by default in cosmological models
* Renamed/removed functionality
The full changelog can be read at
http://docs.astropy.org/en/stable/changelog.html .
-------------------------------------------------------------------
Fri Jun 23 12:26:54 UTC 2017 - alarrosa@suse.com
- The latest astropy version requires liberfa 1.3.0 even if
it builds fine with 1.2.0 since it requires the eraEceq06 symbol.
-------------------------------------------------------------------
Thu May 25 11:16:57 UTC 2017 - toddrme2178@gmail.com
- Implement single-spec version
- Fix source URL
- Update to version 1.3.2
* Lots of changes (see CHANGES.rst for details).
-------------------------------------------------------------------
Fri Nov 18 21:38:50 UTC 2016 - asterios.dramis@gmail.com
- Replace cfitsio-devel, liberfa-devel, libexpat-devel and
libwcs-devel build requirements with pkgconfig() ones.
-------------------------------------------------------------------
Sat Jul 16 22:45:37 UTC 2016 - asterios.dramis@gmail.com
- Update to version 1.2.1:
* Lots of changes (see CHANGES.rst for details).
- Added new build requirements python-Jinja2, python-PyYAML,
python-bleach, python-jupyter_ipython, python-mpmath,
python-psutil and python-scikit-image.
- Updated python-numpy-devel build requirement and python-numpy
runtime requirement to version >= 1.7.0.
- Updated python-six build and runtime requirement to version
>= 1.7.3.
- Removed not needed build requirements python-astropy-helpers and
python-numpy (indirect dependency).
- Removed not needed runtime requirements python-astropy-helpers.
- Added new Recommend entries python-PyYAML and
python-scikit-image.
-------------------------------------------------------------------
Tue Feb 2 19:09:54 UTC 2016 - toddrme2178@gmail.com
- Add python-astropy-helpers and python-pandas dependencies.
-------------------------------------------------------------------
Thu Jan 28 13:14:55 UTC 2016 - toddrme2178@gmail.com
- update to version 1.1.1
+ New Features
- ``astropy.io.registry``
* Allow ``pathlib.Path`` objects (available in Python 3.4 and later) for
specifying the file name in registry read / write functions. [#4405]
- ``astropy.utils``
* ``console.human_file_size`` now accepts quantities with byte-equivalent
units [#4373]
+ Bug Fixes
- ``astropy.analytic_functions``
* Fixed the blackbody functions' handling of overflows on some platforms
(Windows with MSVC, older Linux versions) with a buggy ``expm1`` function.
[#4393]
- ``astropy.io.fits``
* Fixed an bug where updates to string columns in FITS tables were not saved
on Python 3. [#4452]
+ Other Changes and Additions
- Updated bundled astropy-helpers to v1.1.1. [#4413]
- update to version 1.1
+ New Features
- ``astropy.config``
- Added new tools ``set_temp_config`` and ``set_temp_cache`` which can be
used either as function decorators or context managers to temporarily
use alternative directories in which to read/write the Astropy config
files and download caches respectively. This is especially useful for
testing, though ``set_temp_cache`` may also be used as a way to provide
an alternative (application specific) download cache for large data files,
rather than relying on the default cache location in users' home
directories. [#3975]
- ``astropy.constants``
- Added the Thomson scattering cross-section. [#3839]
- ``astropy.convolution``
- Added Moffat2DKernel. [#3965]
- ``astropy.coordinates``
- Added ``get_constellation`` function and ``SkyCoord.get_constellation``
convenience method to determine the constellation that a coordinate
is in. [#3758]
- Added ``PrecessedGeocentric`` frame, which is based on GCRS, but precessed
to a specific requested mean equinox. [#3758]
- Added ``Supergalactic`` frame to support de Vaucouleurs supergalactic
coordinates. [#3892]
- ``SphericalRepresentation`` now has a ``._unit_representation`` class attribute to specify
an equivalent UnitSphericalRepresentation. This allows subclasses of
representations to pair up correctly. [#3757]
- Added functionality to support getting the locations of observatories by
name. See ``astropy.coordinates.EarthLocation.of_site``. [#4042]
- Added ecliptic coordinates, including ``GeocentricTrueEcliptic``,
``BarycentricTrueEcliptic``, and ``HeliocentricTrueEcliptic``. [#3749]
- ``astropy.cosmology``
- Add Planck 2015 cosmology [#3476]
- Distance calculations now > 20-40x faster for the supplied
cosmologies due to implementing Cython scalar versions of
``FLRW.inv_efunc``.[#4127]
- ``astropy.io.ascii``
- Automatically use ``guess=False`` when reading if the file ``format`` is
provided and the format parameters are uniquely specified. This update
also removes duplicate format guesses to improve performance. [#3418]
- Calls to ascii.read() for fixed-width tables may now omit one of the keyword
arguments ``col_starts`` or ``col_ends``. Columns will be assumed to begin and
end immediately adjacent to each other. [#3657]
- Add a function ``get_read_trace()`` that returns a traceback of the
attempted read formats for the last call to ``astropy.io.ascii.read``. [#3688]
- Supports LZMA decompression via ``get_readable_fileobj`` [#3667]
- Allow ``-`` character is Sextractor format column names. [#4168]
- Improve DAOphot reader to read multi-aperture files [#3535, #4207]
- ``astropy.io.fits``
- Support reading and writing from bzip2 compressed files. i.e. ``.fits.bz2``
files. [#3789]
- Included a new command-line script called ``fitsinfo`` to display
a summary of the HDUs in one or more FITS files. [#3677]
- ``astropy.io.misc``
- Support saving all meta information, description and units of tables and columns
in HDF5 files [#4103]
- ``astropy.io.votable``
- A new method was added to ``astropy.io.votable.VOTable``,
``get_info_by_id`` to conveniently find an ``INFO`` element by its
``ID`` attribute. [#3633]
- Instances in the votable tree now have better ``__repr__``
methods. [#3639]
- ``astropy.logger.py``
- Added log levels (e.g., DEBUG, INFO, CRITICAL) to ``astropy.log`` [#3947]
- ``astropy.modeling``
- Added a new ``Parameter.validator`` interface for setting a validation
method on individual model parameters. See the ``Parameter``
documentation for more details. [#3910]
- The projection classes that are named based on the 3-letter FITS
WCS projections (e.g. ``Pix2Sky_TAN``) now have aliases using
longer, more descriptive names (e.g. ``Pix2Sky_Gnomonic``).
[#3583]
- All of the standard FITS WCS projection types have been
implemented in ``astropy.modeling.projections`` (by wrapping
WCSLIB). [#3906]
- Added ``Sersic1D`` and ``Sersic2D`` model classes. [#3889]
- Added the Voigt profile to existing models. [#3901]
- Added ``bounding_box`` property and ``render_model`` function [#3909]
- ``astropy.nddata``
- Added ``block_reduce`` and ``block_replicate`` functions. [#3453]
- ``extract_array`` now offers different options to deal with array
boundaries [#3727]
- Added a new ``Cutout2D`` class to create postage stamp image cutouts
with optional WCS propagation. [#3823]
- ``astropy.stats``
- Added ``sigma_lower`` and ``sigma_upper`` keywords to
``sigma_clip`` to allow for unsymmetric clipping. [#3595]
- Added ``cenfunc``, ``stdfunc``, and ``axis`` keywords to
``sigma_clipped_stats``. [#3792]
- ``sigma_clip`` automatically masks invalid input values (NaNs, Infs) before
performing the clipping [#4051]
- Added the ``histogram`` routine, which is similar to ``np.histogram`` but
includes several additional options for automatic determination of optimal
histogram bins. Associated helper routines include ``bayesian_blocks``,
``friedman_bin_width``, ``scott_bin_width``, and ``knuth_bin_width``.
This functionality was ported from the astroML_ library. [#3756]
- Added the ``bayesian_blocks`` routine, which implements a dynamic algorithm
for locating change-points in various time series. [#3756]
- A new function ``poisson_conf_interval()`` was added to allow easy calculation
of several standard formulae for the error bars on the mean of a Poisson variable
estimated from a single sample.
- ``astropy.table``
- ``add_column()`` and ``add_columns()`` now have ``rename_duplicate``
option to rename new column(s) rather than raise exception when its name
already exists. [#3592]
- Added ``Table.to_pandas`` and ``Table.from_pandas`` for converting to/from
pandas dataframes. [#3504]
- Initializing a ``Table`` with ``Column`` objects no longer requires
that the column ``name`` attribute be defined. [#3781]
- Added an ``info`` property to ``Table`` objects which provides configurable
summary information about the table and its columns. [#3731]
- Added an ``info`` property to column classes (``Column`` or mixins). This
serves a dual function of providing configurable summary information about
the column, and acting as a manager of column attributes such as
name, format, or description. [#3731]
- Updated table and column representation to use the ``dtype_info_name``
function for the dtype value. Removed the default "masked=False"
from the table representation. [#3868, #3869]
- Updated row representation to be consistent with the corresponding
table representation for that row. Added HTML representation so a
row displays nicely in IPython notebook.
- Added a new table indexing engine allowing for the creation of
indices on one or more columns of a table using ``add_index``. These
indices enable new functionality such as searching for rows by value
using ``loc`` and ``iloc``, as well as increased performance for
certain operations. [#3915]
- Added capability to include a structured array or recarray in a table
as a mixin column. This allows for an approximation of nested tables.
[#3925]
- Added ``keep_byteorder`` option to ``Table.as_array()``. See the
"API Changes" section below. [#4080]
- Added a new method ``Table.replace_column()`` to replace an existing
column with a new data column. [#4090]
- Added a ``tableclass`` option to ``Table.pformat()`` to allow specifying
a list of CSS classes added to the HTML table. [#4131]
- New CSS for jsviewer table [#2917, #2982, #4174]
- Added a new ``Table.show_in_notebook`` method that shows an interactive view
of a Table (similar to ``Table.show_in_browser(jsviewer=True)``) in an
Python/Jupyter notebook. [#4197]
- ``astropy.tests``
- Added new test config options, ``config_dir`` and ``cache_dir`` (these
can be edited in ``setup.cfg`` or as extra command-line options to
py.test) for setting the locations to use for the Astropy config files
and download caches (see also the related ``set_temp_config/cache``
features added in ``astropy.config``). [#3975]
- ``astropy.time``
- Add support for FITS standard time strings. [#3547]
- Allow the ``format`` attribute to be updated in place to change the
default representation of a ``Time`` object. [#3673]
- Add support for shape manipulation (reshape, ravel, etc.). [#3224]
- Add argmin, argmax, argsort, min, max, ptp, sort methods. [#3581]
- Add ``Time.to_datetime`` method for converting ``Time`` objects to
timezone-aware datetimes. [#4119]
- ``astropy.units``
- Added furlong to imperial units. [#3529]
- Added mil to imperial units. [#3716]
- Added stone to imperial units. [#4192]
- Added Earth Mass (``M_earth``) and Jupiter mass (``M_jup``) to units [#3907]
- Added support for functional units, in particular the logarithmic ones
``Magnitude``, ``Decibel``, and ``Dex``. [#1894]
- Quantities now work with the unit support in matplotlib. See
:ref:`plotting-quantities`. [#3981]
- ``astropy.utils``
- Added new ``OrderedDescriptor`` and ``OrderedDescriptorContainer`` utility
classes that make it easier to implement classes with declarative APIs,
wherein class-level attributes have an inherit "ordering" to them that is
specified by the order in which those attributes are defined in the class
declaration (by defining them using special descriptors that have
``OrderedDescriptor`` as a base class). See the API documentation for
these classes for more details. Coordinate frames and models now use this
interface. [#3679]
- The ``get_pkg_data_*`` functions now take an optional ``package`` argument
which allows specifying any package to read package data filenames or
content out of, as opposed to only being able to use data from the package
that the function is called from. [#4079]
- Added function ``dtype_info_name`` to the ``data_info`` module to provide
the name of a ``dtype`` for human-readable informational purposes. [#3868]
- Added ``classproperty`` decorator--this is to ``property`` as
``classmethod`` is to normal instance methods. [#3982]
- ``iers.open`` now handles network URLs, as well as local paths. [#3850]
- The ``astropy.utils.wraps`` decorator now takes an optional
``exclude_args`` argument not shared by the standard library ``wraps``
decorator (as it is unique to the Astropy version's ability of copying
the wrapped function's argument signature). ``exclude_args`` allows
certain arguments on the wrapped function to be excluded from the signature
of the wrapper function. This is particularly useful when wrapping an
instance method as a function (to exclude the ``self`` argument). [#4017]
- ``get_readable_fileobj`` can automatically decompress LZMA ('.xz')
files using the ``lzma`` module of Python 3.3+ or, when available, the
``backports.lzma`` package on earlier versions. [#3667]
- The ``resolve_name`` utility now accepts any number of additional
positional arguments that are automatically dotted together with the
first ``name`` argument. [#4083]
- Added ``is_url_in_cache`` for resolving paths to cached files via URLS
and checking if files exist. [#4095]
- Added a ``step`` argument to the ``ProgressBar.map`` method to give
users control over the update frequency of the progress bar. [#4191]
- ``astropy.visualization``
- Added a function / context manager ``quantity_support`` for enabling
seamless ploting of ``Quantity`` instances in matplotlib. [#3981]
- Added the ``hist`` function, which is similar to ``plt.hist`` but
includes several additional options for automatic determination of optimal
histogram bins. This functionality was ported from the astroML_ library.
[#3756]
- ``astropy.wcs``
- The included version of wcslib has been upgraded to 5.10. [#4239]
The minimum required version of wcslib in the 4.x series remains 4.24.
The minimum required version of wcslib in the 5.x series is
5.8. Building astropy against a wcslib 5.x prior to 5.8
will raise an ``ImportError`` when ``astropy.wcs`` is imported.
The wcslib changes relevant to astropy are:
- The FITS headers returned by ``astropy.wcs.WCS.to_header`` and
``astropy.wcs.WCS.to_header_string`` now include values with
more precision. This will result in numerical differences in
your results if you convert ``astropy.wcs.WCS`` objects to FITS
headers and use the results.
- ``astropy.wcs.WCS`` now recognises the ``TPV``, ``TPD``,
``TPU``, ``DSS``, ``TNX`` and ``ZPX`` polynomial distortions.
- Added relaxation flags to allow ``PC0i_0ja``, ``PV0j_0ma``, and
``PS0j_0ma`` (i.e. with leading zeroes on the index).
- Tidied up error reporting, particularly relating to translating
status returns from lower-level functions.
- Changed output formatting of floating point values in
``to_header``.
- Enhanced text representation of ``WCS`` objects. [#3604]
- The ``astropy.tests.helper`` module is now part of the public API (and has a
documentation page). This module was in previous releases of astropy,
but was not considered part of the public API until now. [#3890]
- There is a new function ``astropy.online_help`` to search the
astropy documentation and display the result in a web
browser. [#3642]
+ API changes
- ``astropy.cosmology``
- ``FLRW._tfunc`` and ``FLRW._xfunc`` are marked as deprecated. Users
should use the new public interfaces ``FLRW.lookback_time_integrand``
and ``FLRW.abs_distance_integrand`` instead. [#3767]
- ``astropy.io.ascii``
- The default header line processing was made to be consistent with data line
processing in that it now ignores blank lines that may have whitespace
characters. Any code that explicitly specifies a ``header_start`` value
for parsing a file with blank lines in the header containing whitespace will
need to be updated. [#2654]
- ``astropy.io.fits``
- The ``uint`` argument to ``fits.open`` is now True by default; that is,
arrays using the FITS unsigned integer convention will be detected, and
read as unsigned integers by default. A new config option for
``io.fits``, ``enable_uint``, can be changed to False to revert to the
original behavior of ignoring the ``uint`` convention unless it is
explicitly requested with ``uint=True``. [#3916]
- The ``ImageHDU.NumCode`` and ``ImageHDU.ImgCode`` attributes (and same
for other classes derived from ``_ImageBaseHDU``) are deprecated. Instead,
the ``astropy.io.fits`` module-level constants ``BITPIX2DTYPE`` and
``DTYPE2BITPIX`` can be used. [#3916]
- ``astropy.modeling``
- Note: Comparisons of model parameters with array-like values now
yields a Numpy boolean array as one would get with normal Numpy
array comparison. Previously this returned a scalar True or False,
with True only if the comparison was true for all elements compared,
which could lead to confusing circumstances. [#3912]
- Using ``model.inverse = None`` to reset a model's inverse to its
default is deprecated. In the future this syntax will explicitly make
a model not have an inverse (even if it has a default). Instead, use
``del model.inverse`` to reset a model's inverse to its default (if it
has a default, otherwise this just deletes any custom inverse that has
been assigned to the model and is still equivalent to setting
``model.inverse = None``). [#4236]
- Adds a ``model.has_user_inverse`` attribute which indicates whether or not
a user has assigned a custom inverse to ``model.inverse``. This is just
for informational purposes, for example, for software that introspects
model objects. [#4236]
- Renamed the parameters of ``RotateNative2Celestial`` and
``RotateCelestial2Native`` from ``phi``, ``theta``, ``psi`` to
``lon``, ``lat`` and ``lon_pole``. [#3578]
- Deprecated the ``Pix2Sky_AZP.check_mu`` and ``Sky2Pix_AZP.check_mu``
methods (these were obscure "accidentally public" methods that were
probably not used by anyone). [#3910]
- Added a phase parameter to the Sine1D model. [#3807]
- ``astropy.stats``
- Renamed the ``sigma_clip`` ``sig`` keyword as ``sigma``. [#3595]
- Changed the ``sigma_clip`` ``varfunc`` keyword to ``stdfunc``. [#3595]
- Renamed the ``sigma_clipped_stats`` ``mask_val`` keyword to
``mask_value``. [#3595]
- Changed the default ``iters`` keyword value to 5 in both the
``sigma_clip`` and ``sigma_clipped_stats`` functions. [#4067]
- ``astropy.table``
- ``Table.as_array()`` always returns a structured array with each column in
the system's native byte order. The optional ``keep_byteorder=True``
option will keep each column's data in its original byteorder. [#4080]
- ``Table.simple_table()`` now creates tables with int64 and float64 types
instead of int32 and float64. [#4114]
- ``astropy.time``
- The ``astropy_time`` attribute and time format has been removed from the
public interface. Existing code that instantiates a new time object using
``format='astropy_time'`` can simply omit the ``format``
specification. [#3857]
- ``astropy.units``
- Single-item ``Quantity`` instances with record ``dtype`` will now have
their ``isscalar`` property return ``True``, consistent with behaviour for
numpy arrays, where ``np.void`` records are considered scalar. [#3899]
- Three changes relating to the FITS unit format [#3993]:
- The FITS unit format will no longer parse an arbitrary number as a
scale value. It must be a power of 10 of the form ``10^^k``,
``10^k``, ``10+k``, ``10-k`` and ``10(k)``. [#3993]
- Scales that are powers of 10 can be written out. Previously, any
non-1.0 scale was rejected.
- The ``*`` character is accepted as a separator between the scale
and the units.
- Unit formatter classes now require the ``parse`` and ``to_string``
methods are now required to be classmethods (and the formatter
classes themselves are assumed to be singletons that are not
instantiated). As unit formatters are mostly an internal implementation
detail this is not likely to affect any users. [#4001]
- CGS E&M units are now defined separately from SI E&M units, and have
distinct physical types. [#4255]
- ``astropy.utils``
- All of the ``get_pkg_data_*`` functions take an optional ``package``
argument as their second positional argument. So any code that previously
passed other arguments to these functions as positional arguments might
break. Use keyword argument passing instead to mitigate this. [#4079]
- ``astropy.utils.iers`` now uses a ``QTable`` internally, which means that
the numerical columns are stored as ``Quantity``, with full support for
units. Furthermore, the ``ut1_utc`` method now returns a ``Quantity``
instead of a float or an array (as did ``pm_xy`` already). [#3223]
- ``astropy.utils.iers`` now throws an ``IERSRangeError``, a subclass
of ``IndexError``, rather than a raw ``IndexError``. This allows more
fine-grained catching of situations where a ``Time`` is beyond the range
of the loaded IERS tables. [#4302]
- ``astropy.wcs``
- When compiled with wcslib 5.9 or later, the FITS headers returned
by ``astropy.wcs.WCS.to_header`` and
``astropy.wcs.WCS.to_header_string`` now include values with more
precision. This will result in numerical differences in your
results if you convert ``astropy.wcs.WCS`` objects to FITS headers
and use the results.
- If NAXIS1 or NAXIS2 is not passed with the header object to
WCS.calc_footprint, a ValueError is raised. [#3557]
+ Bug fixes
- ``astropy.constants``
- The constants ``Ry`` and ``u`` are now properly used inside the
corresponding units. The latter have changed slightly as a result. [#4229]
- ``astropy.coordinates``
- Internally, ``coordinates`` now consistently uses the appropriate time
scales for using ERFA functions. [#4302]
- ``astropy.io.ascii``
- Fix a segfault in the fast C parser when one of the column headers
is empty [#3545].
- Fix several bugs that prevented the fast readers from being used
when guessing the file format. Also improved the read trace
information to better understand format guessing. [#4115]
- Fix an underlying problem that resulted in an uncaught TypeError
exception when reading a CDS-format file with guessing enabled. [#4120]
- ``astropy.modeling``
- ``Simplex`` fitter now correctly passes additional keywords arguments to
the scipy solver. [#3966]
- The keyword ``acc`` (for accuracy) is now correctly accepted by
``Simplex``. [#3966]
- ``astropy.units``
- The units ``Ryd`` and ``u`` are no longer hard-coded numbers, but depend
on the appropriate values in the ``constants`` module. As a result, these
units now imply slightly different conversions. [#4229]
+ Other Changes and Additions
- The ``./setup.py test`` command is now implemented in the ``astropy.tests``
module again (previously its implementation had been moved into
astropy-helpers). However, that made it difficult to synchronize changes
to the Astropy test runner with changes to the ``./setup.py test`` UI.
astropy-helpers v1.1 and above will detect this implementation of the
``test`` command, when present, and use it instead of the old version that
was included in astropy-helpers (most users will not notice any difference
as a result of this change). [#4020]
- The repr for ``Table`` no longer displays ``masked=False`` since tables
are not masked by default anyway. [#3869]
- The version of ``PLY`` that ships with astropy has been updated to 3.6.
- WCSAxes is now required for doc builds. [#4074]
- Updated ``astropy.tests`` test runner code to work with Coverage v4.0 when
generating test coverage reports. [#4176]
- The migration guide from pre-v0.4 coordinates has been removed to avoid
cluttering the ``astropy.coordinates`` documentation with increasingly
irrelevant material. To see the migration guide, we recommend you simply look
to the archived documentation for previous versions, e.g.
http://docs.astropy.org/en/v1.0/coordinates/index.html#migrating-from-pre-v0-4-coordinates
[#4203]
- In ``astropy.coordinates``, the transformations between GCRS, CIRS,
and ITRS have been adjusted to more logically reflect the order in
which they actually apply. This should not affect most coordinate
transformations, but may affect code that is especially sensitive to
machine precision effects that change when the order in which
transformations occur is changed. [#4255]
- update to version 1.0.8 (2016-01-08)
+ Bug Fixes
- ``astropy.io.fits``
- Fixed an bug where updates to string columns in FITS tables were not saved
on Python 3. [#4452]
- ``astropy.units``
- In-place peak-to-peak calculations now work on ``Quantity``. [#4442]
- ``astropy.utils``
- Fixed ``find_api_page`` to work correctly on python 3.x [#4378]
- update to version 1.0.7:
* New Features
+ astropy.time
Fix incorrect value attribute for epoch formats like "unix" when
scale is different from the class epoch_scale. [#4313]
* Bug Fixes
+ astropy.coordinates
Pickling of EarthLocation instances now also works on Python
2. [#4304]
+ astropy.io.fits
o Fixed a regression that could cause writes of large FITS files
to be truncated. [#4307]
o Astropy v1.0.6 included a fix (#4228) for an obscure case where
the TDIM of a table column is smaller than the repeat count of
its data format. This updates that fix in such a way that it
works with Numpy 1.10 as well. [#4266]
o Fix fast writer so bytestring column output is not prefixed by
'b' in Python 3. [#4350]
+ astropy.table
o Fix a bug when pickling a Table with mixin columns
(e.g. Time). [#4098]
+ astropy.utils
o Fixed an issue where if ipython is installed but ipykernel is
not installed then importing astropy from the ipython console
gave an IPython.kernel deprecation warning. [#4279]
o Fixed crash that could occur in ProgressBar when astropy is
imported in an IPython startup script. [#4274]
- update to version 1.0.6:
* astropy.analytic_functions
+ Fixed blackbody analytic functions to properly support arrays of
temperatures. [#4251]
* astropy.coordinates
+ Fixed errors in transformations for objects within a few AU of
the Earth. Included substansive changes to transformation
machinery that may change distances at levels ~machine precision
for other objects. [#4254]
* astropy.io.fits
+ fitsdiff and related functions now do a better job reporting
differences between values that are different types but have the
same representation (ex: the string '0' versus the number
0). [#4122]
+ Miscellaneous fixes for supporting Numpy 1.10. [#4228]
+ Fixed an issue where writing a column of unicode strings to a
FITS table resulted in a quadrupling of size of the column
(i.e. the format of the FITS column was 4 characters for every
one in the original strings). [#4228]
+ Added support for an obscure case (but nonetheless allowed by the
FITS standard) where a column has some TDIMn keyword, but a
repeat count in the TFORMn column greater than the number of
elements implied by the TDIMn. For example TFORMn = 100I, but
TDIMn = '(5,5)'. In this case the TDIMn implies 5x5 arrays in the
column, but the TFORMn implies a 100 element 1-D array in the
column. In this case the TDIM takes precedence, and the remaining
bytes in the column are ignored. [#4228]
* astropy.io.votable
+ Fixed crash with Python compiler optimization level = 2. [#4231]
* astropy.vo
+ Fixed check_conesearch_sites with parallel=True on Python >= 3.3
and on Windows (it was broken in both those cases for separate
reasons). [#2970]
* All tests now pass against Numpy v1.10.x. This implies nominal
support for Numpy 1.10.x moving forward (but there may still be
unknown issues). For example, there is already a known performance
issue with tables containing large multi-dimensional columns--for
example, tables that contain entire images in one or more of their
columns. This is a known upstream issue in Numpy. [#4259]
- Update to 1.0.5
+ Bug Fixes
* ``astropy.constants``
> Rename units -> unit and error -> uncertainty in the ``repr`` and ``str``
of constants to match attribute names. [#4147]
* ``astropy.coordinates``
> Fix string representation of ``SkyCoord`` objects transformed into
the ``AltAz`` frame [#4055]
> Fix the ``search_around_sky`` function to allow ``storekdtree`` to be
``False`` as was intended. [#4082]
* ``astropy.io.fits``
> Fix bug when extending one header (without comments) with another
(with comments). [#3967]
> Somewhat improved resource usage for FITS data--previously a new ``mmap``
was opened for each HDU of a FITS file accessed through an ``HDUList``.
Each ``mmap`` used up a single file descriptor, causing problems with
system resource limits for some users. Now only a single ``mmap`` is
opened, and shared for the data of all HDUs. Note: The problem still
persists with using the "convenience" functions. For example using
``fits.getdata`` will create one ``mmap`` per HDU read this way (as
opposed to opening the file with ``fits.open`` and accessing the HDUs
through the ``HDUList`` object). [#4097]
> Fix bug where reading a file without a newline failed with an
unrelated / unhelpful exception. [#4160]
* ``astropy.modeling``
> Cleaned up ``repr`` of models that have no parameters. [#4076]
* ``astropy.nddata``
> Initializing ``NDDataArray`` from another instance now sets ``flags`` as
expected and no longer fails when ``uncertainty`` is set [#4129].
Initializing an ``NDData`` subclass from a parent instance
(eg. ``NDDataArray`` from ``NDData``) now sets the attributes other than
``data`` as it should [#4137].
* ``astropy.table``
> Fix bug when doing outer join on multi-dimensional columns. [#4060]
> Fix an issue with setting fill value when column dtype is changed. [#4088]
> Fix bug when unpickling a bare Column where the _parent_table
attribute was not set. This impacted the Column representation. [#4099]
> Fix issue with the web browser opening with an empty page, and ensure that
the url is correctly formatted for Windows. [#4132]
> Fix NameError in table stack exception message. [#4213]
* ``astropy.utils``
> ``resolve_name`` no longer causes ``sys.modules`` to be cluttered with
additional copies of modules under a package imported like
``resolve_name('numpy')``. [#4084]
> ``console`` was updated to support IPython 4.x and Jupyter 1.x.
This should supress a ShimWarning that was appearing at
import of astropy with IPython 4.0 or later. [#4078]
> Temporary downloaded files created by ``get_readable_fileobj`` when passed
a URL are now deleted immediately after the file is closed. [#4198]
* ``astropy.visualization``
> The color for axes labels was set to white. Since white labels on white
background are hard to read, the label color has been changed to black.
[#4143]
> ``ImageNormalize`` now automatically determines ``vmin``/``vmax``
(via the ``autoscale_None`` method) when they have not been set
explicitly. [#4117]
* ``astropy.vo``
> Cone Search validation no longer crashes when the provider gives an
incomplete test query. It also ensures search radius for a test query
is not too large to avoid timeout. [#4158, #4159]
+ Other Changes and Additions
- Astropy now supports Python 3.5. [#4027]
- Updated bundled version of astropy-helpers to 1.0.5. [#4215]
- Updated tests to support py.test 2.7, and upgraded the bundled copy of
py.test to v2.7.3. [#4027]
- Update to 1.0.4
+ New Features
* ``astropy.convolution``
> Modified Cython functions to release the GIL. This enables convolution
to be parallelized effectively and gives large speedups when used with
multithreaded task schedulers such as Dask. [#3949]
+ API Changes
* ``astropy.coordinates``
> Some transformations for an input coordinate that's a scalar now correctly
return a scalar. This was always the intended behavior, but it may break
code that has been written to work-around this bug, so it may be viewed as
an unplanned API change [#3920]
* ``astropy.visualization``
> The ``astropy_mpl_style`` no longer sets ``interactive`` to ``True``, but
instead leaves it at the user preference. This makes using the style
compatible with building docs with Sphinx, and other non-interactive
contexts. [#4030]
+ Bug Fixes
* ``astropy.coordinates``
> Fix bug where coordinate representation setting gets reset to default value
when coordinate array is indexed or sliced. [#3824]
> Fixed confusing warning message shown when using dates outside current IERS
data. [#3844]
> ``get_sun`` now yields a scalar when the input time is a scalar (this was a
regression in v1.0.3 from v1.0.2) [#3998]
> Fixed bug where some scalar coordinates were incorrectly being changed to
length-1 array coordinates after transforming through certain frames.
[#3920]
> Fixed bug causing the ``separation`` methods of ``SkyCoord`` and frame
classes to fail due to infinite recursion [#4033]
> Made it so that passing in a list of ``SkyCoord`` objects that are in
UnitSphericalRepresentation to the ``SkyCoord`` constructor appropriately
yields a new object in UnitSphericalRepresentation [#3938]
* ``astropy.cosmology``
> Fixed wCDM to not ignore the Ob0 parameter on initialization. [#3934]
* ``astropy.io.fits``
> Fixed crash when updating data in a random groups HDU opened in update
mode. [#3730]
> Fixed incorrect checksum / datasum being written when re-writing a scaled
HDU (i.e. non-trivial BSCALE and/or BZERO) with
``do_not_scale_image_data=False``. [#3883]
> Fixed stray deprecation warning in ``BinTableHDU.copy()``. [#3789]
> Better handling of the ``BLANK`` keyword when auto-scaling scaled image
data. The ``BLANK`` keyword is now removed from the header after
auto-scaling is applied, and it is restored properly (with floating point
NaNs replaced by the filler value) when updating a file opened with the
``scale_back=True`` argument. Invalid usage of the ``BLANK`` keyword is
also better warned about during validation. [#3865]
> Reading memmaped scaled images won't fail when
``do_not_scale_image_data=True`` (that is, since we're just reading the raw
/ physical data there is no reason mmap can't be used). [#3766]
> Fixed a reference cycle that could sometimes cause FITS table-related
objects (``BinTableHDU``, ``ColDefs``, etc.) to hang around in memory
longer than expected. [#4012]