Skip to content

Commit

Permalink
Added CLI argument for using Sphinx default.
Browse files Browse the repository at this point in the history
  • Loading branch information
carltongibson committed Dec 1, 2022
1 parent f269206 commit a121cc0
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 6 deletions.
25 changes: 20 additions & 5 deletions blacken_docs.py
Expand Up @@ -93,7 +93,7 @@ class CodeBlockError(NamedTuple):


def format_str(
src: str, black_mode: black.FileMode,
src: str, black_mode: black.FileMode, use_sphinx_default: bool = False,
) -> tuple[str, Sequence[CodeBlockError]]:
errors: list[CodeBlockError] = []

Expand Down Expand Up @@ -208,19 +208,26 @@ def _latex_pycon_match(match: Match[str]) -> str:
src = MD_PYCON_RE.sub(_md_pycon_match, src)
src = RST_RE.sub(_rst_match, src)
src = RST_PYCON_RE.sub(_rst_pycon_match, src)
src = RST_SPHINX_DEFAULT_LANG_RE.sub(_rst_sphinx_default_lang_match, src)
if use_sphinx_default:
src = RST_SPHINX_DEFAULT_LANG_RE.sub(
_rst_sphinx_default_lang_match,
src,
)
src = LATEX_RE.sub(_latex_match, src)
src = LATEX_PYCON_RE.sub(_latex_pycon_match, src)
src = PYTHONTEX_RE.sub(_latex_match, src)
return src, errors


def format_file(
filename: str, black_mode: black.FileMode, skip_errors: bool,
filename: str,
black_mode: black.FileMode,
skip_errors: bool,
use_sphinx_default: bool,
) -> int:
with open(filename, encoding='UTF-8') as f:
contents = f.read()
new_contents, errors = format_str(contents, black_mode)
new_contents, errors = format_str(contents, black_mode, use_sphinx_default)
for error in errors:
lineno = contents[:error.offset].count('\n') + 1
print(f'{filename}:{lineno}: code block parse error {error.exc}')
Expand Down Expand Up @@ -253,6 +260,9 @@ def main(argv: Sequence[str] | None = None) -> int:
'-S', '--skip-string-normalization', action='store_true',
)
parser.add_argument('-E', '--skip-errors', action='store_true')
parser.add_argument(
'--use-sphinx-default', action='store_true',
)
parser.add_argument('filenames', nargs='*')
args = parser.parse_args(argv)

Expand All @@ -264,7 +274,12 @@ def main(argv: Sequence[str] | None = None) -> int:

retv = 0
for filename in args.filenames:
retv |= format_file(filename, black_mode, skip_errors=args.skip_errors)
retv |= format_file(
filename,
black_mode,
skip_errors=args.skip_errors,
use_sphinx_default=args.use_sphinx_default,
)
return retv


Expand Down
2 changes: 1 addition & 1 deletion tests/blacken_docs_test.py
Expand Up @@ -203,7 +203,7 @@ def test_format_src_rst_sphinx_default_language():
'\n'
'world\n'
)
after, _ = blacken_docs.format_str(before, BLACK_MODE)
after, _ = blacken_docs.format_str(before, BLACK_MODE, True)
assert after == (
'hello::\n'
'\n'
Expand Down

0 comments on commit a121cc0

Please sign in to comment.