Skip to main content

Scan Google Sheet

Read public Google Sheets into Polars DataFrames and LazyFrames — no auth, no service accounts, no API keys.

PyPI Python License: MIT


🦀 Now powered by Rust

This is a from-scratch rewrite of the original pure-Python scan-google-sheet. The public API is unchanged — read_google_sheet, scan_google_sheet, and the same exception hierarchy all work exactly as before — but the fetch-and-parse core underneath is now Rust, compiled to a native extension via PyO3 and maturin.

Before (0.1.x) Now (0.2.0)
HTTP client httpx (Python) reqwest (Rust, blocking + rustls)
CSV parsing polars (Python API) polars (Rust, native)
GIL behaviour Held during fetch + parse Released for the whole fetch + parse
Distribution Pure-Python wheel Compiled extension module (_core) per platform
Public API read_google_sheet, scan_google_sheet Unchanged — drop-in upgrade
Errors Python exception hierarchy Same hierarchy, raised from Rust

What didn't change: if you're upgrading from 0.1.x, this is a drop-in replacement — same function signatures, same return types, same exceptions. Nothing in your calling code needs to change.

On performance — set expectations correctly: for a single call, don't expect a dramatic speedup. Fetching a public sheet is dominated by TLS handshake time and Google's own server-side render of the sheet to CSV — typically 90%+ of total latency — neither of which any client-side language touches. The original package's CSV parsing was also already Rust under the hood (polars's Python bindings call into the same Rust crate this rewrite calls directly), so there was never a slow "Python parser" to replace. What this rewrite actually changes:

  • The Python GIL is released for the whole fetch + parse (Python::detach), so multiple threads making concurrent read_google_sheet calls now run those requests in parallel instead of serialising on the GIL.
  • HTTP connections are pooled in a single process-wide reqwest::Client (see src/core/fetch.rs), so repeated calls in one process reuse keep-alive connections instead of re-negotiating TLS every time — the one lever that meaningfully cuts latency for an app calling this repeatedly.
  • One fewer FFI hop per call (no intermediate Python str handed to pl.read_csv), which shaves microseconds, not milliseconds.

If you're benchmarking, measure many concurrent/repeated calls in one process, not a single cold fetch — a single fetch's wall time is mostly Google's server, not this library.


Requirements

  • Python ≥ 3.9
  • The spreadsheet must be set to Anyone with the link can view

Installation

pip install scan-google-sheet
# or
uv add scan-google-sheet

Prebuilt wheels are published for common platforms/Python versions; pip falls back to building from source (requires a Rust toolchain) if no matching wheel is available.


Quick start

from scan_google_sheet import read_google_sheet, scan_google_sheet

Eager — returns a DataFrame immediately:

df = read_google_sheet("Sheet1", sheet_id="1BxiMVs0XRA5nFMdKvBdBZjgm...")

Lazy — returns a LazyFrame, participates in Polars query optimisation:

lf = scan_google_sheet("Sheet1", sheet_id="1BxiMVs0XRA5nFMdKvBdBZjgm...")

df = (
    lf
    .filter(pl.col("year") == 2025)
    .select("vessel", "amount")
    .collect()
)

You can also pass a full Google Sheets URL instead of a bare sheet ID:

df = read_google_sheet(
    "Sheet1",
    url="https://docs.google.com/spreadsheets/d/1BxiMVs0.../edit#gid=0",
)

Server-side query — only fetch the rows/columns you need:

# Columns are referenced by spreadsheet letter (A, B, C...), not header name
df = read_google_sheet(
    "RawData",
    sheet_id="1BxiMVs0XRA5nFMdKvBdBZjgm...",
    query="select A, C, G, H where YEAR(K) = 2026",
)

query is a Google Visualization API Query Language string, applied by Google before the data is downloaded — smaller transfer, less to parse.

Detecting an active sheet filter:

Google's export endpoint (/export?format=csv) always returns every row, but the endpoint read_google_sheet uses to support sheet_name/query (/gviz/tq) silently excludes rows hidden by an active filter on that tab. If someone left a filter on, your query can quietly return less data than you expect. Pass warn_if_filtered=True to check for this — it costs two extra HTTP requests and emits a UserWarning if rows appear to be hidden:

import warnings

with warnings.catch_warnings(record=True) as caught:
    warnings.simplefilter("always")
    df = read_google_sheet(
        "RawData", sheet_id="1BxiMVs0...", warn_if_filtered=True
    )
    if caught:
        print(caught[0].message)
        # sheet 'RawData' appears to have an active filter hiding 12 row(s)
        # (88 visible vs 100 in the full export) — query results may be incomplete

This is a best-effort heuristic, not a guarantee — it's most reliable when url (with #gid=...) is passed rather than a bare sheet_id, since without a gid the check falls back to comparing against the spreadsheet's first tab.


API

read_google_sheet

def read_google_sheet(
    sheet_name: str,
    sheet_id: str | None = None,
    url: str | None = None,
    *,
    timeout: int = 10,
    parse_dates: bool = True,
    query: str | None = None,
    warn_if_filtered: bool = False,
) -> pl.DataFrame

Fetches the sheet and returns a collected DataFrame. The HTTP fetch and CSV parse both run in Rust, released from the Python GIL.

scan_google_sheet

def scan_google_sheet(
    sheet_name: str,
    sheet_id: str | None = None,
    url: str | None = None,
    *,
    timeout: int = 10,
    parse_dates: bool = True,
    batch_size: int = 1_000,
    query: str | None = None,
    warn_if_filtered: bool = False,
) -> pl.LazyFrame

Returns a LazyFrame registered via the Polars IO plugin API. Projection pushdown, predicate pushdown, head(), and streaming are all supported.

Note: Google Sheets does not support partial HTTP reads. The full sheet is always downloaded in one request by the Rust core. Pushdowns reduce processing cost, not network cost. This is the one part of the API that stays in Python: register_io_source is a Polars Python-only hook with no Rust-side equivalent, so scan_google_sheet is a thin Python wrapper around the Rust-backed read_google_sheet.

Parameters shared by both functions:

Parameter Type Default Description
sheet_name str — Tab name as shown in Google Sheets
sheet_id str | None None Spreadsheet ID from the URL
url str | None None Full Google Sheets URL (ID extracted automatically)
timeout int 10 HTTP timeout in seconds
parse_dates bool True Attempt automatic date/datetime parsing
query str | None None Google Visualization API Query Language string, applied server-side
warn_if_filtered bool False Emit a UserWarning if the tab appears to have rows hidden by an active filter (2 extra requests)

Provide either sheet_id or url, not both.


URL utilities

from scan_google_sheet import extract_sheet_id, build_gviz_url, from_url

# Extract the sheet ID from any Google Sheets URL
sheet_id = extract_sheet_id("https://docs.google.com/spreadsheets/d/ABC123/edit")
# "ABC123"

# Build a gviz CSV export URL from a sheet ID and tab name
url = build_gviz_url("ABC123", "Sheet1")
# "https://docs.google.com/spreadsheets/d/ABC123/gviz/tq?tqx=out:csv&sheet=Sheet1"

# ...optionally with a query, applied server-side
url = build_gviz_url("ABC123", "Sheet1", "select A, C where B = 1")
# "https://docs.google.com/spreadsheets/d/ABC123/gviz/tq?tqx=out:csv&sheet=Sheet1&tq=select%20A%2C%20C%20where%20B%20%3D%201"

# Build a gviz URL directly from a full Google Sheets URL
url = from_url("https://docs.google.com/spreadsheets/d/ABC123/edit", "Sheet1")

Error handling

All exceptions inherit from ReadSheetError, so you can catch everything with one handler or branch on specific types:

from scan_google_sheet import (
    read_google_sheet,
    ReadSheetError,
    SheetFetchError,
    SheetURLError,
    SheetParseError,
    NetworkError,
    ConfigurationError,
)

try:
    df = read_google_sheet("Sheet1", sheet_id="...")
except ReadSheetError as e:
    match e:
        case SheetFetchError() if e.is_auth_error:
            print("Make the sheet public (Share → Anyone with the link)")
        case SheetFetchError() if e.is_not_found:
            print(f"Sheet not found — check the ID: {e.url}")
        case NetworkError():
            print(f"No connection: {e.cause}")
        case SheetURLError(raw=r):
            print(f"Could not parse URL: {r!r}")
        case SheetParseError():
            print(f"CSV parse failed: {e.cause}")
        case ConfigurationError():
            print(str(e))

Exception hierarchy

ReadSheetError
├── SheetURLError       malformed URL or unextractable sheet ID  (.raw)
├── SheetFetchError     non-200 HTTP response                    (.url, .status_code)
│                                                                (.is_auth_error, .is_not_found)
├── SheetParseError     CSV or Polars parsing failure             (.column)
├── NetworkError        transport failure, no response received  (.url)
└── ConfigurationError  invalid argument combination

Raised from Rust via PyO3, but the hierarchy, messages, and attributes are the same ones the pure-Python 0.1.x release raised.


Making your sheet public

In Google Sheets: Share → Change to Anyone with the link → Viewer → Done.

The export URL used by this library (gviz/tq?tqx=out:csv) requires the sheet to be publicly readable. No data is ever written.


How it works

Google Sheets URL / ID
        │
        ▼
  build_gviz_url()          constructs the CSV export URL          [Rust]
        │
        ▼
    fetch_raw()              reqwest GET, pooled client, GIL released [Rust]
        │
        ▼
    parse_csv()              polars CSV → DataFrame                 [Rust]
        │
        ▼
  read_google_sheet()        PyO3 boundary → pl.DataFrame     [Rust → Python]
        │
        ▼
  scan_google_sheet()        register_io_source() lazy wrapper     [Python]
        │
        ▼
  LazyFrame / DataFrame      ready for your pipeline

The crate also builds as a standalone Rust library (cargo build, no Python required) — see src/lib.rs for the read_public_sheet entry point used by the python feature's PyO3 bindings.


Development

git clone https://github.com/Attica-oss/scan_google_sheet
cd scan_google_sheet

# Rust-only build/check + unit/integration tests (mocked HTTP, no network)
cargo build
cargo test

# Python extension, editable install into a venv
uv venv
source .venv/bin/activate
uv sync --group dev
maturin develop --release --features python

# Python test suite
uv run pytest

maturin develop/maturin build without --release produce an unoptimized debug build (no inlining, no bounds-check elision). It won't be noticeable on small sheets, but always benchmark and publish --release builds.


Changelog

0.2.0

  • Full rewrite of the fetch/parse core in Rust (PyO3 + maturin), GIL released during network and parse work via Python::detach
  • Process-wide pooled reqwest::Client (src/core/fetch.rs) so repeated calls reuse keep-alive connections instead of a fresh TLS handshake each time
  • Public API and exception hierarchy unchanged from 0.1.x, including the structured attributes on each exception (raw, url, status_code, is_auth_error, is_not_found, column, cause)
  • scan_google_sheet's lazy IO-plugin wrapper stays in Python (Polars register_io_source has no Rust-side equivalent)
  • Rust unit/integration tests (cargo test, mocked HTTP via mockito) and a Python test suite (uv run pytest)

0.1.1 and earlier

  • Pure-Python implementation (httpx + polars)
  • read_google_sheet and scan_google_sheet
  • Polars IO plugin for lazy evaluation
  • Structured exception hierarchy

License

MIT © 2026 Garry (Attica-oss)

Metadata

Release files for scan-google-sheet 0.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for scan-google-sheet 0.3.0
File Size Uploaded
scan_google_sheet-0.3.0.tar.gz 60.8 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for scan-google-sheet 0.3.0
File
scan_google_sheet-0.3.0-pp311-pypy311_pp73-win_amd64.whl PyPy 3.11 PyPy 3.11 7.3 Windows x86-64 Details
scan_google_sheet-0.3.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl PyPy 3.11 PyPy 3.11 7.3 Linux glibc 2.17+ x86-64 Details
scan_google_sheet-0.3.0-pp311-pypy311_pp73-macosx_11_0_arm64.whl PyPy 3.11 PyPy 3.11 7.3 macOS 11.0+ ARM64 Details
scan_google_sheet-0.3.0-cp315-cp315t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.15 CPython 3.15 free-threading Linux glibc 2.17+ x86-64 Details
scan_google_sheet-0.3.0-cp315-cp315-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.15 CPython 3.15 Linux glibc 2.17+ x86-64 Details
scan_google_sheet-0.3.0-cp314-cp314t-win_amd64.whl CPython 3.14 CPython 3.14 free-threading Windows x86-64 Details
scan_google_sheet-0.3.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ x86-64 Details
scan_google_sheet-0.3.0-cp314-cp314t-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 free-threading macOS 11.0+ ARM64 Details
scan_google_sheet-0.3.0-cp314-cp314-win_arm64.whl CPython 3.14 CPython 3.14 Windows ARM64 Details
scan_google_sheet-0.3.0-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details
scan_google_sheet-0.3.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.17+ x86-64 Details
scan_google_sheet-0.3.0-cp314-cp314-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 macOS 11.0+ ARM64 Details
scan_google_sheet-0.3.0-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
scan_google_sheet-0.3.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.17+ x86-64 Details
scan_google_sheet-0.3.0-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details
scan_google_sheet-0.3.0-cp313-cp313-macosx_10_12_x86_64.whl CPython 3.13 CPython 3.13 macOS 10.12+ x86-64 Details
scan_google_sheet-0.3.0-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
scan_google_sheet-0.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ x86-64 Details
scan_google_sheet-0.3.0-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
scan_google_sheet-0.3.0-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
scan_google_sheet-0.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ x86-64 Details
scan_google_sheet-0.3.0-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details
scan_google_sheet-0.3.0-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
scan_google_sheet-0.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ x86-64 Details
scan_google_sheet-0.3.0-cp310-cp310-macosx_11_0_arm64.whl CPython 3.10 CPython 3.10 macOS 11.0+ ARM64 Details
scan_google_sheet-0.3.0-cp39-cp39-win_amd64.whl CPython 3.9 CPython 3.9 Windows x86-64 Details
scan_google_sheet-0.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.17+ x86-64 Details

Total release size: 223.9 MB

Release files / scan_google_sheet-0.3.0.tar.gz

Download URL scan_google_sheet-0.3.0.tar.gz
Size 60.8 kB
Tags Source
SHA-256 checksum
How to use checksums
11dfbac375fb4233c616daf314a6f0d8854a42db237f8d345ce37a0cc03701ef
BLAKE2b-256 checksum
How to use checksums
43768ca9f7fd8ac8bb12867c166c3d3d1586a2ac0920fd82ca24ade2b27c16ec
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / scan_google_sheet-0.3.0-pp311-pypy311_pp73-win_amd64.whl

Download URL scan_google_sheet-0.3.0-pp311-pypy311_pp73-win_amd64.whl
Size 8.1 MB
Tags PyPy 3.11 PyPy 3.11 7.3 Windows x86-64
SHA-256 checksum
How to use checksums
e7a0083a3a153a5d1149dffbb1cf79812b4f7f9ba912b0d89b376c7415a8aa07
BLAKE2b-256 checksum
How to use checksums
082d066162b56d9470c1bc7b0f164b69bf4d8547c3b959c6489d4409f21dbb71
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 30, 2026.

Transparency log

Release files / scan_google_sheet-0.3.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL scan_google_sheet-0.3.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 9.0 MB
Tags Linux glibc 2.17+ x86-64 PyPy 3.11 PyPy 3.11 7.3
SHA-256 checksum
How to use checksums
6d10b6e885ad4742c2c079e566e06e0942c2fbfe6a6bbb94726bf3ef3e92d2af
BLAKE2b-256 checksum
How to use checksums
af79a27048cc41d31542bf7b4701bc4808e2eb61885b77cc34f349d88d753e08
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / scan_google_sheet-0.3.0-pp311-pypy311_pp73-macosx_11_0_arm64.whl

Download URL scan_google_sheet-0.3.0-pp311-pypy311_pp73-macosx_11_0_arm64.whl
Size 7.8 MB
Tags PyPy 3.11 PyPy 3.11 7.3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
74e1382c3210523ae8f672ccfa9da4bcb101704a058f6e6e066c270d4a4eb579
BLAKE2b-256 checksum
How to use checksums
c805f42a87633785f6ba73917f17bbecf9d6d61a985054cdf5bf8b872879d473
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 30, 2026.

Transparency log

Release files / scan_google_sheet-0.3.0-cp315-cp315t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL scan_google_sheet-0.3.0-cp315-cp315t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 9.0 MB
Tags CPython 3.15 CPython 3.15 free-threading Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
129038c9783f9c260701bc29aa3d273fe8b39468d36d7fc7ba3fb1516d5b09f9
BLAKE2b-256 checksum
How to use checksums
74a96e30bfa010f420439a84f4bcd800372eff73426d2e6ef4c2e206457e8993
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / scan_google_sheet-0.3.0-cp315-cp315-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL scan_google_sheet-0.3.0-cp315-cp315-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 9.0 MB
Tags CPython 3.15 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
935362dfbdf32377a071a6383769963ec3ac9ed872dc8466e7ccfcaace0fda56
BLAKE2b-256 checksum
How to use checksums
97fa6c6989ff70b97a1e5a61823f9ba780960307c8810ca6c6f16bed0cdb952d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / scan_google_sheet-0.3.0-cp314-cp314t-win_amd64.whl

Download URL scan_google_sheet-0.3.0-cp314-cp314t-win_amd64.whl
Size 8.1 MB
Tags CPython 3.14 CPython 3.14 free-threading Windows x86-64
SHA-256 checksum
How to use checksums
10a3fcb7a85fb948aa95e4017b31dc682b116c774fd5510b8de0ab4e380da3b9
BLAKE2b-256 checksum
How to use checksums
2720c9088b61660c12a63be06f39e101643f64d2106a6ff4cfc585fb126ed5d7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 30, 2026.

Transparency log

Release files / scan_google_sheet-0.3.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL scan_google_sheet-0.3.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 9.0 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
fb3be0acf9b6f6ec7dcabc0a141abdae0f302ba3f83c242c09102f8bca967eb3
BLAKE2b-256 checksum
How to use checksums
b0b0b354a82c75464a767c6ae26a027f8b614ba3b438b1e81b548ada0a1b4377
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / scan_google_sheet-0.3.0-cp314-cp314t-macosx_11_0_arm64.whl

Download URL scan_google_sheet-0.3.0-cp314-cp314t-macosx_11_0_arm64.whl
Size 7.7 MB
Tags CPython 3.14 CPython 3.14 free-threading macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
ab6b5b397b4c94745ac639625a892bd79b07362699ee96604432afa5a0049420
BLAKE2b-256 checksum
How to use checksums
d47c621d3c0db5a0cb8ab16e86a2f396d9e97af6f995fa56ec7af169d60217bf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 30, 2026.

Transparency log

Release files / scan_google_sheet-0.3.0-cp314-cp314-win_arm64.whl

Download URL scan_google_sheet-0.3.0-cp314-cp314-win_arm64.whl
Size 7.4 MB
Tags CPython 3.14 Windows ARM64
SHA-256 checksum
How to use checksums
0df7c125a04ddb65d0b346272f68314b73390047d3039f3de9f5e0eb1ebd9433
BLAKE2b-256 checksum
How to use checksums
9fa4f6872ad0f14a19f8237c60ca9cd5f87eebe936b7739a6f066b1c0ef9d558
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 30, 2026.

Transparency log

Release files / scan_google_sheet-0.3.0-cp314-cp314-win_amd64.whl

Download URL scan_google_sheet-0.3.0-cp314-cp314-win_amd64.whl
Size 8.1 MB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
cbd6e78a20295f1689fc692f2ce4bb60a2bd47820f320533d73b6f54f0561d43
BLAKE2b-256 checksum
How to use checksums
b324cf2d844aa9b8a7811dcd4a1cb8e9b21f5579a77f93667f34604f89fcb52a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 30, 2026.

Transparency log

Release files / scan_google_sheet-0.3.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL scan_google_sheet-0.3.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 9.0 MB
Tags CPython 3.14 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
39eb2fb50db0c5b7551d3765c010b91807d966f3ecfa9665e7aefc2a102523e2
BLAKE2b-256 checksum
How to use checksums
411c45f4cbe04ff031d4f90bd8ac4c3e0dcb0f2bfebfee660e0f458414f582ef
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / scan_google_sheet-0.3.0-cp314-cp314-macosx_11_0_arm64.whl

Download URL scan_google_sheet-0.3.0-cp314-cp314-macosx_11_0_arm64.whl
Size 7.7 MB
Tags CPython 3.14 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
be709deebf0bb1fedf5aee14165610fa51e2898680a2f093d1386bebd19b6de5
BLAKE2b-256 checksum
How to use checksums
4b927e6d7d36a36ce9999aca2b4e8438cdf34082f8e4c9d2f18262503830de64
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 30, 2026.

Transparency log

Release files / scan_google_sheet-0.3.0-cp313-cp313-win_amd64.whl

Download URL scan_google_sheet-0.3.0-cp313-cp313-win_amd64.whl
Size 8.1 MB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
62934f5e01baa2ff8a9132eb52ac4064704055b3bb5f996ee4cb7dbecd472121
BLAKE2b-256 checksum
How to use checksums
afc98b37a4abe6bfd947314c36be8e6d1a95dd6b69d15b61eccae9e35c8b2d96
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / scan_google_sheet-0.3.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL scan_google_sheet-0.3.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 7.7 MB
Tags CPython 3.13 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
592225bef7d9f473947af9203bcfa37ac60a66c304aaa19d7759fc5968172ba9
BLAKE2b-256 checksum
How to use checksums
b2384da973ad99720fa7ff7d87524f83ee18708751c73c8c5ee05a8310c17629
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.9.17 {"installer":{"name":"uv","version":"0.9.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / scan_google_sheet-0.3.0-cp313-cp313-macosx_11_0_arm64.whl

Download URL scan_google_sheet-0.3.0-cp313-cp313-macosx_11_0_arm64.whl
Size 7.7 MB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
6763889c59dc651fd2bdd2b18a40e1b82668c49e364e787935707af5e7e81644
BLAKE2b-256 checksum
How to use checksums
27e1abaf442d934f61102a9f432aab0a4b38d23a44d4c0b3a819d292031d0c0c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / scan_google_sheet-0.3.0-cp313-cp313-macosx_10_12_x86_64.whl

Download URL scan_google_sheet-0.3.0-cp313-cp313-macosx_10_12_x86_64.whl
Size 8.2 MB
Tags CPython 3.13 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
4cbb1a3518470d8457a2c415bcaf551869292ce5f20a77f63b4d06ea4a0f87b0
BLAKE2b-256 checksum
How to use checksums
d95dc810c1e136f4f56cb408ee6d8aeda4b7afebe73d5d047c105e3a281edc4b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / scan_google_sheet-0.3.0-cp312-cp312-win_amd64.whl

Download URL scan_google_sheet-0.3.0-cp312-cp312-win_amd64.whl
Size 8.1 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
3def72d6c617f10715987ad70d8682e6d0e442331829fc7a57dd17b79adbd61f
BLAKE2b-256 checksum
How to use checksums
0e6d57d1af1612a4749698959724cd56434f972edf9977fbd1495905d187ee44
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 30, 2026.

Transparency log

Release files / scan_google_sheet-0.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL scan_google_sheet-0.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 9.0 MB
Tags CPython 3.12 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
c3ce55fcb72f659230d723ec6ba744a63e31e1313d8ad3eea3255442579f7e35
BLAKE2b-256 checksum
How to use checksums
61219bc8f08b46b85144cfeec834061c36a5eb9a3c4e26613a9ccedc3855f320
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / scan_google_sheet-0.3.0-cp312-cp312-macosx_11_0_arm64.whl

Download URL scan_google_sheet-0.3.0-cp312-cp312-macosx_11_0_arm64.whl
Size 7.7 MB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
ea436973cc6733cf93b23492a3370993f3bff9b3417260769bbef05134182d80
BLAKE2b-256 checksum
How to use checksums
adc08d3ae12de375be3323b235764bd96484a95f2ff53b8f8be6fe3d3789ac6f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 30, 2026.

Transparency log

Release files / scan_google_sheet-0.3.0-cp311-cp311-win_amd64.whl

Download URL scan_google_sheet-0.3.0-cp311-cp311-win_amd64.whl
Size 8.1 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
e1efbc540b3ad41f8f40abf28c877b3d0aca6b3c2d1fc6e3c60315144878837d
BLAKE2b-256 checksum
How to use checksums
167eb29495d6981112e5c7b0d8b808bcdec5be73fc35e06053f328ff4de46fc0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 30, 2026.

Transparency log

Release files / scan_google_sheet-0.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL scan_google_sheet-0.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 9.0 MB
Tags CPython 3.11 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
567fcbcda126de8e196c4469f7431a8ff26287c27e79751324f157ca4ea9cf5c
BLAKE2b-256 checksum
How to use checksums
5ad9737eb11b84333fc0b23a88dd0a51189a05696c1cad4b6c0aa8d90c599134
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / scan_google_sheet-0.3.0-cp311-cp311-macosx_11_0_arm64.whl

Download URL scan_google_sheet-0.3.0-cp311-cp311-macosx_11_0_arm64.whl
Size 7.8 MB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
f7a5c76208c504f10aa436f7300257cce35a91dcea9eb90f1c87659a1f9154b2
BLAKE2b-256 checksum
How to use checksums
15dd361186ff4cc9f1afad4bfc64c5524840ae82aab2c515e2c88b20c9a39688
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 30, 2026.

Transparency log

Release files / scan_google_sheet-0.3.0-cp310-cp310-win_amd64.whl

Download URL scan_google_sheet-0.3.0-cp310-cp310-win_amd64.whl
Size 8.1 MB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
c6b8b77b147d6938bb7cc6cfff2af61c323255ffba44344664e6cadf2eac5e11
BLAKE2b-256 checksum
How to use checksums
d1f389e5ed268f89704f4625dd04ee68ec93205bbe7095e6a5cb76db37f9263e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 30, 2026.

Transparency log

Release files / scan_google_sheet-0.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL scan_google_sheet-0.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 9.0 MB
Tags CPython 3.10 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
eb6cb4a72fc856b93e0715456cc51978c8b49eff8b76d2a3e2696a47cda940eb
BLAKE2b-256 checksum
How to use checksums
2d5aaf959fcb33158524501be9a3f7da8c304975ce36f6815945ff24667c9565
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / scan_google_sheet-0.3.0-cp310-cp310-macosx_11_0_arm64.whl

Download URL scan_google_sheet-0.3.0-cp310-cp310-macosx_11_0_arm64.whl
Size 7.8 MB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
c94d2845d9c057595a8348126e89ba71307eddf2f790897469fc0083687c8ea5
BLAKE2b-256 checksum
How to use checksums
b4af59197964462be636f88ff3613aa0953e929ee93ce7f00dea0de8cc808c6b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 30, 2026.

Transparency log

Release files / scan_google_sheet-0.3.0-cp39-cp39-win_amd64.whl

Download URL scan_google_sheet-0.3.0-cp39-cp39-win_amd64.whl
Size 8.1 MB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
11dca80dce88eb50645a3e9a1ee707dc14233b51598deba2447f4d0c3ba60dfc
BLAKE2b-256 checksum
How to use checksums
46a2edcaf7e427ca8d1f0326402fd4866c7bf16a3774db5c8a0797f1cb83b614
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 30, 2026.

Transparency log

Release files / scan_google_sheet-0.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL scan_google_sheet-0.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 9.0 MB
Tags CPython 3.9 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
b4c188685ad8254c226f92488be26616e5541b43d1bcc4a6b4d9c750602fee81
BLAKE2b-256 checksum
How to use checksums
f83259ad67595bae760fa1722e0b395a7e8bfe0695ba225e769d8e91a79c138a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release history Release notifications | RSS feed

This release

0.3.0 This release

28 release files

0.2.1

1 release file

0.2.0

1 release file

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page