| Commit message (Collapse) | Author | Age |
... | |
| | | | | | |
|
| | |_|_|/
| |/| | | |
|
|\ \ \ \ \ |
|
| | |\ \ \ \
| | |/ / / /
| |/| | | |
| | | | | | |
fix-stream-compression-config-interface
|
| | | | | | |
|
| | | | | | |
|
|\ \ \ \ \ \
| | |_|/ / /
| |/| | | | |
|
| | |_|_|/
| |/| | | |
|
| |/ / /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
A gRPC Python client interceptor is passed an instance of a class
that implements the ClientCallDetails interface. The interceptor
can choose to create its own object that implements the interface,
and pass it back to the continuation invoked by the interceptor.
To make it easy to add additional attributes to call details,
without breaking user code that hardcode the attributes required
by the interface, instead of interospecting the object passed
to the interceptor at runtime, and to ease authorship of
interceptors that want to keep some attributes intact and not
care about them, we relax the requirements on the object that
is expected to get passed by the interceptor and let the user
omit some attributes. Omitted attributes will be replaced
by the original value of the attribute given to the interceptor.
|
| | | | |
|
| | | | |
|
| | |\ \
| | |/ /
| |/| |
| | | | |
fix-stream-compression-config-interface
|
| | | | |
|
| | | | |
|
| |\ \ \
| | |_|/
| |/| | |
python: Context.abort should fail RPC even for StatusCode.OK
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
grpc.ServicerContext.abort is documented to always raise an exception
to terminate the RPC. The code argument "must not be StatusCode.OK."
However, if you do pass StatusCode.OK, the RPC terminates successfully
on the client side, but returns None.
_server.py: If the user accidentally passes StatusCode.OK, treat it as
StatusCode.UNKNOWN. This is what happens if the user accidentally
passes something that is not a StatusCode instance. Additionally
set details to ''.
_metadata_code_details_test.py: update test to verify the behavior of
abort with invalid codes.
|
| |/ / |
|
|\| | |
|
| | |
| | |
| | |
| | | |
Upgrade yapf version to 0.20.0 and reformat Python files.
|
| |\ \
| | | |
| | | | |
Reform cygrpc.OperationTag and cygrpc.Event.
|
| |\ \ \
| | | | |
| | | | |
| | | | | |
Upmerge v1.8.3 into master
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Rather than single classes they are now broken up into class families
with each class containing only those fields and methods that are
needed in the context in which the class is used.
|
| | |/ / |
|
|/ / /
| | |
| | |
| | |
| | |
| | |
| | | |
Picks up work from https://github.com/grpc/grpc/pull/10259.
A merge was impossible due to the many sweeping changed that
have occured since I last touched that PR (c++-ization, exec_ctx,
reorganitation of filters, etc).
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
It is now a family of classes conforming to an interface rather than a
single class no single instance of which makes use of all behavior
scoped to the class.
It also now only uses gRPC Core memory for the time of a single batch
rather than for the entire lifetime of the instance.
|
| | | |
|
|\ \ \
| | | |
| | | | |
Disable so_reuseport for Python tests
|
| | | | |
|
| | | | |
|
| | | | |
|
|\ \ \ \
| |/ / /
|/| / /
| |/ / |
Upmerge changes from v1.8.x to master
|
| |\ \
| | | |
| | | | |
Fixes race condition in Python server shutdown
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
When we set the call state to "CANCELLED" after
grpc_cancel_all_calls, we would block other start batch
operations from happening. The rpc_state for the cancelled
call would still be in the server's rpc_states set, but it
would never get removed because there were no active batches
for the call, and the only place we remove from rpc_states is
when a batch completes.
It is better to rely on c-core's cancellation. Once a call
is cancelled, all subsequent ops on that call will return
immediately with a cancellation error.
The RLock() change is due to the possibility that
_on_call_completed
gets invoked immediately when the call has already completed when the
rpc_future callback is created.
|
| |/ /
| | |
| | |
| | |
| | |
| | | |
This restore unsupported, de facto behavior that was dropped in
80516e884a8cd03daaa1f4a40d2bb2 but that it turns out a lot of folks
have been using.
|
| | |\
| |_|/
|/| |
| | | |
fix-stream-compression-config-interface
|
| | | |
|
|\| | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | | |
Rename call to response_iterator_call file-wide for response-streaming tests.
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
gRPC Python required RPCs terminating with non-OK status code to still
return a valid response value after calling set_code, even though the
response value was not supposed to be communicated to the client, and
returning None is considered a programming error.
This commit introduces an alternative mechanism to terminate RPCs by
calling the `abort` method on `ServicerContext` passed to the handler,
which raises an exception and signals to the gRPC runtime to abort the
RPC with the specified status code and details.
|
| |\ \
| | | |
| | | | |
Elide cygrpc.Operations.
|