config.py (3301B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\carbon\common\stdlib\distutils\config.py 2 import os 3 from ConfigParser import ConfigParser 4 from distutils.cmd import Command 5 DEFAULT_PYPIRC = '[distutils]\nindex-servers =\n pypi\n\n[pypi]\nusername:%s\npassword:%s\n' 6 7 class PyPIRCCommand(Command): 8 DEFAULT_REPOSITORY = 'http://pypi.python.org/pypi' 9 DEFAULT_REALM = 'pypi' 10 repository = None 11 realm = None 12 user_options = [('repository=', 'r', 'url of repository [default: %s]' % DEFAULT_REPOSITORY), ('show-response', None, 'display full response text from server')] 13 boolean_options = ['show-response'] 14 15 def _get_rc_file(self): 16 return os.path.join(os.path.expanduser('~'), '.pypirc') 17 18 def _store_pypirc(self, username, password): 19 rc = self._get_rc_file() 20 f = open(rc, 'w') 21 try: 22 f.write(DEFAULT_PYPIRC % (username, password)) 23 finally: 24 f.close() 25 26 try: 27 os.chmod(rc, 384) 28 except OSError: 29 pass 30 31 def _read_pypirc(self): 32 rc = self._get_rc_file() 33 if os.path.exists(rc): 34 self.announce('Using PyPI login from %s' % rc) 35 repository = self.repository or self.DEFAULT_REPOSITORY 36 config = ConfigParser() 37 config.read(rc) 38 sections = config.sections() 39 if 'distutils' in sections: 40 index_servers = config.get('distutils', 'index-servers') 41 _servers = [ server.strip() for server in index_servers.split('\n') if server.strip() != '' ] 42 if _servers == []: 43 if 'pypi' in sections: 44 _servers = ['pypi'] 45 else: 46 return {} 47 for server in _servers: 48 current = {'server': server} 49 current['username'] = config.get(server, 'username') 50 for key, default in (('repository', self.DEFAULT_REPOSITORY), ('realm', self.DEFAULT_REALM), ('password', None)): 51 if config.has_option(server, key): 52 current[key] = config.get(server, key) 53 else: 54 current[key] = default 55 56 if current['server'] == repository or current['repository'] == repository: 57 return current 58 59 elif 'server-login' in sections: 60 server = 'server-login' 61 if config.has_option(server, 'repository'): 62 repository = config.get(server, 'repository') 63 else: 64 repository = self.DEFAULT_REPOSITORY 65 return {'username': config.get(server, 'username'), 66 'password': config.get(server, 'password'), 67 'repository': repository, 68 'server': server, 69 'realm': self.DEFAULT_REALM} 70 return {} 71 72 def initialize_options(self): 73 self.repository = None 74 self.realm = None 75 self.show_response = 0 76 77 def finalize_options(self): 78 if self.repository is None: 79 self.repository = self.DEFAULT_REPOSITORY 80 if self.realm is None: 81 self.realm = self.DEFAULT_REALM