{"full_name":"psf/black","owner":"psf","name":"black","url":"https://github.com/psf/black","description":"The uncompromising Python code formatter","homepage":"https://black.readthedocs.io/en/stable/","topics":[],"language":"Python","license":"MIT","avatar":"https://avatars.githubusercontent.com/u/50630501?v=4","created_at":"2018-03-14T19:54:45Z","pushed_at":"2026-11-09T06:50:54Z","metrics":{"stars":42150,"forks":2980,"watchers":221,"issues":2841,"prs":2660,"releases":57,"issues_open":null,"issues_closed":null,"prs_open":null,"prs_closed":null,"prs_merged":null,"discussions":0},"growth":{"day":{"stars":14,"forks":2,"base_day":"2026-11-09"},"week":{"stars":56,"forks":21,"base_day":"2026-11-03"},"month":{"stars":261,"forks":59,"base_day":"2026-10-11"}},"history":{"dates":["2026-09-06","2026-09-07","2026-09-08","2026-09-09","2026-09-10","2026-09-11","2026-09-12","2026-09-13","2026-09-14","2026-09-15","2026-09-16","2026-09-17","2026-09-18","2026-09-19","2026-09-20","2026-09-21","2026-09-22","2026-09-23","2026-09-24","2026-09-25","2026-09-26","2026-09-27","2026-09-28","2026-09-29","2026-09-30","2026-10-01","2026-10-02","2026-10-03","2026-10-04","2026-10-05","2026-10-06","2026-10-07","2026-10-08","2026-10-09","2026-10-10","2026-10-11","2026-10-12","2026-10-13","2026-10-14","2026-10-15","2026-10-16","2026-10-17","2026-10-18","2026-10-19","2026-10-20","2026-10-21","2026-10-22","2026-10-23","2026-10-24","2026-10-25","2026-10-26","2026-10-27","2026-10-28","2026-10-29","2026-10-30","2026-10-31","2026-11-01","2026-11-02","2026-11-03","2026-11-04","2026-11-09","2026-11-10"],"stars":[41828,41829,41834,41834,41836,41841,41842,41841,41844,41842,41843,41842,41845,41848,41846,41848,41848,41848,41850,41850,41852,41857,41857,41859,41861,41858,41856,41859,41859,41864,41867,41869,41874,41879,41887,41889,41896,41902,41909,41915,41923,41931,41935,41939,41949,41954,41966,41976,41990,42004,42025,42048,42061,42078,42065,42076,42086,42089,42094,42103,42136,42150],"forks":[2861,2862,2863,2864,2865,2865,2865,2867,2869,2873,2872,2871,2872,2873,2872,2873,2874,2880,2883,2886,2887,2888,2893,2896,2898,2899,2903,2904,2905,2907,2907,2909,2912,2910,2916,2921,2924,2926,2926,2929,2930,2933,2937,2938,2940,2942,2939,2943,2946,2946,2948,2952,2952,2950,2951,2952,2955,2956,2959,2959,2978,2980],"watchers":[226,227,227,227,227,227,227,227,227,227,227,226,226,226,226,226,226,226,226,226,226,226,226,226,225,225,225,225,225,225,225,225,225,225,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,221,221,221,221,221,221,221,221,221,221,221,221,221],"issues_open":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"prs_open":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]},"boards":{},"same_owner":[{"full_name":"psf/requests","name":"requests","boards":{}},{"full_name":"psf/requests-html","name":"requests-html","boards":{}}],"issues":[{"number":2156,"title":"Use optional parentheses more often","comments":34,"created_at":"2021-04-27T19:33:34Z"},{"number":2238,"title":"Improving the contributing experience","comments":23,"created_at":"2021-05-17T00:49:06Z"},{"number":779,"title":"Black's public API","comments":22,"created_at":"2019-03-23T10:23:43Z"},{"number":359,"title":"Cython grammar support","comments":22,"created_at":"2018-06-15T22:23:24Z"},{"number":2135,"title":"Turn off magic trailing commas by default","comments":21,"created_at":"2021-04-26T06:26:58Z"},{"number":571,"title":"Strange formatting of  fluent interface","comments":20,"created_at":"2018-10-17T19:04:14Z"},{"number":2121,"title":"Add linebreak in comprehension with complex element expression","comments":17,"created_at":"2021-04-20T22:51:58Z"},{"number":809,"title":"Line too long: Lambda with many parameters","comments":17,"created_at":"2019-04-18T20:11:35Z"}],"discussions":[],"latest_release":{"name":"26.10.1","tag":"26.10.1","published_at":"2026-10-10T04:11:33Z","body":"### Highlights\n\nThis release fixes a security issue in Black's bundled GitHub Action. Repositories that\nuse the action are encouraged to update to the latest version of Black immediately. This\nupdate is received automatically when using `psf/black@stable`, and is independent of\nthe version of Black installed by the action.\n\nWhen the GitHub Action reads version specifiers from `tool.black.required-version`, it\nnow only accepts released versions of Black, as it already did for `black` requirements\nin dependency lists. Other values, such as URL references, are now rejected. This issue\nhas been registered as `GHSA-cg8m-r9f2-5wm2`; a CVE identifier is pending.\n\n### Stable style\n\n- Fix a long Jupyter notebook assignment magic (for example `x = !ls -la`) being wrapped\n  in parentheses, which IPython can no longer run; such cells are now left unchanged\n  (#5481)\n- Keep repeated lines outside the selected `--line-ranges` unchanged (#5436)\n- Fix `--line-ranges` formatting lines that follow a statement when formatting joins or\n  re-indents that statement (#5484)\n- Fix `--line-ranges` crashing with an internal error when an unselected statement has a\n  `# fmt: skip` comment on the last line before a closing bracket (#5477)\n- Prevent moving an encoding declaration (for example `# -*- coding: latin-1 -*-`) onto\n  the first two lines of a file (#5487)\n- Fix adding an extra trailing blank line inside a multi-line module docstring when its\n  last line is near the line length limit (#5494)\n\n### Preview style\n\n- Do not split short expressions on delimiters (such as binary operators, comparisons,\n  or comprehensions) inside brackets when preceded by a standalone comment (#5455)\n- Fix the unstable `string_processing` feature removing backslash-newline sequences from\n  raw strings, which changed their value (#5482)\n- Avoid adding unnecessary parentheses around unbreakable right-hand side expressions in\n  assignments (such as annotated assignments or subscript targets) (#5473)\n- Parenthesize expressions with parameter comments when they exceed the line length\n  under `--preview` (#5442)\n- Fix `wrap_long_dict_values_in_parens` dropping the parentheses around a right-hand\n  side that contains a dictionary, leaving a line over the length limit (#5492)\n- Fix the unstable `string_processing` feature adding a space after `*` or `**` in a PEP\n  695 type parameter (`* Ts = ...`) when it splits a string in the parameter's default\n  (#5504)\n- Avoid unnecessary line splits of trailers (such as indexing/subscripts) when an\n  earlier bracket split exceeds the line length only due to a trailing comment (#5498)\n\n### Configuration\n\n- Add `--cache-dir` to configure the cache directory from the command line (#5433)\n- Don't cache a file as formatted after formatting or checking it with `--line-ranges`,\n  which made a later full `black --check` pass and `black` skip the unformatted lines\n  (#5476)\n- Respect a `.gitignore` that starts with a UTF-8 byte order mark. The mark became part\n  of the first pattern, so that pattern never matched and Black formatted files that git\n  ignores (#5497)\n\n### Performance\n\n- Avoid quadratic runtime when splitting very long lines with many trailing bracket\n  pairs (such as consecutive subscripts) (#5475)\n\n### Integrations\n\n- Fix the GitHub Action crashing on dependency-group includes when `use_pyproject` is\n  enabled (#5479)\n- When the GitHub Action reads version specifiers from `tool.black.required-version`, it\n  now only accepts released versions of Black, as it already did for `black`\n  requirements in dependency lists. Other values, such as URL references, are now\n  rejected. (#5510)\n"},"readme":true,"readme_zh":false,"news":[],"stale":false,"snapshot_at":"2026-11-10T09:35:25Z","history_start":"2026-09-06"}