Skip to main content
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!

Package for HipChat's v2 API

Project Description

A Python package for HipChat’s v2 JSON REST API. It’s based on v2’s navigability and self-declaration.

Installation

HypChat can either be installed from PyPI:

pip install hypchat

Or from source:

python setup.py install

Concepts

There are two basic types in HypChat: Linker and RestObject. They are not meant to be instantiated directly but instead created as references from other objects.

Linker

A simple callable that represents an unfollowed reference.

l.url
The URL this object points to
l()
Calling a Linker will perform the request and return a RestObject

RestObject

A subclass of dict, contains additional functionality for links and actions.

Other Actions

Many of the v2 types define additional types, eg Rooms have methods for messaging, setting the topic, getting the history, and inviting users to the room. These are implemented as methods of subclasses. The complete listing is in the Type List.

Timezone Handling

HypChat uses aware datetime objects throughout by the dateutil module. However, the HipChat API universally uses UTC.

For methods that take a datetime, if a naive object is given, it will be assumed to be in UTC. If this is not what you mean, dateutil.tz has a wonderful selection of timezones available.

Usage

First, create a HypChat object with the token

hc = HypChat("mytoken")

If you use Hipchat Server

hc = HypChat("mytoken", endpoint="https://hipchat.example.com")

There are several root links:

rooms = hc.rooms()
users = hc.users()
emots = hc.emoticons()
caps = hc.capabilities()

In addition, the HypChat object has methods for creating objects and directly referencing the basic types.

For example, you might do:

for room in (r for r in hipchat.rooms(expand='items') if r['last_active'] < datetime.datetime(2013, 12, 1)):
        room.owner.message("Your room is dead; maybe archive it")

Since room.owner is a User stub, not just a generic object. (The Room objects are not stubs, since the expand keyword is used).

Downloading history is as easy as:

list(HypChat(token).get_room(id).history(datetime.datetime.utcnow()).contents())

Note that this may eat up many requests for large rooms.

Console

If you call python -m hypchat, a interactive prompt (using IPython if available) will appear. The environment will contain hipchat, an instance of the HypChat object. The token is pulled from ~/.hypchat, /etc/hypchat, or the environment variable HIPCHAT_TOKEN.

Type List

See TYPES.rst

TODO List

  • API Links
Release History

Release History

This version
History Node

0.21

History Node

0.20

History Node

0.19

History Node

0.18

History Node

0.17

History Node

0.16

History Node

0.15

History Node

0.14

History Node

0.13

History Node

0.12

History Node

0.11

History Node

0.10

History Node

0.9

History Node

0.8

History Node

0.7

History Node

0.6

History Node

0.5

History Node

0.4

History Node

0.3

History Node

0.2

History Node

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
hypchat-0.21.tar.gz (16.2 kB) Copy SHA256 Checksum SHA256 Source Jan 11, 2016

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