diff options
author | Jason R. Coombs <jaraco@jaraco.com> | 2016-02-11 23:47:28 -0500 |
---|---|---|
committer | Jason R. Coombs <jaraco@jaraco.com> | 2016-02-11 23:47:28 -0500 |
commit | 5367a7399762a9098ea689c7cdcb54fb9748dd66 (patch) | |
tree | 6bc8d62b0468c64e1811c7b24729018aaa45429e /setuptools/command/upload.py | |
parent | 0975916c1436759b5e373733561142caf708def4 (diff) | |
download | external_python_setuptools-5367a7399762a9098ea689c7cdcb54fb9748dd66.tar.gz external_python_setuptools-5367a7399762a9098ea689c7cdcb54fb9748dd66.tar.bz2 external_python_setuptools-5367a7399762a9098ea689c7cdcb54fb9748dd66.zip |
Override upload command to load passwords from keyring when available and not otherwise specified.20.1
Diffstat (limited to 'setuptools/command/upload.py')
-rw-r--r-- | setuptools/command/upload.py | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/setuptools/command/upload.py b/setuptools/command/upload.py new file mode 100644 index 00000000..08c20ba8 --- /dev/null +++ b/setuptools/command/upload.py @@ -0,0 +1,23 @@ +from distutils.command import upload as orig + + +class upload(orig.upload): + """ + Override default upload behavior to look up password + in the keyring if available. + """ + + def finalize_options(self): + orig.upload.finalize_options(self) + self.password or self._load_password_from_keyring() + + def _load_password_from_keyring(self): + """ + Attempt to load password from keyring. Suppress Exceptions. + """ + try: + keyring = __import__('keyring') + self.password = keyring.get_password(self.repository, + self.username) + except Exception: + pass |