==== configure pycharm to format code with black ==== To run black on the entire file File -> Settings -> Tools -> External Tools -> click on + sign -> Name: Black Description: Black in pycharm configuration Program: C:\ProgramData\Continuum\Anaconda\envs\[ENV_NAME]\Scripts\black.exe Arguments: $FilePath$ Working directory: $ProjectFileDir$ To run black on selected text File -> Settings -> Tools -> External Tools -> click on + sign -> Name: Black Selected Description: run black on selected text Program: "C:\Program Files\Git\bin\bash.exe" Arguments: --login H:\work\myrepos\rutils\python3\black_on_selected.sh C:\ProgramData\Continuum\Anaconda\envs\ro_udw_env\Scripts\black.exe $FilePath$ $SelectionStartLine$ $SelectionEndLine$ Working directory: $ProjectFileDir$ Restart pycharm after adding the external tools. To format code Select code of interest -> Tools -> External Tools -> Black Selected See also :- * [[https://github.com/KamarajuKusumanchi/rutils/blob/master/python3/black_on_selected.sh | black_on_selected.sh]] (github.com/KamarajuKusumanchi) - simpler implementation; works with GNU sed. Tested it on Windows 10 + git bash + GNU sed 4.7. * https://godatadriven.com/blog/partial-python-code-formatting-with-black-pycharm/ - well explained; His script is a bit complex and the sed commands are mac specific. * https://www.jetbrains.com/help/pycharm/configuring-third-party-tools.html ==== do not convert single quotes to double quotes ==== pass ''%%--skip-string-normalization%%'' on the command line. Ref:- * https://black.readthedocs.io/en/stable/the_black_code_style/current_style.html#strings - this option is meant as an adoption helper, avoid using it for new projects. ==== useful links ==== * https://black.now.sh/ - Black Playground; To try black online * code repo - https://github.com/psf/black