[PATCH 1 of 5] pycompat: provide 'ispy3' constant
Pulkit Goyal
7895pulkit at gmail.com
Thu Sep 29 11:36:09 EDT 2016
Is loading the whole pycompat module just to have this constant is not
an overkill, I mean its not necessary and loading a module will have
effects on runtime I guess.
On Thu, Sep 29, 2016 at 8:20 PM, Yuya Nishihara <yuya at tcha.org> wrote:
> # HG changeset patch
> # User Yuya Nishihara <yuya at tcha.org>
> # Date 1475060483 -32400
> # Wed Sep 28 20:01:23 2016 +0900
> # Node ID b1e134252685a51f3b2c5c3c22540f3ec30effb0
> # Parent ff17dff99295e0781b3f147da2c5e5b14d3436e4
> pycompat: provide 'ispy3' constant
>
> We compare version_info at several places, which seems enough to define
> a constant.
>
> diff --git a/mercurial/bundle2.py b/mercurial/bundle2.py
> --- a/mercurial/bundle2.py
> +++ b/mercurial/bundle2.py
> @@ -159,6 +159,7 @@ from . import (
> error,
> obsolete,
> pushkey,
> + pycompat,
> tags,
> url,
> util,
> @@ -996,7 +997,7 @@ class bundlepart(object):
> outdebug(ui, 'closing payload chunk')
> # abort current part payload
> yield _pack(_fpayloadsize, 0)
> - if sys.version_info[0] >= 3:
> + if pycompat.ispy3:
> raise exc_info[0](exc_info[1]).with_traceback(exc_info[2])
> else:
> exec("""raise exc_info[0], exc_info[1], exc_info[2]""")
> diff --git a/mercurial/encoding.py b/mercurial/encoding.py
> --- a/mercurial/encoding.py
> +++ b/mercurial/encoding.py
> @@ -10,14 +10,14 @@ from __future__ import absolute_import
> import array
> import locale
> import os
> -import sys
> import unicodedata
>
> from . import (
> error,
> + pycompat,
> )
>
> -if sys.version_info[0] >= 3:
> +if pycompat.ispy3:
> unichr = chr
>
> # These unicode characters are ignored by HFS+ (Apple Technote 1150,
> @@ -27,7 +27,7 @@ if sys.version_info[0] >= 3:
> "200c 200d 200e 200f 202a 202b 202c 202d 202e "
> "206a 206b 206c 206d 206e 206f feff".split()]
> # verify the next function will work
> -if sys.version_info[0] >= 3:
> +if pycompat.ispy3:
> assert set(i[0] for i in _ignore) == set([ord(b'\xe2'), ord(b'\xef')])
> else:
> assert set(i[0] for i in _ignore) == set(["\xe2", "\xef"])
> diff --git a/mercurial/pycompat.py b/mercurial/pycompat.py
> --- a/mercurial/pycompat.py
> +++ b/mercurial/pycompat.py
> @@ -12,7 +12,9 @@ from __future__ import absolute_import
>
> import sys
>
> -if sys.version_info[0] < 3:
> +ispy3 = (sys.version_info[0] >= 3)
> +
> +if not ispy3:
> import cPickle as pickle
> import cStringIO as io
> import httplib
> @@ -29,7 +31,7 @@ else:
> import urllib.parse as urlparse
> import xmlrpc.client as xmlrpclib
>
> -if sys.version_info[0] >= 3:
> +if ispy3:
> import builtins
> import functools
>
> @@ -72,7 +74,7 @@ class _pycompatstub(object):
> httpserver = _pycompatstub()
> urlreq = _pycompatstub()
> urlerr = _pycompatstub()
> -if sys.version_info[0] < 3:
> +if not ispy3:
> import BaseHTTPServer
> import CGIHTTPServer
> import SimpleHTTPServer
> diff --git a/mercurial/util.py b/mercurial/util.py
> --- a/mercurial/util.py
> +++ b/mercurial/util.py
> @@ -232,7 +232,7 @@ class digestchecker(object):
> try:
> buffer = buffer
> except NameError:
> - if sys.version_info[0] < 3:
> + if not pycompat.ispy3:
> def buffer(sliceable, offset=0):
> return sliceable[offset:]
> else:
More information about the Mercurial-devel
mailing list