What's the accepted practice for return types from a c based API
Python wrapper? I have many methods which return generators
which yield potentially many fields per iteration. In lower level
languages we would yield a struct with readonly fields.

The existing implementation returns a dict which I am not fond of.
I'd rather return an object with properties, however all the guys
who use this api use IDE's and want the type hinting. So, options I
can think of are to create a load of classes and returning instances
of them, return named tuples or even terser would be to return
something like:

def api_method(foo, bar):
    """produces two return values, x and y."""
    ...
    return type('MyResult', (), {'__slots__': [], 'some_field': x, 
'another_field': y})()

The last option humorously returns readonly fields.

However, the latter two don't help much for type hinting unless
someone knows something I don't about doc strings? As a Python user,
what is preferred?

Thanks,
jlc
-- 
https://mail.python.org/mailman/listinfo/python-list

Reply via email to