annotate contrib/casesmash.py @ 52088:51057ab0dffa stable

py-3-13: stabilize the docstring output across all supported Python versions Python 3.13 now trims indents from docstrings at compilation time (to save space in .pyc), so all of our helptext is affected. The indentation has never served a user-facing purpose and was more here because nobody cared enough to remove it: we gain some screen space this way. Rather than undo the transformation (which isn't really possible since the transform also deletes leading/trailing whitespace), we align the behavior of older Python versions with that of 3.13. Unfortunately, this means breaking some of the translations. I've only touched the ones that need to work for some tooling tests to pass, but I do not have the time to fix the rest of them across all languages, since they cannot be done in an automated way. i18n updates have been basically abandonned for a good while now, hopefully someone cares enough to bring them back.
author Raphaël Gomès <rgomes@octobus.net>
date Thu, 24 Oct 2024 15:23:52 +0200
parents 6000f5b25c9b
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
28351
42a7301fb4d5 casesmash: use absolute_import
Pulkit Goyal <7895pulkit@gmail.com>
parents: 19378
diff changeset
1 import __builtin__
42a7301fb4d5 casesmash: use absolute_import
Pulkit Goyal <7895pulkit@gmail.com>
parents: 19378
diff changeset
2 import os
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 28351
diff changeset
3 from mercurial import util
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 28351
diff changeset
4
14730
f5765353d430 merge with stable
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
5
f5765353d430 merge with stable
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
6 def lowerwrap(scope, funcname):
f5765353d430 merge with stable
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
7 f = getattr(scope, funcname)
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 28351
diff changeset
8
14730
f5765353d430 merge with stable
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
9 def wrap(fname, *args, **kwargs):
f5765353d430 merge with stable
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
10 d, base = os.path.split(fname)
f5765353d430 merge with stable
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
11 try:
f5765353d430 merge with stable
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
12 files = os.listdir(d or '.')
19378
9de689d20230 cleanup: drop unused variables and an unused import
Simon Heimberg <simohe@besonet.ch>
parents: 19322
diff changeset
13 except OSError:
14730
f5765353d430 merge with stable
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
14 files = []
f5765353d430 merge with stable
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
15 if base in files:
f5765353d430 merge with stable
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
16 return f(fname, *args, **kwargs)
f5765353d430 merge with stable
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
17 for fn in files:
f5765353d430 merge with stable
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
18 if fn.lower() == base.lower():
f5765353d430 merge with stable
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
19 return f(os.path.join(d, fn), *args, **kwargs)
f5765353d430 merge with stable
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
20 return f(fname, *args, **kwargs)
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 28351
diff changeset
21
14730
f5765353d430 merge with stable
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
22 scope.__dict__[funcname] = wrap
f5765353d430 merge with stable
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
23
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 28351
diff changeset
24
14730
f5765353d430 merge with stable
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
25 def normcase(path):
f5765353d430 merge with stable
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
26 return path.lower()
f5765353d430 merge with stable
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
27
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 28351
diff changeset
28
14730
f5765353d430 merge with stable
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
29 os.path.normcase = normcase
f5765353d430 merge with stable
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
30
f5765353d430 merge with stable
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
31 for f in 'file open'.split():
f5765353d430 merge with stable
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
32 lowerwrap(__builtin__, f)
f5765353d430 merge with stable
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
33
f5765353d430 merge with stable
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
34 for f in "chmod chown open lstat stat remove unlink".split():
f5765353d430 merge with stable
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
35 lowerwrap(os, f)
f5765353d430 merge with stable
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
36
f5765353d430 merge with stable
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
37 for f in "exists lexists".split():
f5765353d430 merge with stable
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
38 lowerwrap(os.path, f)
f5765353d430 merge with stable
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
39
f5765353d430 merge with stable
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
40 lowerwrap(util, 'posixfile')