Skip to main content

Client library for Timetric (http://timetric.com/)

Project description

A client for Timetric (http://timetric.com).

Requirements (easy-installable, listed as prereqs in setup.py):

  • httplib2

  • python-dateutil

  • simplejson

Optionally, if you want to use OAuth authentication:

  • oauth

This is not listed as a prereq, so it won’t be installed by default.

Authentication setup

You’ll provide authentication information to the TimetricClient in a config dict. Timetric supports two types of authentication: OAuth and API tokens. You can choose a method using the 'authtype' key to the config dict. The value of this key can be 'oauth' or 'apitoken'; if not given it defaults to 'oauth'.

If an API token is being used, there must be keys for:

  • ‘apitoken_key’

  • ‘apitoken_secret’

If OAuth is being used, there must also be keys for:

  • ‘consumer_key’

  • ‘consumer_secret’

and if you have already done the necessary key exchange, then this can also contain:

  • ‘access_key’

  • ‘access_token’

OAuth setup

The first time you use the OAuth protocol, you’ll need to do some key exchange with Timetric to set up your tokens.

>>> import timetric

# You need a config dict with at minimum your secret and key from Timetric # (see the “Applications” pane of the settings page). In a real app you’ll # want to make this config persistant (the shelve module is a lightweight # place to start) because the library will store OAuth authentication # information back to this config. >>> conf = {‘authtype’:’oauth’, … ‘consumer_key: ‘XXX’, … ‘consumer_secret’: ‘XXX’} >>> client = timetric.TimetricClient(conf)

# The first time through you’ll need to authorize your key with Timetric # by sending the user to an authorization request page. >> token = client.get_request_token() >>> import webbrowser >>> webbrowser.open(client.get_authorize_url(token))

# Once the user has authorized at that page, you can continue. >>> access_token = client.get_access_token(token)

# You can now re-authorize to use this token: >>> conf.update({‘oauth_key’:access_token.key, … ‘oauth_secret’:access_token.secret}) >>> client = timetric.TimetricClient(conf)

API token setup

>>> import timetric

# Having got your config dict from somewhere: >>> conf = {‘authtype’:’apitoken’, … ‘apitoken_key’: ‘XXX’, .. ‘apitoken-secret’: ‘XXX’}

# you initialize the timetric client: >>> client = timetric.TimetricClient(conf)

Usage

# There's no API method to get a list of a particular
# user's series, so you need to somehow "know" the series ID.
>>> series = client.series('p-DpewL0TO-iBE4nMBCTsQ')

# Get the latest value
>>> series.latest()
(1236707269.0, 2.0)

# Iterate over the whole dataset
>>> for (timestamp, value) in series:
...     print timestamp, value
1236463646.39 3.0
1236486562.94 5.0
1236493503.37 6.0

# Update given a single value
>>> series.update(14)

# Update given an iterable of (time, value) pairs
>>> import time
>>> data = [(time.time() - 100, 11), (time.time() + 100, 15)]
>>> series.update(data)

# Update given a file of CSV data
>>> series.update(open('/tmp/data.csv'))

# Clear all the data out of the series
>>> series.delete()

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

timetric-1.3.tar.gz (7.8 kB view details)

Uploaded Source

File details

Details for the file timetric-1.3.tar.gz.

File metadata

  • Download URL: timetric-1.3.tar.gz
  • Upload date:
  • Size: 7.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for timetric-1.3.tar.gz
Algorithm Hash digest
SHA256 52aff270fa4177c6e3860eebfe1328c30182a641391108252ab36290808aa6f4
MD5 d09c3a5b14d4962eaac60a136b6b3765
BLAKE2b-256 e4bda833511bffa32e14f5291e33cf50778ce5468225cc5b7fe249180d1ebcd4

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