Changelog
### 0.44.0
```
--------------
IMPORTANT: In this release a few significant deprecations (and some less
significant ones) are being made, users are encouraged to read the related
documentation.
General enhancements in this release include:
- Numba is backed by LLVM 8 on all platforms apart from ppc64le, which, due to
bugs, remains on the LLVM 7.x series.
- Numba's dictionary support now includes type inference for keys and values.
- The .view() method now works for NumPy scalar types.
- Newly supported NumPy functions added: np.delete, np.nanquantile, np.quantile,
np.repeat, np.shape.
In addition considerable effort has been made to fix some long standing bugs and
a large number of other bugs, the "Fixes" section is very large this time!
Enhancements from user contributed PRs (with thanks!):
- Max Bolingbroke added support for the selective use of ``fastmath`` flags in
3847.
- Rob Ennis made min() and max() work on iterables in 3820 and added
np.quantile and np.nanquantile in 3899.
- Sergey Shalnov added numerous unicode string related features, zfill in 3978,
ljust in 4001, rjust and center in 4044 and strip, lstrip and rstrip in
4048.
- Guilherme Leobas added support for np.delete in 3890
- Christoph Deil exposed the Numba CLI via ``python -m numba`` in 4066 and made
numerous documentation fixes.
- Leo Schwarz wrote the bulk of the code for jitclass default constructor
arguments in 3852.
- Nick White enhanced the CUDA backend to use min/max PTX instructions where
possible in 4054.
- Lucio Fernandez-Arjona implemented the unicode string ``__mul__`` function in
3952.
- Dimitri Vorona wrote the bulk of the code to implement getitem and setitem for
jitclass in 3861.
General Enhancements:
* PR 3820: Min max on iterables
* PR 3842: Unicode type iteration
* PR 3847: Allow fine-grained control of fastmath flags to partially address 2923
* PR 3852: Continuation of PR 2894
* PR 3861: Continuation of PR 3730
* PR 3890: Add support for np.delete
* PR 3899: Support for np.quantile and np.nanquantile
* PR 3900: Fix 3457 :: Implements np.repeat
* PR 3928: Add .view() method for NumPy scalars
* PR 3939: Update icc_rt clone recipe.
* PR 3952: __mul__ for strings, initial implementation and tests
* PR 3956: Type-inferred dictionary
* PR 3959: Create a view for string slicing to avoid extra allocations
* PR 3978: zfill operation implementation
* PR 4001: ljust operation implementation
* PR 4010: Support `dict()` and `{}`
* PR 4022: Support for llvm 8
* PR 4034: Make type.Optional str more representative
* PR 4041: Deprecation warnings
* PR 4044: rjust and center operations implementation
* PR 4048: strip, lstrip and rstrip operations implementation
* PR 4066: Expose numba CLI via python -m numba
* PR 4081: Impl `np.shape` and support function for `asarray`.
* PR 4091: Deprecate the use of iternext_impl without RefType
CUDA Enhancements/Fixes:
* PR 3933: Adds `.nbytes` property to CUDA device array objects.
* PR 4011: Add .inspect_ptx() to cuda device function
* PR 4054: CUDA: Use min/max PTX Instructions
* PR 4096: Update env-vars for CUDA libraries lookup
Documentation Updates:
* PR 3867: Code repository map
* PR 3918: adding Joris' Fosdem 2019 presentation
* PR 3926: order talks on applications of Numba by date
* PR 3943: fix two small typos in vectorize docs
* PR 3944: Fixup jitclass docs
* PR 3990: mention preprint repo in FAQ. Fixes 3981
* PR 4012: Correct runtests command in contributing.rst
* PR 4043: fix typo
* PR 4047: Ambiguous Documentation fix for guvectorize.
* PR 4060: Remove remaining mentions of autojit in docs
* PR 4063: Fix annotate example in docstring
* PR 4065: Add FAQ entry explaining Numba project name
* PR 4079: Add Documentation for atomicity of typed.Dict
* PR 4105: Remove info about CUDA ENVVAR potential replacement
Fixes:
* PR 3719: Resolves issue 3528. Adds support for slices when not using parallel=True.
* PR 3727: Remove dels for known dead vars.
* PR 3845: Fix mutable flag transmission in .astype
* PR 3853: Fix some minor issues in the C source.
* PR 3862: Correct boolean reinterpretation of data
* PR 3863: Comments out the appveyor badge
* PR 3869: fixes flake8 after merge
* PR 3871: Add assert to ir.py to help enforce correct structuring
* PR 3881: fix preparfor dtype transform for datetime64
* PR 3884: Prevent mutation of objmode fallback IR.
* PR 3885: Updates for llvmlite 0.29
* PR 3886: Use `safe_load` from pyyaml.
* PR 3887: Add tolerance to network errors by permitting conda to retry
* PR 3893: Fix casting in namedtuple ctor.
* PR 3894: Fix array inliner for multiple array definition.
* PR 3905: Cherrypick 3903 to main
* PR 3920: Raise better error if unsupported jump opcode found.
* PR 3927: Apply flake8 to the numpy related files
* PR 3935: Silence DeprecationWarning
* PR 3938: Better error message for unknown opcode
* PR 3941: Fix typing of ufuncs in parfor conversion
* PR 3946: Return variable renaming dict from inline_closurecall
* PR 3962: Fix bug in alignment computation of `Record.make_c_struct`
* PR 3967: Fix error with pickling unicode
* PR 3964: Unicode split algo versioning
* PR 3975: Add handler for unknown locale to numba -s
* PR 3991: Permit Optionals in ufunc machinery
* PR 3995: Remove assert in type inference causing poor error message.
* PR 3996: add is_ascii flag to UnicodeType
* PR 4009: Prevent zero division error in np.linalg.cond
* PR 4014: Resolves 4007.
* PR 4021: Add a more specific error message for invalid write to a global.
* PR 4023: Fix handling of titles in record dtype
* PR 4024: Do a check if a call is const before saying that an object is multiply defined.
* PR 4027: Fix issue 4020. Turn off no_cpython_wrapper flag when compiling for…
* PR 4033: [WIP] Fixing wrong dtype of array inside reflected list 4028
* PR 4061: Change IPython cache dir name to numba_cache
* PR 4067: Delete examples/notebooks/LinearRegr.py
* PR 4070: Catch writes to global typed.Dict and raise.
* PR 4078: Check tuple length
* PR 4084: Fix missing incref on optional return None
* PR 4089: Make the warnings fixer flush work for warning comparing on type.
* PR 4094: Fix function definition finding logic for commented def
* PR 4100: Fix alignment check on 32-bit.
* PR 4104: Use PEP 508 compliant env markers for install deps
Contributors:
* Benjamin Zaitlen
* Christoph Deil
* David Hirschfeld
* Dimitri Vorona
* Ehsan Totoni (core dev)
* Guilherme Leobas
* Leo Schwarz
* Lucio Fernandez-Arjona
* Max Bolingbroke
* NanduTej
* Nick White
* Ravi Teja Gutta
* Rob Ennis
* Sergey Shalnov
* Siu Kwan Lam (core dev)
* Stan Seibert (core dev)
* Stuart Archibald (core dev)
* Todd A. Anderson (core dev)
* Valentin Haenel (core dev)
```
Links
- PyPI: https://pypi.org/project/numba
- Changelog: https://pyup.io/changelogs/numba/
- Repo: http://numba.github.com
Changelog
### 1.16.3
```
==========================
The NumPy 1.16.3 release fixes bugs reported against the 1.16.2 release, and
also backports several enhancements from master that seem appropriate for a
release series that is the last to support Python 2.7. The wheels on PyPI are
linked with OpenBLAS v0.3.4+, which should fix the known threading issues
found in previous OpenBLAS versions.
Downstream developers building this release should use Cython >= 0.29.2 and,
if using OpenBLAS, OpenBLAS > v0.3.4.
The most noticeable change in this release is that unpickling object arrays
when loading ``*.npy`` or ``*.npz`` files now requires an explicit opt-in.
This backwards incompatible change was made in response to
`CVE-2019-6446 <https://nvd.nist.gov/vuln/detail/CVE-2019-6446>`_.
Compatibility notes
===================
Unpickling while loading requires explicit opt-in
-------------------------------------------------
The functions ``np.load``, and ``np.lib.format.read_array`` take an
`allow_pickle` keyword which now defaults to ``False`` in response to
`CVE-2019-6446 <https://nvd.nist.gov/vuln/detail/CVE-2019-6446>`_.
Improvements
============
Covariance in `random.mvnormal` cast to double
----------------------------------------------
This should make the tolerance used when checking the singular values of the
covariance matrix more meaningful.
Changes
=======
``__array_interface__`` offset now works as documented
------------------------------------------------------
The interface may use an ``offset`` value that was previously mistakenly
ignored.
==========================
```
Links
- PyPI: https://pypi.org/project/numpy
- Changelog: https://pyup.io/changelogs/numpy/
- Homepage: https://www.numpy.org
Changelog
### 1.3.0
```
many new features, numerous bug-fixes, improved test coverage and better
documentation. There have been some 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.3.x branch, and on adding new features on the master branch.
This release requires Python 3.5+ and NumPy 1.13.3 or greater.
For running on PyPy, PyPy3 6.0+ and NumPy 1.15.0 are required.
Highlights of this release
--------------------------
- Three new ``stats`` functions, a rewrite of ``pearsonr``, and an exact
computation of the Kolmogorov-Smirnov two-sample test
- A new Cython API for bounded scalar-function root-finders in `scipy.optimize`
- Substantial ``CSR`` and ``CSC`` sparse matrix indexing performance
improvements
- Added support for interpolation of rotations with continuous angular
rate and acceleration in ``RotationSpline``
New features
============
`scipy.interpolate` improvements
--------------------------------
A new class ``CubicHermiteSpline`` is introduced. It is a piecewise-cubic
interpolator which matches observed values and first derivatives. Existing
cubic interpolators ``CubicSpline``, ``PchipInterpolator`` and
``Akima1DInterpolator`` were made subclasses of ``CubicHermiteSpline``.
`scipy.io` improvements
-----------------------
For the Attribute-Relation File Format (ARFF) `scipy.io.arff.loadarff`
now supports relational attributes.
`scipy.io.mmread` can now parse Matrix Market format files with empty lines.
`scipy.linalg` improvements
---------------------------
Added wrappers for ``?syconv`` routines, which convert a symmetric matrix
given by a triangular matrix factorization into two matrices and vice versa.
`scipy.linalg.clarkson_woodruff_transform` now uses an algorithm that leverages
sparsity. This may provide a 60-90 percent speedup for dense input matrices.
Truly sparse input matrices should also benefit from the improved sketch
algorithm, which now correctly runs in ``O(nnz(A))`` time.
Added new functions to calculate symmetric Fiedler matrices and
Fiedler companion matrices, named `scipy.linalg.fiedler` and
`scipy.linalg.fiedler_companion`, respectively. These may be used
for root finding.
`scipy.ndimage` improvements
----------------------------
Gaussian filter performances may improve by an order of magnitude in
some cases, thanks to removal of a dependence on ``np.polynomial``. This
may impact `scipy.ndimage.gaussian_filter` for example.
`scipy.optimize` improvements
-----------------------------
The `scipy.optimize.brute` minimizer obtained a new keyword ``workers``, which
can be used to parallelize computation.
A Cython API for bounded scalar-function root-finders in `scipy.optimize`
is available in a new module `scipy.optimize.cython_optimize` via ``cimport``.
This API may be used with ``nogil`` and ``prange`` to loop
over an array of function arguments to solve for an array of roots more
quickly than with pure Python.
``'interior-point'`` is now the default method for ``linprog``, and
``'interior-point'`` now uses SuiteSparse for sparse problems when the
required scikits (scikit-umfpack and scikit-sparse) are available.
On benchmark problems (gh-10026), execution time reductions by factors of 2-3
were typical. Also, a new ``method='revised simplex'`` has been added.
It is not as fast or robust as ``method='interior-point'``, but it is a faster,
more robust, and equally accurate substitute for the legacy
``method='simplex'``.
``differential_evolution`` can now use a ``Bounds`` class to specify the
bounds for the optimizing argument of a function.
`scipy.optimize.dual_annealing` performance improvements related to
vectorisation of some internal code.
`scipy.signal` improvements
---------------------------
Two additional methods of discretization are now supported by
`scipy.signal.cont2discrete`: ``impulse`` and ``foh``.
`scipy.signal.firls` now uses faster solvers
`scipy.signal.detrend` now has a lower physical memory footprint in some
cases, which may be leveraged using the new ``overwrite_data`` keyword argument
`scipy.signal.firwin` ``pass_zero`` argument now accepts new string arguments
that allow specification of the desired filter type: ``'bandpass'``,
``'lowpass'``, ``'highpass'``, and ``'bandstop'``
`scipy.signal.sosfilt` may have improved performance due to lower retention
of the global interpreter lock (GIL) in algorithm
`scipy.sparse` improvements
---------------------------
A new keyword was added to ``csgraph.dijsktra`` that
allows users to query the shortest path to ANY of the passed in indices,
as opposed to the shortest path to EVERY passed index.
`scipy.sparse.linalg.lsmr` performance has been improved by roughly 10 percent
on large problems
Improved performance and reduced physical memory footprint of the algorithm
used by `scipy.sparse.linalg.lobpcg`
``CSR`` and ``CSC`` sparse matrix fancy indexing performance has been
improved substantially
`scipy.spatial` improvements
----------------------------
`scipy.spatial.ConvexHull` now has a ``good`` attribute that can be used
alongsize the ``QGn`` Qhull options to determine which external facets of a
convex hull are visible from an external query point.
`scipy.spatial.cKDTree.query_ball_point` has been modernized to use some newer
Cython features, including GIL handling and exception translation. An issue
with ``return_sorted=True`` and scalar queries was fixed, and a new mode named
``return_length`` was added. ``return_length`` only computes the length of the
returned indices list instead of allocating the array every time.
`scipy.spatial.transform.RotationSpline` has been added to enable interpolation
of rotations with continuous angular rates and acceleration
`scipy.stats` improvements
--------------------------
Added a new function to compute the Epps-Singleton test statistic,
`scipy.stats.epps_singleton_2samp`, which can be applied to continuous and
discrete distributions.
New functions `scipy.stats.median_absolute_deviation` and `scipy.stats.gstd`
(geometric standard deviation) were added. The `scipy.stats.combine_pvalues`
method now supports ``pearson``, ``tippett`` and ``mudholkar_george`` pvalue
combination methods.
The `scipy.stats.ortho_group` and `scipy.stats.special_ortho_group`
``rvs(dim)`` functions' algorithms were updated from a ``O(dim^4)``
implementation to a ``O(dim^3)`` which gives large speed improvements
for ``dim>100``.
A rewrite of `scipy.stats.pearsonr` to use a more robust algorithm,
provide meaningful exceptions and warnings on potentially pathological input,
and fix at least five separate reported issues in the original implementation.
Improved the precision of ``hypergeom.logcdf`` and ``hypergeom.logsf``.
Added exact computation for Kolmogorov-Smirnov (KS) two-sample test, replacing
the previously approximate computation for the two-sided test `stats.ks_2samp`.
Also added a one-sided, two-sample KS test, and a keyword ``alternative`` to
`stats.ks_2samp`.
Backwards incompatible changes
==============================
`scipy.interpolate` changes
---------------------------
Functions from ``scipy.interpolate`` (``spleval``, ``spline``, ``splmake``,
and ``spltopp``) and functions from ``scipy.misc`` (``bytescale``,
``fromimage``, ``imfilter``, ``imread``, ``imresize``, ``imrotate``,
``imsave``, ``imshow``, ``toimage``) have been removed. The former set has
been deprecated since v0.19.0 and the latter has been deprecated since v1.0.0.
Similarly, aliases from ``scipy.misc`` (``comb``, ``factorial``,
``factorial2``, ``factorialk``, ``logsumexp``, ``pade``, ``info``, ``source``,
``who``) which have been deprecated since v1.0.0 are removed.
`SciPy documentation for
```
Links
- PyPI: https://pypi.org/project/scipy
- Changelog: https://pyup.io/changelogs/scipy/
- Repo: https://github.com/scipy/scipy/releases
- Homepage: https://www.scipy.org
Changelog
### 1.3.4
```
:released: May 27, 2019
.. change::
:tags: feature, mssql
:tickets: 4657
Added support for SQL Server filtered indexes, via the ``mssql_where``
parameter which works similarly to that of the ``postgresql_where`` index
function in the PostgreSQL dialect.
.. seealso::
:ref:`mssql_index_where`
.. change::
:tags: bug, misc
:tickets: 4625
Removed errant "sqla_nose.py" symbol from MANIFEST.in which created an
undesirable warning message.
.. change::
:tags: bug, sql
:tickets: 4653
Fixed that the :class:`.GenericFunction` class was inadvertently
registering itself as one of the named functions. Pull request courtesy
Adrien Berchet.
.. change::
:tags: bug, engine, postgresql
:tickets: 4663
Moved the "rollback" which occurs during dialect initialization so that it
occurs after additional dialect-specific initialize steps, in particular
those of the psycopg2 dialect which would inadvertently leave transactional
state on the first new connection, which could interfere with some
psycopg2-specific APIs which require that no transaction is started. Pull
request courtesy Matthew Wilkes.
.. change::
:tags: bug, orm
:tickets: 4695
Fixed issue where the :paramref:`.AttributeEvents.active_history` flag
would not be set for an event listener that propgated to a subclass via the
:paramref:`.AttributeEvents.propagate` flag. This bug has been present
for the full span of the :class:`.AttributeEvents` system.
.. change::
:tags: bug, orm
:tickets: 4690
Fixed regression where new association proxy system was still not proxying
hybrid attributes when they made use of the ``hybrid_property.expression``
decorator to return an alternate SQL expression, or when the hybrid
returned an arbitrary :class:`.PropComparator`, at the expression level.
This involved futher generalization of the heuristics used to detect the
type of object being proxied at the level of :class:`.QueryableAttribute`,
to better detect if the descriptor ultimately serves mapped classes or
column expressions.
.. change::
:tags: bug, orm
:tickets: 4686
Applied the mapper "configure mutex" against the declarative class mapping
process, to guard against the race which can occur if mappers are used
while dynamic module import schemes are still in the process of configuring
mappers for related classes. This does not guard against all possible race
conditions, such as if the concurrent import has not yet encountered the
dependent classes as of yet, however it guards against as much as possible
within the SQLAlchemy declarative process.
.. change::
:tags: bug, mssql
:tickets: 4680
Added error code 20047 to "is_disconnect" for pymssql. Pull request
courtesy Jon Schuff.
.. change::
:tags: bug, postgresql, orm
:tickets: 4661
Fixed an issue where the "number of rows matched" warning would emit even if
the dialect reported "supports_sane_multi_rowcount=False", as is the case
for psycogp2 with ``use_batch_mode=True`` and others.
.. change::
:tags: bug, sql
:tickets: 4618
Fixed issue where double negation of a boolean column wouldn't reset
the "NOT" operator.
.. change::
:tags: mysql, bug
:tickets: 4650
Added support for DROP CHECK constraint which is required by MySQL 8.0.16
to drop a CHECK constraint; MariaDB supports plain DROP CONSTRAINT. The
logic distinguishes between the two syntaxes by checking the server version
string for MariaDB presence. Alembic migrations has already worked
around this issue by implementing its own DROP for MySQL / MariaDB CHECK
constraints, however this change implements it straight in Core so that its
available for general use. Pull request courtesy Hannes Hansen.
.. change::
:tags: bug, orm
:tickets: 4647
A warning is now emitted for the case where a transient object is being
merged into the session with :meth:`.Session.merge` when that object is
already transient in the :class:`.Session`. This warns for the case where
the object would normally be double-inserted.
.. change::
:tags: bug, orm
:tickets: 4676
Fixed regression in new relationship m2o comparison logic first introduced
at :ref:`change_4359` when comparing to an attribute that is persisted as
NULL and is in an un-fetched state in the mapped instance. Since the
attribute has no explicit default, it needs to default to NULL when
accessed in a persistent setting.
.. change::
:tags: bug, sql
:tickets: 4569
The :class:`.GenericFunction` namespace is being migrated so that function
names are looked up in a case-insensitive manner, as SQL functions do not
collide on case sensitive differences nor is this something which would
occur with user-defined functions or stored procedures. Lookups for
functions declared with :class:`.GenericFunction` now use a case
insensitive scheme, however a deprecation case is supported which allows
two or more :class:`.GenericFunction` objects with the same name of
different cases to exist, which will cause case sensitive lookups to occur
for that particular name, while emitting a warning at function registration
time. Thanks to Adrien Berchet for a lot of work on this complicated
feature.
.. changelog::
```
### 1.3.3
```
:released: April 15, 2019
.. change::
:tags: bug, postgresql
:tickets: 4601
Fixed regression from release 1.3.2 caused by :ticket:`4562` where a URL
that contained only a query string and no hostname, such as for the
purposes of specifying a service file with connection information, would no
longer be propagated to psycopg2 properly. The change in :ticket:`4562`
has been adjusted to further suit psycopg2's exact requirements, which is
that if there are any connection parameters whatsoever, the "dsn" parameter
is no longer required, so in this case the query string parameters are
passed alone.
.. change::
:tags: bug, pool
:tickets: 4585
Fixed behavioral regression as a result of deprecating the "use_threadlocal"
flag for :class:`.Pool`, where the :class:`.SingletonThreadPool` no longer
makes use of this option which causes the "rollback on return" logic to take
place when the same :class:`.Engine` is used multiple times in the context
of a transaction to connect or implicitly execute, thereby cancelling the
transaction. While this is not the recommended way to work with engines
and connections, it is nonetheless a confusing behavioral change as when
using :class:`.SingletonThreadPool`, the transaction should stay open
regardless of what else is done with the same engine in the same thread.
The ``use_threadlocal`` flag remains deprecated however the
:class:`.SingletonThreadPool` now implements its own version of the same
logic.
.. change::
:tags: bug, orm
:tickets: 4584
Fixed 1.3 regression in new "ambiguous FROMs" query logic introduced in
:ref:`change_4365` where a :class:`.Query` that explicitly places an entity
in the FROM clause with :meth:`.Query.select_from` and also joins to it
using :meth:`.Query.join` would later cause an "ambiguous FROM" error if
that entity were used in additional joins, as the entity appears twice in
the "from" list of the :class:`.Query`. The fix resolves this ambiguity by
folding the standalone entity into the join that it's already a part of in
the same way that ultimately happens when the SELECT statement is rendered.
.. change::
:tags: bug, ext
:tickets: 4603
Fixed bug where using ``copy.copy()`` or ``copy.deepcopy()`` on
:class:`.MutableList` would cause the items within the list to be
duplicated, due to an inconsistency in how Python pickle and copy both make
use of ``__getstate__()`` and ``__setstate__()`` regarding lists. In order
to resolve, a ``__reduce_ex__`` method had to be added to
:class:`.MutableList`. In order to maintain backwards compatibility with
existing pickles based on ``__getstate__()``, the ``__setstate__()`` method
remains as well; the test suite asserts that pickles made against the old
version of the class can still be deserialized by the pickle module.
.. change::
:tags: bug, orm
:tickets: 4606
Adjusted the :meth:`.Query.filter_by` method to not call :func:`.and()`
internally against multiple criteria, instead passing it off to
:meth:`.Query.filter` as a series of criteria, instead of a single criteria.
This allows :meth:`.Query.filter_by` to defer to :meth:`.Query.filter`'s
treatment of variable numbers of clauses, including the case where the list
is empty. In this case, the :class:`.Query` object will not have a
``.whereclause``, which allows subsequent "no whereclause" methods like
:meth:`.Query.select_from` to behave consistently.
.. change::
:tags: bug, mssql
:tickets: 4587
Fixed issue in SQL Server dialect where if a bound parameter were present in
an ORDER BY expression that would ultimately not be rendered in the SQL
Server version of the statement, the parameters would still be part of the
execution parameters, leading to DBAPI-level errors. Pull request courtesy
Matt Lewellyn.
.. changelog::
```
### 1.3.2
```
:released: April 2, 2019
.. change::
:tags: bug, documentation, sql
:tickets: 4580
Thanks to :ref:`change_3981`, we no longer need to rely on recipes that
subclass dialect-specific types directly, :class:`.TypeDecorator` can now
handle all cases. Additionally, the above change made it slightly less
likely that a direct subclass of a base SQLAlchemy type would work as
expected, which could be misleading. Documentation has been updated to use
:class:`.TypeDecorator` for these examples including the PostgreSQL
"ArrayOfEnum" example datatype and direct support for the "subclass a type
directly" has been removed.
.. change::
:tags: bug, postgresql
:tickets: 4550
Modified the :paramref:`.Select.with_for_update.of` parameter so that if a
join or other composed selectable is passed, the individual :class:`.Table`
objects will be filtered from it, allowing one to pass a join() object to
the parameter, as occurs normally when using joined table inheritance with
the ORM. Pull request courtesy Raymond Lu.
.. change::
:tags: feature, postgresql
:tickets: 4562
Added support for parameter-less connection URLs for the psycopg2 dialect,
meaning, the URL can be passed to :func:`.create_engine` as
``"postgresql+psycopg2://"`` with no additional arguments to indicate an
empty DSN passed to libpq, which indicates to connect to "localhost" with
no username, password, or database given. Pull request courtesy Julian
Mehnle.
.. change::
:tags: bug, orm, ext
:tickets: 4574, 4573
Restored instance-level support for plain Python descriptors, e.g.
``property`` objects, in conjunction with association proxies, in that if
the proxied object is not within ORM scope at all, it gets classified as
"ambiguous" but is proxed directly. For class level access, a basic class
level``__get__()`` now returns the
:class:`.AmbiguousAssociationProxyInstance` directly, rather than raising
its exception, which is the closest approximation to the previous behavior
that returned the :class:`.AssociationProxy` itself that's possible. Also
improved the stringification of these objects to be more descriptive of
current state.
.. change::
:tags: bug, orm
:tickets: 4537
Fixed bug where use of :func:`.with_polymorphic` or other aliased construct
would not properly adapt when the aliased target were used as the
:meth:`.Select.correlate_except` target of a subquery used inside of a
:func:`.column_property`. This required a fix to the clause adaption
mechanics to properly handle a selectable that shows up in the "correlate
except" list, in a similar manner as which occurs for selectables that show
up in the "correlate" list. This is ultimately a fairly fundamental bug
that has lasted for a long time but it is hard to come across it.
.. change::
:tags: bug, orm
:tickets: 4566
Fixed regression where a new error message that was supposed to raise when
attempting to link a relationship option to an AliasedClass without using
:meth:`.PropComparator.of_type` would instead raise an ``AttributeError``.
Note that in 1.3, it is no longer valid to create an option path from a
plain mapper relationship to an :class:`.AliasedClass` without using
:meth:`.PropComparator.of_type`.
.. changelog::
```
Links
- PyPI: https://pypi.org/project/sqlalchemy
- Changelog: https://pyup.io/changelogs/sqlalchemy/
- Homepage: http://www.sqlalchemy.org
Changelog
### 4.4.2
```
=========================
Bug Fixes
---------
- `5089 <https://github.com/pytest-dev/pytest/issues/5089>`_: Fix crash caused by error in ``__repr__`` function with both ``showlocals`` and verbose output enabled.
- `5139 <https://github.com/pytest-dev/pytest/issues/5139>`_: Eliminate core dependency on 'terminal' plugin.
- `5229 <https://github.com/pytest-dev/pytest/issues/5229>`_: Require ``pluggy>=0.11.0`` which reverts a dependency to ``importlib-metadata`` added in ``0.10.0``.
The ``importlib-metadata`` package cannot be imported when installed as an egg and causes issues when relying on ``setup.py`` to install test dependencies.
Improved Documentation
----------------------
- `5171 <https://github.com/pytest-dev/pytest/issues/5171>`_: Doc: ``pytest_ignore_collect``, ``pytest_collect_directory``, ``pytest_collect_file`` and ``pytest_pycollect_makemodule`` hooks's 'path' parameter documented type is now ``py.path.local``
- `5188 <https://github.com/pytest-dev/pytest/issues/5188>`_: Improve help for ``--runxfail`` flag.
Trivial/Internal Changes
------------------------
- `5182 <https://github.com/pytest-dev/pytest/issues/5182>`_: Removed internal and unused ``_pytest.deprecated.MARK_INFO_ATTRIBUTE``.
```
### 4.4.1
```
=========================
Bug Fixes
---------
- `5031 <https://github.com/pytest-dev/pytest/issues/5031>`_: Environment variables are properly restored when using pytester's ``testdir`` fixture.
- `5039 <https://github.com/pytest-dev/pytest/issues/5039>`_: Fix regression with ``--pdbcls``, which stopped working with local modules in 4.0.0.
- `5092 <https://github.com/pytest-dev/pytest/issues/5092>`_: Produce a warning when unknown keywords are passed to ``pytest.param(...)``.
- `5098 <https://github.com/pytest-dev/pytest/issues/5098>`_: Invalidate import caches with ``monkeypatch.syspath_prepend``, which is required with namespace packages being used.
```
Links
- PyPI: https://pypi.org/project/pytest
- Changelog: https://pyup.io/changelogs/pytest/
- Homepage: https://docs.pytest.org/en/latest/
Changelog
### 2.7.1
```
------------------
* Fixed source distribution manifest so that garbage ain't included in the tarball.
```
### 2.7.0
```
------------------
* Fixed ``AttributeError: 'NoneType' object has no attribute 'configure_node'`` error when ``--no-cov`` is used.
Contributed by Alexander Shadchin in `263 <https://github.com/pytest-dev/pytest-cov/pull/263>`_.
* Various testing and CI improvements. Contributed by Daniel Hahler in
`255 <https://github.com/pytest-dev/pytest-cov/pull/255>`_,
`266 <https://github.com/pytest-dev/pytest-cov/pull/266>`_,
`272 <https://github.com/pytest-dev/pytest-cov/pull/272>`_,
`271 <https://github.com/pytest-dev/pytest-cov/pull/271>`_ and
`269 <https://github.com/pytest-dev/pytest-cov/pull/269>`_.
* Improved documentation regarding subprocess and multiprocessing.
Contributed in `265 <https://github.com/pytest-dev/pytest-cov/pull/265>`_.
* Improved ``pytest_cov.embed.cleanup_on_sigterm`` to be reentrant (signal deliveries while signal handling is
running won't break stuff).
* Added ``pytest_cov.embed.cleanup_on_signal`` for customized cleanup.
* Improved cleanup code and fixed various issues with leftover data files. All contributed in
`265 <https://github.com/pytest-dev/pytest-cov/pull/265>`_ or
`262 <https://github.com/pytest-dev/pytest-cov/pull/262>`_.
* Improved examples. Now there are two examples for the common project layouts, complete with working coverage
configuration. The examples have CI testing. Contributed in
`267 <https://github.com/pytest-dev/pytest-cov/pull/267>`_.
* Improved help text for CLI options.
```
Links
- PyPI: https://pypi.org/project/pytest-cov
- Changelog: https://pyup.io/changelogs/pytest-cov/
- Repo: https://github.com/pytest-dev/pytest-cov
Coverage increased (+0.02%) to 55.948% when pulling 1a37905269a2de01c495f457d5a6cfad621548cd on pyup/scheduled-update-2019-06-01 into 3571af6c8c2c6a8c259999e7bd569696059940ad on develop.
Update matplotlib from 3.0.3 to 3.1.0.
Changelog
Links
- PyPI: https://pypi.org/project/matplotlib - Changelog: https://pyup.io/changelogs/matplotlib/ - Homepage: https://matplotlib.orgUpdate numba from 0.43.1 to 0.44.0.
Changelog
### 0.44.0 ``` -------------- IMPORTANT: In this release a few significant deprecations (and some less significant ones) are being made, users are encouraged to read the related documentation. General enhancements in this release include: - Numba is backed by LLVM 8 on all platforms apart from ppc64le, which, due to bugs, remains on the LLVM 7.x series. - Numba's dictionary support now includes type inference for keys and values. - The .view() method now works for NumPy scalar types. - Newly supported NumPy functions added: np.delete, np.nanquantile, np.quantile, np.repeat, np.shape. In addition considerable effort has been made to fix some long standing bugs and a large number of other bugs, the "Fixes" section is very large this time! Enhancements from user contributed PRs (with thanks!): - Max Bolingbroke added support for the selective use of ``fastmath`` flags in 3847. - Rob Ennis made min() and max() work on iterables in 3820 and added np.quantile and np.nanquantile in 3899. - Sergey Shalnov added numerous unicode string related features, zfill in 3978, ljust in 4001, rjust and center in 4044 and strip, lstrip and rstrip in 4048. - Guilherme Leobas added support for np.delete in 3890 - Christoph Deil exposed the Numba CLI via ``python -m numba`` in 4066 and made numerous documentation fixes. - Leo Schwarz wrote the bulk of the code for jitclass default constructor arguments in 3852. - Nick White enhanced the CUDA backend to use min/max PTX instructions where possible in 4054. - Lucio Fernandez-Arjona implemented the unicode string ``__mul__`` function in 3952. - Dimitri Vorona wrote the bulk of the code to implement getitem and setitem for jitclass in 3861. General Enhancements: * PR 3820: Min max on iterables * PR 3842: Unicode type iteration * PR 3847: Allow fine-grained control of fastmath flags to partially address 2923 * PR 3852: Continuation of PR 2894 * PR 3861: Continuation of PR 3730 * PR 3890: Add support for np.delete * PR 3899: Support for np.quantile and np.nanquantile * PR 3900: Fix 3457 :: Implements np.repeat * PR 3928: Add .view() method for NumPy scalars * PR 3939: Update icc_rt clone recipe. * PR 3952: __mul__ for strings, initial implementation and tests * PR 3956: Type-inferred dictionary * PR 3959: Create a view for string slicing to avoid extra allocations * PR 3978: zfill operation implementation * PR 4001: ljust operation implementation * PR 4010: Support `dict()` and `{}` * PR 4022: Support for llvm 8 * PR 4034: Make type.Optional str more representative * PR 4041: Deprecation warnings * PR 4044: rjust and center operations implementation * PR 4048: strip, lstrip and rstrip operations implementation * PR 4066: Expose numba CLI via python -m numba * PR 4081: Impl `np.shape` and support function for `asarray`. * PR 4091: Deprecate the use of iternext_impl without RefType CUDA Enhancements/Fixes: * PR 3933: Adds `.nbytes` property to CUDA device array objects. * PR 4011: Add .inspect_ptx() to cuda device function * PR 4054: CUDA: Use min/max PTX Instructions * PR 4096: Update env-vars for CUDA libraries lookup Documentation Updates: * PR 3867: Code repository map * PR 3918: adding Joris' Fosdem 2019 presentation * PR 3926: order talks on applications of Numba by date * PR 3943: fix two small typos in vectorize docs * PR 3944: Fixup jitclass docs * PR 3990: mention preprint repo in FAQ. Fixes 3981 * PR 4012: Correct runtests command in contributing.rst * PR 4043: fix typo * PR 4047: Ambiguous Documentation fix for guvectorize. * PR 4060: Remove remaining mentions of autojit in docs * PR 4063: Fix annotate example in docstring * PR 4065: Add FAQ entry explaining Numba project name * PR 4079: Add Documentation for atomicity of typed.Dict * PR 4105: Remove info about CUDA ENVVAR potential replacement Fixes: * PR 3719: Resolves issue 3528. Adds support for slices when not using parallel=True. * PR 3727: Remove dels for known dead vars. * PR 3845: Fix mutable flag transmission in .astype * PR 3853: Fix some minor issues in the C source. * PR 3862: Correct boolean reinterpretation of data * PR 3863: Comments out the appveyor badge * PR 3869: fixes flake8 after merge * PR 3871: Add assert to ir.py to help enforce correct structuring * PR 3881: fix preparfor dtype transform for datetime64 * PR 3884: Prevent mutation of objmode fallback IR. * PR 3885: Updates for llvmlite 0.29 * PR 3886: Use `safe_load` from pyyaml. * PR 3887: Add tolerance to network errors by permitting conda to retry * PR 3893: Fix casting in namedtuple ctor. * PR 3894: Fix array inliner for multiple array definition. * PR 3905: Cherrypick 3903 to main * PR 3920: Raise better error if unsupported jump opcode found. * PR 3927: Apply flake8 to the numpy related files * PR 3935: Silence DeprecationWarning * PR 3938: Better error message for unknown opcode * PR 3941: Fix typing of ufuncs in parfor conversion * PR 3946: Return variable renaming dict from inline_closurecall * PR 3962: Fix bug in alignment computation of `Record.make_c_struct` * PR 3967: Fix error with pickling unicode * PR 3964: Unicode split algo versioning * PR 3975: Add handler for unknown locale to numba -s * PR 3991: Permit Optionals in ufunc machinery * PR 3995: Remove assert in type inference causing poor error message. * PR 3996: add is_ascii flag to UnicodeType * PR 4009: Prevent zero division error in np.linalg.cond * PR 4014: Resolves 4007. * PR 4021: Add a more specific error message for invalid write to a global. * PR 4023: Fix handling of titles in record dtype * PR 4024: Do a check if a call is const before saying that an object is multiply defined. * PR 4027: Fix issue 4020. Turn off no_cpython_wrapper flag when compiling for… * PR 4033: [WIP] Fixing wrong dtype of array inside reflected list 4028 * PR 4061: Change IPython cache dir name to numba_cache * PR 4067: Delete examples/notebooks/LinearRegr.py * PR 4070: Catch writes to global typed.Dict and raise. * PR 4078: Check tuple length * PR 4084: Fix missing incref on optional return None * PR 4089: Make the warnings fixer flush work for warning comparing on type. * PR 4094: Fix function definition finding logic for commented def * PR 4100: Fix alignment check on 32-bit. * PR 4104: Use PEP 508 compliant env markers for install deps Contributors: * Benjamin Zaitlen * Christoph Deil * David Hirschfeld * Dimitri Vorona * Ehsan Totoni (core dev) * Guilherme Leobas * Leo Schwarz * Lucio Fernandez-Arjona * Max Bolingbroke * NanduTej * Nick White * Ravi Teja Gutta * Rob Ennis * Sergey Shalnov * Siu Kwan Lam (core dev) * Stan Seibert (core dev) * Stuart Archibald (core dev) * Todd A. Anderson (core dev) * Valentin Haenel (core dev) ```Links
- PyPI: https://pypi.org/project/numba - Changelog: https://pyup.io/changelogs/numba/ - Repo: http://numba.github.comUpdate numpy from 1.16.2 to 1.16.4.
Changelog
### 1.16.3 ``` ========================== The NumPy 1.16.3 release fixes bugs reported against the 1.16.2 release, and also backports several enhancements from master that seem appropriate for a release series that is the last to support Python 2.7. The wheels on PyPI are linked with OpenBLAS v0.3.4+, which should fix the known threading issues found in previous OpenBLAS versions. Downstream developers building this release should use Cython >= 0.29.2 and, if using OpenBLAS, OpenBLAS > v0.3.4. The most noticeable change in this release is that unpickling object arrays when loading ``*.npy`` or ``*.npz`` files now requires an explicit opt-in. This backwards incompatible change was made in response to `CVE-2019-6446 <https://nvd.nist.gov/vuln/detail/CVE-2019-6446>`_. Compatibility notes =================== Unpickling while loading requires explicit opt-in ------------------------------------------------- The functions ``np.load``, and ``np.lib.format.read_array`` take an `allow_pickle` keyword which now defaults to ``False`` in response to `CVE-2019-6446 <https://nvd.nist.gov/vuln/detail/CVE-2019-6446>`_. Improvements ============ Covariance in `random.mvnormal` cast to double ---------------------------------------------- This should make the tolerance used when checking the singular values of the covariance matrix more meaningful. Changes ======= ``__array_interface__`` offset now works as documented ------------------------------------------------------ The interface may use an ``offset`` value that was previously mistakenly ignored. ========================== ```Links
- PyPI: https://pypi.org/project/numpy - Changelog: https://pyup.io/changelogs/numpy/ - Homepage: https://www.numpy.orgUpdate scipy from 1.2.1 to 1.3.0.
Changelog
### 1.3.0 ``` many new features, numerous bug-fixes, improved test coverage and better documentation. There have been some 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.3.x branch, and on adding new features on the master branch. This release requires Python 3.5+ and NumPy 1.13.3 or greater. For running on PyPy, PyPy3 6.0+ and NumPy 1.15.0 are required. Highlights of this release -------------------------- - Three new ``stats`` functions, a rewrite of ``pearsonr``, and an exact computation of the Kolmogorov-Smirnov two-sample test - A new Cython API for bounded scalar-function root-finders in `scipy.optimize` - Substantial ``CSR`` and ``CSC`` sparse matrix indexing performance improvements - Added support for interpolation of rotations with continuous angular rate and acceleration in ``RotationSpline`` New features ============ `scipy.interpolate` improvements -------------------------------- A new class ``CubicHermiteSpline`` is introduced. It is a piecewise-cubic interpolator which matches observed values and first derivatives. Existing cubic interpolators ``CubicSpline``, ``PchipInterpolator`` and ``Akima1DInterpolator`` were made subclasses of ``CubicHermiteSpline``. `scipy.io` improvements ----------------------- For the Attribute-Relation File Format (ARFF) `scipy.io.arff.loadarff` now supports relational attributes. `scipy.io.mmread` can now parse Matrix Market format files with empty lines. `scipy.linalg` improvements --------------------------- Added wrappers for ``?syconv`` routines, which convert a symmetric matrix given by a triangular matrix factorization into two matrices and vice versa. `scipy.linalg.clarkson_woodruff_transform` now uses an algorithm that leverages sparsity. This may provide a 60-90 percent speedup for dense input matrices. Truly sparse input matrices should also benefit from the improved sketch algorithm, which now correctly runs in ``O(nnz(A))`` time. Added new functions to calculate symmetric Fiedler matrices and Fiedler companion matrices, named `scipy.linalg.fiedler` and `scipy.linalg.fiedler_companion`, respectively. These may be used for root finding. `scipy.ndimage` improvements ---------------------------- Gaussian filter performances may improve by an order of magnitude in some cases, thanks to removal of a dependence on ``np.polynomial``. This may impact `scipy.ndimage.gaussian_filter` for example. `scipy.optimize` improvements ----------------------------- The `scipy.optimize.brute` minimizer obtained a new keyword ``workers``, which can be used to parallelize computation. A Cython API for bounded scalar-function root-finders in `scipy.optimize` is available in a new module `scipy.optimize.cython_optimize` via ``cimport``. This API may be used with ``nogil`` and ``prange`` to loop over an array of function arguments to solve for an array of roots more quickly than with pure Python. ``'interior-point'`` is now the default method for ``linprog``, and ``'interior-point'`` now uses SuiteSparse for sparse problems when the required scikits (scikit-umfpack and scikit-sparse) are available. On benchmark problems (gh-10026), execution time reductions by factors of 2-3 were typical. Also, a new ``method='revised simplex'`` has been added. It is not as fast or robust as ``method='interior-point'``, but it is a faster, more robust, and equally accurate substitute for the legacy ``method='simplex'``. ``differential_evolution`` can now use a ``Bounds`` class to specify the bounds for the optimizing argument of a function. `scipy.optimize.dual_annealing` performance improvements related to vectorisation of some internal code. `scipy.signal` improvements --------------------------- Two additional methods of discretization are now supported by `scipy.signal.cont2discrete`: ``impulse`` and ``foh``. `scipy.signal.firls` now uses faster solvers `scipy.signal.detrend` now has a lower physical memory footprint in some cases, which may be leveraged using the new ``overwrite_data`` keyword argument `scipy.signal.firwin` ``pass_zero`` argument now accepts new string arguments that allow specification of the desired filter type: ``'bandpass'``, ``'lowpass'``, ``'highpass'``, and ``'bandstop'`` `scipy.signal.sosfilt` may have improved performance due to lower retention of the global interpreter lock (GIL) in algorithm `scipy.sparse` improvements --------------------------- A new keyword was added to ``csgraph.dijsktra`` that allows users to query the shortest path to ANY of the passed in indices, as opposed to the shortest path to EVERY passed index. `scipy.sparse.linalg.lsmr` performance has been improved by roughly 10 percent on large problems Improved performance and reduced physical memory footprint of the algorithm used by `scipy.sparse.linalg.lobpcg` ``CSR`` and ``CSC`` sparse matrix fancy indexing performance has been improved substantially `scipy.spatial` improvements ---------------------------- `scipy.spatial.ConvexHull` now has a ``good`` attribute that can be used alongsize the ``QGn`` Qhull options to determine which external facets of a convex hull are visible from an external query point. `scipy.spatial.cKDTree.query_ball_point` has been modernized to use some newer Cython features, including GIL handling and exception translation. An issue with ``return_sorted=True`` and scalar queries was fixed, and a new mode named ``return_length`` was added. ``return_length`` only computes the length of the returned indices list instead of allocating the array every time. `scipy.spatial.transform.RotationSpline` has been added to enable interpolation of rotations with continuous angular rates and acceleration `scipy.stats` improvements -------------------------- Added a new function to compute the Epps-Singleton test statistic, `scipy.stats.epps_singleton_2samp`, which can be applied to continuous and discrete distributions. New functions `scipy.stats.median_absolute_deviation` and `scipy.stats.gstd` (geometric standard deviation) were added. The `scipy.stats.combine_pvalues` method now supports ``pearson``, ``tippett`` and ``mudholkar_george`` pvalue combination methods. The `scipy.stats.ortho_group` and `scipy.stats.special_ortho_group` ``rvs(dim)`` functions' algorithms were updated from a ``O(dim^4)`` implementation to a ``O(dim^3)`` which gives large speed improvements for ``dim>100``. A rewrite of `scipy.stats.pearsonr` to use a more robust algorithm, provide meaningful exceptions and warnings on potentially pathological input, and fix at least five separate reported issues in the original implementation. Improved the precision of ``hypergeom.logcdf`` and ``hypergeom.logsf``. Added exact computation for Kolmogorov-Smirnov (KS) two-sample test, replacing the previously approximate computation for the two-sided test `stats.ks_2samp`. Also added a one-sided, two-sample KS test, and a keyword ``alternative`` to `stats.ks_2samp`. Backwards incompatible changes ============================== `scipy.interpolate` changes --------------------------- Functions from ``scipy.interpolate`` (``spleval``, ``spline``, ``splmake``, and ``spltopp``) and functions from ``scipy.misc`` (``bytescale``, ``fromimage``, ``imfilter``, ``imread``, ``imresize``, ``imrotate``, ``imsave``, ``imshow``, ``toimage``) have been removed. The former set has been deprecated since v0.19.0 and the latter has been deprecated since v1.0.0. Similarly, aliases from ``scipy.misc`` (``comb``, ``factorial``, ``factorial2``, ``factorialk``, ``logsumexp``, ``pade``, ``info``, ``source``, ``who``) which have been deprecated since v1.0.0 are removed. `SciPy documentation for ```Links
- PyPI: https://pypi.org/project/scipy - Changelog: https://pyup.io/changelogs/scipy/ - Repo: https://github.com/scipy/scipy/releases - Homepage: https://www.scipy.orgUpdate sqlalchemy from 1.3.1 to 1.3.4.
Changelog
### 1.3.4 ``` :released: May 27, 2019 .. change:: :tags: feature, mssql :tickets: 4657 Added support for SQL Server filtered indexes, via the ``mssql_where`` parameter which works similarly to that of the ``postgresql_where`` index function in the PostgreSQL dialect. .. seealso:: :ref:`mssql_index_where` .. change:: :tags: bug, misc :tickets: 4625 Removed errant "sqla_nose.py" symbol from MANIFEST.in which created an undesirable warning message. .. change:: :tags: bug, sql :tickets: 4653 Fixed that the :class:`.GenericFunction` class was inadvertently registering itself as one of the named functions. Pull request courtesy Adrien Berchet. .. change:: :tags: bug, engine, postgresql :tickets: 4663 Moved the "rollback" which occurs during dialect initialization so that it occurs after additional dialect-specific initialize steps, in particular those of the psycopg2 dialect which would inadvertently leave transactional state on the first new connection, which could interfere with some psycopg2-specific APIs which require that no transaction is started. Pull request courtesy Matthew Wilkes. .. change:: :tags: bug, orm :tickets: 4695 Fixed issue where the :paramref:`.AttributeEvents.active_history` flag would not be set for an event listener that propgated to a subclass via the :paramref:`.AttributeEvents.propagate` flag. This bug has been present for the full span of the :class:`.AttributeEvents` system. .. change:: :tags: bug, orm :tickets: 4690 Fixed regression where new association proxy system was still not proxying hybrid attributes when they made use of the ``hybrid_property.expression`` decorator to return an alternate SQL expression, or when the hybrid returned an arbitrary :class:`.PropComparator`, at the expression level. This involved futher generalization of the heuristics used to detect the type of object being proxied at the level of :class:`.QueryableAttribute`, to better detect if the descriptor ultimately serves mapped classes or column expressions. .. change:: :tags: bug, orm :tickets: 4686 Applied the mapper "configure mutex" against the declarative class mapping process, to guard against the race which can occur if mappers are used while dynamic module import schemes are still in the process of configuring mappers for related classes. This does not guard against all possible race conditions, such as if the concurrent import has not yet encountered the dependent classes as of yet, however it guards against as much as possible within the SQLAlchemy declarative process. .. change:: :tags: bug, mssql :tickets: 4680 Added error code 20047 to "is_disconnect" for pymssql. Pull request courtesy Jon Schuff. .. change:: :tags: bug, postgresql, orm :tickets: 4661 Fixed an issue where the "number of rows matched" warning would emit even if the dialect reported "supports_sane_multi_rowcount=False", as is the case for psycogp2 with ``use_batch_mode=True`` and others. .. change:: :tags: bug, sql :tickets: 4618 Fixed issue where double negation of a boolean column wouldn't reset the "NOT" operator. .. change:: :tags: mysql, bug :tickets: 4650 Added support for DROP CHECK constraint which is required by MySQL 8.0.16 to drop a CHECK constraint; MariaDB supports plain DROP CONSTRAINT. The logic distinguishes between the two syntaxes by checking the server version string for MariaDB presence. Alembic migrations has already worked around this issue by implementing its own DROP for MySQL / MariaDB CHECK constraints, however this change implements it straight in Core so that its available for general use. Pull request courtesy Hannes Hansen. .. change:: :tags: bug, orm :tickets: 4647 A warning is now emitted for the case where a transient object is being merged into the session with :meth:`.Session.merge` when that object is already transient in the :class:`.Session`. This warns for the case where the object would normally be double-inserted. .. change:: :tags: bug, orm :tickets: 4676 Fixed regression in new relationship m2o comparison logic first introduced at :ref:`change_4359` when comparing to an attribute that is persisted as NULL and is in an un-fetched state in the mapped instance. Since the attribute has no explicit default, it needs to default to NULL when accessed in a persistent setting. .. change:: :tags: bug, sql :tickets: 4569 The :class:`.GenericFunction` namespace is being migrated so that function names are looked up in a case-insensitive manner, as SQL functions do not collide on case sensitive differences nor is this something which would occur with user-defined functions or stored procedures. Lookups for functions declared with :class:`.GenericFunction` now use a case insensitive scheme, however a deprecation case is supported which allows two or more :class:`.GenericFunction` objects with the same name of different cases to exist, which will cause case sensitive lookups to occur for that particular name, while emitting a warning at function registration time. Thanks to Adrien Berchet for a lot of work on this complicated feature. .. changelog:: ``` ### 1.3.3 ``` :released: April 15, 2019 .. change:: :tags: bug, postgresql :tickets: 4601 Fixed regression from release 1.3.2 caused by :ticket:`4562` where a URL that contained only a query string and no hostname, such as for the purposes of specifying a service file with connection information, would no longer be propagated to psycopg2 properly. The change in :ticket:`4562` has been adjusted to further suit psycopg2's exact requirements, which is that if there are any connection parameters whatsoever, the "dsn" parameter is no longer required, so in this case the query string parameters are passed alone. .. change:: :tags: bug, pool :tickets: 4585 Fixed behavioral regression as a result of deprecating the "use_threadlocal" flag for :class:`.Pool`, where the :class:`.SingletonThreadPool` no longer makes use of this option which causes the "rollback on return" logic to take place when the same :class:`.Engine` is used multiple times in the context of a transaction to connect or implicitly execute, thereby cancelling the transaction. While this is not the recommended way to work with engines and connections, it is nonetheless a confusing behavioral change as when using :class:`.SingletonThreadPool`, the transaction should stay open regardless of what else is done with the same engine in the same thread. The ``use_threadlocal`` flag remains deprecated however the :class:`.SingletonThreadPool` now implements its own version of the same logic. .. change:: :tags: bug, orm :tickets: 4584 Fixed 1.3 regression in new "ambiguous FROMs" query logic introduced in :ref:`change_4365` where a :class:`.Query` that explicitly places an entity in the FROM clause with :meth:`.Query.select_from` and also joins to it using :meth:`.Query.join` would later cause an "ambiguous FROM" error if that entity were used in additional joins, as the entity appears twice in the "from" list of the :class:`.Query`. The fix resolves this ambiguity by folding the standalone entity into the join that it's already a part of in the same way that ultimately happens when the SELECT statement is rendered. .. change:: :tags: bug, ext :tickets: 4603 Fixed bug where using ``copy.copy()`` or ``copy.deepcopy()`` on :class:`.MutableList` would cause the items within the list to be duplicated, due to an inconsistency in how Python pickle and copy both make use of ``__getstate__()`` and ``__setstate__()`` regarding lists. In order to resolve, a ``__reduce_ex__`` method had to be added to :class:`.MutableList`. In order to maintain backwards compatibility with existing pickles based on ``__getstate__()``, the ``__setstate__()`` method remains as well; the test suite asserts that pickles made against the old version of the class can still be deserialized by the pickle module. .. change:: :tags: bug, orm :tickets: 4606 Adjusted the :meth:`.Query.filter_by` method to not call :func:`.and()` internally against multiple criteria, instead passing it off to :meth:`.Query.filter` as a series of criteria, instead of a single criteria. This allows :meth:`.Query.filter_by` to defer to :meth:`.Query.filter`'s treatment of variable numbers of clauses, including the case where the list is empty. In this case, the :class:`.Query` object will not have a ``.whereclause``, which allows subsequent "no whereclause" methods like :meth:`.Query.select_from` to behave consistently. .. change:: :tags: bug, mssql :tickets: 4587 Fixed issue in SQL Server dialect where if a bound parameter were present in an ORDER BY expression that would ultimately not be rendered in the SQL Server version of the statement, the parameters would still be part of the execution parameters, leading to DBAPI-level errors. Pull request courtesy Matt Lewellyn. .. changelog:: ``` ### 1.3.2 ``` :released: April 2, 2019 .. change:: :tags: bug, documentation, sql :tickets: 4580 Thanks to :ref:`change_3981`, we no longer need to rely on recipes that subclass dialect-specific types directly, :class:`.TypeDecorator` can now handle all cases. Additionally, the above change made it slightly less likely that a direct subclass of a base SQLAlchemy type would work as expected, which could be misleading. Documentation has been updated to use :class:`.TypeDecorator` for these examples including the PostgreSQL "ArrayOfEnum" example datatype and direct support for the "subclass a type directly" has been removed. .. change:: :tags: bug, postgresql :tickets: 4550 Modified the :paramref:`.Select.with_for_update.of` parameter so that if a join or other composed selectable is passed, the individual :class:`.Table` objects will be filtered from it, allowing one to pass a join() object to the parameter, as occurs normally when using joined table inheritance with the ORM. Pull request courtesy Raymond Lu. .. change:: :tags: feature, postgresql :tickets: 4562 Added support for parameter-less connection URLs for the psycopg2 dialect, meaning, the URL can be passed to :func:`.create_engine` as ``"postgresql+psycopg2://"`` with no additional arguments to indicate an empty DSN passed to libpq, which indicates to connect to "localhost" with no username, password, or database given. Pull request courtesy Julian Mehnle. .. change:: :tags: bug, orm, ext :tickets: 4574, 4573 Restored instance-level support for plain Python descriptors, e.g. ``property`` objects, in conjunction with association proxies, in that if the proxied object is not within ORM scope at all, it gets classified as "ambiguous" but is proxed directly. For class level access, a basic class level``__get__()`` now returns the :class:`.AmbiguousAssociationProxyInstance` directly, rather than raising its exception, which is the closest approximation to the previous behavior that returned the :class:`.AssociationProxy` itself that's possible. Also improved the stringification of these objects to be more descriptive of current state. .. change:: :tags: bug, orm :tickets: 4537 Fixed bug where use of :func:`.with_polymorphic` or other aliased construct would not properly adapt when the aliased target were used as the :meth:`.Select.correlate_except` target of a subquery used inside of a :func:`.column_property`. This required a fix to the clause adaption mechanics to properly handle a selectable that shows up in the "correlate except" list, in a similar manner as which occurs for selectables that show up in the "correlate" list. This is ultimately a fairly fundamental bug that has lasted for a long time but it is hard to come across it. .. change:: :tags: bug, orm :tickets: 4566 Fixed regression where a new error message that was supposed to raise when attempting to link a relationship option to an AliasedClass without using :meth:`.PropComparator.of_type` would instead raise an ``AttributeError``. Note that in 1.3, it is no longer valid to create an option path from a plain mapper relationship to an :class:`.AliasedClass` without using :meth:`.PropComparator.of_type`. .. changelog:: ```Links
- PyPI: https://pypi.org/project/sqlalchemy - Changelog: https://pyup.io/changelogs/sqlalchemy/ - Homepage: http://www.sqlalchemy.orgUpdate tqdm from 4.31.1 to 4.32.1.
Changelog
### 4.32.1 ``` - fix `notebook` with unknown `total` (743) ``` ### 4.32.0 ``` - support `unit_scale` in `notebook` - support negative update (432, 545) - add `reset()` function (547, 545) - add `[python setup.py] make run` - add and update documentation - example of dynamic usage (735, 545, 547, 432, 374) - note writing issues (737) - update badges - add [PyData2019 slides link](https://tqdm.github.io/PyData2019/slides.html) - add [JOSS paper](https://github.com/openjournals/joss-papers/blob/joss.01277/joss.01277/10.21105.joss.01277.pdf) - update manpages - add docker install - add snapcraft install - notebooks: add binder, rename RMOTR => notebooks.ai (679) - prettify and unify contributors/maintainers/authors - CI and release framework updates - add snapcraft snaps (647) - add travis auto-deployment (685) + PyPI releases + docker devel/releases - update deployment dev docs - fix travis deploy pymake - update .gitinore - add & update unit tests - automate more documentation ```Links
- PyPI: https://pypi.org/project/tqdm - Changelog: https://pyup.io/changelogs/tqdm/ - Repo: https://github.com/tqdm/tqdmUpdate hypothesis from 4.14.2 to 4.24.0.
The bot wasn't able to find a changelog for this release. Got an idea?
Links
- PyPI: https://pypi.org/project/hypothesis - Repo: https://github.com/HypothesisWorks/hypothesis/tree/master/hypothesis-pythonUpdate pytest from 4.4.0 to 4.5.0.
Changelog
### 4.4.2 ``` ========================= Bug Fixes --------- - `5089 <https://github.com/pytest-dev/pytest/issues/5089>`_: Fix crash caused by error in ``__repr__`` function with both ``showlocals`` and verbose output enabled. - `5139 <https://github.com/pytest-dev/pytest/issues/5139>`_: Eliminate core dependency on 'terminal' plugin. - `5229 <https://github.com/pytest-dev/pytest/issues/5229>`_: Require ``pluggy>=0.11.0`` which reverts a dependency to ``importlib-metadata`` added in ``0.10.0``. The ``importlib-metadata`` package cannot be imported when installed as an egg and causes issues when relying on ``setup.py`` to install test dependencies. Improved Documentation ---------------------- - `5171 <https://github.com/pytest-dev/pytest/issues/5171>`_: Doc: ``pytest_ignore_collect``, ``pytest_collect_directory``, ``pytest_collect_file`` and ``pytest_pycollect_makemodule`` hooks's 'path' parameter documented type is now ``py.path.local`` - `5188 <https://github.com/pytest-dev/pytest/issues/5188>`_: Improve help for ``--runxfail`` flag. Trivial/Internal Changes ------------------------ - `5182 <https://github.com/pytest-dev/pytest/issues/5182>`_: Removed internal and unused ``_pytest.deprecated.MARK_INFO_ATTRIBUTE``. ``` ### 4.4.1 ``` ========================= Bug Fixes --------- - `5031 <https://github.com/pytest-dev/pytest/issues/5031>`_: Environment variables are properly restored when using pytester's ``testdir`` fixture. - `5039 <https://github.com/pytest-dev/pytest/issues/5039>`_: Fix regression with ``--pdbcls``, which stopped working with local modules in 4.0.0. - `5092 <https://github.com/pytest-dev/pytest/issues/5092>`_: Produce a warning when unknown keywords are passed to ``pytest.param(...)``. - `5098 <https://github.com/pytest-dev/pytest/issues/5098>`_: Invalidate import caches with ``monkeypatch.syspath_prepend``, which is required with namespace packages being used. ```Links
- PyPI: https://pypi.org/project/pytest - Changelog: https://pyup.io/changelogs/pytest/ - Homepage: https://docs.pytest.org/en/latest/Update pytest-cov from 2.6.1 to 2.7.1.
Changelog
### 2.7.1 ``` ------------------ * Fixed source distribution manifest so that garbage ain't included in the tarball. ``` ### 2.7.0 ``` ------------------ * Fixed ``AttributeError: 'NoneType' object has no attribute 'configure_node'`` error when ``--no-cov`` is used. Contributed by Alexander Shadchin in `263 <https://github.com/pytest-dev/pytest-cov/pull/263>`_. * Various testing and CI improvements. Contributed by Daniel Hahler in `255 <https://github.com/pytest-dev/pytest-cov/pull/255>`_, `266 <https://github.com/pytest-dev/pytest-cov/pull/266>`_, `272 <https://github.com/pytest-dev/pytest-cov/pull/272>`_, `271 <https://github.com/pytest-dev/pytest-cov/pull/271>`_ and `269 <https://github.com/pytest-dev/pytest-cov/pull/269>`_. * Improved documentation regarding subprocess and multiprocessing. Contributed in `265 <https://github.com/pytest-dev/pytest-cov/pull/265>`_. * Improved ``pytest_cov.embed.cleanup_on_sigterm`` to be reentrant (signal deliveries while signal handling is running won't break stuff). * Added ``pytest_cov.embed.cleanup_on_signal`` for customized cleanup. * Improved cleanup code and fixed various issues with leftover data files. All contributed in `265 <https://github.com/pytest-dev/pytest-cov/pull/265>`_ or `262 <https://github.com/pytest-dev/pytest-cov/pull/262>`_. * Improved examples. Now there are two examples for the common project layouts, complete with working coverage configuration. The examples have CI testing. Contributed in `267 <https://github.com/pytest-dev/pytest-cov/pull/267>`_. * Improved help text for CLI options. ```Links
- PyPI: https://pypi.org/project/pytest-cov - Changelog: https://pyup.io/changelogs/pytest-cov/ - Repo: https://github.com/pytest-dev/pytest-cov