Blame tests/run/cpdef_optargs_pure.py

Packit Service 99d393
# mode: run
Packit Service 99d393
# tag: cyfunction
Packit Service 99d393
# cython: binding=True
Packit Service 99d393
Packit Service 99d393
import cython
Packit Service 99d393
Packit Service 99d393
Packit Service 99d393
class PyClass(object):
Packit Service 99d393
    a = 2
Packit Service 99d393
Packit Service 99d393
Packit Service 99d393
class PyClass99(object):
Packit Service 99d393
    a = 99
Packit Service 99d393
Packit Service 99d393
    def pymethod(self, x, y=1, z=PyClass):
Packit Service 99d393
        """
Packit Service 99d393
        >>> obj = PyClass99()
Packit Service 99d393
        >>> obj.pymethod(0)
Packit Service 99d393
        (0, 1, 2)
Packit Service 99d393
        """
Packit Service 99d393
        return x, y, z.a
Packit Service 99d393
Packit Service 99d393
Packit Service 99d393
def func(x, y=1, z=PyClass):
Packit Service 99d393
    """
Packit Service 99d393
    >>> func(0)
Packit Service 99d393
    (0, 1, 2)
Packit Service 99d393
    >>> func(0, 3)
Packit Service 99d393
    (0, 3, 2)
Packit Service 99d393
    >>> func(0, 3, PyClass)
Packit Service 99d393
    (0, 3, 2)
Packit Service 99d393
    >>> func(0, 3, 5)
Packit Service 99d393
    Traceback (most recent call last):
Packit Service 99d393
    AttributeError: 'int' object has no attribute 'a'
Packit Service 99d393
    """
Packit Service 99d393
    return x, y, z.a
Packit Service 99d393
Packit Service 99d393
Packit Service 99d393
@cython.ccall
Packit Service 99d393
def pyfunc(x, y=1, z=PyClass):
Packit Service 99d393
    """
Packit Service 99d393
    >>> pyfunc(0)
Packit Service 99d393
    (0, 1, 2)
Packit Service 99d393
    >>> pyfunc(0, 3)
Packit Service 99d393
    (0, 3, 2)
Packit Service 99d393
    >>> pyfunc(0, 3, PyClass)
Packit Service 99d393
    (0, 3, 2)
Packit Service 99d393
    >>> pyfunc(0, 3, 5)
Packit Service 99d393
    Traceback (most recent call last):
Packit Service 99d393
    AttributeError: 'int' object has no attribute 'a'
Packit Service 99d393
    """
Packit Service 99d393
    return x, y, z.a