o
    g                     @   s   d dl Z d dlZd dlmZmZmZ ddlmZmZ ddl	m
Z ddl	mZ ddedfd	ed
ee dee dededee defddZefdedededefddZeZdS )    N)ListOptionalSequence   )DEFAULT_CONFIGConfig)	WrapModes)formatter_from_string 
import_startfrom_importscommentsline_separatorconfigmulti_line_outputreturnc                 C   sF  t |p|jj}dt| d  }|j}|jp|j}	|| t||||	|||j|j	|j
d
}
|jr|
|}t|}t|dkrMtdd |dd D }nd}|
}t|d |k rt||kr|	d	kr|}
|	d8 }	|| t||||	|||j|j	|j
d
}||}t|d |k rt||kr|	d	ksc|
|dkrt|
||S |
S )
zHReturns a multi-line wrapped form of the provided from import statement. r   )
	statementimportswhite_spaceindentline_lengthr   r   comment_prefixinclude_trailing_commaremove_commentsc                 s   s    | ]}t |V  qd S )N)len).0liner
   r
   H/home/ubuntu/cloudmapper/venv/lib/python3.10/site-packages/isort/wrap.py	<genexpr>'   s    z#import_statement.<locals>.<genexpr>Nr   
   )r	   r   namer   r   wrap_lengthr   copyr   r   ignore_commentsbalanced_wrappingsplitmincount
_wrap_line)r   r   r   r   r   r   	formatterdynamic_indentr   r   r   lines
line_countminimum_lengthnew_import_statementr
   r
   r   import_statement
   sV   	
$
$r2   contentc              
   C   s  |j }t| |jkrH|tjkrH| }d}d| v r!| dd\}}dD ]!}dt| d }t||rE|	 
|sEt||}|ro|jrMd|v so|jr\|jr\| ds\dnd}	|d	 	  |	 |j | |d	< g }
t| d
 |jp{|jkr|r|
|  ||} t| d
 |jp|jkr|s| s|
 } t|j||
  ||}|jr8|dkr|  | |  }nB|jr|sdnd}|tjtjfv r|}nd}d}|rd|v r|j | }| }|jrdnd}|  | d| | | | | d	}||}|j|d	 v r1|d	 dr1|d	 |jd\} }| d |j |dd	  |d	< ||  S |  | d| |   S q#| S t| |jkrc|tjkrcd| vrc|  |j dS | S )zAReturns a line wrapped to the specified line-length, if possible.N#r   )zimport .as z\bnoqa, r!      r6   ()\z# NOQAz NOQA)r   r   r   ModesNOQAr(   reescapesearchstrip
startswithuse_parenthesesr   rstripendswithr   r$   appendpopjoinr+   r   lstripVERTICAL_HANGING_INDENTVERTICAL_GRID_GROUPED)r3   r   r   	wrap_modeline_without_commentcommentsplitterexp
line_parts_comma_maybe	next_line	cont_lineoutput_comma
_separator_commentr.   r
   r
   r   r   @   s   






 &r   )r%   r@   typingr   r   r   settingsr   r   
wrap_modesr   r>   r	   strr2   r   r+   r
   r
   r
   r   <module>   s6    
6K