o
    wi9                     @  s   d dl mZ d dlZd dlZd dlZd dlZd dlZd dlZee	j
j
Zed Zed Zed d ZedZedZedZd	ZeeZd#d$ddZd%ddZd&ddZd'dd Zed!krnejejd" e  dS dS )(    )annotationsNportalockerdistzportalocker.pyz(?P<names>[^()]+)$z=^from \.(?P<from>.*?) import (?P<paren>\(?)(?P<names>[^()]+)$z^(?P<name>\w+) = \1\n$z'''
{}
'''

argvtyping.Sequence[str] | NonereturnNonec                 C  sb   t  }|jdd}|jddd}|jddt dttd	 |jt	d
 |
| }|| d S )NT)requiredcombinezZCombine all Python files into a single unified `portalocker.py` file for easy distribution)helpz--output-filez-ow)typedefault)func)argparseArgumentParseradd_subparsers
add_parseradd_argumentFileTypestr_default_output_pathset_defaultsr
   
parse_argsr   )r   parser
subparserscombine_parserargs r   Q/home/ubuntu/sommelier/.venv/lib/python3.10/site-packages/portalocker/__main__.pymain   s   
r    pathpathlib.Path
seen_filesset[pathlib.Path]typing.Iterator[str]c                 c  s   | |v rd S t  }||  d}d }zz| jddD ]p}d|v r!q|r8d|v r2|ddd }d}qt|}nt|}|r|sMt|d}|d}|rb|| t	t
| d	 |E d H  q|d
dD ]}| }|| t	t
| d	 |E d H  qjqt||V  qW d S  ty } z)|j\}	}
}}}d}|
|| ||  }td|  d| d| d| d|
  d }~ww )NFasciiencoding
__future__)   parenfromz.pynames,d   zInvalid encoding for z: z
 at byte (:z)
Snippet: )setaddopensplit	_NAMES_REmatch_RELATIVE_IMPORT_REboolgroup
_read_filesrc_pathstrip_clean_lineUnicodeDecodeErrorr   loggererror)r!   r#   r.   r,   from_liner7   name	exception_text
start_byteend_byterA   offsetsnippetr   r   r   r;   3   sd   




r;   rC   r   r.   set[str]c                 C  s0   |rd |}td| dd| } td| S )N|z\b(z)\. )joinresub_USELESS_ASSIGNMENT_RE)rC   r.   joined_namesr   r   r   r>   k   s   
r>   r   argparse.Namespacec                 C  s  | j }t|jjjddd |d |tt	d j
dd |tt	d j
dd t }ttd |D ]}|| q:|  |  td	|j  ztjd
d|jgdd tjd
ddd|jgdd W n ty{   td Y nw td|jg d S )NT)parentsexist_okz#from __future__ import annotations
z
README.rstr&   r'   LICENSEz__init__.pyzWrote combined file to ruffformat   )timeoutcheckz--fixz
--fix-onlyz<Ruff is not installed. Skipping linting and formatting step.python3)output_filepathlibPathrD   parentmkdirwrite_TEXT_TEMPLATErY   	base_path	read_textr2   r;   r<   flushcloser@   info
subprocessrunFileNotFoundErrorwarning)r   r^   r#   rC   r   r   r   r
   u   s>   

r
   __main__)level)N)r   r   r   r   )r!   r"   r#   r$   r   r%   )rC   r   r.   rL   r   r   )r   rT   r   r   )r)   r   r   loggingr_   rP   rj   typingr`   __file__ra   re   r<   	dist_pathr   compiler6   r8   rR   rd   	getLogger__name__r@   r    r;   r>   r
   basicConfigINFOr   r   r   r   <module>   s4    




8

(
