Skip to main content
Help us improve Python packaging – donate today!

Python library for GNIP.

Project Description

gnippy provides an easy way to access the Power Track stream provided by GNIP. You can also use gnippy to programatically add rules to your Power Track stream.

Install

pip install gnippy

Quickstart

Create a .gnippy file and place it in your home directory. It should contain the following:

[Credentials]
username = user@company.com
password = mypassword

[PowerTrack]
url = https://my.gnip.powertrack/url.json

Fire up the client:

#!/usr/bin/env python
import time
from gnippy import PowerTrackClient

# Define a callback
def callback(activity):
    print activity

# Create the client
client = PowerTrackClient(callback)
client.connect()

# Wait for 2 minutes and then disconnect
time.sleep(120)
client.disconnect()

If you don’t want to create a config file or you want it put it in another location:

client = PowerTrackClient(callback, config_file_path="/etc/gnippy")
# OR ... provide the url and authentication credentials to override any config files
client = PowerTrackClient(callback, url="http://my.gnip.powertrack/url.json", auth=("uname", "pwd"))

Adding PowerTrack Rules

If you want to add rules to your PowerTrack:

from gnippy import rules
from gnippy.errors import RuleAddFailedException

# Synchronously add rules
try:
    rules.add_rule('(Hello OR World OR "this is a test") AND lang:en', tag="MyRule")
    rules.add_rule('Rule without a tag')
except RuleAddFailedException:
    pass # uh oh

# OR ... synchronously add multiple rules at once
rule_list = []
rule_list.append(rules.build("Hello World", tag="asdf"))
rule_list.append(rules.build("Rule Without a Tag"))
try:
    rules.add_rules(rule_list)
except RuleAddFailedException:
    pass # uh oh

# OR ... manually pass in params - overrides any config files
rules.add_rule("My Rule String", tag="mytag", url="http://my.gnip.powertrack/url.json", \
               auth=("uname", "pwd"))

Listing Active PowerTrack Rules

from gnippy import rules
from gnippy.errors import RulesGetFailedException

try:
    rules_list = rules.get_rules()
    # rules_list is in the format:
    # [
    #    { "value": "(Hello OR World) AND lang:en" },
    #    { "value": "Hello", "tag": "mytag" }
    # ]
except RulesGetFailedException:
    pass # uh oh

Deleting PowerTrack Rules

from gnippy import rules
from gnippy.errors import RuleDeleteFailedException, RulesGetFailedException

try:
    rules_list = rules.get_rules()
    # Suppose I want to delete the first rule in the list
    rules.delete_rule(rules_list[0])
    # OR ... I want to delete ALL rules
    rules.delete_rules(rules_list)

except RuleDeleteFailedException, RulesGetFailedException:
    pass # uh oh

Source available on GitHub: http://github.com/abh1nav/gnippy/

Release history Release notifications

History Node

0.6.2

History Node

0.6.1

History Node

0.6.0

History Node

0.5.2

History Node

0.5.1

History Node

0.5.0

History Node

0.4.7

History Node

0.4.6

History Node

0.4.5

History Node

0.4.4

History Node

0.4.3

History Node

0.4.2

History Node

0.4.1

History Node

0.4.0

History Node

0.3.8

History Node

0.3.7

History Node

0.3.6

History Node

0.3.5

This version
History Node

0.3.4

History Node

0.3.3

History Node

0.3.2

History Node

0.3.1

History Node

0.3.0

History Node

0.2.0

History Node

0.1.4

History Node

0.1.3

History Node

0.1.2

History Node

0.1.1

History Node

0.1.0

Download files

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

Filename, size & hash SHA256 hash help File type Python version Upload date
gnippy-0.3.4.tar.gz (6.8 kB) Copy SHA256 hash SHA256 Source None May 20, 2013

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging CloudAMQP CloudAMQP RabbitMQ AWS AWS Cloud computing Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page