This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (pypi.python.org).
Help us improve Python packaging - Donate today!

A newslynx-opinionated wrapper around twython

Project Description

birdfeeder ====== Feed on tweets

Install

pip install birdfeeder

Test

Requires nose

nosetests

Usage

birdfeeder simplifies twython by taking care of alot the common problems in working with the Twitter API, including:

  • pagination
  • rate limiting
  • url unshortening
  • error handling

Thus far, we’ve implemented 5 methods: connect, search, list_timeline, user_timeline, and user_stats (a custom method):

Connect

If you have TWT_API_KEY, TWT_API_SECRET, TWT_ACCESS_TOKEN, and TWT_ACCESS_SECRET set as environmental variables, you can use all the methods without explicitly connecting. However, if you want to explicitly connect beforehand, you can also pass in a connection as conn to any method:

import birdfeeder

conn = birdfeeder.connect()

tweets = birdfeeder.search(q="hello world", count=10, conn=conn)
for t in tweets:
  print t

In addition, you can also pass in an authenticated user’s token with access_token:

import birdfeeder

for t in birdfeeder.search(q="hello world", access_token="authenticed_users_token"):
  print t

List Timeline

import birdfeeder

tweets = birdfeeder.list_timeline(owner_screen_name = 'cspan', slug = 'members-of-congress', count=100)
for t in tweets:
  print t

User Timeline

import birdfeeder

tweets = birdfeeder.user_timeline(screen_name = 'newslynx')
for t in tweets:
  print t

User Stats

This returns a dictionary of stats about a user, with the time it ran. It’s intended for creating a time series of a user’s metadata:

import birdfeeder

stats = birdfeeder.user_stats(screen_name = "newslynx")
print stats

Concurrency

add concurrency to any method via gevent:

tweets = birdfeeder.user_timeline(screen_name="brianabelson", concurrent=True)
for t in tweets:
  print t

Custom Options

We’ve added some custom options for each method, they are as follows:

  • throttle - the time in seconds to wait between each request (only relevant when paginate = True)
  • max_requests - the maximum number of requests to make (only relevant when paginate = True)
  • wait - the default number of seconds to wait after an error
  • backoff - the factor to multiply wait by after each error
  • timeout - the time in seconds at which point we should abandon an error prone request. Here, birdfeeder will log a warning, but will otherwise fail silently.

Here are the default arguments for all methods:

default_kws = {
  'paginate' : False,
  'concurrent': False,
  'num_workers': 20,
  'max_id': None,
  'throttle' : 15,
  'count' : 200,
  'max_requests' : None,
  'wait': 1,
  'backoff': 2,
  'timeout': 30
}

Streaming

Finally, we’ve included a simple streaming API client (from here). With this, you can pass in three functions on initialization: a parsing function, a storage function, and an error function, ie:

from birdfeeder import Stream

def parse(data):
  return data['text']

def store(data):
  print data

def error(status_code, data):
  pass

s = Stream(parse=parse, store=store, error=error)
s.statuses.filter(track='twitter')

Acknowledgements

To write this library, I heavily referenced Jeremy Singer-Vine’s excellent `twick <https://github.com/jsvine/twick>`__.

Release History

Release History

This version
History Node

0.1.9

History Node

0.1.8

History Node

0.1.7

History Node

0.1.6

History Node

0.1.5

History Node

0.1.3

History Node

0.1.2

History Node

0.1.1

History Node

0.1.0

History Node

0.0.9

History Node

0.0.8

History Node

0.0.7

History Node

0.0.6

History Node

0.0.5

History Node

0.0.4

History Node

0.0.3

History Node

0.0.2

History Node

0.0.1

Download Files

Download Files

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

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
birdfeeder-0.1.9.macosx-10.9-intel.exe (75.5 kB) Copy SHA256 Checksum SHA256 any Windows Installer Oct 7, 2014
birdfeeder-0.1.9.tar.gz (6.8 kB) Copy SHA256 Checksum SHA256 Source Oct 7, 2014

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting