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-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, 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-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-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,