o
    +i,                     @   sT   d Z ddlZddlmZmZ ddlmZ dddZddd	Zdd
dZ	dddZ
dS )z%Tests for generic docstring routines.    N)DocstringStyle
ParseError)parsereturnc                  C     t d} | jtjksJ | jdksJ | jdksJ | jdks!J t| jdks*J | jd j	dks4J | jd j
du s>J | jd jd	ksHJ | jd
 j	dksRJ | jd
 j
dks\J | jd
 jdksfJ | jd j	dkspJ | jd j
dkszJ | jd jdksJ t| jd
ksJ | jd j
dksJ | jd jdksJ | jdusJ | jj
dksJ | jjdksJ | jdusJ t| jd
ksJ | jd | jksJ dS )z%Test ReST-style parser autodetection.a  
        Short description

        Long description

        Causing people to indent:

            A lot sometimes

        :param spam: spam desc
        :param int bla: bla desc
        :param str yay:
        :raises ValueError: exc desc
        :returns tuple: ret desc
        Short description@Long description

Causing people to indent:

    A lot sometimesSShort description

Long description

Causing people to indent:

    A lot sometimes   r   spamN	spam desc   blaintbla desc   yaystr 
ValueErrorexc desctupleret desc)r   styler   RESTshort_descriptionlong_descriptiondescriptionlenparamsarg_name	type_nameraisesreturnsmany_returns	docstring r'   _/var/www/html/psymed-ai/venv/lib/python3.10/site-packages/docstring_parser/tests/test_parser.py	test_rest   s<   r)   c                  C   r   )z'Test Google-style parser autodetection.a6  Short description

        Long description

        Causing people to indent:

            A lot sometimes

        Args:
            spam: spam desc
            bla (int): bla desc
            yay (str):

        Raises:
            ValueError: exc desc

        Returns:
            tuple: ret desc
        r   r   r	   r
   r   r   Nr   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   GOOGLEr   r   r   r   r   r    r!   r"   r#   r$   r%   r'   r'   r(   test_google>   s<   r+   c                  C   s  t d} | jtjksJ | jdksJ | jdksJ | jdks!J t| jdks*J | jd j	dks4J | jd j
du s>J | jd jd	ksHJ | jd
 j	dksRJ | jd
 j
dks\J | jd
 jdksfJ | jd j	dkspJ | jd j
dkszJ | jd jdu sJ | jd j	dksJ | jd j
dksJ | jd jsJ | jd jdksJ t| jd
ksJ | jd j
dksJ | jd jdksJ | jdusJ | jj
dksJ | jjdksJ | jdusJ t| jd
ksJ | jd | jksJ dS )z)Test numpydoc-style parser autodetection.a  Short description

        Long description

        Causing people to indent:

            A lot sometimes

        Parameters
        ----------
        spam
            spam desc
        bla : int
            bla desc
        yay : str

        Raises
        ------
        ValueError
            exc desc

        Other Parameters
        ----------------
        this_guy : int, optional
            you know him

        Returns
        -------
        tuple
            ret desc

        See Also
        --------
        multiple lines...
        something else?

        Warnings
        --------
        multiple lines...
        none of this is real!
        r   r   r	      r   r   Nr   r   r   r   r   r   r   r   r
   this_guyzyou know himr   r   r   r   )r   r   r   NUMPYDOCr   r   r   r   r   r    r!   is_optionalr"   r#   r$   r%   r'   r'   r(   test_numpydocx   sD   ,r0   c                  C   s^   d} t t t| tj W d   n1 sw   Y  t| }|s%J |jtjks-J dS )ziTest autodection for the case where one of the parsers throws an error
    and another one succeeds.
    z=
    Does something useless

    :param 3 + 3 a: a param
    N)pytestr"   r   r   r   r   r   r*   )sourcer&   r'   r'   r(   "test_autodetection_error_detection   s   r3   )r   N)__doc__r1   docstring_parser.commonr   r   docstring_parser.parserr   r)   r+   r0   r3   r'   r'   r'   r(   <module>   s    

6
:U