html_url,issue_url,id,node_id,user,user_label,created_at,updated_at,author_association,body,reactions,issue,issue_label,performed_via_github_app https://github.com/simonw/datasette/issues/516#issuecomment-1689159200,https://api.github.com/repos/simonw/datasette/issues/516,1689159200,IC_kwDOBm6k_c5kroYg,9599,simonw,2023-08-23T02:15:36Z,2023-08-23T02:15:36Z,OWNER,This could play havoc with unmerged PRs. I should merge any big ones (like the JavaScript plugins work) first.,"{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",459509126,Enforce import sort order with isort, https://github.com/simonw/datasette/issues/516#issuecomment-1689158712,https://api.github.com/repos/simonw/datasette/issues/516,1689158712,IC_kwDOBm6k_c5kroQ4,9599,simonw,2023-08-23T02:14:45Z,2023-08-23T02:14:45Z,OWNER,"Thinking about this again today. Posted about it on Discord: https://discord.com/channels/823971286308356157/823971286941302908/1143729300349132933 I won't enforce it in a `pytest` test, I'll enforce it with a CI lint check that's also in the `Justfile` here instead: https://github.com/simonw/datasette/blob/17ec309e14f9c2e90035ba33f2f38ecc5afba2fa/Justfile#L19-L23","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",459509126,Enforce import sort order with isort, https://github.com/simonw/datasette/issues/516#issuecomment-1689154837,https://api.github.com/repos/simonw/datasette/issues/516,1689154837,IC_kwDOBm6k_c5krnUV,9599,simonw,2023-08-23T02:08:33Z,2023-08-23T02:08:50Z,OWNER,Browse this commit to see the result: https://github.com/simonw/datasette/tree/59a5d336bd4336bc53103922ada4bf726f4336c9,"{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",459509126,Enforce import sort order with isort, https://github.com/simonw/datasette/issues/516#issuecomment-1689153446,https://api.github.com/repos/simonw/datasette/issues/516,1689153446,IC_kwDOBm6k_c5krm-m,9599,simonw,2023-08-23T02:06:35Z,2023-08-23T02:06:35Z,OWNER,"I just tried this again today by dropping this into `.isort.cfg`: ```ini [settings] multi_line_output=3 include_trailing_comma=True force_grid_wrap=0 use_parentheses=True line_length=88 known_first_party=datasette ``` And running this in the root of the project: ``` isort . ``` It produced a huge diff, but when I ran the tests: ```bash pytest -n auto ``` The tests all passed. I'll push a PR.","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",459509126,Enforce import sort order with isort, https://github.com/simonw/datasette/issues/516#issuecomment-504768147,https://api.github.com/repos/simonw/datasette/issues/516,504768147,MDEyOklzc3VlQ29tbWVudDUwNDc2ODE0Nw==,9599,simonw,2019-06-23T16:43:23Z,2019-06-23T16:43:23Z,OWNER,"The Starlette lint and test scripts do this, and also apply autoflake to remove any unnecessary imports: https://github.com/encode/starlette/tree/8c8cc2ec0a5cb834a9a15b871ae8b480503abb67/scripts","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",459509126,Enforce import sort order with isort, https://github.com/simonw/datasette/issues/516#issuecomment-504697187,https://api.github.com/repos/simonw/datasette/issues/516,504697187,MDEyOklzc3VlQ29tbWVudDUwNDY5NzE4Nw==,9599,simonw,2019-06-22T20:46:35Z,2019-06-22T20:46:35Z,OWNER,I'm going to resist the temptation to do this until I've merged the `asgi` branch from #272 ,"{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",459509126,Enforce import sort order with isort, https://github.com/simonw/datasette/issues/516#issuecomment-504696638,https://api.github.com/repos/simonw/datasette/issues/516,504696638,MDEyOklzc3VlQ29tbWVudDUwNDY5NjYzOA==,9599,simonw,2019-06-22T20:37:25Z,2019-06-22T20:38:42Z,OWNER,"This test added do `test_black.py` seems to do the trick: ```python @pytest.mark.parametrize(""path"", code_root.glob(""**/*.py"")) def test_isort(path): # Have to capture stdout because isort uses print() directly stdout = sys.stdout sys.stdout = io.StringIO() result = isort.SortImports(path, check=True) assert ( not result.incorrectly_sorted ), ""{} has incorrectly sorted imports, fix with 'isort -rc . && black .'"" sys.stdout = stdout ``` I'll rename `test_black.py` to `test_lint.py` to reflect that it now covers more forms of linting. Also needed: add `move_to_front(items, ""test_isort"")` to `conftest.py`. And add `isort` to `extras_require` in `setup.py`.","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",459509126,Enforce import sort order with isort, https://github.com/simonw/datasette/issues/516#issuecomment-504696610,https://api.github.com/repos/simonw/datasette/issues/516,504696610,MDEyOklzc3VlQ29tbWVudDUwNDY5NjYxMA==,9599,simonw,2019-06-22T20:36:57Z,2019-06-22T20:36:57Z,OWNER,"According to [the black documentation](https://black.readthedocs.io/en/stable/the_black_code_style.html?highlight=isort.cfg) the following config file is necessary to avoid isort and black getting into an edit war with each other: ``` [settings] multi_line_output=3 include_trailing_comma=True force_grid_wrap=0 use_parentheses=True line_length=88 ```","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",459509126,Enforce import sort order with isort,