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 -->
|
<!-- Changes to how Black is packaged, such as dependency requirements -->
|
||||||
|
|
||||||
- Upgrade mypyc from 0.991 to 1.3 (#3697)
|
- 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
|
### Parser
|
||||||
|
|
||||||
|
@ -165,8 +165,6 @@ Utilities
|
|||||||
|
|
||||||
.. autofunction:: black.linegen.normalize_invisible_parens
|
.. autofunction:: black.linegen.normalize_invisible_parens
|
||||||
|
|
||||||
.. autofunction:: black.patch_click
|
|
||||||
|
|
||||||
.. autofunction:: black.nodes.preceding_leaf
|
.. autofunction:: black.nodes.preceding_leaf
|
||||||
|
|
||||||
.. autofunction:: black.re_compile_maybe_verbose
|
.. autofunction:: black.re_compile_maybe_verbose
|
||||||
|
@ -1410,40 +1410,6 @@ def nullcontext() -> Iterator[None]:
|
|||||||
yield
|
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:
|
def patched_main() -> None:
|
||||||
# PyInstaller patches multiprocessing to need freeze_support() even in non-Windows
|
# PyInstaller patches multiprocessing to need freeze_support() even in non-Windows
|
||||||
# environments so just assume we always need to call it if frozen.
|
# environments so just assume we always need to call it if frozen.
|
||||||
@ -1452,7 +1418,6 @@ def patched_main() -> None:
|
|||||||
|
|
||||||
freeze_support()
|
freeze_support()
|
||||||
|
|
||||||
patch_click()
|
|
||||||
main()
|
main()
|
||||||
|
|
||||||
|
|
||||||
|
@ -225,7 +225,6 @@ def parse_python_variant_header(value: str) -> Tuple[bool, Set[black.TargetVersi
|
|||||||
def patched_main() -> None:
|
def patched_main() -> None:
|
||||||
maybe_install_uvloop()
|
maybe_install_uvloop()
|
||||||
freeze_support()
|
freeze_support()
|
||||||
black.patch_click()
|
|
||||||
main()
|
main()
|
||||||
|
|
||||||
|
|
||||||
|
@ -1455,30 +1455,6 @@ def test_assert_equivalent_different_asts(self) -> None:
|
|||||||
with self.assertRaises(AssertionError):
|
with self.assertRaises(AssertionError):
|
||||||
black.assert_equivalent("{}", "None")
|
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 test_root_logger_not_used_directly(self) -> None:
|
||||||
def fail(*args: Any, **kwargs: Any) -> None:
|
def fail(*args: Any, **kwargs: Any) -> None:
|
||||||
self.fail("Record created with root logger")
|
self.fail("Record created with root logger")
|
||||||
|
Loading…
Reference in New Issue
Block a user