
    \j                        d dl mZ d dlZd dlmZ d dlmZ d dlm	Z	 d dl
mZ d dlmZmZmZ d dlmZ 	 d"d#dZ	 d"d$dZd%d!ZdS )&    )annotationsN)
ReadBuffer)
errorcodes)read_int)Errors)FileRawDataMypyFile
ParseError)OptionsFsourcestr | bytesfnamstrmodule
str | Noneerrorsr   optionsr   file_existsbooleagerreturnr	   c                   |j         r~|r|ddl}|j        p||j        v }|o|j         }	|j                            |||	          \  }
}}|                    d          |
_        |r|
j	        t          |||
j	        ||          }
|
S |j        |                    |           } ddl}|j                            | ||||          S )aS  Parse a source file, without doing any semantic analysis.

    Return the parse tree, use the errors object to report parse errors.
    The python_version (major, minor) option determines the Python syntax variant.

    New parser returns empty tree with serialized data. To get the full tree and
    the parse errors, use eager=True.
    r   N)skip_function_bodies.pyi)r   r   r   r   )native_parsermypy.nativeparseignore_errorsignored_filespreserve_astsnativeparsenative_parseendswithis_stubraw_dataload_from_rawtransform_sourcemypy.fastparse	fastparseparse)r   r   r   r   r   r   r   mypyr   strip_function_bodiestree_s               N/var/www/app.qaans.com/backend/venv/lib/python3.11/site-packages/mypy/parse.pyr)   r)      s   "    	#####1QTV=Q5QM$1$O':O6O!)66g4I 7  JD!Q  ==00DL  S2$T64=&'RRK +))&11>T&Y`aaa    r$   r   imports_onlyc                    ddl m}m}m}  ||          }	|rg }
n0t	          |j                  }t          |          } ||	||          }
 ||j                  }t          |
|          }| |_	        |j
        |_
        |j        |_        |j        |_        |                     d          |_        |||_        |j        |	j        z   }|                    | ||           |D ]}t'          ||           |r||_        |S )zLoad AST from parsed binary data and report stored errors.

    If imports_only is true, only deserialize imports and return a mostly
    empty AST.
    r   )Statedeserialize_importsread_statementsr   N)r   )r   r2   r3   r4   r   defsr   importsr	   pathignored_linesis_partial_stub_packageuses_template_stringsr"   r#   	_fullname
raw_errorsr   set_filereport_parse_errorr$   )r   r   r$   r   r   r0   r2   r3   r4   stater5   datanr6   r,   
all_errorserrors                    r.   r%   r%   ;   s7    MLLLLLLLLLE'NNE /(-((TNNudA..!!("233GD'""DDI!/D#+#CD !)!?D==((DL $u|3J
OOD&'O222 * *5&)))) ! !Kr/   rC   r
   Nonec                Z   | d         }t          j        dd |          }|                     dd          }|                     d          }|t          j        }n+t          j                            |          pt          j        }|                    | d         | d         |||	           d S )
Nmessagez^(\s*\w)c                P    |                      d                                          S )N   )groupupper)ms    r.   <lambda>z$report_parse_error.<locals>.<lambda>l   s    AGGAJJ,<,<,>,> r/   blockerTcodelinecolumn)rM   rN   )resubgetcodesSYNTAXerror_codesreport)rC   r   rF   
is_blocker
error_codes        r.   r>   r>   i   s    IGf[">">HHG9d++J6""J\

 &**:66F%,

MM%-x':T^M_____r/   )F)r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r	   )r   r   r   r   r$   r   r   r   r   r   r0   r   r   r	   )rC   r
   r   r   r   rD   )
__future__r   rQ   librt.internalr   r*   r   rT   
mypy.cacher   mypy.errorsr   
mypy.nodesr   r	   r
   mypy.optionsr   r)   r%   r>    r/   r.   <module>ra      s    " " " " " " 				 % % % % % % $ $ $ $ $ $             8 8 8 8 8 8 8 8 8 8             *b *b *b *b *bf + + + + +\` ` ` ` ` `r/   