aboutsummaryrefslogtreecommitdiffstats
path: root/setuptools/command/upload.py
blob: 08c20ba8684928a31862d4bae63fec1bca1a4849 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
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