Skip to main content
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
--------
Install with pip.::

pip install treasuryio

Example
---------

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
~~~~~~~~~
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])()

Metadata

Release files for treasuryio 0.0.4

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

Source distribution (sdist)

Source distribution for treasuryio 0.0.4
File Size Uploaded
treasuryio-0.0.4.tar.gz 4.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for treasuryio 0.0.4
File Interpreter ABI Platform
treasuryio-0.0.4-py2-none-any.whl Python 2 none any Details

Total release size: 11.3 kB

Release files / treasuryio-0.0.4.tar.gz

Download URL treasuryio-0.0.4.tar.gz
Size 4.4 kB
Tags Source
SHA-256 checksum
How to use checksums
dd0a376da309d08c8a8e78b998611fc7ccbcaf1bb609548ef1bbad97f8063164
BLAKE2b-256 checksum
How to use checksums
dd32bc99c0bc0dc8599e84f4210883e585389f3e2322a92d89a39d7ae82ba67e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / treasuryio-0.0.4-py2-none-any.whl

Download URL treasuryio-0.0.4-py2-none-any.whl
Size 7.0 kB
Tags Python 2
SHA-256 checksum
How to use checksums
2ab26e0c518ce943bf0b6e29b0dfdf7682f6ab6a8974d5a600a54f3036606330
BLAKE2b-256 checksum
How to use checksums
78ce4f40c9fe8eb12affff2132d0aa0cc78b62efe912d461a9d12ea5c0c61f79
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

0.0.4 This release

2 release files

0.0.3

1 release file

0.0.2

1 release file

0.0.1

1 release file

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