Differences between revisions 11 and 14 (spanning 3 versions)
Revision 11 as of 2002-09-26 20:36:25
Size: 2562
Editor: MikeRovner
Comment:
Revision 14 as of 2002-11-15 19:54:06
Size: 2301
Editor: MikeRovner
Comment:
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 v2 is being developed, this page seems like a good place to assemble v2 intro and tutorial.
While full set of documentation is being developed, this page seems like a good place to assemble more info and cookbook.
Line 13: Line 11:
 * ["boost.python/module"]  * ["boost.python/module"] level: def,scope
Line 23: Line 21:
 1. boost.python/OverridableVirtualFunctions 
 1. boost.python/FunctionOverloading 
 1. boost.python/OverridableVirtualFunctions
 1. boost.python/FunctionOverloading
Line 27: Line 25:
 1. boost.python/PeekUnderTheHood 
 1. boost.python/CrossExtensionModuleDependencies 
 1. boost.python/PeekUnderTheHood
 1. boost.python/CrossExtensionModuleDependencies
Line 30: Line 28:
 1. boost.python/PointersAndSmartPointers 
 1. boost.python/InternalDataStructures 
 1. boost.python/PointersAndSmartPointers
 1. boost.python/InternalDataStructures
Line 42: Line 40:
 * mpl - currently in prerelease  * mpl

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/module"] level: def,scope
  • ["boost.python/class"]
  • ["boost.python/extract"]
  • ["boost.python/object"]
  • ["boost.python/list"]
  • ["boost.python/iterator"]

Tutorial:

  1. boost.python/SimpleExample
  2. boost.python/ExportingClasses
  3. boost.python/OverridableVirtualFunctions
  4. boost.python/FunctionOverloading
  5. ["boost.python/Inheritance"]
  6. boost.python/SpecialMethod
  7. boost.python/PeekUnderTheHood
  8. boost.python/CrossExtensionModuleDependencies
  9. boost.python/WrappingEnums
  10. boost.python/PointersAndSmartPointers
  11. 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.

boost.python (last edited 2008-11-15 14:00:11 by localhost)

Unable to edit the page? See the FrontPage for instructions.