diff options
| author | ?ric Araujo <merwok@netwok.org> | 2011-09-24 01:06:28 +0200 |
|---|---|---|
| committer | ?ric Araujo <merwok@netwok.org> | 2011-09-24 01:06:28 +0200 |
| commit | d04e4c8c1027310520576e1890061799a0f64f0b (patch) | |
| tree | 50a302c46be60dc998f981feaac252f04a0b43e9 /distutils2/command/upload.py | |
| parent | d126c30223b0fabb5f96fe5d2a4eefd701284780 (diff) | |
| download | disutils2-d04e4c8c1027310520576e1890061799a0f64f0b.tar.gz | |
Start a branch to provide Distutils2 for Python 3.
This codebase is compatible with 3.1, 3.2 and 3.3. It was converted with 2to3
and a semi-automated diff/merge with packaging in 3.3 to fix some idioms.
We?ve now come full circle from 2.x to 3.x to 2.x to 3.x again :)
Starting from now, contributors can make patches for packaging (preferred, as
the stdlib?s regrtest is very useful), distutils2 or distutils-python3, and
we?ll make patches flow between versions.
Diffstat (limited to 'distutils2/command/upload.py')
| -rw-r--r-- | distutils2/command/upload.py | 29 |
1 files changed, 10 insertions, 19 deletions
diff --git a/distutils2/command/upload.py b/distutils2/command/upload.py index 0bdac4a..20f2be0 100644 --- a/distutils2/command/upload.py +++ b/distutils2/command/upload.py @@ -4,14 +4,11 @@ import os import socket import logging import platform -import urlparse +import urllib.parse from base64 import standard_b64encode -try: - from hashlib import md5 -except ImportError: - from distutils2._backport.hashlib import md5 -from urllib2 import HTTPError -from urllib2 import urlopen, Request +from hashlib import md5 +from urllib.error import HTTPError +from urllib.request import urlopen, Request from distutils2 import logger from distutils2.errors import PackagingOptionError @@ -87,7 +84,7 @@ class upload(Command): def upload_file(self, command, pyversion, filename): # Makes sure the repository URL is compliant scheme, netloc, url, params, query, fragments = \ - urlparse.urlparse(self.repository) + urllib.parse.urlparse(self.repository) if params or query or fragments: raise AssertionError("Incompatible url %s" % self.repository) @@ -104,11 +101,8 @@ class upload(Command): # Fill in the data - send all the metadata in case we need to # register a new release - f = open(filename, 'rb') - try: + with open(filename, 'rb') as f: content = f.read() - finally: - f.close() data = self.distribution.metadata.todict() @@ -124,11 +118,8 @@ class upload(Command): data['comment'] = 'built for %s' % platform.platform(terse=True) if self.sign: - fp = open(filename + '.asc') - try: + with open(filename + '.asc') as fp: sig = fp.read() - finally: - fp.close() data['gpg_signature'] = [ (os.path.basename(filename) + ".asc", sig)] @@ -136,7 +127,7 @@ class upload(Command): # The exact encoding of the authentication string is debated. # Anyway PyPI only accepts ascii for both username or password. user_pass = (self.username + ":" + self.password).encode('ascii') - auth = "Basic " + standard_b64encode(user_pass) + auth = b"Basic " + standard_b64encode(user_pass) # Build up the MIME payload for the POST data files = [] @@ -160,10 +151,10 @@ class upload(Command): result = urlopen(request) status = result.code reason = result.msg - except socket.error, e: + except socket.error as e: logger.error(e) return - except HTTPError, e: + except HTTPError as e: status = e.code reason = e.msg |
