o
    l>jr                     @   s$  d Z ddlmZ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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 )%zLibrary exceptions.    )OptionalUnion)Responsec                   @      e Zd ZdZdS )PyiCloudExceptionzGeneric iCloud exception.N__name__
__module____qualname____doc__ r   r   H/home/thesage/.local/lib/python3.10/site-packages/pyicloud/exceptions.pyr          r   c                   @   r   )PyiCloudPasswordExceptionzPassword exception.Nr   r   r   r   r   r      r   r   c                   @   r   )PyiCloudServiceUnavailablezService unavailable exception.Nr   r   r   r   r   r      r   r   c                   @   r   )TokenExceptionzToken exception.Nr   r   r   r   r   r      r   r   c                	       sH   e Zd ZdZ		d	dedeeeef  dee ddf fddZ	  Z
S )
PyiCloudAPIResponseExceptionziCloud response exception.Nreasoncoderesponsereturnc                    s\   || _ || _|| _|pd}|r|d| d7 }|dur&|jr&|d|j 7 }t | dS )z=Capture a normalized API error and the optional HTTP context.  ()Nz: )r   r   r   textsuper__init__)selfr   r   r   message	__class__r   r   r      s   z%PyiCloudAPIResponseException.__init__)NN)r   r	   r
   r   strr   r   intr   r   __classcell__r   r   r   r   r      s    r   c                   @   r   )$PyiCloudServiceNotActivatedExceptionz'iCloud service not activated exception.Nr   r   r   r   r   r$   0   r   r$   c                       s8   e Zd ZdZdddedee ddf fddZ  ZS )	PyiCloudFailedLoginExceptionziCloud failed login exception.N)r   msgr   r   c                   sL   || _ |pd}|dur|jr| d|j d|j }t j|g|R   dS )z?Initialize a login failure with optional HTTP response details.zFailed login to iCloudNr   z): )r   r   status_coder   r   )r   r&   r   argsr   r   r   r   r   8   s
   z%PyiCloudFailedLoginException.__init__)	r   r	   r
   r   r!   r   r   r   r#   r   r   r   r   r%   5   s    r%   c                   @   r   )PyiCloudAcceptTermsExceptionziCloud accept terms exception.Nr   r   r   r   r   r)   F   r   r)   c                       .   e Zd ZdZdededdf fddZ  ZS )PyiCloud2FARequiredExceptionziCloud 2FA required exception.apple_idr   r   Nc                    s"   d| d}t  | || _dS )z<Initialize a 2FA-required error for an HSA2 login challenge.z)2FA authentication required for account: z (HSA2)Nr   r   r   r   r,   r   r   r   r   r   r   M   s   
z%PyiCloud2FARequiredException.__init__r   r	   r
   r   r!   r   r   r#   r   r   r   r   r+   J       "r+   c                       s*   e Zd ZdZdeddf fddZ  ZS )PyiCloud2SARequiredExceptionziCloud 2SA required exception.r,   r   Nc                    s   d| }t  | dS )z=Initialize a 2SA-required error for a legacy login challenge.z.Two-step authentication required for account: N)r   r   )r   r,   r   r   r   r   r   W   s   
z%PyiCloud2SARequiredException.__init__)r   r	   r
   r   r!   r   r#   r   r   r   r   r1   T   s    r1   c                       r*   )PyiCloudAuthRequiredExceptionz,iCloud re-authentication required exception.r,   r   r   Nc                    s    d| }t  | || _dS )zJInitialize a reauthentication-required error with the triggering response.z(Re-authentication required for account: Nr-   r.   r   r   r   r   `   s   

z&PyiCloudAuthRequiredException.__init__r/   r   r   r   r   r2   ]   r0   r2   c                   @   r   ) PyiCloudNoTrustedNumberAvailablez#iCloud no trusted number exception.Nr   r   r   r   r   r3   g   r   r3   c                   @   r   )$PyiCloudTrustedDevicePromptExceptionz*Trusted-device prompt bootstrap exception.Nr   r   r   r   r   r4   k   r   r4   c                   @   r   )*PyiCloudTrustedDeviceVerificationExceptionz-Trusted-device bridge verification exception.Nr   r   r   r   r   r5   o   r   r5   c                   @   r   )*PyiCloudNoStoredPasswordAvailableExceptionz$iCloud no stored password exception.Nr   r   r   r   r   r6   s   r   r6   c                   @   r   )PyiCloudNoDevicesExceptionziCloud no device exception.Nr   r   r   r   r   r7   x   r   r7   N)r   typingr   r   requestsr   	Exceptionr   r   r   r   r   r$   r%   r)   r+   r1   r2   r3   r4   r5   r6   r7   r   r   r   r   <module>   s&    
	
