Welcome, guest | Sign In | My Account | Store | Cart

Notice! PyPM is being replaced with the ActiveState Platform, which enhances PyPM’s build and deploy capabilities. Create your free Platform account to download ActivePython or customize Python with the packages you require and get automatic updates.

Download
ActivePython

treasuryio is unavailable in PyPM, because there aren't any builds for it in the package repositories. Click the linked icons to find out why.

 Python 2.7Python 3.2Python 3.3
Windows (32-bit)
Windows (64-bit)
Mac OS X (10.5+)
Linux (32-bit)
Linux (64-bit)
0.0.3 Failed View build log
 
Links
Author
License
MIT
Dependencies
Lastest release
version 0.0.3 on Jan 9th, 2014

System Message: WARNING/2 (<string>, line 2)

Title underline too short.

pytreasuryio
======

Access .. _treasury.io: http://treasury.io from Python.

This is a package consisting of a single, simple function for submitting SQL queries to .. _treasury.io: http://treasury.io from python. While you could simply copy-and-paste the function from script-to-script, this makes it quicker and easier to get up and running!

It also has some helpers to make a Twitter bot from the treasury.io data.

Installation

System Message: WARNING/2 (<string>, line 10)

Title underline too short.

Installation
--------

Install with pip.:

pip install treasuryio

Example

Basic query

System Message: WARNING/2 (<string>, line 19)

Title underline too short.

Basic query
~~~~~~~~~

Send an SQL query and receive a pandas data frame.:

# Operating cash balances for May 22, 2013
import treasuryio
sql = 'SELECT * FROM "t1" WHERE "date" = \'2013-05-22\';'
treasuryio.query(sql)
Twitter bot

System Message: WARNING/2 (<string>, line 28)

Title underline too short.

Twitter bot
~~~~~~~~~

Write a ~/.twitter.yml file.:

consumer_key: oeshaoduhsaousaoeuhts
consumer_secret: b233tsao-enuhsaoehsunoesudtuhoelaouhs2uo
access_token: 2349081293-astoehusatoehusaoeustahoeuhh2AOEUTAouhc
access_token_secret: 9023uonshesuaHONETuoeuoeouo0eOHNEuhOuoeu

Define a function that produces the text of the tweet, and decorate it with the @treasurio.tweet decorator.:

import treasuryio
import humanize
import math

MIL = 1e6

# Helpers to humanize numbers / dates
def human_number(num):
    return humanize.intword(int(math.ceil(num))).lower()

def human_date(date):
    return humanize.naturalday(date).title()

@treasuryio.tweet
def total_debt_tweet():
    df = treasuryio.query('SELECT date, close_today FROM t3c WHERE (item LIKE \'%subject to limit%\' AND year = 2013 AND month >=1) ORDER BY date DESC')

    # determine length of DataFrame
    end = len(df)-1

    # extract current amount and amount at the beginning of the year
    current_amt = df['close_today'][0]*MIL
    previous_amt = df['close_today'][end]*MIL

    # calculate change
    delta = abs(current_amt - previous_amt)

    # generate word to represnet the direction of change
    if current_amt > previous_amt:
        change = "increased"
    elif current_amt < previous_amt:
        change = "decreased"

    # humanize values
    # Notice the included ``human_date`` and ``human_number`` functions which simplify these values for you
    current_date = human_date(df['date'][0])
    amt = human_number(current_amt)
    delta = human_number(delta)
    previous_date = human_date(df['date'][end])

    # generate tweet
    vals = (current_date, amt, change, previous_date, 'http://treasury.io')
    return "As of %s, the US Gov is $%s in debt. This amount has %s since %s - %s" % vals

Then just run it.:

total_debt_tweet()

You can get fancy by switching the functions that you use.:

import treasuryio
import random

@treasurio.tweet
def tweet_a():
    # ...

@treasurio.tweet
def tweet_b():
    # ...

@treasurio.tweet
def tweet_c():
    # ...

random.choice([tweet_a, tweet_b, tweet_c])()

Subscribe to package updates

Last updated Jan 9th, 2014

What does the lock icon mean?

Builds marked with a lock icon are only available via PyPM to users with a current ActivePython Business Edition subscription.

Need custom builds or support?

ActivePython Enterprise Edition guarantees priority access to technical support, indemnification, expert consulting and quality-assured language builds.

Plan on re-distributing ActivePython?

Get re-distribution rights and eliminate legal risks with ActivePython OEM Edition.