Skip to content

Document type mapping and FieldUpdate/version-compat surface#141

Merged
zeevdr merged 2 commits into
mainfrom
fix/136-type-mapping-docs
Jun 8, 2026
Merged

Document type mapping and FieldUpdate/version-compat surface#141
zeevdr merged 2 commits into
mainfrom
fix/136-type-mapping-docs

Conversation

@zeevdr

@zeevdr zeevdr commented Jun 8, 2026

Copy link
Copy Markdown
Member

Summary

  • The Python SDK's core value is typed coercion, but docs only listed five scalar types and never documented the full Go-to-Python mapping (time, duration, url, json were missing) or the FieldUpdate bulk-write shape, leaving readers to guess at datetime/timedelta/URL/dict/list support in get().
  • Several public constructor kwargs and methods (interceptors, get_server_version, check_compatibility, IncompatibleServerError) had no documentation at all.

Test plan

  • Added docs/guide/types.md: full Go-schema-type -> Python-type table, get() supported-types list (including datetime, timedelta, URL, dict, list), FieldUpdate field reference and a set_many example, and an explicit warning documenting the SDK's current string-only write limitation (writes to non-string fields raise InvalidArgumentError because the server requires an exact oneof-variant match with no coercion).
  • Extended docs/guide/connect.md with the interceptors constructor kwarg (including sync vs. async interceptor ordering) and the version-compatibility surface (check_version, get_server_version, check_compatibility, IncompatibleServerError).
  • make lint, make typecheck, make test all pass.
  • mkdocs build --strict succeeds with no broken links or nav warnings.

Closes #136

…bility

Add a new Types and Values guide page covering:
- The full Go-schema-type to Python-type mapping (including time, duration,
  url, json -> datetime, timedelta, URL, dict/list), which docs previously
  only listed five scalar types for.
- The FieldUpdate dataclass shape and a set_many bulk-write example.
- A note on the SDK's current string-only write limitation: set/set_many
  always send string-valued TypedValues, and the server requires an exact
  oneof-variant match with no coercion, so writes to non-string-typed fields
  raise InvalidArgumentError today.

Extend the Connecting guide with the previously-undocumented `interceptors`
constructor kwarg (including interceptor ordering for sync vs async clients)
and the version-compatibility surface (check_version, get_server_version,
check_compatibility, IncompatibleServerError).

Closes #136
@zeevdr zeevdr added size: M Moderate — a day or two, clear scope priority: P1 Current milestone work labels Jun 8, 2026
@zeevdr zeevdr added this to the Beta Readiness milestone Jun 8, 2026
@codecov

codecov Bot commented Jun 8, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@zeevdr zeevdr enabled auto-merge (squash) June 8, 2026 10:45
@zeevdr zeevdr merged commit 964f08e into main Jun 8, 2026
12 checks passed
@zeevdr zeevdr deleted the fix/136-type-mapping-docs branch June 8, 2026 10:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

priority: P1 Current milestone work size: M Moderate — a day or two, clear scope

Projects

None yet

Development

Successfully merging this pull request may close these issues.

docs: add type-mapping table + document FieldUpdate/bulk-write

1 participant