According to the comment, the issue is from decorated functions. If
all the decorators use @wraps, does this problem not happen?

Aaron Meurer

On Thu, Apr 4, 2013 at 5:08 AM, Thomas Hisch <[email protected]> wrote:
> For the following functions/modules the regex in
>
>  if not in_module:
>                         # double check in case this function is decorated
>                         # and just appears to come from a different module.
>                         pat = r'\s*(def|class)\s+%s\s*\(' % rawname
>                         PAT = pre.compile(pat)
>                         in_module = any(
>                             PAT.match(line) for line in source_lines)
>
> matches. (If I remove this code all doctests still pass) Is this code
> still required ?
>
> regards
> thomas
>
> <function integrate at 0x17e4140> <module 'sympy.stats.crv' from
> 'sympy/stats/crv.pyc'>
> conjugate <module 'sympy.matrices.expressions.matexpr' from
> 'sympy/matrices/expressions/matexpr.pyc'>
> Dagger <module 'sympy.matrices.expressions.matexpr' from
> 'sympy/matrices/expressions/matexpr.pyc'>
> transpose <module 'sympy.matrices.expressions.matexpr' from
> 'sympy/matrices/expressions/matexpr.pyc'>
> transpose <module 'sympy.matrices.expressions.blockmatrix' from
> 'sympy/matrices/expressions/blockmatrix.pyc'>
> <function runs at 0xb1ba28> <module 'sympy.combinatorics.permutations'
> from 'sympy/combinatorics/permutations.pyc'>
> gamma <module 'sympy.simplify.hyperexpand' from
> 'sympy/simplify/hyperexpand.pyc'>
> <function diff at 0xe5b668> <module
> 'sympy.physics.mechanics.essential' from
> 'sympy/physics/mechanics/essential.pyc'>
> <type 'numpy.ndarray'> <module 'sympy.physics.quantum.matrixutils'
> from 'sympy/physics/quantum/matrixutils.pyc'>
> <class 'scipy.sparse.base.spmatrix'> <module
> 'sympy.physics.quantum.matrixutils' from
> 'sympy/physics/quantum/matrixutils.pyc'>
> <class 'sympy.matrices.expressions.matmul.MatMul'> <module
> 'sympy.assumptions.handlers.matrices' from
> 'sympy/assumptions/handlers/matrices.pyc'>
> <type 'itertools.combinations'> <module 'sympy.core.compatibility'
> from 'sympy/core/compatibility.pyc'>
> <type 'itertools.product'> <module 'sympy.core.compatibility' from
> 'sympy/core/compatibility.pyc'>
> <type 'itertools.permutations'> <module 'sympy.core.compatibility'
> from 'sympy/core/compatibility.pyc'>
> <type 'itertools.combinations_with_replacement'> <module
> 'sympy.core.compatibility' from 'sympy/core/compatibility.pyc'>
> <function copy at 0x73e5f0> <module 'sympy.core.basic' from
> 'sympy/core/basic.pyc'>
> <function dup_inner_isolate_positive_roots at 0x10cded8> <module
> 'sympy.polys.compatibility' from 'sympy/polys/compatibility.pyc'>
> <function dup_sturm at 0x10cd9b0> <module 'sympy.polys.compatibility'
> from 'sympy/polys/compatibility.pyc'>
> <function dup_root_lower_bound at 0x10cdaa0> <module
> 'sympy.polys.compatibility' from 'sympy/polys/compatibility.pyc'>
> <function dup_isolate_real_roots at 0x10ec140> <module
> 'sympy.polys.compatibility' from 'sympy/polys/compatibility.pyc'>
> <function dup_root_upper_bound at 0x10cda28> <module
> 'sympy.polys.compatibility' from 'sympy/polys/compatibility.pyc'>
> <function dup_inner_refine_real_root at 0x10cdc80> <module
> 'sympy.polys.compatibility' from 'sympy/polys/compatibility.pyc'>
> <function dup_count_complex_roots at 0x10ec5f0> <module
> 'sympy.polys.compatibility' from 'sympy/polys/compatibility.pyc'>
> <function dup_isolate_complex_roots_sqf at 0x10ec848> <module
> 'sympy.polys.compatibility' from 'sympy/polys/compatibility.pyc'>
> <function dup_step_refine_real_root at 0x10cdc08> <module
> 'sympy.polys.compatibility' from 'sympy/polys/compatibility.pyc'>
> <function dup_inner_isolate_negative_roots at 0x10cdf50> <module
> 'sympy.polys.compatibility' from 'sympy/polys/compatibility.pyc'>
> <function dup_refine_real_root at 0x10cdd70> <module
> 'sympy.polys.compatibility' from 'sympy/polys/compatibility.pyc'>
> <function dup_isolate_real_roots_list at 0x10ec1b8> <module
> 'sympy.polys.compatibility' from 'sympy/polys/compatibility.pyc'>
> <function dup_isolate_real_roots_sqf at 0x10ec0c8> <module
> 'sympy.polys.compatibility' from 'sympy/polys/compatibility.pyc'>
> <function dup_outer_refine_real_root at 0x10cdcf8> <module
> 'sympy.polys.compatibility' from 'sympy/polys/compatibility.pyc'>
> <function dup_isolate_all_roots at 0x10ec938> <module
> 'sympy.polys.compatibility' from 'sympy/polys/compatibility.pyc'>
> <function dup_count_real_roots at 0x10ec320> <module
> 'sympy.polys.compatibility' from 'sympy/polys/compatibility.pyc'>
> <function dup_inner_isolate_real_roots at 0x10cdde8> <module
> 'sympy.polys.compatibility' from 'sympy/polys/compatibility.pyc'>
> <function dup_isolate_all_roots_sqf at 0x10ec8c0> <module
> 'sympy.polys.compatibility' from 'sympy/polys/compatibility.pyc'>
>
> On Thu, Apr 4, 2013 at 2:37 AM, Aaron Meurer <[email protected]> wrote:
>> Hmm, probably not. I'm finding more and more excuses to drop Python
>> 2.5 support, though. Maybe we should push out just one more release
>> that supports it.
>>
>> Aaron Meurer
>>
>> On Wed, Apr 3, 2013 at 5:34 PM, Thomas Hisch <[email protected]> wrote:
>>>
>>> On Apr 4, 2013 1:08 AM, "Aaron Meurer" <[email protected]> wrote:
>>>>
>>>> Yeah, this is a bug, apparently due to poor parsing of the files. The
>>>> perfect way would be to parse using ast or something similar.
>>>
>>> Do you think that the functionality of the ast module required for our
>>> doc/unittester is also available on py2.5?
>>>
>>>>
>>>> Aaron Meurer
>>>>
>>>> On Wed, Apr 3, 2013 at 4:40 PM, Thomas Hisch <[email protected]> wrote:
>>>> > Commenting out the following lines in runtests.py solves my problem
>>>> > (BTW all doctests still pass)
>>>> >
>>>> >
>>>> > pat = r'\s*(def|class)\s+%s\s*\(' % rawname
>>>> > PAT = pre.compile(pat)
>>>> > in_module = any(PAT.match(line) for line in source_lines)
>>>> >
>>>> > regards
>>>> > thomas
>>>> >
>>>> > On Wed, Apr 3, 2013 at 11:34 PM, thomas hisch <[email protected]> wrote:
>>>> >> On Wednesday, April 3, 2013 11:28:11 PM UTC+2, thomas hisch wrote:
>>>> >>>
>>>> >>>
>>>> >>>
>>>> >>> On Wednesday, April 3, 2013 11:07:59 PM UTC+2, Stefan Krastanov wrote:
>>>> >>>>
>>>> >>>> I may be wrong, but I think the main reason to test docstrings and
>>>> >>>> especially the examples folder is to ensure that the documentation is
>>>> >>>> correct and up to date.
>>>> >>>
>>>> >>>
>>>> >>> This makes sense, but in the case of fem.py, which does not contain
>>>> >>> any
>>>> >>> docstrings, no doctests should be executed. Is this correct?
>>>> >>>
>>>> >>>
>>>> >>
>>>> >> Consider this examples which is a stripped down version of fem.py and
>>>> >> demonstates the problem
>>>> >>
>>>> >>
>>>> >> from sympy import integrate
>>>> >>
>>>> >> class ReferenceSimplex(object):
>>>> >>     def integrate(self):
>>>> >>         pass
>>>> >>
>>>> >> Doctesting this file triggers the doctest of the integrate method in
>>>> >> sympy/integrals. However, If I replace the name of the 'integrate'
>>>> >> method in
>>>> >> ReferenceSimplex by, e.g., 'integrate2' then no doctests are run. This
>>>> >> is
>>>> >> clearly a bug in sympydoctestfinder
>>>> >>
>>>> >>>>
>>>> >>>>
>>>> >>>> The unit tests as in "TDD" are in the test folders.
>>>> >>
>>>> >> --
>>>> >> You received this message because you are subscribed to a topic in the
>>>> >> Google Groups "sympy" group.
>>>> >> To unsubscribe from this topic, visit
>>>> >>
>>>> >> https://groups.google.com/d/topic/sympy/8dC1XJAIvQg/unsubscribe?hl=en-US.
>>>> >> To unsubscribe from this group and all its topics, send an email to
>>>> >> [email protected].
>>>> >> To post to this group, send email to [email protected].
>>>> >> Visit this group at http://groups.google.com/group/sympy?hl=en-US.
>>>> >> For more options, visit https://groups.google.com/groups/opt_out.
>>>> >>
>>>> >>
>>>> >
>>>> > --
>>>> > You received this message because you are subscribed to the Google
>>>> > Groups "sympy" group.
>>>> > To unsubscribe from this group and stop receiving emails from it, send
>>>> > an email to [email protected].
>>>> > To post to this group, send email to [email protected].
>>>> > Visit this group at http://groups.google.com/group/sympy?hl=en-US.
>>>> > For more options, visit https://groups.google.com/groups/opt_out.
>>>> >
>>>> >
>>>>
>>>> --
>>>> You received this message because you are subscribed to a topic in the
>>>> Google Groups "sympy" group.
>>>> To unsubscribe from this topic, visit
>>>> https://groups.google.com/d/topic/sympy/8dC1XJAIvQg/unsubscribe?hl=en-US.
>>>> To unsubscribe from this group and all its topics, send an email to
>>>> [email protected].
>>>> To post to this group, send email to [email protected].
>>>> Visit this group at http://groups.google.com/group/sympy?hl=en-US.
>>>> For more options, visit https://groups.google.com/groups/opt_out.
>>>>
>>>>
>>>
>>> --
>>> You received this message because you are subscribed to the Google Groups
>>> "sympy" group.
>>> To unsubscribe from this group and stop receiving emails from it, send an
>>> email to [email protected].
>>> To post to this group, send email to [email protected].
>>> Visit this group at http://groups.google.com/group/sympy?hl=en-US.
>>> For more options, visit https://groups.google.com/groups/opt_out.
>>>
>>>
>>
>> --
>> You received this message because you are subscribed to a topic in the 
>> Google Groups "sympy" group.
>> To unsubscribe from this topic, visit 
>> https://groups.google.com/d/topic/sympy/8dC1XJAIvQg/unsubscribe?hl=en-US.
>> To unsubscribe from this group and all its topics, send an email to 
>> [email protected].
>> To post to this group, send email to [email protected].
>> Visit this group at http://groups.google.com/group/sympy?hl=en-US.
>> For more options, visit https://groups.google.com/groups/opt_out.
>>
>>
>
> --
> You received this message because you are subscribed to the Google Groups 
> "sympy" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at http://groups.google.com/group/sympy?hl=en-US.
> For more options, visit https://groups.google.com/groups/opt_out.
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"sympy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sympy?hl=en-US.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to