1215
Comment:
|
2287
v2
|
Deletions are marked like this. | Additions are marked like this. |
Line 3: | Line 3: |
Use the Boost Python Library to quickly and easily export a C++ library to Python such that the Python interface is very similar to the C++ interface. It is designed to be minimally intrusive on your C++ design. In most cases, you should not have to alter your C++ classes in any way in order to use them with Boost.Python. The system should simply ''reflect'' your C++ classes and functions into Python. | Use the Boost Python Library to quickly and easily export a C++ library to Python such that the Python interface is very similar to the C++ interface. It is designed to be minimally intrusive on your C++ design. In most cases, you should not have to alter your C++ classes in any way in order to use them with Boost.Python. The system should simply ''reflect'' your C++ classes and functions into Python. |
Line 5: | Line 5: |
A summary of the development goals is available on the Python [http://www.python.org/sigs/c++-sig/ C++-sig] page, which also serves as a mailing list for users of both versions of the library. A preview of the v2 documentation is available [http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/*checkout*/boost/boost/libs/python/doc/v2/index.html?rev=HEAD&content-type=text/html here], and instructions for getting started with a prerelease are available upon request. | A summary of the development goals is available on the Python [http://www.python.org/sigs/c++-sig/ C++-sig] page, which also serves as a mailing list for users of the library. Documentation is available on http://www.boost.org/libs/python/doc/index.html |
Line 7: | Line 7: |
More on http://www.boost.org/libs/python/doc/index.html | While full set of documentation is being developed, this page seems like a good place to assemble more info and cookbook. |
Line 9: | Line 9: |
While v2 is being developed, this page seems like a good place to assemble v2 intro and tutorial. | Various items: * ["boost.python/FAQ"] * ["boost.python/def,scope"] * ["boost.python/class"] * ["boost.python/extract"] * ["boost.python/object"] * ["boost.python/list"] * ["boost.python/iterator"] |
Line 11: | Line 18: |
Tutorial: 1. boost.python/SimpleExample 1. boost.python/ExportingClasses 1. boost.python/OverridableVirtualFunctions 1. boost.python/FunctionOverloading 1. ["boost.python/Inheritance"] 1. boost.python/SpecialMethod 1. boost.python/PeekUnderTheHood 1. boost.python/CrossExtensionModuleDependencies 1. boost.python/WrappingEnums 1. boost.python/PointersAndSmartPointers 1. boost.python/InternalDataStructures |
|
Line 12: | Line 31: |
* ["boost.python/list"] * ["boost.python/FAQ"] |
---- From David Abrahams: Boost.Python is designed with the idea in mind that users never touch a Py``Object*. Boost.Python depends on quite a few of the other boost libraries (possibly a few others): * type_traits * bind * function * mpl * smart_ptr IIUC, ["weave"] can be used for embedding nontrivial C++ code, if you're willing to stick it all inside one function body. Furthermore, tools like weave.blitz() can make an enormous difference by compiling an entire C++ expression template corresponding to an arbitrarily complicated Python expression. Surely that's nontrivial. It's definitely ''cool''. I think weave offers enormous power to the person who's programming mostly in Python. |
The Boost Python Library allows the use of C/C++ from Python. It is part of the larger boost package (http://www.boost.org).
Use the Boost Python Library to quickly and easily export a C++ library to Python such that the Python interface is very similar to the C++ interface. It is designed to be minimally intrusive on your C++ design. In most cases, you should not have to alter your C++ classes in any way in order to use them with Boost.Python. The system should simply reflect your C++ classes and functions into Python.
A summary of the development goals is available on the Python [http://www.python.org/sigs/c++-sig/ C++-sig] page, which also serves as a mailing list for users of the library. Documentation is available on http://www.boost.org/libs/python/doc/index.html
While full set of documentation is being developed, this page seems like a good place to assemble more info and cookbook.
Various items:
- ["boost.python/FAQ"]
- ["boost.python/def,scope"]
- ["boost.python/class"]
- ["boost.python/extract"]
- ["boost.python/object"]
- ["boost.python/list"]
- ["boost.python/iterator"]
Tutorial:
- boost.python/SimpleExample
- boost.python/ExportingClasses
- boost.python/OverridableVirtualFunctions
- boost.python/FunctionOverloading
- ["boost.python/Inheritance"]
- boost.python/SpecialMethod
- boost.python/PeekUnderTheHood
- boost.python/CrossExtensionModuleDependencies
- boost.python/WrappingEnums
- boost.python/PointersAndSmartPointers
- boost.python/InternalDataStructures
From David Abrahams:
Boost.Python is designed with the idea in mind that users never touch a PyObject*.
Boost.Python depends on quite a few of the other boost libraries (possibly a few others):
- type_traits
- bind
- function
- mpl
- smart_ptr
IIUC, ["weave"] can be used for embedding nontrivial C++ code, if you're willing to stick it all inside one function body. Furthermore, tools like weave.blitz() can make an enormous difference by compiling an entire C++ expression template corresponding to an arbitrarily complicated Python expression. Surely that's nontrivial. It's definitely cool. I think weave offers enormous power to the person who's programming mostly in Python.