Mercurial > hg
view mercurial/pycompat.py @ 29569:3d52e7c78a6b
check-code: move fixing up regexp into main procedure
This patch makes an extra check pattern to be prepared by
"_preparepats()" as similarly as existing patterns, if it is added to
"checks" array before invocation of "main()" in check-code.py.
This is a part of preparation for adding check-code.py extra checks by
another python script in subsequent patch.
This is also useful for SkeletonExtensionPlan.
https://www.mercurial-scm.org/wiki/SkeletonExtensionPlan
author | FUJIWARA Katsunori <foozy@lares.dti.ne.jp> |
---|---|
date | Fri, 20 May 2016 09:47:35 +0900 |
parents | 075146e85bb6 |
children | 06587edd1233 |
line wrap: on
line source
# pycompat.py - portability shim for python 3 # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. """Mercurial portability shim for python 3. This contains aliases to hide python version-specific details from the core. """ from __future__ import absolute_import try: import cPickle as pickle pickle.dumps except ImportError: import pickle pickle.dumps # silence pyflakes try: import httplib httplib.HTTPException except ImportError: import http.client as httplib httplib.HTTPException try: import SocketServer as socketserver socketserver.ThreadingMixIn except ImportError: import socketserver socketserver.ThreadingMixIn try: import xmlrpclib xmlrpclib.Transport except ImportError: import xmlrpc.client as xmlrpclib xmlrpclib.Transport try: import urlparse urlparse.urlparse except ImportError: import urllib.parse as urlparse urlparse.urlparse try: import cStringIO as io stringio = io.StringIO except ImportError: import io stringio = io.StringIO try: import Queue as _queue _queue.Queue except ImportError: import queue as _queue empty = _queue.Empty queue = _queue.Queue class _pycompatstub(object): pass def _alias(alias, origin, items): """ populate a _pycompatstub copies items from origin to alias """ def hgcase(item): return item.replace('_', '').lower() for item in items: try: setattr(alias, hgcase(item), getattr(origin, item)) except AttributeError: pass httpserver = _pycompatstub() urlreq = _pycompatstub() urlerr = _pycompatstub() try: import BaseHTTPServer import CGIHTTPServer import SimpleHTTPServer import urllib2 import urllib _alias(urlreq, urllib, ( "addclosehook", "addinfourl", "ftpwrapper", "pathname2url", "quote", "splitattr", "splitpasswd", "splitport", "splituser", "unquote", "url2pathname", "urlencode", "urlencode", )) _alias(urlreq, urllib2, ( "AbstractHTTPHandler", "BaseHandler", "build_opener", "FileHandler", "FTPHandler", "HTTPBasicAuthHandler", "HTTPDigestAuthHandler", "HTTPHandler", "HTTPPasswordMgrWithDefaultRealm", "HTTPSHandler", "install_opener", "ProxyHandler", "Request", "urlopen", )) _alias(urlerr, urllib2, ( "HTTPError", "URLError", )) _alias(httpserver, BaseHTTPServer, ( "HTTPServer", "BaseHTTPRequestHandler", )) _alias(httpserver, SimpleHTTPServer, ( "SimpleHTTPRequestHandler", )) _alias(httpserver, CGIHTTPServer, ( "CGIHTTPRequestHandler", )) except ImportError: import urllib.request _alias(urlreq, urllib.request, ( "AbstractHTTPHandler", "addclosehook", "addinfourl", "BaseHandler", "build_opener", "FileHandler", "FTPHandler", "ftpwrapper", "HTTPHandler", "HTTPSHandler", "install_opener", "pathname2url", "HTTPBasicAuthHandler", "HTTPDigestAuthHandler", "HTTPPasswordMgrWithDefaultRealm", "ProxyHandler", "quote", "Request", "splitattr", "splitpasswd", "splitport", "splituser", "unquote", "url2pathname", "urlopen", )) import urllib.error _alias(urlerr, urllib.error, ( "HTTPError", "URLError", )) import http.server _alias(httpserver, http.server, ( "HTTPServer", "BaseHTTPRequestHandler", "SimpleHTTPRequestHandler", "CGIHTTPRequestHandler", )) try: xrange except NameError: import builtins builtins.xrange = range