U
    nËjg
  ã                   @  s¸   d dl mZ d dlZd dlmZmZ d dlmZm	Z	 ddl
mZ ddlmZ esTeZdZG d	d
„ d
eƒZe	ded�G dd„ ded�ƒZG dd„ deƒZe	ded�G dd„ ded�ƒZdS )é    )ÚannotationsN)ÚTYPE_CHECKINGÚAny)ÚLiteralÚ
deprecatedé   )Ú_config)ÚPydanticDeprecatedSince20)Ú
BaseConfigÚExtrac                   @  s   e Zd Zdddœdd„ZdS )Ú_ConfigMetaclassÚstrr   ©ÚitemÚreturnc              
   C  s^   zt j| }t t jt¡ |W S  tk
rX } ztd| j› d|› �ƒ|‚W 5 d }~X Y nX d S )Nztype object 'z' has no attribute )	r   Zconfig_defaultsÚwarningsÚwarnÚDEPRECATION_MESSAGEÚDeprecationWarningÚKeyErrorÚAttributeErrorÚ__name__©Úselfr   ÚobjÚexc© r   ú>/tmp/pip-unpacked-wheel-zvl9l234/pydantic/deprecated/config.pyÚ__getattr__   s    
z_ConfigMetaclass.__getattr__N)r   Ú
__module__Ú__qualname__r   r   r   r   r   r      s   r   z@BaseConfig is deprecated. Use the `pydantic.ConfigDict` instead.)Úcategoryc                      s<   e Zd ZdZdddœ‡ fdd„Zdddœ‡ fd	d
„Z‡  ZS )r
   z»This class is only retained for backwards compatibility.

    !!! Warning "Deprecated"
        BaseConfig is deprecated. Use the [`pydantic.ConfigDict`][pydantic.ConfigDict] instead.
    r   r   r   c                   s„   z t ƒ  |¡}t tjt¡ |W S  tk
r~ } z@ztt	| ƒ|ƒW  W Y ¢(S  tk
rl   tt
|ƒƒ|‚Y nX W 5 d }~X Y nX d S ©N)ÚsuperÚ__getattribute__r   r   r   r   r   r   ÚgetattrÚtyper   r   ©Ú	__class__r   r   r   %   s    zBaseConfig.__getattr__ÚNone)Úkwargsr   c                   s   t  tjt¡ tƒ jf |ŽS r"   )r   r   r   r   r   r#   Ú__init_subclass__)Úclsr*   r'   r   r   r+   1   s    zBaseConfig.__init_subclass__)r   r   r    Ú__doc__r   r+   Ú__classcell__r   r   r'   r   r
      s   r
   )Ú	metaclassc                      s$   e Zd Zdddœ‡ fdd„Z‡  ZS )Ú
_ExtraMetar   r   )Ú_ExtraMeta__namer   c                   s$   |dkrt jdtdd� tƒ  |¡S )N>   ÚforbidÚignoreÚallowzX`pydantic.config.Extra` is deprecated, use literal values instead (e.g. `extra='allow'`)r   )Ú
stacklevel)r   r   r   r#   r$   )r   r1   r'   r   r   r$   7   s    ýz_ExtraMeta.__getattribute__)r   r   r    r$   r.   r   r   r'   r   r0   6   s   r0   zFExtra is deprecated. Use literal values instead (e.g. `extra='allow'`)c                   @  s2   e Zd ZU dZded< dZded< dZded< dS )r   r4   zLiteral['allow']r3   zLiteral['ignore']r2   zLiteral['forbid']N)r   r   r    r4   Ú__annotations__r3   r2   r   r   r   r   r   B   s   
r   )Ú
__future__r   Z_annotationsr   Útypingr   r   Ztyping_extensionsr   r   Ú	_internalr   r	   r   Ú__all__r&   r   r
   r0   r   r   r   r   r   Ú<module>   s"   

 ÿ