UNKNOWN
Project description
Sprinkler
=========
A small python library that helps you write co-routines
in an event-driven way. In short it 'sprinkles' data passed
to the '.sprinkle' function to all sub-classes of 'Task' in
a round robin manner.
A simple example:
from pysprinkler import Task, Sprinkler
class RemoteDBHandler(Task):
def __init__(self):
print("Started RemoteDBHandler")
def on_data(self, data):
print("RemoteDBHandler: {}".format(data))
def on_end(self):
print("Closing RemoteDBHandler")
class LocalDBHandler(Task):
def __init__(self):
print("Started LocalDBHandler")
def on_data(self, data):
print("LocalDBHandler: {}".format(data))
def on_end(self):
print("Closing LocalDBHandler")
class STNHandler(Task):
def __init__(self):
print("Started STNHandler")
def on_data(self, data):
print("STNHandler: {}".format(data))
def on_end(self):
print("Closing STNHandler")
rdb_handler = RemoteDBHandler()
ldb_handler = LocalDBHandler()
stn_handler = STNHandler()
s = Sprinkler([rdb_handler, ldb_handler, stn_handler])
s.start()
lines = ["Line 1", "Line 2", "Line 3", "Line 4", "Line 5"]
for line in lines:
# sends 'line' to all 'Task's in a
# round robin manner
s.sprinkle(line)
s.close()
Output:
Started RemoteDBHandler
Started LocalDBHandler
Started STNHandler
RemoteDBHandler: Line 1
LocalDBHandler: Line 1
STNHandler: Line 1
RemoteDBHandler: Line 2
LocalDBHandler: Line 2
STNHandler: Line 2
RemoteDBHandler: Line 3
LocalDBHandler: Line 3
STNHandler: Line 3
RemoteDBHandler: Line 4
LocalDBHandler: Line 4
STNHandler: Line 4
RemoteDBHandler: Line 5
LocalDBHandler: Line 5
STNHandler: Line 5
Closing RemoteDBHandler
Closing LocalDBHandler
Closing STNHandler
=========
A small python library that helps you write co-routines
in an event-driven way. In short it 'sprinkles' data passed
to the '.sprinkle' function to all sub-classes of 'Task' in
a round robin manner.
A simple example:
from pysprinkler import Task, Sprinkler
class RemoteDBHandler(Task):
def __init__(self):
print("Started RemoteDBHandler")
def on_data(self, data):
print("RemoteDBHandler: {}".format(data))
def on_end(self):
print("Closing RemoteDBHandler")
class LocalDBHandler(Task):
def __init__(self):
print("Started LocalDBHandler")
def on_data(self, data):
print("LocalDBHandler: {}".format(data))
def on_end(self):
print("Closing LocalDBHandler")
class STNHandler(Task):
def __init__(self):
print("Started STNHandler")
def on_data(self, data):
print("STNHandler: {}".format(data))
def on_end(self):
print("Closing STNHandler")
rdb_handler = RemoteDBHandler()
ldb_handler = LocalDBHandler()
stn_handler = STNHandler()
s = Sprinkler([rdb_handler, ldb_handler, stn_handler])
s.start()
lines = ["Line 1", "Line 2", "Line 3", "Line 4", "Line 5"]
for line in lines:
# sends 'line' to all 'Task's in a
# round robin manner
s.sprinkle(line)
s.close()
Output:
Started RemoteDBHandler
Started LocalDBHandler
Started STNHandler
RemoteDBHandler: Line 1
LocalDBHandler: Line 1
STNHandler: Line 1
RemoteDBHandler: Line 2
LocalDBHandler: Line 2
STNHandler: Line 2
RemoteDBHandler: Line 3
LocalDBHandler: Line 3
STNHandler: Line 3
RemoteDBHandler: Line 4
LocalDBHandler: Line 4
STNHandler: Line 4
RemoteDBHandler: Line 5
LocalDBHandler: Line 5
STNHandler: Line 5
Closing RemoteDBHandler
Closing LocalDBHandler
Closing STNHandler
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
pysprinkler-1.1.tar.gz
(1.7 kB
view details)
File details
Details for the file pysprinkler-1.1.tar.gz.
File metadata
- Download URL: pysprinkler-1.1.tar.gz
- Upload date:
- Size: 1.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0eafaf38dfb519d8d2857a9f47948e44c802927659280315ad5bd1827236fcac
|
|
| MD5 |
057249e913c5c2bd059693c51c1928fc
|
|
| BLAKE2b-256 |
0fcd93819859853dab4116fe0b639cfe2e48543b667de6637bf25f50250efce0
|