[Python-Dev] do people use sys._mercurial?

Nick Coghlan ncoghlan at gmail.com
Fri Jan 22 21:47:14 EST 2016


On 23 January 2016 at 09:44, Brett Cannon <brett at python.org> wrote:
> Since we are going to be switching over to Git, sys._mercurial is going to
> be made to return a dummy value of `('CPython', '', '')` once we switch to
> Git. But my question is do we bother to replace it with sys._git? I wanted
> to make sure that the effort is worth it to keep changing these VCS-specific
> attributes every time we change our VCS (and no, we are not going to adopt a
> generic one; already had that debate). So do please speak up if you actually
> have found value from sys._mercurial.

It's incorporated into the output of
"platform.python_(branch|revision|build)()", so I assume most people
would use those if they needed to report exact build information,
rather than accessing the attribute directly.

We also use it ourselves in printing the appropriate banner when
running an interactive prompt (note the first line of the banner):

Python 3.6.0a0 (default:32a4e7b337c9, Jan 23 2016, 12:30:00)
[GCC 5.3.1 20151207 (Red Hat 5.3.1-2)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys._mercurial
('CPython', 'default', '32a4e7b337c9')

And the regression test suite:

$ ./python -m test
== CPython 3.6.0a0 (default:32a4e7b337c9, Jan 23 2016, 12:30:00) [GCC
5.3.1 20151207 (Red Hat 5.3.1-2)]
==   Linux-4.3.3-301.fc23.x86_64-x86_64-with-fedora-23-Twenty_Three
little-endian
==   hash algorithm: siphash24 64bit
==   /home/ncoghlan/devel/cpython/build/test_python_13167
Testing with flags: sys.flags(debug=0, inspect=0, interactive=0,
optimize=0, dont_write_bytecode=0, no_user_site=0, no_site=0,
ignore_environment=0, verbose=0, bytes_warning=0, quiet=0,
hash_randomization=1, isolated=0)
[  1/401] test_grammar
...

I guess that means "Update platform.py, and test the interactive
prompt and regression test banners still work as expected when built
from git" needs to be added to the CPython migration part of the PEP.
(In looking into this, I found several of the docstrings in
platform.py still referred to Subversion, even though the
platform._sys_version() helping had been updated to handle Mercurial)

Cheers,
Nick.


-- 
Nick Coghlan   |   ncoghlan at gmail.com   |   Brisbane, Australia


More information about the Python-Dev mailing list