[C++-sig] New Major-Release Boost.Python Development
Hans Meine
hans_meine at gmx.net
Mon Aug 29 10:03:29 CEST 2011
Am 26.08.2011 um 20:25 schrieb Jim Bosch:
> - … the rvalue converters in particular don't seem to have been intended as
part of the public API originally, and I think they're an important part of
the library.
Correct, great!
> - Automatic conversions for newer boost libraries (Fusion, Pointer
Container, and Filesystem are at the top of my list), and more for the STL and
iostreams standard libraries. I'd like to integrate the indexing suite (v2)
into Boost.Python proper.
Probably makes sense, in particular the STL part is an often (understandibly)
expected feature.
> - Allow Boost.Python wrapped classes to inherit from Python classes.
Yes yes yes! (list/dict inheritence in particular is /so/ useful.)
> - Some limited degree of priority-based overload matching. Not sure how
best to approach this one yet, though.
A related goal (also template-related) is better support for error messages in
the face of overloaded functions. In our VIGRA library [1], we have a lot of
overloaded functions performing image analysis tasks on NumPy arrays.
Currently, we face the following problems:
- The automatically generated signatures in the docstrings are hard to read.
Don’t know if there is a better way of presenting signatures of heavily
templated code (improvements from the error messages of modern compilers or
STLfilt come to my mind), or if there should simply be a hook for custom
postprocessing. (Maybe just __doc__ being writeable from Python?)
- The same goes for error messages when calling with the wrong arguments.
- Furthermore, we have custom converters that check certain properties of the
passed arrays, e.g. dimensionality, memory layout, or dtype. With
overloading, all variants are tried in turn, but there’s no good way to
"collect" error messages, and tell the user why no registered overload would
match. (The C++ signatures don’t necessarily give the user enough
information.)
My feeling is that all this is strongly related to the features you already
have in mind, but hopefully my notes help in steering this into an even
better, more general direction.
Oh, and there’s another missing feature:
- Better support for introspection, e.g. by the ’inspect’ module or
documentation tools.
Looking forward to a "more accessible" BPL,
Hans^
[1] http://hci.iwr.uni-heidelberg.de/vigra/doc/vigranumpy/index.html
More information about the Cplusplus-sig
mailing list