Airtable connector for the Aracnid integration framework
Project description
aracnid-airtable
A Python Airtable connector implementation for the aracnid-base contract.
Overview
aracnid-airtable provides an AirtableConnector implementation that follows the shared connector interface used across aracnid-* connector modules. It wraps Airtable CRUD operations with consistent validation, normalization, and error handling semantics.
Installation
Using Poetry:
poetry add aracnid-airtable
Using pip:
pip install aracnid-airtable
Requirements
- Python 3.12+
- Airtable API key with access to the target base/table
Configuration
Set your Airtable API key in the environment:
export AIRTABLE_API_KEY=your_api_key
Quick Start
from aracnid_airtable.connector import AirtableConnector
connector = AirtableConnector(
base_id="appXXXXXXXXXXXXXX",
table_name="MyTable",
)
created = connector.create_one({"name": "example", "status": "active"})
record_id = created["id"]
one = connector.read_one(record_id)
many = connector.read_many({"status": "active"})
updated = connector.update_one(record_id, {"status": "inactive"})
replaced = connector.replace_one(record_id, {"name": "replacement"})
deleted = connector.delete_one(record_id, hard=True)
API Notes
read_one(record_id)returnsNonewhen the record is not found.delete_one(record_id, hard=False)raisesRuntimeErrorbecause soft delete is not supported by this connector.delete_one(record_id, hard=True)performs a hard delete and returns:Trueif deletedFalseif the record does not exist
Testing
Run default tests (excluding external-service integration tests):
pytest -m "not integration" -q
Run integration tests (real Airtable):
pytest -m integration -q
Integration test environment variables
AIRTABLE_API_KEYAIRTABLE_BASE_IDAIRTABLE_TABLE_NAME
If these are not set, integration tests will skip.
Development
Run all tests:
pytest -q
Run linting/type checks (if configured in your environment):
ruff check .
pyright
License
This project is licensed under the MIT License - see the LICENSE file for details
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 aracnid_airtable-1.2.0.tar.gz.
File metadata
- Download URL: aracnid_airtable-1.2.0.tar.gz
- Upload date:
- Size: 5.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e4c7e88228a5eb8084e1125b77ad14e08089e6217fdbbdd9b6801d6d14b15c06
|
|
| MD5 |
c0adbf43cb3e5415f4f37b58e8efc8cf
|
|
| BLAKE2b-256 |
a0b69f0fa1d3d3c99195edc26cdb22fc51fa2b375b4d72608a9a2202ec5a0d98
|
Provenance
The following attestation bundles were made for aracnid_airtable-1.2.0.tar.gz:
Publisher:
publish.yml on aracnid/aracnid-airtable
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
aracnid_airtable-1.2.0.tar.gz -
Subject digest:
e4c7e88228a5eb8084e1125b77ad14e08089e6217fdbbdd9b6801d6d14b15c06 - Sigstore transparency entry: 2204704699
- Sigstore integration time:
-
Permalink:
aracnid/aracnid-airtable@33fd8c193cd96b285e0be797810d88a745045cc3 -
Branch / Tag:
refs/tags/v1.2.0 - Owner: https://github.com/aracnid
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@33fd8c193cd96b285e0be797810d88a745045cc3 -
Trigger Event:
push
-
Statement type:
File details
Details for the file aracnid_airtable-1.2.0-py3-none-any.whl.
File metadata
- Download URL: aracnid_airtable-1.2.0-py3-none-any.whl
- Upload date:
- Size: 6.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0c922ea3a0d9fb635072e27351d9e870a3b3c95d6d73c152542adda7780a4b53
|
|
| MD5 |
c5443105cd623467ca77957fd7022b8e
|
|
| BLAKE2b-256 |
cfd4ad1d1f1d32785e3a05e833da2858d7c3d6e74ca4afa0a7651ac9925f456e
|
Provenance
The following attestation bundles were made for aracnid_airtable-1.2.0-py3-none-any.whl:
Publisher:
publish.yml on aracnid/aracnid-airtable
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
aracnid_airtable-1.2.0-py3-none-any.whl -
Subject digest:
0c922ea3a0d9fb635072e27351d9e870a3b3c95d6d73c152542adda7780a4b53 - Sigstore transparency entry: 2204704702
- Sigstore integration time:
-
Permalink:
aracnid/aracnid-airtable@33fd8c193cd96b285e0be797810d88a745045cc3 -
Branch / Tag:
refs/tags/v1.2.0 - Owner: https://github.com/aracnid
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@33fd8c193cd96b285e0be797810d88a745045cc3 -
Trigger Event:
push
-
Statement type: