blob: a6a29dbfecd507d93c89a48c3ab513f79d545bd4 [file] [log] [blame]
Guido van Rossum27b7c7e2013-10-17 13:40:50 -07001"""The asyncio package, tracking PEP 3156."""
2
Yury Selivanov6370f342017-12-10 18:36:12 -05003# flake8: noqa
4
Guido van Rossum27b7c7e2013-10-17 13:40:50 -07005import sys
Andrew Svetlov23b4b692019-05-27 22:56:22 +03006import warnings
Guido van Rossum27b7c7e2013-10-17 13:40:50 -07007
Guido van Rossum27b7c7e2013-10-17 13:40:50 -07008# This relies on each of the submodules having an __all__ variable.
Victor Stinner8c1a4a22015-01-06 01:03:58 +01009from .base_events import *
Victor Stinnerf951d282014-06-29 00:46:45 +020010from .coroutines import *
Guido van Rossum27b7c7e2013-10-17 13:40:50 -070011from .events import *
Andrew Svetlov0baa72f2018-09-11 10:13:04 -070012from .exceptions import *
Victor Stinner8dffc452014-01-25 15:32:06 +010013from .futures import *
Guido van Rossum27b7c7e2013-10-17 13:40:50 -070014from .locks import *
Guido van Rossum27b7c7e2013-10-17 13:40:50 -070015from .protocols import *
Yury Selivanov02a0a192017-12-14 09:42:21 -050016from .runners import *
Victor Stinner8dffc452014-01-25 15:32:06 +010017from .queues import *
Guido van Rossum27b7c7e2013-10-17 13:40:50 -070018from .streams import *
Victor Stinner915bcb02014-02-01 22:49:59 +010019from .subprocess import *
Guido van Rossum27b7c7e2013-10-17 13:40:50 -070020from .tasks import *
Victor Stinner8dffc452014-01-25 15:32:06 +010021from .transports import *
Guido van Rossum27b7c7e2013-10-17 13:40:50 -070022
Yury Selivanov416c1eb2018-05-28 17:54:02 -040023# Exposed for _asynciomodule.c to implement now deprecated
24# Task.all_tasks() method. This function will be removed in 3.9.
25from .tasks import _all_tasks_compat # NoQA
26
Victor Stinner8c1a4a22015-01-06 01:03:58 +010027__all__ = (base_events.__all__ +
28 coroutines.__all__ +
Victor Stinnerf951d282014-06-29 00:46:45 +020029 events.__all__ +
Andrew Svetlov0baa72f2018-09-11 10:13:04 -070030 exceptions.__all__ +
Victor Stinner8dffc452014-01-25 15:32:06 +010031 futures.__all__ +
Guido van Rossum27b7c7e2013-10-17 13:40:50 -070032 locks.__all__ +
Guido van Rossum27b7c7e2013-10-17 13:40:50 -070033 protocols.__all__ +
Yury Selivanov02a0a192017-12-14 09:42:21 -050034 runners.__all__ +
Victor Stinner8dffc452014-01-25 15:32:06 +010035 queues.__all__ +
Guido van Rossum27b7c7e2013-10-17 13:40:50 -070036 streams.__all__ +
Victor Stinner915bcb02014-02-01 22:49:59 +010037 subprocess.__all__ +
Victor Stinner8dffc452014-01-25 15:32:06 +010038 tasks.__all__ +
39 transports.__all__)
Victor Stinnerbe0a2d72014-07-18 12:44:25 +020040
41if sys.platform == 'win32': # pragma: no cover
42 from .windows_events import *
43 __all__ += windows_events.__all__
44else:
45 from .unix_events import * # pragma: no cover
46 __all__ += unix_events.__all__
Andrew Svetlov23b4b692019-05-27 22:56:22 +030047
48
49__all__ += ('StreamReader', 'StreamWriter', 'StreamReaderProtocol') # deprecated
50
51
52def __getattr__(name):
53 global StreamReader, StreamWriter, StreamReaderProtocol
54 if name == 'StreamReader':
55 warnings.warn("StreamReader is deprecated since Python 3.8 "
56 "in favor of Stream, and scheduled for removal "
57 "in Python 3.10",
58 DeprecationWarning,
59 stacklevel=2)
60 from .streams import StreamReader as sr
61 StreamReader = sr
62 return StreamReader
63 if name == 'StreamWriter':
64 warnings.warn("StreamWriter is deprecated since Python 3.8 "
65 "in favor of Stream, and scheduled for removal "
66 "in Python 3.10",
67 DeprecationWarning,
68 stacklevel=2)
69 from .streams import StreamWriter as sw
70 StreamWriter = sw
71 return StreamWriter
72 if name == 'StreamReaderProtocol':
73 warnings.warn("Using asyncio internal class StreamReaderProtocol "
74 "is deprecated since Python 3.8 "
75 " and scheduled for removal "
76 "in Python 3.10",
77 DeprecationWarning,
78 stacklevel=2)
79 from .streams import StreamReaderProtocol as srp
80 StreamReaderProtocol = srp
81 return StreamReaderProtocol
82
83 raise AttributeError(f"module {__name__} has no attribute {name}")