Pārlūkot izejas kodu

Remove some unnecessary import fallbacks.

Jelmer Vernooij 5 gadi atpakaļ
vecāks
revīzija
755088a70d

+ 17 - 20
dulwich/client.py

@@ -47,17 +47,14 @@ import socket
 import subprocess
 import sys
 
-try:
-    from urllib import quote as urlquote
-    from urllib import unquote as urlunquote
-except ImportError:
-    from urllib.parse import quote as urlquote
-    from urllib.parse import unquote as urlunquote
-
-try:
-    import urlparse
-except ImportError:
-    import urllib.parse as urlparse
+from urllib.parse import (
+    quote as urlquote,
+    unquote as urlunquote,
+    urlparse,
+    urljoin,
+    urlunparse,
+    urlunsplit,
+    )
 
 import dulwich
 from dulwich.config import get_xdg_config_home_path
@@ -357,7 +354,7 @@ class GitClient(object):
         """Create an instance of this client from a urlparse.parsed object.
 
         Args:
-          parsedurl: Result of urlparse.urlparse()
+          parsedurl: Result of urlparse()
 
         Returns:
           A `GitClient` object
@@ -976,7 +973,7 @@ class TCPGitClient(TraditionalGitClient):
         netloc = self._host
         if self._port is not None and self._port != TCP_GIT_PORT:
             netloc += ":%d" % self._port
-        return urlparse.urlunsplit(("git", netloc, path, '', ''))
+        return urlunsplit(("git", netloc, path, '', ''))
 
     def _connect(self, cmd, path):
         if not isinstance(cmd, bytes):
@@ -1103,7 +1100,7 @@ class LocalGitClient(GitClient):
         # Ignore the thin_packs argument
 
     def get_url(self, path):
-        return urlparse.urlunsplit(('file', '', path, '', ''))
+        return urlunsplit(('file', '', path, '', ''))
 
     @classmethod
     def from_parsedurl(cls, parsedurl, **kwargs):
@@ -1387,7 +1384,7 @@ class SSHGitClient(TraditionalGitClient):
         if self.username is not None:
             netloc = urlquote(self.username, '@/:') + "@" + netloc
 
-        return urlparse.urlunsplit(('ssh', netloc, path, '', ''))
+        return urlunsplit(('ssh', netloc, path, '', ''))
 
     @classmethod
     def from_parsedurl(cls, parsedurl, **kwargs):
@@ -1553,7 +1550,7 @@ class HttpGitClient(GitClient):
         if parsedurl.username:
             netloc = "%s@%s" % (parsedurl.username, netloc)
         parsedurl = parsedurl._replace(netloc=netloc)
-        return cls(urlparse.urlunparse(parsedurl), **kwargs)
+        return cls(urlunparse(parsedurl), **kwargs)
 
     def __repr__(self):
         return "%s(%r, dumb=%r)" % (
@@ -1564,7 +1561,7 @@ class HttpGitClient(GitClient):
             # urllib3.util.url._encode_invalid_chars() converts the path back
             # to bytes using the utf-8 codec.
             path = path.decode('utf-8')
-        return urlparse.urljoin(self._base_url, path).rstrip("/") + "/"
+        return urljoin(self._base_url, path).rstrip("/") + "/"
 
     def _http_request(self, url, headers=None, data=None,
                       allow_compression=False):
@@ -1628,7 +1625,7 @@ class HttpGitClient(GitClient):
         headers = {"Accept": "*/*"}
         if self.dumb is not True:
             tail += "?service=%s" % service.decode('ascii')
-        url = urlparse.urljoin(base_url, tail)
+        url = urljoin(base_url, tail)
         resp, read = self._http_request(url, headers, allow_compression=True)
 
         if resp.redirect_location:
@@ -1660,7 +1657,7 @@ class HttpGitClient(GitClient):
 
     def _smart_request(self, service, url, data):
         assert url[-1] == "/"
-        url = urlparse.urljoin(url, service)
+        url = urljoin(url, service)
         result_content_type = "application/x-%s-result" % service
         headers = {
             "Content-Type": "application/x-%s-request" % service,
@@ -1805,7 +1802,7 @@ def get_transport_and_path_from_url(url, config=None, **kwargs):
       Tuple with client instance and relative path.
 
     """
-    parsed = urlparse.urlparse(url)
+    parsed = urlparse(url)
     if parsed.scheme == 'git':
         return (TCPGitClient.from_parsedurl(parsed, **kwargs),
                 parsed.path)

+ 8 - 19
dulwich/contrib/swift.py

@@ -32,16 +32,10 @@ import zlib
 import tempfile
 import posixpath
 
-try:
-    import urlparse
-except ImportError:
-    import urllib.parse as urlparse
+import urllib.parse as urlparse
 
 from io import BytesIO
-try:
-    from ConfigParser import ConfigParser
-except ImportError:
-    from configparser import ConfigParser
+from configparser import ConfigParser
 from geventhttpclient import HTTPClient
 
 from dulwich.greenthreads import (
@@ -92,12 +86,7 @@ from dulwich.server import (
     TCPGitServer,
     )
 
-try:
-    from simplejson import loads as json_loads
-    from simplejson import dumps as json_dumps
-except ImportError:
-    from json import loads as json_loads
-    from json import dumps as json_dumps
+import json
 
 import sys
 
@@ -223,7 +212,7 @@ def pack_info_create(pack_data, pack_index):
         # Tag
         elif obj.type_num == Tag.type_num:
             info[obj.id] = (obj.type_num, obj.object[1])
-    return zlib.compress(json_dumps(info))
+    return zlib.compress(json.dumps(info))
 
 
 def load_pack_info(filename, scon=None, file=None):
@@ -234,7 +223,7 @@ def load_pack_info(filename, scon=None, file=None):
     if not f:
         return None
     try:
-        return json_loads(zlib.decompress(f.read()))
+        return json.loads(zlib.decompress(f.read()))
     finally:
         f.close()
 
@@ -323,7 +312,7 @@ class SwiftConnector(object):
                                  'password': self.password,
                              },
                              'tenantName': self.tenant}
-        auth_json = json_dumps(auth_dict)
+        auth_json = json.dumps(auth_dict)
         headers = {'Content-Type': 'application/json'}
         auth_httpclient = HTTPClient.from_url(
             self.auth_url,
@@ -343,7 +332,7 @@ class SwiftConnector(object):
                                  % (str(auth_httpclient.get_base_url()) +
                                     path, ret.status_code,
                                     str(ret.items())))
-        auth_ret_json = json_loads(ret.read())
+        auth_ret_json = json.loads(ret.read())
         token = auth_ret_json['access']['token']['id']
         catalogs = auth_ret_json['access']['serviceCatalog']
         object_store = [o_store for o_store in catalogs if
@@ -393,7 +382,7 @@ class SwiftConnector(object):
             raise SwiftException('GET request failed with error code %s'
                                  % ret.status_code)
         content = ret.read()
-        return json_loads(content)
+        return json.loads(content)
 
     def get_object_stat(self, name):
         """Retrieve object stat

+ 4 - 11
dulwich/contrib/test_swift.py

@@ -25,11 +25,7 @@
 import posixpath
 
 from time import time
-from io import BytesIO
-try:
-    from StringIO import StringIO
-except ImportError:
-    from io import StringIO
+from io import BytesIO, StringIO
 
 from unittest import skipIf
 
@@ -47,10 +43,7 @@ from dulwich.objects import (
     parse_timezone,
     )
 
-try:
-    from simplejson import dumps as json_dumps
-except ImportError:
-    from json import dumps as json_dumps
+import json
 
 missing_libs = []
 
@@ -151,7 +144,7 @@ def fake_auth_request_v2(*args, **kwargs):
                        ]
                        }
             }
-    ret = Response(status=200, content=json_dumps(resp))
+    ret = Response(status=200, content=json.dumps(resp))
     return ret
 
 
@@ -402,7 +395,7 @@ class TestSwiftConnector(TestCase):
 
     def test_get_container_objects(self):
         with patch('geventhttpclient.HTTPClient.request',
-                   lambda *args: Response(content=json_dumps(
+                   lambda *args: Response(content=json.dumps(
                        (({'name': 'a'}, {'name': 'b'}))))):
             self.assertEqual(len(self.conn.get_container_objects()), 2)
 

+ 2 - 2
dulwich/objects.py

@@ -586,7 +586,7 @@ class Blob(ShaFile):
         self.set_raw_string(data)
 
     data = property(_get_data, _set_data,
-                    "The text contained within the blob object.")
+                    doc="The text contained within the blob object.")
 
     def _get_chunked(self):
         return self._chunked_text
@@ -602,7 +602,7 @@ class Blob(ShaFile):
 
     chunked = property(
         _get_chunked, _set_chunked,
-        "The text within the blob object, as chunks (not necessarily lines).")
+        doc="The text in the blob object, as chunks (not necessarily lines)")
 
     @classmethod
     def from_path(cls, path):

+ 6 - 9
dulwich/server.py

@@ -49,10 +49,7 @@ import sys
 import time
 import zlib
 
-try:
-    import SocketServer
-except ImportError:
-    import socketserver as SocketServer
+import socketserver
 
 from dulwich.archive import tar_stream
 from dulwich.errors import (
@@ -1085,11 +1082,11 @@ DEFAULT_HANDLERS = {
 }
 
 
-class TCPGitRequestHandler(SocketServer.StreamRequestHandler):
+class TCPGitRequestHandler(socketserver.StreamRequestHandler):
 
     def __init__(self, handlers, *args, **kwargs):
         self.handlers = handlers
-        SocketServer.StreamRequestHandler.__init__(self, *args, **kwargs)
+        socketserver.StreamRequestHandler.__init__(self, *args, **kwargs)
 
     def handle(self):
         proto = ReceivableProtocol(self.connection.recv, self.wfile.write)
@@ -1103,10 +1100,10 @@ class TCPGitRequestHandler(SocketServer.StreamRequestHandler):
         h.handle()
 
 
-class TCPGitServer(SocketServer.TCPServer):
+class TCPGitServer(socketserver.TCPServer):
 
     allow_reuse_address = True
-    serve = SocketServer.TCPServer.serve_forever
+    serve = socketserver.TCPServer.serve_forever
 
     def _make_handler(self, *args, **kwargs):
         return TCPGitRequestHandler(self.handlers, *args, **kwargs)
@@ -1118,7 +1115,7 @@ class TCPGitServer(SocketServer.TCPServer):
         self.backend = backend
         logger.info('Listening for TCP connections on %s:%d',
                     listen_addr, port)
-        SocketServer.TCPServer.__init__(self, (listen_addr, port),
+        socketserver.TCPServer.__init__(self, (listen_addr, port),
                                         self._make_handler)
 
     def verify_request(self, request, client_address):

+ 5 - 15
dulwich/tests/compat/test_client.py

@@ -33,19 +33,9 @@ import tempfile
 import threading
 import unittest
 
-try:
-    from urlparse import unquote
-except ImportError:
-    from urllib.parse import unquote
+from urllib.parse import unquote
 
-
-try:
-    import BaseHTTPServer
-    import SimpleHTTPServer
-except ImportError:
-    import http.server
-    BaseHTTPServer = http.server
-    SimpleHTTPServer = http.server
+import http.server
 
 from dulwich import (
     client,
@@ -437,7 +427,7 @@ class DulwichSubprocessClientTest(CompatTestCase, DulwichClientTestBase):
         return self.gitroot + path
 
 
-class GitHTTPRequestHandler(SimpleHTTPServer.SimpleHTTPRequestHandler):
+class GitHTTPRequestHandler(http.server.SimpleHTTPRequestHandler):
     """HTTP Request handler that calls out to 'git http-backend'."""
 
     # Make rfile unbuffered -- we need to read one line and then pass
@@ -564,12 +554,12 @@ class GitHTTPRequestHandler(SimpleHTTPServer.SimpleHTTPRequestHandler):
         self.wfile.write(stdout)
 
 
-class HTTPGitServer(BaseHTTPServer.HTTPServer):
+class HTTPGitServer(http.server.HTTPServer):
 
     allow_reuse_address = True
 
     def __init__(self, server_address, root_path):
-        BaseHTTPServer.HTTPServer.__init__(
+        http.server.HTTPServer.__init__(
             self, server_address, GitHTTPRequestHandler)
         self.root_path = root_path
         self.server_name = "localhost"

+ 5 - 11
dulwich/tests/test_client.py

@@ -26,15 +26,10 @@ import shutil
 import tempfile
 import warnings
 
-try:
-    from urllib import quote as urlquote
-except ImportError:
-    from urllib.parse import quote as urlquote
-
-try:
-    import urlparse
-except ImportError:
-    import urllib.parse as urlparse
+from urllib.parse import (
+    quote as urlquote,
+    urlparse,
+    )
 
 import urllib3
 
@@ -951,7 +946,7 @@ class HttpGitClientTests(TestCase):
             password=quoted_password
         )
 
-        c = HttpGitClient.from_parsedurl(urlparse.urlparse(url))
+        c = HttpGitClient.from_parsedurl(urlparse(url))
         self.assertEqual(original_username, c._username)
         self.assertEqual(original_password, c._password)
 
@@ -962,7 +957,6 @@ class HttpGitClientTests(TestCase):
         self.assertEqual(basic_auth, expected_basic_auth)
 
     def test_url_redirect_location(self):
-
         from urllib3.response import HTTPResponse
 
         test_data = {

+ 1 - 5
dulwich/tests/test_porcelain.py

@@ -20,11 +20,7 @@
 
 """Tests for dulwich.porcelain."""
 
-from io import BytesIO
-try:
-    from StringIO import StringIO
-except ImportError:
-    from io import StringIO
+from io import BytesIO, StringIO
 import errno
 import os
 import shutil

+ 1 - 4
dulwich/web.py

@@ -36,10 +36,7 @@ from wsgiref.simple_server import (
     make_server,
     )
 
-try:
-    from urlparse import parse_qs
-except ImportError:
-    from urllib.parse import parse_qs
+from urllib.parse import parse_qs
 
 
 from dulwich import log_utils