]> git.madduck.net Git - etc/vim.git/commitdiff

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:

Nits
authorŁukasz Langa <lukasz@langa.pl>
Mon, 4 Jun 2018 23:42:10 +0000 (16:42 -0700)
committerŁukasz Langa <lukasz@langa.pl>
Mon, 4 Jun 2018 23:57:27 +0000 (16:57 -0700)
black.py
docs/reference/reference_functions.rst

index 19a023cff52db2e92d5cc0950125e20c96d24dff..7138d291f13e652df4e15039cf97a06312a05b57 100644 (file)
--- a/black.py
+++ b/black.py
@@ -1,5 +1,4 @@
 import asyncio
 import asyncio
-import pickle
 from asyncio.base_events import BaseEventLoop
 from concurrent.futures import Executor, ProcessPoolExecutor
 from enum import Enum, Flag
 from asyncio.base_events import BaseEventLoop
 from concurrent.futures import Executor, ProcessPoolExecutor
 from enum import Enum, Flag
@@ -10,10 +9,11 @@ import logging
 from multiprocessing import Manager
 import os
 from pathlib import Path
 from multiprocessing import Manager
 import os
 from pathlib import Path
+import pickle
 import re
 import re
-import tokenize
 import signal
 import sys
 import signal
 import sys
+import tokenize
 from typing import (
     Any,
     Callable,
 from typing import (
     Any,
     Callable,
@@ -57,6 +57,7 @@ CACHE_DIR = Path(user_cache_dir("black", version=__version__))
 # types
 FileContent = str
 Encoding = str
 # types
 FileContent = str
 Encoding = str
+NewLine = str
 Depth = int
 NodeType = int
 LeafID = int
 Depth = int
 NodeType = int
 LeafID = int
@@ -469,7 +470,7 @@ def format_file_in_place(
         mode |= FileMode.PYI
 
     with open(src, "rb") as buf:
         mode |= FileMode.PYI
 
     with open(src, "rb") as buf:
-        newline, encoding, src_contents = prepare_input(buf.read())
+        src_contents, encoding, newline = decode_bytes(buf.read())
     try:
         dst_contents = format_file_contents(
             src_contents, line_length=line_length, fast=fast, mode=mode
     try:
         dst_contents = format_file_contents(
             src_contents, line_length=line_length, fast=fast, mode=mode
@@ -513,7 +514,7 @@ def format_stdin_to_stdout(
     `line_length`, `fast`, `is_pyi`, and `force_py36` arguments are passed to
     :func:`format_file_contents`.
     """
     `line_length`, `fast`, `is_pyi`, and `force_py36` arguments are passed to
     :func:`format_file_contents`.
     """
-    newline, encoding, src = prepare_input(sys.stdin.buffer.read())
+    src, encoding, newline = decode_bytes(sys.stdin.buffer.read())
     dst = src
     try:
         dst = format_file_contents(src, line_length=line_length, fast=fast, mode=mode)
     dst = src
     try:
         dst = format_file_contents(src, line_length=line_length, fast=fast, mode=mode)
@@ -523,26 +524,16 @@ def format_stdin_to_stdout(
         return False
 
     finally:
         return False
 
     finally:
+        f = io.TextIOWrapper(
+            sys.stdout.buffer, encoding=encoding, newline=newline, write_through=True
+        )
         if write_back == WriteBack.YES:
         if write_back == WriteBack.YES:
-            f = io.TextIOWrapper(
-                sys.stdout.buffer,
-                encoding=encoding,
-                newline=newline,
-                write_through=True,
-            )
             f.write(dst)
             f.write(dst)
-            f.detach()
         elif write_back == WriteBack.DIFF:
             src_name = "<stdin>  (original)"
             dst_name = "<stdin>  (formatted)"
         elif write_back == WriteBack.DIFF:
             src_name = "<stdin>  (original)"
             dst_name = "<stdin>  (formatted)"
-            f = io.TextIOWrapper(
-                sys.stdout.buffer,
-                encoding=encoding,
-                newline=newline,
-                write_through=True,
-            )
             f.write(diff(src, dst, src_name, dst_name))
             f.write(diff(src, dst, src_name, dst_name))
-            f.detach()
+        f.detach()
 
 
 def format_file_contents(
 
 
 def format_file_contents(
@@ -603,17 +594,18 @@ def format_str(
     return dst_contents
 
 
     return dst_contents
 
 
-def prepare_input(src: bytes) -> Tuple[str, str, str]:
-    """Analyze `src` and return a tuple of (newline, encoding, decoded_contents)
+def decode_bytes(src: bytes) -> Tuple[FileContent, Encoding, NewLine]:
+    """Return a tuple of (decoded_contents, encoding, newline).
 
 
-    Where `newline` is either CRLF or LF, and `decoded_contents` is decoded with
-    universal newlines (i.e. only LF).
+    `newline` is either CRLF or LF but `decoded_contents` is decoded with
+    universal newlines (i.e. only contains LF).
     """
     srcbuf = io.BytesIO(src)
     encoding, lines = tokenize.detect_encoding(srcbuf.readline)
     newline = "\r\n" if b"\r\n" == lines[0][-2:] else "\n"
     srcbuf.seek(0)
     """
     srcbuf = io.BytesIO(src)
     encoding, lines = tokenize.detect_encoding(srcbuf.readline)
     newline = "\r\n" if b"\r\n" == lines[0][-2:] else "\n"
     srcbuf.seek(0)
-    return newline, encoding, io.TextIOWrapper(srcbuf, encoding).read()
+    with io.TextIOWrapper(srcbuf, encoding) as tiow:
+        return tiow.read(), encoding, newline
 
 
 GRAMMARS = [
 
 
 GRAMMARS = [
index a4f00dba0819fce2aaef68369812d7ed0892a3e8..3e061b80ef9c32da8859fcbebb12440be772a18a 100644 (file)
@@ -12,12 +12,16 @@ Assertions and checks
 
 .. autofunction:: black.assert_stable
 
 
 .. autofunction:: black.assert_stable
 
+.. autofunction:: black.can_omit_invisible_parens
+
 .. autofunction:: black.is_empty_tuple
 
 .. autofunction:: black.is_import
 
 .. autofunction:: black.is_line_short_enough
 
 .. autofunction:: black.is_empty_tuple
 
 .. autofunction:: black.is_import
 
 .. autofunction:: black.is_line_short_enough
 
+.. autofunction:: black.is_multiline_string
+
 .. autofunction:: black.is_one_tuple
 
 .. autofunction:: black.is_python36
 .. autofunction:: black.is_one_tuple
 
 .. autofunction:: black.is_python36
@@ -32,6 +36,9 @@ Assertions and checks
 
 .. autofunction:: black.is_vararg
 
 
 .. autofunction:: black.is_vararg
 
+.. autofunction:: black.is_yield
+
+
 Formatting
 ----------
 
 Formatting
 ----------
 
@@ -57,12 +64,12 @@ File operations
 Parsing
 -------
 
 Parsing
 -------
 
+.. autofunction:: black.decode_bytes
+
 .. autofunction:: black.lib2to3_parse
 
 .. autofunction:: black.lib2to3_unparse
 
 .. autofunction:: black.lib2to3_parse
 
 .. autofunction:: black.lib2to3_unparse
 
-.. autofunction:: black.prepare_input
-
 Split functions
 ---------------
 
 Split functions
 ---------------
 
@@ -102,6 +109,8 @@ Utilities
 
 .. autofunction:: black.enumerate_reversed
 
 
 .. autofunction:: black.enumerate_reversed
 
+.. autofunction:: black.enumerate_with_length
+
 .. autofunction:: black.generate_comments
 
 .. autofunction:: black.make_comment
 .. autofunction:: black.generate_comments
 
 .. autofunction:: black.make_comment