Commit Graph

2297 Commits

Author SHA1 Message Date
Mehrdad Afshari f07f6c9a87 Remove comment that is no longer relevant 2018-06-08 08:31:30 -07:00
Mehrdad Afshari 6eac8c5e88 Run yapf to reformat Python code 2018-06-07 23:56:41 -07:00
Mehrdad Afshari 109b5b1dcc Fix arguments-differ pylint warning 2018-06-07 23:39:16 -07:00
Mehrdad Afshari de1718c1c0 Remove unused _junkdrawer 2018-06-07 23:38:50 -07:00
Mehrdad Afshari a941ec6d74 Fix import order to satisfy pylint 2018-06-07 23:38:34 -07:00
Mehrdad Afshari bfbd192a82 Fix raising-format-tuple pylint warning 2018-06-07 23:32:46 -07:00
Mehrdad Afshari b6955d996f Refactor to avord redefining argument 2018-06-07 23:30:34 -07:00
Mehrdad Afshari c095c5c847 Fix arguments-differ pylint warning 2018-06-07 23:26:38 -07:00
Mehrdad Afshari 6c44fd6e25 Fix useless-super-delegation pylint warnings 2018-06-07 23:22:19 -07:00
Mehrdad Afshari ebb176780b Implement abstract methods _LocalFailure inherits 2018-06-07 23:17:27 -07:00
Mehrdad Afshari a99945d500 Fix arguments-differ pylint warning 2018-06-07 23:12:10 -07:00
Mehrdad Afshari 4b7223d334 Remove unnecessary pylint suppressions 2018-06-07 22:52:51 -07:00
Mehrdad Afshari 0aaeedcbd4 Fix inconsistent-return-statements pylint warnings 2018-06-07 22:50:23 -07:00
Mehrdad Afshari c48acb86fd Fix code to pass len-as-condition pylint test 2018-06-07 22:39:42 -07:00
Nathaniel Manista 06e1683c7c
Merge pull request #14557 from ghostwriternr/py-custom-logger
Update logging in Python to use module-level logger.
2018-06-07 19:31:46 -07:00
Santosh Ananthakrishnan fd4c5dd031 TLS session resumption support for Python clients
This change adds an experimental ssl_session_cache_lru function to the
Python API that returns an encapsulated grpc_ssl_session_cache (#14483).
Python clients may use this object as an argument for the
grpc.ssl_session_cache channel option if they wish to cache and resume
TLS sessions with a server.
2018-06-07 22:20:31 +00:00
Nathaniel Manista b441dbbc2c
Merge pull request #15666 from nathanielmanistaatgoogle/15662
Retain references to channel arguments.
2018-06-07 13:14:03 -07:00
Nathaniel Manista 9c86b20bac Retain references to channel arguments
This works around issue 15662 which is not as easy to implement as I
would prefer it to be.
2018-06-06 21:57:39 +00:00
ncteisen c3c6e064b3 Add basic support for GetChannel 2018-06-05 16:59:25 -07:00
kpayson64 f423280a90
Merge pull request #15607 from kpayson64/upmerge_changes
Upmerge changes
2018-06-04 13:19:27 -07:00
kpayson64 b26b2af1db Merge remote-tracking branch 'upstream/v1.12.x' into upmerge_changes 2018-06-01 10:42:08 -07:00
kpayson64 0647b03296 Use gevent greenlets for metadata callbacks 2018-05-31 17:35:48 -07:00
Augie Fackler 38689e6587 Python: wordsmith documentation on Server.stop()
@nathanielmanistaatgoogle and I just had a good session helping me
figure out how to use this API correctly, and this rewording of the
documentation was the result.
2018-05-31 17:25:58 -04:00
Naresh 2e113ca6b2 Update logging in Python to use module-level logger
All logging in Python so far was done with the root logger, resulting
in logs like: `ERROR:Exception calling application:`. With module-level
loggers, the logs will instead include the module in which the
exception is raised: `ERROR:grpc._server:Exception calling application:`
2018-05-31 08:08:25 +00:00
kpayson64 deebcfea01 Use the correct proto for benchmark_serivce 2018-05-29 14:21:21 -07:00
Vizerai e501a3d3fd Merge branch 'master' of https://github.com/Vizerai/grpc into filter_port 2018-05-29 10:45:32 -07:00
Jan Tattermusch 272cdca728 regenerate projects 2018-05-24 14:46:33 -07:00
Noah Eisen 654ecedd03
Merge pull request #15341 from ncteisen/registry++
C++-ify the ChannelzRegistry, Adds Generic Object Support
2018-05-17 19:34:15 -07:00
ncteisen bba8840a4b Change filename to channelz 2018-05-17 15:07:51 -07:00
Noah Eisen 0b8b9a08e2 Surfaces debug_error_string to Python API
In case of error, the user can access call.debug_error_string()
which contains a string representation of error from the c core.
2018-05-17 07:42:02 -07:00
kpayson64 5fc081acd1
Merge pull request #14647 from kpayson64/fork_exec_ctx_check
Add exec_ctx check to fork handlers
2018-05-15 13:52:28 -07:00
Mehrdad Afshari 4ecc5d8225 Regenerate projects 2018-05-14 22:42:39 -07:00
Mehrdad Afshari 97c2932260 Install futures package only on Python 2 2018-05-14 19:08:31 -07:00
Mehrdad Afshari ac6aaa3f0b Install futures package only on Python 2 2018-05-14 17:02:03 -07:00
kpayson64 4fad281ce8 Merge remote-tracking branch 'upstream/master' into fork_exec_ctx_check 2018-05-11 12:20:11 -07:00
Vizerai 41e4cedb70 Adding opencensus grpc plugin.
Rebasing to merge commits.
2018-05-10 11:41:15 -07:00
jiangtaoli2016 274840e4d3 Migrate SSL_transport_security TSI to new TSI handshaker API 2018-05-09 14:42:48 -07:00
kpayson64 6d6c780ffc Merge remote-tracking branch 'upstream/master' into remove_cleanup_thread 2018-05-03 15:50:56 -07:00
Mehrdad Afshari 2d43a45ad1 Regenerate projects 2018-05-02 22:49:52 -07:00
Mehrdad Afshari e388cdfb63 Regenerate projects 2018-05-02 22:38:37 -07:00
Nathaniel Manista 72a85b1b2d
Merge pull request #15254 from nathanielmanistaatgoogle/12531
Add grpc.Channel.close.
2018-05-02 18:36:46 -07:00
Nathaniel Manista bccd32dafa Add grpc.Channel.close 2018-05-02 23:59:15 +00:00
Nathaniel Manista c955125c32
Merge pull request #15132 from nathanielmanistaatgoogle/12531
Keep Core memory inside cygrpc.Channel objects.
2018-05-02 13:30:05 -07:00
Nathaniel Manista ca7ba4d0ac Keep Core memory inside cygrpc.Channel objects
This removes invocation-side completion queues from the _cygrpc API.
Invocation-side calls are changed to no longer share the same lifetime
as Core calls.

Illegal metadata is now detected on invocation rather than at the start
of a batch (so passing illegal metadata to a response-streaming method
will now raise an exception immediately rather than later on when
attempting to read the first response message).

It is no longer possible to create a call without immediately starting
at least one batch of operations on it. Only tests are affected by this
change; there are no real use cases in which one wants to start a call
but wait a little while before learning that the server has rejected
it.

It is now required that code above cygrpc.Channel spend threads on
next_event whenever events are pending. A cygrpc.Channel.close method
is introduced, but it merely blocks until the cygrpc.Channel's
completion queues are drained; it does not itself drain them.

Noteworthy here is that we drop the cygrpc.Channel.__dealloc__ method.
It is not the same as __del__ (which is not something that can be added
to cygrpc.Channel) and there is no guarantee that __dealloc__ will be
called at all or that it will be called while the cygrpc.Channel
instance's Python attributes are intact (in testing, I saw both in
different environments). This commit does not knowingly break any
garbage-collection-based memory management working (or "happening to
appear to work in some circumstances"), though if it does, the proper
remedy is to call grpc.Channel.close... which is the objective towards
which this commit builds.
2018-05-02 18:24:47 +00:00
kpayson64 701e70da07 c++ify 2018-04-30 17:40:59 -07:00
kpayson64 a0bc0ac169 Remove CleanupThread
This is no longer needed with the addition of a close() API that allows
clean shutdown.
2018-04-30 14:03:47 -07:00
Mark D. Roth 2230d60942 Merge remote-tracking branch 'upstream/master' into c++_subchannel_list 2018-04-20 10:46:03 -07:00
Mehrdad Afshari b3069b095d
Merge pull request #15113 from mehrdada/pylint-tests-1
Eliminate some of the more esoteric pylint suppressions for tests
2018-04-19 11:23:49 -07:00
Mehrdad Afshari 1d74fa6748
Merge pull request #15114 from mehrdada/bump-protobuf-submodule-to-3.5.2
Bump protobuf submodule to 3.5.2
2018-04-19 10:50:44 -07:00
Mehrdad Afshari dd9697fef8 Eliminate broad-except suppression 2018-04-19 10:39:39 -07:00
Mehrdad Afshari 1611946161 Eliminate bare-except suppression 2018-04-19 10:39:38 -07:00
Mehrdad Afshari 4cc8ea9be1 Eliminate old-style-class suppression 2018-04-19 10:39:38 -07:00
Mehrdad Afshari fc3bb7c1f9 Eliminate wildcard-import suppression 2018-04-19 10:39:38 -07:00
Mehrdad Afshari 86d04c2e34 Eliminate function-redefined suppression 2018-04-19 10:39:38 -07:00
Mehrdad Afshari bc947ada75 Eliminate unnecessary-lambda suppression 2018-04-19 10:39:38 -07:00
Mehrdad Afshari 4c87620da2 Eliminate undefined-variable suppression 2018-04-19 10:39:38 -07:00
Mehrdad Afshari a6bf3ccac8 Eliminate non-iterator-returned suppression 2018-04-19 10:39:38 -07:00
Mehrdad Afshari a7926f9a4c Eliminate undefined-loop-variable suppression 2018-04-19 10:39:38 -07:00
Mehrdad Afshari 327b3fb6f8 Eliminate raising-bad-type suppression 2018-04-19 10:39:38 -07:00
Mehrdad Afshari ce8e2fcd16 Eliminate unreachable suppression 2018-04-19 10:39:38 -07:00
Mehrdad Afshari 35c7e8c833 Eliminate bad-continuation suppression 2018-04-19 10:39:37 -07:00
Mehrdad Afshari 8e9baf35bd Bump protobuf runtime dependency versions 2018-04-19 02:07:59 -04:00
kpayson64 7a20c962df Break out qps services into seperate protos 2018-04-18 22:13:09 -07:00
Nathaniel Manista 4d647cf9c1 Fix a use of nonexistent .received_cancelled
.received_cancelled was changed to .cancelled() in
81edf5ff9af2d90813773acb9c2793e1a4cd1057; this change should have been
a part of that change.
2018-04-17 18:58:11 +00:00
Mark D. Roth a63aa993e0 Merge remote-tracking branch 'upstream/master' into c++_subchannel_list 2018-04-10 14:02:26 -07:00
Mehrdad Afshari 90cfc8ed57 Regenerate projects 2018-04-04 14:04:11 -07:00
Nicolas "Pixel" Noble 7d6d2e8bce Removing setsockopt completely actually. 2018-04-04 01:42:00 +02:00
Nicolas "Pixel" Noble 5426183de0 Taking care of gevent. 2018-04-04 00:56:07 +02:00
Mark D. Roth eef0cf6416 Merge remote-tracking branch 'upstream/master' into c++_subchannel_list 2018-04-03 14:55:42 -07:00
kpayson64 51d710273f Fix gevent test flakes 2018-04-02 11:10:31 -07:00
Mark D. Roth 7c1b5db3bb Convert subchannel_list code to C++. 2018-03-30 13:28:56 -07:00
David G. Quintas 07e75a02a0
Merge pull request #14615 from dgquintas/authority_header
Secure channels: use the right authority
2018-03-28 15:44:52 -07:00
kpayson64 c39496540c
Merge pull request #14561 from kpayson64/gevent_2
Initial Gevent Compatibility
2018-03-28 10:04:12 -07:00
kpayson64 1bfff8eec0 Initial gevent support
Because some cpp code ends up leaking into cython, we change
the cython generator to generate cpp code.
2018-03-27 19:44:43 -07:00
kpayson64 0bb2fe946e Explicitly stop servers in unit tests.
Relying on garbage collection to stop servers breaks with gevent.
2018-03-27 19:44:43 -07:00
David Garcia Quintas 158375a440 Merge branch 'master' of github.com:grpc/grpc into authority_header 2018-03-27 14:46:18 -07:00
David Garcia Quintas 49f625f232 more comments 2018-03-27 11:23:49 -07:00
David Garcia Quintas e44efe099d rest of pr comments 2018-03-26 16:23:07 -07:00
apolcyn bd6bdf9327
Merge pull request #13290 from apolcyn/cares_address_sorting_master_c
Add address sorting submodule for use in c-ares wrapper
2018-03-26 14:34:57 -07:00
David Garcia Quintas 811169d62f Merge branch 'master' of github.com:grpc/grpc into authority_header 2018-03-23 22:39:35 -07:00
David Garcia Quintas fa460dcf1d Factor out grpc_add_default_authority_if_not_present 2018-03-23 14:51:41 -07:00
Feng Li 7b2f5775d8 Release the GIL when calling grpc_call_start_batch. 2018-03-23 09:23:51 -07:00
David Garcia Quintas 8824a137b8 Merge branch 'master' of github.com:grpc/grpc into authority_header 2018-03-21 18:27:23 -07:00
Noah Eisen e21c7bfd80
Merge pull request #14765 from grpc/revert-14687-early-ok
Revert "Verify early OK behavior"
2018-03-21 17:39:29 -07:00
David Garcia Quintas 0abc077d45 Merge branch 'master' of github.com:grpc/grpc into authority_header 2018-03-21 17:10:15 -07:00
Noah Eisen dc93b71e53
Merge pull request #14751 from ncteisen/channel-tracing
[Fix Forward]: Channel Tracing Implementation; Part 1
2018-03-21 16:49:12 -07:00
David Garcia Quintas a10634cadc Merge branch 'master' of github.com:grpc/grpc into authority_header 2018-03-21 16:35:36 -07:00
Alexander Polcyn 690dde672a Add address sorting submodule for use in c-ares wrapper 2018-03-20 23:51:19 -07:00
Noah Eisen d2bc0c2609
Revert "Verify early OK behavior" 2018-03-20 15:59:47 -07:00
Ruslan Nigmatullin 99d0cee31b regenerate projects 2018-03-20 09:18:29 -07:00
Ruslan Nigmatullin 7ae3733cab [grpc] Add SSL session client cache support 2018-03-20 09:17:28 -07:00
ncteisen 3b42f83068 Revert "Revert "Channel Tracing Implementation; Part 1""
This reverts commit f2bea3725f.
2018-03-19 13:22:35 -07:00
Noah Eisen f2bea3725f
Revert "Channel Tracing Implementation; Part 1" 2018-03-19 12:05:18 -07:00
ncteisen b93a006d64 Merge branch 'master' of https://github.com/grpc/grpc into channel-tracing 2018-03-15 13:46:28 -10:00
David Garcia Quintas 961353ab6d moved filter to ext 2018-03-15 16:11:05 -07:00
kpayson64 2401c93e07
Merge pull request #14657 from ghostwriternr/reflection-readme
Create README for gRPC Python reflection package
2018-03-15 11:06:29 -07:00
Nathaniel Manista 62170372a7 Remove _face_interface_test
The Beta API has an execution date and RPC Framework is but a distant
memory.

This test is flaky with Python 3.5 on Windows! Some mysteries will just
have to remain unsolved...
2018-03-13 23:50:25 +00:00
Nathaniel Manista f7a8f8ba7c
Merge pull request #14687 from nathanielmanistaatgoogle/early-ok
Verify early OK behavior.
2018-03-13 16:44:11 -07:00
Nathaniel Manista 7726c303a6 Verify early OK behavior
Looks like early OK support was implemented in
https://github.com/grpc/grpc/pull/14080 but
https://github.com/grpc/grpc/issues/7032 was not marked fixed at the
time.

Good thing it was just an idea on our Google Summer of Code ideas
page...
2018-03-13 21:59:54 +00:00
Naresh c6e4372f8a Create README for gRPC Python reflection package
Currently, `warning: sdist: standard file not found` warning is always
printed when creating source distribution for gRPC python reflection
package. This should stop that.
2018-03-13 19:43:43 +00:00
David Garcia Quintas aa843f2bfc Testing making the authority filter a plugin, for cronet 2018-03-13 12:37:11 -07:00
kpayson64 539f5068bd Abstract libuv implementation
Structures the libuv implementation to allow for a plugable
BSD style socket implementation to allow for other IO Managers
2018-03-13 01:21:42 -07:00
David Garcia Quintas c7c0d69d8b Secure channels: use the right authority 2018-03-10 21:32:57 -08:00
Yihua Zhang 04fb58efbd Add ALTS code to grpc/core 2018-03-08 06:49:24 -08:00
Jan Tattermusch a5935917c5
Merge pull request #14629 from jtattermusch/bump_boringssl
Update third_party/boringssl to the latest chromium-stable
2018-03-08 10:44:02 +01:00
Sree Kuchibhotla ae277dd000
Revert "Add ALTS C stack to gRPC core" 2018-03-07 14:35:36 -08:00
kpayson64 b243732f3f
Merge pull request #14448 from kpayson64/remove_poller
Remove Python background poller thread
2018-03-07 14:06:20 -08:00
Jan Tattermusch d606e36061 regenerate projects 2018-03-07 21:21:38 +01:00
ncteisen 0c6024b94d Merge branch 'master' of https://github.com/grpc/grpc into channel-tracing 2018-03-07 10:17:15 -08:00
Yihua Zhang eaf6486677 Add ALTS code to grpc/core 2018-03-06 21:40:45 -08:00
ncteisen e9587db853 Move status util 2018-03-06 08:16:04 -08:00
ncteisen 1cc064dbfc Reviewer feedback, s/object_registry/channel_trace_registry 2018-03-06 08:01:17 -08:00
ncteisen 31c05ba668 reviewer feedback, rename 2018-03-06 07:09:37 -08:00
ncteisen 94dad67f43 Merge branch 'master' of https://github.com/grpc/grpc into channel-tracing 2018-03-02 22:09:52 -08:00
ncteisen 75cf85c9ce Merge branch 'master' of https://github.com/grpc/grpc into channel-tracing 2018-03-01 19:57:24 -08:00
Vijay Pai b357f2f548 Merge branch 'master' into 2phase_thd 2018-03-01 11:48:29 -08:00
Mark D. Roth 718c8341ca Retry support. 2018-02-28 13:00:04 -08:00
Mark D. Roth 3e7f2df047 Convert slice hash table and service config code to C++. 2018-02-26 14:39:26 -08:00
Vijay Pai 8b05d0284f Merge branch 'master' into 2phase_thd 2018-02-24 10:37:13 -06:00
Mehrdad Afshari 9073ea03ef Regenerate projects 2018-02-22 22:21:33 -08:00
Vijay Pai a8453a20d8 Merge branch 'master' into 2phase_thd 2018-02-21 10:24:15 -08:00
Ken Payson a75712a71f Remove Python background poller thread 2018-02-20 18:11:46 -08:00
Yihua Zhang 75f0a9fbd2 place security_connector in its own subdirectory 2018-02-20 10:09:47 -08:00
Vijay Pai da69355f30 C++ize gpr_thread as grpc_core::Thread, make it 2-phase init (construct/Start) 2018-02-19 22:39:58 -08:00
Vijay Pai 58a62755fc Remove support for detached threads. All threads must be joined. 2018-02-15 21:30:13 -08:00
Mehrdad Afshari db04c18289 Clarify add_done_callback works on both success and failure 2018-02-13 11:25:28 -08:00
ncteisen ac86f04373 Merge branch 'master' of https://github.com/grpc/grpc into channel-tracing 2018-02-13 09:27:35 -08:00
Vijay Pai 0693b72b7f Merge branch 'master' into gpr_review 2018-02-08 15:18:13 -08:00
Mark D. Roth 2a073981f3
Merge pull request #13684 from markdroth/c++_resolver
C++ Resolver API
2018-02-08 12:18:55 -08:00
Vijay Pai 18b9133f31 Merge branch 'master' into gpr_review 2018-02-08 12:18:09 -08:00
Vijay Pai 239b7d4b0b Merge branch 'master' into gpr_review 2018-02-08 11:08:41 -08:00
Mark D. Roth 209f644f04 Convert resolver API to C++. 2018-02-08 10:26:46 -08:00
Vijay Pai 32748c1b2a Merge branch 'master' into gpr_review3 2018-02-08 10:06:23 -08:00
Vijay Pai 8f4fbb1c55 Move avl to its own directory and rename it to grpc_avl 2018-02-08 10:04:08 -08:00
Muxi Yan cda058de8e build projects 2018-02-06 18:17:42 -08:00
Muxi Yan 6f0b195d20 Replace GRPC_COMPRESS_MESSAGE_* with GRPC_COMPRESS_* 2018-02-06 18:17:42 -08:00
Mehrdad Afshari b66e6fe761 Sleep a second to deflake ReconnectTest
The thread that watches connectivity on the channel might not
pick up that the server has gone away before the request is
dispatched, and return UNAVAILABLE instead of reconnecting
prior to sending the request.  The fundamental solution would
basically be enabling retries in C-core.  For now, we opt to
sleep a second to deflake this particular test case.
2018-02-06 16:07:32 -08:00
Vijay Pai 4c0640ebd6
Merge branch 'master' into gpr_review3 2018-02-02 09:12:11 -08:00
Vijay Pai e5b0a50416
Merge pull request #14015 from vjpai/alarm
Remove alarm from core, implement in C++ layer only
2018-02-02 08:44:20 -08:00
ncteisen bdb746ec00 Merge branch 'master' of https://github.com/grpc/grpc into channel-tracing 2018-01-29 10:58:59 -08:00
Matt Kwong a110c74c58 Update BoringSSL to latest chromium-stable ref 2018-01-26 18:21:25 -08:00
Nathaniel Manista 16316a9fec
Merge pull request #14107 from nathanielmanistaatgoogle/12531
Elide cygrpc.ChannelArg and cygrpc.ChannelArgs.
2018-01-26 12:59:34 -08:00
Mark D. Roth 77474d46ad
Merge pull request #13820 from yihuazhang/rename-gts
Rename GTS to ALTS for TSI plugin
2018-01-26 08:30:44 -08:00
Nathaniel Manista c73758acb0 Elide cygrpc.ChannelArg and cygrpc.ChannelArgs 2018-01-26 07:09:28 +00:00
Vijay Pai 8a99fdb57e Move cmdline and subprocess from public gpr to test/core/util 2018-01-25 20:11:38 -08:00
ncteisen 99bc5c624d Merge branch 'master' of https://github.com/grpc/grpc into channel-tracing 2018-01-24 16:20:29 -08:00
Muxi Yan fd900e09fb Merge remote-tracking branch 'upstream/master' into fix-stream-compression-config-interface 2018-01-24 16:16:23 -08:00
Yihua Zhang d36fe0708b rename gts to alts 2018-01-23 10:40:45 -08:00
ncteisen 34ebf5dd9e Move object registry out of gpr 2018-01-23 09:10:14 -08:00
ncteisen bd0c019c39 Merge branch 'master' of https://github.com/grpc/grpc into channel-tracing 2018-01-23 08:58:11 -08:00
Vijay Pai 2b226adf60 Remove alarm from core, implement in C++ layer only 2018-01-21 21:03:56 -08:00
Mehrdad Afshari 6615ef5eef Relax call details interface from interceptor
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.
2018-01-21 16:20:47 -08:00
Mehrdad Afshari 43884047c9 Regenerate projects 2018-01-19 14:25:15 -08:00
Muxi Yan 19b4feaee7 Update surface API in cython pxi 2018-01-19 12:22:24 -08:00
Muxi Yan fb061c329a Merge remote-tracking branch 'upstream/master' into fix-stream-compression-config-interface 2018-01-19 12:20:15 -08:00
Mark D. Roth dbdf495f61 Split lib/support into lib/gpr and lib/gpr++. 2018-01-18 11:21:12 -08:00
Mehrdad Afshari f2a33b0e39 Reformat Python docstrings 2018-01-17 18:13:26 -08:00
kpayson64 e1e562eb17
Merge pull request #13965 from evanj/python-abort-fix
python: Context.abort should fail RPC even for StatusCode.OK
2018-01-12 17:09:43 -08:00
Evan Jones 145b199c4d 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.
2018-01-12 18:20:55 -05:00
Nathaniel Manista 31ddbff8cf Elide cygrpc.Timespec 2018-01-10 22:58:00 +00:00
ncteisen b04efac6a5 Merge branch 'master' of https://github.com/grpc/grpc into channel-tracing 2018-01-09 13:49:37 -08:00
Mehrdad Afshari 87cd994b04 Upgrade yapf to 0.20.0
Upgrade yapf version to 0.20.0 and reformat Python files.
2018-01-02 14:40:00 -08:00
Nathaniel Manista e1d592a999
Merge pull request #13891 from nathanielmanistaatgoogle/12531
Reform cygrpc.OperationTag and cygrpc.Event.
2017-12-31 17:11:26 -08:00
Mehrdad Afshari c71c6a7f3d Merge branch v1.8.x into master
Upmerge v1.8.3 into master
2017-12-31 14:10:01 -08:00
Nathaniel Manista 7b9c023391 Reform cygrpc.OperationTag and cygrpc.Event
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.
2017-12-31 20:43:58 +00:00
Mehrdad Afshari 6c9a0a1a96 Bump version to 1.8.3 2017-12-30 18:28:13 -08:00
ncteisen 7d9b6358b5 Initial commit
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).
2017-12-28 15:09:17 -08:00
Nathaniel Manista 81edf5ff9a Reform cygrpc.Operation
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.
2017-12-21 19:31:15 +00:00
Mehrdad Afshari 271b042c4d Fix port picking logic in Python tests 2017-12-20 22:51:02 -08:00
kpayson64 247a05e4b3
Merge pull request #13843 from kpayson64/fix_python_tests
Disable so_reuseport for Python tests
2017-12-20 14:21:04 -08:00
Ken Payson 3bc8e422dc Disable so_reuseport for Python tests 2017-12-20 13:02:00 -08:00
Ken Payson 16e4bc010a Bump to 1.8.2 2017-12-19 17:29:04 -08:00
Mehrdad Afshari 0981f9fab1 Bump version to 1.8.1 2017-12-14 15:14:23 -08:00
Mehrdad Afshari 5b6b591343
Merge pull request #13789 from grpc/v1.8.x
Upmerge changes from v1.8.x to master
2017-12-14 13:56:36 -08:00
kpayson64 f5649c7e96
Merge pull request #13786 from kpayson64/fix_python_server_race
Fixes race condition in Python server shutdown
2017-12-14 13:11:35 -08:00
Ken Payson 8179b9523a 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.
2017-12-14 12:07:07 -08:00
Nathaniel Manista e1c4021726 Reallow out-of-spec metadata
This restore unsupported, de facto behavior that was dropped in
80516e884a but that it turns out a lot of folks
have been using.
2017-12-14 18:52:37 +00:00
Muxi Yan 032e9b32dc Merge remote-tracking branch 'upstream/master' into fix-stream-compression-config-interface 2017-12-13 14:04:45 -08:00
Mehrdad Afshari 0ba96edc41 v1.8.0-pre2 is now v1.8.0 2017-12-12 14:01:25 -08:00
Mehrdad Afshari fdfaf1b12e Add tests for gRPC Python interceptor machinery 2017-12-12 12:01:07 -08:00
Mehrdad Afshari 108500f194 Add gRPC Python client-side interceptor machinery 2017-12-12 12:01:07 -08:00
Mehrdad Afshari 68e1978e9e Add gRPC Python service-side interceptor machinery 2017-12-12 12:01:02 -08:00
Muxi Yan c870ce5476 More message compression level clean-up 2017-12-11 15:53:22 -08:00
Mehrdad Afshari c5ba665b22 Merge remote-tracking branch 'origin/v1.8.x' 2017-12-11 11:32:11 -08:00
ncteisen 138ee78529 yapf grpcio_tests 2017-12-11 16:32:31 -08:00
ncteisen e2097f0cc9 yapf-ize grpc_testing 2017-12-11 16:27:29 -08:00
ncteisen 0f6c518e3c yapf-ize grpcio_reflection 2017-12-11 16:22:30 -08:00
ncteisen d258430bc3 yapf-ize grpcio_health_checking 2017-12-11 16:16:20 -08:00
ncteisen 128366374f Yapf-ize grpcio/grpc_.py 2017-12-11 16:14:24 -08:00
Mehrdad Afshari b0afa016cb Refactor: Rename call to response_iterator_call
Rename call to response_iterator_call file-wide for response-streaming tests.
2017-12-10 06:32:13 -08:00
Mehrdad Afshari 90ab995cb0 Tests for ServicerContext.abort 2017-12-10 20:45:18 -08:00
Mehrdad Afshari 9bc44e3829 Introduce ServicerContext.abort to abort an RPC
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.
2017-12-10 20:45:13 -08:00
Nathaniel Manista d14035c55a
Merge pull request #13688 from nathanielmanistaatgoogle/12531
Elide cygrpc.Operations.
2017-12-08 14:40:37 -08:00
Muxi Yan 99024d6436 Merge remote-tracking branch 'upstream/master' into fix-stream-compression-config-interface 2017-12-08 14:02:18 -08:00
Nathaniel Manista c5c1216a65 Elide cygrpc.Operations 2017-12-08 20:55:15 +00:00
Nathaniel Manista 5cff6d3c2d
Merge pull request #13672 from nathanielmanistaatgoogle/12531
Streamline metadata in gRPC Python.
2017-12-08 10:50:22 -08:00
Nathaniel Manista 80516e884a Streamline metadata in gRPC Python 2017-12-08 11:07:35 +00:00
Yash Tibrewal caaf416eba virtual destructor in exec_ctx, remove unneeded flush in grpc_shutdown and remove grpc_exec_ctx from .pxi files in python 2017-12-07 21:09:11 -08:00
Nathaniel Manista ae74a320dc Fix Beta API metadata looseness 2017-12-08 03:02:32 +00:00
Muxi Yan 6043006af1 Merge remote-tracking branch 'upstream/master' into fix-stream-compression-config-interface 2017-12-06 22:29:12 -08:00
Muxi Yan fc38142db6 Merge commit 'b0bad8f^' into fix-stream-compression-config-interface 2017-12-06 22:02:08 -08:00
Muxi Yan 4a117f0be7 Merge e759d2a^ 2017-12-06 18:47:16 -08:00
Mehrdad Afshari aaf63d9277 Upmerge changes from v1.8.x to master 2017-12-05 10:01:41 -08:00
Mehrdad Afshari bfdaefef43 Refactor: rename 'e' to 'exception' 2017-12-04 21:49:45 -08:00
Mehrdad Afshari b030ccae05 Return UNKNOWN on GenericRpcHandler failure
A GenericRpcHandler registered on a gRPC Server is not supposed to raise
an exception and if it does so it is considered a programming defect.
However, gRPC is supposed to respond to the client with an UNKNOWN
status code.  Previously, this situation was left unhandled and the
client ended up receiving a response with CANCELLED status code.

This commit fixes the issue https://github.com/grpc/grpc/issues/13629.
2017-12-04 15:21:49 -08:00
Nathaniel Manista 562544151d
Merge pull request #13603 from nathanielmanistaatgoogle/credentials
Change client-side credentials' use of gRPC Core.
2017-12-04 08:39:08 -08:00
Nathaniel Manista 0c1f59e6d5
Merge pull request #13593 from nathanielmanistaatgoogle/12531
Refactor _plugin_wrapping.
2017-12-04 07:52:27 -08:00
Nathaniel Manista dfe8403280 Change client-side credentials' use of gRPC Core
Rather than allocating gRPC Core memory when instantiated and
retaining it until deleted, gRPC Python's credentials objects now
offer methods to create gRPC Core structures on demand.
2017-12-03 22:33:19 +00:00
Nathaniel Manista 992b8c10b4 Fix some doc string formatting and content 2017-12-03 21:11:46 +00:00
Nathaniel Manista 460e0aa9e6 Refactor _plugin_wrapping 2017-12-01 22:41:10 +00:00
Nathaniel Manista 6267d779b5
Merge pull request #13587 from nathanielmanistaatgoogle/access-token-auth-metadata-plugin
Correct AccessTokenAuthMetadataPlugin name.
2017-12-01 10:39:12 -08:00
Nathaniel Manista 6288753742 Correct AccessTokenAuthMetadataPlugin name
It was never itself a "call credentials" of any sort.
2017-12-01 16:00:17 +00:00
Vijay Pai 195cf1ebfd Move histogram to test/core/util 2017-11-30 15:02:04 -08:00
Nicolas "Pixel" Noble 7d199c95a2 Merge branch 'master' of https://github.com/grpc/grpc into v1.8.x 2017-11-30 09:08:01 +01:00
Nicolas "Pixel" Noble 361f8108e4 Merge branch 'master' of https://github.com/grpc/grpc into upmerge-from-v1.7 2017-11-29 19:31:42 +01:00
Nathaniel Manista 95bcb4924b Avoid unsupported and unintended API self-use
"Do not make undocumented and unsupported use of one part of an API
from within the implementation of another part of the same API" is one
of the rules of Abstraction Club. Not sure if it's important enough to
be the first two rules, but it's up there.
2017-11-28 22:51:07 +00:00
Nathaniel Manista 6e6e31e75b grpc.CallCredentials doc string correction 2017-11-28 22:21:14 +00:00
Mehrdad Afshari d39d007e8f
Merge pull request #13515 from mehrdada/bump-master-version
Bump 1.8.0-dev to 1.9.0-dev
2017-11-28 13:30:54 -08:00
Vijay Pai bc61c538a9
Merge pull request #13491 from vjpai/destack
Pop lockfree stack off core implementation
2017-11-28 13:05:21 -08:00
Mehrdad Afshari 14e96f9ae8 Bump 1.8.0-dev to 1.9.0-dev 2017-11-27 17:14:15 -08:00
Mehrdad Afshari 552a7ca088 Bump 1.8.0-dev to 1.8.0-pre1 2017-11-27 16:51:21 -08:00
Mehrdad Afshari 0df9c8acdc Update Python dependency to protobuf v3.5.0.post1 2017-11-27 12:52:41 -08:00
Vijay Pai 891254292e Remove lockfree stack, again 2017-11-22 10:22:28 -08:00
Nathaniel Manista bb9333c485
Merge pull request #13486 from nathanielmanistaatgoogle/elide-local-field
Elide local field by directly returning values.
2017-11-22 04:29:26 -08:00
Nathaniel Manista 9e8a6922ca
Merge pull request #13485 from nathanielmanistaatgoogle/const
Add missing const.
2017-11-21 19:03:01 -08:00
Nathaniel Manista 0eacb45a48 Elide local field by directly returning values 2017-11-22 02:10:52 +00:00
Nathaniel Manista 77d2c721cb Add missing const 2017-11-22 01:42:56 +00:00
Nathaniel Manista 76c27a5768
Merge pull request #13479 from nathanielmanistaatgoogle/certificate-configuration
Avoid abbreviation in Python API.
2017-11-21 13:38:51 -08:00
Nathaniel Manista 1628da0136 Avoid abbreviation in Python API
I should have requested this during code review of bcf083fa90
but it slipped my mind.
2017-11-21 19:22:44 +00:00
Mehrdad Afshari 90dbd2b670 Alter health/reflection packages' build criterion
Using the presence of the `*_pb2_grpc` module, as opposed to the absence
of the build script (`*_commands` module) is a problematic choice,
because even if a generated file is present, the test infrastructure may
want to regenerate it under a different environment (e.g. different
Python/proto package version).  This will ensure the protos always get
recompiled if we have a `*_commands` module present, signaling we are in
a build environment, thereby making the process hermetic.
2017-11-20 18:37:34 -08:00
Nathaniel Manista 018153cd1a
Merge pull request #13406 from nathanielmanistaatgoogle/interop_required_args
Require port and server_port interop flags.
2017-11-20 17:35:46 -08:00
Nathaniel Manista ec4791254e
Merge pull request #13188 from cauthu/python-server-cert-reload
Add Python support for server SSL certificate reloading.
2017-11-20 16:26:44 -08:00
Nicolas "Pixel" Noble 18a6837bb0 Merge branch 'v1.7.x' of https://github.com/grpc/grpc 2017-11-21 00:36:21 +01:00
Giang Nguyen bcf083fa90 Add Python support for server SSL cert reloading
Previously, a secure server is configured with SSL credentials during
initialization, and those credentials will be used for the lifetime of
the server. If the user wants the server to use new credentials, the
user has to restart the server, resulting in server downtime. This
change enables the user to optionally configure the server with a
"certificiate config fetcher," such that on every new client
connection, the server will call the config fetcher before performing
the handshake, allowing the user application to optionally specify new
certificate configuration for the server to use (the fetcher can
return a "no change" and the server continues to use its current
certificate configuration).
2017-11-20 23:09:56 +00:00
Noah Eisen ad3bdbeb4a
Merge pull request #13335 from ncteisen/inline-closure
Inline Closure
2017-11-16 14:43:06 -08:00
Mehrdad Afshari 9d1ba2efd9 Fix grpcio_{health_checking,reflection} packaging
The previous packaging structure exhibited strange behavior of
slowness when trying to use pip to install grpcio-reflection
or grpcio-health-checking in a single line with grpcio-tools.

The root cause seems to be the complicated interaction between
pip and setuptools and the fact that we ship a single .tar.gz
"source" archive for `grpcio_reflection` and
`grpcio_health_checking` packages.  `pip` tries to build this
"source" package, and our build process wants to generate
code for the `.proto` files in the package.  However, we have
already processed the `.proto` files into `_pb2.py` files in
our artifact build process, and installing `grpcio_tools`
to get `grpcio_{reflection,health_checking}` seems excessive.
The behavior gets worse since `setuptools`, while building
the package from source, tries to fetch `grpcio_tools` from
source and build that too.  This takes a while, since it
involves compiling a bunch of native code from `protobuf` and
`grpc` and requires a C compiler to boot.

This commit modifies the Python artifact for the two packages
so that they will not include the raw `.proto` files in the
distribution uploaded to PyPI, nor would they contain the
Python module that does the preprocessing code generation
from the respective .proto files.  Instead, a specific code
path is taken when the generated `_pb2_grpc` Python module is
not present in the package to provide such functionality
when built from the gRPC git repository (and hence when built
from our CI infrastructure.)
2017-11-15 16:36:25 -08:00
Nathaniel Manista 254cb369a6 Require port and server_port interop flags
Also sort arguments to ArgumentParser.add_argument in idiomatic order.
2017-11-15 20:32:00 +00:00
Noah Eisen 9268703dc9 Merge branch 'master' of https://github.com/grpc/grpc into inline-closure 2017-11-13 17:16:56 -08:00
Mehrdad Afshari d7a03c8197 Correct HEALTH_PROTO to REFLECTION_PROTO 2017-11-13 13:55:49 -08:00
ncteisen dd34f3caf6 Inline closure 2017-11-12 20:18:24 -08:00
Alexander Polcyn 9f5163eb85 Bump v1.7.x branch to 1.7.2 2017-11-01 11:07:28 -07:00
Jim King 3e0769957e
Merge pull request #13106 from Vizerai/census_update
Cleaning up census code.
2017-10-31 11:10:00 -07:00
Yuchen Zeng 9e6837d397
Merge pull request #12732 from y-zeng/connectivity_watcher
Client channel backup poller
2017-10-30 14:47:24 -07:00
Yuchen Zeng 0bad30a244 Use backup pollser instead of connectivity watcher 2017-10-30 12:06:52 -07:00
Yuchen Zeng f8ed4fa7f4 convert connectivity_watcher to cpp file 2017-10-30 12:06:52 -07:00
Yuchen Zeng 7269667f9e Add client channel connectivity watcher 2017-10-30 12:04:53 -07:00
Alexander Polcyn 40ba62f2a2 Bump v1.7.x branch to 1.7.1 2017-10-26 20:17:26 -07:00
Vizerai bb7d088ed2 Cleaning up census code. 2017-10-23 12:06:29 -07:00
Nicolas "Pixel" Noble 863a0500df Flagging 1.7.0 2017-10-21 01:48:27 +02:00
Ken Payson 9714e0376a Add thread pool reset on fork with FORKING_SUPPORT_ENABLED 2017-10-12 10:22:48 -07:00
Mark D. Roth 0e8cad5bba Merge remote-tracking branch 'upstream/master' into pick_first_subchannel_list 2017-10-12 09:13:15 -07:00
Muxi Yan f7a97e19cf build_project 2017-10-11 16:59:27 -07:00
Muxi Yan 03fc857a6f Merge remote-tracking branch 'upstream/master' into fix-stream-compression-config-interface 2017-10-06 18:47:09 -07:00
Mark D. Roth 5e9848e7b0 Refactor subchannel_list code out of RR and use it in PF. 2017-10-06 13:59:32 -07:00
Craig Tiller d48bd078d7 Fixes 2017-10-06 11:25:14 -07:00
Craig Tiller 5291023730 Merge github.com:grpc/grpc into flowctl+millis 2017-10-05 10:28:15 -07:00
Craig Tiller 76eab735f4 Merge github.com:grpc/grpc into flowctl+millis 2017-10-05 08:36:34 -07:00
murgatroid99 90e9140211 1.7.x is now 1.7.0-pre1 2017-10-04 14:02:22 -07:00
Yash Tibrewal ec3c138a83 Merge branch 'master' into externC 2017-10-03 16:23:42 -07:00
Yash Tibrewal bc460fa3c4 Rebasing on master for easier merging and testing 2017-10-02 19:01:25 -07:00
Muxi Yan ffa0fdd136 Fix Python build 2017-10-02 18:28:05 -07:00
murgatroid99 9887379158 Update version to 1.8.0-dev, update g word to 'generous' 2017-10-02 17:31:33 -07:00
Yash Tibrewal 26c78038a5 Trying ken's fix for windows python 2017-10-02 16:34:00 -07:00
Yash Tibrewal a0b96d4f9a Running generate projects 2017-10-02 16:34:00 -07:00
Yash Tibrewal 15ce142d65 Reverting pb.c files for now. Also fixing few more build errors 2017-10-02 16:32:27 -07:00
Yash Tibrewal 83062842c3 Changes for C to C++. Adding extern C to header files for compatibility.
Also converting to .cc
2017-10-02 16:29:41 -07:00
Yash Tibrewal 1c9b584a15 Changes for C to C++. Adding extern C to header files for compatibility. 2017-10-02 16:26:53 -07:00
Craig Tiller 1e868f0f95 Merge github.com:grpc/grpc into flowctl+millis 2017-09-29 11:18:26 -07:00
Nathaniel Manista 87997edd45 Merge pull request #12765 from nathanielmanistaatgoogle/cython
Devolve staticmethod to ordinary function.
2017-09-29 08:45:31 -07:00
Mark D. Roth ede8ed2156 Merge pull request #12374 from markdroth/plugin_credentials_api_fix
Change plugin credentials API to support both sync and async modes
2017-09-29 07:26:50 -07:00
Nathaniel Manista 103991eb73 Devolve staticmethod to ordinary function 2017-09-29 05:04:49 +00:00
Nathaniel Manista 3efe754799 "resopnse" typo correction 2017-09-28 22:38:06 +00:00
Nathaniel Manista 4ceb743c82 Drop unused staticmethods 2017-09-28 22:37:38 +00:00
Nathaniel Manista 3e3bbdff91 Raise exception instances rather than classes 2017-09-28 22:36:31 +00:00
Mark D. Roth 6456e494a8 Merge remote-tracking branch 'upstream/master' into plugin_credentials_api_fix 2017-09-28 15:16:14 -07:00
Mehrdad Afshari e249079cbe Be a tad more specific requesting error reports
This commit is a rebase of an old contribution with minor formatting
edits (cf. https://github.com/grpc/grpc/pull/8663)

[Original Author]
Masood Malekghassemi <atash@google.com>
Date:      Mon Nov 7 14:49:09 2016 -0800
Contributor is a Xoogler and the contribution is owned by Google Inc.
as per the copyright assignment agreement with the original author,
as it was drafted during their employment with Google Inc.
2017-09-26 11:31:00 -07:00
Muxi Yan 1c285b9812 Merge remote-tracking branch 'upstream/master' into fix-stream-compression-config-interface 2017-09-25 12:38:17 -07:00
Mark D. Roth b4c01f9e29 Merge remote-tracking branch 'upstream/master' into plugin_credentials_api_fix 2017-09-25 12:36:30 -07:00
Muxi Yan 92d1bc11ba generate_project 2017-09-25 11:43:06 -07:00
Muxi Yan 31c66c576a Merge pull request #12399 from muxi/fix-stream-compression-transport-duplicate
Fix stream compression transport duplicate
2017-09-22 14:41:41 -07:00
Craig Tiller 05d77d8b21 Merge github.com:grpc/grpc into flowctl+millis 2017-09-21 13:39:01 -07:00
Nathaniel Manista 06f5e05466 Merge pull request #12666 from nathanielmanistaatgoogle/grpc_1_0_flag
Clean up even more uses of gRPC in _pb2.py files.
2017-09-21 08:04:18 -07:00
Nathaniel Manista e232f1bd5a Clean up even more uses of gRPC in _pb2.py files 2017-09-21 05:52:25 +00:00
Craig Tiller 0d958d200e Merge github.com:grpc/grpc into grpc_millis 2017-09-20 03:32:44 +00:00
Craig Tiller dd96654721 Merge github.com:grpc/grpc into grpc_millis 2017-09-19 12:31:18 -07:00
Ken Payson 2746bd5998 Fix cython definition to match c definition
This is required to compile with Cython options that
are more strict about const correctness.
2017-09-19 12:24:40 -07:00
Muxi Yan 3f583b7829 Merge remote-tracking branch 'upstream/master' into fix-stream-compression-transport-duplicate 2017-09-19 10:12:25 -07:00
David G. Quintas 35d31c3641 Merge pull request #12622 from dgquintas/1.6.x-master-upmerge
1.6.x master upmerge
2017-09-18 20:10:24 -07:00
Nathaniel Manista 769ec3a8fa Merge pull request #12609 from nathanielmanistaatgoogle/grpc_1_0_flag
Use grpc_1_0 flag in beta_python_plugin_test.
2017-09-18 16:55:34 -07:00
Craig Tiller 50448beab3 Merge github.com:grpc/grpc into grpc_millis 2017-09-18 13:56:51 -07:00
David Garcia Quintas b352be025f Upmerge from v1.6.x branch to master 2017-09-18 11:55:52 -07:00
Nathaniel Manista 086e95ae65 Use grpc_1_0 flag in beta_python_plugin_test
Beta code elements are not generated at all in _pb2_grpc.py files.

This duplicates a lot of the in-test code generation done in
_split_definitions_test. In a future clean-up we may want to
deduplicate the common behavior, put it in a module available to all
other tests, and do all of our testing of generated code with in-test
code generation.
2017-09-18 18:01:21 +00:00
Nathaniel Manista e963820cfd Merge pull request #12615 from nathanielmanistaatgoogle/fix_with_metaclass_usage
Fix a six.with_metaclass usage mistake.
2017-09-18 09:32:28 -07:00
Nathaniel Manista 86eb4ec0ef Fix a six.with_metaclass usage mistake
I made this mistake in 2010985ab2 but
only with yesterday's release of six 1.11.0 has it started failing
("TypeError: metaclass conflict: the metaclassof a derived class must
be a (non-strict) subclass of the metaclasses of all its bases").
2017-09-18 14:22:16 +00:00
Nathaniel Manista c8cbddae0b Merge pull request #12602 from nathanielmanistaatgoogle/grpc_1_0_flag
Overhaul protoc_plugins._split_definitions_test.
2017-09-17 08:40:00 -07:00
Nathaniel Manista 719ade3cdc Overhaul protoc_plugins._split_definitions_test
We were mistaken before when we were testing _pb2.py files being
generated in one directory and _pb2_grpc.py files being generated in
another directory. Sure, that was a thing our code generator could do,
but because of the way paths and packages work in Python it wasn't a
realistic use case for actual users.

This test now tests _pb2.py files and _pb2_grpc.py files being
generated either together or independently of one another, and if
independently, in either order. Looking forward to an eventual
py_grpc_library Bazel rule, that's what actually matters.
2017-09-16 23:42:06 +00:00
Nathaniel Manista c4add66ebd Merge pull request #12603 from nathanielmanistaatgoogle/python_sanity_test
Tweak Python sanity test.
2017-09-16 14:02:28 -07:00
Nathaniel Manista 44038eb9b6 Tweak Python sanity test
- Move it out of the "unit" package, as it's not itself a unit test.

 - Suffix the test class with "Test" as we do with every other subclass
   of unittest.TestCase.

 - Add a larger-than-we'll-need-any-time-soon maxDiff so that failures
   are fully described.

 - Relax the assertion from assertListEqual to assertSequenceEqual
   since we don't actually care whether or not the sequences being
   compared are list instances.

 - Change the order of the assertions arguments to match the
   "<expected>, <actual>" convention used in our assert*Equal calls
   elsewhere throughout the test corpus.

 - Internal implementation simplifications.
2017-09-16 18:55:53 +00:00
Nathaniel Manista 6628282499 Merge pull request #12592 from nathanielmanistaatgoogle/grpc_1_0_flag
Clean up a few more uses of gRPC code elements in _pb2.py files.
2017-09-15 14:18:56 -07:00
Nathaniel Manista 8d3cc5ff0c Clean up a few more uses of gRPC in _pb2.py files
Were this not done these would break when the default behavior of gRPC
Python Protoc Plug-In is changed to be the put-gRPC-code-elements-only-
in-_pb2_grpc.py-files behavior that currently happens only when the
grpc_2_0 flag is passed.
2017-09-15 16:57:29 +00:00