
    ,ha                         d dl mZmZmZmZ d dlZd dlZddlmZm	Z	 d Z
 G d de      Z eej                        Z G d d	e      Z G d
 de      Z G d de      Z G d de      Zy)    )absolute_importdivisionprint_functionunicode_literalsN   )strsys_encodingc                      	 t        j                  | i |j                  t              j	                         S # t         j
                  $ r g cY S w xY wN)
subprocesscheck_outputdecoder	   
splitlinesCalledProcessError)argskwargss     X/var/www/html/Resume-Scraper/venv/lib/python3.12/site-packages/argcomplete/completers.py_callr   
   sK    &&77>>|LWWYY(( 	s   58 AAc                       e Zd Zd Zd Zd Zy)ChoicesCompleterc                     || _         y r   choices)selfr   s     r   __init__zChoicesCompleter.__init__   s	        c                     t        |t              r|j                  t              }t        |t              st	        |      }|S r   )
isinstancebytesr   r	   r   )r   choices     r   _convertzChoicesCompleter._convert   s2    fe$]]<0F&#&[Fr   c                 .      fd j                   D        S )Nc              3   @   K   | ]  }j                  |        y wr   )r!   ).0cr   s     r   	<genexpr>z,ChoicesCompleter.__call__.<locals>.<genexpr>   s     7Qa 7s   r   )r   r   s   ` r   __call__zChoicesCompleter.__call__   s    7$,,77r   N)__name__
__module____qualname__r   r!   r'    r   r   r   r      s    8r   r   c                       e Zd ZdZddZd Zy)FilesCompleterzM
    File completer class, optionally takes a list of allowed extensions
    c                     t        |t        t        f      r|g}|D cg c]"  }|j                  d      j                  d      $ c}| _        || _        y c c}w )N*.)r   r   r   lstripallowednamesdirectories)r   r2   r3   xs       r   r   zFilesCompleter.__init__%   sK    lS%L1(>L@LM1QXXc]11#6M& Ns   'Ac           
      "   g }| j                   ru| j                  r4t        dddj                  |      g      }||D cg c]  }|dz   	 c}z  }| j                   D ]$  }|t        dddj                  ||      g      z  }& |S |t        dddj                  |      g      z  }t        dddj                  |      g      }t	        t        |      t        |      z
        }| j                  r||D cg c]  }|dz   	 c}z  }|S c c}w c c}w )Nbashz-czcompgen -A directory -- '{p}')p/z$compgen -A file -X '!*.{0}' -- '{p}'zcompgen -A file -- '{p}')r2   r3   r   formatlistset)r   prefixr   
completionfilesfr4   anticomps           r   r'   zFilesCompleter.__call__-   s-   
vt-L-S-SV\-S-]^_61q3w66
&& peVT3Y3`3`abfl3`3m$noo
p  %/I/P/PSY/P/Z [\\Jfd,K,R,RU[,R,\]^Hc*oH=>J91q3w99
 7 :s   D4DN)r+   T)r(   r)   r*   __doc__r   r'   r+   r   r   r-   r-       s    'r   r-   c                       e Zd Zd Zd Zy)_FilteredFilesCompleterc                 $    |sJ d       || _         y)z
        Create the completer

        A predicate accepts as its only argument a candidate path and either
        accepts it or rejects it.
        zExpected a callable predicateN	predicate)r   rF   s     r   r   z _FilteredFilesCompleter.__init__?   s     999"r   c              +     K   t         j                  j                  |      }	 t        j                  |xs d      }t         j                  j	                  |      }|D ]n  }|j                  |      st         j                  j                  ||      }| j                  |      sGt         j                  j                  |      r|dz   n| p y#  Y yxY ww)z/
        Provide completions on prefix
        r0   Nr8   )	ospathdirnamelistdirbasename
startswithjoinrF   isdir)r   r<   r   
target_dirnamesincomplete_partname	candidates           r   r'   z _FilteredFilesCompleter.__call__I   s      WW__V,
	JJz0S1E ''**62 	MD???3Z6I>>),%'WW]]9%=)c/9L	M		s    CC BCCCN)r(   r)   r*   r   r'   r+   r   r   rC   rC   >   s    #Mr   rC   c                       e Zd Zd Zy)DirectoriesCompleterc                 b    t         j                  | t        j                  j                         y )NrE   )rC   r   rH   rI   rO   r   s    r   r   zDirectoriesCompleter.__init__]   s    (((Gr   N)r(   r)   r*   r   r+   r   r   rV   rV   \   s    Hr   rV   c                       e Zd ZdZd Zd Zy)SuppressCompleterzK
    A completer used to suppress the completion of specific arguments
    c                      y r   r+   rX   s    r   r   zSuppressCompleter.__init__e   s    r   c                      y)z?
        Decide if the completion should be suppressed
        Tr+   rX   s    r   suppresszSuppressCompleter.suppressh   s     r   N)r(   r)   r*   rA   r   r]   r+   r   r   rZ   rZ   `   s    r   rZ   )
__future__r   r   r   r   rH   r   compatr   r	   r   objectr   environEnvironCompleterr-   rC   rV   rZ   r+   r   r   <module>rc      sn    S R 	  %8v 8 $BJJ/ V <Mf M<H2 H r   