- Current SVN
- Python 3 support:
- All the current Boost.Python test cases passed. Extension modules using
Boost.Python expected to support Python 3 smoothly.
is equivalent to Python code
y in x.
dict.has_key is just a wrapper of
- When building against Python 3,
str.decode will be removed.
- When building against Python 3, the original signature of
list.sort, which is:
void sort(object_cref cmpfunc);
will change to:
void sort(args_proxy const &args, kwds_proxy const &kwds);
This is because in Python 3
list.sort requires all its arguments be keyword arguments.
So you should call it like this:
x.sort(*tuple(), **dict(make_tuple(make_tuple("reverse", true))));
- According to PEP 3123,
when building Boost.Python against Python older than 2.6, the following macros will
be defined in Boost.Python header:
# define Py_TYPE(o) (((PyObject*)(o))->ob_type)
# define Py_REFCNT(o) (((PyObject*)(o))->ob_refcnt)
# define Py_SIZE(o) (((PyVarObject*)(o))->ob_size)
So extension writers can use these macro directly, to make code clean and compatible with Python 3.
- 1.39.0 Release
- Pythonic signatures are now automatically appended to the
control the content of docstrings.
- This new feature increases the size of the modules by about 14%.
If this is not acceptable it can be turned off by defining the macro
BOOST_PYTHON_NO_PY_SIGNATURES. Modules compiled with and without the macro
defined are compatible.
- If BOOST_PYTHON_NO_PY_SIGNATURES is undefined, this version defines the
macro BOOST_PYTHON_SUPPORTS_PY_SIGNATURES. This allows writing code that will compile
with older version of Boost.Python (see here).
- By defining BOOST_PYTHON_PY_SIGNATURES_PROPER_INIT_SELF_TYPE, and at a cost
of another 14% size increase, proper pythonic type is generated for the "self"
parameter of the __init__ methods.
- To support this new feature changes were made to the
CallPolicies and some others.
Efforts were made not to have interface breaking changes.
- 12 May 2007 - 1.34.0 release
- C++ signatures are now automatically appended to the
docstring_options.hpp header to
control the content of docstrings.
- Support for converting
void* to/from python,
as the return value policy. Thanks to Niall Douglas for the
- 19 October 2005 - 1.33.1 release
wrapper<T> can now be used as expected with a
held type of some-smart-pointer
- The build now assumes Python 2.4 by default, rather than 2.2
- Support Python that's built without Unicode support
- Support for wrapping classes with overloaded address-of
- 14 August 2005 - 1.33 release
- Support for docstrings on nonstatic properties.
- We now export the client-provided docstrings for
init<optional<> > and
_FUNCTION_OVERLOADS() for only the last
- Fixed some support for Embedded VC++ 4
- Better support for rvalue from-python conversions of shared_ptr:
always return a pointer that holds the owning python object *unless*
the python object contains a NULL shared_ptr holder of the right
- Support for exposing
vector<T*> with the
- Support for GCC-3.3 on MacOS.
- updated visual studio project build file to include two new files
(slice.cpp and wrapper.cpp)
- Added search feature to the index page.
- Numerous fixes to the tutorial
- Numerous workarounds for MSVC 6 and 7, GCC 2.96, and EDG
- 11 March 2005
- Added a hack that will fool PyDoc into working with Boost.Python,
thanks to Nick Rasmussen
- 19 November 2004 - 1.32 release
- Updated to use the Boost Software License.
- A new,
better method of wrapping classes with virtual functions has been
- Support for upcoming GCC symbol export control features have been
folded in, thanks to Niall Douglas.
- Improved support for
- The Visual C++ bug that makes top-level cv-qualification
of function parameter types part of the function type has been worked
- Components used by other libraries have been moved out of
python/detail and into
improve dependency relationships.
- Miscellaneous bug fixes and compiler workarounds.
- 8 Sept 2004
- Support for Python's Bool type, thanks to Daniel Holth.
- 11 Sept 2003
- Changed the response to multiple to-python converters being
registered for the same type from a hard error into warning;
Boost.Python now reports the offending type in the message.
- Added builtin
std::out_of_range => Python
IndexError exception conversion, thanks to Raoul Gough
- 9 Sept 2003
- Added new
- constructors which take a range of characters, allowing strings
containing nul (
- 8 Sept 2003
- Added the ability to create methods from function objects (with an
operator()); see the make_function docs for
- 10 August 2003
- Added the new
properties unit tests contributed by
Roman Yakovenko and
add_static_property at his urging.
- 1 August 2003
Added the new
arg class contributed by Nikolay Mladenov which supplies the
ability to wrap functions that can be called with ommitted arguments in
void f(int x = 0, double y = 3.14, std::string z = std::string("foo"));
, (arg("x", 0), arg("y", 3.14), arg("z", "foo")));
And in Python:
>>> import test
>>> f(0, z = "bar")
>>> f(z = "bar", y = 0.0)
- 22 July 2003
- Killed the dreaded "bad argument type for builtin operation" error.
Argument errors now show the actual and expected argument types!
- 19 July 2003
- Added the new
return_arg policy from Nikolay Mladenov. Thanks, Nikolay!
- 18 March, 2003
Ganßauge has contributed opaque pointer support.
Bruno da Silva de
Oliveira has contributed the exciting Pyste ("Pie-steh") package.
- 24 February 2003
- Finished improved support for
boost::shared_ptr. Now any
wrapped object of C++ class
X can be converted automatically
shared_ptr<X>, regardless of how it was wrapped.
shared_ptr will manage the lifetime of the Python object
which supplied the
X, rather than just the
object itself, and when such a
shared_ptr is converted back
to Python, the original Python object will be returned.
- 19 January 2003
staticmethod support from Nikolay Mladenov. Thanks, Nikolay!
- 29 December 2002
- Added Visual Studio project file and instructions from Brett Calcott.
- 20 December 2002
- Added automatic downcasting for pointers, references, and smart
pointers to polymorphic class types upon conversion to python
- 18 December 2002
- Optimized from_python conversions for wrapped classes by putting the
conversion logic in the shared library instead of registering separate
converters for each class in each extension module
- 19 November 2002
- Removed the need for users to cast base class member function
pointers when used as arguments to add_property
- 13 December 2002
- Allow exporting of
enum_ values into enclosing
Fixed unsigned integer conversions to deal correctly with numbers that
are out-of-range of
- 14 November 2002
- Auto-detection of class data members wrapped with
- 13 November 2002
- Full Support for
- October 2002
- Ongoing updates and improvements to tutorial documentation
- 10 October 2002
- Boost.Python V2 is released!