Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Scheduled monthly dependency update for January #88

Merged
merged 5 commits into from Jan 21, 2019

Conversation

pyup-bot
Copy link
Contributor

@pyup-bot pyup-bot commented Jan 1, 2019

Update astropy from 3.0.5 to 3.1.1.

Changelog

3.1.1

==================

Bug fixes
---------

astropy.config
^^^^^^^^^^^^^^

astropy.constants
^^^^^^^^^^^^^^^^^

astropy.convolution
^^^^^^^^^^^^^^^^^^^

astropy.coordinates
^^^^^^^^^^^^^^^^^^^

astropy.cosmology
^^^^^^^^^^^^^^^^^

astropy.extern
^^^^^^^^^^^^^^

astropy.io.ascii
^^^^^^^^^^^^^^^^

- Fix error when writing out empty table. [8279]

astropy.io.misc
^^^^^^^^^^^^^^^

astropy.io.fits
^^^^^^^^^^^^^^^

- ``fitsdiff --ignore-hdus`` now prints input filenames in the diff report
instead of ``<HDUList object at 0x1150f9778>``. [8295]

astropy.io.registry
^^^^^^^^^^^^^^^^^^^

astropy.io.votable
^^^^^^^^^^^^^^^^^^

astropy.modeling
^^^^^^^^^^^^^^^^

astropy.nddata
^^^^^^^^^^^^^^

astropy.samp
^^^^^^^^^^^^

astropy.stats
^^^^^^^^^^^^^

astropy.table
^^^^^^^^^^^^^

astropy.tests
^^^^^^^^^^^^^

astropy.time
^^^^^^^^^^^^

astropy.uncertainty
^^^^^^^^^^^^^^^^^^^

astropy.units
^^^^^^^^^^^^^

- Ensure correctness of units when raising to a negative power. [8263]

- Fix ``with_H0`` equivalency to use the correct direction of
conversion. [8292]

- Add support for ``np.matmul`` as a ``ufunc`` (new in numpy 1.16). [8264]

astropy.utils
^^^^^^^^^^^^^

astropy.visualization
^^^^^^^^^^^^^^^^^^^^^

astropy.wcs
^^^^^^^^^^^



Other Changes and Additions
---------------------------

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 doc string indicated that ``boundary=None``
was the default when actually it is ``boundary='fill'``. The doc string has been corrected,
however, someone may interpret this as an API change not realising 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]
Links

Update scipy from 1.1.0 to 1.2.0.

Changelog

1.2.0

many new features, numerous bug-fixes, improved test coverage and better
documentation. There have been a number of deprecations and API changes
in this release, which are documented below. All users are encouraged to
upgrade to this release, as there are a large number of bug-fixes and
optimizations. Before upgrading, we recommend that users check that
their own code does not use deprecated SciPy functionality (to do so,
run your code with ``python -Wd`` and check for ``DeprecationWarning`` s).
Our development attention will now shift to bug-fix releases on the
1.2.x branch, and on adding new features on the master branch.

This release requires Python 2.7 or 3.4+ and NumPy 1.8.2 or greater.

**Note**: This will be the last SciPy release to support Python 2.7.
       Consequently, the 1.2.x series will be a long term support (LTS)
       release; we will backport bug fixes until 1 Jan 2020.

For running on PyPy, PyPy3 6.0+ and NumPy 1.15.0 are required.

Highlights of this release
--------------------------

- 1-D root finding improvements with a new solver, ``toms748``, and a new
unified interface, ``root_scalar``
- New ``dual_annealing`` optimization method that combines stochastic and
local deterministic searching
- A new optimization algorithm, ``shgo`` (simplicial homology
global optimization) for derivative free optimization problems
- A new category of quaternion-based transformations are available in
`scipy.spatial.transform`

New features
============

`scipy.ndimage` improvements
--------------------------------

Proper spline coefficient calculations have been added for the ``mirror``,
``wrap``, and ``reflect`` modes of `scipy.ndimage.rotate`

`scipy.fftpack` improvements
--------------------------------

DCT-IV, DST-IV, DCT-I, and DST-I orthonormalization are now supported in
`scipy.fftpack`.

`scipy.interpolate` improvements
--------------------------------

`scipy.interpolate.pade` now accepts a new argument for the order of the
numerator

`scipy.cluster` improvements
----------------------------

`scipy.cluster.vq.kmeans2` gained a new initialization method, kmeans++.

`scipy.special` improvements
----------------------------

The function ``softmax`` was added to `scipy.special`.

`scipy.optimize` improvements
-----------------------------

The one-dimensional nonlinear solvers have been given a unified interface
`scipy.optimize.root_scalar`, similar to the `scipy.optimize.root` interface
for multi-dimensional solvers. ``scipy.optimize.root_scalar(f, bracket=[a ,b],
method="brenth")`` is equivalent to ``scipy.optimize.brenth(f, a ,b)``.  If no
``method`` is specified, an appropriate one will be selected based upon the
bracket and the number of derivatives available.

The so-called Algorithm 748 of Alefeld, Potra and Shi for root-finding within
an enclosing interval has been added as `scipy.optimize.toms748`. This provides
guaranteed convergence to a root with convergence rate per function evaluation
of approximately 1.65 (for sufficiently well-behaved functions.)

``differential_evolution`` now has the ``updating`` and ``workers`` keywords.
The first chooses between continuous updating of the best solution vector (the
default), or once per generation. Continuous updating can lead to faster
convergence. The ``workers`` keyword accepts an ``int`` or map-like callable,
and parallelises the solver (having the side effect of updating once per
generation). Supplying an ``int`` evaluates the trial solutions in N parallel
parts. Supplying a map-like callable allows other parallelisation approaches
(such as ``mpi4py``, or ``joblib``) to be used.

``dual_annealing`` (and ``shgo`` below) is a powerful new general purpose
global optizimation (GO) algorithm. ``dual_annealing`` uses two annealing
processes to accelerate the convergence towards the global minimum of an
objective mathematical function. The first annealing process controls the
stochastic Markov chain searching and the second annealing process controls the
deterministic minimization. So, dual annealing is a hybrid method that takes
advantage of stochastic and local deterministic searching in an efficient way.

``shgo`` (simplicial homology global optimization) is a similar algorithm
appropriate for solving black box and derivative free optimization (DFO)
problems. The algorithm generally converges to the global solution in finite
time. The convergence holds for non-linear inequality and
equality constraints. In addition to returning a global minimum, the
algorithm also returns any other global and local minima found after every
iteration. This makes it useful for exploring the solutions in a domain.

`scipy.optimize.newton` can now accept a scalar or an array

``MINPACK`` usage is now thread-safe, such that ``MINPACK`` + callbacks may
be used on multiple threads.

`scipy.signal` improvements
---------------------------

Digital filter design functions now include a parameter to specify the sampling
rate. Previously, digital filters could only be specified using normalized
frequency, but different functions used different scales (e.g. 0 to 1 for
``butter`` vs 0 to π for ``freqz``), leading to errors and confusion.  With
the ``fs`` parameter, ordinary frequencies can now be entered directly into
functions, with the normalization handled internally.

``find_peaks`` and related functions no longer raise an exception if the
properties of a peak have unexpected values (e.g. a prominence of 0). A
``PeakPropertyWarning`` is given instead.

The new keyword argument ``plateau_size`` was added to ``find_peaks``.
``plateau_size`` may be used to select peaks based on the length of the
flat top of a peak.

``welch()`` and ``csd()`` methods in `scipy.signal` now support calculation
of a median average PSD, using ``average='mean'`` keyword

`scipy.sparse` improvements
---------------------------

The `scipy.sparse.bsr_matrix.tocsr` method is now implemented directly instead
of converting via COO format, and the `scipy.sparse.bsr_matrix.tocsc` method
is now also routed via CSR conversion instead of COO. The efficiency of both
conversions is now improved.

The issue where SuperLU or UMFPACK solvers crashed on matrices with
non-canonical format in `scipy.sparse.linalg` was fixed. The solver wrapper
canonicalizes the matrix if necessary before calling the SuperLU or UMFPACK
solver.

The ``largest`` option of `scipy.sparse.linalg.lobpcg()` was fixed to have
a correct (and expected) behavior. The order of the eigenvalues was made
consistent with the ARPACK solver (``eigs()``), i.e. ascending for the
smallest eigenvalues, and descending for the largest eigenvalues.

The `scipy.sparse.random` function is now faster and also supports integer and
complex values by passing the appropriate value to the ``dtype`` argument.

`scipy.spatial` improvements
----------------------------

The function `scipy.spatial.distance.jaccard` was modified to return 0 instead
of ``np.nan`` when two all-zero vectors are compared.

Support for the Jensen Shannon distance, the square-root of the divergence, has
been added under `scipy.spatial.distance.jensenshannon`

An optional keyword was added to the function
`scipy.spatial.cKDTree.query_ball_point()` to sort or not sort the returned
indices. Not sorting the indices can speed up calls.

A new category of quaternion-based transformations are available in
`scipy.spatial.transform`, including spherical linear interpolation of
rotations (``Slerp``), conversions to and from quaternions, Euler angles,
and general rotation and inversion capabilities
(`spatial.transform.Rotation`), and uniform random sampling of 3D
rotations (`spatial.transform.Rotation.random`).

`scipy.stats` improvements
--------------------------

The Yeo-Johnson power transformation is now supported (``yeojohnson``,
``yeojohnson_llf``, ``yeojohnson_normmax``, ``yeojohnson_normplot``). Unlike
the Box-Cox transformation, the Yeo-Johnson transformation can accept negative
values.

Added a general method to sample random variates based on the density only, in
the new function ``rvs_ratio_uniforms``.

The Yule-Simon distribution (``yulesimon``) was added -- this is a new
discrete probability distribution.

``stats`` and ``mstats`` now have access to a new regression method,
``siegelslopes``, a robust linear regression algorithm

`scipy.stats.gaussian_kde` now has the ability to deal with weighted samples,
and should have a modest improvement in performance

Levy Stable Parameter Estimation, PDF, and CDF calculations are now supported
for `scipy.stats.levy_stable`.

The Brunner-Munzel test is now available as ``brunnermunzel`` in ``stats``
and ``mstats``

`scipy.linalg` improvements
--------------------------

`scipy.linalg.lapack` now exposes the LAPACK routines using the Rectangular
Full Packed storage (RFP) for upper triangular, lower triangular, symmetric,
or Hermitian matrices; the upper trapezoidal fat matrix RZ decomposition
routines are now available as well.

Deprecated features
===================
The functions ``hyp2f0``, ``hyp1f2`` and ``hyp3f0`` in ``scipy.special`` have
been deprecated.


Backwards incompatible changes
==============================

LAPACK version 3.4.0 or later is now required. Building with
Apple Accelerate is no longer supported.

The function ``scipy.linalg.subspace_angles(A, B)`` now gives correct
results for all angles. Before this, the function only returned
correct values for those angles which were greater than pi/4.

Support for the Bento build system has been removed. Bento has not been
maintained for several years, and did not have good Python 3 or wheel support,
hence it was time to remove it.

The required signature of `scipy.optimize.lingprog` ``method=simplex``
callback function has changed. Before iteration begins, the simplex solver
first converts the problem into a standard form that does not, in general,
have the same variables or constraints
as the problem defined by the user. Previously, the simplex solver would pass a
user-specified callback function several separate arguments, such as the
current solution vector ``xk``, corresponding to this standard form problem.
Unfortunately, the relationship between the standard form problem and the
user-defined problem was not documented, limiting the utility of the
information passed to the callback function.

In addition to numerous bug fix changes, the simplex solver now passes a
user-specified callback function a single ``OptimizeResult`` object containing
information that corresponds directly to the user-defined problem. In future
releases, this ``OptimizeResult`` object may be expanded to include additional
information, such as variables corresponding to the standard-form problem and
information concerning the relationship between the standard-form and
user-defined problems.

The implementation of `scipy.sparse.random` has changed, and this affects the
numerical values returned for both ``sparse.random`` and ``sparse.rand`` for
some matrix shapes and a given seed.

`scipy.optimize.newton` will no longer use Halley's method in cases where it
negatively impacts convergence

Other changes
=============


Authors
=======

* endolith
* luzpaz
* Hameer Abbasi +
* akahard2dj +
* Anton Akhmerov
* Joseph Albert
* alexthomas93 +
* ashish +
* atpage +
* Blair Azzopardi +
* Yoshiki Vázquez Baeza
* Bence Bagi +
* Christoph Baumgarten
* Lucas Bellomo +
* BH4 +
* Aditya Bharti
* Max Bolingbroke
* François Boulogne
* Ward Bradt +
* Matthew Brett
* Evgeni Burovski
* Rafał Byczek +
* Alfredo Canziani +
* CJ Carey
* Lucía Cheung +
* Poom Chiarawongse +
* Jeanne Choo +
* Robert Cimrman
* Graham Clenaghan +
* cynthia-rempel +
* Johannes Damp +
* Jaime Fernandez del Rio
* Dowon +
* emmi474 +
* Stefan Endres +
* Thomas Etherington +
* Alex Fikl +
* fo40225 +
* Joseph Fox-Rabinovitz
* Lars G
* Abhinav Gautam +
* Stiaan Gerber +
* C.A.M. Gerlach +
* Ralf Gommers
* Todd Goodall
* Lars Grueter +
* Sylvain Gubian +
* Matt Haberland
* David Hagen
* Will Handley +
* Charles Harris
* Ian Henriksen
* Thomas Hisch +
* Theodore Hu
* Michael Hudson-Doyle +
* Nicolas Hug +
* jakirkham +
* Jakob Jakobson +
* James +
* Jan Schlüter
* jeanpauphilet +
* josephmernst +
* Kai +
* Kai-Striega +
* kalash04 +
* Toshiki Kataoka +
* Konrad0 +
* Tom Krauss +
* Johannes Kulick
* Lars Grüter +
* Eric Larson
* Denis Laxalde
* Will Lee +
* Katrin Leinweber +
* Yin Li +
* P. L. Lim +
* Jesse Livezey +
* Duncan Macleod +
* MatthewFlamm +
* Nikolay Mayorov
* Mike McClurg +
* Christian Meyer +
* Mark Mikofski
* Naoto Mizuno +
* mohmmadd +
* Nathan Musoke
* Anju Geetha Nair +
* Andrew Nelson
* Ayappan P +
* Nick Papior
* Haesun Park +
* Ronny Pfannschmidt +
* pijyoi +
* Ilhan Polat
* Anthony Polloreno +
* Ted Pudlik
* puenka
* Eric Quintero
* Pradeep Reddy Raamana +
* Vyas Ramasubramani +
* Ramon Viñas +
* Tyler Reddy
* Joscha Reimer
* Antonio H Ribeiro
* richardjgowers +
* Rob +
* robbystk +
* Lucas Roberts +
* rohan +
* Joaquin Derrac Rus +
* Josua Sassen +
* Bruce Sharpe +
* Max Shinn +
* Scott Sievert
* Sourav Singh
* Strahinja Lukić +
* Kai Striega +
* Shinya SUZUKI +
* Mike Toews +
* Piotr Uchwat
* Miguel de Val-Borro +
* Nicky van Foreest
* Paul van Mulbregt
* Gael Varoquaux
* Pauli Virtanen
* Stefan van der Walt
* Warren Weckesser
* Joshua Wharton +
* Bernhard M. Wiedemann +
* Eric Wieser
* Josh Wilson
* Tony Xiang +
* Roman Yurchak +
* Roy Zywina +

A total of 137 people contributed to this release.
People with a "+" by their names contributed a patch for the first time.
This list of names is automatically generated, and may not be fully complete.
Links

Update hypothesis from 3.82.1 to 3.85.2.

The bot wasn't able to find a changelog for this release. Got an idea?

Links

Update pre-commit from 1.12.0 to 1.13.0.

Changelog

1.13.0

======

Features
- Run hooks in parallel
 - individual hooks may opt out of parallel exection with `parallel: false`
 - 510 issue by chriskuehl.
 - 851 PR by chriskuehl.

Fixes
- Improve platform-specific `xargs` command length detection
 - 691 issue by antonbabenko.
 - 839 PR by georgeyk.
- Fix `pre-commit autoupdate` when updating to a latest tag missing a
`.pre-commit-hooks.yaml`
 - 856 issue by asottile.
 - 857 PR by runz0rd.
- Upgrade the `pre-commit-hooks` version in `pre-commit sample-config`
 - 870 by asottile.
- Improve balancing of multiprocessing by deterministic shuffling of args
 - 861 issue by Dunedan.
 - 874 PR by chriskuehl.
- `ruby` hooks work with latest `gem` by removing `--no-ri` / `--no-rdoc` and
instead using `--no-document`.
 - 889 PR by asottile.

Misc
- Use `--no-gpg-sign` when running tests
 - 885 PR by s0undt3ch.

Updating
- If a hook requires serial execution, set `parallel: false` to avoid the new
parallel execution.
- `ruby` hooks now require `gem>=2.0.0`.  If your platform doesn't support this
by default, select a newer version using
[`language_version`](https://pre-commit.com/overriding-language-version).
Links

Update pytest from 4.0.1 to 4.0.2.

Changelog

4.0.2

=========================

Bug Fixes
---------

- `4265 <https://github.com/pytest-dev/pytest/issues/4265>`_: Validate arguments from the ``PYTEST_ADDOPTS`` environment variable and the ``addopts`` ini option separately.


- `4435 <https://github.com/pytest-dev/pytest/issues/4435>`_: Fix ``raises(..., 'code(string)')`` frame filename.


- `4500 <https://github.com/pytest-dev/pytest/issues/4500>`_: When a fixture yields and a log call is made after the test runs, and, if the test is interrupted, capture attributes are ``None``.


- `4538 <https://github.com/pytest-dev/pytest/issues/4538>`_: Raise ``TypeError`` for ``with raises(..., match=<non-None falsey value>)``.



Improved Documentation
----------------------

- `1495 <https://github.com/pytest-dev/pytest/issues/1495>`_: Document common doctest fixture directory tree structure pitfalls
Links

@coveralls
Copy link

Coverage Status

Coverage remained the same at 95.331% when pulling 93e6fa1 on pyup/scheduled-update-2019-01-01 into 8fbe5cf on develop.

@jason-neal jason-neal merged commit f44f193 into develop Jan 21, 2019
@jason-neal jason-neal deleted the pyup/scheduled-update-2019-01-01 branch January 21, 2019 19:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants