Chan for Python, lovingly stolen from Go
Project description
# Go-style Chan for Python
Implements Go's chan type in Python.
Install with `pip install chan`
## Usage
You can `put` onto channels, and `get` from them:
```Python
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:
```Python
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.
```Python
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.

Implements Go's chan type in Python.
Install with `pip install chan`
## Usage
You can `put` onto channels, and `get` from them:
```Python
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:
```Python
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.
```Python
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.2.0.tar.gz
(3.9 kB
view hashes)