Skip to main content

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.

https://nojsstats.appspot.com/UA-41669691-1/github.com

Metadata

Release files for chan 0.3.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for chan 0.3.1
File Size Uploaded
chan-0.3.1.tar.gz 6.5 kB Details

Release files / chan-0.3.1.tar.gz

Download URL chan-0.3.1.tar.gz
Size 6.5 kB
Tags Source
SHA-256 checksum
How to use checksums
8dd6fb3478513f14190357459ac9db24fc43bf8715edd5135a66460402fc1180
BLAKE2b-256 checksum
How to use checksums
a436f9cdba9b26df384d3c6c0e85fd1e9692f7a778de2906ad2d12cacacc0fa5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

0.3.1 This release

1 release file

0.3.0

1 release file

0.2.1

1 release file

0.2.0

1 release file

0.1.0

1 release file

0.1-dev

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page