From 4f5c1303ca73fdb1860bf00ee9a37a2c1b6fe294 Mon Sep 17 00:00:00 2001 From: guyroz Date: Tue, 20 Sep 2011 16:40:58 +0300 Subject: Issue #244 raises ValueError in upload and register commands if using a section without a repository value --HG-- branch : distribute extra : rebase_source : e57437a8ac03832ed8170c902996423a27235856 --- setuptools/command/upload.py | 78 ++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 76 insertions(+), 2 deletions(-) (limited to 'setuptools/command/upload.py') diff --git a/setuptools/command/upload.py b/setuptools/command/upload.py index 1f49745e..042fcbb5 100755 --- a/setuptools/command/upload.py +++ b/setuptools/command/upload.py @@ -2,6 +2,7 @@ Implements the Distutils 'upload' subcommand (upload package to PyPI).""" + from distutils.errors import * from distutils.core import Command from distutils.spawn import spawn @@ -11,6 +12,7 @@ try: except ImportError: from md5 import md5 import os +import sys import socket import platform import ConfigParser @@ -19,7 +21,7 @@ import base64 import urlparse import cStringIO as StringIO -class upload(Command): +class _upload(Command): description = "upload binary package to PyPI" @@ -65,7 +67,7 @@ class upload(Command): if not self.password: self.password = config.get('server-login', 'password') if not self.repository: - self.repository = self.DEFAULT_REPOSITORY + raise ValueError('%s is missing a repository value in .pypirc' % self._section_name) def run(self): if not self.distribution.dist_files: @@ -181,3 +183,75 @@ class upload(Command): log.ERROR) if self.show_response: print '-'*75, r.read(), '-'*75 + +if sys.version >= "2.5": + from distutils.command.upload import upload as distutils_upload + class upload(distutils_upload): + + def run(self): + self._section_name = self.repository + distutils_upload.run(self) + + def _read_pypirc(self): + """Reads the .pypirc file.""" + self._section_name = self.repository + rc = self._get_rc_file() + if os.path.exists(rc): + repository = self.repository + config = ConfigParser.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 finalize_options(self): + distutils_upload.finalize_options(self) + if not self.repository: + raise ValueError('%s is missing a repository value in .pypirc' % self._section_name) + + +else: + upload = _upload + -- cgit v1.2.1 From d36c067b3247bf7dc3102051b088fe744ac74ae0 Mon Sep 17 00:00:00 2001 From: guyroz Date: Thu, 22 Sep 2011 20:50:45 +0300 Subject: Issue #246 --HG-- branch : distribute extra : rebase_source : e14172505ff8938f00f51de4f29a8fb2834ac933 --- setuptools/command/upload.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'setuptools/command/upload.py') diff --git a/setuptools/command/upload.py b/setuptools/command/upload.py index 042fcbb5..1b708943 100755 --- a/setuptools/command/upload.py +++ b/setuptools/command/upload.py @@ -228,8 +228,10 @@ if sys.version >= "2.5": current[key] = config.get(server, key) else: current[key] = default + # Issue #246, handling url ambiguity if (current['server'] == repository or - current['repository'] == repository): + current['repository'] == repository or + (current['repository'] == "http://www.python.org/pypi" and repository == self.DEFAULT_REPOSITORY)): return current elif 'server-login' in sections: # old format -- cgit v1.2.1 From 257f23372a797ede9e14ae3e62c8319896943857 Mon Sep 17 00:00:00 2001 From: "Guy Rozendorn (guyr@infinidat.com)" Date: Fri, 7 Oct 2011 18:55:31 +0200 Subject: Revert 8d1cb51a01b6 because of issue #250 --HG-- branch : distribute extra : rebase_source : 842a0d796e6e3cd5ecf312dd5c3ff2bb35d601a5 --- setuptools/command/upload.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) (limited to 'setuptools/command/upload.py') diff --git a/setuptools/command/upload.py b/setuptools/command/upload.py index 1b708943..f2e0b2e1 100755 --- a/setuptools/command/upload.py +++ b/setuptools/command/upload.py @@ -228,10 +228,7 @@ if sys.version >= "2.5": current[key] = config.get(server, key) else: current[key] = default - # Issue #246, handling url ambiguity - if (current['server'] == repository or - current['repository'] == repository or - (current['repository'] == "http://www.python.org/pypi" and repository == self.DEFAULT_REPOSITORY)): + if (current['server'] == repository: return current elif 'server-login' in sections: # old format -- cgit v1.2.1 From d5df4531433b2031186ed2a8b335892b3600912b Mon Sep 17 00:00:00 2001 From: "Guy Rozendorn (guyr@infinidat.com)" Date: Fri, 7 Oct 2011 19:08:55 +0200 Subject: Reverting 1a1ab844f03e due to issue 250 --HG-- branch : distribute extra : rebase_source : 0dca5e604c96429f07c4d7786d3a0991c42c129d --- setuptools/command/upload.py | 76 ++------------------------------------------ 1 file changed, 2 insertions(+), 74 deletions(-) (limited to 'setuptools/command/upload.py') diff --git a/setuptools/command/upload.py b/setuptools/command/upload.py index f2e0b2e1..4bd6021d 100755 --- a/setuptools/command/upload.py +++ b/setuptools/command/upload.py @@ -2,7 +2,6 @@ Implements the Distutils 'upload' subcommand (upload package to PyPI).""" - from distutils.errors import * from distutils.core import Command from distutils.spawn import spawn @@ -12,7 +11,6 @@ try: except ImportError: from md5 import md5 import os -import sys import socket import platform import ConfigParser @@ -21,7 +19,7 @@ import base64 import urlparse import cStringIO as StringIO -class _upload(Command): +class upload(Command): description = "upload binary package to PyPI" @@ -67,7 +65,7 @@ class _upload(Command): if not self.password: self.password = config.get('server-login', 'password') if not self.repository: - raise ValueError('%s is missing a repository value in .pypirc' % self._section_name) + self.repository = self.DEFAULT_REPOSITORY def run(self): if not self.distribution.dist_files: @@ -184,73 +182,3 @@ class _upload(Command): if self.show_response: print '-'*75, r.read(), '-'*75 -if sys.version >= "2.5": - from distutils.command.upload import upload as distutils_upload - class upload(distutils_upload): - - def run(self): - self._section_name = self.repository - distutils_upload.run(self) - - def _read_pypirc(self): - """Reads the .pypirc file.""" - self._section_name = self.repository - rc = self._get_rc_file() - if os.path.exists(rc): - repository = self.repository - config = ConfigParser.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: - 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 finalize_options(self): - distutils_upload.finalize_options(self) - if not self.repository: - raise ValueError('%s is missing a repository value in .pypirc' % self._section_name) - - -else: - upload = _upload - -- cgit v1.2.1 From 8b6d10f3443e8f9b8d662097d496392a4e7ed599 Mon Sep 17 00:00:00 2001 From: "Jason R. Coombs" Date: Mon, 16 Apr 2012 15:30:31 -0400 Subject: Fix typo in protocol_version. Thanks aclark! --HG-- branch : distribute extra : rebase_source : ab90cfb5cae3189b8d0c71c43992bc0273a7587a --- setuptools/command/upload.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'setuptools/command/upload.py') diff --git a/setuptools/command/upload.py b/setuptools/command/upload.py index 4bd6021d..9f9366b5 100755 --- a/setuptools/command/upload.py +++ b/setuptools/command/upload.py @@ -92,7 +92,7 @@ class upload(Command): comment = "built on %s" % platform.platform(terse=1) data = { ':action':'file_upload', - 'protcol_version':'1', + 'protocol_version':'1', 'name':self.distribution.get_name(), 'version':self.distribution.get_version(), 'content':(basename,content), -- cgit v1.2.1