Skip to main content

Google Sheets as a Backend — a database-like interface for Google Sheets.

Project description

GSAB — Google Sheets as a Backend

PyPI Python License: MIT Tests

A database-like interface for Google Sheets — schemas, validation, field encryption, async CRUD, server-side queries, and a friction-free CLI. Sign in once; no Google Cloud setup required.

🌐 gsab.ajmalaksar.com  ·  📖 Docs  ·  🗺️ Roadmap

Install

pip install gsab          # core
pip install "gsab[pandas]"  # + DataFrame support

Get started

gsab auth login           # browser sign-in (drive.file scope) — that's the whole setup

Then define a schema and read/write your sheet. Full usage, examples and the API → the documentation.

Features

  • Friction-free authgsab auth login opens a browser and uses the minimal drive.file scope. No Cloud project, no JSON keys. DIY modes cover existing sheets, your own OAuth client, gcloud, and service accounts.
  • Schemas & validation — typed fields, rules and uniqueness, enforced on every write.
  • Field encryption — flag a field encrypted=True and it's sealed before it reaches the sheet.
  • Async CRUD + rich filtersinsert / read / update / delete with $gt / $in / $contains / $regex and more.
  • Server-side queriesquery() runs the Google Visualization query language (filter, sort, aggregate) on Google's side, not in Python. Values come back type-correct.
  • pandas bridgeto_dataframe() / from_dataframe() and bulk_insert() for the whole analytics ecosystem.
  • Native chartschart() embeds a Google chart in the sheet; or hand to_dataframe() to matplotlib/Plotly.
  • Actionable errors — Google API errors become clear GSAB exceptions with retry/backoff and token refresh — readable by humans and LLM agents.
  • Secure tokens — stored in your OS keychain (keyring), with a 0600-file fallback.

Roadmap

Shipped (v0.3.0): auth + CLI · schemas, validation & encryption · async CRUD · type-correct server-side query · pandas bridge + bulk insert · native in-sheet charts · LLM-friendly errors + retry/backoff · keychain storage.

Coming next: MCP server (use your sheets from Claude) · terminal UI · real-time / reactive mode · server-side date filters · one-click hosted sign-in.

Live roadmap → gsab.ajmalaksar.com/#roadmap.

Releases

Versioned with SemVer; see CHANGELOG.md. Tagged releases (vX.Y.Z) publish to PyPI automatically via GitHub Actions.

License

MIT — see LICENSE.md. GSAB is an independent project, not affiliated with Google LLC.

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

gsab-0.3.0.tar.gz (34.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

gsab-0.3.0-py3-none-any.whl (30.4 kB view details)

Uploaded Python 3

File details

Details for the file gsab-0.3.0.tar.gz.

File metadata

  • Download URL: gsab-0.3.0.tar.gz
  • Upload date:
  • Size: 34.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for gsab-0.3.0.tar.gz
Algorithm Hash digest
SHA256 3a81f582fa33427f4f2d89a1ed6a9b7a3e2905001d6726f5293f68bd31ff9ffb
MD5 fcd986cca8294e5f7300f1c287a826cd
BLAKE2b-256 c7a15daa7d54d4aad9c115635d1752f01ccc27a9c38a9887a8f759a861d56f08

See more details on using hashes here.

Provenance

The following attestation bundles were made for gsab-0.3.0.tar.gz:

Publisher: publish.yml on ajmalaksar25/gsab

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file gsab-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: gsab-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 30.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for gsab-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 22a7abe878835f4c237028852c9fbb26467904456bc33c48ce36feb35c6d93f8
MD5 90a604b87ac3a4e61da8f00c4f9ae5ba
BLAKE2b-256 e0d16191d7719473627a150c7719b01e5eb75c3fcfbce0347fa5a3186786018c

See more details on using hashes here.

Provenance

The following attestation bundles were made for gsab-0.3.0-py3-none-any.whl:

Publisher: publish.yml on ajmalaksar25/gsab

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page