U
    P|j  ã                   @   sx   d Z ddlZddlmZ ddlmZ ddlmZ ddlm	Z	m
Z
 ddlmZ dZd	ZeeejƒG d
d„ dƒƒZeƒ ZdS )z;
Cred plugin for a file of the format 'username:password'.
é    N)Úimplementer)Úplugin)ÚFilePasswordDB)ÚIUsernameHashedPasswordÚIUsernamePassword)ÚICheckerFactoryz¶
This checker expects to receive the location of a file that
conforms to the FilePasswordDB format. Each line in the file
should be of the format 'username:password', in plain text.
zWarning: not a valid filec                   @   s2   e Zd ZdZdZeZdZee	fZ
ejZdd„ ZdS )ÚFileCheckerFactoryz7
    A factory for instances of L{FilePasswordDB}.
    Úfilez,Location of a FilePasswordDB-formatted file.c                 C   sP   ddl m} | ¡ s$td| j ƒ‚n$||ƒ ¡ sH| j t› d|› d�¡ t	|ƒS )zÝ
        This checker factory expects to get the location of a file.
        The file should conform to the format required by
        L{FilePasswordDB} (using defaults for all
        initialization parameters).
        r   )ÚFilePathz%r requires a filenamez: Ú
)
Ztwisted.python.filepathr
   ÚstripÚ
ValueErrorÚauthTypeÚisfileÚerrorOutputÚwriteÚinvalidFileWarningr   )ÚselfZ	argstringr
   © r   ú=/tmp/pip-unpacked-wheel-audpp6lv/twisted/plugins/cred_file.pyÚgenerateChecker+   s    z"FileCheckerFactory.generateCheckerN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   ÚfileCheckerFactoryHelpZauthHelpZargStringFormatr   r   ZcredentialInterfacesÚsysÚstderrr   r   r   r   r   r   r      s   r   )r   r   Zzope.interfacer   Ztwistedr   Ztwisted.cred.checkersr   Ztwisted.cred.credentialsr   r   Ztwisted.cred.strcredr   r   r   ZIPluginr   ZtheFileCheckerFactoryr   r   r   r   Ú<module>   s   
