aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/python
Commit message (Collapse)AuthorAge
* fix readmeGravatar Jan Tattermusch2015-02-25
|
* Avoid CANCELLATION ticket kind for back-to-front tickets.Gravatar Nathaniel Manista2015-02-24
| | | | | It's not (yet, see issue 752) allowed and code at the higher level doesn't know how to deal with it.
* Propagate ForeLink-joining to the inner RearLink.Gravatar Nathaniel Manista2015-02-24
| | | | | | rear._ActivatedRearLink's inner RearLink should of course send its tickets to whatever ForeLink was joined to the rear._ActivatedRearLink.
* Add a port method to assembly-level servers.Gravatar Nathaniel Manista2015-02-23
|
* Thread-pool-less construction of GRPC links.Gravatar Nathaniel Manista2015-02-22
| | | | | | 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.
* Replaces the generated code in src/python/interop/interop with more recently ↵Gravatar Masood Malekghassemi2015-02-20
| | | | generated code.
* The framework.assembly package.Gravatar Nathaniel Manista2015-02-20
| | | | | | | 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.
* Merge pull request #627 from nathanielmanistaatgoogle/sync-asyncGravatar Nathaniel Manista2015-02-20
|\
| * Add SyncAsync interfaces and implementations.Gravatar Nathaniel Manista2015-02-20
| | | | | | | | | | | | These invocation-side values allow users to choose between synchronous and asynchronous execution of their RPCs with a single attribute access.
* | Fix a thread leak bug.Gravatar Nathaniel Manista2015-02-20
| | | | | | | | | | | | | | | | 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.
* | Clean up Python C API use in src/python/src/grpc/_adapter/*.c. Specifically:Gravatar Thomas Wouters2015-02-20
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - 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.
* Merge pull request #589 from nathanielmanistaatgoogle/src-python-readmeGravatar Jayant Kolhe2015-02-19
|\ | | | | Add a src/python/README.md.
* \ Merge pull request #608 from nathanielmanistaatgoogle/interfaces_test_caseGravatar Tim Emiola2015-02-19
|\ \ | | | | | | Rename base/interfaces_test to base/interfaces_test_case.
* | | Python early_adopter changes in anticipation of interop client.Gravatar Nathaniel Manista2015-02-19
| | |
| * | Rename base/interfaces_test to base/interfaces_test_case.Gravatar Nathaniel Manista2015-02-19
|/ / | | | | | | | | | | With this change the Python codebase now conforms to an "if it ends with _test.py then it is an executable test" rule.
| * Add a src/python/README.md.Gravatar Nathaniel Manista2015-02-18
|/
* Add missing new-lines at end of fileGravatar Craig Tiller2015-02-18
|
* Add missing new-lines at end of fileGravatar Craig Tiller2015-02-18
|
* Update copyright to 2015Gravatar Craig Tiller2015-02-18
|
* Rework python, expand tool to make this easierGravatar Craig Tiller2015-02-17
|
* Merge github.com:grpc/grpc into copyrightGravatar Craig Tiller2015-02-17
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | 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
| * Python source reorganization.Gravatar Nathaniel Manista2015-02-18
| | | | | | | | | | A top-level "grpc" package is added and RPC Framework is made public.
* | Add copyrights to Python codeGravatar Craig Tiller2015-02-16
| |
| * The Python interoperability testing server.Gravatar Nathaniel Manista2015-02-15
| |
| * Add an early adopter public API.Gravatar Nathaniel Manista2015-02-15
| |
| * Add security to fore.ForeLink.Gravatar Nathaniel Manista2015-02-15
| |
| * Clean up setup.py and move it into src/.Gravatar Nathaniel Manista2015-02-15
| |
| * Simplify _WrappedConsumer.moar.Gravatar Nathaniel Manista2015-02-15
|/
* Change the interface of RPC Framework's Future interface.Gravatar Nathaniel Manista2015-02-13
| | | | | Now our Future interface is as-API-compatible-as-possible with Python's own concurrent.futures.Future.
* Allow _low.Server objects to be passed a ServerCredentials.Gravatar Nathaniel Manista2015-02-10
|
* Add a wrapping of grpc_server_credentials.Gravatar Nathaniel Manista2015-02-10
|
* Prepare for the new batch call API.Gravatar Craig Tiller2015-02-02
| | | | | Rename all core API functions that are on their way to deprecation with an _old tag across all wrappings.
* TODO fulfillment: use enum for enumerated types.Gravatar Nathaniel Manista2015-02-02
|
* Bring in the Python GRPC Adapter package.Gravatar Nathaniel Manista2015-02-02
|
* Refactoring of the Python build.Gravatar Nathaniel Manista2015-02-02
| | | | | | | | | | 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.
* Add the _framework.face package.Gravatar Nathaniel Manista2015-01-24
|
* Add the _framework.base package.Gravatar Nathaniel Manista2015-01-24
|
* Add the _framework.common package.Gravatar Nathaniel Manista2015-01-23
| | | | | It's rather unimpressive at the moment with just one module.
* Fill out the foundation package.Gravatar Nathaniel Manista2015-01-23
|
* Correct an out-of-date path in a comment.Gravatar Nathaniel Manista2015-01-23
|
* The logging_pool module.Gravatar Nathaniel Manista2015-01-22