Move some tests into function docstrings.
authorRobert Bradshaw <robertwb@math.washington.edu>
Thu, 29 Oct 2009 11:25:40 +0000 (04:25 -0700)
committerRobert Bradshaw <robertwb@math.washington.edu>
Thu, 29 Oct 2009 11:25:40 +0000 (04:25 -0700)
164 files changed:
runtests.py
tests/run/addloop.pyx
tests/run/addop.pyx
tests/run/addressof.pyx
tests/run/always_allow_keywords_T295.pyx
tests/run/and.pyx
tests/run/append.pyx
tests/run/argdefault.pyx
tests/run/arrayassign.pyx
tests/run/ass2local.pyx
tests/run/assert.pyx
tests/run/autotestdict.pyx
tests/run/backquote.pyx
tests/run/bad_c_struct_T252.pyx
tests/run/behnel1.pyx
tests/run/big_indices.pyx
tests/run/bint.pyx
tests/run/boolop.pyx
tests/run/bufaccess.pyx
tests/run/builtin_types_none_T166.pyx
tests/run/builtinnames.pyx
tests/run/call_crash.pyx
tests/run/callargs.pyx
tests/run/carrays.pyx
tests/run/cdef_bool_T227.pyx
tests/run/cdef_decorator_directives_T183.pyx
tests/run/cdef_opt.pyx
tests/run/cdef_setitem_T284.pyx
tests/run/cdefassign.pyx
tests/run/cdefoptargs.pyx
tests/run/cdivision_CEP_516.pyx
tests/run/cfuncdef.pyx
tests/run/char_constants_T99.pyx
tests/run/cintop.pyx
tests/run/cmp.pyx
tests/run/coercearraytoptr.pyx
tests/run/complex_numbers_T305.pyx
tests/run/concatcstrings.pyx
tests/run/consts.pyx
tests/run/cpdef_temps_T411.pyx
tests/run/crashT245.pyx
tests/run/cstruct.pyx
tests/run/ct_IF.pyx
tests/run/ctruthtests.pyx
tests/run/cunion.pyx
tests/run/cvardef.pyx
tests/run/dict.pyx
tests/run/dictintindex.pyx
tests/run/dietachmayer1.pyx
tests/run/empty_for_loop_T208.pyx
tests/run/enumerate_T316.pyx
tests/run/exceptionpropagation.pyx
tests/run/ext_instance_type_T232.pyx
tests/run/extcmethod.pyx
tests/run/extended_unpacking_T235.pyx
tests/run/extended_unpacking_T409.pyx
tests/run/extinherit.pyx
tests/run/extkwonlyargs.pyx
tests/run/extlen.pyx
tests/run/extpropertyref.pyx
tests/run/exttype.pyx
tests/run/filenames.pyx
tests/run/flatin.pyx
tests/run/float_floor_division_T260.pyx
tests/run/fmod.pyx
tests/run/for_from_float_T254.pyx
tests/run/for_in_range_T372.pyx
tests/run/forfrom.pyx
tests/run/funcexceptreraise.pyx
tests/run/hash_T326.pyx
tests/run/if.pyx
tests/run/importfrom.pyx
tests/run/index.pyx
tests/run/inline.pyx
tests/run/inop.pyx
tests/run/inplace.pyx
tests/run/int_literals.pyx
tests/run/ishimoto2.pyx
tests/run/isinstance.pyx
tests/run/isnonebool.pyx
tests/run/iteratorexception.pyx
tests/run/iterdict.pyx
tests/run/king1.pyx
tests/run/kwargproblems.pyx
tests/run/kwonlyargs.pyx
tests/run/kwonlyargscall.pyx
tests/run/large_consts_T237.pyx
tests/run/list.pyx
tests/run/listcomp.pyx
tests/run/literal_lists.pyx
tests/run/literals.pyx
tests/run/locals.pyx
tests/run/locals_rebind_T429.pyx
tests/run/menten1.pyx
tests/run/modbody.pyx
tests/run/modop.pyx
tests/run/multass.pyx
tests/run/new_style_exceptions.pyx
tests/run/nogil.pyx
tests/run/nonecheck.pyx
tests/run/nononetypecheck.pyx
tests/run/notinop.pyx
tests/run/or.pyx
tests/run/packedstruct_T290.pyx
tests/run/parallel_swap_assign_T425.pyx
tests/run/pass.pyx
tests/run/pinard5.pyx
tests/run/powop.pyx
tests/run/print.pyx
tests/run/pure.pyx
tests/run/pycmp.pyx
tests/run/pyintop.pyx
tests/run/pynumop.pyx
tests/run/pyobjcast_T313.pyx
tests/run/r_argdefault.pyx
tests/run/r_bowden1.pyx
tests/run/r_delgado_1.pyx
tests/run/r_forloop.pyx
tests/run/r_jeff_epler_1.pyx
tests/run/r_mitch_chapman_2.pyx
tests/run/r_primes.pyx
tests/run/r_print.pyx
tests/run/r_pyclass.pyx
tests/run/r_starargcall.pyx
tests/run/r_starargs.pyx
tests/run/r_starargsonly.pyx
tests/run/r_typecast.pyx
tests/run/r_vree_1.pyx
tests/run/range_optimisation_T203.pyx
tests/run/ref2local.pyx
tests/run/return.pyx
tests/run/returnparassign.pyx
tests/run/simpcall.pyx
tests/run/sizeof.pyx
tests/run/slice2.pyx
tests/run/specialfloat.pyx
tests/run/starargs.pyx
tests/run/str_char_coercion_T412.pyx
tests/run/strconstinclass.pyx
tests/run/strfunction.pyx
tests/run/struct_conversion.pyx
tests/run/subclasses.pyx
tests/run/subop.pyx
tests/run/switch.pyx
tests/run/tandemstats.pyx
tests/run/temp_alloc_T409.pyx
tests/run/temps_corner1.pyx
tests/run/ticket_124.pyx
tests/run/tuple.pyx
tests/run/tupleassign.pyx
tests/run/tuplereassign.pyx
tests/run/type_inference.pyx
tests/run/type_slots_int_long_T287.pyx
tests/run/typed_slice.pyx
tests/run/typedfieldbug_T303.pyx
tests/run/typeof.pyx
tests/run/unop.pyx
tests/run/unpack.pyx
tests/run/unpacklistcomp.pyx
tests/run/varargcall.pyx
tests/run/varargdecl.pyx
tests/run/watts1.pyx
tests/run/withnogil.pyx
tests/run/withstat.pyx

index 10ede0d24159f6a04b7b05e696356bbe155252ae..b6c01abf7bcd80a74d654f6875edaa279f61d32f 100644 (file)
@@ -433,6 +433,7 @@ is_private_field = re.compile('^_[^_]').match
 
 class _FakeClass(object):
     def __init__(self, **kwargs):
+        self.shortDescription = lambda x: kwargs.get('module_name')
         self.__dict__.update(kwargs)
 
 try: # Py2.7+ and Py3.2+
index ca31cb16bd11d135639e94c0f9685a2e4c7b4b34..0559487dbb287ca6971d95f2ca09fbcd5f6a8fbe 100644 (file)
@@ -5,27 +5,33 @@ __doc__ = u"""
     >>> x
     46
 
-    >>> add_pyrange(10)
-    46
-    >>> add_py(10)
-    46
-    >>> add_c(10)
-    46
 """
 
 def add_pyrange(max):
+    """
+    >>> add_pyrange(10)
+    46
+    """
     x = 1
     for i in range(max):
         x = x + i
     return x
 
 def add_py(max):
+    """
+    >>> add_py(10)
+    46
+    """
     x = 1
     for i from 0 <= i < max:
         x = x + i
     return x
 
 def add_c(max):
+    """
+    >>> add_c(10)
+    46
+    """
     cdef int x,i
     x = 1
     for i from 0 <= i < max:
index 513042f151aedc95cf38e6ce09e570c8f4038109..8e456dc20c8d14c71578b62531f27667cc9469dc 100644 (file)
@@ -1,9 +1,8 @@
-__doc__ = u"""
+def f():
+    """
     >>> f()
     (30, 22)
-"""
-
-def f():
+    """
     cdef int int1, int2, int3
     cdef char *ptr1, *ptr2 = "test", *ptr3 = "toast"
     int2 = 10
index 59e9de2c76ddcec6a07350c3bafe9818b92cfa20..35c8916f5f132e95f714a185c13b55875530747c 100644 (file)
@@ -1,9 +1,8 @@
-__doc__ = u"""
+def f(int a):
+    """
     >>> f(5)
     5
-"""
-
-def f(int a):
+    """
     cdef int i,j
     cdef int *p
     i = a
index 7458cb7da3a88332f9f2a82a116790d50d0e07fc..2e47dec6971e29ca37d4ac7d2d9da5bb8b40a2f3 100644 (file)
@@ -1,52 +1,56 @@
-__doc__ = u"""
->>> func1(None)
->>> func1(*[None])
->>> func1(arg=None)
-Traceback (most recent call last):
-...
-TypeError: func1() takes no keyword arguments
->>> func2(None)
->>> func2(*[None])
->>> func2(arg=None)
-Traceback (most recent call last):
-...
-TypeError: func2() takes no keyword arguments
->>> func3(None)
->>> func3(*[None])
->>> func3(arg=None)
-
->>> A().meth1(None)
->>> A().meth1(*[None])
->>> A().meth1(arg=None)
-Traceback (most recent call last):
-...
-TypeError: meth1() takes no keyword arguments
->>> A().meth2(None)
->>> A().meth2(*[None])
->>> A().meth2(arg=None)
-Traceback (most recent call last):
-...
-TypeError: meth2() takes no keyword arguments
->>> A().meth3(None)
->>> A().meth3(*[None])
->>> A().meth3(arg=None)
-"""
-
 cimport cython
 
 
 def func1(arg):
+    """
+    >>> func1(None)
+    >>> func1(*[None])
+    >>> func1(arg=None)
+    Traceback (most recent call last):
+    ...
+    TypeError: func1() takes no keyword arguments
+    """
     pass
 
 @cython.always_allow_keywords(False)
 def func2(arg):
+    """
+    >>> func2(None)
+    >>> func2(*[None])
+    >>> func2(arg=None)
+    Traceback (most recent call last):
+    ...
+    TypeError: func2() takes no keyword arguments
+    """
     pass
 
 @cython.always_allow_keywords(True)
 def func3(arg):
+    """
+    >>> func3(None)
+    >>> func3(*[None])
+    >>> func3(arg=None)
+    """
     pass
 
 cdef class A:
+    """
+    >>> A().meth1(None)
+    >>> A().meth1(*[None])
+    >>> A().meth1(arg=None)
+    Traceback (most recent call last):
+    ...
+    TypeError: meth1() takes no keyword arguments
+    >>> A().meth2(None)
+    >>> A().meth2(*[None])
+    >>> A().meth2(arg=None)
+    Traceback (most recent call last):
+    ...
+    TypeError: meth2() takes no keyword arguments
+    >>> A().meth3(None)
+    >>> A().meth3(*[None])
+    >>> A().meth3(arg=None)
+    """
 
     def meth1(self, arg):
         pass
index 070ba6f092a222d5a11289361db708293cb380c7..11721b1ca824dcd7e7e9e418703a050df96e3274 100644 (file)
@@ -1,51 +1,54 @@
-__doc__ = u"""
->>> a,b = 'a *','b *' # use non-interned strings
-
->>> and2_assign(2,3) == (2 and 3)
-True
->>> and2_assign('a', 'b') == ('a' and 'b')
-True
->>> and2_assign(a, b) == (a and b)
-True
-
->>> and2(2,3) == (2 and 3)
-True
->>> and2(0,2) == (0 and 2)
-True
->>> and2('a', 'b') == ('a' and 'b')
-True
->>> and2(a, b) == (a and b)
-True
->>> and2('', 'b') == ('' and 'b')
-True
->>> and2([], [1]) == ([] and [1])
-True
->>> and2([], [a]) == ([] and [a])
-True
-
->>> and3(0,1,2) == (0 and 1 and 2)
-True
->>> and3([],(),[1]) == ([] and () and [1])
-True
-
->>> and2_no_result(2,3)
->>> and2_no_result(0,2)
->>> and2_no_result('a','b')
->>> and2_no_result(a,b)
->>> a and b
-'b *'
-"""
+a,b = 'a *','b *' # use non-interned strings
 
 def and2_assign(a,b):
+    """
+    >>> a,b = 'a *','b *' # use non-interned strings
+    >>> and2_assign(2,3) == (2 and 3)
+    True
+    >>> and2_assign('a', 'b') == ('a' and 'b')
+    True
+    >>> and2_assign(a, b) == (a and b)
+    True
+    """
     c = a and b
     return c
 
 def and2(a,b):
+    """
+    >>> and2(2,3) == (2 and 3)
+    True
+    >>> and2(0,2) == (0 and 2)
+    True
+    >>> and2('a', 'b') == ('a' and 'b')
+    True
+    >>> and2(a, b) == (a and b)
+    True
+    >>> and2('', 'b') == ('' and 'b')
+    True
+    >>> and2([], [1]) == ([] and [1])
+    True
+    >>> and2([], [a]) == ([] and [a])
+    True
+    """
     return a and b
 
 def and3(a,b,c):
+    """
+    >>> and3(0,1,2) == (0 and 1 and 2)
+    True
+    >>> and3([],(),[1]) == ([] and () and [1])
+    True
+    """
     d = a and b and c
     return d
 
 def and2_no_result(a,b):
+    """
+    >>> and2_no_result(2,3)
+    >>> and2_no_result(0,2)
+    >>> and2_no_result('a','b')
+    >>> and2_no_result(a,b)
+    >>> a and b
+    'b *'
+    """
     a and b
index a58622949445b21731da77f89c0529b8bd4e6b4f..9a8aff57a53708107d8b7123bb0c23e62f671933 100644 (file)
@@ -1,26 +1,3 @@
-__doc__ = u"""
->>> test_append([])
-None
-None
-None
-got error
-[1, 2, (3, 4)]
->>> _ = test_append(A())
-appending
-1
-appending
-2
-appending
-(3, 4)
-got error
->>> test_append(B())
-None
-None
-None
-None
-[1, 2, (3, 4), 5, 6]
-"""
-
 class A:
     def append(self, x):
         print u"appending"
@@ -32,6 +9,28 @@ class B(list):
             list.append(self, arg)
 
 def test_append(L):
+    """
+    >>> test_append([])
+    None
+    None
+    None
+    got error
+    [1, 2, (3, 4)]
+    >>> _ = test_append(A())
+    appending
+    1
+    appending
+    2
+    appending
+    (3, 4)
+    got error
+    >>> test_append(B())
+    None
+    None
+    None
+    None
+    [1, 2, (3, 4), 5, 6]
+    """
     print L.append(1)
     print L.append(2)
     print L.append((3,4))
@@ -40,4 +39,3 @@ def test_append(L):
     except TypeError:
         print u"got error"
     return L
-
index 0a298f673ec99a83fc3ab4c5e2d54e7b39eab139..8a9f349bf2af33b1f50c127c832256fd090d9e46 100644 (file)
@@ -1,58 +1,45 @@
-__doc__ = u"""
->>> f0()
-(1, 2)
->>> g0()
-(1, 2)
-
->>> f1()
-[1, 2]
->>> g1()
-[1, 2]
-
->>> f2()
-{1: 2}
->>> g2()
-{1: 2}
-
->>> f3() #doctest: +ELLIPSIS
-<argdefault.Foo object at ...>
->>> g3() #doctest: +ELLIPSIS
-<argdefault.Foo object at ...>
-
->>> f4() #doctest: +ELLIPSIS
-<argdefault.Bar object at ...>
->>> g4() #doctest: +ELLIPSIS
-<argdefault.Bar object at ...>
-
->>> f5() #doctest: +ELLIPSIS
-<argdefault.Bla object at ...>
->>> g5() #doctest: +ELLIPSIS
-<argdefault.Bla object at ...>
-
->>> f6()
-7
->>> g6()
-7
-"""
-
 GLB0 = (1, 2)
 def f0(arg=GLB0):
+    """
+    >>> f0()
+    (1, 2)
+    """
     return arg
 def g0(arg=(1, 2)):
+    """
+    >>> g0()
+    (1, 2)
+    """
     return arg
 
 
 GLB1 = [1, 2]
 def f1(arg=GLB1):
+    """
+    >>> f1()
+    [1, 2]
+    """
     return arg
 def g1(arg=[1, 2]):
+    """
+    >>> g1()
+    [1, 2]
+    """
     return arg
 
 
 cdef GLB2 = {1: 2}
 def f2(arg=GLB2):
+    """
+    >>> f2()
+    {1: 2}
+    """
     return arg
 def g2(arg={1: 2}):
+    """
+    >>> g2()
+    {1: 2}
+    """
     return arg
 
 
@@ -60,8 +47,16 @@ class Foo(object):
     pass
 cdef GLB3 = Foo()
 def f3(arg=GLB3):
+    """
+    >>> f3() #doctest: +ELLIPSIS
+    <argdefault.Foo object at ...>
+    """
     return arg
 def g3(arg=Foo()):
+    """
+    >>> g3() #doctest: +ELLIPSIS
+    <argdefault.Foo object at ...>
+    """
     return arg
 
 
@@ -69,8 +64,16 @@ cdef class Bar:
     pass
 cdef Bar GLB4 = Bar()
 def f4(arg=GLB4):
+    """
+    >>> f4() #doctest: +ELLIPSIS
+    <argdefault.Bar object at ...>
+    """
     return arg
 def g4(arg=Bar()):
+    """
+    >>> g4() #doctest: +ELLIPSIS
+    <argdefault.Bar object at ...>
+    """
     return arg
 
 
@@ -78,13 +81,29 @@ cdef class Bla:
     pass
 cdef Bla GLB5 = Bla()
 def f5(Bla arg=GLB5):
+    """
+    >>> f5() #doctest: +ELLIPSIS
+    <argdefault.Bla object at ...>
+    """
     return arg
 def g5(Bla arg=Bla()):
+    """
+    >>> g5() #doctest: +ELLIPSIS
+    <argdefault.Bla object at ...>
+    """
     return arg
 
 
 cdef int GLB6 = 7
 def f6(int arg=GLB6):
+    """
+    >>> f6()
+    7
+    """
     return arg
 def g6(int arg=7):
+    """
+    >>> g6()
+    7
+    """
     return arg
index e0734979541d0fd0340f565dfe007ec7a62755f8..29c353e3d65f005fc4e8fcb27a6879af32f0d0a0 100644 (file)
@@ -1,60 +1,3 @@
-__doc__ = u"""
->>> test_literal_list_slice_all()
-(1, 2, 3, 4, 5)
->>> test_literal_list_slice_start()
-(1, 2, 3, 4, 5)
->>> test_literal_list_slice_end()
-(1, 2, 3, 4, 5)
->>> test_literal_list_slice_start_end()
-(1, 2, 3, 4, 5)
-
->>> test_literal_list_slice_start_param(4)
-(1, 2, 3, 4, 5)
->>> test_literal_list_slice_start_param(3)
-Traceback (most recent call last):
-ValueError: Assignment to slice of wrong length, expected 5, got 6
->>> test_literal_list_slice_start_param(5)
-Traceback (most recent call last):
-ValueError: Assignment to slice of wrong length, expected 5, got 4
-
->>> test_literal_list_slice_end_param(5)
-(1, 2, 3, 4, 5)
->>> test_literal_list_slice_end_param(4)
-Traceback (most recent call last):
-ValueError: Assignment to slice of wrong length, expected 5, got 4
->>> test_literal_list_slice_end_param(6)
-Traceback (most recent call last):
-ValueError: Assignment to slice of wrong length, expected 5, got 6
-
->>> test_literal_list_slice_start_end_param(2,7)
-(1, 2, 3, 4, 5)
->>> test_literal_list_slice_start_end_param(3,7)
-Traceback (most recent call last):
-ValueError: Assignment to slice of wrong length, expected 5, got 4
->>> test_literal_list_slice_start_end_param(1,7)
-Traceback (most recent call last):
-ValueError: Assignment to slice of wrong length, expected 5, got 6
->>> test_literal_list_slice_start_end_param(2,6)
-Traceback (most recent call last):
-ValueError: Assignment to slice of wrong length, expected 5, got 4
->>> test_literal_list_slice_start_end_param(2,8)
-Traceback (most recent call last):
-ValueError: Assignment to slice of wrong length, expected 5, got 6
->>> test_literal_list_slice_start_end_param(3,6)
-Traceback (most recent call last):
-ValueError: Assignment to slice of wrong length, expected 5, got 3
->>> test_literal_list_slice_start_end_param(1,8)
-Traceback (most recent call last):
-ValueError: Assignment to slice of wrong length, expected 5, got 7
-
->>> test_ptr_literal_list_slice_all()
-(1, 2, 3, 4, 5)
->>> test_ptr_literal_list_slice_start()
-(1, 2, 3, 4, 5)
->>> test_ptr_literal_list_slice_end()
-(1, 2, 3, 4, 5)
-"""
-
 # this doesn't work - it would reassign the array address!
 #
 #def test_literal_list():
@@ -63,54 +6,124 @@ ValueError: Assignment to slice of wrong length, expected 5, got 7
 #    return (a[0], a[1], a[2], a[3], a[4])
 
 def test_literal_list_slice_all():
+    """
+    >>> test_literal_list_slice_all()
+    (1, 2, 3, 4, 5)
+    """
     cdef int a[5] # = [5,4,3,2,1]
     a[:] = [1,2,3,4,5]
     return (a[0], a[1], a[2], a[3], a[4])
 
 def test_literal_list_slice_start():
+    """
+    >>> test_literal_list_slice_start()
+    (1, 2, 3, 4, 5)
+    """
     cdef int a[7] # = [7,6,5,4,3,2,1]
     a[2:] = [1,2,3,4,5]
     return (a[2], a[3], a[4], a[5], a[6])
 
 def test_literal_list_slice_end():
+    """
+    >>> test_literal_list_slice_end()
+    (1, 2, 3, 4, 5)
+    """
     cdef int a[7] # = [7,6,5,4,3,2,1]
     a[:5] = [1,2,3,4,5]
     return (a[0], a[1], a[2], a[3], a[4])
 
 def test_literal_list_slice_start_end():
+    """
+    >>> test_literal_list_slice_start_end()
+    (1, 2, 3, 4, 5)
+    """
     cdef int a[9] # = [9,8,7,6,5,4,3,2,1]
     a[2:7] = [1,2,3,4,5]
     return (a[2], a[3], a[4], a[5], a[6])
 
 def test_literal_list_slice_start_param(s):
+    """
+    >>> test_literal_list_slice_start_param(4)
+    (1, 2, 3, 4, 5)
+    >>> test_literal_list_slice_start_param(3)
+    Traceback (most recent call last):
+    ValueError: Assignment to slice of wrong length, expected 5, got 6
+    >>> test_literal_list_slice_start_param(5)
+    Traceback (most recent call last):
+    ValueError: Assignment to slice of wrong length, expected 5, got 4
+    """
     cdef int a[9] # = [9,8,7,6,5,4,3,2,1]
     a[s:] = [1,2,3,4,5]
     return (a[4], a[5], a[6], a[7], a[8])
 #    return a[s:]
 
 def test_literal_list_slice_end_param(e):
+    """
+    >>> test_literal_list_slice_end_param(5)
+    (1, 2, 3, 4, 5)
+    >>> test_literal_list_slice_end_param(4)
+    Traceback (most recent call last):
+    ValueError: Assignment to slice of wrong length, expected 5, got 4
+    >>> test_literal_list_slice_end_param(6)
+    Traceback (most recent call last):
+    ValueError: Assignment to slice of wrong length, expected 5, got 6
+    """
     cdef int a[9] # = [9,8,7,6,5,4,3,2,1]
     a[:e] = [1,2,3,4,5]
     return (a[0], a[1], a[2], a[3], a[4])
 #    return a[:e]
 
 def test_literal_list_slice_start_end_param(s,e):
+    """
+    >>> test_literal_list_slice_start_end_param(2,7)
+    (1, 2, 3, 4, 5)
+    >>> test_literal_list_slice_start_end_param(3,7)
+    Traceback (most recent call last):
+    ValueError: Assignment to slice of wrong length, expected 5, got 4
+    >>> test_literal_list_slice_start_end_param(1,7)
+    Traceback (most recent call last):
+    ValueError: Assignment to slice of wrong length, expected 5, got 6
+    >>> test_literal_list_slice_start_end_param(2,6)
+    Traceback (most recent call last):
+    ValueError: Assignment to slice of wrong length, expected 5, got 4
+    >>> test_literal_list_slice_start_end_param(2,8)
+    Traceback (most recent call last):
+    ValueError: Assignment to slice of wrong length, expected 5, got 6
+    >>> test_literal_list_slice_start_end_param(3,6)
+    Traceback (most recent call last):
+    ValueError: Assignment to slice of wrong length, expected 5, got 3
+    >>> test_literal_list_slice_start_end_param(1,8)
+    Traceback (most recent call last):
+    ValueError: Assignment to slice of wrong length, expected 5, got 7
+    """
     cdef int a[9] # = [9,8,7,6,5,4,3,2,1]
     a[s:e] = [1,2,3,4,5]
     return (a[2], a[3], a[4], a[5], a[6])
 #    return a[s:e]
 
 def test_ptr_literal_list_slice_all():
+    """
+    >>> test_ptr_literal_list_slice_all()
+    (1, 2, 3, 4, 5)
+    """
     cdef int *a = [6,5,4,3,2]
     a[:] = [1,2,3,4,5]
     return (a[0], a[1], a[2], a[3], a[4])
 
 def test_ptr_literal_list_slice_start():
+    """
+    >>> test_ptr_literal_list_slice_start()
+    (1, 2, 3, 4, 5)
+    """
     cdef int *a = [6,5,4,3,2,1]
     a[1:] = [1,2,3,4,5]
     return (a[1], a[2], a[3], a[4], a[5])
 
 def test_ptr_literal_list_slice_end():
+    """
+    >>> test_ptr_literal_list_slice_end()
+    (1, 2, 3, 4, 5)
+    """
     cdef int *a = [6,5,4,3,2,1]
     a[:5] = [1,2,3,4,5]
     return (a[0], a[1], a[2], a[3], a[4])
index ea904378d30a2e283c6caf47097fc10d9a525e95..98a81af5692a3db5f8adfd10dc3f4d394777d8a2 100644 (file)
@@ -1,8 +1,7 @@
-__doc__ = u"""
+def f():
+    """
     >>> f()
     42
-"""
-
-def f():
+    """
     a = 42
     return a
index 83130fa8386adc22ea1de2ebb77b94093ef1a638..b431001d92b2de5adf5ce0024eab3733f10535c3 100644 (file)
@@ -1,4 +1,5 @@
-__doc__ = u"""
+def f(a, b, int i):
+    """
     >>> f(1, 2, 1)
     >>> f(0, 2, 1)
     Traceback (most recent call last):
@@ -9,17 +10,16 @@ __doc__ = u"""
     >>> f(1, 2, 0)
     Traceback (most recent call last):
     AssertionError
-
-    >>> g(1, "works")
-    >>> g(0, "fails")
-    Traceback (most recent call last):
-    AssertionError: fails
-"""
-
-def f(a, b, int i):
+    """
     assert a
     assert a+b
     assert i
 
 def g(a, b):
+    """
+    >>> g(1, "works")
+    >>> g(0, "fails")
+    Traceback (most recent call last):
+    AssertionError: fails
+    """
     assert a, b
index e4f47a44c5fe2f4749d8365b107a4e5b4d93b21f..506376b3d2b26967d60b40f8ea744ef612d4b761 100644 (file)
@@ -109,5 +109,3 @@ cdef class MyCdefClass:
         >>> True
         False
         """
-
-
index 0062d9f051f5ef2de4744b272a9e140c05ace4cc..a2a933c18d08ba323c8ab902abdc8f85f67494ea 100644 (file)
@@ -1,17 +1,17 @@
-__doc__ = u"""
+def f(obj2):
+    """
     >>> f(20)
     '20'
     >>> f('test')
     "'test'"
-
-    >>> g()
-    '42'
-"""
-
-def f(obj2):
+    """
     obj1 = `obj2`
     return obj1
 
 def g():
+    """
+    >>> g()
+    '42'
+    """
     obj1 = `42`
     return obj1
index 7c26b5521bda7801afa80241ab9f6c4b3f453303..e011ec2d3c43d79067af9283a6708ab6f6d061b4 100644 (file)
@@ -1,4 +1,3 @@
-
 cdef cf(default=None):
     return default
 
index 35c738983b8df58859c12a7a31482dd65538cee6..e43a3d270b60f1e12fe495acaf3bdd45eb2ab290 100644 (file)
@@ -1,8 +1,3 @@
-__doc__ = u"""
-    >>> viking(5)
-    5
-"""
-
 cdef class Spam:
     cdef eggs(self, a):
         return a
@@ -11,4 +6,8 @@ cdef Spam spam():
     return Spam()
 
 def viking(a):
+    """
+    >>> viking(5)
+    5
+    """
     return spam().eggs(a)
index db70fe9970b8b5285943642cb5e91c3985175a58..6eb642e62ca55fe4704d2249aab3773429857970 100644 (file)
@@ -1,4 +1,5 @@
-__doc__ = u"""
+def test():
+    """
     >>> test()
     neg False
     pos True
@@ -6,9 +7,7 @@ __doc__ = u"""
     pos
     neg
     pos
-"""
-
-def test():
+    """
     cdef long neg = -1
     cdef unsigned long pos = -2 # will be a large positive number
 
@@ -22,4 +21,3 @@ def test():
 
     print D[neg]
     print D[pos]
-    
index 025c69e81215f2076700b02d48cd04f81017a2ac..8f498825d992da87930a60cc927511278def21c1 100644 (file)
@@ -1,18 +1,17 @@
-__doc__ = u"""
->>> call_test()
-False
-True
-False
-True
-True
-True
-True
-"""
-
 cdef test(bint value):
     print value
 
 def call_test():
+    """
+    >>> call_test()
+    False
+    True
+    False
+    True
+    True
+    True
+    True
+    """
     test(False)
     test(True)
     test(0)
index fdbac10b02cfbcdc335fa5ef0f523b0805debe34..99918444fe4741bda611770db22e9394c06b43bc 100644 (file)
@@ -1,9 +1,8 @@
-__doc__ = u"""
+def foo(obj1, obj2, obj3, obj4, obj5):
+    """
     >>> foo(True, False, 23, 'test', 1)
     (0.0, 1.0, False, False)
-"""
-
-def foo(obj1, obj2, obj3, obj4, obj5):
+    """
     cdef int bool1, bool2
     cdef float bool3, bool4
     cdef char *ptr1, *ptr2, *ptr0
index 8bd0629ed91331da8205a0c8400b1158359289b5..3f76acbe4d5299d58d728dc2b37acf54260ff43d 100644 (file)
@@ -1392,4 +1392,3 @@ def buffer_nogil():
     with nogil:
         buf[1] = 10
     return buf[1]
-    
index 74ac1f31865158447548efccc9ee33a852442191..fc3db82fa697959a5e7208d3c7e6074a0a92bd53 100644 (file)
@@ -4,11 +4,13 @@ __doc__ = u"""
 Traceback (most recent call last):
 AttributeError: 'NoneType' object has no attribute 'append'
 
->>> append_to_none()
-Traceback (most recent call last):
-AttributeError: 'NoneType' object has no attribute 'append'
 """
 
 def append_to_none():
+    """
+    >>> append_to_none()
+    Traceback (most recent call last):
+    AttributeError: 'NoneType' object has no attribute 'append'
+    """
     cdef list l = None
     l.append(2)
index aba3ac870ac6704229e582b374c5313bece43906..47a62e078242607911d8563bba642ff2da76ebd2 100644 (file)
@@ -1,14 +1,3 @@
-__doc__ = u"""
->>> test_c('abc')
-fileabc
-typeabc
->>> print(test_file_py('abc'))
-abc
->>> print(range('abc'))
-rangeabc
-"""
-
-
 def test_file_py(file):
     assert isinstance(file, (str, unicode)), \
         u"not a string, found '%s' instead" % file.__class__.__name__
@@ -28,5 +17,14 @@ cdef type(arg):
 
 
 def test_c(arg):
+    """
+    >>> test_c('abc')
+    fileabc
+    typeabc
+    >>> print(test_file_py('abc'))
+    abc
+    >>> print(range('abc'))
+    rangeabc
+    """
     print test_file_c(arg)
     print type(arg)
index 355fa08113c174fb366bfc8530aeb178780b26fc..74e107435662621cf78a556a6fe188ea5ffde832 100644 (file)
@@ -1,9 +1,8 @@
-__doc__ = u"""
+cdef class A:
+    """
     >>> A().test(3)
     9
-"""
-
-cdef class A:
+    """
 
     cdef int (*func_ptr)(int)
     
index fa44e649802d9fc872ac239e965647e827809499..d922b4fb7875497b1703b12c2a34c8ceee7932f7 100644 (file)
-__doc__ = u"""
-  >>> test_pos_args(h)
-  1 2 3 * 0 0
-  1 2 9 * 2 0
-  1 2 7 * 2 0
-  9 8 7 * 0 0
-  7 8 9 * 0 0
-
-  >>> test_kw_args(h)
-  1 2 3 * 0 0
-  1 2 9 * 2 1
-  1 2 7 * 2 1
-  1 2 9 * 2 2
-  1 2 9 * 2 2
-  1 2 9 * 2 3
-
-  >>> test_kw_args(e)
-  2 1
-  5 1
-  5 1
-  5 2
-  5 2
-  5 3
-
-  >>> test_kw(e)
-  0 1
-  0 2
-  0 2
-  0 1
-
-  >>> test_kw(g)
-  1
-  2
-  2
-  1
-
-  >>> test_pos_args(f)
-  3
-  5
-  5
-  3
-  3
-
-  >>> test_noargs(e)
-  0 0
-  >>> test_noargs(f)
-  0
-  >>> test_noargs(g)
-  0
-
-  # and some errors:
-
-  >>> test_noargs(h)
-  Traceback (most recent call last):
-  TypeError: h() takes at least 3 positional arguments (0 given)
-
-  >>> h(1,2, d=5)
-  Traceback (most recent call last):
-  TypeError: h() takes at least 3 positional arguments (2 given)
-
-  >>> f(1,2, d=5)
-  Traceback (most recent call last):
-  TypeError: f() got an unexpected keyword argument 'd'
-  >>> f(1, d=5)
-  Traceback (most recent call last):
-  TypeError: f() got an unexpected keyword argument 'd'
-  >>> f(d=5)
-  Traceback (most recent call last):
-  TypeError: f() got an unexpected keyword argument 'd'
-
-  >>> g(1,2, d=5)
-  Traceback (most recent call last):
-  TypeError: g() takes exactly 0 positional arguments (2 given)
-  >>> g(1,2)
-  Traceback (most recent call last):
-  TypeError: g() takes exactly 0 positional arguments (2 given)
-  >>> g(1)
-  Traceback (most recent call last):
-  TypeError: g() takes exactly 0 positional arguments (1 given)
-
-  >>> test_int_kwargs(e)
-  Traceback (most recent call last):
-  TypeError: e() keywords must be strings
-  >>> test_int_kwargs(f)
-  Traceback (most recent call last):
-  TypeError: f() keywords must be strings
-  >>> test_int_kwargs(g)
-  Traceback (most recent call last):
-  TypeError: g() keywords must be strings
-  >>> test_int_kwargs(h)
-  Traceback (most recent call last):
-  TypeError: h() keywords must be strings
-  
-  >>> d()
-  Traceback (most recent call last):
-  TypeError: d() takes at least 1 positional argument (0 given)
-  >>> d(1)
-  1 1 0 0
-  >>> d(1,2)
-  1 2 0 0
-  >>> d(1,2,3)
-  1 2 1 0
-
-  >>> d(key=None)
-  Traceback (most recent call last):
-  TypeError: d() takes at least 1 positional argument (0 given)
-  >>> d(1, key=None)
-  1 1 0 1
-  >>> d(1,2, key=None)
-  1 2 0 1
-  >>> d(1,2,3, key=None)
-  1 2 1 1
-  
-  >>> c()
-  10 20 0
-  >>> c(1)
-  1 20 0
-  >>> c(1,2)
-  1 2 0
-  >>> c(key=None)
-  10 20 1
-  >>> c(1, key=None)
-  1 20 1
-  >>> c(1,2, key=None)
-  1 2 1
-  
-"""
-
 def c(a=10, b=20, **kwds):
+    """
+    >>> c()
+    10 20 0
+    >>> c(1)
+    1 20 0
+    >>> c(1,2)
+    1 2 0
+    >>> c(key=None)
+    10 20 1
+    >>> c(1, key=None)
+    1 20 1
+    >>> c(1,2, key=None)
+    1 2 1
+    """
     print a, b, len(kwds)
 
 def d(a, b=1, *args, **kwds):
+    """
+    >>> d()
+    Traceback (most recent call last):
+    TypeError: d() takes at least 1 positional argument (0 given)
+    >>> d(1)
+    1 1 0 0
+    >>> d(1,2)
+    1 2 0 0
+    >>> d(1,2,3)
+    1 2 1 0
+    >>> d(key=None)
+    Traceback (most recent call last):
+    TypeError: d() takes at least 1 positional argument (0 given)
+    >>> d(1, key=None)
+    1 1 0 1
+    >>> d(1,2, key=None)
+    1 2 0 1
+    >>> d(1,2,3, key=None)
+    1 2 1 1
+    """
     print a, b, len(args), len(kwds)
 
 def e(*args, **kwargs):
     print len(args), len(kwargs)
 
 def f(*args):
+    """
+    >>> f(1,2, d=5)
+    Traceback (most recent call last):
+    TypeError: f() got an unexpected keyword argument 'd'
+    >>> f(1, d=5)
+    Traceback (most recent call last):
+    TypeError: f() got an unexpected keyword argument 'd'
+    >>> f(d=5)
+    Traceback (most recent call last):
+    TypeError: f() got an unexpected keyword argument 'd'
+    """
     print len(args)
 
 def g(**kwargs):
+    """
+    >>> g(1,2, d=5)
+    Traceback (most recent call last):
+    TypeError: g() takes exactly 0 positional arguments (2 given)
+    >>> g(1,2)
+    Traceback (most recent call last):
+    TypeError: g() takes exactly 0 positional arguments (2 given)
+    >>> g(1)
+    Traceback (most recent call last):
+    TypeError: g() takes exactly 0 positional arguments (1 given)
+    """
     print len(kwargs)
 
 def h(a, b, c, *args, **kwargs):
+    """
+    >>> h(1,2, d=5)
+    Traceback (most recent call last):
+    TypeError: h() takes at least 3 positional arguments (2 given)
+    """
     print a, b, c, u'*', len(args), len(kwargs)
     
 args = (9,8,7)
@@ -153,6 +86,22 @@ else:
     kwargs = {"test" : u"toast"}
 
 def test_kw_args(f):
+    """
+    >>> test_kw_args(h)
+    1 2 3 * 0 0
+    1 2 9 * 2 1
+    1 2 7 * 2 1
+    1 2 9 * 2 2
+    1 2 9 * 2 2
+    1 2 9 * 2 3
+    >>> test_kw_args(e)
+    2 1
+    5 1
+    5 1
+    5 2
+    5 2
+    5 3
+    """
     f(1,2, c=3)
     f(1,2, d=3, *args)
     f(1,2, d=3, *(7,8,9))
@@ -161,6 +110,20 @@ def test_kw_args(f):
     f(1,2, d=3, *args, e=5, **kwargs)
 
 def test_pos_args(f):
+    """
+    >>> test_pos_args(h)
+    1 2 3 * 0 0
+    1 2 9 * 2 0
+    1 2 7 * 2 0
+    9 8 7 * 0 0
+    7 8 9 * 0 0
+    >>> test_pos_args(f)
+    3
+    5
+    5
+    3
+    3
+    """
     f(1,2,3)
     f(1,2, *args)
     f(1,2, *(7,8,9))
@@ -168,13 +131,52 @@ def test_pos_args(f):
     f(*(7,8,9))
 
 def test_kw(f):
+    """
+    >>> test_kw(e)
+    0 1
+    0 2
+    0 2
+    0 1
+    >>> test_kw(g)
+    1
+    2
+    2
+    1
+    """
     f(c=3)
     f(d=3, e=5)
     f(d=3, **kwargs)
     f(**kwargs)
 
 def test_noargs(f):
+    """
+    >>> test_noargs(e)
+    0 0
+    >>> test_noargs(f)
+    0
+    >>> test_noargs(g)
+    0
+    
+    # and some errors:
+    >>> test_noargs(h)
+    Traceback (most recent call last):
+    TypeError: h() takes at least 3 positional arguments (0 given)
+    """
     f()
 
 def test_int_kwargs(f):
+    """
+    >>> test_int_kwargs(e)
+    Traceback (most recent call last):
+    TypeError: e() keywords must be strings
+    >>> test_int_kwargs(f)
+    Traceback (most recent call last):
+    TypeError: f() keywords must be strings
+    >>> test_int_kwargs(g)
+    Traceback (most recent call last):
+    TypeError: g() keywords must be strings
+    >>> test_int_kwargs(h)
+    Traceback (most recent call last):
+    TypeError: h() keywords must be strings
+    """
     f(a=1,b=2,c=3, **{10:20,30:40})
index 30e86c3f668599f0f5a5c0899245b3b283afe183..d65182848ae286388d6f85acce927c27a8e25064 100644 (file)
@@ -1,13 +1,8 @@
-__doc__ = u"""
->>> test1()
-2
->>> test2()
-0
->>> test3()
-(2, 3)
-"""
-
 def test1():
+    """
+    >>> test1()
+    2
+    """
     cdef int x[2][2]
     x[0][0] = 1
     x[0][1] = 2
@@ -20,6 +15,10 @@ cdef int* f(int x[2][2]):
 
 
 def test2():
+    """
+    >>> test2()
+    0
+    """
     cdef int a1[5]
     cdef int a2[2+3]
     return sizeof(a1) - sizeof(a2)
@@ -29,6 +28,10 @@ cdef enum:
     MY_SIZE_B = 3
 
 def test3():
+    """
+    >>> test3()
+    (2, 3)
+    """
     cdef int a[MY_SIZE_A]
     cdef int b[MY_SIZE_B]
     return sizeof(a)/sizeof(int), sizeof(b)/sizeof(int)
index cf07f53c11508e81a75ac7237b975f83fd6892c0..3fb8b7f821273a42c84e5bbd4f097051081875ae 100644 (file)
@@ -1,25 +1,25 @@
-__doc__ = u"""
->>> foo(True)
-True
->>> foo(False)
-False
->>> foo('abc') # doctest: +ELLIPSIS
-Traceback (most recent call last):
-TypeError: ...
-
->>> call_cfoo(True)
-True
->>> call_cfoo(False)
-False
->>> call_cfoo('abc') # doctest: +ELLIPSIS
-Traceback (most recent call last):
-TypeError: ...
-"""
-
 def foo(bool a):
+    """
+    >>> foo(True)
+    True
+    >>> foo(False)
+    False
+    >>> foo('abc') # doctest: +ELLIPSIS
+    Traceback (most recent call last):
+    TypeError: ...
+    """
     return a == True
 
 def call_cfoo(a):
+    """
+    >>> call_cfoo(True)
+    True
+    >>> call_cfoo(False)
+    False
+    >>> call_cfoo('abc') # doctest: +ELLIPSIS
+    Traceback (most recent call last):
+    TypeError: ...
+    """
     return cfoo(a)
 
 cdef cfoo(bool a):
index e371353439899c9ba21a98454dad01b4ab47cc86..69afe9342fd1fcb418c4b7f8f57785490da664ca 100644 (file)
@@ -1,16 +1,17 @@
-__doc__ = u"""
-    >>> cdiv_decorator(-12, 5)
-    -2
-    >>> pydiv_decorator(-12, 5)
-    -3
-"""
-
 cimport cython
 
 @cython.cdivision(True)
 cpdef cdiv_decorator(int a, int b):
+    """
+    >>> cdiv_decorator(-12, 5)
+    -2
+    """
     return a / b
 
 @cython.cdivision(False)
 cpdef pydiv_decorator(int a, int b):
+    """
+    >>> pydiv_decorator(-12, 5)
+    -3
+    """
     return a / b
index fe55fe351c10d90827db1f5f7ec9d6ad51c4f489..118b2530fb4d7c74e859309431474ae1edae205e 100644 (file)
@@ -7,12 +7,6 @@ __doc__ = u"""
     >>> a.foo(10, u'yes')
     (True, u'yes')
 
-    >>> call0()
-    (True, u'yo')
-    >>> call1()
-    (False, u'yo')
-    >>> call2()
-    (False, u'go')
 """
 
 import sys
@@ -25,13 +19,25 @@ cdef class A:
         return a, b
 
 def call0():
+    """
+    >>> call0()
+    (True, u'yo')
+    """
     a = A()
     return a.foo()
 
 def call1():
+    """
+    >>> call1()
+    (False, u'yo')
+    """
     a = A()
     return a.foo(False)
 
 def call2():
+    """
+    >>> call2()
+    (False, u'go')
+    """
     a = A()
     return a.foo(False, u"go")
index b59443663dacf82998755c3fdbdce068a1cc27e4..987c528894d705e8713028f1ba4fb241d0acfe66 100644 (file)
@@ -1,15 +1,7 @@
-__doc__ = u'''
->>> no_cdef()
->>> with_cdef()
->>> test_list(list(range(11)), -2, None)
-[0, 1, 2, 3, 4, 5, 6, 7, 8, None, 10]
->>> test_list(list(range(11)), "invalid index", None) #doctest: +ELLIPSIS
-Traceback (most recent call last):
-...
-TypeError: list indices must be integers...
-'''
-
 def no_cdef():
+    """
+    >>> no_cdef()
+    """
     lst = list(range(11))
     ob = 10L
     lst[ob] = -10
@@ -17,6 +9,9 @@ def no_cdef():
     dd[ob] = -10
 
 def with_cdef():
+    """
+    >>> with_cdef()
+    """
     cdef list lst = list(range(11))
     ob = 10L
     lst[ob] = -10
@@ -24,5 +19,13 @@ def with_cdef():
     dd[ob] = -10
 
 def test_list(list L, object i, object a):
+    """
+    >>> test_list(list(range(11)), -2, None)
+    [0, 1, 2, 3, 4, 5, 6, 7, 8, None, 10]
+    >>> test_list(list(range(11)), "invalid index", None) #doctest: +ELLIPSIS
+    Traceback (most recent call last):
+    ...
+    TypeError: list indices must be integers...
+    """
     L[i] = a
     return L
index bb0ebab81dc87cabf4cfe8ed13a839c0984c97ba..b512af7eff8333b43ad8aee5905f09f42802a5fd 100644 (file)
@@ -1,11 +1,10 @@
-__doc__ = u"""
-   >>> test(1, 2)
-   4 1 2 2 0 7 8
-"""
-
 cdef int g = 7
 
 def test(x, int y):
+    """
+    >>> test(1, 2)
+    4 1 2 2 0 7 8
+    """
     if True:
         before = 0
     cdef int a = 4, b = x, c = y, *p = &y
index 325da795252c8b89b0738d74b743486495fddf85..3a601dba4fb8418f415321f1b1d67f9132b1fe38 100644 (file)
@@ -1,23 +1,21 @@
-__doc__ = u"""
-    >>> call2()
-    >>> call3()
-    >>> call4()
-    >>> test_foo()
-    2
-    3
-    7
-    26
-"""
-
 # the calls:
 
 def call2():
+    """
+    >>> call2()
+    """
     b(1,2)
 
 def call3():
+    """
+    >>> call3()
+    """
     b(1,2,3)
 
 def call4():
+    """
+    >>> call4()
+    """
     b(1,2,3,4)
 
 # the called function:
@@ -30,6 +28,13 @@ cdef int foo(int a, int b=1, int c=1):
     return a+b*c
     
 def test_foo():
+    """
+    >>> test_foo()
+    2
+    3
+    7
+    26
+    """
     print foo(1)
     print foo(1, 2)
     print foo(1, 2, 3)
index 1a94ef295ae1e41aeb97338679cf04fc6fb9e532..586d425b2608cdc7c31ebff520f4de23b352c76e 100644 (file)
@@ -36,44 +36,6 @@ True
 >>> import warnings
 >>> warnings.showwarning = simple_warn
 
->>> mod_int_c_warn(-17, 10)
-division with oppositely signed operands, C and Python semantics differ
--7
->>> div_int_c_warn(-17, 10)
-division with oppositely signed operands, C and Python semantics differ
--1
->>> complex_expression(-150, 20, 19, -7)
-verbose_call(20)
-division with oppositely signed operands, C and Python semantics differ
-verbose_call(19)
-division with oppositely signed operands, C and Python semantics differ
--2
-
->>> mod_div_zero_int(25, 10, 2)
-verbose_call(5)
-2
->>> print(mod_div_zero_int(25, 10, 0))
-verbose_call(5)
-integer division or modulo by zero
->>> print(mod_div_zero_int(25, 0, 0))
-integer division or modulo by zero
-
->>> mod_div_zero_float(25, 10, 2)
-2.5
->>> print(mod_div_zero_float(25, 10, 0))
-float division
->>> print(mod_div_zero_float(25, 0, 0))
-float divmod()
-
->>> py_div_long(-5, -1)
-5
-
->>> import sys
->>> maxint = getattr(sys, ((sys.version_info[0] >= 3) and 'maxsize' or 'maxint'))
->>> py_div_long(-maxint-1, -1)
-Traceback (most recent call last):
-...
-OverflowError: value too large to perform division
 """
 
 def _all(seq):
@@ -137,16 +99,34 @@ def test_cdiv_cmod(short a, short b):
 @cython.cdivision(True)
 @cython.cdivision_warnings(True)
 def mod_int_c_warn(int a, int b):
+    """
+    >>> mod_int_c_warn(-17, 10)
+    division with oppositely signed operands, C and Python semantics differ
+    -7
+    """
     return a % b
 
 @cython.cdivision(True)
 @cython.cdivision_warnings(True)
 def div_int_c_warn(int a, int b):
+    """
+    >>> div_int_c_warn(-17, 10)
+    division with oppositely signed operands, C and Python semantics differ
+    -1
+    """
     return a // b
 
 @cython.cdivision(False)
 @cython.cdivision_warnings(True)
 def complex_expression(int a, int b, int c, int d):
+    """
+    >>> complex_expression(-150, 20, 19, -7)
+    verbose_call(20)
+    division with oppositely signed operands, C and Python semantics differ
+    verbose_call(19)
+    division with oppositely signed operands, C and Python semantics differ
+    -2
+    """
     return (a // verbose_call(b)) % (verbose_call(c) // d)
 
 cdef int verbose_call(int x):
@@ -158,6 +138,16 @@ cdef int verbose_call(int x):
 
 @cython.cdivision(False)
 def mod_div_zero_int(int a, int b, int c):
+    """
+    >>> mod_div_zero_int(25, 10, 2)
+    verbose_call(5)
+    2
+    >>> print(mod_div_zero_int(25, 10, 0))
+    verbose_call(5)
+    integer division or modulo by zero
+    >>> print(mod_div_zero_int(25, 0, 0))
+    integer division or modulo by zero
+    """
     try:
         return verbose_call(a % b) / c
     except ZeroDivisionError, ex:
@@ -165,6 +155,14 @@ def mod_div_zero_int(int a, int b, int c):
 
 @cython.cdivision(False)
 def mod_div_zero_float(float a, float b, float c):
+    """
+    >>> mod_div_zero_float(25, 10, 2)
+    2.5
+    >>> print(mod_div_zero_float(25, 10, 0))
+    float division
+    >>> print(mod_div_zero_float(25, 0, 0))
+    float divmod()
+    """
     try:
         return (a % b) / c
     except ZeroDivisionError, ex:
@@ -172,4 +170,14 @@ def mod_div_zero_float(float a, float b, float c):
 
 @cython.cdivision(False)
 def py_div_long(long a, long b):
+    """
+    >>> py_div_long(-5, -1)
+    5
+        >>> import sys
+    >>> maxint = getattr(sys, ((sys.version_info[0] >= 3) and 'maxsize' or 'maxint'))
+    >>> py_div_long(-maxint-1, -1)
+    Traceback (most recent call last):
+    ...
+    OverflowError: value too large to perform division
+    """
     return a / b
index 17c90c62112bf2831daa155cc715514b28da34a9..435062672307658e2af02a7b729c830ff8da2a91 100644 (file)
@@ -1,7 +1,3 @@
-__doc__ = u"""
-    >>> test()
-"""
-
 cdef void ftang():
     cdef int x
     x = 0
@@ -16,6 +12,9 @@ cdef spam(int i, obj, object object):
     c = 0
 
 def test():
+    """
+    >>> test()
+    """
     ftang()
     foo(0, c'f')
     spam(25, None, None)
index 401f584276510387be572c72739c6081d48d247b..a5fe9172158e40a63fbc54c24a0d7eb2def553be 100644 (file)
@@ -1,22 +1,22 @@
-__doc__ = u"""
->>> global_c_and_s()
-99
-abcdef
-
->>> local_c_and_s()
-98
-bcdefg
-"""
-
 cdef char c = 'c'
 cdef char* s = 'abcdef'
 
 def global_c_and_s():
+    """
+    >>> global_c_and_s()
+    99
+    abcdef
+    """
     pys = s
     print c
     print (pys.decode(u'ASCII'))
 
 def local_c_and_s():
+    """
+    >>> local_c_and_s()
+    98
+    bcdefg
+    """
     cdef char c = 'b'
     cdef char* s = 'bcdefg'
     pys = s
index 57da2ecfdd11093ee81daed8a556288a59750f84..f6cdca8c85999072be77b1d668a24030446370e7 100644 (file)
@@ -13,11 +13,13 @@ __doc__ = u"""
     >>> (int1, long1) == f()
     True
 
-    >>> f()
-    (45, 111)
 """
 
 def f():
+    """
+    >>> f()
+    (45, 111)
+    """
     cdef int int1, int2, int3
     cdef char char1
     cdef long long1, long2
index 6b5fd14cea47098c6ce65e74c860b7300f8bba89..f8400102438e02c7045f53906273fa48136910af 100644 (file)
@@ -1,37 +1,41 @@
-__doc__ = u"""
+def single_py(a, b):
+    """
     >>> single_py(1, 2)
     True
     >>> single_py(2, 1)
     False
+    """
+    return a < b
+
+def cascaded_py(a, b, c):
+    """
     >>> cascaded_py(1, 2, 3)
     True
     >>> cascaded_py(1, 2, -1)
     False
     >>> cascaded_py(10, 2, 3)
     False
+    """
+    return a < b < c
 
+def single_c(int a, int b):
+    """
     >>> single_c(1, 2)
     True
     >>> single_c(2, 1)
     False
+    """
+    return a < b
+
+def cascaded_c(double a, double b, double c):
+    """
     >>> cascaded_c(1, 2, 3)
     True
     >>> cascaded_c(1, 2, -1)
     False
     >>> cascaded_c(10, 2, 3)
     False
-"""
-
-def single_py(a, b):
-    return a < b
-
-def cascaded_py(a, b, c):
-    return a < b < c
-
-def single_c(int a, int b):
-    return a < b
-
-def cascaded_c(double a, double b, double c):
+    """
     return a < b < c
 
 def typed_cmp(list L):
index fb68076b5f607c9d922117849cb729089f035626..47e4d5168286fab53c7e35b2d475420da1587049 100644 (file)
@@ -1,4 +1,3 @@
-
 cdef char* cstring = "abcdefg"
 
 cdef void spam(char *target):
index addc91dbe55b3bee24f9f1dcbf705ca34e9854a3..f07dcffe679e5d5dae0b03df68782e076058ad79 100644 (file)
@@ -1,24 +1,46 @@
-__doc__ = u"""
+#cdef extern from "complex.h":
+#    pass
+
+cimport cython
+
+def test_object_conversion(o):
+    """
     >>> test_object_conversion(2)
     ((2+0j), (2+0j), (2+0j))
     >>> test_object_conversion(2j - 0.5)
     ((-0.5+2j), (-0.5+2j), (-0.5+2j))
-    
+    """
+    cdef float complex a = o
+    cdef double complex b = o
+    cdef long double complex c = o
+    return (a, b, c)
+
+def test_arithmetic(double complex z, double complex w):
+    """
     >>> test_arithmetic(2j, 4j)
     (2j, -2j, 6j, -2j, (-8+0j), (0.5+0j))
     >>> test_arithmetic(6+12j, 3j)
     ((6+12j), (-6-12j), (6+15j), (6+9j), (-36+18j), (4-2j))
     >>> test_arithmetic(5-10j, 3+4j)
     ((5-10j), (-5+10j), (8-6j), (2-14j), (55-10j), (-1-2j))
+    
+    ## XXX this is not working
+    ## >>> test_div_by_zero(4j)
+    ## -0.25j
+    ## >>> test_div_by_zero(0)
+    ## Traceback (most recent call last):
+    ## ...
+    ## ZeroDivisionError: float division
+    """
+    return +z, -z, z+w, z-w, z*w, z/w
 
 ## XXX this is not working
-## >>> test_div_by_zero(4j)
-## -0.25j
-## >>> test_div_by_zero(0)
-## Traceback (most recent call last):
-## ...
-## ZeroDivisionError: float division
+## @cython.cdivision(False)
+## def test_div_by_zero(double complex z):
+##    return 1/z
 
+def test_coercion(int a, float b, double c, float complex d, double complex e):
+    """
     >>> test_coercion(1, 1.5, 2.5, 4+1j, 10j)
     (1+0j)
     (1.5+0j)
@@ -26,7 +48,17 @@ __doc__ = u"""
     (4+1j)
     10j
     (9+21j)
-    
+    """
+    cdef double complex z
+    z = a; print z
+    z = b; print z
+    z = c; print z
+    z = d; print z
+    z = e; print z
+    return z + a + b + c + d + e
+
+def test_compare(double complex a, double complex b):
+    """
     >>> test_compare(3, 3)
     (True, False)
     >>> test_compare(3j, 3j)
@@ -35,93 +67,62 @@ __doc__ = u"""
     (False, True)
     >>> test_compare(3, 4)
     (False, True)
-    
+    """
+    return a == b, a != b
+
+def test_compare_coerce(double complex a, int b):
+    """
     >>> test_compare_coerce(3, 4)
     (False, True)
     >>> test_compare_coerce(4+1j, 4)
     (False, True)
     >>> test_compare_coerce(4, 4)
     (True, False)
-    
+    """
+    return a == b, a != b
+
+def test_literal():
+    """
     >>> test_literal()
     (5j, (1-2.5j))
-    
+    """
+    return 5j, 1-2.5j
+
+def test_real_imag(double complex z):
+    """
     >>> test_real_imag(1-3j)
     (1.0, -3.0)
     >>> test_real_imag(5)
     (5.0, 0.0)
     >>> test_real_imag(1.5j)
     (0.0, 1.5)
-    
+    """
+    return z.real, z.imag
+
+def test_real_imag_assignment(object a, double b):
+    """
     >>> test_real_imag_assignment(1, 2)
     (1+2j)
     >>> test_real_imag_assignment(1.5, -3.5)
     (1.5-3.5j)
-
-    >>> test_conjugate(2+3j)
-    (2-3j)
-
-    >>> test_conjugate_double(2+3j)
-    (2-3j)
-
-    >>> test_coerce_typedef_multiply(3, 1j)
-    (3j)
-
-    >>> complex_retval()
-    1j
-    
-"""
-
-#cdef extern from "complex.h":
-#    pass
-
-cimport cython
-
-def test_object_conversion(o):
-    cdef float complex a = o
-    cdef double complex b = o
-    cdef long double complex c = o
-    return (a, b, c)
-
-def test_arithmetic(double complex z, double complex w):
-    return +z, -z, z+w, z-w, z*w, z/w
-
-## XXX this is not working
-## @cython.cdivision(False)
-## def test_div_by_zero(double complex z):
-##    return 1/z
-
-def test_coercion(int a, float b, double c, float complex d, double complex e):
-    cdef double complex z
-    z = a; print z
-    z = b; print z
-    z = c; print z
-    z = d; print z
-    z = e; print z
-    return z + a + b + c + d + e
-
-def test_compare(double complex a, double complex b):
-    return a == b, a != b
-
-def test_compare_coerce(double complex a, int b):
-    return a == b, a != b
-
-def test_literal():
-    return 5j, 1-2.5j
-
-def test_real_imag(double complex z):
-    return z.real, z.imag
-
-def test_real_imag_assignment(object a, double b):
+    """
     cdef double complex z
     z.real = a
     z.imag = b
     return z
 
 def test_conjugate(float complex z):
+    """
+    >>> test_conjugate(2+3j)
+    (2-3j)
+    """
     return z.conjugate()
 
 def test_conjugate_double(double complex z):
+    """
+    >>> test_conjugate_double(2+3j)
+    (2-3j)
+    """
     return z.conjugate()
 
 ctypedef double complex cdouble
@@ -130,7 +131,15 @@ def test_conjugate_typedef(cdouble z):
 
 ctypedef double mydouble
 def test_coerce_typedef_multiply(mydouble x, double complex z):
+    """
+    >>> test_coerce_typedef_multiply(3, 1j)
+    (3j)
+    """
     return x * z
 
 cpdef double complex complex_retval():
+    """
+    >>> complex_retval()
+    1j
+    """
     return 1j
index ca5abe693ada9f7bba3fba3482c60807b2640f2b..8c96f55d7cf9ad6893993541baab945a9b27a54b 100644 (file)
@@ -8,4 +8,3 @@ if sys.version_info[0] >= 3:
     __doc__ = __doc__.replace(u" u'", u" '")
 
 spam = u"C string 1" + u"C string 2"
-
index 5312de867225e362f39ce0373a30cd185943ac6a..2511cec87346c02fdf1fca3239c989410d0e0678 100644 (file)
@@ -1,29 +1,3 @@
-__doc__ = u"""
->>> add() == 1+2+3+4
-True
->>> add_var(10) == 1+2+10+3+4
-True
->>> neg() == -1 -2 - (-3+4)
-True
->>> long_int_mix() == 1 + (2 * 3) // 2
-True
->>> if IS_PY3: type(long_int_mix()) is int
-... else:      type(long_int_mix()) is long
-True
->>> char_int_mix() == 1 + (ord(' ') * 3) // 2 + ord('A')
-True
->>> int_cast() == 1 + 2 * 6000
-True
->>> mul() == 1*60*1000
-True
->>> arithm() == 9*2+3*8//6-10
-True
->>> parameters() == _func(-1 -2, - (-3+4), 1*2*3)
-True
->>> lists() == [1,2,3] + [4,5,6]
-True
-"""
-
 import sys
 IS_PY3 = sys.version_info[0] >= 3
 
@@ -31,31 +5,74 @@ def _func(a,b,c):
     return a+b+c
 
 def add():
+    """
+    >>> add() == 1+2+3+4
+    True
+    """
     return 1+2+3+4
 
 def add_var(a):
+    """
+    >>> add_var(10) == 1+2+10+3+4
+    True
+    """
     return 1+2 +a+ 3+4
 
 def neg():
+    """
+    >>> neg() == -1 -2 - (-3+4)
+    True
+    """
     return -1 -2 - (-3+4)
 
 def long_int_mix():
+    """
+    >>> long_int_mix() == 1 + (2 * 3) // 2
+    True
+    >>> if IS_PY3: type(long_int_mix()) is int
+    ... else:      type(long_int_mix()) is long
+    True
+    """
     return 1L + (2 * 3L) // 2
 
 def char_int_mix():
+    """
+    >>> char_int_mix() == 1 + (ord(' ') * 3) // 2 + ord('A')
+    True
+    """
     return 1L + (c' ' * 3L) // 2 + c'A'
 
 def int_cast():
+    """
+    >>> int_cast() == 1 + 2 * 6000
+    True
+    """
     return <int>(1 + 2 * 6000)
 
 def mul():
+    """
+    >>> mul() == 1*60*1000
+    True
+    """
     return 1*60*1000
 
 def arithm():
+    """
+    >>> arithm() == 9*2+3*8//6-10
+    True
+    """
     return 9*2+3*8//6-10
 
 def parameters():
+    """
+    >>> parameters() == _func(-1 -2, - (-3+4), 1*2*3)
+    True
+    """
     return _func(-1 -2, - (-3+4), 1*2*3)
 
 def lists():
+    """
+    >>> lists() == [1,2,3] + [4,5,6]
+    True
+    """
     return [1,2,3] + [4,5,6]
index aa1bc7d2654357b499c0e24fd7783152ebf9ce31..7b96f1ce51aa576eaaa9d1d7bbc4e9c2dbbfabb3 100644 (file)
@@ -1,21 +1,21 @@
-__doc__ = """
+cdef class A:
+    """
     >>> A().is_True()
     True
     >>> A().is_False()
     False
-
-    >>> B().is_True()
-    True
-    >>> B().is_False()
-    False
-"""
-
-cdef class A:
+    """
     cpdef is_True(self):
         return True
     cpdef is_False(self):
         return not self.is_True()
 
 class B(A):
+    """
+    >>> B().is_True()
+    True
+    >>> B().is_False()
+    False
+    """
     def is_True(self):
         return True
index 3b01e4bde5a2ab4509c2e77c0b30edd0e4669509..511beaefa4bfdf63b2df1335db6c88a36f807b02 100644 (file)
@@ -1,12 +1,10 @@
-__doc__ = """
->>> f()
-{'x': 1}
-"""
-
 cimport crashT245_pxd
 
 def f():
+    """
+    >>> f()
+    {'x': 1}
+    """
     cdef crashT245_pxd.MyStruct s
     s.x = 1
     print s
-
index 1a0604bb6ab08798ba0b68a01061288982d9f216..51550b2b589a6bbe281a075e81f954f50ff9e3ef 100644 (file)
@@ -1,10 +1,3 @@
-__doc__ = u"""
-    >>> test_i()
-    >>> test_c()
-    >>> test_p()
-    >>> test_g()
-"""
-
 cdef struct Grail
 
 cdef struct Spam:
@@ -41,19 +34,31 @@ cdef void eggs_g(Spam s):
 spam = ham
 
 def test_i():
+    """
+    >>> test_i()
+    """
     spam.i = 1
     eggs_i(spam)
 
 def test_c():
+    """
+    >>> test_c()
+    """
     spam.c = c'a'
     eggs_c(spam)
 
 def test_p():
+    """
+    >>> test_p()
+    """
     cdef float f
     spam.p[0] = &f
     eggs_p(spam)
 
 def test_g():
+    """
+    >>> test_g()
+    """
     cdef Grail l
     spam.g = &l
     eggs_g(spam)
index 08791879e12bddbb22e9d4028ef904e580a38ced..6d8d6a307a4dacab0d929ae062b8b58273acfa7a 100644 (file)
@@ -1,16 +1,11 @@
-__doc__ = u"""
-    >>> f()
-    1
-    >>> g()
-    2
-    >>> h()
-    3
-"""
-
 DEF NO = 0
 DEF YES = 1
 
 def f():
+    """
+    >>> f()
+    1
+    """
     cdef int i
     IF YES:
         i = 1
@@ -21,6 +16,10 @@ def f():
     return i
 
 def g():
+    """
+    >>> g()
+    2
+    """
     cdef int i
     IF NO:
         i = 1
@@ -31,6 +30,10 @@ def g():
     return i
 
 def h():
+    """
+    >>> h()
+    3
+    """
     cdef int i
     IF NO:
         i = 1
index 5014496ad8b25ab538e6dad5fb64ded10e085472..f534f821d6d47c01d2f0eaa1ff371981fb4ba692 100644 (file)
@@ -1,36 +1,8 @@
-__doc__ = u"""
->>> test_int(0)
-False
->>> test_int(1)
-True
-
->>> test_short(0)
-False
->>> test_short(1)
-True
-
->>> test_Py_ssize_t(0)
-False
->>> test_Py_ssize_t(1)
-True
-
->>> test_ptr()
-False
->>> test_ptr2()
-2
-
->>> test_attr_int(TestExtInt(0))
-False
->>> test_attr_int(TestExtInt(1))
-True
-
->>> test_attr_ptr(TestExtPtr(0))
-False
->>> test_attr_ptr(TestExtPtr(1))
-True
-"""
-
 def test_ptr():
+    """
+    >>> test_ptr()
+    False
+    """
     cdef void* p = NULL
     if p:
         return True
@@ -38,6 +10,10 @@ def test_ptr():
         return False
 
 def test_ptr2():
+    """
+    >>> test_ptr2()
+    2
+    """
     cdef char* p1 = NULL
     cdef char* p2 = NULL
     p1 += 1
@@ -50,18 +26,36 @@ def test_ptr2():
         return 3
 
 def test_int(int i):
+    """
+    >>> test_int(0)
+    False
+    >>> test_int(1)
+    True
+    """
     if i:
         return True
     else:
         return False
 
 def test_short(short i):
+    """
+    >>> test_short(0)
+    False
+    >>> test_short(1)
+    True
+    """
     if i:
         return True
     else:
         return False
 
 def test_Py_ssize_t(Py_ssize_t i):
+    """
+    >>> test_Py_ssize_t(0)
+    False
+    >>> test_Py_ssize_t(1)
+    True
+    """
     if i:
         return True
     else:
@@ -72,6 +66,12 @@ cdef class TestExtInt:
     def __init__(self, i): self.i = i
 
 def test_attr_int(TestExtInt e):
+    """
+    >>> test_attr_int(TestExtInt(0))
+    False
+    >>> test_attr_int(TestExtInt(1))
+    True
+    """
     if e.i:
         return True
     else:
@@ -82,6 +82,12 @@ cdef class TestExtPtr:
     def __init__(self, int i): self.p = <void*>i
 
 def test_attr_ptr(TestExtPtr e):
+    """
+    >>> test_attr_ptr(TestExtPtr(0))
+    False
+    >>> test_attr_ptr(TestExtPtr(1))
+    True
+    """
     if e.p:
         return True
     else:
index 610561975b81ea1e032aa61bfedaa1fa609d3b65..41b68da1537afc4c50aeaf64b21fc8406e578b4e 100644 (file)
@@ -1,9 +1,3 @@
-__doc__ = u"""
-    >>> test_i()
-    >>> test_c()
-    >>> test_p()
-"""
-
 cdef union Spam:
     int i
     char c
@@ -29,14 +23,23 @@ cdef void eggs_p(Spam s):
 spam = ham
 
 def test_i():
+    """
+    >>> test_i()
+    """
     spam.i = 1
     eggs_i(spam)
 
 def test_c():
+    """
+    >>> test_c()
+    """
     spam.c = c'a'
     eggs_c(spam)
 
 def test_p():
+    """
+    >>> test_p()
+    """
     cdef float f
     spam.p[0] = &f
     eggs_p(spam)
index 08fbb493fd970e3e1b33c6884c8f72348f00a67f..449fc51a922107fd0d553e8531a14b79a40e020f 100644 (file)
@@ -1,8 +1,7 @@
-__doc__ = u"""
-    >>> f()
-"""
-
 def f():
+    """
+    >>> f()
+    """
     cdef char a_char
     cdef short a_short
     cdef int i1, i2
index 05bea96aa6a20edcce58bad7810a506a8eaeae26..49a0791b69fa2f817e3d045f58e4227a283eebf7 100644 (file)
@@ -1,31 +1,69 @@
-__doc__ = u"""
+def empty():
+    """
     >>> empty()
     {}
+    """
+    d = {}
+    return d
+
+def keyvalue(key, value):
+    """
     >>> keyvalue(1, 2)
     {1: 2}
+    """
+    d = {key:value}
+    return d
 
+def keyvalues(key1, value1, key2, value2):
+    """
     >>> keyvalues(1, 2, 3, 4)
     {1: 2, 3: 4}
+    """
+    d = {key1:value1, key2:value2}
+    return d
+
+def keyvalues2(key1, value1, key2, value2):
+    """
     >>> keyvalues2(1, 2, 3, 4)
     {1: 2, 3: 4}
+    """
+    d = {key1:value1, key2:value2,}
+    return d
 
+def constant():
+    """
     >>> len(constant())
     2
     >>> print(constant()['parrot'])
     resting
     >>> print(constant()['answer'])
     42
+    """
+    d = {u"parrot":u"resting", u"answer":42}
+    return d
 
+def dict_call():
+    """
     >>> print(dict_call()['parrot'])
     resting
     >>> print(dict_call()['answer'])
     42
+    """
+    d = dict(parrot=u"resting", answer=42)
+    return d
 
+def dict_call_dict():
+    """
     >>> print(dict_call_dict()['parrot'])
     resting
     >>> print(dict_call_dict()['answer'])
     42
+    """
+    d = dict(dict(parrot=u"resting", answer=42))
+    return d
 
+def dict_call_kwargs():
+    """
     >>> print(dict_call_kwargs()['parrot1'])
     resting
     >>> print(dict_call_kwargs()['parrot2'])
@@ -34,37 +72,7 @@ __doc__ = u"""
     42
     >>> print(dict_call_kwargs()['answer2'])
     42
-"""
-
-def empty():
-    d = {}
-    return d
-
-def keyvalue(key, value):
-    d = {key:value}
-    return d
-
-def keyvalues(key1, value1, key2, value2):
-    d = {key1:value1, key2:value2}
-    return d
-
-def keyvalues2(key1, value1, key2, value2):
-    d = {key1:value1, key2:value2,}
-    return d
-
-def constant():
-    d = {u"parrot":u"resting", u"answer":42}
-    return d
-
-def dict_call():
-    d = dict(parrot=u"resting", answer=42)
-    return d
-
-def dict_call_dict():
-    d = dict(dict(parrot=u"resting", answer=42))
-    return d
-
-def dict_call_kwargs():
+    """
     kwargs = dict(parrot1=u"resting", answer1=42)
     d = dict(parrot2=u"resting", answer2=42, **kwargs)
     return d
index 1aca230dade5016c9fab81c87aa3636c15c74607..2a83ac9c2b2b7c40baffc09f390771d199226cc4 100644 (file)
-__doc__ = u"""
->>> test_get_char_neg()
-0
->>> test_get_char_zero()
-1
->>> test_get_char_pos()
-2
->>> test_get_uchar_zero()
-1
->>> test_get_uchar_pos()
-2
->>> test_get_int_neg()
-0
->>> test_get_int_zero()
-1
->>> test_get_int_pos()
-2
->>> test_get_uint_zero()
-1
->>> test_get_uint_pos()
-2
->>> test_get_longlong_neg()
-0
->>> test_get_longlong_zero()
-1
->>> test_get_longlong_pos()
-2
->>> test_get_longlong_big()
-3
->>> test_get_ulonglong_zero()
-1
->>> test_get_ulonglong_pos()
-2
->>> test_get_ulonglong_big()
-3
->>> test_del_char()
-Traceback (most recent call last):
-KeyError: 0
->>> test_del_uchar()
-Traceback (most recent call last):
-KeyError: 0
->>> test_del_int()
-Traceback (most recent call last):
-KeyError: 0
->>> test_del_uint()  #doctest: +ELLIPSIS
-Traceback (most recent call last):
-KeyError: 0...
->>> test_del_longlong() #doctest: +ELLIPSIS
-Traceback (most recent call last):
-KeyError: 0...
->>> test_del_longlong_big() #doctest: +ELLIPSIS
-Traceback (most recent call last):
-KeyError: ...
->>> test_del_ulonglong() #doctest: +ELLIPSIS
-Traceback (most recent call last):
-KeyError: 0...
->>> test_del_ulonglong_big() #doctest: +ELLIPSIS
-Traceback (most recent call last):
-KeyError: ...
-"""
-
 def test_get_char_neg():
+    """
+    >>> test_get_char_neg()
+    0
+    """
     cdef char key = -1
     d = {-1:0}
     return d[key]
 def test_get_char_zero():
+    """
+    >>> test_get_char_zero()
+    1
+    """
     cdef char key = 0
     d = {0:1}
     return d[key]
 def test_get_char_pos():
+    """
+    >>> test_get_char_pos()
+    2
+    """
     cdef char key = 1
     d = {1:2}
     return d[key]
 
 
 def test_get_uchar_zero():
+    """
+    >>> test_get_uchar_zero()
+    1
+    """
     cdef unsigned char key = 0
     d = {0:1}
     return d[key]
 def test_get_uchar_pos():
+    """
+    >>> test_get_uchar_pos()
+    2
+    """
     cdef unsigned char key = 1
     d = {1:2}
     return d[key]
 
 
 def test_get_int_neg():
+    """
+    >>> test_get_int_neg()
+    0
+    """
     cdef int key = -1
     d = {-1:0}
     return d[key]
 def test_get_int_zero():
+    """
+    >>> test_get_int_zero()
+    1
+    """
     cdef int key = 0
     d = {0:1}
     return d[key]
 def test_get_int_pos():
+    """
+    >>> test_get_int_pos()
+    2
+    """
     cdef int key = 1
     d = {1:2}
     return d[key]
 
 
 def test_get_uint_zero():
+    """
+    >>> test_get_uint_zero()
+    1
+    """
     cdef unsigned int key = 0
     d = {0:1}
     return d[key]
 def test_get_uint_pos():
+    """
+    >>> test_get_uint_pos()
+    2
+    """
     cdef unsigned int key = 1
     d = {1:2}
     return d[key]
 
 
 def test_get_longlong_neg():
+    """
+    >>> test_get_longlong_neg()
+    0
+    """
     cdef long long key = -1
     d = {-1:0}
     return d[key]
 def test_get_longlong_zero():
+    """
+    >>> test_get_longlong_zero()
+    1
+    """
     cdef long long key = 0
     d = {0:1}
     return d[key]
 def test_get_longlong_pos():
+    """
+    >>> test_get_longlong_pos()
+    2
+    """
     cdef long long key = 1
     d = {1:2}
     return d[key]
 def test_get_longlong_big():
+    """
+    >>> test_get_longlong_big()
+    3
+    """
     cdef unsigned int shift = sizeof(long)+2
     cdef long long big = 1
     cdef long long key = big<<shift
@@ -127,14 +122,26 @@ def test_get_longlong_big():
     return d[key]
 
 def test_get_ulonglong_zero():
+    """
+    >>> test_get_ulonglong_zero()
+    1
+    """
     cdef unsigned long long key = 0
     d = {0:1}
     return d[key]
 def test_get_ulonglong_pos():
+    """
+    >>> test_get_ulonglong_pos()
+    2
+    """
     cdef unsigned long long key = 1
     d = {1:2}
     return d[key]
 def test_get_ulonglong_big():
+    """
+    >>> test_get_ulonglong_big()
+    3
+    """
     cdef unsigned int shift = sizeof(long)+2
     cdef unsigned long long big = 1
     cdef unsigned long long key = big<<shift
@@ -143,42 +150,77 @@ def test_get_ulonglong_big():
 
 
 def test_del_char():
+    """
+    >>> test_del_char()
+    Traceback (most recent call last):
+    KeyError: 0
+    """
     cdef char key = 0
     d = {0:1}
     del d[key]
     return d[key]
 
 def test_del_uchar():
+    """
+    >>> test_del_uchar()
+    Traceback (most recent call last):
+    KeyError: 0
+    """
     cdef unsigned char key = 0
     d = {0:1}
     del d[key]
     return d[key]
 
 def test_del_int():
+    """
+    >>> test_del_int()
+    Traceback (most recent call last):
+    KeyError: 0
+    """
     cdef int key = 0
     d = {0:1}
     del d[key]
     return d[key]
 
 def test_del_uint():
+    """
+    >>> test_del_uint()  #doctest: +ELLIPSIS
+    Traceback (most recent call last):
+    KeyError: 0...
+    """
     cdef unsigned int key = 0
     d = {0:1}
     del d[key]
     return d[key]
 
 def test_del_longlong():
+    """
+    >>> test_del_longlong() #doctest: +ELLIPSIS
+    Traceback (most recent call last):
+    KeyError: 0...
+    """
     cdef long long key = 0
     d = {0:1}
     del d[key]
     return d[key]
 
 def test_del_ulonglong():
+    """
+    >>> test_del_ulonglong() #doctest: +ELLIPSIS
+    Traceback (most recent call last):
+    KeyError: 0...
+    """
     cdef unsigned long long key = 0
     d = {0:1}
     del d[key]
     return d[key]
 
 def test_del_longlong_big():
+    """
+    >>> test_del_longlong_big() #doctest: +ELLIPSIS
+    Traceback (most recent call last):
+    KeyError: ...
+    """
     cdef int shift = sizeof(long)+2
     cdef long long big = 1
     cdef long long key = big<<shift
@@ -187,6 +229,11 @@ def test_del_longlong_big():
     return d[key]
 
 def test_del_ulonglong_big():
+    """
+    >>> test_del_ulonglong_big() #doctest: +ELLIPSIS
+    Traceback (most recent call last):
+    KeyError: ...
+    """
     cdef unsigned int shift = sizeof(long)+2
     cdef unsigned long long big = 1
     cdef unsigned long long key = big<<shift
index 4cbea1608411424806b0f01794dba775332dce91..a2b29a7409c9bbac0c2f3813fe933c880ea38249 100644 (file)
@@ -1,9 +1,8 @@
-__doc__ = u"""
+def test():
+    """
     >>> test()
     1.0
-"""
-
-def test():
+    """
     cdef float v[10][10]
     v[1][2] = 1.0
     return v[1][2]
index fb5906dd632da63c4d6a3c4908c8d4c45153d0a5..46deed25079bfaaf914c258298893a638091d6e0 100644 (file)
@@ -1,17 +1,18 @@
-__doc__ = u"""
-  >>> go_py_empty()
-  20
-  >>> go_c_empty()
-  20
-"""
-
 def go_py_empty():
+    """
+    >>> go_py_empty()
+    20
+    """
     i = 20
     for i in range(4,0):
         print u"Spam!"
     return i
 
 def go_c_empty():
+    """
+    >>> go_c_empty()
+    20
+    """
     cdef int i = 20
     for i in range(4,0):
         print u"Spam!"
index a8f4739ba00fd2a22afc3c937fe0a700a526d837..d48a494285878a14c27939a7f4e145144820f5af 100644 (file)
@@ -1,89 +1,53 @@
-__doc__ = u"""
-  >>> go_c_enumerate()
-  0 1
-  1 2
-  2 3
-  3 4
-
-  >>> go_py_enumerate()
-  0 1
-  1 2
-  2 3
-  3 4
-
-  >>> empty_c_enumerate()
-  (55, 99)
-
-  >>> go_c_enumerate_step()
-  0 1
-  1 3
-  2 5
-
-  >>> single_target_enumerate()
-  0 1
-  1 2
-  2 3
-  3 4
-
-  >>> multi_enumerate()
-  0 0 0 1
-  1 1 1 2
-  2 2 2 3
-  3 3 3 4
-
-  >>> multi_c_enumerate()
-  0 0 0 1
-  1 1 1 2
-  2 2 2 3
-  3 3 3 4
-
-  >>> py_enumerate_break(1,2,3,4)
-  0 1
-  :: 0 1
-
-  >>> py_enumerate_return()
-  :: 55 99
-  >>> py_enumerate_return(1,2,3,4)
-  0 1
-
-  >>> py_enumerate_continue(1,2,3,4)
-  0 1
-  1 2
-  2 3
-  3 4
-  :: 3 4
-
-  >>> py_enumerate_dict({})
-  :: 55 99
-  >>> py_enumerate_dict(dict(a=1, b=2, c=3))
-  0 a
-  1 c
-  2 b
-  :: 2 b
-
-"""
-
 cimport cython
 
 @cython.test_fail_if_path_exists("//SimpleCallNode//NameNode[@name = 'enumerate']")
 def go_py_enumerate():
+    """
+    >>> go_py_enumerate()
+    0 1
+    1 2
+    2 3
+    3 4
+    """
     for i,k in enumerate(range(1,5)):
         print i, k
 
 #T442 @cython.test_fail_if_path_exists("//SimpleCallNode//NameNode[@name = 'enumerate']")
 def go_c_enumerate():
+    """
+    >>> go_c_enumerate()
+    0 1
+    1 2
+    2 3
+    3 4
+    """
     cdef int i,k
     for i,k in enumerate(range(1,5)):
         print i, k
 
 #T442 @cython.test_fail_if_path_exists("//SimpleCallNode//NameNode[@name = 'enumerate']")
 def go_c_enumerate_step():
+    """
+    >>> go_c_enumerate_step()
+    0 1
+    1 3
+    2 5
+    """
     cdef int i,k
     for i,k in enumerate(range(1,7,2)):
         print i, k
 
 @cython.test_fail_if_path_exists("//SimpleCallNode//NameNode[@name = 'enumerate']")
 def py_enumerate_dict(dict d):
+    """
+    >>> py_enumerate_dict({})
+    :: 55 99
+    >>> py_enumerate_dict(dict(a=1, b=2, c=3))
+    0 a
+    1 c
+    2 b
+    :: 2 b
+    """
     cdef int i = 55
     k = 99
     for i,k in enumerate(d):
@@ -92,6 +56,11 @@ def py_enumerate_dict(dict d):
 
 @cython.test_fail_if_path_exists("//SimpleCallNode")
 def py_enumerate_break(*t):
+    """
+    >>> py_enumerate_break(1,2,3,4)
+    0 1
+    :: 0 1
+    """
     i,k = 55,99
     for i,k in enumerate(t):
         print i, k
@@ -100,6 +69,12 @@ def py_enumerate_break(*t):
 
 @cython.test_fail_if_path_exists("//SimpleCallNode")
 def py_enumerate_return(*t):
+    """
+    >>> py_enumerate_return()
+    :: 55 99
+    >>> py_enumerate_return(1,2,3,4)
+    0 1
+    """
     i,k = 55,99
     for i,k in enumerate(t):
         print i, k
@@ -108,6 +83,14 @@ def py_enumerate_return(*t):
 
 @cython.test_fail_if_path_exists("//SimpleCallNode")
 def py_enumerate_continue(*t):
+    """
+    >>> py_enumerate_continue(1,2,3,4)
+    0 1
+    1 2
+    2 3
+    3 4
+    :: 3 4
+    """
     i,k = 55,99
     for i,k in enumerate(t):
         print i, k
@@ -116,6 +99,10 @@ def py_enumerate_continue(*t):
 
 # T442 @cython.test_fail_if_path_exists("//SimpleCallNode//NameNode[@name = 'enumerate']")
 def empty_c_enumerate():
+    """
+    >>> empty_c_enumerate()
+    (55, 99)
+    """
     cdef int i = 55, k = 99
     for i,k in enumerate(range(0)):
         print i, k
@@ -123,16 +110,37 @@ def empty_c_enumerate():
 
 # not currently optimised
 def single_target_enumerate():
+    """
+    >>> single_target_enumerate()
+    0 1
+    1 2
+    2 3
+    3 4
+    """
     for t in enumerate(range(1,5)):
         print t[0], t[1]
 
 @cython.test_fail_if_path_exists("//SimpleCallNode//NameNode[@name = 'enumerate']")
 def multi_enumerate():
+    """
+    >>> multi_enumerate()
+    0 0 0 1
+    1 1 1 2
+    2 2 2 3
+    3 3 3 4
+    """
     for a,(b,(c,d)) in enumerate(enumerate(enumerate(range(1,5)))):
         print a,b,c,d
 
 # T442 @cython.test_fail_if_path_exists("//SimpleCallNode")
 def multi_c_enumerate():
+    """
+    >>> multi_c_enumerate()
+    0 0 0 1
+    1 1 1 2
+    2 2 2 3
+    3 3 3 4
+    """
     cdef int a,b,c,d
     for a,(b,(c,d)) in enumerate(enumerate(enumerate(range(1,5)))):
         print a,b,c,d
index eb157b86af948ca1731c333d43f2ed230ff74ac2..411d436b6bcf45b9aaf60676b162ecb50e11e611 100644 (file)
@@ -1,10 +1,3 @@
-__doc__ = u"""
->>> foo(0)
->>> foo(1)
-Traceback (most recent call last):
-RuntimeError
-"""
-
 cdef int CHKERR(int ierr) except -1:
     if ierr==0: return 0
     raise RuntimeError
@@ -13,6 +6,12 @@ cdef int obj2int(object ob) except *:
     return ob
 
 def foo(a):
+    """
+    >>> foo(0)
+    >>> foo(1)
+    Traceback (most recent call last):
+    RuntimeError
+    """
     cdef int i = obj2int(a)
     CHKERR(i)
 
index 3d40c7f2b2b6ad22eb073e1b0c35043e215c7b53..29bf7008292bbc5a0670b86e9ab55c6c24173713 100644 (file)
@@ -1,13 +1,14 @@
-__doc__ = u"""
->>> set_attr(5)
->>> get_attr()
-"""
-
 cdef class MyExt:
     cdef object attr
 
 def set_attr(value):
+    """
+    >>> set_attr(5)
+    """
     MyExt().attr = value
 
 def get_attr():
+    """
+    >>> get_attr()
+    """
     return MyExt().attr
index d628760e5b831fd3d06852264fc800573a06d2ac..4092c4d7f13ba9f668c38f0802c68dcd2d365e51 100644 (file)
@@ -1,11 +1,3 @@
-__doc__ = u"""
->>> test()
-5
-0
-20
-5
-"""
-
 cdef class Spam:
 
     cdef int tons
@@ -25,6 +17,13 @@ cdef class SuperSpam(Spam):
         self.tons = self.tons + 2 * x
 
 def test():
+    """
+    >>> test()
+    5
+    0
+    20
+    5
+    """
     cdef Spam s
     cdef SuperSpam ss
     s = Spam()
index 1821ad013c049d5f86a738a778e26bfe6eeebd14..9f7e9cac91c8fe26be20693af78f77d3f88b9daa 100644 (file)
 __doc__ = u"""
->>> class FakeSeq(object):
-...     def __init__(self, length):
-...         self._values = list(range(1,length+1))
-...     def __getitem__(self, i):
-...         return self._values[i]
-
->>> unpack([1,2])
-(1, 2)
->>> unpack_list([1,2])
-(1, 2)
->>> unpack_tuple((1,2))
-(1, 2)
-
->>> unpack( FakeSeq(2) )
-(1, 2)
->>> unpack('12')
-('1', '2')
-
->>> unpack_into_list('123')
-('1', ['2'], '3')
->>> unpack_into_tuple('123')
-('1', ['2'], '3')
-
->>> unpack_in_loop([(1,2), (1,2,3), (1,2,3,4)])
-1
-([1], 2)
-([1, 2], 3)
-([1, 2, 3], 4)
-2
-(1, [2])
-(1, [2, 3])
-(1, [2, 3, 4])
-3
-(1, [], 2)
-(1, [2], 3)
-(1, [2, 3], 4)
-
->>> unpack_recursive((1,2,3,4))
-(1, [2, 3], 4)
->>> unpack_recursive( FakeSeq(4) )
-(1, [2, 3], 4)
->>> unpack_typed((1,2))
-([1], 2)
-
->>> assign()
-(1, [2, 3, 4], 5)
-
->>> unpack_right('')
-Traceback (most recent call last):
-ValueError: need more than 0 values to unpack
->>> unpack_right_list([])
-Traceback (most recent call last):
-ValueError: need more than 0 values to unpack
->>> unpack_right_tuple(())
-Traceback (most recent call last):
-ValueError: need more than 0 values to unpack
-
->>> unpack_right('1')
-('1', [])
->>> unpack_right([1])
-(1, [])
->>> unpack_right('12')
-('1', ['2'])
->>> unpack_right([1,2])
-(1, [2])
->>> unpack_right('123')
-('1', ['2', '3'])
->>> unpack_right([1,2,3])
-(1, [2, 3])
-
->>> unpack_right_list([1])
-(1, [])
->>> unpack_right_list([1,2])
-(1, [2])
->>> unpack_right_list([1,2,3])
-(1, [2, 3])
->>> unpack_right_tuple((1,))
-(1, [])
->>> unpack_right_tuple((1,2))
-(1, [2])
->>> unpack_right_tuple((1,2,3))
-(1, [2, 3])
-
->>> unpack_left('')
-Traceback (most recent call last):
-ValueError: need more than 0 values to unpack
->>> unpack_left_list([])
-Traceback (most recent call last):
-ValueError: need more than 0 values to unpack
->>> unpack_left_tuple(())
-Traceback (most recent call last):
-ValueError: need more than 0 values to unpack
-
->>> unpack_left('1')
-([], '1')
->>> unpack_left([1])
-([], 1)
->>> unpack_left('12')
-(['1'], '2')
->>> unpack_left([1,2])
-([1], 2)
->>> unpack_left('123')
-(['1', '2'], '3')
->>> unpack_left([1,2,3])
-([1, 2], 3)
-
->>> unpack_left_list([1])
-([], 1)
->>> unpack_left_list([1,2])
-([1], 2)
->>> unpack_left_list([1,2,3])
-([1, 2], 3)
->>> unpack_left_tuple((1,))
-([], 1)
->>> unpack_left_tuple((1,2))
-([1], 2)
->>> unpack_left_tuple((1,2,3))
-([1, 2], 3)
-
->>> unpack_middle('')
-Traceback (most recent call last):
-ValueError: need more than 0 values to unpack
->>> unpack_middle([])
-Traceback (most recent call last):
-ValueError: need more than 0 values to unpack
->>> unpack_middle(())
-Traceback (most recent call last):
-ValueError: need more than 0 values to unpack
->>> unpack_middle_list([])
-Traceback (most recent call last):
-ValueError: need more than 0 values to unpack
->>> unpack_middle_tuple(())
-Traceback (most recent call last):
-ValueError: need more than 0 values to unpack
-
->>> unpack_middle('1')
-Traceback (most recent call last):
-ValueError: need more than 1 value to unpack
->>> unpack_middle([1])
-Traceback (most recent call last):
-ValueError: need more than 1 value to unpack
->>> unpack_middle_list([1])
-Traceback (most recent call last):
-ValueError: need more than 1 value to unpack
->>> unpack_middle_tuple((1,))
-Traceback (most recent call last):
-ValueError: need more than 1 value to unpack
-
->>> unpack_middle('12')
-('1', [], '2')
->>> unpack_middle([1,2])
-(1, [], 2)
->>> unpack_middle('123')
-('1', ['2'], '3')
->>> unpack_middle([1,2,3])
-(1, [2], 3)
-
->>> unpack_middle_list([1,2])
-(1, [], 2)
->>> unpack_middle_list([1,2,3])
-(1, [2], 3)
->>> unpack_middle_tuple((1,2))
-(1, [], 2)
->>> unpack_middle_tuple((1,2,3))
-(1, [2], 3)
-
->>> a,b,c = unpack_middle(list(range(100)))
->>> a, len(b), c
-(0, 98, 99)
->>> a,b,c = unpack_middle_list(list(range(100)))
->>> a, len(b), c
-(0, 98, 99)
->>> a,b,c = unpack_middle_tuple(tuple(range(100)))
->>> a, len(b), c
-(0, 98, 99)
-
+    >>> class FakeSeq(object):
+    ...     def __init__(self, length):
+    ...         self._values = list(range(1,length+1))
+    ...     def __getitem__(self, i):
+    ...         return self._values[i]
+
+    >>> unpack( FakeSeq(2) )
+    (1, 2)
+    >>> unpack_recursive( FakeSeq(4) )
+    (1, [2, 3], 4)
 """
 
 def unpack(l):
+    """
+    >>> unpack([1,2])
+    (1, 2)
+    >>> unpack('12')
+    ('1', '2')
+    """
     a, b = l
     return a,b
 
 def unpack_list(list l):
+    """
+    >>> unpack_list([1,2])
+    (1, 2)
+    """
     a, b = l
     return a,b
 
 def unpack_tuple(tuple t):
+    """
+    >>> unpack_tuple((1,2))
+    (1, 2)
+    """
     a, b = t
     return a,b
 
 def assign():
+    """
+    >>> assign()
+    (1, [2, 3, 4], 5)
+    """
     *a, b = 1,2,3,4,5
     assert a+[b] == [1,2,3,4,5], (a,b)
     a, *b = 1,2,3,4,5
@@ -198,6 +50,10 @@ def assign():
     return a,b,c
 
 def unpack_into_list(l):
+    """
+    >>> unpack_into_list('123')
+    ('1', ['2'], '3')
+    """
     [*a, b] = l
     assert a+[b] == list(l), repr((a+[b],list(l)))
     [a, *b] = l
@@ -206,6 +62,10 @@ def unpack_into_list(l):
     return a,b,c
 
 def unpack_into_tuple(t):
+    """
+    >>> unpack_into_tuple('123')
+    ('1', ['2'], '3')
+    """
     (*a, b) = t
     assert a+[b] == list(t), repr((a+[b],list(t)))
     (a, *b) = t
@@ -214,6 +74,21 @@ def unpack_into_tuple(t):
     return a,b,c
 
 def unpack_in_loop(list_of_sequences):
+    """
+    >>> unpack_in_loop([(1,2), (1,2,3), (1,2,3,4)])
+    1
+    ([1], 2)
+    ([1, 2], 3)
+    ([1, 2, 3], 4)
+    2
+    (1, [2])
+    (1, [2, 3])
+    (1, [2, 3, 4])
+    3
+    (1, [], 2)
+    (1, [2], 3)
+    (1, [2, 3], 4)
+    """
     print 1
     for *a,b in list_of_sequences:
         print((a,b))
@@ -225,49 +100,193 @@ def unpack_in_loop(list_of_sequences):
         print((a,b,c))
 
 def unpack_recursive(t):
+    """
+    >>> unpack_recursive((1,2,3,4))
+    (1, [2, 3], 4)
+    """
     *(a, *b), c  = t
     return a,b,c
 
 def unpack_typed(t):
+    """
+    >>> unpack_typed((1,2))
+    ([1], 2)
+    """
     cdef list a
     *a, b  = t
     return a,b
 
 
 def unpack_right(l):
+    """
+    >>> unpack_right('')
+    Traceback (most recent call last):
+    ValueError: need more than 0 values to unpack
+    >>> unpack_right('1')
+    ('1', [])
+    >>> unpack_right([1])
+    (1, [])
+    >>> unpack_right('12')
+    ('1', ['2'])
+    >>> unpack_right([1,2])
+    (1, [2])
+    >>> unpack_right('123')
+    ('1', ['2', '3'])
+    >>> unpack_right([1,2,3])
+    (1, [2, 3])
+    """
     a, *b = l
     return a,b
 
 def unpack_right_list(list l):
+    """
+    >>> unpack_right_list([])
+    Traceback (most recent call last):
+    ValueError: need more than 0 values to unpack
+    >>> unpack_right_list([1])
+    (1, [])
+    >>> unpack_right_list([1,2])
+    (1, [2])
+    >>> unpack_right_list([1,2,3])
+    (1, [2, 3])
+    """
     a, *b = l
     return a,b
 
 def unpack_right_tuple(tuple t):
+    """
+    >>> unpack_right_tuple(())
+    Traceback (most recent call last):
+    ValueError: need more than 0 values to unpack
+    >>> unpack_right_tuple((1,))
+    (1, [])
+    >>> unpack_right_tuple((1,2))
+    (1, [2])
+    >>> unpack_right_tuple((1,2,3))
+    (1, [2, 3])
+    """
     a, *b = t
     return a,b
 
 
 def unpack_left(l):
+    """
+    >>> unpack_left('')
+    Traceback (most recent call last):
+    ValueError: need more than 0 values to unpack
+    >>> unpack_left('1')
+    ([], '1')
+    >>> unpack_left([1])
+    ([], 1)
+    >>> unpack_left('12')
+    (['1'], '2')
+    >>> unpack_left([1,2])
+    ([1], 2)
+    >>> unpack_left('123')
+    (['1', '2'], '3')
+    >>> unpack_left([1,2,3])
+    ([1, 2], 3)
+    """
     *a, b = l
     return a,b
 
 def unpack_left_list(list l):
+    """
+    >>> unpack_left_list([])
+    Traceback (most recent call last):
+    ValueError: need more than 0 values to unpack
+    >>> unpack_left_list([1])
+    ([], 1)
+    >>> unpack_left_list([1,2])
+    ([1], 2)
+    >>> unpack_left_list([1,2,3])
+    ([1, 2], 3)
+    """
     *a, b = l
     return a,b
 
 def unpack_left_tuple(tuple t):
+    """
+    >>> unpack_left_tuple(())
+    Traceback (most recent call last):
+    ValueError: need more than 0 values to unpack
+    >>> unpack_left_tuple((1,))
+    ([], 1)
+    >>> unpack_left_tuple((1,2))
+    ([1], 2)
+    >>> unpack_left_tuple((1,2,3))
+    ([1, 2], 3)
+    """
     *a, b = t
     return a,b
 
 
 def unpack_middle(l):
+    """
+    >>> unpack_middle('')
+    Traceback (most recent call last):
+    ValueError: need more than 0 values to unpack
+    >>> unpack_middle([])
+    Traceback (most recent call last):
+    ValueError: need more than 0 values to unpack
+    >>> unpack_middle(())
+    Traceback (most recent call last):
+    ValueError: need more than 0 values to unpack
+    >>> unpack_middle('1')
+    Traceback (most recent call last):
+    ValueError: need more than 1 value to unpack
+    >>> unpack_middle([1])
+    Traceback (most recent call last):
+    ValueError: need more than 1 value to unpack
+    >>> unpack_middle('12')
+    ('1', [], '2')
+    >>> unpack_middle([1,2])
+    (1, [], 2)
+    >>> unpack_middle('123')
+    ('1', ['2'], '3')
+    >>> unpack_middle([1,2,3])
+    (1, [2], 3)
+    """
     a, *b, c = l
     return a,b,c
 
 def unpack_middle_list(list l):
+    """
+    >>> unpack_middle_list([])
+    Traceback (most recent call last):
+    ValueError: need more than 0 values to unpack
+    >>> unpack_middle_list([1])
+    Traceback (most recent call last):
+    ValueError: need more than 1 value to unpack
+    >>> unpack_middle_list([1,2])
+    (1, [], 2)
+    >>> unpack_middle_list([1,2,3])
+    (1, [2], 3)
+    """
     a, *b, c = l
     return a,b,c
 
 def unpack_middle_tuple(tuple t):
+    """
+    >>> unpack_middle_tuple(())
+    Traceback (most recent call last):
+    ValueError: need more than 0 values to unpack
+    >>> unpack_middle_tuple((1,))
+    Traceback (most recent call last):
+    ValueError: need more than 1 value to unpack
+    >>> unpack_middle_tuple((1,2))
+    (1, [], 2)
+    >>> unpack_middle_tuple((1,2,3))
+    (1, [2], 3)
+    >>> a,b,c = unpack_middle(list(range(100)))
+    >>> a, len(b), c
+    (0, 98, 99)
+    >>> a,b,c = unpack_middle_list(list(range(100)))
+    >>> a, len(b), c
+    (0, 98, 99)
+    >>> a,b,c = unpack_middle_tuple(tuple(range(100)))
+    >>> a, len(b), c
+    (0, 98, 99)
+    """
     a, *b, c = t
     return a,b,c
index 65cf23e44f07c4a5fdb605ba33785ca765bc0b0d..7b001e1b076e6ce93dfcc2f6af773ce0d7bf70b3 100644 (file)
@@ -1,4 +1,3 @@
-
 def simple():
     """
     >>> simple()
index 9452a5f021f6854e8d2911d60203faa9bc46aaf2..0c8cb9de9ede1dce4ba5d83ae745a8a8ea0722c5 100644 (file)
@@ -1,9 +1,3 @@
-__doc__ = u"""
-    >>> p = create()
-    >>> rest(p)
-    0
-"""
-
 cdef class Parrot:
     cdef object name
     cdef int alive
@@ -18,6 +12,11 @@ def create():
     return p
 
 def rest(Norwegian polly):
+    """
+    >>> p = create()
+    >>> rest(p)
+    0
+    """
     cdef Parrot fred
     cdef object spam
     spam = None
index 1a0c727106ae2f60abfb035dfdab8bbc3a2e32fe..fb9e0de7e84a62c062fadd107a2b1bb10d0326c0 100644 (file)
@@ -2,27 +2,46 @@ __doc__ = u"""
     >>> ext = Ext()
     >>> b,c,d,e,f,g,h,k = ext.b,ext.c,ext.d,ext.e,ext.f,ext.g,ext.h,ext.k
 
-    >>> b(1,2,3)
-    >>> b(1,2,3,4)
-    Traceback (most recent call last):
-    TypeError: b() takes exactly 3 positional arguments (4 given)
+"""
+
+cdef class Ext:
+    def b(self, a, b, c):
+        pass
+
+    def c(self, a, b, c=1):
+        pass
+
+    def d(self, a, b, *, c = 88):
+        pass
+
+    def e(self, a, b, c = 88, **kwds):
+        pass
+
+    def f(self, a, b, *, c, d = 42):
+        pass
+
+    def g(self, a, b, *, c, d = 42, e = 17, f, **kwds):
+        pass
 
+    def h(self, a, b, *args, c, d = 42, e = 17, f, **kwds):
+        pass
+
+    def k(self, a, b, c=1, *args, d = 42, e = 17, f, **kwds):
+        pass
+"""# c
     >>> c(1,2)
     >>> c(1,2,3)
     >>> c(1,2,3,4)
     Traceback (most recent call last):
     TypeError: c() takes at most 3 positional arguments (4 given)
 
-    >>> d(1,2)
-    >>> d(1,2, c=1)
-
-    >>> d(1,2,3)
-    Traceback (most recent call last):
-    TypeError: d() takes exactly 2 positional arguments (3 given)
-    >>> d(1,2, d=1)
+# b
+    >>> b(1,2,3)
+    >>> b(1,2,3,4)
     Traceback (most recent call last):
-    TypeError: d() got an unexpected keyword argument 'd'
+    TypeError: b() takes exactly 3 positional arguments (4 given)
 
+# e
     >>> e(1,2)
     >>> e(1,2, c=1)
     >>> e(1,2, d=1)
@@ -32,19 +51,18 @@ __doc__ = u"""
     Traceback (most recent call last):
     TypeError: e() takes at most 3 positional arguments (4 given)
 
-    >>> f(1,2, c=1)
-    >>> f(1,2, c=1, d=2)
+# d
+    >>> d(1,2)
+    >>> d(1,2, c=1)
 
-    >>> f(1,2,3)
-    Traceback (most recent call last):
-    TypeError: f() takes exactly 2 positional arguments (3 given)
-    >>> f(1,2)
+    >>> d(1,2,3)
     Traceback (most recent call last):
-    TypeError: f() needs keyword-only argument c
-    >>> f(1,2, c=1, e=2)
+    TypeError: d() takes exactly 2 positional arguments (3 given)
+    >>> d(1,2, d=1)
     Traceback (most recent call last):
-    TypeError: f() got an unexpected keyword argument 'e'
+    TypeError: d() got an unexpected keyword argument 'd'
 
+# g
     >>> g(1,2, c=1, f=2)
     >>> g(1,2, c=1, e=0, f=2, d=11)
     >>> g(1,2, c=1, f=2, e=0, x=25)
@@ -59,6 +77,21 @@ __doc__ = u"""
     Traceback (most recent call last):
     TypeError: g() needs keyword-only argument f
 
+# f
+    >>> f(1,2, c=1)
+    >>> f(1,2, c=1, d=2)
+
+    >>> f(1,2,3)
+    Traceback (most recent call last):
+    TypeError: f() takes exactly 2 positional arguments (3 given)
+    >>> f(1,2)
+    Traceback (most recent call last):
+    TypeError: f() needs keyword-only argument c
+    >>> f(1,2, c=1, e=2)
+    Traceback (most recent call last):
+    TypeError: f() got an unexpected keyword argument 'e'
+
+# h
     >>> h(1,2, c=1, f=2)
     >>> h(1,2, c=1, f=2, e=3)
     >>> h(1,2,3,4,5,6, c=1, f=2)
@@ -71,6 +104,7 @@ __doc__ = u"""
     Traceback (most recent call last):
     TypeError: h() needs keyword-only argument c
 
+# k
     >>> k(1,2, c=1, f=2)
     >>> k(1,2, c=1, f=2, e=3)
     >>> k(1,2,3,4,5,6, d=1, f=2)
@@ -83,28 +117,3 @@ __doc__ = u"""
     Traceback (most recent call last):
     TypeError: k() needs keyword-only argument f
 """
-
-cdef class Ext:
-    def b(self, a, b, c):
-        pass
-
-    def c(self, a, b, c=1):
-        pass
-
-    def d(self, a, b, *, c = 88):
-        pass
-
-    def e(self, a, b, c = 88, **kwds):
-        pass
-
-    def f(self, a, b, *, c, d = 42):
-        pass
-
-    def g(self, a, b, *, c, d = 42, e = 17, f, **kwds):
-        pass
-
-    def h(self, a, b, *args, c, d = 42, e = 17, f, **kwds):
-        pass
-
-    def k(self, a, b, c=1, *args, d = 42, e = 17, f, **kwds):
-        pass
index 6ca4987d2fb28c24cc047880e1eab3e0c12c390c..3d9d57d24ef36359332a5814613e2e83a355ac3b 100644 (file)
@@ -7,4 +7,3 @@ cdef class Spam:
 
     def __len__(self):
         return 0
-
index 872d028b2df7a936b4f66c7251d5d2192483156a..1b783e1b86b92fb6c93b1e96e32a928f543e08c2 100644 (file)
@@ -1,8 +1,3 @@
-__doc__ = u"""
->>> tomato()
-42
-"""
-
 cdef class Spam:
 
     property eggs:
@@ -11,6 +6,10 @@ cdef class Spam:
             return 42
 
 def tomato():
+    """
+    >>> tomato()
+    42
+    """
     cdef Spam spam
     cdef object lettuce
     spam = Spam()
index 393c59486e32f9e15735cd723a15d07397509b1b..35d7e33f71abf6fa107d764b9f716e4773a22f81 100644 (file)
@@ -1,28 +1,13 @@
-__doc__ = u"""
-    >>> s = Spam(12)
-    >>> s.eat()
-    12 42
-    >>> f(s)
-    Traceback (most recent call last):
-    AttributeError: 'exttype.Spam' object has no attribute 'foo'
-    >>> s.eat()
-    12 42
-
-    >>> class Spam2(Spam):
-    ...     foo = 1
-    >>> s = Spam2(12)
-    >>> s.eat()
-    12 42
-    >>> f(s)
-    >>> s.eat()
-    12 42
-"""
 
 cdef gobble(a, b):
     print a, b
 
 cdef class Spam:
-
+    """
+    >>> s = Spam(12)
+    >>> s.eat()
+    12 42
+    """
     cdef eggs
     cdef int ham
 
@@ -37,6 +22,22 @@ cdef class Spam:
         gobble(self.eggs, self.ham)
 
 def f(Spam spam):
+    """
+    >>> s = Spam(12)
+    >>> f(s)
+    Traceback (most recent call last):
+    AttributeError: 'exttype.Spam' object has no attribute 'foo'
+    >>> s.eat()
+    12 42
+    >>> class Spam2(Spam):
+    ...     foo = 1
+    >>> s = Spam2(12)
+    >>> s.eat()
+    12 42
+    >>> f(s)
+    >>> s.eat()
+    12 42
+    """
     x = spam.eggs
     y = spam.ham
     z = spam.foo
index 8f7587faa5d3e8e601299c3c54552084135e7052..604edb2135090f809236522726debd464a0a3b5d 100644 (file)
@@ -8,4 +8,3 @@ ftang
 include "filenames.pxi"
 
 foo = 42
-
index 471f300f149fca492c09ea0cebabcc753c11ee2f..50b9598a3e5be7b1d295b4eff6a31729fe91704a 100644 (file)
@@ -1,28 +1,18 @@
-__doc__ = u"""
->>> test_in('ABC')
-1
->>> test_in('abc')
-2
->>> test_in('X')
-3
->>> test_in('XYZ')
-4
->>> test_in('ABCXYZ')
-5
->>> test_in('')
-5
-
->>> test_not_in('abc')
-1
->>> test_not_in('CDE')
-2
->>> test_not_in('CDEF')
-3
->>> test_not_in('BCD')
-4
-"""
-
 def test_in(s):
+    """
+    >>> test_in('ABC')
+    1
+    >>> test_in('abc')
+    2
+    >>> test_in('X')
+    3
+    >>> test_in('XYZ')
+    4
+    >>> test_in('ABCXYZ')
+    5
+    >>> test_in('')
+    5
+    """
     if s in (u'ABC', u'BCD'):
         return 1
     elif s.upper() in (u'ABC', u'BCD'):
@@ -35,6 +25,16 @@ def test_in(s):
         return 5
 
 def test_not_in(s):
+    """
+    >>> test_not_in('abc')
+    1
+    >>> test_not_in('CDE')
+    2
+    >>> test_not_in('CDEF')
+    3
+    >>> test_not_in('BCD')
+    4
+    """
     if s not in (u'ABC', u'BCD', u'CDE', u'CDEF'):
         return 1
     elif s.upper() not in (u'ABC', u'BCD', u'CDEF'):
index 1843d496dcb9b4e5cdeaa6fc3ddbf7d4ca1b668a..63b12c0bdda466cf5e86f7d93e4d1fa7402eb027 100644 (file)
@@ -1,4 +1,5 @@
-__doc__ = u"""
+def floor_div_float(double a, double b):
+    """
     >>> floor_div_float(2, 1.5)
     1.0
     >>> floor_div_float(2, -1.5)
@@ -7,7 +8,5 @@ __doc__ = u"""
     -2.0
     >>> floor_div_float(1e10, 1e-10)
     1e+20
-"""
-
-def floor_div_float(double a, double b):
+    """
     return a // b
index 29158aba8d6b2c9bba077c17f04c651d7988a086..56f0f685d1da6c4121660c84eec39bc8373cb116 100644 (file)
@@ -1,7 +1,6 @@
-__doc__ = u"""
+def fmod(double a, double b):
+    """
     >>> fmod(7, 1.25)
     0.75
-"""
-
-def fmod(double a, double b):
+    """
     return a % b
index 4cf2093a190d94be87c275856c4388bf2445d1fc..554d97715afe50db36e2921edd9a34f83e8db04c 100644 (file)
@@ -1,59 +1,66 @@
-__doc__ = u"""
+def double_target(a, b):
+    """
     >>> double_target(0, 4)
     at 0.0
     at 1.0
     at 2.0
     at 3.0
     4.0
-    >>> double_step(0, 2, .5)
-    at 0.0
-    at 0.5
-    at 1.0
-    at 1.5
-    2.0
-    >>> double_step_typed(0, 2, .5)
-    at 0.0
-    at 0.5
-    at 1.0
-    at 1.5
-    2.0
-    >>> double_step_py_target(0, 2, .5)
-    at 0.0
-    at 0.5
-    at 1.0
-    at 1.5
-    2.0
-    >>> int_step_py_target(0, 2, 1)
-    at 0
-    at 1
-    2
-"""
-
-def double_target(a, b):
+    """
     cdef double x
     for x from a <= x < b:
         print u"at", x
     return x
 
 def double_step(a, b, dx):
+    """
+    >>> double_step(0, 2, .5)
+    at 0.0
+    at 0.5
+    at 1.0
+    at 1.5
+    2.0
+    """
     cdef double x
     for x from a <= x < b by dx:
         print u"at", x
     return x
 
 def double_step_typed(a, b, double dx):
+    """
+    >>> double_step_typed(0, 2, .5)
+    at 0.0
+    at 0.5
+    at 1.0
+    at 1.5
+    2.0
+    """
     cdef double x
     for x from a <= x < b by dx:
         print u"at", x
     return x
 
 def double_step_py_target(a, b, double dx):
+    """
+    >>> double_step_py_target(0, 2, .5)
+    at 0.0
+    at 0.5
+    at 1.0
+    at 1.5
+    2.0
+    """
     cdef object x
     for x from a <= x < b by dx:
         print u"at", x
     return x
 
 def int_step_py_target(a, b, int dx):
+    """
+    >>> int_step_py_target(0, 2, 1)
+    at 0
+    at 1
+    2
+    """
     cdef object x
     for x from a <= x < b by dx:
         print u"at", x
index a8fa40d56a6925b694f40873e5683711c0944c00..0ded4501a393212aa6ba648d6a5e2d353449a02a 100644 (file)
@@ -1,38 +1,18 @@
-__doc__ = u"""
->>> test_modify()
-0
-1
-2
-3
-4
-<BLANKLINE>
-(4, 0)
->>> test_fix()
-0
-1
-2
-3
-4
-<BLANKLINE>
-4
->>> test_break()
-0
-1
-2
-<BLANKLINE>
-(2, 0)
->>> test_return()
-0
-1
-2
-(2, 0)
-"""
-
 cimport cython
 
 @cython.test_assert_path_exists("//ForFromStatNode")
 @cython.test_fail_if_path_exists("//ForInStatNode")
 def test_modify():
+    """
+    >>> test_modify()
+    0
+    1
+    2
+    3
+    4
+    <BLANKLINE>
+    (4, 0)
+    """
     cdef int i, n = 5
     for i in range(n):
         print i
@@ -43,6 +23,16 @@ def test_modify():
 @cython.test_assert_path_exists("//ForFromStatNode")
 @cython.test_fail_if_path_exists("//ForInStatNode")
 def test_fix():
+    """
+    >>> test_fix()
+    0
+    1
+    2
+    3
+    4
+    <BLANKLINE>
+    4
+    """
     cdef int i
     for i in range(5):
         print i
@@ -52,6 +42,14 @@ def test_fix():
 @cython.test_assert_path_exists("//ForFromStatNode")
 @cython.test_fail_if_path_exists("//ForInStatNode")
 def test_break():
+    """
+    >>> test_break()
+    0
+    1
+    2
+    <BLANKLINE>
+    (2, 0)
+    """
     cdef int i, n = 5
     for i in range(n):
         print i
@@ -66,6 +64,13 @@ def test_break():
 @cython.test_assert_path_exists("//ForFromStatNode")
 @cython.test_fail_if_path_exists("//ForInStatNode")
 def test_return():
+    """
+    >>> test_return()
+    0
+    1
+    2
+    (2, 0)
+    """
     cdef int i, n = 5
     for i in range(n):
         print i
index c4bf96a8890be32b59e172103d64dc765ebdfdbd..3e1b189aa94a3c65f4debc6b5ac524a53647a023 100644 (file)
@@ -1,15 +1,14 @@
-__doc__ = u"""
->>> for_else()
-30
->>> print( u'*'.join(int_comp()) )
-00*01*02
-"""
-
 import sys
 if sys.version_info[0] >= 3:
     __doc__ = __doc__.replace(u" u'", u" '").replace(u' u"', u' "')
 
 def for_else():
+    """
+    >>> for_else()
+    30
+    >>> print( u'*'.join(int_comp()) )
+    00*01*02
+    """
     cdef int i, j=0, k=2
     for i from 0 <= i < 10:
         j += k
index 8c24c41c058c12693303cf59d35682efe6794fbd..ed66040ce47aaec4f133b2345dab074fb2d9b455 100644 (file)
@@ -1,4 +1,3 @@
-
 import sys
 
 def reraise(f, exc):
index 6ee1f35327fa4e8e27520e037c7b21413d18f773..38fe48b7b346df9034837183f0bdad8de0821132 100644 (file)
@@ -11,8 +11,6 @@ __doc__ = u"""
     ...
     TypeError: That's kind of a round number...
     
-    >>> __hash__(-1)
-    -1
 """
 
 cdef class A:
@@ -26,4 +24,8 @@ cdef class A:
             return self.a
 
 cpdef long __hash__(long x):
+    """
+    >>> __hash__(-1)
+    -1
+    """
     return x
index a4922051626bd54a75193351170c79d09dbaa703..ddbb1e1842005fbe8cd75deb5d996aba5284abc9 100644 (file)
@@ -1,34 +1,12 @@
-__doc__ = u"""
+def f(a, b):
+    """
     >>> f(0,0)
     0
     >>> f(1,2)
     2
     >>> f(1,-1)
     1
-
-    >>> g(1,2)
-    1
-    >>> g(0,2)
-    2
-    >>> g(0,0)
-    0
-
-    >>> h(1,2)
-    1
-    >>> h(0,2)
-    2
-    >>> h(0,0)
-    3
-
-    >>> i(1,2)
-    1
-    >>> i(2,2)
-    2
-    >>> i(2,1)
-    0
-"""
-
-def f(a, b):
+    """
     x = 0
     if a:
         x = 1
@@ -37,6 +15,14 @@ def f(a, b):
     return x
 
 def g(a, b):
+    """
+    >>> g(1,2)
+    1
+    >>> g(0,2)
+    2
+    >>> g(0,0)
+    0
+    """
     x = 0
     if a:
         x = 1
@@ -45,6 +31,14 @@ def g(a, b):
     return x
     
 def h(a, b):
+    """
+    >>> h(1,2)
+    1
+    >>> h(0,2)
+    2
+    >>> h(0,0)
+    3
+    """
     x = 0
     if a:
         x = 1
@@ -60,6 +54,14 @@ except ImportError:
     import builtins
 
 def i(a, b):
+    """
+    >>> i(1,2)
+    1
+    >>> i(2,2)
+    2
+    >>> i(2,1)
+    0
+    """
     x = 0
     if builtins.str(a).upper() == u"1":
         x = 1
index 19bc40d160b899aa9ecdefdf4f52732808fb12fe..2cf1e6b56747add44f05c927661ee92ea284c946 100644 (file)
@@ -1,21 +1,10 @@
-__doc__ = u"""
->>> from distutils import cmd, core, version
->>> import1() == (cmd, core, version)
-True
->>> import2() == (cmd, core, version)
-True
->>> import3() == (cmd, core, version)
-True
->>> import4() == (cmd, core, version)
-True
->>> typed_imports()
-True
-True
-an integer is required
-Expected type, got int
-"""
+from distutils import cmd, core, version
 
 def import1():
+    """
+    >>> import1() == (cmd, core, version)
+    True
+    """
     from distutils import (
 
         cmd,
@@ -25,6 +14,10 @@ core,                    version)
 
 
 def import2():
+    """
+    >>> import2() == (cmd, core, version)
+    True
+    """
     from distutils import (cmd,
 
 core,
@@ -36,16 +29,31 @@ core,
 
 
 def import3():
+    """
+    >>> import3() == (cmd, core, version)
+    True
+    """
     from distutils import (cmd, core,version)
     return cmd, core, version
 
 def import4():
+    """
+    >>> import4() == (cmd, core, version)
+    True
+    """
     from distutils import cmd, core, version
     return cmd, core, version
 
 
 
 def typed_imports():
+    """
+    >>> typed_imports()
+    True
+    True
+    an integer is required
+    Expected type, got int
+    """
 
     import sys
     import types
@@ -66,4 +74,3 @@ def typed_imports():
         from sys import maxunicode as t
     except TypeError, e:
         print e
-
index e3cf963cd13ce5af3563fbb19a406313271c7e8e..6354ec4b0eb8187bb6781da9a1afcd45a82b28d5 100644 (file)
@@ -1,53 +1,3 @@
-__doc__ = u"""
->>> index_tuple((1,1,2,3,5), 0)
-1
->>> index_tuple((1,1,2,3,5), 3)
-3
->>> index_tuple((1,1,2,3,5), -1)
-5
->>> index_tuple((1,1,2,3,5), 100)
-Traceback (most recent call last):
-...
-IndexError: tuple index out of range
-
->>> index_list([2,3,5,7,11,13,17,19], 0)
-2
->>> index_list([2,3,5,7,11,13,17,19], 5)
-13
->>> index_list([2,3,5,7,11,13,17,19], -1)
-19
->>> index_list([2,3,5,7,11,13,17,19], 100)
-Traceback (most recent call last):
-...
-IndexError: list index out of range
-
->>> index_object([2,3,5,7,11,13,17,19], 1)
-3
->>> index_object([2,3,5,7,11,13,17,19], -1)
-19
->>> index_object((1,1,2,3,5), 2)
-2
->>> index_object((1,1,2,3,5), -2)
-3
->>> index_object("abcdef...z", 0)
-'a'
->>> index_object("abcdef...z", -1)
-'z'
->>> index_object("abcdef...z", 100)
-Traceback (most recent call last):
-...
-IndexError: string index out of range
-
->>> index_object(100, 100)
-Traceback (most recent call last):
-...
-TypeError: 'int' object is unsubscriptable
-
->>> test_unsigned_long()
->>> test_unsigned_short()
->>> test_long_long()
-"""
-
 import sys
 if sys.version_info[0] >= 3:
     __doc__ = __doc__.replace(u'is unsubscriptable', u'is not subscriptable')
@@ -55,18 +5,67 @@ elif sys.version_info < (2,5):
     __doc__ = __doc__.replace(u"'int' object is unsubscriptable", u'unsubscriptable object')
 
 def index_tuple(tuple t, int i):
+    """
+    >>> index_tuple((1,1,2,3,5), 0)
+    1
+    >>> index_tuple((1,1,2,3,5), 3)
+    3
+    >>> index_tuple((1,1,2,3,5), -1)
+    5
+    >>> index_tuple((1,1,2,3,5), 100)
+    Traceback (most recent call last):
+    ...
+    IndexError: tuple index out of range
+    """
     return t[i]
 
 def index_list(list L, int i):
+    """
+    >>> index_list([2,3,5,7,11,13,17,19], 0)
+    2
+    >>> index_list([2,3,5,7,11,13,17,19], 5)
+    13
+    >>> index_list([2,3,5,7,11,13,17,19], -1)
+    19
+    >>> index_list([2,3,5,7,11,13,17,19], 100)
+    Traceback (most recent call last):
+    ...
+    IndexError: list index out of range
+    """
     return L[i]
 
 def index_object(object o, int i):
+    """
+    >>> index_object([2,3,5,7,11,13,17,19], 1)
+    3
+    >>> index_object([2,3,5,7,11,13,17,19], -1)
+    19
+    >>> index_object((1,1,2,3,5), 2)
+    2
+    >>> index_object((1,1,2,3,5), -2)
+    3
+    >>> index_object("abcdef...z", 0)
+    'a'
+    >>> index_object("abcdef...z", -1)
+    'z'
+    >>> index_object("abcdef...z", 100)
+    Traceback (most recent call last):
+    ...
+    IndexError: string index out of range
+    >>> index_object(100, 100)
+    Traceback (most recent call last):
+    ...
+    TypeError: 'int' object is unsubscriptable
+    """
     return o[i]
 
 
 # These make sure that our fast indexing works with large and unsigned types. 
 
 def test_unsigned_long():
+    """
+    >>> test_unsigned_long()
+    """
     cdef int i
     cdef unsigned long ix
     cdef D = {}
@@ -80,6 +79,9 @@ def test_unsigned_long():
     assert len(D) == 0
 
 def test_unsigned_short():
+    """
+    >>> test_unsigned_short()
+    """
     cdef int i
     cdef unsigned short ix
     cdef D = {}
@@ -93,6 +95,9 @@ def test_unsigned_short():
     assert len(D) == 0
 
 def test_long_long():
+    """
+    >>> test_long_long()
+    """
     cdef int i
     cdef long long ix
     cdef D = {}
index 4c3e84282f6c54c1176ae1c5acff12e982023717..23e9150c77ff793bd640efe6116a3509e78810b5 100644 (file)
@@ -1,12 +1,10 @@
-__doc__ = u"""
->>> test(3)
-3
-"""
-
 def test(x):
+    """
+    >>> test(3)
+    3
+    """
     return retinput(x)
 
 cdef inline int retinput(int x):
     o = x
     return o
-
index 49e8af381da82d5cbf03a024f643ca1b0ff93142..67c15c076d223bc0d063c6b92c2205cc36f9d8e7 100644 (file)
-__doc__ = u"""
+def f(a,b):
+    """
     >>> f(1,[1,2,3])
     True
     >>> f(5,[1,2,3])
     False
     >>> f(2,(1,2,3))
     True
+    """
+    result = a in b
+    return result
 
+def g(a,b):
+    """
     >>> g(1,[1,2,3])
     1
     >>> g(5,[1,2,3])
     0
     >>> g(2,(1,2,3))
     1
+    """
+    cdef int result
+    result = a in b
+    return result
 
+def h(b):
+    """
     >>> h([1,2,3,4])
     True
     >>> h([1,3,4])
     False
+    """
+    result = 2 in b
+    return result
 
+def j(b):
+    """
     >>> j([1,2,3,4])
     1
     >>> j([1,3,4])
     0
+    """
+    cdef int result
+    result = 2 in b
+    return result
 
+def k(a):
+    """
     >>> k(1)
     1
     >>> k(5)
     0
+    """
+    cdef int result = a in [1,2,3,4]
+    return result
 
+def m(int a):
+    """
     >>> m(2)
     1
     >>> m(5)
     0
+    """
+    cdef int result = a in [1,2,3,4]
+    return result
 
+def n(a):
+    """
     >>> n('d *')
     1
     >>> n('xxx')
     0
+    """
+    cdef int result = a.lower() in [u'a *',u'b *',u'c *',u'd *']
+    return result
 
+def p(a):
+    """
     >>> p(1)
     0
     >>> p('a')
     1
+    """
+    cdef dict d = {u'a': 1, u'b': 2}
+    cdef int result = a in d
+    return result
 
+def q(a):
+    """
     >>> q(1)
     Traceback (most recent call last):
     TypeError: 'NoneType' object is not iterable
-
-    >>> l = [1,2,3,4]
+        >>> l = [1,2,3,4]
     >>> l2 = [l[1:],l[:-1],l]
     >>> 2 in l in l2
     True
-    >>> r(2)
-    1
-    >>> s(2)
-    1
-"""
-
-def f(a,b):
-    result = a in b
-    return result
-
-def g(a,b):
-    cdef int result
-    result = a in b
-    return result
-
-def h(b):
-    result = 2 in b
-    return result
-
-def j(b):
-    cdef int result
-    result = 2 in b
-    return result
-
-def k(a):
-    cdef int result = a in [1,2,3,4]
-    return result
-
-def m(int a):
-    cdef int result = a in [1,2,3,4]
-    return result
-
-def n(a):
-    cdef int result = a.lower() in [u'a *',u'b *',u'c *',u'd *']
-    return result
-
-def p(a):
-    cdef dict d = {u'a': 1, u'b': 2}
-    cdef int result = a in d
-    return result
-
-def q(a):
+    """
     cdef dict d = None
     cdef int result = a in d # should fail with a TypeError
     return result
 
 def r(a):
+    """
+    >>> r(2)
+    1
+    """
     l = [1,2,3,4]
     l2 = [l[1:],l[:-1],l]
     cdef int result = a in l in l2
     return result
 
 def s(a):
+    """
+    >>> s(2)
+    1
+    """
     cdef int result = a in [1,2,3,4] in [[1,2,3],[2,3,4],[1,2,3,4]]
     return result
index 727c7ccb8c6e270f165b8e141108c88a8cd247db..0db3dba932ce3209821baf8e68490e31b2395801 100644 (file)
@@ -2,27 +2,6 @@ __doc__ = u"""
     >>> str(f(5, 7))
     '29509034655744'
 
-    >>> g(13, 4)
-    32
-
-    >>> h(56, 7)
-    105.0
-
-    >>> arrays()
-    19
-
-    >>> attributes()
-    26 26 26
-
-    >>> smoketest()
-    10
-
-    >>> test_side_effects()
-    side effect 1
-    c side effect 2
-    side effect 3
-    c side effect 4
-    ([0, 11, 102, 3, 4], [0, 1, 2, 13, 104])
 """
 
 def f(a,b):
@@ -32,12 +11,20 @@ def f(a,b):
     return a
 
 def g(int a, int b):
+    """
+    >>> g(13, 4)
+    32
+    """
     a -= b
     a /= b
     a <<= b
     return a
 
 def h(double a, double b):
+    """
+    >>> h(56, 7)
+    105.0
+    """
     a /= b
     a += b
     a *= b
@@ -46,6 +33,10 @@ def h(double a, double b):
 cimport stdlib
 
 def arrays():
+    """
+    >>> arrays()
+    19
+    """
     cdef char* buf = <char*>stdlib.malloc(10)
     cdef int i = 2
     cdef object j = 2
@@ -68,6 +59,10 @@ class B:
     attr = 3
 
 def attributes():
+    """
+    >>> attributes()
+    26 26 26
+    """
     cdef A a = A()
     b = B()
     a.attr += 10
@@ -82,6 +77,10 @@ def get_2(): return 2
 cdef int identity(int value): return value
 
 def smoketest():
+    """
+    >>> smoketest()
+    10
+    """
     cdef char* buf = <char*>stdlib.malloc(10)
     cdef A a = A()
     a.buf = buf
@@ -100,6 +99,14 @@ cdef int c_side_effect(int x):
     return x
     
 def test_side_effects():
+    """
+    >>> test_side_effects()
+    side effect 1
+    c side effect 2
+    side effect 3
+    c side effect 4
+    ([0, 11, 102, 3, 4], [0, 1, 2, 13, 104])
+    """
     a = list(range(5))
     a[side_effect(1)] += 10
     a[c_side_effect(2)] += 100
index bacc072241337aceb49329df576f7df466d9c1cd..7e3d850294a0700fca6ce1de834f9becd6315b99 100644 (file)
@@ -1,16 +1,13 @@
-__doc__ = u"""
-    >>> c_longs()
-    (1, 1L, -1L, 18446744073709551615L)
-    >>> py_longs()
-    (1, 1L, 100000000000000000000000000000000L, -100000000000000000000000000000000L)
-"""
-
 import sys
 
 if sys.version_info[0] >= 3:
     __doc__ = __doc__.replace(u'L', u'')
 
 def c_longs():
+    """
+    >>> c_longs()
+    (1, 1L, -1L, 18446744073709551615L)
+    """
     cdef long a = 1L
     cdef unsigned long ua = 1UL
     cdef long long aa = 0xFFFFFFFFFFFFFFFFLL
@@ -19,4 +16,8 @@ def c_longs():
     return a, ua, aa, uaa
     
 def py_longs():
+    """
+    >>> py_longs()
+    (1, 1L, 100000000000000000000000000000000L, -100000000000000000000000000000000L)
+    """
     return 1, 1L, 100000000000000000000000000000000, -100000000000000000000000000000000
index 1e8c12b69fc691e9e15f1560eaf377d84e4f5a06..d83eb45fb37b265d82407efa468b04307e5c3790 100644 (file)
@@ -1,4 +1,9 @@
-__doc__ = u"""
+import sys
+if sys.version_info[0] >= 3:
+    __doc__ = __doc__.replace(u" u'", u" '")
+
+class C:
+    """
     >>> C().xxx(5)
     5
     >>> C().xxx()
@@ -7,12 +12,6 @@ __doc__ = u"""
     42
     >>> C().xxx()
     u'a b'
-"""
-
-import sys
-if sys.version_info[0] >= 3:
-    __doc__ = __doc__.replace(u" u'", u" '")
-
-class C:
+    """
     def xxx(self, p=u"a b"):
         return p
index 19336b970410c7233faaf14d2374dfa9c7762c95..9fb91f67875af47c620dbf432027e0d84fd7f95f 100644 (file)
@@ -1,7 +1,3 @@
-__doc__ = u"""
->>> test_all()
-True
-"""
 cdef class A:
     pass
 
@@ -9,6 +5,10 @@ import sys
 IS_PY3 = sys.version_info[0] >= 3
 
 def test_all():
+    """
+    >>> test_all()
+    True
+    """
     if IS_PY3:
         new_type = type(u'a',(),{})
     else:
index 531630fd03044173688a62d2617d142b33ba0aab..5dca3a5c5280bf33113d75d2610864f9be456ce9 100644 (file)
@@ -1,11 +1,16 @@
-__doc__ = u"""
+def test_and(a,b):
+    """
     >>> test_and(None, None)
     True
     >>> test_and(None, 1)
     False
     >>> test_and(1, None)
     False
+    """
+    return a is None and b is None
 
+def test_more(a,b):
+    """
     >>> test_more(None, None)
     True
     >>> test_more(None, 1)
@@ -14,7 +19,11 @@ __doc__ = u"""
     False
     >>> test_more(None, 0)
     False
+    """
+    return a is None and (b is None or b == 1)
 
+def test_more_c(a,b):
+    """
     >>> test_more_c(None, None)
     True
     >>> test_more_c(None, 1)
@@ -23,13 +32,5 @@ __doc__ = u"""
     False
     >>> test_more_c(None, 0)
     False
-"""
-
-def test_and(a,b):
-    return a is None and b is None
-
-def test_more(a,b):
-    return a is None and (b is None or b == 1)
-
-def test_more_c(a,b):
+    """
     return (a is None or 1 == 2) and (b is None or b == 1)
index 3b53eccd15267b6001ae5906d1911b38c210b07c..6faf9dc69d15033d302f6b8bdfb9c6b5e23f87ad 100644 (file)
@@ -1,7 +1,3 @@
-__doc__ = u"""
-    >>> f()
-"""
-
 class IteratorAndIterateable:
     def next(self):
         raise ValueError
@@ -11,6 +7,9 @@ class IteratorAndIterateable:
         return self
 
 def f():
+    """
+    >>> f()
+    """
     try:
         for x in IteratorAndIterateable():
             pass
index 87fe41b4249d065366eb0c9bad1f9fc02558e9bd..472824772d565b88ff0802bf8341dac82fb71b90 100644 (file)
@@ -1,32 +1,11 @@
-__doc__ = u"""
->>> dict_size = 4
->>> d = dict(zip(range(10,dict_size+10), range(dict_size)))
-
->>> items(d)
-[(10, 0), (11, 1), (12, 2), (13, 3)]
->>> iteritems(d)
-[(10, 0), (11, 1), (12, 2), (13, 3)]
->>> iteritems_int(d)
-[(10, 0), (11, 1), (12, 2), (13, 3)]
->>> iteritems_tuple(d)
-[(10, 0), (11, 1), (12, 2), (13, 3)]
->>> iterkeys(d)
-[10, 11, 12, 13]
->>> iterkeys_int(d)
-[10, 11, 12, 13]
->>> iterdict(d)
-[10, 11, 12, 13]
->>> iterdict_reassign(d)
-[10, 11, 12, 13]
->>> iterdict_int(d)
-[10, 11, 12, 13]
->>> itervalues(d)
-[0, 1, 2, 3]
->>> itervalues_int(d)
-[0, 1, 2, 3]
-"""
+dict_size = 4
+d = dict(zip(range(10,dict_size+10), range(dict_size)))
 
 def items(dict d):
+    """
+    >>> items(d)
+    [(10, 0), (11, 1), (12, 2), (13, 3)]
+    """
     l = []
     for k,v in d.items():
         l.append((k,v))
@@ -34,6 +13,10 @@ def items(dict d):
     return l
 
 def iteritems(dict d):
+    """
+    >>> iteritems(d)
+    [(10, 0), (11, 1), (12, 2), (13, 3)]
+    """
     l = []
     for k,v in d.iteritems():
         l.append((k,v))
@@ -41,6 +24,10 @@ def iteritems(dict d):
     return l
 
 def iteritems_int(dict d):
+    """
+    >>> iteritems_int(d)
+    [(10, 0), (11, 1), (12, 2), (13, 3)]
+    """
     cdef int k,v
     l = []
     for k,v in d.iteritems():
@@ -49,6 +36,10 @@ def iteritems_int(dict d):
     return l
 
 def iteritems_tuple(dict d):
+    """
+    >>> iteritems_tuple(d)
+    [(10, 0), (11, 1), (12, 2), (13, 3)]
+    """
     l = []
     for t in d.iteritems():
         l.append(t)
@@ -61,6 +52,10 @@ def iteritems_listcomp(dict d):
     return l
 
 def iterkeys(dict d):
+    """
+    >>> iterkeys(d)
+    [10, 11, 12, 13]
+    """
     l = []
     for k in d.iterkeys():
         l.append(k)
@@ -68,6 +63,10 @@ def iterkeys(dict d):
     return l
 
 def iterkeys_int(dict d):
+    """
+    >>> iterkeys_int(d)
+    [10, 11, 12, 13]
+    """
     cdef int k
     l = []
     for k in d.iterkeys():
@@ -76,6 +75,10 @@ def iterkeys_int(dict d):
     return l
 
 def iterdict(dict d):
+    """
+    >>> iterdict(d)
+    [10, 11, 12, 13]
+    """
     l = []
     for k in d:
         l.append(k)
@@ -83,6 +86,10 @@ def iterdict(dict d):
     return l
 
 def iterdict_int(dict d):
+    """
+    >>> iterdict_int(d)
+    [10, 11, 12, 13]
+    """
     cdef int k
     l = []
     for k in d:
@@ -91,6 +98,10 @@ def iterdict_int(dict d):
     return l
 
 def iterdict_reassign(dict d):
+    """
+    >>> iterdict_reassign(d)
+    [10, 11, 12, 13]
+    """
     cdef dict d_new = {}
     l = []
     for k in d:
@@ -105,6 +116,10 @@ def iterdict_listcomp(dict d):
     return l
 
 def itervalues(dict d):
+    """
+    >>> itervalues(d)
+    [0, 1, 2, 3]
+    """
     l = []
     for v in d.itervalues():
         l.append(v)
@@ -112,6 +127,10 @@ def itervalues(dict d):
     return l
 
 def itervalues_int(dict d):
+    """
+    >>> itervalues_int(d)
+    [0, 1, 2, 3]
+    """
     cdef int v
     l = []
     for v in d.itervalues():
index 63e54bdb9f3217f86f9748e28e278a76754b4af3..395575afc36d5cdf1d3a997660f2f68e90b36990 100644 (file)
@@ -1,13 +1,10 @@
-__doc__ = u"""
->>> uf()
-It works!
->>> bf()
-It works!
-"""
-
 DEF USTUFF = u"Spam"
 
 def uf():
+    """
+    >>> uf()
+    It works!
+    """
     IF USTUFF == u"Spam":
         print "It works!"
     ELSE:
@@ -16,6 +13,10 @@ def uf():
 DEF BSTUFF = b"Spam"
 
 def bf():
+    """
+    >>> bf()
+    It works!
+    """
     IF BSTUFF == b"Spam":
         print "It works!"
     ELSE:
index 346baaab31089c907ad2d0440369bc4729a83689..97b0a4a375baaa94c805326ad81b80c82d16ad3c 100644 (file)
@@ -1,27 +1,24 @@
-__doc__ = u"""
+import sys
+
+def test(**kw):
+    """
     >>> d = {1 : 2}
     >>> test(**d)
     Traceback (most recent call last):
     TypeError: test() keywords must be strings
     >>> d
     {1: 2}
-
     >>> d = {}
     >>> test(**d)
     {'arg': 3}
     >>> d
     {}
-
     >>> d = {'arg' : 2} # this should be u'arg', but Py2 can't handle it...
     >>> test(**d)
     {'arg': 3}
     >>> d
     {'arg': 2}
-"""
-
-import sys
-
-def test(**kw):
+    """
     if sys.version_info[0] >= 3:
         kw[u'arg'] = 3
     else:
index d5f552988754caf59056d227d06e5abb3be05708..a01f7145a93e843e6adc286c8d9aefce1f23de7b 100644 (file)
@@ -1,25 +1,37 @@
-__doc__ = u"""
+def b(a, b, c):
+    """
     >>> b(1,2,3)
     >>> b(1,2,3,4)
     Traceback (most recent call last):
     TypeError: b() takes exactly 3 positional arguments (4 given)
+    """
+    a, b, c = b, c, a
 
+def c(a, b, c=1):
+    """
     >>> c(1,2)
     >>> c(1,2,3)
     >>> c(1,2,3,4)
     Traceback (most recent call last):
     TypeError: c() takes at most 3 positional arguments (4 given)
+    """
+    a, b, c = b, c, a
 
+def d(a, b, *, c = 88):
+    """
     >>> d(1,2)
     >>> d(1,2, c=1)
-
     >>> d(1,2,3)
     Traceback (most recent call last):
     TypeError: d() takes exactly 2 positional arguments (3 given)
     >>> d(1,2, d=1)
     Traceback (most recent call last):
     TypeError: d() got an unexpected keyword argument 'd'
+    """
+    a, b, c = b, c, a
 
+def e(a, b, c = 88, **kwds):
+    """
     >>> e(1,2)
     >>> e(1,2, c=1)
     >>> e(1,2, d=1)
@@ -28,10 +40,13 @@ __doc__ = u"""
     >>> e(1,2,3,4)
     Traceback (most recent call last):
     TypeError: e() takes at most 3 positional arguments (4 given)
+    """
+    a, b, c = b, c, a
 
+def f(a, b, *, c, d = 42):
+    """
     >>> f(1,2, c=1)
     >>> f(1,2, c=1, d=2)
-
     >>> f(1,2,3)
     Traceback (most recent call last):
     TypeError: f() takes exactly 2 positional arguments (3 given)
@@ -41,11 +56,14 @@ __doc__ = u"""
     >>> f(1,2, c=1, e=2)
     Traceback (most recent call last):
     TypeError: f() got an unexpected keyword argument 'e'
+    """
+    a, b, c, d = b, c, d, a
 
+def g(a, b, *, c, d = 42, e = 17, f, **kwds):
+    """
     >>> g(1,2, c=1, f=2)
     >>> g(1,2, c=1, e=0, f=2, d=11)
     >>> g(1,2, c=1, f=2, e=0, x=25)
-
     >>> g(1,2,3)
     Traceback (most recent call last):
     TypeError: g() takes exactly 2 positional arguments (3 given)
@@ -55,81 +73,64 @@ __doc__ = u"""
     >>> g(1,2, c=1)
     Traceback (most recent call last):
     TypeError: g() needs keyword-only argument f
+    """
+    a, b, c, d, e, f = b, c, d, e, f, a
 
+def h(a, b, *args, c, d = 42, e = 17, f, **kwds):
+    """
     >>> h(1,2, c=1, f=2)
     >>> h(1,2, c=1, f=2, e=3)
     >>> h(1,2,3,4,5,6, c=1, f=2)
     >>> h(1,2,3,4,5,6, c=1, f=2, e=3, x=25, y=11)
-
     >>> h(1,2,3)
     Traceback (most recent call last):
     TypeError: h() needs keyword-only argument c
     >>> h(1,2, d=1)
     Traceback (most recent call last):
     TypeError: h() needs keyword-only argument c
+    """
+    a, b, c, d, e, f = b, c, d, e, f, a
 
+def k(a, b, c=1, *args, d = 42, e = 17, f, **kwds):
+    """
     >>> k(1,2, c=1, f=2)
     >>> k(1,2, c=1, f=2, e=3)
     >>> k(1,2,3,4,5,6, d=1, f=2)
     >>> k(1,2,3,4,5,6, d=1, f=2, e=3, x=25, y=11)
-
     >>> k(1,2,3)
     Traceback (most recent call last):
     TypeError: k() needs keyword-only argument f
     >>> k(1,2, d=1)
     Traceback (most recent call last):
     TypeError: k() needs keyword-only argument f
+    """
+    a, b, c, d, e, f = b, c, d, e, f, a
 
+def l(*, a, b, c = 88):
+    """
     >>> l(a=1, b=2)
     >>> l(a=1, b=2, c=1)
-
     >>> l(1,2,3)
     Traceback (most recent call last):
     TypeError: l() takes exactly 0 positional arguments (3 given)
     >>> l(1,2, d=1)
     Traceback (most recent call last):
     TypeError: l() takes exactly 0 positional arguments (2 given)
-
-    >>> m(1, b=2)
-    >>> m(a=1, b=2)
-    >>> m(a=1, b=2, c=1)
-
     >>> l(1,2,3)
     Traceback (most recent call last):
     TypeError: l() takes exactly 0 positional arguments (3 given)
     >>> l(1,2, d=1)
     Traceback (most recent call last):
     TypeError: l() takes exactly 0 positional arguments (2 given)
-"""
-
-def b(a, b, c):
-    a, b, c = b, c, a
-
-def c(a, b, c=1):
-    a, b, c = b, c, a
-
-def d(a, b, *, c = 88):
-    a, b, c = b, c, a
-
-def e(a, b, c = 88, **kwds):
-    a, b, c = b, c, a
-
-def f(a, b, *, c, d = 42):
-    a, b, c, d = b, c, d, a
-
-def g(a, b, *, c, d = 42, e = 17, f, **kwds):
-    a, b, c, d, e, f = b, c, d, e, f, a
-
-def h(a, b, *args, c, d = 42, e = 17, f, **kwds):
-    a, b, c, d, e, f = b, c, d, e, f, a
-
-def k(a, b, c=1, *args, d = 42, e = 17, f, **kwds):
-    a, b, c, d, e, f = b, c, d, e, f, a
-
-def l(*, a, b, c = 88):
+    """
     a, b, c = b, c, a
 
 def m(a, *, b, c = 88):
+    """
+    >>> m(1, b=2)
+    >>> m(a=1, b=2)
+    >>> m(a=1, b=2, c=1)
+    """
     a, b, c = b, c, a
 
 def n(a, *, b, c = 88):
index 49a950135e5f2bac98d38c396ca04442c004462e..4b090b2c4b2c55bb69cc4b87bcbb571f697a7db4 100644 (file)
-__doc__ = u"""
+# the calls:
+
+def call0ab(f):
+    """
     >>> call0ab(b)
     Traceback (most recent call last):
     TypeError: b() takes exactly 3 positional arguments (2 given)
-    >>> call0abc(b)
-    1 2 3
-    >>> call3(b)
-    1 2 3
-    >>> call4(b)
-    Traceback (most recent call last):
-    TypeError: b() takes exactly 3 positional arguments (4 given)
-
     >>> call0ab(c)
     1 2 1
-    >>> call0abc(c)
+    >>> call0ab(d)
+    1 2 88
+    """
+    f(a=1,b=2)
+
+def call0abc(f):
+    """
+    >>> call0abc(b)
     1 2 3
-    >>> call2(c)
-    1 2 1
-    >>> call3(c)
+    >>> call0abc(c)
     1 2 3
-    >>> call4(c)
-    Traceback (most recent call last):
-    TypeError: c() takes at most 3 positional arguments (4 given)
-
     >>> call0abc(d)
     1 2 3
-    >>> call0ab(d)
-    1 2 88
+    >>> call0abc(e)
+    1 2 3 []
+    >>> call0abc(f)
+    1 2 3 42
+    >>> call0abc(m)
+    1 2 3
+    """
+    f(a=1,b=2,c=3)
+
+def call2(f):
+    """
+    >>> call2(c)
+    1 2 1
     >>> call2(d)
     1 2 88
-    >>> call2c(d)
-    1 2 1
+    >>> call2(e)
+    1 2 88 []
+    >>> call2(f)
+    Traceback (most recent call last):
+    TypeError: f() needs keyword-only argument c
+    >>> call2(g)
+    Traceback (most recent call last):
+    TypeError: g() needs keyword-only argument c
+    >>> call2(m)
+    Traceback (most recent call last):
+    TypeError: m() needs keyword-only argument c
+    """
+    f(1,2)
 
+def call3(f):
+    """
+    >>> call3(b)
+    1 2 3
+    >>> call3(c)
+    1 2 3
     >>> call3(d)
     Traceback (most recent call last):
     TypeError: d() takes exactly 2 positional arguments (3 given)
-    >>> call2d(d)
-    Traceback (most recent call last):
-    TypeError: d() got an unexpected keyword argument 'd'
-
-    >>> call0abc(e)
-    1 2 3 []
-    >>> call2(e)
-    1 2 88 []
-    >>> call2c(e)
-    1 2 1 []
-    >>> call2d(e)
-    1 2 88 [('d', 1)]
-    >>> call2cde(e)
-    1 2 1 [('d', 2), ('e', 3)]
     >>> call3(e)
     1 2 3 []
-    >>> call4(e)
-    Traceback (most recent call last):
-    TypeError: e() takes at most 3 positional arguments (4 given)
-
-    >>> call0abc(f)
-    1 2 3 42
-    >>> call2c(f)
-    1 2 1 42
-    >>> call2cd(f)
-    1 2 1 2
-
     >>> call3(f)
     Traceback (most recent call last):
     TypeError: f() takes exactly 2 positional arguments (3 given)
-    >>> call2(f)
-    Traceback (most recent call last):
-    TypeError: f() needs keyword-only argument c
-    >>> call2ce(f)
-    Traceback (most recent call last):
-    TypeError: f() got an unexpected keyword argument 'e'
-
-    >>> call2cf(g)
-    1 2 1 42 17 2 []
-    >>> call2cefd(g)
-    1 2 1 11 0 2 []
-    >>> call2cfex(g)
-    1 2 1 42 0 2 [('x', 25)]
-
     >>> call3(g)
     Traceback (most recent call last):
     TypeError: g() takes exactly 2 positional arguments (3 given)
-    >>> call2(g)
-    Traceback (most recent call last):
-    TypeError: g() needs keyword-only argument c
-    >>> call2c(g)
-    Traceback (most recent call last):
-    TypeError: g() needs keyword-only argument f
-
-    >>> call2cf(h)
-    1 2 1 42 17 2 () []
-    >>> call2cfe(h)
-    1 2 1 42 3 2 () []
-    >>> call6cf(h)
-    1 2 1 42 17 2 (3, 4, 5, 6) []
-    >>> call6cfexy(h)
-    1 2 1 42 3 2 (3, 4, 5, 6) [('x', 25), ('y', 11)]
-
     >>> call3(h)
     Traceback (most recent call last):
     TypeError: h() needs keyword-only argument c
-    >>> call3d(h)
-    Traceback (most recent call last):
-    TypeError: h() needs keyword-only argument c
-
-    >>> call2cf(k)
-    1 2 1 42 17 2 () []
-    >>> call2cfe(k)
-    1 2 1 42 3 2 () []
-    >>> call6df(k)
-    1 2 3 1 17 2 (4, 5, 6) []
-    >>> call6dfexy(k)
-    1 2 3 1 3 2 (4, 5, 6) [('x', 25), ('y', 11)]
-
     >>> call3(k)
     Traceback (most recent call last):
     TypeError: k() needs keyword-only argument f
-    >>> call2d(k)
-    Traceback (most recent call last):
-    TypeError: k() needs keyword-only argument f
-
-    >>> call0abc(m)
-    1 2 3
-    >>> call2c(m)
-    1 2 1
-
     >>> call3(m)
     Traceback (most recent call last):
     TypeError: m() takes at most 2 positional arguments (3 given)
-    >>> call2(m)
-    Traceback (most recent call last):
-    TypeError: m() needs keyword-only argument c
-    >>> call2cd(m)
-    Traceback (most recent call last):
-    TypeError: m() got an unexpected keyword argument 'd'
-"""
-
-# the calls:
-
-def call0ab(f):
-    f(a=1,b=2)
-
-def call0abc(f):
-    f(a=1,b=2,c=3)
-
-def call2(f):
-    f(1,2)
-
-def call3(f):
+    """
     f(1,2,3)
 
 def call4(f):
+    """
+    >>> call4(b)
+    Traceback (most recent call last):
+    TypeError: b() takes exactly 3 positional arguments (4 given)
+    >>> call4(c)
+    Traceback (most recent call last):
+    TypeError: c() takes at most 3 positional arguments (4 given)
+    >>> call4(e)
+    Traceback (most recent call last):
+    TypeError: e() takes at most 3 positional arguments (4 given)
+    """
     f(1,2,3,4)
 
 def call2c(f):
+    """
+    >>> call2c(d)
+    1 2 1
+    >>> call2c(e)
+    1 2 1 []
+    >>> call2c(f)
+    1 2 1 42
+    >>> call2c(g)
+    Traceback (most recent call last):
+    TypeError: g() needs keyword-only argument f
+    >>> call2c(m)
+    1 2 1
+    """
     f(1,2, c=1)
 
 def call2d(f):
+    """
+    >>> call2d(d)
+    Traceback (most recent call last):
+    TypeError: d() got an unexpected keyword argument 'd'
+    >>> call2d(e)
+    1 2 88 [('d', 1)]
+    >>> call2d(k)
+    Traceback (most recent call last):
+    TypeError: k() needs keyword-only argument f
+    """
     f(1,2, d=1)
 
 def call3d(f):
+    """
+    >>> call3d(h)
+    Traceback (most recent call last):
+    TypeError: h() needs keyword-only argument c
+    """
     f(1,2,3, d=1)
 
 def call2cd(f):
+    """
+    >>> call2cd(f)
+    1 2 1 2
+    >>> call2cd(m)
+    Traceback (most recent call last):
+    TypeError: m() got an unexpected keyword argument 'd'
+    """
     f(1,2, c=1, d=2)
 
 def call2ce(f):
+    """
+    >>> call2ce(f)
+    Traceback (most recent call last):
+    TypeError: f() got an unexpected keyword argument 'e'
+    """
     f(1,2, c=1, e=2)
 
 def call2cde(f):
+    """
+    >>> call2cde(e)
+    1 2 1 [('d', 2), ('e', 3)]
+    """
     f(1,2, c=1, d=2, e=3)
 
 def call2cf(f):
+    """
+    >>> call2cf(g)
+    1 2 1 42 17 2 []
+    >>> call2cf(h)
+    1 2 1 42 17 2 () []
+    >>> call2cf(k)
+    1 2 1 42 17 2 () []
+    """
     f(1,2, c=1, f=2)
 
 def call6cf(f):
+    """
+    >>> call6cf(h)
+    1 2 1 42 17 2 (3, 4, 5, 6) []
+    """
     f(1,2,3,4,5,6, c=1, f=2)
 
 def call6df(f):
+    """
+    >>> call6df(k)
+    1 2 3 1 17 2 (4, 5, 6) []
+    """
     f(1,2,3,4,5,6, d=1, f=2)
 
 def call2cfe(f):
+    """
+    >>> call2cfe(h)
+    1 2 1 42 3 2 () []
+    >>> call2cfe(k)
+    1 2 1 42 3 2 () []
+    """
     f(1,2, c=1, f=2, e=3)
 
 def call2cefd(f):
+    """
+    >>> call2cefd(g)
+    1 2 1 11 0 2 []
+    """
     f(1,2, c=1, e=0, f=2, d=11)
 
 def call2cfex(f):
+    """
+    >>> call2cfex(g)
+    1 2 1 42 0 2 [('x', 25)]
+    """
     f(1,2, c=1, f=2, e=0, x=25)
 
 def call6argscfexy(f):
@@ -194,9 +207,17 @@ def call6argscfexy(f):
     f(*args, c=1, f=2, e=3, x=25, y=11)
 
 def call6cfexy(f):
+    """
+    >>> call6cfexy(h)
+    1 2 1 42 3 2 (3, 4, 5, 6) [('x', 25), ('y', 11)]
+    """
     f(1,2,3,4,5,6, c=1, f=2, e=3, x=25, y=11)
 
 def call6dfexy(f):
+    """
+    >>> call6dfexy(k)
+    1 2 3 1 3 2 (4, 5, 6) [('x', 25), ('y', 11)]
+    """
     f(1,2,3,4,5,6, d=1, f=2, e=3, x=25, y=11)
 
 # the called functions:
index 8d0f2e563ba0fd240705b665784d3ba9c1e822fb..13d549da2ca0926e5a8b8869a4d13a88ca78b3a9 100644 (file)
@@ -1,21 +1,22 @@
-__doc__ = u"""
->>> add_large_pow() == 2**31 + 2**31
-True
->>> add_large_pow() == 2**32
-True
->>> add_large() == 2147483647 + 2147483647
-True
-
-#>>> add_large_c() == 2147483647 + 2147483647
-#True
-"""
-
 #def add_large_c():
 #    cdef unsigned long long val = 2**30 + 2**30
 #    return val
 
 def add_large():
+    """
+    >>> add_large() == 2147483647 + 2147483647
+    True
+    
+    #>>> add_large_c() == 2147483647 + 2147483647
+    #True
+    """
     return 2147483647 + 2147483647
 
 def add_large_pow():
+    """
+    >>> add_large_pow() == 2**31 + 2**31
+    True
+    >>> add_large_pow() == 2**32
+    True
+    """
     return 2**31 + 2**31
index 0c3ac2cacab86964f8c698fc6f0c70c955070c94..9b1fec2456d30d6d1843c1f9bc09d7332b2da60f 100644 (file)
@@ -1,47 +1,48 @@
-__doc__ = u"""
+def f(obj1, obj2, obj3, obj4, obj5):
+    """
     >>> f(1, 2, 3, 4, 5)
     []
-    >>> g(1, 2, 3, 4, 5)
-    [2]
-    >>> h(1, 2, 3, 4, 5)
-    [2, 3]
-    >>> j(1, 2, 3, 4, 5)
-    [2, 3, 4]
-    >>> k(1, 2, 3, 4, 5)
-    [17, 42, 88]
-    >>> test_list_sort()
-    [1, 2, 3, 4]
-    >>> test_list_reverse()
-    [1, 2, 3, 4]
-    >>> test_list_pop()
-    (2, [1])
-    >>> test_list_pop0()
-    (1, [2])
-    >>> test_list_pop_all()
-    True
-"""
-
-def f(obj1, obj2, obj3, obj4, obj5):
+    """
     obj1 = []
     return obj1
 
 def g(obj1, obj2, obj3, obj4, obj5):
+    """
+    >>> g(1, 2, 3, 4, 5)
+    [2]
+    """
     obj1 = [obj2]
     return obj1
 
 def h(obj1, obj2, obj3, obj4, obj5):
+    """
+    >>> h(1, 2, 3, 4, 5)
+    [2, 3]
+    """
     obj1 = [obj2, obj3]
     return obj1
 
 def j(obj1, obj2, obj3, obj4, obj5):
+    """
+    >>> j(1, 2, 3, 4, 5)
+    [2, 3, 4]
+    """
     obj1 = [obj2, obj3, obj4]
     return obj1
 
 def k(obj1, obj2, obj3, obj4, obj5):
+    """
+    >>> k(1, 2, 3, 4, 5)
+    [17, 42, 88]
+    """
     obj1 = [17, 42, 88]
     return obj1
 
 def test_list_sort():
+    """
+    >>> test_list_sort()
+    [1, 2, 3, 4]
+    """
     cdef list l1
     l1 = [2,3,1,4]
     l1.sort()
@@ -54,24 +55,40 @@ def test_list_sort_reversed():
     return l1
 
 def test_list_reverse():
+    """
+    >>> test_list_reverse()
+    [1, 2, 3, 4]
+    """
     cdef list l1
     l1 = [4,3,2,1]
     l1.reverse()
     return l1
 
 def test_list_pop():
+    """
+    >>> test_list_pop()
+    (2, [1])
+    """
     cdef list l1
     l1 = [1,2]
     two = l1.pop()
     return two, l1
 
 def test_list_pop0():
+    """
+    >>> test_list_pop0()
+    (1, [2])
+    """
     cdef list l1
     l1 = [1,2]
     one = l1.pop(0)
     return one, l1
 
 def test_list_pop_all():
+    """
+    >>> test_list_pop_all()
+    True
+    """
     cdef list l1
     l1 = [1,2]
     try:
index f87eca09f41ea1b3a8265715f099b7a449ea0cc3..1caffa0045ec8bae05f523030ccb7ec22028e0cf 100644 (file)
@@ -1,18 +1,15 @@
-__doc__ = u"""
->>> smoketest()
-[0, 4, 8]
->>> int_runvar()
-[0, 4, 8]
->>> typed()
-[A, A, A]
->>> iterdict()
-[1, 2, 3]
-"""
-
 def smoketest():
+    """
+    >>> smoketest()
+    [0, 4, 8]
+    """
     print [x*2 for x in range(5) if x % 2 == 0]
 
 def int_runvar():
+    """
+    >>> int_runvar()
+    [0, 4, 8]
+    """
     cdef int x
     print [x*2 for x in range(5) if x % 2 == 0]
 
@@ -20,10 +17,18 @@ cdef class A:
     def __repr__(self): return u"A"
 
 def typed():
+    """
+    >>> typed()
+    [A, A, A]
+    """
     cdef A obj
     print [obj for obj in [A(), A(), A()]]
 
 def iterdict():
+    """
+    >>> iterdict()
+    [1, 2, 3]
+    """
     cdef dict d = dict(a=1,b=2,c=3)
     l = [d[key] for key in d]
     l.sort()
index 951c094b35de639a8f9c83f6b550ed7124798cb2..d150a44f7a8a117787a60c01583ffa86a704b4d2 100644 (file)
@@ -1,14 +1,9 @@
-__doc__ = u"""
-    >>> test_ints(100)
-    (100, 100, 100)
+__doc__ = """
     >>> test_chars(b'yo')
     (b'a', b'bc', b'yo')
     >>> test_chars(None)       # doctest: +ELLIPSIS
     Traceback (most recent call last):
     TypeError: expected ...
-    >>> test_struct(-5, -10)
-    -5 -10 True
-    1 2 False
 """
 
 import sys
@@ -17,6 +12,10 @@ if sys.version_info[0] < 3:
     __doc__ = __doc__.replace(u"b'", u"'")
 
 def test_ints(int x):
+    """
+    >>> test_ints(100)
+    (100, 100, 100)
+    """
     cdef list L = [1,2,3,x]
     cdef int* Li = [1,2,3,x]
     cdef int** Lii = [Li, &x]
@@ -35,6 +34,11 @@ cdef print_struct(MyStruct a):
     print a.x, a.y, a.data == NULL
 
 def test_struct(int x, y):
+    """
+    >>> test_struct(-5, -10)
+    -5 -10 True
+    1 2 False
+    """
     cdef MyStruct* aa = [[x,y, NULL], [x+1,y+1,NULL]]
     print_struct(aa[0])
     print_struct([1, 2, <double**>1])
index 8aeb38e5c49a687b5df40f8652ca8da4ff3b9ca1..b0bcd619144154b396bb168a0638c0d19bf635c7 100644 (file)
@@ -1,12 +1,7 @@
-__doc__ = u"""
-    >>> foo()
-    >>> test_float(1./3)
-    True
-    >>> test_complex(1j/3)
-    True
-"""
-
 def foo():
+    """
+    >>> foo()
+    """
     a = 42
     a1 = 0123
     a2 = 0xabc
@@ -55,7 +50,15 @@ with ' and " quotes"""
 
 
 def test_float(x):
+    """
+    >>> test_float(1./3)
+    True
+    """
     return x == 1./3
 
 def test_complex(x):
+    """
+    >>> test_complex(1j/3)
+    True
+    """
     return x == 0.3333333333333333j
index 8bd2b7c38ebab9ad0c1c80943b5506e4f76f0666..6209224a29bf12f5c1a77dae710d1479b977477b 100644 (file)
@@ -2,12 +2,6 @@ __doc__ = u"""
 >>> sorted( get_locals(1,2,3, k=5) .items())
 [('args', (2, 3)), ('kwds', {'k': 5}), ('x', 1), ('y', 'hi'), ('z', 5)]
 
->>> in_locals('z')
-True
->>> in_locals('args')
-True
->>> in_locals('X')
-False
 """
 
 def get_locals(x, *args, **kwds):
@@ -16,6 +10,14 @@ def get_locals(x, *args, **kwds):
     return locals()
 
 def in_locals(x, *args, **kwds):
+    """
+    >>> in_locals('z')
+    True
+    >>> in_locals('args')
+    True
+    >>> in_locals('X')
+    False
+    """
     cdef int z = 5
     y = "hi"
     return x in locals()
index d692311451cbe2f15e91ec84e378b9bb7db2ccff..2c9d7969a201193951344ed7efe5444efe79c625 100644 (file)
@@ -2,8 +2,6 @@ __doc__ = u"""
 >>> sorted( get_locals(1,2,3, k=5) .items())
 [('args', (2, 3)), ('kwds', {'k': 5}), ('x', 1), ('y', 'hi'), ('z', 5)]
 
->>> get_locals_rebound(1,2,3)
-'REBOUND'
 """
 
 def get_locals(x, *args, **kwds):
@@ -12,6 +10,10 @@ def get_locals(x, *args, **kwds):
     return locals()
 
 def get_locals_rebound(x, *args, **kwds):
+    """
+    >>> get_locals_rebound(1,2,3)
+    'REBOUND'
+    """
     cdef int z = 5
     locals = _locals
     y = "hi"
index 17de85e858a50b81892179ee38fc5688a37eac8c..37efeac7d505f84187701ebaab724cb9d8503085 100644 (file)
@@ -1,9 +1,8 @@
-__doc__ = u"""
->>> loops()
-5
-"""
-
 def loops():
+    """
+    >>> loops()
+    5
+    """
     cdef int k
     for i from 0 <= i < 5:
         for j from 0 <= j < 2:
index 76d2869f302bab56253b499fa2df623e19399204..82f6a64778d736d96d74102694949f7a8a4f0748 100644 (file)
@@ -1,4 +1,9 @@
-__doc__ = u"""
+import sys
+if sys.version_info[0] >= 3:
+    __doc__ = __doc__.replace(u" u'", u" '")
+
+def f():
+    """
     >>> f()
     >>> g
     42
@@ -8,13 +13,7 @@ __doc__ = u"""
     u'eggs'
     >>> z
     u'spameggs'
-"""
-
-import sys
-if sys.version_info[0] >= 3:
-    __doc__ = __doc__.replace(u" u'", u" '")
-
-def f():
+    """
     pass
     
 g = 42
index 48f0c21f7282377d01a8e12e5f3649c894504776..915359b7f574a9d992747e2dc112be7c00614ec5 100644 (file)
@@ -1,26 +1,25 @@
-__doc__ = u"""
-    >>> modobj(9,2)
-    1
-    >>> modobj('%d', 5)
-    '5'
-
-    >>> modint(9,2)
-    1
-"""
-
 import sys
 if sys.version_info[0] < 3:
-    __doc__ = __doc__ + u"""
-
+    __doc__ = u"""
     >>> modptr()
     'spameggs'
-"""
+    """
 
 def modobj(obj2, obj3):
+    """
+    >>> modobj(9,2)
+    1
+    >>> modobj('%d', 5)
+    '5'
+    """
     obj1 = obj2 % obj3
     return obj1
 
 def modint(int int2, int int3):
+    """
+    >>> modint(9,2)
+    1
+    """
     cdef int int1
     int1 = int2 % int3
     return int1
@@ -29,6 +28,5 @@ def modptr():
     cdef char *str2, *str3
     str2 = "spam%s"
     str3 = "eggs"
-
     obj1 = str2 % str3 # '%' operator doesn't work on byte strings in Py3
     return obj1
index fb23494d6cad96ad1e796f4aa6a12ab8ae974baf..162c8803a97ae35ae7981f5756ce291720388202 100644 (file)
@@ -1,12 +1,6 @@
-__doc__ = u"""
-    >>> f()
-    (1, 2, 1, 2)
-    >>> g()
-    (1, 1, 2, 2, 3, 3)
+__doc__ = """
     >>> h()
     (1, b'test', 3, 1, b'test', 3)
-    >>> j()
-    (2, 1, 4, 2, 6, 3)
 """
 
 import sys
@@ -14,12 +8,20 @@ if sys.version_info[0] < 3:
     __doc__ = __doc__.replace(u" b'", u" '")
 
 def f():
+    """
+    >>> f()
+    (1, 2, 1, 2)
+    """
     cdef object obj1a, obj2a, obj3a, obj1b, obj2b, obj3b
     obj1b, obj2b, obj3b = 1, 2, 3
     obj1a, obj2a = obj1b, obj2b
     return obj1a, obj2a, obj1b, obj2b
 
 def g():
+    """
+    >>> g()
+    (1, 1, 2, 2, 3, 3)
+    """
     cdef object obj1a, obj2a, obj3a, obj1b, obj2b, obj3b
     obj1b, obj2b, obj3b = 1, 2, 3
     obj1a, [obj2a, obj3a] = [obj1b, (obj2b, obj3b)]
@@ -34,6 +36,10 @@ def h():
     return int1, ptr1, obj1a, int2, ptr2, obj1b
 
 def j():
+    """
+    >>> j()
+    (2, 1, 4, 2, 6, 3)
+    """
     cdef object obj1a, obj2a, obj3a, obj1b, obj2b, obj3b
     obj1b, obj2b, obj3b = 1, 2, 3
     obj1a, obj2a, obj3a = obj1b + 1, obj2b + 2, obj3b + 3
index 9daada222c1c670d43b2b0d8b86123c5c603067e..73a29e7285845f41895ab19f6314415eb0c4484e 100644 (file)
@@ -1,9 +1,3 @@
-__doc__ = u"""
-    >>> test(Exception(u'hi'))
-    Raising: Exception(u'hi',)
-    Caught: Exception(u'hi',)
-"""
-
 import sys
 if sys.version_info[0] >= 3:
     __doc__ = __doc__.replace(u"u'", u"'")
@@ -11,6 +5,11 @@ if sys.version_info[0] >= 3:
 import sys, types
 
 def test(obj):
+    """
+    >>> test(Exception(u'hi'))
+    Raising: Exception(u'hi',)
+    Caught: Exception(u'hi',)
+    """
     print u"Raising: %s%r" % (obj.__class__.__name__, obj.args)
     try:
         raise obj
index 06f93473200d9de374f9e1af52d6e9dc3ad762c1..dc2e2c3f06fcfda1f67c778f790a8cc4a1dcd568 100644 (file)
@@ -1,11 +1,10 @@
-__doc__ = u"""
->>> test(5)
-47
->>> test(11)
-53
-"""
-
 def test(int x):
+    """
+    >>> test(5)
+    47
+    >>> test(11)
+    53
+    """
     with nogil:
         f(x)
         x = g(x)
@@ -20,5 +19,3 @@ cdef int g(int x) nogil:
         cdef int y
         y = x + 42
         return y
-
-        
index e1b3ed763b33a48e9e616e47f54f69584ab0e936..579cf2243e738fdd8b2eeb0880f55bd9fdef9dfb 100644 (file)
@@ -1,47 +1,6 @@
 __doc__ = u"""
 Tests accessing attributes of extension type variables
 set to None
-
->>> obj = MyClass(2, 3)
->>> getattr_(obj)
-2
->>> getattr_(None)
-Traceback (most recent call last):
-   ...
-AttributeError: 'NoneType' object has no attribute 'a'
-
->>> setattr_(obj)
->>> getattr_(obj)
-10
->>> setattr_(None)
-Traceback (most recent call last):
-   ...
-AttributeError: 'NoneType' object has no attribute 'a'
-
-
-
->>> obj = MyClass(2, 3)
->>> checking(obj)
-2
-2
->>> checking(None)
-var is None
-
->>> check_and_assign(obj)
-Traceback (most recent call last):
-   ...
-AttributeError: 'NoneType' object has no attribute 'a'
-
->>> check_buffer_get(None)
-Traceback (most recent call last):
-   ...
-TypeError: 'NoneType' object is unsubscriptable
-
->>> check_buffer_set(None)
-Traceback (most recent call last):
-   ...
-TypeError: 'NoneType' object is unsubscriptable
-
 """
 
 cimport cython
@@ -54,10 +13,30 @@ cdef class MyClass:
 
 @cython.nonecheck(True)
 def getattr_(MyClass var):
+    """
+    >>> obj = MyClass(2, 3)
+    >>> getattr_(obj)
+    2
+    >>> getattr_(None)
+    Traceback (most recent call last):
+    ...
+    AttributeError: 'NoneType' object has no attribute 'a'
+    >>> setattr_(obj)
+    >>> getattr_(obj)
+    10
+    """
     print var.a
 
 @cython.nonecheck(True)
 def setattr_(MyClass var):
+    """
+    >>> obj = MyClass(2, 3)
+    >>> setattr_(obj)
+    >>> setattr_(None)
+    Traceback (most recent call last):
+    ...
+    AttributeError: 'NoneType' object has no attribute 'a'
+    """
     var.a = 10
 
 def some():
@@ -65,6 +44,14 @@ def some():
 
 @cython.nonecheck(True)
 def checking(MyClass var):
+    """
+    >>> obj = MyClass(2, 3)
+    >>> checking(obj)
+    2
+    2
+    >>> checking(None)
+    var is None
+    """
     state = (var is None)
     if not state:
         print var.a
@@ -75,6 +62,13 @@ def checking(MyClass var):
 
 @cython.nonecheck(True)
 def check_and_assign(MyClass var):
+    """
+    >>> obj = MyClass(2, 3)
+    >>> check_and_assign(obj)
+    Traceback (most recent call last):
+    ...
+    AttributeError: 'NoneType' object has no attribute 'a'
+    """
     if var is not None:
         print var.a
         var = None
@@ -82,9 +76,20 @@ def check_and_assign(MyClass var):
 
 @cython.nonecheck(True)
 def check_buffer_get(object[int] buf):
+    """
+    >>> check_buffer_get(None)
+    Traceback (most recent call last):
+    ...
+    TypeError: 'NoneType' object is unsubscriptable
+    """
     return buf[0]
 
 @cython.nonecheck(True)
 def check_buffer_set(object[int] buf):
+    """
+    >>> check_buffer_set(None)
+    Traceback (most recent call last):
+    ...
+    TypeError: 'NoneType' object is unsubscriptable
+    """
     buf[0] = 1
-
index 7a03f4abad064a85c2d7141a9cd84d660178f74d..cdf9a1093b2438cefad4af715195d47a6955214a 100644 (file)
@@ -1,7 +1,3 @@
-__doc__ = u"""
->>> g()
-"""
-
 cdef class Spam:
     pass
 
@@ -9,4 +5,7 @@ cdef f(Spam s):
     pass
 
 def g():
+    """
+    >>> g()
+    """
     f(None)
index 305825359c59f54013b7b54dba52577f19b00af3..2a197c841668ab0a4440f6b7521f800d44c661c7 100644 (file)
@@ -1,89 +1,96 @@
-__doc__ = u"""
+def f(a,b):
+    """
     >>> f(1,[1,2,3])
     False
     >>> f(5,[1,2,3])
     True
     >>> f(2,(1,2,3))
     False
+    """
+    result = a not in b
+    return result
 
+def g(a,b):
+    """
     >>> g(1,[1,2,3])
     0
     >>> g(5,[1,2,3])
     1
     >>> g(2,(1,2,3))
     0
+    """
+    cdef int result
+    result = a not in b
+    return result
 
+def h(b):
+    """
     >>> h([1,2,3,4])
     False
     >>> h([1,3,4])
     True
+    """
+    result = 2 not in b
+    return result
 
+def j(b):
+    """
     >>> j([1,2,3,4])
     0
     >>> j([1,3,4])
     1
+    """
+    cdef int result
+    result = 2 not in b
+    return result
 
+def k(a):
+    """
     >>> k(1)
     0
     >>> k(5)
     1
+    """
+    cdef int result = a not in [1,2,3,4]
+    return result
 
+def m(int a):
+    """
     >>> m(2)
     0
     >>> m(5)
     1
+    """
+    cdef int result = a not in [1,2,3,4]
+    return result
 
+def n(a):
+    """
     >>> n('d *')
     0
     >>> n('xxx')
     1
+    """
+    cdef int result = a.lower() not in [u'a *',u'b *',u'c *',u'd *']
+    return result
 
+def p(a):
+    """
     >>> p('a')
     0
     >>> p(1)
     1
-
-    >>> q(1)
-    Traceback (most recent call last):
-    TypeError: 'NoneType' object is not iterable
-"""
-
-def f(a,b):
-    result = a not in b
-    return result
-
-def g(a,b):
-    cdef int result
-    result = a not in b
-    return result
-
-def h(b):
-    result = 2 not in b
-    return result
-
-def j(b):
-    cdef int result
-    result = 2 not in b
-    return result
-
-def k(a):
-    cdef int result = a not in [1,2,3,4]
-    return result
-
-def m(int a):
-    cdef int result = a not in [1,2,3,4]
-    return result
-
-def n(a):
-    cdef int result = a.lower() not in [u'a *',u'b *',u'c *',u'd *']
-    return result
-
-def p(a):
+    """
     cdef dict d = {u'a': 1, u'b': 2}
     cdef int result = a not in d
     return result
 
 def q(a):
+    """
+    >>> q(1)
+    Traceback (most recent call last):
+    TypeError: 'NoneType' object is not iterable
+    """
     cdef dict d = None
     cdef int result = a not in d # should fail with a TypeError
     return result
index b50ecd400b6d2b6033b39b9a8be16a755abf3b4f..b5243320ddb8c2cd536e20317e0b21fab20c4129 100644 (file)
@@ -1,51 +1,53 @@
-__doc__ = u"""
->>> a,b = 'a *','b *' # use non-interned strings
-
->>> or2_assign(2,3) == (2 or 3)
-True
->>> or2_assign('a', 'b') == ('a' or 'b')
-True
->>> or2_assign(a, b) == (a or b)
-True
-
->>> or2(2,3) == (2 or 3)
-True
->>> or2(0,2) == (0 or 2)
-True
->>> or2('a', 'b') == ('a' or 'b')
-True
->>> or2(a, b) == (a or b)
-True
->>> or2('', 'b') == ('' or 'b')
-True
->>> or2([], [1]) == ([] or [1])
-True
->>> or2([], [a]) == ([] or [a])
-True
-
->>> or3(0,1,2) == (0 or 1 or 2)
-True
->>> or3([],(),[1]) == ([] or () or [1])
-True
-
->>> or2_no_result(2,3)
->>> or2_no_result(0,2)
->>> or2_no_result('a','b')
->>> or2_no_result(a,b)
->>> a or b
-'a *'
-"""
+a,b = 'a *','b *' # use non-interned strings
 
 def or2_assign(a,b):
+    """
+    >>> or2_assign(2,3) == (2 or 3)
+    True
+    >>> or2_assign('a', 'b') == ('a' or 'b')
+    True
+    >>> or2_assign(a, b) == (a or b)
+    True
+    """
     c = a or b
     return c
 
 def or2(a,b):
+    """
+    >>> or2(2,3) == (2 or 3)
+    True
+    >>> or2(0,2) == (0 or 2)
+    True
+    >>> or2('a', 'b') == ('a' or 'b')
+    True
+    >>> or2(a, b) == (a or b)
+    True
+    >>> or2('', 'b') == ('' or 'b')
+    True
+    >>> or2([], [1]) == ([] or [1])
+    True
+    >>> or2([], [a]) == ([] or [a])
+    True
+    """
     return a or b
 
 def or3(a,b,c):
+    """
+    >>> or3(0,1,2) == (0 or 1 or 2)
+    True
+    >>> or3([],(),[1]) == ([] or () or [1])
+    True
+    """
     d = a or b or c
     return d
 
 def or2_no_result(a,b):
+    """
+    >>> or2_no_result(2,3)
+    >>> or2_no_result(0,2)
+    >>> or2_no_result('a','b')
+    >>> or2_no_result(a,b)
+    >>> a or b
+    'a *'
+    """
     a or b
index a66915f3a47bb68d47ad3f1ee19cac03ae6bc4b0..2c6bcc72f03ca643f1316bcc464c4b34ba6276a5 100644 (file)
@@ -13,4 +13,3 @@ ctypedef packed struct MyCTypeDefStruct:
 
 def f():
     return (sizeof(MyCdefStruct), sizeof(MyCTypeDefStruct))
-
index 89070e4ada59fd83ffcc9e972e0841c6e422c619..6268cf73f00e3f4214491c5759efa3e8bc92a5c1 100644 (file)
@@ -1,4 +1,3 @@
-
 cimport cython
 
 @cython.test_assert_path_exists(
index 57faa7688a7b52e30943d572f0a18ef0ae8c9ad5..218ee5ca16333f5714694589810366865fbb8b93 100644 (file)
@@ -1,6 +1,5 @@
-__doc__ = u"""
-    >>> f()
-"""
-
 def f():
+    """
+    >>> f()
+    """
     pass
index 6cef08c8de876e63019cde8170aae945a5bfe7ed..86aa53f8d9cc24f14697c1588a07d3152081b48e 100644 (file)
@@ -1,8 +1,3 @@
-__doc__ = u"""
-    >>> test()
-    1
-"""
-
 cdef class Tri:
     def test(self):
         return 1
@@ -16,6 +11,10 @@ cdef produire_fiches(Tri tri):
     return tri.test()
 
 def test():
+    """
+    >>> test()
+    1
+    """
     cdef Curseur c
     c = Curseur()
     c.tri = Tri()
index cbc291dd77ca27af56f4af2bed242381fdd788fd..bd665ffb682eac455ebdf029def73033fa7b4073 100644 (file)
@@ -1,33 +1,8 @@
-__doc__ = u"""
+def f(obj2, obj3):
+    """
     >>> f(1.0, 2.95)[0] == f(1.0, 2.95)[1]
     True
-
-    >>> g(4)
-    1024
-
-    >>> h(4)
-    625
-
-    >>> constant_py() == 2 ** 10
-    True
-
-    >>> constant_long() == 2 ** 36
-    True
-    
-    >>> small_int_pow(3)
-    (1, 3, 9, 27, 81)
-    >>> small_int_pow(-5)
-    (1, -5, 25, -125, 625)
-    
-    >>> int_pow(7, 2)
-    49
-    >>> int_pow(5, 3)
-    125
-    >>> int_pow(2, 10)
-    1024
-"""
-
-def f(obj2, obj3):
+    """
     cdef float flt1, flt2, flt3
     flt2, flt3 = obj2, obj3
 
@@ -36,21 +11,51 @@ def f(obj2, obj3):
     return flt1, obj1
 
 def g(i):
+    """
+    >>> g(4)
+    1024
+    """
     return i ** 5
 
 def h(i):
+    """
+    >>> h(4)
+    625
+    """
     return 5 ** i
 
 def constant_py():
+    """
+    >>> constant_py() == 2 ** 10
+    True
+    """
     result = (<object>2) ** 10
     return result
 
 def constant_long():
+    """
+    >>> constant_long() == 2 ** 36
+    True
+    """
     result = (<object>2L) ** 36
     return result
 
 def small_int_pow(long s):
+    """
+    >>> small_int_pow(3)
+    (1, 3, 9, 27, 81)
+    >>> small_int_pow(-5)
+    (1, -5, 25, -125, 625)
+    """
     return s**0, s**1, s**2, s**3, s**4
 
 def int_pow(short a, short b):
+    """
+    >>> int_pow(7, 2)
+    49
+    >>> int_pow(5, 3)
+    125
+    >>> int_pow(2, 10)
+    1024
+    """
     return a**b
index 590581b81b597f8762c41c99242431660b3d9658..82ef95cfd301e57107007e462140626fb4e1a26f 100644 (file)
@@ -1,13 +1,12 @@
-__doc__ = u"""
+def f(a, b):
+    """
     >>> f(1, 'test')
     <BLANKLINE>
     1
     1 test
     1 test
     1 test 42 spam
-"""
-
-def f(a, b):
+    """
     print
     print a
     print a,
index 3013dada390b7a8d32006951b6bb3d2b4c0c78df..13e315b1a8d28f0487e0af03d16adfabf8a71d3a 100644 (file)
@@ -1,43 +1,14 @@
-__doc__ = u"""
->>> test_sizeof()
-True
-True
-True
-True
-True
-
->>> test_declare(100)
-(100, 100)
->>> test_declare(100.5)
-(100, 100)
->>> test_declare(None)
-Traceback (most recent call last):
-...
-TypeError: an integer is required
-
->>> test_cast(1.5)
-1
->>> test_cast(None)
-Traceback (most recent call last):
-...
-TypeError: a float is required
-
->>> test_address(39)
-39
-
->>> test_locals(5)
-True
-
->>> test_struct(389, 1.64493)
-(389, 1.64493)
-
->>> test_imports()
-True
-"""
-
 import cython
 
 def test_sizeof():
+    """
+    >>> test_sizeof()
+    True
+    True
+    True
+    True
+    True
+    """
     x = cython.declare(cython.bint)
     print sizeof(x) == sizeof(cython.bint)
     print sizeof(cython.char) <= sizeof(cython.short) <= sizeof(cython.int) <= sizeof(cython.long) <= sizeof(cython.longlong)
@@ -49,6 +20,16 @@ def test_sizeof():
         print sizeof(cython.char) == 1
 
 def test_declare(n):
+    """
+    >>> test_declare(100)
+    (100, 100)
+    >>> test_declare(100.5)
+    (100, 100)
+    >>> test_declare(None)
+    Traceback (most recent call last):
+    ...
+    TypeError: an integer is required
+    """
     x = cython.declare(cython.int)
     y = cython.declare(cython.int, n)
     if cython.compiled:
@@ -59,17 +40,33 @@ def test_declare(n):
     
 @cython.locals(x=cython.double, n=cython.int)
 def test_cast(x):
+    """
+    >>> test_cast(1.5)
+    1
+    >>> test_cast(None)
+    Traceback (most recent call last):
+    ...
+    TypeError: a float is required
+    """
     n = cython.cast(cython.int, x)
     return n
     
 @cython.locals(x=cython.int, y=cython.p_int)
 def test_address(x):
+    """
+    >>> test_address(39)
+    39
+    """
     y = cython.address(x)
     return y[0]
 
 @cython.locals(x=cython.int)
 @cython.locals(y=cython.bint)
 def test_locals(x):
+    """
+    >>> test_locals(5)
+    True
+    """
     y = x
     return y
     
@@ -79,6 +76,10 @@ MyStruct = cython.struct(is_integral=cython.bint, data=MyUnion)
 MyStruct2 = cython.typedef(MyStruct[2])
 
 def test_struct(n, x):
+    """
+    >>> test_struct(389, 1.64493)
+    (389, 1.64493)
+    """
     a = cython.declare(MyStruct2)
     a[0] = MyStruct(True, data=MyUnion(n=n))
     a[1] = MyStruct(is_integral=False, data={'x': x})
@@ -90,6 +91,10 @@ from cython import declare as my_declare, locals as my_locals, p_void as my_void
 
 @my_locals(a=cython.p_void)
 def test_imports():
+    """
+    >>> test_imports()
+    True
+    """
     a = cython.NULL
     b = declare(p_void, cython.NULL)
     c = my_declare(my_void_star, cython.NULL)
index a6916422baa95fc4c12a4d4fcdc2a438a6ed06b8..130ab1ee746d4cc704fcbf8d35ea6f04331c9dc9 100644 (file)
@@ -1,9 +1,7 @@
-__doc__ = u"""
-    >>> f()
-    >>> g()
-"""
-
 def f():
+    """
+    >>> f()
+    """
     cdef int bool, int1, int2
     cdef object obj1, obj2
     int1 = 0
@@ -22,6 +20,9 @@ def f():
     assert bool
 
 def g():
+    """
+    >>> g()
+    """
     cdef int bool
     obj1 = 1
     obj2 = []
@@ -29,4 +30,3 @@ def g():
     assert not bool
     bool = obj1 not in obj2
     assert bool
-    
index cb07fcca7ef605a6fe34492d68db3020b87466a0..f222d1c8a65318640773e21f4db52015c34abeb0 100644 (file)
@@ -1,38 +1,47 @@
-__doc__ = u"""
+def f(obj1, obj2, obj3):
+    """
     >>> f(1,2,3)
     3
-    >>> g(1,2,3)
-    1
-    >>> h(1,2,3)
-    2
-    >>> j(1,2,3)
-    16
-    >>> k(1,2,3)
-    0
-    >>> l(1,2,3)
-    16
-"""
-
-def f(obj1, obj2, obj3):
+    """
     obj1 = obj2 | obj3
     return obj1
 
 def g(obj1, obj2, obj3):
+    """
+    >>> g(1,2,3)
+    1
+    """
     obj1 = obj2 ^ obj3
     return obj1
 
 def h(obj1, obj2, obj3):
+    """
+    >>> h(1,2,3)
+    2
+    """
     obj1 = obj2 & obj3
     return obj1
 
 def j(obj1, obj2, obj3):
+    """
+    >>> j(1,2,3)
+    16
+    """
     obj1 = obj2 << obj3
     return obj1
 
 def k(obj1, obj2, obj3):
+    """
+    >>> k(1,2,3)
+    0
+    """
     obj1 = obj2 >> obj3
     return obj1
 
 def l(obj1, obj2, obj3):
+    """
+    >>> l(1,2,3)
+    16
+    """
     obj1 = obj2 << obj3 | obj2 >> obj3
     return obj1
index 5f7f0028874a0602e4b611271fda3b94999c3146..6e6c6ec7fac0897373900bd6794cb80018d52acc 100644 (file)
@@ -1,11 +1,8 @@
-__doc__ = u"""
+def f():
+    """
     >>> f()
     6
-    >>> g()
-    2
-"""
-
-def f():
+    """
     obj1 = 1
     obj2 = 2
     obj3 = 3
@@ -13,6 +10,10 @@ def f():
     return obj1
 
 def g():
+    """
+    >>> g()
+    2
+    """
     obj1 = 12
     obj2 = 6
     obj3 = 3
index 1a06044dff86dcf02d1d76f710d9837dfca30c7b..88d6145137511e95375879636a970ce4492b6f2e 100644 (file)
@@ -18,4 +18,3 @@ def f():
     p1 = <void*>a
     p2 = <PyObject*>a
     return (<object>p1, <object>p2)
-    
index 4d887703bcc782befb16f2a482a08de316c3204d..4e30cec79456dba77d2be29056255f2e12d1bf34 100644 (file)
@@ -1,17 +1,15 @@
-__doc__ = u"""
-  >>> swallow(name = "Brian")
-  This swallow is called Brian
-  >>> swallow(airspeed = 42)
-  This swallow is flying at 42 furlongs per fortnight
-  >>> swallow(coconuts = 3)
-  This swallow is carrying 3 coconuts
-"""
-
 def swallow(name = None, airspeed = None, coconuts = None):
+    """
+    >>> swallow(name = "Brian")
+    This swallow is called Brian
+    >>> swallow(airspeed = 42)
+    This swallow is flying at 42 furlongs per fortnight
+    >>> swallow(coconuts = 3)
+    This swallow is carrying 3 coconuts
+    """
     if name is not None:
         print u"This swallow is called", name
     if airspeed is not None:
         print u"This swallow is flying at", airspeed, u"furlongs per fortnight"
     if coconuts is not None:
         print u"This swallow is carrying", coconuts, u"coconuts"
-
index 14851684fc1719af55af540bcf98f4be5d70948f..7d372b579d0cf5fe6ab8bcbfe6f9cbe89e69b0ab 100644 (file)
@@ -1,18 +1,19 @@
-__doc__ = u"""
->>> f(100)
-101L
->>> g(3000000000)
-3000000001L
-"""
-
 import sys
 if sys.version_info[0] >= 3:
     __doc__ = __doc__.replace(u"L", u"")
 
 def f(x):
+    """
+    >>> f(100)
+    101L
+    """
     cdef unsigned long long ull
     ull = x
     return ull + 1
 
 def g(unsigned long x):
+    """
+    >>> g(3000000000)
+    3000000001L
+    """
     return x + 1
index e42fa6721df87d233667f998ada3fda7ce97c919..b79699dfbd2753f03d706cbc5c0846cd2ea30dc2 100644 (file)
@@ -15,4 +15,3 @@ cdef class eggs:
 
   def eat(self):
     raise RuntimeError(u"I don't like that")
-
index 3514656da62e8c233a10fba75324befeaf5576ba..f0bdebf0d8b4b1885c8b0eca2ddbb5893316be61 100644 (file)
-__doc__ = u"""
-  >>> go_py()
-  Spam!
-  Spam!
-  Spam!
-  Spam!
-  >>> go_py_ret()
-  2
-
-  >>> go_c()
-  Spam!
-  Spam!
-  Spam!
-  Spam!
-  >>> go_c_int(1,5)
-  Spam!
-  Spam!
-  >>> go_c_enumerate()
-  True
-  True
-  True
-  True
-  >>> go_c_all()
-  Spam!
-  Spam!
-  Spam!
-  >>> go_c_all_exprs(1)
-  Spam!
-  >>> go_c_all_exprs(3)
-  Spam!
-  Spam!
-  >>> go_c_const_exprs()
-  Spam!
-  Spam!
-  >>> go_c_calc(2)
-  Spam!
-  Spam!
-  >>> go_c_ret()
-  2
-  >>> go_c_calc_ret(2)
-  6
-
-  >>> go_list()
-  Spam!
-  Spam!
-  Spam!
-  Spam!
-  >>> go_list_ret()
-  2
-
-  >>> go_tuple()
-  Spam!
-  Spam!
-  Spam!
-  Spam!
-  >>> go_tuple_ret()
-  2
-
-  >>> go_dict()
-  Spam!
-  Spam!
-  Spam!
-  Spam!
-  >>> go_dict_ret()
-  2
-
-  >>> global_result
-  6
-"""
-
 def go_py():
+    """
+    >>> go_py()
+    Spam!
+    Spam!
+    Spam!
+    Spam!
+    """
     for i in range(4):
         print u"Spam!"
 
 def go_py_ret():
+    """
+    >>> go_py_ret()
+    2
+    """
     for i in range(4):
         if i > 1:
             return i
 
 def go_c():
+    """
+    >>> go_c()
+    Spam!
+    Spam!
+    Spam!
+    Spam!
+    """
     cdef int i
     for i in range(4):
         print u"Spam!"
 
 def go_c_enumerate():
+    """
+    >>> go_c_enumerate()
+    True
+    True
+    True
+    True
+    """
     cdef int i,k
     for i,k in enumerate(range(4)):
         print i == k
 
 def go_c_int(int a, int b):
+    """
+    >>> go_c_int(1,5)
+    Spam!
+    Spam!
+    """
     cdef int i
     for i in range(a,b,2):
         print u"Spam!"
 
 def go_c_all():
+    """
+    >>> go_c_all()
+    Spam!
+    Spam!
+    Spam!
+    """
     cdef int i
     for i in range(8,2,-2):
         print u"Spam!"
 
 def go_c_all_exprs(x):
+    """
+    >>> go_c_all_exprs(1)
+    Spam!
+    >>> go_c_all_exprs(3)
+    Spam!
+    Spam!
+    """
     cdef int i
     for i in range(4*x,2*x,-3):
         print u"Spam!"
 
 def go_c_const_exprs():
+    """
+    >>> go_c_const_exprs()
+    Spam!
+    Spam!
+    """
     cdef int i
     for i in range(4*2+1,2*2,-2-1):
         print u"Spam!"
@@ -111,50 +89,98 @@ def f(x):
     return 2*x
 
 def go_c_calc(x):
+    """
+    >>> go_c_calc(2)
+    Spam!
+    Spam!
+    """
     cdef int i
     for i in range(2*f(x),f(x), -2):
         print u"Spam!"
 
 def go_c_calc_ret(x):
+    """
+    >>> go_c_calc_ret(2)
+    6
+    """
     cdef int i
     for i in range(2*f(x),f(x), -2):
         if i < 2*f(x):
             return i
 
 def go_c_ret():
+    """
+    >>> go_c_ret()
+    2
+    """
     cdef int i
     for i in range(4):
         if i > 1:
             return i
 
 def go_list():
+    """
+    >>> go_list()
+    Spam!
+    Spam!
+    Spam!
+    Spam!
+    """
     cdef list l = list(range(4))
     for i in l:
         print u"Spam!"
 
 def go_list_ret():
+    """
+    >>> go_list_ret()
+    2
+    """
     cdef list l = list(range(4))
     for i in l:
         if i > 1:
             return i
  
 def go_tuple():
+    """
+    >>> go_tuple()
+    Spam!
+    Spam!
+    Spam!
+    Spam!
+    """
     cdef tuple t = tuple(range(4))
     for i in t:
         print u"Spam!"
 
 def go_tuple_ret():
+    """
+    >>> go_tuple_ret()
+    2
+    """
     cdef tuple t = tuple(range(4))
     for i in t:
         if i > 1:
             return i
 
 def go_dict():
+    """
+    >>> go_dict()
+    Spam!
+    Spam!
+    Spam!
+    Spam!
+    """
     cdef dict d = dict(zip(range(4), range(4)))
     for i in d:
         print u"Spam!"
 
 def go_dict_ret():
+    """
+    >>> go_dict_ret()
+    2
+    >>> global_result
+    6
+    """
     cdef dict d = dict(zip(range(4), range(4)))
     for i in d:
         if i > 1 and i < 3:
index 2c08f62151d10deefa1ae642dc4cc670353a9a9f..9f67be30ba65b48b00fcfebf1a3b8ac5e3d0a434 100644 (file)
@@ -1,9 +1,8 @@
-__doc__ = u"""
+def blowup(p):
+    """
     >>> blowup([2, 3, 5])
     1
-"""
-
-def blowup(p):
+    """
     cdef int n, i
     n = 10
     i = 1
index e0596a14733b0f0a9eee918384447337ea12e970..86c21228d1ed7cd2c7bc0b739c85f5be0773b6f2 100644 (file)
@@ -1,9 +1,8 @@
-__doc__ = u"""
+def boolExpressionsFail():
+    """
     >>> boolExpressionsFail()
     'Not 2b'
-"""
-
-def boolExpressionsFail():
+    """
     dict = {1: 1}
     if not "2b" in dict:
         return "Not 2b"
index 16a93b068d5f7033aa101e243cd8e18f9a8112b0..558513c2e8eca7dd39c9a74f3671d91d4cc1fc42 100644 (file)
@@ -1,9 +1,8 @@
-__doc__ = u"""
+def primes(int kmax):
+    """
     >>> primes(20)
     [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71]
-"""
-
-def primes(int kmax):
+    """
     cdef int n, k, i
     cdef int p[1000]
     result = []
index ea716dff15b5eabd1b6651ed835099f2089f7379..38b87ced0d6fdc8537a2862c5117e08aea873580 100644 (file)
@@ -1,8 +1,6 @@
-__doc__ = u"""
-  >>> frighten()
-  NOBODY expects the Spanish Inquisition!
-"""
-
 def frighten():
+    """
+    >>> frighten()
+    NOBODY expects the Spanish Inquisition!
+    """
     print u"NOBODY", u"expects", u"the Spanish Inquisition!"
-
index 683422459ed9e60d99e26c71b8548ba86c1f0d6d..18d3422271fe2a3020d7daf8ea656eca3d5630ba 100644 (file)
@@ -1,8 +1,3 @@
-__doc__ = u"""
-    >>> order()
-    42 tons of spam!
-"""
-
 class Spam:
 
     def __init__(self, w):
@@ -12,5 +7,9 @@ class Spam:
         print self.weight, u"tons of spam!"
 
 def order():
+    """
+    >>> order()
+    42 tons of spam!
+    """
     s = Spam(42)
     s.serve()
index dbd47ee1ee70e1c0fa0ff499c99349288dad0186..d307aa67fa72fa3a010fd0acf7b02fe221eb0984 100644 (file)
@@ -1,13 +1,11 @@
-__doc__ = u"""
-    >>> eggs()
-    Args: 1 2 3
-    Args: buckle my shoe
-"""
-
 def spam(a, b, c):
     print u"Args:", a, b, c
 
 def eggs():
+    """
+    >>> eggs()
+    Args: 1 2 3
+    Args: buckle my shoe
+    """
     spam(*(1,2,3))
     spam(*[u"buckle",u"my",u"shoe"])
-
index 03f08c595d5d72236fe7d0105ae3370c769f97a6..10cfcf2f08fccb3b6ebabd3965fee59cb3b2b719 100644 (file)
@@ -1,38 +1,32 @@
-__doc__ = u"""
+def swallow(name, airspeed, *args, **kwds):
+    """
     >>> swallow("Brian", 42)
     Name: Brian
     Airspeed: 42
     Extra args: ()
     Extra keywords: {}
-
     >>> swallow("Brian", 42, "African")
     Name: Brian
     Airspeed: 42
     Extra args: ('African',)
     Extra keywords: {}
-
     >>> swallow("Brian", airspeed = 42)
     Name: Brian
     Airspeed: 42
     Extra args: ()
     Extra keywords: {}
-
     >>> swallow("Brian", airspeed = 42, species = "African", coconuts = 3)
     Name: Brian
     Airspeed: 42
     Extra args: ()
     Extra keywords: {'coconuts': 3, 'species': 'African'}
-
     >>> swallow("Brian", 42, "African", coconuts = 3)
     Name: Brian
     Airspeed: 42
     Extra args: ('African',)
     Extra keywords: {'coconuts': 3}
-"""
-
-def swallow(name, airspeed, *args, **kwds):
+    """
     print u"Name:", name
     print u"Airspeed:", airspeed
     print u"Extra args:", args
     print u"Extra keywords:", kwds
-
index a0fa25df06cd5cb0de1af263ef9bebc729de3615..08dc798adef4a547bb456ed4dd3c9ec75308c932 100644 (file)
@@ -1,12 +1,10 @@
-__doc__ = u"""
+def spam(*args):
+    """
     >>> spam()
     Args: ()
     >>> spam(42)
     Args: (42,)
     >>> spam("one", 2, "buckle my shoe")
     Args: ('one', 2, 'buckle my shoe')
-"""
-
-def spam(*args):
+    """
     print u"Args:", args
-
index a4a6b59881654100d6ee57087ade9ebe703d6779..a93b17115c79a724395dac6d3598560a556f2cfa 100644 (file)
@@ -1,8 +1,3 @@
-__doc__ = u"""
->>> call_method( ExtType() ).method()
-1
-"""
-
 cdef class ExtType:
     cdef c_method(self):
         return self
@@ -11,4 +6,8 @@ cdef class ExtType:
         return 1
 
 def call_method(ExtType et):
+    """
+    >>> call_method( ExtType() ).method()
+    1
+    """
     return <ExtType>et.c_method()
index 1a14c2685b808f8f4446441faf1c94faae0b02c9..f974475743e52415ac5db3913d2f107e0e6d8b65 100644 (file)
@@ -1,4 +1,3 @@
-
 import sys
 if sys.version_info[0] < 3:
     __doc__ = u"""
index 38ec0e2b89ef475960f53f5ecf61ff9527b6753d..690dd1ddc7c38e8f9edd23348410ae91aa16f2e4 100644 (file)
@@ -1,83 +1,33 @@
-__doc__ = u"""
->>> for_from_range(5, 10)
-range(5)
-at 0
-at 1
-at 2
-at 3
-at 4
-range(5, 10)
-at 5
-at 6
-at 7
-at 8
-at 9
-range(5, 10, 2)
-at 5
-at 7
-at 9
-9
->>> for_from_range(-5, -10)
-range(-5)
-range(-5, -10)
-range(-5, -10, 2)
-100
->>> for_from_bound_reassignment(5, 1)
-at 0
-at 1
-at 2
-at 3
-at 4
-5
->>> for_from_step_reassignment(15, 5, 2)
-at 0
-at 5
-at 10
-15
->>> for_from_target_reassignment(10, 2)
-at 0
-at 1
-at 3
-at 7
-15
->>> for_from_py_target_reassignment(10, 2)
-at 0
-at 1
-at 3
-at 7
-15
->>> for_from_py_global_target_reassignment(10, 2)
-at 0
-at 1
-at 3
-at 7
-15
->>> for_in_target_reassignment(10, 2)
-at 0
-at 1
-at 2
-at 3
-at 4
-at 5
-at 6
-at 7
-at 8
-at 9
-18
->>> test_func(5)
-get_bound(5)
-at 0
-at 1
-at 2
-at 3
-at 4
-5
-"""
 cdef int get_bound(int m):
     print u"get_bound(%s)"%m
     return m
 
 def for_from_range(a, b):
+    """
+    >>> for_from_range(5, 10)
+    range(5)
+    at 0
+    at 1
+    at 2
+    at 3
+    at 4
+    range(5, 10)
+    at 5
+    at 6
+    at 7
+    at 8
+    at 9
+    range(5, 10, 2)
+    at 5
+    at 7
+    at 9
+    9
+    >>> for_from_range(-5, -10)
+    range(-5)
+    range(-5, -10)
+    range(-5, -10, 2)
+    100
+    """
     cdef int i = 100
     print u"range(%s)" % a
     for i in range(a):
@@ -91,6 +41,15 @@ def for_from_range(a, b):
     return i
 
 def for_from_bound_reassignment(int bound, int fake_bound):
+    """
+    >>> for_from_bound_reassignment(5, 1)
+    at 0
+    at 1
+    at 2
+    at 3
+    at 4
+    5
+    """
     cdef int i = 100
     for i from 0 <= i < bound:
         print u"at", i
@@ -98,6 +57,13 @@ def for_from_bound_reassignment(int bound, int fake_bound):
     return i
 
 def for_from_step_reassignment(int bound, int step, int fake_step):
+    """
+    >>> for_from_step_reassignment(15, 5, 2)
+    at 0
+    at 5
+    at 10
+    15
+    """
     cdef int i = 100
     for i from 0 <= i < bound by step:
         print u"at", i
@@ -105,6 +71,14 @@ def for_from_step_reassignment(int bound, int step, int fake_step):
     return i
 
 def for_from_target_reassignment(int bound, int factor):
+    """
+    >>> for_from_target_reassignment(10, 2)
+    at 0
+    at 1
+    at 3
+    at 7
+    15
+    """
     cdef int i = 100
     for i from 0 <= i < bound:
         print u"at", i
@@ -112,6 +86,14 @@ def for_from_target_reassignment(int bound, int factor):
     return i
 
 def for_from_py_target_reassignment(int bound, int factor):
+    """
+    >>> for_from_py_target_reassignment(10, 2)
+    at 0
+    at 1
+    at 3
+    at 7
+    15
+    """
     cdef object i
     for i from 0 <= i < bound:
         print u"at", i
@@ -119,6 +101,14 @@ def for_from_py_target_reassignment(int bound, int factor):
     return i
 
 def for_from_py_global_target_reassignment(int bound, int factor):
+    """
+    >>> for_from_py_global_target_reassignment(10, 2)
+    at 0
+    at 1
+    at 3
+    at 7
+    15
+    """
     global g_var
     for g_var from 0 <= g_var < bound:
         print u"at", g_var
@@ -126,6 +116,20 @@ def for_from_py_global_target_reassignment(int bound, int factor):
     return g_var
 
 def for_in_target_reassignment(int bound, int factor):
+    """
+    >>> for_in_target_reassignment(10, 2)
+    at 0
+    at 1
+    at 2
+    at 3
+    at 4
+    at 5
+    at 6
+    at 7
+    at 8
+    at 9
+    18
+    """
     cdef int i = 100
     for i in range(bound):
         print u"at", i
@@ -133,6 +137,16 @@ def for_in_target_reassignment(int bound, int factor):
     return i
 
 def test_func(int n):
+    """
+    >>> test_func(5)
+    get_bound(5)
+    at 0
+    at 1
+    at 2
+    at 3
+    at 4
+    5
+    """
     cdef int i = 100
     for i from 0 <= i < get_bound(n):
         print u"at", i
index 9b108ba9e1ed5e346d8886a5195e78dab1d98754..340b63b8ab92cba1a4fe3f5e552fe3774100a237 100644 (file)
@@ -1,9 +1,8 @@
-__doc__ = u"""
+def f():
+    """
     >>> f()
     42
-"""
-
-def f():
+    """
     a = 42
     b = a
     return b
index 1016c7208fcd181466c524a852dd418eea306d21..513db711e6bd60168dee5acf3d6d5c63ebd1e3a3 100644 (file)
@@ -1,11 +1,7 @@
-__doc__ = u"""
-    >>> f('test')
-    >>> test_g()
-    >>> test_h(5)
-    5
-"""
-
 def f(a):
+    """
+    >>> f('test')
+    """
     return
     return a
     return 42
@@ -19,7 +15,14 @@ cdef int h(a):
     return i
 
 def test_g():
+    """
+    >>> test_g()
+    """
     g()
 
 def test_h(i):
+    """
+    >>> test_h(5)
+    5
+    """
     return h(i)
index 8d4fffd3affe5f10a321031b7fdaa80df04c31de..5bfa1c81fa2f588764919dfc97ffc07ea0cf7286 100644 (file)
@@ -1,8 +1,7 @@
-__doc__ = u"""
->>> test()
-5
-"""
-
 def test():
+    """
+    >>> test()
+    5
+    """
     a = b = c = 5
     return a
index 497df8b02f1959d32581d94018c2290539fb81a5..6d0957e2a3a8c0609b47c14eb7284ae04d72c381 100644 (file)
@@ -1,16 +1,5 @@
-__doc__ = u"""
+__doc__ = """
     >>> z(1,9.2, b'test')
-    >>> failtype()
-    Traceback (most recent call last):
-    TypeError: an integer is required
-
-    >>> fail0(1,2)
-    Traceback (most recent call last):
-    TypeError: f() takes exactly 2 positional arguments (0 given)
-
-    >>> fail1(1,2)
-    Traceback (most recent call last):
-    TypeError: f() takes exactly 2 positional arguments (1 given)
 """
 
 import sys
@@ -33,10 +22,25 @@ def z(a, b, c):
     g(a, b, c)
     
 def fail0(a, b):
+    """
+    >>> fail0(1,2)
+    Traceback (most recent call last):
+    TypeError: f() takes exactly 2 positional arguments (0 given)
+    """
     f()
     
 def fail1(a, b):
+    """
+    >>> fail1(1,2)
+    Traceback (most recent call last):
+    TypeError: f() takes exactly 2 positional arguments (1 given)
+    """
     f(a)
 
 def failtype():
+    """
+    >>> failtype()
+    Traceback (most recent call last):
+    TypeError: an integer is required
+    """
     h(42, "eggs")
index 3360273f8f5e4a54aa47729172c980909d27eec6..4120bb6ab7eca7a551fc3a46d7af5611960eabc9 100644 (file)
@@ -1,11 +1,10 @@
-__doc__ = u"""
-    >>> f()
-"""
-
 cdef struct Spam:
     char *grail
 
 def f():
+    """
+    >>> f()
+    """
     cdef int i, j, k
     cdef char *p
     i = sizeof(p)
index c4926442aec35be3f6a9769ca5b052c97df276c8..29e3f9994a891732b077d975f9b6cb2695745adf 100644 (file)
@@ -1,39 +1,37 @@
-__doc__ = u"""
+def f(obj1, obj2, obj3, obj4):
+    """
     >>> l = [1,2,3,4]
-
     >>> f(1, l, 2, 3)
     [1, 2, 3, 4]
     >>> l == f(1, l, 2, 3)
     True
     >>> l is f(1, l, 2, 3)
     False
-
-    >>> g(1, [1,2,3,4], 2, 3)
-    [3, 4]
-
-    >>> h(1, [1,2,3,4], 2, 3)
-    [1, 2, 3]
-
-    >>> j(1, [1,2,3,4], 2, 3)
-    [3]
-
-    >>> slice_of_temporary_smoketest()
-    [3, 2]
-"""
-
-def f(obj1, obj2, obj3, obj4):
+    """
     obj1 = obj2[:]
     return obj1
 
 def g(obj1, obj2, obj3, obj4):
+    """
+    >>> g(1, [1,2,3,4], 2, 3)
+    [3, 4]
+    """
     obj1 = obj2[obj3:]
     return obj1
 
 def h(obj1, obj2, obj3, obj4):
+    """
+    >>> h(1, [1,2,3,4], 2, 3)
+    [1, 2, 3]
+    """
     obj1 = obj2[:obj4]
     return obj1
 
 def j(obj1, obj2, obj3, obj4):
+    """
+    >>> j(1, [1,2,3,4], 2, 3)
+    [3]
+    """
     obj1 = obj2[obj3:obj4]
     return obj1
 
@@ -41,6 +39,10 @@ class A(object):
     pass
 
 def slice_of_temporary_smoketest():
+    """
+    >>> slice_of_temporary_smoketest()
+    [3, 2]
+    """
     x = A()
     x.a = [1, 2]
     x.a[:] = [3,2]
index af96fa2ae4c8b3fd6acc96c088170a70c4874cfd..993d1478446844f255eb63cba2586aeec1c9b3c6 100644 (file)
@@ -1,56 +1,3 @@
-__doc__ = u"""
-    >>> f()
-    12.5
-
-    >>> nan1()
-    nan
-    >>> nan2()
-    nan
-    >>> nan3()
-    nan
-    >>> float_nan
-    nan
-
-    >>> infp1()
-    inf
-    >>> infp1() == float('inf')
-    True
-    >>> infp2()
-    inf
-    >>> infp2() == float('inf')
-    True
-    >>> infp3()
-    inf
-    >>> infp3() == float('inf')
-    True
-    >>> float_infp
-    inf
-    >>> float_infp == float('inf')
-    True
-
-    >>> infn1()
-    -inf
-    >>> infn1() == float('-inf')
-    True
-    >>> infn2()
-    -inf
-    >>> infn2() == float('-inf')
-    True
-    >>> infn3()
-    -inf
-    >>> infn3() == float('-inf')
-    True
-    >>> float_infn
-    -inf
-    >>> float_infn == float('-inf')
-    True
-
-    >>> global_floats()[1:] == (float('+inf'), float('-inf'))
-    True
-    >>> global_floats()[0]
-    nan
-"""
-
 DEF FLOAT = 12.5
 DEF FLOAT_NAN = float('nan')
 DEF FLOAT_INFP = float('+inf')
@@ -65,54 +12,122 @@ float_infp = FLOAT_INFP
 float_infn = FLOAT_INFN
 
 def f():
+    """
+    >>> f()
+    12.5
+    """
     cdef float f
     f = FLOAT
     return f
 
 def nan1():
+    """
+    >>> nan1()
+    nan
+    """
     cdef double f
     f = FLOAT_NAN
     return f
 
 def nan2():
+    """
+    >>> nan2()
+    nan
+    """
     cdef double f
     f = float('nan')
     return f
 
 def nan3():
+    """
+    >>> nan3()
+    nan
+    >>> float_nan
+    nan
+    """
     cdef float f
     f = FLOAT_NAN
     return f
 
 def infp1():
+    """
+    >>> infp1()
+    inf
+    >>> infp1() == float('inf')
+    True
+    """
     cdef double f
     f = FLOAT_INFP
     return f
 
 def infp2():
+    """
+    >>> infp2()
+    inf
+    >>> infp2() == float('inf')
+    True
+    """
     cdef double f
     f = float('+inf')
     return f
 
 def infp3():
+    """
+    >>> infp3()
+    inf
+    >>> infp3() == float('inf')
+    True
+    >>> float_infp
+    inf
+    >>> float_infp == float('inf')
+    True
+    """
     cdef float f
     f = FLOAT_INFP
     return f
 
 def infn1():
+    """
+    >>> infn1()
+    -inf
+    >>> infn1() == float('-inf')
+    True
+    """
     cdef double f
     f = FLOAT_INFN
     return f
 
 def infn2():
+    """
+    >>> infn2()
+    -inf
+    >>> infn2() == float('-inf')
+    True
+    """
     cdef double f
     f = float('-inf')
     return f
 
 def infn3():
+    """
+    >>> infn3()
+    -inf
+    >>> infn3() == float('-inf')
+    True
+    >>> float_infn
+    -inf
+    >>> float_infn == float('-inf')
+    True
+    """
     cdef float f
     f = FLOAT_INFN
     return f
 
 def global_floats():
+    """
+    >>> global_floats()[1:] == (float('+inf'), float('-inf'))
+    True
+    >>> global_floats()[0]
+    nan
+    """
     return (cdef_float_nan, cdef_float_infp, cdef_float_infn)
index c4908cc7f58758b1aa00e9b95aec3395772f9b9c..5e17faa4733f90b025ea2f19eaf3acceaeb31c4d 100644 (file)
@@ -1,4 +1,10 @@
-__doc__ = u"""
+cdef sorteditems(d):
+    l = list(d.items())
+    l.sort()
+    return tuple(l)
+
+def spam(x, y, z):
+    """
     >>> spam(1,2,3)
     (1, 2, 3)
     >>> spam(1,2)
@@ -10,7 +16,11 @@ __doc__ = u"""
     >>> spam(1,2,3, a=1)
     Traceback (most recent call last):
     TypeError: spam() got an unexpected keyword argument 'a'
+    """
+    return (x, y, z)
 
+def grail(x, y, z, *a):
+    """
     >>> grail(1,2,3)
     (1, 2, 3, ())
     >>> grail(1,2,3,4)
@@ -23,7 +33,11 @@ __doc__ = u"""
     >>> grail(1,2,3, a=1)
     Traceback (most recent call last):
     TypeError: grail() got an unexpected keyword argument 'a'
+    """
+    return (x, y, z, a)
 
+def swallow(x, y, z, **k):
+    """
     >>> swallow(1,2,3)
     (1, 2, 3, ())
     >>> swallow(1,2,3,4)
@@ -34,7 +48,11 @@ __doc__ = u"""
     >>> swallow(1,2,3, x=1)
     Traceback (most recent call last):
     TypeError: swallow() got multiple values for keyword argument 'x'
+    """
+    return (x, y, z, sorteditems(k))
 
+def creosote(x, y, z, *a, **k):
+    """
     >>> creosote(1,2,3)
     (1, 2, 3, (), ())
     >>> creosote(1,2,3,4)
@@ -46,7 +64,11 @@ __doc__ = u"""
     >>> creosote(1,2,3,4, x=1)
     Traceback (most recent call last):
     TypeError: creosote() got multiple values for keyword argument 'x'
+    """
+    return (x, y, z, a, sorteditems(k))
 
+def onlyt(*a):
+    """
     >>> onlyt(1)
     (1,)
     >>> onlyt(1,2)
@@ -57,7 +79,11 @@ __doc__ = u"""
     >>> onlyt(1, a=2)
     Traceback (most recent call last):
     TypeError: onlyt() got an unexpected keyword argument 'a'
+    """
+    return a
 
+def onlyk(**k):
+    """
     >>> onlyk(a=1)
     (('a', 1),)
     >>> onlyk(a=1, b=2)
@@ -71,7 +97,11 @@ __doc__ = u"""
     >>> onlyk(1, a=1, b=2)
     Traceback (most recent call last):
     TypeError: onlyk() takes exactly 0 positional arguments (1 given)
+    """
+    return sorteditems(k)
 
+def tk(*a, **k):
+    """
     >>> tk(a=1)
     (('a', 1),)
     >>> tk(a=1, b=2)
@@ -82,30 +112,5 @@ __doc__ = u"""
     (1, 2)
     >>> tk(1, a=1, b=2)
     (1, ('a', 1), ('b', 2))
-"""
-
-cdef sorteditems(d):
-    l = list(d.items())
-    l.sort()
-    return tuple(l)
-
-def spam(x, y, z):
-    return (x, y, z)
-
-def grail(x, y, z, *a):
-    return (x, y, z, a)
-
-def swallow(x, y, z, **k):
-    return (x, y, z, sorteditems(k))
-
-def creosote(x, y, z, *a, **k):
-    return (x, y, z, a, sorteditems(k))
-
-def onlyt(*a):
-    return a
-
-def onlyk(**k):
-    return sorteditems(k)
-
-def tk(*a, **k):
+    """
     return a + sorteditems(k)
index 298d3ba3adf82dbc50e0012a8fe0bf6904fe164f..ff796e90cefb3bccdd95eb7f4fa3a6d1d0a38528 100644 (file)
@@ -1,43 +1,15 @@
-__doc__ = u"""
->>> test_eq()
-True
-True
-True
-True
-
->>> test_cascaded_eq()
-True
-True
-True
-True
-True
-True
-True
-True
-
->>> test_cascaded_ineq()
-True
-True
-True
-True
-True
-True
-True
-True
-
->>> test_long_ineq()
-True
-
->>> test_long_ineq_py()
-True
-True
-"""
-
 cdef int   i = 'x'
 cdef char  c = 'x'
 cdef char* s = 'x'
 
 def test_eq():
+    """
+    >>> test_eq()
+    True
+    True
+    True
+    True
+    """
     print i ==  'x'
     print i == c'x'
     print c ==  'x'
@@ -46,6 +18,17 @@ def test_eq():
 #    print s == c'x' # error
 
 def test_cascaded_eq():
+    """
+    >>> test_cascaded_eq()
+    True
+    True
+    True
+    True
+    True
+    True
+    True
+    True
+    """
     print  'x' == i ==  'x'
     print  'x' == i == c'x'
     print c'x' == i ==  'x'
@@ -57,6 +40,17 @@ def test_cascaded_eq():
     print c'x' == c == c'x'
 
 def test_cascaded_ineq():
+    """
+    >>> test_cascaded_ineq()
+    True
+    True
+    True
+    True
+    True
+    True
+    True
+    True
+    """
     print  'a' <= i <=  'z'
     print  'a' <= i <= c'z'
     print c'a' <= i <=  'z'
@@ -68,8 +62,17 @@ def test_cascaded_ineq():
     print c'a' <= c <= c'z'
 
 def test_long_ineq():
+    """
+    >>> test_long_ineq()
+    True
+    """
     print 'a' < 'b' < 'c' < 'd' < c < 'y' < 'z'
 
 def test_long_ineq_py():
+    """
+    >>> test_long_ineq_py()
+    True
+    True
+    """
     print 'abcdef' < 'b' < 'c' < 'd' < 'y' < 'z'
     print 'a' < 'b' < 'cde' < 'd' < 'y' < 'z'
index e07fae4f24a2f5c07360f57b9d28e991b9d24648..ea8f3cef2f246c47a3d92c651994947449bf4ffd 100644 (file)
@@ -6,4 +6,3 @@ __doc__ = u"""
 
 class C:
     x = "foo"
-
index 757cfcdc61690f358682575b423a88920b28acf7..47c6366ff2f25bbff654295aec14018af3399a08 100644 (file)
@@ -3,29 +3,35 @@ __doc__ = u"""
    'test'
    >>> z
    'test'
-   >>> c('testing')
-   'testing'
-   >>> sub('testing a subtype')
-   'testing a subtype'
-   >>> subs('testing a subtype')
-   'testing a subtype'
-
-#   >>> csub('testing a subtype')
-#   'testing a subtype'
-#   >>> csubs('testing a subtype')
-#   'testing a subtype'
 """
 
 s = str
 z = str('test')
 
 def c(string):
+    """
+    >>> c('testing')
+    'testing'
+    """
     return str(string)
 
 class subs(str):
+    """
+    >>> subs('testing a subtype')
+    'testing a subtype'
+    
+    #   >>> csub('testing a subtype')
+    #   'testing a subtype'
+    #   >>> csubs('testing a subtype')
+    #   'testing a subtype'
+    """
     pass
 
 def sub(string):
+    """
+    >>> sub('testing a subtype')
+    'testing a subtype'
+    """
     return subs(string)
 
 #cdef class subs(str):
index 2234b0e46615c1cf26c2af9fd67ac43a302fbaad..aa8100d120a2fa5779a284e7aff59e814642f119 100644 (file)
@@ -1,45 +1,41 @@
-__doc__ = u"""
+cdef struct Point:
+    double x
+    double y
+    int color
+
+def test_constructor(x, y, color):
+    """
     >>> test_constructor(1,2,255)
     {'y': 2.0, 'x': 1.0, 'color': 255}
     >>> test_constructor(1,None,255)
     Traceback (most recent call last):
     ...
     TypeError: a float is required
-
+    """
+    cdef Point p = Point(x, y, color)
+    return p
+    
+def test_constructor_kwds(x, y, color):
+    """
     >>> test_constructor_kwds(1.25, 2.5, 128)
     {'y': 2.5, 'x': 1.25, 'color': 128}
     >>> test_constructor_kwds(1.25, 2.5, None)
     Traceback (most recent call last):
     ...
     TypeError: an integer is required
-
+    """
+    cdef Point p = Point(x=x, y=y, color=color)
+    return p
+    
+def test_dict_construction(x, y, color):
+    """
     >>> test_dict_construction(4, 5, 64)
     {'y': 5.0, 'x': 4.0, 'color': 64}
     >>> test_dict_construction("foo", 5, 64)
     Traceback (most recent call last):
     ...
     TypeError: a float is required
-
-    >>> test_pointers(100, 2.71828)
-    100
-    2.71828
-    True
-"""
-
-cdef struct Point:
-    double x
-    double y
-    int color
-
-def test_constructor(x, y, color):
-    cdef Point p = Point(x, y, color)
-    return p
-    
-def test_constructor_kwds(x, y, color):
-    cdef Point p = Point(x=x, y=y, color=color)
-    return p
-    
-def test_dict_construction(x, y, color):
+    """
     cdef Point p = {'color': color, 'x': x, 'y': y}
     return p
 
@@ -53,6 +49,12 @@ cdef struct with_pointers:
     void* ptr
     
 def test_pointers(int n, double x):
+    """
+    >>> test_pointers(100, 2.71828)
+    100
+    2.71828
+    True
+    """
     cdef with_pointers a = [True, {'n': n}, NULL]
     cdef with_pointers b = with_pointers(False, {'x': x}, NULL)
     print a.data.n
index ece74280afaf33528db0af84e2ae94d86ca543b3..51a5eb4419f5411208cd9b44a62e2a978606e646 100644 (file)
@@ -1,37 +1,3 @@
-__doc__ = u"""
->>> zoo = Zoo()
->>> for cl in (Zoo, Bam, Bar, Foo, Base, Base0): assert isinstance(zoo, cl)
->>> fooit(zoo)
-42
-
->>> bam = Bam()
->>> for cl in (Bam, Bar, Foo, Base, Base0): assert isinstance(bam, cl)
->>> fooit(bam)
-42
-
->>> bar = Bar()
->>> for cl in (Bar, Foo, Base, Base0): assert isinstance(bar, cl)
->>> fooit(bar)
-42
-
->>> foo = Foo()
->>> for cl in (Foo, Base, Base0): assert isinstance(foo, cl)
->>> fooit(foo)
-42
-
->>> base = Base()
->>> for cl in (Base, Base0): assert isinstance(base, cl)
->>> fooit(base)
-Traceback (most recent call last):
-TypeError: Argument 'foo' has incorrect type (expected subclasses.Foo, got subclasses.Base)
-
->>> base0 = Base0()
->>> for cl in (Base0,): assert isinstance(base0, cl)
->>> fooit(base0)
-Traceback (most recent call last):
-TypeError: Argument 'foo' has incorrect type (expected subclasses.Foo, got subclasses.Base0)
-"""
-
 cdef class Base0:
     pass
 
@@ -53,4 +19,32 @@ cdef class Zoo(Bam):
 
 
 def fooit(Foo foo):
+    """
+    >>> zoo = Zoo()
+    >>> for cl in (Zoo, Bam, Bar, Foo, Base, Base0): assert isinstance(zoo, cl)
+    >>> fooit(zoo)
+    42
+    >>> bam = Bam()
+    >>> for cl in (Bam, Bar, Foo, Base, Base0): assert isinstance(bam, cl)
+    >>> fooit(bam)
+    42
+    >>> bar = Bar()
+    >>> for cl in (Bar, Foo, Base, Base0): assert isinstance(bar, cl)
+    >>> fooit(bar)
+    42
+    >>> foo = Foo()
+    >>> for cl in (Foo, Base, Base0): assert isinstance(foo, cl)
+    >>> fooit(foo)
+    42
+    >>> base = Base()
+    >>> for cl in (Base, Base0): assert isinstance(base, cl)
+    >>> fooit(base)
+    Traceback (most recent call last):
+    TypeError: Argument 'foo' has incorrect type (expected subclasses.Foo, got subclasses.Base)
+    >>> base0 = Base0()
+    >>> for cl in (Base0,): assert isinstance(base0, cl)
+    >>> fooit(base0)
+    Traceback (most recent call last):
+    TypeError: Argument 'foo' has incorrect type (expected subclasses.Foo, got subclasses.Base0)
+    """
     return foo.fooit()
index 25ef47010cd59e764bfc97ca318a6f5be59f82bc..5166b183ade67d4d913c2047cee2a4e03fc5eea5 100644 (file)
@@ -1,11 +1,8 @@
-__doc__ = u"""
+def f():
+    """
     >>> f()
     (-1, -1)
-    >>> p()
-    0
-"""
-
-def f():
+    """
     cdef int int1, int2, int3
     obj1 = 1
     obj2 = 2
@@ -18,6 +15,10 @@ def f():
     return int1, obj1
     
 def p():
+    """
+    >>> p()
+    0
+    """
     cdef int int1, int2, int3
     cdef char *ptr1, *ptr2, *ptr3
     int2 = 2
index 4781bd5e1cde47b3ab19da73f94ab2bc930acada..91b5c64750aeb0a204460e9d7700a7dad6adc65b 100644 (file)
-__doc__ = u"""
->>> switch_simple_py(1)
-1
->>> switch_simple_py(2)
-2
->>> switch_simple_py(3)
-3
->>> switch_simple_py(4)
-8
->>> switch_simple_py(5)
-0
-
->>> switch_py(1)
-1
->>> switch_py(2)
-2
->>> switch_py(3)
-3
->>> switch_py(4)
-4
->>> switch_py(5)
-4
->>> switch_py(6)
-0
->>> switch_py(8)
-4
->>> switch_py(10)
-10
->>> switch_py(12)
-12
->>> switch_py(13)
-0
-
->>> switch_simple_c(1)
-1
->>> switch_simple_c(2)
-2
->>> switch_simple_c(3)
-3
->>> switch_simple_c(4)
-8
->>> switch_simple_c(5)
-0
-
->>> switch_c(1)
-1
->>> switch_c(2)
-2
->>> switch_c(3)
-3
->>> switch_c(4)
-4
->>> switch_c(5)
-4
->>> switch_c(6)
-0
->>> switch_c(8)
-4
->>> switch_c(10)
-10
->>> switch_c(12)
-12
->>> switch_c(13)
-0
-
->>> switch_or(0)
-0
->>> switch_or(1)
-1
->>> switch_or(2)
-1
->>> switch_or(3)
-1
->>> switch_or(4)
-0
-
->>> switch_in(0)
-0
->>> switch_in(1)
-1
->>> switch_in(2)
-0
->>> switch_in(7)
-1
->>> switch_in(8)
-0
-
->>> switch_short(0)
-0
->>> switch_short(1)
-1
->>> switch_short(2)
-2
->>> switch_short(3)
-0
-
->>> switch_off(0)
-0
->>> switch_off(1)
-1
->>> switch_off(2)
-0
-
->>> switch_pass(1)
-1
-"""
-
 def switch_simple_py(x):
+    """
+    >>> switch_simple_py(1)
+    1
+    >>> switch_simple_py(2)
+    2
+    >>> switch_simple_py(3)
+    3
+    >>> switch_simple_py(4)
+    8
+    >>> switch_simple_py(5)
+    0
+    """
     if x == 1:
         return 1
     elif 2 == x:
@@ -119,6 +24,28 @@ def switch_simple_py(x):
     return -1
 
 def switch_py(x):
+    """
+    >>> switch_py(1)
+    1
+    >>> switch_py(2)
+    2
+    >>> switch_py(3)
+    3
+    >>> switch_py(4)
+    4
+    >>> switch_py(5)
+    4
+    >>> switch_py(6)
+    0
+    >>> switch_py(8)
+    4
+    >>> switch_py(10)
+    10
+    >>> switch_py(12)
+    12
+    >>> switch_py(13)
+    0
+    """
     if x == 1:
         return 1
     elif 2 == x:
@@ -136,6 +63,18 @@ def switch_py(x):
     return -1
 
 def switch_simple_c(int x):
+    """
+    >>> switch_simple_c(1)
+    1
+    >>> switch_simple_c(2)
+    2
+    >>> switch_simple_c(3)
+    3
+    >>> switch_simple_c(4)
+    8
+    >>> switch_simple_c(5)
+    0
+    """
     if x == 1:
         return 1
     elif 2 == x:
@@ -149,6 +88,28 @@ def switch_simple_c(int x):
     return -1
 
 def switch_c(int x):
+    """
+    >>> switch_c(1)
+    1
+    >>> switch_c(2)
+    2
+    >>> switch_c(3)
+    3
+    >>> switch_c(4)
+    4
+    >>> switch_c(5)
+    4
+    >>> switch_c(6)
+    0
+    >>> switch_c(8)
+    4
+    >>> switch_c(10)
+    10
+    >>> switch_c(12)
+    12
+    >>> switch_c(13)
+    0
+    """
     if x == 1:
         return 1
     elif 2 == x:
@@ -166,6 +127,18 @@ def switch_c(int x):
     return -1
 
 def switch_or(int x):
+    """
+    >>> switch_or(0)
+    0
+    >>> switch_or(1)
+    1
+    >>> switch_or(2)
+    1
+    >>> switch_or(3)
+    1
+    >>> switch_or(4)
+    0
+    """
     if x == 1 or x == 2 or x == 3:
         return 1
     else:
@@ -173,11 +146,33 @@ def switch_or(int x):
     return -1
 
 def switch_in(int X):
+    """
+    >>> switch_in(0)
+    0
+    >>> switch_in(1)
+    1
+    >>> switch_in(2)
+    0
+    >>> switch_in(7)
+    1
+    >>> switch_in(8)
+    0
+    """
     if X in (1,3,5,7):
         return 1
     return 0
 
 def switch_short(int x):
+    """
+    >>> switch_short(0)
+    0
+    >>> switch_short(1)
+    1
+    >>> switch_short(2)
+    2
+    >>> switch_short(3)
+    0
+    """
     if x == 1:
         return 1
     elif 2 == x:
@@ -187,6 +182,14 @@ def switch_short(int x):
     return -1
 
 def switch_off(int x):
+    """
+    >>> switch_off(0)
+    0
+    >>> switch_off(1)
+    1
+    >>> switch_off(2)
+    0
+    """
     if x == 1:
         return 1
     else:
@@ -194,6 +197,10 @@ def switch_off(int x):
     return -1
 
 def switch_pass(int x):
+    """
+    >>> switch_pass(1)
+    1
+    """
     if x == 1:
         pass
     elif x == 2:
index fa926e55b7ed0355253a30cc850bdaf2960d9888..d076f9049519bc314b72e45f520910849b5154ec 100644 (file)
@@ -1,12 +1,11 @@
-__doc__ = u"""
->>> result() == (99, 17*42, 17*42)
-True
-"""
-
 cdef int i, j, k
 i = 17; j = 42; k = i * j
 if j > k: i = 88
 else: i = 99; j = k
 
 def result():
+    """
+    >>> result() == (99, 17*42, 17*42)
+    True
+    """
     return (i,j,k)
index d792723017aa68b3527178387f68164bd70a6414..823a0a5c5d44240dde2e4db0a3c40ed80639dd5a 100644 (file)
@@ -1,11 +1,10 @@
-__doc__ = """
-    >>> foo()
-    ([0, 0], [0, 0])
-"""
-
 # Extracted from sage/plot/plot3d/index_face_set.pyx:502
 # Turns out to be a bug in implementation of PEP 3132 (Extended Iterable Unpacking)
 
 def foo():
+    """
+    >>> foo()
+    ([0, 0], [0, 0])
+    """
     a = b = [0,0]
     return a, b
index 5d454ddc9d5cab895b97b92b1e0bf3d02e6cbd18..da97e75cf5c35174b9ae24056faa93ff67cb4a5f 100644 (file)
@@ -1,8 +1,3 @@
-__doc__ = u"""
-   >>> B().coeffs_bitsize()
-   [2]
-"""
-
 cdef class A:
     def numerator(self):
         return self
@@ -13,6 +8,10 @@ cdef int  bitsize(A a):
 coeffs = [A()]
 
 class B:
+    """
+    >>> B().coeffs_bitsize()
+    [2]
+    """
     def coeffs_bitsize(self):
         r = [bitsize(c.numerator())+1 for c in coeffs]
         return r
index 2a27bb9fa9c0e30638c737bce454800d32e707c7..cd87168b0b55e4afe6ef29bc6799d948f6507439 100644 (file)
@@ -1,8 +1,8 @@
-__doc__ = u"""
->>> spam(dict(test=2))
-False
-"""
 def spam(dict d):
+    """
+    >>> spam(dict(test=2))
+    False
+    """
     for elm in d:
         return False
     return True
index b7c5e05106f0bbdd04888d33e5a6b05fb42b2cbc..71e939d4253982bfb19acc4d962f499d7348219b 100644 (file)
@@ -1,24 +1,3 @@
-__doc__ = u"""
-    >>> f(1,2,3,4,5)
-    ()
-    >>> g(1,2,3,4,5)
-    (2,)
-    >>> h(1,2,3,4,5)
-    (2, 3)
-    >>> j(1,2,3,4,5)
-    (2, 3, 4)
-    >>> k(1,2,3,4,5)
-    (2, 3, 4)
-    >>> l(1,2,3,4,5)
-    (17, 42, 88)
-    >>> tuple_none()
-    Traceback (most recent call last):
-    TypeError: 'NoneType' object is not iterable
-    >>> tuple_none_list()
-    Traceback (most recent call last):
-    TypeError: 'NoneType' object is not iterable
-"""
-
 import sys
 if sys.version_info < (2,5):
     __doc__ = __doc__.replace(
@@ -26,21 +5,37 @@ if sys.version_info < (2,5):
         u'iteration over non-sequence\n    >>> tuple_none_list()')
 
 def f(obj1, obj2, obj3, obj4, obj5):
+    """
+    >>> f(1,2,3,4,5)
+    ()
+    """
     obj1 = ()
     return obj1
 
 def g(obj1, obj2, obj3, obj4, obj5):
+    """
+    >>> g(1,2,3,4,5)
+    (2,)
+    """
     obj1 = ()
     obj1 = (obj2,)
     return obj1
 
 def h(obj1, obj2, obj3, obj4, obj5):
+    """
+    >>> h(1,2,3,4,5)
+    (2, 3)
+    """
     obj1 = ()
     obj1 = (obj2,)
     obj1 = obj2, obj3
     return obj1
 
 def j(obj1, obj2, obj3, obj4, obj5):
+    """
+    >>> j(1,2,3,4,5)
+    (2, 3, 4)
+    """
     obj1 = ()
     obj1 = (obj2,)
     obj1 = obj2, obj3
@@ -48,6 +43,10 @@ def j(obj1, obj2, obj3, obj4, obj5):
     return obj1
 
 def k(obj1, obj2, obj3, obj4, obj5):
+    """
+    >>> k(1,2,3,4,5)
+    (2, 3, 4)
+    """
     obj1 = ()
     obj1 = (obj2,)
     obj1 = obj2, obj3
@@ -56,6 +55,10 @@ def k(obj1, obj2, obj3, obj4, obj5):
     return obj1
 
 def l(obj1, obj2, obj3, obj4, obj5):
+    """
+    >>> l(1,2,3,4,5)
+    (17, 42, 88)
+    """
     obj1 = ()
     obj1 = (obj2,)
     obj1 = obj2, obj3
@@ -65,8 +68,18 @@ def l(obj1, obj2, obj3, obj4, obj5):
     return obj1
 
 def tuple_none():
+    """
+    >>> tuple_none()
+    Traceback (most recent call last):
+    TypeError: 'NoneType' object is not iterable
+    """
     return tuple(None)
 
 def tuple_none_list():
+    """
+    >>> tuple_none_list()
+    Traceback (most recent call last):
+    TypeError: 'NoneType' object is not iterable
+    """
     cdef list none = None
     return tuple(none)
index 1a1a60521736d5c1ab572b7e486428cf5426fb0b..875e70bd483eb5648ee4d7e57d1fa10c121f41fc 100644 (file)
-__doc__ = u"""
->>> assign3(l)
-(1, 2, 3)
->>> assign3(t)
-(1, 2, 3)
->>> assign3_typed(t)
-(1, 2, 3)
->>> assign3_int(l)
-(1, 2, 3)
->>> assign3_mixed1(l)
-(1, 2, 3)
->>> assign3_mixed2(l)
-(1, 2, 3)
->>> assign3_mixed3(l)
-(1, 2, 3)
-
->>> assign3_typed(l)
-Traceback (most recent call last):
-TypeError: Argument 't' has incorrect type (expected tuple, got list)
-
->>> a,b,c = (1,) # doctest: +ELLIPSIS
-Traceback (most recent call last):
-ValueError: ...
->>> assign3((1,))
-Traceback (most recent call last):
-ValueError: need more than 1 value to unpack
->>> assign3_typed((1,))
-Traceback (most recent call last):
-ValueError: need more than 1 value to unpack
-
->>> a,b,c = (1,2) # doctest: +ELLIPSIS
-Traceback (most recent call last):
-ValueError: ...
->>> assign3((1,2))
-Traceback (most recent call last):
-ValueError: need more than 2 values to unpack
->>> assign3_typed((1,2))
-Traceback (most recent call last):
-ValueError: need more than 2 values to unpack
-
->>> a,b,c = (1,2,3,4)
-Traceback (most recent call last):
-ValueError: too many values to unpack
->>> assign3((1,2,3,4))
-Traceback (most recent call last):
-ValueError: too many values to unpack
->>> assign3_typed((1,2,3,4))
-Traceback (most recent call last):
-ValueError: too many values to unpack
-
->>> a,b = 99,98
->>> a,b = t
-Traceback (most recent call last):
-ValueError: too many values to unpack
->>> a,b
-(99, 98)
-
->>> test_overwrite(l)
-(99, 98)
->>> test_overwrite(t)
-(99, 98)
-
->>> test_overwrite_int(l)
-(99, 98)
->>> test_overwrite_int(t)
-(99, 98)
-
->>> test_overwrite_mixed(l)
-(99, 98)
->>> test_overwrite_mixed(t)
-(99, 98)
-
->>> test_overwrite_mixed2(l)
-(99, 98)
->>> test_overwrite_mixed2(t)
-(99, 98)
-"""
-
 t = (1,2,3)
 l = [1,2,3]
 
 def assign3(t):
+    """
+    >>> assign3(l)
+    (1, 2, 3)
+    >>> assign3(t)
+    (1, 2, 3)
+    >>> assign3((1,))
+    Traceback (most recent call last):
+    ValueError: need more than 1 value to unpack
+    >>> assign3((1,2))
+    Traceback (most recent call last):
+    ValueError: need more than 2 values to unpack
+    >>> assign3((1,2,3,4))
+    Traceback (most recent call last):
+    ValueError: too many values to unpack
+    """
     a,b,c = t
     return (a,b,c)
 
 def assign3_typed(tuple t):
+    """
+    >>> assign3_typed(t)
+    (1, 2, 3)
+    >>> assign3_typed(l)
+    Traceback (most recent call last):
+    TypeError: Argument 't' has incorrect type (expected tuple, got list)
+    >>> a,b,c = (1,) # doctest: +ELLIPSIS
+    Traceback (most recent call last):
+    ValueError: ...
+    >>> assign3_typed((1,))
+    Traceback (most recent call last):
+    ValueError: need more than 1 value to unpack
+    >>> a,b,c = (1,2) # doctest: +ELLIPSIS
+    Traceback (most recent call last):
+    ValueError: ...
+    >>> assign3_typed((1,2))
+    Traceback (most recent call last):
+    ValueError: need more than 2 values to unpack
+    >>> a,b,c = (1,2,3,4)
+    Traceback (most recent call last):
+    ValueError: too many values to unpack
+    >>> assign3_typed((1,2,3,4))
+    Traceback (most recent call last):
+    ValueError: too many values to unpack
+    >>> a,b = 99,98
+    >>> a,b = t
+    Traceback (most recent call last):
+    ValueError: too many values to unpack
+    >>> a,b
+    (99, 98)
+    """
     a,b,c = t
     return (a,b,c)
 
 def assign3_int(t):
+    """
+    >>> assign3_int(l)
+    (1, 2, 3)
+    """
     cdef int a,b,c
     a,b,c = t
     return (a,b,c)
 
 def assign3_mixed1(t):
+    """
+    >>> assign3_mixed1(l)
+    (1, 2, 3)
+    """
     cdef int a
     a,b,c = t
     return (a,b,c)
 
 def assign3_mixed2(t):
+    """
+    >>> assign3_mixed2(l)
+    (1, 2, 3)
+    """
     cdef int b
     a,b,c = t
     return (a,b,c)
 
 def assign3_mixed3(t):
+    """
+    >>> assign3_mixed3(l)
+    (1, 2, 3)
+    """
     cdef int c
     a,b,c = t
     return (a,b,c)
@@ -113,6 +97,12 @@ def assign3_mixed4(t):
     return (a,b,c)
 
 def test_overwrite(t):
+    """
+    >>> test_overwrite(l)
+    (99, 98)
+    >>> test_overwrite(t)
+    (99, 98)
+    """
     a,b = 99,98
     try:
         a,b = t
@@ -121,6 +111,12 @@ def test_overwrite(t):
     return (a,b)
 
 def test_overwrite_int(t):
+    """
+    >>> test_overwrite_int(l)
+    (99, 98)
+    >>> test_overwrite_int(t)
+    (99, 98)
+    """
     cdef int a,b
     a,b = 99,98
     try:
@@ -130,6 +126,12 @@ def test_overwrite_int(t):
     return (a,b)
 
 def test_overwrite_mixed(t):
+    """
+    >>> test_overwrite_mixed(l)
+    (99, 98)
+    >>> test_overwrite_mixed(t)
+    (99, 98)
+    """
     cdef int b
     a,b = 99,98
     try:
@@ -139,6 +141,12 @@ def test_overwrite_mixed(t):
     return (a,b)
 
 def test_overwrite_mixed2(t):
+    """
+    >>> test_overwrite_mixed2(l)
+    (99, 98)
+    >>> test_overwrite_mixed2(t)
+    (99, 98)
+    """
     cdef int a
     a,b = 99,98
     try:
index 2f64a23136504b8b8609814647c4ff45ea7824d7..7bf2828447a2f17dbded37f79c3405381ba462c6 100644 (file)
@@ -1,27 +1,32 @@
-__doc__ = u"""
+def test1(t):
+    """
     >>> test1( (1,2,3) )
     1
-    >>> test3( (1,2,3) )
-    3
-    >>> test( (1,2,3) )
-    3
-    >>> testnonsense()     # doctest: +ELLIPSIS
-    Traceback (most recent call last):
-    TypeError: ...
-"""
-
-def test1(t):
+    """
     t,a,b = t
     return t
 
 def test3(t):
+    """
+    >>> test3( (1,2,3) )
+    3
+    """
     a,b,t = t
     return t
 
 def test(t):
+    """
+    >>> test( (1,2,3) )
+    3
+    """
     t,t,t = t
     return t
 
 def testnonsense():
+    """
+    >>> testnonsense()     # doctest: +ELLIPSIS
+    Traceback (most recent call last):
+    TypeError: ...
+    """
     t,t,t = 1*2
     return t
index f8ec4521812a729553874ed520cdcf264629d997..28592a3dc19c7b5f3d74ef72c965b7c87575f373 100644 (file)
@@ -1,17 +1,12 @@
 # cython: infer_types = True
 
-__doc__ = u"""
-    >>> simple()
-    >>> multiple_assignments()
-    >>> arithmatic()
-    >>> cascade()
-    >>> increment()
-    >>> loop()
-"""
 
 from cython cimport typeof
 
 def simple():
+    """
+    >>> simple()
+    """
     i = 3
     assert typeof(i) == "long", typeof(i)
     x = 1.41
@@ -32,6 +27,9 @@ def simple():
     assert typeof(t) == "tuple object", typeof(t)
 
 def multiple_assignments():
+    """
+    >>> multiple_assignments()
+    """
     a = 3
     a = 4
     a = 5
@@ -46,6 +44,9 @@ def multiple_assignments():
     assert typeof(c) == "Python object"
 
 def arithmatic():
+    """
+    >>> arithmatic()
+    """
     a = 1 + 2
     assert typeof(a) == "long"
     b = 1 + 1.5
@@ -56,6 +57,9 @@ def arithmatic():
     assert typeof(d) == "Python object"
     
 def cascade():
+    """
+    >>> cascade()
+    """
     a = 1.0
     b = a + 2
     c = b + 3
@@ -74,11 +78,17 @@ def cascaded_assignment():
     assert typeof(e) == "double"
 
 def increment():
+    """
+    >>> increment()
+    """
     a = 5
     a += 1
     assert typeof(a) == "long"
 
 def loop():
+    """
+    >>> loop()
+    """
     for a in range(10):
         pass
     assert typeof(a) == "long"
index 9631ef82f1708394d99a43ed8273eed80f9225c9..22062a64bfbde450f4ab2fa73dce4239dde622df 100644 (file)
@@ -10,34 +10,37 @@ __doc__ = u"""
 >>> print( "%d" % IntLongC() )
 3
 
->>> getint( Int() )
-2
->>> getint( Long() )
-3
->>> getint( IntLongA() )
-2
->>> getint( IntLongB() )
-2
->>> getint( IntLongC() )
-3
-
->>> getlong( Int() )
-2
->>> getlong( Long() )
-3
->>> getlong( IntLongA() )
-2
->>> getlong( IntLongB() )
-2
->>> getlong( IntLongC() )
-3
 """
 
 
 def getint(int i):
+    """
+    >>> getint( Int() )
+    2
+    >>> getint( Long() )
+    3
+    >>> getint( IntLongA() )
+    2
+    >>> getint( IntLongB() )
+    2
+    >>> getint( IntLongC() )
+    3
+    """
     return i
 
 def getlong(long long i):
+    """
+    >>> getlong( Int() )
+    2
+    >>> getlong( Long() )
+    3
+    >>> getlong( IntLongA() )
+    2
+    >>> getlong( IntLongB() )
+    2
+    >>> getlong( IntLongC() )
+    3
+    """
     return <int>i
 
 
index c5301014acd69b7e60df7c50efe575f3005b729c..8161c362cec0dc50970aa055914cd799e027b363 100644 (file)
@@ -1,34 +1,8 @@
-__doc__ = u"""
-    >>> l = [1,2,3,4]
-
-    >>> slice_list(l)
-    [2, 3]
-    >>> slice_tuple(tuple(l))
-    (2, 3)
-
-    >>> l2 = l[:]
-    >>> slice_list_assign_list(l2)
-    [1, 1, 2, 3, 4, 4]
-
-    >>> l2 = l[:]
-    >>> slice_list_assign_tuple(l2)
-    [1, 1, 2, 3, 4, 4]
-
-    >>> l2 = l[:]
-    >>> slice_list_assign(l2, (1,2,3,4))
-    [1, 1, 2, 3, 4, 4]
-
-    >>> l2 = l[:]
-    >>> slice_list_assign(l2, dict(zip(l,l)))
-    [1, 1, 2, 3, 4, 4]
-
-    >>> print("%s" % slice_charp('abcdefg'))
-    bc
-    >>> print("%s" % slice_charp_repeat('abcdefg'))
-    cd
-"""
-
 def slice_list(list l):
+    """
+    >>> slice_list([1,2,3,4])
+    [2, 3]
+    """
     return l[1:3]
 
 def slice_list_copy(list l):
@@ -36,27 +10,63 @@ def slice_list_copy(list l):
     return retlist
 
 def slice_tuple(tuple t):
+    """
+    >>> l = [1,2,3,4]
+    >>> slice_tuple(tuple(l))
+    (2, 3)
+    """
     return t[1:3]
 
 def slice_list_assign_list(list l):
+    """
+    >>> l = [1,2,3,4]
+    >>> l2 = l[:]
+    >>> slice_list_assign_list(l2)
+    [1, 1, 2, 3, 4, 4]
+    """
     l[1:3] = [1,2,3,4]
     return l
 
 def slice_list_assign_tuple(list l):
+    """
+    >>> l = [1,2,3,4]
+    >>> l2 = l[:]
+    >>> slice_list_assign_tuple(l2)
+    [1, 1, 2, 3, 4, 4]
+    """
     l[1:3] = (1,2,3,4)
     return l
 
 def slice_list_assign(list l, value):
+    """
+    >>> l = [1,2,3,4]
+    >>> l2 = l[:]
+    >>> slice_list_assign(l2, (1,2,3,4))
+    [1, 1, 2, 3, 4, 4]
+    >>> l2 = l[:]
+    >>> slice_list_assign(l2, dict(zip(l,l)))
+    [1, 1, 2, 3, 4, 4]
+    """
     l[1:3] = value
     return l
 
 
 def slice_charp(py_string_arg):
+    """
+    >>> l = [1,2,3,4]
+    >>> print("%s" % slice_charp('abcdefg'))
+    bc
+    """
     cdef bytes py_string = py_string_arg.encode(u'ASCII')
     cdef char* s = py_string
     return s[1:3].decode(u'ASCII')
 
 def slice_charp_repeat(py_string_arg):
+    """
+    >>> l = [1,2,3,4]
+    >>> print("%s" % slice_charp_repeat('abcdefg'))
+    cd
+    """
     cdef bytes py_string = py_string_arg.encode(u'ASCII')
     cdef char* s = py_string
     cdef bytes slice_val = s[1:6]
index 4b19ef1f994f64c82f6e6c2f9ebc6ecc758fa1f2..8a64444f72501bc31c1678e769bc82bbff14892d 100644 (file)
@@ -1,19 +1,3 @@
-__doc__ = u"""
->>> f()
-42.0
-42.0
->>> global_vars(12.0)
-12.0 12.0
->>> readonly()
-Traceback (most recent call last):
-    ...
-TypeError: readonly attribute
->>> longdouble_access()
-Traceback (most recent call last):
-    ...
-SystemError: bad memberdescr type
-"""
-
 import sys
 if sys.version_info[0] >= 3:
     __doc__ = __doc__.replace(u'TypeError:', u'AttributeError:')
@@ -38,22 +22,42 @@ cdef class MyClass:
         self.float_isreally_longdouble = 42.0
 
 def global_vars(x):
+    """
+    >>> global_vars(12.0)
+    12.0 12.0
+    """
     global global_tdef, global_double
     global_tdef = x
     global_double = x
     print global_tdef, global_double
 
 def f():
+    """
+    >>> f()
+    42.0
+    42.0
+    """
     c = MyClass()
     print c.actual_double
     print c.float_isreally_double
 
 def longdouble_access():
+    """
+    >>> longdouble_access()
+    Traceback (most recent call last):
+    ...
+    SystemError: bad memberdescr type
+    """
     c = MyClass()
     print c.float_isreally_longdouble
 
 
 def readonly():
+    """
+    >>> readonly()
+    Traceback (most recent call last):
+    ...
+    TypeError: readonly attribute
+    """
     c = MyClass()
     c.actual_double = 3
-
index 52a14d728c32ed74df2c8b0a9fc376af600b0e10..ced4c871b7551c2c8e7b08236b2bba0edc835ba5 100644 (file)
@@ -1,22 +1,3 @@
-__doc__ = u"""
-    >>> simple()
-    int
-    long
-    long long
-    int *
-    int **
-    A
-    B
-    X
-    Python object
-    
-    >>> expression()
-    double
-    double complex
-    int
-    unsigned int
-"""
-
 from cython cimport typeof
 
 cdef class A:
@@ -30,6 +11,18 @@ cdef struct X:
     double complex b
 
 def simple():
+    """
+    >>> simple()
+    int
+    long
+    long long
+    int *
+    int **
+    A
+    B
+    X
+    Python object
+    """
     cdef int i = 0
     cdef long l = 0
     cdef long long ll = 0
@@ -50,6 +43,13 @@ def simple():
     used = i, l, ll, <long>iptr, <long>iptrptr, a, b, x
     
 def expression():
+    """
+    >>> expression()
+    double
+    double complex
+    int
+    unsigned int
+    """
     cdef X x = X(a=1, b=2)
     cdef X *xptr = &x
     cdef short s = 0
index 21609a786cfe990482bdc24e7a6b3a0525af3a45..db16863d189afa54f1084137ca4a45aabf8f1848 100644 (file)
@@ -1,9 +1,8 @@
-__doc__ = u"""
+def f(obj1, obj2, obj3):
+    """
     >>> f(1, 2, 3)
     (-3, -4, 1)
-"""
-
-def f(obj1, obj2, obj3):
+    """
     cdef int bool1, bool2
     cdef int int1, int2
     cdef char *str1
index fd1639260aad1724ba28547e3505abcb421e4965..3d65f02984ab84999c69c774f8c4a3773ee360e6 100644 (file)
@@ -1,9 +1,8 @@
-__doc__ = u"""
+def f(obj1, obj2, obj3, obj4, obj5):
+    """
     >>> f(1, (2,), (3,4,5), (6,(7,(8,9))), 0)
     (8, 9, (8, 9), (6, (7, (8, 9))), 0)
-"""
-
-def f(obj1, obj2, obj3, obj4, obj5):
+    """
     obj1, = obj2
     obj1, obj2 = obj2 + obj2
     obj1, obj2, obj3 = obj3
index f785deb6fff7252000713e94ce561447a6463f21..1e13db14b624a208a051a7596ce8614601ea70eb 100644 (file)
@@ -1,31 +1,32 @@
-__doc__ = u"""
+def unpack_normal(l):
+    """
     >>> unpack_normal([1,2])
     (1, 2)
     >>> unpack_normal([1,2,3]) # doctest: +ELLIPSIS
     Traceback (most recent call last):
     ValueError: ...
+    """
+    a,b = l
+    return a,b
 
+def unpack_comp(l):
+    """
     >>> unpack_comp([1,2])
     (1, 2)
     >>> unpack_comp([1,2,3]) # doctest: +ELLIPSIS
     Traceback (most recent call last):
     ValueError: ...
+    """
+    a,b = [ n for n in l ]
+    return a,b
 
+def unpack_expr(l):
+    """
     >>> unpack_expr([1,2])
     (1, 4)
     >>> unpack_expr([1,2,3]) # doctest: +ELLIPSIS
     Traceback (most recent call last):
     ValueError: ...
-"""
-
-def unpack_normal(l):
-    a,b = l
-    return a,b
-
-def unpack_comp(l):
-    a,b = [ n for n in l ]
-    return a,b
-
-def unpack_expr(l):
+    """
     a,b = [ n*n for n in l ]
     return a,b
index ee70ce579bb71f1060872b7d527c465a5081cfe9..79af8080739c53ffe3182f0c821813f3d203c608 100644 (file)
@@ -1,10 +1,9 @@
-__doc__ = u"""
-    >>> swallow()
-"""
-
 cdef grail(char *blarg, ...):
     pass
 
 def swallow():
+    """
+    >>> swallow()
+    """
     grail("spam")
     grail("spam", 42)
index 9e624cdfdc2f083adb64a99576ce7c46b2684673..1a46fceb513856b536735111f32e20609985646f 100644 (file)
@@ -1,10 +1,9 @@
-__doc__ = u"""
->>> test()
-"""
-
 cdef grail(char *blarg, ...):
     pass
 
 def test():
+    """
+    >>> test()
+    """
     grail(b"test")
     grail(b"test", b"toast")
index 7025915fe824fce59a1b617c1162de52c553649b..62ff80e5c0709a3387e77699152e6e40253ac805 100644 (file)
@@ -1,10 +1,8 @@
-__doc__ = u"""
->>> test() == 55 + 66
-True
-"""
-
-
 def test():
+    """
+    >>> test() == 55 + 66
+    True
+    """
     cdef int a,b
     foo=(55,66)
     a,b=foo
index 8d1f8d366ca07e7337aa23c063ea1442b44c2816..55b7896a75739b4e2d21e7942227a18fcbc50371 100644 (file)
@@ -1,11 +1,8 @@
-__doc__ = u"""
+def f(x):
+    """
     >>> f(1)
     (1, 17)
-    >>> g()
-    1
-"""
-
-def f(x):
+    """
     cdef int y
     z = 42
     with nogil:
@@ -14,6 +11,10 @@ def f(x):
     return z,y
 
 def g():
+    """
+    >>> g()
+    1
+    """
     with nogil:
         h()
     return 1
index e31e7db8e74c8a76763d65e4bb3903de0ca9718b..2d5eda511dc67c4662003c2c8b72c7e4ca00db98 100644 (file)
@@ -1,42 +1,5 @@
 from __future__ import with_statement
 
-__doc__ = u"""
->>> no_as()
-enter
-hello
-exit <type 'NoneType'> <type 'NoneType'> <type 'NoneType'>
->>> basic()
-enter
-value
-exit <type 'NoneType'> <type 'NoneType'> <type 'NoneType'>
->>> with_return()
-enter
-exit <type 'NoneType'> <type 'NoneType'> <type 'NoneType'>
->>> with_pass()
-enter
-exit <type 'NoneType'> <type 'NoneType'> <type 'NoneType'>
->>> with_exception(None)
-enter
-value
-exit <type 'type'> <type 'MyException'> <type 'traceback'>
-outer except
->>> with_exception(True)
-enter
-value
-exit <type 'type'> <type 'MyException'> <type 'traceback'>
->>> multitarget()
-enter
-1 2 3 4 5
-exit <type 'NoneType'> <type 'NoneType'> <type 'NoneType'>
->>> tupletarget()
-enter
-(1, 2, (3, (4, 5)))
-exit <type 'NoneType'> <type 'NoneType'> <type 'NoneType'>
->>> typed()
-enter
-10
-exit <type 'NoneType'> <type 'NoneType'> <type 'NoneType'>
-"""
 
 import sys
 if sys.version_info < (2,5):
@@ -63,24 +26,57 @@ class ContextManager(object):
         return self.value
 
 def no_as():
+    """
+    >>> no_as()
+    enter
+    hello
+    exit <type 'NoneType'> <type 'NoneType'> <type 'NoneType'>
+    """
     with ContextManager(u"value"):
         print u"hello"
         
 def basic():
+    """
+    >>> basic()
+    enter
+    value
+    exit <type 'NoneType'> <type 'NoneType'> <type 'NoneType'>
+    """
     with ContextManager(u"value") as x:
         print x
         
 def with_pass():
+    """
+    >>> with_pass()
+    enter
+    exit <type 'NoneType'> <type 'NoneType'> <type 'NoneType'>
+    """
     with ContextManager(u"value") as x:
         pass
         
 def with_return():
+    """
+    >>> with_return()
+    enter
+    exit <type 'NoneType'> <type 'NoneType'> <type 'NoneType'>
+    """
     with ContextManager(u"value") as x:
         # FIXME: DISABLED - currently crashes!!
         # return x
         pass
 
 def with_exception(exit_ret):
+    """
+    >>> with_exception(None)
+    enter
+    value
+    exit <type 'type'> <type 'MyException'> <type 'traceback'>
+    outer except
+    >>> with_exception(True)
+    enter
+    value
+    exit <type 'type'> <type 'MyException'> <type 'traceback'>
+    """
     try:
         with ContextManager(u"value", exit_ret=exit_ret) as value:
             print value
@@ -89,14 +85,32 @@ def with_exception(exit_ret):
         print u"outer except"
 
 def multitarget():
+    """
+    >>> multitarget()
+    enter
+    1 2 3 4 5
+    exit <type 'NoneType'> <type 'NoneType'> <type 'NoneType'>
+    """
     with ContextManager((1, 2, (3, (4, 5)))) as (a, b, (c, (d, e))):
         print a, b, c, d, e
 
 def tupletarget():
+    """
+    >>> tupletarget()
+    enter
+    (1, 2, (3, (4, 5)))
+    exit <type 'NoneType'> <type 'NoneType'> <type 'NoneType'>
+    """
     with ContextManager((1, 2, (3, (4, 5)))) as t:
         print t
 
 def typed():
+    """
+    >>> typed()
+    enter
+    10
+    exit <type 'NoneType'> <type 'NoneType'> <type 'NoneType'>
+    """
     cdef unsigned char i
     c = ContextManager(255)
     with c as i: