]>
git.madduck.net Git - etc/vim.git/blobdiff - src/black/__init__.py
madduck's git repository
Every one of the projects in this repository is available at the canonical
URL git://git.madduck.net/madduck/pub/<projectpath> — see
each project's metadata for the exact URL.
All patches and comments are welcome. Please squash your changes to logical
commits before using git-format-patch and git-send-email to
patches@ git. madduck. net .
If you'd read over the Git project's submission guidelines and adhered to them,
I'd be especially grateful.
SSH access, as well as push access can be individually
arranged .
If you use my repositories frequently, consider adding the following
snippet to ~/.gitconfig and using the third clone URL listed for each
project:
[url "git://git.madduck.net/madduck/"]
insteadOf = madduck:
import asyncio
from json.decoder import JSONDecodeError
import json
import asyncio
from json.decoder import JSONDecodeError
import json
-from concurrent.futures import Executor, ThreadPoolExecutor, ProcessPoolExecutor
from contextlib import contextmanager
from datetime import datetime
from enum import Enum
from contextlib import contextmanager
from datetime import datetime
from enum import Enum
import os
from pathlib import Path
from pathspec.patterns.gitwildmatch import GitWildMatchPatternError
import os
from pathlib import Path
from pathspec.patterns.gitwildmatch import GitWildMatchPatternError
import re
import signal
import sys
import tokenize
import traceback
from typing import (
import re
import signal
import sys
import tokenize
import traceback
from typing import (
from _black_version import version as __version__
from _black_version import version as __version__
+if TYPE_CHECKING:
+ from concurrent.futures import Executor
+
COMPILED = Path(__file__).suffix in (".pyd", ".so")
# types
COMPILED = Path(__file__).suffix in (".pyd", ".so")
# types
)
@click.version_option(
version=__version__,
)
@click.version_option(
version=__version__,
- message=f"%(prog)s, %(version)s (compiled: {'yes' if COMPILED else 'no'})",
+ message=(
+ f"%(prog)s, %(version)s (compiled: {'yes' if COMPILED else 'no'})\n"
+ f"Python ({platform.python_implementation()}) {platform.python_version()}"
+ ),
)
@click.argument(
"src",
)
@click.argument(
"src",
user_level_config = str(find_user_pyproject_toml())
if config == user_level_config:
out(
user_level_config = str(find_user_pyproject_toml())
if config == user_level_config:
out(
- f "Using configuration from user-level config at "
+ "Using configuration from user-level config at "
f"'{user_level_config}'.",
fg="blue",
)
f"'{user_level_config}'.",
fg="blue",
)
report.failed(path, str(exc))
report.failed(path, str(exc))
+# diff-shades depends on being to monkeypatch this function to operate. I know it's
+# not ideal, but this shouldn't cause any issues ... hopefully. ~ichard26
+@mypyc_attr(patchable=True)
def reformat_one(
src: Path, fast: bool, write_back: WriteBack, mode: Mode, report: "Report"
) -> None:
def reformat_one(
src: Path, fast: bool, write_back: WriteBack, mode: Mode, report: "Report"
) -> None:
workers: Optional[int],
) -> None:
"""Reformat multiple files using a ProcessPoolExecutor."""
workers: Optional[int],
) -> None:
"""Reformat multiple files using a ProcessPoolExecutor."""
+ from concurrent.futures import Executor, ThreadPoolExecutor, ProcessPoolExecutor
+
executor: Executor
loop = asyncio.get_event_loop()
worker_count = workers if workers is not None else DEFAULT_WORKERS
executor: Executor
loop = asyncio.get_event_loop()
worker_count = workers if workers is not None else DEFAULT_WORKERS
mode: Mode,
report: "Report",
loop: asyncio.AbstractEventLoop,
mode: Mode,
report: "Report",
loop: asyncio.AbstractEventLoop,
) -> None:
"""Run formatting of `sources` in parallel using the provided `executor`.
) -> None:
"""Run formatting of `sources` in parallel using the provided `executor`.
else:
versions = detect_target_versions(src_node, future_imports=future_imports)
else:
versions = detect_target_versions(src_node, future_imports=future_imports)
- normalize_fmt_off(src_node)
+ normalize_fmt_off(src_node, preview=mode.preview )
lines = LineGenerator(mode=mode)
elt = EmptyLineTracker(is_pyi=mode.is_pyi)
empty_line = Line(mode=mode)
lines = LineGenerator(mode=mode)
elt = EmptyLineTracker(is_pyi=mode.is_pyi)
empty_line = Line(mode=mode)
):
features.add(Feature.ANN_ASSIGN_EXTENDED_RHS)
):
features.add(Feature.ANN_ASSIGN_EXTENDED_RHS)
+ elif (
+ n.type == syms.except_clause
+ and len(n.children) >= 2
+ and n.children[1].type == token.STAR
+ ):
+ features.add(Feature.EXCEPT_STAR)
+
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.
"""
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
try:
from click import core
- from click import _unicodefun
- except ModuleNotFoundError:
- return
+ 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 (core, _unicodefun) :
if hasattr(module, "_verify_python3_env"):
module._verify_python3_env = lambda: None # type: ignore
if hasattr(module, "_verify_python_env"):
if hasattr(module, "_verify_python3_env"):
module._verify_python3_env = lambda: None # type: ignore
if hasattr(module, "_verify_python_env"):