Skip to main content

Flair API Client (Python) Build Status

This package provides a very simple API client for the Flair API. Since the Flair API uses the JSON-API standard, this client is just a very thin wrapper around a JSON API client, but provides hooks for a extending it with custom models.

Installation

Eventually this will be released on PyPi, for now you'll need to install via github

pip install git+git://github.com/flair-systems/flair-api-client-py.git

This package depdends on requests, and requires Python 3.5 or greater.

Usage

from flair_api import make_client

client = make_client(client_id, client_secret, 'https://api.flair.co/')

# retrieve a list of structures available to this account
structures = client.get('structures')

# get a single room by id
room = client.get('rooms', id="1")

# fetch vents in a room
vents = room.get_rel('vents')

# delete a room
room.delete()

# update a room
room.update(attributes={'name': 'Master Bedroom'}, relationships=dict(structure=structures[0], vents=vents))

# create a vent
vent = c.create('vents', attributes={'name': 'North Vent'}, relationships=dict(room=room))

# Add a vent to a room
room.add_rel(vents=vent)

# Update vent relationship for a room
room.update_rel(vents=[vent])

# Delete a vent relationship for a room
room.delete_rel(vents=vent)

Authorization

At the moment, this package only supports authenticating to the Flair API using a client credentials request. This will give access to resources owned by the user to whom the credentials were issued. Support for other OAuth flow will be coming in future releases.

Extension

If, instead of having requests initialize or update the default Resource object, you'd like to use your own classes you can initialize the client with a mapper:

from flair_api import make_client, Resource

class User(Resource):
    def __init__(*args, **kwargs):
        self.__super__.init(*args, **kwargs)
        
    def __str__(self):
        return "User: " + self.attributes['name']
        
client = make_client(client_id, client_secret, 'https://api.flair.co/', mapper={'users': User})

users = client.get('users')

for user in users:
    print(user)  # "User: Edward", "User: Kenny", "User: Danimal"

Contributing

Contributions are welcome by anyone. To get started, sign the Contributor License Agreement.

License

Copyright 2016 by Standard Euler, Inc

Licensed under the Apache Public License 2.0. See LICENSE.

Release files for hass-flair-api 1.1.1

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

Source distribution (sdist)

Source distribution for hass-flair-api 1.1.1
File Size Uploaded
hass-flair-api-1.1.1.tar.gz 9.2 kB Details

Release files / hass-flair-api-1.1.1.tar.gz

Download URL hass-flair-api-1.1.1.tar.gz
Size 9.2 kB
Tags Source
SHA-256 checksum
How to use checksums
8e18d85ef106a6f2e88d504f47146a96b89ebb673d4d38416b7d678b5f1b7832
BLAKE2b-256 checksum
How to use checksums
20226073cb65b90964ddc9829329718e2dc1e99e6bcad758bc34c4e3e65a6749
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.0 CPython/3.9.5

Release history Release notifications | RSS feed

This release

1.1.1 This release

1 release file

1.1.0

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