Chan for Python, lovingly stolen from Go
Project description
Implements Go’s chan type in Python.
Install with pip install chan
Source at http://github.com/stuglaser/pychan
Usage
You can put onto channels, and get from them
c = Chan()
# Thread 1
c.put("Hello")
# Thread 2
print "Heard: %s" % c.get()
Channels can be closed (usually by the sender). Iterating over a channel gives all values until the channel is closed
c = Chan()
# Thread 1
c.put("It's")
c.put("just")
c.put("contradiction")
# Thread 2
for thing in c:
print "Heard:", thing
You can wait on multiple channels using chanselect. Pass it a list of input channels and another of output channels, and it will return when any of the channels is ready
def fan_in(outchan, input1, input2):
while True:
chan, value = chanselect([input1, input2], [])
if chan == input1:
outchan.put("From 1: " + str(value))
else:
outchan.put("From 2 " + str(value))
You can see more examples in the “examples” directory.
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
chan-0.3.1.tar.gz
(6.5 kB
view details)
File details
Details for the file chan-0.3.1.tar.gz
.
File metadata
- Download URL: chan-0.3.1.tar.gz
- Upload date:
- Size: 6.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8dd6fb3478513f14190357459ac9db24fc43bf8715edd5135a66460402fc1180 |
|
MD5 | 8c77611b00fc47a472ca36530ced5227 |
|
BLAKE2b-256 | a436f9cdba9b26df384d3c6c0e85fd1e9692f7a778de2906ad2d12cacacc0fa5 |