diff options
| author | guyroz <none@none> | 2011-09-20 16:40:58 +0300 |
|---|---|---|
| committer | guyroz <none@none> | 2011-09-20 16:40:58 +0300 |
| commit | 4f5c1303ca73fdb1860bf00ee9a37a2c1b6fe294 (patch) | |
| tree | 846bc5fe1474efaf9c544271e9a8502f16eeed71 /setuptools/command/register.py | |
| parent | 51e06f7936437e869dd4ad29f052435e3d814e61 (diff) | |
| download | python-setuptools-git-4f5c1303ca73fdb1860bf00ee9a37a2c1b6fe294.tar.gz | |
Issue #244 raises ValueError in upload and register commands if using a section without a repository value
--HG--
branch : distribute
extra : rebase_source : e57437a8ac03832ed8170c902996423a27235856
Diffstat (limited to 'setuptools/command/register.py')
| -rwxr-xr-x | setuptools/command/register.py | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/setuptools/command/register.py b/setuptools/command/register.py index 3b2e0859..874401a5 100755 --- a/setuptools/command/register.py +++ b/setuptools/command/register.py @@ -1,4 +1,6 @@ from distutils.command.register import register as _register +from ConfigParser import ConfigParser +import os class register(_register): __doc__ = _register.__doc__ @@ -6,5 +8,63 @@ class register(_register): def run(self): # Make sure that we are using valid current name/version info self.run_command('egg_info') + self._section_name = self.repository _register.run(self) + def _read_pypirc(self): + """Reads the .pypirc file.""" + rc = self._get_rc_file() + if os.path.exists(rc): + repository = self.repository + config = ConfigParser() + config.read(rc) + sections = config.sections() + if 'distutils' in sections: + # let's get the list of servers + index_servers = config.get('distutils', 'index-servers') + _servers = [server.strip() for server in + index_servers.split('\n') + if server.strip() != ''] + if _servers == []: + # nothing set, let's try to get the default pypi + if 'pypi' in sections: + _servers = ['pypi'] + else: + # the file is not properly defined, returning + # an empty dict + return {} + for server in _servers: + current = {'server': server} + current['username'] = config.get(server, 'username') + + # optional params + for key, default in (('repository', + None), + ('realm', self.DEFAULT_REALM), + ('password', None)): + if config.has_option(server, key): + current[key] = config.get(server, key) + else: + current[key] = default + if (current['server'] == repository or + current['repository'] == repository): + return current + elif 'server-login' in sections: + # old format + server = 'server-login' + if config.has_option(server, 'repository'): + repository = config.get(server, 'repository') + else: + repository = None + return {'username': config.get(server, 'username'), + 'password': config.get(server, 'password'), + 'repository': repository, + 'server': server, + 'realm': self.DEFAULT_REALM} + + return {} + + def _set_config(self): + _register._set_config(self) + if self.repository is None: + raise ValueError('%s is missing a repository value in .pypirc' % self._section_name) |
