ó
    - j®  ã                  óF  • S SK Jr  S SKJr  \(       a  S SKJrJr   " S S\5      r " S S\	5      r
 " S S	\
\5      r " S
 S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\\5      r " S S\5      r " S S\5      r " S S\5      rg)é    )Úannotations)ÚTYPE_CHECKING)Ú
CollectionÚIterablec                  ó   • \ rS rSrSrSrg)ÚNarwhalsErroré	   z'Base class for all Narwhals exceptions.© N©Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú__static_attributes__r
   ó    Ú¡C:\Users\johnn\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.13_qbz5n2kfra8p0\LocalCache\local-packages\Python313\site-packages\narwhals/exceptions.pyr   r   	   s   † Ü1r   r   c                  ó8   • \ rS rSr% SrS\S'   S	S jrS
S jrSrg)ÚFormattedKeyErroré   a#  KeyError with formatted error message.

Python's `KeyError` has special casing around formatting
(see https://bugs.python.org/issue2651). Use this class when the error
message has newlines and other special format characters.
Needed by https://github.com/tensorflow/tensorflow/issues/36857.
ÚstrÚmessagec                ó   • Xl         g ©N©r   )Úselfr   s     r   Ú__init__ÚFormattedKeyError.__init__   s   € Ø�r   c                ó   • U R                   $ r   r   )r   s    r   Ú__str__ÚFormattedKeyError.__str__   s   € Ø�|‰|Ðr   r   N©r   r   ÚreturnÚNone)r#   r   )	r   r   r   r   r   Ú__annotations__r   r    r   r
   r   r   r   r      s   ‡ ñð ƒLô÷r   r   c                  óx   ^ • \ rS rSr% SrS\S'   S	U 4S jjr\      S
S j5       r\    SS j5       r	Sr
U =r$ )ÚColumnNotFoundErroré   z0Exception raised when column name isn't present.r   r   c                óD   >• Xl         [        TU ]	  U R                   5        g r   ©r   Úsuperr   ©r   r   Ú	__class__s     €r   r   ÚColumnNotFoundError.__init__$   ó   ø€ ØŒÜ‰Ñ˜Ÿ™Õ&r   c               óN   • S[        U5       S[        U5       S3n[        U5      $ )Nz&The following columns were not found: z+

Hint: Did you mean one of these columns: Ú?)ÚsortedÚlistr'   )ÚclsÚmissing_columnsÚavailable_columnsr   s       r   Ú'from_missing_and_available_column_namesÚ;ColumnNotFoundError.from_missing_and_available_column_names(   s:   € ð
 5´V¸OÓ5LÐ4MØ;¼DÐARÓ<SÐ;TÐTUðWð 	ô # 7Ó+Ð+r   c                ó6   • S[        U5       S3n[        U5      $ )NzOThe selected columns were not found.

Hint: Did you mean one of these columns: r1   )r3   r'   )r4   r6   r   s      r   Úfrom_available_column_namesÚ/ColumnNotFoundError.from_available_column_names2   s.   € ð
<Ü<@ÐARÓ<SÐ;TÐTUðWð 	ô # 7Ó+Ð+r   r   r"   )r5   zIterable[str]r6   úCollection[str]r#   r'   )r6   r<   r#   r'   )r   r   r   r   r   r%   r   Úclassmethodr7   r:   r   Ú__classcell__©r-   s   @r   r'   r'      s`   ø‡ Ù:àƒL÷'ð ð,Ø+ð,Ø@Oð,à	ó,ó ð,ð ð,Ø /ð,à	ó,ó ö,r   r'   c                  ó   • \ rS rSrSrSrg)ÚComputeErroré=   zHException raised when the underlying computation could not be evaluated.r
   Nr   r
   r   r   rA   rA   =   s   † ÜRr   rA   c                  ó   • \ rS rSrSrSrg)Ú
ShapeErroréA   z_Exception raised when trying to perform operations on data structures with incompatible shapes.r
   Nr   r
   r   r   rD   rD   A   ó   † Üir   rD   c                  ó   • \ rS rSrSrSrg)ÚMultiOutputExpressionErroréE   zKException raised when using multi-output expression in unsupported context.r
   Nr   r
   r   r   rH   rH   E   s   † ÜUr   rH   c                  ó   • \ rS rSrSrSrg)ÚDuplicateErroréI   z6Exception when duplicate column names are encountered.r
   Nr   r
   r   r   rK   rK   I   s   † Ü@r   rK   c                  ó   • \ rS rSrSrSrg)ÚInvalidOperationErroréM   z+Exception raised during invalid operations.r
   Nr   r
   r   r   rN   rN   M   s   † Ü5r   rN   c                  óP   ^ • \ rS rSr% SrS\S'   SU 4S jjr\S	S j5       rSr	U =r
$ )
ÚInvalidIntoExprErroréQ   z>Exception raised when object can't be converted to expression.r   r   c                óD   >• Xl         [        TU ]	  U R                   5        g r   r*   r,   s     €r   r   ÚInvalidIntoExprError.__init__V   r/   r   c                ó$   • SU S3n[        U5      $ )NzBExpected an object which can be converted into an expression, got aŽ  

Hint:
- if you were trying to select a column which does not have a string
  column name, then you should explicitly use `nw.col`.
  For example, `df.select(nw.col(0))` if you have a column named `0`.
- if you were trying to create a new literal column, then you 
  should explicitly use `nw.lit`.
  For example, `df.select(nw.lit(0))` if you want to create a new
  column with literal value `0`.)rQ   )r4   Úinvalid_typer   s      r   Úfrom_invalid_typeÚ&InvalidIntoExprError.from_invalid_typeZ   s+   € ð QÐQ]ÐP^ð _/ð /ð 	ô $ GÓ,Ð,r   r   r"   )r4   ÚtyperV   rY   r#   rQ   )r   r   r   r   r   r%   r   r=   rW   r   r>   r?   s   @r   rQ   rQ   Q   s$   ø‡ ÙHàƒL÷'ð ó-ó ö-r   rQ   c                  ó   • \ rS rSrSrSrg)ÚUnsupportedDTypeErroréj   z_Exception raised when trying to convert to a DType which is not supported by the given backend.r
   Nr   r
   r   r   r[   r[   j   rF   r   r[   c                  ó   • \ rS rSrSrSrg)ÚNarwhalsUnstableWarningén   zRWarning issued when a method or function is considered unstable in the stable api.r
   Nr   r
   r   r   r^   r^   n   s   † Ü\r   r^   c                  ó   • \ rS rSrSrg)ÚPerformanceWarningér   r
   N)r   r   r   r   r   r
   r   r   ra   ra   r   s   † ¢3r   ra   N)Ú
__future__r   Útypingr   Úcollections.abcr   r   Ú
ValueErrorr   ÚKeyErrorr   r'   rA   rD   rH   rK   rN   Ú	TypeErrorrQ   r[   ÚUserWarningr^   ÚWarningra   r
   r   r   Ú<module>rk      s°   ðÝ "å  æß4ô2�Jô 2ô˜ô ô$,Ð+¨]ô ,ô<S�=ô Sôj�ô jôV ô VôA�]ô Aô6˜Mô 6ô-˜9 mô -ô2j˜Mô jô]˜kô ]ô '˜Õ &r   