o a9@sHddlZddlZGdddejdZGdddeZGdddeZdS) Nc@s,eZdZdZejddZejddZdS) Credentialz$Abstract class to manage credentialscCdSNselfrr5/usr/lib/python3/dist-packages/keyring/credentials.pyusernamezCredential.usernamecCrrrrrrrpassword r zCredential.passwordN)__name__ __module__ __qualname____doc__abcabstractpropertyr r rrrrrs  r) metaclassc@s0eZdZdZddZeddZeddZdS) SimpleCredentialz!Simple credentials implementationcC||_||_dSr) _username _password)rr r rrr__init__ zSimpleCredential.__init__cC|jSr)rrrrrr zSimpleCredential.usernamecCrr)rrrrrr rzSimpleCredential.passwordN)r r rrrpropertyr r rrrrrs rc@sJeZdZdZddZdedefddZdd Ze d d Z e d d Z dS)EnvironCredentialaA Source credentials from environment variables. Actual sourcing is deferred until requested. Supports comparison by equality. >>> e1 = EnvironCredential('a', 'b') >>> e2 = EnvironCredential('a', 'b') >>> e3 = EnvironCredential('a', 'c') >>> e1 == e2 True >>> e2 == e3 False cCrr) user_env_var pwd_env_var)rrrrrrr2rzEnvironCredential.__init__otherreturncCst|t|kSr)vars)rrrrr__eq__6szEnvironCredential.__eq__cCs tj|}|std||S)z&Helper to read an environment variablezMissing environment variable:%s)osenvironget ValueError)renv_varvaluerrr_get_env9s  zEnvironCredential._get_envcC ||jSr)r)rrrrrr @ zEnvironCredential.usernamecCr*r)r)rrrrrr Dr+zEnvironCredential.passwordN) r r rrrobjectboolr"r)rr r rrrrr!s r)r#rABCMetarrrrrrrs