comparison mercurial/policy.py @ 43075:57875cf423c9

style: run a patched black on a subset of mercurial This applied black to the 20 smallest files in mercurial/: ls -S1 mercurial/*.py | tail -n20 | xargs black --skip-string-normalization Note that a few files failed to format, presumably due to a bug in my patch. The intent is to be able to compare results to D5064 with https://github.com/python/black/pull/826 applied to black. I skipped string normalization on this patch for clarity - in reality I think we'd want one pass without string normalization, followed by another to normalize strings (which is basically replacing ' with " globally.) # skip-blame mass-reformatting only Differential Revision: https://phab.mercurial-scm.org/D6342
author Augie Fackler <augie@google.com>
date Sat, 05 Oct 2019 10:29:34 -0400
parents 810f66b468cd
children c59eb1560c44
comparison
equal deleted inserted replaced
43074:9cc55b743713 43075:57875cf423c9
37 b'rust+c-allow': (r'cext', r'pure'), 37 b'rust+c-allow': (r'cext', r'pure'),
38 } 38 }
39 39
40 try: 40 try:
41 from . import __modulepolicy__ 41 from . import __modulepolicy__
42
42 policy = __modulepolicy__.modulepolicy 43 policy = __modulepolicy__.modulepolicy
43 except ImportError: 44 except ImportError:
44 pass 45 pass
45 46
46 # PyPy doesn't load C extensions. 47 # PyPy doesn't load C extensions.
55 if r'HGMODULEPOLICY' in os.environ: 56 if r'HGMODULEPOLICY' in os.environ:
56 policy = os.environ[r'HGMODULEPOLICY'].encode(r'utf-8') 57 policy = os.environ[r'HGMODULEPOLICY'].encode(r'utf-8')
57 else: 58 else:
58 policy = os.environ.get(r'HGMODULEPOLICY', policy) 59 policy = os.environ.get(r'HGMODULEPOLICY', policy)
59 60
61
60 def _importfrom(pkgname, modname): 62 def _importfrom(pkgname, modname):
61 # from .<pkgname> import <modname> (where . is looked through this module) 63 # from .<pkgname> import <modname> (where . is looked through this module)
62 fakelocals = {} 64 fakelocals = {}
63 pkg = __import__(pkgname, globals(), fakelocals, [modname], level=1) 65 pkg = __import__(pkgname, globals(), fakelocals, [modname], level=1)
64 try: 66 try:
66 except AttributeError: 68 except AttributeError:
67 raise ImportError(r'cannot import name %s' % modname) 69 raise ImportError(r'cannot import name %s' % modname)
68 # force import; fakelocals[modname] may be replaced with the real module 70 # force import; fakelocals[modname] may be replaced with the real module
69 getattr(mod, r'__doc__', None) 71 getattr(mod, r'__doc__', None)
70 return fakelocals[modname] 72 return fakelocals[modname]
73
71 74
72 # keep in sync with "version" in C modules 75 # keep in sync with "version" in C modules
73 _cextversions = { 76 _cextversions = {
74 (r'cext', r'base85'): 1, 77 (r'cext', r'base85'): 1,
75 (r'cext', r'bdiff'): 3, 78 (r'cext', r'bdiff'): 3,
84 (r'cffi', r'base85'): (r'pure', r'base85'), 87 (r'cffi', r'base85'): (r'pure', r'base85'),
85 (r'cffi', r'charencode'): (r'pure', r'charencode'), 88 (r'cffi', r'charencode'): (r'pure', r'charencode'),
86 (r'cffi', r'parsers'): (r'pure', r'parsers'), 89 (r'cffi', r'parsers'): (r'pure', r'parsers'),
87 } 90 }
88 91
92
89 def _checkmod(pkgname, modname, mod): 93 def _checkmod(pkgname, modname, mod):
90 expected = _cextversions.get((pkgname, modname)) 94 expected = _cextversions.get((pkgname, modname))
91 actual = getattr(mod, r'version', None) 95 actual = getattr(mod, r'version', None)
92 if actual != expected: 96 if actual != expected:
93 raise ImportError(r'cannot import module %s.%s ' 97 raise ImportError(
94 r'(expected version: %d, actual: %r)' 98 r'cannot import module %s.%s '
95 % (pkgname, modname, expected, actual)) 99 r'(expected version: %d, actual: %r)'
100 % (pkgname, modname, expected, actual)
101 )
102
96 103
97 def importmod(modname): 104 def importmod(modname):
98 """Import module according to policy and check API version""" 105 """Import module according to policy and check API version"""
99 try: 106 try:
100 verpkg, purepkg = _packageprefs[policy] 107 verpkg, purepkg = _packageprefs[policy]
112 if not purepkg: 119 if not purepkg:
113 raise 120 raise
114 pn, mn = _modredirects.get((purepkg, modname), (purepkg, modname)) 121 pn, mn = _modredirects.get((purepkg, modname), (purepkg, modname))
115 return _importfrom(pn, mn) 122 return _importfrom(pn, mn)
116 123
124
117 def _isrustpermissive(): 125 def _isrustpermissive():
118 """Assuming the policy is a Rust one, tell if it's permissive.""" 126 """Assuming the policy is a Rust one, tell if it's permissive."""
119 return policy.endswith(b'-allow') 127 return policy.endswith(b'-allow')
128
120 129
121 def importrust(modname, member=None, default=None): 130 def importrust(modname, member=None, default=None):
122 """Import Rust module according to policy and availability. 131 """Import Rust module according to policy and availability.
123 132
124 If policy isn't a Rust one, this returns `default`. 133 If policy isn't a Rust one, this returns `default`.