Commit Graph

208 Commits

Author SHA1 Message Date
Craig Tiller 5fdcbb7fbe Merge github.com:grpc/grpc into bye-bye-completion-queue-pie 2015-05-05 08:44:47 -07:00
Craig Tiller 64be9f7a30 C Core API cleanup.
Simplify grpc_event into something that can be non-heap allocated.
Deprecate grpc_event_finish.
Remove grpc_op_error - use an int as this is more idiomatic C style.
2015-05-04 14:53:51 -07:00
Yang Gao c71a9d2b56 clang-format 2015-05-04 00:22:12 -07:00
Masood Malekghassemi 51fe022db0 Merge pull request #1439 from nicolasnoble/python-c89
C89-ify the python code.
2015-04-30 15:22:48 -07:00
Nicolas "Pixel" Noble 64237fb02d C89-ify the python code. 2015-05-01 00:12:26 +02:00
Masood Malekghassemi 9f8682c578 Release Python 0.5.0a2 2015-04-30 14:56:08 -07:00
Masood Malekghassemi f722b0cd6f Extern-ify symbols so they don't collide 2015-04-30 13:56:46 -07:00
Masood Malekghassemi fae9d99e6a Release Python 0.5.0a1 2015-04-30 12:46:26 -07:00
Masood Malekghassemi f579e1d176 Migrate Python to batch core API 2015-04-28 10:14:59 -07:00
Craig Tiller 62bc1846b7 Uncomment accidentally commented stuff 2015-04-20 09:58:06 -07:00
Craig Tiller 12088b26d9 Tweak tests 2015-04-20 09:51:27 -07:00
Masood Malekghassemi 41251e4d3a Fix Python auth and interop test 2015-04-13 16:48:52 -07:00
Masood Malekghassemi e6b0038223 Add OAuth interop tests to Python
Also adds the commands to the grpc_docker shell library script to
support running in docker.
2015-04-09 12:25:39 -07:00
Alexander Staubo 8eac91eaf4 OS X doesn't have librt, so don't link to it. 2015-04-07 15:19:37 -04:00
Tim Emiola 0c665141db Merge pull request #1217 from soltanmm/pypi
Version update to 0.5.0
2015-04-07 11:09:32 -07:00
Masood Malekghassemi 2b34e5adf1 Version update to 0.5.0 2015-04-07 11:05:35 -07:00
Tim Emiola e4f2f1580d Merge pull request #1154 from soltanmm/pypi
Enable PyPI package management
2015-04-06 16:23:10 -07:00
Masood Malekghassemi 451887ba2c Enable PyPI package management 2015-04-06 16:19:49 -07:00
Nathaniel Manista 89ad057854 Update the generated Python interop code.
https://github.com/grpc/grpc/issues/1150 tracks the fact that these
files shouldn't even exist. For now, however, they do and should be
kept current.
2015-04-06 17:05:50 +00:00
Nathaniel Manista cd7096deb6 Add a metadata_transformer to the Python stub. 2015-04-06 15:08:36 +00:00
Masood Malekghassemi 660a33e11f Satisfy C90 pedantry in Python adapter 2015-04-03 11:16:12 -07:00
Nathaniel Manista 52bc8f962a Merge pull request #1163 from soltanmm/metadata
Add metadata support to low-level Python _adapter
2015-04-01 20:56:40 -07:00
Masood Malekghassemi 841f90f86f Add metadata support to low-level Python framework 2015-04-01 16:50:44 -07:00
Masood Malekghassemi 5bf4d2ae36 Reformat style of using PyObject_HEAD 2015-03-31 15:58:17 -07:00
Nathaniel Manista f492b16d48 Unify early_adopter construction functions
It was awkward for the generated code to call an API that offered
both insecure_server and secure_server as well as insecure_stub and
secure_stub. With this change there is just a single server function
and a single stub function and security is decided based on arguments
passed.
2015-03-30 18:14:52 +00:00
Masood Malekghassemi 89905ac55d Factor out interface-specific early_adopter code
Refactors early_adopter such that interface-specific code is located in
the framework module as a submodule `alpha`.
2015-03-17 18:54:24 -07:00
Nathaniel Manista de5490c15c Change remaining "packet" names to "ticket"
This renaming has been incrementally happening for the last several
weeks and this change finishes it.
2015-03-18 00:37:19 +00:00
Nathaniel Manista 492dfdb950 Correct a package name in a doc string 2015-03-18 00:23:51 +00:00
Nathaniel Manista 4e6fd0a3ae Merge the base and base.packets packages
They were two halves of the same whole.
2015-03-18 00:22:57 +00:00
Masood Malekghassemi d942720266 Merge pull request #1031 from nathanielmanistaatgoogle/service_name
Add service name to Python early_adopter
2015-03-17 13:45:13 -07:00
Masood Malekghassemi d8818484fd Merge pull request #1061 from nathanielmanistaatgoogle/reenable-test
Reenable a disabled test method
2015-03-16 20:08:43 -07:00
Nathaniel Manista 9ef929d78d Reenable a disabled test method 2015-03-17 02:24:37 +00:00
Nathaniel Manista affe916405 Add at CANCELLATION back-to-front ticket kind
This addresses issue #752.
2015-03-17 01:10:22 +00:00
Nathaniel Manista e2e443c1d4 Use distinct enums for distinct ticket types 2015-03-17 00:49:36 +00:00
Masood Malekghassemi afdc24ae2b Merge pull request #1055 from nathanielmanistaatgoogle/python-refactoring
Python refactoring
2015-03-16 17:12:43 -07:00
Nathaniel Manista 8d81365a3c Iterate over an enum since we can
Since enums are themselves iterable there's no need to maintain a list
of the elements of the enum dating from back before the enum when its
values were just independent constants that hung out together.
2015-03-16 23:35:15 +00:00
Nathaniel Manista ae3e5b53f0 Change managers to pass each other Outcomes
This refactoring greatly reduces the base-internal use of packet kinds
and will make much simpler a future change distinguishing front-to-back
packet kinds from back-to-front packet kinds.
2015-03-16 23:30:03 +00:00
Nathaniel Manista c4fada6e9a Add service name to Python early_adopter 2015-03-16 23:04:09 +00:00
murgatroid99 2493ea6d4b Fixed argument types in setup.py 2015-03-16 14:53:19 -07:00
Arkadiusz Bokowy 5d85675b56 Fix port selection for server
Commit 31e65be introduces a bug which causes starting server on a randomly
selected port.
2015-03-13 13:47:00 +01:00
Nicolas "Pixel" Noble 8a6b38c9be Remove a const from a variable that should be mutable.
deadline is passed by address to PyArg_ParseTuple to update its value.
However, deadline is a const double, so attempting to change its value
is undefined behavior. Remove the const to have well-defined behavior.
2015-03-12 18:58:59 +01:00
Nathaniel Manista 31e65beaed Eliminate the Python "assembly" package
This completes issue #726. All that cascading activation stuff just
didn't work out as cleanly as I had hoped it would.
2015-03-10 00:52:32 +00:00
Tim Emiola f9007045f2 Merge pull request #982 from sahlberg/python-readme
README: fix the path to the python requirements.txt file
2015-03-09 15:46:06 -07:00
Ronnie Sahlberg 400349ea4d README: fix the path to the python requirements.txt file
Signed-off-by: Ronnie Sahlberg <ronniesahlberg@gmail.com>
2015-03-07 09:33:09 -08:00
Nathaniel Manista 5c87a30c41 Refactoring within Python RPC Framework
The assembly and face layers were mostly redundant except that the
assembly layer had far-better interfaces and the face layer had more
of a reason to exist. Now they are merged.
2015-03-07 05:56:15 +00:00
Nicolas Noble 3631e82c89 Merge pull request #835 from ctiller/credit
C++ Credentials Rework
2015-03-06 17:40:46 -08:00
Nathaniel Manista 256ccca923 Use server_host_override in interop client
Also refactor the interop package to perform client-server interop
testing in a unit test.
2015-03-07 00:18:51 +00:00
Nathaniel Manista db13f68dab Add a server_host_override to stub creation
This optional value should only be passed in tests.
2015-03-07 00:18:13 +00:00
Nathaniel Manista a55c0949ee Python secure server API changes 2015-03-04 00:25:01 +00:00
Nicolas Noble b9518217f0 Merge pull request #887 from murgatroid99/travis_python
Added python tests to .travis.yml
2015-03-02 13:52:41 -08:00
murgatroid99 4a171f8e2d Fixed python link order 2015-03-02 13:17:53 -08:00
murgatroid99 4eb6e31566 Added rt link to python's setup.py 2015-03-02 13:07:38 -08:00
Misha Brukman 5cdf37eb7b Removed execute permissions from README files. 2015-03-02 16:12:49 +00:00
Misha Brukman 53f101a7a9 Moved pip dependencies into requirements.txt .
This allows for easier scripting and updates.
2015-03-02 00:59:16 +00:00
Nathaniel Manista 89fccb7d7a Simple installation instructions for Python. 2015-02-26 20:21:31 +00:00
Masood Malekghassemi bc53734c2e Merge pull request #830 from nathanielmanistaatgoogle/python-interop-client
The Python interop client.
2015-02-26 11:08:18 -08:00
Masood Malekghassemi e07edc50e1 Merge pull request #831 from nathanielmanistaatgoogle/security-progress
Work towards invocation-side security.
2015-02-26 09:33:47 -08:00
Nathaniel Manista 1c37fe62fd Work towards invocation-side security. 2015-02-26 17:11:23 +00:00
Nathaniel Manista c2b402001b The Python interop client.
The server_host_override flag's implementation remaining
outstanding means that this only works over insecure
connections for now.
2015-02-26 16:23:38 +00:00
Mugur Marculescu 67347d8a39 Merge pull request #820 from jayantkolhe/jayantkolhe-patch-3
Updated Python Status
2015-02-25 18:06:18 -08:00
Jayant Kolhe 806dde1bcb Update README.md 2015-02-25 14:39:14 -08:00
Nathaniel Manista 1ffe4feb6f Sanitize a reference number. 2015-02-25 21:39:05 +00:00
Nathaniel Manista c6e42c8a86 Set Python version number to 0.4.0. 2015-02-25 21:30:24 +00:00
Masood Malekghassemi 3c17f04af9 Merge pull request #795 from nathanielmanistaatgoogle/python-client-credentials
Python ClientCredentials object.
2015-02-25 12:43:52 -08:00
Masood Malekghassemi 02a74dd244 Merge pull request #785 from nathanielmanistaatgoogle/early-adopter-changes
Final changes to the early_adopter API.
2015-02-25 12:34:28 -08:00
Nathaniel Manista c855d57666 Python ClientCredentials object. 2015-02-25 19:09:08 +00:00
Jan Tattermusch e0172a86a0 fix readme 2015-02-25 10:34:55 -08:00
Nathaniel Manista 9280790a5d Final changes to the early_adopter API.
This makes grpc.early_adopter much more independent of RPC
Framework and cleaner at the cost of reexporting most of the
interfaces and writing several delegation classes.
2015-02-25 17:14:11 +00:00
Nathaniel Manista f4e3f3f8d6 Avoid CANCELLATION ticket kind for back-to-front tickets.
It's not (yet, see issue 752) allowed and code at the higher
level doesn't know how to deal with it.
2015-02-24 20:19:02 +00:00
Nathaniel Manista 4ad01246e3 Propagate ForeLink-joining to the inner RearLink.
rear._ActivatedRearLink's inner RearLink should of
course send its tickets to whatever ForeLink was joined
to the rear._ActivatedRearLink.
2015-02-24 00:53:45 +00:00
Nathaniel Manista de16e4c755 Add a port method to assembly-level servers. 2015-02-23 22:42:43 +00:00
Nathaniel Manista e04e20aaca Thread-pool-less construction of GRPC links.
These will be used in generated code in circumstances in which we
don't necessarily want to be asking calling code to have a thread
pool readily available.
2015-02-22 03:50:02 +00:00
Masood Malekghassemi f5f83be4fc Replaces the generated code in src/python/interop/interop with more recently generated code. 2015-02-20 17:07:36 -08:00
Nathaniel Manista 7efe54e336 The framework.assembly package.
This provides for now what should be a nicer interface for code
generation than that of the Face layer. In terms of abstraction
it's conceptually very similar so the two should probably be
merged as soon as is reasonable.
2015-02-20 23:05:32 +00:00
Nathaniel Manista 477ce9fd9a Merge pull request #627 from nathanielmanistaatgoogle/sync-async 2015-02-20 11:01:02 -08:00
Nathaniel Manista 331fcb9dc3 Add SyncAsync interfaces and implementations.
These invocation-side values allow users to choose
between synchronous and asynchronous execution of
their RPCs with a single attribute access.
2015-02-20 18:54:30 +00:00
Nathaniel Manista 97993b65b3 Fix a thread leak bug.
Successful operations were leaking the thread used for expiration
monitoring. This change ensures that the ExpirationManager for the
operation always has its abort() method called when the
TerminationManager for the operation judges the operation to have
terminated.
2015-02-20 18:14:00 +00:00
Thomas Wouters c04c573fb3 Clean up Python C API use in src/python/src/grpc/_adapter/*.c. Specifically:
- Use METH_O and METH_NOARGS where appropriate, modifying the C functions
   appropriately.  METH_O is for functions that take a single PyObject, and
   it's passed directly instead of 'args'.  METH_NOARGS is for functions
   that take no arguments, and they get called with just one argument
   ('self'.)

 - In PyArg_ParseTuple*() calls, specify the callable's name for more
   descriptive exception messages.

 - For tp_init functions (which always take keyword arguments) introduce
   keyword argument parsing (using the C local variables as keywords,
   although I don't know if they're the best names to use.) This is mostly
   as a way to show how keyword arguments are done in C.  An alternative
   method is to use _PyArg_NoKeywords(kwds) (see
   https://hg.python.org/cpython/file/70a55b2dee71/Python/getargs.c#l1820,
   but unfortunately it's not part of the official API,) or check manually
   that the dict is empty.

 - Check the return value of Python API functions that can return an error
   indicator (NULL or -1.) PyFloat_AsDouble is also one of these, but we
   don't check the return type (we would have to compare the result to 1.0
   with ==, which is not a thing you should do) so just call PyErr_Occurred
   unconditionally.

 - Change Py_BuildValue() calls with just "O" formats into PyTuple_Pack
   calls.  It requires less runtime checking.

 - Replace Py_BuildValue()/PyObject_CallObject pairs with
   PyObject_CallFunctionObjArgs (since all of them have just PyObject*
   arguments.) If the Py_BuildValue formats had included other types,
   PyObject_CallFunction() would have been easier, but no need in these
   cases.

 - Replace Py_BuildValue("f", ...) with PyFloat_FromDouble(...). Less
   runtime checking and parsing necessary, and more obvious in what it does.

 - In the PyType structs, replace "PyObject_HEAD_INIT(NULL) 0" with
   "PyVarObject_HEAD_INIT(NULL, 0)".  Anything with an ob_size struct member
   is a PyVarObject, although the distinction isn't all that import; it's
   just a more convenient macro.

 - Assign tp_new in the PyType structs directly, like all other struct
   members, rather than right before the PyType_Ready() call.

 - Remove PyErr_SetString() calls in places that already have a (meaningful)
   exception set.

 - Add a PyErr_Format() for an error return that wasn't setting an exception
   (PyObject_TypeCheck() doesn't set an exception.)

 - Remove NULL assignments to struct members in the error paths of the
   tp_init functions.  PyObject structs are always zeroed after allocation,
   guaranteed.  (If there's a way for them to already contain an object
   you'd use Py_CLEAR() to clear them, but that can't happen in these
   cases.)

 - Remove a few unnecessary parentheses.
2015-02-20 06:20:36 -08:00
Jayant Kolhe 6ef57ba3bf Merge pull request #589 from nathanielmanistaatgoogle/src-python-readme
Add a src/python/README.md.
2015-02-19 11:39:52 -08:00
Tim Emiola 222fbdf317 Merge pull request #608 from nathanielmanistaatgoogle/interfaces_test_case
Rename base/interfaces_test to base/interfaces_test_case.
2015-02-19 08:56:05 -08:00
Nathaniel Manista 3e2ebff833 Python early_adopter changes in anticipation of interop client. 2015-02-19 10:02:01 +00:00
Nathaniel Manista 1fbaad110f Rename base/interfaces_test to base/interfaces_test_case.
With this change the Python codebase now conforms to an
"if it ends with _test.py then it is an executable test"
rule.
2015-02-19 07:32:33 +00:00
Nathaniel Manista 9b98bd89af Add a src/python/README.md. 2015-02-18 22:47:25 +00:00
Craig Tiller ce5021b0b9 Add missing new-lines at end of file 2015-02-18 09:25:21 -08:00
Craig Tiller 190d360def Add missing new-lines at end of file 2015-02-18 09:23:38 -08:00
Craig Tiller 0605995e55 Update copyright to 2015 2015-02-18 08:34:56 -08:00
Craig Tiller 94640a3df9 Rework python, expand tool to make this easier 2015-02-17 20:42:05 -08:00
Craig Tiller 347b83c222 Merge github.com:grpc/grpc into copyright
Conflicts:
	src/python/src/__init__.py
	src/python/src/_adapter/__init__.py
	src/python/src/_framework/__init__.py
	src/python/src/_framework/base/__init__.py
	src/python/src/_framework/base/packets/__init__.py
	src/python/src/_framework/common/__init__.py
	src/python/src/_framework/face/__init__.py
	src/python/src/_framework/face/testing/__init__.py
	src/python/src/_framework/foundation/__init__.py
	src/python/src/_junkdrawer/__init__.py
2015-02-17 20:28:40 -08:00
Nathaniel Manista c25a3b35bd Python source reorganization.
A top-level "grpc" package is added and RPC Framework
is made public.
2015-02-18 02:46:17 +00:00
Craig Tiller c2c792113e Add copyrights to Python code 2015-02-16 12:00:01 -08:00
Nathaniel Manista 1d1f952731 The Python interoperability testing server. 2015-02-15 01:21:18 +00:00
Nathaniel Manista 2fe7cb7d6d Add an early adopter public API. 2015-02-15 01:19:21 +00:00
Nathaniel Manista 81337bb41f Add security to fore.ForeLink. 2015-02-15 01:18:41 +00:00
Nathaniel Manista a035afcfae Clean up setup.py and move it into src/. 2015-02-15 01:16:37 +00:00
Nathaniel Manista 6edb45189e Simplify _WrappedConsumer.moar. 2015-02-15 01:06:31 +00:00
Nathaniel Manista 83edf3e8d3 Change the interface of RPC Framework's Future interface.
Now our Future interface is as-API-compatible-as-possible with
Python's own concurrent.futures.Future.
2015-02-13 22:16:35 +00:00
Nathaniel Manista bc9773e105 Allow _low.Server objects to be passed a ServerCredentials. 2015-02-10 22:21:44 +00:00
Nathaniel Manista 49c877e579 Add a wrapping of grpc_server_credentials. 2015-02-10 22:17:55 +00:00
Craig Tiller c4f0ebe63b Prepare for the new batch call API.
Rename all core API functions that are on their way to deprecation with
an _old tag across all wrappings.
2015-02-02 15:39:31 -08:00
Nathaniel Manista 71723faa13 TODO fulfillment: use enum for enumerated types. 2015-02-02 17:26:01 +00:00
Nathaniel Manista a4ead5d91b Bring in the Python GRPC Adapter package. 2015-02-02 15:25:52 +00:00
Nathaniel Manista b8b0adfbf9 Refactoring of the Python build.
The source code is moved from src/python to
src/python/src. A setup.py is added at
src/python. The build_python.sh and
run_python.sh scripts are updated to build
and run the Python tests by building a
package and installing it in the developer's
Python 2.7 virtual environment.
2015-02-02 15:25:43 +00:00
Nathaniel Manista 7a3c38bed9 Add the _framework.face package. 2015-01-24 00:47:35 +00:00
Nathaniel Manista 21f29c6bf7 Add the _framework.base package. 2015-01-24 00:05:22 +00:00
Nathaniel Manista 61b5a81a1e Add the _framework.common package.
It's rather unimpressive at the moment with just
one module.
2015-01-23 21:42:39 +00:00
Nathaniel Manista b68f3d1746 Fill out the foundation package. 2015-01-23 21:32:47 +00:00
Nathaniel Manista fcd6c0c922 Correct an out-of-date path in a comment. 2015-01-23 20:54:58 +00:00
Nathaniel Manista 59d095a7df The logging_pool module. 2015-01-22 20:23:45 +00:00