3 �Xj; � @ s" d dl Z d dlZG dd� d�ZdS )� Nc @ s� e Zd ZG dd� de�Zddd�Zdd� Zdd � Zd d� Zdd � Z dd� Z dd� Zdd� Zdd� Z dd� Zdd� Zddd�ZdS )�ClPwdc @ s e Zd Zdd� ZdS )zClPwd.NoSuchUserExceptionc C s t j| d|f � d S )NzNo such user (%s))� Exception�__init__)�self�user� r �/usr/lib/python3.6/clpwd.pyr s z"ClPwd.NoSuchUserException.__init__N)�__name__� __module__�__qualname__r r r r r �NoSuchUserException s r Nc C s8 i | _ i | _i | _i | _|d kr.| jd�| _n|| _d S )Ni� )� _user_key_map�_uid_key_map�_user_full_map� _uid_full_map�get_sys_min_uid�_min_uid)r Zmin_uidr r r r s zClPwd.__init__c C s | j � | jS )N)�_load_passwd_databaser )r r r r � get_user_dict s zClPwd.get_user_dictc C s | j � | jS )N)r r )r r r r �get_uid_dict s zClPwd.get_uid_dictc C s | j � | jS )N)r r )r r r r �get_user_full_dict s zClPwd.get_user_full_dictc C s | j � | jS )N)r r )r r r r �get_uid_full_dict s zClPwd.get_uid_full_dictc C s0 y| j � | S tk r* tj|��Y nX dS )z* Return pw_entry for user N)r �KeyErrorr r )r r r r r �get_pw_by_name# s zClPwd.get_pw_by_namec C s0 y| j � | S tk r* tj|��Y nX dS )z7 Return list of passwd entries for uid N)r r r r )r �uidr r r � get_pw_by_uid, s zClPwd.get_pw_by_uidc C s2 y| j � | jS tk r, tj|��Y nX dS )z& Returns uid for user N)r �pw_uidr r r )r r r r r �get_uid5 s z ClPwd.get_uidc C s2 y| j � | jS tk r, tj|��Y nX dS )z` Returns homedir for a user @param user: string @return: string N)r �pw_dirr r r )r r r r r �get_homedir> s zClPwd.get_homedirc C s� | j s�x�tj� D ]|}|| j|j<