payload: {"action":"created","issue":{"url":"https://api.github.com/repos/mozilla/ichnaea/issues/720","repository_url":"https://api.github.com/repos/mozilla/ichnaea","labels_url":"https://api.github.com/repos/mozilla/ichnaea/issues/720/labels{/name}","comments_url":"https://api.github.com/repos/mozilla/ichnaea/issues/720/comments","events_url":"https://api.github.com/repos/mozilla/ichnaea/issues/720/events","html_url":"https://github.com/mozilla/ichnaea/pull/720","id":423717170,"node_id":"MDExOlB1bGxSZXF1ZXN0MjYzMjI1NTE1","number":720,"title":"Scheduled daily dependency update on Thursday","user":{"login":"pyup-bot","id":16239342,"node_id":"MDQ6VXNlcjE2MjM5MzQy","avatar_url":"https://avatars0.githubusercontent.com/u/16239342?v=4","gravatar_id":"","url":"https://api.github.com/users/pyup-bot","html_url":"https://github.com/pyup-bot","followers_url":"https://api.github.com/users/pyup-bot/followers","following_url":"https://api.github.com/users/pyup-bot/following{/other_user}","gists_url":"https://api.github.com/users/pyup-bot/gists{/gist_id}","starred_url":"https://api.github.com/users/pyup-bot/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pyup-bot/subscriptions","organizations_url":"https://api.github.com/users/pyup-bot/orgs","repos_url":"https://api.github.com/users/pyup-bot/repos","events_url":"https://api.github.com/users/pyup-bot/events{/privacy}","received_events_url":"https://api.github.com/users/pyup-bot/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2019-03-21T13:00:19Z","updated_at":"2019-03-22T13:00:17Z","closed_at":null,"author_association":"NONE","pull_request":{"url":"https://api.github.com/repos/mozilla/ichnaea/pulls/720","html_url":"https://github.com/mozilla/ichnaea/pull/720","diff_url":"https://github.com/mozilla/ichnaea/pull/720.diff","patch_url":"https://github.com/mozilla/ichnaea/pull/720.patch"},"body":"\n\n\n\n\n### Update [pyOpenSSL](https://pypi.org/project/pyOpenSSL) from **17.2.0** to **19.0.0**.\n\n\n<details>\n  <summary>Changelog</summary>\n  \n  \n   ### 19.0.0\n   ```\n   -------------------\n\n\nBackward-incompatible changes:\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n- ``X509Store.add_cert`` no longer raises an error if you add a duplicate cert.\n  `787 &lt;https://github.com/pyca/pyopenssl/pull/787&gt;`_\n\n\nDeprecations:\n^^^^^^^^^^^^^\n\n*none*\n\n\nChanges:\n^^^^^^^^\n\n- pyOpenSSL now works with OpenSSL 1.1.1.\n  `805 &lt;https://github.com/pyca/pyopenssl/pull/805&gt;`_\n- pyOpenSSL now handles NUL bytes in ``X509Name.get_components()``\n  `804 &lt;https://github.com/pyca/pyopenssl/pull/804&gt;`_\n\n\n\n----\n   ```\n   \n  \n  \n   ### 18.0.0\n   ```\n   -------------------\n\n\nBackward-incompatible changes:\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n- The minimum ``cryptography`` version is now 2.2.1.\n- Support for Python 2.6 has been dropped.\n\n\nDeprecations:\n^^^^^^^^^^^^^\n\n*none*\n\n\nChanges:\n^^^^^^^^\n\n- Added ``Connection.get_certificate`` to retrieve the local certificate.\n  `733 &lt;https://github.com/pyca/pyopenssl/pull/733&gt;`_\n- ``OpenSSL.SSL.Connection`` now sets ``SSL_MODE_AUTO_RETRY`` by default.\n  `753 &lt;https://github.com/pyca/pyopenssl/pull/753&gt;`_\n- Added ``Context.set_tlsext_use_srtp`` to enable negotiation of SRTP keying material.\n  `734 &lt;https://github.com/pyca/pyopenssl/pull/734&gt;`_\n\n\n----\n   ```\n   \n  \n  \n   ### 17.5.0\n   ```\n   -------------------\n\n\nBackward-incompatible changes:\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n- The minimum ``cryptography`` version is now 2.1.4.\n\n\nDeprecations:\n^^^^^^^^^^^^^\n\n*none*\n\n\nChanges:\n^^^^^^^^\n\n- Fixed a potential use-after-free in the verify callback and resolved a memory leak when loading PKCS12 files with ``cacerts``.\n  `723 &lt;https://github.com/pyca/pyopenssl/pull/723&gt;`_\n- Added ``Connection.export_keying_material`` for RFC 5705 compatible export of keying material.\n  `725 &lt;https://github.com/pyca/pyopenssl/pull/725&gt;`_\n\n----\n   ```\n   \n  \n  \n   ### 17.4.0\n   ```\n   -------------------\n\n\nBackward-incompatible changes:\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n*none*\n\n\nDeprecations:\n^^^^^^^^^^^^^\n\n*none*\n\n\nChanges:\n^^^^^^^^\n\n\n- Re-added a subset of the ``OpenSSL.rand`` module.\n  This subset allows conscientious users to reseed the OpenSSL CSPRNG after fork.\n  `708 &lt;https://github.com/pyca/pyopenssl/pull/708&gt;`_\n- Corrected a use-after-free when reusing an issuer or subject from an ``X509`` object after the underlying object has been mutated.\n  `709 &lt;https://github.com/pyca/pyopenssl/pull/709&gt;`_\n\n----\n   ```\n   \n  \n  \n   ### 17.3.0\n   ```\n   -------------------\n\n\nBackward-incompatible changes:\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n- Dropped support for Python 3.3.\n  `677 &lt;https://github.com/pyca/pyopenssl/pull/677&gt;`_\n- Removed the deprecated ``OpenSSL.rand`` module.\n  This is being done ahead of our normal deprecation schedule due to its lack of use and the fact that it was becoming a maintenance burden.\n  ``os.urandom()`` should be used instead.\n  `675 &lt;https://github.com/pyca/pyopenssl/pull/675&gt;`_\n\n\nDeprecations:\n^^^^^^^^^^^^^\n\n- Deprecated ``OpenSSL.tsafe``.\n  `673 &lt;https://github.com/pyca/pyopenssl/pull/673&gt;`_\n\nChanges:\n^^^^^^^^\n\n- Fixed a memory leak in ``OpenSSL.crypto.CRL``.\n  `690 &lt;https://github.com/pyca/pyopenssl/pull/690&gt;`_\n- Fixed a memory leak when verifying certificates with ``OpenSSL.crypto.X509StoreContext``.\n  `691 &lt;https://github.com/pyca/pyopenssl/pull/691&gt;`_\n\n\n----\n   ```\n   \n  \n</details>\n\n\n \n\n<details>\n  <summary>Links</summary>\n  \n  - PyPI: https://pypi.org/project/pyopenssl\n  - Changelog: https://pyup.io/changelogs/pyopenssl/\n  - Homepage: https://pyopenssl.org/\n  - Docs: https://pythonhosted.org/pyOpenSSL/\n</details>\n\n\n\n\n\n### Update [requests[security]](https://pypi.org/project/requests) from **2.18.3** to **2.21.0**.\n\n\n<details>\n  <summary>Changelog</summary>\n  \n  \n   ### 2.21.0\n   ```\n   -------------------\n\n**Dependencies**\n\n- Requests now supports idna v2.8.\n   ```\n   \n  \n  \n   ### 2.20.1\n   ```\n   -------------------\n\n**Bugfixes**\n\n- Fixed bug with unintended Authorization header stripping for\n  redirects using default ports (http/80, https/443).\n   ```\n   \n  \n  \n   ### 2.20.0\n   ```\n   -------------------\n\n**Bugfixes**\n\n-   Content-Type header parsing is now case-insensitive (e.g.\n    charset=utf8 v Charset=utf8).\n-   Fixed exception leak where certain redirect urls would raise\n    uncaught urllib3 exceptions.\n-   Requests removes Authorization header from requests redirected\n    from https to http on the same hostname. (CVE-2018-18074)\n-   `should_bypass_proxies` now handles URIs without hostnames (e.g.\n    files).\n\n**Dependencies**\n\n- Requests now supports urllib3 v1.24.\n\n**Deprecations**\n\n- Requests has officially stopped support for Python 2.6.\n   ```\n   \n  \n  \n   ### 2.19.1\n   ```\n   -------------------\n\n**Bugfixes**\n\n-   Fixed issue where status\\_codes.py&#39;s `init` function failed trying\n    to append to a `__doc__` value of `None`.\n   ```\n   \n  \n  \n   ### 2.19.0\n   ```\n   -------------------\n\n**Improvements**\n\n-   Warn user about possible slowdown when using cryptography version\n    &amp;lt; 1.3.4\n-   Check for invalid host in proxy URL, before forwarding request to\n    adapter.\n-   Fragments are now properly maintained across redirects. (RFC7231\n    7.1.2)\n-   Removed use of cgi module to expedite library load time.\n-   Added support for SHA-256 and SHA-512 digest auth algorithms.\n-   Minor performance improvement to `Request.content`.\n-   Migrate to using collections.abc for 3.7 compatibility.\n\n**Bugfixes**\n\n-   Parsing empty `Link` headers with `parse_header_links()` no longer\n    return one bogus entry.\n-   Fixed issue where loading the default certificate bundle from a zip\n    archive would raise an `IOError`.\n-   Fixed issue with unexpected `ImportError` on windows system which do\n    not support `winreg` module.\n-   DNS resolution in proxy bypass no longer includes the username and\n    password in the request. This also fixes the issue of DNS queries\n    failing on macOS.\n-   Properly normalize adapter prefixes for url comparison.\n-   Passing `None` as a file pointer to the `files` param no longer\n    raises an exception.\n-   Calling `copy` on a `RequestsCookieJar` will now preserve the cookie\n    policy correctly.\n\n**Dependencies**\n\n-   We now support idna v2.7.\n-   We now support urllib3 v1.23.\n   ```\n   \n  \n  \n   ### 2.18.4\n   ```\n   -------------------\n\n**Improvements**\n\n-   Error messages for invalid headers now include the header name for\n    easier debugging\n\n**Dependencies**\n\n-   We now support idna v2.6.\n   ```\n   \n  \n</details>\n\n\n \n\n<details>\n  <summary>Links</summary>\n  \n  - PyPI: https://pypi.org/project/requests\n  - Changelog: https://pyup.io/changelogs/requests/\n  - Homepage: http://python-requests.org\n</details>\n\n\n\n\n\n### Update [urllib3[secure]](https://pypi.org/project/urllib3) from **1.22** to **1.24.1**.\n\n\n<details>\n  <summary>Changelog</summary>\n  \n  \n   ### 1.24\n   ```\n   -----------------\n\n* Allow key_server_hostname to be specified when initializing a PoolManager to allow custom SNI to be overridden. (Pull 1449)\n\n* Test against Python 3.7 on AppVeyor. (Pull 1453)\n\n* Early-out ipv6 checks when running on App Engine. (Pull 1450)\n\n* Change ambiguous description of backoff_factor (Pull 1436)\n\n* Add ability to handle multiple Content-Encodings (Issue 1441 and Pull 1442)\n\n* Skip DNS names that can&#39;t be idna-decoded when using pyOpenSSL (Issue 1405).\n\n* Add a server_hostname parameter to HTTPSConnection which allows for\n  overriding the SNI hostname sent in the handshake. (Pull 1397)\n\n* Drop support for EOL Python 2.6 (Pull 1429 and Pull 1430)\n\n* Fixed bug where responses with header Content-Type: message/* erroneously\n  raised HeaderParsingError, resulting in a warning being logged. (Pull 1439)\n\n* Move urllib3 to src/urllib3 (Pull 1409)\n   ```\n   \n  \n  \n   ### 1.23\n   ```\n   -----------------\n\n* Allow providing a list of headers to strip from requests when redirecting\n  to a different host. Defaults to the ``Authorization`` header. Different\n  headers can be set via ``Retry.remove_headers_on_redirect``. (Issue 1316)\n\n* Fix ``util.selectors._fileobj_to_fd`` to accept ``long`` (Issue 1247).\n\n* Dropped Python 3.3 support. (Pull 1242)\n\n* Put the connection back in the pool when calling stream() or read_chunked() on\n  a chunked HEAD response. (Issue 1234)\n\n* Fixed pyOpenSSL-specific ssl client authentication issue when clients\n  attempted to auth via certificate + chain (Issue 1060)\n\n* Add the port to the connectionpool connect print (Pull 1251)\n\n* Don&#39;t use the ``uuid`` module to create multipart data boundaries. (Pull 1380)\n\n* ``read_chunked()`` on a closed response returns no chunks. (Issue 1088)\n\n* Add Python 2.6 support to ``contrib.securetransport`` (Pull 1359)\n\n* Added support for auth info in url for SOCKS proxy (Pull 1363)\n   ```\n   \n  \n</details>\n\n\n \n\n<details>\n  <summary>Links</summary>\n  \n  - PyPI: https://pypi.org/project/urllib3\n  - Changelog: https://pyup.io/changelogs/urllib3/\n  - Docs: https://urllib3.readthedocs.io/\n</details>\n\n\n\n\n\n### Update [numpy](https://pypi.org/project/numpy) from **1.15.1** to **1.16.2**.\n\n\n<details>\n  <summary>Changelog</summary>\n  \n  \n   ### 1.16.1\n   ```\n   ==========================\n\nThe NumPy 1.16.1 release fixes bugs reported against the 1.16.0 release, and\nalso backports several enhancements from master that seem appropriate for a\nrelease series that is the last to support Python 2.7. The wheels on PyPI are\nlinked with OpenBLAS v0.3.4+,  which should fix the known threading issues\nfound in previous OpenBLAS versions.\n\nDownstream developers building this release should use Cython &gt;= 0.29.2 and, if\nusing OpenBLAS, OpenBLAS &gt; v0.3.4.\n\nIf you are installing using pip, you may encounter a problem with older\ninstalled versions of NumPy that pip did not delete becoming mixed with the\ncurrent version, resulting in an ``ImportError``. That problem is particularly\ncommon on Debian derived distributions due to a modified pip.  The fix is to\nmake sure all previous NumPy versions installed by pip have been removed. See\n`12736 &lt;https://github.com/numpy/numpy/issues/12736&gt;`__ for discussion of the\nissue. Note that previously this problem resulted in an ``AttributeError``.\n\n\nContributors\n============\n\nA total of 16 people contributed to this release.  People with a &quot;+&quot; by their\nnames contributed a patch for the first time.\n\n* Antoine Pitrou\n* Arcesio Castaneda Medina +\n* Charles Harris\n* Chris Markiewicz +\n* Christoph Gohlke\n* Christopher J. Markiewicz +\n* Daniel Hrisca +\n* EelcoPeacs +\n* Eric Wieser\n* Kevin Sheppard\n* Matti Picus\n* OBATA Akio +\n* Ralf Gommers\n* Sebastian Berg\n* Stephan Hoyer\n* Tyler Reddy\n\n\nEnhancements\n============\n\n* `12767 &lt;https://github.com/numpy/numpy/pull/12767&gt;`__: ENH: add mm-&gt;q floordiv\n* `12768 &lt;https://github.com/numpy/numpy/pull/12768&gt;`__: ENH: port np.core.overrides to C for speed\n* `12769 &lt;https://github.com/numpy/numpy/pull/12769&gt;`__: ENH: Add np.ctypeslib.as_ctypes_type(dtype), improve `np.ctypeslib.as_ctypes`\n* `12773 &lt;https://github.com/numpy/numpy/pull/12773&gt;`__: ENH: add &quot;max difference&quot; messages to np.testing.assert_array_equal...\n* `12820 &lt;https://github.com/numpy/numpy/pull/12820&gt;`__: ENH: Add mm-&gt;qm divmod\n* `12890 &lt;https://github.com/numpy/numpy/pull/12890&gt;`__: ENH: add _dtype_ctype to namespace for freeze analysis\n\n\nCompatibility notes\n===================\n\n* The changed error message emited by array comparison testing functions may\n  affect doctests. See below for detail.\n\n* Casting from double and single denormals to float16 has been corrected.  In\n  some rare cases, this may result in results being rounded up instead of down,\n  changing the last bit (ULP) of the result.\n\n\nNew Features\n============\n\ndivmod operation is now supported for two ``timedelta64`` operands\n------------------------------------------------------------------\nThe divmod operator now handles two ``np.timedelta64`` operands, with\ntype signature ``mm-&gt;qm``.\n\n\nImprovements\n============\n\nFurther improvements to ``ctypes`` support in ``np.ctypeslib``\n--------------------------------------------------------------\nA new ``np.ctypeslib.as_ctypes_type`` function has been added, which can be\nused to converts a `dtype` into a best-guess `ctypes` type. Thanks to this\nnew function, ``np.ctypeslib.as_ctypes`` now supports a much wider range of\narray types, including structures, booleans, and integers of non-native\nendianness.\n\nArray comparison assertions include maximum differences\n-------------------------------------------------------\nError messages from array comparison tests such as\n`np.testing.assert_allclose` now include &quot;max absolute difference&quot; and\n&quot;max relative difference,&quot; in addition to the previous &quot;mismatch&quot; percentage.\nThis information makes it easier to update absolute and relative error\ntolerances.\n\n\nChanges\n=======\n\n``timedelta64 % 0`` behavior adjusted to return ``NaT``\n-------------------------------------------------------\nThe modulus operation with two ``np.timedelta64`` operands now returns\n``NaT`` in the case of division by zero, rather than returning zero\n\n\n\n\n\n==========================\n   ```\n   \n  \n  \n   ### 1.16.0\n   ```\n   ==========================\n\nThis NumPy release is the last one to support Python 2.7 and will be maintained\nas a long term release with bug fixes until 2020.  Support for Python 3.4 been\ndropped, the supported Python versions are 2.7 and 3.5-3.7. The wheels on PyPI\nare linked with OpenBLAS v0.3.4+,  which should fix the known threading issues\nfound in previous OpenBLAS versions.\n\nDownstream developers building this release should use Cython &gt;= 0.29 and, if\nusing OpenBLAS, OpenBLAS &gt; v0.3.4.\n\nThis release has seen a lot of refactoring and features many bug fixes, improved\ncode organization, and better cross platform compatibility. Not all of these\nimprovements will be visible to users, but they should help make maintenance\neasier going forward.\n\n\nHighlights\n==========\n\n* Experimental (opt-in only) support for overriding numpy functions,\n  see ``__array_function__`` below.\n\n* The ``matmul`` function is now a ufunc. This provides better\n  performance and allows overriding with ``__array_ufunc__``.\n\n* Improved support for the ARM and POWER architectures.\n\n* Improved support for AIX and PyPy.\n\n* Improved interop with ctypes.\n\n* Improved support for PEP 3118.\n\n\n\nNew functions\n=============\n\n* New functions added to the `numpy.lib.recfuntions` module to ease the\n  structured assignment changes:\n\n    * ``assign_fields_by_name``\n    * ``structured_to_unstructured``\n    * ``unstructured_to_structured``\n    * ``apply_along_fields``\n    * ``require_fields``\n\n  See the user guide at &lt;https://docs.scipy.org/doc/numpy/user/basics.rec.html&gt;\n  for more info.\n\n\nNew deprecations\n================\n\n* The type dictionaries `numpy.core.typeNA` and `numpy.core.sctypeNA` are\n  deprecated. They were buggy and not documented and will be removed in the\n  1.18 release. Use`numpy.sctypeDict` instead.\n\n* The `numpy.asscalar` function is deprecated. It is an alias to the more\n  powerful `numpy.ndarray.item`, not tested, and fails for scalars.\n\n* The `numpy.set_array_ops` and `numpy.get_array_ops` functions are deprecated.\n  As part of `NEP 15`, they have been deprecated along with the C-API functions\n  :c:func:`PyArray_SetNumericOps` and :c:func:`PyArray_GetNumericOps`. Users\n  who wish to override the inner loop functions in built-in ufuncs should use\n  :c:func:`PyUFunc_ReplaceLoopBySignature`.\n\n* The `numpy.unravel_index` keyword argument ``dims`` is deprecated, use\n  ``shape`` instead.\n\n* The `numpy.histogram` ``normed`` argument is deprecated.  It was deprecated\n  previously, but no warning was issued.\n\n* The ``positive`` operator (``+``) applied to non-numerical arrays is\n  deprecated. See below for details.\n\n* Passing an iterator to the stack functions is deprecated\n\n\nExpired deprecations\n====================\n\n* NaT comparisons now return ``False`` without a warning, finishing a\n  deprecation cycle begun in NumPy 1.11.\n\n* ``np.lib.function_base.unique`` was removed, finishing a deprecation cycle\n  begun in NumPy 1.4. Use `numpy.unique` instead.\n\n* multi-field indexing now returns views instead of copies, finishing a\n  deprecation cycle begun in NumPy 1.7. The change was previously attempted in\n  NumPy 1.14 but reverted until now.\n\n* ``np.PackageLoader`` and ``np.pkgload`` have been removed. These were\n  deprecated in 1.10, had no tests, and seem to no longer work in 1.15.\n\n\nFuture changes\n==============\n\n* NumPy 1.17 will drop support for Python 2.7.\n\n\nCompatibility notes\n===================\n\nf2py script on Windows\n----------------------\nOn Windows, the installed script for running f2py is now an ``.exe`` file\nrather than a ``*.py`` file and should be run from the command line as ``f2py``\nwhenever the ``Scripts`` directory is in the path. Running ``f2py`` as a module\n``python -m numpy.f2py [...]`` will work without path modification in any\nversion of NumPy.\n\nNaT comparisons\n---------------\nConsistent with the behavior of NaN, all comparisons other than inequality\nchecks with datetime64 or timedelta64 NaT (&quot;not-a-time&quot;) values now always\nreturn ``False``, and inequality checks with NaT now always return ``True``.\nThis includes comparisons beteween NaT values. For compatibility with the\nold behavior, use ``np.isnat`` to explicitly check for NaT or convert\ndatetime64/timedelta64 arrays with ``.astype(np.int64)`` before making\ncomparisons.\n\ncomplex64/128 alignment has changed\n-----------------------------------\nThe memory alignment of complex types is now the same as a C-struct composed of\ntwo floating point values, while before it was equal to the size of the type.\nFor many users (for instance on x64/unix/gcc) this means that complex64 is now\n4-byte aligned instead of 8-byte aligned. An important consequence is that\naligned structured dtypes may now have a different size. For instance,\n``np.dtype(&#39;c8,u1&#39;, align=True)`` used to have an itemsize of 16 (on x64/gcc)\nbut now it is 12.\n\nMore in detail, the complex64 type now has the same alignment as a C-struct\n``struct {float r, i;}``, according to the compiler used to compile numpy, and\nsimilarly for the complex128 and complex256 types.\n\nnd_grid __len__ removal\n-----------------------\n``len(np.mgrid)`` and ``len(np.ogrid)`` are now considered nonsensical\nand raise a ``TypeError``.\n\n``np.unravel_index`` now accepts ``shape`` keyword argument\n-----------------------------------------------------------\nPreviously, only the ``dims`` keyword argument was accepted\nfor specification of the shape of the array to be used\nfor unraveling. ``dims`` remains supported, but is now deprecated.\n\nmulti-field views return a view instead of a copy\n-------------------------------------------------\nIndexing a structured array with multiple fields, e.g., ``arr[[&#39;f1&#39;, &#39;f3&#39;]]``,\nreturns a view into the original array instead of a copy. The returned view\nwill often have extra padding bytes corresponding to intervening fields in the\noriginal array, unlike before, which will affect code such as\n``arr[[&#39;f1&#39;, &#39;f3&#39;]].view(&#39;float64&#39;)``. This change has been planned since numpy\n1.7. Operations hitting this path have emitted ``FutureWarnings`` since then.\nAdditional ``FutureWarnings`` about this change were added in 1.12.\n\nTo help users update their code to account for these changes, a number of\nfunctions have been added to the ``numpy.lib.recfunctions`` module which\nsafely allow such operations. For instance, the code above can be replaced\nwith ``structured_to_unstructured(arr[[&#39;f1&#39;, &#39;f3&#39;]], dtype=&#39;float64&#39;)``.\nSee the &quot;accessing multiple fields&quot; section of the\n`user guide &lt;https://docs.scipy.org/doc/numpy/user/basics.rec.htmlaccessing-multiple-fields&gt;`__.\n\n\nC API changes\n=============\n\nThe :c:data:`NPY_API_VERSION` was incremented to 0x0000D, due to the addition\nof:\n\n* :c:member:`PyUFuncObject.core_dim_flags`\n* :c:member:`PyUFuncObject.core_dim_sizes`\n* :c:member:`PyUFuncObject.identity_value`\n* :c:function:`PyUFunc_FromFuncAndDataAndSignatureAndIdentity`\n\n\nNew Features\n============\n\nIntegrated squared error (ISE) estimator added to ``histogram``\n---------------------------------------------------------------\nThis method (``bins=&#39;stone&#39;``) for optimizing the bin number is a\ngeneralization of the Scott&#39;s rule. The Scott&#39;s rule assumes the distribution\nis approximately Normal, while the ISE_ is a non-parametric method based on\ncross-validation.\n\n.. _ISE: https://en.wikipedia.org/wiki/HistogramMinimizing_cross-validation_estimated_squared_error\n\n``max_rows`` keyword added for ``np.loadtxt``\n---------------------------------------------\nNew keyword ``max_rows`` in `numpy.loadtxt` sets the maximum rows of the\ncontent to be read after ``skiprows``, as in `numpy.genfromtxt`.\n\nmodulus operator support added for ``np.timedelta64`` operands\n--------------------------------------------------------------\nThe modulus (remainder) operator is now supported for two operands\nof type ``np.timedelta64``. The operands may have different units\nand the return value will match the type of the operands.\n\n\nImprovements\n============\n\nno-copy pickling of numpy arrays\n--------------------------------\nUp to protocol 4, numpy array pickling created 2 spurious copies of the data\nbeing serialized.  With pickle protocol 5, and the ``PickleBuffer`` API, a\nlarge variety of numpy arrays can now be serialized without any copy using\nout-of-band buffers, and with one less copy using in-band buffers. This\nresults, for large arrays, in an up to 66% drop in peak memory usage.\n\nbuild shell independence\n------------------------\nNumPy builds should no longer interact with the host machine\nshell directly. ``exec_command`` has been replaced with\n``subprocess.check_output`` where appropriate.\n\n`np.polynomial.Polynomial` classes render in LaTeX in Jupyter notebooks\n-----------------------------------------------------------------------\nWhen used in a front-end that supports it, `Polynomial` instances are now\nrendered through LaTeX. The current format is experimental, and is subject to\nchange.\n\n``randint`` and ``choice`` now work on empty distributions\n----------------------------------------------------------\nEven when no elements needed to be drawn, ``np.random.randint`` and\n``np.random.choice`` raised an error when the arguments described an empty\ndistribution. This has been fixed so that e.g.\n``np.random.choice([], 0) == np.array([], dtype=float64)``.\n\n``linalg.lstsq``, ``linalg.qr``, and ``linalg.svd`` now work with empty arrays\n------------------------------------------------------------------------------\nPreviously, a ``LinAlgError`` would be raised when an empty matrix/empty\nmatrices (with zero rows and/or columns) is/are passed in. Now outputs of\nappropriate shapes are returned.\n\nChain exceptions to give better error messages for invalid PEP3118 format strings\n---------------------------------------------------------------------------------\nThis should help track down problems.\n\nEinsum optimization path updates and efficiency improvements\n------------------------------------------------------------\nEinsum was synchronized with the current upstream work.\n\n`numpy.angle` and `numpy.expand_dims` now work on ``ndarray`` subclasses\n------------------------------------------------------------------------\nIn particular, they now work for masked arrays.\n\n``NPY_NO_DEPRECATED_API`` compiler warning suppression\n------------------------------------------------------\nSetting ``NPY_NO_DEPRECATED_API`` to a value of 0 will suppress the current compiler\nwarnings when the deprecated numpy API is used.\n\n``np.diff`` Added kwargs prepend and append\n-------------------------------------------\nNew kwargs ``prepend`` and ``append``, allow for values to be inserted on\neither end of the differences.  Similar to options for `ediff1d`. Now the\ninverse of `cumsum` can be obtained easily via ``prepend=0``.\n\nARM support updated\n-------------------\nSupport for ARM CPUs has been updated to accommodate 32 and 64 bit targets,\nand also big and little endian byte ordering. AARCH32 memory alignment issues\nhave been addressed. CI testing has been expanded to include AARCH64 targets\nvia the services of shippable.com.\n\nAppending to build flags\n------------------------\n`numpy.distutils` has always overridden rather than appended to `LDFLAGS` and\nother similar such environment variables for compiling Fortran extensions.\nNow, if the `NPY_DISTUTILS_APPEND_FLAGS` environment variable is set to 1, the\nbehavior will be appending.  This applied to: `LDFLAGS`, `F77FLAGS`,\n`F90FLAGS`, `FREEFLAGS`, `FOPT`, `FDEBUG`, and `FFLAGS`.  See gh-11525 for more\ndetails.\n\nGeneralized ufunc signatures now allow fixed-size dimensions\n------------------------------------------------------------\nBy using a numerical value in the signature of a generalized ufunc, one can\nindicate that the given function requires input or output to have dimensions\nwith the given size. E.g., the signature of a function that converts a polar\nangle to a two-dimensional cartesian unit vector would be ``()-&gt;(2)``; that\nfor one that converts two spherical angles to a three-dimensional unit vector\nwould be ``(),()-&gt;(3)``; and that for the cross product of two\nthree-dimensional vectors would be ``(3),(3)-&gt;(3)``.\n\nNote that to the elementary function these dimensions are not treated any\ndifferently from variable ones indicated with a name starting with a letter;\nthe loop still is passed the corresponding size, but it can now count on that\nsize being equal to the fixed one given in the signature.\n\nGeneralized ufunc signatures now allow flexible dimensions\n----------------------------------------------------------\nSome functions, in particular numpy&#39;s implementation of ` as ``matmul``,\nare very similar to generalized ufuncs in that they operate over core\ndimensions, but one could not present them as such because they were able to\ndeal with inputs in which a dimension is missing. To support this, it is now\nallowed to postfix a dimension name with a question mark to indicate that the\ndimension does not necessarily have to be present.\n\nWith this addition, the signature for ``matmul`` can be expressed as\n``(m?,n),(n,p?)-&gt;(m?,p?)``.  This indicates that if, e.g., the second operand\nhas only one dimension, for the purposes of the elementary function it will be\ntreated as if that input has core shape ``(n, 1)``, and the output has the\ncorresponding core shape of ``(m, 1)``. The actual output array, however, has\nthe flexible dimension removed, i.e., it will have shape ``(..., m)``.\nSimilarly, if both arguments have only a single dimension, the inputs will be\npresented as having shapes ``(1, n)`` and ``(n, 1)`` to the elementary\nfunction, and the output as ``(1, 1)``, while the actual output array returned\nwill have shape ``()``. In this way, the signature allows one to use a\nsingle elementary function for four related but different signatures,\n``(m,n),(n,p)-&gt;(m,p)``, ``(n),(n,p)-&gt;(p)``, ``(m,n),(n)-&gt;(m)`` and\n``(n),(n)-&gt;()``.\n\n``np.clip`` and the ``clip`` method check for memory overlap\n------------------------------------------------------------\nThe ``out`` argument to these functions is now always tested for memory overlap\nto avoid corrupted results when memory overlap occurs.\n\nNew value ``unscaled`` for option ``cov`` in ``np.polyfit``\n-----------------------------------------------------------\nA further possible value has been added to the ``cov`` parameter of the\n``np.polyfit`` function. With ``cov=&#39;unscaled&#39;`` the scaling of the covariance\nmatrix is disabled completely (similar to setting ``absolute_sigma=True`` in\n``scipy.optimize.curve_fit``). This would be useful in occasions, where the\nweights are given by 1/sigma with sigma being the (known) standard errors of\n(Gaussian distributed) data points, in which case the unscaled matrix is\nalready a correct estimate for the covariance matrix.\n\nDetailed docstrings for scalar numeric types\n--------------------------------------------\nThe ``help`` function, when applied to numeric types such as `numpy.intc`,\n`numpy.int_`, and `numpy.longlong`, now lists all of the aliased names for that\ntype, distinguishing between platform -dependent and -independent aliases.\n\n``__module__`` attribute now points to public modules\n-----------------------------------------------------\nThe ``__module__`` attribute on most NumPy functions has been updated to refer\nto the preferred public module from which to access a function, rather than\nthe module in which the function happens to be defined. This produces more\ninformative displays for functions in tools such as IPython, e.g., instead of\n``&lt;function &#39;numpy.core.fromnumeric.sum&#39;&gt;`` you now see\n``&lt;function &#39;numpy.sum&#39;&gt;``.\n\nLarge allocations marked as suitable for transparent hugepages\n--------------------------------------------------------------\nOn systems that support transparent hugepages over the madvise system call\nnumpy now marks that large memory allocations can be backed by hugepages which\nreduces page fault overhead and can in some fault heavy cases improve\nperformance significantly. On Linux the setting for huge pages to be used,\n`/sys/kernel/mm/transparent_hugepage/enabled`, must be at least `madvise`.\nSystems which already have it set to `always` will not see much difference as\nthe kernel will automatically use huge pages where appropriate.\n\nUsers of very old Linux kernels (~3.x and older) should make sure that\n`/sys/kernel/mm/transparent_hugepage/defrag` is not set to `always` to avoid\nperformance problems due concurrency issues in the memory defragmentation.\n\nAlpine Linux (and other musl c library distros) support\n-------------------------------------------------------\nWe now default to use `fenv.h` for floating point status error reporting.\nPreviously we had a broken default that sometimes would not report underflow,\noverflow, and invalid floating point operations. Now we can support non-glibc\ndistrubutions like Alpine Linux as long as they ship `fenv.h`.\n\nSpeedup ``np.block`` for large arrays\n-------------------------------------\nLarge arrays (greater than ``512 * 512``) now use a blocking algorithm based on\ncopying the data directly into the appropriate slice of the resulting array.\nThis results in significant speedups for these large arrays, particularly for\narrays being blocked along more than 2 dimensions.\n\n``arr.ctypes.data_as(...)`` holds a reference to arr\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\nPreviously the caller was responsible for keeping the array alive for the\nlifetime of the pointer.\n\nSpeedup ``np.take`` for read-only arrays\n----------------------------------------\nThe implementation of ``np.take`` no longer makes an unnecessary copy of the\nsource array when its ``writeable`` flag is set to ``False``.\n\nSupport path-like objects for more functions\n--------------------------------------------\nThe ``np.core.records.fromfile`` function now supports ``pathlib.Path``\nand other path-like objects in addition to a file object. Furthermore, the\n``np.load`` function now also supports path-like objects when using memory\nmapping (``mmap_mode`` keyword argument).\n\nBetter behaviour of ufunc identities during reductions\n------------------------------------------------------\nUniversal functions have an ``.identity`` which is used when ``.reduce`` is\ncalled on an empty axis.\n\nAs of this release, the logical binary ufuncs, `logical_and`, `logical_or`,\nand `logical_xor`, now have ``identity`` s of type `bool`, where previously they\nwere of type `int`. This restores the 1.14 behavior of getting ``bool`` s when\nreducing empty object arrays with these ufuncs, while also keeping the 1.15\nbehavior of getting ``int`` s when reducing empty object arrays with arithmetic\nufuncs like ``add`` and ``multiply``.\n\nAdditionally, `logaddexp` now has an identity of ``-inf``, allowing it to be\ncalled on empty sequences, where previously it could not be.\n\nThis is possible thanks to the new\n:c:function:`PyUFunc_FromFuncAndDataAndSignatureAndIdentity`, which allows\narbitrary values to be used as identities now.\n\nImproved conversion from ctypes objects\n---------------------------------------\nNumpy has always supported taking a value or type from ``ctypes`` and\nconverting it into an array or dtype, but only behaved correctly for simpler\ntypes. As of this release, this caveat is lifted - now:\n\n* The ``_pack_`` attribute of ``ctypes.Structure``, used to emulate C&#39;s\n  ``__attribute__((packed))``, is respected.\n* Endianness of all ctypes objects is preserved\n* ``ctypes.Union`` is supported\n* Non-representable constructs raise exceptions, rather than producing\n  dangerously incorrect results:\n\n  * Bitfields are no longer interpreted as sub-arrays\n  * Pointers are no longer replaced with the type that they point to\n\nA new ``ndpointer.contents`` member\n-----------------------------------\nThis matches the ``.contents`` member of normal ctypes arrays, and can be used\nto construct an ``np.array`` around the pointers contents.  This replaces\n``np.array(some_nd_pointer)``, which stopped working in 1.15.  As a side effect\nof this change, ``ndpointer`` now supports dtypes with overlapping fields and\npadding.\n\n``matmul`` is now a ``ufunc``\n-----------------------------\n`numpy.matmul` is now a ufunc which means that both the function and the\n``__matmul__`` operator can now be overridden by ``__array_ufunc__``. Its\nimplementation has also changed. It uses the same BLAS routines as\n`numpy.dot`, ensuring its performance is similar for large matrices.\n\nStart and stop arrays for ``linspace``, ``logspace`` and ``geomspace``\n----------------------------------------------------------------------\nThese functions used to be limited to scalar stop and start values, but can\nnow take arrays, which will be properly broadcast and result in an output\nwhich has one axis prepended.  This can be used, e.g., to obtain linearly\ninterpolated points between sets of points.\n\nCI extended with additional services\n------------------------------------\nWe now use additional free CI services, thanks to the companies that provide:\n\n* Codecoverage testing via codecov.io\n* Arm testing via shippable.com\n* Additional test runs on azure pipelines\n\nThese are in addition to our continued use of travis, appveyor (for wheels) and\nLGTM\n\n\nChanges\n=======\n\nComparison ufuncs will now error rather than return NotImplemented\n------------------------------------------------------------------\nPreviously, comparison ufuncs such as ``np.equal`` would return\n`NotImplemented` if their arguments had structured dtypes, to help comparison\noperators such as ``__eq__`` deal with those.  This is no longer needed, as the\nrelevant logic has moved to the comparison operators proper (which thus do\ncontinue to return `NotImplemented` as needed). Hence, like all other ufuncs,\nthe comparison ufuncs will now error on structured dtypes.\n\nPositive will now raise a deprecation warning for non-numerical arrays\n----------------------------------------------------------------------\nPreviously, ``+array`` unconditionally returned a copy. Now, it will\nraise a ``DeprecationWarning`` if the array is not numerical (i.e.,\nif ``np.positive(array)`` raises a ``TypeError``. For ``ndarray``\nsubclasses that override the default ``__array_ufunc__`` implementation,\nthe ``TypeError`` is passed on.\n\n``NDArrayOperatorsMixin`` now implements matrix multiplication\n--------------------------------------------------------------\nPreviously, ``np.lib.mixins.NDArrayOperatorsMixin`` did not implement the\nspecial methods for Python&#39;s matrix multiplication operator (`). This has\nchanged now that ``matmul`` is a ufunc and can be overridden using\n``__array_ufunc__``.\n\nThe scaling of the covariance matrix in ``np.polyfit`` is different\n-------------------------------------------------------------------\nSo far, ``np.polyfit`` used a non-standard factor in the scaling of the the\ncovariance matrix. Namely, rather than using the standard ``chisq/(M-N)``, it\nscaled it with ``chisq/(M-N-2)`` where M is the number of data points and N is the\nnumber of parameters.  This scaling is inconsistent with other fitting programs\nsuch as e.g. ``scipy.optimize.curve_fit`` and was changed to ``chisq/(M-N)``.\n\n``maximum`` and ``minimum`` no longer emit warnings\n---------------------------------------------------\nAs part of code introduced in 1.10,  ``float32`` and ``float64`` set invalid\nfloat status when a Nan is encountered in `numpy.maximum` and `numpy.minimum`,\nwhen using SSE2 semantics. This caused a `RuntimeWarning` to sometimes be\nemitted. In 1.15 we fixed the inconsistencies which caused the warnings to\nbecome more conspicuous. Now no warnings will be emitted.\n\nUmath and multiarray c-extension modules merged into a single module\n--------------------------------------------------------------------\nThe two modules were merged, according to `NEP 15`_. Previously `np.core.umath`\nand `np.core.multiarray` were seperate c-extension modules. They are now python\nwrappers to the single `np.core/_multiarray_math` c-extension module.\n\n.. _`NEP 15` : http://www.numpy.org/neps/nep-0015-merge-multiarray-umath.html\n\n``getfield`` validity checks extended\n-------------------------------------\n`numpy.ndarray.getfield` now checks the dtype and offset arguments to prevent\naccessing invalid memory locations.\n\nNumPy functions now support overrides with ``__array_function__``\n-----------------------------------------------------------------\nNumPy has a new experimental mechanism for overriding the implementation of\nalmost all NumPy functions on non-NumPy arrays by defining an\n``__array_function__`` method, as described in `NEP 18`_.\n\nThis feature is not yet been enabled by default, but has been released to\nfacilitate experimentation by potential users. See the NEP for details on\nsetting the appropriate environment variable. We expect the NumPy 1.17 release\nwill enable overrides by default, which will also be more performant due to a\nnew implementation written in C.\n\n.. _`NEP 18` : http://www.numpy.org/neps/nep-0018-array-function-protocol.html\n\nArrays based off readonly buffers cannot be set ``writeable``\n-------------------------------------------------------------\nWe now disallow setting the ``writeable`` flag True on arrays created\nfrom ``fromstring(readonly-buffer)``.\n\n\n==========================\n   ```\n   \n  \n  \n   ### 1.15.4\n   ```\n   ==========================\n\nThis is a bugfix release for bugs and regressions reported following the 1.15.3\nrelease.  The Python versions supported by this release are 2.7, 3.4-3.7. The\nwheels are linked with OpenBLAS v0.3.0, which should fix some of the linalg\nproblems reported for NumPy 1.14.\n\nCompatibility Note\n==================\n\nThe NumPy 1.15.x OS X wheels released on PyPI no longer contain 32-bit\nbinaries.  That will also be the case in future releases. See\n`11625 &lt;https://github.com/numpy/numpy/issues/11625&gt;`__ for the related\ndiscussion.  Those needing 32-bit support should look elsewhere or build\nfrom source.\n\nContributors\n============\n\nA total of 4 people contributed to this release.  People with a &quot;+&quot; by their\nnames contributed a patch for the first time.\n\n* Charles Harris\n* Matti Picus\n* Sebastian Berg\n* bbbbbbbbba +\n\nPull requests merged\n====================\n\nA total of 4 pull requests were merged for this release.\n\n* `12296 &lt;https://github.com/numpy/numpy/pull/12296&gt;`__: BUG: Dealloc cached buffer info\n* `12297 &lt;https://github.com/numpy/numpy/pull/12297&gt;`__: BUG: Fix fill value in masked array &#39;==&#39; and &#39;!=&#39; ops.\n* `12307 &lt;https://github.com/numpy/numpy/pull/12307&gt;`__: DOC: Correct the default value of `optimize` in `numpy.einsum`\n* `12320 &lt;https://github.com/numpy/numpy/pull/12320&gt;`__: REL: Prepare for the NumPy 1.15.4 release\n\n\n==========================\n   ```\n   \n  \n  \n   ### 1.15.3\n   ```\n   ==========================\n\nThis is a bugfix release for bugs and regressions reported following the 1.15.2\nrelease.  The Python versions supported by this release are 2.7, 3.4-3.7. The\nwheels are linked with OpenBLAS v0.3.0, which should fix some of the linalg\nproblems reported for NumPy 1.14.\n\nCompatibility Note\n==================\n\nThe NumPy 1.15.x OS X wheels released on PyPI no longer contain 32-bit\nbinaries.  That will also be the case in future releases. See\n`11625 &lt;https://github.com/numpy/numpy/issues/11625&gt;`__ for the related\ndiscussion.  Those needing 32-bit support should look elsewhere or build\nfrom source.\n\nContributors\n============\n\nA total of 7 people contributed to this release.  People with a &quot;+&quot; by their\nnames contributed a patch for the first time.\n\n* Allan Haldane\n* Charles Harris\n* Jeroen Demeyer\n* Kevin Sheppard\n* Matthew Bowden +\n* Matti Picus\n* Tyler Reddy\n\nPull requests merged\n====================\n\nA total of 12 pull requests were merged for this release.\n\n* `12080 &lt;https://github.com/numpy/numpy/pull/12080&gt;`__: MAINT: Blacklist some MSVC complex functions.\n* `12083 &lt;https://github.com/numpy/numpy/pull/12083&gt;`__: TST: Add azure CI testing to 1.15.x branch.\n* `12084 &lt;https://github.com/numpy/numpy/pull/12084&gt;`__: BUG: test_path() now uses Path.resolve()\n* `12085 &lt;https://github.com/numpy/numpy/pull/12085&gt;`__: TST, MAINT: Fix some failing tests on azure-pipelines mac and...\n* `12187 &lt;https://github.com/numpy/numpy/pull/12187&gt;`__: BUG: Fix memory leak in mapping.c\n* `12188 &lt;https://github.com/numpy/numpy/pull/12188&gt;`__: BUG: Allow boolean subtract in histogram\n* `12189 &lt;https://github.com/numpy/numpy/pull/12189&gt;`__: BUG: Fix in-place permutation\n* `12190 &lt;https://github.com/numpy/numpy/pull/12190&gt;`__: BUG: limit default for get_num_build_jobs() to 8\n* `12191 &lt;https://github.com/numpy/numpy/pull/12191&gt;`__: BUG: OBJECT_to_* should check for errors\n* `12192 &lt;https://github.com/numpy/numpy/pull/12192&gt;`__: DOC: Prepare for NumPy 1.15.3 release.\n* `12237 &lt;https://github.com/numpy/numpy/pull/12237&gt;`__: BUG: Fix MaskedArray fill_value type conversion.\n* `12238 &lt;https://github.com/numpy/numpy/pull/12238&gt;`__: TST: Backport azure-pipeline testing fixes for Mac\n\n\n=========================\n   ```\n   \n  \n  \n   ### 1.15.2\n   ```\n   ==========================\n\nThis is a bugfix release for bugs and regressions reported following the 1.15.1\nrelease.\n\n* The matrix PendingDeprecationWarning is now suppressed in pytest 3.8.\n* The new cached allocations machinery has been fixed to be thread safe.\n* The boolean indexing of subclasses now works correctly.\n* A small memory leak in PyArray_AdaptFlexibleDType has been fixed.\n\nThe Python versions supported by this release are 2.7, 3.4-3.7. The wheels are\nlinked with OpenBLAS v0.3.0, which should fix some of the linalg problems\nreported for NumPy 1.14.\n\nCompatibility Note\n==================\n\nThe NumPy 1.15.x OS X wheels released on PyPI no longer contain 32-bit\nbinaries.  That will also be the case in future releases. See\n`11625 &lt;https://github.com/numpy/numpy/issues/11625&gt;`__ for the related\ndiscussion.  Those needing 32-bit support should look elsewhere or build\nfrom source.\n\nContributors\n============\n\nA total of 4 people contributed to this release.  People with a &quot;+&quot; by their\nnames contributed a patch for the first time.\n\n* Charles Harris\n* Julian Taylor\n* Marten van Kerkwijk\n* Matti Picus\n\nPull requests merged\n====================\n\nA total of 4 pull requests were merged for this release.\n\n* `11902 &lt;https://github.com/numpy/numpy/pull/11902&gt;`__: BUG: Fix matrix PendingDeprecationWarning suppression for pytest...\n* `11981 &lt;https://github.com/numpy/numpy/pull/11981&gt;`__: BUG: fix cached allocations without the GIL for 1.15.x\n* `11982 &lt;https://github.com/numpy/numpy/pull/11982&gt;`__: BUG: fix refcount leak in PyArray_AdaptFlexibleDType\n* `11992 &lt;https://github.com/numpy/numpy/pull/11992&gt;`__: BUG: Ensure boolean indexing of subclasses sets base correctly.\n\n\n==========================\n   ```\n   \n  \n</details>\n\n\n \n\n<details>\n  <summary>Links</summary>\n  \n  - PyPI: https://pypi.org/project/numpy\n  - Changelog: https://pyup.io/changelogs/numpy/\n  - Homepage: https://www.numpy.org\n</details>\n\n\n\n\n\n"},"comment":{"url":"https://api.github.com/repos/mozilla/ichnaea/issues/comments/475612029","html_url":"https://github.com/mozilla/ichnaea/pull/720#issuecomment-475612029","issue_url":"https://api.github.com/repos/mozilla/ichnaea/issues/720","id":475612029,"node_id":"MDEyOklzc3VlQ29tbWVudDQ3NTYxMjAyOQ==","user":{"login":"pyup-bot","id":16239342,"node_id":"MDQ6VXNlcjE2MjM5MzQy","avatar_url":"https://avatars0.githubusercontent.com/u/16239342?v=4","gravatar_id":"","url":"https://api.github.com/users/pyup-bot","html_url":"https://github.com/pyup-bot","followers_url":"https://api.github.com/users/pyup-bot/followers","following_url":"https://api.github.com/users/pyup-bot/following{/other_user}","gists_url":"https://api.github.com/users/pyup-bot/gists{/gist_id}","starred_url":"https://api.github.com/users/pyup-bot/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pyup-bot/subscriptions","organizations_url":"https://api.github.com/users/pyup-bot/orgs","repos_url":"https://api.github.com/users/pyup-bot/repos","events_url":"https://api.github.com/users/pyup-bot/events{/privacy}","received_events_url":"https://api.github.com/users/pyup-bot/received_events","type":"User","site_admin":false},"created_at":"2019-03-22T13:00:17Z","updated_at":"2019-03-22T13:00:17Z","author_association":"NONE","body":"Closing this in favor of #721"}}
other: {"actor":{"display_login":"pyup-bot"}}