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 Dates.
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
|