o
    Ne‰	  ã                   @   s$   G d d„ de ƒZG dd„ de ƒZdS )c                   @   s,   e Zd ZdZ					d
dd„Zdd	„ ZdS )Ú
FileSystema  
    A file system that support hadoop client desc. 

    Args:
        fs_type (string): fs_type, for example is "afs"
        user (string): hadoop param
        passwd (string): hadoop param
        hadoop bin (string): hadoop param
    Examples:
        fs = FileSystm()
    Úafsúafs://xxNÚ c                 C   sZ   |d ksJ ‚|d ksJ ‚|d ksJ ‚dd l }| ¡ | _|| j_|| j_|| j_|| j_d S ©Né    )Zps_pb2ZFsClientParameterÚ	fs_clientÚuriÚuserÚpasswdÚ
hadoop_bin)ÚselfZfs_typer   r	   r
   r   Zpslib© r   úOD:\Projects\ConvertPro\env\Lib\site-packages\paddle/fluid/distributed/helper.pyÚ__init__   s   
zFileSystem.__init__c                 C   s   | j S )z"
        get hadoop desc.
        )r   ©r   r   r   r   Úget_desc/   s   zFileSystem.get_desc)r   r   NNr   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r   r   r   r      s    
ûr   c                   @   s@   e Zd ZdZdd„ Zdd„ Zdd„ Zdd	„ Zd
d„ Zdd„ Z	dS )Ú	MPIHelperz¡
    MPIHelper is a wrapper of mpi4py, support get_rank get_size etc.
    Args:
        No params
    Examples:
        mh = MPIHelper()
        mh.get_ip()
    c                 C   s   ddl m} |j| _|| _d S )Nr   )ÚMPI)Zmpi4pyr   Z
COMM_WORLDÚcomm)r   r   r   r   r   r   @   s   
zMPIHelper.__init__c                 C   ó
   | j  ¡ S ©N)r   ZGet_rankr   r   r   r   Úget_rankE   ó   
zMPIHelper.get_rankc                 C   r   r   )r   ZGet_sizer   r   r   r   Úget_sizeH   r   zMPIHelper.get_sizec                 C   s   dd l }| | ¡ ¡}|S r   )ÚsocketÚgethostbynameÚgethostname)r   r   Zlocal_ipr   r   r   Úget_ipK   s   zMPIHelper.get_ipc                 C   s   dd l }| ¡ S r   )r   r    )r   r   r   r   r   Úget_hostnameP   s   zMPIHelper.get_hostnamec                 C   s   | j  ¡  d S r   )r   ZFinalizer   r   r   r   ÚfinalizeT   s   zMPIHelper.finalizeN)
r   r   r   r   r   r   r   r!   r"   r#   r   r   r   r   r   6   s    	r   N)Úobjectr   r   r   r   r   r   Ú<module>   s   &