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 this to OpenDecree Jun 8, 2026
@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
@github-project-automation github-project-automation Bot moved this from Todo to Done in OpenDecree Jun 8, 2026
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

Status: Done

Development

Successfully merging this pull request may close these issues.

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

1 participant