* Follow review comments to seperate Tensor Numpy interactive methods in
tensor.h.
* Simplify logic for `CastToPyBufferImpl`, make it as one struct and in
details namespace.
* Remove `Scope` expose in Python, since it currently is useless.
* Remove some debug functions.
All OpCreation method are generated by
`create_op_creation_methods::__bootstrap__` method, and stores in
`op_creations` object and its methods.
There are three parts to implement this feature.
1. Get all registered `OpProto` from C++ side. It is implemented in
`get_all_op_protos` method.
1. Create a function to convert `kwargs` to `OpDesc` base on each op's
`OpProto`. The `OpDescCreationMethod` class.
1. Convert `OpProto` to `docstring` by `get_docstring_from_op_proto`
method.
All three methods are unit tested. The `__bootstrap__` just combines
them together and create a method in runtime.
For details, please reference the doc string in
`create_op_creation_methods.py` and the unit test
`test_op_creation_methods.py`.
* PyBind and SWIG of paddle cannot be load in a single Python process,
lazy import all SWIG library of Paddle. Otherwise, the glog, gflags
are imported twice in a same Python process.
* Note that all PyBind11 return C++ std::string as an unicode. For
protobuf, it is need be cast to `str` before use them.
* Add unit test for Get `OpProtos`
* Expose paddle.framework by pybind11
* Export paddle.framework.{Scope, Variable} to paddle.v2.framework.core.
* See python/paddle/v2/framework/tests/test_scope.py for Python usage
* See paddle/pybind/pybind.cc for C++ bind code.
* add copyright