aboutsummaryrefslogtreecommitdiff
path: root/pyee/__init__.py
diff options
context:
space:
mode:
Diffstat (limited to 'pyee/__init__.py')
-rw-r--r--pyee/__init__.py138
1 files changed, 138 insertions, 0 deletions
diff --git a/pyee/__init__.py b/pyee/__init__.py
new file mode 100644
index 0000000..9a4dafb
--- /dev/null
+++ b/pyee/__init__.py
@@ -0,0 +1,138 @@
+# -*- coding: utf-8 -*-
+
+"""
+pyee supplies a ``EventEmitter`` class that is similar to the
+``EventEmitter`` class from Node.js. In addition, it supplies the subclasses
+``AsyncIOEventEmitter``, ``TwistedEventEmitter`` and ``ExecutorEventEmitter``
+for supporting async and threaded execution with asyncio, twisted, and
+concurrent.futures Executors respectively, as supported by the environment.
+
+
+Example
+-------
+
+::
+
+ In [1]: from pyee.base import EventEmitter
+
+ In [2]: ee = EventEmitter()
+
+ In [3]: @ee.on('event')
+ ...: def event_handler():
+ ...: print('BANG BANG')
+ ...:
+
+ In [4]: ee.emit('event')
+ BANG BANG
+
+ In [5]:
+
+"""
+
+from warnings import warn
+
+from pyee.base import EventEmitter as EventEmitter
+from pyee.base import PyeeException
+
+
+class BaseEventEmitter(EventEmitter):
+ """
+ BaseEventEmitter is deprecated and an alias for EventEmitter.
+ """
+
+ def __init__(self):
+ warn(
+ DeprecationWarning(
+ "pyee.BaseEventEmitter is deprecated and will be removed in a "
+ "future major version; you should instead use pyee.EventEmitter."
+ )
+ )
+
+ super(BaseEventEmitter, self).__init__()
+
+
+__all__ = ["BaseEventEmitter", "EventEmitter", "PyeeException"]
+
+try:
+ from pyee.asyncio import AsyncIOEventEmitter as _AsyncIOEventEmitter # noqa
+
+ class AsyncIOEventEmitter(_AsyncIOEventEmitter):
+ """
+ AsyncIOEventEmitter has been moved to the pyee.asyncio module.
+ """
+
+ def __init__(self, loop=None):
+ warn(
+ DeprecationWarning(
+ "pyee.AsyncIOEventEmitter has been moved to the pyee.asyncio "
+ "module."
+ )
+ )
+ super(AsyncIOEventEmitter, self).__init__(loop=loop)
+
+ __all__.append("AsyncIOEventEmitter")
+except ImportError:
+ pass
+
+try:
+ from pyee.twisted import TwistedEventEmitter as _TwistedEventEmitter # noqa
+
+ class TwistedEventEmitter(_TwistedEventEmitter):
+ """
+ TwistedEventEmitter has been moved to the pyee.twisted module.
+ """
+
+ def __init__(self):
+ warn(
+ DeprecationWarning(
+ "pyee.TwistedEventEmitter has been moved to the pyee.twisted "
+ "module."
+ )
+ )
+ super(TwistedEventEmitter, self).__init__()
+
+ __all__.append("TwistedEventEmitter")
+except ImportError:
+ pass
+
+try:
+ from pyee.executor import ExecutorEventEmitter as _ExecutorEventEmitter # noqa
+
+ class ExecutorEventEmitter(_ExecutorEventEmitter):
+ """
+ ExecutorEventEmitter has been moved to the pyee.executor module.
+ """
+
+ def __init__(self, executor=None):
+ warn(
+ DeprecationWarning(
+ "pyee.ExecutorEventEmitter has been moved to the pyee.executor "
+ "module."
+ )
+ )
+ super(ExecutorEventEmitter, self).__init__(executor=executor)
+
+ __all__.append("ExecutorEventEmitter")
+except ImportError:
+ pass
+
+try:
+ from pyee.trio import TrioEventEmitter as _TrioEventEmitter # noqa
+
+ class TrioEventEmitter(_TrioEventEmitter):
+ """
+ TrioEventEmitter has been moved to the pyee.trio module.
+ """
+
+ def __init__(self, nursery=None, manager=None):
+ warn(
+ DeprecationWarning(
+ "pyee.TrioEventEmitter has been moved to the pyee.trio module."
+ )
+ )
+
+ super(TrioEventEmitter, self).__init__(nursery=nursery, manager=manager)
+
+ __all__.append("TrioEventEmitter")
+except (ImportError, SyntaxError):
+ pass