o
    SDi                     @   s   d dl mZ d dlmZ G dd deZG dd deZG dd deZG d	d
 d
eZG dd deZG dd deZ	G dd deZ
G dd deZG dd deZG dd deZG dd deZdS )    )List)ArgumentErrorc                       "   e Zd Zdef fddZ  ZS )NoPrimaryKeyErrortargetc                       t  d| d d S )NzTable z required primary key.super__init__selfr   	__class__ Q/var/www/Datamplify/venv/lib/python3.10/site-packages/snowflake/sqlalchemy/exc.pyr
   
      zNoPrimaryKeyError.__init____name__
__module____qualname__strr
   __classcell__r   r   r   r   r   	       r   c                       r   ))UnsupportedPrimaryKeysAndForeignKeysErrorr   c                    r   )Nz2Primary key and foreign keys are not supported in .r   r   r   r   r   r
      r   z2UnsupportedPrimaryKeysAndForeignKeysError.__init__r   r   r   r   r   r      r   r   c                       s*   e Zd Zdedee f fddZ  ZS )"RequiredParametersNotProvidedErrorr   
parametersc                    s    t  | dd|  d S )Nz' requires the following parameters: %s., r	   r
   join)r   r   r   r   r   r   r
      s   z+RequiredParametersNotProvidedError.__init__r   r   r   r   r   r
   r   r   r   r   r   r          "r   c                       s&   e Zd Zdedef fddZ  ZS )UnexpectedTableOptionKeyErrorexpectedactualc                    s   t  d| d| d d S )NzExpected table option z	 but got r   r   )r   r#   r$   r   r   r   r
      s   z&UnexpectedTableOptionKeyError.__init__r   r   r   r   r   r"          r"   c                       r   )OptionKeyNotProvidedErrorr   c                    r   )NzExpected option key in z! option but got NoneType instead.r   r   r   r   r   r
       s   
z"OptionKeyNotProvidedError.__init__r   r   r   r   r   r&      r   r&   c                       .   e Zd Zdededee f fddZ  ZS )"UnexpectedOptionParameterTypeErrorparameter_namer   typesc              
      s*   t  d| d| dd| d d S )Nz
Parameter z of z( requires to be one of following types: r   r   r   )r   r)   r   r*   r   r   r   r
   '   s
   z+UnexpectedOptionParameterTypeError.__init__r    r   r   r   r   r(   &       &r(   c                       s   e Zd Z fddZ  ZS ).CustomOptionsAreOnlySupportedOnSnowflakeTablesc                    s   t  d d S )Nz_Identifier, Literal, TargetLag and other custom options are only supported on Snowflake tables.r   r   r   r   r   r
   /   s   z7CustomOptionsAreOnlySupportedOnSnowflakeTables.__init__)r   r   r   r
   r   r   r   r   r   r,   .   s    r,   c                       s&   e Zd Zdee f fddZ  ZS )UnexpectedOptionTypeErroroptionsc                    s   t  dd| d d S )Nz[The following options are either unsupported or should be defined using a Snowflake table: r   r   r   )r   r/   r   r   r   r
   6   s   z"UnexpectedOptionTypeError.__init__)r   r   r   r   r   r
   r   r   r   r   r   r.   5   r%   r.   c                       r'   )InvalidTableParameterTypeErrorname
input_typeexpected_typesc              	      s.   d |}t d| d| d| d d S )Nz', 'zInvalid parameter type 'z' provided for 'z)'. Expected one of the following types: 'z'.
)r   r	   r
   )r   r1   r2   r3   expected_types_strr   r   r   r
   =   s   
z'InvalidTableParameterTypeError.__init__r    r   r   r   r   r0   <   r+   r0   c                   @   s   e Zd Zdd Zdd ZdS )MultipleErrorsc                 C   s
   || _ d S N)errors)r   r7   r   r   r   r
   F   s   
zMultipleErrors.__init__c                 C   s   d dd | jD S )N c                 s   s    | ]}t |V  qd S r6   )r   ).0er   r   r   	<genexpr>J   s    z)MultipleErrors.__str__.<locals>.<genexpr>)r   r7   r-   r   r   r   __str__I   s   zMultipleErrors.__str__N)r   r   r   r
   r<   r   r   r   r   r5   E   s    r5   c                       s*   e Zd Zdededef fddZ  ZS )-StructuredTypeNotSupportedInTableColumnsError
table_type
table_namecolumn_namec              	      s$   t  d| d| d| d d S )NzColumn 'zQ' is of a structured type, which is only supported on Iceberg tables. The table 'z' is of type 'z', not Iceberg.r   )r   r>   r?   r@   r   r   r   r
   N   s   z6StructuredTypeNotSupportedInTableColumnsError.__init__r   r   r   r   r   r=   M   r!   r=   N)typingr   sqlalchemy.excr   r   r   r   r"   r&   r(   r,   r.   r0   r5   r=   r   r   r   r   <module>   s   	