관리-도구
편집 파일: infer.cpython-38.pyc
U -?�f�K � @ s. d dl mZ d dlmZ d dlmZ d dlmZ d dlmZ d dlm Z d dlm Z d dlmZ d d lmZ d d lm Z d dlmZ d dlmZ d d lmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ ddl m!Z! ddl m"Z" dddd d!d d"�d#d$�Z#dddd d d%�d&d'�Z$dddd d d%�d(d)�Z%dddd d!d d"�d*d+�Z&dddd d d%�d,d-�Z'dCdddd d/d d0�d1d2�Z(dDddd3d3d d d d4�d5d6�Z)ddd7d7d d8�d9d:�Z*ddd d d;�d<d=�Z+dd>d?d3d@�dAdB�Z,d.S )E� )�annotations)�Optional)�Sequence)�map_instance_to_supertype)�AssignmentStmt)�CallExpr)� Expression)�FuncDef)� LambdaExpr)� MemberExpr)�NameExpr)�RefExpr)�StrExpr)�TypeInfo)�Var)�SemanticAnalyzerPluginInterface)� is_subtype)�AnyType)�CallableType)�get_proper_type)�Instance)�NoneType)� ProperType)� TypeOfAny)� UnionType� )�names)�utilr r r zOptional[ProperType]r )�api�stmt�node�left_hand_explicit_type�infer_from_right_side�returnc C s� t �|�}|d krd S |t jkr2t| ||||�}n�|t jkrLt| |||�}nj|t jkrft| |||�}nP|t jkr�t | |||�}n6|t j kr�t| ||�}n|t jkr�t | |||�}nd S |S )N)r �type_id_for_calleeZMAPPED�_infer_type_from_mapped�COLUMN�_infer_type_from_decl_columnZRELATIONSHIP�_infer_type_from_relationshipZCOLUMN_PROPERTY�%_infer_type_from_decl_column_propertyZSYNONYM_PROPERTY�#infer_type_from_left_hand_type_onlyZCOMPOSITE_PROPERTY�(_infer_type_from_decl_composite_property)r r r r! r"