Skip to content

amancevice/knackhq

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

50 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

KnackHQ

pypi python pytest coverage maintainability

Python wrapper for KnackHQ API

Installation

pip install knackhq

Connect to KnackHQ

Create a KnackApp instance to begin interacting with KnackHQ. Supply an app ID, an API key, and an optional API endpoint URL to the client:

import knackhq

app = knackhq.KnackApp('<app_id>', '<api_key>')

Alternatively, set these values in your environment with:

  • KNACKHQ_APP_ID
  • KNACKHQ_API_KEY
  • KNACKHQ_ENDPOINT (optional)
app = knackhq.KnackApp()

Reading from KnackHQ

Raw requests

You may wish to send a raw request response from the KnackHQ API:

app.request('GET', 'objects/object_1/records')  # or,
app.request('GET', 'objects', 'object_1', 'records')

Getting Objects

Use dictionary syntax to get objects by name or key:

obj = app['object_1']  # or,
obj = app['MyObject']

Access object metadata using dictionary syntax:

obj['name']
obj['key']
obj['fields']

Getting Records

Use the get_records() method to iterate over records in an object:

for record in obj.get_records():
    print(record)

Supply arguments to get_records() to filter records. Options include:

  • record_id
  • page
  • rows_per_page
  • sort_field
  • sort_order
  • filters

Use filters to refine your search:

filters = [
    {
        field: 'field_1',
        operator: 'is',
        value: 'test'
    }, {
        field: 'field_2',
        operator: 'is not blank'
    }
]

for record in obj.get_records(filters=filters):
    print(record)

If you know the ID of the record, use get_record() to return a single record:

record = obj.get_record('1234567890ABCDEF')

Writing Records

TODO