Ticket #422 (closed defect: fixed)
bug in setting __module__
| Reported by: | Fernando Perez | Owned by: | haoyu |
|---|---|---|---|
| Priority: | major | Milestone: | wishlist |
| Component: | Code Generation | Keywords: | |
| Cc: | biahaoyu@… |
Description
Hi folks,
I'm wondering if this is expected behavior. Consider some trivial
little class like
class Simpleton:
def __str__(self):
return "A simpleton"
def incr(self,x):
"""Increment x by one.
Examples:
s = Simpleton()
s.incr(1)
2
s.incr(10)
12
"""
return x+1
If I build this thing in cython, the Simpleton.incr.__module__
attribute is set to None, while if I make it a pure python module,
it's correctly set to the module name:
In [18]: p sprimes.primes.Simpleton.incr.__module__
None
In [19]: p sprimes.pyprimes.Simpleton.incr.__module__
sprimes.pyprimes
This difference causes the doctest to miss any doctest examples that
might be included in the methods.
Note that for *top-level* functions in the extension module, the
__module__ attribute is correctly set:
In [21]: p sprimes.primes.primes
<built-in function primes>
In [22]: p sprimes.primes.primes.__module__
sprimes.primes
so the problem appears to be only for classes.
This is running cython 0.9.8.
Thanks for any feedback,
f
Attachments
Change History
Note: See
TracTickets for help on using
tickets.

