o
    õ·i;	  ã                   @   s¸   d dl mZ d dlZd dlZd dlZd dlmZ d dlZd dl	Z	d dl
Z
dd„ Zdd„ Zdd„ Zd	d
„ Ze ¡ e d¡ejdddd�ejdddd�dd„ ƒƒƒƒZedkrZeƒ  dS dS )é    )Úprint_functionNc                 C   s&   |\}}}}t d | ||||¡ƒ d S )Nz{},{},{},{},{})ÚprintÚformat)ÚfilenameÚlocationÚtopÚrightÚbottomÚleft© r   úiC:\Users\psant\Downloads\PAF backend\school\venv\Lib\site-packages\face_recognition/face_detection_cli.pyÚprint_result   s   r   c                 C   s2   t  | ¡}t j|d|d�}|D ]}t| |ƒ qd S )Nr   )Znumber_of_times_to_upsampleÚmodel)Úface_recognitionZload_image_fileÚface_locationsr   )Úimage_to_checkr   Zunknown_imager   Zface_locationr   r   r   Ú
test_image   s
   
ÿr   c                    s   ‡ fdd„t  ˆ ¡D ƒS )Nc                    s,   g | ]}t jd |t jd�rtj ˆ |¡‘qS )z.*\.(jpg|jpeg|png))Úflags)ÚreÚmatchÚIÚosÚpathÚjoin)Ú.0Úf©Úfolderr   r   Ú
<listcomp>   s   , z)image_files_in_folder.<locals>.<listcomp>)r   Úlistdirr   r   r   r   Úimage_files_in_folder   s   r    c                 C   sX   |dkrd }n|}t }dt  ¡ v rt  d¡}|j|d�}t| t |¡ƒ}| t|¡ d S )NéÿÿÿÿZ
forkserver)Ú	processes)	ÚmultiprocessingZget_all_start_methodsZget_contextZPoolÚzipÚ	itertoolsÚrepeatÚstarmapr   )Zimages_to_checkZnumber_of_cpusr   r"   ÚcontextÚpoolZfunction_parametersr   r   r   Úprocess_images_in_process_pool   s   
þr*   r   z--cpusé   zDnumber of CPU cores to use in parallel. -1 means "use all in system")ÚdefaultÚhelpz--modelZhogz>Which face detection model to use. Options are "hog" or "cnn".c                    sp   t jdk r|dkrt d¡ d}tj | ¡r1|dkr'‡ fdd„t| ƒD ƒ d S tt| ƒ|ˆ ƒ d S t	| ˆ ƒ d S )N)é   é   r+   zmWARNING: Multi-processing support requires Python 3.4 or greater. Falling back to single-threaded processing!c                    s   g | ]}t |ˆ ƒ‘qS r   )r   )r   Z
image_file©r   r   r   r   >   s    zmain.<locals>.<listcomp>)
ÚsysÚversion_infoÚclickZechor   r   Úisdirr    r*   r   )r   Zcpusr   r   r0   r   Úmain2   s   
r5   Ú__main__)Ú
__future__r   r3   r   r   Zface_recognition.apiÚapir   r#   r1   r%   r   r   r    r*   ÚcommandZargumentÚoptionr5   Ú__name__r   r   r   r   Ú<module>   s(   
ÿ