Releases: lfparis/airbase
Releases · lfparis/airbase
Minor Updates
See PR #23:
- Modified
raise_or_log_error()to process fromClientResponseobject - Added subclass
AirbaseResponseExceptionforClientResponseerrors.
Minor Updates
See PR #22:
Coalesced record request methods where possible. And:
Addressed Issue #16
Airtable()instances can now be created inside and outsideasync withblocks:
at = Airtable()
....
at.close()
# vs
async with Airtable() as at:
....Addressed Issue #17
post_record,post_records,updated_recordandupdate_recordsmethods return created or modified records.delete_recordanddelete_recordsreturn ids and deleted status of records.- errors return response data payload.
Addressed Issue #18
- Response codes
500and502added to exponential backoff
Fixed Issue #19
- Added
logging_levelkwarg to all classes, set to'info'by default. Each class has a separate logger instance which inherits the logging level of its parent.
async with Airtable(logging_level="info") as at:
base = await at_user.get_base("<Base ID>", key="id")
table = await base.get_table("<Table Name>", key="name")- Logging level can be changed for each class instance:
table.logger.level = "error"Minor Updates
- Fixed Issue 13 - Airtable class now takes 2 new kwargs:
raise_for_status: which will raise anAirbaseExceptionfor any API call not in 200s. See usage below:
async with Airtable(raise_for_status=True):
verbosewhich logs the stack trace for any API call not in 200s:
async with Airtable(verbose=True)
- Fixed Issue 14 - Delete Records accepts records without a
fieldskey - Added overall Record validation to all REST methods
Minor Updates
The following methods can now take the typecast kwarg which will allow new options to be added to Single and Multiple Select Fields.
await table.post_record(record, typecast=True)await table.post_records(records, typecast=True)await table.update_record(record, typecast=True)await table.update_records(records, typecast=True)
Minor Updates
- Added
timeoutkwarg to Airtable() constructor. Default value is kept at300to match aiohttp ClientTimeout
Minor Fixes
BaseAirtable._request()method simplified
Minor Fixes
setup.pysimplifications and optional installs- Added
py.typedfor PEP 561 compatibility - Changes to
airtable.py: handle cases with no response, and no server calls for known base ids or table names
Pre-Alpha
Pre-Alpha
Pre-Alpha
- Table Class can be artificially created outside of Metadata API for those accounts without early access, via Airtable.get_table() or Base.get_table()
- Base Class can also be artificially created via Airtable.get_base()