Releases: SSujitX/GoogleKit
Release list
GoogleKit v0.0.4
Fixed
- Calendar RSVP: participant responses use
Attendee.selfonly for local
selection, omit read-only attendee fields, and putattendeesOmittedin the
event request body. - OAuth scopes: cached installed-app tokens are loaded with their actual
granted scopes and trigger fresh consent when required scopes are missing.
Granular-consent results prefercredentials.granted_scopes, and full Drive
or Calendar grants satisfy narrower requested scopes without needless reauth. - Transport: configured timeouts and user agents are applied to the
authorized HTTP transport; transient network failures and Google 403/429
rate-limit responses are retried. - Drive folders: recursive uploads reuse existing folders according to the
overwrite policy, and exported PDF collision checks use the actual.pdf
destination. - Drive exports: Google Vids are no longer sent to the incompatible
files.exportendpoint. The error now explains that Google requires the
long-runningfiles.downloadoperation. - Drive shortcuts: default filenames for exported Google-native files gain
the correct extension for both short formats and full MIME types. - Docs tabs:
documents.getrequests tab content by default, parses nested
tabs, preserves/aggregates named ranges from eachdocumentTab, and supports
tab_idacross content range/location helpers. - Token storage: token writes are atomic and use restrictive permissions
where supported. - Documentation: scope-error behavior and current Drive/Docs limitations now
match the implementation.
Validation
- 242 non-integration tests pass.
- MkDocs strict build passes.
- Wheel and source distribution build as version 0.0.4.
PyPI: https://pypi.org/project/googlekit/0.0.4/
Docs: https://ssujitx.github.io/GoogleKit/
Full Changelog: v0.0.3...v0.0.4
GoogleKit v0.0.3
Added
Optional convenience shortcuts (all services)
Flat helpers that delegate to managers — managers remain the full API:
- Drive:
list_files,list_folders,search_files,search_folders,create_folder,upload_file,download_file,upload_folder,delete_file/delete_folder,share,unshare,list_permissions,get_share_link - Sheets:
create_spreadsheet,get_spreadsheet,read_values,write_values,append_values - Calendar:
list_events,create_event,get_event,delete_event - Docs:
create_document,get_document,append_text,insert_text - Slides:
create_presentation,get_presentation,add_slide
Declared on DriveAPI / SheetsAPI / … protocols so client.drive. suggests shortcuts and managers, with hover docstrings.
Changed
OAuth token storage
- Default OAuth token path is now
./token.jsonin the current working directory (project folder), not%APPDATA%\googlekit\ - Optional
user_config_token_path()keeps the old OS user-config location if you want it GoogleKit.auto(..., token_path=...)is supported; omittoken_pathto use./token.jsontoken.jsonremains gitignored — do not commit it
IDE autocomplete (service managers + shortcuts)
client.drive/client.sheets/ … are typed as service protocols (DriveAPI,SheetsAPI, …)- After
drive., editors suggest managers (files,folders, …) and optional shortcuts (list_files,upload_file, …) with hover docstrings - Same pattern for Sheets, Calendar, Docs, and Slides
- Concrete clients still have factories/provider at runtime; construct
DriveClient(...)when you need.provider/.transportin typed code
ClientConfig / RetryPolicy DX
ClientConfigandRetryPolicyare exported from the top-levelgooglekitpackage (from googlekit import ClientConfig, RetryPolicy)ClientConfig(retry=5)shorthand setsRetryPolicy(max_attempts=5)- Rich class and field docstrings for IDE hover (timeout, retry fields, what gets retried, Calendar timezone, Shared Drives, etc.)
Public API hover docs
- Expanded docstrings on
GoogleKitfactories/properties,DriveClientmanagers,ScopeProfile/ScopeSet,Page/PageIterator, andFilesManager.list(including empty-list /drive.filetip) - Service protocols (
DriveAPI,SheetsAPI, …) document managers and shortcuts for hover afterclient.drive./client.sheets./ … - Service client class docs call out managers, shortcuts, and key pitfalls (Calendar timezone, Docs UTF-16, Drive scopes)
Docs: shortcuts + managers (all services)
- README Quick Start / Usage Examples show both manager and shortcut calls for Drive, Sheets, Calendar, Docs, and Slides
- MkDocs service pages (
docs/drive.md,sheets.md,calendar.md,docs.md,slides.md) include shortcut ↔ manager mapping tables
Docs: four auth methods
- Auth tables list
auto()as Method 4, separate fromfrom_adc()(not combined in one row) - Updated in README,
docs/authentication.md,docs/drive.md,docs/index.md,AGENT.md
PyPI: https://pypi.org/project/googlekit/0.0.3/
Docs: https://ssujitx.github.io/GoogleKit/
Full Changelog: v0.0.2...v0.0.3
GoogleKit v0.0.2
Documentation and maintainer tooling release. No breaking API changes to the library surface.
Changed
Authentication docs (README + docs site)
- All three auth methods (ADC, service account, OAuth) now share the same Step 1–2 flow: create a Cloud project, then Step 2: Enable APIs
- Step 2 links to APIs & Services → Library plus direct enable links for Drive, Sheets, Calendar, Docs, and Slides
- OAuth Method 3 updated for Google’s Google Auth Platform UI:
- Branding
- Audience (test users)
- Data Access
- Clients → + Create client → Desktop app
- Older APIs & Services → Credentials / OAuth consent screen path documented as a fallback
docs/authentication.mdofficial-links and Cloud Console setup summary aligned with the same Auth Platform flow
Versioning (single source of truth)
- Package version is read only from
pyproject.tomlmetadata viaimportlib.metadata googlekit.__version__, CLI--version, and defaultUSER_AGENT(googlekit/<version>) all usepackage_version()— no hardcoded release versions in source- Fallback when the package is not installed:
"dev" - Release habit: bump
pyproject.toml→ update this file →uv sync→ tagvX.Y.Z
Docs site & maintainer docs
- Removed public MkDocs page
/publishing/(docs/publishing.mddeleted; dropped frommkdocs.ymlnav and home map) - Publishing / Trusted Publishing / tag checklist moved into
CONTRIBUTING.md(maintainer section) AGENT.mdrewritten as the current architecture / LLM reference (auth rules, service quirks, CI/publish, agent do-nots) — replaces the old greenfield “build GoogleKit” prompt
CI / release workflow
- Publish workflow
run-nameis nowPyPI publish ${{ github.ref_name }}(e.g.PyPI publish v0.0.2) instead of the latest commit subject
Added
package_version()insrc/googlekit/core/constants.pyas the shared version helper- Maintainer publishing section in
CONTRIBUTING.md(tag steps, pending Trusted Publisher fields, localuv build)
Removed
docs/publishing.mdand the Publishing entry from the public documentation site
PyPI: https://pypi.org/project/googlekit/0.0.2/
Docs: https://ssujitx.github.io/GoogleKit/
Full Changelog: v0.0.1...v0.0.2
GoogleKit v0.0.1
First public release of GoogleKit — an unofficial Python SDK for Google Drive, Sheets, Calendar, Docs, and Slides.
Added
- Core runtime: typed exceptions, retries, pagination, HTTP transport, client-library checks
- Authentication: OAuth 2.0 desktop flow, service accounts, Application Default Credentials (ADC), auto-detect
- Scope presets (
metadata/readonly/readwrite/full) andScopeSetaggregation - Atomic token file writes with restrictive permissions when the OS supports them
- Unified
GoogleKitclient with lazydrive/sheets/calendar/docs/slidesaccessors - Per-service clients:
DriveClient,SheetsClient,CalendarClient,DocsClient,SlidesClient - Drive — files, folders, permissions, changes, upload/download, native export, Shared Drives
- Sheets — spreadsheets, values (A1), worksheets, formatting helpers
- Calendar — calendars, events, Meet links, free/busy, sync tokens, attendee RSVP (
response_status) - Docs — documents, content/tables, UTF-16-safe indexes, tab-aware get (
includeTabsContent) - Slides — presentations, pages, shapes, images, tables, template text replace
- Configurable HTTP timeout and custom User-Agent on authorized requests
- Retries for transport failures and rate limits (including selected 403 rate-limit reasons)
- Minimal CLI:
googlekit --version,doctor,auth status - Docs site (MkDocs), examples, unit tests, CI, and PyPI publish workflow
Notes
- Install:
pip install googlekitoruv add googlekit(Google API client libraries included by default) - Unified constructors require explicit
services=orscopes=(no all-Workspace default) - Not affiliated with Google LLC
PyPI: https://pypi.org/project/googlekit/0.0.1/
Docs: https://ssujitx.github.io/GoogleKit/