Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-nest-asyncio for
openSUSE:Factory checked in at 2021-06-26 21:25:32
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-nest-asyncio (Old)
and /work/SRC/openSUSE:Factory/.python-nest-asyncio.new.2625 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-nest-asyncio"
Sat Jun 26 21:25:32 2021 rev:3 rq:902433 version:1.5.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-nest-asyncio/python-nest-asyncio.changes
2020-07-20 21:11:24.165703163 +0200
+++
/work/SRC/openSUSE:Factory/.python-nest-asyncio.new.2625/python-nest-asyncio.changes
2021-06-26 21:26:00.127386013 +0200
@@ -1,0 +2,7 @@
+Fri Jun 25 11:19:17 UTC 2021 - Ben Greiner <[email protected]>
+
+- Update to 1.5.1
+ * no release notes
+ * update required by jupyter_client 6.2
+
+-------------------------------------------------------------------
Old:
----
nest_asyncio-1.4.0.tar.gz
New:
----
nest_asyncio-1.5.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-nest-asyncio.spec ++++++
--- /var/tmp/diff_new_pack.X8vM3e/_old 2021-06-26 21:26:00.475386473 +0200
+++ /var/tmp/diff_new_pack.X8vM3e/_new 2021-06-26 21:26:00.479386478 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-nest-asyncio
#
-# Copyright (c) 2020 SUSE LLC
+# Copyright (c) 2021 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -19,13 +19,12 @@
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
%define skip_python2 1
Name: python-nest-asyncio
-Version: 1.4.0
+Version: 1.5.1
Release: 0
Summary: Patch asyncio to allow nested event loops
License: BSD-2-Clause
URL: https://github.com/erdewit/nest_asyncio
Source:
https://files.pythonhosted.org/packages/source/n/nest_asyncio/nest_asyncio-%{version}.tar.gz
-BuildRequires: %{python_module devel}
BuildRequires: %{python_module setuptools}
BuildRequires: fdupes
BuildRequires: python-rpm-macros
@@ -57,11 +56,13 @@
%python_expand %fdupes %{buildroot}%{$python_sitelib}
%check
-%python_expand PYTHONPATH=%{buildroot}%{$python_sitelib} $python
tests/nest_test.py
+%pyunittest -v tests.nest_test
%files %{python_files}
%license LICENSE
%doc README.rst
-%{python_sitelib}/*
+%{python_sitelib}/nest_asyncio.py*
+%pycache_only %{python_sitelib}/__pycache__/nest_asyncio*.pyc
+%{python_sitelib}/nest_asyncio-%{version}*-info
%changelog
++++++ nest_asyncio-1.4.0.tar.gz -> nest_asyncio-1.5.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/nest_asyncio-1.4.0/.github/FUNDING.yml
new/nest_asyncio-1.5.1/.github/FUNDING.yml
--- old/nest_asyncio-1.4.0/.github/FUNDING.yml 2020-03-29 16:38:24.000000000
+0200
+++ new/nest_asyncio-1.5.1/.github/FUNDING.yml 1970-01-01 01:00:00.000000000
+0100
@@ -1,2 +0,0 @@
-github: erdewit
-custom: www.paypal.me/erdewit
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/nest_asyncio-1.4.0/.gitignore
new/nest_asyncio-1.5.1/.gitignore
--- old/nest_asyncio-1.4.0/.gitignore 2018-09-28 23:35:37.000000000 +0200
+++ new/nest_asyncio-1.5.1/.gitignore 1970-01-01 01:00:00.000000000 +0100
@@ -1,107 +0,0 @@
-# Byte-compiled / optimized / DLL files
-__pycache__/
-*.py[cod]
-*$py.class
-
-# C extensions
-*.so
-
-# Distribution / packaging
-.Python
-env/
-build/
-develop-eggs/
-dist/
-downloads/
-eggs/
-.eggs/
-lib/
-lib64/
-parts/
-sdist/
-var/
-wheels/
-*.egg-info/
-.installed.cfg
-*.egg
-
-# PyInstaller
-# Usually these files are written by a python script from a template
-# before PyInstaller builds the exe, so as to inject date/other infos into it.
-*.manifest
-*.spec
-
-# Installer logs
-pip-log.txt
-pip-delete-this-directory.txt
-
-# Unit test / coverage reports
-htmlcov/
-.tox/
-.coverage
-.coverage.*
-.cache
-nosetests.xml
-coverage.xml
-*.cover
-.hypothesis/
-
-# Translations
-*.mo
-*.pot
-
-# Django stuff:
-*.log
-local_settings.py
-
-# Flask stuff:
-instance/
-.webassets-cache
-
-# Scrapy stuff:
-.scrapy
-
-# Sphinx documentation
-docs/_build/
-
-# PyBuilder
-target/
-
-# Jupyter Notebook
-.ipynb_checkpoints
-
-# pyenv
-.python-version
-
-# celery beat schedule file
-celerybeat-schedule
-
-# SageMath parsed files
-*.sage.py
-
-# dotenv
-.env
-
-# virtualenv
-.venv
-venv/
-ENV/
-
-# Spyder project settings
-.spyderproject
-.spyproject
-
-# Rope project settings
-.ropeproject
-
-# mkdocs documentation
-/site
-
-# mypy
-.mypy_cache/
-
-.vscode
-.project
-.pydevproject
-.settings/
-.idea
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/nest_asyncio-1.4.0/.travis.yml
new/nest_asyncio-1.5.1/.travis.yml
--- old/nest_asyncio-1.4.0/.travis.yml 2019-12-07 10:12:47.000000000 +0100
+++ new/nest_asyncio-1.5.1/.travis.yml 1970-01-01 01:00:00.000000000 +0100
@@ -1,13 +0,0 @@
-language: python
-sudo: false
-python:
- - "3.5"
- - "3.6"
- - "3.7"
- - "3.8"
- - "nightly"
-install:
- - pip install .
-script:
- - python3 tests/nest_test.py
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/nest_asyncio-1.4.0/PKG-INFO
new/nest_asyncio-1.5.1/PKG-INFO
--- old/nest_asyncio-1.4.0/PKG-INFO 2020-07-17 13:14:09.707323600 +0200
+++ new/nest_asyncio-1.5.1/PKG-INFO 2021-01-27 16:43:32.017318000 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: nest_asyncio
-Version: 1.4.0
+Version: 1.5.1
Summary: Patch asyncio to allow nested event loops
Home-page: https://github.com/erdewit/nest_asyncio
Author: Ewald R. de Wit
@@ -48,9 +48,10 @@
Loops from other projects, such as uvloop or quamash,
generally can't be patched.
- .. |Build| image::
https://travis-ci.org/erdewit/nest_asyncio.svg?branch=master
+
+ .. |Build| image::
https://github.com/erdewit/nest_asyncio/workflows/Test/badge.svg?branche=master
:alt: Build
- :target: https://travis-ci.org/erdewit/nest_asyncio
+ :target: https://github.com/erdewit/nest_asyncio/actions
.. |PyPiVersion| image:: https://img.shields.io/pypi/v/nest_asyncio.svg
:alt: PyPi
@@ -76,6 +77,7 @@
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
+Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3 :: Only
Requires-Python: >=3.5
Description-Content-Type: text/x-rst
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/nest_asyncio-1.4.0/README.rst
new/nest_asyncio-1.5.1/README.rst
--- old/nest_asyncio-1.4.0/README.rst 2019-02-02 15:35:24.000000000 +0100
+++ new/nest_asyncio-1.5.1/README.rst 2021-01-24 18:32:43.000000000 +0100
@@ -40,9 +40,10 @@
Loops from other projects, such as uvloop or quamash,
generally can't be patched.
-.. |Build| image:: https://travis-ci.org/erdewit/nest_asyncio.svg?branch=master
+
+.. |Build| image::
https://github.com/erdewit/nest_asyncio/workflows/Test/badge.svg?branche=master
:alt: Build
- :target: https://travis-ci.org/erdewit/nest_asyncio
+ :target: https://github.com/erdewit/nest_asyncio/actions
.. |PyPiVersion| image:: https://img.shields.io/pypi/v/nest_asyncio.svg
:alt: PyPi
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/nest_asyncio-1.4.0/dist.sh
new/nest_asyncio-1.5.1/dist.sh
--- old/nest_asyncio-1.4.0/dist.sh 2018-09-07 17:13:20.000000000 +0200
+++ new/nest_asyncio-1.5.1/dist.sh 1970-01-01 01:00:00.000000000 +0100
@@ -1,4 +0,0 @@
-rm -rf dist build
-python3 setup.py sdist bdist_wheel
-python3 -m twine upload dist/*
-rm -rf dist build *.egg-info
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/nest_asyncio-1.4.0/nest_asyncio.egg-info/PKG-INFO
new/nest_asyncio-1.5.1/nest_asyncio.egg-info/PKG-INFO
--- old/nest_asyncio-1.4.0/nest_asyncio.egg-info/PKG-INFO 2020-07-17
13:14:09.000000000 +0200
+++ new/nest_asyncio-1.5.1/nest_asyncio.egg-info/PKG-INFO 2021-01-27
16:43:31.000000000 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: nest-asyncio
-Version: 1.4.0
+Version: 1.5.1
Summary: Patch asyncio to allow nested event loops
Home-page: https://github.com/erdewit/nest_asyncio
Author: Ewald R. de Wit
@@ -48,9 +48,10 @@
Loops from other projects, such as uvloop or quamash,
generally can't be patched.
- .. |Build| image::
https://travis-ci.org/erdewit/nest_asyncio.svg?branch=master
+
+ .. |Build| image::
https://github.com/erdewit/nest_asyncio/workflows/Test/badge.svg?branche=master
:alt: Build
- :target: https://travis-ci.org/erdewit/nest_asyncio
+ :target: https://github.com/erdewit/nest_asyncio/actions
.. |PyPiVersion| image:: https://img.shields.io/pypi/v/nest_asyncio.svg
:alt: PyPi
@@ -76,6 +77,7 @@
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
+Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3 :: Only
Requires-Python: >=3.5
Description-Content-Type: text/x-rst
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/nest_asyncio-1.4.0/nest_asyncio.egg-info/SOURCES.txt
new/nest_asyncio-1.5.1/nest_asyncio.egg-info/SOURCES.txt
--- old/nest_asyncio-1.4.0/nest_asyncio.egg-info/SOURCES.txt 2020-07-17
13:14:09.000000000 +0200
+++ new/nest_asyncio-1.5.1/nest_asyncio.egg-info/SOURCES.txt 2021-01-27
16:43:31.000000000 +0100
@@ -1,14 +1,9 @@
-.gitignore
-.travis.yml
LICENSE
MANIFEST.in
README.rst
-dist.sh
nest_asyncio.py
-pyproject.toml
setup.cfg
setup.py
-.github/FUNDING.yml
nest_asyncio.egg-info/PKG-INFO
nest_asyncio.egg-info/SOURCES.txt
nest_asyncio.egg-info/dependency_links.txt
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/nest_asyncio-1.4.0/nest_asyncio.py
new/nest_asyncio-1.5.1/nest_asyncio.py
--- old/nest_asyncio-1.4.0/nest_asyncio.py 2020-07-16 16:25:07.000000000
+0200
+++ new/nest_asyncio-1.5.1/nest_asyncio.py 2021-01-27 16:39:44.000000000
+0100
@@ -1,12 +1,14 @@
import asyncio
import asyncio.events as events
+import os
import sys
import threading
+from contextlib import contextmanager
from heapq import heappop
def apply(loop=None):
- """Patch asyncio to make its event loop reentrent."""
+ """Patch asyncio to make its event loop reentrant."""
loop = loop or asyncio.get_event_loop()
if not isinstance(loop, asyncio.BaseEventLoop):
raise ValueError('Can\'t patch loop of type %s' % type(loop))
@@ -16,7 +18,6 @@
_patch_asyncio()
_patch_loop(loop)
_patch_task()
- _patch_handle()
_patch_tornado()
@@ -44,44 +45,18 @@
def _patch_loop(loop):
- """Patch loop to make it reentrent."""
+ """Patch loop to make it reentrant."""
def run_forever(self):
- if sys.version_info >= (3, 7, 0):
- set_coro_tracking = self._set_coroutine_origin_tracking
- else:
- set_coro_tracking = self._set_coroutine_wrapper
-
- self._check_closed()
- old_thread_id = self._thread_id
- old_running_loop = events._get_running_loop()
- set_coro_tracking(self._debug)
- self._thread_id = threading.get_ident()
-
- if self._asyncgens is not None:
- old_agen_hooks = sys.get_asyncgen_hooks()
- sys.set_asyncgen_hooks(
- firstiter=self._asyncgen_firstiter_hook,
- finalizer=self._asyncgen_finalizer_hook)
- try:
- events._set_running_loop(self)
+ with manage_run(self), manage_asyncgens(self):
while True:
self._run_once()
if self._stopping:
break
- finally:
- self._stopping = False
- self._thread_id = old_thread_id
- events._set_running_loop(old_running_loop)
- set_coro_tracking(False)
- if self._asyncgens is not None:
- sys.set_asyncgen_hooks(*old_agen_hooks)
+ self._stopping = False
def run_until_complete(self, future):
- old_running_loop = events._get_running_loop()
- try:
- self._check_closed()
- events._set_running_loop(self)
+ with manage_run(self):
f = asyncio.ensure_future(future, loop=self)
if f is not future:
f._log_destroy_pending = False
@@ -93,8 +68,6 @@
raise RuntimeError(
'Event loop stopped before Future completed.')
return f.result()
- finally:
- events._set_running_loop(old_running_loop)
def _run_once(self):
"""
@@ -107,36 +80,84 @@
while scheduled and scheduled[0]._cancelled:
heappop(scheduled)
- timeout = 0 if ready or self._stopping \
- else min(max(0, scheduled[0]._when - now), 10) if scheduled \
- else None
+ timeout = (
+ 0 if ready or self._stopping
+ else min(max(scheduled[0]._when - now, 0), 86400) if scheduled
+ else None)
event_list = self._selector.select(timeout)
self._process_events(event_list)
- while scheduled and scheduled[0]._when < now + self._clock_resolution:
+ end_time = self.time() + self._clock_resolution
+ while scheduled and scheduled[0]._when < end_time:
handle = heappop(scheduled)
ready.append(handle)
- while ready:
+ for _ in range(len(ready)):
+ if not ready:
+ break
handle = ready.popleft()
if not handle._cancelled:
handle._run()
handle = None
+ @contextmanager
+ def manage_run(self):
+ """Set up the loop for running."""
+ self._check_closed()
+ old_thread_id = self._thread_id
+ old_running_loop = events._get_running_loop()
+ try:
+ self._thread_id = threading.get_ident()
+ events._set_running_loop(self)
+ self._num_runs_pending += 1
+ if self._is_proactorloop:
+ if self._self_reading_future is None:
+ self.call_soon(self._loop_self_reading)
+ yield
+ finally:
+ self._thread_id = old_thread_id
+ events._set_running_loop(old_running_loop)
+ self._num_runs_pending -= 1
+ if self._is_proactorloop:
+ if (self._num_runs_pending == 0
+ and self._self_reading_future is not None):
+ ov = self._self_reading_future._ov
+ self._self_reading_future.cancel()
+ if ov is not None:
+ self._proactor._unregister(ov)
+ self._self_reading_future = None
+
+ @contextmanager
+ def manage_asyncgens(self):
+ old_agen_hooks = sys.get_asyncgen_hooks()
+ try:
+ self._set_coroutine_origin_tracking(self._debug)
+ if self._asyncgens is not None:
+ sys.set_asyncgen_hooks(
+ firstiter=self._asyncgen_firstiter_hook,
+ finalizer=self._asyncgen_finalizer_hook)
+ yield
+ finally:
+ self._set_coroutine_origin_tracking(False)
+ if self._asyncgens is not None:
+ sys.set_asyncgen_hooks(*old_agen_hooks)
+
def _check_running(self):
"""Do not throw exception if loop is already running."""
pass
cls = loop.__class__
- cls._run_once_orig = cls._run_once
- cls._run_once = _run_once
- cls._run_forever_orig = cls.run_forever
cls.run_forever = run_forever
- cls._run_until_complete_orig = cls.run_until_complete
cls.run_until_complete = run_until_complete
+ cls._run_once = _run_once
cls._check_running = _check_running
cls._check_runnung = _check_running # typo in Python 3.7 source
cls._nest_patched = True
+ cls._num_runs_pending = 0
+ cls._is_proactorloop = (
+ os.name == 'nt' and issubclass(cls, asyncio.ProactorEventLoop))
+ if sys.version_info < (3, 7, 0):
+ cls._set_coroutine_origin_tracking = cls._set_coroutine_wrapper
def _patch_task():
@@ -172,45 +193,6 @@
Task._step = step
-def _patch_handle():
- """Patch Handle to allow recursive calls."""
-
- def update_from_context(ctx):
- """Copy context ctx to currently active context."""
- for var in ctx:
- var.set(ctx[var])
-
- def run(self):
- """
- Run the callback in a sub-context, then copy any sub-context vars
- over to the Handle's context.
- """
- try:
- ctx = self._context.copy()
- ctx.run(self._callback, *self._args)
- if ctx:
- self._context.run(update_from_context, ctx)
- except (SystemExit, KeyboardInterrupt):
- raise
- except BaseException as exc:
- cb = format_helpers._format_callback_source(
- self._callback, self._args)
- msg = 'Exception in callback {}'.format(cb)
- context = {
- 'message': msg,
- 'exception': exc,
- 'handle': self,
- }
- if self._source_traceback:
- context['source_traceback'] = self._source_traceback
- self._loop.call_exception_handler(context)
- self = None
-
- if sys.version_info >= (3, 7, 0):
- from asyncio import format_helpers
- events.Handle._run = run
-
-
def _patch_tornado():
"""
If tornado is imported before nest_asyncio, make tornado aware of
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/nest_asyncio-1.4.0/pyproject.toml
new/nest_asyncio-1.5.1/pyproject.toml
--- old/nest_asyncio-1.4.0/pyproject.toml 2020-07-16 12:39:43.000000000
+0200
+++ new/nest_asyncio-1.5.1/pyproject.toml 1970-01-01 01:00:00.000000000
+0100
@@ -1,5 +0,0 @@
-[build-system]
-requires = ["setuptools>=42", "wheel", "setuptools_scm[toml]>=3.4.3"]
-build-backend = "setuptools.build_meta"
-
-[tool.setuptools_scm]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/nest_asyncio-1.4.0/setup.cfg
new/nest_asyncio-1.5.1/setup.cfg
--- old/nest_asyncio-1.4.0/setup.cfg 2020-07-17 13:14:09.708323500 +0200
+++ new/nest_asyncio-1.5.1/setup.cfg 2021-01-27 16:43:32.017318000 +0100
@@ -1,6 +1,6 @@
[metadata]
name = nest_asyncio
-version = 1.4.0
+version = 1.5.1
author = Ewald R. de Wit
author_email = [email protected]
license = BSD
@@ -18,6 +18,7 @@
Programming Language :: Python :: 3.6
Programming Language :: Python :: 3.7
Programming Language :: Python :: 3.8
+ Programming Language :: Python :: 3.9
Programming Language :: Python :: 3 :: Only
[options]