Skip to content

[UPSTREAM-12] fix(python): indent the docstrings of caller methods - #60

Closed
moetemp wants to merge 2 commits into
moe/up/python-empty-request-signaturefrom
moe/up/python-caller-docstring-indent
Closed

moetemp wants to merge 2 commits into
moe/up/python-empty-request-signaturefrom
moe/up/python-caller-docstring-indent

Conversation

@moetemp

@moetemp moetemp commented Oct 22, 2026 •

Copy link
Copy Markdown
Owner

What changed?

This PR indents the docstring of a <Service>Client method in services.py at the method body, not at the module function indent. A service with no @nexus.endpoint gets that class.

Depends on #71 (UPSTREAM-11).
Part of the Brook review series.

Why?

A @nexus.doc on an operation of such a service made services.py fail to parse.

How did you test it?

The first commit gives the stream-writer sample the workflow target too. Brook generates only the writer's client, but the workflow target covers the endpoint-less <Service>Client. Brook documents close-writers, so today's services.py doesn't parse, and the first commit keeps the Python output as it was. The second commit is the fix.
The writer's services.py then still misses the imports that #69 adds, so the Python checks skip it until then.
cargo validate passes and cargo clippy adds no warnings.

@moetemp moetemp changed the title [Upstream] fix(python): indent the docstrings of caller methods [UPSTREAM-3] fix(python): indent the docstrings of caller methods Oct 22, 2026
@moetemp moetemp changed the title [UPSTREAM-3] fix(python): indent the docstrings of caller methods [UPSTREAM-5] fix(python): indent the docstrings of caller methods Oct 22, 2026
@moetemp moetemp changed the title [UPSTREAM-5] fix(python): indent the docstrings of caller methods [UPSTREAM-12] fix(python): indent the docstrings of caller methods Oct 23, 2026
@moetemp
moetemp changed the base branch from moe/up/main to moe/up/python-empty-request-signature October 23, 2026 06:50
moetemp added a commit to temporalio/nexgen that referenced this pull request Oct 23, 2026
)

## What changed?

This PR adds a `stream-service` sample for Python and TypeScript, with today's output. #272 adds .NET with its fix. It has a `stream` resource built from a ref, `create-stream`, append, read, describe and close, with 64-bit offsets, payloads and durations.

Its records are proto-backed, as a stream service's are. Upstream has no stream protos, so the sample has its own small proto in `descriptors/streamsample/v1/`, with checked-in bindings. The samples README has the commands that regenerate them. `build_examples` now loads every `*.bin` under `descriptors/`.

## Why?

Later fixes show their effect as a golden diff on this sample.

## How did you test it?

The goldens. A TypeScript test sends a full `ReadRecordsRequest` through the converter, so the TypeScript type file can't drift from the proto.

## What comes next

These fixes are ready, in this order. Each one adds its shape to this sample, then the fix.

- #272: adds .NET, where the `stream` field of the `Stream` class fails with CS0542, then the fix.
- [moetemp#52](moetemp#52): Check required resource fields of a response. Adds `create-stream` returning the `stream` resource.
- [moetemp#56](moetemp#56): Allow a result record to hold a resource. Adds a `create-stream-result` holder record.
- [moetemp#53](moetemp#53): Emit `@nexus.doc` on resources and methods as Python docstrings.
- [moetemp#70](moetemp#70): Convert 64-bit resource method values to `Long` for a proto request in TypeScript. Adds 64-bit method parameters. Needs #265.
- [moetemp#54](moetemp#54): Generate a Python caller per service over a transport. Turns on the client for the sample.
- [moetemp#55](moetemp#55): Add `@nexus.long-poll` to the Python caller. Marks `read-records` as a long poll.
- [moetemp#57](moetemp#57): Add Python client classes for resources with methods.
- [moetemp#71](moetemp#71): Drop the bare keyword marker from a Python signature with no parameters. Adds a `stream-writer` interface with no endpoint.
- [moetemp#60](moetemp#60): Indent the docstrings of Python caller methods. Adds a doc on a writer operation.
- [moetemp#69](moetemp#69): Import record types that an endpoint-less Python client uses in unpacked parameters. Adds `open-writer`.
- [moetemp#72](moetemp#72): Plan proto unsigned integers as unsigned. Adds a `uint64` writer id.
- [moetemp#73](moetemp#73): Build a returned proto-wire resource in an endpoint-less TypeScript client. Makes `open-writer` return the `writer` resource.

#262 adds a `status` enum to the holder record once it merges.
@moetemp
moetemp force-pushed the moe/up/python-caller-docstring-indent branch from 6d420d5 to be12a99 Compare October 25, 2026 22:19
@moetemp
moetemp force-pushed the moe/up/python-empty-request-signature branch from 61072dd to 0ab0676 Compare October 25, 2026 22:19
@moetemp
moetemp force-pushed the moe/up/python-caller-docstring-indent branch from be12a99 to e57d57e Compare October 25, 2026 23:49
@moetemp
moetemp force-pushed the moe/up/python-empty-request-signature branch from 0ab0676 to 336b95e Compare October 25, 2026 23:49
@moetemp
moetemp marked this pull request as ready for review October 25, 2026 23:49
@moetemp
moetemp force-pushed the moe/up/python-caller-docstring-indent branch from e57d57e to c161da3 Compare October 26, 2026 20:56
@moetemp
moetemp force-pushed the moe/up/python-empty-request-signature branch from 336b95e to 274d994 Compare October 26, 2026 20:56
@moetemp
moetemp force-pushed the moe/up/python-caller-docstring-indent branch from c161da3 to 706c72b Compare October 26, 2026 22:34
@moetemp
moetemp force-pushed the moe/up/python-empty-request-signature branch from 274d994 to 3c8a1e0 Compare October 26, 2026 22:34
@moetemp
moetemp force-pushed the moe/up/python-caller-docstring-indent branch from 706c72b to c6d8eef Compare October 26, 2026 22:37
@moetemp
moetemp force-pushed the moe/up/python-empty-request-signature branch from 3c8a1e0 to 9625ded Compare October 26, 2026 22:37
@moetemp
moetemp force-pushed the moe/up/python-caller-docstring-indent branch from c6d8eef to b0bfecd Compare October 26, 2026 23:01
@moetemp
moetemp force-pushed the moe/up/python-empty-request-signature branch from 9625ded to 18559cd Compare October 26, 2026 23:01
@moetemp
moetemp force-pushed the moe/up/python-caller-docstring-indent branch from b0bfecd to e8cba15 Compare October 27, 2026 01:06
@moetemp
moetemp force-pushed the moe/up/python-empty-request-signature branch 2 times, most recently from 8c01ed0 to da14970 Compare October 27, 2026 09:08
@moetemp
moetemp force-pushed the moe/up/python-caller-docstring-indent branch 2 times, most recently from 49813da to c1ea94f Compare October 27, 2026 18:07
@moetemp
moetemp force-pushed the moe/up/python-empty-request-signature branch from da14970 to a76f590 Compare October 27, 2026 18:07
@moetemp
moetemp force-pushed the moe/up/python-caller-docstring-indent branch from c1ea94f to eabeb6b Compare October 27, 2026 19:00
Brook generates only the writer's client, but the workflow target covers the endpoint-less caller.
Today the Python caller doesn't generate, so the Python output is the client target's.
An endpoint-less service object method took the docstring indent of a module function, so a
documented operation broke the module. The workflow target of Brook's writer now generates for
Python.
@moetemp
moetemp force-pushed the moe/up/python-caller-docstring-indent branch from eabeb6b to edaa352 Compare October 28, 2026 00:24
@moetemp

moetemp commented Oct 29, 2026

Copy link
Copy Markdown
Owner Author

Closing this. The Streams stack doesn't need it.

@moetemp moetemp closed this Oct 29, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant