Skip to main content

A Python ORM for Airtable.

Project description

airstorm

PyPI version Documentation Status codecov

Airstorm is a dynamic Python ORM for Airtable. It allows you to easily interact with any base using Python with minimal setup.

Main Features

  • Object-oriented interface.
  • Dynamic generation of data models from schema.
  • Automatic foreign-key resolution.
  • Caching layer to avoid abusing the Airtable API.

Installation

pip install airstorm

Usage

from airstorm.base import Base
jamba_juice = Base('your_base_id', 'your_api_key', {'your': 'schema'})
smoothy = jamba_juice.Smoothie('some_smoothie_id')  # Get your table record.
for fruit in smoothy.fruits:  # Get linked record in a breeze.
    print(fruit.name)  # Access any field data.
print(smoothy.fruits.names) # Access to mutliple record field data at once.

Getting the Schema

Unfortunatly currently this part of the process is not ideal. Because Airtable does not provide access to the schema via their API, you'll have to "download" the schema manually via a web browser of choice.

The following gist is a script that you can run on a Chrome console from the Airtable base API page to get back the JSON schema that airtstorm is expecting to be fed with.

Roadmap

  • Field validation where possible.
  • Push changes. Currently we are read-only.
  • Downlading schema automatically using pyppeteer.
  • Pythonic formulas.

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

airstorm-0.1.0.dev2.tar.gz (9.5 kB view details)

Uploaded Source

Built Distribution

airstorm-0.1.0.dev2-py3-none-any.whl (12.0 kB view details)

Uploaded Python 3

File details

Details for the file airstorm-0.1.0.dev2.tar.gz.

File metadata

  • Download URL: airstorm-0.1.0.dev2.tar.gz
  • Upload date:
  • Size: 9.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.9.1

File hashes

Hashes for airstorm-0.1.0.dev2.tar.gz
Algorithm Hash digest
SHA256 003b9471f3b93f17782cfe70e8fc0903a73630c465438a810ebf9017bdafa4e2
MD5 c5b9fcf1f0f295945d802b711af46645
BLAKE2b-256 2195de18e30fcc37ef02111bbf7b76763ea0c18ba1912d9ae617a69703ba8d55

See more details on using hashes here.

File details

Details for the file airstorm-0.1.0.dev2-py3-none-any.whl.

File metadata

  • Download URL: airstorm-0.1.0.dev2-py3-none-any.whl
  • Upload date:
  • Size: 12.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.9.1

File hashes

Hashes for airstorm-0.1.0.dev2-py3-none-any.whl
Algorithm Hash digest
SHA256 5ee3bc19dc72b22c90b7114a4df72d6210e00255ee60cd0e59a4d1e8a20596e6
MD5 80f1f6bb0d8c2ceb8ed8ac8cffe84fc2
BLAKE2b-256 2a2cb5589140692b7b4e770f29a1d412f041cf72ae6ea8df44d56b56c7aacb30

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