{"action":"closed","number":337,"pull_request":{"url":"https://api.github.com/repos/aio-libs/aiohttp_admin/pulls/337","id":165699179,"html_url":"https://github.com/aio-libs/aiohttp_admin/pull/337","diff_url":"https://github.com/aio-libs/aiohttp_admin/pull/337.diff","patch_url":"https://github.com/aio-libs/aiohttp_admin/pull/337.patch","issue_url":"https://api.github.com/repos/aio-libs/aiohttp_admin/issues/337","number":337,"state":"closed","locked":false,"title":"Scheduled weekly dependency update for week 04","user":{"login":"pyup-bot","id":16239342,"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},"body":"\n\n\n## Updates\nHere's a list of all the updates bundled in this pull request. I've added some links to make it easier for you to find all the information you need.\n<table align=\"center\">\n\n<tr>\n<td><b>pytest</b></td>\n<td align=\"center\">3.2.4</td>\n<td align=\"center\">&raquo;</td>\n<td align=\"center\">3.3.2</td>\n<td>\n     <a href=\"https://pypi.python.org/pypi/pytest\">PyPI</a> | <a href=\"https://pyup.io/changelogs/pytest/\">Changelog</a> | <a href=\"https://github.com/pytest-dev/pytest/issues\">Repo</a> | <a href=\"http://pytest.org\">Homepage</a> \n\n</td>\n\n<tr>\n<td><b>aiohttp</b></td>\n<td align=\"center\">2.3.6</td>\n<td align=\"center\">&raquo;</td>\n<td align=\"center\">2.3.9</td>\n<td>\n     <a href=\"https://pypi.python.org/pypi/aiohttp\">PyPI</a> | <a href=\"https://pyup.io/changelogs/aiohttp/\">Changelog</a> | <a href=\"https://github.com/aio-libs/aiohttp/\">Repo</a> \n\n</td>\n\n<tr>\n<td><b>aiomysql</b></td>\n<td align=\"center\">0.0.9</td>\n<td align=\"center\">&raquo;</td>\n<td align=\"center\">0.0.12</td>\n<td>\n     <a href=\"https://pypi.python.org/pypi/aiomysql\">PyPI</a> | <a href=\"https://pyup.io/changelogs/aiomysql/\">Changelog</a> | <a href=\"https://github.com/aio-libs/aiomysql\">Repo</a> \n\n</td>\n\n<tr>\n<td><b>aiopg</b></td>\n<td align=\"center\">0.13.1</td>\n<td align=\"center\">&raquo;</td>\n<td align=\"center\">0.13.2</td>\n<td>\n     <a href=\"https://pypi.python.org/pypi/aiopg\">PyPI</a> | <a href=\"https://pyup.io/changelogs/aiopg/\">Changelog</a> | <a href=\"https://aiopg.readthedocs.io\">Docs</a> \n\n</td>\n\n<tr>\n<td><b>docker</b></td>\n<td align=\"center\">2.6.1</td>\n<td align=\"center\">&raquo;</td>\n<td align=\"center\">2.7.0</td>\n<td>\n     <a href=\"https://pypi.python.org/pypi/docker\">PyPI</a> | <a href=\"https://pyup.io/changelogs/docker/\">Changelog</a> | <a href=\"https://github.com/docker/docker-py\">Repo</a> \n\n</td>\n\n<tr>\n<td><b>docker-compose</b></td>\n<td align=\"center\">1.17.1</td>\n<td align=\"center\">&raquo;</td>\n<td align=\"center\">1.18.0</td>\n<td>\n     <a href=\"https://pypi.python.org/pypi/docker-compose\">PyPI</a> | <a href=\"https://www.docker.com/\">Homepage</a> \n\n</td>\n\n<tr>\n<td><b>motor</b></td>\n<td align=\"center\">1.1</td>\n<td align=\"center\">&raquo;</td>\n<td align=\"center\">1.2.1</td>\n<td>\n     <a href=\"https://pypi.python.org/pypi/motor\">PyPI</a> | <a href=\"https://pyup.io/changelogs/motor/\">Changelog</a> | <a href=\"https://github.com/mongodb/motor/\">Repo</a> \n\n</td>\n\n<tr>\n<td><b>sqlalchemy</b></td>\n<td align=\"center\">1.1.15</td>\n<td align=\"center\">&raquo;</td>\n<td align=\"center\">1.2.2</td>\n<td>\n     <a href=\"https://pypi.python.org/pypi/sqlalchemy\">PyPI</a> | <a href=\"https://pyup.io/changelogs/sqlalchemy/\">Changelog</a> | <a href=\"http://www.sqlalchemy.org\">Homepage</a> \n\n</td>\n\n<tr>\n<td><b>trafaret</b></td>\n<td align=\"center\">0.10.4</td>\n<td align=\"center\">&raquo;</td>\n<td align=\"center\">1.0.2</td>\n<td>\n     <a href=\"https://pypi.python.org/pypi/trafaret\">PyPI</a> | <a href=\"https://pyup.io/changelogs/trafaret/\">Changelog</a> | <a href=\"https://github.com/Deepwalker/trafaret/\">Repo</a> \n\n</td>\n\n<tr>\n<td><b>pymysql</b></td>\n<td align=\"center\">0.7.11</td>\n<td align=\"center\">&raquo;</td>\n<td align=\"center\">0.8.0</td>\n<td>\n     <a href=\"https://pypi.python.org/pypi/pymysql\">PyPI</a> | <a href=\"https://pyup.io/changelogs/pymysql/\">Changelog</a> | <a href=\"https://github.com/PyMySQL/PyMySQL/\">Repo</a> \n\n</td>\n\n<tr>\n<td><b>sphinx</b></td>\n<td align=\"center\">1.6.5</td>\n<td align=\"center\">&raquo;</td>\n<td align=\"center\">1.6.6</td>\n<td>\n     <a href=\"https://pypi.python.org/pypi/sphinx\">PyPI</a> | <a href=\"https://pyup.io/changelogs/sphinx/\">Changelog</a> | <a href=\"http://sphinx-doc.org/\">Homepage</a> \n\n</td>\n\n</tr>\n</table>\n\n\n\n## Changelogs\n\n\n### pytest 3.2.4 -> 3.3.2\n\n>### 3.3.2\n\n>=========================\n\n>Bug Fixes\n>---------\n\n>- pytester: ignore files used to obtain current user metadata in the fd leak\n>  detector. (`2784 &lt;https://github.com/pytest-dev/pytest/issues/2784&gt;`_)\n\n>- Fix **memory leak** where objects returned by fixtures were never destructed\n>  by the garbage collector. (`2981\n>  &lt;https://github.com/pytest-dev/pytest/issues/2981&gt;`_)\n\n>- Fix conversion of pyargs to filename to not convert symlinks and not use\n>  deprecated features on Python 3. (`2985\n>  &lt;https://github.com/pytest-dev/pytest/issues/2985&gt;`_)\n\n>- ``PYTEST_DONT_REWRITE`` is now checked for plugins too rather than only for\n>  test modules. (`2995 &lt;https://github.com/pytest-dev/pytest/issues/2995&gt;`_)\n\n\n>Improved Documentation\n>----------------------\n\n>- Add clarifying note about behavior of multiple parametrized arguments (`3001\n>  &lt;https://github.com/pytest-dev/pytest/issues/3001&gt;`_)\n\n\n>Trivial/Internal Changes\n>------------------------\n\n>- Code cleanup. (`3015 &lt;https://github.com/pytest-dev/pytest/issues/3015&gt;`_,\n>  `3021 &lt;https://github.com/pytest-dev/pytest/issues/3021&gt;`_)\n\n>- Clean up code by replacing imports and references of `_ast` to `ast`. (`3018\n>  &lt;https://github.com/pytest-dev/pytest/issues/3018&gt;`_)\n\n\n\n\n>### 3.3.1\n\n>=========================\n\n>Bug Fixes\n>---------\n\n>- Fix issue about ``-p no:&lt;plugin&gt;`` having no effect. (`2920\n>  &lt;https://github.com/pytest-dev/pytest/issues/2920&gt;`_)\n\n>- Fix regression with warnings that contained non-strings in their arguments in\n>  Python 2. (`2956 &lt;https://github.com/pytest-dev/pytest/issues/2956&gt;`_)\n\n>- Always escape null bytes when setting ``PYTEST_CURRENT_TEST``. (`2957\n>  &lt;https://github.com/pytest-dev/pytest/issues/2957&gt;`_)\n\n>- Fix ``ZeroDivisionError`` when using the ``testmon`` plugin when no tests\n>  were actually collected. (`2971\n>  &lt;https://github.com/pytest-dev/pytest/issues/2971&gt;`_)\n\n>- Bring back ``TerminalReporter.writer`` as an alias to\n>  ``TerminalReporter._tw``. This alias was removed by accident in the ``3.3.0``\n>  release. (`2984 &lt;https://github.com/pytest-dev/pytest/issues/2984&gt;`_)\n\n>- The ``pytest-capturelog`` plugin is now also blacklisted, avoiding errors when\n>  running pytest with it still installed. (`3004\n>  &lt;https://github.com/pytest-dev/pytest/issues/3004&gt;`_)\n\n\n>Improved Documentation\n>----------------------\n\n>- Fix broken link to plugin ``pytest-localserver``. (`2963\n>  &lt;https://github.com/pytest-dev/pytest/issues/2963&gt;`_)\n\n\n>Trivial/Internal Changes\n>------------------------\n\n>- Update github &quot;bugs&quot; link in ``CONTRIBUTING.rst`` (`2949\n>  &lt;https://github.com/pytest-dev/pytest/issues/2949&gt;`_)\n\n\n\n\n>### 3.3.0\n\n>=========================\n\n>Deprecations and Removals\n>-------------------------\n\n>- Pytest no longer supports Python **2.6** and **3.3**. Those Python versions\n>  are EOL for some time now and incur maintenance and compatibility costs on\n>  the pytest core team, and following up with the rest of the community we\n>  decided that they will no longer be supported starting on this version. Users\n>  which still require those versions should pin pytest to ``&lt;3.3``. (`2812\n>  &lt;https://github.com/pytest-dev/pytest/issues/2812&gt;`_)\n\n>- Remove internal ``_preloadplugins()`` function. This removal is part of the\n>  ``pytest_namespace()`` hook deprecation. (`2636\n>  &lt;https://github.com/pytest-dev/pytest/issues/2636&gt;`_)\n\n>- Internally change ``CallSpec2`` to have a list of marks instead of a broken\n>  mapping of keywords. This removes the keywords attribute of the internal\n>  ``CallSpec2`` class. (`2672\n>  &lt;https://github.com/pytest-dev/pytest/issues/2672&gt;`_)\n\n>- Remove ParameterSet.deprecated_arg_dict - its not a public api and the lack\n>  of the underscore was a naming error. (`2675\n>  &lt;https://github.com/pytest-dev/pytest/issues/2675&gt;`_)\n\n>- Remove the internal multi-typed attribute ``Node._evalskip`` and replace it\n>  with the boolean ``Node._skipped_by_mark``. (`2767\n>  &lt;https://github.com/pytest-dev/pytest/issues/2767&gt;`_)\n\n>- The ``params`` list passed to ``pytest.fixture`` is now for\n>  all effects considered immutable and frozen at the moment of the ``pytest.fixture``\n>  call. Previously the list could be changed before the first invocation of the fixture\n>  allowing for a form of dynamic parametrization (for example, updated from command-line options),\n>  but this was an unwanted implementation detail which complicated the internals and prevented\n>  some internal cleanup. See issue `2959 &lt;https://github.com/pytest-dev/pytest/issues/2959&gt;`_\n>  for details and a recommended workaround.\n\n>Features\n>--------\n\n>- ``pytest_fixture_post_finalizer`` hook can now receive a ``request``\n>  argument. (`2124 &lt;https://github.com/pytest-dev/pytest/issues/2124&gt;`_)\n\n>- Replace the old introspection code in compat.py that determines the available\n>  arguments of fixtures with inspect.signature on Python 3 and\n>  funcsigs.signature on Python 2. This should respect ``__signature__``\n>  declarations on functions. (`2267\n>  &lt;https://github.com/pytest-dev/pytest/issues/2267&gt;`_)\n\n>- Report tests with global ``pytestmark`` variable only once. (`2549\n>  &lt;https://github.com/pytest-dev/pytest/issues/2549&gt;`_)\n\n>- Now pytest displays the total progress percentage while running tests. The\n>  previous output style can be set by configuring the ``console_output_style``\n>  setting to ``classic``. (`2657 &lt;https://github.com/pytest-dev/pytest/issues/2657&gt;`_)\n\n>- Match ``warns`` signature to ``raises`` by adding ``match`` keyword. (`2708\n>  &lt;https://github.com/pytest-dev/pytest/issues/2708&gt;`_)\n\n>- Pytest now captures and displays output from the standard `logging` module.\n>  The user can control the logging level to be captured by specifying options\n>  in ``pytest.ini``, the command line and also during individual tests using\n>  markers. Also, a ``caplog`` fixture is available that enables users to test\n>  the captured log during specific tests (similar to ``capsys`` for example).\n>  For more information, please see the `logging docs\n>  &lt;https://docs.pytest.org/en/latest/logging.html&gt;`_. This feature was\n>  introduced by merging the popular `pytest-catchlog\n>  &lt;https://pypi.org/project/pytest-catchlog/&gt;`_ plugin, thanks to `Thomas Hisch\n>  &lt;https://github.com/thisch&gt;`_. Be advised that during the merging the\n>  backward compatibility interface with the defunct ``pytest-capturelog`` has\n>  been dropped. (`2794 &lt;https://github.com/pytest-dev/pytest/issues/2794&gt;`_)\n\n>- Add ``allow_module_level`` kwarg to ``pytest.skip()``, enabling to skip the\n>  whole module. (`2808 &lt;https://github.com/pytest-dev/pytest/issues/2808&gt;`_)\n\n>- Allow setting ``file_or_dir``, ``-c``, and ``-o`` in PYTEST_ADDOPTS. (`2824\n>  &lt;https://github.com/pytest-dev/pytest/issues/2824&gt;`_)\n\n>- Return stdout/stderr capture results as a ``namedtuple``, so ``out`` and\n>  ``err`` can be accessed by attribute. (`2879\n>  &lt;https://github.com/pytest-dev/pytest/issues/2879&gt;`_)\n\n>- Add ``capfdbinary``, a version of ``capfd`` which returns bytes from\n>  ``readouterr()``. (`2923\n>  &lt;https://github.com/pytest-dev/pytest/issues/2923&gt;`_)\n\n>- Add ``capsysbinary`` a version of ``capsys`` which returns bytes from\n>  ``readouterr()``. (`2934\n>  &lt;https://github.com/pytest-dev/pytest/issues/2934&gt;`_)\n\n>- Implement feature to skip ``setup.py`` files when run with\n>  ``--doctest-modules``. (`502\n>  &lt;https://github.com/pytest-dev/pytest/issues/502&gt;`_)\n\n\n>Bug Fixes\n>---------\n\n>- Resume output capturing after ``capsys/capfd.disabled()`` context manager.\n>  (`1993 &lt;https://github.com/pytest-dev/pytest/issues/1993&gt;`_)\n\n>- ``pytest_fixture_setup`` and ``pytest_fixture_post_finalizer`` hooks are now\n>  called for all ``conftest.py`` files. (`2124\n>  &lt;https://github.com/pytest-dev/pytest/issues/2124&gt;`_)\n\n>- If an exception happens while loading a plugin, pytest no longer hides the\n>  original traceback. In Python 2 it will show the original traceback with a new\n>  message that explains in which plugin. In Python 3 it will show 2 canonized\n>  exceptions, the original exception while loading the plugin in addition to an\n>  exception that pytest throws about loading a plugin. (`2491\n>  &lt;https://github.com/pytest-dev/pytest/issues/2491&gt;`_)\n\n>- ``capsys`` and ``capfd`` can now be used by other fixtures. (`2709\n>  &lt;https://github.com/pytest-dev/pytest/issues/2709&gt;`_)\n\n>- Internal ``pytester`` plugin properly encodes ``bytes`` arguments to\n>  ``utf-8``. (`2738 &lt;https://github.com/pytest-dev/pytest/issues/2738&gt;`_)\n\n>- ``testdir`` now uses use the same method used by ``tmpdir`` to create its\n>  temporary directory. This changes the final structure of the ``testdir``\n>  directory slightly, but should not affect usage in normal scenarios and\n>  avoids a number of potential problems. (`2751\n>  &lt;https://github.com/pytest-dev/pytest/issues/2751&gt;`_)\n\n>- Pytest no longer complains about warnings with unicode messages being\n>  non-ascii compatible even for ascii-compatible messages. As a result of this,\n>  warnings with unicode messages are converted first to an ascii representation\n>  for safety. (`2809 &lt;https://github.com/pytest-dev/pytest/issues/2809&gt;`_)\n\n>- Change return value of pytest command when ``--maxfail`` is reached from\n>  ``2`` (interrupted) to ``1`` (failed). (`2845\n>  &lt;https://github.com/pytest-dev/pytest/issues/2845&gt;`_)\n\n>- Fix issue in assertion rewriting which could lead it to rewrite modules which\n>  should not be rewritten. (`2939\n>  &lt;https://github.com/pytest-dev/pytest/issues/2939&gt;`_)\n\n>- Handle marks without description in ``pytest.ini``. (`2942\n>  &lt;https://github.com/pytest-dev/pytest/issues/2942&gt;`_)\n\n\n>Trivial/Internal Changes\n>------------------------\n\n>- pytest now depends on `attrs &lt;https://pypi.org/project/attrs/&gt;`_ for internal\n>  structures to ease code maintainability. (`2641\n>  &lt;https://github.com/pytest-dev/pytest/issues/2641&gt;`_)\n\n>- Refactored internal Python 2/3 compatibility code to use ``six``. (`2642\n>  &lt;https://github.com/pytest-dev/pytest/issues/2642&gt;`_)\n\n>- Stop vendoring ``pluggy`` - we&#39;re missing out on its latest changes for not\n>  much benefit (`2719 &lt;https://github.com/pytest-dev/pytest/issues/2719&gt;`_)\n\n>- Internal refactor: simplify ascii string escaping by using the\n>  backslashreplace error handler in newer Python 3 versions. (`2734\n>  &lt;https://github.com/pytest-dev/pytest/issues/2734&gt;`_)\n\n>- Remove unnecessary mark evaluator in unittest plugin (`2767\n>  &lt;https://github.com/pytest-dev/pytest/issues/2767&gt;`_)\n\n>- Calls to ``Metafunc.addcall`` now emit a deprecation warning. This function\n>  is scheduled to be removed in ``pytest-4.0``. (`2876\n>  &lt;https://github.com/pytest-dev/pytest/issues/2876&gt;`_)\n\n>- Internal move of the parameterset extraction to a more maintainable place.\n>  (`2877 &lt;https://github.com/pytest-dev/pytest/issues/2877&gt;`_)\n\n>- Internal refactoring to simplify scope node lookup. (`2910\n>  &lt;https://github.com/pytest-dev/pytest/issues/2910&gt;`_)\n\n>- Configure ``pytest`` to prevent pip from installing pytest in unsupported\n>  Python versions. (`2922\n>  &lt;https://github.com/pytest-dev/pytest/issues/2922&gt;`_)\n\n\n\n\n>### 3.2.5\n\n>=========================\n\n>Bug Fixes\n>---------\n\n>- Remove ``py&lt;1.5`` restriction from ``pytest`` as this can cause version\n>  conflicts in some installations. (`2926\n>  &lt;https://github.com/pytest-dev/pytest/issues/2926&gt;`_)\n\n\n\n\n\n\n\n\n### aiohttp 2.3.6 -> 2.3.9\n\n>### 2.3.9\n\n>==================\n\n>- Fix colon handing in path for dynamic resources (2670)\n\n\n\n>### 2.3.8\n\n>==================\n\n>- Do not use `yarl.unquote` internal function in aiohttp.  Fix\n>  incorrectly unquoted path part in URL dispatcher (2662)\n\n>- Fix compatibility with `yarl==1.0.0` (2662)\n\n\n\n>### 2.3.7\n\n>==================\n\n>- Fixed race-condition for iterating addresses from the DNSCache. (2620)\n>- Fix docstring for request.host (2591)\n>- Fix docstring for request.remote (2592)\n\n\n\n\n\n\n\n\n### aiomysql 0.0.9 -> 0.0.12\n\n>### 0.0.12\n\n>^^^^^^^^^^^^^^^^^^^\n\n>* Fixed support for SQLAlchemy 1.2.0\n\n>* Fixed argument for cursor.execute in sa engine 239 (Thanks NotSoSuper)\n\n\n\n\n>### 0.0.11\n\n>^^^^^^^^^^^^^^^^^^^\n\n>* Fixed README formatting on pypi\n\n\n\n\n>### 0.0.10\n\n>^^^^^^^^^^^^^^^^^^^\n\n>* Updated regular expressions to be compatible with pymysql 167 (Thanks AlexLisovoy)\n\n>* Added connection recycling in the pool 216\n\n\n\n\n\n\n\n\n### aiopg 0.13.1 -> 0.13.2\n\n>### 0.13.2\n\n>^^^^^^^^^^^^^^^^^^^\n\n>* Fixed compatibility with SQLAlchemy 1.2.0 412\n\n>* Added support for transaction isolation levels 219\n\n\n\n\n\n\n\n\n### docker 2.6.1 -> 2.7.0\n\n>### 2.7.0\n\n>-----\n\n>[List of PRs / issues for this release](https://github.com/docker/docker-py/milestone/41?closed=1)\n\n> Features\n\n>* Added `unlock_swarm` and `get_unlock_key` methods to the `APIClient`.\n>    * Added `unlock` and `get_unlock_key` to `DockerClient.swarm`.\n>* Added a `greedy` parameter to `DockerClient.networks.list`, yielding\n>  additional details about the listed networks.\n>* Added `cpu_rt_runtime` and `cpu_rt_period` as parameters to\n>  `APIClient.create_host_config` and `DockerClient.containers.run`.\n>* Added the `order` argument to `UpdateConfig`.\n>* Added `fetch_current_spec` to `APIClient.update_service` and `Service.update`\n>  that will retrieve the current configuration of the service and merge it with\n>  the provided parameters to determine the new configuration.\n\n> Bugfixes\n\n>* Fixed a bug where the `build` method tried to include inaccessible files\n>  in the context, leading to obscure errors during the build phase\n>  (inaccessible files inside the context now raise an `IOError` instead).\n>* Fixed a bug where the `build` method would try to read from FIFOs present\n>  inside the build context, causing it to hang.\n>* `APIClient.stop` will no longer override the `stop_timeout` value present\n>  in the container&#39;s configuration.\n>* Fixed a bug preventing removal of networks with names containing a space.\n>* Fixed a bug where `DockerClient.containers.run` would crash if the\n>  `auto_remove` parameter was set to `True`.\n>* Changed the default value of `listen_addr` in `join_swarm` to match the\n>  one in `init_swarm`.\n>* Fixed a bug where handling HTTP errors with no body would cause an unexpected\n>  exception to be thrown while generating an `APIError` object.\n\n\n\n\n\n\n\n### motor 1.1 -> 1.2.1\n\n>### 1.2.1\n\n>-----------\n\n>An asyncio application that created a Change Stream with\n>:meth:`MotorCollection.watch` and shut down while the Change Stream was open\n>would print several errors. I have rewritten :meth:`MotorChangeStream.next`\n>and some Motor internals to allow clean shutdown with asyncio.\n\n\n\n>### 1.2\n\n>features. It depends on PyMongo 3.6 or later. Motor continues to support MongoDB\n>2.6 and later.\n\n>Dropped support for Python 2.6 and 3.3. Motor continues to support Python 2.7,\n>and 3.4+.\n\n>Dropped support for Tornado 3. A recent version of Tornado 4 is required.\n\n>Dropped support for the `Python 3.5.0 and Python 3.5.1 &quot;async for&quot; protocol\n>&lt;https://python.org/dev/peps/pep-0492/api-design-and-implementation-revisions&gt;`_.\n>Motor allows &quot;async for&quot; with cursors in Python 3.5.2 and later.\n\n>See the :ref:`Compatibility Matrix &lt;compatibility-matrix&gt;` for the relationships\n>among Motor, Python, Tornado, and MongoDB versions.\n\n>Added support for `aiohttp`_ 2.0 and later, and dropped older aiohttp versions.\n\n>Highlights include:\n\n>- New method :meth:`MotorCollection.watch` to acquire a Change Stream on a\n>  collection.\n>- New Session API to support causal consistency, see\n>  :meth:`MotorClient.start_session`.\n>- Support for array_filters in\n>  :meth:`~MotorCollection.update_one`,\n>  :meth:`~MotorCollection.update_many`,\n>  :meth:`~MotorCollection.find_one_and_update`,\n>  :meth:`~MotorCollection.bulk_write`.\n>- :meth:`MotorClient.list_databases` and :meth:`MotorClient.list_database_names`.\n>- Support for mongodb+srv:// URIs. See\n>  :class:`~pymongo.mongo_client.MongoClient` for details.\n>- Support for retryable writes and the ``retryWrites`` URI option.  See\n>  :class:`~pymongo.mongo_client.MongoClient` for details.\n\n>The maximum number of workers in the thread pool can be overridden with an\n>environment variable, see :doc:`configuration`.\n\n>:class:`MotorCollection` accepts codec_options, read_preference, write_concern,\n>and read_concern arguments. This is rarely needed; you typically create a\n>:class:`MotorCollection` from a :class:`MotorDatabase`, not by calling its\n>constructor directly.\n\n>Deleted obsolete class ``motor.Op``.\n\n\n\n\n\n\n\n### sqlalchemy 1.1.15 -> 1.2.2\n\n>### 1.2.2\n\n>    :released: January 24, 2018\n\n>    .. change::\n>        :tags: bug, mssql\n>        :tickets: 4164\n\n>        Added ODBC error code 10054 to the list of error\n>        codes that count as a disconnect for ODBC / MSSQL server.\n\n\n>    .. change::\n>        :tags: bug, orm\n>        :tickets: 4171\n\n>        Fixed 1.2 regression regarding new bulk_replace event\n>        where a backref would fail to remove an object from the\n>        previous owner when a bulk-assignment assigned the\n>        object to a new owner.\n\n>    .. change::\n>        :tags: bug, oracle\n>        :tickets: 4163\n\n>        The cx_Oracle dialect now calls setinputsizes() with cx_Oracle.NCHAR\n>        unconditionally when the NVARCHAR2 datatype, in SQLAlchemy corresponding\n>        to sqltypes.Unicode(), is in use.  Per cx_Oracle&#39;s author this allows\n>        the correct conversions to occur within the Oracle client regardless\n>        of the setting for NLS_NCHAR_CHARACTERSET.\n\n>    .. change::\n>        :tags: bug, mysql\n\n>        Added more MySQL 8.0 reserved words to the MySQL dialect\n>        for quoting purposes.  Pull request courtesy\n>        Riccardo Magliocchetti.\n\n>.. changelog::\n\n\n>### 1.2.1\n\n>    :released: January 15, 2018\n\n>    .. change::\n>        :tags: bug, orm\n>        :tickets: 4159\n\n>        Fixed regression where pickle format of a Load / _UnboundLoad object (e.g.\n>        loader options) changed and ``__setstate__()`` was raising an\n>        UnboundLocalError for an object received from the legacy format, even\n>        though an attempt was made to do so.  tests are now added to ensure this\n>        works.\n\n>    .. change::\n>        :tags: bug, ext\n>        :tickets: 4150\n\n>        Fixed regression in association proxy due to :ticket:`3769`\n>        (allow for chained any() / has()) where contains() against\n>        an association proxy chained in the form\n>        (o2m relationship, associationproxy(m2o relationship, m2o relationship))\n>        would raise an error regarding the re-application of contains()\n>        on the final link of the chain.\n\n>    .. change::\n>        :tags: bug, orm\n>        :tickets: 4153\n\n>        Fixed regression caused by new lazyload caching scheme in :ticket:`3954`\n>        where a query that makes use of loader options with of_type would cause\n>        lazy loads of unrelated paths to fail with a TypeError.\n\n>    .. change::\n>        :tags: bug, oracle\n>        :tickets: 4157\n\n>        Fixed regression where the removal of most setinputsizes\n>        rules from cx_Oracle dialect impacted the TIMESTAMP\n>        datatype&#39;s ability to retrieve fractional seconds.\n\n\n\n>    .. change::\n>        :tags: bug, tests\n\n>        Removed an oracle-specific requirements rule from the public\n>        test suite that was interfering with third party dialect\n>        suites.\n\n>    .. change::\n>        :tags: bug, mssql\n>        :tickets: 4154\n\n>        Fixed regression in 1.2 where newly repaired quoting\n>        of collation names in :ticket:`3785` breaks SQL Server,\n>        which explicitly does not understand a quoted collation\n>        name.   Whether or not mixed-case collation names are\n>        quoted or not is now deferred down to a dialect-level\n>        decision so that each dialect can prepare these identifiers\n>        directly.\n\n>    .. change::\n>        :tags: bug, orm\n>        :tickets: 4156\n\n>        Fixed bug in new &quot;selectin&quot; relationship loader where the loader could try\n>        to load a non-existent relationship when loading a collection of\n>        polymorphic objects, where only some of the mappers include that\n>        relationship, typically when :meth:`.PropComparator.of_type` is being used.\n\n>    .. change::\n>        :tags: bug, tests\n\n>        Added a new exclusion rule group_by_complex_expression\n>        which disables tests that use &quot;GROUP BY &lt;expr&gt;&quot;, which seems\n>        to be not viable for at least two third party dialects.\n\n>    .. change::\n>        :tags: bug, oracle\n\n>        Fixed regression in Oracle imports where a missing comma caused\n>        an undefined symbol to be present.  Pull request courtesy\n>        Miroslav Shubernetskiy.\n\n>.. changelog::\n\n\n>### 1.2.0\n\n>    :released: December 27, 2017\n\n>    .. change::\n>        :tags: orm, feature\n>        :tickets: 4137\n\n>        Added a new data member to the identity key tuple\n>        used by the ORM&#39;s identity map, known as the\n>        &quot;identity_token&quot;.  This token defaults to None but\n>        may be used by database sharding schemes to differentiate\n>        objects in memory with the same primary key that come\n>        from different databases.   The horizontal sharding\n>        extension integrates this token applying the shard\n>        identifier to it, thus allowing primary keys to be\n>        duplicated across horizontally sharded backends.\n\n>        .. seealso::\n\n>            :ref:`change_4137`\n\n>    .. change::\n>        :tags: bug, mysql\n>        :tickets: 4115\n\n>        Fixed regression from issue 1.2.0b3 where &quot;MariaDB&quot; version comparison can\n>        fail for some particular MariaDB version strings under Python 3.\n\n>    .. change::\n>        :tags: enhancement, sql\n>        :tickets: 959\n\n>        Implemented &quot;DELETE..FROM&quot; syntax for Postgresql, MySQL, MS SQL Server\n>        (as well as within the unsupported Sybase dialect) in a manner similar\n>        to how &quot;UPDATE..FROM&quot; works.  A DELETE statement that refers to more than\n>        one table will switch into &quot;multi-table&quot; mode and render the appropriate\n>        &quot;USING&quot; or multi-table &quot;FROM&quot; clause as understood by the database.\n>        Pull request courtesy Pieter Mulder.\n\n>        .. seealso::\n\n>            :ref:`change_959`\n\n>    .. change::\n>       :tags: bug, sql\n>       :tickets: 2694\n\n>       Reworked the new &quot;autoescape&quot; feature introduced in\n>       :ref:`change_2694` in 1.2.0b2 to be fully automatic; the escape\n>       character now defaults to a forwards slash ``&quot;/&quot;`` and\n>       is applied to percent, underscore, as well as the escape\n>       character itself, for fully automatic escaping.  The\n>       character can also be changed using the &quot;escape&quot; parameter.\n\n>       .. seealso::\n\n>            :ref:`change_2694`\n\n\n>    .. change::\n>        :tags: bug, sql\n>        :tickets: 4147\n\n>        Fixed bug where the :meth:`.Table.tometadata` method would not properly\n>        accommodate :class:`.Index` objects that didn&#39;t consist of simple\n>        column expressions, such as indexes against a :func:`.text` construct,\n>        indexes that used SQL expressions or :attr:`.func`, etc.   The routine\n>        now copies expressions fully to a new :class:`.Index` object while\n>        substituting all table-bound :class:`.Column` objects for those\n>        of the target table.\n\n>    .. change::\n>        :tags: bug, sql\n>        :tickets: 4142\n\n>        Changed the &quot;visit name&quot; of :class:`.ColumnElement` from &quot;column&quot; to\n>        &quot;column_element&quot;, so that when this element is used as the basis for a\n>        user-defined SQL element, it is not assumed to behave like a table-bound\n>        :class:`.ColumnClause` when processed by various SQL traversal utilities,\n>        as are commonly used by the ORM.\n\n>    .. change::\n>        :tags: bug, sql, ext\n>        :tickets: 4141\n\n>        Fixed issue in :class:`.ARRAY` datatype which is essentially the same\n>        issue as that of :ticket:`3832`, except not a regression, where\n>        column attachment events on top of :class:`.ARRAY` would not fire\n>        correctly, thus interfering with systems which rely upon this.   A key\n>        use case that was broken by this is the use of mixins to declare\n>        columns that make use of :meth:`.MutableList.as_mutable`.\n\n>    .. change::\n>        :tags: feature, engine\n>        :tickets: 4089\n\n>        The &quot;password&quot; attribute of the :class:`.url.URL` object can now be\n>        any user-defined or user-subclassed string object that responds to the\n>        Python ``str()`` builtin.   The object passed will be maintained as the\n>        datamember :attr:`.url.URL.password_original` and will be consulted\n>        when the :attr:`.url.URL.password` attribute is read to produce the\n>        string value.\n\n>    .. change::\n>        :tags: bug, orm\n>        :tickets: 4130\n\n>        Fixed bug in :func:`.contains_eager` query option where making use of a\n>        path that used :meth:`.PropComparator.of_type` to refer to a subclass\n>        across more than one level of joins would also require that the &quot;alias&quot;\n>        argument were provided with the same subtype in order to avoid adding\n>        unwanted FROM clauses to the query; additionally,  using\n>        :func:`.contains_eager` across subclasses that use :func:`.aliased` objects\n>        of subclasses as the :meth:`.PropComparator.of_type` argument will also\n>        render correctly.\n\n\n\n\n>    .. change::\n>        :tags: feature, postgresql\n\n>        Added new :class:`.postgresql.MONEY` datatype.  Pull request courtesy\n>        Cleber J Santos.\n\n>    .. change::\n>        :tags: bug, sql\n>        :tickets: 4140\n\n>        Fixed bug in new &quot;expanding bind parameter&quot; feature whereby if multiple\n>        params were used in one statement, the regular expression would not\n>        match the parameter name correctly.\n\n>    .. change::\n>        :tags: enhancement, ext\n>        :tickets: 4135\n\n>        Added new method :meth:`.baked.Result.with_post_criteria` to baked\n>        query system, allowing non-SQL-modifying transformations to take place\n>        after the query has been pulled from the cache.  Among other things,\n>        this method can be used with :class:`.horizontal_shard.ShardedQuery`\n>        to set the shard identifier.   :class:`.horizontal_shard.ShardedQuery`\n>        has also been modified such that its :meth:`.ShardedQuery.get` method\n>        interacts correctly with that of :class:`.baked.Result`.\n\n>    .. change::\n>        :tags: bug, oracle\n>        :tickets: 4064\n\n>        Added some additional rules to fully handle ``Decimal(&#39;Infinity&#39;)``,\n>        ``Decimal(&#39;-Infinity&#39;)`` values with cx_Oracle numerics when using\n>        ``asdecimal=True``.\n\n>    .. change::\n>        :tags: bug, mssql\n>        :tickets: 4121\n\n>        Fixed bug where sqltypes.BINARY and sqltypes.VARBINARY datatypes\n>        would not include correct bound-value handlers for pyodbc,\n>        which allows the pyodbc.NullParam value to be passed that\n>        helps with FreeTDS.\n\n\n\n\n>    .. change::\n>        :tags: feature, misc\n\n>        Added a new errors section to the documentation with background\n>        about common error messages.   Selected exceptions within SQLAlchemy\n>        will include a link in their string output to the relevant section\n>        within this page.\n\n>    .. change::\n>        :tags: bug, orm\n>        :tickets: 4032\n\n>        The :meth:`.Query.exists` method will now disable eager loaders for when\n>        the query is rendered.  Previously, joined-eager load joins would be rendered\n>        unnecessarily as well as subquery eager load queries would be needlessly\n>        generated.   The new behavior matches that of the :meth:`.Query.subquery`\n>        method.\n\n>.. changelog::\n\n\n>### 1.2.0b3\n\n>    :released: December 27, 2017\n>    :released: October 13, 2017\n\n>    .. change::\n>        :tags: feature, postgresql\n>        :tickets: 4109\n\n>        Added a new flag ``use_batch_mode`` to the psycopg2 dialect.  This flag\n>        enables the use of psycopg2&#39;s ``psycopg2.extras.execute_batch``\n>        extension when the :class:`.Engine` calls upon\n>        ``cursor.executemany()``. This extension provides a critical\n>        performance increase by over an order of magnitude when running INSERT\n>        statements in batch.  The flag is False by default as it is considered\n>        to be experimental for now.\n\n>        .. seealso::\n\n>            :ref:`change_4109`\n\n>    .. change::\n>        :tags: bug, mssql\n>        :tickets: 4061\n\n>        SQL Server supports what SQLAlchemy calls &quot;native boolean&quot;\n>        with its BIT type, as this type only accepts 0 or 1 and the\n>        DBAPIs return its value as True/False.   So the SQL Server\n>        dialects now enable &quot;native boolean&quot; support, in that a\n>        CHECK constraint is not generated for a :class:`.Boolean`\n>        datatype.  The only difference vs. other native boolean\n>        is that there are no &quot;true&quot; / &quot;false&quot; constants so &quot;1&quot; and\n>        &quot;0&quot; are still rendered here.\n\n\n>    .. change::\n>        :tags: bug, oracle\n>        :tickets: 4064\n\n>        Partial support for persisting and retrieving the Oracle value\n>        &quot;infinity&quot; is implemented with cx_Oracle, using Python float values\n>        only, e.g. ``float(&quot;inf&quot;)``.  Decimal support is not yet fulfilled by\n>        the cx_Oracle DBAPI driver.\n\n>    .. change::\n>        :tags: bug, oracle\n\n>        The cx_Oracle dialect has been reworked and modernized to take advantage of\n>        new patterns that weren&#39;t present in the old 4.x series of cx_Oracle. This\n>        includes that the minimum cx_Oracle version is the 5.x series and that\n>        cx_Oracle 6.x is now fully tested. The most significant change involves\n>        type conversions, primarily regarding the numeric / floating point and LOB\n>        datatypes, making more effective use of cx_Oracle type handling hooks to\n>        simplify how bind parameter and result data is processed.\n\n>        .. seealso::\n\n>            :ref:`change_cxoracle_12`\n\n>    .. change::\n>        :tags: bug, oracle\n>        :tickets: 3997\n\n>        two phase support for cx_Oracle has been completely removed for all\n>        versions of cx_Oracle, whereas in 1.2.0b1 this change only took effect for\n>        the 6.x series of cx_Oracle.  This feature never worked correctly\n>        in any version of cx_Oracle and in cx_Oracle 6.x, the API which SQLAlchemy\n>        relied upon was removed.\n\n>        .. seealso::\n\n>            :ref:`change_cxoracle_12`\n\n>    .. change::\n>        :tags: bug, oracle\n\n>        The column keys present in a result set when using :meth:`.Insert.returning`\n>        with the cx_Oracle backend now use the correct column / label names\n>        like that of all other dialects.  Previously, these came out as\n>        ``ret_nnn``.\n\n>        .. seealso::\n\n>            :ref:`change_cxoracle_12`\n\n>    .. change::\n>        :tags: bug, oracle\n\n>        Several parameters to the cx_Oracle dialect are now deprecated and will\n>        have no effect: ``auto_setinputsizes``, ``exclude_setinputsizes``,\n>        ``allow_twophase``.\n\n>        .. seealso::\n\n>            :ref:`change_cxoracle_12`\n\n\n>    .. change::\n>        :tags: bug, sql\n>        :tickets: 4075\n\n>        Added a new method :meth:`.DefaultExecutionContext.get_current_parameters`\n>        which is used within a function-based default value generator in\n>        order to retrieve the current parameters being passed to the statement.\n>        The new function differs from the\n>        :attr:`.DefaultExecutionContext.current_parameters` attribute in\n>        that it also provides for optional grouping of parameters that\n>        correspond to a multi-valued &quot;insert&quot; construct.  Previously it was not\n>        possible to identify the subset of parameters that were relevant to\n>        the function call.\n\n>        .. seealso::\n\n>            :ref:`change_4075`\n\n>            :ref:`context_default_functions`\n\n>    .. change::\n>        :tags: bug, orm\n>        :tickets: 4050\n\n>        Fixed regression introduced in 1.2.0b1 due to :ticket:`3934` where the\n>        :class:`.Session` would fail to &quot;deactivate&quot; the transaction, if a\n>        rollback failed (the target issue is when MySQL loses track of a SAVEPOINT).\n>        This would cause a subsequent call to :meth:`.Session.rollback` to raise\n>        an error a second time, rather than completing and bringing the\n>        :class:`.Session` back to ACTIVE.\n\n>    .. change::\n>        :tags: bug, postgresql\n>        :tickets: 4041\n\n>        Fixed bug where the pg8000 driver would fail if using\n>        :meth:`.MetaData.reflect` with a schema name, since the schema name would\n>        be sent as a &quot;quoted_name&quot; object that&#39;s a string subclass, which pg8000\n>        doesn&#39;t recognize.   The quoted_name type is added to pg8000&#39;s\n>        py_types collection on connect.\n\n>    .. change::\n>        :tags: bug, postgresql\n>        :tickets: 4016\n\n>        Enabled UUID support for the pg8000 driver, which supports native Python\n>        uuid round trips for this datatype.  Arrays of UUID are still not supported,\n>        however.\n\n>    .. change::\n>        :tags: mssql, bug\n>        :tickets: 4057\n\n>        Fixed the pymssql dialect so that percent signs in SQL text, such\n>        as used in modulus expressions or literal textual values, are\n>        **not** doubled up, as seems to be what pymssql expects.  This is\n>        despite the fact that the pymssql DBAPI uses the &quot;pyformat&quot; parameter\n>        style which itself considers the percent sign to be significant.\n\n>    .. change::\n>        :tags: bug, orm, declarative\n>        :tickets: 4091\n\n>        A warning is emitted if a subclass attempts to override an attribute\n>        that was declared on a superclass using ``declared_attr.cascading``\n>        that the overridden attribute will be ignored. This use\n>        case cannot be fully supported down to further subclasses without more\n>        complex development efforts, so for consistency the &quot;cascading&quot; is\n>        honored all the way down regardless of overriding attributes.\n\n>    .. change::\n>        :tags: bug, orm, declarative\n>        :tickets: 4092\n\n>        A warning is emitted if the ``declared_attr.cascading`` attribute is\n>        used with a special declarative name such as ``__tablename__``, as this\n>        has no effect.\n\n>    .. change::\n>        :tags: feature, engine\n>        :tickets: 4077\n\n>        Added ``__next__()`` and ``next()`` methods to :class:`.ResultProxy`,\n>        so that the ``next()`` builtin function works on the object directly.\n>        :class:`.ResultProxy` has long had an ``__iter__()`` method which already\n>        allows it to respond to the ``iter()`` builtin.   The implementation\n>        for ``__iter__()`` is unchanged, as performance testing has indicated\n>        that iteration using a ``__next__()`` method with ``StopIteration``\n>        is about 20% slower in both Python 2.7 and 3.6.\n\n>    .. change::\n>        :tags: feature, mssql\n>        :tickets: 4086\n\n>        Added a new :class:`.mssql.TIMESTAMP` datatype, that\n>        correctly acts like a binary datatype for SQL Server\n>        rather than a datetime type, as SQL Server breaks the\n>        SQL standard here.  Also added :class:`.mssql.ROWVERSION`,\n>        as the &quot;TIMESTAMP&quot; type in SQL Server is deprecated in\n>        favor of ROWVERSION.\n\n>    .. change::\n>        :tags: bug, orm\n>        :tickets: 4084\n\n>        Fixed issue where the :func:`.make_transient_to_detached` function\n>        would expire all attributes on the target object, including &quot;deferred&quot;\n>        attributes, which has the effect of the attribute being undeferred\n>        for the next refesh, causing an unexpected load of the attribute.\n\n>    .. change::\n>        :tags: bug, orm\n>        :tickets: 4026\n\n>        Fixed bug in :ref:`change_3948` which prevented &quot;selectin&quot; and\n>        &quot;inline&quot; settings in a multi-level class hierarchy from interacting\n>        together as expected.    A new example is added to the documentation.\n\n>        .. seealso::\n\n>            :ref:`polymorphic_selectin_and_withpoly`\n\n>    .. change::\n>        :tags: bug, oracle\n>        :tickets: 4042\n\n>        Fixed bug where an index reflected under Oracle with an expression like\n>        &quot;column DESC&quot; would not be returned, if the table also had no primary\n>        key, as a result of logic that attempts to filter out the\n>        index implicitly added by Oracle onto the primary key columns.\n\n>    .. change::\n>    \t:tags: bug, orm\n>    \t:tickets: 4071\n\n>    \tRemoved the warnings that are emitted when the LRU caches employed\n>    \tby the mapper as well as loader strategies reach their threshold; the\n>    \tpurpose of this warning was at first a guard against excess cache keys\n>    \tbeing generated but became basically a check on the &quot;creating many\n>    \tengines&quot; antipattern.   While this is still an antipattern, the presense\n>    \tof test suites which both create an engine per test as well as raise\n>    \ton all warnings will be an inconvenience; it should not be critical\n>    \tthat such test suites change their architecture just for this warning\n>    \t(though engine-per-test suite is always better).\n\n>    .. change::\n>        :tags: bug, orm\n>        :tickets: 4049\n\n>        Fixed regression where the use of a :func:`.undefer_group` option\n>        in conjunction with a lazy loaded relationship option would cause\n>        an attribute error, due to a bug in the SQL cache key generation\n>        added in 1.2 as part of :ticket:`3954`.\n\n>    .. change::\n>        :tags: bug, oracle\n>        :tickets: 4045\n\n>        Fixed more regressions caused by cx_Oracle 6.0; at the moment, the only\n>        behavioral change for users is disconnect detection now detects for\n>        cx_Oracle.DatabaseError in addition to cx_Oracle.InterfaceError, as\n>        this behavior seems to have changed.   Other issues regarding numeric\n>        precision and uncloseable connections are pending with the upstream\n>        cx_Oracle issue tracker.\n\n>    .. change::\n>        :tags: bug, mssql\n>        :tickets: 4060\n\n>        Fixed bug where the SQL Server dialect could pull columns from multiple\n>        schemas when reflecting a self-referential foreign key constraint, if\n>        multiple schemas contained a constraint of the same name against a\n>        table of the same name.\n\n\n>    .. change::\n>        :tags: feature, mssql\n>        :tickets: 4058\n\n>        Added support for &quot;AUTOCOMMIT&quot; isolation level, as established\n>        via :meth:`.Connection.execution_options`, to the\n>        PyODBC and pymssql dialects.   This isolation level sets the\n>        appropriate DBAPI-specific flags on the underlying\n>        connection object.\n\n>    .. change::\n>        :tags: bug, orm\n>        :tickets: 4073\n\n>        Modified the change made to the ORM update/delete evaluator in\n>        :ticket:`3366` such that if an unmapped column expression is present\n>        in the update or delete, if the evaluator can match its name to the\n>        mapped columns of the target class, a warning is emitted, rather than\n>        raising UnevaluatableError.  This is essentially the pre-1.2 behavior,\n>        and is to allow migration for applications that are currently relying\n>        upon this pattern.  However, if the given attribute name cannot be\n>        matched to the columns of the mapper, the UnevaluatableError is\n>        still raised, which is what was fixed in :ticket:`3366`.\n\n>    .. change::\n>        :tags: bug, sql\n>        :tickets: 4087\n\n>        Fixed bug in new SQL comments feature where table and column comment\n>        would not be copied when using :meth:`.Table.tometadata`.\n\n>    .. change::\n>        :tags: bug, sql\n>        :tickets: 4102\n\n>        In release 1.1, the :class:`.Boolean` type was broken in that\n>        boolean coercion via ``bool()`` would occur for backends that did not\n>        feature &quot;native boolean&quot;, but would not occur for native boolean backends,\n>        meaning the string ``&quot;0&quot;`` now behaved inconsistently. After a poll, a\n>        consensus was reached that non-boolean values should be raising an error,\n>        especially in the ambiguous case of string ``&quot;0&quot;``; so the :class:`.Boolean`\n>        datatype will now raise ``ValueError`` if an incoming value is not\n>        within the range ``None, True, False, 1, 0``.\n\n>        .. seealso::\n\n>            :ref:`change_4102`\n\n>    .. change::\n>        :tags: bug, sql\n>        :tickets: 4063\n\n>        Refined the behavior of :meth:`.Operators.op` such that in all cases,\n>        if the :paramref:`.Operators.op.is_comparison` flag is set to True,\n>        the return type of the resulting expression will be\n>        :class:`.Boolean`, and if the flag is False, the return type of the\n>        resulting expression will be the same type as that of the left-hand\n>        expression, which is the typical default behavior of other operators.\n>        Also added a new parameter :paramref:`.Operators.op.return_type` as well\n>        as a helper method :meth:`.Operators.bool_op`.\n\n>        .. seealso::\n\n>            :ref:`change_4063`\n\n>    .. change::\n>        :tags: bug, mysql\n>        :tickets: 4072\n\n>        Changed the name of the ``.values`` attribute of the new MySQL\n>        INSERT..ON DUPLICATE KEY UPDATE construct to ``.inserted``, as\n>        :class:`.Insert` already has a method called :meth:`.Insert.values`.\n>        The ``.inserted`` attribute ultimately renders the MySQL ``VALUES()``\n>        function.\n\n>    .. change::\n>        :tags: bug, mssql, orm\n>        :tickets: 4062\n\n>        Added a new class of &quot;rowcount support&quot; for dialects that is specific to\n>        when &quot;RETURNING&quot;, which on SQL Server looks like &quot;OUTPUT inserted&quot;, is in\n>        use, as the PyODBC backend isn&#39;t able to give us rowcount on an UPDATE or\n>        DELETE statement when OUTPUT is in effect.  This primarily affects the ORM\n>        when a flush is updating a row that contains server-calcluated values,\n>        raising an error if the backend does not return the expected row count.\n>        PyODBC now states that it supports rowcount except if OUTPUT.inserted is\n>        present, which is taken into account by the ORM during a flush as to\n>        whether it will look for a rowcount.\n\n>    .. change::\n>        :tags: bug, sql\n>        :tickets: 4088\n\n>        Internal refinements to the :class:`.Enum`, :class:`.Interval`, and\n>        :class:`.Boolean` types, which now extend a common mixin\n>        :class:`.Emulated` that indicates a type that provides Python-side\n>        emulation of a DB native type, switching out to the DB native type when a\n>        supporting backend is in use.   The Postgresql :class:`.INTERVAL` type\n>        when used directly will now include the correct type coercion rules for\n>        SQL expressions that also take effect for :class:`.sqltypes.Interval`\n>        (such as adding a date to an interval yields a datetime).\n\n\n>    .. change::\n>        :tags: bug, mssql, orm\n\n>        Enabled the &quot;sane_rowcount&quot; flag for the pymssql dialect, indicating\n>        that the DBAPI now reports the correct number of rows affected from\n>        an UPDATE or DELETE statement.  This impacts mostly the ORM versioning\n>        feature in that it now can verify the number of rows affected on a\n>        target version.\n\n>    .. change:: 4028\n>        :tags: bug, engine\n>        :tickets: 4028\n\n>        Made some adjustments to :class:`.Pool` and :class:`.Connection` such\n>        that recovery logic is not run underneath exception catches for\n>        ``pool.Empty``, ``AttributeError``, since when the recovery operation\n>        itself fails, Python 3 creates a misleading stack trace referring to the\n>        ``Empty`` / ``AttributeError`` as the cause, when in fact these exception\n>        catches are part of control flow.\n\n\n>    .. change::\n>        :tags: bug, oracle\n>        :tickets: 4076\n\n>        Fixed bug where Oracle 8 &quot;non ansi&quot; join mode would not add the\n>        ``(+)`` operator to expressions that used an operator other than the\n>        ``=`` operator.  The ``(+)`` needs to be on all columns that are part\n>        of the right-hand side.\n\n>    .. change::\n>        :tags: bug, mssql\n>        :tickets: 4059\n\n>        Added a rule to SQL Server index reflection to ignore the so-called\n>        &quot;heap&quot; index that is implicitly present on a table that does not\n>        specify a clustered index.\n\n\n>.. changelog::\n\n\n>### 1.2.0b2\n\n>    :released: December 27, 2017\n>    :released: July 24, 2017\n\n>    .. change:: 4033\n>        :tags: bug, orm\n>        :tickets: 4033\n\n>        Fixed regression from 1.1.11 where adding additional non-entity\n>        columns to a query that includes an entity with subqueryload\n>        relationships would fail, due to an inspection added in 1.1.11 as a\n>        result of :ticket:`4011`.\n\n\n>.. changelog::\n\n\n>### 1.2.0b1\n\n>    :released: December 27, 2017\n>    :released: July 10, 2017\n\n>    .. change:: scoped_autocommit\n>        :tags: feature, orm\n\n>        Added ``.autocommit`` attribute to :class:`.scoped_session`, proxying\n>        the ``.autocommit`` attribute of the underling :class:`.Session`\n>        currently assigned to the thread.  Pull request courtesy\n>        Ben Fagin.\n\n>    .. change:: 4009\n>        :tags: feature, mysql\n>        :tickets: 4009\n\n>        Added support for MySQL&#39;s ON DUPLICATE KEY UPDATE\n>        MySQL-specific :class:`.mysql.dml.Insert` object.\n>        Pull request courtesy Michael Doronin.\n\n>        .. seealso::\n\n>            :ref:`change_4009`\n\n>    .. change:: 4018\n>        :tags: bug, sql\n>        :tickets: 4018\n\n>        The rules for type coercion between :class:`.Numeric`, :class:`.Integer`,\n>        and date-related types now include additional logic that will attempt\n>        to preserve the settings of the incoming type on the &quot;resolved&quot; type.\n>        Currently the target for this is the ``asdecimal`` flag, so that\n>        a math operation between :class:`.Numeric` or :class:`.Float` and\n>        :class:`.Integer` will preserve the &quot;asdecimal&quot; flag as well as\n>        if the type should be the :class:`.Float` subclass.\n\n>        .. seealso::\n\n>            :ref:`change_floats_12`\n\n>    .. change:: 4020\n>        :tags: bug, sql, mysql\n>        :tickets: 4020\n\n>        The result processor for the :class:`.Float` type now unconditionally\n>        runs values through the ``float()`` processor if the dialect\n>        specifies that it also supports &quot;native decimal&quot; mode.  While most\n>        backends will deliver Python ``float`` objects for a floating point\n>        datatype, the MySQL backends in some cases lack the typing information\n>        in order to provide this and return ``Decimal`` unless the float\n>        conversion is done.\n\n>        .. seealso::\n\n>            :ref:`change_floats_12`\n\n>    .. change:: 4017\n>        :tags: bug, sql\n>        :tickets: 4017\n\n>        Added some extra strictness to the handling of Python &quot;float&quot; values\n>        passed to SQL statements.  A &quot;float&quot; value will be associated with the\n>        :class:`.Float` datatype and not the Decimal-coercing :class:`.Numeric`\n>        datatype as was the case before, eliminating a confusing warning\n>        emitted on SQLite as well as unecessary coercion to Decimal.\n\n>        .. seealso::\n\n>            :ref:`change_floats_12`\n\n>    .. change:: 3058\n>        :tags: feature, orm\n>        :tickets: 3058\n\n>        Added a new feature :func:`.orm.with_expression` that allows an ad-hoc\n>        SQL expression to be added to a specific entity in a query at result\n>        time.  This is an alternative to the SQL expression being delivered as\n>        a separate element in the result tuple.\n\n>        .. seealso::\n\n>            :ref:`change_3058`\n\n>    .. change:: 3496\n>        :tags: bug, orm\n>        :tickets: 3496\n\n>        An UPDATE emitted as a result of the\n>        :paramref:`.relationship.post_update` feature will now integrate with\n>        the versioning feature to both bump the version id of the row as well\n>        as assert that the existing version number was matched.\n\n>        .. seealso::\n\n>            :ref:`change_3496`\n\n>    .. change:: 3769\n>        :tags: bug, ext\n>        :tickets: 3769\n\n>        The :meth:`.AssociationProxy.any`, :meth:`.AssociationProxy.has`\n>        and :meth:`.AssociationProxy.contains` comparison methods now support\n>        linkage to an attribute that is itself also an\n>        :class:`.AssociationProxy`, recursively.\n\n>        .. seealso::\n\n>            :ref:`change_3769`\n\n>    .. change:: 3853\n>        :tags: bug, ext\n>        :tickets: 3853\n\n>        Implemented in-place mutation operators ``__ior__``, ``__iand__``,\n>        ``__ixor__`` and ``__isub__`` for :class:`.mutable.MutableSet`\n>        and ``__iadd__`` for :class:`.mutable.MutableList` so that change\n>        events are fired off when these mutator methods are used to alter the\n>        collection.\n\n>        .. seealso::\n\n>            :ref:`change_3853`\n\n>    .. change:: 3847\n>        :tags: bug, declarative\n>        :tickets: 3847\n\n>        A warning is emitted if the :attr:`.declared_attr.cascading` modifier\n>        is used with a declarative attribute that is itself declared on\n>        a class that is to be mapped, as opposed to a declarative mixin\n>        class or ``__abstract__`` class.  The :attr:`.declared_attr.cascading`\n>        modifier currently only applies to mixin/abstract classes.\n\n>    .. change:: 4003\n>        :tags: feature, oracle\n>        :tickets: 4003\n\n>        The Oracle dialect now inspects unique and check constraints when using\n>        :meth:`.Inspector.get_unique_constraints`,\n>        :meth:`.Inspector.get_check_constraints`.\n>        As Oracle does not have unique constraints that are separate from a unique\n>        :class:`.Index`, a :class:`.Table` that&#39;s reflected will still continue\n>        to not have :class:`.UniqueConstraint` objects associated with it.\n>        Pull requests courtesy Eloy Felix.\n\n>        .. seealso::\n\n>            :ref:`change_4003`\n\n>    .. change:: 3948\n>        :tags: feature, orm\n>        :tickets: 3948\n\n>        Added a new style of mapper-level inheritance loading\n>        &quot;polymorphic selectin&quot;.  This style of loading\n>        emits queries for each subclass in an inheritance\n>        hierarchy subsequent to the load of the base\n>        object type, using IN to specify the desired\n>        primary key values.\n\n>        .. seealso::\n\n>            :ref:`change_3948`\n\n>    .. change:: 3472\n>        :tags: bug, orm\n>        :tickets: 3471, 3472\n\n>        Repaired several use cases involving the\n>        :paramref:`.relationship.post_update` feature when used in conjunction\n>        with a column that has an &quot;onupdate&quot; value.   When the UPDATE emits,\n>        the corresponding object attribute is now expired or refreshed so that\n>        the newly generated &quot;onupdate&quot; value can populate on the object;\n>        previously the stale value would remain.  Additionally, if the target\n>        attribute is set in Python for the INSERT of the object, the value is\n>        now re-sent during the UPDATE so that the &quot;onupdate&quot; does not overwrite\n>        it (note this works just as well for server-generated onupdates).\n>        Finally, the :meth:`.SessionEvents.refresh_flush` event is now emitted\n>        for these attributes when refreshed within the flush.\n\n>        .. seealso::\n\n>            :ref:`change_3471`\n\n>    .. change:: 3996\n>        :tags: bug, orm\n>        :tickets: 3996\n\n>        Fixed bug where programmatic version_id counter in conjunction with\n>        joined table inheritance would fail if the version_id counter\n>        were not actually incremented and no other values on the base table\n>        were modified, as the UPDATE would have an empty SET clause.  Since\n>        programmatic version_id where version counter is not incremented\n>        is a documented use case, this specific condition is now detected\n>        and the UPDATE now sets the version_id value to itself, so that\n>        concurrency checks still take place.\n\n>    .. change:: 3848\n>        :tags: bug, orm, declarative\n>        :tickets: 3848\n\n>        Fixed bug where using :class:`.declared_attr` on an\n>        :class:`.AbstractConcreteBase` where a particular return value were some\n>        non-mapped symbol, including ``None``, would cause the attribute\n>        to hard-evaluate just once and store the value to the object\n>        dictionary, not allowing it to invoke for subclasses.   This behavior\n>        is normal when :class:`.declared_attr` is on a mapped class, and\n>        does not occur on a mixin or abstract class.  Since\n>        :class:`.AbstractConcreteBase` is both &quot;abstract&quot; and actually\n>        &quot;mapped&quot;, a special exception case is made here so that the\n>        &quot;abstract&quot; behavior takes precedence for :class:`.declared_attr`.\n\n>    .. change:: 3673\n>        :tags: bug, orm\n>        :tickets: 3673\n\n>        The versioning feature does not support NULL for the version counter.\n>        An exception is now raised if the version id is programmatic and\n>        was set to NULL for an UPDATE.  Pull request courtesy Diana Clarke.\n\n>    .. change:: 3999\n>        :tags: bug, sql\n>        :tickets: 3999\n\n>        The operator precedence for all comparison operators such as LIKE, IS,\n>        IN, MATCH, equals, greater than, less than, etc. has all been merged\n>        into one level, so that expressions which make use of these against\n>        each other will produce parentheses between them.   This suits the\n>        stated operator precedence of databases like Oracle, MySQL and others\n>        which place all of these operators as equal precedence, as well as\n>        Postgresql as of 9.5 which has also flattened its operator precendence.\n\n>        .. seealso::\n\n>            :ref:`change_3999`\n\n\n>    .. change:: 3796\n>        :tags: bug, orm\n>        :tickets: 3796\n\n>        Removed a very old keyword argument from :class:`.scoped_session`\n>        called ``scope``.  This keyword was never documented and was an\n>        early attempt at allowing for variable scopes.\n\n>        .. seealso::\n\n>            :ref:`change_3796`\n\n>    .. change:: 3871\n>        :tags: bug, mysql\n>        :tickets: 3871\n\n>        Added support for views that are unreflectable due to stale\n>        table definitions, when calling :meth:`.MetaData.reflect`; a warning\n>        is emitted for the table that cannot respond to ``DESCRIBE``,\n>        but the operation succeeds.\n\n>    .. change:: baked_opts\n>        :tags: feature, ext\n\n>        Added new flag :paramref:`.Session.enable_baked_queries` to the\n>        :class:`.Session` to allow baked queries to be disabled\n>        session-wide, reducing memory use.   Also added new :class:`.Bakery`\n>        wrapper so that the bakery returned by :paramref:`.BakedQuery.bakery`\n>        can be inspected.\n\n>    .. change:: 3988\n>        :tags: bug, orm\n>        :tickets: 3988\n\n>        Fixed bug where combining a &quot;with_polymorphic&quot; load in conjunction\n>        with subclass-linked relationships that specify joinedload with\n>        innerjoin=True, would fail to demote those &quot;innerjoins&quot; to\n>        &quot;outerjoins&quot; to suit the other polymorphic classes that don&#39;t\n>        support that relationship.   This applies to both a single and a\n>        joined inheritance polymorphic load.\n\n>    .. change:: 3991\n>        :tags: bug, orm\n>        :tickets: 3991\n\n>        Added new argument :paramref:`.with_for_update` to the\n>        :meth:`.Session.refresh` method.  When the :meth:`.Query.with_lockmode`\n>        method were deprecated in favor of :meth:`.Query.with_for_update`,\n>        the :meth:`.Session.refresh` method was never updated to reflect\n>        the new option.\n\n>        .. seealso::\n\n>            :ref:`change_3991`\n\n>    .. change:: 3984\n>        :tags: bug, orm\n>        :tickets: 3984\n\n>        Fixed bug where a :func:`.column_property` that is also marked as\n>        &quot;deferred&quot; would be marked as &quot;expired&quot; during a flush, causing it\n>        to be loaded along with the unexpiry of regular attributes even\n>        though this attribute was never accessed.\n\n>    .. change:: 3873\n>        :tags: bug, sql\n>        :tickets: 3873\n\n>        Repaired issue where the type of an expression that used\n>        :meth:`.ColumnOperators.is_` or similar would not be a &quot;boolean&quot; type,\n>        instead the type would be &quot;nulltype&quot;, as well as when using custom\n>        comparison operators against an untyped expression.   This typing can\n>        impact how the expression behaves in larger contexts as well as\n>        in result-row-handling.\n\n>    .. change:: 3941\n>        :tags: bug, ext\n>        :tickets: 3941\n\n>        Improved the association proxy list collection so that premature\n>        autoflush against a newly created association object can be prevented\n>        in the case where ``list.append()`` is being used, and a lazy load\n>        would be invoked when the association proxy accesses the endpoint\n>        collection.  The endpoint collection is now accessed first before\n>        the creator is invoked to produce the association object.\n\n>    .. change:: 3969\n>        :tags: bug, sql\n>        :tickets: 3969\n\n>        Fixed the negation of a :class:`.Label` construct so that the\n>        inner element is negated correctly, when the :func:`.not_` modifier\n>        is applied to the labeled expression.\n\n>    .. change:: 3944\n>        :tags: feature, orm\n>        :tickets: 3944\n\n>        Added a new kind of eager loading called &quot;selectin&quot; loading.  This\n>        style of loading is very similar to &quot;subquery&quot; eager loading,\n>        except that it uses an IN expression given a list of primary key\n>        values from the loaded parent objects, rather than re-stating the\n>        original query.   This produces a more efficient query that is\n>        &quot;baked&quot; (e.g. the SQL string is cached) and also works in the\n>        context of :meth:`.Query.yield_per`.\n\n>        .. seealso::\n\n>            :ref:`change_3944`\n\n>    .. change::\n>        :tags: bug, orm\n>        :tickets: 3967\n\n>        Fixed bug in subquery eager loading where the &quot;join_depth&quot; parameter\n>        for self-referential relationships would not be correctly honored,\n>        loading all available levels deep rather than correctly counting\n>        the specified number of levels for eager loading.\n\n>    .. change::\n>        :tags: bug, orm\n\n>        Added warnings to the LRU &quot;compiled cache&quot; used by the :class:`.Mapper`\n>        (and ultimately will be for other ORM-based LRU caches) such that\n>        when the cache starts hitting its size limits, the application will\n>        emit a warning that this is a performance-degrading situation that\n>        may require attention.   The LRU caches can reach their size limits\n>        primarily if an application is making use of an unbounded number\n>        of :class:`.Engine` objects, which is an antipattern.  Otherwise,\n>        this may suggest an issue that should be brought to the SQLAlchemy\n>        developer&#39;s attention.\n\n>    .. change:: 3964\n>        :tags: bug, postgresql\n>        :tickets: 3964\n\n>        Fixed bug where the base :class:`.sqltypes.ARRAY` datatype would not\n>        invoke the bind/result processors of :class:`.postgresql.ARRAY`.\n\n>    .. change:: 3963\n>        :tags: bug, orm\n>        :tickets: 3963\n\n>        Fixed bug to improve upon the specificity of loader options that\n>        take effect subsequent to the lazy load of a related entity, so\n>        that the loader options will match to an aliased or non-aliased\n>        entity more specifically if those options include entity information.\n\n>    .. change:: 3954\n>        :tags: feature, orm\n>        :tickets: 3954\n\n>        The ``lazy=&quot;select&quot;`` loader strategy now makes used of the\n>        :class:`.BakedQuery` query caching system in all cases.  This\n>        removes most overhead of generating a :class:`.Query` object and\n>        running it into a :func:`.select` and then string SQL statement from\n>        the process of lazy-loading related collections and objects.  The\n>        &quot;baked&quot; lazy loader has also been improved such that it can now\n>        cache in most cases where query load options are used.\n\n>        .. seealso::\n\n>            :ref:`change_3954`\n\n>    .. change:: 3740\n>        :tags: bug, sql\n>        :tickets: 3740\n\n>        The system by which percent signs in SQL statements are &quot;doubled&quot;\n>        for escaping purposes has been refined.   The &quot;doubling&quot","created_at":"2018-01-29T13:06:25Z","updated_at":"2018-02-05T13:06:40Z","closed_at":"2018-02-05T13:06:40Z","merged_at":null,"merge_commit_sha":"298638aa59e66778b50da9a5198f64993fca706c","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"milestone":null,"commits_url":"https://api.github.com/repos/aio-libs/aiohttp_admin/pulls/337/commits","review_comments_url":"https://api.github.com/repos/aio-libs/aiohttp_admin/pulls/337/comments","review_comment_url":"https://api.github.com/repos/aio-libs/aiohttp_admin/pulls/comments{/number}","comments_url":"https://api.github.com/repos/aio-libs/aiohttp_admin/issues/337/comments","statuses_url":"https://api.github.com/repos/aio-libs/aiohttp_admin/statuses/7e8d4c9edfe12a7da16f6da73385bbab9273e689","head":{"label":"aio-libs:pyup-scheduled-update-01-29-2018","ref":"pyup-scheduled-update-01-29-2018","sha":"7e8d4c9edfe12a7da16f6da73385bbab9273e689","user":{"login":"aio-libs","id":7049303,"avatar_url":"https://avatars2.githubusercontent.com/u/7049303?v=4","gravatar_id":"","url":"https://api.github.com/users/aio-libs","html_url":"https://github.com/aio-libs","followers_url":"https://api.github.com/users/aio-libs/followers","following_url":"https://api.github.com/users/aio-libs/following{/other_user}","gists_url":"https://api.github.com/users/aio-libs/gists{/gist_id}","starred_url":"https://api.github.com/users/aio-libs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aio-libs/subscriptions","organizations_url":"https://api.github.com/users/aio-libs/orgs","repos_url":"https://api.github.com/users/aio-libs/repos","events_url":"https://api.github.com/users/aio-libs/events{/privacy}","received_events_url":"https://api.github.com/users/aio-libs/received_events","type":"Organization","site_admin":false},"repo":{"id":48922724,"name":"aiohttp_admin","full_name":"aio-libs/aiohttp_admin","owner":{"login":"aio-libs","id":7049303,"avatar_url":"https://avatars2.githubusercontent.com/u/7049303?v=4","gravatar_id":"","url":"https://api.github.com/users/aio-libs","html_url":"https://github.com/aio-libs","followers_url":"https://api.github.com/users/aio-libs/followers","following_url":"https://api.github.com/users/aio-libs/following{/other_user}","gists_url":"https://api.github.com/users/aio-libs/gists{/gist_id}","starred_url":"https://api.github.com/users/aio-libs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aio-libs/subscriptions","organizations_url":"https://api.github.com/users/aio-libs/orgs","repos_url":"https://api.github.com/users/aio-libs/repos","events_url":"https://api.github.com/users/aio-libs/events{/privacy}","received_events_url":"https://api.github.com/users/aio-libs/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/aio-libs/aiohttp_admin","description":"admin interface for aiohttp application http://aiohttp-admin.readthedocs.io","fork":false,"url":"https://api.github.com/repos/aio-libs/aiohttp_admin","forks_url":"https://api.github.com/repos/aio-libs/aiohttp_admin/forks","keys_url":"https://api.github.com/repos/aio-libs/aiohttp_admin/keys{/key_id}","collaborators_url":"https://api.github.com/repos/aio-libs/aiohttp_admin/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/aio-libs/aiohttp_admin/teams","hooks_url":"https://api.github.com/repos/aio-libs/aiohttp_admin/hooks","issue_events_url":"https://api.github.com/repos/aio-libs/aiohttp_admin/issues/events{/number}","events_url":"https://api.github.com/repos/aio-libs/aiohttp_admin/events","assignees_url":"https://api.github.com/repos/aio-libs/aiohttp_admin/assignees{/user}","branches_url":"https://api.github.com/repos/aio-libs/aiohttp_admin/branches{/branch}","tags_url":"https://api.github.com/repos/aio-libs/aiohttp_admin/tags","blobs_url":"https://api.github.com/repos/aio-libs/aiohttp_admin/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/aio-libs/aiohttp_admin/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/aio-libs/aiohttp_admin/git/refs{/sha}","trees_url":"https://api.github.com/repos/aio-libs/aiohttp_admin/git/trees{/sha}","statuses_url":"https://api.github.com/repos/aio-libs/aiohttp_admin/statuses/{sha}","languages_url":"https://api.github.com/repos/aio-libs/aiohttp_admin/languages","stargazers_url":"https://api.github.com/repos/aio-libs/aiohttp_admin/stargazers","contributors_url":"https://api.github.com/repos/aio-libs/aiohttp_admin/contributors","subscribers_url":"https://api.github.com/repos/aio-libs/aiohttp_admin/subscribers","subscription_url":"https://api.github.com/repos/aio-libs/aiohttp_admin/subscription","commits_url":"https://api.github.com/repos/aio-libs/aiohttp_admin/commits{/sha}","git_commits_url":"https://api.github.com/repos/aio-libs/aiohttp_admin/git/commits{/sha}","comments_url":"https://api.github.com/repos/aio-libs/aiohttp_admin/comments{/number}","issue_comment_url":"https://api.github.com/repos/aio-libs/aiohttp_admin/issues/comments{/number}","contents_url":"https://api.github.com/repos/aio-libs/aiohttp_admin/contents/{+path}","compare_url":"https://api.github.com/repos/aio-libs/aiohttp_admin/compare/{base}...{head}","merges_url":"https://api.github.com/repos/aio-libs/aiohttp_admin/merges","archive_url":"https://api.github.com/repos/aio-libs/aiohttp_admin/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/aio-libs/aiohttp_admin/downloads","issues_url":"https://api.github.com/repos/aio-libs/aiohttp_admin/issues{/number}","pulls_url":"https://api.github.com/repos/aio-libs/aiohttp_admin/pulls{/number}","milestones_url":"https://api.github.com/repos/aio-libs/aiohttp_admin/milestones{/number}","notifications_url":"https://api.github.com/repos/aio-libs/aiohttp_admin/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/aio-libs/aiohttp_admin/labels{/name}","releases_url":"https://api.github.com/repos/aio-libs/aiohttp_admin/releases{/id}","deployments_url":"https://api.github.com/repos/aio-libs/aiohttp_admin/deployments","created_at":"2016-01-02T20:23:33Z","updated_at":"2018-02-04T16:25:13Z","pushed_at":"2018-02-05T13:06:34Z","git_url":"git://github.com/aio-libs/aiohttp_admin.git","ssh_url":"git@github.com:aio-libs/aiohttp_admin.git","clone_url":"https://github.com/aio-libs/aiohttp_admin.git","svn_url":"https://github.com/aio-libs/aiohttp_admin","homepage":"","size":10981,"stargazers_count":95,"watchers_count":95,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":24,"mirror_url":null,"archived":false,"open_issues_count":13,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0"},"forks":24,"open_issues":13,"watchers":95,"default_branch":"master"}},"base":{"label":"aio-libs:master","ref":"master","sha":"a9ba60ef20df3837260754c308bd0e77eb641dd7","user":{"login":"aio-libs","id":7049303,"avatar_url":"https://avatars2.githubusercontent.com/u/7049303?v=4","gravatar_id":"","url":"https://api.github.com/users/aio-libs","html_url":"https://github.com/aio-libs","followers_url":"https://api.github.com/users/aio-libs/followers","following_url":"https://api.github.com/users/aio-libs/following{/other_user}","gists_url":"https://api.github.com/users/aio-libs/gists{/gist_id}","starred_url":"https://api.github.com/users/aio-libs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aio-libs/subscriptions","organizations_url":"https://api.github.com/users/aio-libs/orgs","repos_url":"https://api.github.com/users/aio-libs/repos","events_url":"https://api.github.com/users/aio-libs/events{/privacy}","received_events_url":"https://api.github.com/users/aio-libs/received_events","type":"Organization","site_admin":false},"repo":{"id":48922724,"name":"aiohttp_admin","full_name":"aio-libs/aiohttp_admin","owner":{"login":"aio-libs","id":7049303,"avatar_url":"https://avatars2.githubusercontent.com/u/7049303?v=4","gravatar_id":"","url":"https://api.github.com/users/aio-libs","html_url":"https://github.com/aio-libs","followers_url":"https://api.github.com/users/aio-libs/followers","following_url":"https://api.github.com/users/aio-libs/following{/other_user}","gists_url":"https://api.github.com/users/aio-libs/gists{/gist_id}","starred_url":"https://api.github.com/users/aio-libs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aio-libs/subscriptions","organizations_url":"https://api.github.com/users/aio-libs/orgs","repos_url":"https://api.github.com/users/aio-libs/repos","events_url":"https://api.github.com/users/aio-libs/events{/privacy}","received_events_url":"https://api.github.com/users/aio-libs/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/aio-libs/aiohttp_admin","description":"admin interface for aiohttp application http://aiohttp-admin.readthedocs.io","fork":false,"url":"https://api.github.com/repos/aio-libs/aiohttp_admin","forks_url":"https://api.github.com/repos/aio-libs/aiohttp_admin/forks","keys_url":"https://api.github.com/repos/aio-libs/aiohttp_admin/keys{/key_id}","collaborators_url":"https://api.github.com/repos/aio-libs/aiohttp_admin/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/aio-libs/aiohttp_admin/teams","hooks_url":"https://api.github.com/repos/aio-libs/aiohttp_admin/hooks","issue_events_url":"https://api.github.com/repos/aio-libs/aiohttp_admin/issues/events{/number}","events_url":"https://api.github.com/repos/aio-libs/aiohttp_admin/events","assignees_url":"https://api.github.com/repos/aio-libs/aiohttp_admin/assignees{/user}","branches_url":"https://api.github.com/repos/aio-libs/aiohttp_admin/branches{/branch}","tags_url":"https://api.github.com/repos/aio-libs/aiohttp_admin/tags","blobs_url":"https://api.github.com/repos/aio-libs/aiohttp_admin/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/aio-libs/aiohttp_admin/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/aio-libs/aiohttp_admin/git/refs{/sha}","trees_url":"https://api.github.com/repos/aio-libs/aiohttp_admin/git/trees{/sha}","statuses_url":"https://api.github.com/repos/aio-libs/aiohttp_admin/statuses/{sha}","languages_url":"https://api.github.com/repos/aio-libs/aiohttp_admin/languages","stargazers_url":"https://api.github.com/repos/aio-libs/aiohttp_admin/stargazers","contributors_url":"https://api.github.com/repos/aio-libs/aiohttp_admin/contributors","subscribers_url":"https://api.github.com/repos/aio-libs/aiohttp_admin/subscribers","subscription_url":"https://api.github.com/repos/aio-libs/aiohttp_admin/subscription","commits_url":"https://api.github.com/repos/aio-libs/aiohttp_admin/commits{/sha}","git_commits_url":"https://api.github.com/repos/aio-libs/aiohttp_admin/git/commits{/sha}","comments_url":"https://api.github.com/repos/aio-libs/aiohttp_admin/comments{/number}","issue_comment_url":"https://api.github.com/repos/aio-libs/aiohttp_admin/issues/comments{/number}","contents_url":"https://api.github.com/repos/aio-libs/aiohttp_admin/contents/{+path}","compare_url":"https://api.github.com/repos/aio-libs/aiohttp_admin/compare/{base}...{head}","merges_url":"https://api.github.com/repos/aio-libs/aiohttp_admin/merges","archive_url":"https://api.github.com/repos/aio-libs/aiohttp_admin/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/aio-libs/aiohttp_admin/downloads","issues_url":"https://api.github.com/repos/aio-libs/aiohttp_admin/issues{/number}","pulls_url":"https://api.github.com/repos/aio-libs/aiohttp_admin/pulls{/number}","milestones_url":"https://api.github.com/repos/aio-libs/aiohttp_admin/milestones{/number}","notifications_url":"https://api.github.com/repos/aio-libs/aiohttp_admin/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/aio-libs/aiohttp_admin/labels{/name}","releases_url":"https://api.github.com/repos/aio-libs/aiohttp_admin/releases{/id}","deployments_url":"https://api.github.com/repos/aio-libs/aiohttp_admin/deployments","created_at":"2016-01-02T20:23:33Z","updated_at":"2018-02-04T16:25:13Z","pushed_at":"2018-02-05T13:06:34Z","git_url":"git://github.com/aio-libs/aiohttp_admin.git","ssh_url":"git@github.com:aio-libs/aiohttp_admin.git","clone_url":"https://github.com/aio-libs/aiohttp_admin.git","svn_url":"https://github.com/aio-libs/aiohttp_admin","homepage":"","size":10981,"stargazers_count":95,"watchers_count":95,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":24,"mirror_url":null,"archived":false,"open_issues_count":13,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0"},"forks":24,"open_issues":13,"watchers":95,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/aio-libs/aiohttp_admin/pulls/337"},"html":{"href":"https://github.com/aio-libs/aiohttp_admin/pull/337"},"issue":{"href":"https://api.github.com/repos/aio-libs/aiohttp_admin/issues/337"},"comments":{"href":"https://api.github.com/repos/aio-libs/aiohttp_admin/issues/337/comments"},"review_comments":{"href":"https://api.github.com/repos/aio-libs/aiohttp_admin/pulls/337/comments"},"review_comment":{"href":"https://api.github.com/repos/aio-libs/aiohttp_admin/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/aio-libs/aiohttp_admin/pulls/337/commits"},"statuses":{"href":"https://api.github.com/repos/aio-libs/aiohttp_admin/statuses/7e8d4c9edfe12a7da16f6da73385bbab9273e689"}},"author_association":"COLLABORATOR","merged":false,"mergeable":true,"rebaseable":true,"mergeable_state":"unstable","merged_by":null,"comments":1,"review_comments":0,"maintainer_can_modify":false,"commits":12,"additions":12,"deletions":12,"changed_files":3}}
{"actor":{"display_login":"pyup-bot"}}