3
vÅÏ^  ã               @   s   G d d„ dƒZ dS )c               @   s(   e Zd ZdZdd„ Zdd„ Zdd„ ZdS )	ÚBaseDatabaseValidationz(Encapsulate backend-specific validation.c             C   s
   || _ d S )N)Ú
connection)Úselfr   © r   úF/usr/lib/python3.6/site-packages/django/db/backends/base/validation.pyÚ__init__   s    zBaseDatabaseValidation.__init__c             K   s   g S )Nr   )r   Úkwargsr   r   r   Úcheck   s    zBaseDatabaseValidation.checkc                sf   g }t ˆ dƒrbt|dd ƒ rbt‡ fdd„|jjjD ƒƒ}|rb|jˆ jƒ}|d k	rb|jˆ j	||ƒƒ |S )NÚcheck_field_typeÚremote_fieldc             3   s   | ]}t ˆ jj|d ƒV  qdS )FN)Úgetattrr   Úfeatures)Ú.0Zfeature)r   r   r   ú	<genexpr>   s   z5BaseDatabaseValidation.check_field.<locals>.<genexpr>)
Úhasattrr   ÚallÚmodelÚ_metaÚrequired_db_featuresÚdb_typer   Úextendr	   )r   Úfieldr   ÚerrorsZ!db_supports_all_required_featuresÚ
field_typer   )r   r   Úcheck_field	   s    

z"BaseDatabaseValidation.check_fieldN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r   r   r   r   r      s   r   N)r   r   r   r   r   Ú<module>   s    