o
    Vh                     @  sN  U d dl mZ d dlZd dlmZ d dlmZ d dlmZ d dl	m
Z
 d dlmZ d dlmZ d d	lmZ d d
lmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ ergd dlmZ d dlmZ dZe ej!"dZ#ej$e#j%e#j%d kr~e#j&nd e#j%e#j&fdkre#j'nd d( Z)de*d< e#+ ( Z,de*d< G dd dZ-dS )    )annotationsNPath)TYPE_CHECKING)Any)canonicalize_name)Versionmodule_name)AUTHOR_REGEX)inline_table)loads)table)TOMLDocument)Factory)PyProjectTOML)Mapping)InlineTablez[project]
name = ""
version = ""
description = ""
authors = [
]
license = {}
readme = ""
requires-python = ""
dependencies = [
]

[tool.poetry]
packages = []

[tool.poetry.group.dev.dependencies]
poetry-core)r   r   )majorminorpatch
str | NoneBUILD_SYSTEM_MIN_VERSIONBUILD_SYSTEM_MAX_VERSIONc                   @  s   e Zd Z								d0d1ddZed2ddZed2ddZd3ddZ	d4d5d"d#Zd6d%d&Z	d7d8d(d)Z
d9d*d+Zed:d,d-Zd:d.d/ZdS );Layout0.1.0 mdNprojectstrversiondescriptionreadme_formatauthorr   licensepythondependencies,Mapping[str, str | Mapping[str, Any]] | Nonedev_dependenciesreturnNonec
           
      C  s|   t || _tdd |dD  | _d| jj| _|| _|| _	|
 | _|| _|| _|p.i | _|	p3i | _|s9d}|| _d S )Nc                 s  s    | ]}t |V  qd S Nr	   ).0part r/   i/var/www/html/construction_image-detection-poc/venv/lib/python3.10/site-packages/poetry/layouts/layout.py	<genexpr>J   s    z"Layout.__init__.<locals>.<genexpr>.zYour Name <you@example.com>)r   _projectr   split_package_path_relativejoinparts_package_name_version_descriptionlower_readme_format_license_python_dependencies_dev_dependencies_author)
selfr   r!   r"   r#   r$   r%   r&   r'   r)   r/   r/   r0   __init__<   s   




zLayout.__init__r   c                 C  s   t  S r,   r   rB   r/   r/   r0   basedir\   s   zLayout.basedirc                 C  s   | j | j S r,   )rE   r5   rD   r/   r/   r0   package_path`   s   zLayout.package_pathInlineTable | Nonec                 C  sb   t  }| jj}|sd S |d }|d| | jt kr&|d| j  |S t| j|kr/d S |S )Nr   includefrom)	r   r5   r7   appendrE   r   as_posixr
   r3   )rB   packager7   rH   r/   r/   r0   get_package_included   s   zLayout.get_package_includeTpath
with_testsboolwith_pyprojectc                 C  sF   |j ddd | | | | |r| | |r!| | d S d S )NT)parentsexist_ok)mkdir_create_default_create_readme_create_tests_write_poetry)rB   rN   rO   rQ   r/   r/   r0   create{   s   


zLayout.creater   c                 C  s  t }t|}|d }| j|d< | j|d< | j|d< t| j}|d u r+td| j d|	di}|	d }r=||d< |d 
| | jrO| j|d d	< n|d d
| j |d< | jre| j|d< n|d | j D ]\}}t||}	|d 
|	  qo|d d }
|  }|r|
d 
| n|
d | jr| j D ]\}}||
d d d |< qn|
d= |
s|d d= t }d}td urdt }td ur|r|d7 }|dt 7 }|dd| g |dd t|tsJ |d| |S )Nr   namer!   r"   zInvalid author: emailauthorsr%   textREADME.readmezrequires-pythonr'   toolpoetrypackagesgroupdevr   z>=,<requiresr   zbuild-backendzpoetry.core.masonry.apizbuild-system)POETRY_DEFAULTr   r3   r9   r:   r   matchrA   
ValueErrorrc   rJ   r=   remover<   r>   r?   itemsr   create_dependency
to_pep_508rM   r@   r   r   r   add
isinstancer   )rB   templatecontentproject_contentmr$   r[   dep_namedep_constraint
dependencypoetry_contentrb   build_systembuild_system_versionr/   r/   r0   generate_project_content   sb   






zLayout.generate_project_contentsrcc                 C  s*   || j  }|jdd |d }|  d S )NT)rR   __init__.py)rF   rT   touch)rB   rN   r|   rF   package_initr/   r/   r0   rU      s   
zLayout._create_defaultc                 C  s   | d| j }|  |S )Nr^   )joinpathr<   r~   )rB   rN   readme_filer/   r/   r0   rV      s   zLayout._create_readmec                 C  s(   | d }|   |d }|jdd d S )Ntestsr}   F)rS   )rT   r~   )rN   r   
tests_initr/   r/   r0   rW      s   zLayout._create_testsc                 C  s@   t |d }|  }| D ]\}}|j|| q|  d S )Nzpyproject.toml)r   r{   rl   datarJ   save)rB   rN   	pyprojectrr   sectionitemr/   r/   r0   rX      s
   zLayout._write_poetry)r   r   r   NNNNN)r   r    r!   r    r"   r    r#   r    r$   r   r%   r   r&   r   r'   r(   r)   r(   r*   r+   )r*   r   )r*   rG   )TT)rN   r   rO   rP   rQ   rP   r*   r+   )r*   r   )T)rN   r   r|   rP   r*   r+   )rN   r   r*   r   )rN   r   r*   r+   )__name__
__module____qualname__rC   propertyrE   rF   rM   rY   r{   rU   rV   staticmethodrW   rX   r/   r/   r/   r0   r   ;   s.     

I
r   ).
__future__r   importlib.metadata	importlibpathlibr   typingr   r   packaging.utilsr   poetry.core.constraints.versionr   poetry.core.utils.helpersr
   poetry.core.utils.patternsr   tomlkitr   r   r   tomlkit.toml_documentr   poetry.factoryr   poetry.pyproject.tomlr   collections.abcr   tomlkit.itemsr   rh   parsemetadatar!   poetry_core_version
from_partsr   r   r   	to_stringr   __annotations__next_breakingr   r   r/   r/   r/   r0   <module>   s>    
