Python DB-API and SQLAlchemy interface for Airtable.
Project description
airtable-db-api
A Python DB API 2.0 for Airtable
This module allows you to query Airtable using SQL. It exposes:
- a Python DB API 2.0 (per PEP 249)
- a SQLAlchemy Dialect (see also "Developing new Dialects")
- a Superset Engine Spec
SQLAlchemy support
This module provides a SQLAlchemy dialect.
from sqlalchemy.engine import create_engine
engine = create_engine(
'airtable://:keyXXXX@appYYY?peek_rows=10&tables=tableA&tables=tableB',
date_columns={"tableA": ["My Date Field"]},
)
Metadata
At various points we need to know:
- The list of Tables supported in the Base
- The list of columns (Fields) supported on a given Table
- The type information for each Field
As of now we solve 1) by passing in a list of Tables using the tables
query parameter on the URL.
We solve 2) and 3) using some combination of the peek_rows
query parameter specifying the number of rows to fetch from Airtable to guess Field types and a date_columns
engine parameter to specify which columns should be parsed as Date
s.
Alternatively, 1-3 could all be solved with a comprehensive base_metadata
engine parameter that specifies the Tables and Fields. There are a number of ways to generate this, but one approach is scraping the Base's API docs page using a technique like this.
Further options are documented here
Development
Python
$ pip install -r requirements-dev.txt
pre-commit
$ pre-commit install
black
Can be run manually as:
black --target-version py37
Roadmap
- Support for Airtable's Metadata API
- Support passed in Airtable Metadata (w/ types)
- Cleanup configuration (passed as query param on URL vs engine parameters)
- Built in Metadata scraper (not using Metadata API)
- Caching of field type "peeking"
- Datetime support
- More comprehensive testing
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file sqlalchemy-airtable-0.0.1.dev3.tar.gz
.
File metadata
- Download URL: sqlalchemy-airtable-0.0.1.dev3.tar.gz
- Upload date:
- Size: 14.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.0 CPython/3.10.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 99fc5f58995a3ea5e5e460a4269f99f091e3726ea455ae11b2aa3a4efcccc06d |
|
MD5 | 39e96b0ef1ae85422340f94c7decbee5 |
|
BLAKE2b-256 | 5380146eb5f33dee69f4f2b02468336d5eee6ea4eafa4e73efd961597aef622e |
File details
Details for the file sqlalchemy_airtable-0.0.1.dev3-py3-none-any.whl
.
File metadata
- Download URL: sqlalchemy_airtable-0.0.1.dev3-py3-none-any.whl
- Upload date:
- Size: 12.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.0 CPython/3.10.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d532238c529398ec922d275baa70f36007a2af8e40997a9467b984a7c29a56b9 |
|
MD5 | 5744336e8d7136f7e4ae734ba3a54099 |
|
BLAKE2b-256 | 01714a62080a8ef119335d6401b0ae10ff78404262ba98531baf4cb8684d4e85 |