python events non-blocking
Project description
BasicEvents
===========
python basic events send non-blocking
Install
-------
.. code:: bash
pip install basicevents
Link pypi: https://pypi.python.org/pypi/basicevents
Example
-------
.. code:: python
# recommeded check all examples
from basicevents.events import (subscribe, send_thread, send_queue,
send_blocking, add_subcribe, send)
@subscribe("pepito")
def example(*args, **kwargs):
print "recv signal, values:", args, kwargs
def example2(*args, **kwargs):
print "manual subscribe"
# manual subscribe
add_subscribe("pepito", example2)
# add to queue signals (non-blocking)
send("pepito", 1, 2, 3, example="added queue")
# add to queue signals (non-blocking)
send_queue("pepito", 1, 2, 3, example="added queue")
# create new thread for this request (non-blocking)
send_thread("pepito", 1, 2, 3, example="new thread")
# This is blocking
send_blocking("pepito", 1, 2, 3, example="blocking")
Documentation
-------------
Functions
~~~~~~~~~
@subscribe(name\_event) With this decorator you can subscribe to all
events that are sent to name\_event.
manual subscribe
================
add\_subscribe(name\_event, function)
DEPRECATED (non-blocking)
=========================
send(name\_event, \*args, \*\*kwargs)
added in queue (non-blocking)
=============================
send\_queue(name\_event, \*args, \*\*kwargs)
run in new thread (non-blocking)
================================
send\_thread(name\_event, \*args, \*\*kwargs)
run blocking (blocking)
=======================
send\_blocking(name\_event, \*args, \*\*kwargs)
- Note: Currently running as thread to allow sharing of memory, if you
want an event to use more CPU (cores), you can run processes within
the event.
Attributes events
~~~~~~~~~~~~~~~~~
- events.subs
return:
.. code:: python
{'juanito': [<function __main__.example2>],
'pepito': [<function __main__.example>]}
- events.queue
return queue
queue is processed automatically and do not need to access this
attribute, but if you want you can use
https://docs.python.org/2/library/queue.html
- events.timeout
return int
It is the timeout of the get request queue. When it reaches the timeout
check the MainThread is alive, if so wait to get back, if not, it sends
a signal to the EventThread. You can modify it if you wish.
.. code:: python
from basicevents import events
events.timeout = 1
- these parameters are too, have documented above:
.. code:: python
add_subscribe, send, send_queue, send_thread, send_blocking
CHANGELOG
=========
1.1.0 (2015-08-14)
------------------
- Refactor code
- Added new functions: send\_queue, send\_thread, send\_blocking,
add\_subscribe
1.0.2 (2015-08-14)
------------------
- increase performance function send (19%+)
- increase performance subscribe (2%+)
1.0.1 (2015-08-13)
------------------
- fix pip install basicevents
1.0.0 (2015-08-13)
------------------
- Now you can run blocker way events
- break compatibility function send (check documentation)
0.1.5 (2015-08-12)
------------------
- update documentation
0.1.4 (2015-08-12)
------------------
- update documentation
- remove instant key in kwargs
0.1.3 (2015-08-12)
------------------
- Added changelog
- Auto convert md to rst in setup.py
===========
python basic events send non-blocking
Install
-------
.. code:: bash
pip install basicevents
Link pypi: https://pypi.python.org/pypi/basicevents
Example
-------
.. code:: python
# recommeded check all examples
from basicevents.events import (subscribe, send_thread, send_queue,
send_blocking, add_subcribe, send)
@subscribe("pepito")
def example(*args, **kwargs):
print "recv signal, values:", args, kwargs
def example2(*args, **kwargs):
print "manual subscribe"
# manual subscribe
add_subscribe("pepito", example2)
# add to queue signals (non-blocking)
send("pepito", 1, 2, 3, example="added queue")
# add to queue signals (non-blocking)
send_queue("pepito", 1, 2, 3, example="added queue")
# create new thread for this request (non-blocking)
send_thread("pepito", 1, 2, 3, example="new thread")
# This is blocking
send_blocking("pepito", 1, 2, 3, example="blocking")
Documentation
-------------
Functions
~~~~~~~~~
@subscribe(name\_event) With this decorator you can subscribe to all
events that are sent to name\_event.
manual subscribe
================
add\_subscribe(name\_event, function)
DEPRECATED (non-blocking)
=========================
send(name\_event, \*args, \*\*kwargs)
added in queue (non-blocking)
=============================
send\_queue(name\_event, \*args, \*\*kwargs)
run in new thread (non-blocking)
================================
send\_thread(name\_event, \*args, \*\*kwargs)
run blocking (blocking)
=======================
send\_blocking(name\_event, \*args, \*\*kwargs)
- Note: Currently running as thread to allow sharing of memory, if you
want an event to use more CPU (cores), you can run processes within
the event.
Attributes events
~~~~~~~~~~~~~~~~~
- events.subs
return:
.. code:: python
{'juanito': [<function __main__.example2>],
'pepito': [<function __main__.example>]}
- events.queue
return queue
queue is processed automatically and do not need to access this
attribute, but if you want you can use
https://docs.python.org/2/library/queue.html
- events.timeout
return int
It is the timeout of the get request queue. When it reaches the timeout
check the MainThread is alive, if so wait to get back, if not, it sends
a signal to the EventThread. You can modify it if you wish.
.. code:: python
from basicevents import events
events.timeout = 1
- these parameters are too, have documented above:
.. code:: python
add_subscribe, send, send_queue, send_thread, send_blocking
CHANGELOG
=========
1.1.0 (2015-08-14)
------------------
- Refactor code
- Added new functions: send\_queue, send\_thread, send\_blocking,
add\_subscribe
1.0.2 (2015-08-14)
------------------
- increase performance function send (19%+)
- increase performance subscribe (2%+)
1.0.1 (2015-08-13)
------------------
- fix pip install basicevents
1.0.0 (2015-08-13)
------------------
- Now you can run blocker way events
- break compatibility function send (check documentation)
0.1.5 (2015-08-12)
------------------
- update documentation
0.1.4 (2015-08-12)
------------------
- update documentation
- remove instant key in kwargs
0.1.3 (2015-08-12)
------------------
- Added changelog
- Auto convert md to rst in setup.py
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
basicevents-1.1.0.tar.gz
(3.7 kB
view hashes)