Remove click patch (#3768)
Apparently this was only needed on Python 3.6. We've now dropped support for 3.6 and 3.7. It's also not needed on new enough click.
This commit is contained in:
parent
4130c65578
commit
114e8357e6
@ -43,6 +43,7 @@
|
||||
<!-- Changes to how Black is packaged, such as dependency requirements -->
|
||||
|
||||
- Upgrade mypyc from 0.991 to 1.3 (#3697)
|
||||
- Remove patching of Click that mitigated errors on Python 3.6 with `LANG=C` (#3768)
|
||||
|
||||
### Parser
|
||||
|
||||
|
@ -165,8 +165,6 @@ Utilities
|
||||
|
||||
.. autofunction:: black.linegen.normalize_invisible_parens
|
||||
|
||||
.. autofunction:: black.patch_click
|
||||
|
||||
.. autofunction:: black.nodes.preceding_leaf
|
||||
|
||||
.. autofunction:: black.re_compile_maybe_verbose
|
||||
|
@ -1410,40 +1410,6 @@ def nullcontext() -> Iterator[None]:
|
||||
yield
|
||||
|
||||
|
||||
def patch_click() -> None:
|
||||
"""Make Click not crash on Python 3.6 with LANG=C.
|
||||
|
||||
On certain misconfigured environments, Python 3 selects the ASCII encoding as the
|
||||
default which restricts paths that it can access during the lifetime of the
|
||||
application. Click refuses to work in this scenario by raising a RuntimeError.
|
||||
|
||||
In case of Black the likelihood that non-ASCII characters are going to be used in
|
||||
file paths is minimal since it's Python source code. Moreover, this crash was
|
||||
spurious on Python 3.7 thanks to PEP 538 and PEP 540.
|
||||
"""
|
||||
modules: List[Any] = []
|
||||
try:
|
||||
from click import core
|
||||
except ImportError:
|
||||
pass
|
||||
else:
|
||||
modules.append(core)
|
||||
try:
|
||||
# Removed in Click 8.1.0 and newer; we keep this around for users who have
|
||||
# older versions installed.
|
||||
from click import _unicodefun # type: ignore
|
||||
except ImportError:
|
||||
pass
|
||||
else:
|
||||
modules.append(_unicodefun)
|
||||
|
||||
for module in modules:
|
||||
if hasattr(module, "_verify_python3_env"):
|
||||
module._verify_python3_env = lambda: None
|
||||
if hasattr(module, "_verify_python_env"):
|
||||
module._verify_python_env = lambda: None
|
||||
|
||||
|
||||
def patched_main() -> None:
|
||||
# PyInstaller patches multiprocessing to need freeze_support() even in non-Windows
|
||||
# environments so just assume we always need to call it if frozen.
|
||||
@ -1452,7 +1418,6 @@ def patched_main() -> None:
|
||||
|
||||
freeze_support()
|
||||
|
||||
patch_click()
|
||||
main()
|
||||
|
||||
|
||||
|
@ -225,7 +225,6 @@ def parse_python_variant_header(value: str) -> Tuple[bool, Set[black.TargetVersi
|
||||
def patched_main() -> None:
|
||||
maybe_install_uvloop()
|
||||
freeze_support()
|
||||
black.patch_click()
|
||||
main()
|
||||
|
||||
|
||||
|
@ -1455,30 +1455,6 @@ def test_assert_equivalent_different_asts(self) -> None:
|
||||
with self.assertRaises(AssertionError):
|
||||
black.assert_equivalent("{}", "None")
|
||||
|
||||
def test_shhh_click(self) -> None:
|
||||
try:
|
||||
from click import _unicodefun # type: ignore
|
||||
except ImportError:
|
||||
self.skipTest("Incompatible Click version")
|
||||
|
||||
if not hasattr(_unicodefun, "_verify_python_env"):
|
||||
self.skipTest("Incompatible Click version")
|
||||
|
||||
# First, let's see if Click is crashing with a preferred ASCII charset.
|
||||
with patch("locale.getpreferredencoding") as gpe:
|
||||
gpe.return_value = "ASCII"
|
||||
with self.assertRaises(RuntimeError):
|
||||
_unicodefun._verify_python_env()
|
||||
# Now, let's silence Click...
|
||||
black.patch_click()
|
||||
# ...and confirm it's silent.
|
||||
with patch("locale.getpreferredencoding") as gpe:
|
||||
gpe.return_value = "ASCII"
|
||||
try:
|
||||
_unicodefun._verify_python_env()
|
||||
except RuntimeError as re:
|
||||
self.fail(f"`patch_click()` failed, exception still raised: {re}")
|
||||
|
||||
def test_root_logger_not_used_directly(self) -> None:
|
||||
def fail(*args: Any, **kwargs: Any) -> None:
|
||||
self.fail("Record created with root logger")
|
||||
|
Loading…
Reference in New Issue
Block a user