[Python-Dev] subclassing PyCFunction_Type
Bob Ippolito
bob at redivi.com
Wed Feb 16 17:26:34 CET 2005
On Feb 16, 2005, at 11:02, Phillip J. Eby wrote:
> At 02:32 PM 2/11/05 -0800, Nick Rasmussen wrote:
>> tommy said that this would be the best place to ask
>> this question....
>>
>> I'm trying to get functions wrapped via boost to show
>> up as builtin types so that pydoc includes them when
>> documenting the module containing them. Right now
>> boost python functions are created using a PyTypeObject
>> such that when inspect.isbuiltin does:
>>
>> return isinstance(object, types.BuiltinFunctionType)
>
> FYI, this may not be the "right" way to do this, but since 2.3
> 'isinstance()' looks at an object's __class__ rather than its type(),
> so you could perhaps include a '__class__' descriptor in your method
> type that returns BuiltinFunctionType and see if that works.
>
> It's a kludge, but it might let your code work with existing versions
> of Python.
It works in Python 2.3.0:
import types
class FakeBuiltin(object):
__doc__ = property(lambda self: self.doc)
__name__ = property(lambda self: self.name)
__self__ = property(lambda self: None)
__class__ = property(lambda self: types.BuiltinFunctionType)
def __init__(self, name, doc):
self.name = name
self.doc = doc
>>> help(FakeBuiltin("name", "name(foo, bar, baz) -> rval"))
Help on built-in function name:
name(...)
name(foo, bar, baz) -> rval
-bob
More information about the Python-Dev
mailing list