Skip to main content

Capture data from an iterator as it gets pulled down stream.

Project description

Stream Tap

Capture data from an iterator as it gets pulled down stream.

Example

#!/usr/bin/env python
# -*- coding: utf-8 -*-


from stream_tap import Bucket
from stream_tap import stream_tap


def get_fruit(item):
    """Get things that are fruit.

    :returns: thing of item if it's a fruit"""
    if len(item) == 2 and item[1] == u"fruit":
        return item[0]


def get_metal(item):
    """Get things that are metal.

    :returns: thing of item if it's metal"""
    if len(item) == 2 and item[1] == u"metal":
        return item[0]


def certain_kind_tap(data_items):
    """
    :param data_items: A sequence of unicode strings
    """
    fruit_spigot = Bucket(get_fruit)
    metal_spigot = Bucket(get_metal)

    items = stream_tap((fruit_spigot, metal_spigot), data_items)

    # consume iterator.
    for item in items:
        print item

    return fruit_spigot.contents(), metal_spigot.contents()


def run():
    """
    Run the composition of csv_file_consumer and information tap
    with the csv files in the input directory, and collect
    the results from each file and merge them together,
    printing both kinds of results.

    """
    data_items = [
        [u"mushroom", u"fungus"],
        [u"tomato", u"fruit"],
        [u"topaz", u"mineral"],
        [u"iron", u"metal"],
        [u"dróżką", u"utf-8 sample"],
        [u"apple", u"fruit"],
        [u"cheese", u"dairy"],
        [u"peach", u"fruit"],
        [u"celery", u"vegetable"],
        [u"pear", u"fruit"],
        [u"ruby", u"mineral"],
        [u"titanium", u"metal"],
        [u"cat", u"animal"],
        [u"orange", u"fruit"],
        [u"WĄŻ", u"utf-8 sample"],
    ]

    results = certain_kind_tap(data_items)

    fruits, metals = results

    print("=== fruits ===")
    for fruit in fruits:
        print(fruit)

    print("=== metals ===")
    for metal in metals:
        print(metal)


if __name__ == "__main__":
    run()

Documentation

Read the docs: http://stream_tap.readthedocs.org/en/latest/

Contributing:

Submit any issues or questions here: https://github.com/johnwlockwood/stream_tap/issues.

Make pull requests to development branch of

https://github.com/johnwlockwood/stream_tap.

Documentation is written in reStructuredText and currently uses the

Sphinx style for field lists http://sphinx-doc.org/domains.html#info-field-lists

Check out closed pull requests to see the flow of development, as almost every change to master is done via a pull request on GitHub. Code Reviews are welcome, even on merged Pull Requests. Feel free to ask questions about the code.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

stream_tap-0.9.4.tar.gz (19.4 kB view details)

Uploaded Source

Built Distributions

stream_tap-0.9.4.macosx-10.12-x86_64.exe (73.4 kB view details)

Uploaded Source

stream_tap-0.9.4-py3.5.egg (12.0 kB view details)

Uploaded Source

stream_tap-0.9.4-py2.7.egg (11.7 kB view details)

Uploaded Source

File details

Details for the file stream_tap-0.9.4.tar.gz.

File metadata

  • Download URL: stream_tap-0.9.4.tar.gz
  • Upload date:
  • Size: 19.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for stream_tap-0.9.4.tar.gz
Algorithm Hash digest
SHA256 a39082c56f1b26e40a76aaf71d4ec135a9773d46782df921dbc3b5afff3f29e5
MD5 8ab395f561d78c3437e5c4bb4af51280
BLAKE2b-256 df3309309246b8252e9bc8eb3aec6c652fd1ad274716254c04c85ad0957a1838

See more details on using hashes here.

File details

Details for the file stream_tap-0.9.4.macosx-10.12-x86_64.exe.

File metadata

File hashes

Hashes for stream_tap-0.9.4.macosx-10.12-x86_64.exe
Algorithm Hash digest
SHA256 8aee262686f66bddb48c8bd6b52f54e5202d6c9b815a929e2882e418d9e57e05
MD5 f8bb13b35a6b617351b06a7d63c71a16
BLAKE2b-256 d0c99877d5e97df606fa028088daf8b94bf97de084773ff44a4975c85570e9ea

See more details on using hashes here.

File details

Details for the file stream_tap-0.9.4-py3.5.egg.

File metadata

File hashes

Hashes for stream_tap-0.9.4-py3.5.egg
Algorithm Hash digest
SHA256 771d1e85645fc6e09b1c4d428eb2f0472c17a79e82f9d573b8d0138d64c32105
MD5 a2295726dac77c9bac382ea703164de8
BLAKE2b-256 a0dbf287fd2b9c377a305a7e03ce9a76ba7e54dce7d23011e1e6f06f316406c8

See more details on using hashes here.

File details

Details for the file stream_tap-0.9.4-py2.7.egg.

File metadata

File hashes

Hashes for stream_tap-0.9.4-py2.7.egg
Algorithm Hash digest
SHA256 8ed73c026fd6ba18af5bb60e05ebeec5f5203b852ac47e211470f323d713ee07
MD5 f43ffad2ab943c32f2de14309c4f05b3
BLAKE2b-256 42720f25b407f4a5e34acce0e0ce61df6484e40dc6af6a7c431f67a6b6f11328

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page