[C++-sig] pybindgen add_function_as_constructor
Robin Gilks
robin.gilks at tait.co.nz
Mon Apr 27 23:43:19 CEST 2009
Gustavo Carneiro wrote:
>
> Sounds good.
>
> Sorry I wasn't online to help with the other questions. I assume
> those problems are solved, if not please ask again the questions.
>
>
> Where I've got to now is I can't find how to declare a docstring
> for a function or method.
>
>
> Doesn't this work?
>
> module.add_function(..., docstring="this is a docstring")
>
> OK, looking at the code I found two bugs in pybindgen wrt docstrings:
>
> 1. there is a bug with handling docstrings with overloaded
> functions; they will only work if the function is not overloaded with
> another function with the same name;
>
> 2. I forgot to add a docstring parameter to method objects. But
> it's a simple workaround, just:
>
> method = MyClass.add_method(...)
> method.docstring = "this is a docstring"
>
> Again, only works if the method is not overloaded.
>
Thanks Gustavo
That gave me all the clues I needed. I've only just started using Python
so my patch (below) is very much derived from the 'suck it and see'
philosophy. It seems to work for me however!!
diff -PurN pybindgen/cppmethod.py
../../pybindgen-0.10.0/pybindgen/cppmethod.py
--- pybindgen/cppmethod.py 2008-11-08 07:55:41.000000000 +1300
+++ ../../pybindgen-0.10.0/pybindgen/cppmethod.py 2009-04-27
23:05:27.000000000 +1200
@@ -19,7 +19,7 @@
Class that generates a wrapper to a C++ class method
"""
- def __init__(self, method_name, return_value, parameters,
is_static=False,
+ def __init__(self, method_name, return_value, parameters,
is_static=False, docstring=None,
template_parameters=(), is_virtual=False, is_const=False,
unblock_threads=None, is_pure_virtual=False,
custom_template_method_name=None, visibility='public',
@@ -95,7 +95,7 @@
#self.static_decl = True
self._class = None
self._helper_class = None
- self.docstring = None
+ self.docstring = docstring
self.wrapper_base_name = None
self.wrapper_actual_name = None
self.return_value = None
Cheers
--
Robin
=======================================================================
This email, including any attachments, is only for the intended
addressee. It is subject to copyright, is confidential and may be
the subject of legal or other privilege, none of which is waived or
lost by reason of this transmission.
If the receiver is not the intended addressee, please accept our
apologies, notify us by return, delete all copies and perform no
other act on the email.
Unfortunately, we cannot warrant that the email has not been
altered or corrupted during transmission.
=======================================================================
More information about the Cplusplus-sig
mailing list