id,node_id,number,title,user,state,locked,assignee,milestone,comments,created_at,updated_at,closed_at,author_association,pull_request,body,repo,type,active_lock_reason,performed_via_github_app,reactions,draft,state_reason
314455877,MDExOlB1bGxSZXF1ZXN0MTgxNzIzMzAz,209, Don't duplicate simple primary keys in the link column,45057,closed,0,,,6,2018-04-15T21:56:15Z,2018-04-18T08:40:37Z,2018-04-18T01:13:04Z,CONTRIBUTOR,simonw/datasette/pulls/209,"When there's a simple (single-column) primary key, it looks weird to duplicate it in the link column.
This change removes the second PK column and treats the link column as if it were the PK column from a header/sorting perspective.
This might make it a bit more difficult to tell what the link for the row is, I'm not sure yet. I feel like the alternative is to change the link column to just have the text ""view"" or something, instead of repeating the PK. (I doubt it makes much more sense with compound PKs.)
Bonus change in this PR: fix urlencoding of links in the displayed HTML.
Before:
![image](https://user-images.githubusercontent.com/45057/38783830-e2ababb4-40ff-11e8-97fb-25e286a8c920.png)
After:
![image](https://user-images.githubusercontent.com/45057/38783835-ebf6b48e-40ff-11e8-8c47-6a864cf21ccc.png)",107914493,pull,,,"{""url"": ""https://api.github.com/repos/simonw/datasette/issues/209/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",0,
721050815,MDU6SXNzdWU3MjEwNTA4MTU=,1019,"""Edit SQL"" button on canned queries",639012,closed,0,,6026070,7,2020-10-14T00:51:39Z,2020-10-23T19:44:06Z,2020-10-14T03:44:23Z,CONTRIBUTOR,,"Feature request: Would it be possible to add an ""edit this query"" button on canned queries? Clicking it would open the canned query as an editable sql query. I think the intent is to have named parameters to allow this, but sometimes you just gotta rewrite it? ",107914493,issue,,,"{""url"": ""https://api.github.com/repos/simonw/datasette/issues/1019/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,completed
853672224,MDU6SXNzdWU4NTM2NzIyMjQ=,1294,"""You can check out any time you like. But you can never leave!""",192568,open,0,,,0,2021-04-08T17:02:15Z,2021-04-08T18:35:50Z,,CONTRIBUTOR,,"(Feel free to rename this one.)
- The column gear lets you ""Show not-blank rows."" Then it places a parameter in the URL, which a web developer would notice, but a lot of users won't notice, or know to delete it. Would be good to toggle ""Show not-blank rows"" with ""Show all rows."" (Also would be quite helpful to have a ""Show blank rows | Show all rows"" option)
- The column gear lets you ""Sort ascending"" and ""Sort descending"" but then you're stuck with some sort of sorted version thereafter, unless you know to sort the ID column, or to remove the full _sort parameter and its value in the URL. Would be good to offer a ""Remove sort"" option in the gear.
- These requests are in the same camp as: https://github.com/simonw/datasette-vega/issues/36
- I suspect there are other url parameter instances where similar analysis would be helpful, but the three above are the use cases I've run across.
UPDATE:
- It would be helpful to have a ""Previous page"" available for all but the first table page.",107914493,issue,,,"{""url"": ""https://api.github.com/repos/simonw/datasette/issues/1294/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,
434321685,MDExOlB1bGxSZXF1ZXN0MjcxMzM4NDA1,434,"""datasette publish cloudrun"" command to publish to Google Cloud Run",10352819,closed,0,,,8,2019-04-17T14:41:18Z,2019-05-03T21:50:44Z,2019-05-03T13:59:02Z,CONTRIBUTOR,simonw/datasette/pulls/434,"This is a very rough draft to start a discussion on a possible datasette cloud run publish plugin (see issue #400).
The main change was to dynamically set the listening port in `make_dockerfile` to satisfy cloud run's [requirements](https://cloud.google.com/run/docs/reference/container-contract).
This was done by running `datasette` through `sh` to get environment variable substitution. Not sure if that's the right approach?
",107914493,pull,,,"{""url"": ""https://api.github.com/repos/simonw/datasette/issues/434/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",0,
752966476,MDU6SXNzdWU3NTI5NjY0NzY=,1114,--load-extension=spatialite not working with datasetteproject/datasette docker image,2182,closed,0,,,4,2020-11-29T17:35:20Z,2022-01-20T21:29:42Z,2020-11-29T17:37:45Z,CONTRIBUTOR,,"https://github.com/simonw/datasette/commit/6aa5886379dd9017215904fb28567b80018902f9 added the `--load-extension=spatialite` shortcut looking for the extension in these places:
https://github.com/simonw/datasette/blob/12877d7a48e2aa28bb5e780f929a218f7265d849/datasette/utils/__init__.py#L56-L60
However, in the datasetteproject/datasette docker image the file is at `/usr/local/lib/mod_spatialite.so`.
This results in the example command [here](https://docs.datasette.io/en/stable/installation.html#loading-spatialite) failing:
```
% docker run --rm -p 8001:8001 -v `pwd`:/mnt datasetteproject/datasette datasette -p 8001 -h 0.0.0.0 /mnt/data.db --load-extension=spatialite
Error: Could not find SpatiaLite extension
```
But it does work when given an explicit path:
```
% docker run --rm -p 8001:8001 -v `pwd`:/mnt datasetteproject/datasette datasette -p 8001 -h 0.0.0.0 /mnt/data.db --load-extension=/usr/local/lib/mod_spatialite.so
INFO: Started server process [1]
INFO: Waiting for application startup.
INFO: Application startup complete.
INFO: Uvicorn running on http://0.0.0.0:8001 (Press CTRL+C to quit)
...
```
Perhaps `SPATIALITE_PATHS` should include `/usr/local/lib/mod_spatialite.so`?",107914493,issue,,,"{""url"": ""https://api.github.com/repos/simonw/datasette/issues/1114/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,completed
273595473,MDExOlB1bGxSZXF1ZXN0MTUyMzYwNzQw,81,:fire: Removes DS_Store,50527,closed,0,,,2,2017-11-13T22:07:52Z,2017-11-14T02:24:54Z,2017-11-13T22:16:55Z,CONTRIBUTOR,simonw/datasette/pulls/81,,107914493,pull,,,"{""url"": ""https://api.github.com/repos/simonw/datasette/issues/81/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",0,
893890496,MDU6SXNzdWU4OTM4OTA0OTY=,1332,?_facet_size=X to increase number of facets results on the page,192568,closed,0,,,5,2021-05-18T02:40:16Z,2021-05-27T16:13:07Z,2021-05-23T00:34:37Z,CONTRIBUTOR,,"Is there a way to add a parameter to the URL to modify default_facet_size?
LIkewise, a way to produce a link on the three dots to expand to all items (or match previous number of items, or add x more)?
",107914493,issue,,,"{""url"": ""https://api.github.com/repos/simonw/datasette/issues/1332/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,completed
794554881,MDU6SXNzdWU3OTQ1NTQ4ODE=,1208,A lot of open(file) functions are used without a context manager thus producing ResourceWarning: unclosed file <_io.TextIOWrapper,4488943,closed,0,,,2,2021-01-26T20:56:28Z,2021-03-11T16:15:49Z,2021-03-11T16:15:49Z,CONTRIBUTOR,,"Your code is full of open files that are never closed, especially when you deal with reading/writing json/yaml files.
If you run python with warnings enabled this problem becomes evident.
This probably contributes to some memory leaks in long running datasettes if the GC will not 'collect' those resources properly.
This is easily fixed by using a context manager instead of just using open:
```python
with open('some_file', 'w') as opened_file:
opened_file.write('string')
```
In some newer parts of the code you use Path objects 'read_text' and 'write_text' functions which close the file properly and are prefered in some cases.
If you want I can create a PR for all places i found this pattern in.
Bellow is a fraction of places where i found a ResourceWarning:
```python
update-docs-help.py:
20 actual = actual.replace(""Usage: cli "", ""Usage: datasette "")
21: open(docs_path / filename, ""w"").write(actual)
22
datasette\app.py:
210 ):
211: inspect_data = json.load((config_dir / ""inspect-data.json"").open())
212 if immutables is None:
266 if config_dir and (config_dir / ""settings.json"").exists() and not config:
267: config = json.load((config_dir / ""settings.json"").open())
268 self._settings = dict(DEFAULT_SETTINGS, **(config or {}))
445 self._app_css_hash = hashlib.sha1(
446: open(os.path.join(str(app_root), ""datasette/static/app.css""))
447 .read()
datasette\cli.py:
130 else:
131: out = open(inspect_file, ""w"")
132 loop = asyncio.get_event_loop()
459 if inspect_file:
460: inspect_data = json.load(open(inspect_file))
461
```
",107914493,issue,,,"{""url"": ""https://api.github.com/repos/simonw/datasette/issues/1208/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,completed
751195017,MDU6SXNzdWU3NTExOTUwMTc=,1111,Accessing a database's `.json` is slow for very large SQLite files,15178711,open,0,,,3,2020-11-26T00:27:27Z,2021-01-04T19:57:53Z,,CONTRIBUTOR,,"I have a SQLite DB that's pretty large, 23GB and something like 300 million rows. I expect that most queries I run on it will be slow, which is fine, but there are some things that Datasette does that makes working with the DB very slow. Specifically, when I access the `.json` metadata for a table (which I believe it comes from `datasette/views/database.py`, it takes 43 seconds for the request to come in:
```bash
$ time curl localhost:9999/out.json
{""database"": ""out"", ""size"": 24291454976, ""tables"": [{""name"": ""PageviewsHour"", ""columns"": [""file"", ""code"", ""page"", ""pageviews""], ""primary_keys"": [], ""count"": null, ""hidden"": false, ""fts_table"": null, ""foreign_keys"": {""incoming"": [], ""outgoing"": [{""other_table"": ""PageviewsHourFiles"", ""column"": ""file"", ""other_column"": ""file_id""}]}, ""private"": false}, {""name"": ""PageviewsHourFiles"", ""columns"": [""file_id"", ""filename"", ""sha256"", ""size"", ""day"", ""hour""], ""primary_keys"": [""file_id""], ""count"": null, ""hidden"": false, ""fts_table"": null, ""foreign_keys"": {""incoming"": [{""other_table"": ""PageviewsHour"", ""column"": ""file_id"", ""other_column"": ""file""}], ""outgoing"": []}, ""private"": false}, {""name"": ""sqlite_sequence"", ""columns"": [""name"", ""seq""], ""primary_keys"": [], ""count"": 1, ""hidden"": false, ""fts_table"": null, ""foreign_keys"": {""incoming"": [], ""outgoing"": []}, ""private"": false}], ""hidden_count"": 0, ""views"": [], ""queries"": [], ""private"": false, ""allow_execute_sql"": true, ""query_ms"": 43340.23213386536}
real 0m43.417s
user 0m0.006s
sys 0m0.016s
```
I suspect this is because a `COUNT(*)` is happening under the hood, which, when I run it through sqlite directly, does take around the same time:
```bash
$ time sqlite3 out.db < <(echo ""select count(*) from PageviewsHour;"")
362794272
real 0m44.523s
user 0m2.497s
sys 0m6.703s
```
I'm using the `.json` request in the [Observable Datasette Client](https://observablehq.com/@asg017/datasette-client) to 1) verify that a link passed in is a reachable Datasette instance, and 2) a quick way to look at metadata for a db. A few different solutions I can think of:
1. Have some other endpoint, like `/-/datasette.json` that the Observable Datasette client can fetch from to verify that the passed in URL is a valid Datasette (doesnt solve the slow problem, feel free to split this issue into 2)
2. Have a way to turn off table counts when accessing a database's `.json` view, like `?no_count=1` or something
3. Maybe have a timeout on the `table_counts()` function if it takes too long. which is odd, because it seems like it already does that (I think?), I can debug a little more if that's the case
More than happy to debug further, or send a PR if you like one of the proposals above!",107914493,issue,,,"{""url"": ""https://api.github.com/repos/simonw/datasette/issues/1111/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,
1160677684,PR_kwDOBm6k_c40AW_v,1649,Add /opt/homebrew to where spatialite extension can be found,2182,closed,0,,,1,2022-03-06T18:09:35Z,2022-03-06T22:46:00Z,2022-03-06T19:39:15Z,CONTRIBUTOR,simonw/datasette/pulls/1649,"Helps homebrew on Apple Silicon setups find spatialite without needing
a full path.
Similar to #1114",107914493,pull,,,"{""url"": ""https://api.github.com/repos/simonw/datasette/issues/1649/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",0,
881219362,MDExOlB1bGxSZXF1ZXN0NjM0ODIxMDY1,1319,Add Docker multi-arch support with Buildx,10801138,closed,0,,,5,2021-05-08T19:35:03Z,2021-05-27T16:49:24Z,2021-05-27T16:49:24Z,CONTRIBUTOR,simonw/datasette/pulls/1319,"This adds Docker support to extra CPU architectures (like arm) using [Docker's Buildx action](https://github.com/marketplace/actions/docker-setup-buildx)
You can see [what that looks like on Dockerhub](https://hub.docker.com/r/blairdrummond/datasette/tags?page=1&ordering=last_updated)
And how it lets Datasette run on a Raspberry Pi (top is my dockerhub, bottom is upstream)
![Screenshot from 2021-05-08 15-32-25](https://user-images.githubusercontent.com/10801138/117551210-a17a9f80-b012-11eb-966b-10e1590dd4a9.png)
The workflow log [here](https://github.com/blairdrummond/datasette/runs/2535743398?check_suite_focus=true) (I subbed `blairdrummond` for datasetteproject in my branch) ",107914493,pull,,,"{""url"": ""https://api.github.com/repos/simonw/datasette/issues/1319/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",0,
1105916061,I_kwDOBm6k_c5B6vCd,1601,Add KNN and data_licenses to hidden tables list,25778,closed,0,,,5,2022-01-17T14:19:57Z,2022-01-20T21:29:44Z,2022-01-20T04:38:54Z,CONTRIBUTOR,,"They're generated by Spatialite and not very interesting in most cases.
",107914493,issue,,,"{""url"": ""https://api.github.com/repos/simonw/datasette/issues/1601/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,completed
273775212,MDU6SXNzdWUyNzM3NzUyMTI=,88,Add NHS England Hospitals example to wiki,15543,closed,0,,,4,2017-11-14T12:29:10Z,2021-03-22T23:46:36Z,2017-11-14T22:54:06Z,CONTRIBUTOR,,"https://nhs-england-hospitals.now.sh
and an associated map visualisation:
http://run.plnkr.co/preview/cj9zlf1qc0003414y90ajkwpk/
Datasette is wonderful!
",107914493,issue,,,"{""url"": ""https://api.github.com/repos/simonw/datasette/issues/88/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,completed
439487648,MDExOlB1bGxSZXF1ZXN0Mjc1MjgxMzA3,444,Add a max-line-length setting for flake8,45057,closed,0,,,0,2019-05-02T08:58:57Z,2019-05-04T09:44:48Z,2019-05-03T13:11:28Z,CONTRIBUTOR,simonw/datasette/pulls/444,"This stops my automatic editor linting from flagging lines which are too
long. It's been lingering in my checkout for ages.
160 is an arbitrary large number - we could alter it if we have any
opinions (but I find the line length limit to be my least favourite part
of PEP8).",107914493,pull,,,"{""url"": ""https://api.github.com/repos/simonw/datasette/issues/444/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",0,
825217564,MDExOlB1bGxSZXF1ZXN0NTg3MzMyNDcz,1252,Add back styling to lists within table cells (fixes #1141),7476523,closed,0,,,2,2021-03-09T03:00:57Z,2021-03-29T00:14:04Z,2021-03-29T00:14:04Z,CONTRIBUTOR,simonw/datasette/pulls/1252,"This overrides the Datasette reset - see https://github.com/simonw/datasette/blob/d0fd833b8cdd97e1b91d0f97a69b494895d82bee/datasette/static/app.css#L35-L38 - to add back the default styling of list items displayed within Datasette table cells.
Following this change, the same content as in the original issue looks like this:
![2021-03-09_02:57:32](https://user-images.githubusercontent.com/7476523/110411982-63e5ae80-8083-11eb-9b5c-e5dc825073e2.png)
",107914493,pull,,,"{""url"": ""https://api.github.com/repos/simonw/datasette/issues/1252/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",0,
806918878,MDExOlB1bGxSZXF1ZXN0NTcyMjU0MTAz,1223,Add compile option to Dockerfile to fix failing test (fixes #696),7476523,closed,0,,,2,2021-02-12T03:38:05Z,2021-03-07T12:01:12Z,2021-03-07T07:41:17Z,CONTRIBUTOR,simonw/datasette/pulls/1223,"This test was failing when run inside the Docker container: `test_searchable[/fixtures/searchable.json?_search=te*+AND+do*&_searchmode=raw-expected_rows3]`,
with this error:
```
def test_searchable(app_client, path, expected_rows):
response = app_client.get(path)
> assert expected_rows == response.json[""rows""]
E AssertionError: assert [[1, 'barry c...sel', 'puma']] == []
E Left contains 2 more items, first extra item: [1, 'barry cat', 'terry dog', 'panther']
E Full diff:
E + []
E - [[1, 'barry cat', 'terry dog', 'panther'],
E - [2, 'terry dog', 'sara weasel', 'puma']]
```
The issue was that the version of sqlite3 built inside the Docker container was built with FTS3 and FTS4 enabled, but without the
`SQLITE_ENABLE_FTS3_PARENTHESIS` compile option passed, which adds support for using `AND` and `NOT` within `match` expressions (see https://sqlite.org/fts3.html#compiling_and_enabling_fts3_and_fts4 and https://www.sqlite.org/compile.html).
Without this, the `AND` used in the search in this test was being interpreted as a literal string, and so no matches were found. Adding this compile option fixes this.
---
I actually ran into this issue because the same test was failing when I ran the test suite on my own machine, outside of Docker, and so I eventually tracked this down to my system sqlite3 also being compiled without this option.
I wonder if this is a sign of a slightly deeper issue, that Datasette can silently behave differently based on the version and compilation of sqlite3 it is being used with. On my own system I fixed the test suite by running `pip install pysqlite3-binary`, so that this would be picked up instead of the `sqlite` package, as this seems to be compiled using this option, . Maybe using `pysqlite3-binary` could be installed/recommended by default so a more deterministic version of sqlite is used? Or there could be some feature detection done on the available sqlite version, to know what features are available and can be used/tested?",107914493,pull,,,"{""url"": ""https://api.github.com/repos/simonw/datasette/issues/1223/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",0,
291451116,MDExOlB1bGxSZXF1ZXN0MTY1MDI5ODA3,182,Add db filesize next to download link,3433657,closed,0,,,0,2018-01-25T04:58:56Z,2019-03-22T13:50:57Z,2019-02-06T04:59:38Z,CONTRIBUTOR,simonw/datasette/pulls/182,"Took a stab at #172, will this do the trick?",107914493,pull,,,"{""url"": ""https://api.github.com/repos/simonw/datasette/issues/182/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",0,
1388227245,PR_kwDOBm6k_c4_uCkO,1825,Add documentation for serving via OpenRC,1048831,closed,0,,,2,2022-09-27T19:00:56Z,2022-09-28T04:21:37Z,2022-09-28T04:21:37Z,CONTRIBUTOR,simonw/datasette/pulls/1825,"I also removed a few lines which felt redundant given the following section dedicated to running behind a nginx proxy.
----
:books: Documentation preview :books:: https://datasette--1825.org.readthedocs.build/en/1825/
",107914493,pull,,,"{""url"": ""https://api.github.com/repos/simonw/datasette/issues/1825/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",0,
1503010009,PR_kwDOBm6k_c5FyT3c,1967,Add favicon to documentation,1839645,closed,0,,,2,2022-12-19T14:01:04Z,2022-12-31T19:15:51Z,2022-12-31T19:00:31Z,CONTRIBUTOR,simonw/datasette/pulls/1967,"I've been browsing the datasette documentation and found it hard to quickly locate tabs with many of them open, because it does not ship a favicon. So this PR:
- Grabs the favicon `.png` from datasette itself[^1]
- Adds it to the `_static/` folder
- Sets `html_favicon` to load it in the docs
[^1]: I also learned that Chrome can fetch favicons as an internal service! See `chrome://favicon/https://datasette.io/tools/github-to-sqlite`.
",107914493,pull,,,"{""url"": ""https://api.github.com/repos/simonw/datasette/issues/1967/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",0,
438048318,MDExOlB1bGxSZXF1ZXN0Mjc0MTc0NjE0,437,Add inspect and prepare_sanic hooks,45057,closed,0,,,2,2019-04-28T11:53:34Z,2019-06-24T16:38:57Z,2019-06-24T16:38:56Z,CONTRIBUTOR,simonw/datasette/pulls/437,"This adds two new plugin hooks:
The `inspect` hook allows plugins to add data to the inspect dictionary.
The `prepare_sanic` hook allows plugins to hook into the web router. I've attached a warning to this hook in the docs in light of #272 but I want this hook now...
On quick inspection, I don't think it's worthwhile to try and make this hook independent of the web framework (but it looks like Starlette would make the hook implementation a bit nicer).
Ref #14",107914493,pull,,,"{""url"": ""https://api.github.com/repos/simonw/datasette/issues/437/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",0,
274877366,MDExOlB1bGxSZXF1ZXN0MTUzMzA2ODgy,115,Add keyboard shortcut to execute SQL query,198537,closed,0,,,1,2017-11-17T14:13:33Z,2017-11-17T15:16:34Z,2017-11-17T14:22:56Z,CONTRIBUTOR,simonw/datasette/pulls/115,"Very cool tool, thanks a lot!
This PR adds a `Shift-Enter` short cut to execute the SQL query. I used CodeMirrors keyboard handling.",107914493,pull,,,"{""url"": ""https://api.github.com/repos/simonw/datasette/issues/115/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",0,
727916744,MDExOlB1bGxSZXF1ZXN0NTA4NzIwNjYw,1044,Add minimum supported python,45380,closed,0,,,2,2020-10-23T05:08:03Z,2020-10-23T20:53:08Z,2020-10-23T20:53:08Z,CONTRIBUTOR,simonw/datasette/pulls/1044,"Thanks for `datasette`!
This PR adds `python_requires` to formally signal the [minimum supported python version](https://packaging.python.org/guides/dropping-older-python-versions/#specify-the-version-ranges-for-supported-python-distributions) (which is pointed out with classifiers, so seems pretty straightforward).",107914493,pull,,,"{""url"": ""https://api.github.com/repos/simonw/datasette/issues/1044/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",0,
1060631257,I_kwDOBm6k_c4_N_LZ,1528,"Add new `""sql_file""` key to Canned Queries in metadata?",15178711,open,0,,,3,2021-11-22T21:58:01Z,2022-06-10T03:23:08Z,,CONTRIBUTOR,,"Currently for canned queries, you have to inline SQL in your `metadata.yaml` like so:
```yaml
databases:
fixtures:
queries:
neighborhood_search:
sql: |-
select neighborhood, facet_cities.name, state
from facetable
join facet_cities on facetable.city_id = facet_cities.id
where neighborhood like '%' || :text || '%'
order by neighborhood
title: Search neighborhoods
```
This works fine, but for a few reasons, I usually have my canned queries already written in separate `.sql` files. I'd like to instead re-use those instead of re-writing it.
So, I'd like to see a new `""sql_file""` key that works like so:
`metadata.yaml`:
```yaml
databases:
fixtures:
queries:
neighborhood_search:
sql_file: neighborhood_search.sql
title: Search neighborhoods
```
`neighborhood_search.sql`:
```sql
select neighborhood, facet_cities.name, state
from facetable
join facet_cities on facetable.city_id = facet_cities.id
where neighborhood like '%' || :text || '%'
order by neighborhood
```
Both of these would work in the exact same way, where Datasette would instead open + include `neighborhood_search.sql` on startup.
A few reasons why I'd like to keep my canned queries SQL separate from metadata.yaml:
- Keeping SQL in standalone SQL files means syntax highlighting and other text editor integrations in my code
- Multiline strings in yaml, while functional, are a tad cumbersome and are hard to edit
- Works well with other tools (can pipe `.sql` files into the `sqlite3` CLI, or use with other SQLite clients easier)
- Typically my canned queries are quite long compared to everything else in my metadata.yaml, so I'd love to separate it where possible
Let me know if this is a feature you'd like to see, I can try to send up a PR if this sounds right!",107914493,issue,,,"{""url"": ""https://api.github.com/repos/simonw/datasette/issues/1528/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,
1870672704,PR_kwDOBm6k_c5Y-7Em,2162,"Add new `--internal internal.db` option, deprecate legacy `_internal` database",15178711,closed,0,,,4,2023-08-29T00:05:07Z,2023-08-29T03:24:23Z,2023-08-29T03:24:23Z,CONTRIBUTOR,simonw/datasette/pulls/2162,"refs #2157
This PR adds a new `--internal` option to datasette serve. If provided, it is the path to a persistent internal database that Datasette core and Datasette plugins can use to store data, as discussed in the proposal issue.
This PR also removes and deprecates the previous in-memory `_internal` database. Those tables now appear in the `internal` database, with `core_` prefixes (ex `tables` in `_internal` is now `core_tables` in `internal`).
## A note on the new `core_` tables
However, one important notes about those new `core_` tables: If a `--internal` DB is passed in, that means those `core_` tables will persist across multiple Datasette instances. This wasn't the case before, since `_internal` was always an in-memory database created from scratch.
I tried to put those `core_` tables as `TEMP` tables - after all, there's always one 1 `internal` DB connection at a time, so I figured it would work. But, since we use the `Database()` wrapper for the internal DB, it has two separate connections: a default read-only connection and a write connection that is created when a write operation occurs. Which meant the `TEMP` tables would be created by the write connection, but not available in the read-only connection.
So I had a brillant idea: Attach an in-memory named database with `cache=shared`, and create those tables there!
```sql
ATTACH DATABASE 'file:datasette_internal_core?mode=memory&cache=shared' AS core;
```
We'd run this on both the read-only connection and the write-only connection. That way, those tables would stay in memory, they'd communicate with the `cache=shared` feature, and we'd be good to go.
However, I couldn't find an easy way to run a `ATTACH DATABASE` command on the read-only query.
Using `Database()` as a wrapper for the internal DB is pretty limiting - it's meant for Datasette ""data"" databases, where we want multiple readers and possibly 1 write connection at a time. But the internal database doesn't really require that kind of support - I think we could get away with a single read/write connection, but it seemed like too big of a rabbithole to go through now.
----
:books: Documentation preview :books:: https://datasette--2162.org.readthedocs.build/en/2162/
",107914493,pull,,,"{""url"": ""https://api.github.com/repos/simonw/datasette/issues/2162/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",0,
1344823170,PR_kwDOBm6k_c49e3_k,1789,Add new entrypoint option to `--load-extension`,15178711,closed,0,,,9,2022-08-19T19:27:47Z,2022-08-23T18:42:52Z,2022-08-23T18:34:30Z,CONTRIBUTOR,simonw/datasette/pulls/1789,"Closes #1784
The `--load-extension` flag can now accept an optional ""entrypoint"" value, to specify which entrypoint SQLite should load from the given extension.
```bash
# would load default entrypoint like before
datasette data.db --load-extension ext
# loads the extensions with the ""sqlite3_foo_init"" entrpoint
datasette data.db --load-extension ext:sqlite3_foo_init
# loads the extensions with the ""sqlite3_bar_init"" entrpoint
datasette data.db --load-extension ext:sqlite3_bar_init
```
For testing, I added a small SQLite extension in C at `tests/ext.c`. If compiled, then pytest will run the unit tests in `test_load_extensions.py`to verify that Datasette loads in extensions correctly (and loads the correct entrypoints). Compiling the extension requires a C compiler, I compiled it on my Mac with:
```
gcc ext.c -I path/to/sqlite -fPIC -shared -o ext.dylib
```
Where `path/to/sqlite` is a directory that contains the SQLite amalgamation header files.
Re documentation: I added a bit to the help text for `--load-extension` (which I believe should auto-add to documentation?), and the existing extension documentation is spatialite specific. Let me know if a new extensions documentation page would be helpful!",107914493,pull,,,"{""url"": ""https://api.github.com/repos/simonw/datasette/issues/1789/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",0,
438437973,MDExOlB1bGxSZXF1ZXN0Mjc0NDY4ODM2,441,Add register_output_renderer hook,45057,closed,0,,,8,2019-04-29T18:03:21Z,2019-05-01T23:01:57Z,2019-05-01T23:01:57Z,CONTRIBUTOR,simonw/datasette/pulls/441,"This changeset refactors out the JSON renderer and then adds a hook and
dispatcher system to allow custom output renderers to be registered.
The CSV output renderer is untouched because supporting streaming
renderers through this system would be significantly more complex, and
probably not worthwhile.
We can't simply allow hooks to be called at request time because we need
a list of supported file extensions when the request is being routed in
order to resolve ambiguous database/table names. So, renderers need to
be registered at startup.
I've tried to make this API independent of Sanic's request/response
objects so that this can remain stable during the switch to ASGI. I'm
using dictionaries to keep it simple and to make adding additional
options in the future easy.
Fixes #440",107914493,pull,,,"{""url"": ""https://api.github.com/repos/simonw/datasette/issues/441/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",0,
988325628,MDExOlB1bGxSZXF1ZXN0NzI3MjY1MDI1,1455,Add scientists to target groups,198537,closed,0,,,3,2021-09-04T16:28:58Z,2021-09-04T16:32:21Z,2021-09-04T16:31:38Z,CONTRIBUTOR,simonw/datasette/pulls/1455,"Not sure if you want them mentioned explicitly (it's already a long list), but following up on https://twitter.com/simonw/status/1434176989565382656",107914493,pull,,,"{""url"": ""https://api.github.com/repos/simonw/datasette/issues/1455/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",0,
274733145,MDExOlB1bGxSZXF1ZXN0MTUzMjAxOTQ1,114,"Add spatialite, switch to debian and local build",54999,closed,0,,,1,2017-11-17T02:37:09Z,2017-11-17T03:50:52Z,2017-11-17T03:50:52Z,CONTRIBUTOR,simonw/datasette/pulls/114,"Improves the Dockerfile to support spatial datasets, work with the local datasette code (Friendly with git tags and Dockerhub) and moves to slim debian, a small image easy to extend via apt packages for sqlite.",107914493,pull,,,"{""url"": ""https://api.github.com/repos/simonw/datasette/issues/114/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",0,
465773546,MDExOlB1bGxSZXF1ZXN0Mjk1NzQ4MjY4,556,Add support for running datasette as a module,3243482,closed,0,,,1,2019-07-09T13:13:30Z,2019-07-11T16:07:45Z,2019-07-11T16:07:44Z,CONTRIBUTOR,simonw/datasette/pulls/556,"This PR allows running datasette using `python -m datasette` command in addition to just running the executable.
This function is quite useful when debugging a plugin in a project because IDEs like PyCharm can easily start a debug session when datasette is run as a module in contrast to trying to attach a debugger to a running process.
![image](https://user-images.githubusercontent.com/3243482/60890448-fc4ede80-a263-11e9-8b42-d2a3db8d1a59.png)
",107914493,pull,,,"{""url"": ""https://api.github.com/repos/simonw/datasette/issues/556/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",0,
729017519,MDExOlB1bGxSZXF1ZXN0NTA5NTkwMjA1,1049,Add template block prior to extra URL loaders,82988,closed,0,,,4,2020-10-25T13:08:55Z,2020-10-29T09:20:52Z,2020-10-29T09:20:34Z,CONTRIBUTOR,simonw/datasette/pulls/1049,"To handle packages that require Javascript state setting prior to loading a package (eg [`thebelab`](https://thebelab.readthedocs.io/en/latest/examples/minimal_example.html), provide a template block before the URLs are loaded.",107914493,pull,,,"{""url"": ""https://api.github.com/repos/simonw/datasette/issues/1049/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",0,
1213281044,PR_kwDOBm6k_c42qyUI,1717,Add timeout option to Cloudrun build,127565,closed,0,,,2,2022-04-23T11:51:21Z,2022-04-24T14:03:08Z,2022-04-24T14:03:08Z,CONTRIBUTOR,simonw/datasette/pulls/1717,I've found that the Cloudrun build phase often hits a timeout limit with large databases. I believe the default timeout is 10 minutes. This pull request just adds a `--timeout` option to the cloudrun `publish` command and passes the value on to the build step.,107914493,pull,,,"{""url"": ""https://api.github.com/repos/simonw/datasette/issues/1717/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",0,
1059549523,I_kwDOBm6k_c4_J3FT,1526,"Add to vercel.json, rather than overwriting it.",192568,closed,0,,,2,2021-11-22T00:47:12Z,2021-11-22T04:49:45Z,2021-11-22T04:13:47Z,CONTRIBUTOR,,"I'd like to be able to add to vercel.json. But Datasette overwrites whatever I put in that file. I originally reported this here:
https://github.com/simonw/datasette-publish-vercel/issues/51
In that case, I wanted to do a rewrite... and now I need to do 301 redirects (because we had to rename our site).
Can this be addressed?
",107914493,issue,,,"{""url"": ""https://api.github.com/repos/simonw/datasette/issues/1526/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,completed
325352370,MDExOlB1bGxSZXF1ZXN0MTg5NzA3Mzc0,279,Add version number support with Versioneer,198537,closed,0,,,4,2018-05-22T15:39:45Z,2018-05-22T19:35:23Z,2018-05-22T19:35:22Z,CONTRIBUTOR,simonw/datasette/pulls/279,"I think that's all for getting Versioneer support, I've been happily using it in a couple of projects ...
```
In [2]: datasette.__version__
Out[2]: '0.22+3.g6e12445'
```
Repo:
https://github.com/warner/python-versioneer
Versioneer Licence:
Public Domain (CC0-1.0)
Closes #273
",107914493,pull,,,"{""url"": ""https://api.github.com/repos/simonw/datasette/issues/279/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",0,
1023245060,PR_kwDOBm6k_c4tC4Lx,1487,"Added instructions for installing plugins via pipx, #1486",41546558,closed,0,,,1,2021-10-12T00:48:30Z,2021-10-13T21:09:11Z,2021-10-13T21:09:10Z,CONTRIBUTOR,simonw/datasette/pulls/1487,Adds missing instructions for installing plugins via pipx,107914493,pull,,,"{""url"": ""https://api.github.com/repos/simonw/datasette/issues/1487/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",0,
341235633,MDExOlB1bGxSZXF1ZXN0MjAxNDUxMzMy,345,Allow app names for `datasette publish heroku`,45057,closed,0,,,1,2018-07-14T13:12:34Z,2018-07-14T14:09:54Z,2018-07-14T14:04:44Z,CONTRIBUTOR,simonw/datasette/pulls/345,"Lets you supply the `-n` parameter for Heroku deploys, which also lets you update existing Heroku deployments.",107914493,pull,,,"{""url"": ""https://api.github.com/repos/simonw/datasette/issues/345/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",0,
1033678984,PR_kwDOBm6k_c4tjgJ8,1495,Allow routes to have extra options,536941,open,0,,,5,2021-10-22T15:00:45Z,2021-11-19T15:36:27Z,,CONTRIBUTOR,simonw/datasette/pulls/1495,"Right now, datasette routes can only be a 2-tuple of `(regex, view_fn)`.
If it was possible for datasette to handle extra options, like [standard Django does](https://docs.djangoproject.com/en/3.2/topics/http/urls/#passing-extra-options-to-view-functions), it would add flexibility for plugin authors.
For example, if extra options were enabled, then it would be easy to make a single table the home page (#1284). This plugin would accomplish it.
```python
from datasette import hookimpl
from datasette.views.table import TableView
@hookimpl
def register_routes(datasette):
return [
(r""^/$"", TableView.as_view(datasette), {'db_name': 'DB_NAME',
'table': 'TABLE_NAME'})
]
```
",107914493,pull,,,"{""url"": ""https://api.github.com/repos/simonw/datasette/issues/1495/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",0,
1078702875,I_kwDOBm6k_c5AS7Mb,1552,Allow to set `facets_array` in metadata (like current `facets`),3556,closed,0,,7571612,9,2021-12-13T16:00:44Z,2022-01-13T22:26:15Z,2021-12-16T18:47:48Z,CONTRIBUTOR,,"For now, you can set a `facets` value (array) in your metadata file but I couldn't find a way to set a `facets_array` in order to provide default facets for arrays (like tags). My use-case is to access to [that kind of view](https://latest.datasette.io/fixtures/facetable?_facet_array=tags) by default without URL's parameters as with other default facets.
_I'm new to datasette, and I'm willing to help with a PR if that is not already implemented and I missed it!_",107914493,issue,,,"{""url"": ""https://api.github.com/repos/simonw/datasette/issues/1552/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,completed
620969465,MDU6SXNzdWU2MjA5Njk0NjU=,767,Allow to specify a URL fragment for canned queries,2657547,closed,0,,5471110,2,2020-05-19T13:17:42Z,2020-05-27T21:52:25Z,2020-05-27T21:52:25Z,CONTRIBUTOR,,"Canned queries are very useful to direct users to prepared data and views. I like to use them with charts using datasette-vega a lot, because people get a direct impression at first glance.
datasette-vega doesn't show up by default though, and users have to click through to it. Also, datasette-vega does not always guess the best way to render columns correctly though, so it would be nice if I could specify a URL fragment in my canned queries to make sure people see what I want them to see.
My current workaround is to include a fragement link in ``description_html`` and ask people to reload the page, like [here](https://data.rixx.de/songs/show_by_bpm#g.mark=bar&g.x_column=bpm_floor&g.x_type=ordinal&g.y_column=bpm_count&g.y_type=quantitative), which is a bit hacky.",107914493,issue,,,"{""url"": ""https://api.github.com/repos/simonw/datasette/issues/767/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,completed
1448143294,I_kwDOBm6k_c5WUOm-,1890,Autocomplete text entry for filter values that correspond to facets,536941,closed,0,,,16,2022-11-14T14:11:31Z,2022-11-17T00:47:36Z,2022-11-16T03:23:01Z,CONTRIBUTOR,,"datasette allows users to enter in the value for named parameters into a free-text form field.
I think it would add a lot of usability, if the form field could be a drop down of options when query value is already a faceted column.",107914493,issue,,,"{""url"": ""https://api.github.com/repos/simonw/datasette/issues/1890/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,completed
864979486,MDExOlB1bGxSZXF1ZXN0NjIxMTE3OTc4,1306,Avoid error sorting by relationships if related tables are not allowed,416374,closed,0,,,4,2021-04-22T13:53:17Z,2021-06-02T04:27:00Z,2021-06-02T04:25:28Z,CONTRIBUTOR,simonw/datasette/pulls/1306,Refs #1305,107914493,pull,,,"{""url"": ""https://api.github.com/repos/simonw/datasette/issues/1306/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",0,
849220154,MDU6SXNzdWU4NDkyMjAxNTQ=,1286,Better default display of arrays of items,192568,open,0,,,5,2021-04-02T13:31:40Z,2021-06-12T12:36:15Z,,CONTRIBUTOR,,"Would be great to have template filters that convert array fields to bullets and/or delimited lists upon table display:
```
|to_bullets
|to_comma_delimited
|to_semicolon_delimited
```
or maybe:
```
|join_array(""bullet"")
|join_array(""bullet"",""square"")
|join_array("";"")
|join_array("","")
```
Keeping in mind that bullets show up in html as \
Sourced from black's releases.
21.4b0
Black
Fixed a rare but annoying formatting instability created by the combination of optional trailing commas inserted by
Black
and optional parentheses looking at pre-existing "magic" trailing commas. This fixes issue #1629 and all of its many many duplicates. (#2126)
Black
now processes one-line docstrings by stripping leading and trailing spaces, and adding a padding space when needed to break up """". (#1740)
Black
now cleans up leading non-breaking spaces in comments (#2092)
Black
now respects--skip-string-normalization
when normalizing multiline docstring quotes (#1637)
Black
no longer removes all empty lines between non-function code and decorators when formatting typing stubs. NowBlack
enforces a single empty line. (#1646)
Black
no longer adds an incorrect space after a parenthesized assignment expression in if/while statements (#1655)Added
--skip-magic-trailing-comma
/-C
to avoid using trailing commas as a reason to split lines (#1824)fixed a crash when PWD=/ on POSIX (#1631)
fixed "I/O operation on closed file" when using --diff (#1664)
Prevent coloured diff output being interleaved with multiple files (#1673)
Added support for PEP 614 relaxed decorator syntax on python 3.9 (#1711)
Added parsing support for unparenthesized tuples and yield expressions in annotated assignments (#1835)
use lowercase hex strings (#1692)
added
--extend-exclude
argument (PR #2005)speed up caching by avoiding pathlib (#1950)
--diff
correctly indicates when a file doesn't end in a newline (#1662)Added
--stdin-filename
argument to allow stdin to respect--force-exclude
rules (#1780)Lines ending with
fmt: skip
will now be not formatted (#1800)PR #2053: Black no longer relies on typed-ast for Python 3.8 and higher
... (truncated)
Sourced from black's changelog.
21.4b0
Black
Fixed a rare but annoying formatting instability created by the combination of optional trailing commas inserted by
Black
and optional parentheses looking at pre-existing "magic" trailing commas. This fixes issue #1629 and all of its many many duplicates. (#2126)
Black
now processes one-line docstrings by stripping leading and trailing spaces, and adding a padding space when needed to break up """". (#1740)
Black
now cleans up leading non-breaking spaces in comments (#2092)
Black
now respects--skip-string-normalization
when normalizing multiline docstring quotes (#1637)
Black
no longer removes all empty lines between non-function code and decorators when formatting typing stubs. NowBlack
enforces a single empty line. (#1646)
Black
no longer adds an incorrect space after a parenthesized assignment expression in if/while statements (#1655)Added
--skip-magic-trailing-comma
/-C
to avoid using trailing commas as a reason to split lines (#1824)fixed a crash when PWD=/ on POSIX (#1631)
fixed "I/O operation on closed file" when using --diff (#1664)
Prevent coloured diff output being interleaved with multiple files (#1673)
Added support for PEP 614 relaxed decorator syntax on python 3.9 (#1711)
Added parsing support for unparenthesized tuples and yield expressions in annotated assignments (#1835)
added
--extend-exclude
argument (PR #2005)speed up caching by avoiding pathlib (#1950)
--diff
correctly indicates when a file doesn't end in a newline (#1662)Added
--stdin-filename
argument to allow stdin to respect--force-exclude
rules (#1780)Lines ending with
fmt: skip
will now be not formatted (#1800)PR #2053: Black no longer relies on typed-ast for Python 3.8 and higher
... (truncated)
Sourced from black's releases.
21.4b1
Black
Fix crash on docstrings ending with "\ ". (#2142)
Fix crash when atypical whitespace is cleaned out of dostrings (#2120)
Reflect the
--skip-magic-trailing-comma
and--experimental-string-processing
flags in the name of the cache file. Without this fix, changes in these flags would not take effect if the cache had already been populated. (#2131)Don't remove necessary parentheses from assignment expression containing assert / return statements. (#2143)
Packaging
- Bump pathspec to >= 0.8.1 to solve invalid .gitignore exclusion handling
21.4b0
Black
Fixed a rare but annoying formatting instability created by the combination of optional trailing commas inserted by
Black
and optional parentheses looking at pre-existing "magic" trailing commas. This fixes issue #1629 and all of its many many duplicates. (#2126)
Black
now processes one-line docstrings by stripping leading and trailing spaces, and adding a padding space when needed to break up """". (#1740)
Black
now cleans up leading non-breaking spaces in comments (#2092)
Black
now respects--skip-string-normalization
when normalizing multiline docstring quotes (#1637)
Black
no longer removes all empty lines between non-function code and decorators when formatting typing stubs. NowBlack
enforces a single empty line. (#1646)
Black
no longer adds an incorrect space after a parenthesized assignment expression in if/while statements (#1655)Added
--skip-magic-trailing-comma
/-C
to avoid using trailing commas as a reason to split lines (#1824)fixed a crash when PWD=/ on POSIX (#1631)
fixed "I/O operation on closed file" when using --diff (#1664)
Prevent coloured diff output being interleaved with multiple files (#1673)
Added support for PEP 614 relaxed decorator syntax on python 3.9 (#1711)
... (truncated)
Sourced from black's changelog.
21.4b1
Black
Fix crash on docstrings ending with "\ ". (#2142)
Fix crash when atypical whitespace is cleaned out of dostrings (#2120)
Reflect the
--skip-magic-trailing-comma
and--experimental-string-processing
flags in the name of the cache file. Without this fix, changes in these flags would not take effect if the cache had already been populated. (#2131)Don't remove necessary parentheses from assignment expression containing assert / return statements. (#2143)
Packaging
- Bump pathspec to >= 0.8.1 to solve invalid .gitignore exclusion handling
21.4b0
Black
Fixed a rare but annoying formatting instability created by the combination of optional trailing commas inserted by
Black
and optional parentheses looking at pre-existing "magic" trailing commas. This fixes issue #1629 and all of its many many duplicates. (#2126)
Black
now processes one-line docstrings by stripping leading and trailing spaces, and adding a padding space when needed to break up """". (#1740)
Black
now cleans up leading non-breaking spaces in comments (#2092)
Black
now respects--skip-string-normalization
when normalizing multiline docstring quotes (#1637)
Black
no longer removes all empty lines between non-function code and decorators when formatting typing stubs. NowBlack
enforces a single empty line. (#1646)
Black
no longer adds an incorrect space after a parenthesized assignment expression in if/while statements (#1655)Added
--skip-magic-trailing-comma
/-C
to avoid using trailing commas as a reason to split lines (#1824)fixed a crash when PWD=/ on POSIX (#1631)
fixed "I/O operation on closed file" when using --diff (#1664)
Prevent coloured diff output being interleaved with multiple files (#1673)
... (truncated)
Sourced from black's releases.
21.4b2
Black
Fix crash if the user configuration directory is inaccessible. (#2158)
Clarify circumstances in which Black may change the AST (#2159)
Packaging
- Install
primer.json
(used byblack-primer
by default) with black. (#2154)21.4b1
Black
Fix crash on docstrings ending with "\ ". (#2142)
Fix crash when atypical whitespace is cleaned out of dostrings (#2120)
Reflect the
--skip-magic-trailing-comma
and--experimental-string-processing
flags in the name of the cache file. Without this fix, changes in these flags would not take effect if the cache had already been populated. (#2131)Don't remove necessary parentheses from assignment expression containing assert / return statements. (#2143)
Packaging
- Bump pathspec to >= 0.8.1 to solve invalid .gitignore exclusion handling
21.4b0
Black
Fixed a rare but annoying formatting instability created by the combination of optional trailing commas inserted by
Black
and optional parentheses looking at pre-existing "magic" trailing commas. This fixes issue #1629 and all of its many many duplicates. (#2126)
Black
now processes one-line docstrings by stripping leading and trailing spaces, and adding a padding space when needed to break up """". (#1740)
Black
now cleans up leading non-breaking spaces in comments (#2092)
Black
now respects--skip-string-normalization
when normalizing multiline docstring quotes (#1637)
Black
no longer removes all empty lines between non-function code and decorators when formatting typing stubs. NowBlack
enforces a single empty line. (#1646)
... (truncated)
Sourced from black's changelog.
21.4b2
Black
Fix crash if the user configuration directory is inaccessible. (#2158)
Clarify circumstances in which Black may change the AST (#2159)
Packaging
- Install
primer.json
(used byblack-primer
by default) with black. (#2154)21.4b1
Black
Fix crash on docstrings ending with "\ ". (#2142)
Fix crash when atypical whitespace is cleaned out of dostrings (#2120)
Reflect the
--skip-magic-trailing-comma
and--experimental-string-processing
flags in the name of the cache file. Without this fix, changes in these flags would not take effect if the cache had already been populated. (#2131)Don't remove necessary parentheses from assignment expression containing assert / return statements. (#2143)
Packaging
- Bump pathspec to >= 0.8.1 to solve invalid .gitignore exclusion handling
21.4b0
Black
Fixed a rare but annoying formatting instability created by the combination of optional trailing commas inserted by
Black
and optional parentheses looking at pre-existing "magic" trailing commas. This fixes issue #1629 and all of its many many duplicates. (#2126)
Black
now processes one-line docstrings by stripping leading and trailing spaces, and adding a padding space when needed to break up """". (#1740)
Black
now cleans up leading non-breaking spaces in comments (#2092)
Black
now respects--skip-string-normalization
when normalizing multiline docstring quotes (#1637)
... (truncated)
Sourced from black's releases.
21.12b0
Black
- Fix determination of f-string expression spans (#2654)
- Fix bad formatting of error messages about EOF in multi-line statements (#2343)
- Functions and classes in blocks now have more consistent surrounding spacing (#2472)
Jupyter Notebook support
- Cell magics are now only processed if they are known Python cell magics. Earlier, all cell magics were tokenized, leading to possible indentation errors e.g. with
%%writefile
. (#2630)- Fix assignment to environment variables in Jupyter Notebooks (#2642)
Python 3.10 support
- Point users to using
--target-version py310
if we detect 3.10-only syntax (#2668)- Fix
match
statements with open sequence subjects, likematch a, b:
ormatch a, *b:
(#2639) (#2659)- Fix
match
/case
statements that containmatch
/case
soft keywords multiple times, likematch re.match()
(#2661)- Fix
case
statements with an inline body (#2665)- Fix styling of starred expressions inside
match
subject (#2667)- Fix parser error location on invalid syntax in a
match
statement (#2649)- Fix Python 3.10 support on platforms without ProcessPoolExecutor (#2631)
- Improve parsing performance on code that uses
match
under--target-version py310
up to ~50% (#2670)Packaging
Thank you!
@isidentical
for the polishing up 3.10 syntax support (which they contributed in the first place!)@MarcoGorelli
for their ever-continuing work on Black's jupyter support@jalaziz
for cleaning up our Pyinstaller CD workflow@hauntsaninja
for helping us drop theregex
dependencyAnd also congrats to first contributors!
@MatthewScholefield
made their first contribution in psf/black#2631@AshIsbitt
made their first contribution in psf/black#2632@kalbasit
made their first contribution in psf/black#2638@danieleades
made their first contribution in psf/black#2653@danielsparing
made their first contribution in psf/black#2630@tanvimoharir
made their first contribution in psf/black#2343
Sourced from black's changelog.
21.12b0
Black
- Fix determination of f-string expression spans (#2654)
- Fix bad formatting of error messages about EOF in multi-line statements (#2343)
- Functions and classes in blocks now have more consistent surrounding spacing (#2472)
Jupyter Notebook support
- Cell magics are now only processed if they are known Python cell magics. Earlier, all cell magics were tokenized, leading to possible indentation errors e.g. with
%%writefile
. (#2630)- Fix assignment to environment variables in Jupyter Notebooks (#2642)
Python 3.10 support
- Point users to using
--target-version py310
if we detect 3.10-only syntax (#2668)- Fix
match
statements with open sequence subjects, likematch a, b:
ormatch a, *b:
(#2639) (#2659)- Fix
match
/case
statements that containmatch
/case
soft keywords multiple times, likematch re.match()
(#2661)- Fix
case
statements with an inline body (#2665)- Fix styling of starred expressions inside
match
subject (#2667)- Fix parser error location on invalid syntax in a
match
statement (#2649)- Fix Python 3.10 support on platforms without ProcessPoolExecutor (#2631)
- Improve parsing performance on code that uses
match
under--target-version py310
up to ~50% (#2670)Packaging
Sourced from black's releases.
22.1.0
At long last, Black is no longer a beta product! This is the first non-beta release and the first release covered by our new stability policy.
Highlights
Style
- Deprecate
--experimental-string-processing
and move the functionality under--preview
(#2789)- For stubs, one blank line between class attributes and methods is now kept if there's at least one pre-existing blank line (#2736)
- Black now normalizes string prefix order (#2297)
- Remove spaces around power operators if both operands are simple (#2726)
- Work around bug that causes unstable formatting in some cases in the presence of the magic trailing comma (#2807)
- Use parentheses for attribute access on decimal float and int literals (#2799)
- Don't add whitespace for attribute access on hexadecimal, binary, octal, and complex literals (#2799)
- Treat blank lines in stubs the same inside top-level if statements (#2820)
- Fix unstable formatting with semicolons and arithmetic expressions (#2817)
- Fix unstable formatting around magic trailing comma (#2572)
Parser
- Fix mapping cases that contain as-expressions, like
case {"key": 1 | 2 as password}
(#2686)- Fix cases that contain multiple top-level as-expressions, like
case 1 as a, 2 as b
(#2716)- Fix call patterns that contain as-expressions with keyword arguments, like
case Foo(bar=baz as quux)
(#2749)- Tuple unpacking on
return
andyield
constructs now implies 3.8+ (#2700)- Unparenthesized tuples on annotated assignments (e.g
values: Tuple[int, ...] = 1, 2, 3
) now implies 3.8+ (#2708)- Fix handling of standalone
match()
orcase()
when there is a trailing newline or a comment inside of the parentheses. (#2760)from __future__ import annotations
statement now implies Python 3.7+ (#2690)Performance
- Speed-up the new backtracking parser about 4X in general (enabled when
--target-version
is set to 3.10 and higher). (#2728)- Black is now compiled with mypyc for an overall 2x speed-up. 64-bit Windows, MacOS, and Linux (not including musl) are supported. (#1009, #2431)
Configuration
- Do not accept bare carriage return line endings in pyproject.toml (#2408)
- Add configuration option (
python-cell-magics
) to format cells with custom magics in Jupyter Notebooks (#2744)- Allow setting custom cache directory on all platforms with environment variable
BLACK_CACHE_DIR
(#2739).- Enable Python 3.10+ by default, without any extra need to specify -
-target-version=py310
. (#2758)- Make passing
SRC
or--code
mandatory and mutually exclusive (#2804)Output
- Improve error message for invalid regular expression (#2678)
- Improve error message when parsing fails during AST safety check by embedding the underlying SyntaxError (#2693)
- No longer color diff headers white as it's unreadable in light themed terminals (#2691)
- Text coloring added in the final statistics (#2712)
- Verbose mode also now describes how a project root was discovered and which paths will be formatted. (#2526)
Packaging
... (truncated)
Sourced from black's changelog.
22.1.0
At long last, Black is no longer a beta product! This is the first non-beta release and the first release covered by our new stability policy.
Highlights
Style
- Deprecate
--experimental-string-processing
and move the functionality under--preview
(#2789)- For stubs, one blank line between class attributes and methods is now kept if there's at least one pre-existing blank line (#2736)
- Black now normalizes string prefix order (#2297)
- Remove spaces around power operators if both operands are simple (#2726)
- Work around bug that causes unstable formatting in some cases in the presence of the magic trailing comma (#2807)
- Use parentheses for attribute access on decimal float and int literals (#2799)
- Don't add whitespace for attribute access on hexadecimal, binary, octal, and complex literals (#2799)
- Treat blank lines in stubs the same inside top-level
if
statements (#2820)- Fix unstable formatting with semicolons and arithmetic expressions (#2817)
- Fix unstable formatting around magic trailing comma (#2572)
Parser
- Fix mapping cases that contain as-expressions, like
case {"key": 1 | 2 as password}
(#2686)- Fix cases that contain multiple top-level as-expressions, like
case 1 as a, 2 as b
(#2716)- Fix call patterns that contain as-expressions with keyword arguments, like
case Foo(bar=baz as quux)
(#2749)- Tuple unpacking on
return
andyield
constructs now implies 3.8+ (#2700)- Unparenthesized tuples on annotated assignments (e.g
values: Tuple[int, ...] = 1, 2, 3
) now implies 3.8+ (#2708)- Fix handling of standalone
match()
orcase()
when there is a trailing newline or a comment inside of the parentheses. (#2760)from __future__ import annotations
statement now implies Python 3.7+ (#2690)Performance
... (truncated)
Sourced from black's releases.
21.5b0
Black
- Set
--pyi
mode if--stdin-filename
ends in.pyi
(#2169)- Stop detecting target version as Python 3.9+ with pre-PEP-614 decorators that are being called but with no arguments (#2182)
Black-Primer
- Add
--no-diff
to black-primer to suppress formatting changes (#2187)
Sourced from black's changelog.
21.5b0
Black
- Set
--pyi
mode if--stdin-filename
ends in.pyi
(#2169)- Stop detecting target version as Python 3.9+ with pre-PEP-614 decorators that are being called but with no arguments (#2182)
Black-Primer
- Add
--no-diff
to black-primer to suppress formatting changes (#2187)
Sourced from black's releases.
21.5b1
Black
- Refactor
src/black/__init__.py
into many files (#2206)Documentation
- Replaced all remaining references to the
master
branch with themain
branch. Some additional changes in the source code were also made. (#2210)- Sigificantly reorganized the documentation to make much more sense. Check them out by heading over to the stable docs on RTD. (#2174)
21.5b0
Black
- Set
--pyi
mode if--stdin-filename
ends in.pyi
(#2169)- Stop detecting target version as Python 3.9+ with pre-PEP-614 decorators that are being called but with no arguments (#2182)
Black-Primer
- Add
--no-diff
to black-primer to suppress formatting changes (#2187)
Sourced from black's changelog.
21.5b1
Black
- Refactor
src/black/__init__.py
into many files (#2206)Documentation
- Replaced all remaining references to the
master
branch with themain
branch. Some additional changes in the source code were also made. (#2210)- Sigificantly reorganized the documentation to make much more sense. Check them out by heading over to the stable docs on RTD. (#2174)
21.5b0
Black
- Set
--pyi
mode if--stdin-filename
ends in.pyi
(#2169)- Stop detecting target version as Python 3.9+ with pre-PEP-614 decorators that are being called but with no arguments (#2182)
Black-Primer
- Add
--no-diff
to black-primer to suppress formatting changes (#2187)
Sourced from black's releases.
21.5b2
Black
- A space is no longer inserted into empty docstrings (#2249)
- Fix handling of .gitignore files containing non-ASCII characters on Windows (#2229)
- Respect
.gitignore
files in all levels, not onlyroot/.gitignore
file (apply.gitignore
rules likegit
does) (#2225)- Restored compatibility with Click 8.0 on Python 3.6 when LANG=C used (#2227)
- Add extra uvloop install + import support if in python env (#2258)
- Fix --experimental-string-processing crash when matching parens are not found (#2283)
- Make sure to split lines that start with a string operator (#2286)
- Fix regular expression that black uses to identify f-expressions (#2287)
Blackd
- Add a lower bound for the
aiohttp-cors
dependency. Only 0.4.0 or higher is supported. (#2231)Packaging
- Release self-contained x86_64 MacOS binaries as part of the GitHub release pipeline (#2198)
- Always build binaries with the latest available Python (#2260)
Documentation
- Add discussion of magic comments to FAQ page (#2272)
--experimental-string-processing
will be enabled by default in the future (#2273)- Fix typos discovered by codespell (#2228)
- Fix Vim plugin installation instructions. (#2235)
- Add new Frequently Asked Questions page (#2247)
- Fix encoding + symlink issues preventing proper build on Windows (#2262)
Sourced from black's changelog.
21.5b2
Black
- A space is no longer inserted into empty docstrings (#2249)
- Fix handling of .gitignore files containing non-ASCII characters on Windows (#2229)
- Respect
.gitignore
files in all levels, not onlyroot/.gitignore
file (apply.gitignore
rules likegit
does) (#2225)- Restored compatibility with Click 8.0 on Python 3.6 when LANG=C used (#2227)
- Add extra uvloop install + import support if in python env (#2258)
- Fix --experimental-string-processing crash when matching parens are not found (#2283)
- Make sure to split lines that start with a string operator (#2286)
- Fix regular expression that black uses to identify f-expressions (#2287)
Blackd
- Add a lower bound for the
aiohttp-cors
dependency. Only 0.4.0 or higher is supported. (#2231)Integrations
- The official Black action now supports choosing what version to use, and supports the major 3 OSes. (#1940)
Packaging
- Release self-contained x86_64 MacOS binaries as part of the GitHub release pipeline (#2198)
- Always build binaries with the latest available Python (#2260)
Documentation
- Add discussion of magic comments to FAQ page (#2272)
--experimental-string-processing
will be enabled by default in the future (#2273)- Fix typos discovered by codespell (#2228)
- Fix Vim plugin installation instructions. (#2235)
- Add new Frequently Asked Questions page (#2247)
- Fix encoding + symlink issues preventing proper build on Windows (#2262)
Sourced from black's releases.
21.6b0
Black
- Fix failure caused by
fmt: skip
and indentation (#2281)- Account for += assignment when deciding whether to split string (#2312)
- Correct max string length calculation when there are string operators (#2292)
- Fixed option usage when using the
--code
flag (#2259)- Do not call
uvloop.install()
when Black is used as a library (#2303)- Added
--required-version
option to require a specific version to be running (#2300)- Fix incorrect custom breakpoint indices when string group contains fake f-strings (#2311)
- Fix regression where
R
prefixes would be lowercased for docstrings (#2285)- Fix handling of named escapes (
\N{...}
) when--experimental-string-processing
is used (#2319)
Sourced from black's changelog.
21.6b0
Black
- Fix failure caused by
fmt: skip
and indentation (#2281)- Account for += assignment when deciding whether to split string (#2312)
- Correct max string length calculation when there are string operators (#2292)
- Fixed option usage when using the
--code
flag (#2259)- Do not call
uvloop.install()
when Black is used as a library (#2303)- Added
--required-version
option to require a specific version to be running (#2300)- Fix incorrect custom breakpoint indices when string group contains fake f-strings (#2311)
- Fix regression where
R
prefixes would be lowercased for docstrings (#2285)- Fix handling of named escapes (
\N{...}
) when--experimental-string-processing
is used (#2319)
Sourced from black's releases.
21.7b0
Black
- Configuration files using TOML features higher than spec v0.5.0 are now supported (#2301)
- Add primer support and test for code piped into black via STDIN (#2315)
- Fix internal error when
FORCE_OPTIONAL_PARENTHESES
feature is enabled (#2332)- Accept empty stdin (#2346)
- Provide a more useful error when parsing fails during AST safety checks (#2304)
Docker
- Add new
latest_release
tag automation to follow latest black release on docker images (#2374)Integrations
- The vim plugin now searches upwards from the directory containing the current buffer instead of the current working directory for pyproject.toml. (#1871)
- The vim plugin now reads the correct string normalization option in pyproject.toml (#1869)
- The vim plugin no longer crashes Black when there's boolean values in pyproject.toml (#1869)
Sourced from black's changelog.
21.7b0
Black
- Configuration files using TOML features higher than spec v0.5.0 are now supported (#2301)
- Add primer support and test for code piped into black via STDIN (#2315)
- Fix internal error when
FORCE_OPTIONAL_PARENTHESES
feature is enabled (#2332)- Accept empty stdin (#2346)
- Provide a more useful error when parsing fails during AST safety checks (#2304)
Docker
- Add new
latest_release
tag automation to follow latest black release on docker images (#2374)Integrations
- The vim plugin now searches upwards from the directory containing the current buffer instead of the current working directory for pyproject.toml. (#1871)
- The vim plugin now reads the correct string normalization option in pyproject.toml (#1869)
- The vim plugin no longer crashes Black when there's boolean values in pyproject.toml (#1869)
Sourced from black's releases.
21.8b0
Black
- Add support for formatting Jupyter Notebook files (#2357)
- Move from
appdirs
dependency toplatformdirs
(#2375)- Present a more user-friendly error if .gitignore is invalid (#2414)
- The failsafe for accidentally added backslashes in f-string expressions has been hardened to handle more edge cases during quote normalization (#2437)
- Avoid changing a function return type annotation's type to a tuple by adding a trailing comma (#2384)
- Parsing support has been added for unparenthesized walruses in set literals, set comprehensions, and indices (#2447).
- Pin
setuptools-scm
build-time dependency version (#2457)- Exclude typing-extensions version 3.10.0.1 due to it being broken on Python 3.10 (#2460)
Blackd
- Replace sys.exit(-1) with raise ImportError as it plays more nicely with tools that scan installed packages (#2440)
Integrations
- The provided pre-commit hooks no longer specify
language_version
to avoid overridingdefault_language_version
(#2430)
Sourced from black's changelog.
21.8b0
Black
- Add support for formatting Jupyter Notebook files (#2357)
- Move from
appdirs
dependency toplatformdirs
(#2375)- Present a more user-friendly error if .gitignore is invalid (#2414)
- The failsafe for accidentally added backslashes in f-string expressions has been hardened to handle more edge cases during quote normalization (#2437)
- Avoid changing a function return type annotation's type to a tuple by adding a trailing comma (#2384)
- Parsing support has been added for unparenthesized walruses in set literals, set comprehensions, and indices (#2447).
- Pin
setuptools-scm
build-time dependency version (#2457)- Exclude typing-extensions version 3.10.0.1 due to it being broken on Python 3.10 (#2460)
Blackd
- Replace sys.exit(-1) with raise ImportError as it plays more nicely with tools that scan installed packages (#2440)
Integrations
- The provided pre-commit hooks no longer specify
language_version
to avoid overridingdefault_language_version
(#2430)
Sourced from black's releases.
21.9b0
Packaging
- Fix missing modules in self-contained binaries (#2466)
- Fix missing toml extra used during installation (#2475)
21.8b0
Black
- Add support for formatting Jupyter Notebook files (#2357)
- Move from
appdirs
dependency toplatformdirs
(#2375)- Present a more user-friendly error if .gitignore is invalid (#2414)
- The failsafe for accidentally added backslashes in f-string expressions has been hardened to handle more edge cases during quote normalization (#2437)
- Avoid changing a function return type annotation's type to a tuple by adding a trailing comma (#2384)
- Parsing support has been added for unparenthesized walruses in set literals, set comprehensions, and indices (#2447).
- Pin
setuptools-scm
build-time dependency version (#2457)- Exclude typing-extensions version 3.10.0.1 due to it being broken on Python 3.10 (#2460)
Blackd
- Replace sys.exit(-1) with raise ImportError as it plays more nicely with tools that scan installed packages (#2440)
Integrations
- The provided pre-commit hooks no longer specify
language_version
to avoid overridingdefault_language_version
(#2430)
Sourced from black's changelog.
21.9b0
Packaging
- Fix missing modules in self-contained binaries (#2466)
- Fix missing toml extra used during installation (#2475)
21.8b0
Black
- Add support for formatting Jupyter Notebook files (#2357)
- Move from
appdirs
dependency toplatformdirs
(#2375)- Present a more user-friendly error if .gitignore is invalid (#2414)
- The failsafe for accidentally added backslashes in f-string expressions has been hardened to handle more edge cases during quote normalization (#2437)
- Avoid changing a function return type annotation's type to a tuple by adding a trailing comma (#2384)
- Parsing support has been added for unparenthesized walruses in set literals, set comprehensions, and indices (#2447).
- Pin
setuptools-scm
build-time dependency version (#2457)- Exclude typing-extensions version 3.10.0.1 due to it being broken on Python 3.10 (#2460)
Blackd
- Replace sys.exit(-1) with raise ImportError as it plays more nicely with tools that scan installed packages (#2440)
Integrations
- The provided pre-commit hooks no longer specify
language_version
to avoid overridingdefault_language_version
(#2430)
Sourced from black's releases.
21.10b0
Black
- Document stability policy, that will apply for non-beta releases (#2529)
- Add new
--workers
parameter (#2514)- Fixed feature detection for positional-only arguments in lambdas (#2532)
- Bumped typed-ast version minimum to 1.4.3 for 3.10 compatiblity (#2519)
- Fixed a Python 3.10 compatibility issue where the loop argument was still being passed even though it has been removed (#2580)
- Deprecate Python 2 formatting support (#2523)
Blackd
Black-Primer
Integrations
Sourced from black's changelog.
21.10b0
Black
- Document stability policy, that will apply for non-beta releases (#2529)
- Add new
--workers
parameter (#2514)- Fixed feature detection for positional-only arguments in lambdas (#2532)
- Bumped typed-ast version minimum to 1.4.3 for 3.10 compatiblity (#2519)
- Fixed a Python 3.10 compatibility issue where the loop argument was still being passed even though it has been removed (#2580)
- Deprecate Python 2 formatting support (#2523)
Blackd
Black-Primer
Integrations
Sourced from black's releases.
21.11b0
Black
- Warn about Python 2 deprecation in more cases by improving Python 2 only syntax detection (#2592)
- Add experimental PyPy support (#2559)
- Add partial support for the match statement. As it's experimental, it's only enabled when
--target-version py310
is explicitly specified (#2586)- Add support for parenthesized with (#2586)
- Declare support for Python 3.10 for running Black (#2562)
Integrations
- Fixed vim plugin with Python 3.10 by removing deprecated distutils import (#2610)
- The vim plugin now parses
skip_magic_trailing_comma
from pyproject.toml (#2613)21.10b0
Black
- Document stability policy, that will apply for non-beta releases (#2529)
- Add new
--workers
parameter (#2514)- Fixed feature detection for positional-only arguments in lambdas (#2532)
- Bumped typed-ast version minimum to 1.4.3 for 3.10 compatiblity (#2519)
- Fixed a Python 3.10 compatibility issue where the loop argument was still being passed even though it has been removed (#2580)
- Deprecate Python 2 formatting support (#2523)
Blackd
Black-Primer
Integrations
Sourced from black's changelog.
21.11b0
Black
- Warn about Python 2 deprecation in more cases by improving Python 2 only syntax detection (#2592)
- Add experimental PyPy support (#2559)
- Add partial support for the match statement. As it's experimental, it's only enabled when
--target-version py310
is explicitly specified (#2586)- Add support for parenthesized with (#2586)
- Declare support for Python 3.10 for running Black (#2562)
Integrations
- Fixed vim plugin with Python 3.10 by removing deprecated distutils import (#2610)
- The vim plugin now parses
skip_magic_trailing_comma
from pyproject.toml (#2613)21.10b0
Black
- Document stability policy, that will apply for non-beta releases (#2529)
- Add new
--workers
parameter (#2514)- Fixed feature detection for positional-only arguments in lambdas (#2532)
- Bumped typed-ast version minimum to 1.4.3 for 3.10 compatibility (#2519)
- Fixed a Python 3.10 compatibility issue where the loop argument was still being passed even though it has been removed (#2580)
- Deprecate Python 2 formatting support (#2523)
Blackd
Black-Primer
Integrations
Sourced from black's releases.
21.11b1
Black
- Bumped regex version minimum to 2021.4.4 to fix Pattern class usage (#2621)
21.11b0
Black
- Warn about Python 2 deprecation in more cases by improving Python 2 only syntax detection (#2592)
- Add experimental PyPy support (#2559)
- Add partial support for the match statement. As it's experimental, it's only enabled when
--target-version py310
is explicitly specified (#2586)- Add support for parenthesized with (#2586)
- Declare support for Python 3.10 for running Black (#2562)
Integrations
- Fixed vim plugin with Python 3.10 by removing deprecated distutils import (#2610)
- The vim plugin now parses
skip_magic_trailing_comma
from pyproject.toml (#2613)21.10b0
Black
- Document stability policy, that will apply for non-beta releases (#2529)
- Add new
--workers
parameter (#2514)- Fixed feature detection for positional-only arguments in lambdas (#2532)
- Bumped typed-ast version minimum to 1.4.3 for 3.10 compatiblity (#2519)
- Fixed a Python 3.10 compatibility issue where the loop argument was still being passed even though it has been removed (#2580)
- Deprecate Python 2 formatting support (#2523)
Blackd
Black-Primer
Integrations
Sourced from black's changelog.
21.11b1
Black
- Bumped regex version minimum to 2021.4.4 to fix Pattern class usage (#2621)
21.11b0
Black
- Warn about Python 2 deprecation in more cases by improving Python 2 only syntax detection (#2592)
- Add experimental PyPy support (#2559)
- Add partial support for the match statement. As it's experimental, it's only enabled when
--target-version py310
is explicitly specified (#2586)- Add support for parenthesized with (#2586)
- Declare support for Python 3.10 for running Black (#2562)
Integrations
- Fixed vim plugin with Python 3.10 by removing deprecated distutils import (#2610)
- The vim plugin now parses
skip_magic_trailing_comma
from pyproject.toml (#2613)21.10b0
Black
- Document stability policy, that will apply for non-beta releases (#2529)
- Add new
--workers
parameter (#2514)- Fixed feature detection for positional-only arguments in lambdas (#2532)
- Bumped typed-ast version minimum to 1.4.3 for 3.10 compatibility (#2519)
- Fixed a Python 3.10 compatibility issue where the loop argument was still being passed even though it has been removed (#2580)
- Deprecate Python 2 formatting support (#2523)
Blackd
Black-Primer
Integrations
Sourced from black's releases.
22.3.0
Preview style
- Code cell separators
#%%
are now standardised to# %%
(#2919)- Remove unnecessary parentheses from
except
statements (#2939)- Remove unnecessary parentheses from tuple unpacking in
for
loops (#2945)- Avoid magic-trailing-comma in single-element subscripts (#2942)
Configuration
- Do not format
__pypackages__
directories by default (#2836)- Add support for specifying stable version with
--required-version
(#2832).- Avoid crashing when the user has no homedir (#2814)
- Avoid crashing when md5 is not available (#2905)
- Fix handling of directory junctions on Windows (#2904)
Documentation
- Update pylint config documentation (#2931)
Integrations
- Move test to disable plugin in Vim/Neovim, which speeds up loading (#2896)
Output
- In verbose, mode, log when Black is using user-level config (#2861)
Packaging
- Fix Black to work with Click 8.1.0 (#2966)
- On Python 3.11 and newer, use the standard library's
tomllib
instead oftomli
(#2903)black-primer
, the deprecated internal devtool, has been removed and copied to a separate repository (#2924)Parser
- Black can now parse starred expressions in the target of
for
andasync for
statements, e.gfor item in *items_1, *items_2: pass
(#2879).
Sourced from black's changelog.
22.3.0
Preview style
- Code cell separators
#%%
are now standardised to# %%
(#2919)- Remove unnecessary parentheses from
except
statements (#2939)- Remove unnecessary parentheses from tuple unpacking in
for
loops (#2945)- Avoid magic-trailing-comma in single-element subscripts (#2942)
Configuration
- Do not format
__pypackages__
directories by default (#2836)- Add support for specifying stable version with
--required-version
(#2832).- Avoid crashing when the user has no homedir (#2814)
- Avoid crashing when md5 is not available (#2905)
- Fix handling of directory junctions on Windows (#2904)
Documentation
- Update pylint config documentation (#2931)
Integrations
- Move test to disable plugin in Vim/Neovim, which speeds up loading (#2896)
Output
- In verbose, mode, log when Black is using user-level config (#2861)
Packaging
- Fix Black to work with Click 8.1.0 (#2966)
- On Python 3.11 and newer, use the standard library's
tomllib
instead oftomli
(#2903)black-primer
, the deprecated internal devtool, has been removed and copied to a separate repository (#2924)Parser
- Black can now parse starred expressions in the target of
for
andasync for
statements, e.gfor item in *items_1, *items_2: pass
(#2879).
ae2c075
Prepare release 22.3.0 (#2968)e9681a4
Fix _unicodefun patch code for Click 8.1.0 (#2966)ac7402c
Bump sphinx from 4.4.0 to 4.5.0 in /docs (GH-2959)f239d22
Enforce no formatting changes for PRs via CI (GH-2951)bd1e980
Remove unnecessary parentheses from except
clauses (#2939)14d84ba
Resolve new flake8-bugbear errors (B020) (GH-2950)14e5ce5
Remove unnecessary parentheses from tuple unpacking in for
loops (#2945)3800ebd
Avoid magic-trailing-comma in single-element subscripts (#2942)062b549
Github now supports .git-blame-ignore-revs (GH-2948)5379d4f
stub style: remove some possible future changes (#2940)Sourced from black's releases.
22.6.0
Style
- Fix unstable formatting involving
#fmt: skip
and# fmt:skip
comments (notice the lack of spaces) (#2970)Preview style
- Docstring quotes are no longer moved if it would violate the line length limit (#3044)
- Parentheses around return annotations are now managed (#2990)
- Remove unnecessary parentheses around awaited objects (#2991)
- Remove unnecessary parentheses in
with
statements (#2926)- Remove trailing newlines after code block open (#3035)
Integrations
- Add
scripts/migrate-black.py
script to ease introduction of Black to a Git project (#3038)Output
- Output Python version and implementation as part of
--version
flag (#2997)Packaging
- Use
tomli
instead oftomllib
on Python 3.11 builds wheretomllib
is not available (#2987)Parser
- PEP 654 syntax (for example,
except *ExceptionGroup:
) is now supported (#3016)- PEP 646 syntax (for example,
Array[Batch, *Shape]
ordef fn(*args: *T) -> None
) is now supported (#3071)Vim Plugin
- Fix
strtobool
function. It didn't parse true/on/false/off. (#3025)Full Changelog: https://github.com/psf/black/compare/22.3.0...22.6.0
Thank you!
@jpy-git
for improving our parentheses formatting significantly@siuryan
for fixing a fmt: skip bug, making it a little less annoying to use :)@isidentical
for implementing support for PEP 654 and 646 syntax@defntvdm
for fixing our vim plugin, especially as we (the maintainers) don't really know vim script sadly@idorrington92
for fixing the docstring bug where Black would move the closing quotes causing it to violate the line length limit (whoops!)@hbrunn
for contributing the migrate-black script@saroad2
for improving newline handling after code blocks and test infrastructure improvements... and everyone else who contributed documentation, tests, or other improvements to the Black project!
... (truncated)
Sourced from black's changelog.
22.6.0
Style
- Fix unstable formatting involving
#fmt: skip
and# fmt:skip
comments (notice the lack of spaces) (#2970)Preview style
- Docstring quotes are no longer moved if it would violate the line length limit (#3044)
- Parentheses around return annotations are now managed (#2990)
- Remove unnecessary parentheses around awaited objects (#2991)
- Remove unnecessary parentheses in
with
statements (#2926)- Remove trailing newlines after code block open (#3035)
Integrations
- Add
scripts/migrate-black.py
script to ease introduction of Black to a Git project (#3038)Output
- Output Python version and implementation as part of
--version
flag (#2997)Packaging
- Use
tomli
instead oftomllib
on Python 3.11 builds wheretomllib
is not available (#2987)Parser
- PEP 654 syntax (for example,
except *ExceptionGroup:
) is now supported (#3016)- PEP 646 syntax (for example,
Array[Batch, *Shape]
ordef fn(*args: *T) -> None
) is now supported (#3071)Vim Plugin
- Fix
strtobool
function. It didn't parse true/on/false/off. (#3025)22.3.0
Preview style
- Code cell separators
#%%
are now standardised to# %%
(#2919)- Remove unnecessary parentheses from
except
statements (#2939)- Remove unnecessary parentheses from tuple unpacking in
for
loops (#2945)- Avoid magic-trailing-comma in single-element subscripts (#2942)
Configuration
... (truncated)
f6c139c
Prepare docs for release 22.6.0 (#3139)eb5d175
Update preview style docs to include recent changes (#3136)d848209
Bump furo from 2022.6.4.1 to 2022.6.21 in /docs (#3138)fa6caa6
Only call get_future_imports when needed (#3135)6463fb8
Bump sphinx from 5.0.1 to 5.0.2 in /docs (#3128)e3c9b04
Replace link to Requests documentation (#3125)6c1bd08
Test run black on self (#3114)799adb5
Bump actions/setup-python from 3 to 4 (#3121)162ecd1
Use is_number_token instead of assertion (#3069)8c8675c
Update documentation dependencies (#3118)Sourced from black's releases.
22.12.0
Preview style
- Enforce empty lines before classes and functions with sticky leading comments (#3302)
- Reformat empty and whitespace-only files as either an empty file (if no newline is present) or as a single newline character (if a newline is present) (#3348)
- Implicitly concatenated strings used as function args are now wrapped inside parentheses (#3307)
- Correctly handle trailing commas that are inside a line's leading non-nested parens (#3370)
Configuration
- Fix incorrectly applied
.gitignore
rules by considering the.gitignore
location and the relative path to the target file (#3338)- Fix incorrectly ignoring
.gitignore
presence when more than one source directory is specified (#3336)Parser
- Parsing support has been added for walruses inside generator expression that are passed as function args (for example,
any(match := my_re.match(text) for text in texts)
) (#3327).Integrations
- Vim plugin: Optionally allow using the system installation of Black via
let g:black_use_virtualenv = 0
(#3309)
Sourced from black's changelog.
22.12.0
Preview style
- Enforce empty lines before classes and functions with sticky leading comments (#3302)
- Reformat empty and whitespace-only files as either an empty file (if no newline is present) or as a single newline character (if a newline is present) (#3348)
- Implicitly concatenated strings used as function args are now wrapped inside parentheses (#3307)
- Correctly handle trailing commas that are inside a line's leading non-nested parens (#3370)
Configuration
- Fix incorrectly applied
.gitignore
rules by considering the.gitignore
location and the relative path to the target file (#3338)- Fix incorrectly ignoring
.gitignore
presence when more than one source directory is specified (#3336)Parser
- Parsing support has been added for walruses inside generator expression that are passed as function args (for example,
any(match := my_re.match(text) for text in texts)
) (#3327).Integrations
- Vim plugin: Optionally allow using the system installation of Black via
let g:black_use_virtualenv = 0
(#3309)
2ddea29
Prepare release 22.12.0 (#3413)5b1443a
release: skip bad macos wheels for now (#3411)9ace064
Bump peter-evans/find-comment from 2.0.1 to 2.1.0 (#3404)19c5fe4
Fix CI with latest flake8-bugbear (#3412)d4a8564
Bump sphinx-copybutton from 0.5.0 to 0.5.1 in /docs (#3390)2793249
Wordsmith current_style.md (#3383)d97b789
Remove whitespaces of whitespace-only files (#3348)c23a5c1
Clarify that Black runs with --safe by default (#3378)8091b25
Correctly handle trailing commas that are inside a line's leading non-nested ...ffaaf48
Compare each .gitignore found with an appropiate relative path (#3338)Sourced from black's releases.
23.1.0
Highlights
This is the first release of 2023, and following our stability policy, it comes with a number of improvements to our stable style, notably improvements to empty line handling and the removal of redundant parentheses in several contexts.
There are also many changes to the preview style; try out
black --preview
and give us feedback to help us set the stable style for next year.In addition to style changes, Black now automatically infers the supported Python versions from your
pyproject.toml
file, removing the need to set Black's target versions separately.Stable style
- Introduce the 2023 stable style, which incorporates most aspects of last year's preview style (#3418). Specific changes:
- Enforce empty lines before classes and functions with sticky leading comments (#3302) (22.12.0)
- Reformat empty and whitespace-only files as either an empty file (if no newline is present) or as a single newline character (if a newline is present) (#3348) (22.12.0)
- Correctly handle trailing commas that are inside a line's leading non-nested parens (#3370) (22.12.0)
--skip-string-normalization
/-S
now prevents docstring prefixes from being normalized as expected (#3168) (since 22.8.0)- When using
--skip-magic-trailing-comma
or-C
, trailing commas are stripped from subscript expressions with more than 1 element (#3209) (22.8.0)- Fix a string merging/split issue when a comment is present in the middle of implicitly concatenated strings on its own line (#3227) (22.8.0)
- Docstring quotes are no longer moved if it would violate the line length limit (#3044, #3430) (22.6.0)
- Parentheses around return annotations are now managed (#2990) (22.6.0)
- Remove unnecessary parentheses around awaited objects (#2991) (22.6.0)
- Remove unnecessary parentheses in
with
statements (#2926) (22.6.0)- Remove trailing newlines after code block open (#3035) (22.6.0)
- Code cell separators
#%%
are now standardised to# %%
(#2919) (22.3.0)- Remove unnecessary parentheses from
except
statements (#2939) (22.3.0)- Remove unnecessary parentheses from tuple unpacking in
for
loops (#2945) (22.3.0)- Avoid magic-trailing-comma in single-element subscripts (#2942) (22.3.0)
- Fix a crash when a colon line is marked between
# fmt: off
and# fmt: on
(#3439)Preview style
- Format hex codes in unicode escape sequences in string literals (#2916)
- Add parentheses around
if
-else
expressions (#2278)- Improve performance on large expressions that contain many strings (#3467)
- Fix a crash in preview style with assert + parenthesized string (#3415)
- Fix crashes in preview style with walrus operators used in function return annotations and except clauses (#3423)
- Fix a crash in preview advanced string processing where mixed implicitly concatenated regular and f-strings start with an empty span (#3463)
- Fix a crash in preview advanced string processing where a standalone comment is placed before a dict's value (#3469)
- Fix an issue where extra empty lines are added when a decorator has
# fmt: skip
applied or there is a standalone comment between decorators (#3470)- Do not put the closing quotes in a docstring on a separate line, even if the line is too long (#3430)
- Long values in dict literals are now wrapped in parentheses; correspondingly unnecessary parentheses around short values in dict literals are now removed; long string lambda values are now wrapped in parentheses (#3440)
- Fix two crashes in preview style involving edge cases with docstrings (#3451)
- Exclude string type annotations from improved string processing; fix crash when the return type annotation is stringified and spans across multiple lines (#3462)
- Wrap multiple context managers in parentheses when targeting Python 3.9+ (#3489)
- Fix several crashes in preview style with walrus operators used in
with
statements or tuples (#3473)- Fix an invalid quote escaping bug in f-string expressions where it produced invalid code. Implicitly concatenated f-strings with different quotes can now be merged or quote-normalized by changing the quotes used in expressions. (#3509)
... (truncated)
Sourced from black's changelog.
23.1.0
Highlights
This is the first release of 2023, and following our stability policy, it comes with a number of improvements to our stable style, including improvements to empty line handling, removal of redundant parentheses in several contexts, and output that highlights implicitly concatenated strings better.
There are also many changes to the preview style; try out
black --preview
and give us feedback to help us set the stable style for next year.In addition to style changes, Black now automatically infers the supported Python versions from your
pyproject.toml
file, removing the need to set Black's target versions separately.Stable style
- Introduce the 2023 stable style, which incorporates most aspects of last year's preview style (#3418). Specific changes:
- Enforce empty lines before classes and functions with sticky leading comments (#3302) (22.12.0)
- Reformat empty and whitespace-only files as either an empty file (if no newline is present) or as a single newline character (if a newline is present) (#3348) (22.12.0)
- Implicitly concatenated strings used as function args are now wrapped inside parentheses (#3307) (22.12.0)
- Correctly handle trailing commas that are inside a line's leading non-nested parens (#3370) (22.12.0)
--skip-string-normalization
/-S
now prevents docstring prefixes from being normalized as expected (#3168) (since 22.8.0)- When using
--skip-magic-trailing-comma
or-C
, trailing commas are stripped from subscript expressions with more than 1 element (#3209) (22.8.0)- Implicitly concatenated strings inside a list, set, or tuple are now wrapped inside parentheses (#3162) (22.8.0)
- Fix a string merging/split issue when a comment is present in the middle of implicitly concatenated strings on its own line (#3227) (22.8.0)
- Docstring quotes are no longer moved if it would violate the line length limit (#3044, #3430) (22.6.0)
- Parentheses around return annotations are now managed (#2990) (22.6.0)
- Remove unnecessary parentheses around awaited objects (#2991) (22.6.0)
- Remove unnecessary parentheses in
with
statements (#2926) (22.6.0)- Remove trailing newlines after code block open (#3035) (22.6.0)
- Code cell separators
#%%
are now standardised to# %%
(#2919) (22.3.0)- Remove unnecessary parentheses from
except
statements (#2939) (22.3.0)- Remove unnecessary parentheses from tuple unpacking in
for
loops (#2945) (22.3.0)- Avoid magic-trailing-comma in single-element subscripts (#2942) (22.3.0)
... (truncated)
b0d1fba
Prepare release 23.1.0 (#3536)69ca0a4
Infer target version based on project metadata (#3219)c4bd2e3
Draft for Black 2023 stable style (#3418)226cbf0
Fix unsafe cast in linegen.py w/ await yield handling (#3533)f4ebc68
Upgrade isort (#3534)6407ebb
Remove Python version in the_basics.md (#3528)196b1f3
Fix black --help
output for --python-cell-magics
option to be reproducibl...d950f15
Update document now that paren wrapping CMs on Python 3.9+ is implemented (#3...a36878e
Fix an invalid quote escaping bug in f-string expressions (#3509)eabff67
Format hex code in unicode escape sequences in string literals (#2916)Sourced from black's releases.
23.3.0
Highlights
This release fixes a longstanding confusing behavior in Black's GitHub action, where the version of the action did not determine the version of Black being run (issue #3382). In addition, there is a small bug fix around imports and a number of improvements to the preview style.
Please try out the preview style with
black --preview
and tell us your feedback. All changes in the preview style are expected to become part of Black's stable style in January 2024.Stable style
- Import lines with
# fmt: skip
and# fmt: off
no longer have an extra blank line added when they are right after another import line (#3610)Preview style
- Add trailing commas to collection literals even if there's a comment after the last entry (#3393)
async def
,async for
, andasync with
statements are now formatted consistently compared to their non-async version. (#3609)with
statements that contain two context managers will be consistently wrapped in parentheses (#3589)- Let string splitters respect East Asian Width (#3445)
- Now long string literals can be split after East Asian commas and periods (
、
U+3001 IDEOGRAPHIC COMMA,。
U+3002 IDEOGRAPHIC FULL STOP, &,
U+FF0C FULLWIDTH COMMA) besides before spaces (#3445)- For stubs, enforce one blank line after a nested class with a body other than just
...
(#3564)- Improve handling of multiline strings by changing line split behavior (#1879)
Parser
- Added support for formatting files with invalid type comments (#3594)
Integrations
- Update GitHub Action to use the version of Black equivalent to action's version if version input is not specified (#3543)
- Fix missing Python binary path in autoload script for vim (#3508)
Documentation
- Document that only the most recent release is supported for security issues; vulnerabilities should be reported through Tidelift (#3612)
... (truncated)
Sourced from black's changelog.
23.3.0
Highlights
This release fixes a longstanding confusing behavior in Black's GitHub action, where the version of the action did not determine the version of Black being run (issue #3382). In addition, there is a small bug fix around imports and a number of improvements to the preview style.
Please try out the preview style with
black --preview
and tell us your feedback. All changes in the preview style are expected to become part of Black's stable style in January 2024.Stable style
- Import lines with
# fmt: skip
and# fmt: off
no longer have an extra blank line added when they are right after another import line (#3610)Preview style
- Add trailing commas to collection literals even if there's a comment after the last entry (#3393)
async def
,async for
, andasync with
statements are now formatted consistently compared to their non-async version. (#3609)with
statements that contain two context managers will be consistently wrapped in parentheses (#3589)- Let string splitters respect East Asian Width (#3445)
- Now long string literals can be split after East Asian commas and periods (
、
U+3001 IDEOGRAPHIC COMMA,。
U+3002 IDEOGRAPHIC FULL STOP, &,
U+FF0C FULLWIDTH COMMA) besides before spaces (#3445)- For stubs, enforce one blank line after a nested class with a body other than just
...
(#3564)- Improve handling of multiline strings by changing line split behavior (#1879)
Parser
- Added support for formatting files with invalid type comments (#3594)
Integrations
- Update GitHub Action to use the version of Black equivalent to action's version if version input is not specified (#3543)
- Fix missing Python binary path in autoload script for vim (#3508)
Documentation
- Document that only the most recent release is supported for security issues; vulnerabilities should be reported through Tidelift (#3612)
... (truncated)
bf7a162
Fixup the changelog (#3628)9b2b048
Prepare release 23.3.0 (#3625)bf5abdb
Specify Python exec path with minor version if available (#3508)b542f58
Use GH action version when version argument not specified (#3543)f3b1a3b
Bump furo from 2022.12.7 to 2023.3.23 in /docs (#3624)ef6e079
Let string splitters respect East_Asian_Width
property (#3445)5c064a9
Bump sphinx from 5.3.0 to 6.1.3 in /docs (#3499)3a9d6f0
Bump myst-parser from 0.18.1 to 1.0.0 in /docs (#3601)53c23e6
Support files with type comment syntax errors (#3594)dba3c26
Fix bug introduced in #3564. (#3615)Sourced from black's releases.
22.8.0
Highlights
- Python 3.11 is now supported, except for blackd as aiohttp does not support 3.11 as of publishing (#3234)
- This is the last release that supports running Black on Python 3.6 (formatting 3.6 code will continue to be supported until further notice)
- Reword the stability policy to say that we may, in rare cases, make changes that affect code that was not previously formatted by Black (#3155)
Stable style
- Fix an infinite loop when using
# fmt: on/off
in the middle of an expression or code block (#3158)- Fix incorrect handling of
# fmt: skip
on colon (:
) lines (#3148)- Comments are no longer deleted when a line had spaces removed around power operators (#2874)
Preview style
- Single-character closing docstring quotes are no longer moved to their own line as this is invalid. This was a bug introduced in version 22.6.0. (#3166)
--skip-string-normalization
/-S
now prevents docstring prefixes from being normalized as expected (#3168)- When using
--skip-magic-trailing-comma
or-C
, trailing commas are stripped from subscript expressions with more than 1 element (#3209)- Implicitly concatenated strings inside a list, set, or tuple are now wrapped inside parentheses (#3162)
- Fix a string merging/split issue when a comment is present in the middle of implicitly concatenated strings on its own line (#3227)
Blackd
blackd
now supports enabling the preview style via theX-Preview
header (#3217)Configuration
- Black now uses the presence of debug f-strings to detect target version (#3215)
- Fix misdetection of project root and verbose logging of sources in cases involving
--stdin-filename
(#3216)- Immediate
.gitignore
files in source directories given on the command line are now also respected, previously only.gitignore
files in the project root and automatically discovered directories were respected (#3237)Documentation
- Recommend using BlackConnect in IntelliJ IDEs (#3150)
Integrations
- Vim plugin: prefix messages with
Black:
so it's clear they come from Black (#3194)- Docker: changed to a /opt/venv installation + added to PATH to be available to non-root users (#3202)
Output
- Change from deprecated
asyncio.get_event_loop()
to create our event loop which removes DeprecationWarning (#3164)- Remove logging from internal
blib2to3
library since it regularly emits error logs about failed caching that can and should be ignored (#3193)Parser
- Type comments are now included in the AST equivalence check consistently so accidental deletion raises an error. Though type comments can't be tracked when running on PyPy 3.7 due to standard library limitations. (#2874)
Performance
... (truncated)
Sourced from black's changelog.
22.8.0
Highlights
- Python 3.11 is now supported, except for blackd as aiohttp does not support 3.11 as of publishing (#3234)
- This is the last release that supports running Black on Python 3.6 (formatting 3.6 code will continue to be supported until further notice)
- Reword the stability policy to say that we may, in rare cases, make changes that affect code that was not previously formatted by Black (#3155)
Stable style
- Fix an infinite loop when using
# fmt: on/off
in the middle of an expression or code block (#3158)- Fix incorrect handling of
# fmt: skip
on colon (:
) lines (#3148)- Comments are no longer deleted when a line had spaces removed around power operators (#2874)
Preview style
- Single-character closing docstring quotes are no longer moved to their own line as this is invalid. This was a bug introduced in version 22.6.0. (#3166)
--skip-string-normalization
/-S
now prevents docstring prefixes from being normalized as expected (#3168)- When using
--skip-magic-trailing-comma
or-C
, trailing commas are stripped from subscript expressions with more than 1 element (#3209)- Implicitly concatenated strings inside a list, set, or tuple are now wrapped inside parentheses (#3162)
- Fix a string merging/split issue when a comment is present in the middle of implicitly concatenated strings on its own line (#3227)
Blackd
blackd
now supports enabling the preview style via theX-Preview
header (#3217)Configuration
- Black now uses the presence of debug f-strings to detect target version (#3215)
- Fix misdetection of project root and verbose logging of sources in cases involving
--stdin-filename
(#3216)- Immediate
.gitignore
files in source directories given on the command line are now also respected, previously only.gitignore
files in the project root and automatically discovered directories were respected (#3237)Documentation
- Recommend using BlackConnect in IntelliJ IDEs (#3150)
Integrations
... (truncated)
2018e66
Prepare docs for release 22.8.0 (#3248)0019261
Update stable branch after publishing to PyPI (#3223)7757078
Improve & update release process to reflect recent changes (#3242)767604e
Use .gitignore files in the initial source directories (#3237)2c90480
Use strict mypy checking (#3222)ba618a3
Add parens around implicit string concatenations where it increases readabili...c0cc19b
Delay worker count determinationafed2c0
Load .gitignore and exclude regex at time of usee269f44
Lazily import parallelized format modulesc47b91f
Fix misdetection of project root with --stdin-filename
(#3216)Sourced from black's releases.
22.10.0
Highlights
- Runtime support for Python 3.6 has been removed. Formatting 3.6 code will still be supported until further notice.
Stable style
- Fix a crash when
# fmt: on
is used on a different block level than# fmt: off
(#3281)Preview style
- Fix a crash when formatting some dicts with parenthesis-wrapped long string keys (#3262)
Configuration
.ipynb_checkpoints
directories are now excluded by default (#3293)- Add
--skip-source-first-line
/-x
option to ignore the first line of source code while formatting (#3299)Packaging
- Executables made with PyInstaller will no longer crash when formatting several files at once on macOS. Native x86-64 executables for macOS are available once again. (#3275)
- Hatchling is now used as the build backend. This will not have any effect for users who install Black with its wheels from PyPI. (#3233)
- Faster compiled wheels are now available for CPython 3.11 (#3276)
Blackd
- Windows style (CRLF) newlines will be preserved (#3257).
Integrations
Sourced from black's changelog.
22.10.0
Highlights
- Runtime support for Python 3.6 has been removed. Formatting 3.6 code will still be supported until further notice.
Stable style
- Fix a crash when
# fmt: on
is used on a different block level than# fmt: off
(#3281)Preview style
- Fix a crash when formatting some dicts with parenthesis-wrapped long string keys (#3262)
Configuration
.ipynb_checkpoints
directories are now excluded by default (#3293)- Add
--skip-source-first-line
/-x
option to ignore the first line of source code while formatting (#3299)Packaging
- Executables made with PyInstaller will no longer crash when formatting several files at once on macOS. Native x86-64 executables for macOS are available once again. (#3275)
- Hatchling is now used as the build backend. This will not have any effect for users who install Black with its wheels from PyPI. (#3233)
- Faster compiled wheels are now available for CPython 3.11 (#3276)
Blackd
- Windows style (CRLF) newlines will be preserved (#3257).
Integrations
27d2014
Prepare release 22.10.0 (#3311)4da0851
Add option to skip the first line of source code (#3299)0359b85
Preserve crlf line endings in blackd (#3257)27d7ea4
Bump docutils from 0.18.1 to 0.19 in /docs (#3161)1a20c4d
Bump sphinx from 5.2.1 to 5.2.3 in /docs (#3305)980997f
Bump furo from 2022.9.15 to 2022.9.29 in /docs (#3304)b1077aa
Bump myst-parser from 0.18.0 to 0.18.1 in /docs (#3303)956bf39
Add .ipynb_checkpoints to DEFAULT_EXCLUDES (#3293)141291a
Enable build isolation under CIWB (#3297)ddb9924
Bump pypa/cibuildwheel from 2.10.0 to 2.10.2 (#3290)Sourced from black's releases.
23.7.0
Highlights
- Runtime support for Python 3.7 has been removed. Formatting 3.7 code will still be supported until further notice (#3765)
Stable style
- Fix a bug where an illegal trailing comma was added to return type annotations using PEP 604 unions (#3735)
- Fix several bugs and crashes where comments in stub files were removed or mishandled under some circumstances (#3745)
- Fix a crash with multi-line magic comments like
type: ignore
within parentheses (#3740)- Fix error in AST validation when Black removes trailing whitespace in a type comment (#3773)
Preview style
- Implicitly concatenated strings used as function args are no longer wrapped inside parentheses (#3640)
- Remove blank lines between a class definition and its docstring (#3692)
Configuration
- The
--workers
argument to Black can now be specified via theBLACK_NUM_WORKERS
environment variable (#3743).pytest_cache
,.ruff_cache
and.vscode
are now excluded by default (#3691)- Fix Black not honouring
pyproject.toml
settings when running--stdin-filename
and thepyproject.toml
found isn't in the current working directory (#3719)- Black will now error if
exclude
andextend-exclude
have invalid data types inpyproject.toml
, instead of silently doing the wrong thing (#3764)Packaging
- Upgrade mypyc from 0.991 to 1.3 (#3697)
- Remove patching of Click that mitigated errors on Python 3.6 with
LANG=C
(#3768)Parser
- Add support for the new PEP 695 syntax in Python 3.12 (#3703)
Performance
- Speed up Black significantly when the cache is full (#3751)
- Avoid importing
IPython
in a case where we wouldn't need it (#3748)Output
... (truncated)
Sourced from black's changelog.
23.7.0
Highlights
- Runtime support for Python 3.7 has been removed. Formatting 3.7 code will still be supported until further notice (#3765)
Stable style
- Fix a bug where an illegal trailing comma was added to return type annotations using PEP 604 unions (#3735)
- Fix several bugs and crashes where comments in stub files were removed or mishandled under some circumstances (#3745)
- Fix a crash with multi-line magic comments like
type: ignore
within parentheses (#3740)- Fix error in AST validation when Black removes trailing whitespace in a type comment (#3773)
Preview style
- Implicitly concatenated strings used as function args are no longer wrapped inside parentheses (#3640)
- Remove blank lines between a class definition and its docstring (#3692)
Configuration
- The
--workers
argument to Black can now be specified via theBLACK_NUM_WORKERS
environment variable (#3743).pytest_cache
,.ruff_cache
and.vscode
are now excluded by default (#3691)- Fix Black not honouring
pyproject.toml
settings when running--stdin-filename
and thepyproject.toml
found isn't in the current working directory (#3719)- Black will now error if
exclude
andextend-exclude
have invalid data types inpyproject.toml
, instead of silently doing the wrong thing (#3764)Packaging
- Upgrade mypyc from 0.991 to 1.3 (#3697)
- Remove patching of Click that mitigated errors on Python 3.6 with
LANG=C
(#3768)Parser
- Add support for the new PEP 695 syntax in Python 3.12 (#3703)
Performance
- Speed up Black significantly when the cache is full (#3751)
- Avoid importing
IPython
in a case where we wouldn't need it (#3748)Output
... (truncated)
193ee76
Prepare release 23.7.0 (#3776)38723bb
Unpin pytest-xdist (#3772)138769a
Disable coverage on pypy tests (#3777)ad3724b
Upgrade to latest mypy (#3775)b8e2ec7
Fix crash on type comment with trailing space (#3773)257d392
Fix removed comments in stub files (#3745)2593af2
Improve performance by skipping unnecessary normalisation (#3751)f3b50e4
Add CITATION.cff file (#3723)0b4d7d5
Run pyupgrade on blib2to3 and src (#3771)114e835
Remove click patch (#3768)Sourced from blacken-docs's changelog.
1.13.0 (2023-01-16)
Note Adam Johnson is new maintainer.
Require Black 22.1.0+.
Add
--rst-literal-blocks
option, to also format text in reStructuredText literal blocks, starting with::
. Sphinx highlights these with the project’s default language, which defaults to Python.
1238e1d
Version 1.13.04e6dc07
Fix setup.cfg long_description_content_type579a71a
Standardize setup.cfg (#212)a6b2ba0
Changelog entry about change in maintenance3cf8b9a
Standard pre-commit config (#211)bcd3669
Standardize test file name (#210)6d1771d
Remove setup.py (#209)4e5ab6e
Improve README (#208)c19c57f
Add support for reStructuredText literal blocks (#196)6af8099
Move from tmpdir pytest fixture to tmp_path (#206)4b94add
Version 1.14.0292cb18
Support Python 3.12 (#251)72ecf2c
[pre-commit.ci] pre-commit autoupdate (#249)ea8f1ca
Upgrade requirements (#248)9979d7a
Upgrade requirements (#247)7b71075
[pre-commit.ci] pre-commit autoupdate (#245)6280868
[pre-commit.ci] pre-commit autoupdate (#244)83efc37
Upgrade requirements (#243)7aedc23
[pre-commit.ci] pre-commit autoupdate (#242)d78d593
[pre-commit.ci] pre-commit autoupdate (#241)2e74dc4
Version 1.15.08ddb2f1
[pre-commit.ci] pre-commit autoupdate (#257)64fbca6
Drop Python 3.7 support (#256)f6a0817
[pre-commit.ci] pre-commit autoupdate (#255)cbdcb50
[pre-commit.ci] pre-commit autoupdate (#254)37fc70e
Upgrade requirements (#253)7bbe434
[pre-commit.ci] pre-commit autoupdate (#250)Sourced from sphinx's releases.
Sphinx 7.1.2
Changelog: https://www.sphinx-doc.org/en/master/changes.html
Sphinx 7.1.1
Changelog: https://www.sphinx-doc.org/en/master/changes.html
Sphinx 7.1.0
Changelog: https://www.sphinx-doc.org/en/master/changes.html
v7.0.1
Changelog: https://www.sphinx-doc.org/en/master/changes.html
v7.0.0
Changelog: https://www.sphinx-doc.org/en/master/changes.html
v7.0.0rc1
Changelog: https://www.sphinx-doc.org/en/master/changes.html
v6.2.1
Changelog: https://www.sphinx-doc.org/en/master/changes.html
v6.2.0
Changelog: https://www.sphinx-doc.org/en/master/changes.html
Sourced from sphinx's changelog.
Release 7.1.2 (released Aug 02, 2023)
Bugs fixed
- #11542: linkcheck: Properly respect :confval:
linkcheck_anchors
and do not spuriously report failures to validate anchors. Patch by James Addison.Release 7.1.1 (released Jul 27, 2023)
Bugs fixed
- #11514: Fix
SOURCE_DATE_EPOCH
in multi-line copyright footer. Patch by Bénédikt Tran.Release 7.1.0 (released Jul 24, 2023)
Incompatible changes
Releases are no longer signed, given the
change in PyPI policy
_... _change in PyPI policy: https://blog.pypi.org/posts/2023-05-23-removing-pgp/
Deprecated
- #11412: Emit warnings on using a deprecated Python-specific index entry type (namely,
module
,keyword
,operator
,object
,exception
,statement
, andbuiltin
) in the :rst:dir:index
directive, and set the removal version to Sphinx 9. Patch by Adam Turner.Features added
- #11415: Add a checksum to JavaScript and CSS asset URIs included within generated HTML, using the CRC32 algorithm.
- :meth:
~sphinx.application.Sphinx.require_sphinx
now allows the version requirement to be specified as(major, minor)
.- #11011: Allow configuring a line-length limit for object signatures, via :confval:
maximum_signature_line_length
and the domain-specific variants. If the length of the signature (in characters) is greater than the configured limit, each parameter in the signature will be split to its own logical line. This behaviour may also be controlled by options on object description directives, for example :rst:dir:py:function:single-line-parameter-list
.
... (truncated)
320d0b6
Bump to 7.1.2 final06c1339
Ensure that linkcheck_anchors
is properly respected (#11544)89808c6
Emend attribution for GH-11431 in CHANGES (#11547)4958d2a
Fix flake8 E231 reported linting failure4862da8
Bump versiond8d73c1
Bump to 7.1.1 finala54e630
[internationalisation] Update message catalogues8452300
Fix multi-line copyright when SOURCE_DATE_EPOCH
is set (#11524)fe08cec
bump versione560f63
Bump to 7.1.0 finalSourced from furo's changelog.
Changelog
2023.07.26 -- Vigilant Volt
- Fix compatiblity with Sphinx 7.1.
- Improve how content overflow is handled.
- Improve how literal blocks containing inline code are handled.
2023.05.20 -- Unassuming Ultramarine
- ✨ Add support for Sphinx 7.
- Drop support for Sphinx 5.
- Improve the screen-reader label for sidebar collapse.
- Make it easier to create derived themes from Furo.
- Bump all JS dependencies (NodeJS and npm packages).
2023.03.27 -- Tasty Tangerine
- Regenerate with newer version of sphinx-theme-builder, to fix RECORD hashes.
- Add missing class to Font Awesome examples
2023.03.23 -- Sassy Saffron
- Update Python version classifiers.
- Increase the icon size in mobile header.
- Increase admonition title bg opacity.
- Change the default API background to transparent.
- Transition the API background change.
- Remove the "indent" of API entries which have a background.
- Break long inline code literals.
2022.12.07 -- Reverent Raspberry
- ✨ Add support for Sphinx 6.
- ✨ Improve footnote presentation with docutils 0.18+.
- Drop support for Sphinx 4.
- Improve documentation about what the edit button does.
- Improve handling of empty-flexboxes for better print experience on Chrome.
- Improve styling for inline signatures.
... (truncated)
35f5307
Prepare release: 2023.07.260a8bedc
Update changeloga92dd0c
Make _add_asset_hashes
a no-op with Sphinx 7.1f8db95b
Improve literals with inline code are handled1680dbe
Document the use of figclass
with figure
directivebeebd7e
Increase the specificity of the admonition title selector834e951
Setup uploads to Percy27bf2c0
[pre-commit.ci] pre-commit autoupdate (#672)c8b51d0
Fix how content overflow is handled80afa27
[pre-commit.ci] pre-commit autoupdate (#652)2e74dc4
Version 1.15.08ddb2f1
[pre-commit.ci] pre-commit autoupdate (#257)64fbca6
Drop Python 3.7 support (#256)f6a0817
[pre-commit.ci] pre-commit autoupdate (#255)cbdcb50
[pre-commit.ci] pre-commit autoupdate (#254)37fc70e
Upgrade requirements (#253)7bbe434
[pre-commit.ci] pre-commit autoupdate (#250)Sourced from furo's changelog.
Changelog
2023.03.23 -- Sassy Saffron
- Regenerate with newer version of sphinx-theme-builder, to fix RECORD hashes.
- Update Python version classifiers.
- Increase the icon size in mobile header.
- Increase admonition title bg opacity.
- Change the default API background to transparent.
- Transition the API background change.
- Remove the "indent" of API entries which have a background.
- Break long inline code literals.
2022.12.07 -- Reverent Raspberry
- ✨ Add support for Sphinx 6.
- ✨ Improve footnote presentation with docutils 0.18+.
- Drop support for Sphinx 4.
- Improve documentation about what the edit button does.
- Improve handling of empty-flexboxes for better print experience on Chrome.
- Improve styling for inline signatures.
- Replace the
meta
generator tag with a comment.- Tweak labels with icons to prevent users selecting icons as text on touch.
2022.09.29 -- Quaint Quartz
- Add ability to set arbitrary URLs for edit button.
- Add support for aligning text in MyST-parser generated tables.
2022.09.15 -- Pragmatic Pistachio
- Add a minimum version constraint on pygments.
- Add an explicit dependency on
sass
.- Change right sidebar title from "Contents" to "On this page".
- Correctly position sidebars on small screens.
- Correctly select only Furo's own
svg
in related pagesnav
.- Make numpy-style documentation headers consistent.
- Retitle the reference section.
- Update npm dependencies.
... (truncated)
81139dd
Prepare release: 2023.03.23dafa73a
Update changelog82591ef
Allow all pre
tags to have overflows55b32f0
Update Python version classifiers (#626)cd6ecdd
Update linters82a1cec
Drop the black pin in blacken-docs483b05c
Increase the icon size in mobile headerab3ca77
Revert "Increase icon sizes (#554)"82376d2
Supply encoding. Fixes #621. (#622)193643f
Increase admonition title bg opacity (#555)Sourced from furo's changelog.
Changelog
2023.03.27 -- Tasty Tangerine
- Regenerate with newer version of sphinx-theme-builder, to fix RECORD hashes.
- Add missing class to Font Awesome examples
2023.03.23 -- Sassy Saffron
- Update Python version classifiers.
- Increase the icon size in mobile header.
- Increase admonition title bg opacity.
- Change the default API background to transparent.
- Transition the API background change.
- Remove the "indent" of API entries which have a background.
- Break long inline code literals.
2022.12.07 -- Reverent Raspberry
- ✨ Add support for Sphinx 6.
- ✨ Improve footnote presentation with docutils 0.18+.
- Drop support for Sphinx 4.
- Improve documentation about what the edit button does.
- Improve handling of empty-flexboxes for better print experience on Chrome.
- Improve styling for inline signatures.
- Replace the
meta
generator tag with a comment.- Tweak labels with icons to prevent users selecting icons as text on touch.
2022.09.29 -- Quaint Quartz
- Add ability to set arbitrary URLs for edit button.
- Add support for aligning text in MyST-parser generated tables.
2022.09.15 -- Pragmatic Pistachio
- Add a minimum version constraint on pygments.
- Add an explicit dependency on
sass
.- Change right sidebar title from "Contents" to "On this page".
- Correctly position sidebars on small screens.
... (truncated)
2f61e10
Prepare release: 2023.03.275c7aedd
Update changelog0535011
Add missing class to Font Awesome examples (#629)811f1e7
Remove unused templates_path
(#627)961d4e9
Add a inline-code as an example heading48af8eb
Back to development81139dd
Prepare release: 2023.03.23dafa73a
Update changelog82591ef
Allow all pre
tags to have overflows55b32f0
Update Python version classifiers (#626)Sourced from furo's changelog.
Changelog
2022.06.21 -- Opulent Opal
- Fix
docutils <= 0.17.x
compatibility- Bump to the latest Node.js LTS
2022.06.04.1 -- Naughty Nickel bugfix
- Fix the URL used in the "Edit this page" for Read the Docs builds.
2022.06.04 -- Naughty Nickel
- ✨ Advertise Sphinx 5 compatibility.
- ✨ Change to
basic-ng
as the base theme (from {pypi}sphinx-basic-ng
).- Document site-wide announcement banners.
- Drop the pin on pygments.
- Improve edit button, using
basic-ng
'sedit-this-page
component.- Tweak headings to better match what users expect.
- Tweak how Sphinx's default HTML is rendered, using docutils post-transforms (this replaces parsing+modifying it with BeautifulSoup).
- When built with docutils 0.18, footnotes are rendered differently and stylised differently in Furo.
2022.04.07 -- Magical Mauve
- ✨ Make sphinx-copybutton look better.
- Add margin to indentations in line blocks.
- Add styling for non-arabic list styles
- Add support for
html_baseurl
.- Improve "Edit this page" icon to be more accessible.
- Improve
html_sidebars
example.- Tweak positioning of back to top on desktop.
2022.03.04 -- Lucent Lilac
- Improve support for print media.
- Reduce heading sizes for h3 and below.
- Don't allow selecting headerlink content.
- Improve how overflow wrapping is handled.
- Add a reference from the configuration variables to the color customisation page.
2022.02.23 -- Keen Kobi
... (truncated)
a2e8f42
Prepare release: 2022.06.21d4967e5
Update changelog2969c23
[pre-commit.ci] pre-commit autoupdate (#455)2365493
Use findall from docutils only if it's availablebb3c355
Merge pull request #450 from polyzen/patch-14fb1a74
Bump to the latest Node.js LTS9970aac
Back to development1142fad
Prepare release: 2022.06.04.1211abb4
Update changelog06cdba6
Fix the edit this page URLSourced from furo's changelog.
Changelog
2022.06.04.1 -- Naughty Nickel bugfix
- Fix the URL used in the "Edit this page" for Read the Docs builds.
2022.06.04 -- Naughty Nickel
- ✨ Advertise Sphinx 5 compatibility.
- ✨ Change to
basic-ng
as the base theme (from {pypi}sphinx-basic-ng
).- Document site-wide announcement banners.
- Drop the pin on pygments.
- Improve edit button, using
basic-ng
'sedit-this-page
component.- Tweak headings to better match what users expect.
- Tweak how Sphinx's default HTML is rendered, using docutils post-transforms (this replaces parsing+modifying it with BeautifulSoup).
- When built with docutils 0.18, footnotes are rendered differently and stylised differently in Furo.
2022.04.07 -- Magical Mauve
- ✨ Make sphinx-copybutton look better.
- Add margin to indentations in line blocks.
- Add styling for non-arabic list styles
- Add support for
html_baseurl
.- Improve "Edit this page" icon to be more accessible.
- Improve
html_sidebars
example.- Tweak positioning of back to top on desktop.
2022.03.04 -- Lucent Lilac
- Improve support for print media.
- Reduce heading sizes for h3 and below.
- Don't allow selecting headerlink content.
- Improve how overflow wrapping is handled.
- Add a reference from the configuration variables to the color customisation page.
2022.02.23 -- Keen Kobi
- ✨ Add a "Back to Top" button that shows up when scrolling up.
- Add a URL to GitHub in Project-URLs.
- Break long words in the prev/next buttons.
- Fix includes in Kitchen sink.
... (truncated)
1142fad
Prepare release: 2022.06.04.1211abb4
Update changelog06cdba6
Fix the edit this page URL43ce491
Back to developmentfb6e486
Prepare release: 2022.06.04090b02e
Update changelog098d51d
Fix the Just the Docs link7fa8d08
Change to a post-transform for wrapping math blocks and table51f1e52
Speed up determining if there's multiple toc entries99a6ff8
Update caniuse-lite NPM packageSourced from furo's changelog.
Changelog
2022.09.15 -- Pragmatic Pistachio
- Add a minimum version constraint on pygments.
- Add an explicit dependency on
sass
.- Change right sidebar title from "Contents" to "On this page".
- Correctly position sidebars on small screens.
- Correctly select only Furo's own
svg
in related pagesnav
.- Make numpy-style documentation headers consistent.
- Retitle the reference section.
- Update npm dependencies.
2022.06.21 -- Opulent Opal
- Fix
docutils <= 0.17.x
compatibility.- Bump to the latest Node.js LTS.
2022.06.04.1 -- Naughty Nickel bugfix
- Fix the URL used in the "Edit this page" for Read the Docs builds.
2022.06.04 -- Naughty Nickel
- ✨ Advertise Sphinx 5 compatibility.
- ✨ Change to
basic-ng
as the base theme (from {pypi}sphinx-basic-ng
).- Document site-wide announcement banners.
- Drop the pin on pygments.
- Improve edit button, using
basic-ng
'sedit-this-page
component.- Tweak headings to better match what users expect.
- Tweak how Sphinx's default HTML is rendered, using docutils post-transforms (this replaces parsing+modifying it with BeautifulSoup).
- When built with docutils 0.18, footnotes are rendered differently and stylised differently in Furo.
2022.04.07 -- Magical Mauve
- ✨ Make sphinx-copybutton look better.
- Add margin to indentations in line blocks.
- Add styling for non-arabic list styles
- Add support for
html_baseurl
.
... (truncated)
08e6b38
Prepare release: 2022.09.159de7613
Update changeloga064929
Tweak changelog content style46f4adc
Revert "Add initial theme.conf content for eventual ablog support"45b839b
Set a minimum constraint on pygmentsa4af988
[pre-commit.ci] pre-commit autoupdate (#518)a72186f
[pre-commit.ci] pre-commit autoupdate (#504)9f41ee6
Add initial theme.conf content for eventual ablog support75e0361
Make numpy-style documentation headers consistent9d280e6
[pre-commit.ci] pre-commit autoupdate (#487)Sourced from furo's changelog.
Changelog
2022.09.29 -- Quaint Quartz
- Add ability to set arbitrary URLs for edit button.
- Add support for aligning text in MyST-parser generated tables.
2022.09.15 -- Pragmatic Pistachio
- Add a minimum version constraint on pygments.
- Add an explicit dependency on
sass
.- Change right sidebar title from "Contents" to "On this page".
- Correctly position sidebars on small screens.
- Correctly select only Furo's own
svg
in related pagesnav
.- Make numpy-style documentation headers consistent.
- Retitle the reference section.
- Update npm dependencies.
2022.06.21 -- Opulent Opal
- Fix
docutils <= 0.17.x
compatibility.- Bump to the latest Node.js LTS.
2022.06.04.1 -- Naughty Nickel bugfix
- Fix the URL used in the "Edit this page" for Read the Docs builds.
2022.06.04 -- Naughty Nickel
- ✨ Advertise Sphinx 5 compatibility.
- ✨ Change to
basic-ng
as the base theme (from {pypi}sphinx-basic-ng
).- Document site-wide announcement banners.
- Drop the pin on pygments.
- Improve edit button, using
basic-ng
'sedit-this-page
component.- Tweak headings to better match what users expect.
- Tweak how Sphinx's default HTML is rendered, using docutils post-transforms (this replaces parsing+modifying it with BeautifulSoup).
- When built with docutils 0.18, footnotes are rendered differently and stylised differently in Furo.
2022.04.07 -- Magical Mauve
... (truncated)
1375f9d
Prepare release: 2022.09.29af43607
Update changelogbc0fe52
Update user-facing documentation for edit button509c558
Modernise the edit-this-page.html
template5a0ceca
Add source_edit_link
as a theme configuration parameter (#510)52fc32f
Build documentation in pull requests149f77b
Fix stylesheet for MyST tables9af2e44
Support MyST table column alignment (#531)82dd61c
Back to developmentSourced from furo's changelog.
Changelog
2022.12.07 -- Reverent Raspberry
- ✨ Add support for Sphinx 6.
- ✨ Improve footnote presentation with docutils 0.18+.
- Drop support for Sphinx 4.
- Improve documentation about what the edit button does.
- Improve handling of empty-flexboxes for better print experience on Chrome.
- Improve styling for inline signatures.
- Replace the
meta
generator tag with a comment.- Tweak labels with icons to prevent users selecting icons as text on touch.
2022.09.29 -- Quaint Quartz
- Add ability to set arbitrary URLs for edit button.
- Add support for aligning text in MyST-parser generated tables.
2022.09.15 -- Pragmatic Pistachio
- Add a minimum version constraint on pygments.
- Add an explicit dependency on
sass
.- Change right sidebar title from "Contents" to "On this page".
- Correctly position sidebars on small screens.
- Correctly select only Furo's own
svg
in related pagesnav
.- Make numpy-style documentation headers consistent.
- Retitle the reference section.
- Update npm dependencies.
2022.06.21 -- Opulent Opal
- Fix
docutils <= 0.17.x
compatibility.- Bump to the latest Node.js LTS.
2022.06.04.1 -- Naughty Nickel bugfix
- Fix the URL used in the "Edit this page" for Read the Docs builds.
2022.06.04 -- Naughty Nickel
... (truncated)
1034267
Prepare release: 2022.12.07239e69f
Update changelog8faac34
Remove the no-longer-useful gh-pages workflowfaa27fb
Fix the hyperlink warning9849ec0
Forward the arguments to stb serve
e0dc9b8
[pre-commit.ci] pre-commit autoupdate (#588)9842e25
Clarify what the edit button does (#587)0d2cf0b
[pre-commit.ci] pre-commit autoupdate (#578)b7d8866
Revert "Document that GCC is using Furo! (#575)" (#577)0ab12bb
Improve footnote presentation with docutils 0.18+ (#576)Sourced from furo's changelog.
Changelog
2023.05.20 -- Unassuming Ultramarine
- ✨ Add support for Sphinx 7.
- Drop support for Sphinx 5.
- Improve the screen-reader label for sidebar collapse.
- Make it easier to create derived themes from Furo.
- Bump all JS dependencies (NodeJS and npm packages).
2023.03.27 -- Tasty Tangerine
- Regenerate with newer version of sphinx-theme-builder, to fix RECORD hashes.
- Add missing class to Font Awesome examples
2023.03.23 -- Sassy Saffron
- Update Python version classifiers.
- Increase the icon size in mobile header.
- Increase admonition title bg opacity.
- Change the default API background to transparent.
- Transition the API background change.
- Remove the "indent" of API entries which have a background.
- Break long inline code literals.
2022.12.07 -- Reverent Raspberry
- ✨ Add support for Sphinx 6.
- ✨ Improve footnote presentation with docutils 0.18+.
- Drop support for Sphinx 4.
- Improve documentation about what the edit button does.
- Improve handling of empty-flexboxes for better print experience on Chrome.
- Improve styling for inline signatures.
- Replace the
meta
generator tag with a comment.- Tweak labels with icons to prevent users selecting icons as text on touch.
2022.09.29 -- Quaint Quartz
- Add ability to set arbitrary URLs for edit button.
... (truncated)
d2c9ca8
Prepare release: 2023.05.20662d21b
Update changelog591780b
Bump compatible Sphinx versionc2e7837
Bump NodeJS and package versionsdd85574
Use the reference HtmlFormatter class defined on PygmentsBridge. (#657)6bff419
Fix broken link (#654)e7f732e
Improve the screen-reader label for sidebar collapse48c0bf2
Drop the check for the theme name1b17d81
[pre-commit.ci] pre-commit autoupdate (#646)4904fd5
Remove Python 3.8 constraint from Black pre-commit config (#647)Sourced from furo's changelog.
Changelog
2023.07.26 -- Vigilant Volt
- Fix compatiblity with Sphinx 7.1.
- Improve how content overflow is handled.
- Improve how literal blocks containing inline code are handled.
2023.05.20 -- Unassuming Ultramarine
- ✨ Add support for Sphinx 7.
- Drop support for Sphinx 5.
- Improve the screen-reader label for sidebar collapse.
- Make it easier to create derived themes from Furo.
- Bump all JS dependencies (NodeJS and npm packages).
2023.03.27 -- Tasty Tangerine
- Regenerate with newer version of sphinx-theme-builder, to fix RECORD hashes.
- Add missing class to Font Awesome examples
2023.03.23 -- Sassy Saffron
- Update Python version classifiers.
- Increase the icon size in mobile header.
- Increase admonition title bg opacity.
- Change the default API background to transparent.
- Transition the API background change.
- Remove the "indent" of API entries which have a background.
- Break long inline code literals.
2022.12.07 -- Reverent Raspberry
- ✨ Add support for Sphinx 6.
- ✨ Improve footnote presentation with docutils 0.18+.
- Drop support for Sphinx 4.
- Improve documentation about what the edit button does.
- Improve handling of empty-flexboxes for better print experience on Chrome.
- Improve styling for inline signatures.
... (truncated)
35f5307
Prepare release: 2023.07.260a8bedc
Update changeloga92dd0c
Make _add_asset_hashes
a no-op with Sphinx 7.1f8db95b
Improve literals with inline code are handled1680dbe
Document the use of figclass
with figure
directivebeebd7e
Increase the specificity of the admonition title selector834e951
Setup uploads to Percy27bf2c0
[pre-commit.ci] pre-commit autoupdate (#672)c8b51d0
Fix how content overflow is handled80afa27
[pre-commit.ci] pre-commit autoupdate (#652)Sourced from sphinx's releases.
v6.0.0
Changelog: https://www.sphinx-doc.org/en/master/changes.html
v6.0.0b2
Changelog: https://www.sphinx-doc.org/en/master/changes.html
v6.0.0b1
Changelog: https://www.sphinx-doc.org/en/master/changes.html
Sourced from sphinx's changelog.
Release 6.0.0 (released Dec 29, 2022)
Dependencies
- #10468: Drop Python 3.6 support
- #10470: Drop Python 3.7, Docutils 0.14, Docutils 0.15, Docutils 0.16, and Docutils 0.17 support. Patch by Adam Turner
Incompatible changes
#7405: Removed the jQuery and underscore.js JavaScript frameworks.
These frameworks are no longer be automatically injected into themes from Sphinx 6.0. If you develop a theme or extension that uses the
jQuery
,$
, or$u
global objects, you need to update your JavaScript to modern standards, or use the mitigation below.The first option is to use the sphinxcontrib.jquery_ extension, which has been developed by the Sphinx team and contributors. To use this, add
sphinxcontrib.jquery
to theextensions
list inconf.py
, or callapp.setup_extension("sphinxcontrib.jquery")
if you develop a Sphinx theme or extension.The second option is to manually ensure that the frameworks are present. To re-add jQuery and underscore.js, you will need to copy
jquery.js
andunderscore.js
fromthe Sphinx repository
_ to yourstatic
directory, and add the following to yourlayout.html
:.. code-block:: html+jinja
{%- block scripts %} {{ super() }} {%- endblock %}
.. _sphinxcontrib.jquery: https://github.com/sphinx-contrib/jquery/
Patch by Adam Turner.
#10471, #10565: Removed deprecated APIs scheduled for removal in Sphinx 6.0. See :ref:
dev-deprecated-apis
for details. Patch by Adam Turner.#10901: C Domain: Remove support for parsing pre-v3 style type directives and roles. Also remove associated configuration variables
c_allow_pre_v3
andc_warn_on_allowed_pre_v3
. Patch by Adam Turner.Features added
... (truncated)
5b56a23
Bump to 6.0.0 finalf1d1e9c
Update coverage workflow for Tox 466a738c
Update coverage workflow for new configuration location041e5f8
Add test coverage for 'today_fmt' reference substitution (#10980)da25145
Remove unnecessary conditional import in sphinx.ext.napoleon
(#11043)45a0ea9
Migrate coveragepy config into pyproject.toml (#11025)3ec54f1
Create a pydata_sphinx_theme
section in usage examples (#11046)32bce8f
Copy edit the tutorial (#11049)9844162
Fix example using add_config_value
(#10937)bf4a626
RTD builder: add graphviz depedendency (#11040)Sourced from sphinx's releases.
v6.1.0
Changelog: https://www.sphinx-doc.org/en/master/changes.html
v6.0.1
Changelog: https://www.sphinx-doc.org/en/master/changes.html
v6.0.0
Changelog: https://www.sphinx-doc.org/en/master/changes.html
v6.0.0b2
Changelog: https://www.sphinx-doc.org/en/master/changes.html
v6.0.0b1
Changelog: https://www.sphinx-doc.org/en/master/changes.html
Sourced from sphinx's changelog.
Release 6.1.0 (released Jan 05, 2023)
Dependencies
Adopted the
Ruff
_ code linter... _Ruff: https://github.com/charliermarsh/ruff
Incompatible changes
- #10979: gettext: Removed support for pluralisation in
get_translation
. This was unused and complicated other changes tosphinx.locale
.Deprecated
sphinx.util
functions:
- Renamed
sphinx.util.typing.stringify()
tosphinx.util.typing.stringify_annotation()
- Moved
sphinx.util.xmlname_checker()
tosphinx.builders.epub3._XML_NAME_PATTERN
Moved to
sphinx.util.display
:
sphinx.util.status_iterator
sphinx.util.display_chunk
sphinx.util.SkipProgressMessage
sphinx.util.progress_message
Moved to
sphinx.util.http_date
:
sphinx.util.epoch_to_rfc1123
sphinx.util.rfc1123_to_epoch
Moved to
sphinx.util.exceptions
:
sphinx.util.save_traceback
sphinx.util.format_exception_cut_frames
Features added
- Cache doctrees in the build environment during the writing phase.
- Make all writing phase tasks support parallel execution.
- #11072: Use PEP 604 (
X | Y
) display conventions fortyping.Optional
andtyping.Optional
types within the Python domain and autodoc.
... (truncated)
4e1004a
Bump to 6.1.0 finala2176d4
Fix deprecation warnings2c104e9
Merge branch '6.0.x'a27d262
Bump to 6.0.1 final821569e
Add note for Pygments222d366
imgmath: Fix relative file path (#10965)c499f66
Add SIM113 lint (#11057)0fbd8af
Add missing default arguments in sphinx-apidoc.rst (#11084)f89f943
Remove flake8 plugins in favour of Ruff (#11085)0479115
Suppress lint failures from Ruff 0.0.211 (#11086)Sourced from sphinx's releases.
v6.1.1
Changelog: https://www.sphinx-doc.org/en/master/changes.html
v6.1.0
Changelog: https://www.sphinx-doc.org/en/master/changes.html
v6.0.1
Changelog: https://www.sphinx-doc.org/en/master/changes.html
v6.0.0
Changelog: https://www.sphinx-doc.org/en/master/changes.html
v6.0.0b2
Changelog: https://www.sphinx-doc.org/en/master/changes.html
v6.0.0b1
Changelog: https://www.sphinx-doc.org/en/master/changes.html
Sourced from sphinx's changelog.
Release 6.1.1 (released Jan 05, 2023)
Bugs fixed
- #11091: Fix
util.nodes.apply_source_workaround
forliteral_block
nodes with no source information in the node or the node's parents.Release 6.1.0 (released Jan 05, 2023)
Dependencies
Adopted the
Ruff
_ code linter... _Ruff: https://github.com/charliermarsh/ruff
Incompatible changes
- #10979: gettext: Removed support for pluralisation in
get_translation
. This was unused and complicated other changes tosphinx.locale
.Deprecated
sphinx.util
functions:
- Renamed
sphinx.util.typing.stringify()
tosphinx.util.typing.stringify_annotation()
- Moved
sphinx.util.xmlname_checker()
tosphinx.builders.epub3._XML_NAME_PATTERN
Moved to
sphinx.util.display
:
sphinx.util.status_iterator
sphinx.util.display_chunk
sphinx.util.SkipProgressMessage
sphinx.util.progress_message
Moved to
sphinx.util.http_date
:
sphinx.util.epoch_to_rfc1123
sphinx.util.rfc1123_to_epoch
Moved to
sphinx.util.exceptions
:
sphinx.util.save_traceback
... (truncated)
77aaa86
Bump to 6.1.1 final476c115
Suppress ValueError
in apply_source_workaround
(#11092)c80d656
Bump version4e1004a
Bump to 6.1.0 finala2176d4
Fix deprecation warnings2c104e9
Merge branch '6.0.x'a27d262
Bump to 6.0.1 final821569e
Add note for Pygments222d366
imgmath: Fix relative file path (#10965)c499f66
Add SIM113 lint (#11057)Sourced from sphinx's releases.
v6.1.2
Changelog: https://www.sphinx-doc.org/en/master/changes.html
v6.1.1
Changelog: https://www.sphinx-doc.org/en/master/changes.html
v6.1.0
Changelog: https://www.sphinx-doc.org/en/master/changes.html
v6.0.1
Changelog: https://www.sphinx-doc.org/en/master/changes.html
v6.0.0
Changelog: https://www.sphinx-doc.org/en/master/changes.html
v6.0.0b2
Changelog: https://www.sphinx-doc.org/en/master/changes.html
v6.0.0b1
Changelog: https://www.sphinx-doc.org/en/master/changes.html
Sourced from sphinx's changelog.
Release 6.1.2 (released Jan 07, 2023)
Bugs fixed
#11101: LaTeX:
div.topic_padding
key of sphinxsetup documented at 5.1.0 was implemented with nametopic_padding
#11099: LaTeX:
shadowrule
key of sphinxsetup causes PDF build to crash since Sphinx 5.1.0#11096: LaTeX:
shadowsize
key of sphinxsetup causes PDF build to crash since Sphinx 5.1.0#11095: LaTeX: shadow of :dudir:
topic
and contents_ boxes not in page margin since Sphinx 5.1.0.. _contents: https://docutils.sourceforge.io/docs/ref/rst/directives.html#table-of-contents
#11100: Fix copying images when running under parallel mode.
Release 6.1.1 (released Jan 05, 2023)
Bugs fixed
- #11091: Fix
util.nodes.apply_source_workaround
forliteral_block
nodes with no source information in the node or the node's parents.Release 6.1.0 (released Jan 05, 2023)
Dependencies
Adopted the
Ruff
_ code linter... _Ruff: https://github.com/charliermarsh/ruff
Incompatible changes
- #10979: gettext: Removed support for pluralisation in
get_translation
. This was unused and complicated other changes tosphinx.locale
.Deprecated
sphinx.util
functions:
- Renamed
sphinx.util.typing.stringify()
tosphinx.util.typing.stringify_annotation()
... (truncated)
393b408
Bump to 6.1.2 finald8a5dd8
Add note to CHANGES for PR 11100a1cd19e
Fix copying images under parallel execution (#11100)5008291
Ignore more checks in Ruff 0.0.2136259c2b
Markup typo in docs7945aeb
LaTeX: fix 5.1.0 bugs related to topic and contents boxes (#11102)77aaa86
Bump to 6.1.1 final476c115
Suppress ValueError
in apply_source_workaround
(#11092)c80d656
Bump version4e1004a
Bump to 6.1.0 finalSourced from sphinx's releases.
v6.1.3
Changelog: https://www.sphinx-doc.org/en/master/changes.html
776d01e
Bump to 6.1.3 finala2e922a
CHANGES for Sphinx 6.1.331162a9
Handle exceptions for get_node_source
and get_node_line
dcb4429
Restore Sphinx 5 nodes.Element
copying behaviour2a7c40d
Undo parallel image changes7841d3d
Ignore more checks in Ruff 0.0.214ddbc5b5
Bump versionSourced from sphinx's releases.
v6.2.0
Changelog: https://www.sphinx-doc.org/en/master/changes.html
Sourced from sphinx's changelog.
Release 6.2.0 (released Apr 23, 2023)
Dependencies
- Require Docutils 0.18.1 or greater.
Incompatible changes
- LaTeX: removal of some internal TeX
\dimen
registers (not previously publicly documented) as per 5.1.0 code comments insphinx.sty
:\sphinxverbatimsep
,\sphinxverbatimborder
,\sphinxshadowsep
,\sphinxshadowsize
, and\sphinxshadowrule
. (refs: #11105)- Remove
.egg
support from pycodeModuleAnalyser
; Python eggs are a now-obsolete binary distribution format- #11089: Remove deprecated code in
sphinx.builders.linkcheck
. Patch by Daniel Eades- Remove internal-only
sphinx.locale.setlocale
Deprecated
- #11247: Deprecate the legacy
intersphinx_mapping
formatsphinx.util.osutil.cd
is deprecated in favour ofcontextlib.chdir
.Features added
- #11277: :rst:dir:
autoproperty
allows the return type to be specified as a type comment (e.g.,# type: () -> int
). Patch by Bénédikt Tran- #10811: Autosummary: extend
__all__
to imported members for template rendering when optionautosummary_ignore_module_all
is set toFalse
. Patch by Clement Pinard- #11147: Add a
content_offset
parameter tonested_parse_with_titles()
, allowing for correct line numbers during nested parsing. Patch by Jeremy Maitin-Shepard- Update to Unicode CLDR 42
- Add a
--jobs
synonym for-j
. Patch by Hugo van Kemenade- LaTeX: a command
\sphinxbox
for styling text elements with a (possibly rounded) box, optional background color and shadow, has been added. See :ref:sphinxbox
. (refs: #11224)- LaTeX: add
\sphinxstylenotetitle
, ...,\sphinxstylewarningtitle
, ..., for an extra layer of mark-up freeing up\sphinxstrong
for other uses. See :ref:latex-macros
. (refs: #11267)- LaTeX: :dudir:
note
, :dudir:hint
, :dudir:important
and :dudir:tip
can now each be styled as the other admonitions, i.e. possibly with a background color, individual border widths and paddings, possibly rounded corners, and optional shadow. See :ref:additionalcss
. (refs: #11234)
... (truncated)
e7d4c36
Bump to 6.2.0 final4e27a5f
Remove unneeded JavaScript from sphinx13
themebffb547
Note correct deprecation version for sphinx.util.osutil.cd
59de8d5
Revert "Support and prefer .jinja
to _t
for static templates (#11165)...aee3c0a
Partially revert "Disable localisation when SOURCE_DATE_EPOCH is set (#10949)...186d596
Use overwrite_file
context manager in test_ext_autodoc_configs
(#11320)77483f2
Add missing test decorator for test_util_inspect
(#11321)d8f15c7
Increase timeout threshold for linkcheck
tests (#11326)b430e05
Create a 'search field' component for themes (#11045)e2f66ce
Update CHANGES for PR #11333Sourced from sphinx's releases.
v6.2.1
Changelog: https://www.sphinx-doc.org/en/master/changes.html
v6.2.0
Changelog: https://www.sphinx-doc.org/en/master/changes.html
Sourced from sphinx's changelog.
Release 6.2.1 (released Apr 25, 2023)
Bugs fixed
- #11355: Revert the default type of :confval:
nitpick_ignore
and :confval:nitpick_ignore_regex
tolist
.Release 6.2.0 (released Apr 23, 2023)
Dependencies
- Require Docutils 0.18.1 or greater.
Incompatible changes
- LaTeX: removal of some internal TeX
\dimen
registers (not previously publicly documented) as per 5.1.0 code comments insphinx.sty
:\sphinxverbatimsep
,\sphinxverbatimborder
,\sphinxshadowsep
,\sphinxshadowsize
, and\sphinxshadowrule
. (refs: #11105)- Remove
.egg
support from pycodeModuleAnalyser
; Python eggs are a now-obsolete binary distribution format- #11089: Remove deprecated code in
sphinx.builders.linkcheck
. Patch by Daniel Eades- Remove internal-only
sphinx.locale.setlocale
Deprecated
- #11247: Deprecate the legacy
intersphinx_mapping
formatsphinx.util.osutil.cd
is deprecated in favour ofcontextlib.chdir
.Features added
- #11277: :rst:dir:
autoproperty
allows the return type to be specified as a type comment (e.g.,# type: () -> int
). Patch by Bénédikt Tran- #10811: Autosummary: extend
__all__
to imported members for template rendering when optionautosummary_ignore_module_all
is set toFalse
. Patch by Clement Pinard- #11147: Add a
content_offset
parameter tonested_parse_with_titles()
, allowing for correct line numbers during nested parsing. Patch by Jeremy Maitin-Shepard- Update to Unicode CLDR 42
- Add a
--jobs
synonym for-j
. Patch by Hugo van Kemenade- LaTeX: a command
\sphinxbox
for styling text elements with a (possibly
... (truncated)
ec993dd
Bump to 6.2.1 finald2aa91f
Revert the default type of nitpick_ignore[_regex]
to list
60d8fa1
Bump version70102ac
Bump to 6.2.0 final4e27a5f
Remove unneeded JavaScript from sphinx13
themebffb547
Note correct deprecation version for sphinx.util.osutil.cd
59de8d5
Revert "Support and prefer .jinja
to _t
for static templates (#11165)...aee3c0a
Partially revert "Disable localisation when SOURCE_DATE_EPOCH is set (#10949)...186d596
Use overwrite_file
context manager in test_ext_autodoc_configs
(#11320)77483f2
Add missing test decorator for test_util_inspect
(#11321)Sourced from sphinx's releases.
v7.0.0
Changelog: https://www.sphinx-doc.org/en/master/changes.html
v7.0.0rc1
Changelog: https://www.sphinx-doc.org/en/master/changes.html
v6.2.1
Changelog: https://www.sphinx-doc.org/en/master/changes.html
v6.2.0
Changelog: https://www.sphinx-doc.org/en/master/changes.html
Sourced from sphinx's changelog.
Release 7.0.0 (released Apr 29, 2023)
Incompatible changes
- #11359: Remove long-deprecated aliases for
MecabSplitter
andDefaultSplitter
insphinx.search.ja
.- #11360: Remove deprecated
make_old_id
functions in domain object description classes.- #11363: Remove the Setuptools integration (
build_sphinx
hook insetup.py
).- #11364: Remove deprecated
sphinx.ext.napoleon.iterators
module.- #11365: Remove support for the
jsdump
format insphinx.search
.- #11366: Make
locale
a required argument tosphinx.util.i18n.format_date()
.- #11370: Remove deprecated
sphinx.util.stemmer
module.- #11371: Remove deprecated
sphinx.pycode.ast.parse()
function.- #11372: Remove deprecated
sphinx.io.read_doc()
function.- #11373: Removed deprecated
sphinx.util.get_matching_files()
function.- #11378: Remove deprecated
sphinx.util.docutils.is_html5_writer_available()
function.- #11379: Make the
env
argument toBuilder
subclasses required.- #11380: autosummary: Always emit grouped import exceptions.
- #11381: Remove deprecated
style
key for HTML templates.- #11382: Remove deprecated
sphinx.writers.latex.LaTeXTranslator.docclasses
attribute.- #11383: Remove deprecated
sphinx.builders.html.html5_ready
andsphinx.builders.html.HTMLTranslator
attributes.- #11385: Remove support for HTML 4 output.
Release 6.2.1 (released Apr 25, 2023)
Bugs fixed
- #11355: Revert the default type of :confval:
nitpick_ignore
and :confval:nitpick_ignore_regex
tolist
.Release 6.2.0 (released Apr 23, 2023)
Dependencies
- Require Docutils 0.18.1 or greater.
Incompatible changes
... (truncated)
d568b2f
Bump to 7.0.0 finalff79edf
Remove jsdump
references post removal1a5133a
Bump to 7.0.0rc1 final5795fc7
Update sphinx.deprecation
for Sphinx 7.0 (#11386)6202087
Add a note to CHANGES for PR 11385ad47373
Remove HTML 4 support (#11385)3e3251d
Remove HTMLTranslator
and html5_ready
from sphinx.builders.html
(...77fd819
Remove deprecated LaTeXTranslator.docclasses
attribute (#11382)4be56f3
Remove deprecated style
key for HTML templates (#11381)49027a9
Autosummary: Always emit grouped ImportError
exceptions (#11380)Sourced from sphinx's releases.
v7.0.1
Changelog: https://www.sphinx-doc.org/en/master/changes.html
v7.0.0
Changelog: https://www.sphinx-doc.org/en/master/changes.html
v7.0.0rc1
Changelog: https://www.sphinx-doc.org/en/master/changes.html
v6.2.1
Changelog: https://www.sphinx-doc.org/en/master/changes.html
v6.2.0
Changelog: https://www.sphinx-doc.org/en/master/changes.html
Sourced from sphinx's changelog.
Release 7.0.1 (released May 12, 2023)
Dependencies
- #11411: Support
Docutils 0.20
_. Patch by Adam Turner... _Docutils 0.20: https://docutils.sourceforge.io/RELEASE-NOTES.html#release-0-20-2023-05-04
Bugs fixed
- #11418: Clean up remaining references to
sphinx.setup_command
following the removal of support for setuptools. Patch by Willem Mulder.Release 7.0.0 (released Apr 29, 2023)
Incompatible changes
- #11359: Remove long-deprecated aliases for
MecabSplitter
andDefaultSplitter
insphinx.search.ja
.- #11360: Remove deprecated
make_old_id
functions in domain object description classes.- #11363: Remove the Setuptools integration (
build_sphinx
hook insetup.py
).- #11364: Remove deprecated
sphinx.ext.napoleon.iterators
module.- #11365: Remove support for the
jsdump
format insphinx.search
.- #11366: Make
locale
a required argument tosphinx.util.i18n.format_date()
.- #11370: Remove deprecated
sphinx.util.stemmer
module.- #11371: Remove deprecated
sphinx.pycode.ast.parse()
function.- #11372: Remove deprecated
sphinx.io.read_doc()
function.- #11373: Removed deprecated
sphinx.util.get_matching_files()
function.- #11378: Remove deprecated
sphinx.util.docutils.is_html5_writer_available()
function.- #11379: Make the
env
argument toBuilder
subclasses required.- #11380: autosummary: Always emit grouped import exceptions.
- #11381: Remove deprecated
style
key for HTML templates.- #11382: Remove deprecated
sphinx.writers.latex.LaTeXTranslator.docclasses
attribute.- #11383: Remove deprecated
sphinx.builders.html.html5_ready
andsphinx.builders.html.HTMLTranslator
attributes.- #11385: Remove support for HTML 4 output.
Release 6.2.1 (released Apr 25, 2023)
... (truncated)
d48cc78
Bump to 7.0.1 finalde6b18a
Remove remaining references to the setuptools integration (#11418)db54618
Support Docutils 0.20 (#11411)8942a1d
Test with Docutils 0.20c9d0933
linkcheck: Use context managers for HTTP requests (#11318)2b1c106
Update documentation workflowba74082
Change concurrency groups for GitHub workflowsb546879
Bump versiond568b2f
Bump to 7.0.0 finalff79edf
Remove jsdump
references post removalSourced from sphinx's releases.
Sphinx 7.1.0
Changelog: https://www.sphinx-doc.org/en/master/changes.html
v7.0.1
Changelog: https://www.sphinx-doc.org/en/master/changes.html
v7.0.0
Changelog: https://www.sphinx-doc.org/en/master/changes.html
v7.0.0rc1
Changelog: https://www.sphinx-doc.org/en/master/changes.html
v6.2.1
Changelog: https://www.sphinx-doc.org/en/master/changes.html
v6.2.0
Changelog: https://www.sphinx-doc.org/en/master/changes.html
Sourced from sphinx's changelog.
Release 7.1.0 (released Jul 24, 2023)
Incompatible changes
Releases are no longer signed, given the
change in PyPI policy
_... _change in PyPI policy: https://blog.pypi.org/posts/2023-05-23-removing-pgp/
Deprecated
- #11412: Emit warnings on using a deprecated Python-specific index entry type (namely,
module
,keyword
,operator
,object
,exception
,statement
, andbuiltin
) in the :rst:dir:index
directive, and set the removal version to Sphinx 9. Patch by Adam Turner.Features added
- #11415: Add a checksum to JavaScript and CSS asset URIs included within generated HTML, using the CRC32 algorithm.
- :meth:
~sphinx.application.Sphinx.require_sphinx
now allows the version requirement to be specified as(major, minor)
.- #11011: Allow configuring a line-length limit for object signatures, via :confval:
maximum_signature_line_length
and the domain-specific variants. If the length of the signature (in characters) is greater than the configured limit, each parameter in the signature will be split to its own logical line. This behaviour may also be controlled by options on object description directives, for example :rst:dir:py:function:single-line-parameter-list
. Patch by Thomas Louf, Adam Turner, and Jean-François B.- #10983: Support for multiline copyright statements in the footer block. Patch by Stefanie Molin
sphinx.util.display.status_iterator
now clears the current line with ANSI control codes, rather than overprinting with space characters.- #11431: linkcheck: Treat SSL failures as broken links. Patch by Bénédikt Tran
- #11157: Keep the
translated
attribute on translated nodes.- #11451: Improve the traceback displayed when using :option:
sphinx-build -T
in parallel builds. Patch by Bénédikt Tran- #11324: linkcheck: Use session-basd HTTP requests.
- #11438: Add support for the :rst:dir:
py:class
and :rst:dir:py:function
directives for PEP 695 (generic classes and functions declarations) and PEP 696 (default type parameters). Multi-line support (#11011) is enabled for type parameters list and can be locally controlled on object description directives, e.g., :rst:dir:py:function:single-line-type-parameter-list
. Patch by Bénédikt Tran.- #11484: linkcheck: Allow HTML anchors to be ignored on a per-URL basis via :confval:
linkcheck_anchors_ignore_for_url
while
... (truncated)
e560f63
Bump to 7.1.0 final066e0fa
Add translation progress information (#11509)0882914
Target PyPI in create-release.yml21fbee5
Fix OIDC token payload1a403e4
Add informational log messaging258b0ea
Revert "Switch to using github.request
"f9c89e5
Switch to using github.request
52c7f66
Use the correct token minting URL for TestPyPI6079f28
Install twine in PyPI publish workflow3d43b9e
Fix github-script syntax in create-release.ymlSourced from sphinx's releases.
Sphinx 7.1.1
Changelog: https://www.sphinx-doc.org/en/master/changes.html
Sphinx 7.1.0
Changelog: https://www.sphinx-doc.org/en/master/changes.html
v7.0.1
Changelog: https://www.sphinx-doc.org/en/master/changes.html
v7.0.0
Changelog: https://www.sphinx-doc.org/en/master/changes.html
v7.0.0rc1
Changelog: https://www.sphinx-doc.org/en/master/changes.html
v6.2.1
Changelog: https://www.sphinx-doc.org/en/master/changes.html
v6.2.0
Changelog: https://www.sphinx-doc.org/en/master/changes.html
Sourced from sphinx's changelog.
Release 7.1.1 (released Jul 27, 2023)
Bugs fixed
- #11514: Fix
SOURCE_DATE_EPOCH
in multi-line copyright footer. Patch by Bénédikt Tran.Release 7.1.0 (released Jul 24, 2023)
Incompatible changes
Releases are no longer signed, given the
change in PyPI policy
_... _change in PyPI policy: https://blog.pypi.org/posts/2023-05-23-removing-pgp/
Deprecated
- #11412: Emit warnings on using a deprecated Python-specific index entry type (namely,
module
,keyword
,operator
,object
,exception
,statement
, andbuiltin
) in the :rst:dir:index
directive, and set the removal version to Sphinx 9. Patch by Adam Turner.Features added
- #11415: Add a checksum to JavaScript and CSS asset URIs included within generated HTML, using the CRC32 algorithm.
- :meth:
~sphinx.application.Sphinx.require_sphinx
now allows the version requirement to be specified as(major, minor)
.- #11011: Allow configuring a line-length limit for object signatures, via :confval:
maximum_signature_line_length
and the domain-specific variants. If the length of the signature (in characters) is greater than the configured limit, each parameter in the signature will be split to its own logical line. This behaviour may also be controlled by options on object description directives, for example :rst:dir:py:function:single-line-parameter-list
. Patch by Thomas Louf, Adam Turner, and Jean-François B.- #10983: Support for multiline copyright statements in the footer block. Patch by Stefanie Molin
sphinx.util.display.status_iterator
now clears the current line with ANSI control codes, rather than overprinting with space characters.- #11431: linkcheck: Treat SSL failures as broken links. Patch by Bénédikt Tran
- #11157: Keep the
translated
attribute on translated nodes.- #11451: Improve the traceback displayed when using :option:
sphinx-build -T
in parallel builds. Patch by Bénédikt Tran
... (truncated)
d8d73c1
Bump to 7.1.1 finala54e630
[internationalisation] Update message catalogues8452300
Fix multi-line copyright when SOURCE_DATE_EPOCH
is set (#11524)fe08cec
bump versione560f63
Bump to 7.1.0 final066e0fa
Add translation progress information (#11509)0882914
Target PyPI in create-release.yml21fbee5
Fix OIDC token payload1a403e4
Add informational log messaging258b0ea
Revert "Switch to using github.request
"Sourced from sphinx's releases.
Sphinx 7.1.2
Changelog: https://www.sphinx-doc.org/en/master/changes.html
Sphinx 7.1.1
Changelog: https://www.sphinx-doc.org/en/master/changes.html
Sphinx 7.1.0
Changelog: https://www.sphinx-doc.org/en/master/changes.html
v7.0.1
Changelog: https://www.sphinx-doc.org/en/master/changes.html
v7.0.0
Changelog: https://www.sphinx-doc.org/en/master/changes.html
v7.0.0rc1
Changelog: https://www.sphinx-doc.org/en/master/changes.html
v6.2.1
Changelog: https://www.sphinx-doc.org/en/master/changes.html
v6.2.0
Changelog: https://www.sphinx-doc.org/en/master/changes.html
Sourced from sphinx's changelog.
Release 7.1.2 (released Aug 02, 2023)
Bugs fixed
- #11542: linkcheck: Properly respect :confval:
linkcheck_anchors
and do not spuriously report failures to validate anchors. Patch by James Addison.Release 7.1.1 (released Jul 27, 2023)
Bugs fixed
- #11514: Fix
SOURCE_DATE_EPOCH
in multi-line copyright footer. Patch by Bénédikt Tran.Release 7.1.0 (released Jul 24, 2023)
Incompatible changes
Releases are no longer signed, given the
change in PyPI policy
_... _change in PyPI policy: https://blog.pypi.org/posts/2023-05-23-removing-pgp/
Deprecated
- #11412: Emit warnings on using a deprecated Python-specific index entry type (namely,
module
,keyword
,operator
,object
,exception
,statement
, andbuiltin
) in the :rst:dir:index
directive, and set the removal version to Sphinx 9. Patch by Adam Turner.Features added
- #11415: Add a checksum to JavaScript and CSS asset URIs included within generated HTML, using the CRC32 algorithm.
- :meth:
~sphinx.application.Sphinx.require_sphinx
now allows the version requirement to be specified as(major, minor)
.- #11011: Allow configuring a line-length limit for object signatures, via :confval:
maximum_signature_line_length
and the domain-specific variants. If the length of the signature (in characters) is greater than the configured limit, each parameter in the signature will be split to its own logical line. This behaviour may also be controlled by options on object description directives, for example :rst:dir:py:function:single-line-parameter-list
.
... (truncated)
320d0b6
Bump to 7.1.2 final06c1339
Ensure that linkcheck_anchors
is properly respected (#11544)89808c6
Emend attribution for GH-11431 in CHANGES (#11547)4958d2a
Fix flake8 E231 reported linting failure4862da8
Bump versiond8d73c1
Bump to 7.1.1 finala54e630
[internationalisation] Update message catalogues8452300
Fix multi-line copyright when SOURCE_DATE_EPOCH
is set (#11524)fe08cec
bump versione560f63
Bump to 7.1.0 finalSourced from sphinx's releases.
Sphinx 7.2.2
Changelog: https://www.sphinx-doc.org/en/master/changes.html
Sphinx 7.2.1
Changelog: https://www.sphinx-doc.org/en/master/changes.html
Sphinx 7.2.0
Changelog: https://www.sphinx-doc.org/en/master/changes.html
Sourced from sphinx's changelog.
Release 7.2.2 (released Aug 17, 2023)
Bugs fixed
- Fix the signature of the
StateMachine.insert_input()
patch, for when calling with keyword arguments.- Fixed membership testing (
in
) for the :py:class:str
interface of the asset classes (_CascadingStyleSheet
and_JavaScript
), which several extensions relied upon.- Fixed a type error in
SingleFileHTMLBuilder._get_local_toctree
,includehidden
may be passed as a string or a boolean.- Fix
:noindex:
forPyModule
and JSModule``.Release 7.2.1 (released Aug 17, 2023)
Bugs fixed
- Restored the the :py:class:
str
interface of the asset classes (_CascadingStyleSheet
and_JavaScript
), which several extensions relied upon. This will be removed in Sphinx 9.- Restored calls to
Builder.add_{css,js}_file()
, which several extensions relied upon.- Restored the private API
TocTree.get_toctree_ancestors()
, which several extensions relied upon.Release 7.2.0 (released Aug 17, 2023)
Dependencies
Deprecated
- #11512: Deprecate
sphinx.util.md5
andsphinx.util.sha1
. Usehashlib
instead.- #11526: Deprecate
sphinx.testing.path
. Useos.path
orpathlib
instead.- #11528: Deprecate
sphinx.util.split_index_msg
andsphinx.util.split_into
. Usesphinx.util.index_entries.split_index_msg
instead.- Deprecate
sphinx.builders.html.Stylesheet
andsphinx.builders.html.Javascript
. Usesphinx.application.Sphinx.add_css_file()
... (truncated)
ed84d63
Bump to 7.2.2 finalea4a73e
[bot]: Update message catalogues (#11612)e47846a
Fix :noindex:
for PyModule
and JSModule``b2fc47f
Add CHANGES entry for renaming the StateMachine.insert_input()
parameter0835c3e
Fix regression in SingleFileHTMLBuilder._get_local_toctree
49dc0dd
Fix asset class string interface membership testing8512855
Fix signature of docutils include_source monkeypatch (#11610)e1d9068
Bump version441a9e4
Bump to 7.2.1 finalec31853
Restore TocTree.get_toctree_ancestors()
Sourced from furo's changelog.
Changelog
2023.08.19 -- Xenolithic Xanadu
- Fix missing search context with Sphinx 7.2, for dirhtml builds.
- Drop support for Python 3.7.
- Present configuration errors in a better format -- thanks
@AA-Turner
!- Bump
require_sphinx()
to Sphinx 6.0, in line with dependency changes in Unassuming Ultramarine.2023.08.17 -- Wonderous White
- Fix compatiblity with Sphinx 7.2.0 and 7.2.1.
2023.07.26 -- Vigilant Volt
- Fix compatiblity with Sphinx 7.1.
- Improve how content overflow is handled.
- Improve how literal blocks containing inline code are handled.
2023.05.20 -- Unassuming Ultramarine
- ✨ Add support for Sphinx 7.
- Drop support for Sphinx 5.
- Improve the screen-reader label for sidebar collapse.
- Make it easier to create derived themes from Furo.
- Bump all JS dependencies (NodeJS and npm packages).
2023.03.27 -- Tasty Tangerine
- Regenerate with newer version of sphinx-theme-builder, to fix RECORD hashes.
- Add missing class to Font Awesome examples
2023.03.23 -- Sassy Saffron
- Update Python version classifiers.
- Increase the icon size in mobile header.
- Increase admonition title bg opacity.
- Change the default API background to transparent.
- Transition the API background change.
... (truncated)
0766bb2
Prepare release: 2023.08.19807d73c
Update changelog364b261
Accomodate for the required data-content_root
for search0d38bc6
Simplify retrieval of pygments_dark_style
value (#699)3631ffc
Use sphinx.errors.ConfigError
(#697)d2e2448
Remove duplicate HTML builder check (#698)7b4f130
Drop Python 3.7 (#701)e322b71
Remove pointless assert (#702)ee2097a
Bump require_sphinx()
to Sphinx 6.0 (#700)c1ff10b
Back to developmentSourced from blacken-docs's changelog.
1.16.0 (2023-08-16)
Allow Markdown fence options.
Thanks to initial work from Matthew Anderson in
PR [#246](https://github.com/asottile/blacken-docs/issues/246) <https://github.com/adamchainz/blacken-docs/pull/246>
__.Expand Markdown detection to all Python language names from Pygments:
py
,sage
,python3
,py3
, andnumpy
.Preserve leading whitespace lines in reStructuredText code blocks.
Thanks to Julianus Pfeuffer for the report in
Issue [#217](https://github.com/asottile/blacken-docs/issues/217) <https://github.com/adamchainz/blacken-docs/issues/217>
__.Use exit code 2 to indicate errors from Black, whilst exit code 1 remains for “files have been formatted”.
Thanks to Julianus Pfeuffer for the report in
Issue [#218](https://github.com/asottile/blacken-docs/issues/218) <https://github.com/adamchainz/blacken-docs/issues/218>
__.Support passing the
--preview
option through to Black, to select the future style.Remove
language_version
from.pre-commit-hooks.yaml
. This change allowsdefault_language_version
in ``.pre-commit-config.yaml` to take precedence.Thanks to Aneesh Agrawal in
PR [#258](https://github.com/asottile/blacken-docs/issues/258) <https://github.com/adamchainz/blacken-docs/pull/258>
__.
960ead2
Version 1.16.08f0ed18
Support passing --preview through to Black (#273)4eb4e4c
Tweak changelog note6c7450c
Use exit code 2 to indicate errors (#272)99dfc8d
Preserve leading whitespace lines in rST (#271)94465e8
Reformat markdown tests with dedent() (#270)7cd5f30
Use .md in glob examplef97e569
Document applying to many files (#269)ae612b0
Expand Markdown detection to all Python language names (#268)da9b455
Replace NamedTuple with plain class (#267)Sourced from sphinx's releases.
Sphinx 7.2.4
Changelog: https://www.sphinx-doc.org/en/master/changes.html
Sphinx 7.2.3
Changelog: https://www.sphinx-doc.org/en/master/changes.html
Sphinx 7.2.2
Changelog: https://www.sphinx-doc.org/en/master/changes.html
Sphinx 7.2.1
Changelog: https://www.sphinx-doc.org/en/master/changes.html
Sphinx 7.2.0
Changelog: https://www.sphinx-doc.org/en/master/changes.html
Sourced from sphinx's changelog.
Release 7.2.4 (released Aug 28, 2023)
Bugs fixed
- #11618: Fix a regression in the MoveModuleTargets transform, introduced in #10478 (#9662).
- #11649: linkcheck: Resolve hanging tests for timezones west of London and incorrect conversion from UTC to offsets from the UNIX epoch. Patch by Dmitry Shachnev and Adam Turner.
Release 7.2.3 (released Aug 23, 2023)
Dependencies
- #11576: Require sphinxcontrib-serializinghtml 1.1.9.
Bugs fixed
- Fix regression in
autodoc.Documenter.parse_name()
.- Fix regression in JSON serialisation.
- #11543: autodoc: Support positional-only parameters in
classmethod
methods whenautodoc_preserve_defaults
isTrue
.- Restore support string methods on path objects. This is deprecated and will be removed in Sphinx 8. Use :py:func:
os.fspath
to convert :py:class:~pathlib.Path
objects to strings, or :py:class:~pathlib.Path
's methods to work with path objects.Release 7.2.2 (released Aug 17, 2023)
Bugs fixed
- Fix the signature of the
StateMachine.insert_input()
patch, for when calling with keyword arguments.- Fixed membership testing (
in
) for the :py:class:str
interface of the asset classes (_CascadingStyleSheet
and_JavaScript
), which several extensions relied upon.- Fixed a type error in
SingleFileHTMLBuilder._get_local_toctree
,includehidden
may be passed as a string or a boolean.- Fix
:noindex:
forPyModule
andJSModule
.Release 7.2.1 (released Aug 17, 2023)
... (truncated)
3256f1f
Bump to 7.2.4 final2f025a4
linkcheck: Fix conversion from UTC time to the UNIX epoch (#11649)1567281
autodoc: Fix UnboundLocalError in filter_members
(#11651)5e88b9f
Fix the MoveModuleTargets transform (#11647)694fcee
Fix markup in CHANGES (#11639)c503c90
Improve pathlib
type annotations (#11646)bf339b1
Bump version2f6ea14
Bump to 7.2.3 final511e407
Implement bool()
for string paths494de73
Implement hash()
for string pathsSourced from furo's changelog.
Changelog
2023.08.19 -- Xenolithic Xanadu
- Fix missing search context with Sphinx 7.2, for dirhtml builds.
- Drop support for Python 3.7.
- Present configuration errors in a better format -- thanks
@AA-Turner
!- Bump
require_sphinx()
to Sphinx 6.0, in line with dependency changes in Unassuming Ultramarine.2023.08.17 -- Wonderous White
- Fix compatiblity with Sphinx 7.2.0 and 7.2.1.
2023.07.26 -- Vigilant Volt
- Fix compatiblity with Sphinx 7.1.
- Improve how content overflow is handled.
- Improve how literal blocks containing inline code are handled.
2023.05.20 -- Unassuming Ultramarine
- ✨ Add support for Sphinx 7.
- Drop support for Sphinx 5.
- Improve the screen-reader label for sidebar collapse.
- Make it easier to create derived themes from Furo.
- Bump all JS dependencies (NodeJS and npm packages).
2023.03.27 -- Tasty Tangerine
- Regenerate with newer version of sphinx-theme-builder, to fix RECORD hashes.
- Add missing class to Font Awesome examples
2023.03.23 -- Sassy Saffron
- Update Python version classifiers.
- Increase the icon size in mobile header.
- Increase admonition title bg opacity.
- Change the default API background to transparent.
- Transition the API background change.
... (truncated)
0766bb2
Prepare release: 2023.08.19807d73c
Update changelog364b261
Accomodate for the required data-content_root
for search0d38bc6
Simplify retrieval of pygments_dark_style
value (#699)3631ffc
Use sphinx.errors.ConfigError
(#697)d2e2448
Remove duplicate HTML builder check (#698)7b4f130
Drop Python 3.7 (#701)e322b71
Remove pointless assert (#702)ee2097a
Bump require_sphinx()
to Sphinx 6.0 (#700)c1ff10b
Back to developmentSourced from blacken-docs's changelog.
1.16.0 (2023-08-16)
Allow Markdown fence options.
Thanks to initial work from Matthew Anderson in
PR [#246](https://github.com/asottile/blacken-docs/issues/246) <https://github.com/adamchainz/blacken-docs/pull/246>
__.Expand Markdown detection to all Python language names from Pygments:
py
,sage
,python3
,py3
, andnumpy
.Preserve leading whitespace lines in reStructuredText code blocks.
Thanks to Julianus Pfeuffer for the report in
Issue [#217](https://github.com/asottile/blacken-docs/issues/217) <https://github.com/adamchainz/blacken-docs/issues/217>
__.Use exit code 2 to indicate errors from Black, whilst exit code 1 remains for “files have been formatted”.
Thanks to Julianus Pfeuffer for the report in
Issue [#218](https://github.com/asottile/blacken-docs/issues/218) <https://github.com/adamchainz/blacken-docs/issues/218>
__.Support passing the
--preview
option through to Black, to select the future style.Remove
language_version
from.pre-commit-hooks.yaml
. This change allowsdefault_language_version
in ``.pre-commit-config.yaml` to take precedence.Thanks to Aneesh Agrawal in
PR [#258](https://github.com/asottile/blacken-docs/issues/258) <https://github.com/adamchainz/blacken-docs/pull/258>
__.
960ead2
Version 1.16.08f0ed18
Support passing --preview through to Black (#273)4eb4e4c
Tweak changelog note6c7450c
Use exit code 2 to indicate errors (#272)99dfc8d
Preserve leading whitespace lines in rST (#271)94465e8
Reformat markdown tests with dedent() (#270)7cd5f30
Use .md in glob examplef97e569
Document applying to many files (#269)ae612b0
Expand Markdown detection to all Python language names (#268)da9b455
Replace NamedTuple with plain class (#267)Sourced from blacken-docs's changelog.
1.16.0 (2023-08-16)
Allow Markdown fence options.
Thanks to initial work from Matthew Anderson in
PR [#246](https://github.com/asottile/blacken-docs/issues/246) <https://github.com/adamchainz/blacken-docs/pull/246>
__.Expand Markdown detection to all Python language names from Pygments:
py
,sage
,python3
,py3
, andnumpy
.Preserve leading whitespace lines in reStructuredText code blocks.
Thanks to Julianus Pfeuffer for the report in
Issue [#217](https://github.com/asottile/blacken-docs/issues/217) <https://github.com/adamchainz/blacken-docs/issues/217>
__.Use exit code 2 to indicate errors from Black, whilst exit code 1 remains for “files have been formatted”.
Thanks to Julianus Pfeuffer for the report in
Issue [#218](https://github.com/asottile/blacken-docs/issues/218) <https://github.com/adamchainz/blacken-docs/issues/218>
__.Support passing the
--preview
option through to Black, to select the future style.Remove
language_version
from.pre-commit-hooks.yaml
. This change allowsdefault_language_version
in ``.pre-commit-config.yaml` to take precedence.Thanks to Aneesh Agrawal in
PR [#258](https://github.com/asottile/blacken-docs/issues/258) <https://github.com/adamchainz/blacken-docs/pull/258>
__.
960ead2
Version 1.16.08f0ed18
Support passing --preview through to Black (#273)4eb4e4c
Tweak changelog note6c7450c
Use exit code 2 to indicate errors (#272)99dfc8d
Preserve leading whitespace lines in rST (#271)94465e8
Reformat markdown tests with dedent() (#270)7cd5f30
Use .md in glob examplef97e569
Document applying to many files (#269)ae612b0
Expand Markdown detection to all Python language names (#268)da9b455
Replace NamedTuple with plain class (#267)Sourced from sphinx's releases.
Sphinx 7.2.5
Changelog: https://www.sphinx-doc.org/en/master/changes.html
Sourced from sphinx's changelog.
Release 7.2.5 (released Aug 30, 2023)
Bugs fixed
- #11645: Fix a regression preventing autodoc from importing modules within packages that make use of
if typing.TYPE_CHECKING:
to guard circular imports needed by type checkers. Patch by Matt Wozniski.- #11634: Fixed inheritance diagram relative link resolution for sibling files in a subdirectory. Patch by Albert Shih.
- #11659: Allow
?config=...
in :confval:mathjax_path
.- #11654: autodoc: Fail with a more descriptive error message when an object claims to be an instance of
type
, but is not a class. Patch by James Braza.- 11620: Cease emitting :event:
source-read
events for files read via the :dudir:include
directive.- 11620: Add a new :event:
include-read
for observing and transforming the content of included files via the :dudir:include
directive.- #11627: Restore support for copyright lines of the form
YYYY
whenSOURCE_DATE_EPOCH
is set.
fcc3899
Bump to 7.2.5 final2a631f9
Restore support for YYYY copyright lines2730cc3
Remove double spaces in CHANGESff18318
Add an 'include-read'
event (#11657)74329d9
Fail better in ExceptionDocumenter.can_document_member
(#11660)7d046a8
Allow ?config=...
in mathjax_path
(#11659)4692208
Fix two relative link bugs in inheritance diagrams (#11634)ca0fc7a
Add git .mailmap file8248be3
autodoc: Reset sys.modules
on partial import failure (#11645)e494baa
Recommend correct replacement names for deprecated APIs (#11655)Sourced from black's releases.
23.10.0
Stable style
- Fix comments getting removed from inside parenthesized strings (#3909)
Preview style
- Fix long lines with power operators getting split before the line length (#3942)
- Long type hints are now wrapped in parentheses and properly indented when split across multiple lines (#3899)
- Magic trailing commas are now respected in return types. (#3916)
- Require one empty line after module-level docstrings. (#3932)
- Treat raw triple-quoted strings as docstrings (#3947)
Configuration
- Fix cache versioning logic when
BLACK_CACHE_DIR
is set (#3937)Parser
- Fix bug where attributes named
type
were not acccepted insidematch
statements (#3950)- Add support for PEP 695 type aliases containing lambdas and other unusual expressions (#3949)
Output
- Black no longer attempts to provide special errors for attempting to format Python 2 code (#3933)
- Black will more consistently print stacktraces on internal errors in verbose mode (#3938)
Integrations
- The action output displayed in the job summary is now wrapped in Markdown (#3914)
Sourced from black's changelog.
23.10.0
Stable style
- Fix comments getting removed from inside parenthesized strings (#3909)
Preview style
- Fix long lines with power operators getting split before the line length (#3942)
- Long type hints are now wrapped in parentheses and properly indented when split across multiple lines (#3899)
- Magic trailing commas are now respected in return types. (#3916)
- Require one empty line after module-level docstrings. (#3932)
- Treat raw triple-quoted strings as docstrings (#3947)
Configuration
- Fix cache versioning logic when
BLACK_CACHE_DIR
is set (#3937)Parser
- Fix bug where attributes named
type
were not acccepted insidematch
statements (#3950)- Add support for PEP 695 type aliases containing lambdas and other unusual expressions (#3949)
Output
- Black no longer attempts to provide special errors for attempting to format Python 2 code (#3933)
- Black will more consistently print stacktraces on internal errors in verbose mode (#3938)
Integrations
- The action output displayed in the job summary is now wrapped in Markdown (#3914)
9edba85
Prepare release 23.10.0 (#3951)bb58807
Fix parser bug where "type" was misinterpreted as a keyword inside a match (#...722735d
Fix grammar for type alias support (#3949)abe57e3
Treat raw strings like other docstrings (#3947)1648ac5
Fix long lines with power operator(s) getting splitted before line length (#3...6f84f65
Migrate mypy config to pyproject.toml (#3936)3bb9214
CI Test: Deprecating 'Healthcheck.all()' from Hypothesis in fuzz.py (#3945)935f303
Fix test that was not being run (#3939)b7717c3
Standardise newlines after module-level docstrings (#3932)7aa37ea
Report all stacktraces in verbose mode (#3938)Sourced from black's releases.
23.10.1
Highlights
- Maintanence release to get a fix out for GitHub Action edge case (#3957)
Preview style
- Fix merging implicit multiline strings that have inline comments (#3956)
- Allow empty first line after block open before a comment or compound statement (#3967)
Packaging
- Change Dockerfile to hatch + compile black (#3965)
Integrations
- The summary output for GitHub workflows is now suppressible using the
summary
parameter. (#3958)- Fix the action failing when Black check doesn't pass (#3957)
Documentation
- It is known Windows documentation CI is broken psf/black#3968
23.10.0
Stable style
- Fix comments getting removed from inside parenthesized strings (#3909)
Preview style
- Fix long lines with power operators getting split before the line length (#3942)
- Long type hints are now wrapped in parentheses and properly indented when split across multiple lines (#3899)
- Magic trailing commas are now respected in return types. (#3916)
- Require one empty line after module-level docstrings. (#3932)
- Treat raw triple-quoted strings as docstrings (#3947)
Configuration
- Fix cache versioning logic when
BLACK_CACHE_DIR
is set (#3937)Parser
... (truncated)
Sourced from black's changelog.
23.10.1
Highlights
- Maintanence release to get a fix out for GitHub Action edge case (#3957)
Preview style
- Fix merging implicit multiline strings that have inline comments (#3956)
- Allow empty first line after block open before a comment or compound statement (#3967)
Packaging
- Change Dockerfile to hatch + compile black (#3965)
Integrations
- The summary output for GitHub workflows is now suppressible using the
summary
parameter. (#3958)- Fix the action failing when Black check doesn't pass (#3957)
Documentation
- It is known Windows documentation CI is broken psf/black#3968
23.10.0
Stable style
- Fix comments getting removed from inside parenthesized strings (#3909)
Preview style
- Fix long lines with power operators getting split before the line length (#3942)
- Long type hints are now wrapped in parentheses and properly indented when split across multiple lines (#3899)
- Magic trailing commas are now respected in return types. (#3916)
- Require one empty line after module-level docstrings. (#3932)
- Treat raw triple-quoted strings as docstrings (#3947)
Configuration
- Fix cache versioning logic when
BLACK_CACHE_DIR
is set (#3937)Parser
- Fix bug where attributes named
type
were not accepted insidematch
statements (#3950)- Add support for PEP 695 type aliases containing lambdas and other unusual expressions
... (truncated)
744d23b
Prepare release 23.10.1 (#3969)8de4be5
Fix CI failing (#3957)c0adca3
docs: specifies the use of the .git-blame-ignore-revs file (#3961)a7643fa
Add summary parameter to action (#3958)d291c23
Move Docker image to hatch + compile (#3965)7f1c578
Bump peter-evans/create-or-update-comment from 3.0.2 to 3.1.0 (#3966)2db5ab0
Allow empty line after block open before a comment or compound statement (#3967)0a37888
Fix typos in CHANGES.md (#3963)882d879
Fix merging implicit multiline strings that have inline comments (#3956)9edba85
Prepare release 23.10.0 (#3951)Sourced from black's releases.
23.11.0
Highlights
- Support formatting ranges of lines with the new
--line-ranges
command-line option (#4020)Stable style
- Fix crash on formatting bytes strings that look like docstrings (#4003)
- Fix crash when whitespace followed a backslash before newline in a docstring (#4008)
- Fix standalone comments inside complex blocks crashing Black (#4016)
- Fix crash on formatting code like
await (a ** b)
(#3994)- No longer treat leading f-strings as docstrings. This matches Python's behaviour and fixes a crash (#4019)
Preview style
- Multiline dicts and lists that are the sole argument to a function are now indented less (#3964)
- Multiline unpacked dicts and lists as the sole argument to a function are now also indented less (#3992)
- In f-string debug expressions, quote types that are visible in the final string are now preserved (#4005)
- Fix a bug where long
case
blocks were not split into multiple lines. Also enable general trailing comma rules oncase
blocks (#4024)- Keep requiring two empty lines between module-level docstring and first function or class definition (#4028)
- Add support for single-line format skip with other comments on the same line (#3959)
Configuration
- Consistently apply force exclusion logic before resolving symlinks (#4015)
- Fix a bug in the matching of absolute path names in
--include
(#3976)Performance
- Fix mypyc builds on arm64 on macOS (#4017)
Integrations
- Black's pre-commit integration will now run only on git hooks appropriate for a code formatter (#3940)
23.10.1
Highlights
- Maintanence release to get a fix out for GitHub Action edge case (#3957)
Preview style
... (truncated)
Sourced from black's changelog.
23.11.0
Highlights
- Support formatting ranges of lines with the new
--line-ranges
command-line option (#4020)Stable style
- Fix crash on formatting bytes strings that look like docstrings (#4003)
- Fix crash when whitespace followed a backslash before newline in a docstring (#4008)
- Fix standalone comments inside complex blocks crashing Black (#4016)
- Fix crash on formatting code like
await (a ** b)
(#3994)- No longer treat leading f-strings as docstrings. This matches Python's behaviour and fixes a crash (#4019)
Preview style
- Multiline dicts and lists that are the sole argument to a function are now indented less (#3964)
- Multiline unpacked dicts and lists as the sole argument to a function are now also indented less (#3992)
- In f-string debug expressions, quote types that are visible in the final string are now preserved (#4005)
- Fix a bug where long
case
blocks were not split into multiple lines. Also enable general trailing comma rules oncase
blocks (#4024)- Keep requiring two empty lines between module-level docstring and first function or class definition (#4028)
- Add support for single-line format skip with other comments on the same line (#3959)
Configuration
- Consistently apply force exclusion logic before resolving symlinks (#4015)
- Fix a bug in the matching of absolute path names in
--include
(#3976)Performance
- Fix mypyc builds on arm64 on macOS (#4017)
Integrations
- Black's pre-commit integration will now run only on git hooks appropriate for a code formatter (#3940)
23.10.1
Highlights
- Maintenance release to get a fix out for GitHub Action edge case (#3957)
... (truncated)
2a1c67e
Prepare release 23.11.0 (#4032)72e7a2e
Remove redundant condition from has_magic_trailing_comma
(#4023)1a7d9c2
Preserve visible quote types for f-string debug expressions (#4005)f4c7be5
docs: fix minor typo (#4030)2e4fac9
Apply force exclude logic before symlink resolution (#4015)66008fd
[563] Fix standalone comments inside complex blocks crashing Black (#4016)50ed622
Fix long case blocks not split into multiple lines (#4024)46be1f8
Support formatting specified lines (#4020)ecbd9e8
Fix crash with f-string docstrings (#4019)e808e61
Preview: Keep requiring two empty lines between module-level docstring and fi...Sourced from sphinx's releases.
Sphinx 7.2.0
Changelog: https://www.sphinx-doc.org/en/master/changes.html
Sourced from sphinx's changelog.
Release 7.2.0 (released Aug 17, 2023)
Dependencies
Deprecated
- #11512: Deprecate
sphinx.util.md5
andsphinx.util.sha1
. Usehashlib
instead.- #11526: Deprecate
sphinx.testing.path
. Useos.path
orpathlib
instead.- #11528: Deprecate
sphinx.util.split_index_msg
andsphinx.util.split_into
. Usesphinx.util.index_entries.split_index_msg
instead.- Deprecate
sphinx.builders.html.Stylesheet
andsphinx.builders.html.Javascript
. Usesphinx.application.Sphinx.add_css_file()
andsphinx.application.Sphinx.add_js_file()
instead.- #11582: Deprecate
sphinx.builders.html.StandaloneHTMLBuilder.css_files
andsphinx.builders.html.StandaloneHTMLBuilder.script_files
. Usesphinx.application.Sphinx.add_css_file()
andsphinx.application.Sphinx.add_js_file()
instead.- #11459: Deprecate
sphinx.ext.autodoc.preserve_defaults.get_function_def()
. Patch by Bénédikt Tran.Features added
- #11526: Support
os.PathLike
types andpathlib.Path
objects in many more places.- #5474: coverage: Print summary statistics tables. Patch by Jorge Leitao.
- #6319: viewcode: Add :confval:
viewcode_line_numbers
to control whether line numbers are added to rendered source code. Patch by Ben Krikler.- #9662: Add the
:no-typesetting:
option to suppress textual output and only create a linkable anchor. Patch by Latosha Maltba.- #11221: C++: Support domain objects in the table of contents. Patch by Rouslan Korneychuk.
- #10938: doctest: Add :confval:
doctest_show_successes
option. Patch by Trey Hunner.- #11533: Add
:no-index:
,:no-index-entry:
, and:no-contents-entry:
.- #11572: Improve
debug
logging of reasons why files are detected as out of date. Patch by Eric Larson.
... (truncated)
da9f8a5
Bump to 7.2.0 final794324a
Declare support for Python 3.1303bceac
[bot]: Update message catalogues (#11538)aecebce
Make _resolve_toctree()
keyword-only76658c4
Fix sphinx.ext.autodoc.preserve_defaults
(#11550)4dee162
Fix layout issues in the agogo theme for smaller viewports (#11594)4ddbee4
Fix console_scripts
entry points4add50a
Remove unneeded type annotation9d8ef83
Fix test_inspect_main_noargs
ddf8a8e
Add CHANGES entry for GH-11533Sourced from blacken-docs's changelog.
1.16.0 (2023-08-16)
Allow Markdown fence options.
Thanks to initial work from Matthew Anderson in
PR [#246](https://github.com/asottile/blacken-docs/issues/246) <https://github.com/adamchainz/blacken-docs/pull/246>
__.Expand Markdown detection to all Python language names from Pygments:
py
,sage
,python3
,py3
, andnumpy
.Preserve leading whitespace lines in reStructuredText code blocks.
Thanks to Julianus Pfeuffer for the report in
Issue [#217](https://github.com/asottile/blacken-docs/issues/217) <https://github.com/adamchainz/blacken-docs/issues/217>
__.Use exit code 2 to indicate errors from Black, whilst exit code 1 remains for “files have been formatted”.
Thanks to Julianus Pfeuffer for the report in
Issue [#218](https://github.com/asottile/blacken-docs/issues/218) <https://github.com/adamchainz/blacken-docs/issues/218>
__.Support passing the
--preview
option through to Black, to select the future style.Remove
language_version
from.pre-commit-hooks.yaml
. This change allowsdefault_language_version
in ``.pre-commit-config.yaml` to take precedence.Thanks to Aneesh Agrawal in
PR [#258](https://github.com/asottile/blacken-docs/issues/258) <https://github.com/adamchainz/blacken-docs/pull/258>
__.
960ead2
Version 1.16.08f0ed18
Support passing --preview through to Black (#273)4eb4e4c
Tweak changelog note6c7450c
Use exit code 2 to indicate errors (#272)99dfc8d
Preserve leading whitespace lines in rST (#271)94465e8
Reformat markdown tests with dedent() (#270)7cd5f30
Use .md in glob examplef97e569
Document applying to many files (#269)ae612b0
Expand Markdown detection to all Python language names (#268)da9b455
Replace NamedTuple with plain class (#267)Sourced from furo's changelog.
Changelog
2023.09.10 -- Zesty Zaffre
- Make asset hash injection idempotent, fixing Sphinx 6 compatibility.
- Fix the check for HTML builders, fixing non-HTML Read the Docs builds.
2023.08.19 -- Xenolithic Xanadu
- Fix missing search context with Sphinx 7.2, for dirhtml builds.
- Drop support for Python 3.7.
- Present configuration errors in a better format -- thanks
@AA-Turner
!- Bump
require_sphinx()
to Sphinx 6.0, in line with dependency changes in Unassuming Ultramarine.2023.08.17 -- Wonderous White
- Fix compatiblity with Sphinx 7.2.0 and 7.2.1.
2023.07.26 -- Vigilant Volt
- Fix compatiblity with Sphinx 7.1.
- Improve how content overflow is handled.
- Improve how literal blocks containing inline code are handled.
2023.05.20 -- Unassuming Ultramarine
- ✨ Add support for Sphinx 7.
- Drop support for Sphinx 5.
- Improve the screen-reader label for sidebar collapse.
- Make it easier to create derived themes from Furo.
- Bump all JS dependencies (NodeJS and npm packages).
2023.03.27 -- Tasty Tangerine
- Regenerate with newer version of sphinx-theme-builder, to fix RECORD hashes.
- Add missing class to Font Awesome examples
2023.03.23 -- Sassy Saffron
... (truncated)
2718ca4
Prepare release: 2023.09.10c22c99d
Update changelogc37e849
Quote a not-runtime-generic type annotation9cfdf44
Rework infrastructure for linting5abeb9f
Fix the check for HTML buildersee2ab54
Tweak how tests are run with noxcdae236
Test against Sphinx minor versions in CI9e40071
Make asset hash injection idempotentaab86f4
Revert "Exclude incompatible Sphinx releases (#711)"4dd6eec
Exclude incompatible Sphinx releases (#711)Sourced from black's releases.
23.9.1
Due to various issues, the previous release (23.9.0) did not include compiled mypyc wheels, which make Black significantly faster. These issues have now been fixed, and this release should come with compiled wheels once again.
There will be no wheels for Python 3.12 due to a bug in mypyc. We will provide 3.12 wheels in a future release as soon as the mypyc bug is fixed.
Packaging
- Upgrade to mypy 1.5.1 (#3864)
Performance
- Store raw tuples instead of NamedTuples in Black's cache, improving performance and decreasing the size of the cache (#3877)
23.9.0
Preview style
- More concise formatting for dummy implementations (#3796)
- In stub files, add a blank line between a statement with a body (e.g an
if sys.version_info > (3, x):
) and a function definition on the same level (#3862)- Fix a bug whereby spaces were removed from walrus operators within subscript(#3823)
Configuration
- Black now applies exclusion and ignore logic before resolving symlinks (#3846)
Performance
- Avoid importing
IPython
if notebook cells do not contain magics (#3782)- Improve caching by comparing file hashes as fallback for mtime and size (#3821)
Blackd
- Fix an issue in
blackd
with single character input (#3558)Integrations
- Black now has an official pre-commit mirror. Swapping
https://github.com/psf/black
tohttps://github.com/psf/black-pre-commit-mirror
in your.pre-commit-config.yaml
will make Black about 2x faster (#3828)- The
.black.env
folder specified byENV_PATH
will now be removed on the completion of the GitHub Action (#3759)
Sourced from black's changelog.
23.9.1
Due to various issues, the previous release (23.9.0) did not include compiled mypyc wheels, which make Black significantly faster. These issues have now been fixed, and this release should come with compiled wheels once again.
There will be no wheels for Python 3.12 due to a bug in mypyc. We will provide 3.12 wheels in a future release as soon as the mypyc bug is fixed.
Packaging
- Upgrade to mypy 1.5.1 (#3864)
Performance
- Store raw tuples instead of NamedTuples in Black's cache, improving performance and decreasing the size of the cache (#3877)
23.9.0
Preview style
- More concise formatting for dummy implementations (#3796)
- In stub files, add a blank line between a statement with a body (e.g an
if sys.version_info > (3, x):
) and a function definition on the same level (#3862)- Fix a bug whereby spaces were removed from walrus operators within subscript(#3823)
Configuration
- Black now applies exclusion and ignore logic before resolving symlinks (#3846)
Performance
- Avoid importing
IPython
if notebook cells do not contain magics (#3782)- Improve caching by comparing file hashes as fallback for mtime and size (#3821)
Blackd
- Fix an issue in
blackd
with single character input (#3558)Integrations
- Black now has an official pre-commit mirror. Swapping
https://github.com/psf/black
tohttps://github.com/psf/black-pre-commit-mirror
in your.pre-commit-config.yaml
will make Black about 2x faster (#3828)- The
.black.env
folder specified byENV_PATH
will now be removed on the completion of the GitHub Action (#3759)
e877371
Prepare release 23.9.1 (#3878)62dca32
mypyc builds on PRs, skip mypyc wheels for 3.12 (#3870)751583a
Pickle raw tuples in FileData cache (#3877)f791745
Re-export black.Mode (#3875)0b62b9c
Ignore aiohttp DeprecationWarning for 3.12 (#3876)c83ad6c
Upgrade to Furo 2023.9.10 to fix docs build (#3873)4eebfd1
Add mypyc test marks to new tests that patch (#3871)add161b
Bump RTD Python version from 3.8 to 3.11 (#3868)4e93f2a
Add classifier for 3.12 (#3866)716fa08
Upgrade mypy (#3864)Sourced from sphinx's releases.
Sphinx 7.2.2
Changelog: https://www.sphinx-doc.org/en/master/changes.html
Sphinx 7.2.1
Changelog: https://www.sphinx-doc.org/en/master/changes.html
Sphinx 7.2.0
Changelog: https://www.sphinx-doc.org/en/master/changes.html
Sourced from sphinx's changelog.
Release 7.2.2 (released Aug 17, 2023)
Bugs fixed
- Fix the signature of the
StateMachine.insert_input()
patch, for when calling with keyword arguments.- Fixed membership testing (
in
) for the :py:class:str
interface of the asset classes (_CascadingStyleSheet
and_JavaScript
), which several extensions relied upon.- Fixed a type error in
SingleFileHTMLBuilder._get_local_toctree
,includehidden
may be passed as a string or a boolean.- Fix
:noindex:
forPyModule
and JSModule``.Release 7.2.1 (released Aug 17, 2023)
Bugs fixed
- Restored the the :py:class:
str
interface of the asset classes (_CascadingStyleSheet
and_JavaScript
), which several extensions relied upon. This will be removed in Sphinx 9.- Restored calls to
Builder.add_{css,js}_file()
, which several extensions relied upon.- Restored the private API
TocTree.get_toctree_ancestors()
, which several extensions relied upon.Release 7.2.0 (released Aug 17, 2023)
Dependencies
Deprecated
- #11512: Deprecate
sphinx.util.md5
andsphinx.util.sha1
. Usehashlib
instead.- #11526: Deprecate
sphinx.testing.path
. Useos.path
orpathlib
instead.- #11528: Deprecate
sphinx.util.split_index_msg
andsphinx.util.split_into
. Usesphinx.util.index_entries.split_index_msg
instead.- Deprecate
sphinx.builders.html.Stylesheet
andsphinx.builders.html.Javascript
. Usesphinx.application.Sphinx.add_css_file()
... (truncated)
ed84d63
Bump to 7.2.2 finalea4a73e
[bot]: Update message catalogues (#11612)e47846a
Fix :noindex:
for PyModule
and JSModule``b2fc47f
Add CHANGES entry for renaming the StateMachine.insert_input()
parameter0835c3e
Fix regression in SingleFileHTMLBuilder._get_local_toctree
49dc0dd
Fix asset class string interface membership testing8512855
Fix signature of docutils include_source monkeypatch (#11610)e1d9068
Bump version441a9e4
Bump to 7.2.1 finalec31853
Restore TocTree.get_toctree_ancestors()
Sourced from furo's changelog.
Changelog
2023.08.17 -- Wonderous White
- Fix compatiblity with Sphinx 7.2.0 and 7.2.1.
2023.07.26 -- Vigilant Volt
- Fix compatiblity with Sphinx 7.1.
- Improve how content overflow is handled.
- Improve how literal blocks containing inline code are handled.
2023.05.20 -- Unassuming Ultramarine
- ✨ Add support for Sphinx 7.
- Drop support for Sphinx 5.
- Improve the screen-reader label for sidebar collapse.
- Make it easier to create derived themes from Furo.
- Bump all JS dependencies (NodeJS and npm packages).
2023.03.27 -- Tasty Tangerine
- Regenerate with newer version of sphinx-theme-builder, to fix RECORD hashes.
- Add missing class to Font Awesome examples
2023.03.23 -- Sassy Saffron
- Update Python version classifiers.
- Increase the icon size in mobile header.
- Increase admonition title bg opacity.
- Change the default API background to transparent.
- Transition the API background change.
- Remove the "indent" of API entries which have a background.
- Break long inline code literals.
2022.12.07 -- Reverent Raspberry
- ✨ Add support for Sphinx 6.
- ✨ Improve footnote presentation with docutils 0.18+.
... (truncated)
Sourced from blacken-docs's changelog.
1.16.0 (2023-08-16)
Allow Markdown fence options.
Thanks to initial work from Matthew Anderson in
PR [#246](https://github.com/asottile/blacken-docs/issues/246) <https://github.com/adamchainz/blacken-docs/pull/246>
__.Expand Markdown detection to all Python language names from Pygments:
py
,sage
,python3
,py3
, andnumpy
.Preserve leading whitespace lines in reStructuredText code blocks.
Thanks to Julianus Pfeuffer for the report in
Issue [#217](https://github.com/asottile/blacken-docs/issues/217) <https://github.com/adamchainz/blacken-docs/issues/217>
__.Use exit code 2 to indicate errors from Black, whilst exit code 1 remains for “files have been formatted”.
Thanks to Julianus Pfeuffer for the report in
Issue [#218](https://github.com/asottile/blacken-docs/issues/218) <https://github.com/adamchainz/blacken-docs/issues/218>
__.Support passing the
--preview
option through to Black, to select the future style.Remove
language_version
from.pre-commit-hooks.yaml
. This change allowsdefault_language_version
in ``.pre-commit-config.yaml` to take precedence.Thanks to Aneesh Agrawal in
PR [#258](https://github.com/asottile/blacken-docs/issues/258) <https://github.com/adamchainz/blacken-docs/pull/258>
__.
960ead2
Version 1.16.08f0ed18
Support passing --preview through to Black (#273)4eb4e4c
Tweak changelog note6c7450c
Use exit code 2 to indicate errors (#272)99dfc8d
Preserve leading whitespace lines in rST (#271)94465e8
Reformat markdown tests with dedent() (#270)7cd5f30
Use .md in glob examplef97e569
Document applying to many files (#269)ae612b0
Expand Markdown detection to all Python language names (#268)da9b455
Replace NamedTuple with plain class (#267)Sourced from sphinx's releases.
Sphinx 7.2.3
Changelog: https://www.sphinx-doc.org/en/master/changes.html
Sphinx 7.2.2
Changelog: https://www.sphinx-doc.org/en/master/changes.html
Sphinx 7.2.1
Changelog: https://www.sphinx-doc.org/en/master/changes.html
Sphinx 7.2.0
Changelog: https://www.sphinx-doc.org/en/master/changes.html
Sourced from sphinx's changelog.
Release 7.2.3 (released Aug 23, 2023)
Dependencies
- #11576: Require sphinxcontrib-serializinghtml 1.1.9.
Bugs fixed
- Fix regression in
autodoc.Documenter.parse_name()
.- Fix regression in JSON serialisation.
- #11543: autodoc: Support positional-only parameters in
classmethod
methods whenautodoc_preserve_defaults
isTrue
.- Restore support string methods on path objects. This is deprecated and will be removed in Sphinx 8. Use :py:func
os.fspath
to convert :py:class:pathlib.Path
objects to strings, or :py:class:pathlib.Path
's methods to work with path objects.Release 7.2.2 (released Aug 17, 2023)
Bugs fixed
- Fix the signature of the
StateMachine.insert_input()
patch, for when calling with keyword arguments.- Fixed membership testing (
in
) for the :py:class:str
interface of the asset classes (_CascadingStyleSheet
and_JavaScript
), which several extensions relied upon.- Fixed a type error in
SingleFileHTMLBuilder._get_local_toctree
,includehidden
may be passed as a string or a boolean.- Fix
:noindex:
forPyModule
and JSModule``.Release 7.2.1 (released Aug 17, 2023)
Bugs fixed
- Restored the the :py:class:
str
interface of the asset classes (_CascadingStyleSheet
and_JavaScript
), which several extensions relied upon. This will be removed in Sphinx 9.- Restored calls to
Builder.add_{css,js}_file()
, which several extensions relied upon.- Restored the private API
TocTree.get_toctree_ancestors()
, which several extensions relied upon.Release 7.2.0 (released Aug 17, 2023)
... (truncated)
2f6ea14
Bump to 7.2.3 final511e407
Implement bool()
for string paths494de73
Implement hash()
for string paths2986aa1
Override special methods for string paths07b87e9
Update CHANGES for 7.2.36b17dd1
Support string methods on path objects (#11619)a73fb59
Support positional-only parameters in classmethods (#11635)02cb02c
Fix invocation of python -m sphinx build
6183b6a
Require sphinxcontrib-serializinghtml 1.1.9 or later1e16f21
Fix regression in autodoc.Documenter.parse_name
(#11613)Sourced from furo's changelog.
Changelog
2023.08.19 -- Xenolithic Xanadu
- Fix missing search context with Sphinx 7.2, for dirhtml builds.
- Drop support for Python 3.7.
- Present configuration errors in a better format -- thanks
@AA-Turner
!- Bump
require_sphinx()
to Sphinx 6.0, in line with dependency changes in Unassuming Ultramarine.2023.08.17 -- Wonderous White
- Fix compatiblity with Sphinx 7.2.0 and 7.2.1.
2023.07.26 -- Vigilant Volt
- Fix compatiblity with Sphinx 7.1.
- Improve how content overflow is handled.
- Improve how literal blocks containing inline code are handled.
2023.05.20 -- Unassuming Ultramarine
- ✨ Add support for Sphinx 7.
- Drop support for Sphinx 5.
- Improve the screen-reader label for sidebar collapse.
- Make it easier to create derived themes from Furo.
- Bump all JS dependencies (NodeJS and npm packages).
2023.03.27 -- Tasty Tangerine
- Regenerate with newer version of sphinx-theme-builder, to fix RECORD hashes.
- Add missing class to Font Awesome examples
2023.03.23 -- Sassy Saffron
- Update Python version classifiers.
- Increase the icon size in mobile header.
- Increase admonition title bg opacity.
- Change the default API background to transparent.
- Transition the API background change.
... (truncated)
0766bb2
Prepare release: 2023.08.19807d73c
Update changelog364b261
Accomodate for the required data-content_root
for search0d38bc6
Simplify retrieval of pygments_dark_style
value (#699)3631ffc
Use sphinx.errors.ConfigError
(#697)d2e2448
Remove duplicate HTML builder check (#698)7b4f130
Drop Python 3.7 (#701)e322b71
Remove pointless assert (#702)ee2097a
Bump require_sphinx()
to Sphinx 6.0 (#700)c1ff10b
Back to developmentSourced from blacken-docs's changelog.
1.16.0 (2023-08-16)
Allow Markdown fence options.
Thanks to initial work from Matthew Anderson in
PR [#246](https://github.com/asottile/blacken-docs/issues/246) <https://github.com/adamchainz/blacken-docs/pull/246>
__.Expand Markdown detection to all Python language names from Pygments:
py
,sage
,python3
,py3
, andnumpy
.Preserve leading whitespace lines in reStructuredText code blocks.
Thanks to Julianus Pfeuffer for the report in
Issue [#217](https://github.com/asottile/blacken-docs/issues/217) <https://github.com/adamchainz/blacken-docs/issues/217>
__.Use exit code 2 to indicate errors from Black, whilst exit code 1 remains for “files have been formatted”.
Thanks to Julianus Pfeuffer for the report in
Issue [#218](https://github.com/asottile/blacken-docs/issues/218) <https://github.com/adamchainz/blacken-docs/issues/218>
__.Support passing the
--preview
option through to Black, to select the future style.Remove
language_version
from.pre-commit-hooks.yaml
. This change allowsdefault_language_version
in ``.pre-commit-config.yaml` to take precedence.Thanks to Aneesh Agrawal in
PR [#258](https://github.com/asottile/blacken-docs/issues/258) <https://github.com/adamchainz/blacken-docs/pull/258>
__.
960ead2
Version 1.16.08f0ed18
Support passing --preview through to Black (#273)4eb4e4c
Tweak changelog note6c7450c
Use exit code 2 to indicate errors (#272)99dfc8d
Preserve leading whitespace lines in rST (#271)94465e8
Reformat markdown tests with dedent() (#270)7cd5f30
Use .md in glob examplef97e569
Document applying to many files (#269)ae612b0
Expand Markdown detection to all Python language names (#268)da9b455
Replace NamedTuple with plain class (#267)