mercurial/pycompat.py
Fri, 26 Jun 2020 04:07:50 +0200 Manuel Jacob compat: initialize LC_CTYPE locale on all Python versions and platforms
Wed, 24 Jun 2020 14:44:21 +0200 Manuel Jacob pycompat: use os.fsencode() to re-encode sys.argv
Wed, 24 Jun 2020 04:25:34 +0200 Manuel Jacob pycompat: fix crash when default locale is unknown stable
Fri, 05 Jun 2020 07:20:52 +0200 Manuel Jacob py3: add warning about buffering behavior of pycompat.{stdout,stderr} stable
Sat, 28 Mar 2020 12:18:58 -0700 Gregory Szorc pycompat: change argv conversion semantics
Fri, 06 Mar 2020 13:27:41 -0500 Augie Fackler cleanup: run pyupgrade on our source tree to clean up varying things
Thu, 12 Dec 2019 10:26:09 -0800 Martin von Zweigbergk pycompat: allow pycompat.sysbytes() even if input already is bytes
Tue, 03 Dec 2019 17:17:57 -0800 Kyle Lippincott py3: make a pycompat.osdevnull, use it in extdiff
Tue, 19 Nov 2019 23:49:05 +0900 Yuya Nishihara typing: consolidate "if not globals():" trick
Fri, 22 Nov 2019 23:55:57 -0500 Matt Harbison windows: suppress pytype warnings for Windows imports and functions
Fri, 08 Nov 2019 11:19:20 -0800 Augie Fackler cleanup: remove pointless r-prefixes on single-quoted strings
Thu, 07 Nov 2019 13:18:19 -0500 Augie Fackler cleanup: remove pointless r-prefixes on double-quoted strings
Tue, 05 Nov 2019 13:19:24 -0800 Martin von Zweigbergk merge with stable
Tue, 15 Oct 2019 22:44:55 +0900 Yuya Nishihara py3: enable legacy fs encoding to fix filename compatibility on Windows
Sat, 02 Nov 2019 12:09:35 -0700 Gregory Szorc py3: define and use json.loads polyfill stable
Tue, 08 Oct 2019 15:06:18 -0700 Martin von Zweigbergk cleanup: join string literals that are already on one line
Mon, 07 Oct 2019 00:04:04 -0400 Gregory Szorc py3: finish porting iteritems() to pycompat and remove source transformer
Sun, 06 Oct 2019 19:25:18 -0400 Gregory Szorc py3: define and use pycompat.iteritems() for hgext/
Sun, 06 Oct 2019 17:59:15 -0400 Gregory Szorc py3: define and use pycompat.itervalues()
Sun, 06 Oct 2019 17:45:05 -0400 Gregory Szorc py3: stop normalizing 2nd argument of *attr() to unicode
Wed, 02 Oct 2019 07:35:22 +0900 Yuya Nishihara patchbomb: use procutil.shellquote() instead of shlex to escape email address
Sun, 06 Oct 2019 17:27:51 -0400 Gregory Szorc py3: stop normalizing .encode()/.decode() arguments to unicode
Sun, 06 Oct 2019 16:58:55 -0400 Gregory Szorc py3: manually import pycompat.delattr where it is needed
Sun, 06 Oct 2019 16:55:18 -0400 Gregory Szorc py3: manually import getattr where it is needed
Sun, 06 Oct 2019 16:39:13 -0400 Gregory Szorc py3: stop injecting pycompat.hasattr into modules
Sun, 06 Oct 2019 14:58:42 -0400 Gregory Szorc py3: manually import pycompat.setattr where it is needed
Sun, 06 Oct 2019 13:28:56 -0400 Gregory Szorc py3: manually import pycompat.open into files that need it
Sun, 06 Oct 2019 09:48:39 -0400 Augie Fackler formatting: byteify all mercurial/ and hgext/ string literals
Sun, 06 Oct 2019 09:45:02 -0400 Augie Fackler formatting: blacken the codebase
Mon, 30 Sep 2019 00:01:58 +0200 Floris Bruynooghe patchbomb: protect email addresses from shell
Mon, 05 Nov 2018 19:52:42 -0800 rdamazio pycompat: adding Linux detection and fixing Mac
Fri, 21 Sep 2018 19:48:23 -0400 Matt Harbison py3: rename pycompat.getcwd() to encoding.getcwd() (API)
Thu, 13 Sep 2018 00:39:02 -0400 Matt Harbison py3: byteify strings in pycompat
Tue, 04 Sep 2018 22:29:38 -0400 Matt Harbison cbor: teach the encoder to handle python `long` type for Windows
Sat, 25 Aug 2018 15:33:15 +0900 Yuya Nishihara pycompat: remove membershiprange which is no longer used
Fri, 17 Aug 2018 00:51:46 +0200 Joerg Sonnenberger pycompat: wrap xrange for py2 to provide efficient __contains__
Wed, 01 Aug 2018 12:57:15 -0700 Gregory Szorc pycompat: add xrange alias for Python 2
Sun, 10 Jun 2018 17:07:29 +0900 Yuya Nishihara pycompat: move rapply() from util
Sat, 16 Jun 2018 19:31:07 +0900 Yuya Nishihara py3: ditch email.parser.BytesParser which appears to be plain crap
Wed, 13 Jun 2018 22:51:08 +0530 Pulkit Goyal py3: replace `unicode` with pycompat.unicode
Sat, 26 May 2018 12:38:07 +0900 Yuya Nishihara py3: wrap tempfile.NamedTemporaryFile() to return bytes fp.name
Sat, 26 May 2018 12:20:36 +0900 Yuya Nishihara py3: wrap tempfile.mkdtemp() to use bytes path
Sat, 26 May 2018 12:14:04 +0900 Yuya Nishihara py3: wrap tempfile.mkstemp() to use bytes path
Sat, 05 May 2018 18:35:16 -0700 Gregory Szorc pycompat: export queue module instead of symbols in module (API)
Fri, 13 Apr 2018 18:17:45 -0400 Augie Fackler py3: paper over differences in future exception handling
Mon, 09 Apr 2018 12:28:57 -0700 Gregory Szorc pycompat: export a handle on concurrent.futures
Sat, 24 Mar 2018 14:24:32 +0900 Yuya Nishihara util: make safehasattr() a pycompat function
Mon, 12 Mar 2018 20:45:10 +0900 Yuya Nishihara annotate: do not construct attr.s object per line while computing history
Wed, 14 Mar 2018 11:52:35 -0700 Gregory Szorc util: prefer "bytesio" to "stringio"
Tue, 13 Mar 2018 21:22:14 +0900 Yuya Nishihara pycompat: name maplist() and ziplist() for better traceback message
Sat, 03 Mar 2018 12:36:05 -0500 Yuya Nishihara py3: make os.curdir a bytes
Sat, 03 Mar 2018 12:34:35 -0500 Yuya Nishihara py3: make os.pardir a bytes
Tue, 27 Feb 2018 00:33:46 +0530 Pulkit Goyal pycompat: prevent encoding or decoding values if not required
Thu, 01 Mar 2018 17:46:34 -0500 Augie Fackler pycompat: add support for encoding argument to our wrapper
Tue, 20 Feb 2018 21:37:30 -0500 Matt Harbison pycompat: correct the shlex.split() proxy method signature in py3
Sat, 17 Feb 2018 18:09:56 +0900 Yuya Nishihara py3: factor out byterepr() which returns an asciified value on py3
Tue, 13 Feb 2018 23:00:01 -0700 Augie Fackler py3: introduce and use pycompat.getargspec
Sun, 11 Feb 2018 14:17:23 -0800 Gregory Szorc py3: use email parser that operates on bytes
Sat, 27 Jan 2018 17:46:37 +0900 Yuya Nishihara py3: drop b'' from repr() of smartset
Sat, 27 Jan 2018 17:31:25 +0900 Yuya Nishihara py3: always drop b'' prefix from repr() of bytestr
Mon, 11 Dec 2017 05:56:35 +0530 Pulkit Goyal py3: introduce pycompat.ziplist as zip is a generator on Python 3
Fri, 24 Nov 2017 01:09:00 +0900 Yuya Nishihara fancyopts: use getopt.gnu_getopt()
Thu, 12 Oct 2017 19:20:04 -0700 Jun Wu pycompat: define operating system constants
Wed, 11 Oct 2017 17:27:21 -0700 Jun Wu selectors2: do not use platform.system()
Wed, 04 Oct 2017 11:58:00 -0400 Augie Fackler urllibcompat: move some adapters from pycompat to urllibcompat
Wed, 16 Aug 2017 13:54:24 +0900 Yuya Nishihara py3: select input or raw_input by pycompat
Wed, 02 Aug 2017 22:51:19 +0900 Yuya Nishihara util: fix sortdict.update() to call __setitem__() on PyPy (issue5639) stable
Fri, 16 Jun 2017 03:01:22 +0530 Pulkit Goyal pycompat: move the queue related definitions below queue import
Fri, 16 Jun 2017 02:48:17 +0530 Pulkit Goyal pycompat: move multiline comments above a function to function doc
Fri, 16 Jun 2017 00:36:17 +0530 Pulkit Goyal py3: add a new bytesurl() to convert a str url into bytes
Fri, 16 Jun 2017 00:32:52 +0530 Pulkit Goyal py3: add a new strurl() which will convert a bytes url to str
Thu, 01 Jun 2017 22:24:15 +0900 Yuya Nishihara py3: convert __doc__ back to bytes in help.py
Thu, 04 May 2017 11:51:07 +0900 Yuya Nishihara pycompat: try __bytes__() to convert object to bytestr
Thu, 20 Apr 2017 22:16:12 +0900 Yuya Nishihara pycompat: extract helper to raise exception with traceback
Wed, 12 Apr 2017 18:42:20 -0700 Gregory Szorc pycompat: import correct cookie module on Python 3
Thu, 09 Mar 2017 21:35:21 -0800 Gregory Szorc util: make cookielib module available
Fri, 07 Apr 2017 23:35:51 +0530 Pulkit Goyal py3: add pycompat.unicode and add it to importer
Fri, 07 Apr 2017 16:00:44 +0530 Pulkit Goyal py3: add a bytes version of urllib.parse.urlencode() to pycompat.py
Wed, 05 Apr 2017 00:34:58 +0900 Yuya Nishihara py3: have registrar process docstrings in bytes
Wed, 29 Mar 2017 21:23:28 +0900 Yuya Nishihara pycompat: provide bytes os.linesep
Wed, 29 Mar 2017 21:13:55 +0900 Yuya Nishihara pycompat: introduce identity function as a compat stub
Tue, 21 Mar 2017 22:47:49 -0700 Gregory Szorc py3: stop exporting urlparse from pycompat and util (API)
Tue, 21 Mar 2017 22:34:17 -0700 Gregory Szorc pycompat: define urlreq.urlparse and urlreq.unparse aliases
Tue, 21 Mar 2017 22:28:16 -0700 Gregory Szorc pycompat: remove urlunquote alias
Tue, 21 Mar 2017 22:20:11 -0700 Gregory Szorc pycompat: alias urlreq.unquote to unquote_to_bytes
Sun, 19 Mar 2017 14:12:38 -0400 Augie Fackler pycompat: add maplist alias for old map behavior
Wed, 08 Mar 2017 22:48:26 +0900 Yuya Nishihara pycompat: add bytestr wrapper which mostly acts as a Python 2 str
Wed, 15 Mar 2017 09:32:18 -0700 Martin von Zweigbergk py3: make py3 compat.iterbytestr simpler and faster
Wed, 15 Mar 2017 09:30:50 -0700 Martin von Zweigbergk py3: optimize py3 compat.bytechr using Struct.pack
Mon, 13 Mar 2017 12:16:47 -0700 Gregory Szorc pycompat: custom implementation of urllib.parse.quote()
Mon, 13 Mar 2017 12:14:17 -0700 Gregory Szorc pycompat: alias urllib symbols directly
Sun, 12 Mar 2017 17:04:45 -0700 Yuya Nishihara pycompat: add helper to iterate each char in bytes
Sun, 12 Mar 2017 12:54:11 -0700 Yuya Nishihara pycompat: move imports of cStringIO/io to where they are used
Mon, 13 Mar 2017 00:55:14 +0530 Pulkit Goyal pycompat: default to BytesIO instead of StringIO
Sat, 11 Mar 2017 13:53:14 -0500 Augie Fackler merge with stable
Tue, 07 Mar 2017 13:24:24 -0500 Augie Fackler pycompat: verify sys.argv exists before forwarding it (issue5493) stable
Wed, 08 Mar 2017 22:30:12 +0900 Yuya Nishihara py3: factor out bytechr() function
Fri, 03 Mar 2017 13:04:32 +0530 Pulkit Goyal py3: add pycompat.open and replace open() calls
Sun, 15 Jan 2017 13:17:05 +0530 Pulkit Goyal py3: replace pycompat.getenv with encoding.environ.get
Sun, 25 Dec 2016 03:06:55 +0530 Pulkit Goyal py3: have a bytes version of shlex.split()
Tue, 20 Dec 2016 00:02:24 +0530 Pulkit Goyal py3: have bytes version of sys.executable
Mon, 19 Dec 2016 02:35:38 +0530 Pulkit Goyal py3: have bytes version of os.getenv
Sun, 18 Dec 2016 00:52:05 +0530 Pulkit Goyal py3: have a bytes version of sys.platform
Sun, 18 Dec 2016 00:44:21 +0530 Pulkit Goyal py3: have a bytes version of os.altsep
Wed, 07 Dec 2016 21:53:03 +0530 Pulkit Goyal py3: utility functions to convert keys of kwargs to bytes/unicodes
Tue, 06 Dec 2016 06:36:36 +0530 Pulkit Goyal py3: make a bytes version of getopt.getopt()
Tue, 22 Nov 2016 18:46:50 +0530 Pulkit Goyal py3: add os.getcwdb() to have bytes path
Thu, 20 Oct 2016 23:40:24 +0900 Yuya Nishihara py3: provide bytes stdin/out/err through util module
Wed, 09 Nov 2016 22:06:09 +0900 Yuya Nishihara py3: document why os.fsencode() can be used to get back bytes argv
Sun, 06 Nov 2016 04:36:26 +0530 Pulkit Goyal py3: have bytes version of sys.argv
Sun, 09 Oct 2016 09:02:25 -0400 Augie Fackler pycompat: introduce an alias for urllib.unquote
Sun, 06 Nov 2016 03:44:44 +0530 Pulkit Goyal py3: have pycompat.ospathsep and pycompat.ossep
Sun, 06 Nov 2016 03:33:22 +0530 Pulkit Goyal py3: add a bytes version of os.name
Sun, 06 Nov 2016 03:12:40 +0530 Pulkit Goyal py3: add os.fsdecode() as pycompat.fsdecode()
Mon, 10 Oct 2016 23:11:15 +0100 Martijn Pieters pycompat: only accept a bytestring filepath in Python 2
Sun, 09 Oct 2016 17:44:23 +0200 Martijn Pieters py3: add an os.fsencode backport to ease path handling
Sat, 08 Oct 2016 08:35:43 -0400 Augie Fackler pycompat: when setting attrs, ensure we use sysstr
Wed, 28 Sep 2016 22:32:09 +0900 Yuya Nishihara pycompat: extract function that converts attribute or encoding name to str
Wed, 28 Sep 2016 20:01:23 +0900 Yuya Nishihara pycompat: provide 'ispy3' constant
Sun, 14 Aug 2016 14:46:24 +0900 Yuya Nishihara pycompat: delay loading modules registered to stub
Tue, 16 Aug 2016 12:35:15 +0900 Yuya Nishihara py3: import builtin wrappers automagically by code transformer
Sun, 14 Aug 2016 12:51:21 +0900 Yuya Nishihara py3: provide (del|get|has|set)attr wrappers that accepts bytes
Sun, 14 Aug 2016 12:44:13 +0900 Yuya Nishihara py3: check python version to enable builtins hack
Sun, 14 Aug 2016 12:41:54 +0900 Yuya Nishihara py3: move xrange alias next to import lines
Sat, 13 Aug 2016 04:21:42 +0530 Pulkit Goyal pycompat: avoid using an extra function
Sat, 13 Aug 2016 03:03:01 +0530 Pulkit Goyal pycompat: remove multiple occurences of urlencode
Sun, 17 Jul 2016 19:48:04 +0530 Pulkit Goyal pycompat: make pycompat demandimport friendly
Wed, 13 Jul 2016 23:38:29 +0530 Pulkit Goyal py3: conditionalize BaseHTTPServer, SimpleHTTPServer and CGIHTTPServer import
Tue, 28 Jun 2016 16:01:53 +0530 Pulkit Goyal py3: conditionalize httplib import
Mon, 27 Jun 2016 16:48:54 +0530 Pulkit Goyal py3: conditionalize SocketServer import
Mon, 27 Jun 2016 16:37:37 +0530 Pulkit Goyal py3: conditionalize xmlrpclib import
Mon, 27 Jun 2016 16:16:10 +0530 Pulkit Goyal py3: conditionalize the urlparse import
Sat, 25 Jun 2016 17:22:06 -0700 Gregory Szorc pycompat: add HTTPPasswordMgrWithDefaultRealm to Python 3 block
Fri, 24 Jun 2016 02:04:43 +0200 Pierre-Yves David pyflakes: use pycompat.pickles to prevent error
Sat, 04 Jun 2016 14:38:00 +0530 Pulkit Goyal py3: conditionalize cPickle import by adding in util
Thu, 07 Apr 2016 00:05:48 +0000 timeless pycompat: add util.urlerr util.urlreq classes for py3 compat
Wed, 06 Apr 2016 20:31:31 +0000 timeless pycompat: add util.stringio to handle py3 divergence
Wed, 06 Apr 2016 22:35:52 +0000 timeless pycompat: alias xrange to range in py3
Fri, 08 Apr 2016 14:03:05 +0000 timeless pycompat: fix demand import handling of Queue
Wed, 06 Apr 2016 20:00:49 +0000 timeless pycompat: add empty and queue to handle py3 divergence
less more (0) tip