U
    ¥A{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r°eƒ  dS )é    )Úprint_functionNc                 C   s&   |\}}}}t d | ||||¡ƒ d S )Nz{},{},{},{},{})ÚprintÚformat)ÚfilenameÚlocationÚtopÚrightZbottomÚleft© r
   úG/tmp/pip-unpacked-wheel-pbnq7y3j/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  ¡ kr,t  d¡}|j|d�}t| t |¡ƒ}| t|¡ d S )NéÿÿÿÿZ
forkserver)Ú	processes)	ÚmultiprocessingZget_all_start_methodsÚ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                    sl   t jdk r |dkr t d¡ d}tj | ¡r^|dkrL‡ fdd„t| ƒD ƒ qhtt| ƒ|ˆ ƒ n
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*   ÚcommandÚargumentÚoptionr5   Ú__name__r
   r
   r
   r   Ú<module>   s$   