U
    Of	                     @   sB   d dl Z d dlmZ d dlmZ d dlmZ G dd dejZdS )    N)IOBase)SubprocessStdAlias)servicec                	       sb   e Zd ZdZd
eeejeje  e	ejej
eef  dd fddZeje ddd	Z  ZS )ChromiumServiceaf  A Service class that is responsible for the starting and stopping the
    WebDriver instance of the ChromiumDriver.

    :param executable_path: install path of the executable.
    :param port: Port for the service to run on, defaults to 0 where the operating system will decide.
    :param service_args: (Optional) List of args to be passed to the subprocess when launching the executable.
    :param log_output: (Optional) int representation of STDOUT/DEVNULL, any IO instance or String path to file.
    :param env: (Optional) Mapping of environment variables for the new process, defaults to `os.environ`.
    Nr   )executable_pathportservice_args
log_outputenvreturnc                    sh   |pg | _ t|tr.| j d|  d | _nt|tr@|| _n|| _t jf |||| jd| d S )Nz--log-path=)r   r   r
   r	   )r   
isinstancestrappendr	   r   super__init__)selfr   r   r   r	   r
   kwargs	__class__ G/tmp/pip-unpacked-wheel-ds5t_0qj/selenium/webdriver/chromium/service.pyr   #   s    	


zChromiumService.__init__)r   c                 C   s   d| j  g| j S )Nz--port=)r   r   )r   r   r   r   command_line_args>   s    z!ChromiumService.command_line_args)Nr   NNN)__name__
__module____qualname____doc__r   inttypingOptionalListr   Mappingr   r   __classcell__r   r   r   r   r      s        r   )	r   ior   Zselenium.typesr   Zselenium.webdriver.commonr   ZServicer   r   r   r   r   <module>   s   