
    1yi                          U d Z ddlmZ ddlmZ ddlmZ ddlmZm	Z	 ddl
mZmZmZ ddlmZ dd	lmZmZ d
Zeedf   ed<    G d de      Zeddfde	dededz  dedee   f
dZy)zVFast stream based import identification.
Eventually this will likely replace parse.py
    )Iterator)partial)Path)
NamedTupleTextIO)normalize_line	skip_linestrip_syntax   )parse)DEFAULT_CONFIGConfig)zdef zcdef zcpdef zclass @z	async def.STATEMENT_DECLARATIONSc                       e Zd ZU eed<   eed<   eed<   dZedz  ed<   dZedz  ed<   dZ	eed<   dZ
edz  ed	<   d
efdZd
efdZy)Importline_numberindentedmoduleN	attributealiasFcimport	file_pathreturnc                     | j                   rdnd}| j                  r d| j                   d| d| j                   }n| d| j                   }| j                  r|d| j                   z  }|S )Nr   importfrom  z as )r   r   r   r   )self
import_cmdimport_strings      P/var/www/html/content_weaver/venv/lib/python3.12/site-packages/isort/identify.py	statementzImport.statement   sm    "&,,YH
>>#DKK=*Qt~~>NOM)l!DKK=9M::tDJJ<00M    c                     | j                   xs d d| j                   d| j                  rdnd | j                          S )N :r   z	indented )r   r   r   r#   )r   s    r"   __str__zImport.__str__%   sE    ~~#$Ad&6&6%7q"mm{4T^^5E4FH	
r$   )__name__
__module____qualname__int__annotations__boolstrr   r   r   r   r   r#   r(    r$   r"   r   r      s^    NK IsTz E3:GT!Itd{!3 
 
r$   r   NFinput_streamconfigr   top_onlyr   c           
   #   <  K   d}t        |       }|D ]  \  }}t        ||||j                        \  }}|r|s|j                  t              r y|rA|j                         j                  d      d   }	|	j                  d      r|	dk(  rA|	r|	dk(  r:	 t        |      \  }}
|
j                         j                  d      d   }	|	s4|	dk(  r:|	j                  d      rC	 t        |      \  }}
|
j                         j                  d      d   }	|	j                  d      rC|j                  dd      ^}}|j                  d	      D cg c]  }|j                          }}|r|d
    d|d    |d
<   |D ]D  }t        |      \  }}|j                  d      rd}n|j                  d      rd}n;t        |      \  }}|j                  dd      j                  dd      j                  dd      }d|v xs |j                  d      }t        t        |dz   |j                  d      ||      }d|j                  dd      d   v r|j                  d      d   j                         j                  d      s	 t        |      \  }}
t        |
      \  }}|d|z   z  }|j                  d      d   j                         j                  d      sWn|j                         j                  d      ru	 t        |      \  }}
t        |
      \  }}d|j                  d      d   v rd|j                  d      d   vr|d|z   z  }|j                  d      d   j                         j                  d      s	 t        |      \  }}
t        |
      \  }}|d|z   z  }|j                  d      d   j                         j                  d      sWnz|j                         j                  d      s|j                         j                  d      r	|d|z   z  }n3|j                         j                  d      dz   |j!                         z   }|j                         j                  d      ru|dk(  r|j                  dd      j                  dd      j                  dd      }|j                  |rdnd      }|d   j                  d      }|rdndj#                  |d   dz   dj#                  |dd       z   g|dd       }t%        |      j                         D cg c]$  }|j                  dd      j                  dd      & }}|dd }d}d |v r/|j'                  d       dz   t)        |      k  rd |v r	d}|j'                  d       }|dk(  r||dz
     }|d   }|d!z   |z   }||dz      }|j+                  |       |j+                  |       |j+                  d        ||dd ||k(  r|j,                  r |||       ny ||||"       nk||dz
     }||dz      }|j+                  |       |j+                  d        |j+                  |       ||k(  r|j,                  r ||       n |||"       d |v r	|s
|dk(  r%|j/                  d      }|D ]  } |||        4|D ]  } ||        G  y# t        $ r Y w xY w# t        $ r Y w xY wc c}w # t        $ r Y w xY w# t        $ r Y w xY w# t        $ r Y w xY wc c}w w)#z9Parses a python file taking out and categorizing imports.r&   )in_quoteindexsection_comments#r   )raiseyieldr:   \r   ;)zimport zcimport straightr   fromzimport(zimport (r   
z	 cimport r   )r   	)r   r   ())z importz cimportz import Nz{|z{ z|}z }as.)r   )	enumerater	   r7   
startswithr   stripsplitnextStopIterationendswithr   parse_commentsreplacer   r   rstriplstripjoinr
   r6   lenremoveremove_redundant_aliasespop) r1   r2   r   r3   r5   indexed_inputr6   raw_lineskipping_linestripped_line	next_linelineend_of_line_comment
statementsr#   	_raw_linetype_of_importr!   _normalized_import_stringcimportsidentified_importpartsfrom_importitemjust_importsdirect_importstop_level_moduler   as_indexr   r   s                                    r"   importsrk   ,   s     Hl+M( Z8x$-xuvG^G^%
! H)<)<=S)T (..s3A6##$67''=G+C+/+>(y %.OO$5$;$;C$@$CM (=G+C  ((.'+M':$E9 !* 1 7 7 <Q ?  ((. %-^^C%;""/3zz#?tdjjl?
? *2/q1DQ1G0HIJrN# x	8I,Y7OD)67!+)!'-d3M1%%i<DDT3OWWX\^ab % 77 B+66yA  !(	##K0 #! djja(++**S/!,224==cB+/+>(y -Y7GD!!TD[0M **S/!,224==cB jjl++D1+/+>(y -Y7GD! djjoa00S

3PQ@R5R%4"&**S/!"4":":"<"E"Ec"J&373F 0y '5Y&?GD!)TD[8M #'**S/!"4":":"<"E"Ec"J )..0993!ZZ\445LM)TD[8M !. 4 4 6 = =d Cc IDKKM Y *3 jjl++D1: '!)))Z@WT3'WT3' 
 &++8KT#AhnnS108j N N ^c)BGGKO,DDQuQRyQ! )7==? T4(00t<L 
 *!"-N!|#););D)AA)E\IZ(Zl* $I+11$7H%/$0A$>	+7?(!1C!7)!C ,X\ :&--i8&--e4&--d3+9QR($-&2Q2Q"34Di"PP"34DiW\"]] ".hl!; ,X\ :$++E2$++D1$++F3!U?v/N/N"3F";;"3F%"HH5 l*8 !V+)--a0F%1 C	/	BBC #/ 8/778ox	8EZ8  )  %  @B )  )  $1 & %&6s
  B\[!$\\\[,3\ )\	[" D\8['A\"\1[7?A3\3\A\	B\%B1\)\?D;\<\ A\	[\[\	[\[\'	[40\3[44\7	\ \\\	\\\\)__doc__collections.abcr   	functoolsr   pathlibr   typingr   r   isort.parser   r	   r
   commentsr   rM   settingsr   r   r   tupler/   r-   r   r.   rk   r0   r$   r"   <module>ru      s    %   % ? ? - ,*a c3h a
Z 
8 $!	d8d8d8 d{d8 	d8
 fd8r$   