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 biweekly dependency update for week 05 #48

Merged
merged 7 commits into from
Feb 6, 2018

Conversation

pyup-bot
Copy link
Contributor

@pyup-bot pyup-bot commented Feb 6, 2018

Updates

Here's a list of all the updates bundled in this pull request. I've added some links to make it easier for you to find all the information you need.

numpy 1.13.3 » 1.14.0 PyPI | Changelog | Homepage
matplotlib 2.1.0 » 2.1.2 PyPI | Changelog | Homepage
astropy 2.0.2 » 2.0.4 PyPI | Changelog | Homepage
scipy 0.19.1 » 1.0.0 PyPI | Changelog | Repo | Homepage
pyastronomy 0.11.0 » 0.12.0 PyPI | Homepage
hypothesis 3.31.2 » 3.44.26 PyPI | Changelog | Repo
pytest 3.2.2 » 3.4.0 PyPI | Changelog | Repo | Homepage

Changelogs

numpy 1.13.3 -> 1.14.0

1.14.0

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

Numpy 1.14.0 is the result of seven months of work and contains a large number
of bug fixes and new features, along with several changes with potential
compatibility issues. The major change that users will notice are the
stylistic changes in the way numpy arrays and scalars are printed, a change
that will affect doctests. See below for details on how to preserve the
old style printing when needed.

A major decision affecting future development concerns the schedule for
dropping Python 2.7 support in the runup to 2020. The decision has been made to
support 2.7 for all releases made in 2018, with the last release being
designated a long term release with support for bug fixes extending through
2019. In 2019 support for 2.7 will be dropped in all new releases. More details
can be found in the relevant NEP_.

This release supports Python 2.7 and 3.4 - 3.6.

.. _NEP: https://github.com/numpy/numpy/blob/master/doc/neps/dropping-python2.7-proposal.rst

Highlights

  • The np.einsum function uses BLAS when possible
  • genfromtxt, loadtxt, fromregex and savetxt can now handle
    files with arbitrary Python supported encoding.
  • Major improvements to printing of NumPy arrays and scalars.

New functions

  • parametrize: decorator added to numpy.testing
  • chebinterpolate: Interpolate function at Chebyshev points.
  • format_float_positional and format_float_scientific : format
    floating-point scalars unambiguously with control of rounding and padding.
  • PyArray_ResolveWritebackIfCopy and PyArray_SetWritebackIfCopyBase,
    new C-API functions useful in achieving PyPy compatibity.

Deprecations

  • Using np.bool_ objects in place of integers is deprecated. Previously
    operator.index(np.bool_) was legal and allowed constructs such as
    [1, 2, 3][np.True_]. That was misleading, as it behaved differently from
    np.array([1, 2, 3])[np.True_].
  • Truth testing of an empty array is deprecated. To check if an array is not
    empty, use array.size > 0.
  • Calling np.bincount with minlength=None is deprecated.
    minlength=0 should be used instead.
  • Calling np.fromstring with the default value of the sep argument is
    deprecated. When that argument is not provided, a broken version of
    np.frombuffer is used that silently accepts unicode strings and -- after
    encoding them as either utf-8 (python 3) or the default encoding
    (python 2) -- treats them as binary data. If reading binary data is
    desired, np.frombuffer should be used directly.
  • The style option of array2string is deprecated in non-legacy printing mode.
  • PyArray_SetUpdateIfCopyBase has been deprecated. For NumPy versions >= 1.14
    use PyArray_SetWritebackIfCopyBase instead, see C API changes below for
    more details.
  • The use of UPDATEIFCOPY arrays is deprecated, see C API changes below
    for details. We will not be dropping support for those arrays, but they are
    not compatible with PyPy.

Future Changes

  • np.issubdtype will stop downcasting dtype-like arguments.
    It might be expected that issubdtype(np.float32, 'float64') and
    issubdtype(np.float32, np.float64) mean the same thing - however, there
    was an undocumented special case that translated the former into
    issubdtype(np.float32, np.floating), giving the surprising result of True.

This translation now gives a warning that explains what translation is
occurring. In the future, the translation will be disabled, and the first
example will be made equivalent to the second.

  • np.linalg.lstsq default for rcond will be changed. The rcond
    parameter to np.linalg.lstsq will change its default to machine precision
    times the largest of the input array dimensions. A FutureWarning is issued
    when rcond is not passed explicitly.
  • a.flat.__array__() will return a writeable copy of a when a is
    non-contiguous. Previously it returned an UPDATEIFCOPY array when a was
    writeable. Currently it returns a non-writeable copy. See gh-7054 for a
    discussion of the issue.
  • Unstructured void array's .item method will return a bytes object. In the
    future, calling .item() on arrays or scalars of np.void datatype will
    return a bytes object instead of a buffer or int array, the same as
    returned by bytes(void_scalar). This may affect code which assumed the
    return value was mutable, which will no longer be the case. A
    FutureWarning is now issued when this would occur.

Compatibility notes

The mask of a masked array view is also a view rather than a copy

There was a FutureWarning about this change in NumPy 1.11.x. In short, it is
now the case that, when changing a view of a masked array, changes to the mask
are propagated to the original. That was not previously the case. This change
affects slices in particular. Note that this does not yet work properly if the
mask of the original array is nomask and the mask of the view is changed.
See gh-5580 for an extended discussion. The original behavior of having a copy
of the mask can be obtained by calling the unshare_mask method of the view.

np.ma.masked is no longer writeable

Attempts to mutate the masked constant now error, as the underlying arrays
are marked readonly. In the past, it was possible to get away with::

emulating a function that sometimes returns np.ma.masked

val = random.choice([np.ma.masked, 10])
var_arr = np.asarray(val)
val_arr += 1 now errors, previously changed np.ma.masked.data

np.ma functions producing fill_values have changed

Previously, np.ma.default_fill_value would return a 0d array, but
np.ma.minimum_fill_value and np.ma.maximum_fill_value would return a
tuple of the fields. Instead, all three methods return a structured np.void
object, which is what you would already find in the .fill_value attribute.

Additionally, the dtype guessing now matches that of np.array - so when
passing a python scalar x, maximum_fill_value(x) is always the same as
maximum_fill_value(np.array(x)). Previously x = long(1) on Python 2
violated this assumption.

a.flat.__array__() returns non-writeable arrays when a is non-contiguous

The intent is that the UPDATEIFCOPY array previously returned when a was
non-contiguous will be replaced by a writeable copy in the future. This
temporary measure is aimed to notify folks who expect the underlying array be
modified in this situation that that will no longer be the case. The most
likely places for this to be noticed is when expressions of the form
np.asarray(a.flat) are used, or when a.flat is passed as the out
parameter to a ufunc.

np.tensordot now returns zero array when contracting over 0-length dimension

Previously np.tensordot raised a ValueError when contracting over 0-length
dimension. Now it returns a zero array, which is consistent with the behaviour
of np.dot and np.einsum.

numpy.testing reorganized

This is not expected to cause problems, but possibly something has been left
out. If you experience an unexpected import problem using numpy.testing
let us know.

np.asfarray no longer accepts non-dtypes through the dtype argument

This previously would accept dtype=some_array, with the implied semantics
of dtype=some_array.dtype. This was undocumented, unique across the numpy
functions, and if used would likely correspond to a typo.

1D np.linalg.norm preserves float input types, even for arbitrary orders

Previously, this would promote to float64 when arbitrary orders were
passed, despite not doing so under the simple cases::

>>> f32 = np.float32([1, 2])
>>> np.linalg.norm(f32, 2.0).dtype
dtype('float32')
>>> np.linalg.norm(f32, 2.0001).dtype
dtype('float64') numpy 1.13
dtype('float32') numpy 1.14

This change affects only float32 and float16 arrays.

count_nonzero(arr, axis=()) now counts over no axes, not all axes

Elsewhere, axis==() is always understood as "no axes", but
count_nonzero had a special case to treat this as "all axes". This was
inconsistent and surprising. The correct way to count over all axes has always
been to pass axis == None.

__init__.py files added to test directories

This is for pytest compatibility in the case of duplicate test file names in
the different directories. As a result, run_module_suite no longer works,
i.e., python <path-to-test-file> results in an error.

.astype(bool) on unstructured void arrays now calls bool on each element

On Python 2, void_array.astype(bool) would always return an array of
True, unless the dtype is V0. On Python 3, this operation would usually
crash. Going forwards, astype matches the behavior of bool(np.void),
considering a buffer of all zeros as false, and anything else as true.
Checks for V0 can still be done with arr.dtype.itemsize == 0.

MaskedArray.squeeze never returns np.ma.masked

np.squeeze is documented as returning a view, but the masked variant would
sometimes return masked, which is not a view. This has been fixed, so that
the result is always a view on the original masked array.
This breaks any code that used masked_arr.squeeze() is np.ma.masked, but
fixes code that writes to the result of .squeeze().

Renamed first parameter of can_cast from from to from_

The previous parameter name from is a reserved keyword in Python, which made
it difficult to pass the argument by name. This has been fixed by renaming
the parameter to from_.

isnat raises TypeError when passed wrong type

The ufunc isnat used to raise a ValueError when it was not passed
variables of type datetime or timedelta. This has been changed to
raising a TypeError.

dtype.__getitem__ raises TypeError when passed wrong type

When indexed with a float, the dtype object used to raise ValueError.

User-defined types now need to implement __str__ and __repr__

Previously, user-defined types could fall back to a default implementation of
__str__ and __repr__ implemented in numpy, but this has now been
removed. Now user-defined types will fall back to the python default
object.__str__ and object.__repr__.

Many changes to array printing, disableable with the new "legacy" printing mode

The str and repr of ndarrays and numpy scalars have been changed in
a variety of ways. These changes are likely to break downstream user's
doctests.

These new behaviors can be disabled to mostly reproduce numpy 1.13 behavior by
enabling the new 1.13 "legacy" printing mode. This is enabled by calling
np.set_printoptions(legacy="1.13"), or using the new legacy argument to
np.array2string, as np.array2string(arr, legacy='1.13').

In summary, the major changes are:

  • For floating-point types:
  • The repr of float arrays often omits a space previously printed
    in the sign position. See the new sign option to np.set_printoptions.
  • Floating-point arrays and scalars use a new algorithm for decimal
    representations, giving the shortest unique representation. This will
    usually shorten float16 fractional output, and sometimes float32 and
    float128 output. float64 should be unaffected. See the new
    floatmode option to np.set_printoptions.
  • Float arrays printed in scientific notation no longer use fixed-precision,
    and now instead show the shortest unique representation.
  • The str of floating-point scalars is no longer truncated in python2.
  • For other data types:
  • Non-finite complex scalars print like nanj instead of nan*j.
  • NaT values in datetime arrays are now properly aligned.
  • Arrays and scalars of np.void datatype are now printed using hex
    notation.
  • For line-wrapping:
  • The "dtype" part of ndarray reprs will now be printed on the next line
    if there isn't space on the last line of array output.
  • The linewidth format option is now always respected.
    The repr or str of an array will never exceed this, unless a single
    element is too wide.
  • The last line of an array string will never have more elements than earlier
    lines.
  • An extra space is no longer inserted on the first line if the elements are
    too wide.
  • For summarization (the use of ... to shorten long arrays):
  • A trailing comma is no longer inserted for str.
    Previously, str(np.arange(1001)) gave
    '[ 0 1 2 ..., 998 999 1000]', which has an extra comma.
  • For arrays of 2-D and beyond, when ... is printed on its own line in
    order to summarize any but the last axis, newlines are now appended to that
    line to match its leading newlines and a trailing space character is
    removed.
  • MaskedArray arrays now separate printed elements with commas, always
    print the dtype, and correctly wrap the elements of long arrays to multiple
    lines. If there is more than 1 dimension, the array attributes are now
    printed in a new "left-justified" printing style.
  • recarray arrays no longer print a trailing space before their dtype, and
    wrap to the right number of columns.
  • 0d arrays no longer have their own idiosyncratic implementations of str
    and repr. The style argument to np.array2string is deprecated.
  • Arrays of bool datatype will omit the datatype in the repr.
  • User-defined dtypes (subclasses of np.generic) now need to
    implement __str__ and __repr__.

You may want to do something like::

FIXME: Set numpy array str/repr to legacy behaviour on numpy > 1.13

try:
np.set_printoptions(legacy='1.13')
except TypeError:
pass

after ::

import numpy as np

Some of these changes are described in more detail below.

C API changes

PyPy compatible alternative to UPDATEIFCOPY arrays

UPDATEIFCOPY arrays are contiguous copies of existing arrays, possibly with
different dimensions, whose contents are copied back to the original array when
their refcount goes to zero and they are deallocated. Because PyPy does not use
refcounts, they do not function correctly with PyPy. NumPy is in the process of
eliminating their use internally and two new C-API functions,

  • PyArray_SetWritebackIfCopyBase
  • PyArray_ResolveWritebackIfCopy,

have been added together with a complimentary flag,
NPY_ARRAY_WRITEBACKIFCOPY. Using the new functionality also requires that
some flags be changed when new arrays are created, to wit:
NPY_ARRAY_INOUT_ARRAY should be replaced by NPY_ARRAY_INOUT_ARRAY2 and
NPY_ARRAY_INOUT_FARRAY should be replaced by NPY_ARRAY_INOUT_FARRAY2.
Arrays created with these new flags will then have the WRITEBACKIFCOPY
semantics.

If PyPy compatibility is not a concern, these new functions can be ignored,
although there will be a DeprecationWarning. If you do wish to pursue PyPy
compatibility, more information on these functions and their use may be found
in the c-api_ documentation and the example in how-to-extend_.

.. _c-api: https://github.com/numpy/numpy/blob/master/doc/source/reference/c-api.array.rst
.. _how-to-extend: https://github.com/numpy/numpy/blob/master/doc/source/user/c-info.how-to-extend.rst

New Features

Encoding argument for text IO functions

genfromtxt, loadtxt, fromregex and savetxt can now handle files
with arbitrary encoding supported by Python via the encoding argument.
For backward compatibility the argument defaults to the special bytes value
which continues to treat text as raw byte values and continues to pass latin1
encoded bytes to custom converters.
Using any other value (including None for system default) will switch the
functions to real text IO so one receives unicode strings instead of bytes in
the resulting arrays.

External nose plugins are usable by numpy.testing.Tester

numpy.testing.Tester is now aware of nose plugins that are outside the
nose built-in ones. This allows using, for example, nose-timer like
so: np.test(extra_argv=['--with-timer', '--timer-top-n', '20']) to
obtain the runtime of the 20 slowest tests. An extra keyword timer was
also added to Tester.test, so np.test(timer=20) will also report the 20
slowest tests.

parametrize decorator added to numpy.testing

A basic parametrize decorator is now available in numpy.testing. It is
intended to allow rewriting yield based tests that have been deprecated in
pytest so as to facilitate the transition to pytest in the future. The nose
testing framework has not been supported for several years and looks like
abandonware.

The new parametrize decorator does not have the full functionality of the
one in pytest. It doesn't work for classes, doesn't support nesting, and does
not substitute variable names. Even so, it should be adequate to rewrite the
NumPy tests.

chebinterpolate function added to numpy.polynomial.chebyshev

The new chebinterpolate function interpolates a given function at the
Chebyshev points of the first kind. A new Chebyshev.interpolate class
method adds support for interpolation over arbitrary intervals using the scaled
and shifted Chebyshev points of the first kind.

Support for reading lzma compressed text files in Python 3

With Python versions containing the lzma module the text IO functions can
now transparently read from files with xz or lzma extension.

sign option added to np.setprintoptions and np.array2string

This option controls printing of the sign of floating-point types, and may be
one of the characters '-', '+' or ' '. With '+' numpy always prints the sign of
positive values, with ' ' it always prints a space (whitespace character) in
the sign position of positive values, and with '-' it will omit the sign
character for positive values. The new default is '-'.

This new default changes the float output relative to numpy 1.13. The old
behavior can be obtained in 1.13 "legacy" printing mode, see compatibility
notes above.

hermitian option added tonp.linalg.matrix_rank

The new hermitian option allows choosing between standard SVD based matrix
rank calculation and the more efficient eigenvalue based method for
symmetric/hermitian matrices.

threshold and edgeitems options added to np.array2string

These options could previously be controlled using np.set_printoptions, but
now can be changed on a per-call basis as arguments to np.array2string.

concatenate and stack gained an out argument

A preallocated buffer of the desired dtype can now be used for the output of
these functions.

Support for PGI flang compiler on Windows

The PGI flang compiler is a Fortran front end for LLVM released by NVIDIA under
the Apache 2 license. It can be invoked by ::

python setup.py config --compiler=clang --fcompiler=flang install

There is little experience with this new compiler, so any feedback from people
using it will be appreciated.

Improvements

Numerator degrees of freedom in random.noncentral_f need only be positive.

Prior to NumPy 1.14.0, the numerator degrees of freedom needed to be > 1, but
the distribution is valid for values > 0, which is the new requirement.

The GIL is released for all np.einsum variations

Some specific loop structures which have an accelerated loop version
did not release the GIL prior to NumPy 1.14.0. This oversight has been
fixed.

The np.einsum function will use BLAS when possible and optimize by default

The np.einsum function will now call np.tensordot when appropriate.
Because np.tensordot uses BLAS when possible, that will speed up execution.
By default, np.einsum will also attempt optimization as the overhead is
small relative to the potential improvement in speed.

f2py now handles arrays of dimension 0

f2py now allows for the allocation of arrays of dimension 0. This allows
for more consistent handling of corner cases downstream.

numpy.distutils supports using MSVC and mingw64-gfortran together

Numpy distutils now supports using Mingw64 gfortran and MSVC compilers
together. This enables the production of Python extension modules on Windows
containing Fortran code while retaining compatibility with the
binaries distributed by Python.org. Not all use cases are supported,
but most common ways to wrap Fortran for Python are functional.

Compilation in this mode is usually enabled automatically, and can be
selected via the --fcompiler and --compiler options to
setup.py. Moreover, linking Fortran codes to static OpenBLAS is
supported; by default a gfortran compatible static archive
openblas.a is looked for.

np.linalg.pinv now works on stacked matrices

Previously it was limited to a single 2d array.

numpy.save aligns data to 64 bytes instead of 16

Saving NumPy arrays in the npy format with numpy.save inserts
padding before the array data to align it at 64 bytes. Previously
this was only 16 bytes (and sometimes less due to a bug in the code
for version 2). Now the alignment is 64 bytes, which matches the
widest SIMD instruction set commonly available, and is also the most
common cache line size. This makes npy files easier to use in
programs which open them with mmap, especially on Linux where an
mmap offset must be a multiple of the page size.

NPZ files now can be written without using temporary files

In Python 3.6+ numpy.savez and numpy.savez_compressed now write
directly to a ZIP file, without creating intermediate temporary files.

Better support for empty structured and string types

Structured types can contain zero fields, and string dtypes can contain zero
characters. Zero-length strings still cannot be created directly, and must be
constructed through structured dtypes::

str0 = np.empty(10, np.dtype([('v', str, N)]))['v']
void0 = np.empty(10, np.void)

It was always possible to work with these, but the following operations are
now supported for these arrays:

  • arr.sort()
  • arr.view(bytes)
  • arr.resize(...)
  • pickle.dumps(arr)

Support for decimal.Decimal in np.lib.financial

Unless otherwise stated all functions within the financial package now
support using the decimal.Decimal built-in type.

Float printing now uses "dragon4" algorithm for shortest decimal representation

The str and repr of floating-point values (16, 32, 64 and 128 bit) are
now printed to give the shortest decimal representation which uniquely
identifies the value from others of the same type. Previously this was only
true for float64 values. The remaining float types will now often be shorter
than in numpy 1.13. Arrays printed in scientific notation now also use the
shortest scientific representation, instead of fixed precision as before.

Additionally, the str of float scalars scalars will no longer be truncated
in python2, unlike python2 floats. np.double scalars now have a str
and repr identical to that of a python3 float.

New functions np.format_float_scientific and np.format_float_positional
are provided to generate these decimal representations.

A new option floatmode has been added to np.set_printoptions and
np.array2string, which gives control over uniqueness and rounding of
printed elements in an array. The new default is floatmode='maxprec' with
precision=8, which will print at most 8 fractional digits, or fewer if an
element can be uniquely represented with fewer. A useful new mode is
floatmode="unique", which will output enough digits to specify the array
elements uniquely.

Numpy complex-floating-scalars with values like inf*j or nan*j now
print as infj and nanj, like the pure-python complex type.

The FloatFormat and LongFloatFormat classes are deprecated and should
both be replaced by FloatingFormat. Similarly ComplexFormat and
LongComplexFormat should be replaced by ComplexFloatingFormat.

void datatype elements are now printed in hex notation

A hex representation compatible with the python bytes type is now printed
for unstructured np.void elements, e.g., V4 datatype. Previously, in
python2 the raw void data of the element was printed to stdout, or in python3
the integer byte values were shown.

printing style for void datatypes is now independently customizable

The printing style of np.void arrays is now independently customizable
using the formatter argument to np.set_printoptions, using the
'void' key, instead of the catch-all numpystr key as before.

Reduced memory usage of np.loadtxt

np.loadtxt now reads files in chunks instead of all at once which decreases
its memory usage significantly for large files.

Changes

Multiple-field indexing/assignment of structured arrays

The indexing and assignment of structured arrays with multiple fields has
changed in a number of ways, as warned about in previous releases.

First, indexing a structured array with multiple fields, e.g.,
arr[['f1', 'f3']], returns a view into the original array instead of a
copy. The returned view will have extra padding bytes corresponding to
intervening fields in the original array, unlike the copy in 1.13, which will
affect code such as arr[['f1', 'f3']].view(newdtype).

Second, assignment between structured arrays will now occur "by position"
instead of "by field name". The Nth field of the destination will be set to the
Nth field of the source regardless of field name, unlike in numpy versions 1.6
to 1.13 in which fields in the destination array were set to the
identically-named field in the source array or to 0 if the source did not have
a field.

Correspondingly, the order of fields in a structured dtypes now matters when
computing dtype equality. For example, with the dtypes ::

x = dtype({'names': ['A', 'B'], 'formats': ['i4', 'f4'], 'offsets': [0, 4]})
y = dtype({'names': ['B', 'A'], 'formats': ['f4', 'i4'], 'offsets': [4, 0]})

the expression x == y will now return False, unlike before.
This makes dictionary based dtype specifications like
dtype({&#39;a&#39;: (&#39;i4&#39;, 0), &#39;b&#39;: (&#39;f4&#39;, 4)}) dangerous in python < 3.6
since dict key order is not preserved in those versions.

Assignment from a structured array to a boolean array now raises a ValueError,
unlike in 1.13, where it always set the destination elements to True.

Assignment from structured array with more than one field to a non-structured
array now raises a ValueError. In 1.13 this copied just the first field of the
source to the destination.

Using field "titles" in multiple-field indexing is now disallowed, as is
repeating a field name in a multiple-field index.

The documentation for structured arrays in the user guide has been
significantly updated to reflect these changes.

Integer and Void scalars are now unaffected by np.set_string_function

Previously, unlike most other numpy scalars, the str and repr of
integer and void scalars could be controlled by np.set_string_function.
This is no longer possible.

0d array printing changed, style arg of array2string deprecated

Previously the str and repr of 0d arrays had idiosyncratic
implementations which returned str(a.item()) and &#39;array(&#39; + repr(a.item()) + &#39;)&#39; respectively for 0d array a, unlike both numpy
scalars and higher dimension ndarrays.

Now, the str of a 0d array acts like a numpy scalar using str(a[()])
and the repr acts like higher dimension arrays using formatter(a[()]),
where formatter can be specified using np.set_printoptions. The
style argument of np.array2string is deprecated.

This new behavior is disabled in 1.13 legacy printing mode, see compatibility
notes above.

Seeding RandomState using an array requires a 1-d array

RandomState previously would accept empty arrays or arrays with 2 or more
dimensions, which resulted in either a failure to seed (empty arrays) or for
some of the passed values to be ignored when setting the seed.

MaskedArray objects show a more useful repr

The repr of a MaskedArray is now closer to the python code that would
produce it, with arrays now being shown with commas and dtypes. Like the other
formatting changes, this can be disabled with the 1.13 legacy printing mode in
order to help transition doctests.

The repr of np.polynomial classes is more explicit

It now shows the domain and window parameters as keyword arguments to make
them more clear::

>>> np.polynomial.Polynomial(range(4))
Polynomial([0., 1., 2., 3.], domain=[-1, 1], window=[-1, 1])

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

matplotlib 2.1.0 -> 2.1.2

2.1.2

2.1.1

astropy 2.0.2 -> 2.0.4

2.0.4

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

Bug Fixes

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

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

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

  • Fixed IndexError when preserve_nan=True in convolve_fft. Added
    testing with preserve_nan=True. [7000]

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

  • The sites.json file is now parsed explicitly with a UTF-8 encoding. This
    means that future revisions to the file with unicode observatory names can
    be done without breaking the site registry parser. [7082]
  • Working around a bug in Numpy 1.14.0 that broke some coordinate
    transformations. [7105]
  • Fixed a bug where negative angles could be rounded wrongly when converting
    to a string with seconds omitted. [7148]

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

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

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

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

  • When datafile is missing, fits.tabledump uses input file name to build
    output file name. Fixed how it gets input file name from HDUList. [6976]
  • Fix in-place updates to scaled columns. [6956]

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

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

  • Fixed bug in identifying inherited registrations from multiple ancestors [7156]

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

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

  • Support masked array values in LinearLSQFitter (instead of silently
    ignorning the mask). [6927]
  • Fixed a bug in LevMarLSQFitter when fitting 2D models with constraints. [6705]

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

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

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

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

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

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

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

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

  • download_file function will check for cache downloaded from mirror URL
    first before attempting actual download if primary URL is unavailable. [6987]

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

  • Fixed test failures for astropy.visualization.wcsaxes which were due to
    local matplotlibrc files being taken into account. [7132]

astropy.vo
^^^^^^^^^^

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

Other Changes and Additions

  • Substantial performance improvement (potentially >1000x for some cases) when
    converting non-scalar coordinates.Angle objects to strings. [7004]

2.0.3

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

Bug Fixes

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

  • Ecliptic frame classes now support attributes v_x, v_y, v_z when
    using with a Cartesian representation. [6569]
  • Added a nicer error message when accidentally calling frame.representation
    instead of frame.data in the context of methods that use ._apply().
    [6561]
  • 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.
    [6612]
  • Improved accuracy of velocity calculation in EarthLocation.get_gcrs_posvel.
    [6699]
  • Improved accuracy of radial velocity corrections in
    ``SkyCoord.radial_velocity_correction```. [6861]
  • 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. [6508]

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

  • Version 0.2.1 of pytest-astropy is included as an external package.
    [6918]

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

  • Fix writing the result of fitsdiff to file with --output-file. [6621]
  • Fix a minor bug where FITS_rec instances can not be indexed with tuples
    and other sequences that end up with a scalar. [6955, 6966]

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

  • Fix ImportError when hdf5 is imported first in a fresh Python
    interpreter in Python 3. [6604, 6610]

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

  • Suppress errors during WCS creation in CCDData.read(). [6500]
  • 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. [6489]

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

  • Fixed an issue where the biweight statistics functions would
    sometimes cause runtime underflow/overflow errors for float32 input
    arrays. [6905]

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. [6714]
  • Fixed a problem when comparing a unicode masked column (on left side) to
    a bytes masked column (on right side). [6899]
  • Fixed a problem in comparing masked columns in bytes and unicode when the
    unicode had masked entries. [6899]

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

  • Fixed a bug that causes tests for rst files to not be run on certain
    platforms. [6555, 6608]
  • Fixed a bug that caused the doctestplus plugin to not work nicely with the
    hypothesis package. [6605, 6609]
  • Fixed a bug that meant that the data.astropy.org mirror could not be used when
    using --remote-data=astropy. [6724]
  • Support compatibility with new pytest-astropy plugins. [6918]
  • 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. [6890]

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

  • Initialization of Time instances now is consistent for all formats to
    ensure that -0.5 &lt;= jd2 &lt; 0.5. [6653]

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

  • Ensure that Quantity slices can be set with objects that have a unit
    attribute (such as Column). [6123]

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

  • download_files_in_parallel now respects the given timeout value.
    [6658]
  • Fixed bugs in remote data handling and also in IERS unit test related to path
    URL, and URI normalization on Windows. [6651]
  • Fixed a bug that caused get_pkg_data_fileobj to not work correctly when
    used with non-local data from inside packages. [6724]
  • Make sure get_pkg_data_fileobj fails if the URL can not be read, and
    correctly falls back on the mirror if necessary. [6767]
  • Fix the finddiff option in find_current_module to properly deal
    with submodules. [6767]
  • Fixed pyreadline import in utils.console.isatty for older IPython
    versions on Windows. [6800]

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

  • Fixed the vertical orientation of the fits2bitmap output bitmap
    image to match that of the FITS image. [6844, 6969]
  • Added a workaround for a bug in matplotlib so that the fits2bitmap
    script generates the correct output file type. [6969]

Other Changes and Additions

  • No longer require LaTeX to build the documentation locally and
    use mathjax instead. [6701]
  • Fixed broken links in the documentation. [6745]
  • Ensured that all tests use the Astropy data mirror if needed. [6767]

scipy 0.19.1 -> 1.0.0

1.0.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. Moreover, our development attention
will now shift to bug-fix releases on the 1.0.x branch, and on adding
new features on the master branch.

Some of the highlights of this release are:

  • Major build improvements. Windows wheels are available on PyPI for the
    first time, and continuous integration has been set up on Windows and OS X
    in addition to Linux.
  • A set of new ODE solvers and a unified interface to them
    (scipy.integrate.solve_ivp).
  • Two new trust region optimizers and a new linear programming method, with
    improved performance compared to what scipy.optimize offered previously.
  • Many new BLAS and LAPACK functions were wrapped. The BLAS wrappers are now
    complete.

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

This is also the last release to support LAPACK 3.1.x - 3.3.x. Moving the
lowest supported LAPACK version to >3.2.x was long blocked by Apple Accelerate
providing the LAPACK 3.2.1 API. We have decided that it's time to either drop
Accelerate or, if there is enough interest, provide shims for functions added
in more recent LAPACK versions so it can still be used.

New features

scipy.cluster improvements

scipy.cluster.hierarchy.optimal_leaf_ordering, a function to reorder a
linkage matrix to minimize distances between adjacent leaves, was added.

scipy.fftpack improvements

N-dimensional versions of the discrete sine and cosine transforms and their
inverses were added as dctn, idctn, dstn and idstn.

scipy.integrate improvements

A set of new ODE solvers have been added to scipy.integrate. The convenience
function scipy.integrate.solve_ivp allows uniform access to all solvers.
The individual solvers (RK23, RK45, Radau, BDF and LSODA)
can also be used directly.

scipy.linalg improvements

The BLAS wrappers in scipy.linalg.blas have been completed. Added functions
are *gbmv, *hbmv, *hpmv, *hpr, *hpr2, *spmv, *spr,
*tbmv, *tbsv, *tpmv, *tpsv, *trsm, *trsv, *sbmv,
*spr2,

Wrappers for the LAPACK functions *gels, *stev, *sytrd, *hetrd,
*sytf2, *hetrf, *sytrf, *sycon, *hecon, *gglse,
*stebz, *stemr, *sterf, and *stein have been added.

The function scipy.linalg.subspace_angles has been added to compute the
subspace angles between two matrices.

The function scipy.linalg.clarkson_woodruff_transform has been added.
It finds low-rank matrix approximation via the Clarkson-Woodruff Transform.

The functions scipy.linalg.eigh_tridiagonal and
scipy.linalg.eigvalsh_tridiagonal, which find the eigenvalues and
eigenvectors of tridiagonal hermitian/symmetric matrices, were added.

scipy.ndimage improvements

Support for homogeneous coordinate transforms has been added to
scipy.ndimage.affine_transform.

The ndimage C code underwent a significant refactoring, and is now
a lot easier to understand and maintain.

scipy.optimize improvements

The methods trust-region-exact and trust-krylov have been added to the
function scipy.optimize.minimize. These new trust-region methods solve the
subproblem with higher accuracy at the cost of more Hessian factorizations
(compared to dogleg) or more matrix vector products (compared to ncg) but
usually require less nonlinear iterations and are able to deal with indefinite
Hessians. They seem very competitive against the other Newton methods
implemented in scipy.

scipy.optimize.linprog gained an interior point method. Its performance is
superior (both in accuracy and speed) to the older simplex method.

scipy.signal improvements

An argument fs (sampling frequency) was added to the following functions:
firwin, firwin2, firls, and remez. This makes these functions
consistent with many other functions in scipy.signal in which the sampling
frequency can be specified.

scipy.signal.freqz has been sped up significantly for FIR filters.

scipy.sparse improvements

Iterating over and slicing of CSC and CSR matrices is now faster by up to ~35%.

The tocsr method of COO matrices is now several times faster.

The diagonal method of sparse matrices now takes a parameter, indicating
which diagonal to return.

scipy.sparse.linalg improvements

A new iterative solver for large-scale nonsymmetric sparse linear systems,
scipy.sparse.linalg.gcrotmk, was added. It implements GCROT(m,k), a
flexible variant of GCROT.

scipy.sparse.linalg.lsmr now accepts an initial guess, yielding potentially
faster convergence.

SuperLU was updated to version 5.2.1.

scipy.spatial improvements

Many distance metrics in scipy.spatial.distance gained support for weights.

The signatures of scipy.spatial.distance.pdist and
scipy.spatial.distance.cdist were changed to *args, **kwargs in order to
support a wider range of metrics (e.g. string-based metrics that need extra
keywords). Also, an optional out parameter was added to pdist and
cdist allowing the user to specify where the resulting distance matrix is
to be stored

scipy.stats improvements

The methods cdf and logcdf were added to
scipy.stats.multivariate_normal, providing the cumulative distribution
function of the multivariate normal distribution.

New statistical distance functions were added, namely
scipy.stats.wasserstein_distance for the first Wasserstein distance and
scipy.stats.energy_distance for the energy distance.

Deprecated features

The following functions in scipy.misc are deprecated: bytescale,
fromimage, imfilter, imread, imresize, imrotate,
imsave, imshow and toimage. Most of those functions have unexpected
behavior (like rescaling and type casting image data without the user asking
for that). Other functions simply have better alternatives.

scipy.interpolate.interpolate_wrapper and all functions in that submodule
are deprecated. This was a never finished set of wrapper functions which is
not relevant anymore.

The fillvalue of scipy.signal.convolve2d will be cast directly to the
dtypes of the input arrays in the future and checked that it is a scalar or
an array with a single element.

Backwards incompatible changes

The following deprecated functions have been removed from scipy.stats:
betai, chisqprob, f_value, histogram, histogram2,
pdf_fromgamma, signaltonoise, square_of_sums, ss and
threshold.

The following deprecated functions have been removed from scipy.stats.mstats:
betai, f_value_wilks_lambda, signaltonoise and threshold.

The deprecated a and reta keywords have been removed from
scipy.stats.shapiro.

The deprecated functions sparse.csgraph.cs_graph_components and
sparse.linalg.symeig have been removed from scipy.sparse.

The following deprecated keywords have been removed in scipy.sparse.linalg:
drop_tol from splu, and xtype from bicg, bicgstab, cg,
cgs, gmres, qmr and minres.

The deprecated functions expm2 and expm3 have been removed from
scipy.linalg. The deprecated keyword q was removed from
scipy.linalg.expm. And the deprecated submodule linalg.calc_lwork was
removed.

The deprecated functions C2K, K2C, F2C, C2F, F2K and
K2F have been removed from scipy.constants.

The deprecated ppform class was removed from scipy.interpolate.

The deprecated keyword iprint was removed from scipy.optimize.fmin_cobyla.

The default value for the zero_phase keyword of scipy.signal.decimate
has been changed to True.

The kmeans and kmeans2 functions in scipy.cluster.vq changed the
method used for random initialization, so using a fixed random seed will
not necessarily produce the same results as in previous versions.

scipy.special.gammaln does not accept complex arguments anymore.

The deprecated functions sph_jn, sph_yn, sph_jnyn, sph_in,
sph_kn, and sph_inkn have been removed. Users should instead use
the functions spherical_jn, spherical_yn, spherical_in, and
spherical_kn. Be aware that the new functions have different
signatures.

The cross-class properties of scipy.signal.lti systems have been removed.
The following properties/setters have been removed:

Name - (accessing/setting has been removed) - (setting has been removed)

  • StateSpace - (num, den, gain) - (zeros, poles)
  • TransferFunction (A, B, C, D, gain) - (zeros, poles)
  • ZerosPolesGain (A, B, C, D, num, den) - ()

signal.freqz(b, a) with b or a >1-D raises a ValueError. This
was a corner case for which it was unclear that the behavior was well-defined.

The method var of scipy.stats.dirichlet now returns a scalar rather than
an ndarray when the length of alpha is 1.

Other changes

SciPy now has a formal governance structure. It consists of a BDFL (Pauli
Virtanen) and a Steering Committee. See the governance document &lt;https://github.com/scipy/scipy/blob/master/doc/source/dev/governance/governance.rst&gt;_
for details.

It is now possible to build SciPy on Windows with MSVC + gfortran! Continuous
integration has been set up for this build configuration on Appveyor, building
against OpenBLAS.

Continuous integration for OS X has been set up on TravisCI.

The SciPy test suite has been migrated from nose to pytest.

scipy/_distributor_init.py was added to allow redistributors of SciPy to
add custom code that needs to run when importing SciPy (e.g. checks for
hardware, DLL search paths, etc.).

Support for PEP 518 (specifying build system requirements) was added - see
pyproject.toml in the root of the SciPy repository.

In order to have consistent function names, the function
scipy.linalg.solve_lyapunov is renamed to
scipy.linalg.solve_continuous_lyapunov. The old name is kept for
backwards-compatibility.

Authors

  • arcady +
  • xoviat +
  • Anton Akhmerov
  • Dominic Antonacci +
  • Alessandro Pietro Bardelli
  • Ved Basu +
  • Michael James Bedford +
  • Ray Bell +
  • Juan M. Bello-Rivas +
  • Sebastian Berg
  • Felix Berkenkamp
  • Jyotirmoy Bhattacharya +
  • Matthew Brett
  • Jonathan Bright
  • Bruno Jiménez +
  • Evgeni Burovski
  • Patrick Callier
  • Mark Campanelli +
  • CJ Carey
  • Adam Cox +
  • Michael Danilov +
  • David Haberthür +
  • Andras Deak +
  • Philip DeBoer
  • Anne-Sylvie Deutsch
  • Cathy Douglass +
  • Dominic Else +
  • Guo Fei +
  • Roman Feldbauer +
  • Yu Feng
  • Jaime Fernandez del Rio
  • Orestis Floros +
  • David Freese +
  • Adam Geitgey +
  • James Gerity +
  • Dezmond Goff +
  • Christoph Gohlke
  • Ralf Gommers
  • Dirk Gorissen +
  • Matt Haberland +
  • David Hagen +
  • Charles Harris
  • Lam Yuen Hei +
  • Jean Helie +
  • Gaute Hope +
  • Guillaume Horel +
  • Franziska Horn +
  • Yevhenii Hyzyla +
  • Vladislav Iakovlev +
  • Marvin Kastner +
  • Mher Kazandjian
  • Thomas Keck
  • Adam Kurkiewicz +
  • Ronan Lamy +
  • J.L. Lanfranchi +
  • Eric Larson
  • Denis Laxalde
  • Gregory R. Lee
  • Felix Lenders +
  • Evan Limanto
  • Julian Lukwata +
  • François Magimel
  • Syrtis Major +
  • Charles Masson +
  • Nikolay Mayorov
  • Tobias Megies
  • Markus Meister +
  • Roman Mirochnik +
  • Jordi Montes +
  • Nathan Musoke +
  • Andrew Nelson
  • M.J. Nichol
  • Nico Schlömer +
  • Juan Nunez-Iglesias
  • Arno Onken +
  • Dima Pasechnik +
  • Ashwin Pathak +
  • Stefan Peterson
  • Ilhan Polat
  • Andrey Portnoy +
  • Ravi Kumar Prasad +
  • Aman Pratik
  • Eric Quintero
  • Vedant Rathore +
  • Tyler Reddy
  • Joscha Reimer
  • Philipp Rentzsch +
  • Antonio Horta Ribeiro
  • Ned Richards +
  • Kevin Rose +
  • Benoit Rostykus +
  • Matt Ruffalo +
  • Eli Sadoff +
  • Pim Schellart
  • Klaus Sembritzki +
  • Nikolay Shebanov +
  • Jonathan Tammo Siebert
  • Scott Sievert
  • Max Silbiger +
  • Mandeep Singh +
  • Michael Stewart +
  • Jonathan Sutton +
  • Deep Tavker +
  • Martin Thoma
  • James Tocknell +
  • Aleksandar Trifunovic +
  • Paul van Mulbregt +
  • Jacob Vanderplas
  • Aditya Vijaykumar
  • Pauli Virtanen
  • James Webber
  • Warren Weckesser
  • Eric Wieser +
  • Josh Wilson
  • Zhiqing Xiao +
  • Evgeny Zhurko
  • Nikolay Zinov +
  • Zé Vinícius +

A total of 118 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.

1.0.0rc2

1.0.0rc1

1.0.0b1

This is the beta release for SciPy 1.0.0

hypothesis 3.31.2 -> 3.44.26

3.44.26


This release fixes some formatting issues in the Hypothesis source code.
It should have no externally visible effects.


3.44.25


This release changes the way in which Hypothesis tries to shrink the size of
examples. It probably won't have much impact, but might make shrinking faster
in some cases. It is unlikely but not impossible that it will change the
resulting examples.


3.44.24


This release fixes dependency information when installing Hypothesis
from a binary "wheel" distribution.

  • The install_requires for :pypi:enum34 is resolved at install
    time, rather than at build time (with potentially different results).
  • Django has fixed their python_requires for versions 2.0.0 onward,
    simplifying Python2-compatible constraints for downstream projects.

3.44.23


This release improves shrinking in a class of pathological examples that you
are probably never hitting in practice. If you are hitting them in practice
this should be a significant speed up in shrinking. If you are not, you are
very unlikely to notice any difference. You might see a slight slow down and/or
slightly better falsifying examples.


3.44.22


This release fixes a dependency problem. It was possible to install
Hypothesis with an old version of :pypi:attrs, which would throw a
TypeError as soon as you tried to import hypothesis. Specifically, you
need attrs 16.0.0 or newer.

Hypothesis will now require the correct version of attrs when installing.


3.44.21


This change adds some additional structural information that Hypothesis will
use to guide its search.

You mostly shouldn't see much difference from this. The two most likely effects
you would notice are:

  1. Hypothesis stores slightly more examples in its database for passing tests.
  2. Hypothesis may find new bugs that it was previously missing, but it
    probably won't (this is a basic implementation of the feature that is
    intended to support future work. Although it is useful on its own, it's not
    very useful on its own).

3.44.20


This is a small refactoring release that changes how Hypothesis tracks some
information about the boundary of examples in its internal representation.

You are unlikely to see much difference in behaviour, but memory usage and
run time may both go down slightly during normal test execution, and when
failing Hypothesis might print its failing example slightly sooner.


3.44.19


This changes how we compute the default average_size for all collection
strategies. Previously setting a max_size without setting an
average_size would have the seemingly paradoxical effect of making data
generation slower, because it would raise the average size from its default.
Now setting max_size will either leave the default unchanged or lower it
from its default.

If you are currently experiencing this problem, this may make your tests
substantially faster. If you are not, this will likely have no effect on you.


3.44.18


This is a small refactoring release that changes how Hypothesis detects when
the structure of data generation depends on earlier values generated (e.g. when
using :ref:flatmap &lt;flatmap&gt; or :func:~hypothesis.strategies.composite).
It should not have any observable effect on behaviour.


3.44.17


This release fixes a typo in internal documentation, and has no user-visible impact.


3.44.16


This release improves test case reduction for recursive data structures.
Hypothesis now guarantees that whenever a strategy calls itself recursively
(usually this will happen because you are using :func:~hypothesis.strategies.deferred),
any recursive call may replace the top level value. e.g. given a tree structure,
Hypothesis will always try replacing it with a subtree.

Additionally this introduces a new heuristic that may in some circumstances
significantly speed up test case reduction - Hypothesis should be better at
immediately replacing elements drawn inside another strategy with their minimal
possible value.


3.44.15


:func:~hypothesis.strategies.from_type can now resolve recursive types
such as binary trees (:issue:1004). Detection of non-type arguments has
also improved, leading to better error messages in many cases involving
:pep:forward references &lt;484forward-references&gt;.


3.44.14


This release fixes a bug in the shrinker that prevented the optimisations in

3.44.13


This release changes the average bit length of values drawn from
:func:~hypothesis.strategies.integers to be much smaller. Additionally it
changes the shrinking order so that now size is considered before sign - e.g.
-1 will be preferred to +10.

The new internal format for integers required some changes to the minimizer to
make work well, so you may also see some improvements to example quality in
unrelated areas.


3.44.12


This changes Hypothesis's internal implementation of weighted sampling. This
will affect example distribution and quality, but you shouldn't see any other
effects.


3.44.11


This is a change to some internals around how Hypothesis handles avoiding
generating duplicate examples and seeking out novel regions of the search
space.

You are unlikely to see much difference as a result of it, but it fixes
a bug where an internal assertion could theoretically be triggered and has some
minor effects on the distribution of examples so could potentially find bugs
that have previously been missed.


3.44.10


This patch avoids creating debug statements when debugging is disabled.
Profiling suggests this is a 5-10% performance improvement (:issue:1040).


3.44.9


This patch blacklists null characters (&#39;\x00&#39;) in automatically created
strategies for Django :obj:~django:django.db.models.CharField and
:obj:~django:django.db.models.TextField, due to a database issue which
was recently fixed upstream &lt;https://code.djangoproject.com/ticket/28201&gt;_
(Hypothesis :issue:1045).


3.44.8


This release makes the Hypothesis shrinker slightly less greedy in order to
avoid local minima - when it gets stuck, it makes a small attempt to search
around the final example it would previously have returned to find a new
starting point to shrink from. This should improve example quality in some
cases, especially ones where the test data has dependencies among parts of it
that make it difficult for Hypothesis to proceed.


3.44.7


This release adds support for Django 2 &lt;https://www.djangoproject.com/weblog/2017/dec/02/django-20-released/&gt;_ in
the hypothesis-django extra.

This release drops support for Django 1.10, as it is no longer supported by
the Django team.


3.44.6


This release speeds up test case reduction in many examples by being better at
detecting large shrinks it can use to discard redundant parts of its input.
This will be particularly noticeable in examples that make use of filtering
and for some integer ranges.


3.44.5


Happy new year!

This is a no-op release that updates the year range on all of
the copyright headers in our source to include 2018.


3.44.4


This release fixes :issue:1044, which slowed tests by up to 6%
due to broken caching.


3.44.3


This release improves the shrinker in cases where examples drawn earlier can
affect how much data is drawn later (e.g. when you draw a length parameter in
a composite and then draw that many elements). Examples found in cases like
this should now be much closer to minimal.


3.44.2


This is a pure refactoring release which changes how Hypothesis manages its
set of examples internally. It should have no externally visible effects.


3.44.1


This release fixes :issue:997, in which under some circumstances the body of
test

@coveralls
Copy link

Coverage Status

Coverage remained the same at 96.236% when pulling 6178553 on pyup/scheduled-update-2018-02-06 into bb74402 on develop.

1 similar comment
@coveralls
Copy link

Coverage Status

Coverage remained the same at 96.236% when pulling 6178553 on pyup/scheduled-update-2018-02-06 into bb74402 on develop.

@jason-neal jason-neal merged commit b2fb1b5 into develop Feb 6, 2018
@jason-neal jason-neal deleted the pyup/scheduled-update-2018-02-06 branch March 20, 2018 17:03
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