
    df
                     ^    d dl Z d dlZd dlZd dlZddlmZ ddlmZ ddlm	Z	  G d de	      Z
y)	    N   )Abort)root_exclude   )DataMediumBasec                       e Zd Zd Zed        Zed        Zed        Zed        Zed        Z	ed        Z
ed        Zed	        Zd
 Zd Zd Zd Zd Zed        Zy)Localc                 v    | j                  |      | _        |dk(  xs |t        j                         k(  | _        y )N.)get_absolute_as_Pathrootosgetcwdroot_is_cwd)selfr   s     \/home/api-vastappli/venv/lib/python3.12/site-packages/make/make_project/data_medium/local.py__init__zLocal.__init__   s0    --d3	 CKATRYY[-@    c                 "    | j                         S N)exists)paths    r   r   zLocal.exists   s    {{}r   c                       | j                   | S r   )joinpath)path1pathNs     r   r   zLocal.joinpath   s    u~~u%%r   c                 (    | j                  d       y )NT)parents)mkdir)targets    r   r   zLocal.mkdir   s    T"r   c                 &    | j                  |       y r   )
write_textr    contents     r   r"   zLocal.write_text   s    '"r   c                 &    | j                  |       y r   )write_bytesr#   s     r   r&   zLocal.write_bytes!   s    7#r   c                 "    | j                         S r   )	read_textsources    r   r(   zLocal.read_text%   s    !!r   c                 "    | j                         S r   )
read_bytesr)   s    r   r,   zLocal.read_bytes)   s      ""r   c                 0    t        j                  | |       y r   )shutilcopy)r*   r    s     r   r/   z
Local.copy-   s    FF#r   c                      y r    r   s    r   acquirezLocal.acquire1       r   c                      y r   r1   r2   s    r   releasezLocal.release4   r4   r   c                 h    | j                   j                         st        d| j                   z        y )Nz Error: Source %s does not exists)r   is_dirr   r2   s    r   ensure_source_rootzLocal.ensure_source_root9   s,    yy!:TYYFGG "r   c                     | j                   s3| j                  j                         rt        d| j                  z        y y NzError: Target %s already exists)r   r   r8   r   r2   s    r   ensure_target_rootzLocal.ensure_target_root=   s7      dii&6&6&89DIIEFF '9 r   c                 B    | j                  |      rt        d|z        y r;   )r   r   )r   r    s     r   ensure_targetzLocal.ensure_targetA   s$    ;;v9FBCC r   c           
   #     K   t        t        |             dz   }g }t        D ]>  }|j                  t	        j                  t        | j                  |                         @ t        j                  t        |             D ]@  \  }}}||d }d}|D ]  }|j                  |      sd} |r,d|df |D ]	  }	d||	f  B yw)a  
            Walk through all files and yield one of the following:

            * (1, rootdir, dirname, None)
            * (2, rootdir, dirname, filename)

            Usage:

            .. code-block:: python

                for action, root, dn, fn in iter_filenames(some_dir):
                    if action == 1:
                        print("I am {root}/{dn}, the directory)
                    elif action == 2:
                        print("I am not")
        r   NFT   )	lenstrr   extendglobr   r   walk
startswith)
r*   
root_indexexcludeexc	full_root_dirsfilesr   skipfns
             r   iter_filenameszLocal.iter_filenamesE   s     & V%)
 	ACNN499S)=%>?@	A (*wws6{'; 		&#IueZ[)DD  '',D  tm# &BT2+%&		&s   B#C&C-CN)__name__
__module____qualname__r   staticmethodr   r   r   r"   r&   r(   r,   r/   r3   r6   r9   r<   r>   rO   r1   r   r   r	   r	      s    B   & & # # # # $ $ " " # # $ $
HGD !& !&r   r	   )rD   r   pathlibr.   errorsr   templater   baser   r	   r1   r   r   <module>rX      s(     	    $  \&N \&r   