From 988fcf75c17a208c0f7369bfedc49cfb837d2f51 Mon Sep 17 00:00:00 2001 From: Johannes Maria Frank Date: Tue, 7 Aug 2018 15:29:35 +0100 Subject: [PATCH 01/49] Changed import of reexport to explicit and bumped version --- trio/__init__.py | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/trio/__init__.py b/trio/__init__.py index 5f84226570..730b982e97 100644 --- a/trio/__init__.py +++ b/trio/__init__.py @@ -17,8 +17,20 @@ __all__ = [] -from ._toplevel_core_reexports import * -__all__ += _toplevel_core_reexports.__all__ +from ._toplevel_core_reexports import ( TrioInternalError, + RunFinishedError, + WouldBlock, + Cancelled, + ResourceBusyError, + ClosedResourceError, + MultiError, + run, + open_nursery, + open_cancel_scope, + current_effective_deadline, + TASK_STATUS_IGNORED, + current_time, + TaskLocal) from ._timeouts import * __all__ += _timeouts.__all__ From a922db6d7dba770026109b0cfad06f14b2b852a1 Mon Sep 17 00:00:00 2001 From: Johannes Maria Frank Date: Tue, 7 Aug 2018 16:20:06 +0100 Subject: [PATCH 02/49] Replaced all import * with explicit imports and moved global update into a function --- trio/__init__.py | 56 +++++++++++++++++++++++--------- trio/_toplevel_core_reexports.py | 6 +++- 2 files changed, 45 insertions(+), 17 deletions(-) diff --git a/trio/__init__.py b/trio/__init__.py index 730b982e97..53eef746e9 100644 --- a/trio/__init__.py +++ b/trio/__init__.py @@ -17,7 +17,7 @@ __all__ = [] -from ._toplevel_core_reexports import ( TrioInternalError, +from ._toplevel_core_reexports import (TrioInternalError, RunFinishedError, WouldBlock, Cancelled, @@ -30,48 +30,72 @@ current_effective_deadline, TASK_STATUS_IGNORED, current_time, - TaskLocal) + TaskLocal, + __all__) + +__all__ += _toplevel_core_reexports.__all__ + +from ._timeouts import (move_on_at, + move_on_after, + sleep_forever, + sleep_until, + sleep, + fail_at, + fail_after, + TooSlowError) -from ._timeouts import * __all__ += _timeouts.__all__ -from ._sync import * +from ._sync import (Event, + CapacityLimiter, + Semaphore, + Lock, + StrictFIFOLock, + Condition, + Queue) + __all__ += _sync.__all__ -from ._threads import * +from ._threads import (run_sync_in_worker_thread, + current_default_worker_thread_limiter, + BlockingTrioPortal) + __all__ += _threads.__all__ -from ._highlevel_generic import * +from ._highlevel_generic import ( aclose_forcefully, + BrokenStreamError, + StapledStream) __all__ += _highlevel_generic.__all__ -from ._signals import * +from ._signals import catch_signals __all__ += _signals.__all__ -from ._highlevel_socket import * +from ._highlevel_socket import SocketStream, SocketListener __all__ += _highlevel_socket.__all__ -from ._file_io import * +from ._file_io import open_file, wrap_file __all__ += _file_io.__all__ -from ._path import * +from ._path import Path __all__ += _path.__all__ -from ._highlevel_serve_listeners import * +from ._highlevel_serve_listeners import serve_listeners __all__ += _highlevel_serve_listeners.__all__ -from ._highlevel_open_tcp_stream import * +from ._highlevel_open_tcp_stream import open_tcp_stream __all__ += _highlevel_open_tcp_stream.__all__ -from ._highlevel_open_tcp_listeners import * +from ._highlevel_open_tcp_listeners import open_tcp_listeners, serve_tcp __all__ += _highlevel_open_tcp_listeners.__all__ -from ._highlevel_open_unix_stream import * +from ._highlevel_open_unix_stream import open_unix_socket __all__ += _highlevel_open_unix_stream.__all__ -from ._highlevel_ssl_helpers import * +from ._highlevel_ssl_helpers import (open_ssl_over_tcp_stream, open_ssl_over_tcp_listeners, + serve_ssl_over_tcp) __all__ += _highlevel_ssl_helpers.__all__ -from ._deprecate import * +from ._deprecate import TrioDeprecationWarning __all__ += _deprecate.__all__ # Imported by default diff --git a/trio/_toplevel_core_reexports.py b/trio/_toplevel_core_reexports.py index c5754e518d..e919d14b8d 100644 --- a/trio/_toplevel_core_reexports.py +++ b/trio/_toplevel_core_reexports.py @@ -31,4 +31,8 @@ ] from . import _core -globals().update({sym: getattr(_core, sym) for sym in __all__}) + +def update_globals(globals_list): + globals().update({sym: getattr(_core, sym) for sym in globals_list}) + +update_globals(__all__) \ No newline at end of file From a9398a303db30def8ca9e970ad9ff1a31f06a863 Mon Sep 17 00:00:00 2001 From: Johannes Maria Frank Date: Thu, 9 Aug 2018 16:44:14 +0100 Subject: [PATCH 03/49] Formatting with yapf applied.\nVersion reverted to orig version 0.5.0+dev\nPipenv files added to gitignore --- trio/__init__.py | 61 ++++++++++++-------------------- trio/_toplevel_core_reexports.py | 4 ++- 2 files changed, 26 insertions(+), 39 deletions(-) diff --git a/trio/__init__.py b/trio/__init__.py index 53eef746e9..09b4dd6452 100644 --- a/trio/__init__.py +++ b/trio/__init__.py @@ -17,54 +17,38 @@ __all__ = [] -from ._toplevel_core_reexports import (TrioInternalError, - RunFinishedError, - WouldBlock, - Cancelled, - ResourceBusyError, - ClosedResourceError, - MultiError, - run, - open_nursery, - open_cancel_scope, - current_effective_deadline, - TASK_STATUS_IGNORED, - current_time, - TaskLocal, - __all__) +from ._toplevel_core_reexports import ( + TrioInternalError, RunFinishedError, WouldBlock, Cancelled, + ResourceBusyError, ClosedResourceError, MultiError, run, open_nursery, + open_cancel_scope, current_effective_deadline, TASK_STATUS_IGNORED, + current_time, TaskLocal, __all__ +) __all__ += _toplevel_core_reexports.__all__ -from ._timeouts import (move_on_at, - move_on_after, - sleep_forever, - sleep_until, - sleep, - fail_at, - fail_after, - TooSlowError) +from ._timeouts import ( + move_on_at, move_on_after, sleep_forever, sleep_until, sleep, fail_at, + fail_after, TooSlowError +) __all__ += _timeouts.__all__ -from ._sync import (Event, - CapacityLimiter, - Semaphore, - Lock, - StrictFIFOLock, - Condition, - Queue) +from ._sync import ( + Event, CapacityLimiter, Semaphore, Lock, StrictFIFOLock, Condition, Queue +) __all__ += _sync.__all__ -from ._threads import (run_sync_in_worker_thread, - current_default_worker_thread_limiter, - BlockingTrioPortal) +from ._threads import ( + run_sync_in_worker_thread, current_default_worker_thread_limiter, + BlockingTrioPortal +) __all__ += _threads.__all__ -from ._highlevel_generic import ( aclose_forcefully, - BrokenStreamError, - StapledStream) +from ._highlevel_generic import ( + aclose_forcefully, BrokenStreamError, StapledStream +) __all__ += _highlevel_generic.__all__ from ._signals import catch_signals @@ -91,8 +75,9 @@ from ._highlevel_open_unix_stream import open_unix_socket __all__ += _highlevel_open_unix_stream.__all__ -from ._highlevel_ssl_helpers import (open_ssl_over_tcp_stream, open_ssl_over_tcp_listeners, - serve_ssl_over_tcp) +from ._highlevel_ssl_helpers import ( + open_ssl_over_tcp_stream, open_ssl_over_tcp_listeners, serve_ssl_over_tcp +) __all__ += _highlevel_ssl_helpers.__all__ from ._deprecate import TrioDeprecationWarning diff --git a/trio/_toplevel_core_reexports.py b/trio/_toplevel_core_reexports.py index e919d14b8d..104f05ac76 100644 --- a/trio/_toplevel_core_reexports.py +++ b/trio/_toplevel_core_reexports.py @@ -32,7 +32,9 @@ from . import _core + def update_globals(globals_list): globals().update({sym: getattr(_core, sym) for sym in globals_list}) -update_globals(__all__) \ No newline at end of file + +update_globals(__all__) From 0651a6bcd68dc18f13dd1c5e934f68213c7be856 Mon Sep 17 00:00:00 2001 From: Johannes Maria Frank Date: Fri, 17 Aug 2018 02:28:37 +0100 Subject: [PATCH 04/49] Added tests for pylint and jedi --- trio/__init__.py | 24 +++--------------------- trio/tests/test_exports.py | 20 ++++++++++++++++++++ 2 files changed, 23 insertions(+), 21 deletions(-) diff --git a/trio/__init__.py b/trio/__init__.py index 09b4dd6452..633ed3391b 100644 --- a/trio/__init__.py +++ b/trio/__init__.py @@ -15,8 +15,6 @@ from ._version import __version__ -__all__ = [] - from ._toplevel_core_reexports import ( TrioInternalError, RunFinishedError, WouldBlock, Cancelled, ResourceBusyError, ClosedResourceError, MultiError, run, open_nursery, @@ -24,64 +22,45 @@ current_time, TaskLocal, __all__ ) -__all__ += _toplevel_core_reexports.__all__ - from ._timeouts import ( move_on_at, move_on_after, sleep_forever, sleep_until, sleep, fail_at, fail_after, TooSlowError ) -__all__ += _timeouts.__all__ - from ._sync import ( Event, CapacityLimiter, Semaphore, Lock, StrictFIFOLock, Condition, Queue ) -__all__ += _sync.__all__ - from ._threads import ( run_sync_in_worker_thread, current_default_worker_thread_limiter, BlockingTrioPortal ) -__all__ += _threads.__all__ - from ._highlevel_generic import ( aclose_forcefully, BrokenStreamError, StapledStream ) -__all__ += _highlevel_generic.__all__ from ._signals import catch_signals -__all__ += _signals.__all__ from ._highlevel_socket import SocketStream, SocketListener -__all__ += _highlevel_socket.__all__ from ._file_io import open_file, wrap_file -__all__ += _file_io.__all__ from ._path import Path -__all__ += _path.__all__ from ._highlevel_serve_listeners import serve_listeners -__all__ += _highlevel_serve_listeners.__all__ from ._highlevel_open_tcp_stream import open_tcp_stream -__all__ += _highlevel_open_tcp_stream.__all__ from ._highlevel_open_tcp_listeners import open_tcp_listeners, serve_tcp -__all__ += _highlevel_open_tcp_listeners.__all__ from ._highlevel_open_unix_stream import open_unix_socket -__all__ += _highlevel_open_unix_stream.__all__ from ._highlevel_ssl_helpers import ( open_ssl_over_tcp_stream, open_ssl_over_tcp_listeners, serve_ssl_over_tcp ) -__all__ += _highlevel_ssl_helpers.__all__ from ._deprecate import TrioDeprecationWarning -__all__ += _deprecate.__all__ # Imported by default from . import hazmat @@ -89,6 +68,9 @@ from . import abc from . import ssl # Not imported by default: testing +TESTING = False +if TESTING: + from . import testing _deprecate.enable_attribute_deprecations(__name__) __deprecated_attributes__ = { diff --git a/trio/tests/test_exports.py b/trio/tests/test_exports.py index d5ad1b3381..7cfa413971 100644 --- a/trio/tests/test_exports.py +++ b/trio/tests/test_exports.py @@ -1,6 +1,10 @@ import trio import trio.testing +import jedi + +from pylint.lint import PyLinter + from .. import _core @@ -18,3 +22,19 @@ def test_core_is_properly_reexported(): found += 1 print(symbol, found) assert found == 1 + +def test_pylint_sees_all_non_underscore_symbols_in_namespace(): + # Test pylints ast to contain the same content as dir(trio) + linter = PyLinter() + ast_set = set(linter.get_ast('trio/__init__.py', 'trio')) + trio_set = set([symbol for symbol in dir(trio) if symbol[0] != '_']) + trio_set.remove('tests') + assert trio_set - ast_set == set([]) + +def test_jedi_sees_all_completions(): + # Test the jedi completion library get all in dir(trio) + script = jedi.Script(path='trio/__init__.py') + completions = script.completions() + trio_set = set([symbol for symbol in dir(trio) if symbol[:2] != '__']) + jedi_set = set([cmp.name for cmp in completions]) + assert trio_set - jedi_set == set([]) From e6685148b7f7210f4e449387efa5de77208fb87b Mon Sep 17 00:00:00 2001 From: Johannes Maria Frank Date: Fri, 17 Aug 2018 02:29:31 +0100 Subject: [PATCH 05/49] Fixed formatting --- trio/tests/test_exports.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/trio/tests/test_exports.py b/trio/tests/test_exports.py index 7cfa413971..785ae332b4 100644 --- a/trio/tests/test_exports.py +++ b/trio/tests/test_exports.py @@ -23,6 +23,7 @@ def test_core_is_properly_reexported(): print(symbol, found) assert found == 1 + def test_pylint_sees_all_non_underscore_symbols_in_namespace(): # Test pylints ast to contain the same content as dir(trio) linter = PyLinter() @@ -31,6 +32,7 @@ def test_pylint_sees_all_non_underscore_symbols_in_namespace(): trio_set.remove('tests') assert trio_set - ast_set == set([]) + def test_jedi_sees_all_completions(): # Test the jedi completion library get all in dir(trio) script = jedi.Script(path='trio/__init__.py') From 0e1bf155c97a879b7d25b7a112b2736d7597aed9 Mon Sep 17 00:00:00 2001 From: Johannes Maria Frank Date: Fri, 17 Aug 2018 10:49:05 +0100 Subject: [PATCH 06/49] Added pylint and jedit to test-requirements.txt for tests --- test-requirements.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/test-requirements.txt b/test-requirements.txt index 4548fc2dd0..7f655a4303 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -4,3 +4,5 @@ ipython # for the IPython traceback integration tests pyOpenSSL # for the ssl tests trustme # for the ssl tests pytest-faulthandler +pylint # for pylint finding all symbols tests +jedi # for jedi code completion tests From 6a42ded09687c4625fc0fcf3fc8b90ea8cd5f010 Mon Sep 17 00:00:00 2001 From: Johannes Maria Frank Date: Fri, 17 Aug 2018 10:57:27 +0100 Subject: [PATCH 07/49] Fixed path to be POSIX and Windows path --- trio/tests/test_exports.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/trio/tests/test_exports.py b/trio/tests/test_exports.py index 785ae332b4..24c0c504b0 100644 --- a/trio/tests/test_exports.py +++ b/trio/tests/test_exports.py @@ -2,6 +2,7 @@ import trio.testing import jedi +import os from pylint.lint import PyLinter @@ -27,7 +28,7 @@ def test_core_is_properly_reexported(): def test_pylint_sees_all_non_underscore_symbols_in_namespace(): # Test pylints ast to contain the same content as dir(trio) linter = PyLinter() - ast_set = set(linter.get_ast('trio/__init__.py', 'trio')) + ast_set = set(linter.get_ast(os.path.join('trio','__init__.py'), 'trio')) trio_set = set([symbol for symbol in dir(trio) if symbol[0] != '_']) trio_set.remove('tests') assert trio_set - ast_set == set([]) @@ -35,7 +36,7 @@ def test_pylint_sees_all_non_underscore_symbols_in_namespace(): def test_jedi_sees_all_completions(): # Test the jedi completion library get all in dir(trio) - script = jedi.Script(path='trio/__init__.py') + script = jedi.Script(path=os.path.join('trio','__init__.py')) completions = script.completions() trio_set = set([symbol for symbol in dir(trio) if symbol[:2] != '__']) jedi_set = set([cmp.name for cmp in completions]) From e87a0403109be6f92e469ad76e072249c415f75d Mon Sep 17 00:00:00 2001 From: Johannes Maria Frank Date: Fri, 17 Aug 2018 11:24:01 +0100 Subject: [PATCH 08/49] Replaced trio/__init__.py with trio.__file__ --- trio/tests/test_exports.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/trio/tests/test_exports.py b/trio/tests/test_exports.py index 24c0c504b0..aad5fa9d30 100644 --- a/trio/tests/test_exports.py +++ b/trio/tests/test_exports.py @@ -28,7 +28,7 @@ def test_core_is_properly_reexported(): def test_pylint_sees_all_non_underscore_symbols_in_namespace(): # Test pylints ast to contain the same content as dir(trio) linter = PyLinter() - ast_set = set(linter.get_ast(os.path.join('trio','__init__.py'), 'trio')) + ast_set = set(linter.get_ast(trio.__file__, 'trio')) trio_set = set([symbol for symbol in dir(trio) if symbol[0] != '_']) trio_set.remove('tests') assert trio_set - ast_set == set([]) @@ -36,7 +36,7 @@ def test_pylint_sees_all_non_underscore_symbols_in_namespace(): def test_jedi_sees_all_completions(): # Test the jedi completion library get all in dir(trio) - script = jedi.Script(path=os.path.join('trio','__init__.py')) + script = jedi.Script(path=trio.__file__) completions = script.completions() trio_set = set([symbol for symbol in dir(trio) if symbol[:2] != '__']) jedi_set = set([cmp.name for cmp in completions]) From a340b90ae06fe70602b850a51bbe415cb2a27b5d Mon Sep 17 00:00:00 2001 From: Johannes Maria Frank Date: Sat, 18 Aug 2018 13:58:54 +0100 Subject: [PATCH 09/49] Module names for _core and _run are currently broken --- trio/__init__.py | 13 +++++++++++-- trio/_core/__init__.py | 16 +++++++++++++++- 2 files changed, 26 insertions(+), 3 deletions(-) diff --git a/trio/__init__.py b/trio/__init__.py index 633ed3391b..806f0aa60b 100644 --- a/trio/__init__.py +++ b/trio/__init__.py @@ -13,13 +13,22 @@ # This file pulls together the friendly public API, by re-exporting the more # innocuous bits of the _core API + the higher-level tools from trio/*.py. +__all__ = [] + from ._version import __version__ -from ._toplevel_core_reexports import ( +# from ._toplevel_core_reexports import ( +# TrioInternalError, RunFinishedError, WouldBlock, Cancelled, +# ResourceBusyError, ClosedResourceError, MultiError, run, open_nursery, +# open_cancel_scope, current_effective_deadline, TASK_STATUS_IGNORED, +# current_time, TaskLocal, __all__ +# ) + +from ._core import ( TrioInternalError, RunFinishedError, WouldBlock, Cancelled, ResourceBusyError, ClosedResourceError, MultiError, run, open_nursery, open_cancel_scope, current_effective_deadline, TASK_STATUS_IGNORED, - current_time, TaskLocal, __all__ + current_time, TaskLocal, cancel_shielded_checkpoint ) from ._timeouts import ( diff --git a/trio/_core/__init__.py b/trio/_core/__init__.py index 9dc27b971e..9494b72dce 100644 --- a/trio/_core/__init__.py +++ b/trio/_core/__init__.py @@ -14,7 +14,21 @@ def _public(fn): return fn -__all__ = [] +__all__ = ["TrioInternalError", + "RunFinishedError", + "WouldBlock", + "Cancelled", + "ResourceBusyError", + "ClosedResourceError", + "MultiError", + "run", + "open_nursery", + "open_cancel_scope", + "current_effective_deadline", + "TASK_STATUS_IGNORED", + "current_time", + "TaskLocal", + "cancel_shielded_checkpoint",] from ._exceptions import * __all__ += _exceptions.__all__ From 7421d65609671ddc77ecb7507f37ea3cac0035bd Mon Sep 17 00:00:00 2001 From: Johannes Maria Frank Date: Thu, 23 Aug 2018 00:02:32 +0100 Subject: [PATCH 10/49] replaced __all__ with namespace iteration and added pylint and jedi test --- trio/__init__.py | 17 ++++++++++++++++- trio/_core/__init__.py | 5 +++-- trio/_util.py | 6 +++--- 3 files changed, 22 insertions(+), 6 deletions(-) diff --git a/trio/__init__.py b/trio/__init__.py index 806f0aa60b..7f69c8e079 100644 --- a/trio/__init__.py +++ b/trio/__init__.py @@ -13,7 +13,22 @@ # This file pulls together the friendly public API, by re-exporting the more # innocuous bits of the _core API + the higher-level tools from trio/*.py. -__all__ = [] +__all__ = [ + "TrioInternalError", + "RunFinishedError", + "WouldBlock", + "Cancelled", + "ResourceBusyError", + "ClosedResourceError", + "MultiError", + "run", + "open_nursery", + "open_cancel_scope", + "current_effective_deadline", + "TASK_STATUS_IGNORED", + "current_time", + "TaskLocal", +] from ._version import __version__ diff --git a/trio/_core/__init__.py b/trio/_core/__init__.py index 9494b72dce..0895179426 100644 --- a/trio/_core/__init__.py +++ b/trio/_core/__init__.py @@ -14,7 +14,8 @@ def _public(fn): return fn -__all__ = ["TrioInternalError", +__all__ = [ + "TrioInternalError", "RunFinishedError", "WouldBlock", "Cancelled", @@ -28,7 +29,7 @@ def _public(fn): "TASK_STATUS_IGNORED", "current_time", "TaskLocal", - "cancel_shielded_checkpoint",] +] from ._exceptions import * __all__ += _exceptions.__all__ diff --git a/trio/_util.py b/trio/_util.py index 55d9c1976f..486360c3bf 100644 --- a/trio/_util.py +++ b/trio/_util.py @@ -177,9 +177,9 @@ def fix_one(obj): for attr_value in obj.__dict__.values(): fix_one(attr_value) - for objname in namespace["__all__"]: - obj = namespace[objname] - fix_one(obj) + for objname, obj in namespace.items(): + if not objname.startswith("_"): # ignore private attributes + fix_one(obj) # os.fspath is defined on Python 3.6+ but we need to support Python 3.5 too From d8cfb8e59d83116005ea6269a588e6e47853b2b4 Mon Sep 17 00:00:00 2001 From: Johannes Maria Frank Date: Thu, 23 Aug 2018 00:12:48 +0100 Subject: [PATCH 11/49] merged with 0.6.0 rebase --- trio/_version.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/trio/_version.py b/trio/_version.py index dff3253441..d9e8975aef 100644 --- a/trio/_version.py +++ b/trio/_version.py @@ -1,3 +1,7 @@ # This file is imported from __init__.py and exec'd from setup.py +<<<<<<< HEAD __version__ = "0.6.0+dev" +======= +__version__ = "0.5.1+dev" +>>>>>>> Changed import of reexport to explicit and bumped version From ca57e0887b8559fda0d9e924bee5b642d2295631 Mon Sep 17 00:00:00 2001 From: Johannes Maria Frank Date: Thu, 23 Aug 2018 00:17:17 +0100 Subject: [PATCH 12/49] rebase continuation --- trio/_version.py | 4 ---- 1 file changed, 4 deletions(-) diff --git a/trio/_version.py b/trio/_version.py index d9e8975aef..dff3253441 100644 --- a/trio/_version.py +++ b/trio/_version.py @@ -1,7 +1,3 @@ # This file is imported from __init__.py and exec'd from setup.py -<<<<<<< HEAD __version__ = "0.6.0+dev" -======= -__version__ = "0.5.1+dev" ->>>>>>> Changed import of reexport to explicit and bumped version From b99ac7e267a062460cd6080cea38e281468463c0 Mon Sep 17 00:00:00 2001 From: Johannes Maria Frank Date: Thu, 23 Aug 2018 00:28:19 +0100 Subject: [PATCH 13/49] Fix formating with yapf --- trio/__init__.py | 7 ------- trio/_core/tests/test_multierror.py | 6 +++--- trio/tests/test_socket.py | 5 +++-- trio/tests/test_ssl.py | 12 +++++++++--- 4 files changed, 15 insertions(+), 15 deletions(-) diff --git a/trio/__init__.py b/trio/__init__.py index 7f69c8e079..bfc0f70999 100644 --- a/trio/__init__.py +++ b/trio/__init__.py @@ -32,13 +32,6 @@ from ._version import __version__ -# from ._toplevel_core_reexports import ( -# TrioInternalError, RunFinishedError, WouldBlock, Cancelled, -# ResourceBusyError, ClosedResourceError, MultiError, run, open_nursery, -# open_cancel_scope, current_effective_deadline, TASK_STATUS_IGNORED, -# current_time, TaskLocal, __all__ -# ) - from ._core import ( TrioInternalError, RunFinishedError, WouldBlock, Cancelled, ResourceBusyError, ClosedResourceError, MultiError, run, open_nursery, diff --git a/trio/_core/tests/test_multierror.py b/trio/_core/tests/test_multierror.py index 04c347f81c..3692abfda0 100644 --- a/trio/_core/tests/test_multierror.py +++ b/trio/_core/tests/test_multierror.py @@ -169,9 +169,9 @@ def simple_filter(exc): assert isinstance(orig.exceptions[0].exceptions[1], KeyError) # get original traceback summary orig_extracted = ( - extract_tb(orig.__traceback__) + extract_tb( - orig.exceptions[0].__traceback__ - ) + extract_tb(orig.exceptions[0].exceptions[1].__traceback__) + extract_tb(orig.__traceback__) + + extract_tb(orig.exceptions[0].__traceback__) + + extract_tb(orig.exceptions[0].exceptions[1].__traceback__) ) def p(exc): diff --git a/trio/tests/test_socket.py b/trio/tests/test_socket.py index 8b110c1212..645ac0255e 100644 --- a/trio/tests/test_socket.py +++ b/trio/tests/test_socket.py @@ -786,8 +786,9 @@ async def getnameinfo(self, sockaddr, flags): (0, 0, 0, tsocket.AI_CANONNAME), ]: assert ( - await tsocket.getaddrinfo("localhost", "foo", *vals) == - ("custom_gai", b"localhost", "foo", *vals) + await tsocket.getaddrinfo( + "localhost", "foo", *vals + ) == ("custom_gai", b"localhost", "foo", *vals) ) # IDNA encoding is handled before calling the special object diff --git a/trio/tests/test_ssl.py b/trio/tests/test_ssl.py index 5925b4c698..2dc7c867af 100644 --- a/trio/tests/test_ssl.py +++ b/trio/tests/test_ssl.py @@ -972,7 +972,9 @@ async def test_ssl_bad_shutdown(): async def test_ssl_bad_shutdown_but_its_ok(): client, server = ssl_memory_stream_pair( server_kwargs={"https_compatible": True}, - client_kwargs={"https_compatible": True} + client_kwargs={ + "https_compatible": True + } ) async with _core.open_nursery() as nursery: @@ -1037,7 +1039,9 @@ def close_hook(): async def test_ssl_https_compatibility_disagreement(): client, server = ssl_memory_stream_pair( server_kwargs={"https_compatible": False}, - client_kwargs={"https_compatible": True} + client_kwargs={ + "https_compatible": True + } ) async with _core.open_nursery() as nursery: @@ -1059,7 +1063,9 @@ async def receive_and_expect_error(): async def test_https_mode_eof_before_handshake(): client, server = ssl_memory_stream_pair( server_kwargs={"https_compatible": True}, - client_kwargs={"https_compatible": True} + client_kwargs={ + "https_compatible": True + } ) async def server_expect_clean_eof(): From f95aeea885bf142176c9ae4bb7a1d5dddaea1820 Mon Sep 17 00:00:00 2001 From: Johannes Maria Frank Date: Thu, 23 Aug 2018 00:30:37 +0100 Subject: [PATCH 14/49] Removed _top_level_imports.py --- trio/_toplevel_core_reexports.py | 40 -------------------------------- 1 file changed, 40 deletions(-) delete mode 100644 trio/_toplevel_core_reexports.py diff --git a/trio/_toplevel_core_reexports.py b/trio/_toplevel_core_reexports.py deleted file mode 100644 index 104f05ac76..0000000000 --- a/trio/_toplevel_core_reexports.py +++ /dev/null @@ -1,40 +0,0 @@ -# PyCharm tries to statically trio's attributes, so that it can offer -# completions. (Other IDEs probably do similar things.) -# -# _core's exports use all sorts of wacky runtime tricks to set up their -# exports, and then they get divided between trio, trio.hazmat, and -# trio.testing. In an attempt to make this easier to understand for static -# analysis, this file lists all the _core symbols that are re-exported at the -# top-level (trio.whatever), with a simple static __all__. This turns out to -# be important -- PyCharm at least gives up on analyzing __all__ entirely if -# it sees __all__ += , see: -# https://github.com/python-trio/trio/issues/314#issuecomment-327824200 -# -# trio/hazmat.py and trio/testing/__init__.py have similar tricks, and we have -# a test to make sure that every _core export does get re-exported in one of -# these places or another. -__all__ = [ - "TrioInternalError", - "RunFinishedError", - "WouldBlock", - "Cancelled", - "ResourceBusyError", - "ClosedResourceError", - "MultiError", - "run", - "open_nursery", - "open_cancel_scope", - "current_effective_deadline", - "TASK_STATUS_IGNORED", - "current_time", - "TaskLocal", -] - -from . import _core - - -def update_globals(globals_list): - globals().update({sym: getattr(_core, sym) for sym in globals_list}) - - -update_globals(__all__) From 1ec2c0aa6c85804c6b6f20a89c9e96c4ee932987 Mon Sep 17 00:00:00 2001 From: Johannes Maria Frank Date: Thu, 23 Aug 2018 06:45:36 +0100 Subject: [PATCH 15/49] Reformatted with new yapf version 0.22 and skipped yedi test for 3.8-dev --- trio/_core/tests/test_multierror.py | 6 +++--- trio/tests/test_exports.py | 4 +++- trio/tests/test_socket.py | 5 ++--- trio/tests/test_ssl.py | 12 +++--------- 4 files changed, 11 insertions(+), 16 deletions(-) diff --git a/trio/_core/tests/test_multierror.py b/trio/_core/tests/test_multierror.py index 3692abfda0..04c347f81c 100644 --- a/trio/_core/tests/test_multierror.py +++ b/trio/_core/tests/test_multierror.py @@ -169,9 +169,9 @@ def simple_filter(exc): assert isinstance(orig.exceptions[0].exceptions[1], KeyError) # get original traceback summary orig_extracted = ( - extract_tb(orig.__traceback__) + - extract_tb(orig.exceptions[0].__traceback__) + - extract_tb(orig.exceptions[0].exceptions[1].__traceback__) + extract_tb(orig.__traceback__) + extract_tb( + orig.exceptions[0].__traceback__ + ) + extract_tb(orig.exceptions[0].exceptions[1].__traceback__) ) def p(exc): diff --git a/trio/tests/test_exports.py b/trio/tests/test_exports.py index aad5fa9d30..96250f3822 100644 --- a/trio/tests/test_exports.py +++ b/trio/tests/test_exports.py @@ -3,6 +3,7 @@ import jedi import os +import sys from pylint.lint import PyLinter @@ -33,7 +34,8 @@ def test_pylint_sees_all_non_underscore_symbols_in_namespace(): trio_set.remove('tests') assert trio_set - ast_set == set([]) - +@pytest.mark.skipif(sys.version[:3] == '3.8-dev', + reason="jedi 3.8-dev not supported") def test_jedi_sees_all_completions(): # Test the jedi completion library get all in dir(trio) script = jedi.Script(path=trio.__file__) diff --git a/trio/tests/test_socket.py b/trio/tests/test_socket.py index 645ac0255e..8b110c1212 100644 --- a/trio/tests/test_socket.py +++ b/trio/tests/test_socket.py @@ -786,9 +786,8 @@ async def getnameinfo(self, sockaddr, flags): (0, 0, 0, tsocket.AI_CANONNAME), ]: assert ( - await tsocket.getaddrinfo( - "localhost", "foo", *vals - ) == ("custom_gai", b"localhost", "foo", *vals) + await tsocket.getaddrinfo("localhost", "foo", *vals) == + ("custom_gai", b"localhost", "foo", *vals) ) # IDNA encoding is handled before calling the special object diff --git a/trio/tests/test_ssl.py b/trio/tests/test_ssl.py index 2dc7c867af..5925b4c698 100644 --- a/trio/tests/test_ssl.py +++ b/trio/tests/test_ssl.py @@ -972,9 +972,7 @@ async def test_ssl_bad_shutdown(): async def test_ssl_bad_shutdown_but_its_ok(): client, server = ssl_memory_stream_pair( server_kwargs={"https_compatible": True}, - client_kwargs={ - "https_compatible": True - } + client_kwargs={"https_compatible": True} ) async with _core.open_nursery() as nursery: @@ -1039,9 +1037,7 @@ def close_hook(): async def test_ssl_https_compatibility_disagreement(): client, server = ssl_memory_stream_pair( server_kwargs={"https_compatible": False}, - client_kwargs={ - "https_compatible": True - } + client_kwargs={"https_compatible": True} ) async with _core.open_nursery() as nursery: @@ -1063,9 +1059,7 @@ async def receive_and_expect_error(): async def test_https_mode_eof_before_handshake(): client, server = ssl_memory_stream_pair( server_kwargs={"https_compatible": True}, - client_kwargs={ - "https_compatible": True - } + client_kwargs={"https_compatible": True} ) async def server_expect_clean_eof(): From d8e2ac9490b450ca41335116ff64ef5c470fe67f Mon Sep 17 00:00:00 2001 From: Johannes Maria Frank Date: Thu, 23 Aug 2018 06:47:07 +0100 Subject: [PATCH 16/49] Fixed format in test_exports.py --- trio/tests/test_exports.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/trio/tests/test_exports.py b/trio/tests/test_exports.py index 96250f3822..2338eb0449 100644 --- a/trio/tests/test_exports.py +++ b/trio/tests/test_exports.py @@ -34,8 +34,10 @@ def test_pylint_sees_all_non_underscore_symbols_in_namespace(): trio_set.remove('tests') assert trio_set - ast_set == set([]) -@pytest.mark.skipif(sys.version[:3] == '3.8-dev', - reason="jedi 3.8-dev not supported") + +@pytest.mark.skipif( + sys.version[:3] == '3.8-dev', reason="jedi 3.8-dev not supported" +) def test_jedi_sees_all_completions(): # Test the jedi completion library get all in dir(trio) script = jedi.Script(path=trio.__file__) From 5bd039062f773f9352b6fd2facca4571b1c87be2 Mon Sep 17 00:00:00 2001 From: Johannes Maria Frank Date: Thu, 23 Aug 2018 06:56:38 +0100 Subject: [PATCH 17/49] Fixed mising import of pytest in test_exports.py --- trio/tests/test_exports.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/trio/tests/test_exports.py b/trio/tests/test_exports.py index 2338eb0449..e24761fc9a 100644 --- a/trio/tests/test_exports.py +++ b/trio/tests/test_exports.py @@ -3,6 +3,7 @@ import jedi import os +import pytest import sys from pylint.lint import PyLinter @@ -36,7 +37,8 @@ def test_pylint_sees_all_non_underscore_symbols_in_namespace(): @pytest.mark.skipif( - sys.version[:3] == '3.8-dev', reason="jedi 3.8-dev not supported" + sys.version_info.minor > 7 and sys.version_info.releaselevel != 'final', + reason="jedi 3.8-dev not supported" ) def test_jedi_sees_all_completions(): # Test the jedi completion library get all in dir(trio) From dde4d28066dcfe7bc626302a82934e8d53637f75 Mon Sep 17 00:00:00 2001 From: Johannes Maria Frank Date: Thu, 23 Aug 2018 08:56:56 +0100 Subject: [PATCH 18/49] Changed reson message for jedi test being skipped --- trio/tests/test_exports.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/trio/tests/test_exports.py b/trio/tests/test_exports.py index e24761fc9a..a5043ac299 100644 --- a/trio/tests/test_exports.py +++ b/trio/tests/test_exports.py @@ -38,7 +38,7 @@ def test_pylint_sees_all_non_underscore_symbols_in_namespace(): @pytest.mark.skipif( sys.version_info.minor > 7 and sys.version_info.releaselevel != 'final', - reason="jedi 3.8-dev not supported" + reason="jedi test for python 3.8-dev not supported" ) def test_jedi_sees_all_completions(): # Test the jedi completion library get all in dir(trio) From 0bd82f7644e7c9242fb0c4d85c78aeec754fddc2 Mon Sep 17 00:00:00 2001 From: Johannes Maria Frank Date: Thu, 23 Aug 2018 10:07:38 +0100 Subject: [PATCH 19/49] Moved to exception handling instead of pytest decorator for skipping test on non supported jedi python version --- trio/tests/test_exports.py | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/trio/tests/test_exports.py b/trio/tests/test_exports.py index a5043ac299..363bc65d04 100644 --- a/trio/tests/test_exports.py +++ b/trio/tests/test_exports.py @@ -36,14 +36,13 @@ def test_pylint_sees_all_non_underscore_symbols_in_namespace(): assert trio_set - ast_set == set([]) -@pytest.mark.skipif( - sys.version_info.minor > 7 and sys.version_info.releaselevel != 'final', - reason="jedi test for python 3.8-dev not supported" -) def test_jedi_sees_all_completions(): # Test the jedi completion library get all in dir(trio) - script = jedi.Script(path=trio.__file__) - completions = script.completions() - trio_set = set([symbol for symbol in dir(trio) if symbol[:2] != '__']) - jedi_set = set([cmp.name for cmp in completions]) - assert trio_set - jedi_set == set([]) + try: + script = jedi.Script(path=trio.__file__) + completions = script.completions() + trio_set = set([symbol for symbol in dir(trio) if symbol[:2] != '__']) + jedi_set = set([cmp.name for cmp in completions]) + assert trio_set - jedi_set == set([]) + except NotImplementedError: + pytest.skip("jedi does not yet support {}".format(sys.version)) From dad3880a6627f3c45648520709fa5a3d13cafe76 Mon Sep 17 00:00:00 2001 From: Johannes Maria Frank Date: Thu, 23 Aug 2018 10:44:53 +0100 Subject: [PATCH 20/49] changed TLD of readthedocs from org to io --- docs/source/conf.py | 2 +- docs/source/contributing.rst | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/source/conf.py b/docs/source/conf.py index e5c1e28d40..1b3374a7b6 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -70,7 +70,7 @@ def setup(app): intersphinx_mapping = { "python": ('https://docs.python.org/3', None), - "outcome": ('https://outcome.readthedocs.org/en/latest/', None), + "outcome": ('https://outcome.readthedocs.io/en/latest/', None), } autodoc_member_order = "bysource" diff --git a/docs/source/contributing.rst b/docs/source/contributing.rst index 8f7567a3a8..ba718f3c97 100644 --- a/docs/source/contributing.rst +++ b/docs/source/contributing.rst @@ -347,7 +347,7 @@ Documentation is stored in ``docs/source/*.rst`` and is rendered using `Sphinx `__ with the `sphinxcontrib-trio `__ extension. Documentation is hosted at `Read the Docs -`__, who take care of automatically +`__, who take care of automatically rebuilding it after every commit. For docstrings, we use `the Google docstring format From f13dd09df9b2ee85880693760d6904790f0f9850 Mon Sep 17 00:00:00 2001 From: Johannes Maria Frank Date: Thu, 23 Aug 2018 14:10:24 +0100 Subject: [PATCH 21/49] Addressed temporary issue with __all__ being still present in _core but not in trio --- trio/__init__.py | 19 +------------------ trio/_core/__init__.py | 1 - trio/_deprecate.py | 2 -- trio/tests/test_exports.py | 6 ++++-- 4 files changed, 5 insertions(+), 23 deletions(-) diff --git a/trio/__init__.py b/trio/__init__.py index bfc0f70999..a4c81bf2cf 100644 --- a/trio/__init__.py +++ b/trio/__init__.py @@ -13,30 +13,13 @@ # This file pulls together the friendly public API, by re-exporting the more # innocuous bits of the _core API + the higher-level tools from trio/*.py. -__all__ = [ - "TrioInternalError", - "RunFinishedError", - "WouldBlock", - "Cancelled", - "ResourceBusyError", - "ClosedResourceError", - "MultiError", - "run", - "open_nursery", - "open_cancel_scope", - "current_effective_deadline", - "TASK_STATUS_IGNORED", - "current_time", - "TaskLocal", -] - from ._version import __version__ from ._core import ( TrioInternalError, RunFinishedError, WouldBlock, Cancelled, ResourceBusyError, ClosedResourceError, MultiError, run, open_nursery, open_cancel_scope, current_effective_deadline, TASK_STATUS_IGNORED, - current_time, TaskLocal, cancel_shielded_checkpoint + current_time, TaskLocal ) from ._timeouts import ( diff --git a/trio/_core/__init__.py b/trio/_core/__init__.py index 0895179426..1efad4d038 100644 --- a/trio/_core/__init__.py +++ b/trio/_core/__init__.py @@ -27,7 +27,6 @@ def _public(fn): "open_cancel_scope", "current_effective_deadline", "TASK_STATUS_IGNORED", - "current_time", "TaskLocal", ] diff --git a/trio/_deprecate.py b/trio/_deprecate.py index 7812623e73..e7323b3057 100644 --- a/trio/_deprecate.py +++ b/trio/_deprecate.py @@ -5,8 +5,6 @@ import attr -__all__ = ["TrioDeprecationWarning"] - # We want our warnings to be visible by default (at least for now), but we # also want it to be possible to override that using the -W switch. AFAICT diff --git a/trio/tests/test_exports.py b/trio/tests/test_exports.py index 363bc65d04..1afd35a0df 100644 --- a/trio/tests/test_exports.py +++ b/trio/tests/test_exports.py @@ -15,11 +15,13 @@ def test_core_is_properly_reexported(): # Each export from _core should be re-exported by exactly one of these # three modules: sources = [trio, trio.hazmat, trio.testing] - for symbol in _core.__all__: + for symbol in dir(_core): + if symbol.startswith('_') or symbol == 'tests': + continue found = 0 for source in sources: if ( - symbol in source.__all__ + symbol in dir(source) and getattr(source, symbol) is getattr(_core, symbol) ): found += 1 From b3e4ff793fa81f293fbd48be912df3eaf410ccf4 Mon Sep 17 00:00:00 2001 From: Johannes Maria Frank Date: Thu, 23 Aug 2018 15:10:08 +0100 Subject: [PATCH 22/49] more changes accepted --- Pipfile | 22 +++ Pipfile.lock | 491 +++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 513 insertions(+) create mode 100644 Pipfile create mode 100644 Pipfile.lock diff --git a/Pipfile b/Pipfile new file mode 100644 index 0000000000..6082dc3ff9 --- /dev/null +++ b/Pipfile @@ -0,0 +1,22 @@ +[[source]] +url = "https://pypi.org/simple" +verify_ssl = true +name = "pypi" + +[packages] +yapf = "==0.22.0" + +[dev-packages] +pylint = "*" +yapf = "==0.22.0" +pytest = ">=3.3" +pytest-cov = "*" +ipython = "*" +trustme = "*" +pytest-faulthandler = "*" +pyOpenSSL = "*" +trio = {editable = true, path = "."} +jedi = "*" + +[requires] +python_version = "3.7" diff --git a/Pipfile.lock b/Pipfile.lock new file mode 100644 index 0000000000..b39af2a027 --- /dev/null +++ b/Pipfile.lock @@ -0,0 +1,491 @@ +{ + "_meta": { + "hash": { + "sha256": "ceea4f9d8c1b48fee8ec3a4355765b3dd5a86373bc781aa4852bd6f45ca69244" + }, + "pipfile-spec": 6, + "requires": { + "python_version": "3.7" + }, + "sources": [ + { + "name": "pypi", + "url": "https://pypi.org/simple", + "verify_ssl": true + } + ] + }, + "default": { + "yapf": { + "hashes": [ + "sha256:6567745f0b6656f9c33a73c56a393071c699e6284a70d793798ab6e3769d25ec", + "sha256:a98a6eacca64d2b920558f4a2f78150db9474de821227e60deaa29f186121c63" + ], + "index": "pypi", + "version": "==0.22.0" + } + }, + "develop": { + "appnope": { + "hashes": [ + "sha256:5b26757dc6f79a3b7dc9fab95359328d5747fcb2409d331ea66d0272b90ab2a0", + "sha256:8b995ffe925347a2138d7ac0fe77155e4311a0ea6d6da4f5128fe4b3cbe5ed71" + ], + "markers": "sys_platform == 'darwin'", + "version": "==0.1.0" + }, + "asn1crypto": { + "hashes": [ + "sha256:2f1adbb7546ed199e3c90ef23ec95c5cf3585bac7d11fb7eb562a3fe89c64e87", + "sha256:9d5c20441baf0cb60a4ac34cc447c6c189024b6b4c6cd7877034f4965c464e49" + ], + "version": "==0.24.0" + }, + "astroid": { + "hashes": [ + "sha256:292fa429e69d60e4161e7612cb7cc8fa3609e2e309f80c224d93a76d5e7b58be", + "sha256:c7013d119ec95eb626f7a2011f0b63d0c9a095df9ad06d8507b37084eada1a8d" + ], + "version": "==2.0.4" + }, + "async-generator": { + "hashes": [ + "sha256:01c7bf666359b4967d2cda0000cc2e4af16a0ae098cbffcb8472fb9e8ad6585b", + "sha256:6ebb3d106c12920aaae42ccb6f787ef5eefdcdd166ea3d628fa8476abe712144" + ], + "markers": "python_version >= '3.5'", + "version": "==1.10" + }, + "atomicwrites": { + "hashes": [ + "sha256:240831ea22da9ab882b551b31d4225591e5e447a68c5e188db5b89ca1d487585", + "sha256:a24da68318b08ac9c9c45029f4a10371ab5b20e4226738e150e6e7c571630ae6" + ], + "version": "==1.1.5" + }, + "attrs": { + "hashes": [ + "sha256:4b90b09eeeb9b88c35bc642cbac057e45a5fd85367b985bd2809c62b7b939265", + "sha256:e0d0eb91441a3b53dab4d9b743eafc1ac44476296a2053b6ca3af0b139faf87b" + ], + "version": "==18.1.0" + }, + "backcall": { + "hashes": [ + "sha256:38ecd85be2c1e78f77fd91700c76e14667dc21e2713b63876c0eb901196e01e4", + "sha256:bbbf4b1e5cd2bdb08f915895b51081c041bac22394fdfcfdfbe9f14b77c08bf2" + ], + "version": "==0.1.0" + }, + "cffi": { + "hashes": [ + "sha256:151b7eefd035c56b2b2e1eb9963c90c6302dc15fbd8c1c0a83a163ff2c7d7743", + "sha256:1553d1e99f035ace1c0544050622b7bc963374a00c467edafac50ad7bd276aef", + "sha256:1b0493c091a1898f1136e3f4f991a784437fac3673780ff9de3bcf46c80b6b50", + "sha256:2ba8a45822b7aee805ab49abfe7eec16b90587f7f26df20c71dd89e45a97076f", + "sha256:3bb6bd7266598f318063e584378b8e27c67de998a43362e8fce664c54ee52d30", + "sha256:3c85641778460581c42924384f5e68076d724ceac0f267d66c757f7535069c93", + "sha256:3eb6434197633b7748cea30bf0ba9f66727cdce45117a712b29a443943733257", + "sha256:495c5c2d43bf6cebe0178eb3e88f9c4aa48d8934aa6e3cddb865c058da76756b", + "sha256:4c91af6e967c2015729d3e69c2e51d92f9898c330d6a851bf8f121236f3defd3", + "sha256:57b2533356cb2d8fac1555815929f7f5f14d68ac77b085d2326b571310f34f6e", + "sha256:770f3782b31f50b68627e22f91cb182c48c47c02eb405fd689472aa7b7aa16dc", + "sha256:79f9b6f7c46ae1f8ded75f68cf8ad50e5729ed4d590c74840471fc2823457d04", + "sha256:7a33145e04d44ce95bcd71e522b478d282ad0eafaf34fe1ec5bbd73e662f22b6", + "sha256:857959354ae3a6fa3da6651b966d13b0a8bed6bbc87a0de7b38a549db1d2a359", + "sha256:87f37fe5130574ff76c17cab61e7d2538a16f843bb7bca8ebbc4b12de3078596", + "sha256:95d5251e4b5ca00061f9d9f3d6fe537247e145a8524ae9fd30a2f8fbce993b5b", + "sha256:9d1d3e63a4afdc29bd76ce6aa9d58c771cd1599fbba8cf5057e7860b203710dd", + "sha256:a36c5c154f9d42ec176e6e620cb0dd275744aa1d804786a71ac37dc3661a5e95", + "sha256:a6a5cb8809091ec9ac03edde9304b3ad82ad4466333432b16d78ef40e0cce0d5", + "sha256:ae5e35a2c189d397b91034642cb0eab0e346f776ec2eb44a49a459e6615d6e2e", + "sha256:b0f7d4a3df8f06cf49f9f121bead236e328074de6449866515cea4907bbc63d6", + "sha256:b75110fb114fa366b29a027d0c9be3709579602ae111ff61674d28c93606acca", + "sha256:ba5e697569f84b13640c9e193170e89c13c6244c24400fc57e88724ef610cd31", + "sha256:be2a9b390f77fd7676d80bc3cdc4f8edb940d8c198ed2d8c0be1319018c778e1", + "sha256:ca1bd81f40adc59011f58159e4aa6445fc585a32bb8ac9badf7a2c1aa23822f2", + "sha256:d5d8555d9bfc3f02385c1c37e9f998e2011f0db4f90e250e5bc0c0a85a813085", + "sha256:e55e22ac0a30023426564b1059b035973ec82186ddddbac867078435801c7801", + "sha256:e90f17980e6ab0f3c2f3730e56d1fe9bcba1891eeea58966e89d352492cc74f4", + "sha256:ecbb7b01409e9b782df5ded849c178a0aa7c906cf8c5a67368047daab282b184", + "sha256:ed01918d545a38998bfa5902c7c00e0fee90e957ce036a4000a88e3fe2264917", + "sha256:edabd457cd23a02965166026fd9bfd196f4324fe6032e866d0f3bd0301cd486f", + "sha256:fdf1c1dc5bafc32bc5d08b054f94d659422b05aba244d6be4ddc1c72d9aa70fb" + ], + "version": "==1.11.5" + }, + "coverage": { + "hashes": [ + "sha256:03481e81d558d30d230bc12999e3edffe392d244349a90f4ef9b88425fac74ba", + "sha256:0b136648de27201056c1869a6c0d4e23f464750fd9a9ba9750b8336a244429ed", + "sha256:10a46017fef60e16694a30627319f38a2b9b52e90182dddb6e37dcdab0f4bf95", + "sha256:198626739a79b09fa0a2f06e083ffd12eb55449b5f8bfdbeed1df4910b2ca640", + "sha256:23d341cdd4a0371820eb2b0bd6b88f5003a7438bbedb33688cd33b8eae59affd", + "sha256:28b2191e7283f4f3568962e373b47ef7f0392993bb6660d079c62bd50fe9d162", + "sha256:2a5b73210bad5279ddb558d9a2bfedc7f4bf6ad7f3c988641d83c40293deaec1", + "sha256:2eb564bbf7816a9d68dd3369a510be3327f1c618d2357fa6b1216994c2e3d508", + "sha256:337ded681dd2ef9ca04ef5d93cfc87e52e09db2594c296b4a0a3662cb1b41249", + "sha256:3a2184c6d797a125dca8367878d3b9a178b6fdd05fdc2d35d758c3006a1cd694", + "sha256:3c79a6f7b95751cdebcd9037e4d06f8d5a9b60e4ed0cd231342aa8ad7124882a", + "sha256:3d72c20bd105022d29b14a7d628462ebdc61de2f303322c0212a054352f3b287", + "sha256:3eb42bf89a6be7deb64116dd1cc4b08171734d721e7a7e57ad64cc4ef29ed2f1", + "sha256:4635a184d0bbe537aa185a34193898eee409332a8ccb27eea36f262566585000", + "sha256:56e448f051a201c5ebbaa86a5efd0ca90d327204d8b059ab25ad0f35fbfd79f1", + "sha256:5a13ea7911ff5e1796b6d5e4fbbf6952381a611209b736d48e675c2756f3f74e", + "sha256:69bf008a06b76619d3c3f3b1983f5145c75a305a0fea513aca094cae5c40a8f5", + "sha256:6bc583dc18d5979dc0f6cec26a8603129de0304d5ae1f17e57a12834e7235062", + "sha256:701cd6093d63e6b8ad7009d8a92425428bc4d6e7ab8d75efbb665c806c1d79ba", + "sha256:7608a3dd5d73cb06c531b8925e0ef8d3de31fed2544a7de6c63960a1e73ea4bc", + "sha256:76ecd006d1d8f739430ec50cc872889af1f9c1b6b8f48e29941814b09b0fd3cc", + "sha256:7aa36d2b844a3e4a4b356708d79fd2c260281a7390d678a10b91ca595ddc9e99", + "sha256:7d3f553904b0c5c016d1dad058a7554c7ac4c91a789fca496e7d8347ad040653", + "sha256:7e1fe19bd6dce69d9fd159d8e4a80a8f52101380d5d3a4d374b6d3eae0e5de9c", + "sha256:8c3cb8c35ec4d9506979b4cf90ee9918bc2e49f84189d9bf5c36c0c1119c6558", + "sha256:9d6dd10d49e01571bf6e147d3b505141ffc093a06756c60b053a859cb2128b1f", + "sha256:be6cfcd8053d13f5f5eeb284aa8a814220c3da1b0078fa859011c7fffd86dab9", + "sha256:c1bb572fab8208c400adaf06a8133ac0712179a334c09224fb11393e920abcdd", + "sha256:de4418dadaa1c01d497e539210cb6baa015965526ff5afc078c57ca69160108d", + "sha256:e05cb4d9aad6233d67e0541caa7e511fa4047ed7750ec2510d466e806e0255d6", + "sha256:f3f501f345f24383c0000395b26b726e46758b71393267aeae0bd36f8b3ade80" + ], + "markers": "python_version != '3.2.*' and python_version != '3.0.*' and python_version < '4' and python_version >= '2.6' and python_version != '3.1.*'", + "version": "==4.5.1" + }, + "cryptography": { + "hashes": [ + "sha256:02602e1672b62e803e08617ec286041cc453e8d43f093a5f4162095506bc0beb", + "sha256:10b48e848e1edb93c1d3b797c83c72b4c387ab0eb4330aaa26da8049a6cbede0", + "sha256:17db09db9d7c5de130023657be42689d1a5f60502a14f6f745f6f65a6b8195c0", + "sha256:227da3a896df1106b1a69b1e319dce218fa04395e8cc78be7e31ca94c21254bc", + "sha256:2cbaa03ac677db6c821dac3f4cdfd1461a32d0615847eedbb0df54bb7802e1f7", + "sha256:31db8febfc768e4b4bd826750a70c79c99ea423f4697d1dab764eb9f9f849519", + "sha256:4a510d268e55e2e067715d728e4ca6cd26a8e9f1f3d174faf88e6f2cb6b6c395", + "sha256:6a88d9004310a198c474d8a822ee96a6dd6c01efe66facdf17cb692512ae5bc0", + "sha256:76936ec70a9b72eb8c58314c38c55a0336a2b36de0c7ee8fb874a4547cadbd39", + "sha256:7e3b4aecc4040928efa8a7cdaf074e868af32c58ffc9bb77e7bf2c1a16783286", + "sha256:8168bcb08403ef144ff1fb880d416f49e2728101d02aaadfe9645883222c0aa5", + "sha256:8229ceb79a1792823d87779959184a1bf95768e9248c93ae9f97c7a2f60376a1", + "sha256:8a19e9f2fe69f6a44a5c156968d9fc8df56d09798d0c6a34ccc373bb186cee86", + "sha256:8d10113ca826a4c29d5b85b2c4e045ffa8bad74fb525ee0eceb1d38d4c70dfd6", + "sha256:be495b8ec5a939a7605274b6e59fbc35e76f5ad814ae010eb679529671c9e119", + "sha256:dc2d3f3b1548f4d11786616cf0f4415e25b0fbecb8a1d2cd8c07568f13fdde38", + "sha256:e4aecdd9d5a3d06c337894c9a6e2961898d3f64fe54ca920a72234a3de0f9cb3", + "sha256:e79ab4485b99eacb2166f3212218dd858258f374855e1568f728462b0e6ee0d9", + "sha256:f995d3667301e1754c57b04e0bae6f0fa9d710697a9f8d6712e8cca02550910f" + ], + "version": "==2.3.1" + }, + "decorator": { + "hashes": [ + "sha256:2c51dff8ef3c447388fe5e4453d24a2bf128d3a4c32af3fabef1f01c6851ab82", + "sha256:c39efa13fbdeb4506c476c9b3babf6a718da943dab7811c206005a4a956c080c" + ], + "version": "==4.3.0" + }, + "idna": { + "hashes": [ + "sha256:156a6814fb5ac1fc6850fb002e0852d56c0c8d2531923a51032d1b70760e186e", + "sha256:684a38a6f903c1d71d6d5fac066b58d7768af4de2b832e426ec79c30daa94a16" + ], + "version": "==2.7" + }, + "ipython": { + "hashes": [ + "sha256:007dcd929c14631f83daff35df0147ea51d1af420da303fd078343878bd5fb62", + "sha256:b0f2ef9eada4a68ef63ee10b6dde4f35c840035c50fd24265f8052c98947d5a4" + ], + "index": "pypi", + "version": "==6.5.0" + }, + "ipython-genutils": { + "hashes": [ + "sha256:72dd37233799e619666c9f639a9da83c34013a73e8bbc79a7a6348d93c61fab8", + "sha256:eb2e116e75ecef9d4d228fdc66af54269afa26ab4463042e33785b887c628ba8" + ], + "version": "==0.2.0" + }, + "isort": { + "hashes": [ + "sha256:1153601da39a25b14ddc54955dbbacbb6b2d19135386699e2ad58517953b34af", + "sha256:b9c40e9750f3d77e6e4d441d8b0266cf555e7cdabdcff33c4fd06366ca761ef8", + "sha256:ec9ef8f4a9bc6f71eec99e1806bfa2de401650d996c59330782b89a5555c1497" + ], + "markers": "python_version != '3.2.*' and python_version != '3.1.*' and python_version != '3.0.*' and python_version != '3.3.*' and python_version >= '2.7'", + "version": "==4.3.4" + }, + "jedi": { + "hashes": [ + "sha256:b409ed0f6913a701ed474a614a3bb46e6953639033e31f769ca7581da5bd1ec1", + "sha256:c254b135fb39ad76e78d4d8f92765ebc9bf92cbc76f49e97ade1d5f5121e1f6f" + ], + "index": "pypi", + "version": "==0.12.1" + }, + "lazy-object-proxy": { + "hashes": [ + "sha256:0ce34342b419bd8f018e6666bfef729aec3edf62345a53b537a4dcc115746a33", + "sha256:1b668120716eb7ee21d8a38815e5eb3bb8211117d9a90b0f8e21722c0758cc39", + "sha256:209615b0fe4624d79e50220ce3310ca1a9445fd8e6d3572a896e7f9146bbf019", + "sha256:27bf62cb2b1a2068d443ff7097ee33393f8483b570b475db8ebf7e1cba64f088", + "sha256:27ea6fd1c02dcc78172a82fc37fcc0992a94e4cecf53cb6d73f11749825bd98b", + "sha256:2c1b21b44ac9beb0fc848d3993924147ba45c4ebc24be19825e57aabbe74a99e", + "sha256:2df72ab12046a3496a92476020a1a0abf78b2a7db9ff4dc2036b8dd980203ae6", + "sha256:320ffd3de9699d3892048baee45ebfbbf9388a7d65d832d7e580243ade426d2b", + "sha256:50e3b9a464d5d08cc5227413db0d1c4707b6172e4d4d915c1c70e4de0bbff1f5", + "sha256:5276db7ff62bb7b52f77f1f51ed58850e315154249aceb42e7f4c611f0f847ff", + "sha256:61a6cf00dcb1a7f0c773ed4acc509cb636af2d6337a08f362413c76b2b47a8dd", + "sha256:6ae6c4cb59f199d8827c5a07546b2ab7e85d262acaccaacd49b62f53f7c456f7", + "sha256:7661d401d60d8bf15bb5da39e4dd72f5d764c5aff5a86ef52a042506e3e970ff", + "sha256:7bd527f36a605c914efca5d3d014170b2cb184723e423d26b1fb2fd9108e264d", + "sha256:7cb54db3535c8686ea12e9535eb087d32421184eacc6939ef15ef50f83a5e7e2", + "sha256:7f3a2d740291f7f2c111d86a1c4851b70fb000a6c8883a59660d95ad57b9df35", + "sha256:81304b7d8e9c824d058087dcb89144842c8e0dea6d281c031f59f0acf66963d4", + "sha256:933947e8b4fbe617a51528b09851685138b49d511af0b6c0da2539115d6d4514", + "sha256:94223d7f060301b3a8c09c9b3bc3294b56b2188e7d8179c762a1cda72c979252", + "sha256:ab3ca49afcb47058393b0122428358d2fbe0408cf99f1b58b295cfeb4ed39109", + "sha256:bd6292f565ca46dee4e737ebcc20742e3b5be2b01556dafe169f6c65d088875f", + "sha256:cb924aa3e4a3fb644d0c463cad5bc2572649a6a3f68a7f8e4fbe44aaa6d77e4c", + "sha256:d0fc7a286feac9077ec52a927fc9fe8fe2fabab95426722be4c953c9a8bede92", + "sha256:ddc34786490a6e4ec0a855d401034cbd1242ef186c20d79d2166d6a4bd449577", + "sha256:e34b155e36fa9da7e1b7c738ed7767fc9491a62ec6af70fe9da4a057759edc2d", + "sha256:e5b9e8f6bda48460b7b143c3821b21b452cb3a835e6bbd5dd33aa0c8d3f5137d", + "sha256:e81ebf6c5ee9684be8f2c87563880f93eedd56dd2b6146d8a725b50b7e5adb0f", + "sha256:eb91be369f945f10d3a49f5f9be8b3d0b93a4c2be8f8a5b83b0571b8123e0a7a", + "sha256:f460d1ceb0e4a5dcb2a652db0904224f367c9b3c1470d5a7683c0480e582468b" + ], + "version": "==1.3.1" + }, + "mccabe": { + "hashes": [ + "sha256:ab8a6258860da4b6677da4bd2fe5dc2c659cff31b3ee4f7f5d64e79735b80d42", + "sha256:dd8d182285a0fe56bace7f45b5e7d1a6ebcbf524e8f3bd87eb0f125271b8831f" + ], + "version": "==0.6.1" + }, + "more-itertools": { + "hashes": [ + "sha256:c187a73da93e7a8acc0001572aebc7e3c69daf7bf6881a2cea10650bd4420092", + "sha256:c476b5d3a34e12d40130bc2f935028b5f636df8f372dc2c1c01dc19681b2039e", + "sha256:fcbfeaea0be121980e15bc97b3817b5202ca73d0eae185b4550cbfce2a3ebb3d" + ], + "version": "==4.3.0" + }, + "outcome": { + "hashes": [ + "sha256:d54e5d469088af53022f64a753b288d6bab0fe42e513eb7146137d560e2e516e", + "sha256:de68deb145ace3b9217a9461d6bfb4f720fdf01f77bfd65936906d8301bd08d2" + ], + "version": "==0.1.0" + }, + "parso": { + "hashes": [ + "sha256:35704a43a3c113cce4de228ddb39aab374b8004f4f2407d070b6a2ca784ce8a2", + "sha256:895c63e93b94ac1e1690f5fdd40b65f07c8171e3e53cbd7793b5b96c0e0a7f24" + ], + "version": "==0.3.1" + }, + "pexpect": { + "hashes": [ + "sha256:2a8e88259839571d1251d278476f3eec5db26deb73a70be5ed5dc5435e418aba", + "sha256:3fbd41d4caf27fa4a377bfd16fef87271099463e6fa73e92a52f92dfee5d425b" + ], + "markers": "sys_platform != 'win32'", + "version": "==4.6.0" + }, + "pickleshare": { + "hashes": [ + "sha256:84a9257227dfdd6fe1b4be1319096c20eb85ff1e82c7932f36efccfe1b09737b", + "sha256:c9a2541f25aeabc070f12f452e1f2a8eae2abd51e1cd19e8430402bdf4c1d8b5" + ], + "version": "==0.7.4" + }, + "pluggy": { + "hashes": [ + "sha256:6e3836e39f4d36ae72840833db137f7b7d35105079aee6ec4a62d9f80d594dd1", + "sha256:95eb8364a4708392bae89035f45341871286a333f749c3141c20573d2b3876e1" + ], + "markers": "python_version != '3.0.*' and python_version >= '2.7' and python_version != '3.1.*' and python_version != '3.2.*' and python_version != '3.3.*'", + "version": "==0.7.1" + }, + "prompt-toolkit": { + "hashes": [ + "sha256:1df952620eccb399c53ebb359cc7d9a8d3a9538cb34c5a1344bdbeb29fbcc381", + "sha256:3f473ae040ddaa52b52f97f6b4a493cfa9f5920c255a12dc56a7d34397a398a4", + "sha256:858588f1983ca497f1cf4ffde01d978a3ea02b01c8a26a8bbc5cd2e66d816917" + ], + "version": "==1.0.15" + }, + "ptyprocess": { + "hashes": [ + "sha256:923f299cc5ad920c68f2bc0bc98b75b9f838b93b599941a6b63ddbc2476394c0", + "sha256:d7cc528d76e76342423ca640335bd3633420dc1366f258cb31d05e865ef5ca1f" + ], + "version": "==0.6.0" + }, + "py": { + "hashes": [ + "sha256:3fd59af7435864e1a243790d322d763925431213b6b8529c6ca71081ace3bbf7", + "sha256:e31fb2767eb657cbde86c454f02e99cb846d3cd9d61b318525140214fdc0e98e" + ], + "markers": "python_version != '3.1.*' and python_version >= '2.7' and python_version != '3.3.*' and python_version != '3.0.*' and python_version != '3.2.*'", + "version": "==1.5.4" + }, + "pycparser": { + "hashes": [ + "sha256:99a8ca03e29851d96616ad0404b4aad7d9ee16f25c9f9708a11faf2810f7b226" + ], + "version": "==2.18" + }, + "pygments": { + "hashes": [ + "sha256:78f3f434bcc5d6ee09020f92ba487f95ba50f1e3ef83ae96b9d5ffa1bab25c5d", + "sha256:dbae1046def0efb574852fab9e90209b23f556367b5a320c0bcb871c77c3e8cc" + ], + "version": "==2.2.0" + }, + "pylint": { + "hashes": [ + "sha256:1d6d3622c94b4887115fe5204982eee66fdd8a951cf98635ee5caee6ec98c3ec", + "sha256:31142f764d2a7cd41df5196f9933b12b7ee55e73ef12204b648ad7e556c119fb" + ], + "index": "pypi", + "version": "==2.1.1" + }, + "pyopenssl": { + "hashes": [ + "sha256:26ff56a6b5ecaf3a2a59f132681e2a80afcc76b4f902f612f518f92c2a1bf854", + "sha256:6488f1423b00f73b7ad5167885312bb0ce410d3312eb212393795b53c8caa580" + ], + "index": "pypi", + "version": "==18.0.0" + }, + "pytest": { + "hashes": [ + "sha256:3459a123ad5532852d36f6f4501dfe1acf4af1dd9541834a164666aa40395b02", + "sha256:96bfd45dbe863b447a3054145cd78a9d7f31475d2bce6111b133c0cc4f305118" + ], + "index": "pypi", + "version": "==3.7.2" + }, + "pytest-cov": { + "hashes": [ + "sha256:03aa752cf11db41d281ea1d807d954c4eda35cfa1b21d6971966cc041bbf6e2d", + "sha256:890fe5565400902b0c78b5357004aab1c814115894f4f21370e2433256a3eeec" + ], + "index": "pypi", + "version": "==2.5.1" + }, + "pytest-faulthandler": { + "hashes": [ + "sha256:461351d67a8f09cd2aa8b343b50ce58c301c8c206fcbf7483ee17c109d6a5ddb", + "sha256:bf8634c3fd6309ef786ec03b913a5366163fdb094ebcfdebc35626400d790e0d" + ], + "index": "pypi", + "version": "==1.5.0" + }, + "simplegeneric": { + "hashes": [ + "sha256:dc972e06094b9af5b855b3df4a646395e43d1c9d0d39ed345b7393560d0b9173" + ], + "version": "==0.8.1" + }, + "six": { + "hashes": [ + "sha256:70e8a77beed4562e7f14fe23a786b54f6296e34344c23bc42f07b15018ff98e9", + "sha256:832dc0e10feb1aa2c68dcc57dbb658f1c7e65b9b61af69048abc87a2db00a0eb" + ], + "version": "==1.11.0" + }, + "sniffio": { + "hashes": [ + "sha256:2e9b81429e3b7c9e119fcee2673ee3be3229982adc68b3f59317863aba05ebb7", + "sha256:afb4997584a920e6e378a81ded2b3e71a696b85a68c4bfbe4dadf1ba57a9ef45" + ], + "markers": "python_version >= '3.5'", + "version": "==1.0.0" + }, + "sortedcontainers": { + "hashes": [ + "sha256:607294c6e291a270948420f7ffa1fb3ed47384a4c08db6d1e9c92d08a6981982", + "sha256:ef38b128302ee8f65d81e31c9d8fbf10d81df4d6d06c9c0b66f01d33747525bb" + ], + "version": "==2.0.4" + }, + "traitlets": { + "hashes": [ + "sha256:9c4bd2d267b7153df9152698efb1050a5d84982d3384a37b2c1f7723ba3e7835", + "sha256:c6cb5e6f57c5a9bdaa40fa71ce7b4af30298fbab9ece9815b5d995ab6217c7d9" + ], + "version": "==4.3.2" + }, + "trio": { + "editable": true, + "path": "." + }, + "trustme": { + "hashes": [ + "sha256:76339d3471ddd32db574beace1f55dc270c1e5b6857ed363a9e37cf82f92bffa", + "sha256:f32ba9b880464b9ae5e624b52cf06ed191d69d405ef957b6fe0e30434dde2588" + ], + "index": "pypi", + "version": "==0.4.0" + }, + "typed-ast": { + "hashes": [ + "sha256:0948004fa228ae071054f5208840a1e88747a357ec1101c17217bfe99b299d58", + "sha256:10703d3cec8dcd9eef5a630a04056bbc898abc19bac5691612acba7d1325b66d", + "sha256:1f6c4bd0bdc0f14246fd41262df7dfc018d65bb05f6e16390b7ea26ca454a291", + "sha256:25d8feefe27eb0303b73545416b13d108c6067b846b543738a25ff304824ed9a", + "sha256:29464a177d56e4e055b5f7b629935af7f49c196be47528cc94e0a7bf83fbc2b9", + "sha256:2e214b72168ea0275efd6c884b114ab42e316de3ffa125b267e732ed2abda892", + "sha256:3e0d5e48e3a23e9a4d1a9f698e32a542a4a288c871d33ed8df1b092a40f3a0f9", + "sha256:519425deca5c2b2bdac49f77b2c5625781abbaf9a809d727d3a5596b30bb4ded", + "sha256:57fe287f0cdd9ceaf69e7b71a2e94a24b5d268b35df251a88fef5cc241bf73aa", + "sha256:668d0cec391d9aed1c6a388b0d5b97cd22e6073eaa5fbaa6d2946603b4871efe", + "sha256:68ba70684990f59497680ff90d18e756a47bf4863c604098f10de9716b2c0bdd", + "sha256:6de012d2b166fe7a4cdf505eee3aaa12192f7ba365beeefaca4ec10e31241a85", + "sha256:79b91ebe5a28d349b6d0d323023350133e927b4de5b651a8aa2db69c761420c6", + "sha256:8550177fa5d4c1f09b5e5f524411c44633c80ec69b24e0e98906dd761941ca46", + "sha256:898f818399cafcdb93cbbe15fc83a33d05f18e29fb498ddc09b0214cdfc7cd51", + "sha256:94b091dc0f19291adcb279a108f5d38de2430411068b219f41b343c03b28fb1f", + "sha256:a26863198902cda15ab4503991e8cf1ca874219e0118cbf07c126bce7c4db129", + "sha256:a8034021801bc0440f2e027c354b4eafd95891b573e12ff0418dec385c76785c", + "sha256:bc978ac17468fe868ee589c795d06777f75496b1ed576d308002c8a5756fb9ea", + "sha256:c05b41bc1deade9f90ddc5d988fe506208019ebba9f2578c622516fd201f5863", + "sha256:c9b060bd1e5a26ab6e8267fd46fc9e02b54eb15fffb16d112d4c7b1c12987559", + "sha256:edb04bdd45bfd76c8292c4d9654568efaedf76fe78eb246dde69bdb13b2dad87", + "sha256:f19f2a4f547505fe9072e15f6f4ae714af51b5a681a97f187971f50c283193b6" + ], + "version": "==1.1.0" + }, + "typing": { + "hashes": [ + "sha256:3a887b021a77b292e151afb75323dea88a7bc1b3dfa92176cff8e44c8b68bddf", + "sha256:b2c689d54e1144bbcfd191b0832980a21c2dbcf7b5ff7a66248a60c90e951eb8", + "sha256:d400a9344254803a2368533e4533a4200d21eb7b6b729c173bc38201a74db3f2" + ], + "version": "==3.6.4" + }, + "wcwidth": { + "hashes": [ + "sha256:3df37372226d6e63e1b1e1eda15c594bca98a22d33a23832a90998faa96bc65e", + "sha256:f4ebe71925af7b40a864553f761ed559b43544f8f71746c2d756c7fe788ade7c" + ], + "version": "==0.1.7" + }, + "wrapt": { + "hashes": [ + "sha256:d4d560d479f2c21e1b5443bbd15fe7ec4b37fe7e53d335d3b9b0a7b1226fe3c6" + ], + "version": "==1.10.11" + }, + "yapf": { + "hashes": [ + "sha256:6567745f0b6656f9c33a73c56a393071c699e6284a70d793798ab6e3769d25ec", + "sha256:a98a6eacca64d2b920558f4a2f78150db9474de821227e60deaa29f186121c63" + ], + "index": "pypi", + "version": "==0.22.0" + } + } +} From 90ae08021c90bedf0d721a464e88793f792e8e5f Mon Sep 17 00:00:00 2001 From: Johannes Maria Frank Date: Tue, 7 Aug 2018 15:29:35 +0100 Subject: [PATCH 23/49] Changed import of reexport to explicit and bumped version --- trio/_version.py | 3 --- 1 file changed, 3 deletions(-) delete mode 100644 trio/_version.py diff --git a/trio/_version.py b/trio/_version.py deleted file mode 100644 index dff3253441..0000000000 --- a/trio/_version.py +++ /dev/null @@ -1,3 +0,0 @@ -# This file is imported from __init__.py and exec'd from setup.py - -__version__ = "0.6.0+dev" From a3cb3a46eb939b2c1b5b70ee201504898c82a61a Mon Sep 17 00:00:00 2001 From: Johannes Maria Frank Date: Thu, 9 Aug 2018 16:44:14 +0100 Subject: [PATCH 24/49] Formatting with yapf applied.\nVersion reverted to orig version 0.5.0+dev\nPipenv files added to gitignore --- trio/_version.py | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 trio/_version.py diff --git a/trio/_version.py b/trio/_version.py new file mode 100644 index 0000000000..0a9521951b --- /dev/null +++ b/trio/_version.py @@ -0,0 +1,3 @@ +# This file is imported from __init__.py and exec'd from setup.py + +__version__ = "0.5.0+dev" From 5c6f1b3eb88d9aa7ec9ceef8681a10f0a6cfd169 Mon Sep 17 00:00:00 2001 From: Johannes Maria Frank Date: Fri, 17 Aug 2018 02:28:37 +0100 Subject: [PATCH 25/49] Added tests for pylint and jedi --- trio/tests/test_exports.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/trio/tests/test_exports.py b/trio/tests/test_exports.py index 1afd35a0df..fdb5bb347f 100644 --- a/trio/tests/test_exports.py +++ b/trio/tests/test_exports.py @@ -2,9 +2,12 @@ import trio.testing import jedi +<<<<<<< HEAD import os import pytest import sys +======= +>>>>>>> Added tests for pylint and jedi from pylint.lint import PyLinter From a90563cc3d3b4dfdf9786df3f8b32a9aeb745f16 Mon Sep 17 00:00:00 2001 From: Johannes Maria Frank Date: Fri, 17 Aug 2018 10:57:27 +0100 Subject: [PATCH 26/49] Fixed path to be POSIX and Windows path --- trio/tests/test_exports.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/trio/tests/test_exports.py b/trio/tests/test_exports.py index fdb5bb347f..1afd35a0df 100644 --- a/trio/tests/test_exports.py +++ b/trio/tests/test_exports.py @@ -2,12 +2,9 @@ import trio.testing import jedi -<<<<<<< HEAD import os import pytest import sys -======= ->>>>>>> Added tests for pylint and jedi from pylint.lint import PyLinter From 057ed5bf876fc090712c0768b8634fc4e5ecdd23 Mon Sep 17 00:00:00 2001 From: Johannes Maria Frank Date: Sat, 18 Aug 2018 13:58:54 +0100 Subject: [PATCH 27/49] Module names for _core and _run are currently broken --- trio/__init__.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/trio/__init__.py b/trio/__init__.py index a4c81bf2cf..27020a0b8b 100644 --- a/trio/__init__.py +++ b/trio/__init__.py @@ -13,6 +13,8 @@ # This file pulls together the friendly public API, by re-exporting the more # innocuous bits of the _core API + the higher-level tools from trio/*.py. +__all__ = [] + from ._version import __version__ from ._core import ( From 61c05ceb7fdcda56c7cd7dea0a93f4a89d79012b Mon Sep 17 00:00:00 2001 From: Johannes Maria Frank Date: Thu, 23 Aug 2018 00:02:32 +0100 Subject: [PATCH 28/49] replaced __all__ with namespace iteration and added pylint and jedi test --- trio/__init__.py | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/trio/__init__.py b/trio/__init__.py index 27020a0b8b..8539153d8d 100644 --- a/trio/__init__.py +++ b/trio/__init__.py @@ -13,7 +13,22 @@ # This file pulls together the friendly public API, by re-exporting the more # innocuous bits of the _core API + the higher-level tools from trio/*.py. -__all__ = [] +__all__ = [ + "TrioInternalError", + "RunFinishedError", + "WouldBlock", + "Cancelled", + "ResourceBusyError", + "ClosedResourceError", + "MultiError", + "run", + "open_nursery", + "open_cancel_scope", + "current_effective_deadline", + "TASK_STATUS_IGNORED", + "current_time", + "TaskLocal", +] from ._version import __version__ From 19ff27eda38baf4ab1c7dcc2146e11b0b432c5eb Mon Sep 17 00:00:00 2001 From: Johannes Maria Frank Date: Thu, 23 Aug 2018 15:14:53 +0100 Subject: [PATCH 29/49] rebasing --- trio/_version.py | 3 --- 1 file changed, 3 deletions(-) delete mode 100644 trio/_version.py diff --git a/trio/_version.py b/trio/_version.py deleted file mode 100644 index 0a9521951b..0000000000 --- a/trio/_version.py +++ /dev/null @@ -1,3 +0,0 @@ -# This file is imported from __init__.py and exec'd from setup.py - -__version__ = "0.5.0+dev" From cb05c867e739891f6d6f67912ac62e1da102ce4c Mon Sep 17 00:00:00 2001 From: Johannes Maria Frank Date: Tue, 7 Aug 2018 15:29:35 +0100 Subject: [PATCH 30/49] Changed import of reexport to explicit and bumped version --- .gitignore | 65 ------------------------------------------------------ 1 file changed, 65 deletions(-) delete mode 100644 .gitignore diff --git a/.gitignore b/.gitignore deleted file mode 100644 index cdf907c8d7..0000000000 --- a/.gitignore +++ /dev/null @@ -1,65 +0,0 @@ -# Project-specific generated files -docs/build/ - -bench/results/ -bench/env/ -bench/trio/ - -# Byte-compiled / optimized / DLL files / editor temp files -__pycache__/ -*.py[cod] -*~ -\#* -.#* -*.swp - -# C extensions -*.so - -# Distribution / packaging -.Python -/build/ -/develop-eggs/ -/dist/ -/eggs/ -/lib/ -/lib64/ -/parts/ -/sdist/ -/var/ -*.egg-info/ -.installed.cfg -*.egg -/.pybuild - -# Installer logs -pip-log.txt - -# Unit test / coverage reports -htmlcov/ -.tox/ -.venv/ -.coverage -.coverage.* -.cache -.pytest_cache/ -nosetests.xml -coverage.xml - -# Translations -*.mo - -# Mr Developer -.mr.developer.cfg -.project -.pydevproject - -# Rope -.ropeproject - -# Django stuff: -*.log -*.pot - -# Sphinx documentation -doc/_build/ From 54f07defa9a7dc71ff20c4c43ff82ec608ac7b26 Mon Sep 17 00:00:00 2001 From: Johannes Maria Frank Date: Thu, 23 Aug 2018 00:17:17 +0100 Subject: [PATCH 31/49] rebase continuation --- .gitignore | 68 ++++++++++++++++++++++++++++++++++++++++++++++++ trio/_version.py | 3 +++ 2 files changed, 71 insertions(+) create mode 100644 .gitignore create mode 100644 trio/_version.py diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000000..e32d51b295 --- /dev/null +++ b/.gitignore @@ -0,0 +1,68 @@ +# Project-specific generated files +docs/build/ + +bench/results/ +bench/env/ +bench/trio/ + +# Byte-compiled / optimized / DLL files / editor temp files +__pycache__/ +*.py[cod] +*~ +\#* +.#* +*.swp + +# C extensions +*.so + +# Distribution / packaging +.Python +/build/ +/develop-eggs/ +/dist/ +/eggs/ +/lib/ +/lib64/ +/parts/ +/sdist/ +/var/ +*.egg-info/ +.installed.cfg +*.egg +/.pybuild + +# Installer logs +pip-log.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.venv/ +.coverage +.coverage.* +.cache +.pytest_cache/ +nosetests.xml +coverage.xml + +# Translations +*.mo + +# Mr Developer +.mr.developer.cfg +.project +.pydevproject + +# Rope +.ropeproject + +# Django stuff: +*.log +*.pot + +# Sphinx documentation +doc/_build/ +.vscode/ +Pipfile +Pipfile.lock diff --git a/trio/_version.py b/trio/_version.py new file mode 100644 index 0000000000..dff3253441 --- /dev/null +++ b/trio/_version.py @@ -0,0 +1,3 @@ +# This file is imported from __init__.py and exec'd from setup.py + +__version__ = "0.6.0+dev" From 933cdd0dca727bdf847c0e7b8f0063b8c80d0688 Mon Sep 17 00:00:00 2001 From: Johannes Maria Frank Date: Fri, 17 Aug 2018 02:28:37 +0100 Subject: [PATCH 32/49] Added tests for pylint and jedi --- trio/__init__.py | 1 + trio/tests/test_exports.py | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/trio/__init__.py b/trio/__init__.py index 8539153d8d..8d18f6acfe 100644 --- a/trio/__init__.py +++ b/trio/__init__.py @@ -32,6 +32,7 @@ from ._version import __version__ + from ._core import ( TrioInternalError, RunFinishedError, WouldBlock, Cancelled, ResourceBusyError, ClosedResourceError, MultiError, run, open_nursery, diff --git a/trio/tests/test_exports.py b/trio/tests/test_exports.py index 1afd35a0df..18fb8a44d9 100644 --- a/trio/tests/test_exports.py +++ b/trio/tests/test_exports.py @@ -6,6 +6,7 @@ import pytest import sys + from pylint.lint import PyLinter from .. import _core @@ -37,7 +38,6 @@ def test_pylint_sees_all_non_underscore_symbols_in_namespace(): trio_set.remove('tests') assert trio_set - ast_set == set([]) - def test_jedi_sees_all_completions(): # Test the jedi completion library get all in dir(trio) try: From 026c38079739aa08e2f7859a09884a0a1bc9a616 Mon Sep 17 00:00:00 2001 From: Johannes Maria Frank Date: Fri, 17 Aug 2018 02:29:31 +0100 Subject: [PATCH 33/49] Fixed formatting --- trio/tests/test_exports.py | 1 + 1 file changed, 1 insertion(+) diff --git a/trio/tests/test_exports.py b/trio/tests/test_exports.py index 18fb8a44d9..e5eceeb672 100644 --- a/trio/tests/test_exports.py +++ b/trio/tests/test_exports.py @@ -38,6 +38,7 @@ def test_pylint_sees_all_non_underscore_symbols_in_namespace(): trio_set.remove('tests') assert trio_set - ast_set == set([]) + def test_jedi_sees_all_completions(): # Test the jedi completion library get all in dir(trio) try: From a38c381a830fceda64ac38d7244b28d9c5802ea4 Mon Sep 17 00:00:00 2001 From: Johannes Maria Frank Date: Fri, 17 Aug 2018 10:57:27 +0100 Subject: [PATCH 34/49] Fixed path to be POSIX and Windows path --- trio/tests/test_exports.py | 1 - 1 file changed, 1 deletion(-) diff --git a/trio/tests/test_exports.py b/trio/tests/test_exports.py index e5eceeb672..1afd35a0df 100644 --- a/trio/tests/test_exports.py +++ b/trio/tests/test_exports.py @@ -6,7 +6,6 @@ import pytest import sys - from pylint.lint import PyLinter from .. import _core From f39aceff2911112dc76d12d218b207da837631e0 Mon Sep 17 00:00:00 2001 From: Johannes Maria Frank Date: Thu, 23 Aug 2018 00:02:32 +0100 Subject: [PATCH 35/49] replaced __all__ with namespace iteration and added pylint and jedi test --- trio/__init__.py | 1 - trio/_core/__init__.py | 3 +-- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/trio/__init__.py b/trio/__init__.py index 8d18f6acfe..8539153d8d 100644 --- a/trio/__init__.py +++ b/trio/__init__.py @@ -32,7 +32,6 @@ from ._version import __version__ - from ._core import ( TrioInternalError, RunFinishedError, WouldBlock, Cancelled, ResourceBusyError, ClosedResourceError, MultiError, run, open_nursery, diff --git a/trio/_core/__init__.py b/trio/_core/__init__.py index 1efad4d038..fdecf183f1 100644 --- a/trio/_core/__init__.py +++ b/trio/_core/__init__.py @@ -14,8 +14,7 @@ def _public(fn): return fn -__all__ = [ - "TrioInternalError", +__all__ = ["TrioInternalError", "RunFinishedError", "WouldBlock", "Cancelled", From 74fe457d7dbad679ca924a9aa95d22a1c1913192 Mon Sep 17 00:00:00 2001 From: Johannes Maria Frank Date: Thu, 23 Aug 2018 00:28:19 +0100 Subject: [PATCH 36/49] Fix formating with yapf --- trio/__init__.py | 1 + trio/_core/tests/test_multierror.py | 6 +++--- trio/tests/test_socket.py | 5 +++-- trio/tests/test_ssl.py | 12 +++++++++--- 4 files changed, 16 insertions(+), 8 deletions(-) diff --git a/trio/__init__.py b/trio/__init__.py index 8539153d8d..8d18f6acfe 100644 --- a/trio/__init__.py +++ b/trio/__init__.py @@ -32,6 +32,7 @@ from ._version import __version__ + from ._core import ( TrioInternalError, RunFinishedError, WouldBlock, Cancelled, ResourceBusyError, ClosedResourceError, MultiError, run, open_nursery, diff --git a/trio/_core/tests/test_multierror.py b/trio/_core/tests/test_multierror.py index 04c347f81c..3692abfda0 100644 --- a/trio/_core/tests/test_multierror.py +++ b/trio/_core/tests/test_multierror.py @@ -169,9 +169,9 @@ def simple_filter(exc): assert isinstance(orig.exceptions[0].exceptions[1], KeyError) # get original traceback summary orig_extracted = ( - extract_tb(orig.__traceback__) + extract_tb( - orig.exceptions[0].__traceback__ - ) + extract_tb(orig.exceptions[0].exceptions[1].__traceback__) + extract_tb(orig.__traceback__) + + extract_tb(orig.exceptions[0].__traceback__) + + extract_tb(orig.exceptions[0].exceptions[1].__traceback__) ) def p(exc): diff --git a/trio/tests/test_socket.py b/trio/tests/test_socket.py index 8b110c1212..645ac0255e 100644 --- a/trio/tests/test_socket.py +++ b/trio/tests/test_socket.py @@ -786,8 +786,9 @@ async def getnameinfo(self, sockaddr, flags): (0, 0, 0, tsocket.AI_CANONNAME), ]: assert ( - await tsocket.getaddrinfo("localhost", "foo", *vals) == - ("custom_gai", b"localhost", "foo", *vals) + await tsocket.getaddrinfo( + "localhost", "foo", *vals + ) == ("custom_gai", b"localhost", "foo", *vals) ) # IDNA encoding is handled before calling the special object diff --git a/trio/tests/test_ssl.py b/trio/tests/test_ssl.py index 5925b4c698..2dc7c867af 100644 --- a/trio/tests/test_ssl.py +++ b/trio/tests/test_ssl.py @@ -972,7 +972,9 @@ async def test_ssl_bad_shutdown(): async def test_ssl_bad_shutdown_but_its_ok(): client, server = ssl_memory_stream_pair( server_kwargs={"https_compatible": True}, - client_kwargs={"https_compatible": True} + client_kwargs={ + "https_compatible": True + } ) async with _core.open_nursery() as nursery: @@ -1037,7 +1039,9 @@ def close_hook(): async def test_ssl_https_compatibility_disagreement(): client, server = ssl_memory_stream_pair( server_kwargs={"https_compatible": False}, - client_kwargs={"https_compatible": True} + client_kwargs={ + "https_compatible": True + } ) async with _core.open_nursery() as nursery: @@ -1059,7 +1063,9 @@ async def receive_and_expect_error(): async def test_https_mode_eof_before_handshake(): client, server = ssl_memory_stream_pair( server_kwargs={"https_compatible": True}, - client_kwargs={"https_compatible": True} + client_kwargs={ + "https_compatible": True + } ) async def server_expect_clean_eof(): From b97217dc88dd2b8f72b387e7bab56bccc9ad319b Mon Sep 17 00:00:00 2001 From: Johannes Maria Frank Date: Thu, 23 Aug 2018 06:45:36 +0100 Subject: [PATCH 37/49] Reformatted with new yapf version 0.22 and skipped yedi test for 3.8-dev --- trio/_core/tests/test_multierror.py | 6 +++--- trio/tests/test_socket.py | 5 ++--- trio/tests/test_ssl.py | 12 +++--------- 3 files changed, 8 insertions(+), 15 deletions(-) diff --git a/trio/_core/tests/test_multierror.py b/trio/_core/tests/test_multierror.py index 3692abfda0..04c347f81c 100644 --- a/trio/_core/tests/test_multierror.py +++ b/trio/_core/tests/test_multierror.py @@ -169,9 +169,9 @@ def simple_filter(exc): assert isinstance(orig.exceptions[0].exceptions[1], KeyError) # get original traceback summary orig_extracted = ( - extract_tb(orig.__traceback__) + - extract_tb(orig.exceptions[0].__traceback__) + - extract_tb(orig.exceptions[0].exceptions[1].__traceback__) + extract_tb(orig.__traceback__) + extract_tb( + orig.exceptions[0].__traceback__ + ) + extract_tb(orig.exceptions[0].exceptions[1].__traceback__) ) def p(exc): diff --git a/trio/tests/test_socket.py b/trio/tests/test_socket.py index 645ac0255e..8b110c1212 100644 --- a/trio/tests/test_socket.py +++ b/trio/tests/test_socket.py @@ -786,9 +786,8 @@ async def getnameinfo(self, sockaddr, flags): (0, 0, 0, tsocket.AI_CANONNAME), ]: assert ( - await tsocket.getaddrinfo( - "localhost", "foo", *vals - ) == ("custom_gai", b"localhost", "foo", *vals) + await tsocket.getaddrinfo("localhost", "foo", *vals) == + ("custom_gai", b"localhost", "foo", *vals) ) # IDNA encoding is handled before calling the special object diff --git a/trio/tests/test_ssl.py b/trio/tests/test_ssl.py index 2dc7c867af..5925b4c698 100644 --- a/trio/tests/test_ssl.py +++ b/trio/tests/test_ssl.py @@ -972,9 +972,7 @@ async def test_ssl_bad_shutdown(): async def test_ssl_bad_shutdown_but_its_ok(): client, server = ssl_memory_stream_pair( server_kwargs={"https_compatible": True}, - client_kwargs={ - "https_compatible": True - } + client_kwargs={"https_compatible": True} ) async with _core.open_nursery() as nursery: @@ -1039,9 +1037,7 @@ def close_hook(): async def test_ssl_https_compatibility_disagreement(): client, server = ssl_memory_stream_pair( server_kwargs={"https_compatible": False}, - client_kwargs={ - "https_compatible": True - } + client_kwargs={"https_compatible": True} ) async with _core.open_nursery() as nursery: @@ -1063,9 +1059,7 @@ async def receive_and_expect_error(): async def test_https_mode_eof_before_handshake(): client, server = ssl_memory_stream_pair( server_kwargs={"https_compatible": True}, - client_kwargs={ - "https_compatible": True - } + client_kwargs={"https_compatible": True} ) async def server_expect_clean_eof(): From e10619f0a13bef56e3d67f34816db75a6831851e Mon Sep 17 00:00:00 2001 From: Johannes Maria Frank Date: Thu, 23 Aug 2018 06:47:07 +0100 Subject: [PATCH 38/49] Fixed format in test_exports.py --- trio/tests/test_exports.py | 1 - 1 file changed, 1 deletion(-) diff --git a/trio/tests/test_exports.py b/trio/tests/test_exports.py index 1afd35a0df..48b582c4d5 100644 --- a/trio/tests/test_exports.py +++ b/trio/tests/test_exports.py @@ -37,7 +37,6 @@ def test_pylint_sees_all_non_underscore_symbols_in_namespace(): trio_set.remove('tests') assert trio_set - ast_set == set([]) - def test_jedi_sees_all_completions(): # Test the jedi completion library get all in dir(trio) try: From 78dc15d9952dc14f886835d336427ab3e511ff34 Mon Sep 17 00:00:00 2001 From: Johannes Maria Frank Date: Thu, 23 Aug 2018 14:10:24 +0100 Subject: [PATCH 39/49] Addressed temporary issue with __all__ being still present in _core but not in trio --- trio/__init__.py | 17 ----------------- 1 file changed, 17 deletions(-) diff --git a/trio/__init__.py b/trio/__init__.py index 8d18f6acfe..7690a8c4ad 100644 --- a/trio/__init__.py +++ b/trio/__init__.py @@ -13,23 +13,6 @@ # This file pulls together the friendly public API, by re-exporting the more # innocuous bits of the _core API + the higher-level tools from trio/*.py. -__all__ = [ - "TrioInternalError", - "RunFinishedError", - "WouldBlock", - "Cancelled", - "ResourceBusyError", - "ClosedResourceError", - "MultiError", - "run", - "open_nursery", - "open_cancel_scope", - "current_effective_deadline", - "TASK_STATUS_IGNORED", - "current_time", - "TaskLocal", -] - from ._version import __version__ From be193512001eba715453904236cea79c9a4cf110 Mon Sep 17 00:00:00 2001 From: Johannes Maria Frank Date: Thu, 23 Aug 2018 15:42:01 +0100 Subject: [PATCH 40/49] Rebase formatting --- trio/_signals.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/trio/_signals.py b/trio/_signals.py index 3b910a92d1..9010c420cb 100644 --- a/trio/_signals.py +++ b/trio/_signals.py @@ -177,7 +177,7 @@ def __aiter__(self): return self async def __anext__(self): - return { await self._signal_queue.__anext__()} + return {await self._signal_queue.__anext__()} @deprecated("0.7.0", issue=354, instead=open_signal_receiver) From 5ad48b21d8a7a56aef22b643d96a3229ad932aaf Mon Sep 17 00:00:00 2001 From: Johannes Maria Frank Date: Thu, 23 Aug 2018 18:31:59 +0100 Subject: [PATCH 41/49] Fixed formatting after rebase --- trio/__init__.py | 1 - trio/_core/__init__.py | 3 ++- trio/tests/test_exports.py | 1 + 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/trio/__init__.py b/trio/__init__.py index 7690a8c4ad..a4c81bf2cf 100644 --- a/trio/__init__.py +++ b/trio/__init__.py @@ -15,7 +15,6 @@ from ._version import __version__ - from ._core import ( TrioInternalError, RunFinishedError, WouldBlock, Cancelled, ResourceBusyError, ClosedResourceError, MultiError, run, open_nursery, diff --git a/trio/_core/__init__.py b/trio/_core/__init__.py index fdecf183f1..1efad4d038 100644 --- a/trio/_core/__init__.py +++ b/trio/_core/__init__.py @@ -14,7 +14,8 @@ def _public(fn): return fn -__all__ = ["TrioInternalError", +__all__ = [ + "TrioInternalError", "RunFinishedError", "WouldBlock", "Cancelled", diff --git a/trio/tests/test_exports.py b/trio/tests/test_exports.py index 48b582c4d5..1afd35a0df 100644 --- a/trio/tests/test_exports.py +++ b/trio/tests/test_exports.py @@ -37,6 +37,7 @@ def test_pylint_sees_all_non_underscore_symbols_in_namespace(): trio_set.remove('tests') assert trio_set - ast_set == set([]) + def test_jedi_sees_all_completions(): # Test the jedi completion library get all in dir(trio) try: From 5fc025b3d0d9ea82e7c3973f818986acef28b25b Mon Sep 17 00:00:00 2001 From: Johannes Maria Frank Date: Fri, 7 Sep 2018 22:10:03 +0100 Subject: [PATCH 42/49] Synced .gitignore --- .gitignore | 3 - Pipfile | 22 --- Pipfile.lock | 491 --------------------------------------------------- 3 files changed, 516 deletions(-) delete mode 100644 Pipfile delete mode 100644 Pipfile.lock diff --git a/.gitignore b/.gitignore index e32d51b295..cdf907c8d7 100644 --- a/.gitignore +++ b/.gitignore @@ -63,6 +63,3 @@ coverage.xml # Sphinx documentation doc/_build/ -.vscode/ -Pipfile -Pipfile.lock diff --git a/Pipfile b/Pipfile deleted file mode 100644 index 6082dc3ff9..0000000000 --- a/Pipfile +++ /dev/null @@ -1,22 +0,0 @@ -[[source]] -url = "https://pypi.org/simple" -verify_ssl = true -name = "pypi" - -[packages] -yapf = "==0.22.0" - -[dev-packages] -pylint = "*" -yapf = "==0.22.0" -pytest = ">=3.3" -pytest-cov = "*" -ipython = "*" -trustme = "*" -pytest-faulthandler = "*" -pyOpenSSL = "*" -trio = {editable = true, path = "."} -jedi = "*" - -[requires] -python_version = "3.7" diff --git a/Pipfile.lock b/Pipfile.lock deleted file mode 100644 index b39af2a027..0000000000 --- a/Pipfile.lock +++ /dev/null @@ -1,491 +0,0 @@ -{ - "_meta": { - "hash": { - "sha256": "ceea4f9d8c1b48fee8ec3a4355765b3dd5a86373bc781aa4852bd6f45ca69244" - }, - "pipfile-spec": 6, - "requires": { - "python_version": "3.7" - }, - "sources": [ - { - "name": "pypi", - "url": "https://pypi.org/simple", - "verify_ssl": true - } - ] - }, - "default": { - "yapf": { - "hashes": [ - "sha256:6567745f0b6656f9c33a73c56a393071c699e6284a70d793798ab6e3769d25ec", - "sha256:a98a6eacca64d2b920558f4a2f78150db9474de821227e60deaa29f186121c63" - ], - "index": "pypi", - "version": "==0.22.0" - } - }, - "develop": { - "appnope": { - "hashes": [ - "sha256:5b26757dc6f79a3b7dc9fab95359328d5747fcb2409d331ea66d0272b90ab2a0", - "sha256:8b995ffe925347a2138d7ac0fe77155e4311a0ea6d6da4f5128fe4b3cbe5ed71" - ], - "markers": "sys_platform == 'darwin'", - "version": "==0.1.0" - }, - "asn1crypto": { - "hashes": [ - "sha256:2f1adbb7546ed199e3c90ef23ec95c5cf3585bac7d11fb7eb562a3fe89c64e87", - "sha256:9d5c20441baf0cb60a4ac34cc447c6c189024b6b4c6cd7877034f4965c464e49" - ], - "version": "==0.24.0" - }, - "astroid": { - "hashes": [ - "sha256:292fa429e69d60e4161e7612cb7cc8fa3609e2e309f80c224d93a76d5e7b58be", - "sha256:c7013d119ec95eb626f7a2011f0b63d0c9a095df9ad06d8507b37084eada1a8d" - ], - "version": "==2.0.4" - }, - "async-generator": { - "hashes": [ - "sha256:01c7bf666359b4967d2cda0000cc2e4af16a0ae098cbffcb8472fb9e8ad6585b", - "sha256:6ebb3d106c12920aaae42ccb6f787ef5eefdcdd166ea3d628fa8476abe712144" - ], - "markers": "python_version >= '3.5'", - "version": "==1.10" - }, - "atomicwrites": { - "hashes": [ - "sha256:240831ea22da9ab882b551b31d4225591e5e447a68c5e188db5b89ca1d487585", - "sha256:a24da68318b08ac9c9c45029f4a10371ab5b20e4226738e150e6e7c571630ae6" - ], - "version": "==1.1.5" - }, - "attrs": { - "hashes": [ - "sha256:4b90b09eeeb9b88c35bc642cbac057e45a5fd85367b985bd2809c62b7b939265", - "sha256:e0d0eb91441a3b53dab4d9b743eafc1ac44476296a2053b6ca3af0b139faf87b" - ], - "version": "==18.1.0" - }, - "backcall": { - "hashes": [ - "sha256:38ecd85be2c1e78f77fd91700c76e14667dc21e2713b63876c0eb901196e01e4", - "sha256:bbbf4b1e5cd2bdb08f915895b51081c041bac22394fdfcfdfbe9f14b77c08bf2" - ], - "version": "==0.1.0" - }, - "cffi": { - "hashes": [ - "sha256:151b7eefd035c56b2b2e1eb9963c90c6302dc15fbd8c1c0a83a163ff2c7d7743", - "sha256:1553d1e99f035ace1c0544050622b7bc963374a00c467edafac50ad7bd276aef", - "sha256:1b0493c091a1898f1136e3f4f991a784437fac3673780ff9de3bcf46c80b6b50", - "sha256:2ba8a45822b7aee805ab49abfe7eec16b90587f7f26df20c71dd89e45a97076f", - "sha256:3bb6bd7266598f318063e584378b8e27c67de998a43362e8fce664c54ee52d30", - "sha256:3c85641778460581c42924384f5e68076d724ceac0f267d66c757f7535069c93", - "sha256:3eb6434197633b7748cea30bf0ba9f66727cdce45117a712b29a443943733257", - "sha256:495c5c2d43bf6cebe0178eb3e88f9c4aa48d8934aa6e3cddb865c058da76756b", - "sha256:4c91af6e967c2015729d3e69c2e51d92f9898c330d6a851bf8f121236f3defd3", - "sha256:57b2533356cb2d8fac1555815929f7f5f14d68ac77b085d2326b571310f34f6e", - "sha256:770f3782b31f50b68627e22f91cb182c48c47c02eb405fd689472aa7b7aa16dc", - "sha256:79f9b6f7c46ae1f8ded75f68cf8ad50e5729ed4d590c74840471fc2823457d04", - "sha256:7a33145e04d44ce95bcd71e522b478d282ad0eafaf34fe1ec5bbd73e662f22b6", - "sha256:857959354ae3a6fa3da6651b966d13b0a8bed6bbc87a0de7b38a549db1d2a359", - "sha256:87f37fe5130574ff76c17cab61e7d2538a16f843bb7bca8ebbc4b12de3078596", - "sha256:95d5251e4b5ca00061f9d9f3d6fe537247e145a8524ae9fd30a2f8fbce993b5b", - "sha256:9d1d3e63a4afdc29bd76ce6aa9d58c771cd1599fbba8cf5057e7860b203710dd", - "sha256:a36c5c154f9d42ec176e6e620cb0dd275744aa1d804786a71ac37dc3661a5e95", - "sha256:a6a5cb8809091ec9ac03edde9304b3ad82ad4466333432b16d78ef40e0cce0d5", - "sha256:ae5e35a2c189d397b91034642cb0eab0e346f776ec2eb44a49a459e6615d6e2e", - "sha256:b0f7d4a3df8f06cf49f9f121bead236e328074de6449866515cea4907bbc63d6", - "sha256:b75110fb114fa366b29a027d0c9be3709579602ae111ff61674d28c93606acca", - "sha256:ba5e697569f84b13640c9e193170e89c13c6244c24400fc57e88724ef610cd31", - "sha256:be2a9b390f77fd7676d80bc3cdc4f8edb940d8c198ed2d8c0be1319018c778e1", - "sha256:ca1bd81f40adc59011f58159e4aa6445fc585a32bb8ac9badf7a2c1aa23822f2", - "sha256:d5d8555d9bfc3f02385c1c37e9f998e2011f0db4f90e250e5bc0c0a85a813085", - "sha256:e55e22ac0a30023426564b1059b035973ec82186ddddbac867078435801c7801", - "sha256:e90f17980e6ab0f3c2f3730e56d1fe9bcba1891eeea58966e89d352492cc74f4", - "sha256:ecbb7b01409e9b782df5ded849c178a0aa7c906cf8c5a67368047daab282b184", - "sha256:ed01918d545a38998bfa5902c7c00e0fee90e957ce036a4000a88e3fe2264917", - "sha256:edabd457cd23a02965166026fd9bfd196f4324fe6032e866d0f3bd0301cd486f", - "sha256:fdf1c1dc5bafc32bc5d08b054f94d659422b05aba244d6be4ddc1c72d9aa70fb" - ], - "version": "==1.11.5" - }, - "coverage": { - "hashes": [ - "sha256:03481e81d558d30d230bc12999e3edffe392d244349a90f4ef9b88425fac74ba", - "sha256:0b136648de27201056c1869a6c0d4e23f464750fd9a9ba9750b8336a244429ed", - "sha256:10a46017fef60e16694a30627319f38a2b9b52e90182dddb6e37dcdab0f4bf95", - "sha256:198626739a79b09fa0a2f06e083ffd12eb55449b5f8bfdbeed1df4910b2ca640", - "sha256:23d341cdd4a0371820eb2b0bd6b88f5003a7438bbedb33688cd33b8eae59affd", - "sha256:28b2191e7283f4f3568962e373b47ef7f0392993bb6660d079c62bd50fe9d162", - "sha256:2a5b73210bad5279ddb558d9a2bfedc7f4bf6ad7f3c988641d83c40293deaec1", - "sha256:2eb564bbf7816a9d68dd3369a510be3327f1c618d2357fa6b1216994c2e3d508", - "sha256:337ded681dd2ef9ca04ef5d93cfc87e52e09db2594c296b4a0a3662cb1b41249", - "sha256:3a2184c6d797a125dca8367878d3b9a178b6fdd05fdc2d35d758c3006a1cd694", - "sha256:3c79a6f7b95751cdebcd9037e4d06f8d5a9b60e4ed0cd231342aa8ad7124882a", - "sha256:3d72c20bd105022d29b14a7d628462ebdc61de2f303322c0212a054352f3b287", - "sha256:3eb42bf89a6be7deb64116dd1cc4b08171734d721e7a7e57ad64cc4ef29ed2f1", - "sha256:4635a184d0bbe537aa185a34193898eee409332a8ccb27eea36f262566585000", - "sha256:56e448f051a201c5ebbaa86a5efd0ca90d327204d8b059ab25ad0f35fbfd79f1", - "sha256:5a13ea7911ff5e1796b6d5e4fbbf6952381a611209b736d48e675c2756f3f74e", - "sha256:69bf008a06b76619d3c3f3b1983f5145c75a305a0fea513aca094cae5c40a8f5", - "sha256:6bc583dc18d5979dc0f6cec26a8603129de0304d5ae1f17e57a12834e7235062", - "sha256:701cd6093d63e6b8ad7009d8a92425428bc4d6e7ab8d75efbb665c806c1d79ba", - "sha256:7608a3dd5d73cb06c531b8925e0ef8d3de31fed2544a7de6c63960a1e73ea4bc", - "sha256:76ecd006d1d8f739430ec50cc872889af1f9c1b6b8f48e29941814b09b0fd3cc", - "sha256:7aa36d2b844a3e4a4b356708d79fd2c260281a7390d678a10b91ca595ddc9e99", - "sha256:7d3f553904b0c5c016d1dad058a7554c7ac4c91a789fca496e7d8347ad040653", - "sha256:7e1fe19bd6dce69d9fd159d8e4a80a8f52101380d5d3a4d374b6d3eae0e5de9c", - "sha256:8c3cb8c35ec4d9506979b4cf90ee9918bc2e49f84189d9bf5c36c0c1119c6558", - "sha256:9d6dd10d49e01571bf6e147d3b505141ffc093a06756c60b053a859cb2128b1f", - "sha256:be6cfcd8053d13f5f5eeb284aa8a814220c3da1b0078fa859011c7fffd86dab9", - "sha256:c1bb572fab8208c400adaf06a8133ac0712179a334c09224fb11393e920abcdd", - "sha256:de4418dadaa1c01d497e539210cb6baa015965526ff5afc078c57ca69160108d", - "sha256:e05cb4d9aad6233d67e0541caa7e511fa4047ed7750ec2510d466e806e0255d6", - "sha256:f3f501f345f24383c0000395b26b726e46758b71393267aeae0bd36f8b3ade80" - ], - "markers": "python_version != '3.2.*' and python_version != '3.0.*' and python_version < '4' and python_version >= '2.6' and python_version != '3.1.*'", - "version": "==4.5.1" - }, - "cryptography": { - "hashes": [ - "sha256:02602e1672b62e803e08617ec286041cc453e8d43f093a5f4162095506bc0beb", - "sha256:10b48e848e1edb93c1d3b797c83c72b4c387ab0eb4330aaa26da8049a6cbede0", - "sha256:17db09db9d7c5de130023657be42689d1a5f60502a14f6f745f6f65a6b8195c0", - "sha256:227da3a896df1106b1a69b1e319dce218fa04395e8cc78be7e31ca94c21254bc", - "sha256:2cbaa03ac677db6c821dac3f4cdfd1461a32d0615847eedbb0df54bb7802e1f7", - "sha256:31db8febfc768e4b4bd826750a70c79c99ea423f4697d1dab764eb9f9f849519", - "sha256:4a510d268e55e2e067715d728e4ca6cd26a8e9f1f3d174faf88e6f2cb6b6c395", - "sha256:6a88d9004310a198c474d8a822ee96a6dd6c01efe66facdf17cb692512ae5bc0", - "sha256:76936ec70a9b72eb8c58314c38c55a0336a2b36de0c7ee8fb874a4547cadbd39", - "sha256:7e3b4aecc4040928efa8a7cdaf074e868af32c58ffc9bb77e7bf2c1a16783286", - "sha256:8168bcb08403ef144ff1fb880d416f49e2728101d02aaadfe9645883222c0aa5", - "sha256:8229ceb79a1792823d87779959184a1bf95768e9248c93ae9f97c7a2f60376a1", - "sha256:8a19e9f2fe69f6a44a5c156968d9fc8df56d09798d0c6a34ccc373bb186cee86", - "sha256:8d10113ca826a4c29d5b85b2c4e045ffa8bad74fb525ee0eceb1d38d4c70dfd6", - "sha256:be495b8ec5a939a7605274b6e59fbc35e76f5ad814ae010eb679529671c9e119", - "sha256:dc2d3f3b1548f4d11786616cf0f4415e25b0fbecb8a1d2cd8c07568f13fdde38", - "sha256:e4aecdd9d5a3d06c337894c9a6e2961898d3f64fe54ca920a72234a3de0f9cb3", - "sha256:e79ab4485b99eacb2166f3212218dd858258f374855e1568f728462b0e6ee0d9", - "sha256:f995d3667301e1754c57b04e0bae6f0fa9d710697a9f8d6712e8cca02550910f" - ], - "version": "==2.3.1" - }, - "decorator": { - "hashes": [ - "sha256:2c51dff8ef3c447388fe5e4453d24a2bf128d3a4c32af3fabef1f01c6851ab82", - "sha256:c39efa13fbdeb4506c476c9b3babf6a718da943dab7811c206005a4a956c080c" - ], - "version": "==4.3.0" - }, - "idna": { - "hashes": [ - "sha256:156a6814fb5ac1fc6850fb002e0852d56c0c8d2531923a51032d1b70760e186e", - "sha256:684a38a6f903c1d71d6d5fac066b58d7768af4de2b832e426ec79c30daa94a16" - ], - "version": "==2.7" - }, - "ipython": { - "hashes": [ - "sha256:007dcd929c14631f83daff35df0147ea51d1af420da303fd078343878bd5fb62", - "sha256:b0f2ef9eada4a68ef63ee10b6dde4f35c840035c50fd24265f8052c98947d5a4" - ], - "index": "pypi", - "version": "==6.5.0" - }, - "ipython-genutils": { - "hashes": [ - "sha256:72dd37233799e619666c9f639a9da83c34013a73e8bbc79a7a6348d93c61fab8", - "sha256:eb2e116e75ecef9d4d228fdc66af54269afa26ab4463042e33785b887c628ba8" - ], - "version": "==0.2.0" - }, - "isort": { - "hashes": [ - "sha256:1153601da39a25b14ddc54955dbbacbb6b2d19135386699e2ad58517953b34af", - "sha256:b9c40e9750f3d77e6e4d441d8b0266cf555e7cdabdcff33c4fd06366ca761ef8", - "sha256:ec9ef8f4a9bc6f71eec99e1806bfa2de401650d996c59330782b89a5555c1497" - ], - "markers": "python_version != '3.2.*' and python_version != '3.1.*' and python_version != '3.0.*' and python_version != '3.3.*' and python_version >= '2.7'", - "version": "==4.3.4" - }, - "jedi": { - "hashes": [ - "sha256:b409ed0f6913a701ed474a614a3bb46e6953639033e31f769ca7581da5bd1ec1", - "sha256:c254b135fb39ad76e78d4d8f92765ebc9bf92cbc76f49e97ade1d5f5121e1f6f" - ], - "index": "pypi", - "version": "==0.12.1" - }, - "lazy-object-proxy": { - "hashes": [ - "sha256:0ce34342b419bd8f018e6666bfef729aec3edf62345a53b537a4dcc115746a33", - "sha256:1b668120716eb7ee21d8a38815e5eb3bb8211117d9a90b0f8e21722c0758cc39", - "sha256:209615b0fe4624d79e50220ce3310ca1a9445fd8e6d3572a896e7f9146bbf019", - "sha256:27bf62cb2b1a2068d443ff7097ee33393f8483b570b475db8ebf7e1cba64f088", - "sha256:27ea6fd1c02dcc78172a82fc37fcc0992a94e4cecf53cb6d73f11749825bd98b", - "sha256:2c1b21b44ac9beb0fc848d3993924147ba45c4ebc24be19825e57aabbe74a99e", - "sha256:2df72ab12046a3496a92476020a1a0abf78b2a7db9ff4dc2036b8dd980203ae6", - "sha256:320ffd3de9699d3892048baee45ebfbbf9388a7d65d832d7e580243ade426d2b", - "sha256:50e3b9a464d5d08cc5227413db0d1c4707b6172e4d4d915c1c70e4de0bbff1f5", - "sha256:5276db7ff62bb7b52f77f1f51ed58850e315154249aceb42e7f4c611f0f847ff", - "sha256:61a6cf00dcb1a7f0c773ed4acc509cb636af2d6337a08f362413c76b2b47a8dd", - "sha256:6ae6c4cb59f199d8827c5a07546b2ab7e85d262acaccaacd49b62f53f7c456f7", - "sha256:7661d401d60d8bf15bb5da39e4dd72f5d764c5aff5a86ef52a042506e3e970ff", - "sha256:7bd527f36a605c914efca5d3d014170b2cb184723e423d26b1fb2fd9108e264d", - "sha256:7cb54db3535c8686ea12e9535eb087d32421184eacc6939ef15ef50f83a5e7e2", - "sha256:7f3a2d740291f7f2c111d86a1c4851b70fb000a6c8883a59660d95ad57b9df35", - "sha256:81304b7d8e9c824d058087dcb89144842c8e0dea6d281c031f59f0acf66963d4", - "sha256:933947e8b4fbe617a51528b09851685138b49d511af0b6c0da2539115d6d4514", - "sha256:94223d7f060301b3a8c09c9b3bc3294b56b2188e7d8179c762a1cda72c979252", - "sha256:ab3ca49afcb47058393b0122428358d2fbe0408cf99f1b58b295cfeb4ed39109", - "sha256:bd6292f565ca46dee4e737ebcc20742e3b5be2b01556dafe169f6c65d088875f", - "sha256:cb924aa3e4a3fb644d0c463cad5bc2572649a6a3f68a7f8e4fbe44aaa6d77e4c", - "sha256:d0fc7a286feac9077ec52a927fc9fe8fe2fabab95426722be4c953c9a8bede92", - "sha256:ddc34786490a6e4ec0a855d401034cbd1242ef186c20d79d2166d6a4bd449577", - "sha256:e34b155e36fa9da7e1b7c738ed7767fc9491a62ec6af70fe9da4a057759edc2d", - "sha256:e5b9e8f6bda48460b7b143c3821b21b452cb3a835e6bbd5dd33aa0c8d3f5137d", - "sha256:e81ebf6c5ee9684be8f2c87563880f93eedd56dd2b6146d8a725b50b7e5adb0f", - "sha256:eb91be369f945f10d3a49f5f9be8b3d0b93a4c2be8f8a5b83b0571b8123e0a7a", - "sha256:f460d1ceb0e4a5dcb2a652db0904224f367c9b3c1470d5a7683c0480e582468b" - ], - "version": "==1.3.1" - }, - "mccabe": { - "hashes": [ - "sha256:ab8a6258860da4b6677da4bd2fe5dc2c659cff31b3ee4f7f5d64e79735b80d42", - "sha256:dd8d182285a0fe56bace7f45b5e7d1a6ebcbf524e8f3bd87eb0f125271b8831f" - ], - "version": "==0.6.1" - }, - "more-itertools": { - "hashes": [ - "sha256:c187a73da93e7a8acc0001572aebc7e3c69daf7bf6881a2cea10650bd4420092", - "sha256:c476b5d3a34e12d40130bc2f935028b5f636df8f372dc2c1c01dc19681b2039e", - "sha256:fcbfeaea0be121980e15bc97b3817b5202ca73d0eae185b4550cbfce2a3ebb3d" - ], - "version": "==4.3.0" - }, - "outcome": { - "hashes": [ - "sha256:d54e5d469088af53022f64a753b288d6bab0fe42e513eb7146137d560e2e516e", - "sha256:de68deb145ace3b9217a9461d6bfb4f720fdf01f77bfd65936906d8301bd08d2" - ], - "version": "==0.1.0" - }, - "parso": { - "hashes": [ - "sha256:35704a43a3c113cce4de228ddb39aab374b8004f4f2407d070b6a2ca784ce8a2", - "sha256:895c63e93b94ac1e1690f5fdd40b65f07c8171e3e53cbd7793b5b96c0e0a7f24" - ], - "version": "==0.3.1" - }, - "pexpect": { - "hashes": [ - "sha256:2a8e88259839571d1251d278476f3eec5db26deb73a70be5ed5dc5435e418aba", - "sha256:3fbd41d4caf27fa4a377bfd16fef87271099463e6fa73e92a52f92dfee5d425b" - ], - "markers": "sys_platform != 'win32'", - "version": "==4.6.0" - }, - "pickleshare": { - "hashes": [ - "sha256:84a9257227dfdd6fe1b4be1319096c20eb85ff1e82c7932f36efccfe1b09737b", - "sha256:c9a2541f25aeabc070f12f452e1f2a8eae2abd51e1cd19e8430402bdf4c1d8b5" - ], - "version": "==0.7.4" - }, - "pluggy": { - "hashes": [ - "sha256:6e3836e39f4d36ae72840833db137f7b7d35105079aee6ec4a62d9f80d594dd1", - "sha256:95eb8364a4708392bae89035f45341871286a333f749c3141c20573d2b3876e1" - ], - "markers": "python_version != '3.0.*' and python_version >= '2.7' and python_version != '3.1.*' and python_version != '3.2.*' and python_version != '3.3.*'", - "version": "==0.7.1" - }, - "prompt-toolkit": { - "hashes": [ - "sha256:1df952620eccb399c53ebb359cc7d9a8d3a9538cb34c5a1344bdbeb29fbcc381", - "sha256:3f473ae040ddaa52b52f97f6b4a493cfa9f5920c255a12dc56a7d34397a398a4", - "sha256:858588f1983ca497f1cf4ffde01d978a3ea02b01c8a26a8bbc5cd2e66d816917" - ], - "version": "==1.0.15" - }, - "ptyprocess": { - "hashes": [ - "sha256:923f299cc5ad920c68f2bc0bc98b75b9f838b93b599941a6b63ddbc2476394c0", - "sha256:d7cc528d76e76342423ca640335bd3633420dc1366f258cb31d05e865ef5ca1f" - ], - "version": "==0.6.0" - }, - "py": { - "hashes": [ - "sha256:3fd59af7435864e1a243790d322d763925431213b6b8529c6ca71081ace3bbf7", - "sha256:e31fb2767eb657cbde86c454f02e99cb846d3cd9d61b318525140214fdc0e98e" - ], - "markers": "python_version != '3.1.*' and python_version >= '2.7' and python_version != '3.3.*' and python_version != '3.0.*' and python_version != '3.2.*'", - "version": "==1.5.4" - }, - "pycparser": { - "hashes": [ - "sha256:99a8ca03e29851d96616ad0404b4aad7d9ee16f25c9f9708a11faf2810f7b226" - ], - "version": "==2.18" - }, - "pygments": { - "hashes": [ - "sha256:78f3f434bcc5d6ee09020f92ba487f95ba50f1e3ef83ae96b9d5ffa1bab25c5d", - "sha256:dbae1046def0efb574852fab9e90209b23f556367b5a320c0bcb871c77c3e8cc" - ], - "version": "==2.2.0" - }, - "pylint": { - "hashes": [ - "sha256:1d6d3622c94b4887115fe5204982eee66fdd8a951cf98635ee5caee6ec98c3ec", - "sha256:31142f764d2a7cd41df5196f9933b12b7ee55e73ef12204b648ad7e556c119fb" - ], - "index": "pypi", - "version": "==2.1.1" - }, - "pyopenssl": { - "hashes": [ - "sha256:26ff56a6b5ecaf3a2a59f132681e2a80afcc76b4f902f612f518f92c2a1bf854", - "sha256:6488f1423b00f73b7ad5167885312bb0ce410d3312eb212393795b53c8caa580" - ], - "index": "pypi", - "version": "==18.0.0" - }, - "pytest": { - "hashes": [ - "sha256:3459a123ad5532852d36f6f4501dfe1acf4af1dd9541834a164666aa40395b02", - "sha256:96bfd45dbe863b447a3054145cd78a9d7f31475d2bce6111b133c0cc4f305118" - ], - "index": "pypi", - "version": "==3.7.2" - }, - "pytest-cov": { - "hashes": [ - "sha256:03aa752cf11db41d281ea1d807d954c4eda35cfa1b21d6971966cc041bbf6e2d", - "sha256:890fe5565400902b0c78b5357004aab1c814115894f4f21370e2433256a3eeec" - ], - "index": "pypi", - "version": "==2.5.1" - }, - "pytest-faulthandler": { - "hashes": [ - "sha256:461351d67a8f09cd2aa8b343b50ce58c301c8c206fcbf7483ee17c109d6a5ddb", - "sha256:bf8634c3fd6309ef786ec03b913a5366163fdb094ebcfdebc35626400d790e0d" - ], - "index": "pypi", - "version": "==1.5.0" - }, - "simplegeneric": { - "hashes": [ - "sha256:dc972e06094b9af5b855b3df4a646395e43d1c9d0d39ed345b7393560d0b9173" - ], - "version": "==0.8.1" - }, - "six": { - "hashes": [ - "sha256:70e8a77beed4562e7f14fe23a786b54f6296e34344c23bc42f07b15018ff98e9", - "sha256:832dc0e10feb1aa2c68dcc57dbb658f1c7e65b9b61af69048abc87a2db00a0eb" - ], - "version": "==1.11.0" - }, - "sniffio": { - "hashes": [ - "sha256:2e9b81429e3b7c9e119fcee2673ee3be3229982adc68b3f59317863aba05ebb7", - "sha256:afb4997584a920e6e378a81ded2b3e71a696b85a68c4bfbe4dadf1ba57a9ef45" - ], - "markers": "python_version >= '3.5'", - "version": "==1.0.0" - }, - "sortedcontainers": { - "hashes": [ - "sha256:607294c6e291a270948420f7ffa1fb3ed47384a4c08db6d1e9c92d08a6981982", - "sha256:ef38b128302ee8f65d81e31c9d8fbf10d81df4d6d06c9c0b66f01d33747525bb" - ], - "version": "==2.0.4" - }, - "traitlets": { - "hashes": [ - "sha256:9c4bd2d267b7153df9152698efb1050a5d84982d3384a37b2c1f7723ba3e7835", - "sha256:c6cb5e6f57c5a9bdaa40fa71ce7b4af30298fbab9ece9815b5d995ab6217c7d9" - ], - "version": "==4.3.2" - }, - "trio": { - "editable": true, - "path": "." - }, - "trustme": { - "hashes": [ - "sha256:76339d3471ddd32db574beace1f55dc270c1e5b6857ed363a9e37cf82f92bffa", - "sha256:f32ba9b880464b9ae5e624b52cf06ed191d69d405ef957b6fe0e30434dde2588" - ], - "index": "pypi", - "version": "==0.4.0" - }, - "typed-ast": { - "hashes": [ - "sha256:0948004fa228ae071054f5208840a1e88747a357ec1101c17217bfe99b299d58", - "sha256:10703d3cec8dcd9eef5a630a04056bbc898abc19bac5691612acba7d1325b66d", - "sha256:1f6c4bd0bdc0f14246fd41262df7dfc018d65bb05f6e16390b7ea26ca454a291", - "sha256:25d8feefe27eb0303b73545416b13d108c6067b846b543738a25ff304824ed9a", - "sha256:29464a177d56e4e055b5f7b629935af7f49c196be47528cc94e0a7bf83fbc2b9", - "sha256:2e214b72168ea0275efd6c884b114ab42e316de3ffa125b267e732ed2abda892", - "sha256:3e0d5e48e3a23e9a4d1a9f698e32a542a4a288c871d33ed8df1b092a40f3a0f9", - "sha256:519425deca5c2b2bdac49f77b2c5625781abbaf9a809d727d3a5596b30bb4ded", - "sha256:57fe287f0cdd9ceaf69e7b71a2e94a24b5d268b35df251a88fef5cc241bf73aa", - "sha256:668d0cec391d9aed1c6a388b0d5b97cd22e6073eaa5fbaa6d2946603b4871efe", - "sha256:68ba70684990f59497680ff90d18e756a47bf4863c604098f10de9716b2c0bdd", - "sha256:6de012d2b166fe7a4cdf505eee3aaa12192f7ba365beeefaca4ec10e31241a85", - "sha256:79b91ebe5a28d349b6d0d323023350133e927b4de5b651a8aa2db69c761420c6", - "sha256:8550177fa5d4c1f09b5e5f524411c44633c80ec69b24e0e98906dd761941ca46", - "sha256:898f818399cafcdb93cbbe15fc83a33d05f18e29fb498ddc09b0214cdfc7cd51", - "sha256:94b091dc0f19291adcb279a108f5d38de2430411068b219f41b343c03b28fb1f", - "sha256:a26863198902cda15ab4503991e8cf1ca874219e0118cbf07c126bce7c4db129", - "sha256:a8034021801bc0440f2e027c354b4eafd95891b573e12ff0418dec385c76785c", - "sha256:bc978ac17468fe868ee589c795d06777f75496b1ed576d308002c8a5756fb9ea", - "sha256:c05b41bc1deade9f90ddc5d988fe506208019ebba9f2578c622516fd201f5863", - "sha256:c9b060bd1e5a26ab6e8267fd46fc9e02b54eb15fffb16d112d4c7b1c12987559", - "sha256:edb04bdd45bfd76c8292c4d9654568efaedf76fe78eb246dde69bdb13b2dad87", - "sha256:f19f2a4f547505fe9072e15f6f4ae714af51b5a681a97f187971f50c283193b6" - ], - "version": "==1.1.0" - }, - "typing": { - "hashes": [ - "sha256:3a887b021a77b292e151afb75323dea88a7bc1b3dfa92176cff8e44c8b68bddf", - "sha256:b2c689d54e1144bbcfd191b0832980a21c2dbcf7b5ff7a66248a60c90e951eb8", - "sha256:d400a9344254803a2368533e4533a4200d21eb7b6b729c173bc38201a74db3f2" - ], - "version": "==3.6.4" - }, - "wcwidth": { - "hashes": [ - "sha256:3df37372226d6e63e1b1e1eda15c594bca98a22d33a23832a90998faa96bc65e", - "sha256:f4ebe71925af7b40a864553f761ed559b43544f8f71746c2d756c7fe788ade7c" - ], - "version": "==0.1.7" - }, - "wrapt": { - "hashes": [ - "sha256:d4d560d479f2c21e1b5443bbd15fe7ec4b37fe7e53d335d3b9b0a7b1226fe3c6" - ], - "version": "==1.10.11" - }, - "yapf": { - "hashes": [ - "sha256:6567745f0b6656f9c33a73c56a393071c699e6284a70d793798ab6e3769d25ec", - "sha256:a98a6eacca64d2b920558f4a2f78150db9474de821227e60deaa29f186121c63" - ], - "index": "pypi", - "version": "==0.22.0" - } - } -} From d569f5ebda90ffbbef2bbba777d942e18c97a197 Mon Sep 17 00:00:00 2001 From: Johannes Maria Frank Date: Fri, 7 Sep 2018 22:19:07 +0100 Subject: [PATCH 43/49] removed again TaskLocal from trio/__init__.py --- trio/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/trio/__init__.py b/trio/__init__.py index a4c81bf2cf..bc2542de02 100644 --- a/trio/__init__.py +++ b/trio/__init__.py @@ -19,7 +19,7 @@ TrioInternalError, RunFinishedError, WouldBlock, Cancelled, ResourceBusyError, ClosedResourceError, MultiError, run, open_nursery, open_cancel_scope, current_effective_deadline, TASK_STATUS_IGNORED, - current_time, TaskLocal + current_time ) from ._timeouts import ( From 79e177e06a5b4a9778c48248e9b0c69e5e794287 Mon Sep 17 00:00:00 2001 From: Johannes Maria Frank Date: Fri, 7 Sep 2018 23:13:34 +0100 Subject: [PATCH 44/49] reverted docs changes, removed TESTING variable and removed explicit list from _core/__init__.py --- docs/source/conf.py | 2 +- docs/source/contributing.rst | 2 +- trio/__init__.py | 3 +-- trio/_core/__init__.py | 16 +--------------- 4 files changed, 4 insertions(+), 19 deletions(-) diff --git a/docs/source/conf.py b/docs/source/conf.py index 1b3374a7b6..e5c1e28d40 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -70,7 +70,7 @@ def setup(app): intersphinx_mapping = { "python": ('https://docs.python.org/3', None), - "outcome": ('https://outcome.readthedocs.io/en/latest/', None), + "outcome": ('https://outcome.readthedocs.org/en/latest/', None), } autodoc_member_order = "bysource" diff --git a/docs/source/contributing.rst b/docs/source/contributing.rst index ba718f3c97..8f7567a3a8 100644 --- a/docs/source/contributing.rst +++ b/docs/source/contributing.rst @@ -347,7 +347,7 @@ Documentation is stored in ``docs/source/*.rst`` and is rendered using `Sphinx `__ with the `sphinxcontrib-trio `__ extension. Documentation is hosted at `Read the Docs -`__, who take care of automatically +`__, who take care of automatically rebuilding it after every commit. For docstrings, we use `the Google docstring format diff --git a/trio/__init__.py b/trio/__init__.py index bc2542de02..525c20fefc 100644 --- a/trio/__init__.py +++ b/trio/__init__.py @@ -68,8 +68,7 @@ from . import abc from . import ssl # Not imported by default: testing -TESTING = False -if TESTING: +if False: from . import testing _deprecate.enable_attribute_deprecations(__name__) diff --git a/trio/_core/__init__.py b/trio/_core/__init__.py index 1efad4d038..9dc27b971e 100644 --- a/trio/_core/__init__.py +++ b/trio/_core/__init__.py @@ -14,21 +14,7 @@ def _public(fn): return fn -__all__ = [ - "TrioInternalError", - "RunFinishedError", - "WouldBlock", - "Cancelled", - "ResourceBusyError", - "ClosedResourceError", - "MultiError", - "run", - "open_nursery", - "open_cancel_scope", - "current_effective_deadline", - "TASK_STATUS_IGNORED", - "TaskLocal", -] +__all__ = [] from ._exceptions import * __all__ += _exceptions.__all__ From fe82149dd697c1402045967973304b774e547546 Mon Sep 17 00:00:00 2001 From: Johannes Maria Frank Date: Fri, 7 Sep 2018 23:22:42 +0100 Subject: [PATCH 45/49] Changed jedi completion test script to be an explicit script --- trio/tests/test_exports.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/trio/tests/test_exports.py b/trio/tests/test_exports.py index 1afd35a0df..9c28715d35 100644 --- a/trio/tests/test_exports.py +++ b/trio/tests/test_exports.py @@ -41,7 +41,7 @@ def test_pylint_sees_all_non_underscore_symbols_in_namespace(): def test_jedi_sees_all_completions(): # Test the jedi completion library get all in dir(trio) try: - script = jedi.Script(path=trio.__file__) + script = jedi.Script("import trio; trio.") completions = script.completions() trio_set = set([symbol for symbol in dir(trio) if symbol[:2] != '__']) jedi_set = set([cmp.name for cmp in completions]) From 152042488a58891c85c5189df4cdf77cf65a46f8 Mon Sep 17 00:00:00 2001 From: Johannes Maria Frank Date: Sat, 8 Sep 2018 00:48:18 +0100 Subject: [PATCH 46/49] added open_signal_receiver to trio/__init__.py and _toplevel_core_reexports.py --- trio/__init__.py | 2 +- trio/_toplevel_core_reexports.py | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/trio/__init__.py b/trio/__init__.py index 525c20fefc..8372c35920 100644 --- a/trio/__init__.py +++ b/trio/__init__.py @@ -40,7 +40,7 @@ aclose_forcefully, BrokenStreamError, StapledStream ) -from ._signals import catch_signals +from ._signals import catch_signals, open_signal_receiver from ._highlevel_socket import SocketStream, SocketListener diff --git a/trio/_toplevel_core_reexports.py b/trio/_toplevel_core_reexports.py index 08fb93f7f1..6f93dfb52c 100644 --- a/trio/_toplevel_core_reexports.py +++ b/trio/_toplevel_core_reexports.py @@ -27,6 +27,7 @@ "current_effective_deadline", "TASK_STATUS_IGNORED", "current_time", + "open_signal_receiver" ] from . import _core From 04106c0b9c312572b64d980304ffa645b9cf03a1 Mon Sep 17 00:00:00 2001 From: Johannes Maria Frank Date: Sat, 8 Sep 2018 00:57:45 +0100 Subject: [PATCH 47/49] Fixed formatting of trio/_toplevel_core_reexports.py --- trio/_toplevel_core_reexports.py | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) diff --git a/trio/_toplevel_core_reexports.py b/trio/_toplevel_core_reexports.py index 6f93dfb52c..ded94ec201 100644 --- a/trio/_toplevel_core_reexports.py +++ b/trio/_toplevel_core_reexports.py @@ -14,20 +14,10 @@ # a test to make sure that every _core export does get re-exported in one of # these places or another. __all__ = [ - "TrioInternalError", - "RunFinishedError", - "WouldBlock", - "Cancelled", - "ResourceBusyError", - "ClosedResourceError", - "MultiError", - "run", - "open_nursery", - "open_cancel_scope", - "current_effective_deadline", - "TASK_STATUS_IGNORED", - "current_time", - "open_signal_receiver" + "TrioInternalError", "RunFinishedError", "WouldBlock", "Cancelled", + "ResourceBusyError", "ClosedResourceError", "MultiError", "run", + "open_nursery", "open_cancel_scope", "current_effective_deadline", + "TASK_STATUS_IGNORED", "current_time", "open_signal_receiver" ] from . import _core From 3afdb8b29de33ea4c19a7b5366625ff3645cd087 Mon Sep 17 00:00:00 2001 From: Johannes Maria Frank Date: Sat, 8 Sep 2018 09:17:10 +0100 Subject: [PATCH 48/49] Added extra space after curly brace to check what happens about yapf on ci complaining about formatting --- trio/_signals.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/trio/_signals.py b/trio/_signals.py index 9010c420cb..3b910a92d1 100644 --- a/trio/_signals.py +++ b/trio/_signals.py @@ -177,7 +177,7 @@ def __aiter__(self): return self async def __anext__(self): - return {await self._signal_queue.__anext__()} + return { await self._signal_queue.__anext__()} @deprecated("0.7.0", issue=354, instead=open_signal_receiver) From b492ebb2f2ce60125b7aa40d61142356ee3333d6 Mon Sep 17 00:00:00 2001 From: Johannes Maria Frank Date: Sat, 8 Sep 2018 10:00:02 +0100 Subject: [PATCH 49/49] Deleted trio/_toplevel_core_reexports.py --- trio/_toplevel_core_reexports.py | 24 ------------------------ 1 file changed, 24 deletions(-) delete mode 100644 trio/_toplevel_core_reexports.py diff --git a/trio/_toplevel_core_reexports.py b/trio/_toplevel_core_reexports.py deleted file mode 100644 index ded94ec201..0000000000 --- a/trio/_toplevel_core_reexports.py +++ /dev/null @@ -1,24 +0,0 @@ -# PyCharm tries to statically trio's attributes, so that it can offer -# completions. (Other IDEs probably do similar things.) -# -# _core's exports use all sorts of wacky runtime tricks to set up their -# exports, and then they get divided between trio, trio.hazmat, and -# trio.testing. In an attempt to make this easier to understand for static -# analysis, this file lists all the _core symbols that are re-exported at the -# top-level (trio.whatever), with a simple static __all__. This turns out to -# be important -- PyCharm at least gives up on analyzing __all__ entirely if -# it sees __all__ += , see: -# https://github.com/python-trio/trio/issues/314#issuecomment-327824200 -# -# trio/hazmat.py and trio/testing/__init__.py have similar tricks, and we have -# a test to make sure that every _core export does get re-exported in one of -# these places or another. -__all__ = [ - "TrioInternalError", "RunFinishedError", "WouldBlock", "Cancelled", - "ResourceBusyError", "ClosedResourceError", "MultiError", "run", - "open_nursery", "open_cancel_scope", "current_effective_deadline", - "TASK_STATUS_IGNORED", "current_time", "open_signal_receiver" -] - -from . import _core -globals().update({sym: getattr(_core, sym) for sym in __all__})