X-Git-Url: https://git.madduck.net/etc/vim.git/blobdiff_plain/afed2c01903465f9a486ac481a66aa3413cc1b01..1f2ad77505337ee68ed5236fc5621cf0690e783c:/src/black/__init__.py

diff --git a/src/black/__init__.py b/src/black/__init__.py
index 117dc83..5b8c974 100644
--- a/src/black/__init__.py
+++ b/src/black/__init__.py
@@ -1,6 +1,5 @@
 import io
 import json
-import os
 import platform
 import re
 import sys
@@ -28,11 +27,6 @@ from typing import (
     Union,
 )
 
-if sys.version_info >= (3, 8):
-    from typing import Final
-else:
-    from typing_extensions import Final
-
 import click
 from click.core import ParameterSource
 from mypy_extensions import mypyc_attr
@@ -92,7 +86,6 @@ from blib2to3.pgen2 import token
 from blib2to3.pytree import Leaf, Node
 
 COMPILED = Path(__file__).suffix in (".pyd", ".so")
-DEFAULT_WORKERS: Final = os.cpu_count()
 
 # types
 FileContent = str
@@ -371,9 +364,8 @@ def validate_regex(
     "-W",
     "--workers",
     type=click.IntRange(min=1),
-    default=DEFAULT_WORKERS,
-    show_default=True,
-    help="Number of parallel workers",
+    default=None,
+    help="Number of parallel workers [default: number of CPUs in the system]",
 )
 @click.option(
     "-q",
@@ -448,7 +440,7 @@ def main(  # noqa: C901
     extend_exclude: Optional[Pattern[str]],
     force_exclude: Optional[Pattern[str]],
     stdin_filename: Optional[str],
-    workers: int,
+    workers: Optional[int],
     src: Tuple[str, ...],
     config: Optional[str],
 ) -> None:
@@ -661,6 +653,11 @@ def get_sources(
             if exclude is None:
                 exclude = re_compile_maybe_verbose(DEFAULT_EXCLUDES)
                 gitignore = get_gitignore(root)
+                p_gitignore = get_gitignore(p)
+                # No need to use p's gitignore if it is identical to root's gitignore
+                # (i.e. root and p point to the same directory).
+                if gitignore != p_gitignore:
+                    gitignore += p_gitignore
             else:
                 gitignore = None
             sources.update(
@@ -1378,7 +1375,9 @@ def patch_click() -> None:
 
 
 def patched_main() -> None:
-    if sys.platform == "win32" and getattr(sys, "frozen", False):
+    # PyInstaller patches multiprocessing to need freeze_support() even in non-Windows
+    # environments so just assume we always need to call it if frozen.
+    if getattr(sys, "frozen", False):
         from multiprocessing import freeze_support
 
         freeze_support()