id,node_id,number,state,locked,title,user,user_label,body,created_at,updated_at,closed_at,merged_at,merge_commit_sha,assignee,assignee_label,milestone,milestone_label,draft,head,base,author_association,repo,repo_label,url,merged_by,merged_by_label,auto_merge 152360740,MDExOlB1bGxSZXF1ZXN0MTUyMzYwNzQw,81,closed,0,:fire: Removes DS_Store,50527,jefftriplett,,2017-11-13T22:07:52Z,2017-11-14T02:24:54Z,2017-11-13T22:16:55Z,2017-11-13T22:16:55Z,06a826c3188af82f27bb6b4e09cc89b782d30bd6,,,,,0,c66d297eac556a7f4fd4dcdb15cfb9466fddac77,d75f423b6fcfc074b7c6f8f7679da8876f181edd,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/81,,, 152522762,MDExOlB1bGxSZXF1ZXN0MTUyNTIyNzYy,89,closed,0,SQL syntax highlighting with CodeMirror,15543,tomdyson,"Addresses #13 Future enhancements could include autocompletion of table and column names, e.g. with ```javascript extraKeys: {""Ctrl-Space"": ""autocomplete""}, hintOptions: {tables: { users: [""name"", ""score"", ""birthDate""], countries: [""name"", ""population"", ""size""] }} ``` (see https://codemirror.net/doc/manual.html#addon_sql-hint and source at http://codemirror.net/mode/sql/)",2017-11-14T14:43:33Z,2017-11-15T02:03:01Z,2017-11-15T02:03:01Z,2017-11-15T02:03:01Z,8252daa4c14d73b4b69e3f2db4576bb39d73c070,,,,,0,7f6ad095e9c41bf24d73b7724d898965c419965b,075d422c0a1c70259188dfbd940538c67419694a,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/89,,, 152631570,MDExOlB1bGxSZXF1ZXN0MTUyNjMxNTcw,94,closed,0,Initial add simple prod ready Dockerfile refs #57,247192,macropin,"Multi-stage build based off official python:3.6-slim Example usage: ``` docker run --rm -t -i -p 9000:8001 -v $(pwd)/db:/db datasette datasette serve /db/chinook.db ```",2017-11-14T22:09:09Z,2017-11-15T03:08:04Z,2017-11-15T03:08:04Z,2017-11-15T03:08:04Z,86755503d26b4a83c2ec59f08ec1b8de791fd954,,,,,0,147195c2fdfa2b984d8f9fc1c6cab6634970a056,075d422c0a1c70259188dfbd940538c67419694a,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/94,,, 152870030,MDExOlB1bGxSZXF1ZXN0MTUyODcwMDMw,104,closed,0,[WIP] Add publish to heroku support,21148,jacobian," Refs #90 ",2017-11-15T19:56:22Z,2017-11-21T20:55:05Z,2017-11-21T20:55:05Z,2017-11-21T20:55:05Z,e47117ce1d15f11246a3120aa49de70205713d05,,,,,0,de42240afd1e3829fd21cbe77a89ab0eaab20d78,0331666e346c68b86de4aa19fbb37f3a408d37ca,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/104,,, 152914480,MDExOlB1bGxSZXF1ZXN0MTUyOTE0NDgw,107,closed,0,add support for ?field__isnull=1,3433657,raynae,Is this what you had in mind for [this issue](https://github.com/simonw/datasette/issues/64)?,2017-11-15T23:36:36Z,2017-11-17T15:12:29Z,2017-11-17T13:29:22Z,2017-11-17T13:29:22Z,ed2b3f25beac720f14869350baacc5f62b065194,,,,,0,14d5bb572fadbd45973580bd9ad2a16c2bf12909,b7c4165346ee8b6a6fbd72d6ba2275a24a8a8ae3,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/107,,, 153201945,MDExOlB1bGxSZXF1ZXN0MTUzMjAxOTQ1,114,closed,0,"Add spatialite, switch to debian and local build",54999,ingenieroariel,"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.",2017-11-17T02:37:09Z,2017-11-17T03:50:52Z,2017-11-17T03:50:52Z,2017-11-17T03:50:52Z,8b4c600d98b85655b3a1454ebf64f858b5fe54c8,,,,,0,6c6b63d890529eeefcefb7ab126ea3bd7b2315c1,b7c4165346ee8b6a6fbd72d6ba2275a24a8a8ae3,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/114,,, 153306882,MDExOlB1bGxSZXF1ZXN0MTUzMzA2ODgy,115,closed,0,Add keyboard shortcut to execute SQL query,198537,rgieseke,"Very cool tool, thanks a lot! This PR adds a `Shift-Enter` short cut to execute the SQL query. I used CodeMirrors keyboard handling.",2017-11-17T14:13:33Z,2017-11-17T15:16:34Z,2017-11-17T14:22:56Z,2017-11-17T14:22:56Z,eda848b37f8452dba7913583ef101f39d9b130ba,,,,,0,bb514164e69400fc0be4e033c27f45f90b1ef651,ed2b3f25beac720f14869350baacc5f62b065194,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/115,,, 153324301,MDExOlB1bGxSZXF1ZXN0MTUzMzI0MzAx,117,closed,0,Don't prevent tabbing to `Run SQL` button,198537,rgieseke,"Mentioned in #115 Here you go!",2017-11-17T15:27:50Z,2017-11-19T20:30:24Z,2017-11-18T00:53:43Z,2017-11-18T00:53:43Z,6d39429daa4655e3cf7a6a7671493292a20a30a1,,,,,0,7b4d00e87ed8ac931e6f5458599aece1a95d4e82,eda848b37f8452dba7913583ef101f39d9b130ba,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/117,,, 153432045,MDExOlB1bGxSZXF1ZXN0MTUzNDMyMDQ1,118,closed,0,Foreign key information on row and table pages,9599,simonw,,2017-11-18T03:13:27Z,2017-11-18T03:15:57Z,2017-11-18T03:15:50Z,2017-11-18T03:15:50Z,1b04662585ea1539014bfbd616a8112b650d5699,,,,,0,2fa60bc5e3c9d75c19e21a2384f52b58e1872fa8,6d39429daa4655e3cf7a6a7671493292a20a30a1,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/118,,, 154246816,MDExOlB1bGxSZXF1ZXN0MTU0MjQ2ODE2,145,closed,0,Fix pytest version conflict,9599,simonw,"https://travis-ci.org/simonw/datasette/jobs/305929426 pkg_resources.VersionConflict: (pytest 3.2.1 (/home/travis/virtualenv/python3.5.3/lib/python3.5/site-packages), Requirement.parse('pytest==3.2.3'))",2017-11-22T20:15:34Z,2017-11-22T20:17:54Z,2017-11-22T20:17:52Z,2017-11-22T20:17:52Z,f96e55bce55d26c4d5b198edc536e1b8e9bbea43,,,,,0,e319478c4a34fb5afbff2b2a8c3b9ef9f859bb10,fa8eb0bf1b113ab17ede9cd107b7c3bd5cde39c3,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/145,,, 157365811,MDExOlB1bGxSZXF1ZXN0MTU3MzY1ODEx,168,closed,0,Upgrade to Sanic 0.7.0,9599,simonw,,2017-12-09T01:25:08Z,2017-12-09T03:00:34Z,2017-12-09T03:00:34Z,2017-12-09T03:00:34Z,446f4b832272b2286f6f65af19714eb64afb7aa6,,,,,0,d9e13a5cc2b77637a6cdd8bd21b9b8fc1350051a,61e3c5a1e904a6e1cbee86ba1494b5cb4b5820cf,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/168,,, 161982711,MDExOlB1bGxSZXF1ZXN0MTYxOTgyNzEx,178,closed,0,"If metadata exists, add it to heroku launch command",82988,psychemedia,"The heroku build does seem to make use of any provided `metadata.json` file. Add the `--metadata` switch to the Heroku web launch command if a `metadata.json` file is available. Addresses: https://github.com/simonw/datasette/issues/177",2018-01-09T21:42:21Z,2018-01-15T09:42:46Z,2018-01-14T21:05:16Z,2018-01-14T21:05:16Z,3a56a2cd7eea5d477d5d936b01098be5cba0d98e,,,,,0,1bc9ed98c4f4fd91b70560ac8f507a2fddbd8317,306e1c6ac4f00cc25d676a6ee660938f5b27427c,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/178,,, 163523976,MDExOlB1bGxSZXF1ZXN0MTYzNTIzOTc2,180,closed,0,make html title more readable in query template,56477,ryanpitts,tiny tweak to make this easier to visually parse—I think it matches your style in other templates,2018-01-17T18:56:03Z,2018-04-03T16:03:38Z,2018-04-03T15:24:05Z,2018-04-03T15:24:05Z,446d47fdb005b3776bc06ad8d1f44b01fc2e938b,,,,,0,dc900b2f587c839e97389aaca70140fb06b4d40b,56623e48da5412b25fb39cc26b9c743b684dd968,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/180,,, 163561830,MDExOlB1bGxSZXF1ZXN0MTYzNTYxODMw,181,closed,0,"add ""format sql"" button to query page, uses sql-formatter",1957344,bsmithgall,"Cool project! This fixes #136 using the suggested [sql formatter](https://github.com/zeroturnaround/sql-formatter) library. I included the minified version in the bundle and added the relevant scripts to the codemirror includes instead of adding new files, though I could also add new files. I wanted to keep it all together, since the result of the format needs access to the editor in order to properly update the codemirror instance.",2018-01-17T21:50:04Z,2019-11-11T03:08:25Z,2019-11-11T03:08:25Z,,a9ac208088e536043890e0f7ff8a182398576a51,,,,,0,86ac746cfcbf2fa86863f8fab528494600eac1ae,a290f28caae61b47e76e825c06984f22fc41a694,NONE,107914493,datasette,https://github.com/simonw/datasette/pull/181,,, 165029807,MDExOlB1bGxSZXF1ZXN0MTY1MDI5ODA3,182,closed,0,Add db filesize next to download link,3433657,raynae,"Took a stab at #172, will this do the trick?",2018-01-25T04:58:56Z,2019-03-22T13:50:57Z,2019-02-06T04:59:38Z,,a8d9e69872dec9a551b25cd609ffdbf3896045bd,,,,,0,b62835205a830472abb66c708822c2dcdf4ab027,56623e48da5412b25fb39cc26b9c743b684dd968,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/182,,, 179108961,MDExOlB1bGxSZXF1ZXN0MTc5MTA4OTYx,192,closed,0,New ?_shape=objects/object/lists param for JSON API,9599,simonw,Refs #122,2018-04-03T14:02:58Z,2018-04-03T14:53:00Z,2018-04-03T14:52:55Z,2018-04-03T14:52:55Z,0abd3abacb309a2bd5913a7a2df4e9256585b1bb,,,,,0,a759e09e8599e2cf54f6c5ab4d1cf8adf8608793,dd0566ff8eda7fa2f0d92e51809581fae62cffed,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/192,,, 180188397,MDExOlB1bGxSZXF1ZXN0MTgwMTg4Mzk3,196,closed,0,_sort= and _sort_desc= parameters to table view,9599,simonw,See #189 ,2018-04-09T00:07:21Z,2018-04-09T05:10:29Z,2018-04-09T05:10:23Z,2018-04-09T05:10:23Z,c1d37fdf2be84fb07155bb1b1f61057444b03300,,,,,0,fdd6b71e40c8aa9a93e95802a8b6291099d4db2c,b2188f044265c95f7e54860e28107c17d2a6ed2e,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/196,,, 181033024,MDExOlB1bGxSZXF1ZXN0MTgxMDMzMDI0,200,closed,0,Hide Spatialite system tables,45057,russss,They were getting on my nerves.,2018-04-11T21:26:58Z,2018-04-12T21:34:48Z,2018-04-12T21:34:48Z,2018-04-12T21:34:48Z,d08a13314081ae2ce0313a17d3c07c1a7f2d94d5,,,,,0,765b5d677154c633b91e3e826dfffc53b7c4b5d3,bfb4e45a7bcb880758dbc18f66258de26c1d1904,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/200,,, 181247568,MDExOlB1bGxSZXF1ZXN0MTgxMjQ3NTY4,202,closed,0,Raise 404 on nonexistent table URLs,45057,russss,"Currently they just 500. Also cleaned the logic up a bit, I hope I didn't miss anything. This is issue #184.",2018-04-12T15:47:06Z,2018-04-13T19:22:56Z,2018-04-13T18:19:15Z,,134150933ade84327cfd97a88d536f5bff37a136,,,,,0,71bbf4e4be8a9ab7bcc4ddfb33760c7d902f4a34,bfb4e45a7bcb880758dbc18f66258de26c1d1904,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/202,,, 181600926,MDExOlB1bGxSZXF1ZXN0MTgxNjAwOTI2,204,closed,0,Initial units support,45057,russss,"Add support for specifying units for a column in metadata.json and rendering them on display using [pint](https://pint.readthedocs.io/en/latest/). Example table metadata: ```json ""license_frequency"": { ""units"": { ""frequency"": ""Hz"", ""channel_width"": ""Hz"", ""height"": ""m"", ""antenna_height"": ""m"", ""azimuth"": ""degrees"" } } ``` [Example result](https://wtr-api.herokuapp.com/wtr-663ea99/license_frequency/1) This works surprisingly well! I'd like to add support for using units when querying but this is PR is pretty usable as-is. (Pint doesn't seem to support decibels though - it thinks they're decibytes - which is an annoying omission.) (ref ticket #203)",2018-04-13T21:32:49Z,2018-04-14T09:44:33Z,2018-04-14T03:32:54Z,2018-04-14T03:32:54Z,ec6abc81e433c9bac1b9f085111785fc227e9e34,,,,,0,67c20a98a0cbb59a10247a49320c2feb7d0b1b41,fb988ace7c7e2bee5ac142a0eab22431d0675a77,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/204,,, 181642114,MDExOlB1bGxSZXF1ZXN0MTgxNjQyMTE0,205,closed,0,Support filtering with units and more,45057,russss,"The first commit: * Adds units to exported JSON * Adds units key to metadata skeleton * Adds some docs for units The second commit adds filtering by units by the first method I mentioned in #203: ![image](https://user-images.githubusercontent.com/45057/38767463-7193be16-3fd9-11e8-8a5f-ac4159415c6d.png) [Try it here](https://wtr-api.herokuapp.com/wtr-663ea99/license_frequency?frequency__gt=50GHz&height__lt=50ft). I think it integrates pretty neatly. The third commit adds support for registering custom units with Pint from metadata.json. Probably pretty niche, but I need decibels!",2018-04-14T10:47:51Z,2018-04-14T15:24:04Z,2018-04-14T15:24:04Z,,ed059c70e87a2930206652621e23a55167aa57c1,,,,,0,eb3a37c34813ecbbfdae015305fec1f2a4ec27a5,6b15a53cd3cd40880a5e2d38827d5fac10e4bb5f,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/205,,, 181644805,MDExOlB1bGxSZXF1ZXN0MTgxNjQ0ODA1,206,closed,0,Fix sqlite error when loading rows with no incoming FKs,45057,russss,"This fixes `ERROR: conn=, sql = 'select ', params = {'id': '1'}` caused by an invalid query loading incoming FKs when none exist. The error was ignored due to async but it still got printed to the console.",2018-04-14T12:08:17Z,2018-04-14T14:32:42Z,2018-04-14T14:24:25Z,2018-04-14T14:24:25Z,1cc5161089e559c8b16049b20f7a5b3a43290c21,,,,,0,93b038e2469bee07d36ae8a943aab8b9d8610c1d,ec6abc81e433c9bac1b9f085111785fc227e9e34,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/206,,, 181647717,MDExOlB1bGxSZXF1ZXN0MTgxNjQ3NzE3,207,closed,0,Link foreign keys which don't have labels,45057,russss,"This renders unlabeled FKs as simple links. I can't see why this would cause any major problems. ![image](https://user-images.githubusercontent.com/45057/38768722-ea15a000-3fef-11e8-8664-ffd7aa4894ea.png) Also includes bonus fixes for two minor issues: * In foreign key link hrefs the primary key was escaped using HTML escaping rather than URL escaping. This broke some non-integer PKs. * Print tracebacks to console when handling 500 errors.",2018-04-14T13:27:14Z,2018-04-14T15:00:00Z,2018-04-14T15:00:00Z,2018-04-14T15:00:00Z,f2b940d6026677f6859d46a4f16fa402745d261d,,,,,0,d9858672da8f74e5530deead140e2e633e1c2627,ec6abc81e433c9bac1b9f085111785fc227e9e34,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/207,,, 181654839,MDExOlB1bGxSZXF1ZXN0MTgxNjU0ODM5,208,closed,0,Return HTTP 405 on InvalidUsage rather than 500,45057,russss,"This also stops it filling up the logs. This happens for HEAD requests at the moment - which perhaps should be handled better, but that's a different issue.",2018-04-14T16:12:50Z,2018-04-14T18:00:39Z,2018-04-14T18:00:39Z,2018-04-14T18:00:39Z,efbb4e83374a2c795e436c72fa79f70da72309b8,,,,,0,20e5fcf827046adf76968d0e58f47e0b7d9271c3,8d394586f55bc4b8ab70476968d08fb6ec8339e5,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/208,,, 181723303,MDExOlB1bGxSZXF1ZXN0MTgxNzIzMzAz,209,closed,0, Don't duplicate simple primary keys in the link column,45057,russss,"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)",2018-04-15T21:56:15Z,2018-04-18T08:40:37Z,2018-04-18T01:13:04Z,2018-04-18T01:13:04Z,136a70d88741e2a5892c3de437064a9d14494d66,,,,,0,4acde4e187795214af6fc86f46af48982ec5de46,bf5ec2d61148f9852441934dd206b3b1c07a512f,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/209,,, 181731956,MDExOlB1bGxSZXF1ZXN0MTgxNzMxOTU2,210,closed,0,"Start of the plugin system, based on pluggy",9599,simonw,Refs #14,2018-04-16T00:51:30Z,2018-04-16T00:56:16Z,2018-04-16T00:56:16Z,2018-04-16T00:56:16Z,33c7c53ff87c25445c68088ede49d062d9c31fe8,,,,,0,d75e57060d9ef4ef6ebab3600e542885b7467272,efbb4e83374a2c795e436c72fa79f70da72309b8,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/210,,, 181755220,MDExOlB1bGxSZXF1ZXN0MTgxNzU1MjIw,212,closed,0,New --plugins-dir=plugins/ option,9599,simonw,Refs #211,2018-04-16T05:19:28Z,2018-04-16T05:22:18Z,2018-04-16T05:22:01Z,2018-04-16T05:22:01Z,b2955d9065ea019500c7d072bcd9d49d1967f051,,,,,0,33c6bcadb962457be6b0c7f369826b404e2bcef5,92396ae5bacedfcb3d7c81319ccdd04483fd7fd4,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/212,,, 182357613,MDExOlB1bGxSZXF1ZXN0MTgyMzU3NjEz,222,closed,0,Fix for plugins in Python 3.5,9599,simonw,,2018-04-18T03:21:01Z,2018-04-18T04:26:50Z,2018-04-18T03:24:21Z,2018-04-18T03:24:21Z,4be6deb94776744071311777f0b18efb993c0cfa,,,,,0,420cdcb88ee41c15a90fce30fdec5832c03295bd,1c36d07dd432b9960f4f2d096739460b4fcf8877,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/222,,, 183135604,MDExOlB1bGxSZXF1ZXN0MTgzMTM1NjA0,232,closed,0,Fix a typo,45281,lsb,It looks like this was the only instance of it: https://github.com/simonw/datasette/search?utf8=%E2%9C%93&q=SOLite&type=,2018-04-20T18:20:04Z,2018-04-21T00:19:08Z,2018-04-21T00:19:08Z,2018-04-21T00:19:08Z,a971718d2a5e1b61b5e5c27b0ef6c4ec65616e35,,,,,0,b0f0f16a1c1f48aba62dfa30fa039dc6d3c07802,3a5d7951ce8f35118ffdd7f8d86e09b909e1218c,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/232,,, 185307407,MDExOlB1bGxSZXF1ZXN0MTg1MzA3NDA3,246,closed,0,?_shape=array and _timelimit=,9599,simonw,,2018-05-02T00:18:54Z,2018-05-02T00:20:41Z,2018-05-02T00:20:40Z,2018-05-02T00:20:40Z,690736436bac599ca042d1caa465c6d66d2651f9,,,,,0,3807d93b98573e142858c5871b8b4aadda71d28f,aa954382c3776d596f459897b0d984161293529d,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/246,,, 187668890,MDExOlB1bGxSZXF1ZXN0MTg3NjY4ODkw,257,closed,0,Refactor views,9599,simonw,"* Split out view classes from main `app.py` * Run [black](https://github.com/ambv/black) against resulting code to apply opinionated source code formatting * Run [isort](https://github.com/timothycrosley/isort) to re-order my imports Refs #256 ",2018-05-13T13:00:50Z,2018-05-14T03:04:25Z,2018-05-14T03:04:24Z,2018-05-14T03:04:24Z,2b79f2bdeb1efa86e0756e741292d625f91cb93d,,,,,0,0e2b41f3fa38456af32548c536f955c48c7637e8,4301a8f3ac69f2f54916e73cc90fcf216a9a3746,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/257,,, 187770345,MDExOlB1bGxSZXF1ZXN0MTg3NzcwMzQ1,258,closed,0,Add new metadata key persistent_urls which removes the hash from all database urls,247131,philroche,"Add new metadata key ""persistent_urls"" which removes the hash from all database urls when set to ""true"" This PR is just to gauge if this, or something like it, is something you would consider merging? I understand the reason why the substring of the hash is included in the url but there are some use cases where the urls should persist across deployments. For bookmarks for example or for scripts that use the JSON API. This is the initial commit for this feature. Tests and documentation updates to follow.",2018-05-14T09:39:18Z,2018-05-21T07:38:15Z,2018-05-21T07:38:15Z,,457fcdfc82a0260db543d49006d49f8486f233b5,,,,,0,0d77a896ccb16b34c86fdeef7738f2d056e27e02,2b79f2bdeb1efa86e0756e741292d625f91cb93d,NONE,107914493,datasette,https://github.com/simonw/datasette/pull/258,,, 188312411,MDExOlB1bGxSZXF1ZXN0MTg4MzEyNDEx,261,closed,0,Facets improvements plus suggested facets,9599,simonw,Refs #255,2018-05-16T03:52:39Z,2018-05-16T15:27:26Z,2018-05-16T15:27:25Z,2018-05-16T15:27:25Z,9959a9e4deec8e3e178f919e8b494214d5faa7fd,,,,,0,af0e91e7769891949198fb1e1760886424f34b16,2b79f2bdeb1efa86e0756e741292d625f91cb93d,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/261,,, 189318453,MDExOlB1bGxSZXF1ZXN0MTg5MzE4NDUz,277,closed,0,Refactor inspect logic,45057,russss,"This pulls the logic for inspect out into a new file which makes it a bit easier to understand. This was going to be the first part of an implementation for #276, but it seems like that might take a while so I'm going to PR a few bits of refactoring individually.",2018-05-21T08:49:31Z,2018-05-22T16:07:24Z,2018-05-22T14:03:07Z,2018-05-22T14:03:07Z,58b5a37dbbf13868a46bcbb284509434e66eca25,,,,,0,0b81e047ad27b67ba17e8c176e38a94cf4548115,d59366d36e95b973d674e62edff0168d5bdd90eb,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/277,,, 189707374,MDExOlB1bGxSZXF1ZXN0MTg5NzA3Mzc0,279,closed,0,Add version number support with Versioneer,198537,rgieseke,"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 ",2018-05-22T15:39:45Z,2018-05-22T19:35:23Z,2018-05-22T19:35:22Z,2018-05-22T19:35:22Z,49f317752cfe89c5641165a490eef49e025752a7,,,,,0,d0d19453e8623cc98a2baa2cadaaff4cd2fee973,58b5a37dbbf13868a46bcbb284509434e66eca25,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/279,,, 189723716,MDExOlB1bGxSZXF1ZXN0MTg5NzIzNzE2,280,closed,0,Build Dockerfile with recent Sqlite + Spatialite,565628,r4vi,"This solves #278 without bloating the Dockerfile too much, the image size is now 495MB (original was ~240MB) but it could be reduced significantly if we only copied the output of the compilation of spatialite and friends to /usr/local/lib, instead of the entirety of it however that will take more time. In the python code change references to `import sqlite3` to `import pysqlite3` and it should use the compiled version of sqlite3.23.1. You don't need to try/except because pysqlite3 falls back to builtin sqlite3 if there is no compiled version. ```bash $ docker run --rm -it datasette spatialite SpatiaLite version ..: 4.4.0-RC0 Supported Extensions: - 'VirtualShape' [direct Shapefile access] - 'VirtualDbf' [direct DBF access] - 'VirtualXL' [direct XLS access] - 'VirtualText' [direct CSV/TXT access] - 'VirtualNetwork' [Dijkstra shortest path] - 'RTree' [Spatial Index - R*Tree] - 'MbrCache' [Spatial Index - MBR cache] - 'VirtualSpatialIndex' [R*Tree metahandler] - 'VirtualElementary' [ElemGeoms metahandler] - 'VirtualKNN' [K-Nearest Neighbors metahandler] - 'VirtualXPath' [XML Path Language - XPath] - 'VirtualFDO' [FDO-OGR interoperability] - 'VirtualGPKG' [OGC GeoPackage interoperability] - 'VirtualBBox' [BoundingBox tables] - 'SpatiaLite' [Spatial SQL - OGC] PROJ.4 version ......: Rel. 4.9.3, 15 August 2016 GEOS version ........: 3.5.1-CAPI-1.9.1 r4246 TARGET CPU ..........: x86_64-linux-gnu the SPATIAL_REF_SYS table already contains some row(s) SQLite version ......: 3.23.1 Enter "".help"" for instructions SQLite version 3.23.1 2018-04-10 17:39:29 Enter "".help"" for instructions Enter SQL statements terminated with a "";"" spatialite> ``` ```bash $ docker run --rm -it datasette python -c ""import pysqlite3; print(pysqlite3.sqlite_version)"" 3.23.1 ```",2018-05-22T16:33:50Z,2018-06-28T11:26:23Z,2018-05-23T17:43:35Z,2018-05-23T17:43:35Z,bd30c696e18927207358ee9d63174a5c41c8297e,,,,,0,5cf78eded61cacec435b854e18f1e94511cf2da8,58b5a37dbbf13868a46bcbb284509434e66eca25,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/280,,, 189860052,MDExOlB1bGxSZXF1ZXN0MTg5ODYwMDUy,281,closed,0,Reduces image size using Alpine + Multistage (re: #278),487897,iMerica,"Hey Simon! I got the image size down from 256MB to 110MB. Seems to be working okay, but you might want to test it a bit more. Example output of `docker run --rm -it datasette` ``` Serve! files=() on port 8001 [2018-05-23 05:23:08 +0000] [1] [INFO] Goin' Fast @ http://127.0.0.1:8001 [2018-05-23 05:23:08 +0000] [1] [INFO] Starting worker [1] ``` Related: https://github.com/simonw/datasette/issues/278 ",2018-05-23T05:27:05Z,2018-05-26T02:10:38Z,2018-05-26T02:10:38Z,,0d6c8fa841ae5d28e151e4ba43370289d1e2e22c,,,,,0,3af65075c430d94647f8a1b1f215e82f563bc46f,49f317752cfe89c5641165a490eef49e025752a7,NONE,107914493,datasette,https://github.com/simonw/datasette/pull/281,,, 190901429,MDExOlB1bGxSZXF1ZXN0MTkwOTAxNDI5,293,closed,0,Support for external database connectors,11912854,jsancho-gpl,"I think it would be nice that Datasette could work with other file formats that aren't SQLite, like files with PyTables format. I've tried to accomplish that using external connectors published with entry points. These external connectors must have a structure similar to the structure [PyTables Datasette connector](https://github.com/PyTables/datasette-pytables) has.",2018-05-28T11:02:45Z,2018-09-11T14:32:45Z,2018-09-11T14:32:45Z,,ad2cb12473025ffab738d4df6bb47cd8b2e27859,,,,,0,59c94be46f9ccd806dd352fa28a6dba142d5ab82,b7257a21bf3dfa7353980f343c83a616da44daa7,FIRST_TIME_CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/293,,, 193361341,MDExOlB1bGxSZXF1ZXN0MTkzMzYxMzQx,307,closed,0,"Initial sketch of custom URL routing, refs #306",9599,simonw,See #306 for background on this.,2018-06-07T15:26:48Z,2018-06-07T15:29:54Z,2018-06-07T15:29:41Z,,8c6663d3cc8043fc6f5c796275e80b0445bdff12,,,,,0,018af454f286120452e33d2568dd40908474a8a8,a246f476b4fe490f5450836b22961bc607e6b4b0,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/307,,, 195339111,MDExOlB1bGxSZXF1ZXN0MTk1MzM5MTEx,311,closed,0,"?_labels=1 to expand foreign keys (in csv and json), refs #233",9599,simonw,"Output looks something like this: { ""rowid"": 233, ""TreeID"": 121240, ""qLegalStatus"": { ""value"" 2, ""label"": ""Private"" } ""qSpecies"": { ""value"": 16, ""label"": ""Sycamore"" } ""qAddress"": ""91 Commonwealth Ave"", ... }",2018-06-16T16:31:12Z,2018-06-16T22:20:31Z,2018-06-16T22:20:31Z,,9fe59e54ad65eb1c8239b1a78edb5219d3ab8ab0,,,,,0,40287b1ba09d6e75f0db1458fe78d8c055f128af,d0a578c0fc07b9d9208cd9de981bdf7385a26c49,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/311,,, 195413241,MDExOlB1bGxSZXF1ZXN0MTk1NDEzMjQx,315,closed,0,Streaming mode for downloading all rows as a CSV,9599,simonw,Refs #266,2018-06-18T03:06:59Z,2018-06-18T03:29:13Z,2018-06-18T03:21:02Z,2018-06-18T03:21:02Z,fc3660cfad7668dbce6ead12766e048fc1f78b11,,,,,0,b15f412e04ce9ff21983986e661fbe4396f97b43,0d7ba1ba676828dc7c8dda78ebe7921f7986fc18,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/315,,, 196526861,MDExOlB1bGxSZXF1ZXN0MTk2NTI2ODYx,322,closed,0,Feature/in operator,2691848,groundf,,2018-06-21T17:41:51Z,2018-06-21T17:45:25Z,2018-06-21T17:45:25Z,,80b7bcefa1c07202779d98c9e2214f3ebad704e3,,,,,0,1acc562a2f60a7289438df657db8fd6dd3a7391d,e7566cc59d4b02ef301054fd35fdde6c925a8e38,NONE,107914493,datasette,https://github.com/simonw/datasette/pull/322,,, 196628304,MDExOlB1bGxSZXF1ZXN0MTk2NjI4MzA0,324,closed,0,Speed up Travis by reusing pip wheel cache across builds,9599,simonw,From https://atchai.com/blog/faster-ci/ - refs #323 ,2018-06-22T03:20:08Z,2018-06-24T01:03:47Z,2018-06-24T01:03:47Z,2018-06-24T01:03:47Z,47e689a89b3f5f0969595b17d2ec59ea3caffb3b,,,,,0,7d7f5f61fd6dca3385386a657a13057680d8ddd7,e7566cc59d4b02ef301054fd35fdde6c925a8e38,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/324,,, 201075532,MDExOlB1bGxSZXF1ZXN0MjAxMDc1NTMy,341,closed,0,Bump aiohttp to fix compatibility with Python 3.7,9599,simonw,Tests failed here: https://travis-ci.org/simonw/datasette/jobs/403223333,2018-07-12T17:41:24Z,2018-07-12T18:07:38Z,2018-07-12T18:07:38Z,2018-07-12T18:07:38Z,31a5d8fa77be68d4f837f0a80a611675dce49f4b,,,,,0,8d34ed776168dcac530859c51f22e8b48829a513,130dc8823ebdcc1834fc7c4a03c996b13fc1e444,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/341,,, 201451332,MDExOlB1bGxSZXF1ZXN0MjAxNDUxMzMy,345,closed,0,Allow app names for `datasette publish heroku`,45057,russss,"Lets you supply the `-n` parameter for Heroku deploys, which also lets you update existing Heroku deployments.",2018-07-14T13:12:34Z,2018-07-14T14:09:54Z,2018-07-14T14:04:44Z,2018-07-14T14:04:44Z,58fec99ab0a31bcf25968f2aa05d37de8139b83c,,,,,0,864cf8c1b01a581d6dc9711efe7cb4f2a6ac87e8,31a5d8fa77be68d4f837f0a80a611675dce49f4b,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/345,,, 204029142,MDExOlB1bGxSZXF1ZXN0MjA0MDI5MTQy,349,closed,0,"publish_subcommand hook + default plugins mechanism, used for publish heroku/now",9599,simonw,"This change introduces a new plugin hook, publish_subcommand, which can be used to implement new subcommands for the ""datasette publish"" command family. I've used this new hook to refactor out the ""publish now"" and ""publish heroku"" implementations into separate modules. I've also added unit tests for these two publishers, mocking the subprocess.call and subprocess.check_output functions. As part of this, I introduced a mechanism for loading default plugins. These are defined in the new ""default_plugins"" list inside datasette/app.py Closes #217 (Plugin support for ""datasette publish"") Closes #348 (Unit tests for ""datasette publish"") Refs #14, #59, #102, #103, #146, #236, #347",2018-07-26T05:03:22Z,2018-07-26T05:28:54Z,2018-07-26T05:16:00Z,2018-07-26T05:16:00Z,dbbe707841973b50a76d2703003ae2c40e7ad1fd,,,,,0,7abdfd55daa9c617da02fd768b8e7476e89f0f94,3ac21c749881d0fb1c35b0f9b7a819e29f61c5c1,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/349,,, 204851511,MDExOlB1bGxSZXF1ZXN0MjA0ODUxNTEx,353,closed,0,render_cell(value) plugin hook,9599,simonw,Closes #352.,2018-07-30T15:57:08Z,2018-08-05T00:14:57Z,2018-08-05T00:14:57Z,2018-08-05T00:14:57Z,4ac913224061f2dc4f673efab1a5ac6bc748854f,,,,,0,2e538d924f3b17f82e94e8e8b5a05abcf9e1e697,295d005ca48747faf046ed30c3c61e7563c61ed2,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/353,,, 205770996,MDExOlB1bGxSZXF1ZXN0MjA1NzcwOTk2,1,closed,0,Make .indexes compatible with older SQLite versions,9599,simonw,Older SQLite versions return a different set of columns from the PRAGMA we are using.,2018-08-02T15:17:05Z,2018-08-02T15:17:30Z,2018-08-02T15:17:30Z,2018-08-02T15:17:30Z,741e8f7fe563e18fe9a12ac1ce38157e8c903505,,,,,0,9e674311065b8372f0a93becc8e7357ceffd353b,0aa28293adedc488eb9107dc52b5e9a124887fbd,OWNER,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/1,,, 206863803,MDExOlB1bGxSZXF1ZXN0MjA2ODYzODAz,358,closed,0,"Bump versions of pytest, pluggy and beautifulsoup4",9599,simonw,,2018-08-08T00:44:38Z,2018-08-08T01:11:13Z,2018-08-08T01:11:13Z,2018-08-08T01:11:13Z,e1db8194e8c1d7f361fd0c1c3fc1b91d6aa920e5,,,,,0,848ed0e0420d2e8c95a96b4cf73082da4c65d8f6,fe5b6ea95a973534fe8a44907c0ea2449aae7602,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/358,,, 208719043,MDExOlB1bGxSZXF1ZXN0MjA4NzE5MDQz,361,closed,0," Import pysqlite3 if available, closes #360 ",9599,simonw,,2018-08-16T00:52:21Z,2018-08-16T00:58:57Z,2018-08-16T00:58:57Z,2018-08-16T00:58:57Z,aae49fef3b75848628d824077ec063834e3e5167,,,,,0,da41daa168af8f29a1beb5278aed833cf3dc48ce,e1db8194e8c1d7f361fd0c1c3fc1b91d6aa920e5,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/361,,, 211860706,MDExOlB1bGxSZXF1ZXN0MjExODYwNzA2,363,open,0,Search all apps during heroku publish,436032,kevboh,Adds the `-A` option to include apps from all organizations when searching app names for publish.,2018-08-29T19:25:10Z,2018-08-31T14:39:45Z,,,b684b04c30f6b8779a3d11f7599329092fb152f3,,,,,0,2dd363e01fa73b24ba72f539c0a854bc901d23a7,b7257a21bf3dfa7353980f343c83a616da44daa7,FIRST_TIME_CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/363,,, 214653641,MDExOlB1bGxSZXF1ZXN0MjE0NjUzNjQx,364,open,0,Support for other types of databases using external connectors,11912854,jsancho-gpl,"This PR is related to #293, but now all commits have been merged. The purpose is to support other file formats that aren't SQLite, like files with PyTables format. I've tried to accomplish that using external connectors published with entry points. The modifications in the original datasette code are minimal and many are in a separated file.",2018-09-11T14:31:47Z,2018-09-11T14:31:47Z,,,d84f3b1f585cb52b58aed0401c34214de2e8b47b,,,,,0,592fd05f685859b271f0305c2fc8cdb7da58ebfb,b7257a21bf3dfa7353980f343c83a616da44daa7,FIRST_TIME_CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/364,,, 216651317,MDExOlB1bGxSZXF1ZXN0MjE2NjUxMzE3,365,closed,0,fix small doc typo,418191,jaywgraves,,2018-09-19T14:02:02Z,2019-12-19T02:30:33Z,2018-09-19T17:15:43Z,2018-09-19T17:15:43Z,1bcd54a834a2f9730d21095df855f6708c85c200,,,,,0,d3fb6a80c5878c73befa2a35e11a9ce28a6e1ab6,b7257a21bf3dfa7353980f343c83a616da44daa7,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/365,,, 226314862,MDExOlB1bGxSZXF1ZXN0MjI2MzE0ODYy,367,closed,0,Mark codemirror files as vendored,48517,jaap3,"GitHub lists datasette as a Javascript project, primarily because of the vendored codemirror files. This is somewhat confusing when you're looking for datasette, knowing it's written in Python. Luckily it's possible exclude certain files from GitHub's code statistics: https://github.com/github/linguist#using-gitattributes",2018-10-27T18:41:25Z,2019-05-03T21:12:09Z,2019-05-03T21:11:20Z,2019-05-03T21:11:20Z,66c87cee0c7344c7877373c60b180c766c206101,,,,,0,8e23e4548eedd58b0ff0e69c9a5010fc1a0136d5,6b398c2971801d9a20cfdb7998f59020d5534e22,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/367,,, 226315513,MDExOlB1bGxSZXF1ZXN0MjI2MzE1NTEz,368,closed,0,Update installation instructions,48517,jaap3,"I was writing this as a response to your tweet, but decided I might just make it a pull request. I feel like it might be confusing to those unfamiliar with Python's `-m` flag and the built-in `venv` module to omit the space between the flag and its argument. By adding a space and prefixing the second occurrence of `venv` with a `./` it's maybe a bit clearer what the arguments are and what they do. By also using `python3 -m pip` it becomes even clearer that `-m` is a special flag that makes the python executable do neat things.",2018-10-27T18:52:31Z,2019-05-03T18:18:43Z,2019-05-03T18:18:42Z,2019-05-03T18:18:42Z,f853d5592ec7f901a50381de22a26a9ab098f885,,,,,0,8f8d6072820a13e2c698d9c326998b63810779c6,553314dcd699a84aa7cc806377150ca0d57a6024,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/368,,, 232172106,MDExOlB1bGxSZXF1ZXN0MjMyMTcyMTA2,389,closed,0,Bump dependency versions,9599,simonw,,2018-11-20T02:23:12Z,2019-11-13T19:13:41Z,2019-11-13T19:13:41Z,,9194c0165aef411e0784ba49939b1005306f1f38,,,,,0,f8349b45916e68d2f89c57694bd0e6afaf1bd508,5e3a432a0caa23837fa58134f69e2f82e4f632a6,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/389,,, 235194286,MDExOlB1bGxSZXF1ZXN0MjM1MTk0Mjg2,390,closed,0,tiny typo in customization docs,418191,jaywgraves,was looking to add some custom templates to my use of datasette and saw this small typo.,2018-12-01T13:44:42Z,2019-12-19T02:30:35Z,2018-12-16T21:32:56Z,2018-12-16T21:32:56Z,ed78922ae38b51513319b60ac39990b7c2aca810,,,,,0,f8c01373dad3b8dcd10577a2e541f88ef34c77bc,3de8fac1d322cbab6c8c55899e0e8511b36337d0,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/390,,, 241418443,MDExOlB1bGxSZXF1ZXN0MjQxNDE4NDQz,392,closed,0,Fix some regex DeprecationWarnings,9599,simonw,,2018-12-29T02:10:28Z,2018-12-29T02:22:28Z,2018-12-29T02:22:28Z,2018-12-29T02:22:28Z,a2bfcfc1b1c60dac3526364af17c2fa2f3d41a0a,,,,,0,d245982aedaf7c54bf41d60ea7f0e0cf419c2b2f,eac08f0dfc61a99e8887442fc247656d419c76f8,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/392,,, 247576942,MDExOlB1bGxSZXF1ZXN0MjQ3NTc2OTQy,4,closed,0,Fts5,9599,simonw,,2019-01-25T06:54:05Z,2019-01-25T06:54:33Z,2019-01-25T06:54:33Z,2019-01-25T06:54:33Z,42b2b4b785e3163371e92a9cc085bc47e7c83107,,,,,0,7f205d2308443557bcaec497b3d0badc0dc26f06,ccb2a1e729780689188005a52c362b7e963f71e8,OWNER,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/4,,, 247861419,MDExOlB1bGxSZXF1ZXN0MjQ3ODYxNDE5,5,closed,0,Run Travis tests against Python 3.8-dev,9599,simonw,,2019-01-26T02:30:55Z,2019-01-26T02:37:54Z,2019-01-26T02:37:54Z,2019-01-26T02:37:54Z,3a944d0c077c203277f13dd69387eb84b5c88d3e,,,,,0,b2f81e86074526d6e4dc9e39e791deff195669de,9a4d1ff0a268c7df7839389acd92d48752d24b95,OWNER,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/5,,, 247923347,MDExOlB1bGxSZXF1ZXN0MjQ3OTIzMzQ3,404,closed,0,Experiment: run Jinja in async mode,9599,simonw,"See http://jinja.pocoo.org/docs/2.10/api/#async-support Tests all pass. Have not checked performance difference yet. Creating pull request to run tests in Travis. This is not ready to merge - I'm not yet sure if this is a good idea.",2019-01-27T00:28:44Z,2019-11-12T05:02:18Z,2019-11-12T05:02:13Z,,773bcac907d17b16eef604ad943837da39a10090,,,,,0,dd7f24a47f660e2f0fc1e97a13d28908c28dc245,909cc8fbdfc9c05e447f40e9a73489809602c3cd,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/404,,, 249680944,MDExOlB1bGxSZXF1ZXN0MjQ5NjgwOTQ0,9,closed,0,:pencil: Updates my_database.py to my_database.db,50527,jefftriplett,I noticed that both `.py` and `.db` were used in the docs and assumed you'd prefer `.db`. ,2019-02-01T17:35:43Z,2019-02-24T03:55:04Z,2019-02-24T03:55:04Z,2019-02-24T03:55:04Z,c5068a0972651b3e359ebc2d6c1486b8b7d2c242,,,,,0,1ad604fbbd3311f041357190796a3613c0c729d1,441c131db5cc68e197db19f0623ff8a96c90c3ff,CONTRIBUTOR,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/9,,, 250628275,MDExOlB1bGxSZXF1ZXN0MjUwNjI4Mjc1,407,closed,0,Heroku --include-vcs-ignore,9599,simonw,"Should mean `datasette publish heroku` can work under Travis, unlike this failure: https://travis-ci.org/simonw/fivethirtyeight-datasette/builds/488047550 ``` 2.25s$ datasette publish heroku fivethirtyeight.db -m metadata.json -n fivethirtyeight-datasette tar: unrecognized option '--exclude-vcs-ignores' Try 'tar --help' or 'tar --usage' for more information. ▸ Command failed: tar cz -C /tmp/tmpuaxm7i8f --exclude-vcs-ignores --exclude ▸ .git --exclude .gitmodules . > ▸ /tmp/f49440e0-1bf3-4d3f-9eb0-fbc2967d1fd4.tar.gz ▸ tar: unrecognized option '--exclude-vcs-ignores' ▸ Try 'tar --help' or 'tar --usage' for more information. ▸ The command ""datasette publish heroku fivethirtyeight.db -m metadata.json -n fivethirtyeight-datasette"" exited with 0. ``` The fix for that issue is to call the heroku command like this: heroku builds:create -a app_name --include-vcs-ignore ",2019-02-06T04:06:20Z,2019-02-06T04:31:30Z,2019-02-06T04:15:47Z,2019-02-06T04:15:46Z,195a5b36349d0d24a6bbb758cebb719b6de303b6,,,,,0,01978ddb9682c828cafddaf9ca625e08ba3ba3a4,436b8bc1d17c2ab415800ab209204f94e7f7929e,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/407,,, 255658112,MDExOlB1bGxSZXF1ZXN0MjU1NjU4MTEy,12,closed,0,"Support for numpy types, closes #11",9599,simonw,,2019-02-24T03:57:32Z,2019-02-24T04:02:20Z,2019-02-24T04:02:20Z,2019-02-24T04:02:20Z,e615d22c5564ea1f32abb086088b2700110be10a,,,,,0,7c20e60685088d6da0739749305215790ca8375a,c5068a0972651b3e359ebc2d6c1486b8b7d2c242,OWNER,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/12,,, 255725057,MDExOlB1bGxSZXF1ZXN0MjU1NzI1MDU3,413,closed,0,Update spatialite.rst,28597217,joelondon,a line of sql added to create the idx_ in the python recipe,2019-02-25T00:08:35Z,2019-03-15T05:06:45Z,2019-03-15T05:06:45Z,2019-03-15T05:06:45Z,9e8c36793bfbb17c2f67371cc7f9aa8b9202fdc4,,,,,0,e87565604a169a34eadadfc99e96a8f503123e8c,1f91065b20cbc691f464bccfd8eef7d1ce4b14a8,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/413,,, 261418285,MDExOlB1bGxSZXF1ZXN0MjYxNDE4Mjg1,416,closed,0,URL hashing now optional: turn on with --config hash_urls:1 (#418),9599,simonw,,2019-03-15T04:26:06Z,2019-03-17T22:55:04Z,2019-03-17T22:55:04Z,2019-03-17T22:55:04Z,6f6d0ff2b41f1cacaf42287b1b230b646bcba9ee,,,,,0,0d02a99c9665669540aebff981246d8c743072b3,afe9aa3ae03c485c5d6652741438d09445a486c1,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/416,,, 266035382,MDExOlB1bGxSZXF1ZXN0MjY2MDM1Mzgy,424,closed,0,Column types in inspected metadata,45057,russss,"This PR does two things: * Adds the sqlite column type for each column to the inspected table info. * Stops binary columns from being rendered to HTML, unless a plugin handles it. There's a bit more detail in the changeset descriptions. These changes are intended as a precursor to a plugin which adds first-class support for Spatialite geographic primitives, and perhaps more useful geo-stuff.",2019-03-31T18:46:33Z,2019-04-29T18:30:50Z,2019-04-29T18:30:46Z,,a332d4e0b3fed7165a22880430664f1c3a00963d,,,,,0,92e7b8c67fe5bcd484f19576f20c9235aca9050b,0209a0a344503157351e625f0629b686961763c9,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/424,,, 269364924,MDExOlB1bGxSZXF1ZXN0MjY5MzY0OTI0,426,closed,0,Upgrade to Jinja2==2.10.1,9599,simonw,"https://nvd.nist.gov/vuln/detail/CVE-2019-10906 This is only a security issue of concern if evaluating templates from untrusted sources, which isn't something I would ever expect a Datasette user to do.",2019-04-10T23:03:08Z,2019-04-22T21:23:22Z,2019-04-10T23:13:31Z,2019-04-10T23:13:31Z,9cd3b44277e6a8ea9273bf659379ff0414e0b8ae,,,,,0,629453383c7f911eddfc891f22c39b7d6e9661aa,78e45ead4d771007c57b307edf8fc920101f8733,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/426,,, 270191084,MDExOlB1bGxSZXF1ZXN0MjcwMTkxMDg0,430,closed,0,"?_where= parameter on table views, closes #429",9599,simonw,,2019-04-13T01:15:09Z,2019-04-13T01:37:23Z,2019-04-13T01:37:23Z,2019-04-13T01:37:23Z,bc6a9b45646610f362b4287bc4110440991aa4d6,,,,,0,3ee087c7b60da7ec3e5d2f73611fc6ea99ff82fc,e11cb4c66442abca2a6b6159521a6cf4da8739c1,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/430,,, 270251021,MDExOlB1bGxSZXF1ZXN0MjcwMjUxMDIx,432,closed,0,"Refactor facets to a class and new plugin, refs #427",9599,simonw,WIP for #427,2019-04-13T20:04:45Z,2019-05-03T00:04:24Z,2019-05-03T00:04:24Z,,b78bc19269ed83b054a60c79c4fe08f4ca943942,,,,,0,5c198f7ca5d2aff49180820271ba8d06b79aefb1,9c77e6e355ec718d76178a7607721d10a66b6aef,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/432,,, 271338405,MDExOlB1bGxSZXF1ZXN0MjcxMzM4NDA1,434,closed,0,"""datasette publish cloudrun"" command to publish to Google Cloud Run",10352819,rprimet,"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? ",2019-04-17T14:41:18Z,2019-05-03T21:50:44Z,2019-05-03T13:59:02Z,2019-05-03T13:59:02Z,75a21fc2a136ccfc9da7bbf521cf288e63c9707f,,,,,0,74c20d0d2eac13892ac20db0e66fcb3437544aa6,bf229c9bd88179c8ec16bd65fd4fb28ab4241c2e,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/434,,, 274174614,MDExOlB1bGxSZXF1ZXN0Mjc0MTc0NjE0,437,closed,0,Add inspect and prepare_sanic hooks,45057,russss,"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",2019-04-28T11:53:34Z,2019-06-24T16:38:57Z,2019-06-24T16:38:56Z,,7aeaac7c478acf572bda61bdaa6ac3247dc15811,,,,,0,f33a0a63a7442f0b665320ac3e2eb55de315f1f7,11b352b4d52fd02a422776edebb14f12e4994d3b,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/437,,, 274313625,MDExOlB1bGxSZXF1ZXN0Mjc0MzEzNjI1,439,closed,0,[WIP] Add primary key to the extra_body_script hook arguments,45057,russss,"This allows the row to be identified on row pages. The context here is that I want to access the row's data to plot it on a map. I considered passing the entire template context through to the hook function. This would expose the actual row data and potentially avoid a further fetch request in JS, but it does make the plugin API a lot more leaky. (At any rate, using the selected row data is tricky in my case because of Spatialite's infuriating custom binary representation...)",2019-04-29T10:08:23Z,2019-05-01T09:58:32Z,2019-05-01T09:58:30Z,,b3cbcfef4d11d2741cf00861734d726a4730afe5,,,,,0,76b2c8fa406063b436155a7d8995e07b7e718c13,11b352b4d52fd02a422776edebb14f12e4994d3b,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/439,,, 274468836,MDExOlB1bGxSZXF1ZXN0Mjc0NDY4ODM2,441,closed,0,Add register_output_renderer hook,45057,russss,"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",2019-04-29T18:03:21Z,2019-05-01T23:01:57Z,2019-05-01T23:01:57Z,2019-05-01T23:01:57Z,cf406c075433882b656e340870adf7757976fa4c,,,,,0,c9f941f06eb0268841de49407725917c74a8a2dc,11b352b4d52fd02a422776edebb14f12e4994d3b,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/441,,, 274478761,MDExOlB1bGxSZXF1ZXN0Mjc0NDc4NzYx,442,closed,0,Suppress rendering of binary data,45057,russss,"Binary columns (including spatialite geographies) get shown as ugly binary strings in the HTML by default. Nobody wants to see that mess. Show the size of the column in bytes instead. If you want to decode the binary data, you can use a plugin to do it.",2019-04-29T18:36:41Z,2019-05-03T18:26:48Z,2019-05-03T16:44:49Z,2019-05-03T16:44:49Z,d555baf508de71a5e3dc9a9aed2c13f6f202956d,,,,,0,bbbd9ea5ad774f088bd963106fa5756bfd77c799,11b352b4d52fd02a422776edebb14f12e4994d3b,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/442,,, 275275610,MDExOlB1bGxSZXF1ZXN0Mjc1Mjc1NjEw,443,closed,0,Pass view_name to extra_body_script hook,45057,russss,"At the moment it's not easy to tell whether the hook is being called in (for example) the row or table view, as in both cases the `database` and `table` parameters are provided. This passes the `view_name` added in #441 to the `extra_body_script` hook.",2019-05-02T08:38:36Z,2019-05-03T13:12:20Z,2019-05-03T13:12:20Z,2019-05-03T13:12:20Z,bf229c9bd88179c8ec16bd65fd4fb28ab4241c2e,,,,,0,83b6b82d4787b30d34eb26c22ad1ff9c5c118134,efc93b8ab5a21e3802f75f08d5e41409f5684b5d,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/443,,, 275281307,MDExOlB1bGxSZXF1ZXN0Mjc1MjgxMzA3,444,closed,0,Add a max-line-length setting for flake8,45057,russss,"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).",2019-05-02T08:58:57Z,2019-05-04T09:44:48Z,2019-05-03T13:11:28Z,2019-05-03T13:11:28Z,470cf0b05d4fda0d2563f81c7e32af13fe346ccc,,,,,0,4f0d265951d7e95920298b46eff39bb9cc783984,efc93b8ab5a21e3802f75f08d5e41409f5684b5d,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/444,,, 275558612,MDExOlB1bGxSZXF1ZXN0Mjc1NTU4NjEy,445,closed,0,"Extract facet code out into a new plugin hook, closes #427",9599,simonw,"Datasette previously only supported one type of faceting: exact column value counting. With this change, faceting logic is extracted out into one or more separate classes which can implement other patterns of faceting - this is discussed in #427, but potential upcoming facet types include facet-by-date, facet-by-JSON-array, facet-by-many-2-many and more. A new plugin hook, register_facet_classes, can be used by plugins to add in additional facet classes. Each class must implement two methods: suggest(), which scans columns in the table to decide if they might be worth suggesting for faceting, and facet_results(), which executes the facet operation and returns results ready to be displayed in the UI.",2019-05-03T00:02:41Z,2019-05-03T18:17:18Z,2019-05-03T00:11:27Z,2019-05-03T00:11:27Z,ea66c45df96479ef66a89caa71fff1a97a862646,,,,,0,1b47d4d8736627c260eb4e8303e552b0e9620a01,efc93b8ab5a21e3802f75f08d5e41409f5684b5d,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/445,,, 275801463,MDExOlB1bGxSZXF1ZXN0Mjc1ODAxNDYz,447,closed,0,Use dist: xenial and python: 3.7 on Travis,9599,simonw,,2019-05-03T18:07:07Z,2019-05-03T18:17:05Z,2019-05-03T18:16:53Z,2019-05-03T18:16:53Z,553314dcd699a84aa7cc806377150ca0d57a6024,,,,,0,cd22e389d09b4fd5ed28205ba38a20faf1ed14f1,01b3de5b66742f0f661183e9e2ef66be3600e831,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/447,,, 275861559,MDExOlB1bGxSZXF1ZXN0Mjc1ODYxNTU5,449,closed,0,Apply black to everything,9599,simonw,"I've been hesitating on this for literally months, because I'm not at all excited about the giant diff that will result. But I've been using black on many of my other projects (most actively [sqlite-utils](https://github.com/simonw/sqlite-utils)) and the productivity boost is undeniable: I don't have to spend a single second thinking about code formatting any more! So it's worth swallowing the one-off pain and moving on in a new, black-enabled world.",2019-05-03T21:57:26Z,2019-05-04T02:17:14Z,2019-05-04T02:15:15Z,2019-05-04T02:15:15Z,35d6ee2790e41e96f243c1ff58be0c9c0519a8ce,,,,,0,9683aeb2394a4b7e44499b8a0240af3baafda832,66c87cee0c7344c7877373c60b180c766c206101,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/449,,, 275909197,MDExOlB1bGxSZXF1ZXN0Mjc1OTA5MTk3,450,closed,0,Coalesce hidden table count to 0,45057,russss,"For some reason I'm hitting a `None` here with a FTS table. I'm not entirely sure why but this makes the logic work the same as with non-hidden tables.",2019-05-04T09:37:10Z,2019-05-11T18:10:09Z,2019-05-11T18:10:09Z,,5918489a2a2f14b58c5c71773a9d4fb6bb0e3e0a,,,,,0,f81d9df985e8d054fc16ab91f72878fe71656354,55643430f7ac8d27e99b00e7cf79db741003e811,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/450,,, 275923066,MDExOlB1bGxSZXF1ZXN0Mjc1OTIzMDY2,452,open,0,SQL builder utility classes,45057,russss,"This adds a straightforward set of classes to aid in the construction of SQL queries. My plan for this was to allow plugins to manipulate the Datasette-generated SQL in a more structured way. I'm not sure that's going to work, but I feel like this is still a step forward - it reduces the number of intermediate variables in `TableView.data` which aids readability, and also factors out a lot of the boring string concatenation. There are a fair number of minor structure changes in here too as I've tried to make the ordering of `TableView.data` a bit more logical. As far as I can tell, I haven't broken anything...",2019-05-04T13:57:47Z,2019-05-04T14:03:04Z,,,45e7460d78c3f87c01f2e9e142cb7f646b23b156,,,,,0,c63762280d3bd66ad6ea24933dafe218861efef2,55643430f7ac8d27e99b00e7cf79db741003e811,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/452,,, 277524072,MDExOlB1bGxSZXF1ZXN0Mjc3NTI0MDcy,458,closed,0,setup: add tests to package exclusion,7725188,hellerve,"This PR fixes #456 by adding `tests` to the package exclusion list. Cheers",2019-05-09T19:47:21Z,2020-07-21T01:14:42Z,2019-05-10T01:54:51Z,2019-05-10T01:54:51Z,9f8d9fe262866ff3463f8e61214dcc6897bd5a9c,,,,,0,9c65ff1ba8c855e4ade5bc7ae29a69215b3979d0,f825e2012109247fa246e2b938f8174069e574f1,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/458,,, 280204276,MDExOlB1bGxSZXF1ZXN0MjgwMjA0Mjc2,479,closed,0,doc typo fix,98555,IgnoredAmbience,Fix typo in performance doc page,2019-05-19T22:54:25Z,2019-05-20T16:42:29Z,2019-05-20T16:42:29Z,2019-05-20T16:42:29Z,70d2858067d3c4da0e17c1d39e03de89190e94b6,,,,,0,708e13ab87f8c8620796c3e8f2b0aa1b2fc26875,e513a80afba30bca9eeebd71c5e6aa6d8a811f33,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/479,,, 280205502,MDExOlB1bGxSZXF1ZXN0MjgwMjA1NTAy,480,closed,0,Split pypi and docker travis tasks,813732,glasnt,"Resolves #478 This *should* work, but because this is a change that'll only really be testable on a) this repo, b) master branch, this might fail fast if I didn't get the configurations right. Looking at #478 it should just be as simple as splitting out the docker and pypi processes into separate jobs, but it might end up being more complicated than that, depending on what pre-processes the pypi deployment needs, and how travisci treats deployment steps without scripts in general. ",2019-05-19T23:14:37Z,2019-07-07T20:03:20Z,2019-07-07T20:03:20Z,2019-07-07T20:03:20Z,d95048031edb02bbc9892879507f55a4f29c5459,,,4471010,Datasette 0.29,0,8b667898b6c2dd57fa68310c6d3c62d77b68f321,4246e138f9512686413e97878659ef953337e57b,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/480,,, 284390197,MDExOlB1bGxSZXF1ZXN0Mjg0MzkwMTk3,497,closed,0,Upgrade pytest to 4.6.1,9599,simonw,,2019-06-03T01:45:34Z,2019-06-03T02:06:32Z,2019-06-03T02:06:27Z,2019-06-03T02:06:27Z,5e8fbf7f6fbc0b63d0479da3806dd9ccd6aaa945,,,,,0,bf2ab0306e6d3ce7524fecf015e2cec7ae45e994,803f750309bf0cd5b7501228c1efcf9a35686d74,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/497,,, 284743794,MDExOlB1bGxSZXF1ZXN0Mjg0NzQzNzk0,500,closed,0,Fix typo in install step: should be install -e,32314,tmcw,,2019-06-03T21:50:51Z,2019-06-11T18:48:43Z,2019-06-11T18:48:40Z,2019-06-11T18:48:40Z,aa911122feab13f8e65875c98edb00fd3832b7b8,,,,,0,ff98f44d7f10ff65fc172df9155c77f169ab4c7f,5e8fbf7f6fbc0b63d0479da3806dd9ccd6aaa945,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/500,,, 285698310,MDExOlB1bGxSZXF1ZXN0Mjg1Njk4MzEw,501,closed,0,Test against Python 3.8-dev using Travis,9599,simonw,,2019-06-06T08:37:53Z,2019-11-11T03:23:29Z,2019-11-11T03:23:29Z,,1aac0cf0ab962060dd5cff19b8b179bb7fa0f00b,,,,,0,a5defb684fcc734f6325ca08beef9f49c3e7a298,5e8fbf7f6fbc0b63d0479da3806dd9ccd6aaa945,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/501,,, 290897104,MDExOlB1bGxSZXF1ZXN0MjkwODk3MTA0,518,closed,0,Port Datasette from Sanic to ASGI + Uvicorn,9599,simonw,"Most of the code here was fleshed out in comments on #272 (Port Datasette to ASGI) - this pull request will track the final pieces: - [x] Update test harness to more correctly simulate the `raw_path` issue - [x] Use `raw_path` so table names containing `/` can work correctly - [x] Bug: JSON not served with correct content-type - [x] Get ?_trace=1 working again - [x] Replacement for `@app.listener(""before_server_start"")` - [x] Bug: `/fixtures/table%2Fwith%2Fslashes.csv?_format=json` downloads as CSV - [x] Replace Sanic request and response objects with my own classes, so I can remove Sanic dependency - [x] Final code tidy-up before merging to master",2019-06-23T15:18:42Z,2019-06-24T13:42:50Z,2019-06-24T03:13:09Z,2019-06-24T03:13:09Z,ba8db9679f3bd2454c9e76e7e6c352126848b57a,9599,simonw,3268330,Datasette 1.0,0,b794554a26ddc81bd772c4422d80d5ee863e92b0,35429f90894321eda7f2db31b9ea7976f31f73ac,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/518,,, 290971295,MDExOlB1bGxSZXF1ZXN0MjkwOTcxMjk1,524,open,0,"Sort commits using isort, refs #516",9599,simonw,Also added a lint unit test to ensure they stay sorted. #516,2019-06-24T05:04:48Z,2019-06-24T05:45:00Z,,,4e92ebe00a058e02b2d7543cff60ac2f78aa97c7,,,,,0,dafae70ee7f74ce79b541a94385172be3ad0de83,cdd24f3eaa207f67d948c1876725b0f84654a623,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/524,,, 291534596,MDExOlB1bGxSZXF1ZXN0MjkxNTM0NTk2,529,closed,0,Use keyed rows - fixes #521,1383872,nathancahill,"Supports template syntax like this: ``` {% for row in display_rows %}

{{ row[""First_Name""] }} {{ row[""Last_Name""] }}

... ```",2019-06-25T12:33:48Z,2019-06-25T12:35:07Z,2019-06-25T12:35:07Z,,3be9759418fdfe4a8ae8aec46fc2a937d45332d2,,,,,0,312e3394bd9f3eaef606fbe37eb409ec7462baaf,9e97b725f11be3f4dca077fe5569078a62ec2761,NONE,107914493,datasette,https://github.com/simonw/datasette/pull/529,,, 292879204,MDExOlB1bGxSZXF1ZXN0MjkyODc5MjA0,32,closed,0,db.add_foreign_keys() method,9599,simonw,"Refs #31. Still TODO: - [x] Unit tests - [x] Documentation",2019-06-28T15:40:33Z,2019-06-29T06:27:39Z,2019-06-29T06:27:39Z,2019-06-29T06:27:39Z,997d8758fc8992be93d5984556e5b9e3bad4205f,,,,,0,fc81588cc31df58374c996884c67cedd98a06f4a,86bd2bba689e25f09551d611ccfbee1e069e5b66,OWNER,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/32,,, 293117183,MDExOlB1bGxSZXF1ZXN0MjkzMTE3MTgz,34,closed,0,sqlite-utils index-foreign-keys / db.index_foreign_keys(),9599,simonw,"Refs #33 - [x] `sqlite-utils index-foreign-keys` command - [x] `db.index_foreign_keys()` method - [x] unit tests - [x] documentation",2019-06-30T16:43:40Z,2019-06-30T23:50:55Z,2019-06-30T23:50:55Z,2019-06-30T23:50:54Z,e8f887ef4a0977243811b90bc2ce9aed9d2c206a,,,,,0,d82b000e3d55067516e2ce42f131cf4695e80dca,0fe3b38290e1bb2d92746d90318d8662b57218bd,OWNER,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/34,,, 293962405,MDExOlB1bGxSZXF1ZXN0MjkzOTYyNDA1,533,closed,0,"Support cleaner custom templates for rows and tables, closes #521",9599,simonw,"- [x] Rename `_rows_and_columns.html` to `_table.html` - [x] Unit test - [x] Documentation",2019-07-03T00:40:18Z,2019-07-03T03:23:06Z,2019-07-03T03:23:06Z,2019-07-03T03:23:06Z,b9ede4c1898616512b5d204f9c941deff473cbe4,,,,,0,1add905532b7bc4f681318b8f22b9b74cca2b2a0,76882830548e16905348ee75acb0044cb8e1fd20,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/533,,, 293992382,MDExOlB1bGxSZXF1ZXN0MjkzOTkyMzgy,535,closed,0,"Added asgi_wrapper plugin hook, closes #520",9599,simonw,,2019-07-03T03:58:00Z,2019-07-03T04:06:26Z,2019-07-03T04:06:26Z,2019-07-03T04:06:26Z,4d2fdafe39159c9a8aa83f7e9bfe768bbbbb56a3,,,,,0,93bfa26bfd25a3cc911d637596e364d3474325bd,b9ede4c1898616512b5d204f9c941deff473cbe4,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/535,,, 293994443,MDExOlB1bGxSZXF1ZXN0MjkzOTk0NDQz,536,closed,0,"Switch to ~= dependencies, closes #532",9599,simonw,,2019-07-03T04:12:16Z,2019-07-03T04:32:55Z,2019-07-03T04:32:55Z,2019-07-03T04:32:55Z,f0d32da0a9af87bcb15e34e35424f0c0053be83a,,,,,0,391d109dc3f9230dc4ee4afd20041e480e90e739,4d2fdafe39159c9a8aa83f7e9bfe768bbbbb56a3,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/536,,, 294400446,MDExOlB1bGxSZXF1ZXN0Mjk0NDAwNDQ2,539,closed,0,Secret plugin configuration options,9599,simonw,Refs #538 ,2019-07-04T03:21:20Z,2019-07-04T05:36:45Z,2019-07-04T05:36:45Z,2019-07-04T05:36:45Z,a2d45931935f6bb73605a94afedf9e78308c95d6,,,,,0,fd6164b03ebe450a9a00df2e5be2dc7bbfbd9a3f,f0d32da0a9af87bcb15e34e35424f0c0053be83a,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/539,,, 294992578,MDExOlB1bGxSZXF1ZXN0Mjk0OTkyNTc4,542,closed,0,extra_template_vars plugin hook,9599,simonw,Refs #541,2019-07-05T22:19:17Z,2019-07-06T00:05:57Z,2019-07-06T00:05:56Z,2019-07-06T00:05:56Z,fcfcae21e67cc15090942b1d2a47b5f016279337,,,,,0,e81c7abb40c8ecf8d9d23cbcdde045e0a3b4ab14,a18e0964ecd04593f227616538a80dee08768057,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/542,,, 295065796,MDExOlB1bGxSZXF1ZXN0Mjk1MDY1Nzk2,544,closed,0,--plugin-secret option,9599,simonw,"Refs #543 - [x] Zeit Now v1 support - [x] Solve escaping of ENV in Dockerfile - [x] Heroku support - [x] Unit tests - [x] Cloud Run support - [x] Documentation ",2019-07-06T22:18:20Z,2019-07-08T02:06:31Z,2019-07-08T02:06:31Z,2019-07-08T02:06:31Z,973f8f139df6ad425354711052cfc2256de2e522,,,4471010,Datasette 0.29,0,ccf80604e931fba1893b5bab11de386fed82009e,fcfcae21e67cc15090942b1d2a47b5f016279337,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/544,,, 295127213,MDExOlB1bGxSZXF1ZXN0Mjk1MTI3MjEz,546,open,0,Facet by delimiter,9599,simonw,Refs #510,2019-07-07T20:06:05Z,2019-11-18T23:46:01Z,,,68a6fb1a576a747b868771d00a10753f35aaa0cf,,,,,0,47ac6c6e46da16716d295d7cda8f79cd0663ca5e,a9909c29ccac771c23c2ef22b89d10697b5256b9,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/546,,, 295711504,MDExOlB1bGxSZXF1ZXN0Mjk1NzExNTA0,554,closed,0,Fix static mounts using relative paths and prevent traversal exploits,3243482,abdusco,"While debugging why my static mounts using a relative path (`--static mystatic:rel/path/to/dir`) not working, I noticed that the requests fail no matter what, returning 404 errors. The reason is that datasette tries to prevent traversal exploits by checking if the path is relative to its registered directory. This check fails when the mount is a relative directory, because `/abs/dir/file` obviously not under `dir/file`. https://github.com/simonw/datasette/blob/81fa8b6cdc5457b42a224779e5291952314e8d20/datasette/utils/asgi.py#L303-L306 This also has the consequence of returning any requested file, because when `/abs/dir/../../evil.file` resolves `aiofiles` happily returns it to the client after it resolves the path itself. The solution is to make sure we're checking relativity of paths after they're fully resolved. I've implemented the mentioned changes and also updated the tests.",2019-07-09T11:32:02Z,2019-07-11T16:29:26Z,2019-07-11T16:13:19Z,2019-07-11T16:13:19Z,74ecf8a7cc45cabf369e510c7214f5ed85c8c6d8,,,,,0,fa7ddea3ea6c9378bee7d5f5c93fe05d735a0afb,81fa8b6cdc5457b42a224779e5291952314e8d20,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/554,,, 295748268,MDExOlB1bGxSZXF1ZXN0Mjk1NzQ4MjY4,556,closed,0,Add support for running datasette as a module,3243482,abdusco,"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) ",2019-07-09T13:13:30Z,2019-07-11T16:07:45Z,2019-07-11T16:07:44Z,2019-07-11T16:07:44Z,9ca860e54fe480d0a365c0c1d8d085926d12be1e,,,,,0,056a7eac9480cb814d9c453b983e6b2b831e0ca1,81fa8b6cdc5457b42a224779e5291952314e8d20,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/556,,, 296735320,MDExOlB1bGxSZXF1ZXN0Mjk2NzM1MzIw,557,closed,0,Get tests running on Windows using Travis CI,9599,simonw,Refs #511,2019-07-11T16:36:57Z,2021-07-10T23:39:48Z,2021-07-10T23:39:48Z,,cddb9a9fecfa25147d80df05f1a6d6e1686ca30d,,,,,0,47b5ab43be87217c4e40ad93b8aa2e9639fa371f,f2006cca80040871439055ae6ccbc14e589bdf4b,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/557,,, 297243073,MDExOlB1bGxSZXF1ZXN0Mjk3MjQzMDcz,559,closed,0,Bump to uvicorn 0.8.4,9599,simonw,"https://github.com/encode/uvicorn/commits/0.8.4 Query strings will now be included in log files: https://github.com/encode/uvicorn/pull/384",2019-07-12T22:30:29Z,2019-07-13T22:34:58Z,2019-07-13T22:34:58Z,2019-07-13T22:34:58Z,d224ee2c98ac39c2c6e21a0ac0c62e5c3e1ccd11,,,,,0,029e3d53634cc38690d5b56427a3c87851a61b09,f2006cca80040871439055ae6ccbc14e589bdf4b,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/559,,, 297412464,MDExOlB1bGxSZXF1ZXN0Mjk3NDEyNDY0,38,closed,0,table.update() method,9599,simonw,"Refs #35 Still to do: - [x] Unit tests - [x] Switch to using `.get()` - [x] Better exceptions, plus unit tests for what happens if pk does not exist - [x] Documentation - [x] Ensure compound primary keys work properly - [x] `alter=True` support",2019-07-14T17:03:49Z,2019-07-28T15:43:51Z,2019-07-28T15:43:51Z,2019-07-28T15:43:51Z,0747dabb24b608e8524de4858ce50c60ba7e471b,,,,,0,16d7008002b43cf47a973791da93e5cdd5913fc3,a6749cdf43229c4f7864c946496e9ac0141627d9,OWNER,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/38,,, 297459797,MDExOlB1bGxSZXF1ZXN0Mjk3NDU5Nzk3,40,closed,0,.get() method plus support for compound primary keys,9599,simonw,"- [x] Tests for the `NotFoundError` exception - [x] Documentation for `.get()` method - [x] Support `--pk` multiple times to define CLI compound primary keys - [x] Documentation for compound primary keys",2019-07-15T03:43:13Z,2019-07-15T04:28:57Z,2019-07-15T04:28:52Z,2019-07-15T04:28:52Z,c65b67ca46f70e2da46a5b945f4ed358173262e9,,,,,0,b5a5df6d0ed47f33f6e1b4873948ead9a7c71060,65b2156d9cc0aa6b5c3dc7a6bd600d98b281a13b,OWNER,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/40,,, 298962551,MDExOlB1bGxSZXF1ZXN0Mjk4OTYyNTUx,561,closed,0,Fix typos,15278512,minho42,,2019-07-18T15:13:35Z,2019-07-26T10:25:45Z,2019-07-26T10:25:45Z,2019-07-26T10:25:45Z,27cb29365c9f5f6f1492968d1268497193ed75a2,,,,,0,41341195075adc5093d33633d980657ecdac043c,a9453c4dda70bbf5122835e68f63db6ecbe1a6fc,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/561,,, 300286535,MDExOlB1bGxSZXF1ZXN0MzAwMjg2NTM1,45,closed,0,"Implemented table.lookup(...), closes #44",9599,simonw,,2019-07-23T13:03:30Z,2019-07-23T13:07:00Z,2019-07-23T13:07:00Z,2019-07-23T13:07:00Z,580502431614d3653c93249988290265f3163d4b,,,,,0,c0852ce018425450d6c040040f32729d41ff635c,f3a4c3d3ee6475a6caf3c9606656dbaf1df020b7,OWNER,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/45,,, 300377599,MDExOlB1bGxSZXF1ZXN0MzAwMzc3NTk5,47,closed,0,extracts= table parameter,9599,simonw,Still needs docs. Refs #46,2019-07-23T16:30:29Z,2019-07-23T17:00:43Z,2019-07-23T17:00:43Z,2019-07-23T17:00:43Z,941d281aee6eac20ad64b505511da7e47f697700,,,,,0,1c9d08f75a48b2a3770f2a880462dc8b195289b7,e22cfcd953f967f6e9551b3a048d7c40726f349b,OWNER,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/47,,, 300580221,MDExOlB1bGxSZXF1ZXN0MzAwNTgwMjIx,8,closed,0,Use less RAM,9599,simonw,Closes #7,2019-07-24T06:35:01Z,2019-07-24T06:35:52Z,2019-07-24T06:35:52Z,2019-07-24T06:35:52Z,c8392df78ee3e1643d18b747a4abf585d84d5d88,,,,,0,6261500b01274a739176480774e82b31f2926e7f,5d7e14d40d5a4cfd133ca5faa442312f607784c5,MEMBER,197882382,healthkit-to-sqlite,https://github.com/dogsheep/healthkit-to-sqlite/pull/8,,, 301483613,MDExOlB1bGxSZXF1ZXN0MzAxNDgzNjEz,564,open,0,First proof-of-concept of Datasette Library,9599,simonw,"Refs #417. Run it like this: datasette -d ~/Library Uses a new plugin hook - available_databases() ",2019-07-26T10:22:26Z,2023-02-07T15:14:11Z,,,4f425d2b39d1be10d7ef5c146480a3eb494d5086,,,,,1,947645d84710677ea50762016081a9fbc6b014a8,a9453c4dda70bbf5122835e68f63db6ecbe1a6fc,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/564,,, 301824097,MDExOlB1bGxSZXF1ZXN0MzAxODI0MDk3,51,closed,0,"Fix for too many SQL variables, closes #50",9599,simonw,,2019-07-28T11:30:30Z,2019-07-28T11:59:32Z,2019-07-28T11:59:32Z,2019-07-28T11:59:32Z,9cb045284ede8009c12abdb1755b5b20f6ccff5f,,,,,0,0c1b8b7f96be874bb63801f69323960f277aa49a,9b7be79c86b4283f24a64f62257c918f12542997,OWNER,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/51,,, 303990683,MDExOlB1bGxSZXF1ZXN0MzAzOTkwNjgz,53,closed,0,Work in progress: m2m() method for creating many-to-many records,9599,simonw,"- [x] `table.insert({""name"": ""Barry""}).m2m(""tags"", lookup={""tag"": ""Coworker""})` - [x] Explicit table name `.m2m(""humans"", ..., m2m_table=""relationships"")` - [x] Automatically use an existing m2m table if a single obvious candidate exists (a table with two foreign keys in the correct directions) - [x] Require the explicit `m2m_table=` argument if multiple candidates for the m2m table exist - [x] Documentation Refs #23",2019-08-03T10:03:56Z,2019-08-04T03:38:10Z,2019-08-04T03:37:33Z,2019-08-04T03:37:33Z,4c0912dbf27b12071aca9569bcf7233e60f91c7c,,,,,0,243bcaa1acd32a173c07b24dca553991493005a0,e1021030dd2d8d4705ad0e7bae389eeaea7fa17b,OWNER,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/53,,, 308292447,MDExOlB1bGxSZXF1ZXN0MzA4MjkyNDQ3,55,closed,0,Ability to introspect and run queries against views,9599,simonw,See #54 ,2019-08-17T13:40:56Z,2019-08-23T12:19:42Z,2019-08-23T12:19:42Z,2019-08-23T12:19:42Z,9faa98222669723d31e918bb16a42c13c363817f,,,,,0,4441d6d838fd7518ce715184361f549a04ec8b70,0e7b461eb3e925aef713206c15794ceae9259c57,OWNER,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/55,,, 313007483,MDExOlB1bGxSZXF1ZXN0MzEzMDA3NDgz,56,closed,0,Escape the table name in populate_fts and search.,49260,amjith,"The table names weren't escaped using double quotes in the populate_fts method. Reproducible case: ``` >>> import sqlite_utils >>> db = sqlite_utils.Database(""abc.db"") >>> db[""http://example.com""].insert_all([ ... {""id"": 1, ""age"": 4, ""name"": ""Cleo""}, ... {""id"": 2, ""age"": 2, ""name"": ""Pancakes""} ... ], pk=""id"") >>> db[""http://example.com""].enable_fts([""name""]) Traceback (most recent call last): File """", line 1, in db[""http://example.com""].enable_fts([""name""]) File ""/home/amjith/.virtualenvs/itsysearch/lib/python3.7/site-packages/sqlite_utils/db.py"", l ine 705, in enable_fts self.populate_fts(columns) File ""/home/amjith/.virtualenvs/itsysearch/lib/python3.7/site-packages/sqlite_utils/db.py"", l ine 715, in populate_fts self.db.conn.executescript(sql) sqlite3.OperationalError: unrecognized token: "":"" >>> ```",2019-09-01T06:29:05Z,2019-09-02T17:23:21Z,2019-09-02T17:23:21Z,,79852e97ecb69b88da87da0cba2a55887cf83bda,,,,,0,83ca4c802f5d5102e73ff366e61514ded81dc7a1,cb70f7d10996b844154bf3da88779dd1f65590bc,CONTRIBUTOR,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/56,,, 313105634,MDExOlB1bGxSZXF1ZXN0MzEzMTA1NjM0,57,closed,0,Add triggers while enabling FTS,49260,amjith,"This adds the option for a user to set up triggers in the database to keep their FTS table in sync with the parent table. Ref: https://sqlite.org/fts5.html#external_content_and_contentless_tables I would prefer to make the creation of triggers the default behavior, but that will break existing usage where people have been calling `populate_fts` after inserting new rows. I am happy to make changes to the PR as you see fit. ",2019-09-02T04:23:40Z,2019-09-03T01:03:59Z,2019-09-02T23:42:29Z,2019-09-02T23:42:29Z,405e092d5916e70df10f82d15e9c052aa9ee8d80,,,,,0,e01943271b17115fbe0e81d523126d2fb1c7c24b,cb70f7d10996b844154bf3da88779dd1f65590bc,CONTRIBUTOR,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/57,,, 313383317,MDExOlB1bGxSZXF1ZXN0MzEzMzgzMzE3,60,closed,0,db.triggers and table.triggers introspection,9599,simonw,Closes #59,2019-09-03T00:04:32Z,2019-09-03T00:09:42Z,2019-09-03T00:09:42Z,2019-09-03T00:09:42Z,2ca63e3b2de5408a860c6c7c1852deb9a138279e,,,,,0,b0a27fbb34b4362ef192deb560612fabf046cd32,405e092d5916e70df10f82d15e9c052aa9ee8d80,OWNER,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/60,,, 313384926,MDExOlB1bGxSZXF1ZXN0MzEzMzg0OTI2,571,closed,0,detect_fts now works with alternative table escaping,9599,simonw,Fixes #570,2019-09-03T00:23:39Z,2019-09-03T00:32:28Z,2019-09-03T00:32:28Z,2019-09-03T00:32:28Z,2dc5c8dc259a0606162673d394ba8cc1c6f54428,,,,,0,a85239f69261c10f1a9f90514c8b5d113cb94585,f04deebec4f3842f7bd610cd5859de529f77d50e,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/571,,, 322529381,MDExOlB1bGxSZXF1ZXN0MzIyNTI5Mzgx,578,closed,0,Added support for multi arch builds,887095,heussd,Minor changes in Dockerfile and new Makefile to support Docker multi architecture builds. `make`will build one image per architecture and push them as one Docker manifest to Docker Hub. Feel free to change `IMAGE_NAME ` to `datasetteproject/datasette` to update your official Docker Hub image(s).,2019-09-29T18:43:03Z,2019-11-13T19:13:15Z,2019-11-13T19:13:15Z,,ae1aa0929b9e62a413ec9b4a40588e6aafe50573,,,,,0,ce6372bc6210ae52ac1951647b8fbaee40d64fc1,0fc8afde0eb5ef677f4ac31601540d6168c8208d,NONE,107914493,datasette,https://github.com/simonw/datasette/pull/578,,, 323983732,MDExOlB1bGxSZXF1ZXN0MzIzOTgzNzMy,579,open,0,New connection pooling,9599,simonw,See #569,2019-10-02T23:22:19Z,2019-11-15T22:57:21Z,,,025b4024b1b43ea034b7fd331c30740165ff75f2,,,,,0,32cbfd2acd28bcefb97c442ac8e3ee2c07401e19,a9909c29ccac771c23c2ef22b89d10697b5256b9,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/579,,, 327051673,MDExOlB1bGxSZXF1ZXN0MzI3MDUxNjcz,15,closed,0,"twitter-to-sqlite import command, refs #4",9599,simonw,,2019-10-11T06:37:14Z,2019-10-11T06:45:01Z,2019-10-11T06:45:01Z,2019-10-11T06:45:01Z,2019ee908731054c6eaa3d5123dfbdf7d2d70fc4,,,,,0,df1d85897118310a2d3c1b9e5aad108165302cf2,436a170d74ec70903d1b4ca430c2c6b6435cdfcc,MEMBER,206156866,twitter-to-sqlite,https://github.com/dogsheep/twitter-to-sqlite/pull/15,,, 327169748,MDExOlB1bGxSZXF1ZXN0MzI3MTY5NzQ4,589,closed,0,Display metadata footer on custom SQL queries,2657547,rixx,Closes #408,2019-10-11T12:10:28Z,2019-10-14T08:58:23Z,2019-10-14T03:53:22Z,2019-10-14T03:53:22Z,12cec411cae73ba7211429da12cd32c551fe17b1,,,,,0,5627fe8d58e791e004b89b5614007d5e64a5c8e2,fffd69ec031b83f46680f192ba57a27f0d1f0b8a,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/589,,, 327172545,MDExOlB1bGxSZXF1ZXN0MzI3MTcyNTQ1,590,closed,0,Handle spaces in DB names,2657547,rixx,Closes #503,2019-10-11T12:18:22Z,2019-11-04T23:16:31Z,2019-11-04T23:16:30Z,2019-11-04T23:16:30Z,931bfc66613aa3e22f8314df5c0d0758baf31f38,,,,,0,0c306e89e4f97f64921e4f6d1fe7bab52fad6ade,52fa79c6075f0830ff635b81d957c64d877a05aa,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/590,,, 327188087,MDExOlB1bGxSZXF1ZXN0MzI3MTg4MDg3,591,closed,0,Sort databases on homepage by argument order,2657547,rixx,Closes #585,2019-10-11T12:57:38Z,2019-10-14T08:57:50Z,2019-10-14T03:52:34Z,2019-10-14T03:52:34Z,908fc3999e06f3ccd3bb8ad0539490bbc7809748,,,,,0,5a8e52fa60f2c2c93f10b9c6c126f31b02d647b0,fffd69ec031b83f46680f192ba57a27f0d1f0b8a,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/591,,, 327279818,MDExOlB1bGxSZXF1ZXN0MzI3Mjc5ODE4,592,closed,0,Offer SQL formatting,2657547,rixx,"SQL code will be formatted on page load, and can additionally be formatted by clicking the ""Format SQL"" button. Closes #136",2019-10-11T16:35:49Z,2019-10-14T08:57:12Z,2019-10-14T03:46:13Z,2019-10-14T03:46:13Z,af2e6a5cf186a7200d76cb67ac30fa59cc24d84e,,,,,0,b46195af65846ca30c6006520cc778eeed052324,fffd69ec031b83f46680f192ba57a27f0d1f0b8a,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/592,,, 327541046,MDExOlB1bGxSZXF1ZXN0MzI3NTQxMDQ2,595,closed,0,bump uvicorn to 0.9.0 to be Python-3.8 friendly,4312421,stonebig,"as uvicorn-0.9 is needed to get websockets-8.0.2, which is needed to have Python-3.8 compatibility",2019-10-13T10:00:04Z,2019-11-12T04:46:48Z,2019-11-12T04:46:48Z,,5a7185bcd15aab28e86338b3771c25af13a94a4c,,,,,0,e1d92ea94ca8f14879ef280cb7dadab7eed76e9c,fffd69ec031b83f46680f192ba57a27f0d1f0b8a,NONE,107914493,datasette,https://github.com/simonw/datasette/pull/595,,, 329324368,MDExOlB1bGxSZXF1ZXN0MzI5MzI0MzY4,24,closed,0,Tweet source extraction and new migration system,9599,simonw,Closes #12 and #23,2019-10-17T15:24:56Z,2019-10-17T15:49:29Z,2019-10-17T15:49:24Z,2019-10-17T15:49:24Z,c9295233f219c446fa2085cace987067488a31b9,,,,,0,39f822a624685e321dbca8a4318741dd1e42548b,619f724a722b3f23f4364f67d3164b93e8ba2a70,MEMBER,206156866,twitter-to-sqlite,https://github.com/dogsheep/twitter-to-sqlite/pull/24,,, 329890320,MDExOlB1bGxSZXF1ZXN0MzI5ODkwMzIw,599,closed,0,Fix for /foo v.s. /foo-bar issue in #597,9599,simonw,Refs #597,2019-10-18T19:22:55Z,2019-10-18T22:51:07Z,2019-10-18T22:51:07Z,2019-10-18T22:51:07Z,b647b5efc29300f715ba656e41b0591f342938e1,,,,,0,8cc5a8dc35371f7d4353a4206b2d079f520c61cd,b6ad1fdc7068cb8248787843e7438d1f19fa2e3a,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/599,,, 329947180,MDExOlB1bGxSZXF1ZXN0MzI5OTQ3MTgw,601,closed,0,Don't auto-format SQL on page load,9599,simonw,Refs #600,2019-10-18T22:37:39Z,2019-10-20T02:29:49Z,2019-10-18T23:56:45Z,2019-10-18T23:56:45Z,e877b1cb12076946fdbec7ca2fbfbfc75c1c2a28,,,,,0,3a963734590caa3ad69bfe64c31690f3e4de61a4,b6ad1fdc7068cb8248787843e7438d1f19fa2e3a,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/601,,, 330076263,MDExOlB1bGxSZXF1ZXN0MzMwMDc2MjYz,602,closed,0,Offer to format readonly SQL,2657547,rixx,"Following discussion in #601, this PR adds a ""Format SQL"" button to read-only SQL (if the SQL actually differs from the formatting result). It also removes a console error on readonly SQL queries.",2019-10-20T02:29:32Z,2019-11-04T07:29:33Z,2019-11-04T02:39:56Z,2019-11-04T02:39:56Z,ee330222f4c3ee66c2fe41ebc76fed56b9cb9a00,,,,,0,266c3dafb9bf3b12204b6152d7b48e94a131584a,8050f9e1ece9afd0236ad38c6458c12a4ad917e6,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/602,,, 330129358,MDExOlB1bGxSZXF1ZXN0MzMwMTI5MzU4,603,closed,0,always pop as_format off args dict,6025893,chris48s,closes #563,2019-10-20T15:44:22Z,2019-10-30T19:12:22Z,2019-10-21T02:03:09Z,2019-10-21T02:03:09Z,f4c0830529a9513a83437a9e1550bbe27ebc5c64,,,,,0,39d044502590224e4f07c05e02fc8a4d312255c1,8050f9e1ece9afd0236ad38c6458c12a4ad917e6,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/603,,, 334448258,MDExOlB1bGxSZXF1ZXN0MzM0NDQ4MjU4,609,closed,0,Update to latest black,9599,simonw,,2019-10-30T18:42:35Z,2019-10-30T18:49:01Z,2019-10-30T18:49:01Z,2019-10-30T18:49:01Z,5dd4d2b2d3abcfd507a6df47e7c2fbad3c552fd8,,,,,0,6f57e5e77bac29ac88d51271fd0c785859a820ce,f4c0830529a9513a83437a9e1550bbe27ebc5c64,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/609,,, 335980246,MDExOlB1bGxSZXF1ZXN0MzM1OTgwMjQ2,8,closed,0,"stargazers command, refs #4",9599,simonw,Needs tests. Refs #4.,2019-11-03T00:37:36Z,2020-05-02T20:00:27Z,2020-05-02T20:00:26Z,,db25bdf8cee4c3e2d730cf269eb9a903b51cdb41,,,,,0,ea07274667a08c67907e8bfbbccb6f0fb95ce817,ae9035f8fe5aff1c54bff4c6b4c2e808a44f0f2a,MEMBER,207052882,github-to-sqlite,https://github.com/dogsheep/github-to-sqlite/pull/8,,, 337847573,MDExOlB1bGxSZXF1ZXN0MzM3ODQ3NTcz,64,closed,0,test_insert_upsert_all_empty_list,9599,simonw,,2019-11-07T04:24:45Z,2019-11-07T04:32:38Z,2019-11-07T04:32:38Z,2019-11-07T04:32:38Z,8dab9fd1ccf571e188eec9ccf606a0c50fccf200,,,,,0,8daea7f1265ddcce67d28258068a25666954000f,a0a65f9a6405079b01aefdbf4b5f507bc758567a,OWNER,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/64,,, 337853394,MDExOlB1bGxSZXF1ZXN0MzM3ODUzMzk0,65,closed,0,Release 1.12.1,9599,simonw,,2019-11-07T04:51:29Z,2019-11-07T04:58:48Z,2019-11-07T04:58:47Z,2019-11-07T04:58:47Z,0a0cec3cf27861455e8cd1c4d84937825a18bb30,,,,,0,28f8a238ab8fc2a70ee81bd73de6c167d9db9cdf,8dab9fd1ccf571e188eec9ccf606a0c50fccf200,OWNER,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/65,,, 338647378,MDExOlB1bGxSZXF1ZXN0MzM4NjQ3Mzc4,1,closed,0,Add parkrun-to-sqlite,1101318,mrw34,,2019-11-08T12:05:32Z,2020-10-12T00:35:16Z,2020-10-12T00:35:16Z,2020-10-12T00:35:16Z,58ca0c785fbf34250042379dd0269bf2d0c5ea7e,,,,,0,ccb86548e0ae6f02a83f1feb0974476ad0f2f2d8,2972bb001ab5f675eced62f7ba5adef2d3eba2ad,CONTRIBUTOR,214746582,dogsheep.github.io,https://github.com/dogsheep/dogsheep.github.io/pull/1,,, 339236647,MDExOlB1bGxSZXF1ZXN0MzM5MjM2NjQ3,623,closed,0,Test against Python 3.8 in Travis,9599,simonw,Needed for #622,2019-11-11T03:24:54Z,2019-11-11T03:45:35Z,2019-11-11T03:45:35Z,2019-11-11T03:45:35Z,1c063fae9dba70f70244db010d55a18846640f07,,,,,0,877dda2d287ed3b1772f051dffd295a69c3ecd27,28c4a6db5b5e512db630d7ba6127196185de67c7,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/623,,, 339244888,MDExOlB1bGxSZXF1ZXN0MzM5MjQ0ODg4,624,closed,0,Bump pint to 0.9,9599,simonw,,2019-11-11T04:07:07Z,2019-11-11T04:19:02Z,2019-11-11T04:19:02Z,2019-11-11T04:19:02Z,42ee3e16a9ba7cc513b8da944cc1609a5407cf42,,,,,0,ed17117a2ad675cbf2430f28069bb1854846a6f0,1c063fae9dba70f70244db010d55a18846640f07,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/624,,, 339722790,MDExOlB1bGxSZXF1ZXN0MzM5NzIyNzkw,627,closed,0,"Support Python 3.8, stop supporting Python 3.5",9599,simonw,Refs #622,2019-11-12T04:36:33Z,2020-04-05T10:23:58Z,2019-11-12T05:09:12Z,2019-11-12T05:09:12Z,cf7776d36fbacefa874cbd6e5fcdc9fff7661203,,,,,0,18cc795b5c6ec9223a5cbc4f30b19710c17f7eaa,42ee3e16a9ba7cc513b8da944cc1609a5407cf42,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/627,,, 339742432,MDExOlB1bGxSZXF1ZXN0MzM5NzQyNDMy,630,closed,0,Use python:3.8 base Docker image,9599,simonw,Closes #629,2019-11-12T06:02:37Z,2019-11-12T06:03:10Z,2019-11-12T06:03:10Z,2019-11-12T06:03:10Z,d977fbadf70a96bf2eea1407d01f99d98e092dec,,,,,0,53180ec09483bd4eef00346a39b302aeb3039e7d,f554be39fc14ddc18921ca29d3920d55aad03d46,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/630,,, 340211149,MDExOlB1bGxSZXF1ZXN0MzQwMjExMTQ5,631,closed,0,bugfix issue 572,3683993,qwo,closes bugfix issue #572 ,2019-11-13T02:46:50Z,2019-11-13T04:28:43Z,2019-11-13T04:28:42Z,2019-11-13T04:28:42Z,848dec4deb0d3c140a4e0394cac45fbb2593349b,,,,,0,ca43966e5aa832a377e4db5d411b6cc8b1c5b3ac,bbd00e903cdd49067ecdbdb60a4d225833a44b05,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/631,,, 340743220,MDExOlB1bGxSZXF1ZXN0MzQwNzQzMjIw,635,closed,0,Use Jinja async mode,9599,simonw,Refs #628. Still needs documentation.,2019-11-14T01:20:57Z,2019-11-14T23:14:23Z,2019-11-14T23:14:23Z,2019-11-14T23:14:22Z,8c642f04e0608bf537fdd1f76d64c2367fb04d57,,,,,0,0e8f8be1dbf89a6f689a5eea4a0534199a0028f6,b51f258d00bb3c3b401f15d46a1fbd50394dbe1c,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/635,,, 346264926,MDExOlB1bGxSZXF1ZXN0MzQ2MjY0OTI2,67,closed,0,Run tests against 3.5 too,9599,simonw,,2019-11-27T14:20:35Z,2019-12-31T01:29:44Z,2019-12-31T01:29:43Z,,88375b0bc055067b996584f06ed85a9a90c5aa1a,,,,,0,4c6e5a4486e0e17555774eb3279142234a8b4abc,0a0cec3cf27861455e8cd1c4d84937825a18bb30,OWNER,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/67,,, 347179081,MDExOlB1bGxSZXF1ZXN0MzQ3MTc5MDgx,644,closed,0,Validate metadata json on startup,6025893,chris48s,"This PR adds a sanity check which builds up a marshmallow schema on-the-fly based on the structure of the database(s) on startup and then validates the metadata json against it. In case of invalid data, this will raise with a descriptive error e.g: ``` marshmallow.exceptions.ValidationError: {'databases': {'fixtures': {'tables': {'not_a_table': ['Unknown field.']}}}} ``` Closes #260 --- This was intended to be fairly self-contained, but then while I was working on it, I hit some problems getting the tests to pass in the context of the test suite as a whole. My tests passed in isolation, but then failed while doing a full test suite run. That's when the worms started coming out of the can :bug: After some sleuthing, it turned out this was essentially the result of several issues intersecting: * There are certain events in the application lifecycle where the metadata schema can be modified after it is loaded e.g: https://github.com/simonw/datasette/blob/a562f2965552fb2dbbbd74df245c9965ee23d886/datasette/app.py#L299-L320 This means that sometimes what goes in isn't always exactly what comes out when you call `/-/metadata`. * Because the test fixtures use session scope for performance reasons if one unit test performs an action which mutates the metadata, that can impact on other unit tests which run after it using the same fixture. * Because the `self._metadata` property was being set with a simple assignment `self._metadata = metadata`, that created an object reference to the test fixture data, so operating on `self._metadata` was actually modifying the test fixture `METADATA` meaning that depending on when it was loaded in the test suite lifecycle, `METADATA` had different content, which was somewhat unexpected. As such, I've added some band-aids in 3552024 and 6859fd8: * Switching the metadata object to a `deepcopy` of the input prevents us directly mutating the input fixture. * I've switched some of the tests to use a fixture with function scope instead of session scope so we're working on a clean copy that hasn't been mutated by other tests where necessary but keeping session scope in most cases for performance. * I haven't really addressed the fact that sometimes the metadata object gets mutated in place, so the object that is served from `/-/metadata` isn't necessarily always exactly the same as the file you fed into it on init. I'm not sure how much of a problem that is. The way the tests were written makes me think it was unexpected, but getting into it feels like too much scope creep for this PR so its probably best addressed as another issue.",2019-11-30T00:32:15Z,2021-07-28T17:58:45Z,2021-07-28T17:58:45Z,,e71b642474d54f986bc8857346103d8a10d84e6d,,,,,0,6859fd8c5eef26f397aa949dc4edf3747e8ab0a5,a562f2965552fb2dbbbd74df245c9965ee23d886,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/644,,, 354869391,MDExOlB1bGxSZXF1ZXN0MzU0ODY5Mzkx,652,closed,0,Quick (and uninformed and perhaps misguided) attempt to add a url for hosting datasette at a particular host/URI,132978,terrycojones,"As usual, I don't really know what I'm doing... so this is just a suggested approach. I've not written tests, I've not run the tests, I don't know if I've missed some absolute URLs that would need to have the leading slash dropped. BUT, I tested it with `--config base_url:http://127.0.0.1:8001/` on the command line and from what little I know about datasette it's at least working in some obvious cases. My changes are based on what I saw in https://github.com/simonw/datasette/commit/8da2db4b71096b19e7a9ef1929369b8483d448bf (thanks!) I'm happy to be more thorough on this if you think it's worth pursuing. Fixes #394 (he said, optimistically).",2019-12-18T23:37:16Z,2020-03-24T22:14:50Z,2020-03-24T22:14:50Z,,8e674de58c17c89c8a4a90bc3ec6e02151b354e5,,,,,0,eaa636841e38d40360a74596ef1a0df50f6a86a5,a498d0fe6590f9bdbc4faf9e0dd5faeb3b06002c,NONE,107914493,datasette,https://github.com/simonw/datasette/pull/652,,, 356004242,MDExOlB1bGxSZXF1ZXN0MzU2MDA0MjQy,653,closed,0,allow leading comments in SQL input field,418191,jaywgraves,"this changes the SQL validation to allow for lines that are commented out my main use case for this is that I like to write a succession of queries when trying to solve a problem. In most native SQL clients there is a key binding that will run just the current highlighted query or the program is smart enough to run just the query that the cursor is in if it's properly delimited with a ';'. Typically my workflow will start with a single simple query and I'll copy/paste it to a new query below when I want to make big changes while debugging. This makes it easy to go back to a working version above when the query doesn't work. Since datasette sends the whole query to the DB I have to comment out the older queries by prefixing each line with `--`. This gets caught by the validators when I use my typical strategy of copy/pasting each successive query below the last one. so this is just a simple fix to allow for a query to be sent to the DB with leading comments. ",2019-12-21T14:19:52Z,2020-02-05T02:35:41Z,2020-02-05T02:13:25Z,2020-02-05T02:13:25Z,33a12c8ae526afb40a7819c9ca411c9d3c41219b,,,,,0,3a4cb551b9a217d5798e3e9ad5d4b06234a81885,d6b6c9171f3fd945c4e5e4144923ac831c43c208,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/653,,, 357640186,MDExOlB1bGxSZXF1ZXN0MzU3NjQwMTg2,6,closed,0,don't break if source is missing,78035,mfa,broke for me. very old checkins in 2010 had no source set.,2019-12-29T10:46:47Z,2020-03-28T02:28:11Z,2020-03-28T02:28:11Z,2020-03-28T02:28:11Z,d3c4ab2848ea606417150f377a82e66ca7887c54,,,,,0,a41b5bcd63012f64fe6746825d7101cc3d071483,f2c89dd613fb8a7f14e5267ccc2145463b996190,CONTRIBUTOR,205429375,swarm-to-sqlite,https://github.com/dogsheep/swarm-to-sqlite/pull/6,,, 357974326,MDExOlB1bGxSZXF1ZXN0MzU3OTc0MzI2,3,closed,0,Add todoist-to-sqlite,706257,bcongdon,"Really enjoying getting into the dogsheep/datasette ecosystem. I made a downloader for Todoist, and I think/hope others might find this useful",2019-12-30T04:02:59Z,2020-10-12T00:35:58Z,2020-10-12T00:35:57Z,2020-10-12T00:35:57Z,85af27dbff7e08a92656639fbf0cfa15c7d30b5c,,,,,0,49bc87a43555d10696044e8e40d700d93611a190,58ca0c785fbf34250042379dd0269bf2d0c5ea7e,CONTRIBUTOR,214746582,dogsheep.github.io,https://github.com/dogsheep/dogsheep.github.io/pull/3,,, 357992588,MDExOlB1bGxSZXF1ZXN0MzU3OTkyNTg4,72,closed,0,Fixed implementation of upsert,9599,simonw,Refs #66,2019-12-30T05:08:05Z,2019-12-30T05:29:24Z,2019-12-30T05:29:24Z,2019-12-30T05:29:24Z,9f47e8b9a4cb788b48b76aee1333c6f3baaebbd6,,,,,0,ab8a4bda75fc59871ba8445c6a0fb2332483029c,dc0a62556ec092be7b341c5220e0410354f7cd02,OWNER,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/72,,, 359822773,MDExOlB1bGxSZXF1ZXN0MzU5ODIyNzcz,75,closed,0,Explicitly include tests and docs in sdist,15092,jayvdb,Also exclude 'tests' from runtime installation.,2020-01-07T04:53:20Z,2020-01-31T00:21:27Z,2020-01-31T00:21:27Z,2020-01-31T00:21:27Z,0988f2eccc2dfa26b1a55243582222f540a72838,,,,,0,39a836450b23bf2fe1ba9a071a5a9a00a0949cd6,59a2e8ebdcbde7e6fb091b0556713ca5a20ea4e7,CONTRIBUTOR,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/75,,, 365218391,MDExOlB1bGxSZXF1ZXN0MzY1MjE4Mzkx,660,closed,0,"gcloud run is now GA, s/beta//",813732,glasnt,,2020-01-21T10:08:38Z,2020-01-22T03:41:09Z,2020-01-21T23:28:12Z,2020-01-21T23:28:12Z,34d77d780f68b778fd9d6ebbaf69f250436f055f,,,,,0,894e96026b838288f926f62914123a1f86139793,3c861f363df02a59a67c59036278338e4760d2ed,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/660,,, 368734500,MDExOlB1bGxSZXF1ZXN0MzY4NzM0NTAw,663,closed,0,"-p argument for datasette package, plus tests - refs #661",9599,simonw,,2020-01-29T19:47:49Z,2020-01-29T22:46:43Z,2020-01-29T22:46:43Z,2020-01-29T22:46:43Z,67fc9c5720ed1fcd62b116481f70d4e80b403a22,,,,,0,8adfc9db7f15e36fed677be4a9c833ff2cdec0bc,34d77d780f68b778fd9d6ebbaf69f250436f055f,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/663,,, 369348084,MDExOlB1bGxSZXF1ZXN0MzY5MzQ4MDg0,78,closed,0,"New conversions= feature, refs #77",9599,simonw,,2020-01-31T00:02:33Z,2020-09-22T07:48:29Z,2020-01-31T00:24:31Z,2020-01-31T00:24:31Z,e8b2b7383bd94659d3b7a857a1414328bc48bc19,,,,,0,58190d67821aaa57c8ca0320a08e3691d6e27344,59a2e8ebdcbde7e6fb091b0556713ca5a20ea4e7,OWNER,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/78,,, 369394043,MDExOlB1bGxSZXF1ZXN0MzY5Mzk0MDQz,80,closed,0,on_create mechanism for after table creation,9599,simonw,"I need this for `geojson-to-sqlite`, in particular https://github.com/simonw/geojson-to-sqlite/issues/6",2020-01-31T03:38:48Z,2020-01-31T05:08:04Z,2020-01-31T05:08:04Z,,e6dc95d19348e72b28b42e73a18737cb2e4563e0,,,,,0,45bf0c25492c276bde0b85868ffb55f169375bd7,f7289174e66ae4d91d57de94bbd9d09fabf7aff4,OWNER,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/80,,, 370024697,MDExOlB1bGxSZXF1ZXN0MzcwMDI0Njk3,4,closed,0,Add beeminder-to-sqlite,706257,bcongdon,,2020-02-02T15:51:36Z,2020-10-12T00:36:16Z,2020-10-12T00:36:16Z,2020-10-12T00:36:16Z,7e4c6ecdabc249c77e8049cd172b1b5af08a3371,,,,,0,6713b5c50178b95a9ec50227d4ef5793e71e8b0a,2972bb001ab5f675eced62f7ba5adef2d3eba2ad,CONTRIBUTOR,214746582,dogsheep.github.io,https://github.com/dogsheep/dogsheep.github.io/pull/4,,, 370675007,MDExOlB1bGxSZXF1ZXN0MzcwNjc1MDA3,664,closed,0,Datasette.render_template() method,9599,simonw,Refs #577,2020-02-04T06:53:59Z,2020-02-04T20:26:18Z,2020-02-04T20:26:18Z,2020-02-04T20:26:18Z,70b915fb4bc214f9d064179f87671f8a378aa127,,,,,0,19d4406f562aca291fef04363802093672620220,286ed286b68793532c2a38436a08343b45cfbc91,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/664,,, 372273608,MDExOlB1bGxSZXF1ZXN0MzcyMjczNjA4,33,closed,0,Upgrade to sqlite-utils 2.2.1,9599,simonw,,2020-02-07T07:32:12Z,2020-03-20T19:21:42Z,2020-03-20T19:21:41Z,,5338f6baab3ec1424431133968d8b64a656ce4c4,,,,,0,08f51271d6309aad698b9e8a7587fcebbbd67781,35c18a09fa664324dcb75e5e58ccb90644456d02,MEMBER,206156866,twitter-to-sqlite,https://github.com/dogsheep/twitter-to-sqlite/pull/33,,, 372763906,MDExOlB1bGxSZXF1ZXN0MzcyNzYzOTA2,666,closed,0,"Use inspect-file, if possible, for total row count",13896256,kevindkeogh,"For large tables, counting the number of rows in the table can take a signficant amount of time. Instead, where an inspect-file is provided for an immutable database, look up the row-count for a plain count(*).",2020-02-08T22:10:35Z,2020-03-09T02:47:15Z,2020-02-25T20:19:29Z,2020-02-25T20:19:29Z,3041c6b6412bbe317f8b9afd6529a15954f2c47e,,,,,0,8947a60404b8242a03f9ebabc5f957d75f4dfe04,b031fe97636b80b05fec409ee1dffb7d044fd4e9,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/666,,, 373775788,MDExOlB1bGxSZXF1ZXN0MzczNzc1Nzg4,669,closed,0,fix db-to-sqlite command in ecosystem doc page,883348,adipasquale,the `--connection` parameter has become positional,2020-02-11T17:05:41Z,2020-02-22T02:32:18Z,2020-02-22T02:32:17Z,2020-02-22T02:32:17Z,be2265b0e811d0ac2875c2f748125c17b0f9289e,,,,,0,6eb0e8cd90be82eff0a5152b0985c2a3cb7a44a8,30b6f71b306a43605c99bef79302ed5cb22d1924,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/669,,, 375180832,MDExOlB1bGxSZXF1ZXN0Mzc1MTgwODMy,672,open,0,--dirs option for scanning directories for SQLite databases,9599,simonw,Refs #417.,2020-02-14T02:25:52Z,2020-03-27T01:03:53Z,,,0e0e544f1f23451f04d7ca576ace5b18ce168e6f,,,,,0,ee718b98b793df2a15b125cbf20816c9864bf7e9,6aa516d82dea9885cb4db8d56ec2ccfd4cd9b840,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/672,,, 379192258,MDExOlB1bGxSZXF1ZXN0Mzc5MTkyMjU4,683,closed,0,.execute_write() and .execute_write_fn() methods on Database,9599,simonw,"See #682 - [x] Come up with design for `.execute_write()` and `.execute_write_fn()` - [x] Build some quick demo plugins to exercise the design - [x] Write some unit tests - [x] Write the documentation",2020-02-24T19:51:58Z,2020-05-30T18:40:20Z,2020-02-25T04:45:08Z,2020-02-25T04:45:08Z,a093c5f79fa034a97d2ad8b606745dd3b80365af,,,3268330,Datasette 1.0,0,ec6e2edfe18446c9d77e3f30efbc299d27ea5c1b,411056c4c43e74f2b3d0e3bc1175e7998516b1b3,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/683,,, 379378780,MDExOlB1bGxSZXF1ZXN0Mzc5Mzc4Nzgw,686,closed,0,?_searchmode=raw option,9599,simonw,Closes #676,2020-02-25T05:45:50Z,2020-02-25T05:56:09Z,2020-02-25T05:56:04Z,2020-02-25T05:56:04Z,6cb65555f46456eb31b62e855e21b1d8c809b1a2,,,,,0,abc782cb342c21b565142e44e70502e61ac6756b,a093c5f79fa034a97d2ad8b606745dd3b80365af,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/686,,, 381666777,MDExOlB1bGxSZXF1ZXN0MzgxNjY2Nzc3,688,closed,0,Don't count rows on homepage for DBs > 100MB,9599,simonw,Closes #649.,2020-02-29T01:01:06Z,2020-02-29T01:08:30Z,2020-02-29T01:08:29Z,2020-02-29T01:08:29Z,7f5a330377fd7db1f6d1efa5686d183bcaf89217,,,,,0,025fdd46f77822c0cbeb7856611c0a65a9b83057,0f8e91c68f2d2ad48efc8324b12762bf8b58facd,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/688,,, 391924509,MDExOlB1bGxSZXF1ZXN0MzkxOTI0NTA5,703,closed,0,WIP implementation of writable canned queries,9599,simonw,Refs #698.,2020-03-21T22:23:51Z,2020-06-03T00:08:14Z,2020-06-02T23:57:35Z,,80c5a74a947e63673389604de12e80fa27305454,,,,,1,61e40e917efc43a8aea5298a22badbb6eaea3fa1,89c4ddd4828623888e91a1d2cb396cba12d4e7b4,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/703,,, 393274433,MDExOlB1bGxSZXF1ZXN0MzkzMjc0NDMz,708,closed,0,"base_url configuration setting, refs #394",9599,simonw,Pull request implementing #394,2020-03-24T21:52:00Z,2020-03-25T00:18:44Z,2020-03-25T00:18:44Z,2020-03-25T00:18:44Z,7656fd64d8b6a32ebc34d89c1b8711cc5ea240f7,,,5234079,Datasette 0.39,0,b1f953b5de1bef239ddb1d133f9b2e19f8e3438a,a498d0fe6590f9bdbc4faf9e0dd5faeb3b06002c,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/708,,, 395258687,MDExOlB1bGxSZXF1ZXN0Mzk1MjU4Njg3,96,closed,0,Add type conversion for Panda's Timestamp,32605365,b0b5h4rp13,"Add type conversion for Panda's Timestamp, if Panda library is present in system (thanks for this project, I was about to do the same thing from scratch)",2020-03-29T14:13:09Z,2020-03-31T04:40:49Z,2020-03-31T04:40:48Z,2020-03-31T04:40:48Z,8ea626e5fcdc4c9e52f615c6347e68173805f8b4,,,,,0,16ebbd2d494caabd0eeb502f8a944614b464bb12,22250a9c735077d6f365b73bf824e6c67b122c83,CONTRIBUTOR,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/96,,, 397749653,MDExOlB1bGxSZXF1ZXN0Mzk3NzQ5NjUz,714,closed,0,--metadata accepts YAML as well as JSON,9599,simonw,Refs #713. Still needs tests and documentation.,2020-04-02T18:36:02Z,2020-04-02T19:30:54Z,2020-04-02T19:30:54Z,2020-04-02T19:30:54Z,6717c719dd36dc2adc0f9da38a8c8e08129e96b4,,,,,0,5170c31adc44f6ef14b21782ba6f8ecb46dd9450,2aaad72789c427875426673c1a43e67c86fc970e,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/714,,, 399166433,MDExOlB1bGxSZXF1ZXN0Mzk5MTY2NDMz,719,closed,0,asgi: check raw_path is not None,193185,cldellow,"The ASGI spec (https://asgi.readthedocs.io/en/latest/specs/www.html#http) seems to imply that `None` is a valid value, so we need to check the value itself, not just whether the key is present. In particular, the [mangum](https://github.com/erm/mangum) adapter passes `None` for this key's value. This change permits mangum to be used to front datasette in Amazon API Gateway + AWS Lambda deployments.",2020-04-05T16:53:58Z,2020-05-04T17:14:26Z,2020-05-04T17:14:26Z,2020-05-04T17:14:26Z,dbd2d70b3819a7041bb36a527033d77c85683c05,,,,,0,161f61d73800a605354b4ac44a3c989e19bbc77a,e0e7a0facfc935a835cd73c720bc46661462f0b1,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/719,,, 400578979,MDExOlB1bGxSZXF1ZXN0NDAwNTc4OTc5,720,closed,0,"Update beautifulsoup4 requirement from ~=4.8.1 to >=4.8.1,<4.10.0",27856297,dependabot-preview[bot],"Updates the requirements on [beautifulsoup4](http://www.crummy.com/software/BeautifulSoup/bs4/) to permit the latest version. Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- **Note:** This repo was added to Dependabot recently, so you'll receive a maximum of 5 PRs for your first few update runs. Once an update run creates fewer than 5 PRs we'll remove that limit. You can always request more updates by clicking `Bump now` in your [Dependabot dashboard](https://app.dependabot.com).
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) - `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language - `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language - `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language - `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language - `@dependabot badge me` will comment on this PR with code to add a ""Dependabot enabled"" badge to your readme Additionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com): - Update frequency (including time of day and day of week) - Pull request limits (per update run and/or open at any time) - Out-of-range updates (receive only lockfile updates, if desired) - Security updates (receive only security updates, if desired)
",2020-04-08T01:24:38Z,2020-05-04T17:14:51Z,2020-05-04T17:14:46Z,2020-05-04T17:14:46Z,707fe039947b3e48f2b6dcfe8e577d76b617f2a5,,,,,0,ab76bf88f597e61668dc6fc750502f8db207bd9c,d55fe8cdfc2ce7bc6960bf2507766c1fcd1d31a7,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/720,,, 400579077,MDExOlB1bGxSZXF1ZXN0NDAwNTc5MDc3,721,closed,0,"Update pytest requirement from ~=5.2.2 to >=5.2.2,<5.5.0",27856297,dependabot-preview[bot],"Updates the requirements on [pytest](https://github.com/pytest-dev/pytest) to permit the latest version.
Release notes

Sourced from pytest's releases.

5.4.1

pytest 5.4.1 (2020-03-13)

Bug Fixes

  • #6909: Revert the change introduced by #6330, which required all arguments to @pytest.mark.parametrize to be explicitly defined in the function signature.

    The intention of the original change was to remove what was expected to be an unintended/surprising behavior, but it turns out many people relied on it, so the restriction has been reverted.

  • #6910: Fix crash when plugins return an unknown stats while using the --reportlog option.

Changelog

Sourced from pytest's changelog.

Commits
  • 3d0f3ba Preparing release version 5.4.1
  • b9e2cd0 Merge pull request #6914 from nicoddemus/revert-6330
  • a84fcbf Revert "[parametrize] enforce explicit argnames declaration (#6330)"
  • 59c1bfa Merge pull request #6913 from nicoddemus/backport-6910
  • 3267f64 Merge pull request #6910 from nicoddemus/resultlog-logreport
  • c9fd1bd Preparing release version 5.4.0
  • 93aa988 Merge pull request #6901 from RonnyPfannschmidt/regendoc-fix-simple
  • 7996724 Merge pull request #6902 from RoyalTS/filterwarnings-docfix
  • 90ee8a7 docfix
  • 378a75d run and fix tox -e regen to prepare 5.4
  • Additional commits viewable in compare view

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- **Note:** This repo was added to Dependabot recently, so you'll receive a maximum of 5 PRs for your first few update runs. Once an update run creates fewer than 5 PRs we'll remove that limit. You can always request more updates by clicking `Bump now` in your [Dependabot dashboard](https://app.dependabot.com).
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) - `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language - `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language - `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language - `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language - `@dependabot badge me` will comment on this PR with code to add a ""Dependabot enabled"" badge to your readme Additionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com): - Update frequency (including time of day and day of week) - Pull request limits (per update run and/or open at any time) - Out-of-range updates (receive only lockfile updates, if desired) - Security updates (receive only security updates, if desired)
",2020-04-08T01:25:04Z,2020-05-04T17:13:49Z,2020-05-04T17:13:41Z,2020-05-04T17:13:41Z,c91fb9e3d4f0632d4ef25a21165739ab88a9d491,,,,,0,54ea56285f9512c991e343ffad9d848d551977de,d55fe8cdfc2ce7bc6960bf2507766c1fcd1d31a7,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/721,,, 400579136,MDExOlB1bGxSZXF1ZXN0NDAwNTc5MTM2,722,closed,0,"Update jinja2 requirement from ~=2.10.3 to >=2.10.3,<2.12.0",27856297,dependabot-preview[bot],"Updates the requirements on [jinja2](https://github.com/pallets/jinja) to permit the latest version.
Release notes

Sourced from jinja2's releases.

2.11.1

This fixes an issue in async environment when indexing the result of an attribute lookup, like {{ data.items[1:] }}.

Changelog

Sourced from jinja2's changelog.

Version 2.11.1

Released 2020-01-30

  • Fix a bug that prevented looking up a key after an attribute ({{ data.items[1:] }}) in an async template. 1141

Version 2.11.0

Released 2020-01-27

  • Drop support for Python 2.6, 3.3, and 3.4. This will be the last version to support Python 2.7 and 3.5.
  • Added a new ChainableUndefined class to support getitem and getattr on an undefined object. 977
  • Allow {%+ syntax (with NOP behavior) when lstrip_blocks is disabled. 748
  • Added a default parameter for the map filter. 557
  • Exclude environment globals from meta.find_undeclared_variables. 931
  • Float literals can be written with scientific notation, like 2.56e-3. 912, 922
  • Int and float literals can be written with the '_' separator for legibility, like 12_345. 923
  • Fix a bug causing deadlocks in LRUCache.setdefault. 1000
  • The trim filter takes an optional string of characters to trim. 828
  • A new jinja2.ext.debug extension adds a {% debug %} tag to quickly dump the current context and available filters and tests. 174, 798, 983
  • Lexing templates with large amounts of whitespace is much faster. 857, 858
  • Parentheses around comparisons are preserved, so {{ 2 * (3 < 5) }} outputs "2" instead of "False". 755, 938
  • Add new boolean, false, true, integer and float tests. 824
  • The environment's finalize function is only applied to the output of expressions (constant or not), not static template data. 63
  • When providing multiple paths to FileSystemLoader, a template can have the same name as a directory. 821
  • Always return Undefined when omitting the else clause in a {{ 'foo' if bar }} expression, regardless of the environment's undefined class. Omitting the else clause is a valid shortcut and should not raise an error when using StrictUndefined. 710, 1079
  • Fix behavior of loop control variables such as length and revindex0 when looping over a generator. 459, 751, 794, 993
  • Async support is only loaded the first time an environment enables it, in order to avoid a slow initial import. 765
  • In async environments, the |map filter will await the filter call if needed. 913
  • In for loops that access loop attributes, the iterator is not advanced ahead of the current iteration unless length, revindex, nextitem, or last are accessed. This makes it less likely to break groupby results. 555, 1101
  • In async environments, the loop attributes length and revindex work for async iterators. 1101
  • In async environments, values from attribute/property access will be awaited if needed. 1101
  • ~loader.PackageLoader doesn't depend on setuptools or pkg_resources. 970
  • PackageLoader has limited support for 420 namespace packages. 1097
  • Support os.PathLike objects in ~loader.FileSystemLoader and ~loader.ModuleLoader. 870
  • ~nativetypes.NativeTemplate correctly handles quotes between expressions. "'{{ a }}', '{{ b }}'" renders as the tuple ('1', '2') rather than the string '1, 2'. 1020
  • Creating a ~nativetypes.NativeTemplate directly creates a ~nativetypes.NativeEnvironment instead of a default Environment. 1091
  • After calling LRUCache.copy(), the copy's queue methods point to the correct queue. 843
  • Compiling templates always writes UTF-8 instead of defaulting to the system encoding. 889
  • |wordwrap filter treats existing newlines as separate paragraphs to be wrapped individually, rather than creating short intermediate lines. 175
  • Add break_on_hyphens parameter to |wordwrap filter. 550
  • Cython compiled functions decorated as context functions will be passed the context. 1108
  • When chained comparisons of constants are evaluated at compile time, the result follows Python's behavior of returning False if any comparison returns False, rather than only the last one. 1102
  • Tracebacks for exceptions in templates show the correct line numbers and source for Python >= 3.7. 1104
  • Tracebacks for template syntax errors in Python 3 no longer show internal compiler frames. 763
  • Add a DerivedContextReference node that can be used by extensions to get the current context and local variables such as loop. 860
  • Constant folding during compilation is applied to some node types that were previously overlooked. 733
  • TemplateSyntaxError.source is not empty when raised from an included template. 457
... (truncated)
Commits
  • b85283e release version 2.11.1
  • 3d5bfc6 Merge pull request #1143 from pallets/bugfix/attribute-access
  • d61c1ea add changelog
  • 15d7e61 Added regression test for slicing of attributes
  • 05dee9b Fix attribute access in async code. Fixes #1141
  • bbdafe3 release version 2.11.0
  • 9ff27f6 add python 3.8 classifier, clean up changelog
  • d312609 isolate bytecode cache tests
  • 9849979 import Markup from markupsafe, fix flake8 import warnings
  • c6d864c increment bytecode cache version
  • Additional commits viewable in compare view

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- **Note:** This repo was added to Dependabot recently, so you'll receive a maximum of 5 PRs for your first few update runs. Once an update run creates fewer than 5 PRs we'll remove that limit. You can always request more updates by clicking `Bump now` in your [Dependabot dashboard](https://app.dependabot.com).
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) - `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language - `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language - `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language - `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language - `@dependabot badge me` will comment on this PR with code to add a ""Dependabot enabled"" badge to your readme Additionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com): - Update frequency (including time of day and day of week) - Pull request limits (per update run and/or open at any time) - Out-of-range updates (receive only lockfile updates, if desired) - Security updates (receive only security updates, if desired)
",2020-04-08T01:25:24Z,2020-05-04T17:13:26Z,2020-05-04T17:13:16Z,2020-05-04T17:13:16Z,aa064de3f400899dbf61f2d33a035fba4017596c,,,,,0,0a503b7fdb0cce1bb82e18c4552a4f92808fe41f,d55fe8cdfc2ce7bc6960bf2507766c1fcd1d31a7,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/722,,, 402645984,MDExOlB1bGxSZXF1ZXN0NDAyNjQ1OTg0,725,closed,0,"Update aiofiles requirement from ~=0.4.0 to >=0.4,<0.6",27856297,dependabot-preview[bot],"Updates the requirements on [aiofiles](https://github.com/Tinche/aiofiles) to permit the latest version.
Commits

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) - `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language - `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language - `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language - `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language - `@dependabot badge me` will comment on this PR with code to add a ""Dependabot enabled"" badge to your readme Additionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com): - Update frequency (including time of day and day of week) - Pull request limits (per update run and/or open at any time) - Out-of-range updates (receive only lockfile updates, if desired) - Security updates (receive only security updates, if desired)
",2020-04-13T13:32:47Z,2020-05-04T18:16:54Z,2020-05-04T16:17:49Z,2020-05-04T16:17:49Z,985e59493e44d6fcebf7a30f693f4edecee3e90d,,,,,0,a7053e8d17559a6ebb4265c0783b84cc6aaff7e2,d349d57cdf3d577afb62bdf784af342a4d5be660,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/725,,, 406067019,MDExOlB1bGxSZXF1ZXN0NDA2MDY3MDE5,728,closed,0,"Update mergedeep requirement from ~=1.1.1 to >=1.1.1,<1.4.0",27856297,dependabot-preview[bot],"Updates the requirements on [mergedeep](https://github.com/clarketm/mergedeep) to permit the latest version.
Commits
  • 3d6e7b4 v1.3.0 - support additive merging of Counter types
  • 56a258a v1.2.1 - tidy docs and variable names
  • 61ab213 v1.2.0 - support both TYPESAFE_REPLACE and TYPESAFE_ADDITIVE merge strategies...
  • b331bb5 cleanup Makefile
  • 6f577bf officially label support for python3.8
  • 84faf37 use pipenv for managing dev dependencies
  • 3a8761a Update README.md
  • See full diff in compare view

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) - `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language - `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language - `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language - `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language - `@dependabot badge me` will comment on this PR with code to add a ""Dependabot enabled"" badge to your readme Additionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com): - Update frequency (including time of day and day of week) - Pull request limits (per update run and/or open at any time) - Out-of-range updates (receive only lockfile updates, if desired) - Security updates (receive only security updates, if desired)
",2020-04-20T13:33:23Z,2020-05-04T16:45:58Z,2020-05-04T16:45:49Z,2020-05-04T16:45:49Z,e232f77055880b38cc0b738607cd50cde9188eaf,,,,,0,b584fbc4215d92df08360937916ffe128f11f72e,985e59493e44d6fcebf7a30f693f4edecee3e90d,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/728,,, 406677205,MDExOlB1bGxSZXF1ZXN0NDA2Njc3MjA1,730,closed,0,"Update pytest-asyncio requirement from ~=0.10.0 to >=0.10,<0.12",27856297,dependabot-preview[bot],"Updates the requirements on [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) to permit the latest version.
Commits
  • 1026c39 0.11.0
  • ab2b140 Test on Python 3.8, drop 3.3 and 3.4
  • 6397a22 plugin: Use pytest 5.4.0 new Function API
  • 21a0f94 Replace yield_fixture() by fixture()
  • 964b295 Added min hypothesis version so that bugfix for https://github.com/Hypothesis...
  • 4a11a20 Add max supported pytest version to < 5.4.0 to prevent fails until #141 is fi...
  • b305594 Change event_loop to module scope in hypothesis tests, fixing #145.
  • d5a0f47 Enable test_subprocess to be run on win, by changing to ProactorEventLoop in ...
  • d07cd2d Fix required pytest version
  • 86cd9a6 Handle BaseExceptions from loop.run_until_complete (#126)
  • Additional commits viewable in compare view

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) - `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language - `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language - `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language - `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language - `@dependabot badge me` will comment on this PR with code to add a ""Dependabot enabled"" badge to your readme Additionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com): - Update frequency (including time of day and day of week) - Pull request limits (per update run and/or open at any time) - Out-of-range updates (receive only lockfile updates, if desired) - Security updates (receive only security updates, if desired)
",2020-04-21T13:32:35Z,2020-05-04T13:27:24Z,2020-05-04T13:27:23Z,,460708c7107a7cf15971a9aa1040635f6bc1be6d,,,,,0,11c67f82cdccc6e34cbff717e673451ac6172ef4,15e232180427e988174fdf88440c84b91d2d98d1,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/730,,, 407929128,MDExOlB1bGxSZXF1ZXN0NDA3OTI5MTI4,734,closed,0,"Update janus requirement from ~=0.4.0 to >=0.4,<0.6",27856297,dependabot-preview[bot],"Updates the requirements on [janus](https://github.com/aio-libs/janus) to permit the latest version.
Changelog

Sourced from janus's changelog.

0.5.0 (2020-04-23)

  • Remove explicit loop arguments and forbid creating queues outside event loops #246

0.4.0 (2018-07-28)

  • Add py.typed macro #89
  • Drop python 3.4 support and fix minimal version python3.5.3 #88
  • Add property with that indicates if queue is closed #86

0.3.2 (2018-07-06)

  • Fixed python 3.7 support #97

0.3.1 (2018-01-30)

  • Fixed bug with join() in case tasks are added by sync_q.put() #75

0.3.0 (2017-02-21)

  • Expose unfinished_tasks property #34

0.2.4 (2016-12-05)

  • Restore tarball deploying

0.2.3 (2016-07-12)

  • Fix exception type

0.2.2 (2016-07-11)

  • Update asyncio.async() to use asyncio.ensure_future() #6

0.2.1 (2016-03-24)

  • Fix python setup.py test command #4

0.2.0 (2015-09-20)

... (truncated)
Commits
  • 8e89b45 Bump to 0.5.0
  • ec8592b Fix up Python 3.8 loop argument warnings (#246)
  • 2543af6 Bump coverage from 5.0.4 to 5.1
  • 03d1b36 Bump tox from 3.14.5 to 3.14.6
  • 8219c38 Bump coverage from 5.0.3 to 5.0.4
  • 85ec71d Bump pytest from 5.4.0 to 5.4.1
  • 3b974c9 Bump pytest from 5.3.5 to 5.4.0
  • 282dc12 Bump mypy from 0.761 to 0.770
  • 1364fb3 Bump tox from 3.14.4 to 3.14.5
  • dc519bb Bump tox from 3.14.3 to 3.14.4
  • Additional commits viewable in compare view

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) - `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language - `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language - `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language - `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language - `@dependabot badge me` will comment on this PR with code to add a ""Dependabot enabled"" badge to your readme Additionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com): - Update frequency (including time of day and day of week) - Pull request limits (per update run and/or open at any time) - Out-of-range updates (receive only lockfile updates, if desired) - Security updates (receive only security updates, if desired)
",2020-04-23T13:43:45Z,2020-05-04T16:48:14Z,2020-05-04T16:48:04Z,2020-05-04T16:48:04Z,109c5a430d53fe38b1300e0daa20f5cef047a08e,,,,,0,281b2c1acf1a2ef39c784dc73f1eb184d898d369,e232f77055880b38cc0b738607cd50cde9188eaf,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/734,,, 409123897,MDExOlB1bGxSZXF1ZXN0NDA5MTIzODk3,737,closed,0,"Custom pages mechanism, refs #648",9599,simonw,"Refs #648. TODO: - [x] Pass a `view_name` to `render_template()` - [x] Mechanism for custom status code / headers / redirect - [x] Documentation",2020-04-26T17:31:41Z,2020-04-26T18:46:43Z,2020-04-26T18:46:43Z,2020-04-26T18:46:43Z,304e7b1d9fd904ae1c35600bc03662eb90eeeae0,,,,,0,b5bbf1bd88f67a26eb34902bc11f2da7692c7af2,227bb3e91fe34811a9374150798643a5af98ed79,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/737,,, 409153870,MDExOlB1bGxSZXF1ZXN0NDA5MTUzODcw,739,closed,0,Configuration directory mode,9599,simonw,"Refs #731 TODO: - [x] Decide how to combine explicit command-line options with items detected from the directory structure - [x] Add unit tests - [x] Implement `inspect-data.json` mechanism for populating `immutables` - [x] Add documentation",2020-04-26T20:37:46Z,2020-04-27T16:30:25Z,2020-04-27T16:30:25Z,2020-04-27T16:30:25Z,25014ca25eb70b4c1217558ebd14db2845973bfb,,,,,0,0d8fa53fab672fcf16b6a75aa55b07ccd243fb96,1b7b66c465e44025ec73421bd69752e42f108321,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/739,,, 410469272,MDExOlB1bGxSZXF1ZXN0NDEwNDY5Mjcy,746,closed,0,"shutil.Error, not OSError",9599,simonw,Refs #744,2020-04-29T03:30:51Z,2020-04-29T07:07:24Z,2020-04-29T07:07:23Z,,e4e8b51b50e51b2515c6d8874d16c4607f79b80a,,,,,0,af3a5b91503f5d74aa111bbcd1ee531ee00f9ed7,89c4ddd4828623888e91a1d2cb396cba12d4e7b4,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/746,,, 412951191,MDExOlB1bGxSZXF1ZXN0NDEyOTUxMTkx,753,closed,0,"Update pytest-asyncio requirement from ~=0.10.0 to >=0.10,<0.13",27856297,dependabot-preview[bot],"Updates the requirements on [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) to permit the latest version.
Commits
  • b8e2a45 0.12.0
  • 06580c6 Update changelog
  • b45de23 Fixed failing test case, 'test_asyncio_marker_without_loop'.
  • 238cced Put event_loop first among the fixtures of asyncio tests, fixes #154.
  • e5e3dc7 Added unittests for issue #154.
  • a7e5795 0.12.0 open for business!
  • 1026c39 0.11.0
  • ab2b140 Test on Python 3.8, drop 3.3 and 3.4
  • 6397a22 plugin: Use pytest 5.4.0 new Function API
  • 21a0f94 Replace yield_fixture() by fixture()
  • Additional commits viewable in compare view

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) - `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language - `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language - `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language - `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language - `@dependabot badge me` will comment on this PR with code to add a ""Dependabot enabled"" badge to your readme Additionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com): - Update frequency (including time of day and day of week) - Pull request limits (per update run and/or open at any time) - Out-of-range updates (receive only lockfile updates, if desired) - Security updates (receive only security updates, if desired)
",2020-05-04T13:27:19Z,2020-05-04T17:41:01Z,2020-05-04T17:40:49Z,2020-05-04T17:40:49Z,b314e088c59425122fb2b2abde8741010d9d274a,,,,,0,877fb569d2ae460ce845c7c855b02e0cdac23b68,707fe039947b3e48f2b6dcfe8e577d76b617f2a5,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/753,,, 415286105,MDExOlB1bGxSZXF1ZXN0NDE1Mjg2MTA1,763,closed,0,Documentation + improvements for db.execute() and Results class,9599,simonw,"Refs #685 Still TODO: - [x] Implement `results.first()` - [x] Implement `results.single_value()` - [x] Unit tests for the above ",2020-05-08T15:16:02Z,2020-06-11T16:05:48Z,2020-05-08T16:05:46Z,2020-05-08T16:05:46Z,4433306c1855ad69840cc76cbd41086137572be2,,,,,0,1ea62c77221d07cd121367f1c6b620f8bde0716a,69e3a855dd7e5a77409d70b18c45ae3c1a145a75,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/763,,, 421491810,MDExOlB1bGxSZXF1ZXN0NDIxNDkxODEw,768,closed,0,Use dirs_exist_ok=True,9599,simonw,Refs #744,2020-05-21T17:53:44Z,2020-05-27T20:21:56Z,2020-05-21T17:53:51Z,2020-05-21T17:53:51Z,cee671a58f417f827d1735b1abaa40716534ea67,,,5471110,Datasette 0.43,0,f2e0a558238a34dc482803762de2509474a178c6,faea5093b865031f650da7da6539430f732f511a,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/768,,, 424032445,MDExOlB1bGxSZXF1ZXN0NDI0MDMyNDQ1,769,closed,0,Backport of Python 3.8 shutil.copytree,9599,simonw,Closes #744,2020-05-27T18:17:15Z,2020-05-27T20:21:56Z,2020-05-27T18:17:44Z,2020-05-27T18:17:44Z,2d099ad9c657d2cab59de91cdb8bfed2da236ef6,,,5471110,Datasette 0.43,0,6f80757f27e4651e6533856ea87b676dbc0d9c37,cee671a58f417f827d1735b1abaa40716534ea67,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/769,,, 424085264,MDExOlB1bGxSZXF1ZXN0NDI0MDg1MjY0,772,closed,0,Test that plugin hooks are unit tested,9599,simonw,Refs #771,2020-05-27T20:01:32Z,2020-05-27T20:21:56Z,2020-05-27T20:16:03Z,2020-05-27T20:16:02Z,da87e963bff24e47878a5bc2025c8bfc63d4bc93,,,5471110,Datasette 0.43,0,173b6947521f1c1b47a119f62f379bf4278c87c9,41a0cd7b6afe0397efbbf27ad822679fc574811a,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/772,,, 425531205,MDExOlB1bGxSZXF1ZXN0NDI1NTMxMjA1,783,closed,0,Authentication: plugin hooks plus default --root auth mechanism,9599,simonw,See #699,2020-05-30T22:25:47Z,2020-06-01T01:16:44Z,2020-06-01T01:16:43Z,2020-06-01T01:16:43Z,57cf5139c552cb7feab9947daa949ca434cc0a66,,,,,0,116a26ce2d4af26c928e361e1b24dd6a6bb14eca,c4fbe50676929b512940aab90de590a78ac5d7fc,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/783,,, 426891471,MDExOlB1bGxSZXF1ZXN0NDI2ODkxNDcx,796,closed,0,New WIP writable canned queries,9599,simonw,"Refs #698. Replaces #703 Still todo: - [x] Unit tests - ~~Figure out `.json` mode~~ - [x] Flash message solution - ~~CSRF protection~~ - [x] Better error message display on errors - [x] Documentation - ~~Maybe widgets?~~ I'll do these later",2020-06-03T00:08:00Z,2020-06-03T15:16:52Z,2020-06-03T15:16:50Z,2020-06-03T15:16:50Z,aa82d0370463580f2cb10d9617f1bcbe45cc994a,,,3268330,Datasette 1.0,0,e164939de719b5930ca4972e20490c9b2fd37f6d,9690ce606823bbfceb0c50d59e03adf7bb1a8475,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/796,,, 428212421,MDExOlB1bGxSZXF1ZXN0NDI4MjEyNDIx,798,closed,0,CSRF protection,9599,simonw,Refs #793,2020-06-05T04:22:35Z,2020-06-06T00:43:41Z,2020-06-05T19:05:58Z,2020-06-05T19:05:57Z,84a9c4ff75460f91c049bd30bba3cee1fd89d9e2,,,5512395,Datasette 0.44,0,fe43963376b1c44ec23a213277bcb33d98e4aef9,d96ac1d52cacf34bae09705eb8f9a0e3f81c426b,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/798,,, 429366641,MDExOlB1bGxSZXF1ZXN0NDI5MzY2NjQx,803,closed,0,Canned query permissions,9599,simonw,Refs #800. Closes #786,2020-06-06T18:20:00Z,2020-06-06T19:40:21Z,2020-06-06T19:40:20Z,2020-06-06T19:40:20Z,415ccd7cbdeebfb52f514a0387221023aa8b4d91,,,,,0,3359d54a4eb9c9725c27a85437661b5180c4099a,9c563d6aed072f14d3d25f58e84659f9caa1a243,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/803,,, 429613893,MDExOlB1bGxSZXF1ZXN0NDI5NjEzODkz,809,closed,0,Publish secrets,9599,simonw,Refs #787. Will need quite a bit of manual testing since this involves code which runs against Heroku and Cloud Run.,2020-06-07T02:00:31Z,2020-06-11T16:02:13Z,2020-06-11T16:02:03Z,2020-06-11T16:02:03Z,98632f0a874b7b9dac6abf0abb9fdb7e2839a4d3,,,5512395,Datasette 0.44,0,abdac31328646705a957d58429b88d185ef43ded,ce4958018ede00fbdadf0c37a99889b6901bfb9b,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/809,,, 431478724,MDExOlB1bGxSZXF1ZXN0NDMxNDc4NzI0,819,closed,0,register_routes() plugin hook,9599,simonw,Refs #215,2020-06-09T01:20:44Z,2020-06-09T03:12:08Z,2020-06-09T03:12:07Z,2020-06-09T03:12:07Z,f5e79adf26d0daa3831e3fba022f1b749a9efdee,,,5512395,Datasette 0.44,0,18127f074efc1b0148d1098da063e51ccea7797c,647c5ff0f3e8140f40d7f41f0874ce4e1f4df65c,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/819,,, 434055752,MDExOlB1bGxSZXF1ZXN0NDM0MDU1NzUy,844,closed,0,Action to run tests and upload coverage report,9599,simonw,Refs #843,2020-06-13T20:52:47Z,2020-06-13T21:36:52Z,2020-06-13T21:36:50Z,2020-06-13T21:36:50Z,cf7a2bdb404734910ec07abc7571351a2d934828,,,,,0,1210d9f41841bdca450f85a2342cdb0ff339c1b4,80c18a18fc444b89cc12b73599d56e091f3a3c87,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/844,,, 434085235,MDExOlB1bGxSZXF1ZXN0NDM0MDg1MjM1,848,closed,0,Reload support for config_dir mode.,49260,amjith,"A reference implementation for adding support to reload when datasette is in the config_dir mode. This implementation is flawed since it is watching the entire directory and any changes to the database will reload the server and adding unrelated files to the directory will also reload the server. ",2020-06-14T02:34:46Z,2020-07-03T02:44:54Z,2020-07-03T02:44:53Z,,888538efdbf545c0df524ca590a17fb6c6fa2419,,,,,0,0d100d15aca93fae200b3bc2e29dfd60aaa4b384,57879dc8b346a435804a9e45ffaacbf2a0228bc6,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/848,,, 434162316,MDExOlB1bGxSZXF1ZXN0NDM0MTYyMzE2,29,closed,0,Fixed bug in SQL query for photo scores,41546558,RhetTbull,"The join on ZCOMPUTEDASSETATTRIBUTES used the wrong columns. In most of the Photos database tables, table.ZASSET joins with ZGENERICASSET.Z_PK",2020-06-14T15:39:22Z,2020-12-04T22:32:36Z,2020-12-04T22:32:27Z,2020-12-04T22:32:27Z,edc80a0d361006f478f2904a90bfe6c730ed6194,,,,,0,f961a90788cb2059d40b9a0810900ac81e6859f6,45ce3f8bfb8c70f57ca5d8d82f22368fea1eb391,CONTRIBUTOR,256834907,dogsheep-photos,https://github.com/dogsheep/dogsheep-photos/pull/29,,, 439203808,MDExOlB1bGxSZXF1ZXN0NDM5MjAzODA4,866,closed,0,"Update pytest-asyncio requirement from <0.13,>=0.10 to >=0.10,<0.15",27856297,dependabot-preview[bot],"Updates the requirements on [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) to permit the latest version.
Commits
  • 53f3da7 Prepare for release
  • e99569d A line is added to the changelog.
  • 4099b63 One import is not needed
  • 68513b3 Clarify names and comments, according to yanlend comments 26 May
  • 907e8f2 FIX new test_cases on python 3.5 & 3.6
  • 51d986c To solve test cases that fail:
  • f97e900 1) Test case (test_async_fixtures_with_finalizer) refactoring to pass on pyth...
  • c1131f8 1) A new test case that fails with 0.12.0, and pass with this commit.
  • 7a255bc 0.13.0 open for business
  • b8e2a45 0.12.0
  • Additional commits viewable in compare view

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) - `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language - `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language - `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language - `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language - `@dependabot badge me` will comment on this PR with code to add a ""Dependabot enabled"" badge to your readme Additionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com): - Update frequency (including time of day and day of week) - Pull request limits (per update run and/or open at any time) - Out-of-range updates (receive only lockfile updates, if desired) - Security updates (receive only security updates, if desired)
",2020-06-24T13:21:47Z,2020-06-24T18:50:57Z,2020-06-24T18:50:56Z,2020-06-24T18:50:56Z,1bb33dab49fd25f77b9f8e7ab7ee23b3d64c123c,,,,,0,fb64dda76dda7354a77cb50c5864aff67a6fef8d,1a5b7d318fa923edfcefd3df8f64dae2e9c49d3f,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/866,,, 440735814,MDExOlB1bGxSZXF1ZXN0NDQwNzM1ODE0,868,open,0,initial windows ci setup,702729,joshmgrant,Picking up the work done on #557 with a new PR. Seeing if I can get this working.,2020-06-26T18:49:13Z,2021-07-10T23:41:43Z,,,b99adb1720a0b53ff174db54d0e4a67357b47f33,,,,,0,c99cabae638958ef057438a92cb9a182ba4f8188,180c7a5328457aefdf847ada366e296fef4744f1,FIRST_TIME_CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/868,,, 440946817,MDExOlB1bGxSZXF1ZXN0NDQwOTQ2ODE3,869,closed,0,Magic parameters for canned queries,9599,simonw,"Implementation for #842 TODO: - [x] Add tests for built-in magic parameters - [x] Magic parameters should not show up as blank form fields on the query page - [x] Update documentation for new `_request_X` (now called `_header_X`) implementation where X is a key from the ASGI scope - [x] Make sure these only work for canned queries, not for arbitrary SQL queries (security issue) - [x] Add test for the `register_magic_parameters` plugin hook - [x] Add documentation for the `register_magic_parameters` plugin hook ",2020-06-27T18:37:21Z,2020-06-28T02:58:18Z,2020-06-28T02:58:17Z,2020-06-28T02:58:17Z,563f5a2d3ab30ad08daee38f5ec3ed6429ac9206,,,5533512,Datasette 0.45,0,9e693a7aae3b4a0882881e3a1c182e1c0c753efd,4b142862f237f95a731cb8263a293eda70d13c82,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/869,,, 442505088,MDExOlB1bGxSZXF1ZXN0NDQyNTA1MDg4,883,open,0,Skip counting hidden tables,3243482,abdusco,"Potential fix for https://github.com/simonw/datasette/issues/859. Disabling table counts for hidden tables speeds up database page quite a bit. In my setup it reduced load time by 2/3 (~300 -> ~90ms)",2020-07-01T07:38:08Z,2020-07-02T00:25:44Z,,,527624338acd38b97bb33b0a0b913d80e8345fee,,,,,0,251884f58895faf8056b3dfdeae3bb92c5bc58ac,676bb64c877d73f8ff496cef4632f5a8a5a9283c,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/883,,, 443823040,MDExOlB1bGxSZXF1ZXN0NDQzODIzMDQw,890,closed,0,Load only python files from plugins-dir.,49260,amjith,"The current behavior for `--plugins-dir` is to load every file in that folder as a python module. This can result in errors if there are non-python files in the plugins dir (such as .mypy_cache). This PR restricts the module loading to only python files. ",2020-07-03T02:47:32Z,2020-07-03T03:08:33Z,2020-07-03T03:08:33Z,2020-07-03T03:08:33Z,ea99a4431ce5bc2d65a3496da5b38e1986550a96,,,,,0,745af3b72d95d91f3ccd703f4fab819bc9f4b6a4,57879dc8b346a435804a9e45ffaacbf2a0228bc6,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/890,,, 445023326,MDExOlB1bGxSZXF1ZXN0NDQ1MDIzMzI2,118,closed,0,Add insert --truncate option,79913,tsibley," Deletes all rows in the table (if it exists) before inserting new rows. SQLite doesn't implement a TRUNCATE TABLE statement but does optimize an unqualified DELETE FROM. This can be handy if you want to refresh the entire contents of a table but a) don't have a PK (so can't use --replace), b) don't want the table to disappear (even briefly) for other connections, and c) have to handle records that used to exist being deleted. Ideally the replacement of rows would appear instantaneous to other connections by putting the DELETE + INSERT in a transaction, but this is very difficult without breaking other code as the current transaction handling is inconsistent and non-systematic. There exists the possibility for the DELETE to succeed but the INSERT to fail, leaving an empty table. This is not much worse, however, than the current possibility of one chunked INSERT succeeding and being committed while the next chunked INSERT fails, leaving a partially complete operation.",2020-07-06T21:58:40Z,2020-07-08T17:26:21Z,2020-07-08T17:26:21Z,2020-07-08T17:26:21Z,ae4593316ccf5e42ad26f27033193834a7e696c8,,,,,0,332f7d770b84734dbed4842ab3ed24ee5b687889,f8277d0fb9c05a88a9ff01d996e31d55f0f0a645,CONTRIBUTOR,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/118,,, 445833908,MDExOlB1bGxSZXF1ZXN0NDQ1ODMzOTA4,120,closed,0,Fix query command's support for DML,79913,tsibley,See commit messages for details. I ran into this while investigating another feature/issue.,2020-07-08T01:36:34Z,2020-07-08T05:14:04Z,2020-07-08T05:14:04Z,2020-07-08T05:14:04Z,f8277d0fb9c05a88a9ff01d996e31d55f0f0a645,,,,,0,6a660d12a27864d6ab552e11eef9fd13bc281198,d0cdaaaf00249230e847be3a3b393ee2689fbfe4,CONTRIBUTOR,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/120,,, 448355680,MDExOlB1bGxSZXF1ZXN0NDQ4MzU1Njgw,30,open,0,Handle empty bucket on first upload. Allow specifying the endpoint_url for services other than S3 (like b2 and digitalocean spaces),110038,scanner,"Finally got around to trying dogsheep-photos but I want to use backblaze's b2 service instead of AWS S3. Had to add a way to optionally specify the endpoint_url to connect to. Then with the bucket being empty the initial key retrieval would fail. Probably a better way to see that the bucket is empty than doing a test inside the paginator loop. Also probably a better way to specify the endpoint_url as we get and test for it twice using the same code in two different places but did not want to spend too much time worrying about it.",2020-07-13T16:15:26Z,2020-07-13T16:15:26Z,,,583b26f244166aadf2dcc680e39d1ca59765da37,,,,,0,647d4b42c6f4d1fba4b99f73fe163946cea6ee36,45ce3f8bfb8c70f57ca5d8d82f22368fea1eb391,FIRST_TIME_CONTRIBUTOR,256834907,dogsheep-photos,https://github.com/dogsheep/dogsheep-photos/pull/30,,, 453890292,MDExOlB1bGxSZXF1ZXN0NDUzODkwMjky,901,closed,0,Use None as a default arg,56323389,Alyetama,"When passing a mutable value as a default argument in a function, the default argument is mutated anytime that value is mutated. This poses a bug risk. Instead, use None as a default and assign the mutable value inside the function.",2020-07-20T22:18:38Z,2020-07-31T18:42:39Z,2020-07-31T18:42:39Z,2020-07-31T18:42:39Z,2d7fa8b9058dfbf9c7c371cdeec115d32a177dc9,,,,,0,1285f28d82d9ca97e7543bb87fc6ff462855debe,d9a5ef1c32a4390e398653ebfd570f8e1a03d93e,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/901,,, 453995179,MDExOlB1bGxSZXF1ZXN0NDUzOTk1MTc5,902,closed,0,Don't install tests package,32467826,abeyerpath,"The `exclude` argument to `find_packages` needs an iterable of package names. Fixes: #456 ",2020-07-21T01:08:50Z,2020-07-24T20:39:54Z,2020-07-24T20:39:54Z,2020-07-24T20:39:54Z,6be5654ffab282e8cf39cc138ba2d4496ebc7407,,,,,0,9aa139dc98bd72a29ee1c940820bc05b0e717f1d,d9a5ef1c32a4390e398653ebfd570f8e1a03d93e,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/902,,, 458435592,MDExOlB1bGxSZXF1ZXN0NDU4NDM1NTky,910,closed,0,"Update pytest requirement from <5.5.0,>=5.2.2 to >=5.2.2,<6.1.0",27856297,dependabot-preview[bot],"Updates the requirements on [pytest](https://github.com/pytest-dev/pytest) to permit the latest version.
Release notes

Sourced from pytest's releases.

6.0.0

pytest 6.0.0 (2020-07-28)

(Please see the full set of changes for this release also in the 6.0.0rc1 notes below)

Breaking Changes

  • #5584: PytestDeprecationWarning are now errors by default.

    Following our plan to remove deprecated features with as little disruption as possible, all warnings of type PytestDeprecationWarning now generate errors instead of warning messages.

    The affected features will be effectively removed in pytest 6.1, so please consult the Deprecations and Removals section in the docs for directions on how to update existing code.

    In the pytest 6.0.X series, it is possible to change the errors back into warnings as a stopgap measure by adding this to your pytest.ini file:

    [pytest]
    filterwarnings =
        ignore::pytest.PytestDeprecationWarning
    

    But this will stop working when pytest 6.1 is released.

    If you have concerns about the removal of a specific feature, please add a comment to #5584.

  • #7472: The exec_() and is_true() methods of _pytest._code.Frame have been removed.

Features

  • #7464: Added support for NO_COLOR and FORCE_COLOR environment variables to control colored output.

Improvements

  • #7467: --log-file CLI option and log_file ini marker now create subdirectories if needed.
  • #7489: The pytest.raises function has a clearer error message when match equals the obtained string but is not a regex match. In this case it is suggested to escape the regex.

Bug Fixes

  • #7392: Fix the reported location of tests skipped with @pytest.mark.skip when --runxfail is used.
Changelog

Sourced from pytest's changelog.

Commits
  • 41a4539 Add link to 6.0.0rc1 changelog
  • 45ced1d Update doc/en/announce/release-6.0.0.rst
  • 1e4b8d4 Prepare release version 6.0.0
  • 3802982 Support generating major releases using issue comments (#7548)
  • c2c0b7a Merge pull request #7545 from asottile/pylib_in_docs
  • 9818899 remove usage of pylib in docs
  • 3a060b7 Revert change to traceback repr (#7535)
  • 7ec6401 Change pytest deprecation warnings into errors for 6.0 release (#7362)
  • a9799f0 Merge pull request #7531 from bluetech/changelog-mypy-version
  • 102360b Merge pull request #7519 from hroncok/pytest_warning_captured_deprecated
  • Additional commits viewable in compare view

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) - `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language - `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language - `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language - `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language - `@dependabot badge me` will comment on this PR with code to add a ""Dependabot enabled"" badge to your readme Additionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com): - Update frequency (including time of day and day of week) - Pull request limits (per update run and/or open at any time) - Out-of-range updates (receive only lockfile updates, if desired) - Security updates (receive only security updates, if desired)
",2020-07-29T13:21:17Z,2020-07-29T21:26:05Z,2020-07-29T21:26:04Z,2020-07-29T21:26:04Z,c5c12a797f0b81cd5862dcd50354b4b571e9bf5a,,,,,0,3493915bbce6a279659df3d6b09ba0d36a8f9793,3c33b421320c0be81a625ca7307b2e4416a9ed5b,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/910,,, 466410755,MDExOlB1bGxSZXF1ZXN0NDY2NDEwNzU1,927,closed,0,"'datasette --get' option, refs #926",9599,simonw,"Refs #926, #898",2020-08-11T23:31:52Z,2020-08-12T00:24:42Z,2020-08-12T00:24:41Z,2020-08-12T00:24:41Z,e139a7619f63d45ca2ff1ee108b933e17b5675b3,,,,,0,2111da01a03cfc62303b6a4b59ea9f96d22c0f78,83eda049af3f38d4289118d3576f96b2535084b1,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/927,,, 468370658,MDExOlB1bGxSZXF1ZXN0NDY4MzcwNjU4,936,closed,0,Don't hang in db.execute_write_fn() if connection fails,9599,simonw,Refs #935,2020-08-15T22:20:12Z,2020-08-15T22:35:33Z,2020-08-15T22:35:32Z,2020-08-15T22:35:32Z,b86f94883b1d827f85b07009e8346b8e9c6eeefa,,,,,0,94a68b95a21f29526d66e88bf5ea524a3efcc609,13b3b51087964d5e1a8c1cdd2495e07bdbe176b8,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/936,,, 468377212,MDExOlB1bGxSZXF1ZXN0NDY4Mzc3MjEy,937,closed,0,Docs now live at docs.datasette.io,9599,simonw,,2020-08-15T23:53:52Z,2020-08-15T23:57:06Z,2020-08-15T23:57:05Z,2020-08-15T23:57:05Z,41ddc197561ac2d2a1bb988956c301a523c6ca35,,,,,0,ff2605af65e023564cd7b57382b116e94b9d4f16,af12f45c2b0e4782ca92c2d00481dc47ccb7a046,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/937,,, 468484031,MDExOlB1bGxSZXF1ZXN0NDY4NDg0MDMx,941,closed,0,"Run CI on GitHub Actions, not Travis",9599,simonw,Refs #940,2020-08-16T19:13:39Z,2020-08-18T05:09:36Z,2020-08-18T05:09:35Z,2020-08-18T05:09:35Z,5e0b72247ecab4ce0fcec599b77a83d73a480872,,,,,0,f5a72e11b632b01acc41c07f6f4cfffa1a7ed14e,52eabb019d4051084b21524bd0fd9c2731126985,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/941,,, 469651732,MDExOlB1bGxSZXF1ZXN0NDY5NjUxNzMy,48,closed,0,Add pull requests,755825,adamjonas,"ref #46 Issues don't have merge information on them, which means that PRs need to be pulled separately. Did my best to mimic the API of issues.",2020-08-18T17:58:44Z,2020-11-29T23:51:09Z,2020-11-29T23:51:09Z,2020-11-29T23:51:09Z,b37f55549461cfe0731b57623f315860b3db49d0,,,,,0,3a0d5c498f9faae4e40aab204cd01b965a4f61f3,16d271253f4ea71b261d2d228b926c7bc1a7e660,CONTRIBUTOR,207052882,github-to-sqlite,https://github.com/dogsheep/github-to-sqlite/pull/48,,, 469944999,MDExOlB1bGxSZXF1ZXN0NDY5OTQ0OTk5,49,closed,0,"Document the use of --stop_after with favorites, refs #20",370930,mikepqr,(I discovered this trawling the issues for how to use --since with favorites),2020-08-19T06:10:52Z,2021-08-20T00:02:11Z,2021-08-20T00:02:11Z,2021-08-20T00:02:10Z,b6a4da8be3b6d4b74c6a5fac8924bf22a6824f2c,,,,,0,7ace806c81faf31c1aace0f0b2a4c17dd72cfa06,21fc1cad6dd6348c67acff90a785b458d3a81275,CONTRIBUTOR,206156866,twitter-to-sqlite,https://github.com/dogsheep/twitter-to-sqlite/pull/49,,, 474703007,MDExOlB1bGxSZXF1ZXN0NDc0NzAzMDA3,952,closed,0,"Update black requirement from ~=19.10b0 to >=19.10,<21.0",27856297,dependabot-preview[bot],"Updates the requirements on [black](https://github.com/psf/black) to permit the latest version.
Changelog

Sourced from black's changelog.

20.8b1

Packaging

  • explicitly depend on Click 7.1.2 or newer as Black no longer works with versions older than 7.0

20.8b0

Black

  • re-implemented support for explicit trailing commas: now it works consistently within any bracket pair, including nested structures (#1288 and duplicates)

  • Black now reindents docstrings when reindenting code around it (#1053)

  • Black now shows colored diffs (#1266)

  • Black is now packaged using 'py3' tagged wheels (#1388)

  • Black now supports Python 3.8 code, e.g. star expressions in return statements (#1121)

  • Black no longer normalizes capital R-string prefixes as those have a community-accepted meaning (#1244)

  • Black now uses exit code 2 when specified configuration file doesn't exit (#1361)

  • Black now works on AWS Lambda (#1141)

  • added --force-exclude argument (#1032)

  • removed deprecated --py36 option (#1236)

  • fixed --diff output when EOF is encountered (#526)

  • fixed # fmt: off handling around decorators (#560)

  • fixed unstable formatting with some # type: ignore comments (#1113)

  • fixed invalid removal on organizing brackets followed by indexing (#1575)

  • introduced black-primer, a CI tool that allows us to run regression tests against existing open source users of Black (#1402)

  • introduced property-based fuzzing to our test suite based on Hypothesis and Hypothersmith (#1566)

  • implemented experimental and disabled by default long string rewrapping (#1132), hidden under a --experimental-string-processing flag while it's being worked on;

Commits

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) - `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language - `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language - `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language - `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language - `@dependabot badge me` will comment on this PR with code to add a ""Dependabot enabled"" badge to your readme Additionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com): - Update frequency (including time of day and day of week) - Pull request limits (per update run and/or open at any time) - Out-of-range updates (receive only lockfile updates, if desired) - Security updates (receive only security updates, if desired)
",2020-08-27T13:31:36Z,2020-09-02T22:26:17Z,2020-09-02T22:26:16Z,,37f8531b321855bdbc58960281957febaa59e4b9,,,,,0,7b1354706467136f5030504fe799201b13333a95,86aefc39c5aca01b00dbc57ba386a6743c21fb46,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/952,,, 475665984,MDExOlB1bGxSZXF1ZXN0NDc1NjY1OTg0,142,closed,0,"insert_all(..., alter=True) should work for new columns introduced after the first 100 records",96218,simonwiles,Closes #139.,2020-08-28T22:22:57Z,2020-08-30T07:28:23Z,2020-08-28T22:30:14Z,2020-08-28T22:30:14Z,947bb7626fd1763608a470adf9cf5f156ef003e9,,,,,0,1b992c7c1e5855caa87c7939efad287052f446f3,ea87c2b943fdd162c42a900ac0aea5ecc2f4b9d9,CONTRIBUTOR,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/142,,, 475874493,MDExOlB1bGxSZXF1ZXN0NDc1ODc0NDkz,146,closed,0,Handle case where subsequent records (after first batch) include extra columns,96218,simonwiles,"Addresses #145. I think this should do the job. If it meets with your approval I'll update this PR to include an update to the documentation -- I came across this bug while preparing a PR to update the documentation around `batch_size` in any event.",2020-08-30T07:13:58Z,2020-09-08T23:20:37Z,2020-09-08T23:20:37Z,2020-09-08T23:20:36Z,e6d202b742a7b531fffa593703d34f8337632d68,,,,,0,40fcea41525682fdc2f601da787b29d5a8517dcd,deb2eb013ff85bbc828ebc244a9654f0d9c3139e,CONTRIBUTOR,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/146,,, 481616704,MDExOlB1bGxSZXF1ZXN0NDgxNjE2NzA0,151,closed,0,Tracer mechanism for seeing underlying SQL,9599,simonw,"Refs #150. Needs tests and documentation, including for the new `db.execute()` and `db.executescript()` methods.",2020-09-07T19:46:43Z,2020-09-07T21:57:00Z,2020-09-07T21:57:00Z,2020-09-07T21:57:00Z,cf2cb244faf992118f34aa196387a4ef8b39a20f,,,,,0,dc82bf371911d01ac140f40ea99d06d2daee507e,3e87500e1561f5c4e105cd026d33e0f715cc7dea,OWNER,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/151,,, 483027587,MDExOlB1bGxSZXF1ZXN0NDgzMDI3NTg3,156,closed,0,Typos in tests,96218,simonwiles,"One of these is my fault, and the other is one I just happened to come across. They're harmless, but might as well be fixed.",2020-09-09T18:00:58Z,2020-09-09T18:24:50Z,2020-09-09T18:21:23Z,2020-09-09T18:21:23Z,367082e787101fb90901ef3214804ab23a92ce46,,,,,0,b777776753ef08f35dfaa7d86b2d5082e8904f27,6be61263642d8e46ec54cf5f51af74e0df2f2393,CONTRIBUTOR,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/156,,, 483175509,MDExOlB1bGxSZXF1ZXN0NDgzMTc1NTA5,158,closed,0,Fix accidental mega long line in docs,167319,tomviner,,2020-09-09T22:31:23Z,2020-09-16T06:21:43Z,2020-09-16T06:21:43Z,2020-09-16T06:21:43Z,7805d53bcf11199bd1f2b07e05ae90151f9d0eb0,,,,,0,5c1d8a5f3ac8684657eefe4f57ff5ff605f6b633,367082e787101fb90901ef3214804ab23a92ce46,CONTRIBUTOR,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/158,,, 490607949,MDExOlB1bGxSZXF1ZXN0NDkwNjA3OTQ5,161,closed,0,table.transform() method,9599,simonw,"Refs #114 - [x] Ability to change the primary key - [x] Support for changing default value for columns - [x] Support for changing `NOT NULL` status of columns - [x] Support for copying existing foreign keys and removing them - Support for `conversions=` parameter - [x] Detailed documentation - [x] `PRAGMA foreign_keys` stuff",2020-09-21T23:16:59Z,2020-09-22T07:48:24Z,2020-09-22T04:20:02Z,2020-09-22T04:20:02Z,987dd123f2ac43c5ab66d69e59d454fe09660606,,,5897911,2.20,0,dc3eb9c313502832c07f4de889aa60c373f45b52,ef882986d07f157b6bcc6be3d7b64270fda3e523,OWNER,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/161,,, 490703173,MDExOlB1bGxSZXF1ZXN0NDkwNzAzMTcz,166,closed,0,Keyword only arguments for transform(),9599,simonw,Refs #165,2020-09-22T05:41:44Z,2020-09-22T06:39:11Z,2020-09-22T06:39:11Z,2020-09-22T06:39:10Z,f8e10df00eae209fb0a1ea03384d9153f673a3ec,,,,,0,f8648cac3a6dda90578a1536cdae44d145633a2c,987dd123f2ac43c5ab66d69e59d454fe09660606,OWNER,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/166,,, 492257405,MDExOlB1bGxSZXF1ZXN0NDkyMjU3NDA1,174,closed,0,"Much, much faster extract() implementation",9599,simonw,Takes my test down from ten minutes to four seconds. Refs #172.,2020-09-24T07:52:31Z,2020-09-24T15:44:00Z,2020-09-24T15:43:56Z,2020-09-24T15:43:56Z,022cdd97a9ddab1a152e23e1e1c42e78c1ed0fa9,,,,,0,227095ee90e2a92effec6478d3e629a24d3ccfba,0ca5585fcb834122193e8e7186f926217b23cb8a,OWNER,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/174,,, 493162767,MDExOlB1bGxSZXF1ZXN0NDkzMTYyNzY3,178,closed,0,Update README.md,19921,shakeel,"The `sqlite-utils insert releases.db releases - --pk` is missing the pk field name, added ` ""id""` to fix it.",2020-09-25T15:52:11Z,2020-10-01T14:18:30Z,2020-09-30T20:29:28Z,2020-09-30T20:29:28Z,cada1017edcfa691c2314d7ad1b7c7576495317f,,,,,0,0c6a81dae802a55d5469c18cd32402d11b6e8a59,94fc62857ee2655a21d85f6dae84b67bbfa5956d,CONTRIBUTOR,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/178,,, 494146043,MDExOlB1bGxSZXF1ZXN0NDk0MTQ2MDQz,977,closed,0,"Update pytest requirement from <6.1.0,>=5.2.2 to >=5.2.2,<6.2.0",27856297,dependabot-preview[bot],"Updates the requirements on [pytest](https://github.com/pytest-dev/pytest) to permit the latest version.
Release notes

Sourced from pytest's releases.

6.1.0

pytest 6.1.0 (2020-09-26)

Breaking Changes

  • #5585: As per our policy, the following features which have been deprecated in the 5.X series are now removed:

    • The funcargnames read-only property of FixtureRequest, Metafunc, and Function classes. Use fixturenames attribute.
    • @pytest.fixture no longer supports positional arguments, pass all arguments by keyword instead.
    • Direct construction of Node subclasses now raise an error, use from_parent instead.
    • The default value for junit_family has changed to xunit2. If you require the old format, add junit_family=xunit1 to your configuration file.
    • The TerminalReporter no longer has a writer attribute. Plugin authors may use the public functions of the TerminalReporter instead of accessing the TerminalWriter object directly.
    • The --result-log option has been removed. Users are recommended to use the pytest-reportlog plugin instead.

    For more information consult Deprecations and Removals in the docs.

Deprecations

  • #6981: The pytest.collect module is deprecated: all its names can be imported from pytest directly.

  • #7097: The pytest._fillfuncargs function is deprecated. This function was kept for backward compatibility with an older plugin.

    It's functionality is not meant to be used directly, but if you must replace it, use function._request._fillfixtures() instead, though note this is not a public API and may break in the future.

  • #7210: The special -k '-expr' syntax to -k is deprecated. Use -k 'not expr' instead.

    The special -k 'expr:' syntax to -k is deprecated. Please open an issue if you use this and want a replacement.

  • #7255: The pytest_warning_captured <_pytest.hookspec.pytest_warning_captured> hook is deprecated in favor of pytest_warning_recorded <_pytest.hookspec.pytest_warning_recorded>, and will be removed in a future version.

  • #7648: The gethookproxy() and isinitpath() methods of FSCollector and Package are deprecated; use self.session.gethookproxy() and self.session.isinitpath() instead. This should work on all pytest versions.

Features

  • #7667: New --durations-min command-line flag controls the minimal duration for inclusion in the slowest list of tests shown by --durations. Previously this was hard-coded to 0.005s.

Improvements

Changelog

Sourced from pytest's changelog.

Commits
  • 868bc00 Prepare release version 6.1.0
  • 0b327cc Merge pull request #7796 from bluetech/changelog-cleanups
  • d3c746e changelog: some consistency cleanups
  • d3f47bf Improved 'Declaring new hooks' section in docs. (#7782)
  • 3db2489 Merge pull request #7784 from nicoddemus/use-new-pip-solver-7783
  • 8215625 Use new pip resolver in plugins tox env
  • 5cfd7c0 Merge pull request #7780 from bluetech/final
  • a99ca87 Mark some public and to-be-public classes as @final
  • 050c2df Use multiple issue template types and mention Discussions (#7739)
  • cdfdb3a Add docs about reusing fixtures from other projects (#7772)
  • Additional commits viewable in compare view

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) - `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language - `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language - `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language - `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language - `@dependabot badge me` will comment on this PR with code to add a ""Dependabot enabled"" badge to your readme Additionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com): - Update frequency (including time of day and day of week) - Pull request limits (per update run and/or open at any time) - Out-of-range updates (receive only lockfile updates, if desired) - Security updates (receive only security updates, if desired)
",2020-09-28T13:33:05Z,2020-09-28T22:16:36Z,2020-09-28T22:16:35Z,2020-09-28T22:16:35Z,1f021c37110fc9019b0ef70062c28c335e568ae2,,,,,0,5c01344a0ee3e0e7ad59e1cd8b0e63c976be71ee,9a6d0dce282e7fb58c5610e24c74098c923abfdc,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/977,,, 496298180,MDExOlB1bGxSZXF1ZXN0NDk2Mjk4MTgw,986,closed,0,"Allow facet by primary keys, fixes #985",39452697,MrNaif2018,"Hello! This PR makes it possible to facet by primary keys. Did I get it right that just removing the condition on UI side is enough? From testing it works fine with primary keys, just as with normal keys. If so, should I also remove unused `data-is-pk`?",2020-10-01T14:18:55Z,2020-10-01T16:51:45Z,2020-10-01T16:51:45Z,,58906c597f1217381f5d746726bcb8bdfa8f52f8,,,,,0,76f7094bd33f037a1c689a173f0dbbb988e6dcdd,141544613f9e76ddb74eee38d6f8ee1e0e70f833,NONE,107914493,datasette,https://github.com/simonw/datasette/pull/986,,, 498104830,MDExOlB1bGxSZXF1ZXN0NDk4MTA0ODMw,994,closed,0,Run tests against Python 3.9,9599,simonw,,2020-10-05T20:40:13Z,2020-10-09T16:22:51Z,2020-10-09T16:22:50Z,2020-10-09T16:22:50Z,6e091b14b651d67e0ff41a353d36bbeb1d8ba235,,,,,0,ecba5d257ef4218a98b5903d856a4d7c0382f43d,e807c4eac0e85ae15e013379b0dde1d797f1377d,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/994,,, 498630708,MDExOlB1bGxSZXF1ZXN0NDk4NjMwNzA4,995,closed,0,Document setting Google Cloud SDK properties,110420,ghing,Document setting Google Cloud SDK properties to avoid having to respond to interactive prompts when running `datasette publish cloudrun`.,2020-10-06T15:18:01Z,2020-10-08T23:55:30Z,2020-10-06T16:25:38Z,2020-10-06T16:25:38Z,ca5ba6b77b4c973fa7ba91008a2e99debfa306b4,,,5971510,Datasette 0.50,0,aed2cf9f470bdc0b704ee62032fe0dcb1e557e43,5a184a5d211d3226e0417ee5cf8476cd887cd35e,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/995,,, 499603359,MDExOlB1bGxSZXF1ZXN0NDk5NjAzMzU5,184,closed,0,Test against Python 3.9,9599,simonw,,2020-10-08T01:37:05Z,2020-10-08T01:44:06Z,2020-10-08T01:44:06Z,2020-10-08T01:44:06Z,8e91de8e4edf6c8abeeccdf084b8870fff40a51a,,,,,0,975c05b6dde9feebcdecabc047d47122ebcfdf84,7f4fe9190c1df7f0e72f9d7040327a43cf252c48,OWNER,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/184,,, 500256485,MDExOlB1bGxSZXF1ZXN0NTAwMjU2NDg1,1000,closed,0,datasette.client internal requests mechanism,9599,simonw,Refs #943,2020-10-08T23:58:25Z,2020-10-09T16:11:26Z,2020-10-09T16:11:25Z,2020-10-09T16:11:25Z,8f97b9b58e77f82fef1f10e9c9f6754b993544b6,9599,simonw,5971510,Datasette 0.50,0,8a80c79deb640bc1a1864132a3564ccca59e8858,7249ac5ca04b5ddc6517750326ee7e522cc49145,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/1000,,, 500798091,MDExOlB1bGxSZXF1ZXN0NTAwNzk4MDkx,1008,open,0,Add json_loads and json_dumps jinja2 filters,649467,mhalle,,2020-10-09T20:11:34Z,2020-12-15T02:30:28Z,,,e33e91ca7c9b2fdeab9d8179ce0d603918b066aa,,,,,0,40858989d47043743d6b1c9108528bec6a317e43,1bdbc8aa7f4fd7a768d456146e44da86cb1b36d1,FIRST_TIME_CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1008,,, 501579088,MDExOlB1bGxSZXF1ZXN0NTAxNTc5MDg4,1017,closed,0,"Update janus requirement from <0.6,>=0.4 to >=0.4,<0.7",27856297,dependabot-preview[bot],"Updates the requirements on [janus](https://github.com/aio-libs/janus) to permit the latest version.
Changelog

Sourced from janus's changelog.

Changes

0.5.0 (2020-04-23)

  • Remove explicit loop arguments and forbid creating queues outside event loops #246

0.4.0 (2018-07-28)

  • Add py.typed macro #89
  • Drop python 3.4 support and fix minimal version python3.5.3 #88
  • Add property with that indicates if queue is closed #86

0.3.2 (2018-07-06)

  • Fixed python 3.7 support #97

0.3.1 (2018-01-30)

  • Fixed bug with join() in case tasks are added by sync_q.put() #75

0.3.0 (2017-02-21)

  • Expose unfinished_tasks property #34

0.2.4 (2016-12-05)

  • Restore tarball deploying

0.2.3 (2016-07-12)

  • Fix exception type

0.2.2 (2016-07-11)

  • Update asyncio.async() to use asyncio.ensure_future() #6

0.2.1 (2016-03-24)

  • Fix python setup.py test command #4
Commits
  • d186724 Fix yaml
  • dbb2d7b Fix deploy script
  • 18df625 Bump to 0.6.0
  • a50b7ec Test on ubuntu only, the library has no platform specific dependencies
  • b599d94 Fix workflow
  • 9897fca Setup github workflows
  • cde6918 Drop Python 3.5, test on Python 3.9, format with black/isort
  • 5f04d79 Support Python 3.9 officially
  • ac23eb7 janus: remove unused type ignores (#287)
  • 0da8f95 Make all tests non-skipped again
  • Additional commits viewable in compare view

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) - `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language - `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language - `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language - `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language - `@dependabot badge me` will comment on this PR with code to add a ""Dependabot enabled"" badge to your readme Additionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com): - Update frequency (including time of day and day of week) - Pull request limits (per update run and/or open at any time) - Out-of-range updates (receive only lockfile updates, if desired) - Security updates (receive only security updates, if desired)
",2020-10-12T13:29:46Z,2020-10-14T21:52:08Z,2020-10-14T21:52:07Z,2020-10-14T21:52:07Z,7f2edb5dd2074dce0090659021991695a984844b,,,,,0,f30d9da06b02a53f880b6fe7a7af9d3ff719dede,acf07a67722aa74828744726187690b59d342494,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1017,,, 501579315,MDExOlB1bGxSZXF1ZXN0NTAxNTc5MzE1,1018,closed,0,"Update asgiref requirement from ~=3.2.10 to >=3.2.10,<3.4.0",27856297,dependabot-preview[bot],"Updates the requirements on [asgiref](https://github.com/django/asgiref) to permit the latest version.
Changelog

Sourced from asgiref's changelog.

3.3.0 (2020-10-09)

  • sync_to_async now defaults to thread-sensitive mode being on
  • async_to_sync now works inside of forked processes
  • WsgiToAsgi now correctly clamps its response body when Content-Length is set

3.2.10 (2020-08-18)

  • Fixed bugs due to bad WeakRef handling introduced in 3.2.8

3.2.9 (2020-06-16)

  • Fixed regression with exception handling in 3.2.8 related to the contextvars fix.

3.2.8 (2020-06-15)

  • Fixed small memory leak in local.Local
  • contextvars are now persisted through AsyncToSync

3.2.7 (2020-03-24)

  • Bug fixed in local.Local where deleted Locals would occasionally inherit their storage into new Locals due to memory reuse.

3.2.6 (2020-03-23)

  • local.Local now works in all threading situations, no longer requires periodic garbage collection, and works with libraries that monkeypatch threading (like gevent)

3.2.5 (2020-03-11)

  • self is now preserved on methods by async_to_sync

3.2.4 (2020-03-10)

Commits
  • 7dba5ff Releasing 3.3.0
  • e1e0dd9 Added ZeroCopy extension
  • 3834d13 Added rpc.py to Implementations (#198)
  • 03b0dbb Clamped WsgiToAsgi response body using Content-Length value
  • cfd82e4 Fix linting with unused import removal
  • cc1877e Fix import sorting in previous commit.
  • 7becc9d Making thread_sensitive=True the default
  • 66a6e68 Fixed #194: Made async_to_sync work inside a fork
  • 4ab9d8e Fixed #193: Bumped docs version to 3.0
  • 1c9d063 Clarified "Optional" meaning (#190)
  • Additional commits viewable in compare view

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) - `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language - `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language - `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language - `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language - `@dependabot badge me` will comment on this PR with code to add a ""Dependabot enabled"" badge to your readme Additionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com): - Update frequency (including time of day and day of week) - Pull request limits (per update run and/or open at any time) - Out-of-range updates (receive only lockfile updates, if desired) - Security updates (receive only security updates, if desired)
",2020-10-12T13:30:09Z,2020-10-14T21:51:36Z,2020-10-14T21:51:35Z,2020-10-14T21:51:35Z,b4a8e70957517ff44d6a9121422d266a3c5fd664,,,,,0,4b021be087d0dba2b4ac0b872b2512f5b2203397,acf07a67722aa74828744726187690b59d342494,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1018,,, 501791663,MDExOlB1bGxSZXF1ZXN0NTAxNzkxNjYz,10,closed,0,Update utils.py to fix sqlite3.OperationalError,29426418,mattiaborsoi,"Fixes the errors: - sqlite3.OperationalError: table posts has no column named text - sqlite3.OperationalError: table photos has no column named hasSticker That will cause sqlite-utils to notice if there's a missing column and add it. As recommended by @simonw",2020-10-12T20:17:53Z,2020-10-12T20:25:10Z,2020-10-12T20:25:09Z,2020-10-12T20:25:09Z,a5a2b5feb56fef4f2b627699b7d628ee9d2d63db,,,,,0,c7bdb0207708a9eb40ba095039f0918fd103b176,f4a82633da927cde672c9d9af92930bfca2e3ddf,CONTRIBUTOR,205429375,swarm-to-sqlite,https://github.com/dogsheep/swarm-to-sqlite/pull/10,,, 503685077,MDExOlB1bGxSZXF1ZXN0NTAzNjg1MDc3,1022,closed,0,Fix table name in spatialite example command,639012,jsfenfen,The example query for creating a new point geometry seems to be using a table called 'museums' but at one point it instead uses 'events'. I *believe* it is intended to be museums (the example makes more sense if so). ,2020-10-14T22:19:34Z,2020-10-14T23:46:46Z,2020-10-14T23:46:46Z,2020-10-14T23:46:46Z,4f7c0ebd85ccd8c1853d7aa0147628f7c1b749cc,,,,,0,7cef70a5528af4626302729ff0ebc88d92b5f4ca,7f2edb5dd2074dce0090659021991695a984844b,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1022,,, 505076418,MDExOlB1bGxSZXF1ZXN0NTA1MDc2NDE4,5,open,0,Add fitbit-to-sqlite,4632208,mrphil007,,2020-10-16T20:04:05Z,2020-10-16T20:04:05Z,,,9b9a677a4fcb6a31be8c406b3050cfe1c6e7e398,,,,,0,db64d60ee92448b1d2a7e190d9da20eb306326b0,d0686ebed6f08e9b18b4b96c2b8170e043a69adb,FIRST_TIME_CONTRIBUTOR,214746582,dogsheep.github.io,https://github.com/dogsheep/dogsheep.github.io/pull/5,,, 505339515,MDExOlB1bGxSZXF1ZXN0NTA1MzM5NTE1,1029,closed,0,fix(docs): broken link,17075617,jthodge,This PR fixes a broken markdown link in the `Publish` docs page.,2020-10-17T20:03:20Z,2020-10-17T20:05:04Z,2020-10-17T20:05:04Z,2020-10-17T20:05:04Z,568bd7bbf590861687db8c318f3d8cfcd1dfb47a,,,,,0,a65d30e832d7e65adc65dcce8ab006227e4dafe4,4f7c0ebd85ccd8c1853d7aa0147628f7c1b749cc,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1029,,, 505453900,MDExOlB1bGxSZXF1ZXN0NTA1NDUzOTAw,1030,open,0,Make `package` command deal with a configuration directory argument,299380,frankier,Currently if we run `datasette package` on a configuration directory we'll get an exception when we try to hard link to the directory. This PR copies the tree and makes the Dockerfile run inspect on all *.db files.,2020-10-18T11:07:02Z,2020-10-19T08:01:51Z,,,124142e4d2710525b09ff2bd2a7a787cbed163a4,,,,,0,e0825334692967fec195e104cb6aa11095807a8e,c37a0a93ecb847e66cfe7b6f9452ba210fcae91b,FIRST_TIME_CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1030,,, 505769462,MDExOlB1bGxSZXF1ZXN0NTA1NzY5NDYy,1031,closed,0,Fallback to databases in inspect-data.json when no -i options are passed,299380,frankier,Currenlty `Datasette.__init__` checks immutables against None to decide whether to fallback to inspect-data.json. This patch modifies the serve command to pass None when no -i options are passed so this fallback works correctly.,2020-10-19T07:51:06Z,2021-03-29T01:46:45Z,2021-03-29T00:23:41Z,,3ee6b39e96ef684e1ac393bb269d804e957fee1d,,,,,0,7e7eaa4e712b01de0b5a8a1b90145bdc1c3cd731,c37a0a93ecb847e66cfe7b6f9452ba210fcae91b,FIRST_TIME_CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1031,,, 507267087,MDExOlB1bGxSZXF1ZXN0NTA3MjY3MDg3,1038,closed,0,DOC: Fix syntax error,194147,gerrymanoim,"If I understand https://docs.datasette.io/en/stable/plugin_hooks.html#register-routes correctly, `register_routes` should return a `List[Tuple[str, Callable]]`. I believe the current code in documentation has a syntax error (extra `)`). ",2020-10-21T05:45:38Z,2020-10-21T22:57:21Z,2020-10-21T22:44:17Z,2020-10-21T22:44:17Z,6e26b057996c6f3fefa8ad528e2759e53c738844,,,,,0,7fc0cce6a2d13ccc82c3584996acec236ae65df6,66120a7a1cb592e8a21164cf537f62a4d7ab1dfc,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1038,,, 507903392,MDExOlB1bGxSZXF1ZXN0NTA3OTAzMzky,1040,closed,0,/db/table/-/blob/pk/column.blob download URL,9599,simonw,"Refs #1036. Still needs: - [x] Comprehensive tests across all of the code branches, plus permissions - [x] A bit more refactoring to share logic cleanly with `RowView` - ~~A configuration option to disable this feature (probably)~~",2020-10-21T22:39:15Z,2020-10-24T23:09:20Z,2020-10-24T23:09:19Z,2020-10-24T23:09:19Z,5a1519796037105bc20bcf2f91a76e022926c204,,,6026070,0.51,0,4f3165f25fd9241fcf1291c797f4c77766b954dc,bf82b3d6a605c9ddadd5fb739249dfe6defaf635,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/1040,,, 508719567,MDExOlB1bGxSZXF1ZXN0NTA4NzE5NTY3,1043,closed,0,Include LICENSE in sdist,45380,bollwyvl,"Hi, thanks for `datasette`! This PR adds the `LICENSE` to source distributions, which seems the norm for Apache-2.0 stuff. I noticed the [0.50.2 sdist](https://files.pythonhosted.org/packages/f2/ba/1b5f182c3f1769c0863bcaa77406bdcb81c92e31bb579959c01b1d8951c0/datasette-0.50.2.tar.gz) doesn't ship `LICENSE`, but the 0.5.2 `whl` does, so I'm assuming the intent _is_ to ship... and it's a one-liner! Motivation: It might be a bit of a slog, but I'm looking to see about getting `datasette` (and friends!) available on conda-forge. There are a few missing upstreams (`asgi-csrf`, `python-basecov`, `mergedeep`) and some of the plugins don't even appear to _have_ tarballs (just `whl`!), but the little stuff like licenses are nice to get out handled upstream vs separately grabbing them.",2020-10-23T05:04:12Z,2020-10-26T00:14:57Z,2020-10-23T20:54:35Z,2020-10-23T20:54:35Z,976e5f74aae1fa0d406df6691dc8b5feeebe8788,,,,,0,dc4129cb37060b52775d96e756f7cdb65ee76bc3,d0cc6f4c32e1f89238ddec782086b3122f445bd4,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1043,,, 508720660,MDExOlB1bGxSZXF1ZXN0NTA4NzIwNjYw,1044,closed,0,Add minimum supported python,45380,bollwyvl,"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).",2020-10-23T05:08:03Z,2020-10-23T20:53:08Z,2020-10-23T20:53:08Z,2020-10-23T20:53:08Z,cab8e65261b117b493af6a0b21aa2e1ae4564419,,,,,0,6453ab18e56b36bc912b6f24c4a43002c6084ade,d0cc6f4c32e1f89238ddec782086b3122f445bd4,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1044,,, 509590205,MDExOlB1bGxSZXF1ZXN0NTA5NTkwMjA1,1049,closed,0,Add template block prior to extra URL loaders,82988,psychemedia,"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.",2020-10-25T13:08:55Z,2020-10-29T09:20:52Z,2020-10-29T09:20:34Z,,99f994b14e2dbe22fda18b67dd5c824d359443fb,,,,,0,50a743ad35684f09d3c3880f6af2019e59271237,42f4851e3e7885f1092f104d6c883cea40b12f02,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1049,,, 510235909,MDExOlB1bGxSZXF1ZXN0NTEwMjM1OTA5,189,closed,0,Allow iterables other than Lists in m2m records,35681,adamwolf,"I was playing around with sqlite-utils, creating a Roam Research dogsheep-style importer for Datasette, and ran into a slight snag. I wanted to use a generator to add an order column in an importer. It looked something like: ``` def order_generator(iterable, attr=None): if attr is None: attr = ""order"" order: int = 0 for i in iterable: i[attr] = order order += 1 yield i ``` When I used this with `insert_all` and other things, it worked fine--but it didn't work as the `records` argument to `m2m`. I dug into it, and sqlite-utils is explicitly checking if the records argument is a list or a tuple. I flipped the check upside down, and now it checks if the argument is a mapping. If it's a mapping, it wraps it in a list, otherwise it leaves it alone. (I get that it might not really make sense to put the order column on the second table. I changed my import schema a bit, and no longer have a real example, but maybe this change still makes sense.) The automated tests still pass, but I did not add any new ones. Let me know what you think! I'm really loving Datasette and its ecosystem; thanks for everything!",2020-10-26T18:47:44Z,2020-10-27T16:28:37Z,2020-10-27T16:24:21Z,2020-10-27T16:24:21Z,f045d8559a6d2cb922a2de30fbcc896a4486b82f,,,,,0,93230b2acb61635b6d5070ad9c65e7221c63b75a,e4f1c7b936981de29823730c5dbef4f4ba7a4286,CONTRIBUTOR,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/189,,, 510956134,MDExOlB1bGxSZXF1ZXN0NTEwOTU2MTM0,190,closed,0,Progress bar for sqlite-utils insert command,9599,simonw,Refs #173,2020-10-27T18:08:53Z,2020-10-27T18:16:03Z,2020-10-27T18:16:03Z,2020-10-27T18:16:03Z,f99a23652910b03ac4669bbbb35a9b484451aabb,,,,,0,62d678122a251812cd650845705ca7b9efcef86d,c7e5dd64513c0ec2b2df4c51c8df924c282417f9,OWNER,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/190,,, 511005542,MDExOlB1bGxSZXF1ZXN0NTExMDA1NTQy,1056,closed,0,"Radical new colour scheme and base styles, courtesy of @natbat",9599,simonw,,2020-10-27T19:31:48Z,2020-10-27T19:39:57Z,2020-10-27T19:39:56Z,2020-10-27T19:39:56Z,e5f5034bcdc71e4bc62a6a155ca60eb41910c335,,,6026070,0.51,0,a7b2aabd5148c0ee382b583de68a4f0538f7dfb1,26bb4a268127da2c38f4241abe45444b2a6f7874,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/1056,,, 511549374,MDExOlB1bGxSZXF1ZXN0NTExNTQ5Mzc0,1059,closed,0,"Update aiofiles requirement from <0.6,>=0.4 to >=0.4,<0.7",27856297,dependabot-preview[bot],"Updates the requirements on [aiofiles](https://github.com/Tinche/aiofiles) to permit the latest version.
Commits

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) - `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language - `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language - `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language - `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language - `@dependabot badge me` will comment on this PR with code to add a ""Dependabot enabled"" badge to your readme Additionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com): - Update frequency (including time of day and day of week) - Pull request limits (per update run and/or open at any time) - Out-of-range updates (receive only lockfile updates, if desired) - Security updates (receive only security updates, if desired)
",2020-10-28T13:32:40Z,2020-10-28T17:08:29Z,2020-10-28T17:08:28Z,2020-10-28T17:08:28Z,879617265262024edd93722adcdcb6c21e57f5f7,,,,,0,e46327a745c5a4130b65bf340d19dccc76441841,7d9fedc176717a7e3d22a96575ae0aada5a65440,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1059,,, 511868153,MDExOlB1bGxSZXF1ZXN0NTExODY4MTUz,1060,closed,0,New explicit versioning mechanism,9599,simonw,"- Remove all references to versioneer - Re-implement versioning to use a static string baked into the repo - Ensure that string is output by `datasette --version` and `/-/versions` Refs #1054",2020-10-28T22:14:55Z,2020-10-29T03:38:17Z,2020-10-29T03:38:16Z,2020-10-29T03:38:16Z,cefd058c1c216a184bb63c79abba66893977c18e,,,6026070,0.51,0,4725d46780783e9875bde5957f053ba19cf92ff0,abcf0222496d8148b2e585ffa0ff192270a04b06,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/1060,,, 512545364,MDExOlB1bGxSZXF1ZXN0NTEyNTQ1MzY0,1061,closed,0,.blob output renderer,9599,simonw,"- [x] Remove the `/-/...blob/...` route I added in #1040 in place of the new `.blob` renderer URLs - [x] Link to new `.blob` download links on the arbitrary query page (using `_blob_hash=...`) - plus tests for this Closes #1050, Closes #1051",2020-10-29T20:25:08Z,2020-10-29T22:01:40Z,2020-10-29T22:01:39Z,2020-10-29T22:01:39Z,78b3eeaad9189eb737014f53212082684f4bb0d4,,,6026070,0.51,0,1196d084de6a7a6f68c7705a6cc096bb8df132e3,d6f9ff71378c4eab34dad181c23cfc143a4aef2d,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/1061,,, 512736705,MDExOlB1bGxSZXF1ZXN0NTEyNzM2NzA1,1065,closed,0,Nav menu plus menu_links() hook,9599,simonw,"Closes #1064, refs #690.",2020-10-30T03:40:18Z,2020-10-30T03:45:17Z,2020-10-30T03:45:16Z,2020-10-30T03:45:16Z,18a64fbb29271ce607937110bbdb55488c43f4e0,,,6026070,0.51,0,5f118b56afbeff5348acd50a8b87537210e731ee,1a861be19e326e0c88230a711a1b6536366697d7,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/1065,,, 513106026,MDExOlB1bGxSZXF1ZXN0NTEzMTA2MDI2,1069,closed,0,load_template() plugin hook,9599,simonw,Refs #1042,2020-10-30T15:59:45Z,2020-10-30T17:47:20Z,2020-10-30T17:47:19Z,2020-10-30T17:47:19Z,81dea4b07ab2b6f4eaaf248307d2b588472054a1,,,6026070,0.51,0,92f3840882a24da29d0d4073e5ed9d77fce438fc,fcf43589eb6a1f1d0432772a639fd35711c48e0c,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/1069,,, 515014883,MDExOlB1bGxSZXF1ZXN0NTE1MDE0ODgz,195,closed,0,table.search() improvements plus sqlite-utils search command,9599,simonw,Refs #192. Still needs tests.,2020-11-03T22:02:08Z,2020-11-06T18:30:49Z,2020-11-06T18:30:42Z,2020-11-06T18:30:42Z,d411fba1f4124047429ac9d1175a04b36bf5bee9,,,,,0,973d94d44f27d35d856fe1cc822f9d5d40e4b5e6,59d8689ed0e6e042d99fd650896def680ca3c657,OWNER,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/195,,, 518988879,MDExOlB1bGxSZXF1ZXN0NTE4OTg4ODc5,1085,closed,0,Use FTS4 in fixtures,9599,simonw,Refs #1081,2020-11-11T06:44:30Z,2020-11-12T00:02:59Z,2020-11-12T00:02:58Z,2020-11-12T00:02:58Z,e8e0a6f284ca953b2980186c4356594c07bd1929,,,,,0,51e7651c66aaf1804274ce68a6b5218bbba76338,2a981e2ac1d13125973904b777d00ea75e8df4e6,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/1085,,, 521054612,MDExOlB1bGxSZXF1ZXN0NTIxMDU0NjEy,13,open,0,SQLite does not have case sensitive columns,1689944,tomaskrehlik,"This solves a weird issue when there is record with metadata key that is only different in letter cases. See the test for details.",2020-11-14T20:12:32Z,2021-08-24T13:28:26Z,,,38856acbc724ffdb8beb9e9f4ef0dbfa8ff51ad1,,,,,0,3e1b2945bc7c31be59e89c5fed86a5d2a59ebd5a,71e36e1cf034b96de2a8e6652265d782d3fdf63b,FIRST_TIME_CONTRIBUTOR,197882382,healthkit-to-sqlite,https://github.com/dogsheep/healthkit-to-sqlite/pull/13,,, 521276296,MDExOlB1bGxSZXF1ZXN0NTIxMjc2Mjk2,1097,closed,0,Use f-strings,9599,simonw,"Since Datasette now requires Python 3.6, how about some f-strings? I ran this in the `datasette` root checkout: ``` pip install flynt flynt . black . ```",2020-11-15T23:12:36Z,2020-11-15T23:24:24Z,2020-11-15T23:24:23Z,2020-11-15T23:24:23Z,30e64c8d3b3728a86c3ca42a75322cc3feb5b0c8,,,,,0,e89211d21eebb7a2e4588b06927da84416e3a555,6fd35be64de221eba4945ca24e8e1678f6142a73,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/1097,,, 521287994,MDExOlB1bGxSZXF1ZXN0NTIxMjg3OTk0,203,open,0,changes to allow for compound foreign keys,1049910,drkane,"Add support for compound foreign keys, as per issue #117 Not sure if this is the right approach. In particular I'm unsure about: - the new `ForeignKey` class, which replaces the namedtuple in order to ensure that `column` and `other_column` are forced into tuples. The class does the job, but doesn't feel very elegant. - I haven't rewritten `guess_foreign_table` to take account of multiple columns, so it just checks for the first column in the foreign key definition. This isn't ideal. - I haven't added any ability to the CLI to add compound foreign keys, it's only in the python API at the moment. The PR also contains a minor related change that columns and tables are always quoted in foreign key definitions.",2020-11-16T00:30:10Z,2023-01-25T18:47:18Z,,,0507a9464314f84e9e58b1931c583df51d757d7c,,,,,0,5e43e31c2b9bcf6b5d1460b0f848fed019ed42a6,f1277f638f3a54a821db6e03cb980adad2f2fa35,FIRST_TIME_CONTRIBUTOR,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/203,,, 525371029,MDExOlB1bGxSZXF1ZXN0NTI1MzcxMDI5,8,closed,0,"fix import error if note has no ""updated"" element",4028322,mkorosec,"I got the following error when executing evernote-to-sqlite enex evernote.db evernote.enex ``` ... File ""evernote_to_sqlite/cli.py"", line 31, in enex save_note(db, note) File ""evernote_to_sqlite/utils.py"", line 28, in save_note updated = note.find(""updated"").text AttributeError: 'NoneType' object has no attribute 'text' ``` Seems that in some cases the updated element is not added to the note, this is a part of the problematic note: ``` 20201019T074518Z web.clip7 webclipper.evernote ```",2020-11-22T22:51:05Z,2021-02-11T22:34:06Z,2021-02-11T22:34:06Z,2021-02-11T22:34:06Z,1c8457ddaa487aa2e677963d37217fcb6d544e59,,,,,0,03b0c240d5f12c2d651c4cb25f92b0fecc7f7419,1c355e5678877e14eefa2a5fab5a267342a03335,CONTRIBUTOR,303218369,evernote-to-sqlite,https://github.com/dogsheep/evernote-to-sqlite/pull/8,,, 526847823,MDExOlB1bGxSZXF1ZXN0NTI2ODQ3ODIz,7,closed,0,Fixed conflicting CLI flags,8944,tlockney,"The `-a` used for the auth credentials and the shortened form of the `--all` flags were in conflict on the `fetch` command. To be consistent with other `-to-sqlite` libraries in the Dogsheep ecosystem, I removed the shortened form of the `--all` flag.",2020-11-24T23:25:12Z,2022-08-21T21:11:56Z,2022-08-21T21:11:56Z,2022-08-21T21:11:56Z,4d88c84a66a501e4cb0dd2de9949072b8d42b859,,,,,0,02576f9b1c234128c6a3d52123761af8486beb57,b956a01464007fe227895fe6eb6c942ed71298c8,CONTRIBUTOR,213286752,pocket-to-sqlite,https://github.com/dogsheep/pocket-to-sqlite/pull/7,,, 528997614,MDExOlB1bGxSZXF1ZXN0NTI4OTk3NjE0,1112,closed,0,Fix --metadata doc usage,50527,jefftriplett,"I stumbled on this while trying to figure out how to configure datasette-ripgrep via https://github.com/simonw/datasette-ripgrep/issues/15 You may not want to update the changelog (those are annoying) so I added two commits in case that's easier. ",2020-11-28T19:19:51Z,2020-11-28T23:28:21Z,2020-11-28T19:53:48Z,2020-11-28T19:53:48Z,bbde835a1fec01458e8d00929e7bab6d6a5ba948,,,6055094,Datasette 0.52,0,1a30fc259205df736daf068c57a0a6ae2c21ffa9,37d18a5bce08c9ee53c080f613bae84fc2ccc853,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1112,,, 529090560,MDExOlB1bGxSZXF1ZXN0NTI5MDkwNTYw,204,closed,0,use jsonify_if_need for sql updates,78035,mfa,,2020-11-29T10:49:00Z,2020-12-08T17:49:42Z,2020-12-08T17:49:42Z,2020-12-08T17:49:42Z,c5f4f0f70ce394dfec6054c3c5aaedf330887093,,,,,0,8ea9ad1913aa63395391818ebb4e43bfce936dda,60d3c4821be4cf25c41097c1e8b79b2e60c5ead5,CONTRIBUTOR,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/204,,, 529783275,MDExOlB1bGxSZXF1ZXN0NTI5NzgzMjc1,1117,closed,0,Support for generated columns,9599,simonw,"Refs #1116. My first attempt at this worked on my laptop but broke in CI, so I'm going to iterate on it in a pull request instead.",2020-11-30T20:10:46Z,2020-11-30T22:23:19Z,2020-11-30T21:29:58Z,2020-11-30T21:29:58Z,461670a0b87efa953141b449a9a261919864ceb3,,,,,0,ccdf2c650278b8b9465d3a2d7c916f3bb06c4f01,dea3c508b39528e566d711c38a467b3d372d220b,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/1117,,, 529887861,MDExOlB1bGxSZXF1ZXN0NTI5ODg3ODYx,1120,closed,0,generated_columns table in fixtures.py,9599,simonw,Refs #1119,2020-12-01T00:17:19Z,2020-12-01T00:28:03Z,2020-12-01T00:28:02Z,2020-12-01T00:28:02Z,17cbbb1f7f230b39650afac62dd16476626001b5,,,,,0,ddad8db2cc952eaf4f66f42324ccece115627b02,461670a0b87efa953141b449a9a261919864ceb3,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/1120,,, 530125695,MDExOlB1bGxSZXF1ZXN0NTMwMTI1Njk1,1122,closed,0,Fix misaligned table actions cog,3243482,abdusco,Fixes https://github.com/simonw/datasette/issues/1121,2020-12-01T08:41:46Z,2020-12-03T10:56:40Z,2020-12-03T00:33:37Z,2020-12-03T00:33:36Z,daae35be46ec5cb8a207aa20986a4fa62e94777e,,,,,0,94ea22f7b6b6c55b490c97b385f6eb6c1ea2121c,a970276b9999687b96c5e11ea1c817d814f5d267,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1122,,, 532342025,MDExOlB1bGxSZXF1ZXN0NTMyMzQyMDI1,1128,closed,0,Fix startup error on windows,3243482,abdusco,"Fixes https://github.com/simonw/datasette/issues/1094 This import isn't used at all, and causes error on startup on Windows.",2020-12-04T07:12:26Z,2020-12-06T08:41:45Z,2020-12-05T19:35:04Z,2020-12-05T19:35:04Z,705d1a1555c4791e9be3b884285b047223ab184f,,,,,0,7004c3b1462675ba3845b1efc82c816f1d2199e0,49d8fc056844d5a537d6cfd96dab0dd5686fe718,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1128,,, 532348919,MDExOlB1bGxSZXF1ZXN0NTMyMzQ4OTE5,1130,open,0,Fix footer not sticking to bottom in short pages,3243482,abdusco,Fixes https://github.com/simonw/datasette/issues/1129,2020-12-04T07:29:01Z,2021-06-15T13:27:48Z,,,07bc05c58b6a295e6584f8c4015ec5fedb0050c4,,,,,0,8d4c69c6fb0ef741a19070f5172017ea3522e83c,49d8fc056844d5a537d6cfd96dab0dd5686fe718,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1130,,, 537791675,MDExOlB1bGxSZXF1ZXN0NTM3NzkxNjc1,208,closed,0,sqlite-utils analyze-tables command and table.analyze_column() method,9599,simonw,"Refs #207 - [x] Improve design of CLI output - [x] Truncate long values in least/most common - [x] Add a `-c` column selection option - [x] Tests - [x] Documentation",2020-12-12T05:27:49Z,2020-12-13T07:20:16Z,2020-12-13T07:20:12Z,2020-12-13T07:20:12Z,69a121e08847acbf95abf0c2df1759fc73dc81b8,,,,,0,95a966bb6216215d40d0016d673a28b04428db43,c5f4f0f70ce394dfec6054c3c5aaedf330887093,OWNER,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/208,,, 539489525,MDExOlB1bGxSZXF1ZXN0NTM5NDg5NTI1,1145,closed,0,"Update pytest requirement from <6.2.0,>=5.2.2 to >=5.2.2,<6.3.0",27856297,dependabot-preview[bot],"Updates the requirements on [pytest](https://github.com/pytest-dev/pytest) to permit the latest version.
Release notes

Sourced from pytest's releases.

6.2.0

pytest 6.2.0 (2020-12-12)

Breaking Changes

  • #7808: pytest now supports python3.6+ only.

Deprecations

  • #7469: Directly constructing/calling the following classes/functions is now deprecated:

    • _pytest.cacheprovider.Cache
    • _pytest.cacheprovider.Cache.for_config()
    • _pytest.cacheprovider.Cache.clear_cache()
    • _pytest.cacheprovider.Cache.cache_dir_from_config()
    • _pytest.capture.CaptureFixture
    • _pytest.fixtures.FixtureRequest
    • _pytest.fixtures.SubRequest
    • _pytest.logging.LogCaptureFixture
    • _pytest.pytester.Pytester
    • _pytest.pytester.Testdir
    • _pytest.recwarn.WarningsRecorder
    • _pytest.recwarn.WarningsChecker
    • _pytest.tmpdir.TempPathFactory
    • _pytest.tmpdir.TempdirFactory

    These have always been considered private, but now issue a deprecation warning, which may become a hard error in pytest 7.0.0.

  • #7530: The --strict command-line option has been deprecated, use --strict-markers instead.

    We have plans to maybe in the future to reintroduce --strict and make it an encompassing flag for all strictness related options (--strict-markers and --strict-config at the moment, more might be introduced in the future).

  • #7988: The @pytest.yield_fixture decorator/function is now deprecated. Use pytest.fixture instead.

    yield_fixture has been an alias for fixture for a very long time, so can be search/replaced safely.

Features

  • #5299: pytest now warns about unraisable exceptions and unhandled thread exceptions that occur in tests on Python>=3.8. See unraisable for more information.

  • #7425: New pytester fixture, which is identical to testdir but its methods return pathlib.Path when appropriate instead of py.path.local.

    This is part of the movement to use pathlib.Path objects internally, in order to remove the dependency to py in the future.

    Internally, the old Testdir <_pytest.pytester.Testdir> is now a thin wrapper around Pytester <_pytest.pytester.Pytester>, preserving the old interface.

Changelog

Sourced from pytest's changelog.

Commits
  • e7073af Prepare release version 6.2.0
  • 683f29f Merge pull request #8129 from bluetech/docs-pygments-workaround
  • 0feeddf doc: temporary workaround for pytest-pygments lexing error
  • b478275 Merge pull request #8128 from bluetech/skip-reason-empty
  • 3302ff9 terminal: when the skip/xfail is empty, don't show it as "()"
  • 59bd0f6 Merge pull request #8126 from bluetech/tox-regen-pretend-scm2
  • 6298ff1 tox: use pip legacy resolver for regen job
  • d51ecbd Merge pull request #8125 from bluetech/tox-rm-pip-req
  • f237b07 tox: remove requires: pip>=20.3.1
  • 95e0e19 Merge pull request #8124 from bluetech/s0undt3ch-feature/skip-context-hook
  • Additional commits viewable in compare view

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) - `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language - `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language - `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language - `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language - `@dependabot badge me` will comment on this PR with code to add a ""Dependabot enabled"" badge to your readme Additionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com): - Update frequency (including time of day and day of week) - Pull request limits (per update run and/or open at any time) - Out-of-range updates (receive only lockfile updates, if desired) - Security updates (receive only security updates, if desired)
",2020-12-14T14:22:16Z,2021-01-24T21:20:29Z,2020-12-16T21:44:39Z,2020-12-16T21:44:39Z,6119bd797366a899119f1bba51c1c8cba2efc8fc,,,6346396,Datasette 0.54,0,a8588f95568138c268e6802de0d1a4daffb7bda8,0c616f732cee79db80cad830917666f41b344262,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1145,,, 542406910,MDExOlB1bGxSZXF1ZXN0NTQyNDA2OTEw,10,closed,0,BugFix for encoding and not update info.,1277270,riverzhou,"Bugfix 1: Traceback (most recent call last): File ""d:\anaconda3\lib\runpy.py"", line 194, in _run_module_as_main return _run_code(code, main_globals, None, File ""d:\anaconda3\lib\runpy.py"", line 87, in _run_code exec(code, run_globals) File ""D:\Anaconda3\Scripts\evernote-to-sqlite.exe\__main__.py"", line 7, in File ""d:\anaconda3\lib\site-packages\click\core.py"", line 829, in __call__ File ""d:\anaconda3\lib\site-packages\click\core.py"", line 782, in main rv = self.invoke(ctx) File ""d:\anaconda3\lib\site-packages\click\core.py"", line 1259, in invoke return _process_result(sub_ctx.command.invoke(sub_ctx)) return ctx.invoke(self.callback, **ctx.params) File ""d:\anaconda3\lib\site-packages\click\core.py"", line 610, in invoke return callback(*args, **kwargs) File ""d:\anaconda3\lib\site-packages\evernote_to_sqlite\cli.py"", line 30, in enex for tag, note in find_all_tags(fp, [""note""], progress_callback=bar.update): File ""d:\anaconda3\lib\site-packages\evernote_to_sqlite\utils.py"", line 11, in find_all_tags chunk = fp.read(1024 * 1024) UnicodeDecodeError: 'gbk' codec can't decode byte 0xa4 in position 383: illegal multibyte sequence Bugfix 2: Traceback (most recent call last): File ""D:\Anaconda3\Scripts\evernote-to-sqlite-script.py"", line 33, in sys.exit(load_entry_point('evernote-to-sqlite==0.3', 'console_scripts', 'evernote-to-sqlite')()) File ""D:\Anaconda3\lib\site-packages\click\core.py"", line 829, in __call__ return self.main(*args, **kwargs) File ""D:\Anaconda3\lib\site-packages\click\core.py"", line 782, in main rv = self.invoke(ctx) File ""D:\Anaconda3\lib\site-packages\click\core.py"", line 1259, in invoke return _process_result(sub_ctx.command.invoke(sub_ctx)) File ""D:\Anaconda3\lib\site-packages\click\core.py"", line 1066, in invoke return ctx.invoke(self.callback, **ctx.params) File ""D:\Anaconda3\lib\site-packages\click\core.py"", line 610, in invoke return callback(*args, **kwargs) File ""D:\Anaconda3\lib\site-packages\evernote_to_sqlite-0.3-py3.8.egg\evernote_to_sqlite\cli.py"", line 31, in enex File ""D:\Anaconda3\lib\site-packages\evernote_to_sqlite-0.3-py3.8.egg\evernote_to_sqlite\utils.py"", line 28, in save_note AttributeError: 'NoneType' object has no attribute 'text'",2020-12-18T08:58:54Z,2021-02-11T22:37:56Z,2021-02-11T22:37:56Z,,4425daeccd43ce3c7bb45deaae577984f978e40f,,,,,0,7b8b96b69f43cb2247875c3ca6d39878edf77a78,92254b71075c8806bca258c939e24af8397cdf98,NONE,303218369,evernote-to-sqlite,https://github.com/dogsheep/evernote-to-sqlite/pull/10,,, 543015825,MDExOlB1bGxSZXF1ZXN0NTQzMDE1ODI1,31,open,0,Update for Big Sur,41546558,RhetTbull,Refactored out the SQL for extracting aesthetic scores to use osxphotos -- adds compatbility for Big Sur via osxphotos which has been updated for new table names in Big Sur. Have not yet refactored the SQL for extracting labels which is still compatible with Big Sur.,2020-12-20T04:36:45Z,2023-04-14T22:41:31Z,,,0e571b07430024d4ce00d5e8ba28591cefd27d6f,,,,,0,39c12f8cda206ad621ec9940cce538570513e764,edc80a0d361006f478f2904a90bfe6c730ed6194,CONTRIBUTOR,256834907,dogsheep-photos,https://github.com/dogsheep/dogsheep-photos/pull/31,,, 543246535,MDExOlB1bGxSZXF1ZXN0NTQzMjQ2NTM1,59,closed,0,Remove unneeded exists=True for -a/--auth flag.,631242,frosencrantz,The file does not need to exist when using an environment variable.,2020-12-21T06:03:55Z,2021-05-22T14:06:19Z,2021-05-19T16:08:12Z,2021-05-19T16:08:12Z,70dffca351375e6f542969c72ebc43c6d393d99c,,,,,0,79745bed50b7344c5cbb17a08215dc20d58b9416,d19d7db034bf7c3adcae37b9ab6f365d569605b3,CONTRIBUTOR,207052882,github-to-sqlite,https://github.com/dogsheep/github-to-sqlite/pull/59,,, 544923437,MDExOlB1bGxSZXF1ZXN0NTQ0OTIzNDM3,1158,closed,0,Modernize code to Python 3.6+,6774676,eumiro,"- compact dict and set building - remove redundant parentheses - simplify chained conditions - change method name to lowercase - use triple double quotes for docstrings please feel free to accept/reject any of these independent commits",2020-12-23T16:21:38Z,2021-01-24T21:20:50Z,2020-12-23T17:04:32Z,2020-12-23T17:04:32Z,a882d679626438ba0d809944f06f239bcba8ee96,,,6346396,Datasette 0.54,0,37ce72f086d7807a32ea9012d6e6b5d235349152,90eba4c3ca569c57e96bce314e7ac8caf67d884e,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1158,,, 545264436,MDExOlB1bGxSZXF1ZXN0NTQ1MjY0NDM2,1159,open,0,Improve the display of facets information,552629,lovasoa,"This PR changes the display of facets to hopefully make them more readable. Before | After ---|--- ![image](https://user-images.githubusercontent.com/552629/103084609-b1ec2980-45df-11eb-85bc-68ab8df3e8d9.png) | ![image](https://user-images.githubusercontent.com/552629/103085220-620e6200-45e1-11eb-8189-5dd5d3e2569e.png) ",2020-12-24T11:01:47Z,2023-01-22T20:58:11Z,,,db2a9666feffd2b84b110d239ccad1d52440727e,,,,,0,c820abd0bcb34d1ea5a03be64a2158ae7c42920c,a882d679626438ba0d809944f06f239bcba8ee96,FIRST_TIME_CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1159,,, 548271472,MDExOlB1bGxSZXF1ZXN0NTQ4MjcxNDcy,1170,closed,0,Install Prettier via package.json,3637,benpickles,This adds a package.json with Prettier and means that developers/CI will use the same version. It also ensures that NPM packages are cached on GitHub Actions which fixes #1169.,2021-01-04T14:18:03Z,2021-01-24T21:21:01Z,2021-01-04T19:52:34Z,2021-01-04T19:52:33Z,3054e0f7307da4c31850b74bd73238b33d6c750a,,,6346396,Datasette 0.54,0,a5761ccb8676ef1b98d95d8174211c98f140e3de,1e8fa3ac7cb2d6e516c47c306c86ed2334fc3dc0,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1170,,, 549204063,MDExOlB1bGxSZXF1ZXN0NTQ5MjA0MDYz,55,closed,0,Fix archive imports,21148,jacobian,This fixes the issues discussed in #54,2021-01-05T15:54:48Z,2021-08-20T00:02:49Z,2021-08-20T00:02:49Z,2021-08-20T00:02:48Z,bf622dcb82203c1cd87e914901b53afe6f90e668,,,,,0,ffb127844f133fcb6a1af5cd3557995d303fb53f,21fc1cad6dd6348c67acff90a785b458d3a81275,CONTRIBUTOR,206156866,twitter-to-sqlite,https://github.com/dogsheep/twitter-to-sqlite/pull/55,,, 560204306,MDExOlB1bGxSZXF1ZXN0NTYwMjA0MzA2,224,closed,0,Add fts offset docs.,37962604,polyrand,"The limit can be passed as a string to the query builder to have an offset. I have tested it using the shorthand `limit=f""15, 30""`, the standard syntax should work too.",2021-01-22T20:50:58Z,2021-02-14T19:31:06Z,2021-02-14T19:31:06Z,,4d6ff040770119fb2c1bcbc97678d9deca752f2f,,,,,0,341f50d2d95ba1d69ad64ba8c0ec0ffa9a68d063,36dc7e3909a44878681c266b90f9be76ac749f2d,NONE,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/224,,, 560725714,MDExOlB1bGxSZXF1ZXN0NTYwNzI1NzE0,1203,closed,0,Easier way to run Prettier locally,9599,simonw,Refs #1167,2021-01-25T01:39:06Z,2021-01-25T01:41:46Z,2021-01-25T01:41:46Z,2021-01-25T01:41:46Z,ffff3a4c5398a9f40b61d59736f386444da19289,,,,,0,98acc8865aa7826a40a7a076ab548ba8597af734,b6a7b58fa01af0cd5a5e94bd17d686d283a46819,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/1203,,, 560760145,MDExOlB1bGxSZXF1ZXN0NTYwNzYwMTQ1,1204,open,0,WIP: Plugin includes,9599,simonw,"Refs #1191 Next steps: - [ ] Get comfortable that this pattern is the right way to go - [ ] Implement it for all of the other pages, not just the table page - [ ] Add a new set of plugin tests that exercise ALL of these new hook locations - [ ] Document, then ship",2021-01-25T03:59:06Z,2021-12-17T07:10:49Z,,,98f06a766317a40035962416cf3211d7a374866a,,,,,1,05258469ae39bcaad17beb57c5b7eeab0d58a589,07e163561592c743e4117f72102fcd350a600909,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/1204,,, 560831638,MDExOlB1bGxSZXF1ZXN0NTYwODMxNjM4,1206,closed,0,Release 0.54,9599,simonw,Refs #1201,2021-01-25T06:45:47Z,2021-01-25T17:33:30Z,2021-01-25T17:33:29Z,2021-01-25T17:33:29Z,0b9ac1b2e9c855f1b823a06a898891da87c720ef,,,,,0,571476d2cf8f7d7eac6098de8557264e69cac43f,a5ede3cdd455e2bb1a1fb2f4e1b5a9855caf5179,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/1206,,, 561512503,MDExOlB1bGxSZXF1ZXN0NTYxNTEyNTAz,15,open,0,added try / except to write_records ,9857779,ryancheley,"to keep the data write from failing if it came across an error during processing. In particular when trying to convert my HealthKit zip file (and that of my wife's) it would consistently error out with the following: ``` db.py 1709 insert_chunk result = self.db.execute(query, params) db.py 226 execute return self.conn.execute(sql, parameters) sqlite3.OperationalError: too many SQL variables --------------------------------------------------------------------------------------------------------------------------------------------------------------------- db.py 1709 insert_chunk result = self.db.execute(query, params) db.py 226 execute return self.conn.execute(sql, parameters) sqlite3.OperationalError: too many SQL variables --------------------------------------------------------------------------------------------------------------------------------------------------------------------- db.py 1709 insert_chunk result = self.db.execute(query, params) db.py 226 execute return self.conn.execute(sql, parameters) sqlite3.OperationalError: table rBodyMass has no column named metadata_HKWasUserEntered --------------------------------------------------------------------------------------------------------------------------------------------------------------------- healthkit-to-sqlite 8 sys.exit(cli()) core.py 829 __call__ return self.main(*args, **kwargs) core.py 782 main rv = self.invoke(ctx) core.py 1066 invoke return ctx.invoke(self.callback, **ctx.params) core.py 610 invoke return callback(*args, **kwargs) cli.py 57 cli convert_xml_to_sqlite(fp, db, progress_callback=bar.update, zipfile=zf) utils.py 42 convert_xml_to_sqlite write_records(records, db) utils.py 143 write_records db[table].insert_all( db.py 1899 insert_all self.insert_chunk( db.py 1720 insert_chunk self.insert_chunk( db.py 1720 insert_chunk self.insert_chunk( db.py 1714 insert_chunk result = self.db.execute(query, params) db.py 226 execute return self.conn.execute(sql, parameters) sqlite3.OperationalError: table rBodyMass has no column named metadata_HKWasUserEntered ``` Adding the try / except in the `write_records` seems to fix that issue. ",2021-01-26T03:56:21Z,2021-01-26T03:56:21Z,,,8527278a87e448f57c7c6bd76a2d85f12d0233dd,,,,,0,7f1b168c752b5af7c1f9052dfa61e26afc83d574,71e36e1cf034b96de2a8e6652265d782d3fdf63b,FIRST_TIME_CONTRIBUTOR,197882382,healthkit-to-sqlite,https://github.com/dogsheep/healthkit-to-sqlite/pull/15,,, 564172140,MDExOlB1bGxSZXF1ZXN0NTY0MTcyMTQw,61,closed,0,fixing typo in get cli help text,22578954,daniel-butler,,2021-01-29T18:57:04Z,2021-05-19T16:07:09Z,2021-05-19T16:07:09Z,2021-05-19T16:07:09Z,ba8cf3e9bb5f4f8740bd4b9eed28f1464d7f6b9a,,,,,0,7ac6efc3a873facafa72192b58e28c6e8a79f744,62dfd3bc4014b108200001ef4bc746feb6f33b45,CONTRIBUTOR,207052882,github-to-sqlite,https://github.com/dogsheep/github-to-sqlite/pull/61,,, 564215011,MDExOlB1bGxSZXF1ZXN0NTY0MjE1MDEx,225,closed,0,fix for problem in Table.insert_all on search for columns per chunk of rows,261237,nieuwenhoven,"Hi, I ran into a problem when trying to create a database from my Apple Healthkit data using [healthkit-to-sqlite](https://github.com/dogsheep/healthkit-to-sqlite). The program crashed because of an invalid insert statement that was generated for table `rDistanceCycling`. The actual problem turned out to be in [sqlite-utils](https://github.com/simonw/sqlite-utils). `Table.insert_all` processes the data to be inserted in chunks of rows and checks for every chunk which columns are used, and it will collect all column names in the variable `all_columns`. The collection of columns is done using a nested list comprehension that is not completely correct. I'm using a Windows machine and had to make a few adjustments to the tests in order to be able to run them because they had a posix dependency. Thanks, kind regards, Frans ``` # this is a (condensed) chunk of data from my Apple healthkit export that caused the problem. # the 3 last items in the chunk have additional keys: metadata_HKMetadataKeySyncVersion and metadata_HKMetadataKeySyncIdentifier chunk = [{'sourceName': 'AppleÂ\xa0Watch van Frans', 'sourceVersion': '7.0.1', 'device': '<, name:Apple Watch, manufacturer:Apple Inc., model:Watch, hardware:Watch3,4, software:7.0.1>', 'unit': 'km', 'creationDate': '2020-10-10 12:29:09 +0100', 'startDate': '2020-10-10 12:29:06 +0100', 'endDate': '2020-10-10 12:29:07 +0100', 'value': '0.00518016'}, {'sourceName': 'AppleÂ\xa0Watch van Frans', 'sourceVersion': '7.0.1', 'device': '<, name:Apple Watch, manufacturer:Apple Inc., model:Watch, hardware:Watch3,4, software:7.0.1>', 'unit': 'km', 'creationDate': '2020-10-10 12:29:10 +0100', 'startDate': '2020-10-10 12:29:07 +0100', 'endDate': '2020-10-10 12:29:08 +0100', 'value': '0.00544049'}, {'sourceName': 'AppleÂ\xa0Watch van Frans', 'sourceVersion': '6.2.6', 'device': '<, name:Apple Watch, manufacturer:Apple Inc., model:Watch, hardware:Watch3,4, software:6.2.6>', 'unit': 'km', 'creationDate': '2020-10-14 05:54:12 +0100', 'startDate': '2020-07-15 16:40:50 +0100', 'endDate': '2020-07-15 16:42:49 +0100', 'value': '0.952092', 'metadata_HKMetadataKeySyncVersion': '1', 'metadata_HKMetadataKeySyncIdentifier': '3:674DBCDB-3FE8-40D1-9FC1-E54A2B413805:616520450.99823:616520569.99360:119'}, {'sourceName': 'AppleÂ\xa0Watch van Frans', 'sourceVersion': '6.2.6', 'device': '<, name:Apple Watch, manufacturer:Apple Inc., model:Watch, hardware:Watch3,4, software:6.2.6>', 'unit': 'km', 'creationDate': '2020-10-14 05:54:12 +0100', 'startDate': '2020-07-15 16:42:49 +0100', 'endDate': '2020-07-15 16:44:51 +0100', 'value': '0.848983', 'metadata_HKMetadataKeySyncVersion': '1', 'metadata_HKMetadataKeySyncIdentifier': '3:674DBCDB-3FE8-40D1-9FC1-E54A2B413805:616520569.99360:616520691.98826:119'}, {'sourceName': 'AppleÂ\xa0Watch van Frans', 'sourceVersion': '6.2.6', 'device': '<, name:Apple Watch, manufacturer:Apple Inc., model:Watch, hardware:Watch3,4, software:6.2.6>', 'unit': 'km', 'creationDate': '2020-10-14 05:54:12 +0100', 'startDate': '2020-07-15 16:44:51 +0100', 'endDate': '2020-07-15 16:46:50 +0100', 'value': '0.834403', 'metadata_HKMetadataKeySyncVersion': '1', 'metadata_HKMetadataKeySyncIdentifier': '3:674DBCDB-3FE8-40D1-9FC1-E54A2B413805:616520691.98826:616520810.98305:119'}] def all_columns_old(): all_columns = [col for col in chunk[0]] all_columns += [column for record in chunk for column in record if column not in all_columns] return all_columns def all_columns_new(): all_columns = [col for col in chunk[0]] for record in chunk: all_columns += [column for column in record if column not in all_columns] return all_columns if __name__ == '__main__': from pprint import pprint print('problem: ') pprint(all_columns_old()) print('\nfix: ') pprint(all_columns_new()) ``` ",2021-01-29T20:16:07Z,2021-02-14T21:04:13Z,2021-02-14T21:04:13Z,,1cba965a1ddc2bd77db3bc3912aa7e8467e2fa2f,,,,,0,929ea7551135df0cc2ac9d67f4fbbecf701a11f6,36dc7e3909a44878681c266b90f9be76ac749f2d,NONE,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/225,,, 564608264,MDExOlB1bGxSZXF1ZXN0NTY0NjA4MjY0,1211,closed,0,Use context manager instead of plain open,4488943,kbaikov,"Context manager with open closes the files after usage. Fixes: https://github.com/simonw/datasette/issues/1208 When the object is already a pathlib.Path i used read_text write_text functions In some cases pathlib.Path.open were used in context manager, it is basically the same as builtin open. Tests are passing: 850 passed, 5 xfailed, 10 xpassed",2021-01-31T07:58:10Z,2021-03-11T16:15:50Z,2021-03-11T16:15:50Z,2021-03-11T16:15:49Z,8e18c7943181f228ce5ebcea48deb59ce50bee1f,,,,,0,e33ccaaafbe9a16b8339a3bf4c0ae7b83354570c,dde3c500c73ace33529672f7d862b76753d309cc,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1211,,, 572209243,MDExOlB1bGxSZXF1ZXN0NTcyMjA5MjQz,1222,closed,0,"--ssl-keyfile and --ssl-certfile, refs #1221",9599,simonw,,2021-02-12T00:45:58Z,2021-02-12T00:52:18Z,2021-02-12T00:52:17Z,2021-02-12T00:52:17Z,eda652cf6ee28a0babfb30ce3834512e9e33fb8e,,,,,0,8ec72ea3e3e0a9876d5e61e4a2260224f16db2e3,aa1fe0692c2abb901216738bfb35f9fcc5090e7d,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/1222,,, 572254103,MDExOlB1bGxSZXF1ZXN0NTcyMjU0MTAz,1223,closed,0,Add compile option to Dockerfile to fix failing test (fixes #696),7476523,bobwhitelock,"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?",2021-02-12T03:38:05Z,2021-03-07T12:01:12Z,2021-03-07T07:41:17Z,2021-03-07T07:41:17Z,d0fd833b8cdd97e1b91d0f97a69b494895d82bee,,,,,0,d1cd1f259c699fab3af01c4aa90035ed0242471a,9603d893b9b72653895318c9104d754229fdb146,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1223,,, 573147168,MDExOlB1bGxSZXF1ZXN0NTczMTQ3MTY4,233,closed,0,"Run tests against Ubuntu, macOS and Windows",9599,simonw,Refs #232,2021-02-14T20:11:02Z,2021-02-14T20:39:54Z,2021-02-14T20:39:54Z,2021-02-14T20:39:54Z,f51a1f6c3cb2929bcf79cb4efe3b2a9886d9c25c,,,,,0,deb01a8913441e7fedb53c52a3a9fdff274ddbd2,320f3ac33a83b32f89559ef0c162b7eca428a278,OWNER,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/233,,, 575187457,MDExOlB1bGxSZXF1ZXN0NTc1MTg3NDU3,1229,closed,0,ensure immutable databses when starting in configuration directory mode with,295329,camallen,"fixes #1224 This PR ensures all databases found in a configuration directory that match the files in `inspect-data.json` will be set to `immutable` as outlined in https://docs.datasette.io/en/latest/settings.html#configuration-directory-mode specifically on building the `datasette` instance it checks: - if `immutables` is an empty tuple - as passed by the cli code - if `immutables` is the default function value `None` - when it's not explicitly set And correctly builds the immutable database list from the `inspect-data[file]` keys. Note for this to work the `inspect-data.json` file must contain `file` paths which are relative to the configuration directory otherwise the file paths won't match and the dbs won't be set to immutable. I couldn't find an easy way to test this due to the way `make_app_client` works, happy to take directions on adding a test for this. I've updated the relevant docs as well, i.e. use the `inspect` cli cmd from the config directory path to create the relevant file ``` cd $config_dir datasette inspect *.db --inspect-file=inspect-data.json ``` https://docs.datasette.io/en/latest/performance.html#using-datasette-inspect",2021-02-17T20:18:26Z,2022-04-22T13:16:36Z,2021-03-29T00:17:32Z,2021-03-29T00:17:31Z,f92d823766872a6fd7e76c5249a6b2de1ab0f447,,,,,0,a095248ad18c9c5272dbd52f4c97ea8a36cf91f3,8e18c7943181f228ce5ebcea48deb59ce50bee1f,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1229,,, 575940193,MDExOlB1bGxSZXF1ZXN0NTc1OTQwMTkz,1232,closed,0,--crossdb option for joining across databases,9599,simonw,"Refs #283. Still needs: - [x] Unit test for --crossdb queries - [x] Show warning on console if it truncates at ten databases (or on web interface) - [x] Show connected databases on the `/_memory` database page - [x] Documentation - [x] https://latest.datasette.io/ demo should demonstrate this feature",2021-02-18T19:48:50Z,2021-02-18T22:09:13Z,2021-02-18T22:09:12Z,2021-02-18T22:09:12Z,6f41c8a2bef309a66588b2875c3e24d26adb4850,,,,,0,887649942b02d70a0fe4e205e1e5eff4e745b016,4df548e7668b5b21d64a267964951e67894f4712,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/1232,,, 577953727,MDExOlB1bGxSZXF1ZXN0NTc3OTUzNzI3,5,open,0,WIP: Add Gmail takeout mbox import,306240,UtahDave,"WIP This PR adds the ability to import emails from a Gmail mbox export from Google Takeout. This is my first PR to a datasette/dogsheep repo. I've tested this on my personal Google Takeout mbox with ~520,000 emails going back to 2004. This took around ~20 minutes to process. To provide some feedback on the progress of the import I added the ""rich"" python module. I'm happy to remove that if adding a dependency is discouraged. However, I think it makes a nice addition to give feedback on the progress of a long import. Do we want to log emails that have errors when trying to import them? Dealing with encodings with emails is a bit tricky. I'm very open to feedback on how to deal with those better. As well as any other feedback for improvements.",2021-02-22T21:30:40Z,2021-07-28T07:18:56Z,,,65182811d59451299e75f09b4366bb221bc32b20,,,,,0,a3de045eba0fae4b309da21aa3119102b0efc576,e54e544427f1cc3ea8189f0e95f54046301a8645,FIRST_TIME_CONTRIBUTOR,206649770,google-takeout-to-sqlite,https://github.com/dogsheep/google-takeout-to-sqlite/pull/5,,, 579697833,MDExOlB1bGxSZXF1ZXN0NTc5Njk3ODMz,1243,closed,0,fix small typo,306240,UtahDave,,2021-02-25T00:22:34Z,2021-03-04T05:46:10Z,2021-03-04T05:46:10Z,2021-03-04T05:46:10Z,4f9a2f1f47dcf7e8561d68a8a07f5009a13cfdb3,,,,,0,32652d9847f9b32c5d923823001c75d76e2791d2,726f781c50e88f557437f6490b8479c3d6fabfc2,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1243,,, 580235427,MDExOlB1bGxSZXF1ZXN0NTgwMjM1NDI3,241,open,0,Extract expand - work in progress,9599,simonw,Refs #239. Still needs documentation and CLI implementation.,2021-02-25T16:36:38Z,2021-02-25T16:36:38Z,,,0bb6c7a38994627a64e7b3375931528e96b8c222,,,,,1,8d641ab08ac449081e96f3e25bd6c0226870948a,38e688fb8bcb58ae888b676fe3f7dd0529b4eecc,OWNER,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/241,,, 583407989,MDExOlB1bGxSZXF1ZXN0NTgzNDA3OTg5,244,closed,0,Typo in upsert example,387669,j-e-d,Remove extra `[`,2021-03-02T23:14:14Z,2021-05-19T02:58:21Z,2021-05-19T02:58:21Z,2021-05-19T02:58:21Z,328211eaca1247cd6b33a2c0a54642f87866d85b,,,,,0,1899200fa5a43f638573ea2c483df62819ba53b1,09c3386f55f766b135b6a1c00295646c4ae29bec,CONTRIBUTOR,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/244,,, 587332473,MDExOlB1bGxSZXF1ZXN0NTg3MzMyNDcz,1252,closed,0,Add back styling to lists within table cells (fixes #1141),7476523,bobwhitelock,"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) ",2021-03-09T03:00:57Z,2021-03-29T00:14:04Z,2021-03-29T00:14:04Z,2021-03-29T00:14:04Z,e72397d65b06b019521b6411243687464ac8d8ca,,,,,0,d22aa32cd9c0f798bcab917cc2024a371b4c0069,d0fd833b8cdd97e1b91d0f97a69b494895d82bee,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1252,,, 588601627,MDExOlB1bGxSZXF1ZXN0NTg4NjAxNjI3,1254,closed,0,Update Docker Spatialite version to 5.0.1 + add support for Spatialite topology functions,3200608,durkie,"This requires adding the RT Topology library (Spatialite changed to RT Topology from LWGEOM between 4.4 and 5.0), as well as upgrading the GEOS version (which is the reason for switching to `python:3.7.10-slim-buster` as the base image.) `autoconf` and `libtool` are added to build RT Topology, and Spatialite is now built with `--disable-minizip` (minizip wasn't an option in 4.4 and I didn't want to add another dependency) and `--disable-dependency-tracking` which, according to Spatialite, ""speeds up one-time builds""",2021-03-09T20:49:08Z,2021-03-10T18:27:45Z,2021-03-09T22:04:23Z,,bc09c84d6af4721b32f01f4d9186a6fbf9863081,,,,,0,b103204155c2396d353fa195a320cee6aca258cf,d0fd833b8cdd97e1b91d0f97a69b494895d82bee,NONE,107914493,datasette,https://github.com/simonw/datasette/pull/1254,,, 589263297,MDExOlB1bGxSZXF1ZXN0NTg5MjYzMjk3,1256,closed,0,Minor type in IP adress,6371750,JBPressac,127.0.01 replaced by 127.0.0.1,2021-03-10T08:28:22Z,2021-03-10T18:26:46Z,2021-03-10T18:26:40Z,2021-03-10T18:26:39Z,a1bcd2fbe5e47bb431045f65eeceb5eb3a6718d5,,,,,0,4eef524e44ff79c617728aad98b14c1c1e586ce3,d0fd833b8cdd97e1b91d0f97a69b494895d82bee,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1256,,, 592289324,MDExOlB1bGxSZXF1ZXN0NTkyMjg5MzI0,245,closed,0,Correct some typos,1076745,dbready,Noticed a typo in the docs and followed that up with a spellcheck. Had to bite my tongue at some of the British spellings.,2021-03-13T04:26:56Z,2021-05-19T02:58:04Z,2021-05-19T02:58:04Z,2021-05-19T02:58:04Z,3e62ab62a88992d4bbb0fe83debec3bacd93ebf3,,,,,0,79de6b639f9d14818a5006af4f63e4e20c961a10,22f1d9e1999f70af4c5b0f880a820cd9eead3942,CONTRIBUTOR,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/245,,, 592364255,MDExOlB1bGxSZXF1ZXN0NTkyMzY0MjU1,16,open,0,"Add a fallback ID, print if no ID found",1234956,n8henrie,"Fixes https://github.com/dogsheep/healthkit-to-sqlite/issues/14 ",2021-03-13T13:38:29Z,2021-03-13T14:44:04Z,,,16ab307b2138891f226a66e4954c5470de753a0f,,,,,0,27b3d54ccfe7d861770a9d0b173f6503580fea4a,71e36e1cf034b96de2a8e6652265d782d3fdf63b,FIRST_TIME_CONTRIBUTOR,197882382,healthkit-to-sqlite,https://github.com/dogsheep/healthkit-to-sqlite/pull/16,,, 592548103,MDExOlB1bGxSZXF1ZXN0NTkyNTQ4MTAz,1260,closed,0,Fix: code quality issues,25361949,withshubh,"### Description Hi :wave: I work at [DeepSource](https://deepsource.io), I ran DeepSource analysis on the forked copy of this repo and found some interesting [code quality issues](https://deepsource.io/gh/withshubh/datasette/issues/?category=recommended) in the codebase, opening this PR so you can assess if our platform is right and helpful for you. ### Summary of changes - Replaced ternary syntax with if expression - Removed redundant `None` default - Used `is` to compare type of objects - Iterated dictionary directly - Removed unnecessary lambda expression - Refactored unnecessary `else` / `elif` when `if` block has a `return` statement - Refactored unnecessary `else` / `elif` when `if` block has a `raise` statement - Added .deepsource.toml to continuously analyze and detect code quality issues",2021-03-14T13:56:10Z,2021-03-29T00:22:41Z,2021-03-29T00:22:41Z,,bc868ae8c8152a25bcab7adb490c5b89411bdf3a,,,,,0,90f5fb6d2fb36ddffc49acee924d042f2d5d1d58,8e18c7943181f228ce5ebcea48deb59ce50bee1f,NONE,107914493,datasette,https://github.com/simonw/datasette/pull/1260,,, 593805804,MDExOlB1bGxSZXF1ZXN0NTkzODA1ODA0,247,closed,0,FTS quote functionality from datasette,16001974,DeNeutoy,"Addresses #246 - this is a bit of a kludge because it doesn't actually *validate* the FTS string, just makes sure that it will not crash when executed, but I figured that building a query parser is a bit out of the scope of sqlite-utils and if you actually want to use the query language, you probably need to parse that yourself. ",2021-03-16T11:17:34Z,2021-08-18T18:43:12Z,2021-08-18T18:43:12Z,2021-08-18T18:43:11Z,53fec0d8639d2a66e322d05e1fcc8f34caa57815,,,,,0,af989af658e23be0077f226292594226103b063d,1fe73c898b44695052f1a9ca832818d50cecf662,CONTRIBUTOR,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/247,,, 596627780,MDExOlB1bGxSZXF1ZXN0NTk2NjI3Nzgw,18,open,0,Add datetime parsing,1234956,n8henrie,"Parses the datetime columns so they are subsequently properly recognized as datetime. Fixes https://github.com/dogsheep/healthkit-to-sqlite/issues/17 ",2021-03-19T14:34:22Z,2021-03-19T14:34:22Z,,,c87f4e8aa88ec277c6b5a000670c2cb42a10c03d,,,,,0,e0e7a0f99f844db33964b27c29b0b8d5f160202b,71e36e1cf034b96de2a8e6652265d782d3fdf63b,FIRST_TIME_CONTRIBUTOR,197882382,healthkit-to-sqlite,https://github.com/dogsheep/healthkit-to-sqlite/pull/18,,, 598213565,MDExOlB1bGxSZXF1ZXN0NTk4MjEzNTY1,1271,open,0,Use SQLite conn.interrupt() instead of sqlite_timelimit(),9599,simonw,"Refs #1270, #1268, #1249 Before merging this I need to do some more testing (to make sure that expensive queries really are properly cancelled). I also need to delete a bunch of code relating to the old mechanism of cancelling queries. [See comment below: this doesn't actually cancel the query due to a thread-local confusion]",2021-03-22T17:34:20Z,2021-03-22T21:49:27Z,,,a4fd7e5a761523881c031b4fee266a366e1c97bd,,,,,1,fb2ad7ada0b86a7fe4a576fe23236757c41eb05e,c4f1ec7f33fd7d5b93f0f895dafb5351cc3bfc5b,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/1271,,, 602107935,MDExOlB1bGxSZXF1ZXN0NjAyMTA3OTM1,1279,closed,0,Minor Docs Update. Added `--app` to fly install command.,1019791,koaning,"Without this flag, there's an error locally. ``` > datasette publish fly bigmac.db Usage: datasette publish fly [OPTIONS] [FILES]... Try 'datasette publish fly --help' for help. Error: Missing option '-a' / '--app'. ``` I also got an error message which later turned out to be because I hadn't added my credit card information yet to `fly`. I wasn't sure if I should add that mention to the docs here, or to submit a bug-report over at https://github.com/simonw/datasette-publish-fly. ",2021-03-27T16:58:08Z,2021-03-29T00:11:55Z,2021-03-29T00:11:55Z,2021-03-29T00:11:55Z,c96a3826cf50cb347f6a415b56d8105ba6d8dcb0,,,,,0,14d8977e158d1d3193c6afb50aae482547ec9d8d,3fcfc8513465339ac5f055296cbb67f5262af02b,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1279,,, 602261092,MDExOlB1bGxSZXF1ZXN0NjAyMjYxMDky,6,closed,0,Add testres-db tool,1151557,ligurio,,2021-03-28T15:43:23Z,2022-02-16T05:12:05Z,2022-02-16T05:12:05Z,,eceb016506b5db29b9c21bc7fcf5e6e77259c7b4,,,,,0,91cfa6f7dcab032e2d21e80657c81e69119e2018,92c6bb77629feeed661c7b8d9183a11367de39e0,NONE,214746582,dogsheep.github.io,https://github.com/dogsheep/dogsheep.github.io/pull/6,,, 603082280,MDExOlB1bGxSZXF1ZXN0NjAzMDgyMjgw,1282,closed,0,Fix little typo,192568,mroswell,,2021-03-29T19:45:28Z,2021-03-29T19:57:34Z,2021-03-29T19:57:34Z,2021-03-29T19:57:34Z,7b1a9a1999eb9326ce8ec830d75ac200e5279c46,,,,,0,08f7427afcff69fa93ebaf5916588b5ad8bd4e0f,0486303b60ce2784fd2e2ecdbecf304b7d6e6659,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1282,,, 608323028,MDExOlB1bGxSZXF1ZXN0NjA4MzIzMDI4,1290,closed,0,Use pytest-xdist to speed up tests,9599,simonw,"Closes #1289, refs #1212.",2021-04-03T03:34:36Z,2021-04-03T03:42:29Z,2021-04-03T03:42:28Z,2021-04-03T03:42:28Z,0a7621f96f8ad14da17e7172e8a7bce24ef78966,,,,,0,2fb1e4284f1f0f6aaba7e889a6713c0f96e802e1,59ef4a20cba1533bc347378415f4ffcd025f32c8,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/1290,,, 608334096,MDExOlB1bGxSZXF1ZXN0NjA4MzM0MDk2,1291,closed,0,Update docs: explain allow_download setting,5413548,louispotok,"This fixes one possible source of confusion seen in #502 and clarifies when database downloads will be shown and allowed.",2021-04-03T05:28:33Z,2021-06-05T19:48:51Z,2021-06-05T19:48:51Z,2021-06-05T19:48:51Z,368aa5f1b16ca35f82d90ff747023b9a2bfa27c1,,,,,0,9bf089faded74c96aced22332008126324a37f7a,0a7621f96f8ad14da17e7172e8a7bce24ef78966,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1291,,, 613178968,MDExOlB1bGxSZXF1ZXN0NjEzMTc4OTY4,1296,open,0,Dockerfile: use Ubuntu 20.10 as base,82332573,tmcl-it,"This PR changes the main Dockerfile to use ubuntu:20.10 as base image instead of python:3.9.2-slim-buster (itself based on debian:buster-slim). The Dockerfile is essentially the one from https://github.com/simonw/datasette/issues/1249#issuecomment-803698983 with some additional cleanups to slim it down. This fixes a couple of issues: 1. The SQLite version in Debian Buster (2.6.0) doesn't support generated columns 2. Installing SpatiaLite from the Debian sid repositories has the side effect of also installing updates to libc and libstdc++ from sid. As a bonus, the Docker image becomes smaller: ``` $ docker image ls REPOSITORY TAG IMAGE ID CREATED SIZE datasette 0.56-ubuntu f7aca255140a 5 hours ago 212MB datasetteproject/datasette 0.56 efb3b282f390 13 days ago 258MB ``` ### Reproduction of the first issue ``` $ curl -O https://latest.datasette.io/fixtures.db % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 260k 0 260k 0 0 489k 0 --:--:-- --:--:-- --:--:-- 489k $ docker run -v `pwd`:/mnt datasetteproject/datasette:0.56 datasette /mnt/fixtures.db Traceback (most recent call last): File ""/usr/local/bin/datasette"", line 8, in sys.exit(cli()) File ""/usr/local/lib/python3.9/site-packages/click/core.py"", line 829, in __call__ return self.main(*args, **kwargs) File ""/usr/local/lib/python3.9/site-packages/click/core.py"", line 782, in main rv = self.invoke(ctx) File ""/usr/local/lib/python3.9/site-packages/click/core.py"", line 1259, in invoke return _process_result(sub_ctx.command.invoke(sub_ctx)) File ""/usr/local/lib/python3.9/site-packages/click/core.py"", line 1066, in invoke return ctx.invoke(self.callback, **ctx.params) File ""/usr/local/lib/python3.9/site-packages/click/core.py"", line 610, in invoke return callback(*args, **kwargs) File ""/usr/local/lib/python3.9/site-packages/datasette/cli.py"", line 544, in serve asyncio.get_event_loop().run_until_complete(check_databases(ds)) File ""/usr/local/lib/python3.9/asyncio/base_events.py"", line 642, in run_until_complete return future.result() File ""/usr/local/lib/python3.9/site-packages/datasette/cli.py"", line 584, in check_databases await database.execute_fn(check_connection) File ""/usr/local/lib/python3.9/site-packages/datasette/database.py"", line 155, in execute_fn return await asyncio.get_event_loop().run_in_executor( File ""/usr/local/lib/python3.9/concurrent/futures/thread.py"", line 52, in run result = self.fn(*self.args, **self.kwargs) File ""/usr/local/lib/python3.9/site-packages/datasette/database.py"", line 153, in in_thread return fn(conn) File ""/usr/local/lib/python3.9/site-packages/datasette/utils/__init__.py"", line 892, in check_connection for r in conn.execute( sqlite3.DatabaseError: malformed database schema (generated_columns) - near ""AS"": syntax error ``` Here is the SQLite version: ``` $ docker run -v `pwd`:/mnt -it datasetteproject/datasette:0.56 /bin/bash root@d9220d3b95dd:/# python3 Python 3.9.2 (default, Mar 27 2021, 02:50:26) [GCC 8.3.0] on linux Type ""help"", ""copyright"", ""credits"" or ""license"" for more information. >>> import sqlite3 >>> sqlite3.version '2.6.0' ``` ### Reproduction of the second issue ``` $ docker build . -t datasette --build-arg VERSION=0.55 [...snip...] The following packages will be upgraded: libc-bin libc6 libstdc++6 [...snip...] Unpacking libc6:amd64 (2.31-11) over (2.28-10) ... [...snip...] Unpacking libstdc++6:amd64 (10.2.1-6) over (8.3.0-6) ... [...snip...] ``` Both libc and libstdc++ are backwards compatible, so the image still works, but it will result in a combination of libraries and Python versions that exists only in the Datasette image, so it's likely untested. In addition, since Debian sid is an always-changing rolling-release, the versions of libc, libstdc++, Spatialite, and their dependencies change frequently, so the library versions in the Datasette image will depend on the day when it was built. ",2021-04-12T00:23:32Z,2021-07-20T08:52:13Z,,,2ba522dbd7168a104a33621598c5a2460aae3e74,,,,,0,8f00c312f6b8ab5cecbb8a698ab4ad659aabf4ef,c73af5dd72305f6a01ea94a2c76d52e5e26de38b,FIRST_TIME_CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1296,,, 614727036,MDExOlB1bGxSZXF1ZXN0NjE0NzI3MDM2,254,closed,0,Fix incorrect create-table cli description,1935268,robjwells,The description for `create-table` was duplicated from `create-index`.,2021-04-13T20:03:15Z,2021-05-19T04:43:46Z,2021-05-19T02:57:26Z,2021-05-19T02:57:26Z,e7b2626291040b78b9a2dbc2982ba72691fb1a0f,,,,,0,cdeb7d7da77c6d1cd3554d08cb5659243cb3d55b,22f1d9e1999f70af4c5b0f880a820cd9eead3942,CONTRIBUTOR,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/254,,, 618011977,MDExOlB1bGxSZXF1ZXN0NjE4MDExOTc3,1303,closed,0,"Update pytest-asyncio requirement from <0.15,>=0.10 to >=0.10,<0.16",27856297,dependabot-preview[bot],"Updates the requirements on [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) to permit the latest version.
Commits

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) - `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language - `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language - `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language - `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language - `@dependabot badge me` will comment on this PR with code to add a ""Dependabot enabled"" badge to your readme Additionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com): - Update frequency (including time of day and day of week) - Pull request limits (per update run and/or open at any time) - Out-of-range updates (receive only lockfile updates, if desired) - Security updates (receive only security updates, if desired)
",2021-04-19T13:49:12Z,2021-04-19T18:18:17Z,2021-04-19T18:18:17Z,2021-04-19T18:18:17Z,6ed9238178a56da5fb019f37fb1e1e15886be1d1,,,,,0,c348ff1ecee0d831a75b17e3f48bcf0a8a558566,0a7621f96f8ad14da17e7172e8a7bce24ef78966,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1303,,, 621117978,MDExOlB1bGxSZXF1ZXN0NjIxMTE3OTc4,1306,closed,0,Avoid error sorting by relationships if related tables are not allowed,416374,gfrmin,Refs #1305,2021-04-22T13:53:17Z,2021-06-02T04:27:00Z,2021-06-02T04:25:28Z,2021-06-02T04:25:28Z,0f41db1ba8a8a49a4adc1046a25ccf32790e863f,,,,,0,115332ce76c0e867d9936406aaf4bcee6b1ef3cb,6ed9238178a56da5fb019f37fb1e1e15886be1d1,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1306,,, 623755723,MDExOlB1bGxSZXF1ZXN0NjIzNzU1NzIz,258,closed,0,Fixing insert from JSON containing strings with non-ascii characters …,6586811,dylan-wu,"…are escaped aps unicode for lists, tuples, dicts Fix of #257 ",2021-04-26T20:50:00Z,2021-05-19T02:47:44Z,2021-05-19T02:47:44Z,2021-05-19T02:47:44Z,6f4f9a3effeb16de0348d3cf136664f7531f498d,,,,,0,27e7c1ae1913e2127361af4fc664c2061fb76627,22f1d9e1999f70af4c5b0f880a820cd9eead3942,CONTRIBUTOR,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/258,,, 624635440,MDExOlB1bGxSZXF1ZXN0NjI0NjM1NDQw,1309,closed,0,Bump black from 20.8b1 to 21.4b0,27856297,dependabot-preview[bot],"Bumps [black](https://github.com/psf/black) from 20.8b1 to 21.4b0.
Release notes

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. Now Black 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)

Changelog

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. Now Black 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)

Commits

[![Dependabot compatibility score](https://api.dependabot.com/badges/compatibility_score?dependency-name=black&package-manager=pip&previous-version=20.8b1&new-version=21.4b0)](https://dependabot.com/compatibility-score/?dependency-name=black&package-manager=pip&previous-version=20.8b1&new-version=21.4b0) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) - `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language - `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language - `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language - `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language - `@dependabot badge me` will comment on this PR with code to add a ""Dependabot enabled"" badge to your readme Additionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com): - Update frequency (including time of day and day of week) - Pull request limits (per update run and/or open at any time) - Out-of-range updates (receive only lockfile updates, if desired) - Security updates (receive only security updates, if desired)
",2021-04-27T20:28:11Z,2021-04-28T18:26:06Z,2021-04-28T18:26:04Z,,1220c60d8a6bb8e621543ef78d669a2bccc2a3c8,,,,,0,20fc3fe2797b81a23cd464c1450d13086d53ea7f,a4bb2abce0764d49d255e5379f9e9c70981834ca,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1309,,, 625457579,MDExOlB1bGxSZXF1ZXN0NjI1NDU3NTc5,1311,closed,0,Bump black from 20.8b1 to 21.4b1,27856297,dependabot-preview[bot],"Bumps [black](https://github.com/psf/black) from 20.8b1 to 21.4b1.
Release notes

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. Now Black 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)

Changelog

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. Now Black 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)

Commits

[![Dependabot compatibility score](https://api.dependabot.com/badges/compatibility_score?dependency-name=black&package-manager=pip&previous-version=20.8b1&new-version=21.4b1)](https://dependabot.com/compatibility-score/?dependency-name=black&package-manager=pip&previous-version=20.8b1&new-version=21.4b1) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) - `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language - `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language - `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language - `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language - `@dependabot badge me` will comment on this PR with code to add a ""Dependabot enabled"" badge to your readme Additionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com): - Update frequency (including time of day and day of week) - Pull request limits (per update run and/or open at any time) - Out-of-range updates (receive only lockfile updates, if desired) - Security updates (receive only security updates, if desired)
",2021-04-28T18:25:58Z,2021-04-29T13:58:11Z,2021-04-29T13:58:09Z,,a8e260b47e0fb951790f155780354c8f8df88bc8,,,,,0,baf303063a76800ec97abee46cd5f264e6a6447a,a4bb2abce0764d49d255e5379f9e9c70981834ca,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1311,,, 626130135,MDExOlB1bGxSZXF1ZXN0NjI2MTMwMTM1,1313,closed,0,Bump black from 20.8b1 to 21.4b2,27856297,dependabot-preview[bot],"Bumps [black](https://github.com/psf/black) from 20.8b1 to 21.4b2.
Release notes

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 by black-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. Now Black enforces a single empty line. (#1646)

... (truncated)

Changelog

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 by black-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)

Commits

[![Dependabot compatibility score](https://api.dependabot.com/badges/compatibility_score?dependency-name=black&package-manager=pip&previous-version=20.8b1&new-version=21.4b2)](https://dependabot.com/compatibility-score/?dependency-name=black&package-manager=pip&previous-version=20.8b1&new-version=21.4b2) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) - `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language - `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language - `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language - `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language - `@dependabot badge me` will comment on this PR with code to add a ""Dependabot enabled"" badge to your readme Additionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com): - Update frequency (including time of day and day of week) - Pull request limits (per update run and/or open at any time) - Out-of-range updates (receive only lockfile updates, if desired) - Security updates (receive only security updates, if desired)
",2021-04-29T13:58:06Z,2021-04-29T15:47:50Z,2021-04-29T15:47:49Z,2021-04-29T15:47:49Z,1b697539f5b53cec3fe13c0f4ada13ba655c88c7,,,,,0,3cd7ad429944d47147c5d408f546c429e0a0019a,a4bb2abce0764d49d255e5379f9e9c70981834ca,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1313,,, 626222676,MDExOlB1bGxSZXF1ZXN0NjI2MjIyNjc2,1314,closed,0,Upgrade to GitHub-native Dependabot,27856297,dependabot-preview[bot],"_Dependabot Preview will be shut down on August 3rd, 2021. In order to keep getting Dependabot updates, please merge this PR and migrate to GitHub-native Dependabot before then._ Dependabot has been fully integrated into GitHub, so you no longer have to install and manage a separate app. This pull request migrates your configuration from Dependabot.com to a config file, using the [new syntax][new_syntax]. When merged, we'll swap out `dependabot-preview` (me) for a new `dependabot` app, and you'll be all set! With this change, you'll now use the [Dependabot page in GitHub][dependabot_page], rather than the [Dependabot dashboard][dashboard], to monitor your version updates, and you'll configure Dependabot through the new config file rather than a UI. If you've got any questions or feedback for us, please let us know by creating an issue in the [dependabot/dependabot-core][issues] repository. [Learn more about migrating to GitHub-native Dependabot][learn] Please note that regular `@dependabot` commands do not work on this pull request. [dashboard]: https://app.dependabot.com/ [dependabot_page]: https://github.com/simonw/datasette/network/updates [issues]: https://github.com/dependabot/dependabot-core/issues/new?assignees=%40dependabot%2Fpreview-migration-reviewers&labels=E%3A+preview-migration&template=migration-issue.md [learn]: http://docs.github.com/code-security/supply-chain-security/upgrading-from-dependabotcom-to-github-native-dependabot [new_syntax]: https://help.github.com/en/github/administering-a-repository/configuration-options-for-dependency-updates [org_secrets_url]: https://github.com/settings/secrets/dependabot [repo_secrets_url]: https://github.com/simonw/datasette/settings/secrets/dependabot ",2021-04-29T15:36:41Z,2021-04-29T15:47:22Z,2021-04-29T15:47:21Z,2021-04-29T15:47:21Z,5e60bad40460f68122006ce704cfc163d6076f34,,,,,0,98eea0b67f4ac658869052f1cfe31bcc44fe2a7a,a4bb2abce0764d49d255e5379f9e9c70981834ca,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1314,,, 630578735,MDExOlB1bGxSZXF1ZXN0NjMwNTc4NzM1,1318,closed,0,Bump black from 21.4b2 to 21.5b0,49699333,dependabot[bot],"Bumps [black](https://github.com/psf/black) from 21.4b2 to 21.5b0.
Release notes

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)
Changelog

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)
Commits

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=black&package-manager=pip&previous-version=21.4b2&new-version=21.5b0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
",2021-05-05T13:07:51Z,2021-05-11T13:12:32Z,2021-05-11T13:12:31Z,,e864f5420abb7a5d135f8fe470183786b577ce9a,,,,,0,e06c09911be52202940808d7a08df2e9b71b3af2,1b697539f5b53cec3fe13c0f4ada13ba655c88c7,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1318,,, 634821065,MDExOlB1bGxSZXF1ZXN0NjM0ODIxMDY1,1319,closed,0,Add Docker multi-arch support with Buildx,10801138,blairdrummond,"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) ",2021-05-08T19:35:03Z,2021-05-27T16:49:24Z,2021-05-27T16:49:24Z,2021-05-27T16:49:23Z,89822d10be0da446471986addea91d9766f12efb,,,,,0,cfca570f9ca010ff9036c75209dc42e78bbc945f,1b697539f5b53cec3fe13c0f4ada13ba655c88c7,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1319,,, 640484966,MDExOlB1bGxSZXF1ZXN0NjQwNDg0OTY2,1321,closed,0,Bump black from 21.4b2 to 21.5b1,49699333,dependabot[bot],"Bumps [black](https://github.com/psf/black) from 21.4b2 to 21.5b1.
Release notes

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 the main 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)
Changelog

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 the main 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)
Commits

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=black&package-manager=pip&previous-version=21.4b2&new-version=21.5b1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
",2021-05-11T13:12:28Z,2021-05-22T23:55:39Z,2021-05-22T23:55:39Z,2021-05-22T23:55:39Z,5e9672c9bb33e41686472db4aa427168f9e67dbe,,,,,0,966ced8fe14210fd9ce57322456944f739bf49b8,1b697539f5b53cec3fe13c0f4ada13ba655c88c7,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1321,,, 643149273,MDExOlB1bGxSZXF1ZXN0NjQzMTQ5Mjcz,1323,closed,0,"Update click requirement from ~=7.1.1 to >=7.1.1,<8.1.0",49699333,dependabot[bot],"Updates the requirements on [click](https://github.com/pallets/click) to permit the latest version.
Release notes

Sourced from click's releases.

8.0.0

New major versions of all the core Pallets libraries, including Click 8.0, have been released! :tada:

This represents a significant amount of work, and there are quite a few changes. Be sure to carefully read the changelog, and use tools such as pip-compile and Dependabot to pin your dependencies and control your updates.

Changelog

Sourced from click's changelog.

Version 8.0.0

Released 2021-05-11

  • Drop support for Python 2 and 3.5.
  • Colorama is always installed on Windows in order to provide style and color support. :pr:1784
  • Adds a repr to Command, showing the command name for friendlier debugging. :issue:1267, :pr:1295
  • Add support for distinguishing the source of a command line parameter. :issue:1264, :pr:1329
  • Add an optional parameter to ProgressBar.update to set the current_item. :issue:1226, :pr:1332
  • version_option uses importlib.metadata (or the importlib_metadata backport) instead of pkg_resources. :issue:1582
  • If validation fails for a prompt with hide_input=True, the value is not shown in the error message. :issue:1460
  • An IntRange or FloatRange option shows the accepted range in its help text. :issue:1525, :pr:1303
  • IntRange and FloatRange bounds can be open (<) instead of closed (<=) by setting min_open and max_open. Error messages have changed to reflect this. :issue:1100
  • An option defined with duplicate flag names ("--foo/--foo") raises a ValueError. :issue:1465
  • echo() will not fail when using pytest's capsys fixture on Windows. :issue:1590
  • Resolving commands returns the canonical command name instead of the matched name. This makes behavior such as help text and Context.invoked_subcommand consistent when using patterns like AliasedGroup. :issue:1422
  • The BOOL type accepts the values "on" and "off". :issue:1629
  • A Group with invoke_without_command=True will always invoke its result callback. :issue:1178
  • nargs == -1 and nargs > 1 is parsed and validated for values from environment variables and defaults. :issue:729
  • Detect the program name when executing a module or package with python -m name. :issue:1603
  • Include required parent arguments in help synopsis of subcommands. :issue:1475
  • Help for boolean flags with show_default=True shows the flag name instead of True or False. :issue:1538
  • Non-string objects passed to style() and secho() will be converted to string. :pr:1146
  • edit(require_save=True) will detect saves for editors that exit very fast on filesystems with 1 second resolution. :pr:1050
  • New class attributes make it easier to use custom core objects throughout an entire application. :pr:938

... (truncated)

Commits
  • 9da1669 Merge pull request #1877 from pallets/release-8.0.0
  • dfa6369 release version 8.0.0
  • b862cb1 update requirements
  • f51584c Merge pull request #1876 from pallets/pre-commit-ci-schedule
  • 804c71c update pre-commit monthly
  • ac655f8 Merge pull request #1872 from janLuke/fix/formatter_write_text
  • dcd991d HelpFormatter.write_text uses full width
  • 5215fc1 Merge pull request #1870 from AdrienPensart/allow_colors_in_metavar
  • e3e1691 repr is erasing ANSI escapes codes
  • 482e6e6 Merge pull request #1875 from pallets/pre-commit-ci-update-config
  • Additional commits viewable in compare view

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
",2021-05-12T13:08:56Z,2021-05-22T23:54:48Z,2021-05-22T23:54:48Z,2021-05-22T23:54:48Z,5c3b3ef97eed55895cf48d4a9ee0635c1c4d03b8,,,,,0,cd695020e4fdfe31d3417d91911c9bdbce9a2f2e,9b3b7e280ca718254b4ca15d40864297146a85b3,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1323,,, 643149320,MDExOlB1bGxSZXF1ZXN0NjQzMTQ5MzIw,1324,closed,0,"Update jinja2 requirement from <2.12.0,>=2.10.3 to >=2.10.3,<3.1.0",49699333,dependabot[bot],"Updates the requirements on [jinja2](https://github.com/pallets/jinja) to permit the latest version.
Release notes

Sourced from jinja2's releases.

3.0.0

New major versions of all the core Pallets libraries, including Jinja 3.0, have been released! :tada:

This represents a significant amount of work, and there are quite a few changes. Be sure to carefully read the changelog, and use tools such as pip-compile and Dependabot to pin your dependencies and control your updates.

Changelog

Sourced from jinja2's changelog.

Version 3.0.0

Released 2021-05-11

  • Drop support for Python 2.7 and 3.5.
  • Bump MarkupSafe dependency to >=1.1.
  • Bump Babel optional dependency to >=2.1.
  • Remove code that was marked deprecated.
  • Add type hinting. :pr:1412
  • Use :pep:451 API to load templates with :class:~loaders.PackageLoader. :issue:1168
  • Fix a bug that caused imported macros to not have access to the current template's globals. :issue:688
  • Add ability to ignore trim_blocks using +%}. :issue:1036
  • Fix a bug that caused custom async-only filters to fail with constant input. :issue:1279
  • Fix UndefinedError incorrectly being thrown on an undefined variable instead of Undefined being returned on NativeEnvironment on Python 3.10. :issue:1335
  • Blocks can be marked as required. They must be overridden at some point, but not necessarily by the direct child. :issue:1147
  • Deprecate the autoescape and with extensions, they are built-in to the compiler. :issue:1203
  • The urlize filter recognizes mailto: links and takes extra_schemes (or env.policies["urlize.extra_schemes"]) to recognize other schemes. It tries to balance parentheses within a URL instead of ignoring trailing characters. The parsing in general has been updated to be more efficient and match more cases. URLs without a scheme are linked as https:// instead of http://. :issue:522, 827, 1172, :pr:1195
  • Filters that get attributes, such as map and groupby, can use a false or empty value as a default. :issue:1331
  • Fix a bug that prevented variables set in blocks or loops from being accessed in custom context functions. :issue:768
  • Fix a bug that caused scoped blocks from accessing special loop variables. :issue:1088
  • Update the template globals when calling Environment.get_template(globals=...) even if the template was already loaded. :issue:295
  • Do not raise an error for undefined filters in unexecuted if-statements and conditional expressions. :issue:842
  • Add is filter and is test tests to test if a name is a registered filter or test. This allows checking if a filter is available in a template before using it. Test functions can be decorated with @pass_environment, @pass_eval_context, or @pass_context. :issue:842, :pr:1248
  • Support pgettext and npgettext (message contexts) in i18n extension. :issue:441
  • The |indent filter's width argument can be a string to

... (truncated)

Commits

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
",2021-05-12T13:08:59Z,2021-05-17T17:19:41Z,2021-05-17T17:19:40Z,2021-05-17T17:19:40Z,9b3b7e280ca718254b4ca15d40864297146a85b3,,,,,0,177456e64bbdc7a1ec7c58f2cacba932b261b3fb,1b697539f5b53cec3fe13c0f4ada13ba655c88c7,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1324,,, 643149364,MDExOlB1bGxSZXF1ZXN0NjQzMTQ5MzY0,1325,closed,0,"Update itsdangerous requirement from ~=1.1 to >=1.1,<3.0",49699333,dependabot[bot],"Updates the requirements on [itsdangerous](https://github.com/pallets/itsdangerous) to permit the latest version.
Release notes

Sourced from itsdangerous's releases.

2.0.0

New major versions of all the core Pallets libraries, including ItsDangerous 2.0, have been released! :tada:

This represents a significant amount of work, and there are quite a few changes. Be sure to carefully read the changelog, and use tools such as pip-compile and Dependabot to pin your dependencies and control your updates.

Changelog

Sourced from itsdangerous's changelog.

Version 2.0.0

Released 2021-05-11

  • Drop support for Python 2 and 3.5.
  • JWS support (JSONWebSignatureSerializer, TimedJSONWebSignatureSerializer) is deprecated. Use a dedicated JWS/JWT library such as authlib instead. :issue:129
  • Importing itsdangerous.json is deprecated. Import Python's json module instead. :pr:152
  • Simplejson is no longer used if it is installed. To use a different library, pass it as Serializer(serializer=...). :issue:146
  • datetime values are timezone-aware with timezone.utc. Code using TimestampSigner.unsign(return_timestamp=True) or BadTimeSignature.date_signed may need to change. :issue:150
  • If a signature has an age less than 0, it will raise SignatureExpired rather than appearing valid. This can happen if the timestamp offset is changed. :issue:126
  • BadTimeSignature.date_signed is always a datetime object rather than an int in some cases. :issue:124
  • Added support for key rotation. A list of keys can be passed as secret_key, oldest to newest. The newest key is used for signing, all keys are tried for unsigning. :pr:141
  • Removed the default SHA-512 fallback signer from default_fallback_signers. :issue:155
  • Add type information for static typing tools. :pr:186

Version 1.1.0

Released 2018-10-26

  • Change default signing algorithm back to SHA-1. :pr:113
  • Added a default SHA-512 fallback for users who used the yanked 1.0.0 release which defaulted to SHA-512. :pr:114
  • Add support for fallback algorithms during deserialization to support changing the default in the future without breaking existing signatures. :pr:113
  • Changed capitalization of packages back to lowercase as the change in capitalization broke some tooling. :pr:113

Version 1.0.0

Released 2018-10-18

YANKED

... (truncated)

Commits
  • d101100 Merge pull request #235 from pallets/release-2.0.0
  • ca0f59a release version 2.0.0
  • d1ed89f update requirements
  • d1722ea Merge pull request #234 from pallets/pre-commit-ci-schedule
  • d1eb7aa update pre-commit monthly
  • acbc456 Merge pull request #233 from pallets/pre-commit-ci-update-config
  • 04e485a [pre-commit.ci] pre-commit autoupdate
  • c0e6b48 Merge pull request #232 from pallets/pre-commit-ci-update-config
  • 6a9df83 [pre-commit.ci] pre-commit autoupdate
  • 477f42c Merge pull request #231 from pallets/dependabot/pip/pre-commit-2.12.1
  • Additional commits viewable in compare view

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
",2021-05-12T13:09:03Z,2021-05-22T23:54:25Z,2021-05-22T23:54:25Z,2021-05-22T23:54:25Z,b64d87204612a84663616e075f542499a5d82a03,,,,,0,4dea180e51601bb0851edb578f076c51554c6d51,1b697539f5b53cec3fe13c0f4ada13ba655c88c7,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1325,,, 645100848,MDExOlB1bGxSZXF1ZXN0NjQ1MTAwODQ4,12,open,0,Recovering of malformed ENEX file,8431437,engdan77,"Hey .. Awesome work developing this project, that I found very useful to me and saved me some work.. Thanks.. :) Some background to this PR... I've been searching around for a tool allowing me to transforming my personal collection of Evernote notes to a format easier to search and potentially easier import to future services. Now I discovered problem processing my large data ~5GB using the existing source using Pythons builtin xml-parser that unfortunately was unable to succeed without exception breaking the process. My first attempt I tried to adapt to more robust lxml package allowing huge data and with ""recover"", but even if it worked better it also failed processing the whole data. Even using the memory efficient etree.iterparse() it also unfortunately got into trouble. And with no luck finding any other libraries successfully parsing this enormous file I instead chose to build a ""hugexmlparser"" module that allows parsing this huge file using yield (on a byte-to-byte-level) and allows you to set a maximum size for to cater for potential malformed or undesirable large attachments to export, should succeed covering potential exceptions. Some cases found where the parses discover malformed XML within so also in those cases try to save as much as possible by escaping (to be dealt at a later stage, better than nothing), and if a missing end before new (malformed?) it would add this after encounter a new start-tag. The code for the recovery process is a bit rough and for certain room for refactoring, but at the moment is seem to achieve what I wanted. Now with the above we pass this a minor changed version of save_note_recovery() assure the existing works. Also adding this as a new recover-enex command to click and kept the original options. A couple of new tests was added as well to check against using this command. Now this currently works to me, but thought I might share a PR in such as you find use for this yourself or found useful to others finding this repository. As a second step .. When the time allows it would have been nice to also be able to easily export from SQLite to formatted HTML/MD and attachments saved... but that might perhaps be better a separate project ... or if you or someone else have something that might shared to save some trouble, I would be interested ;-) ",2021-05-15T07:49:31Z,2021-05-15T19:57:50Z,,,95f21ca163606db74babd036e6fa44b7d484d137,,,,,0,a5839dadaa43694f208ad74a53670cebbe756956,0bc6ba503eecedb947d2624adbe1327dd849d7fe,FIRST_TIME_CONTRIBUTOR,303218369,evernote-to-sqlite,https://github.com/dogsheep/evernote-to-sqlite/pull/12,,, 645849027,MDExOlB1bGxSZXF1ZXN0NjQ1ODQ5MDI3,1330,closed,0,"Update aiofiles requirement from <0.7,>=0.4 to >=0.4,<0.8",49699333,dependabot[bot],"Updates the requirements on [aiofiles](https://github.com/Tinche/aiofiles) to permit the latest version.
Commits

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
",2021-05-17T13:07:31Z,2021-05-22T23:53:57Z,2021-05-22T23:53:56Z,2021-05-22T23:53:56Z,593d3e8173b45e20ff3c95afb3df7ceb85bf7fef,,,,,0,cc1b504793486dd7d14a9cb8248c4cf6db60b179,1b697539f5b53cec3fe13c0f4ada13ba655c88c7,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1330,,, 647552141,MDExOlB1bGxSZXF1ZXN0NjQ3NTUyMTQx,1335,closed,0,Fix small typo,3243482,abdusco,,2021-05-19T11:17:04Z,2021-05-22T23:53:34Z,2021-05-22T23:53:34Z,2021-05-22T23:53:34Z,459259175eddeed727fd8f08dc19a332779a4f6b,,,,,0,d91c18dcd956b414b57eaa2763d2b8f5f6f6427f,9b3b7e280ca718254b4ca15d40864297146a85b3,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1335,,, 651492888,MDExOlB1bGxSZXF1ZXN0NjUxNDkyODg4,1339,closed,0,?_col=/?_nocol= to show/hide columns on the table page,9599,simonw,"See #615. Still to do: - [x] Allow combination of `?_col=` and `?_nocol=` (`_nocol` wins) - [x] Deduplicate same column if passed in `?_col=` multiple times - [x] Validate that user did not try to remove a primary key - [x] Add tests - [x] Ensure this works correctly for SQL views - [x] Add documentation ",2021-05-24T17:15:20Z,2021-05-27T04:17:44Z,2021-05-27T04:17:43Z,2021-05-27T04:17:43Z,f1c29fd6a184254aa68efadf096bcf21e848f921,,,,,0,387c8379b92e559180098f73017a1bf2e6370205,2bd9d54b2762c991e11950c22c88c0336158d49b,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/1339,,, 655684477,MDExOlB1bGxSZXF1ZXN0NjU1Njg0NDc3,1346,closed,0,Re-display user's query with an error message if an error occurs,9599,simonw,Refs #619,2021-05-28T02:04:20Z,2021-06-02T03:46:21Z,2021-06-02T03:46:21Z,2021-06-02T03:46:21Z,9552414e1f968c6fc704031cec349c05e6bc2371,,,,,0,3bffc35ff9137a75024d2a8ef44828a50ec91071,7b106e106000713bbee31b34d694b3dadbd4818c,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/1346,,, 655726387,MDExOlB1bGxSZXF1ZXN0NjU1NzI2Mzg3,1347,closed,0,Test docker platform blair only,10801138,blairdrummond,,2021-05-28T02:47:09Z,2021-05-28T02:47:28Z,2021-05-28T02:47:28Z,,e755dd8c8cf7149046a8b5fd44aec07c4b2416d3,,,,,0,f730725fd260ba6578c472c344269d5d5df4e650,7b106e106000713bbee31b34d694b3dadbd4818c,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1347,,, 655741428,MDExOlB1bGxSZXF1ZXN0NjU1NzQxNDI4,1348,open,0,DRAFT: add test and scan for docker images,10801138,blairdrummond,"**NOTE: I don't think this PR is ready, since the arm/v6 and arm/v7 images are failing pytest due to missing dependencies (gcc and friends). But it's pretty close.** Closes https://github.com/simonw/datasette/issues/1344 . Using a build-matrix for the platforms and [this test](https://github.com/simonw/datasette/issues/1344#issuecomment-849820019), we test all the platforms in parallel. I also threw in container scanning. ### Switch `pip install` to use either tags or commit shas Notably! This also [changes the Dockerfile](https://github.com/blairdrummond/datasette/blob/7fe5315d68e04fce64b5bebf4e2d7feec44f8546/Dockerfile#L20) so that it accepts tags or commit-shas. ``` # It's backwards compatible with tags, but also lets you use shas root@712071df17af:/# pip install git+git://github.com/simonw/datasette.git@0.56 Collecting git+git://github.com/simonw/datasette.git@0.56 Cloning git://github.com/simonw/datasette.git (to revision 0.56) to /tmp/pip-req-build-u6dhm945 Running command git clone -q git://github.com/simonw/datasette.git /tmp/pip-req-build-u6dhm945 Running command git checkout -q af5a7f1c09f6a902bb2a25e8edf39c7034d2e5de Collecting Jinja2<2.12.0,>=2.10.3 Downloading Jinja2-2.11.3-py2.py3-none-any.whl (125 kB) ``` This lets you build the containers in CI every push for testing, which maybe resolves [this problem](https://github.com/simonw/datasette/issues/1272#issuecomment-808648974)? # Workflow run example You can see the results in my workflow [here](https://github.com/blairdrummond/datasette/pull/2/checks?check_run_id=2690570717). The commit history is different because I squashed this branch, also in the testing branch I had to change `github.com/simonw` to `github.com/blairdrummond` for the CI to pick up my git_sha. ## Why did the builds fail? **NOTE:** The results of all the tests fail, but for different reasons! A few fail to install Rust, the amd64 passes the tests (phew!) but has critical CVEs which fail the container scan, the Arm/v6 and Arm/v7 seem to fail to install the test dependencies due to missing programs like `gcc`. (`gcc` is not sufficient though, as [this run](https://github.com/blairdrummond/datasette/pull/3/checks?check_run_id=2690672982) indicates) ",2021-05-28T03:02:12Z,2021-05-28T03:06:16Z,,,eeea7cb835be0f0319cafccf50dffa6ad26826c5,,,,,0,56cba8fb837cd938c2f9d7423ee43d62a81c8f7c,7b106e106000713bbee31b34d694b3dadbd4818c,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1348,,, 657373726,MDExOlB1bGxSZXF1ZXN0NjU3MzczNzI2,262,closed,0,Ability to add descending order indexes,9599,simonw,Refs #260,2021-05-29T04:51:04Z,2021-05-29T05:01:42Z,2021-05-29T05:01:39Z,2021-05-29T05:01:39Z,51d01da30d45c1fbc1e587e6046a933529cf915e,,,,,0,50a4fb722d29c3e53f7b148a41aeda901d02a264,b2302875c97f723e02cc39136d0b20fd706369aa,OWNER,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/262,,, 658991404,MDExOlB1bGxSZXF1ZXN0NjU4OTkxNDA0,1352,closed,0,Bump black from 21.5b1 to 21.5b2,49699333,dependabot[bot],"Bumps [black](https://github.com/psf/black) from 21.5b1 to 21.5b2.
Release notes

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 only root/.gitignore file (apply .gitignore rules like git 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)
Changelog

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 only root/.gitignore file (apply .gitignore rules like git 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)
Commits

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=black&package-manager=pip&previous-version=21.5b1&new-version=21.5b2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
",2021-06-01T13:08:52Z,2021-06-02T02:56:45Z,2021-06-02T02:56:44Z,2021-06-02T02:56:44Z,03b35d70e281ea48bd9b8058738ed87b13cea2de,,,,,0,6921552c80854d6ea73203fe2f9ab46bac6d5644,a18e8641bc33e51b265855bc6e8a1939597b3a76,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1352,,, 662557240,MDExOlB1bGxSZXF1ZXN0NjYyNTU3MjQw,1357,closed,0,Make custom pages compatible with base_url setting,9599,simonw,Refs #1238.,2021-06-05T18:54:39Z,2021-06-05T18:59:54Z,2021-06-05T18:59:54Z,2021-06-05T18:59:54Z,a63412152518581c6a3d4e142b937e27dabdbfdb,,,,,0,1b27643d7bd192e1d2cc52e36ada0021c3f76bb8,6e9b07be92905011211d8df7a872fb7c1f2737b2,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/1357,,, 663836965,MDExOlB1bGxSZXF1ZXN0NjYzODM2OTY1,1368,closed,0,DRAFT: A new plugin hook for dynamic metadata,2670795,brandonrobertz,"Note that this is a WORK IN PROGRESS! This PR adds the following plugin hook: get_metadata( datasette=self, key=key, database=database, table=table, fallback=fallback ) This gets called when we're building our metdata for the rest of the system to use. Datasette merges whatever the plugins return with any local metadata (from metadata.yml/yaml/json) allowing for a live-editable dynamic Datasette. __A major design consideration is this: should Datasette perform the metadata merge? Or should Datasette allow plugins to perform any modifications themselves?__ As a security precation, local meta is *not* overwritable by plugin hooks. The workflow for transitioning to live-meta would be to load the plugin with the full metadata.yaml and save. Then remove the parts of the metadata that you want to be able to change from the file. I have a WIP dynamic configuration plugin here, for reference: https://github.com/next-LI/datasette-live-config/",2021-06-07T18:56:00Z,2021-06-26T22:24:54Z,2021-06-26T22:24:54Z,2021-06-26T22:24:54Z,baf986c871708c01ca183be760995cf306ba21bf,,,,,0,84fe80cb94ad2d6d7d88f6dec94b6c317fbe20d9,953a64467d78bca29fe6cc18bdb2baa7848e53ff,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1368,,, 664072046,MDExOlB1bGxSZXF1ZXN0NjY0MDcyMDQ2,1370,closed,0,Ensure db.path is a string before trying to insert into internal database,25778,eyeseast,"Fixes #1365 This is the simplest possible fix, with a test that will fail without it. There are a bunch of places where `db.path` is getting converted to and from a `Path` type, so this fix errs on the side of calling `str(db.path)` right before it's inserted.",2021-06-08T01:16:48Z,2021-06-21T15:57:39Z,2021-06-21T15:57:39Z,2021-06-21T15:57:39Z,a6c55afe8c82ead8deb32f90c9324022fd422324,,,,,0,2de712e439097de1d31f00db312cb87764642a87,f4c5777c7e4ed406313583de09a3bf746552167f,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1370,,, 665892313,MDExOlB1bGxSZXF1ZXN0NjY1ODkyMzEz,1373,closed,0,"Update trustme requirement from <0.8,>=0.7 to >=0.7,<0.9",49699333,dependabot[bot],"Updates the requirements on [trustme](https://github.com/python-trio/trustme) to permit the latest version.
Commits
  • f9e13e0 Release 0.8.0
  • 4ae4435 Merge pull request #304 from python-trio/dependabot/add-v2-config-file
  • 8767902 Merge pull request #327 from graingert/test-on-py310
  • 6abfddd Merge branch 'master' of github.com:python-trio/trustme into test-on-py310
  • 51d3bdf Merge pull request #328 from tiran/correct_ku_eku
  • 034fb3a retry codecov more
  • 53e121d try codecov harder
  • c1e7923 require codecov in ci
  • e3ac2d6 Update tests/test_trustme.py
  • 496dca6 close the wrapped sockets to prevent Unraisable ResourceWarnings
  • Additional commits viewable in compare view

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
",2021-06-09T13:09:44Z,2021-06-13T15:38:47Z,2021-06-13T15:38:47Z,2021-06-13T15:38:47Z,83e9c8bc7585dcc62f200e37c2daefcd669ee05e,,,,,0,51ff366eba7ce218cb82fc666032ccc83f2195fe,e7975657656ce02717f03703bb8ec17f2fe9b717,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1373,,, 668129441,MDExOlB1bGxSZXF1ZXN0NjY4MTI5NDQx,1374,closed,0,Bump black from 21.5b2 to 21.6b0,49699333,dependabot[bot],"Bumps [black](https://github.com/psf/black) from 21.5b2 to 21.6b0.
Release notes

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)
Changelog

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)
Commits

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=black&package-manager=pip&previous-version=21.5b2&new-version=21.6b0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
",2021-06-11T13:07:39Z,2021-06-13T15:33:23Z,2021-06-13T15:33:22Z,2021-06-13T15:33:22Z,e7975657656ce02717f03703bb8ec17f2fe9b717,,,,,0,0ef0dd5874ed39527ab12098a6c3da7ff8115c54,cd7678fde65319d7b6955ce9f4678ba4b9e64b66,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1374,,, 671014751,MDExOlB1bGxSZXF1ZXN0NjcxMDE0NzUx,273,closed,0,sqlite-utils memory command for directly querying CSV/JSON data,9599,simonw,"Refs #272. Initial implementation only does CSV data, still needs: - [x] Implement `--save` - [x] Add `--dump` to the documentation - [x] Add `--attach` example to the documentation - [x] Replace `:memory:` in documentation",2021-06-16T05:04:58Z,2021-06-18T15:01:17Z,2021-06-18T15:00:52Z,2021-06-18T15:00:52Z,42ec59d8ee3fcfb8ac1affb772aed43b6e2a7381,,,,,0,df7a37bdb730bb863fa29758f6fb35f809fa0dd0,78aebb6479420217454747870737bc593a259abc,OWNER,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/273,,, 672053811,MDExOlB1bGxSZXF1ZXN0NjcyMDUzODEx,65,open,0,basic support for events,231498,khimaros,"a quick first pass at implementing the feature requested in https://github.com/dogsheep/github-to-sqlite/issues/64 testing instructions: ``` $ github-to-sqlite events events.db user/khimaros ``` if the specified user is the authenticated user, it will also include private events. caveat: pagination appears to be broken (i don't see `next` in the response JSON from GitHub)",2021-06-17T00:51:30Z,2022-10-03T22:35:03Z,,,0a252a06a15e307c8a67b2e0aac0907e2566bf19,,,,,0,82da9f91deda81d92ec64c9eda960aa64340c169,0e45b72312a0756e5a562effbba08cb8de1e480b,FIRST_TIME_CONTRIBUTOR,207052882,github-to-sqlite,https://github.com/dogsheep/github-to-sqlite/pull/65,,, 672359609,MDExOlB1bGxSZXF1ZXN0NjcyMzU5NjA5,277,closed,0,add -h support closes #276,601708,mcint,This appears to be the [canonical solution](https://click.palletsprojects.com/en/7.x/documentation/#help-parameter-customization).,2021-06-17T08:08:26Z,2021-06-18T14:56:59Z,2021-06-18T14:56:59Z,2021-06-18T14:56:59Z,aa652b6afe43d2b40fabc7a513c3e68866e030a5,,,,,0,abbd324a2178f09b19966ec36ab2f584d1824c59,a19ce1a4d0048d389411cfe11a5dbe4c503720e1,CONTRIBUTOR,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/277,,, 672620180,MDExOlB1bGxSZXF1ZXN0NjcyNjIwMTgw,1378,closed,0,"Update pytest-xdist requirement from <2.3,>=2.2.1 to >=2.2.1,<2.4",49699333,dependabot[bot],"Updates the requirements on [pytest-xdist](https://github.com/pytest-dev/pytest-xdist) to permit the latest version.
Changelog

Sourced from pytest-xdist's changelog.

pytest-xdist 2.3.0 (2021-06-16)

Deprecations and Removals

  • [#654](https://github.com/pytest-dev/pytest-xdist/issues/654) <https://github.com/pytest-dev/pytest-xdist/issues/654>_: Python 3.5 is no longer supported.

Features

  • [#646](https://github.com/pytest-dev/pytest-xdist/issues/646) <https://github.com/pytest-dev/pytest-xdist/issues/646>_: Add --numprocesses=logical flag, which automatically uses the number of logical CPUs available, instead of physical CPUs with auto.

    This is very useful for test suites which are not CPU-bound.

  • [#650](https://github.com/pytest-dev/pytest-xdist/issues/650) <https://github.com/pytest-dev/pytest-xdist/issues/650>_: Added new pytest_handlecrashitem hook to allow handling and rescheduling crashed items.

Bug Fixes

  • [#421](https://github.com/pytest-dev/pytest-xdist/issues/421) <https://github.com/pytest-dev/pytest-xdist/issues/421>_: Copy the parent process sys.path into local workers, to work around execnet's python -c adding the current directory to sys.path.

  • [#638](https://github.com/pytest-dev/pytest-xdist/issues/638) <https://github.com/pytest-dev/pytest-xdist/issues/638>_: Fix issue caused by changing the branch name of the pytest repository.

Trivial Changes

  • [#592](https://github.com/pytest-dev/pytest-xdist/issues/592) <https://github.com/pytest-dev/pytest-xdist/issues/592>_: Replace master with controller where ever possible.

  • [#643](https://github.com/pytest-dev/pytest-xdist/issues/643) <https://github.com/pytest-dev/pytest-xdist/issues/643>_: Use 'main' to refer to pytest default branch in tox env names.

pytest-xdist 2.2.1 (2021-02-09)

Bug Fixes

  • [#623](https://github.com/pytest-dev/pytest-xdist/issues/623) <https://github.com/pytest-dev/pytest-xdist/issues/623>_: Gracefully handle the pending deprecation of Node.fspath by using config.rootpath for topdir.

pytest-xdist 2.2.0 (2020-12-14)

Features

... (truncated)

Commits
  • fe57b39 fixup: add release title underline for 2.3.0
  • 26e7d95 prepare release 2.3.0
  • b02a6db Merge pull request #667 from graingert/fix-sys-path
  • b072267 add newsfile
  • 881cc48 Merge pull request #672 from pytest-dev/pre-commit-ci-update-config
  • 958679e [pre-commit.ci] pre-commit autoupdate
  • 7f07d50 Merge pull request #646 from kroeschl/numprocesses-logical
  • fb518de Merge pull request #669 from pytest-dev/pre-commit-ci-update-config
  • 0b14d92 [pre-commit.ci] pre-commit autoupdate
  • 02f971d swap docstring
  • Additional commits viewable in compare view

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
",2021-06-17T13:11:56Z,2021-06-20T00:17:07Z,2021-06-20T00:17:06Z,2021-06-20T00:17:06Z,5335f360f4d57d70cab3694b08f15729c4ca2fe2,,,,,0,0c132d13de2d57004a36ece36217b337478ce4f4,83e9c8bc7585dcc62f200e37c2daefcd669ee05e,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1378,,, 673872974,MDExOlB1bGxSZXF1ZXN0NjczODcyOTc0,7,open,0,Add instagram-to-sqlite,36654812,gavindsouza,"The tool covers only chat imports at the time of opening this PR but I'm planning to import everything else that I feel inquisitive about ref: https://github.com/gavindsouza/instagram-to-sqlite",2021-06-19T12:26:16Z,2021-07-28T07:58:59Z,,,66e9828db4a8ddc4049ab9932e1304288e571821,,,,,0,4e4c6baf41778071a960d288b0ef02bd01cb6376,92c6bb77629feeed661c7b8d9183a11367de39e0,FIRST_TIME_CONTRIBUTOR,214746582,dogsheep.github.io,https://github.com/dogsheep/dogsheep.github.io/pull/7,,, 677554929,MDExOlB1bGxSZXF1ZXN0Njc3NTU0OTI5,293,closed,0,Test against Python 3.10-dev,9599,simonw,,2021-06-25T01:40:39Z,2021-10-13T21:49:33Z,2021-10-13T21:49:33Z,,0f64d20b044ecb86d9e4e5843f9590006d2f39c2,,,,,0,ae0f46a78958c0118e98c2ab18bd1b57a0478326,747be6057d09a4e5d9d726e29d5cf99b10c59dea,OWNER,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/293,,, 678459554,MDExOlB1bGxSZXF1ZXN0Njc4NDU5NTU0,1385,closed,0,Fix + improve get_metadata plugin hook docs,2670795,brandonrobertz,"This fixes documentation inaccuracies and adds a disclaimer about the signature of the `get_metadata` hook. Addresses the following comments: - https://github.com/simonw/datasette/issues/1384#issuecomment-869069926 - https://github.com/simonw/datasette/issues/1384#issuecomment-869075368",2021-06-27T05:43:20Z,2021-09-13T18:53:11Z,2021-09-13T18:53:11Z,,d283ef6806aabcd749623ffe4e69011879f7bfad,,,,,0,8d78c8c22ddfa10c041f7b5dd9118d4c8674729f,67cbf0ae7243431bf13702e6e3ba466b619c4d6f,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1385,,, 679035847,MDExOlB1bGxSZXF1ZXN0Njc5MDM1ODQ3,1386,closed,0,"Update asgiref requirement from <3.4.0,>=3.2.10 to >=3.2.10,<3.5.0",49699333,dependabot[bot],"Updates the requirements on [asgiref](https://github.com/django/asgiref) to permit the latest version.
Changelog

Sourced from asgiref's changelog.

3.4.0 (2021-06-27)

  • Calling sync_to_async directly from inside itself (which causes a deadlock when in the default, thread-sensitive mode) now has deadlock detection.

  • asyncio usage has been updated to use the new versions of get_event_loop, ensure_future, wait and gather, avoiding deprecation warnings in Python 3.10. Python 3.6 installs continue to use the old versions; this is only for 3.7+

  • sync_to_async and async_to_sync now have improved type hints that pass through the underlying function type correctly.

  • All Websocket* types are now spelled WebSocket, to match our specs and the official spelling. The old names will work until release 3.5.0, but will raise deprecation warnings.

  • The typing for WebSocketScope and HTTPScope's extensions key has been fixed.

3.3.4 (2021-04-06)

  • The async_to_sync type error is now a warning due the high false negative rate when trying to detect coroutine-returning callables in Python.

3.3.3 (2021-04-06)

  • The sync conversion functions now correctly detect functools.partial and other wrappers around async functions on earlier Python releases.

3.3.2 (2021-04-05)

  • SyncToAsync now takes an optional "executor" argument if you want to supply your own executor rather than using the built-in one.

  • async_to_sync and sync_to_async now check their arguments are functions of the correct type.

  • Raising CancelledError inside a SyncToAsync function no longer stops a future call from functioning.

  • ThreadSensitive now provides context hooks/override options so it can be made to be sensitive in a unit smaller than threads (e.g. per request)

... (truncated)

Commits

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
",2021-06-28T13:13:07Z,2021-07-11T01:36:19Z,2021-07-11T01:36:18Z,2021-07-11T01:36:18Z,f83c84fd51d144036924ae77d99f12b0a69e7e6f,,,,,0,e974ed19b09500aecb62252fe7001234d4424ff9,ea627baccf980d7d8ebc9e1ffff1fe34d556e56f,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1386,,, 687298112,MDExOlB1bGxSZXF1ZXN0Njg3Mjk4MTEy,1392,closed,0,Update deploying.rst,80737,aslakr,Use same base url for Apache as in the example,2021-07-11T08:43:19Z,2021-07-13T17:42:31Z,2021-07-13T17:42:27Z,2021-07-13T17:42:27Z,4054e96a3914e821d0880a40a7284aaa9db1eaaa,,,,,0,f57a8ab0905bb85a9334fe4bf87e2cd736c78cbb,f83c84fd51d144036924ae77d99f12b0a69e7e6f,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1392,,, 687304242,MDExOlB1bGxSZXF1ZXN0Njg3MzA0MjQy,1393,closed,0,Update deploying.rst,80737,aslakr,"Example on how to use Unix domain socket option on Apache. Not testet. (Usually I would have used [`ProxyPassReverse`](https://httpd.apache.org/docs/current/mod/mod_proxy.html#proxypassreverse) in combination with `ProxyPass` , i.e. ```apache ProxyPass /my-datasette/ http://127.0.0.1:8009/my-datasette/ ProxyPassReverse /my-datasette/ http://127.0.0.1:8009/my-datasette/ ``` and ```apache ProxyPass /my-datasette/ unix:/tmp/datasette.sock|http://localhost/my-datasette/ ProxyPassReverse /my-datasette/ unix:/tmp/datasette.sock|http://localhost/my-datasette/ ``` )",2021-07-11T09:32:16Z,2021-07-13T18:32:49Z,2021-07-13T18:32:49Z,2021-07-13T18:32:49Z,d71cac498138ddd86f18607b9043e70286ea884a,,,,,0,1bbb577e9e10e0225ab885d72defcbf6517cc096,f83c84fd51d144036924ae77d99f12b0a69e7e6f,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1393,,, 691707409,MDExOlB1bGxSZXF1ZXN0NjkxNzA3NDA5,1397,closed,0,"Fix for race condition in refresh_schemas(), closes #1231",9599,simonw,,2021-07-16T19:44:43Z,2021-07-16T19:45:00Z,2021-07-16T19:44:58Z,2021-07-16T19:44:58Z,c00f29affcafce8314366852ba1a0f5a7dd25690,,,,,0,bf2453ab7cb876c91edab3df59b7f398df2f9727,dd5ee8e66882c94343cd3f71920878c6cfd0da41,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/1397,,, 692557381,MDExOlB1bGxSZXF1ZXN0NjkyNTU3Mzgx,1399,open,0,Multiple sort,87192257,jgryko5,"Closes #197. I have added support for sorting by multiple parameters as mentioned in the issue above, and together with that, a suggestion on how to implement such sorting in the user interface.",2021-07-19T12:20:14Z,2021-07-19T12:20:14Z,,,3161cd1202824921054cf78d82c1d8c07b140451,,,,,0,739697660382e4d2974619b4a5605baef87d233a,c73af5dd72305f6a01ea94a2c76d52e5e26de38b,FIRST_TIME_CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1399,,, 692596006,MDExOlB1bGxSZXF1ZXN0NjkyNTk2MDA2,1400,closed,0,Bump black from 21.6b0 to 21.7b0,49699333,dependabot[bot],"Bumps [black](https://github.com/psf/black) from 21.6b0 to 21.7b0.
Release notes

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)
Changelog

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)
Commits

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=black&package-manager=pip&previous-version=21.6b0&new-version=21.7b0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
",2021-07-19T13:13:41Z,2021-08-25T01:29:56Z,2021-08-25T01:29:55Z,2021-08-25T01:29:55Z,a1a33bb5822214be1cebd98cd858b2058d91a4aa,,,,,0,e95c68592346e8602c2d4c68c8c7fef8bfb939c3,c73af5dd72305f6a01ea94a2c76d52e5e26de38b,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1400,,, 698423667,MDExOlB1bGxSZXF1ZXN0Njk4NDIzNjY3,8,open,0,Add Gmail takeout mbox import (v2),28565,maxhawkins,"WIP This PR builds on #5 to continue implementing gmail import support. Building on @UtahDave's work, these commits add a few performance and bug fixes: * Decreased memory overhead for import by manually parsing mbox headers. * Fixed error where some messages in the mbox would yield a row with NULL in all columns. I will send more commits to fix any errors I encounter as I run the importer on my personal takeout data.",2021-07-28T07:05:32Z,2021-12-31T19:06:20Z,,,d2809fd3fd835358d01ad10401228a562539b29e,,,,,0,8e6d487b697ce2e8ad885acf613a157bfba84c59,e54e544427f1cc3ea8189f0e95f54046301a8645,FIRST_TIME_CONTRIBUTOR,206649770,google-takeout-to-sqlite,https://github.com/dogsheep/google-takeout-to-sqlite/pull/8,,, 700944644,MDExOlB1bGxSZXF1ZXN0NzAwOTQ0NjQ0,303,closed,0,sqlite-utils convert command and db[table].convert(...) method,9599,simonw,"Refs #251, #302. - [x] Get recipes working - [x] Document recipes - [x] Implement `db[table].convert(...)` method - [x] Add tests for recipes that use the new Python method - [x] Implement `db[table].convert(..., multi=True)` mechanism - [x] Documentation for `db[table].convert(...)` - [x] Refactor `sqlite-utils convert` to use the new method",2021-08-01T16:52:42Z,2021-08-02T04:47:42Z,2021-08-02T04:47:39Z,2021-08-02T04:47:39Z,5ec6686153e29ae10d4921a1ad4c841f192f20e2,,,,,0,4c3bf9730542f1e49cbf11a61dbdb7fd621453df,c7e8d72be9fe8fe0811f685a18eebc637662d41b,OWNER,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/303,,, 702422263,MDExOlB1bGxSZXF1ZXN0NzAyNDIyMjYz,1418,closed,0,Spelling corrections plus CI job for codespell,9599,simonw,Refs #1417.,2021-08-03T16:21:19Z,2021-08-03T16:36:39Z,2021-08-03T16:36:38Z,2021-08-03T16:36:38Z,2208c3c68e552d343e6a2872ff6e559fca9d1b38,,,,,0,532170fc606df04986104aacbd67b920c5fa0af9,54b6e96ee8aa553b6671e341a1944f93f3fb89c3,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/1418,,, 707490789,MDExOlB1bGxSZXF1ZXN0NzA3NDkwNzg5,312,closed,0,Add reference page to documentation using Sphinx autodoc,9599,simonw,Refs #311.,2021-08-10T16:59:17Z,2021-08-10T23:09:32Z,2021-08-10T23:09:28Z,2021-08-10T23:09:28Z,6155da72c8939b5d9bdacb7853e5e8d1767ce1d5,,,,,0,43bc06481783c3cfcee70c0cb541a686e8894adb,ee469e3122d6f5973ec2584c1580d930daca2e7c,OWNER,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/312,,, 711783616,MDExOlB1bGxSZXF1ZXN0NzExNzgzNjE2,1430,closed,0,Column metadata,9599,simonw,"Refs #942 Still needs: - [x] Tests - [x] Documentation",2021-08-12T23:34:39Z,2021-08-12T23:53:23Z,2021-08-12T23:53:23Z,2021-08-12T23:53:23Z,e837095ef35ae155b4c78cc9a8b7133a48c94f03,,,,,0,941994725dd41deb6f839c5063cff5d15d4abb1c,b1fed48a95516ae84c0f020582303ab50ab817e2,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/1430,,, 712346199,MDExOlB1bGxSZXF1ZXN0NzEyMzQ2MTk5,1433,closed,0,"Update trustme requirement from <0.9,>=0.7 to >=0.7,<0.10",49699333,dependabot[bot],"Updates the requirements on [trustme](https://github.com/python-trio/trustme) to permit the latest version.
Commits
  • 8fc5bf9 Bump version to 0.9.0
  • 913e21d Bump types-cryptography from 3.3.3 to 3.3.5 (#342)
  • c66709d Bump types-pyopenssl from 20.0.4 to 20.0.5 (#343)
  • 5131f79 Add type annotations (#341)
  • a411dad Bump charset-normalizer from 2.0.3 to 2.0.4 (#340)
  • be5ec8a Bump sphinx from 4.1.1 to 4.1.2
  • d3b8865 Bump charset-normalizer from 2.0.2 to 2.0.3
  • 4503bef Merge pull request #334 from python-trio/dependabot/pip/charset-normalizer-2.0.2
  • ce8099d Merge pull request #335 from python-trio/dependabot/pip/sphinx-4.1.1
  • 8b6d3c6 Merge pull request #336 from python-trio/dependabot/pip/idna-3.2
  • Additional commits viewable in compare view

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
",2021-08-13T13:10:24Z,2021-08-25T01:29:27Z,2021-08-25T01:29:26Z,2021-08-25T01:29:26Z,5161422b7fa249c6b7d6dc47ec6f483d3fdbd170,,,,,0,ddba6cc0f74a6cda31e621889f5055fe8687d446,2883098770fc66e50183b2b231edbde20848d4d6,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1433,,, 712412883,MDExOlB1bGxSZXF1ZXN0NzEyNDEyODgz,1434,open,0,Enrich arbitrary query results with foreign key links and column descriptions,9599,simonw,"Refs #1293, follows #942.",2021-08-13T14:43:01Z,2021-08-19T21:18:58Z,,,d4d4f5566b1d43075cb52ded5d19a9dcf4350761,,,,,0,281c0872d5b8a462c9d7b2b2d77a924da4ed25a7,2883098770fc66e50183b2b231edbde20848d4d6,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/1434,,, 716262829,MDExOlB1bGxSZXF1ZXN0NzE2MjYyODI5,1444,closed,0,Ability to deploy demos of branches,9599,simonw,See #1442.,2021-08-19T21:08:04Z,2021-08-19T21:09:44Z,2021-08-19T21:09:39Z,2021-08-19T21:09:39Z,d84e574e59c51ddcd6cf60a6f9b3d45182daf824,,,,,0,75f9fe6d6bc642ce5587dd74eed70064c11868be,adb5b70de5cec3c3dd37184defe606a082c232cf,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/1444,,, 716357982,MDExOlB1bGxSZXF1ZXN0NzE2MzU3OTgy,66,open,0,Add --merged-by flag to pull-requests sub command,30531572,sarcasticadmin,"## Description Proposing a solution to the API limitation for `merged_by` in pull_requests. Specifically the following called out in the readme: ``` Note that the merged_by column on the pull_requests table will only be populated for pull requests that are loaded using the --pull-request option - the GitHub API does not return this field for pull requests that are loaded in bulk. ``` This approach might cause larger repos to hit rate limits called out in https://github.com/dogsheep/github-to-sqlite/issues/51 but seems to work well in the repos I tested and included below. ## Old Behavior - Had to list out the pull-requests individually via multiple `--pull-request` flags ## New Behavior - `--merged-by` flag for getting 'merge_by' information out of pull-requests without having to specify individual PR numbers. # Testing Picking some repo that has more than one merger (datasette only has 1 😉 ) ``` $ github-to-sqlite pull-requests ./github.db opnsense/tools --merged-by $ echo ""select id, url, merged_by from pull_requests;"" | sqlite3 ./github.db 83533612|https://github.com/opnsense/tools/pull/39|1915288 102632885|https://github.com/opnsense/tools/pull/43|1915288 149114810|https://github.com/opnsense/tools/pull/57|1915288 160394495|https://github.com/opnsense/tools/pull/64|1915288 163308408|https://github.com/opnsense/tools/pull/67|1915288 169723264|https://github.com/opnsense/tools/pull/69|1915288 171381422|https://github.com/opnsense/tools/pull/72|1915288 179938195|https://github.com/opnsense/tools/pull/77|1915288 196233824|https://github.com/opnsense/tools/pull/82|1915288 215289964|https://github.com/opnsense/tools/pull/93| 219696100|https://github.com/opnsense/tools/pull/97|1915288 223664843|https://github.com/opnsense/tools/pull/99| 228446172|https://github.com/opnsense/tools/pull/103|1915288 238930434|https://github.com/opnsense/tools/pull/110|1915288 255507110|https://github.com/opnsense/tools/pull/119|1915288 255980675|https://github.com/opnsense/tools/pull/120|1915288 261906770|https://github.com/opnsense/tools/pull/125| 263800503|https://github.com/opnsense/tools/pull/127|1915288 264038685|https://github.com/opnsense/tools/pull/128|1915288 264696704|https://github.com/opnsense/tools/pull/129|1915288 266660547|https://github.com/opnsense/tools/pull/130|1915288 273120409|https://github.com/opnsense/tools/pull/133|1915288 274370803|https://github.com/opnsense/tools/pull/135| 276600629|https://github.com/opnsense/tools/pull/139| 277303655|https://github.com/opnsense/tools/pull/141|1915288 293033714|https://github.com/opnsense/tools/pull/145| 294827649|https://github.com/opnsense/tools/pull/146| 295140008|https://github.com/opnsense/tools/pull/147|1915288 305690829|https://github.com/opnsense/tools/pull/150|9783985 307077931|https://github.com/opnsense/tools/pull/152|1915288 321782100|https://github.com/opnsense/tools/pull/155| 337265672|https://github.com/opnsense/tools/pull/160| 337267484|https://github.com/opnsense/tools/pull/161|1915288 368251763|https://github.com/opnsense/tools/pull/169| 428262505|https://github.com/opnsense/tools/pull/181| 437557011|https://github.com/opnsense/tools/pull/182|1915288 447079893|https://github.com/opnsense/tools/pull/185| 461822092|https://github.com/opnsense/tools/pull/191| 463290142|https://github.com/opnsense/tools/pull/193|1915288 470112962|https://github.com/opnsense/tools/pull/194|1915288 472644649|https://github.com/opnsense/tools/pull/195|1915288 488696898|https://github.com/opnsense/tools/pull/198| 513289902|https://github.com/opnsense/tools/pull/201| 522530265|https://github.com/opnsense/tools/pull/203| 564443347|https://github.com/opnsense/tools/pull/213| 597579516|https://github.com/opnsense/tools/pull/220|1915288 602860357|https://github.com/opnsense/tools/pull/221|1915288 608744738|https://github.com/opnsense/tools/pull/222|1915288 623279673|https://github.com/opnsense/tools/pull/228|1915288 664656182|https://github.com/opnsense/tools/pull/233| 664781786|https://github.com/opnsense/tools/pull/234|1915288 670683636|https://github.com/opnsense/tools/pull/235|1915288 683150764|https://github.com/opnsense/tools/pull/237| 685016233|https://github.com/opnsense/tools/pull/238| 687099825|https://github.com/opnsense/tools/pull/239|1915288 715705652|https://github.com/opnsense/tools/pull/244|1915288 715721248|https://github.com/opnsense/tools/pull/245|1915288 ``` `userid` are now present for those PRs that were merged. Without the flag the `merged_by` behavior remains missing as expected when get PRs bulk: ``` $ github-to-sqlite pull-requests ./github.db opnsense/tools $ echo ""select id, url, merged_by from pull_requests;"" | sqlite3 ./github.db 83533612|https://github.com/opnsense/tools/pull/39| 102632885|https://github.com/opnsense/tools/pull/43| 149114810|https://github.com/opnsense/tools/pull/57| 160394495|https://github.com/opnsense/tools/pull/64| 163308408|https://github.com/opnsense/tools/pull/67| 169723264|https://github.com/opnsense/tools/pull/69| 171381422|https://github.com/opnsense/tools/pull/72| 179938195|https://github.com/opnsense/tools/pull/77| 196233824|https://github.com/opnsense/tools/pull/82| 215289964|https://github.com/opnsense/tools/pull/93| 219696100|https://github.com/opnsense/tools/pull/97| 223664843|https://github.com/opnsense/tools/pull/99| 228446172|https://github.com/opnsense/tools/pull/103| 238930434|https://github.com/opnsense/tools/pull/110| 255507110|https://github.com/opnsense/tools/pull/119| 255980675|https://github.com/opnsense/tools/pull/120| 261906770|https://github.com/opnsense/tools/pull/125| 263800503|https://github.com/opnsense/tools/pull/127| 264038685|https://github.com/opnsense/tools/pull/128| 264696704|https://github.com/opnsense/tools/pull/129| 266660547|https://github.com/opnsense/tools/pull/130| 273120409|https://github.com/opnsense/tools/pull/133| 274370803|https://github.com/opnsense/tools/pull/135| 276600629|https://github.com/opnsense/tools/pull/139| 277303655|https://github.com/opnsense/tools/pull/141| 293033714|https://github.com/opnsense/tools/pull/145| 294827649|https://github.com/opnsense/tools/pull/146| 295140008|https://github.com/opnsense/tools/pull/147| 305690829|https://github.com/opnsense/tools/pull/150| 307077931|https://github.com/opnsense/tools/pull/152| 321782100|https://github.com/opnsense/tools/pull/155| 337265672|https://github.com/opnsense/tools/pull/160| 337267484|https://github.com/opnsense/tools/pull/161| 368251763|https://github.com/opnsense/tools/pull/169| 428262505|https://github.com/opnsense/tools/pull/181| 437557011|https://github.com/opnsense/tools/pull/182| 447079893|https://github.com/opnsense/tools/pull/185| 461822092|https://github.com/opnsense/tools/pull/191| 463290142|https://github.com/opnsense/tools/pull/193| 470112962|https://github.com/opnsense/tools/pull/194| 472644649|https://github.com/opnsense/tools/pull/195| 488696898|https://github.com/opnsense/tools/pull/198| 513289902|https://github.com/opnsense/tools/pull/201| 522530265|https://github.com/opnsense/tools/pull/203| 564443347|https://github.com/opnsense/tools/pull/213| 597579516|https://github.com/opnsense/tools/pull/220| 602860357|https://github.com/opnsense/tools/pull/221| 608744738|https://github.com/opnsense/tools/pull/222| 623279673|https://github.com/opnsense/tools/pull/228| 664656182|https://github.com/opnsense/tools/pull/233| 664781786|https://github.com/opnsense/tools/pull/234| 670683636|https://github.com/opnsense/tools/pull/235| 683150764|https://github.com/opnsense/tools/pull/237| 685016233|https://github.com/opnsense/tools/pull/238| 687099825|https://github.com/opnsense/tools/pull/239| 715705652|https://github.com/opnsense/tools/pull/244| 715721248|https://github.com/opnsense/tools/pull/245| ``` Individual PRs passed via `--pull-request` flag behaves as expected (unchanged): ``` $ github-to-sqlite pull-requests ./github.db opnsense/tools --pull-request 39 --pull-request 237 $ echo ""select id, url, merged_by from pull_requests;"" | sqlite3 ./github.db 83533612|https://github.com/opnsense/tools/pull/39|1915288 683150764|https://github.com/opnsense/tools/pull/237| ``` > Picking 1 PR that has a merged_by (39) and one that does not (237)",2021-08-20T00:57:55Z,2021-09-28T21:50:31Z,,,6b4276d9469e4579c81588ac9e3d128026d919a0,,,,,0,a92a31d5d446022baeaf7f3c9ea107094637e64d,ed3752022e45b890af63996efec804725e95d0d4,FIRST_TIME_CONTRIBUTOR,207052882,github-to-sqlite,https://github.com/dogsheep/github-to-sqlite/pull/66,,, 718734191,MDExOlB1bGxSZXF1ZXN0NzE4NzM0MTkx,22,open,0,Make sure that case-insensitive column names are unique,32016596,FabianHertwig,"This closes #21. When there are metadata entries with the same case insensitive string, then there is an error when trying to create a new column for that metadata entry in the database table, because a column with that case insensitive name already exists. ```xml ``` The code added in this PR checks if a key already exists in a record and if so adds a number at its end. The resulting column names look like the example below then. Interestingly, the column names viewed with Datasette are not case insensitive. ```text startDate, endDate, value, unit, sourceName, sourceVersion, creationDate, metadata_meal, metadata_Meal_2, metadata_Mahlzeit ``` ",2021-08-24T13:13:38Z,2021-08-24T13:26:20Z,,,c757d372c10284cd6fa58d144549bc89691341c3,,,,,0,b16fb556f84a0eed262a518ca7ec82a467155d23,9fe3cb17e03d6c73222b63e643638cf951567c4c,FIRST_TIME_CONTRIBUTOR,197882382,healthkit-to-sqlite,https://github.com/dogsheep/healthkit-to-sqlite/pull/22,,, 719109709,MDExOlB1bGxSZXF1ZXN0NzE5MTA5NzA5,321,closed,0,"Ability to insert file contents as text, in addition to blob",9599,simonw,Refs #319.,2021-08-24T22:37:18Z,2021-08-24T23:31:17Z,2021-08-24T23:31:13Z,2021-08-24T23:31:13Z,49a010c93d90bc68ce1c6fff7639927248912b54,,,,,0,db2dd6d9f30b347f4ed22b07f59b5a615184fbfd,9258f4bd8450c951900de998a7bf81ca9b45a014,OWNER,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/321,,, 719175593,MDExOlB1bGxSZXF1ZXN0NzE5MTc1NTkz,1447,closed,0,Remove underscore from search mode parameter name,127565,wragge,The fulltext search documentation refers to the parameter as `searchmode` but the `metadata.json` example uses `search_mode`. The latter doesn't actually seem to work.,2021-08-25T01:28:04Z,2021-08-25T01:28:58Z,2021-08-25T01:28:58Z,2021-08-25T01:28:58Z,93c3a7ffbfb3378f743ebce87d033cf1ce7689e0,,,,,0,86f41bf3663e786a83b5aaa7d9a4ec452b04e2c0,92a99d969c01633dba14cceebeda65daaedaec17,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1447,,, 719998225,MDExOlB1bGxSZXF1ZXN0NzE5OTk4MjI1,322,closed,0,Add dict type to be mapped as TEXT in sqllite,2496189,minaeid90,"the library deal with Postgres type jsonb as dictionary, add dict type as a TEXT for mapping to sqlite ",2021-08-25T20:54:26Z,2021-11-15T00:27:40Z,2021-11-15T00:27:40Z,2021-11-15T00:27:40Z,271b894af52eb6437ae6cd84eba9867ad8dd43f6,,,,,0,69619f68c26478fdee479110e084fd22711013a3,77c240df56068341561e95e4a412cbfa24dc5bc7,CONTRIBUTOR,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/322,,, 720506135,MDExOlB1bGxSZXF1ZXN0NzIwNTA2MTM1,1448,closed,0,"Update pluggy requirement from ~=0.13.0 to >=0.13,<1.1",49699333,dependabot[bot],"Updates the requirements on [pluggy](https://github.com/pytest-dev/pluggy) to permit the latest version.
Changelog

Sourced from pluggy's changelog.

pluggy 1.0.0 (2021-08-25)

Deprecations and Removals

  • [#116](https://github.com/pytest-dev/pluggy/issues/116) <https://github.com/pytest-dev/pluggy/issues/116>_: Remove deprecated implprefix support. Decorate hook implementations using an instance of HookimplMarker instead. The deprecation was announced in release 0.7.0.

  • [#120](https://github.com/pytest-dev/pluggy/issues/120) <https://github.com/pytest-dev/pluggy/issues/120>_: Remove the deprecated proc argument to call_historic. Use result_callback instead, which has the same behavior. The deprecation was announced in release 0.7.0.

  • [#265](https://github.com/pytest-dev/pluggy/issues/265) <https://github.com/pytest-dev/pluggy/issues/265>_: Remove the _Result.result property. Use _Result.get_result() instead. Note that unlike result, get_result() raises the exception if the hook raised. The deprecation was announced in release 0.6.0.

  • [#267](https://github.com/pytest-dev/pluggy/issues/267) <https://github.com/pytest-dev/pluggy/issues/267>_: Remove official support for Python 3.4.

  • [#272](https://github.com/pytest-dev/pluggy/issues/272) <https://github.com/pytest-dev/pluggy/issues/272>_: Dropped support for Python 2. Continue to use pluggy 0.13.x for Python 2 support.

  • [#308](https://github.com/pytest-dev/pluggy/issues/308) <https://github.com/pytest-dev/pluggy/issues/308>_: Remove official support for Python 3.5.

  • [#313](https://github.com/pytest-dev/pluggy/issues/313) <https://github.com/pytest-dev/pluggy/issues/313>_: The internal pluggy.callers, pluggy.manager and pluggy.hooks are now explicitly marked private by a _ prefix (e.g. pluggy._callers). Only API exported by the top-level pluggy module is considered public.

  • [#59](https://github.com/pytest-dev/pluggy/issues/59) <https://github.com/pytest-dev/pluggy/issues/59>_: Remove legacy __multicall__ recursive hook calling system. The deprecation was announced in release 0.5.0.

Features

  • [#282](https://github.com/pytest-dev/pluggy/issues/282) <https://github.com/pytest-dev/pluggy/issues/282>_: When registering a hookimpl which is declared as hookwrapper=True but whose function is not a generator function, a PluggyValidationError exception is now raised.

    Previously this problem would cause an error only later, when calling the hook.

    In the unlikely case that you have a hookwrapper that returns a generator

... (truncated)

Commits
  • 4259fdd Fix CHANGELOG title manually
  • 906abca Preparing release 1.0.0
  • 56eb23c Rename HOWTORELEASE to RELEASING to follow pytest
  • fc6395c Fix scripts/release.py to use main instead of master
  • e04816f Merge pull request #324 from RonnyPfannschmidt/benchmarks
  • 1424ab0 add micro benchmarks for hook calling playing with a the number of callers, w...
  • 5e51864 Merge pull request #323 from RonnyPfannschmidt/switch-to-main
  • 05c3bbd switch to main as primary branch
  • 6b344fb Merge pull request #319 from RonnyPfannschmidt/pre-commit-update
  • 71f2d6b introduce pyupgrade and update black
  • Additional commits viewable in compare view

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
",2021-08-26T13:09:52Z,2021-10-13T21:11:01Z,2021-10-13T21:11:00Z,2021-10-13T21:11:00Z,a673a93b57e249f06b2d0265ce33f458258feeb0,,,,,0,a2117476a99fc4492646fa0702ba0eb6c78b402e,a1a33bb5822214be1cebd98cd858b2058d91a4aa,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1448,,, 721686721,MDExOlB1bGxSZXF1ZXN0NzIxNjg2NzIx,67,open,0,Replacing step ID key with step_id,16374374,jshcmpbll,"Workflows that have an `id` in any step result in the following error when running `workflows`: e.g.`github-to-sqlite workflows github.db nixos/nixpkgs` ```Traceback (most recent call last): File ""/usr/local/bin/github-to-sqlite"", line 8, in sys.exit(cli()) File ""/usr/local/lib/python3.8/dist-packages/click/core.py"", line 1137, in __call__ return self.main(*args, **kwargs) File ""/usr/local/lib/python3.8/dist-packages/click/core.py"", line 1062, in main rv = self.invoke(ctx) File ""/usr/local/lib/python3.8/dist-packages/click/core.py"", line 1668, in invoke```Traceback (most recent call last): File ""/usr/local/bin/github-to-sqlite"", line 8, in sys.exit(cli()) File ""/usr/local/lib/python3.8/dist-packages/click/core.py"", line 1137, in __call__ return self.main(*args, **kwargs) File ""/usr/local/lib/python3.8/dist-packages/click/core.py"", line 1062, in main rv = self.invoke(ctx) File ""/usr/local/lib/python3.8/dist-packages/click/core.py"", line 1668, in invoke return _process_result(sub_ctx.command.invoke(sub_ctx)) File ""/usr/local/lib/python3.8/dist-packages/click/core.py"", line 1404, in invoke return ctx.invoke(self.callback, **ctx.params) File ""/usr/local/lib/python3.8/dist-packages/click/core.py"", line 763, in invoke return __callback(*args, **kwargs) File ""/usr/local/lib/python3.8/dist-packages/github_to_sqlite/cli.py"", line 601, in workflows utils.save_workflow(db, repo_id, filename, content) File ""/usr/local/lib/python3.8/dist-packages/github_to_sqlite/utils.py"", line 865, in save_workflow db[""steps""].insert_all( File ""/usr/local/lib/python3.8/dist-packages/sqlite_utils/db.py"", line 2596, in insert_all self.insert_chunk( File ""/usr/local/lib/python3.8/dist-packages/sqlite_utils/db.py"", line 2378, in insert_chunk result = self.db.execute(query, params) File ""/usr/local/lib/python3.8/dist-packages/sqlite_utils/db.py"", line 419, in execute return self.conn.execute(sql, parameters) sqlite3.IntegrityError: datatype mismatch ``` - [Information about the ID key in a step for GHA](https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjob_idstepsid) - [An example workflow from a public repo](https://github.com/NixOS/nixpkgs/blob/b4cc66827745e525ce7bb54659845ac89788a597/.github/workflows/direct-push.yml#L16) # Changes I'm proposing that the key for `id` in step is replaced with `step_id` so that it no longer interferes with the table `id` for tracking the record. Special thanks to @sarcasticadmin @egiffen and @ruebenramirez for helping a bit on this 😄 ",2021-08-28T01:26:41Z,2021-08-28T01:27:00Z,,,9f73c9bf29dec9a1482d9af56b9fac271869585c,,,,,0,9b5acceb25cf48b00e9c6c8293358b036440deb2,ed3752022e45b890af63996efec804725e95d0d4,FIRST_TIME_CONTRIBUTOR,207052882,github-to-sqlite,https://github.com/dogsheep/github-to-sqlite/pull/67,,, 722480542,MDExOlB1bGxSZXF1ZXN0NzIyNDgwNTQy,1453,closed,0,Bump black from 21.7b0 to 21.8b0,49699333,dependabot[bot],"Bumps [black](https://github.com/psf/black) from 21.7b0 to 21.8b0.
Release notes

Sourced from black's releases.

21.8b0

Black

  • Add support for formatting Jupyter Notebook files (#2357)
  • Move from appdirs dependency to platformdirs (#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 overriding default_language_version (#2430)
Changelog

Sourced from black's changelog.

21.8b0

Black

  • Add support for formatting Jupyter Notebook files (#2357)
  • Move from appdirs dependency to platformdirs (#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 overriding default_language_version (#2430)
Commits

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=black&package-manager=pip&previous-version=21.7b0&new-version=21.8b0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
",2021-08-30T13:13:39Z,2021-09-14T13:10:40Z,2021-09-14T13:10:38Z,,41e89206c9421f58bbc49b9a3f43439c351595a9,,,,,0,4f492a79aec631904e3302857a0ab5ea10cbf1af,67cbf0ae7243431bf13702e6e3ba466b619c4d6f,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1453,,, 724317650,MDExOlB1bGxSZXF1ZXN0NzI0MzE3NjUw,59,closed,0,"Fix for since_id bug, closes #58",42904,rubenv,Fixes remaining instances of this bug,2021-09-01T09:49:09Z,2021-09-21T17:37:40Z,2021-09-21T17:37:40Z,2021-09-21T17:37:40Z,91aa5f578e871a7976ca0a861862f9b9dd162464,,,,,0,27369e4d1c9702de34ebc125f92ef3fc9d74abed,74726190d4031bfa36db93e189555e273b35e283,CONTRIBUTOR,206156866,twitter-to-sqlite,https://github.com/dogsheep/twitter-to-sqlite/pull/59,,, 726990680,MDExOlB1bGxSZXF1ZXN0NzI2OTkwNjgw,35,open,0,Support for Datasette's --base-url setting,2670795,brandonrobertz,This makes it so you can use Dogsheep if you're using Datasette with the `--base-url /some-path/` setting.,2021-09-03T17:47:45Z,2021-09-03T17:47:45Z,,,0f5931da2099303111c49ec726b78bae814f755e,,,,,0,e6679d287b2e97fc94f50da64e1a7b91c1fbbf67,a895bc360f2738c7af43deda35c847f1ee5bff51,FIRST_TIME_CONTRIBUTOR,197431109,dogsheep-beta,https://github.com/dogsheep/dogsheep-beta/pull/35,,, 727012996,MDExOlB1bGxSZXF1ZXN0NzI3MDEyOTk2,324,closed,0,Use python-dateutil package instead of dateutils,191622,meatcar,"While working on updating `sqlite-utils` for NixOS/Nixpkgs, I came a cross the following: In 5ec6686153e29ae10d4921a1ad4c841f192f20e2, a new dependency was added on `dateutils` (https://pypi.org/project/dateutils/). I believe this is unintentional, and instead `python-dateutil` (https://pypi.org/project/python-dateutil/) was intended. My reasoning is: - `python-dateutil` is imported here in [recipes.py](https://github.com/simonw/sqlite-utils/blob/5ec6686153e29ae10d4921a1ad4c841f192f20e2/sqlite_utils/recipes.py#L1) - The `mypy` `type-python-dateutil` dependency in [setup.py](https://github.com/simonw/sqlite-utils/blob/5ec6686153e29ae10d4921a1ad4c841f192f20e2/setup.py#L36) - `python-dateutil` is a dependency of `dateutils` as seen in the output in [docs/tutorial.ipynb](https://github.com/simonw/sqlite-utils/blob/77c240df56068341561e95e4a412cbfa24dc5bc7/docs/tutorial.ipynb#L43) Seems like the trailing ""s"" seems to be the source of confusion 😅 I've swapped the dependencies out, hope this helps.",2021-09-03T18:31:19Z,2021-11-14T23:25:40Z,2021-11-14T23:25:40Z,2021-11-14T23:25:40Z,bc4c42d68879c710c851dba3c98deda96ca6caa8,,,,,0,275ac3b282947fa5df5d18de835d5d958a778e72,77c240df56068341561e95e4a412cbfa24dc5bc7,CONTRIBUTOR,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/324,,, 727265025,MDExOlB1bGxSZXF1ZXN0NzI3MjY1MDI1,1455,closed,0,Add scientists to target groups,198537,rgieseke,"Not sure if you want them mentioned explicitly (it's already a long list), but following up on https://twitter.com/simonw/status/1434176989565382656",2021-09-04T16:28:58Z,2021-09-04T16:32:21Z,2021-09-04T16:31:38Z,2021-09-04T16:31:38Z,772f9a07ce363869e0aaa7600617454dc00e6966,,,,,0,afba5f9201e395bce43dcac13da4a2041872316e,67cbf0ae7243431bf13702e6e3ba466b619c4d6f,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1455,,, 727390835,MDExOlB1bGxSZXF1ZXN0NzI3MzkwODM1,36,open,0,Correct naming of tool in readme,2129,badboy,,2021-09-05T12:05:40Z,2022-01-06T16:04:46Z,,,358678c6b48072769f2985fe6be8fc5e54ed2e06,,,,,0,bf26955c250e601a0d9e751311530940b704f81e,edc80a0d361006f478f2904a90bfe6c730ed6194,FIRST_TIME_CONTRIBUTOR,256834907,dogsheep-photos,https://github.com/dogsheep/dogsheep-photos/pull/36,,, 727436404,MDExOlB1bGxSZXF1ZXN0NzI3NDM2NDA0,1458,closed,0,Rework the `--static` documentation a bit,51016,ctb,"Per https://github.com/simonw/datasette/issues/1457, I was confused by the current docs and took a few minutes to sort out what the right combination of locations was. This is a PR that differentiates the docs to split out `/static/` in URL from `--static` option and `./static/` path. Not wedded to the details in any way, happy to change to suit. Fixes #1457.",2021-09-05T17:08:48Z,2021-10-15T13:24:29Z,2021-10-14T18:39:55Z,2021-10-14T18:39:55Z,0fdbf004843850f200e077a3c87427fe16c18b85,,,,,0,e00c3a274d073c09707f4b6edd2ed652efe03918,d57ab156b35ec642549fb69d08279850065027d2,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1458,,, 729632643,MDExOlB1bGxSZXF1ZXN0NzI5NjMyNjQz,1463,closed,0,"Update beautifulsoup4 requirement from <4.10.0,>=4.8.1 to >=4.8.1,<4.11.0",49699333,dependabot[bot],"Updates the requirements on [beautifulsoup4](http://www.crummy.com/software/BeautifulSoup/bs4/) to permit the latest version. Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
",2021-09-08T13:09:38Z,2021-10-13T22:35:37Z,2021-10-13T22:35:36Z,2021-10-13T22:35:36Z,2a8c6690399ee832ee62aafdede1794f5945d911,,,,,0,481212cdfc5fa372423e5e67047a3febaa8941b6,e1012e7098056734d9c90f081493991009253390,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1463,,, 729704537,MDExOlB1bGxSZXF1ZXN0NzI5NzA0NTM3,1465,open,0,add support for -o --get /path,51016,ctb,"Fixes https://github.com/simonw/datasette/issues/1459 Adds support for `--open --get /path` to be used in combination. If `--open` is provided alone, datasette will open a web page to a default URL. If `--get ` is provided alone, datasette will output the result of doing a GET to that URL and then exit. If `--open --get ` are provided together, datasette will open a web page to that URL. TODO items: - [ ] update documentation - [ ] print out error message when `--root --open --get ` is used - [ ] adjust code to require that `` start with a `/` when `-o --get ` is used - [ ] add test(s) note, '@CTB' is used in this PR to flag code that needs revisiting.",2021-09-08T14:30:42Z,2021-09-08T14:31:45Z,,,064e9511923fc4e50566bf9430b4a5b26f169357,,,,,1,9b66a7d9ba55bad8a3b409ede8855f4b4fff1f88,d57ab156b35ec642549fb69d08279850065027d2,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1465,,, 729731441,MDExOlB1bGxSZXF1ZXN0NzI5NzMxNDQx,326,closed,0,Test against 3.10-dev,9599,simonw,"This tests against the latest 3.10 RC, https://www.python.org/downloads/release/python-3100rc2/",2021-09-08T15:01:15Z,2021-10-13T21:49:28Z,2021-10-13T21:49:28Z,,c563260408e1b802cbbc81ec7c1e398350a1ca3a,,,,,0,078a08765d8aefa5ce376a03b2643d4ebe1aa57e,77c240df56068341561e95e4a412cbfa24dc5bc7,OWNER,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/326,,, 730020867,MDExOlB1bGxSZXF1ZXN0NzMwMDIwODY3,1467,closed,0,Add Authorization header when CORS flag is set,3058200,jameslittle230,"This PR adds the [`Access-Control-Allow-Headers`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Headers) flag when CORS mode is enabled. This would fix https://github.com/simonw/datasette-auth-tokens/issues/4. When making cross-origin requests, the server must respond with all allowable HTTP headers. A Datasette instance using auth tokens must accept the `Authorization` HTTP header in order for cross-origin authenticated requests to take place. Please let me know if there's a better way of doing this! I couldn't figure out a way to change the app's response from the plugin itself, so I'm starting here. If you'd rather this logic live in the plugin, I'd love any guidance you're able to give.",2021-09-08T22:14:41Z,2021-10-17T02:29:07Z,2021-10-14T18:54:18Z,,15f258735ddee555028a075c09e1e8f74069be70,,,,,0,05109e8d61dedd477c4cedfb89b1da65610f70d1,d57ab156b35ec642549fb69d08279850065027d2,NONE,107914493,datasette,https://github.com/simonw/datasette/pull/1467,,, 733665129,PR_kwDOBm6k_c4rutdp,1471,closed,0,Bump black from 21.7b0 to 21.9b0,49699333,dependabot[bot],"Bumps [black](https://github.com/psf/black) from 21.7b0 to 21.9b0.
Release notes

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 to platformdirs (#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 overriding default_language_version (#2430)
Changelog

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 to platformdirs (#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 overriding default_language_version (#2430)
Commits

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=black&package-manager=pip&previous-version=21.7b0&new-version=21.9b0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
",2021-09-14T13:10:35Z,2021-10-13T21:47:42Z,2021-10-13T21:47:42Z,2021-10-13T21:47:42Z,e1012e7098056734d9c90f081493991009253390,,,,,0,847238abf194f195a4fca896cd98f6ff332b1c18,a673a93b57e249f06b2d0265ce33f458258feeb0,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1471,,, 737050557,PR_kwDOCGYnMM4r7n-9,327,closed,0,Extract expand: Support JSON Arrays,101753,phaer,"Hi, I needed to extract data in JSON Arrays to normalize data imports. I've quickly hacked the following together based on #241 which refers to #239 where you, @simonw, wrote: > Could this handle lists of objects too? That would be pretty amazing - if the column has a [{...}, {...}] list in it could turn that into a many-to-many. They way this works in my work is that many-to-many relationships are created for anything that maps to an dictionary in a list, and many-to-one relations for everything else (assumed to be scalar values). Not sure what the best approach here would be? Are many-to-one relationships are at all useful here? What do you think about this approach? I could try to add it to the cli interface and documentation if wanted. Thanks for this awesome piece of software in any case! :sun_with_face: ",2021-09-19T10:34:30Z,2022-12-29T09:05:36Z,2022-12-29T09:05:36Z,,f0105cde23452cb4c8a15fc6096154b15d9b7c5a,,,,,0,2840c697aa9817462d864ed5f8a7696d749fe039,8d641ab08ac449081e96f3e25bd6c0226870948a,NONE,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/327,,, 737420528,PR_kwDOBm6k_c4r9CTw,1474,closed,0,Update full_text_search.rst,72577720,MichaelTiemannOSC,"Change ""above"" to ""below"" to correct correspondence of reference to example.",2021-09-20T09:59:45Z,2021-10-13T21:10:23Z,2021-10-13T21:10:23Z,2021-10-13T21:10:23Z,31352914c427162f785d2610222a54a426d5215f,,,,,0,cbccacfd3f501e3f4bae6cc42dcbbdd9635ae509,b28b6cd2fe97f7e193a235877abeec2c8eb0a821,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1474,,, 737690951,PR_kwDOBm6k_c4r-EVH,1475,open,0,feat: allow joins using _through in both directions,5268174,bram2000,"Currently the `_through` clause can only work if the FK relationship is defined in a specific direction. I don't think there is any reason for this limitation, as an FK allows joining in both directions. This is an admittedly hacky change to implement bidirectional joins using `_through`. It does work for our use-case, but I don't know if there are other implications that I haven't thought of. Also if this change is desirable we probably want to make the code a little nicer.",2021-09-20T15:28:20Z,2021-09-20T15:28:20Z,,,aa2f1c103730c0ede4ab67978288d91bbe1e00a6,,,,,0,edf3c4c3271c8f13ab4c28ad88b817e115477e41,b28b6cd2fe97f7e193a235877abeec2c8eb0a821,FIRST_TIME_CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1475,,, 738848851,PR_kwDOBm6k_c4sCfBT,1476,closed,0,"Update pytest-xdist requirement from <2.4,>=2.2.1 to >=2.2.1,<2.5",49699333,dependabot[bot],"Updates the requirements on [pytest-xdist](https://github.com/pytest-dev/pytest-xdist) to permit the latest version.
Changelog

Sourced from pytest-xdist's changelog.

pytest-xdist 2.4.0 (2021-09-20)

Features

  • [#696](https://github.com/pytest-dev/pytest-xdist/issues/696) <https://github.com/pytest-dev/pytest-xdist/issues/696>_: On Linux, the process title now changes to indicate the current worker state (running/idle).

    Depends on the setproctitle <https://pypi.org/project/setproctitle/>__ package, which can be installed with pip install pytest-xdist[setproctitle].

  • [#704](https://github.com/pytest-dev/pytest-xdist/issues/704) <https://github.com/pytest-dev/pytest-xdist/issues/704>_: Add support for Python 3.10.

pytest-xdist 2.3.0 (2021-06-16)

Deprecations and Removals

  • [#654](https://github.com/pytest-dev/pytest-xdist/issues/654) <https://github.com/pytest-dev/pytest-xdist/issues/654>_: Python 3.5 is no longer supported.

Features

  • [#646](https://github.com/pytest-dev/pytest-xdist/issues/646) <https://github.com/pytest-dev/pytest-xdist/issues/646>_: Add --numprocesses=logical flag, which automatically uses the number of logical CPUs available, instead of physical CPUs with auto.

    This is very useful for test suites which are not CPU-bound.

  • [#650](https://github.com/pytest-dev/pytest-xdist/issues/650) <https://github.com/pytest-dev/pytest-xdist/issues/650>_: Added new pytest_handlecrashitem hook to allow handling and rescheduling crashed items.

Bug Fixes

  • [#421](https://github.com/pytest-dev/pytest-xdist/issues/421) <https://github.com/pytest-dev/pytest-xdist/issues/421>_: Copy the parent process sys.path into local workers, to work around execnet's python -c adding the current directory to sys.path.

  • [#638](https://github.com/pytest-dev/pytest-xdist/issues/638) <https://github.com/pytest-dev/pytest-xdist/issues/638>_: Fix issue caused by changing the branch name of the pytest repository.

Trivial Changes

  • [#592](https://github.com/pytest-dev/pytest-xdist/issues/592) <https://github.com/pytest-dev/pytest-xdist/issues/592>_: Replace master with controller where ever possible.

  • [#643](https://github.com/pytest-dev/pytest-xdist/issues/643) <https://github.com/pytest-dev/pytest-xdist/issues/643>_: Use 'main' to refer to pytest default branch in tox env names.

pytest-xdist 2.2.1 (2021-02-09)

... (truncated)

Commits
  • 4b487ed Manually fix changelog title
  • ecf4d3b Release 2.4.0
  • 87d8979 Merge pull request #704 from hugovk/add-3.10
  • b4544c8 Merge pull request #706 from pytest-dev/pre-commit-ci-update-config
  • 66dc390 [pre-commit.ci] pre-commit autoupdate
  • e0ce1b7 Add news file to add support for Python 3.10
  • ed47f0e Add support for Python 3.10
  • 1c8178a Merge pull request #703 from pytest-dev/pre-commit-ci-update-config
  • 9807064 [pre-commit.ci] pre-commit autoupdate
  • 766e67c Use setproctitle if available to show state (#696)
  • Additional commits viewable in compare view

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
",2021-09-21T13:13:01Z,2021-10-13T21:10:03Z,2021-10-13T21:10:03Z,2021-10-13T21:10:03Z,6aab0217f07bff4556cc92885a14279d5b295f84,,,,,0,2eb01ff0b76bb9fb8fcf6602606eca83dada2fb2,b28b6cd2fe97f7e193a235877abeec2c8eb0a821,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1476,,, 747742034,PR_kwDODFdgUs4skaNS,68,open,0,Add support for retrieving teams / members,68329,philwills,Adds a method for retrieving all the teams within an organisation and all the members in those teams. The latter is stored as a join table `team_members` beteween `teams` and `users`.,2021-10-01T15:55:02Z,2021-10-01T15:59:53Z,,,f46e276c356c893370d5893296f4b69f08baf02c,,,,,0,cc838e87b1eb19b299f277a07802923104f35ce2,ed3752022e45b890af63996efec804725e95d0d4,FIRST_TIME_CONTRIBUTOR,207052882,github-to-sqlite,https://github.com/dogsheep/github-to-sqlite/pull/68,,, 753513062,PR_kwDOBm6k_c4s6bJm,1481,closed,0,Fix compatibility with Python 3.10,9599,simonw,,2021-10-07T20:34:23Z,2021-10-24T22:19:55Z,2021-10-24T22:19:54Z,2021-10-24T22:19:54Z,96a823f2834a262ae97a90ebfb6847f14763c415,,,,,0,50005bd2d36219c3ae8b6220d38df918459a1812,63886178a649586b403966a27a45881709d2b868,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/1481,,, 754942128,PR_kwDOBm6k_c4s_4Cw,1484,closed,0,GitHub Actions: Add Python 3.10 to the tests,3709715,cclauss,,2021-10-11T06:03:03Z,2021-10-11T06:03:31Z,2021-10-11T06:03:28Z,,69027b8c3e0e2236acd817a6fa5d32f762e3e9aa,,,,,0,02c3218ca093df8b595d8ba7d88a32a0207b6385,0d5cc20aeffa3537cfc9296d01ec24b9c6e23dcf,FIRST_TIME_CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1484,,, 755269892,PR_kwDOBm6k_c4tBIEE,1485,closed,0,"Update pytest-timeout requirement from <1.5,>=1.4.2 to >=1.4.2,<2.1",49699333,dependabot[bot],"Updates the requirements on [pytest-timeout](https://github.com/pytest-dev/pytest-timeout) to permit the latest version.
Commits

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
",2021-10-11T13:10:51Z,2021-10-13T21:09:23Z,2021-10-13T21:09:23Z,2021-10-13T21:09:23Z,759fd97a54638c1a5e2cac65bac0ac7c07ce2305,,,,,0,be9aed9f29182a075429ee518002f9c480b5d4e1,0d5cc20aeffa3537cfc9296d01ec24b9c6e23dcf,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1485,,, 755729137,PR_kwDOBm6k_c4tC4Lx,1487,closed,0,"Added instructions for installing plugins via pipx, #1486",41546558,RhetTbull,Adds missing instructions for installing plugins via pipx,2021-10-12T00:48:30Z,2021-10-13T21:09:11Z,2021-10-13T21:09:10Z,2021-10-13T21:09:10Z,68087440b3448633a62807c1623559619584f2ee,,,,,0,4909d5814494dcae77a851905bfc392c70f60d60,0d5cc20aeffa3537cfc9296d01ec24b9c6e23dcf,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1487,,, 757797315,PR_kwDOCGYnMM4tKxHD,330,closed,0,Test against Python 3.10,9599,simonw,,2021-10-13T21:50:22Z,2021-11-15T02:59:29Z,2021-10-13T22:25:05Z,2021-10-13T22:25:05Z,fda4dad23a0494890267fbe8baf179e2b56ee914,,,,,0,fc3de90963b6b097826d36f6a24c46267659dcf2,718a8f61bcaed39c04d5d223104056213f8c8516,OWNER,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/330,,, 758334037,PR_kwDOBm6k_c4tM0JV,1489,closed,0,"Update pyyaml requirement from ~=5.3 to >=5.3,<7.0",49699333,dependabot[bot],"Updates the requirements on [pyyaml](https://github.com/yaml/pyyaml) to permit the latest version.
Changelog

Sourced from pyyaml's changelog.

6.0 (2021-10-13)

5.4.1 (2021-01-20)

  • yaml/pyyaml#480 -- Fix stub compat with older pyyaml versions that may unwittingly load it

5.4 (2021-01-19)

5.3.1 (2020-03-18)

  • yaml/pyyaml#386 -- Prevents arbitrary code execution during python/object/new constructor

5.3 (2020-01-06)

5.2 (2019-12-02)

... (truncated)

Commits
  • 8cdff2c 6.0 release
  • a4fb55e Update Python 3.10 versions for Windows build
  • e45b964 Add Python 3.10 to tox.ini
  • 4808fba 6.0b1 release
  • d5aba40 Omnibus CI/artifact build update
  • a6d384c Various setup fixes
  • 8f3f979 No longer using appveyor
  • c274365 The yaml.load{,_all} functions require Loader= now
  • 2f87ac4 Add a basic test file for yaml.load and yaml.dump
  • 7bd92df Makefile tweaks
  • Additional commits viewable in compare view

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
",2021-10-14T13:09:33Z,2021-10-14T18:10:43Z,2021-10-14T18:10:42Z,2021-10-14T18:10:42Z,827fa823d1b919c445f3141174ecb7a82717d99c,,,,,0,11c335c484e15ecbaf320fe88db797ff108e5f6a,b267b5775436577a91a9f9655143908aecff05da,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1489,,, 758569502,PR_kwDOBm6k_c4tNtoe,1490,closed,0,Upgrade to httpx 0.20,9599,simonw,Refs #1488 ,2021-10-14T17:51:05Z,2021-10-14T18:03:45Z,2021-10-14T18:03:44Z,2021-10-14T18:03:44Z,b267b5775436577a91a9f9655143908aecff05da,,,,,0,e0332d1f4788a561492965a09ef83fe122fd3d8c,2a8c6690399ee832ee62aafdede1794f5945d911,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/1490,,, 760452915,PR_kwDOBm6k_c4tU5cz,1494,closed,0,"Update pytest-asyncio requirement from <0.16,>=0.10 to >=0.10,<0.17",49699333,dependabot[bot],"Updates the requirements on [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) to permit the latest version.
Commits
  • f2fe98e 0.16.0
  • 4e1df31 Remove obsolete test, add make test
  • 6ec7647 feat: Add support for Python 3.10.
  • 42ff5d1 ci: Include Python 3.10 in the CI test run.
  • be3b327 build: Include Python 3.10 in Tox test runs.
  • 1c283bd refactor: test_async_fixtures_with_finalizer no longer trigger a DeprecationW...
  • 2751982 refactor: Replaced tests asserting that the event loop is properly closed.
  • 70989fd refactor: Grouped test cases together that are related to the use of the asyn...
  • b27abe8 refactor: Removed TestUnexistingLoop.remove_loop fixture, because it has no e...
  • e3ec312 Adjusted Hypothesis integration test to use the same event loop initializatio...
  • Additional commits viewable in compare view

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
",2021-10-18T13:14:17Z,2021-10-24T22:22:40Z,2021-10-24T22:22:39Z,2021-10-24T22:22:39Z,03cc697b6b3d0983618c29ee75b45b5e0ac91139,,,,,0,7a3e3c355695d95b002a2ec6a68b0c27c7089ed6,ff9ccfb0310501a3b4b4ca24d73246a8eb3e7914,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1494,,, 764281468,PR_kwDOBm6k_c4tjgJ8,1495,open,0,Allow routes to have extra options,536941,fgregg,"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'}) ] ``` ",2021-10-22T15:00:45Z,2021-11-19T15:36:27Z,,,44969c5654748fb26ad05ab37245678f245f32e5,,,,,0,fe7fa14b39846b919dfed44514a7d18d67e01dfd,ff9ccfb0310501a3b4b4ca24d73246a8eb3e7914,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1495,,, 768796296,PR_kwDOCGYnMM4t0uaI,333,closed,0,Add functionality to read Parquet files.,2118708,Florents-Tselai,"I needed this for a project of mine, and I thought it'd be useful to have it in sqlite-utils (It's also mentioned in #248 ). The current implementation works (data is read & data types are inferred correctly. I've added a single straightforward test case, but @simonw please let me know if there are any non-obvious flags/combinations I should test too.",2021-10-28T23:43:19Z,2021-11-25T19:47:35Z,2021-11-25T19:47:35Z,,eda2b1f8d2670c6ca8512e3e7c0150866bd0bdc6,,,,,0,50ec2e49dee3b09a48a7aef55eceaa3f752a52e7,fda4dad23a0494890267fbe8baf179e2b56ee914,NONE,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/333,,, 770511531,PR_kwDOBm6k_c4t7RKr,1500,closed,0,Bump black from 21.9b0 to 21.10b0,49699333,dependabot[bot],"Bumps [black](https://github.com/psf/black) from 21.9b0 to 21.10b0.
Release notes

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

  • Remove dependency on aiohttp-cors (#2500)
  • Bump required aiohttp version to 3.7.4 (#2509)

Black-Primer

  • Add primer support for --projects (#2555)
  • Print primer summary after individual failures (#2570)

Integrations

  • Allow to pass target_version in the vim plugin (#1319)
  • Install build tools in docker file and use multi-stage build to keep the image size down (#2582)
Changelog

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

  • Remove dependency on aiohttp-cors (#2500)
  • Bump required aiohttp version to 3.7.4 (#2509)

Black-Primer

  • Add primer support for --projects (#2555)
  • Print primer summary after individual failures (#2570)

Integrations

  • Allow to pass target_version in the vim plugin (#1319)
  • Install build tools in docker file and use multi-stage build to keep the image size down (#2582)
Commits

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=black&package-manager=pip&previous-version=21.9b0&new-version=21.10b0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
",2021-11-01T13:11:23Z,2021-11-17T13:14:00Z,2021-11-17T13:13:58Z,,bc0c2637d3dabbbf55a1cb86df620683a2486ae5,,,,,0,1b7f679b0d732162e8841c63fd4b8b0682627c10,2c31d1cd9cd3b63458ccbe391866499fa3f44978,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1500,,, 771790589,PR_kwDOEhK-wc4uAJb9,15,open,0,include note tags in the export,436138,d-rep,"When parsing the Evernote `` elements, the script will now also parse any nested `` elements, writing them out into a separate sqlite table. Here is an example of how to query the data after the script has run: ``` select notes.*, (select group_concat(tag) from notes_tags where notes_tags.note_id=notes.id) as tags from notes; ``` My .enex source file is 3+ years old so I am assuming the structure hasn't changed. Interestingly, my _notebook names_ show up in the _tags_ list where the tag name is prefixed with `notebook_`, so this could maybe help work around the first limitation mentioned in the [evernote-to-sqlite blog post](https://simonwillison.net/2020/Oct/16/building-evernote-sqlite-exporter/). ",2021-11-02T20:04:31Z,2021-11-02T20:04:31Z,,,ee36aba995b0a5385bdf9a451851dcfc316ff7f6,,,,,0,8cc3aa49c6e61496b04015c14048c5dac58d6b42,fff89772b4404995400e33fe1d269050717ff4cf,FIRST_TIME_CONTRIBUTOR,303218369,evernote-to-sqlite,https://github.com/dogsheep/evernote-to-sqlite/pull/15,,, 774610166,PR_kwDOCGYnMM4uK5z2,337,closed,0,Default values for `--attach` and `--param` options,771193,urbas,"It seems that `click` 8.x uses `None` as the default value for `multiple=True` options. This change makes the code forward-compatible with `click` 8.x. See this build failure for more info: https://hydra.nixos.org/build/156926608",2021-11-05T21:57:53Z,2021-11-05T22:33:03Z,2021-11-05T22:33:02Z,,eb8bf28da1794638a5693043cd5268f506a674d3,,,,,0,095fc64c5399d75d44d304571a21293d06d817f0,fda4dad23a0494890267fbe8baf179e2b56ee914,NONE,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/337,,, 775078665,PR_kwDODFE5qs4uMsMJ,9,open,0,Removed space from filename My Activity.json,91880982,widadmogral,"File name from google takeout has no space. The code only runs without error if filename is ""MyActivity.json"" and not ""My Activity.json"". Is it a new change by Google?",2021-11-08T00:04:31Z,2021-11-08T00:04:31Z,,,236da5c8302c09a20fcd4164c563cd9fa5c9595c,,,,,0,6d111f65687e13ffd8b39aa05f1f8f4a351e7788,e54e544427f1cc3ea8189f0e95f54046301a8645,FIRST_TIME_CONTRIBUTOR,206649770,google-takeout-to-sqlite,https://github.com/dogsheep/google-takeout-to-sqlite/pull/9,,, 780684583,PR_kwDOBm6k_c4uiE0n,1508,closed,0,Update docutils requirement from <0.18 to <0.19,49699333,dependabot[bot],"Updates the requirements on [docutils](http://docutils.sourceforge.net/) to permit the latest version. Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
",2021-11-15T13:15:47Z,2021-11-30T02:35:19Z,2021-11-30T02:35:19Z,2021-11-30T02:35:19Z,3303514a52b7170f2f1e598cd9c5f82c22f26e6c,,,,,0,299774b795915870c987c7b2841925a6106d98a2,502c02fa6dde6a8bb840af6c4c8cf858aa1db687,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1508,,, 782105066,PR_kwDOBm6k_c4unfnq,1512,closed,0,New pattern for async view classes,9599,simonw,Refs #878 - starting out with the new `AsyncBase` class implementing a pytest-inspired `asyncio` parallel execution mechanism.,2021-11-16T21:55:44Z,2021-11-17T01:39:54Z,2021-11-17T01:39:44Z,,fb57d4474cb1fdaef260e244b1b6f470f1992e40,,,,,1,8f757da0750fe7f27b4ed3839bc3ef3650832ad9,0156c6b5e52d541e93f0d68e9245f20ae83bc933,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/1512,,, 782713972,PR_kwDOBm6k_c4up0R0,1514,closed,0,Bump black from 21.9b0 to 21.11b0,49699333,dependabot[bot],"Bumps [black](https://github.com/psf/black) from 21.9b0 to 21.11b0.
Release notes

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

  • Remove dependency on aiohttp-cors (#2500)
  • Bump required aiohttp version to 3.7.4 (#2509)

Black-Primer

  • Add primer support for --projects (#2555)
  • Print primer summary after individual failures (#2570)

Integrations

  • Allow to pass target_version in the vim plugin (#1319)
  • Install build tools in docker file and use multi-stage build to keep the image size down (#2582)
Changelog

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

  • Remove dependency on aiohttp-cors (#2500)
  • Bump required aiohttp version to 3.7.4 (#2509)

Black-Primer

  • Add primer support for --projects (#2555)
  • Print primer summary after individual failures (#2570)

Integrations

  • Allow to pass target_version in the vim plugin (#1319)
  • Install build tools in docker file and use multi-stage build to keep the image size down (#2582)
Commits

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=black&package-manager=pip&previous-version=21.9b0&new-version=21.11b0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
",2021-11-17T13:13:55Z,2021-11-18T13:11:17Z,2021-11-18T13:11:15Z,,348147b356cdd38cfdce412675a1d0865b93b3b1,,,,,0,b02c35a00e2036ded2944890b04485213df4c8f4,0156c6b5e52d541e93f0d68e9245f20ae83bc933,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1514,,, 783729324,PR_kwDOBm6k_c4utsKs,1516,closed,0,Bump black from 21.9b0 to 21.11b1,49699333,dependabot[bot],"Bumps [black](https://github.com/psf/black) from 21.9b0 to 21.11b1.
Release notes

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

  • Remove dependency on aiohttp-cors (#2500)
  • Bump required aiohttp version to 3.7.4 (#2509)

Black-Primer

  • Add primer support for --projects (#2555)
  • Print primer summary after individual failures (#2570)

Integrations

  • Allow to pass target_version in the vim plugin (#1319)
  • Install build tools in docker file and use multi-stage build to keep the image size down (#2582)
Changelog

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

  • Remove dependency on aiohttp-cors (#2500)
  • Bump required aiohttp version to 3.7.4 (#2509)

Black-Primer

  • Add primer support for --projects (#2555)
  • Print primer summary after individual failures (#2570)

Integrations

  • Allow to pass target_version in the vim plugin (#1319)
  • Install build tools in docker file and use multi-stage build to keep the image size down (#2582)
Commits

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=black&package-manager=pip&previous-version=21.9b0&new-version=21.11b1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
",2021-11-18T13:11:12Z,2021-11-30T02:35:29Z,2021-11-30T02:35:29Z,2021-11-30T02:35:29Z,cc4c70b3670ce2a85bb883b8d5626574590efe14,,,,,0,a82c620b7a463a5dd4d585140ee955141ab96ca3,0156c6b5e52d541e93f0d68e9245f20ae83bc933,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1516,,, 787940394,PR_kwDOBm6k_c4u9wQq,1529,closed,0,"Update janus requirement from <0.7,>=0.6.2 to >=0.6.2,<0.8",49699333,dependabot[bot],"Updates the requirements on [janus](https://github.com/aio-libs/janus) to permit the latest version.
Changelog

Sourced from janus's changelog.

0.7.0 (2021-11-24)

  • Add SyncQueue and AsyncQueue Protocols to provide type hints for sync and async queues #374

0.6.2 (2021-10-24)

  • Fix Python 3.10 compatibility #358

0.6.1 (2020-10-26)

  • Raise RuntimeError on queue.join() after queue closing. #295

  • Replace timeout type from Optional[int] to Optional[float] #267

0.6.0 (2020-10-10)

  • Drop Python 3.5, the minimal supported version is Python 3.6

  • Support Python 3.9

  • Refomat with black

0.5.0 (2020-04-23)

  • Remove explicit loop arguments and forbid creating queues outside event loops #246

0.4.0 (2018-07-28)

  • Add py.typed macro #89

  • Drop python 3.4 support and fix minimal version python3.5.3 #88

  • Add property with that indicates if queue is closed #86

0.3.2 (2018-07-06)

  • Fixed python 3.7 support #97

0.3.1 (2018-01-30)

  • Fixed bug with join() in case tasks are added by sync_q.put() #75

... (truncated)

Commits

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
",2021-11-24T13:12:42Z,2021-11-30T02:37:13Z,2021-11-30T02:37:13Z,2021-11-30T02:37:13Z,83eb29deced2430f40c3374ff9085d65d86d8281,,,,,0,495b726e9d715902914547c147d8e7e350f53694,1beb7d939999da79bb77c4d3c777657c8a16bcd9,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1529,,, 790665890,PR_kwDOBm6k_c4vIJqi,1537,closed,0,"Update aiofiles requirement from <0.8,>=0.4 to >=0.4,<0.9",49699333,dependabot[bot],"Updates the requirements on [aiofiles](https://github.com/Tinche/aiofiles) to permit the latest version.
Commits

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
",2021-11-29T13:13:52Z,2021-11-30T02:29:55Z,2021-11-30T02:29:54Z,2021-11-30T02:29:54Z,1beb7d939999da79bb77c4d3c777657c8a16bcd9,,,,,0,fcfaec1793ed4b1f5d0f9a43f392f598a41f4ad2,48f11998b73350057b74fe6ab464d4ac3071637c,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1537,,, 791153878,PR_kwDOCGYnMM4vKAzW,347,open,0,Test against pysqlite3 running SQLite 3.37,9599,simonw,Refs #346 and #344.,2021-11-29T23:17:57Z,2021-12-11T01:02:19Z,,,f70a61e58ae62e53af74ab48d742bdc335131fbd,,,,,0,1a7ef2fe2064ace01d5535fb771f941296fb642a,213a0ff177f23a35f3b235386366ff132eb879f1,OWNER,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/347,,, 795869144,PR_kwDOBm6k_c4vb__Y,1543,closed,0,Bump black from 21.11b1 to 21.12b0,49699333,dependabot[bot],"Bumps [black](https://github.com/psf/black) from 21.11b1 to 21.12b0.
Release notes

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, like match a, b: or match a, *b: (#2639) (#2659)
  • Fix match/case statements that contain match/case soft keywords multiple times, like match 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 the regex dependency

And also congrats to first contributors!

Changelog

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, like match a, b: or match a, *b: (#2639) (#2659)
  • Fix match/case statements that contain match/case soft keywords multiple times, like match 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

Commits

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=black&package-manager=pip&previous-version=21.11b1&new-version=21.12b0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
",2021-12-06T13:11:16Z,2021-12-13T23:22:29Z,2021-12-13T23:22:29Z,2021-12-13T23:22:29Z,f5538e7161cce92a4dfaa7c5b71fcb6755d96c05,,,,,0,353a85199595c687946460bfc6f059c17f68d3b8,7c02be2ee94cc64b120cc58b7a72cd387031f287,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1543,,, 799906901,PR_kwDOBm6k_c4vrZxV,1548,closed,0,"Update pytest-xdist requirement from <2.5,>=2.2.1 to >=2.2.1,<2.6",49699333,dependabot[bot],"Updates the requirements on [pytest-xdist](https://github.com/pytest-dev/pytest-xdist) to permit the latest version.
Changelog

Sourced from pytest-xdist's changelog.

pytest-xdist 2.5.0 (2021-12-10)

Features

  • [#722](https://github.com/pytest-dev/pytest-xdist/issues/722) <https://github.com/pytest-dev/pytest-xdist/issues/722>_: Full compatibility with pytest 7 - no deprecation warnings or use of legacy features.

  • [#733](https://github.com/pytest-dev/pytest-xdist/issues/733) <https://github.com/pytest-dev/pytest-xdist/issues/733>_: New --dist=loadgroup option, which ensures all tests marked with @pytest.mark.xdist_group run in the same session/worker. Other tests run distributed as in --dist=load.

Trivial Changes

  • [#708](https://github.com/pytest-dev/pytest-xdist/issues/708) <https://github.com/pytest-dev/pytest-xdist/issues/708>_: Use @pytest.hookspec decorator to declare hook options in newhooks.py to avoid warnings in pytest 7.0.

  • [#719](https://github.com/pytest-dev/pytest-xdist/issues/719) <https://github.com/pytest-dev/pytest-xdist/issues/719>_: Use up-to-date setup.cfg/pyproject.toml packaging setup.

  • [#720](https://github.com/pytest-dev/pytest-xdist/issues/720) <https://github.com/pytest-dev/pytest-xdist/issues/720>_: Require pytest>=6.2.0.

  • [#721](https://github.com/pytest-dev/pytest-xdist/issues/721) <https://github.com/pytest-dev/pytest-xdist/issues/721>_: Started using type annotations and mypy checking internally. The types are incomplete and not published.

pytest-xdist 2.4.0 (2021-09-20)

Features

  • [#696](https://github.com/pytest-dev/pytest-xdist/issues/696) <https://github.com/pytest-dev/pytest-xdist/issues/696>_: On Linux, the process title now changes to indicate the current worker state (running/idle).

    Depends on the setproctitle <https://pypi.org/project/setproctitle/>__ package, which can be installed with pip install pytest-xdist[setproctitle].

  • [#704](https://github.com/pytest-dev/pytest-xdist/issues/704) <https://github.com/pytest-dev/pytest-xdist/issues/704>_: Add support for Python 3.10.

pytest-xdist 2.3.0 (2021-06-16)

Deprecations and Removals

  • [#654](https://github.com/pytest-dev/pytest-xdist/issues/654) <https://github.com/pytest-dev/pytest-xdist/issues/654>_: Python 3.5 is no longer supported.

Features

  • [#646](https://github.com/pytest-dev/pytest-xdist/issues/646) <https://github.com/pytest-dev/pytest-xdist/issues/646>_: Add --numprocesses=logical flag, which automatically uses the number of logical CPUs available, instead of physical CPUs with auto.

... (truncated)

Commits
  • 13f3934 Remove unnecessary skip from test_logfinish_hook as we require pytest>=6.2
  • c76d562 Skip test_warning_captured_deprecated_in_pytest_6 in pytest>=7.1
  • 5f78c71 Fix CHANGELOG header
  • c8bbc03 Release 2.5.0
  • 8dbf367 Merge pull request #738 from pytest-dev/pre-commit-ci-update-config
  • a25c14b [pre-commit.ci] pre-commit autoupdate
  • 110c114 Merge pull request #734 from nicoddemus/revamp-readme
  • 83bdbf4 Revamp README
  • 630c1eb Merge pull request #733 from baekdohyeop/feature-loadgroup
  • 62e50d0 Address review
  • Additional commits viewable in compare view

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
",2021-12-10T13:12:06Z,2021-12-13T23:22:22Z,2021-12-13T23:22:21Z,2021-12-13T23:22:21Z,8b411a6b70e93e044820d613a28607ba5d6fe416,,,,,0,68383f5c8e42a96537ae13ea6ede5cf6f0ed4d83,737115ea14cd51ffb55dea886e6a684c148db2c9,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1548,,, 801798514,PR_kwDOBm6k_c4vynly,1554,closed,0,TableView refactor,9599,simonw,"I'm starting a PR with almost nothing in it so I can use the GitHub code commenting feature to add a bunch of comments to the code I intend to refactor. Related issues: - #617 - #715 - #870 - #1518",2021-12-13T23:16:04Z,2021-12-20T23:52:11Z,2021-12-20T23:52:04Z,,a68545f9a4c3b3a68259be5c03abfc9ad7710875,,,,,0,1d08b46412410837f987c606b2307a121fa2641a,a6ff123de5464806441f6a6f95145c9a83b7f20b,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/1554,,, 804924636,PR_kwDOBm6k_c4v-izc,1559,closed,0,"filters_from_request plugin hook, now used in TableView",9599,simonw,"New plugin hook, refs #473 Used it to extract the logic from TableView that handles _search and _through and _where - refs #1518",2021-12-16T23:59:33Z,2021-12-17T23:09:41Z,2021-12-17T19:02:15Z,2021-12-17T19:02:15Z,aa7f0037a46eb76ae6fe9bf2a1f616c58738ecdf,,,,,0,71af58d9392d42f45506cbc2370c1e9994126f63,0663d5525cc41e9260ac7d1f6386d3a6eb5ad2a9,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/1559,,, 805356220,PR_kwDOBm6k_c4wAMK8,1562,closed,0,"Update janus requirement from <0.8,>=0.6.2 to >=0.6.2,<1.1",49699333,dependabot[bot],"Updates the requirements on [janus](https://github.com/aio-libs/janus) to permit the latest version.
Release notes

Sourced from janus's releases.

janus 1.0.0 release

  • Dropped Python 3.6 support
  • Janus is marked as stable, no API changes was made for years
Changelog

Sourced from janus's changelog.

1.0.0 (2021-12-17)

  • Drop Python 3.6 support

0.7.0 (2021-11-24)

  • Add SyncQueue and AsyncQueue Protocols to provide type hints for sync and async queues #374

0.6.2 (2021-10-24)

  • Fix Python 3.10 compatibility #358

0.6.1 (2020-10-26)

  • Raise RuntimeError on queue.join() after queue closing. #295

  • Replace timeout type from Optional[int] to Optional[float] #267

0.6.0 (2020-10-10)

  • Drop Python 3.5, the minimal supported version is Python 3.6

  • Support Python 3.9

  • Refomat with black

0.5.0 (2020-04-23)

  • Remove explicit loop arguments and forbid creating queues outside event loops #246

0.4.0 (2018-07-28)

  • Add py.typed macro #89

  • Drop python 3.4 support and fix minimal version python3.5.3 #88

  • Add property with that indicates if queue is closed #86

0.3.2 (2018-07-06)

  • Fixed python 3.7 support #97

... (truncated)

Commits

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
",2021-12-17T13:11:10Z,2021-12-17T23:08:29Z,2021-12-17T23:08:28Z,2021-12-17T23:08:28Z,35cba9e85a574cebf2986b64107fa84d02bd86ad,,,,,0,2f008e88820d940facf6219c224def7729c81df1,0663d5525cc41e9260ac7d1f6386d3a6eb5ad2a9,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1562,,, 806136219,PR_kwDOBm6k_c4wDKmb,1574,closed,0,introduce new option for datasette package to use a slim base image,33631,fs111,"The official python images on docker hub come with a slim variant that is significantly smaller than the default. The diff does not change the default, but allows to switch to the `slim` variant with commandline switch (`--slim-base-image`) Size comparison: ``` $ datasette package some.db -t fat --install ""datasette-basemap datasette-cluster-map"" $ datasette package some.db -t slim --slim-base-image --install ""datasette-basemap datasette-cluster-map"" $ docker images REPOSITORY TAG IMAGE ID CREATED SIZE fat latest 807b393ace0d 9 seconds ago 978MB slim latest 31bc5e63505c 8 minutes ago 191MB ```",2021-12-19T21:18:19Z,2022-08-15T08:49:31Z,2022-08-15T08:49:31Z,,92ca4a2a9fb44e4cffc71444196753ad4a75a5c8,,,,,0,8561f0343b2b4213416ca84c8071a5a290f15a42,8c401ee0f054de2f568c3a8302c9223555146407,NONE,107914493,datasette,https://github.com/simonw/datasette/pull/1574,,, 811088967,PR_kwDOBm6k_c4wWDxH,1582,closed,0,don't set far expiry if hash is '000',536941,fgregg,"This will close #1581. I couldn't find any unit tests related to the testing hashed urls, and I know that you want to break that code out of the core application (#1561), so I'm not quite sure what you would like me to for testing.",2021-12-28T18:16:13Z,2022-03-24T04:07:58Z,2022-03-24T04:07:58Z,,e7249b52558b4ddcd92e68a13bd02fb54a2b92f8,,,,,0,216f3b32b88d85b33e45937ed89ac919d82c23b4,8c401ee0f054de2f568c3a8302c9223555146407,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1582,,, 815164865,PR_kwDOCGYnMM4wlm3B,361,closed,0,--lines and --text and --convert and --import,9599,simonw,"Refs #356 Still TODO: - [x] Get `--lines` working, with tests - [x] Get `--text` working, with tests - [x] Get regular JSON import working with `--convert` with tests - [x] Get `--lines` working with `--convert` with tests - [x] Get `--text` working with `--convert` with tests - [x] Get `--csv` and `--tsv` import working with `--convert` with tests - [x] Get `--nl` working with `--convert` with tests - [x] Documentation for all of the above",2022-01-06T01:49:44Z,2022-01-06T06:37:03Z,2022-01-06T06:24:54Z,2022-01-06T06:24:54Z,413f8ed754e38d7b190de888c85fe8438336cb11,,,,,0,b7f0b88d49032a053f0de2dbba356ee1f3b949c0,f3fd8613113d21d44238a6ec54b375f5aa72c4e0,OWNER,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/361,,, 816927546,PR_kwDOCGYnMM4wsVM6,367,closed,0,Initial prototype of .analyze() methods,9599,simonw,Refs #366,2022-01-08T21:35:12Z,2022-01-10T19:31:08Z,2022-01-10T19:31:08Z,,2ffcbed6787523649dd676985f3ea70a62944764,,,7558727,3.21,1,9848eaa61b43de0ddb74ff6d085bcb18f4640f91,a8f9cc6f64f299830834428509940d448b82b4ed,OWNER,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/367,,, 817257851,PR_kwDOCGYnMM4wtl17,377,closed,0,`sqlite-utils bulk` command,9599,simonw,"Refs #375 Still needs: - [x] Refactor `@insert_upsert_options` so that it doesn't duplicate `@import_options` - [x] Tests - [x] Documentation - [x] Try it against a really big file",2022-01-10T05:34:24Z,2022-01-11T02:10:57Z,2022-01-11T02:10:54Z,2022-01-11T02:10:54Z,129141572f249ea290e2a075437e2ebaad215859,,,7558727,3.21,0,f4ea0d32c0543373eefaa9b9f3911eb07549eecb,b6dad08a8389736b7e960cfe9bc719cfc21a98f5,OWNER,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/377,,, 817942693,PR_kwDOBm6k_c4wwNCl,1589,closed,0,Typo in docs about default redirect status code,3556,davidbgk,,2022-01-10T19:14:36Z,2022-03-06T02:27:49Z,2022-03-06T01:58:32Z,2022-03-06T01:58:32Z,0499f174c063283aa9b589d475a32077aaf7adc5,,,,,0,d95bd658748172d88b04330950ef8f8d18b726c7,8c401ee0f054de2f568c3a8302c9223555146407,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1589,,, 820898460,PR_kwDOBm6k_c4w7eqc,1593,closed,0,"Update pytest-asyncio requirement from <0.17,>=0.10 to >=0.10,<0.18",49699333,dependabot[bot],"Updates the requirements on [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) to permit the latest version.
Release notes

Sourced from pytest-asyncio's releases.

pytest-asyncio 0.17.0


title: 'pytest-asyncio: pytest support for asyncio'

pytest-asyncio is an Apache2 licensed library, written in Python, for testing asyncio code with pytest.

asyncio code is usually written in the form of coroutines, which makes it slightly more difficult to test using normal testing tools. pytest-asyncio provides useful fixtures and markers to make testing easier.

@pytest.mark.asyncio
async def test_some_asyncio_code():
    res = await library.do_something()
    assert b"expected result" == res

pytest-asyncio has been strongly influenced by pytest-tornado.

Features

  • fixtures for creating and injecting versions of the asyncio event loop
  • fixtures for injecting unused tcp/udp ports
  • pytest markers for treating tests as asyncio coroutines
  • easy testing with non-default event loops
  • support for [async def]{.title-ref} fixtures and async generator fixtures
  • support auto mode to handle all async fixtures and tests automatically by asyncio; provide strict mode if a test suite should work with different async frameworks simultaneously, e.g. asyncio and trio.

Installation

... (truncated)

Commits
  • 2e2d5d2 Bump to 0.17 release
  • 90436c9 Fix pandoc installation procedure
  • d291c66 Convert README.rst to Markdown for making githun release
  • 141937b Fix release artifacts
  • 696cf7d Fix trove classifier for asyncio
  • 8ccb306 Build on tag
  • cd84987 Release process automation (#252)
  • 2eb12a7 Setup GitHub Workflows linter and yaml-reformatter (#253)
  • d28b826 Bump codecov/codecov-action from 1 to 2.1.0 (#251)
  • 2f523ba Configure dependabot version updater (#250)
  • Additional commits viewable in compare view

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
",2022-01-13T13:11:50Z,2022-02-07T13:13:24Z,2022-02-07T13:13:23Z,,750b3fa430a30ce5e44f146ffaa390937090db80,,,,,0,df73ebb0c9a6e1d77ec08399608eb1422d43a779,8c401ee0f054de2f568c3a8302c9223555146407,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1593,,, 821992886,PR_kwDOCGYnMM4w_p22,385,closed,0,Add new spatialite helper methods,25778,eyeseast,"Refs #79 This PR adds three new Spatialite-related methods to Database and Table: - `Database.init_spatialite` loads the Spatialite extension and initializes it - `Table.add_geometry_column` adds a geometry column - `Table.create_spatial_index` creates a spatial index Has tests and documentation. Feedback very welcome.",2022-01-14T03:57:30Z,2022-02-05T00:04:26Z,2022-02-04T05:55:10Z,2022-02-04T05:55:10Z,ee11274fcb1c00f32c95f2ef2924d5349538eb4d,,,,,0,af86b17acf2fa50048e38b96497636d49db89766,74586d3cb26fa3cc3412721985ecdc1864c2a31d,CONTRIBUTOR,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/385,,, 826493849,PR_kwDOBm6k_c4xQ0uZ,1602,closed,0,"Update pytest-timeout requirement from <2.1,>=1.4.2 to >=1.4.2,<2.2",49699333,dependabot[bot],"Updates the requirements on [pytest-timeout](https://github.com/pytest-dev/pytest-timeout) to permit the latest version.
Commits
  • 8e4800e Fixup readme
  • dc1efca 2.1.0 release
  • dd9d608 Add custom hooks specifications for overriding setup_timeout and teardown_tim...
  • ed8ecd6 module names, they're difficult
  • 3ab4319 Add changelog
  • 4f7ebae Replace deprecated py.io.get_terminal_width() with shutil.get_terminal_size()...
  • b8a2fa6 Prep release
  • 951972d Update changelog
  • 748a9c3 Making detection of whether a debugger is currently attached more flexible. (...
  • f8a46a1 Github removed the git protocol (#112)
  • Additional commits viewable in compare view

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
",2022-01-19T13:11:50Z,2022-03-06T01:41:50Z,2022-03-06T01:41:49Z,2022-03-06T01:41:49Z,7b78279b93b6e7a5fce6b53e5a85ca421a801496,,,,,0,a9c69dce50a4a6b57315e5c7fe73538dc09dbe9a,73f2d25f70d741c6b53f7312674c91f0aec83e17,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1602,,, 830389410,PR_kwDOBm6k_c4xfryi,1610,closed,0,"Update asgiref requirement from <3.5.0,>=3.2.10 to >=3.2.10,<3.6.0",49699333,dependabot[bot],"Updates the requirements on [asgiref](https://github.com/django/asgiref) to permit the latest version.
Changelog

Sourced from asgiref's changelog.

3.5.0 (2022-01-22)

  • Python 3.6 is no longer supported, and asyncio calls have been changed to use only the modern versions of the APIs as a result

  • Several causes of RuntimeErrors in cases where an event loop was assigned to a thread but not running

  • Speed improvements in the Local class

3.4.1 (2021-07-01)

  • Fixed an issue with the deadlock detection where it had false positives during exception handling.

3.4.0 (2021-06-27)

  • Calling sync_to_async directly from inside itself (which causes a deadlock when in the default, thread-sensitive mode) now has deadlock detection.

  • asyncio usage has been updated to use the new versions of get_event_loop, ensure_future, wait and gather, avoiding deprecation warnings in Python 3.10. Python 3.6 installs continue to use the old versions; this is only for 3.7+

  • sync_to_async and async_to_sync now have improved type hints that pass through the underlying function type correctly.

  • All Websocket* types are now spelled WebSocket, to match our specs and the official spelling. The old names will work until release 3.5.0, but will raise deprecation warnings.

  • The typing for WebSocketScope and HTTPScope's extensions key has been fixed.

3.3.4 (2021-04-06)

  • The async_to_sync type error is now a warning due the high false negative rate when trying to detect coroutine-returning callables in Python.

3.3.3 (2021-04-06)

... (truncated)

Commits
  • 8b61513 Releasing 3.5.0
  • b2e1c9d Fixed pytest_asyncio deprecation warning.
  • 2eda551 Added testing for Python 3.10.
  • 02fecb6 Drop Python 3.6 (#307)
  • 6689c0a Added stacklevel to warning in AsyncToSync.
  • 4364f9b Changed how StatelessServer handles event loops
  • 7bc055c Update implementations.rst (#295)
  • c758984 Move current_task import choice to module definition time
  • dfe87b2 Fixed #292: Use get_event_loop in class-level code
  • b3a65e3 Removed class variable which has been unused since a0bbe90
  • Additional commits viewable in compare view

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
",2022-01-24T13:14:18Z,2022-03-06T01:30:27Z,2022-03-06T01:30:27Z,2022-03-06T01:30:27Z,73f2d25f70d741c6b53f7312674c91f0aec83e17,,,,,0,84a43561e4f677bcf7337c9fd48d0dcafb3264fc,d194db4204b732af57138e1fb0924ec77354dd58,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1610,,, 836124846,PR_kwDOBm6k_c4x1kCu,1616,closed,0,Bump black from 21.12b0 to 22.1.0,49699333,dependabot[bot],"Bumps [black](https://github.com/psf/black) from 21.12b0 to 22.1.0.
Release notes

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

  • Remove Python 2 support (#2740)
  • Introduce the --preview flag (#2752)

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 and yield 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() or case() 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

  • All upper version bounds on dependencies have been removed (#2718)
  • typing-extensions is no longer a required dependency in Python 3.10+ (#2772)
  • Set click lower bound to 8.0.0 as Black crashes on 7.1.2 (#2791)

... (truncated)

Changelog

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

  • Remove Python 2 support (#2740)
  • Introduce the --preview flag (#2752)

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 and yield 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() or case() 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)

... (truncated)

Commits

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=black&package-manager=pip&previous-version=21.12b0&new-version=22.1.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
",2022-01-31T13:13:46Z,2022-02-02T22:23:52Z,2022-02-02T22:23:51Z,2022-02-02T22:23:51Z,b5e6b1a9e1332fca3effe45d55dd06ee4249f163,,,,,0,4ebe94b3818feb179b2dc81e6c441020ba415356,2aa686c6554bf6b8230eb5b3019574df6cc99225,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1616,,, 837498489,PR_kwDOBm6k_c4x6zZ5,1617,closed,0,"Ensure template_path always uses ""/"" to match jinja",3526913,cb160,"This PR shoudl fix #1545 The existing code substituted / for \, assuming this was the right behaviour for windows. But on Windows, Jinja still uses / for the template list - See https://github.com/pallets/jinja/blob/896a62135bcc151f2997e028c5125bec2cb2431f/src/jinja2/loaders.py#L225",2022-02-01T17:20:30Z,2022-02-03T01:58:35Z,2022-02-03T01:58:35Z,2022-02-03T01:58:35Z,1af1041f91a9b91b321078d354132d1df5204660,,,,,0,af293c960e67b14ebd8ec7517b698803606fae96,2aa686c6554bf6b8230eb5b3019574df6cc99225,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1617,,, 838724548,PR_kwDOBm6k_c4x_evE,1622,closed,0,Test against Python 3.11-dev,9599,simonw,Refs #1621,2022-02-02T21:39:38Z,2022-02-02T21:58:53Z,2022-02-02T21:58:53Z,2022-02-02T21:58:53Z,a9d8824617268c4d214dd3be2174ac452044f737,,,,,0,fbaf317ab723482e971688cda72ce51825bcf4d7,8d5779acf0041cfd0db7f68f468419f9008b86ec,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/1622,,, 838755826,PR_kwDOBm6k_c4x_mXy,1626,open,0,Try test suite against macOS and Windows,9599,simonw,Refs #1625,2022-02-02T22:26:51Z,2022-02-03T01:22:44Z,,,83958f26a8458a108acb7c3c0a1c8aacb777586a,,,,,0,4b4d0e1ff9e2ee998cbd71abd5f5806f25444ed9,b5e6b1a9e1332fca3effe45d55dd06ee4249f163,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/1626,,, 840249513,PR_kwDOBm6k_c4yFTCp,1629,closed,0,"Update pytest requirement from <6.3.0,>=5.2.2 to >=5.2.2,<7.1.0",49699333,dependabot[bot],"Updates the requirements on [pytest](https://github.com/pytest-dev/pytest) to permit the latest version.
Release notes

Sourced from pytest's releases.

7.0.0

pytest 7.0.0 (2022-02-03)

(Please see the full set of changes for this release also in the 7.0.0rc1 notes below)

Deprecations

  • #9488: If custom subclasses of nodes like pytest.Item{.interpreted-text role="class"} override the __init__ method, they should take **kwargs. See uncooperative-constructors-deprecated{.interpreted-text role="ref"} for details.

    Note that a deprection warning is only emitted when there is a conflict in the arguments pytest expected to pass. This deprecation was already part of pytest 7.0.0rc1 but wasn't documented.

Bug Fixes

  • #9355: Fixed error message prints function decorators when using assert in Python 3.8 and above.
  • #9396: Ensure pytest.Config.inifile{.interpreted-text role="attr"} is available during the pytest_cmdline_main <_pytest.hookspec.pytest_cmdline_main>{.interpreted-text role="func"} hook (regression during 7.0.0rc1).

Improved Documentation

  • #9404: Added extra documentation on alternatives to common misuses of [pytest.warns(None)]{.title-ref} ahead of its deprecation.
  • #9505: Clarify where the configuration files are located. To avoid confusions documentation mentions that configuration file is located in the root of the repository.

Trivial/Internal Changes

  • #9521: Add test coverage to assertion rewrite path.

pytest 7.0.0rc1 (2021-12-06)

Breaking Changes

  • #7259: The Node.reportinfo() <non-python tests>{.interpreted-text role="ref"} function first return value type has been expanded from [py.path.local | str]{.title-ref} to [os.PathLike[str] | str]{.title-ref}.

    Most plugins which refer to [reportinfo()]{.title-ref} only define it as part of a custom pytest.Item{.interpreted-text role="class"} implementation. Since [py.path.local]{.title-ref} is a [os.PathLike[str]]{.title-ref}, these plugins are unaffacted.

    Plugins and users which call [reportinfo()]{.title-ref}, use the first return value and interact with it as a [py.path.local]{.title-ref}, would need to adjust by calling [py.path.local(fspath)]{.title-ref}. Although preferably, avoid the legacy [py.path.local]{.title-ref} and use [pathlib.Path]{.title-ref}, or use [item.location]{.title-ref} or [item.path]{.title-ref}, instead.

    Note: pytest was not able to provide a deprecation period for this change.

... (truncated)

Commits
  • 3554b83 Add note to changelog
  • 6ea7f99 Prepare release version 7.0.0
  • 737b220 [7.0.x] releasing: Add template for major releases (#9597)
  • 7fa3972 [7.0.x] releasing: Always set doc_version (#9590)
  • b304499 [7.0.x] Make 'warnings' and 'deselected' in assert_outcomes optional (#9566)
  • f17525d [7.0.x] doc: Add ellipsis to warning usecase list (#9562)
  • 0a7be97 ci: Bump up timeout (#9565)
  • c17908c [7.0.x] doc: Recategorize 7.0.0 changelog items (#9564)
  • ab549bb [7.0.x] Add missing cooperative constructor changelog (#9563)
  • 4b1707f [7.0.x] Autouse linearization graph (#9557)
  • Additional commits viewable in compare view

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
",2022-02-04T13:14:10Z,2022-03-06T01:30:06Z,2022-03-06T01:30:06Z,2022-03-06T01:30:06Z,b21839dd1a005f6269c4e9a9f763195fe7aa9c86,,,,,0,1c0d84878638a61bfbb7e146567f17fd8a9b21e9,1af1041f91a9b91b321078d354132d1df5204660,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1629,,, 841715204,PR_kwDOBm6k_c4yK44E,1631,closed,0,"Update pytest-asyncio requirement from <0.17,>=0.10 to >=0.10,<0.19",49699333,dependabot[bot],"Updates the requirements on [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) to permit the latest version.
Release notes

Sourced from pytest-asyncio's releases.

pytest-asyncio 0.18.0


title: 'pytest-asyncio: pytest support for asyncio'

pytest-asyncio is an Apache2 licensed library, written in Python, for testing asyncio code with pytest.

asyncio code is usually written in the form of coroutines, which makes it slightly more difficult to test using normal testing tools. pytest-asyncio provides useful fixtures and markers to make testing easier.

@pytest.mark.asyncio
async def test_some_asyncio_code():
    res = await library.do_something()
    assert b"expected result" == res

pytest-asyncio has been strongly influenced by pytest-tornado.

Features

  • fixtures for creating and injecting versions of the asyncio event loop
  • fixtures for injecting unused tcp/udp ports
  • pytest markers for treating tests as asyncio coroutines
  • easy testing with non-default event loops
  • support for [async def]{.title-ref} fixtures and async generator fixtures
  • support auto mode to handle all async fixtures and tests automatically by asyncio; provide strict mode if a test suite should work with different async frameworks simultaneously, e.g. asyncio and trio.

Installation

... (truncated)

Commits

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
",2022-02-07T13:13:19Z,2022-03-06T01:29:54Z,2022-03-06T01:29:53Z,2022-03-06T01:29:53Z,a22ec96c3ac555337eb49121450723a273fb52d1,,,,,0,62eed844d3514957e7578e6981c5cb49227e97f8,03305ea183b1534bc4cef3a721fe5f3700273b84,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1631,,, 853484980,PR_kwDOCGYnMM4y3yW0,407,closed,0,Add SpatiaLite helpers to CLI,25778,eyeseast,"Closes #398 This adds SpatiaLite helpers to the CLI. ```sh # init spatialite when creating a database sqlite-utils create database.db --enable-wal --init-spatialite # add geometry columns # needs a database, table, geometry column name, type, with optional SRID and not-null # this will throw an error if the table doesn't already exist sqlite-utils add-geometry-column database.db table-name geometry --srid 4326 --not-null # spatial index an existing table/column # this will throw an error it the table and column don't exist sqlite-utils create-spatial-index database.db table-name geometry ``` Docs and tests are included. ",2022-02-15T16:50:17Z,2022-02-16T01:49:40Z,2022-02-16T00:58:08Z,2022-02-16T00:58:07Z,a692c56659c3563b26dcdc9e3534d63ecc26e180,,,,,0,a974da591915e0548182bbbf01da34ecb9e537e6,e7f040106b5f5a892ebd984f19b21c605e87c142,CONTRIBUTOR,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/407,,, 862538586,PR_kwDODFdgUs4zaUta,70,open,0,scrape-dependents: enable paging through package menu option if present,36061055,stanbiryukov,Some repos organize network dependents by a Package toggle. This PR adds the ability to page through those options and scrape underlying dependents.,2022-02-24T15:07:25Z,2022-02-24T15:07:25Z,,,36cca3584a07d88d1e505111d1b23294d66ba73e,,,,,0,cc8f276a474525e55ed0bcacb0cd8cc560f89614,751bc900366ca52e662ea383b858cbf4365093d9,FIRST_TIME_CONTRIBUTOR,207052882,github-to-sqlite,https://github.com/dogsheep/github-to-sqlite/pull/70,,, 862823026,PR_kwDOCGYnMM4zbaJy,410,closed,0,Correct spelling mistakes (found with codespell),3818,EdwardBetts,,2022-02-24T20:44:18Z,2022-03-06T08:48:29Z,2022-03-01T21:05:29Z,2022-03-01T21:05:29Z,b6c9dfce0ba27eb5fb6bc2221044798420f861c4,,,,,0,a174069da6669b8914d4a08dded7fd750d52a316,7a098aa0c5e8beef6ccc55c866cf7792af5fcf43,CONTRIBUTOR,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/410,,, 872242672,PR_kwDODEm0Qs4z_V3w,65,open,0,"Update Twitter dev link, clarify apps vs projects",2657547,rixx,"Twitter pushes you heavily towards v2 projects instead of v1 apps – I know the README mentions v1 API compatibility at the top, but I still nearly got turned around here.",2022-03-05T11:56:08Z,2022-03-05T11:56:08Z,,,765a450845ba26fac102d9154980cd936399546c,,,,,0,b7cfe9dcb7dbccc7ba8171cfe74f19227c4351ec,f09d611782a8372cfb002792dfa727325afb4db6,FIRST_TIME_CONTRIBUTOR,206156866,twitter-to-sqlite,https://github.com/dogsheep/twitter-to-sqlite/pull/65,,, 872324754,PR_kwDOBm6k_c4z_p6S,1648,closed,0,Use dash encoding for table names and row primary keys in URLs,9599,simonw,"Refs #1439. - [x] Build `dash_encode` / `dash_decode` functions - [x] Use dash encoding for row primary keys - [x] Use dash encoding for `?_next=` pagination tokens - [x] Use dash encoding for table names in URLs - [x] Use dash encoding for database name - ~~Implement redirects from previous `%` URLs that replace those with `-`~~ - separate issue: #1650",2022-03-05T19:50:45Z,2022-03-07T15:38:30Z,2022-03-07T15:38:30Z,2022-03-07T15:38:29Z,1baa030eca375f839f3471237547ab403523e643,,,,,0,32548b88fdb413429d960966decba8f6b3889190,5010d1359b9e9db90a5a69a3ca22d12862893e00,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/1648,,, 872509423,PR_kwDOBm6k_c40AW_v,1649,closed,0,Add /opt/homebrew to where spatialite extension can be found,2182,danp,"Helps homebrew on Apple Silicon setups find spatialite without needing a full path. Similar to #1114",2022-03-06T18:09:35Z,2022-03-06T22:46:00Z,2022-03-06T19:39:15Z,2022-03-06T19:39:15Z,de810f49cc57a4f88e4a1553d26c579253ce4531,,,,,0,59b2c16e3db10390b134673bda20045c351bdef8,0499f174c063283aa9b589d475a32077aaf7adc5,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1649,,, 879038656,PR_kwDOBm6k_c40ZRDA,1656,closed,0,"Update pytest requirement from <7.1.0,>=5.2.2 to >=5.2.2,<7.2.0",49699333,dependabot[bot],"Updates the requirements on [pytest](https://github.com/pytest-dev/pytest) to permit the latest version.
Release notes

Sourced from pytest's releases.

7.1.0

pytest 7.1.0 (2022-03-13)

Breaking Changes

  • #8838: As per our policy, the following features have been deprecated in the 6.X series and are now removed:

    • pytest._fillfuncargs function.
    • pytest_warning_captured hook - use pytest_warning_recorded instead.
    • -k -foobar syntax - use -k 'not foobar' instead.
    • -k foobar: syntax.
    • pytest.collect module - import from pytest directly.

    For more information consult Deprecations and Removals in the docs.

  • #9437: Dropped support for Python 3.6, which reached end-of-life at 2021-12-23.

Improvements

  • #5192: Fixed test output for some data types where -v would show less information.

    Also, when showing diffs for sequences, -q would produce full diffs instead of the expected diff.

  • #9362: pytest now avoids specialized assert formatting when it is detected that the default __eq__ is overridden in attrs or dataclasses.

  • #9536: When -vv is given on command line, show skipping and xfail reasons in full instead of truncating them to fit the terminal width.

  • #9644: More information about the location of resources that led Python to raise ResourceWarning{.interpreted-text role="class"} can now be obtained by enabling tracemalloc{.interpreted-text role="mod"}.

    See resource-warnings{.interpreted-text role="ref"} for more information.

  • #9678: More types are now accepted in the ids argument to @pytest.mark.parametrize. Previously only [str]{.title-ref}, [float]{.title-ref}, [int]{.title-ref} and [bool]{.title-ref} were accepted; now [bytes]{.title-ref}, [complex]{.title-ref}, [re.Pattern]{.title-ref}, [Enum]{.title-ref} and anything with a [__name__]{.title-ref} are also accepted.

  • #9692: pytest.approx{.interpreted-text role="func"} now raises a TypeError{.interpreted-text role="class"} when given an unordered sequence (such as set{.interpreted-text role="class"}).

    Note that this implies that custom classes which only implement __iter__ and __len__ are no longer supported as they don't guarantee order.

Bug Fixes

  • #8242: The deprecation of raising unittest.SkipTest{.interpreted-text role="class"} to skip collection of tests during the pytest collection phase is reverted - this is now a supported feature again.
  • #9493: Symbolic link components are no longer resolved in conftest paths. This means that if a conftest appears twice in collection tree, using symlinks, it will be executed twice.

... (truncated)

Commits
  • 1dbffcc [pre-commit.ci] auto fixes from pre-commit.com hooks
  • d53a5fb Prepare release version 7.1.0
  • d306ec0 Update upcoming trainings (#9744)
  • 3e4c14b Merge pull request #9751 from fabianegli/main
  • 7f924b1 Fix typo in deprecation documentation
  • 4a8f8ad build(deps): Bump django from 4.0.2 to 4.0.3 in /testing/plugins_integration ...
  • c0fd2d8 build(deps): Bump pytest-asyncio from 0.18.1 to 0.18.2 in /testing/plugins_in...
  • 843e018 Merge pull request #9732 from nicoddemus/9730-toml-failure
  • bc43d66 [automated] Update plugin list (#9733)
  • e38d1ca Improve error message for malformed pyproject.toml files
  • Additional commits viewable in compare view

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
",2022-03-14T13:11:53Z,2022-03-15T18:03:03Z,2022-03-15T18:03:02Z,2022-03-15T18:03:01Z,77a904fea14f743560af9cc668146339bdbbd0a9,,,,,0,5d9883fcbb5ce00c50fd58aacfcf6e0e2d39ba48,c10cd48baf106659bf3f129ad7bfb2226be73821,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1656,,, 880373442,PR_kwDOBm6k_c40eW7C,1659,closed,0,Tilde encoding,9599,simonw,Refs #1657,2022-03-15T16:19:07Z,2022-03-15T18:01:58Z,2022-03-15T18:01:57Z,2022-03-15T18:01:57Z,a35393b29cfb5b8abdc6a94e577af1c9a5c13652,,,,,0,99b8263806e81028af169f400352c26e5473ab44,c10cd48baf106659bf3f129ad7bfb2226be73821,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/1659,,, 882973374,PR_kwDOBm6k_c40oRq-,1664,closed,0,Remove hashed URL mode,9599,simonw,Refs #1661.,2022-03-17T23:19:10Z,2022-03-19T00:12:04Z,2022-03-19T00:12:04Z,2022-03-19T00:12:03Z,d4f60c2388c01ddce1b16f95c16d310e037c9912,,,,,0,eae91fe8c2934c8674f5202b2d9f85b6f674c410,30e5f0e67c38054a8087a2a4eae3fc4d1779af90,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/1664,,, 883644303,PR_kwDOBm6k_c40q1eP,1665,closed,0,Pin setup-gcloud to v0 instead of master,408570,sethvargo,"setup-gcloud will be updating the branch name from master to main in a future release. Even though GitHub will establish redirects, this will break any GitHub Actions workflows that pin to master. This PR updates your GitHub Actions workflows to pin to v0, which is the recommended best practice.",2022-03-18T17:17:22Z,2022-03-23T19:31:10Z,2022-03-23T17:55:39Z,,5bd51d8eda65b25ce639a841944eb6b522768b2b,,,,,0,c811c2181e298a48fdf50523525813c37f99e592,30e5f0e67c38054a8087a2a4eae3fc4d1779af90,NONE,107914493,datasette,https://github.com/simonw/datasette/pull/1665,,, 887534558,PR_kwDOCGYnMM405rPe,419,closed,0,Ignore common generated files,25778,eyeseast,"Closes #418 This adds four files to `.gitignore`: .hypothesis/ Pipfile Pipfile.lock pyproject.toml Those are all generated in the course of development and testing.",2022-03-23T18:06:22Z,2022-03-24T21:01:44Z,2022-03-24T21:01:44Z,2022-03-24T21:01:44Z,396f80fcc60da8dd844577114f7920830a2e5403,,,,,0,228f73615cf993dd3caf3c240682c00392832bb8,93fa79d30b1531bea281d0eb6b925c4e61bc1aa6,CONTRIBUTOR,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/419,,, 889476515,PR_kwDOBm6k_c41BFWj,1685,closed,0,"Update jinja2 requirement from <3.1.0,>=2.10.3 to >=2.10.3,<3.2.0",49699333,dependabot[bot],"Updates the requirements on [jinja2](https://github.com/pallets/jinja) to permit the latest version.
Release notes

Sourced from jinja2's releases.

3.1.0

This is a feature release, which includes new features and removes previously deprecated features. The 3.1.x branch is now the supported bugfix branch, the 3.0.x branch has become a tag marking the end of support for that branch. We encourage everyone to upgrade, and to use a tool such as pip-tools to pin all dependencies and control upgrades. We also encourage upgrading to MarkupSafe 2.1.1, the latest version at this time.

Changelog

Sourced from jinja2's changelog.

Version 3.1.0

Released 2022-03-24

  • Drop support for Python 3.6. :pr:1534

  • Remove previously deprecated code. :pr:1544

    • WithExtension and AutoEscapeExtension are built-in now.
    • contextfilter and contextfunction are replaced by pass_context. evalcontextfilter and evalcontextfunction are replaced by pass_eval_context. environmentfilter and environmentfunction are replaced by pass_environment.
    • Markup and escape should be imported from MarkupSafe.
    • Compiled templates from very old Jinja versions may need to be recompiled.
    • Legacy resolve mode for Context subclasses is no longer supported. Override resolve_or_missing instead of resolve.
    • unicode_urlencode is renamed to url_quote.
  • Add support for native types in macros. :issue:1510

  • The {% trans %} tag can use pgettext and npgettext by passing a context string as the first token in the tag, like {% trans "title" %}. :issue:1430

  • Update valid identifier characters from Python 3.6 to 3.7. :pr:1571

  • Filters and tests decorated with @async_variant are pickleable. :pr:1612

  • Add items filter. :issue:1561

  • Subscriptions ([0], etc.) can be used after filters, tests, and calls when the environment is in async mode. :issue:1573

  • The groupby filter is case-insensitive by default, matching other comparison filters. Added the case_sensitive parameter to control this. :issue:1463

  • Windows drive-relative path segments in template names will not result in FileSystemLoader and PackageLoader loading from drive-relative paths. :pr:1621

Version 3.0.3

Released 2021-11-09

  • Fix traceback rewriting internals for Python 3.10 and 3.11. :issue:1535
  • Fix how the native environment treats leading and trailing spaces when parsing values on Python 3.10. :pr:1537

... (truncated)

Commits
  • 84c0e2c Merge pull request #1625 from pallets/release-3.1.0
  • 7b0c47f release version 3.1.0
  • ede0f98 Merge pull request #1621 from pallets/template-safe-path
  • 040088a use posixpath.join when loading template names
  • a292075 Merge pull request #1620 from janfilips/patch-1
  • 6e4df02 Fix formatting in tricks.rst
  • 3a050b1 Merge pull request #1617 from pallets/docs-prose
  • 4b63cd8 rewrite include statement section
  • a98d482 clean up faq, move technical discussions
  • 9de99f8 clean up engine comparisons
  • Additional commits viewable in compare view

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
",2022-03-25T13:12:13Z,2022-09-05T18:36:49Z,2022-09-05T18:36:48Z,,0a1124217cbfa997ae6b8976b3fc76fc443225fb,,,,,0,933ce474aef535de92d89968816cbdde77c48c64,c496f2b663ff0cef908ffaaa68b8cb63111fb5f2,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1685,,, 893039755,PR_kwDOBm6k_c41OrSL,1693,closed,0,Bump black from 22.1.0 to 22.3.0,49699333,dependabot[bot],"Bumps [black](https://github.com/psf/black) from 22.1.0 to 22.3.0.
Release notes

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 of tomli (#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 and async for statements, e.g for item in *items_1, *items_2: pass (#2879).
Changelog

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 of tomli (#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 and async for statements, e.g for item in *items_1, *items_2: pass (#2879).
Commits

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=black&package-manager=pip&previous-version=22.1.0&new-version=22.3.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
",2022-03-29T13:11:09Z,2022-06-28T13:11:38Z,2022-06-28T13:11:36Z,,17e058e286104e9b9180df72c61eb9218f376c4d,,,,,0,ec2d1e47dc39dd1db2048cd0a001aa9e4be20812,1d33fd03b3c211e0f48a8f3bde83880af89e4e69,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1693,,, 893040042,PR_kwDOBm6k_c41OrWq,1694,closed,0,"Update click requirement from <8.1.0,>=7.1.1 to >=7.1.1,<8.2.0",49699333,dependabot[bot],"Updates the requirements on [click](https://github.com/pallets/click) to permit the latest version.
Release notes

Sourced from click's releases.

8.1.0

This is a feature release, which includes new features and removes previously deprecated features. The 8.1.x branch is now the supported bugfix branch, the 8.0.x branch will become a tag marking the end of support for that branch. We encourage everyone to upgrade, and to use a tool such as pip-tools to pin all dependencies and control upgrades.

Changelog

Sourced from click's changelog.

Version 8.1.0

Released 2022-03-28

  • Drop support for Python 3.6. :pr:2129

  • Remove previously deprecated code. :pr:2130

    • Group.resultcallback is renamed to result_callback.
    • autocompletion parameter to Command is renamed to shell_complete.
    • get_terminal_size is removed, use shutil.get_terminal_size instead.
    • get_os_args is removed, use sys.argv[1:] instead.
  • Rely on :pep:538 and :pep:540 to handle selecting UTF-8 encoding instead of ASCII. Click's locale encoding detection is removed. :issue:2198

  • Single options boolean flags with show_default=True only show the default if it is True. :issue:1971

  • The command and group decorators can be applied with or without parentheses. :issue:1359

  • The Path type can check whether the target is executable. :issue:1961

  • Command.show_default overrides Context.show_default, instead of the other way around. :issue:1963

  • Parameter decorators and @group handles cls=None the same as not passing cls. @option handles help=None the same as not passing help. :issue:[#1959](https://github.com/pallets/click/issues/1959)

  • A flag option with required=True requires that the flag is passed instead of choosing the implicit default value. :issue:1978

  • Indentation in help text passed to Option and Command is cleaned the same as using the @option and @command decorators does. A command's epilog and short_help are also processed. :issue:1985

  • Store unprocessed Command.help, epilog and short_help strings. Processing is only done when formatting help text for output. :issue:2149

  • Allow empty str input for prompt() when confirmation_prompt=True and default="". :issue:2157

  • Windows glob pattern expansion doesn't fail if a value is an invalid pattern. :issue:2195

  • It's possible to pass a list of params to @command. Any params defined with decorators are appended to the passed params. :issue:2131.

  • @command decorator is annotated as returning the correct type if a cls argument is used. :issue:2211

  • A Group with invoke_without_command=True and chain=False will invoke its result callback with the group function's return value. :issue:2124

... (truncated)

Commits
  • e4aceee Merge pull request #2224 from pallets/release-8.1.0
  • f8d811e release version 8.1.0
  • 20c88f0 Merge pull request #2223 from pallets/env-var
  • 8d7f03d treat empty auto_envvar as None
  • ef11be6 Merge pull request #2041 from spanglerco/shell-completion-option-values
  • f2e579a shell completion prioritizes option values over new options
  • d251cb0 Merge pull request #2219 from pallets/paramtype-name
  • e003331 fix ParamType.to_info_dict() with no name
  • 19be092 Merge pull request #2217 from pallets/group-return
  • 7d3a871 group without command passes return value to result callback
  • Additional commits viewable in compare view

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
",2022-03-29T13:11:23Z,2022-04-08T23:05:10Z,2022-04-08T23:05:09Z,2022-04-08T23:05:09Z,138e4d9a53e3982137294ba383303c3a848cfca4,,,,,0,83ff96792fd670ed32a1a61d38529959170c7309,e73fa72917ca28c152208d62d07a490c81cadf52,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1694,,, 903832393,PR_kwDOBm6k_c4132NJ,1703,closed,0,"Update beautifulsoup4 requirement from <4.11.0,>=4.8.1 to >=4.8.1,<4.12.0",49699333,dependabot[bot],"Updates the requirements on [beautifulsoup4](https://www.crummy.com/software/BeautifulSoup/bs4/) to permit the latest version. Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
",2022-04-08T13:08:53Z,2022-04-08T22:51:05Z,2022-04-08T22:51:05Z,2022-04-08T22:51:05Z,247e460e08bf823142f7b84058fe44e43626787f,,,,,0,73aabe6c4222500745be8ca324431295b727d335,90d1be9952db9aaddc21a536e4d00a8de44765d7,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1703,,, 917185800,PR_kwDOBm6k_c42qyUI,1717,closed,0,Add timeout option to Cloudrun build,127565,wragge,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.,2022-04-23T11:51:21Z,2022-04-24T14:03:08Z,2022-04-24T14:03:08Z,2022-04-24T14:03:08Z,3001e1e394b6cb605c2cd81eed671a7da419c1b3,,,,,0,9b9a314a84453cec5ad6c886351ef3df9d47a5a4,d57c347f35bcd8cff15f913da851b4b8eb030867,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1717,,, 925807233,PR_kwDOCGYnMM43LrKB,429,closed,0,Depend on click-default-group-wheel,9599,simonw,"Trying to get this to work with Pyodide. Refs: https://github.com/simonw/click-default-group-wheel/issues/3",2022-05-02T18:03:10Z,2022-05-02T18:52:42Z,2022-05-02T18:05:00Z,2022-05-02T18:05:00Z,ed6fd516082e8cc83b199798f62dd67728a6974f,,,,,0,4a02dcf265702a4f11eed943bf8feaa502c590d5,e3a14c33a033b0c2fc00f2470666caaf9027e446,OWNER,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/429,,, 925926708,PR_kwDOBm6k_c43MIU0,1736,closed,0,Clean up compatibility with Pyodide,9599,simonw,"Closes #1735, closes #1733",2022-05-02T20:14:38Z,2022-05-02T20:15:28Z,2022-05-02T20:15:27Z,2022-05-02T20:15:27Z,3f00a29141bdea5be747f6d1c93871ccdb792167,,,,,0,784fe6a245a051ef6b42e153d3fae9cce7b0b148,a29c1277896b6a7905ef5441c42a37bc15f67599,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/1736,,, 928210171,PR_kwDOBm6k_c43U1z7,1740,closed,0,chore: Set permissions for GitHub actions,172697,naveensrinivasan," Restrict the GitHub token permissions only to the required ones; this way, even if the attackers will succeed in compromising your workflow, they won’t be able to do much. - Included permissions for the action. https://github.com/ossf/scorecard/blob/main/docs/checks.md#token-permissions https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#permissions https://docs.github.com/en/actions/using-jobs/assigning-permissions-to-jobs [Keeping your GitHub Actions and workflows secure Part 1: Preventing pwn requests](https://securitylab.github.com/research/github-actions-preventing-pwn-requests/) Signed-off-by: naveen <172697+naveensrinivasan@users.noreply.github.com> ",2022-05-05T01:03:08Z,2022-05-31T19:28:41Z,2022-05-31T19:28:40Z,2022-05-31T19:28:40Z,2e9751672d4fe329b3c359d5b7b1992283185820,,,,,0,f76fce5fd2bacadf2f46656e32093c6d639270c9,280ff372ab30df244f6c54f6f3002da57334b3d7,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1740,,, 943518450,PR_kwDODEm0Qs44PPLy,66,open,0,Ageinfo workaround,11887,ashanan,"I'm not sure if this is due to a new format or just because my ageinfo file is blank, but trying to import an archive would crash when it got to that file. This PR adds a guard clause in the `ageinfo` transformer and sets a default value that doesn't throw an exception. Seems likely to be the same issue mentioned by danp in https://github.com/dogsheep/twitter-to-sqlite/issues/54, my ageinfo file looks the same. Added that same ageinfo file to the test archive as well to help confirm my workaround didn't break anything. Let me know if you want any changes!",2022-05-21T21:08:29Z,2022-05-21T21:09:16Z,,,c22e8eba634b70e914de9f72e452b1ebea55c6ef,,,,,0,75ae7c94120d14083217bc76ebd603b396937104,f09d611782a8372cfb002792dfa727325afb4db6,FIRST_TIME_CONTRIBUTOR,206156866,twitter-to-sqlite,https://github.com/dogsheep/twitter-to-sqlite/pull/66,,, 943686022,PR_kwDOCGYnMM44P4GG,437,closed,0,docs to dogs,114388,yurivish,Fixes a typo.,2022-05-22T15:50:33Z,2022-05-30T21:32:41Z,2022-05-30T21:32:41Z,2022-05-30T21:32:41Z,9fedfc69d7239ac49900051e1c48ee9cdd470d9e,,,,,0,9e540417821385939db0fdd2d0a859f85be377e6,59be60c471fd7a2c4be7f75e8911163e618ff5ca,CONTRIBUTOR,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/437,,, 948892757,PR_kwDODFE5qs44jvRV,11,open,0,Update README.md,11887,ashanan,Fix typo,2022-05-27T03:13:59Z,2022-05-27T03:13:59Z,,,3d479a1052f2661de61b15c50b7a5b2daa20a33a,,,,,0,d4af1554a9b5ddedcd0b241450f7b935f38b9bf7,e54e544427f1cc3ea8189f0e95f54046301a8645,FIRST_TIME_CONTRIBUTOR,206649770,google-takeout-to-sqlite,https://github.com/dogsheep/google-takeout-to-sqlite/pull/11,,, 959088871,PR_kwDOBm6k_c45Kojn,1753,closed,0,Bump furo from 2022.4.7 to 2022.6.4.1,49699333,dependabot[bot],"Bumps [furo](https://github.com/pradyunsg/furo) from 2022.4.7 to 2022.6.4.1.
Changelog

Sourced 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's edit-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)

Commits
  • 1142fad Prepare release: 2022.06.04.1
  • 211abb4 Update changelog
  • 06cdba6 Fix the edit this page URL
  • 43ce491 Back to development
  • fb6e486 Prepare release: 2022.06.04
  • 090b02e Update changelog
  • 098d51d Fix the Just the Docs link
  • 7fa8d08 Change to a post-transform for wrapping math blocks and table
  • 51f1e52 Speed up determining if there's multiple toc entries
  • 99a6ff8 Update caniuse-lite NPM package
  • Additional commits viewable in compare view

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=furo&package-manager=pip&previous-version=2022.4.7&new-version=2022.6.4.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
",2022-06-06T13:10:22Z,2022-06-22T13:22:37Z,2022-06-22T13:22:35Z,,7a9d91728ac8d15d558ffa4201ac3907f9e93905,,,,,0,23a85154e276c001f920eacb9ad266cb227f7eab,2e9751672d4fe329b3c359d5b7b1992283185820,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1753,,, 959140599,PR_kwDODFdgUs45K1L3,73,closed,0,Fixing 'NoneType' object has no attribute 'items',1224205,empjustine,"Under some conditions, GitHub caches removed starred repositories and ends up leaving dangling `None` user references. Traceback (most recent call last): File ""/home/dogsheep/dogsheep/github-to-sqlite/bin/github-to-sqlite"", line 8, in sys.exit(cli()) File ""/home/dogsheep/dogsheep/github-to-sqlite/lib64/python3.10/site-packages/click/core.py"", line 1130, in __call__ return self.main(*args, **kwargs) File ""/home/dogsheep/dogsheep/github-to-sqlite/lib64/python3.10/site-packages/click/core.py"", line 1055, in main rv = self.invoke(ctx) File ""/home/dogsheep/dogsheep/github-to-sqlite/lib64/python3.10/site-packages/click/core.py"", line 1657, in invoke return _process_result(sub_ctx.command.invoke(sub_ctx)) File ""/home/dogsheep/dogsheep/github-to-sqlite/lib64/python3.10/site-packages/click/core.py"", line 1404, in invoke return ctx.invoke(self.callback, **ctx.params) File ""/home/dogsheep/dogsheep/github-to-sqlite/lib64/python3.10/site-packages/click/core.py"", line 760, in invoke return __callback(*args, **kwargs) File ""/home/dogsheep/dogsheep/github-to-sqlite/lib64/python3.10/site-packages/github_to_sqlite/cli.py"", line 181, in starred utils.save_stars(db, user, stars) File ""/home/dogsheep/dogsheep/github-to-sqlite/lib64/python3.10/site-packages/github_to_sqlite/utils.py"", line 494, in save_stars repo_id = save_repo(db, repo) File ""/home/dogsheep/dogsheep/github-to-sqlite/lib64/python3.10/site-packages/github_to_sqlite/utils.py"", line 308, in save_repo to_save[""owner""] = save_user(db, to_save[""owner""]) File ""/home/dogsheep/dogsheep/github-to-sqlite/lib64/python3.10/site-packages/github_to_sqlite/utils.py"", line 229, in save_user for key, value in user.items() AttributeError: 'NoneType' object has no attribute 'items'",2022-06-06T13:58:11Z,2022-07-18T19:40:12Z,2022-07-18T19:40:12Z,2022-07-18T19:40:12Z,dbac2e5dd8a562b45d8255a265859cf8020ca22a,,,,,0,d7c06886f3bb95085a3af3b2a21547e41556cc6e,a6e237f75a4b86963d91dcb5c9582e3a1b3349d6,CONTRIBUTOR,207052882,github-to-sqlite,https://github.com/dogsheep/github-to-sqlite/pull/73,,, 964640654,PR_kwDOBm6k_c45fz-O,1757,open,0,feat: add a wildcard for _json columns,163156,ytjohn,"This allows _json to accept a wildcard for when there are many JSON columns that the user wants to convert. I hope this is useful. I've tested it on our datasette and haven't ran into any issues. I imagine on a large set of results, there could be some performance issues, but it will probably be negligible for most use cases. On a side note, I ran into an issue where I had to upgrade black on my system beyond the pinned version in setup.py. Here is the upstream issue < . I didn't include this in the PR yet since I didn't look into the issue too far, but I can if you would like.",2022-06-11T01:01:17Z,2022-09-06T00:51:21Z,,,35e3df5fc1c61dfa893fa3ff226cf3837f3538e9,,,,,0,1cdcd8894ce2bb76cf29f8ffcdadedbb6fa0dac1,2e9751672d4fe329b3c359d5b7b1992283185820,FIRST_TIME_CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1757,,, 971057476,PR_kwDOBm6k_c454SlE,1759,closed,0,Extract facet portions of table.html out into included templates,19872,nsmgr8,To allow users customise the facet content as they would prefer such as sorting of facet results. ordering of suggested facets etc.,2022-06-17T22:04:04Z,2022-06-20T18:05:45Z,2022-06-20T18:05:45Z,2022-06-20T18:05:45Z,00e59ec461dc0150772b999c7cc15fcb9b507d58,,,,,0,b901bb0a8eb50bc966c3e1712d73c0822edf3861,2e9751672d4fe329b3c359d5b7b1992283185820,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1759,,, 975096803,PR_kwDOBm6k_c46Hsvj,1760,closed,0,Bump furo from 2022.4.7 to 2022.6.21,49699333,dependabot[bot],"Bumps [furo](https://github.com/pradyunsg/furo) from 2022.4.7 to 2022.6.21.
Changelog

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's edit-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)

Commits

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=furo&package-manager=pip&previous-version=2022.4.7&new-version=2022.6.21)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
",2022-06-22T13:22:31Z,2022-07-18T01:06:27Z,2022-07-18T01:06:27Z,2022-07-18T01:06:27Z,ea6161f8475d9fa41c4879049511c58f692cce04,,,,,0,69951eedb7ca7f1284ba29f3890bef917d59a655,00e59ec461dc0150772b999c7cc15fcb9b507d58,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1760,,, 981389800,PR_kwDOBm6k_c46ftHo,1763,closed,0,Bump black from 22.1.0 to 22.6.0,49699333,dependabot[bot],"Bumps [black](https://github.com/psf/black) from 22.1.0 to 22.6.0.
Release notes

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 of tomllib on Python 3.11 builds where tomllib is not available (#2987)

Parser

  • PEP 654 syntax (for example, except *ExceptionGroup:) is now supported (#3016)
  • PEP 646 syntax (for example, Array[Batch, *Shape] or def 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)

Changelog

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 of tomllib on Python 3.11 builds where tomllib is not available (#2987)

Parser

  • PEP 654 syntax (for example, except *ExceptionGroup:) is now supported (#3016)
  • PEP 646 syntax (for example, Array[Batch, *Shape] or def 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)

Commits

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=black&package-manager=pip&previous-version=22.1.0&new-version=22.6.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
",2022-06-28T13:11:32Z,2022-06-28T17:40:25Z,2022-06-28T17:40:25Z,2022-06-28T17:40:24Z,9f1eb0d4eac483b953392157bd9fd6cc4df37de7,,,,,0,fd6a817de499053c10c62139872486ef1698a481,00e59ec461dc0150772b999c7cc15fcb9b507d58,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1763,,, 985781142,PR_kwDOBm6k_c46wdOW,1766,closed,0,Keep track of config_dir,25778,eyeseast,"Closes #1764 Small change that adds `self.config_dir = config_dir` to `Datasette.__init__`. This will let plugins also use `config_dir`, if available.",2022-07-03T17:37:02Z,2022-07-18T01:12:45Z,2022-07-18T01:12:45Z,2022-07-18T01:12:45Z,01369176b0a8943ab45292ffc6f9c929b80a00e8,,,,,0,257fd240975abf9647217f5d22ccadbecd6ec9f2,9f1eb0d4eac483b953392157bd9fd6cc4df37de7,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1766,,, 986925985,PR_kwDOD079W84600uh,37,open,0,Fix former command name in readme,578773,DanLipsitt,Looks like a previous commit missed a `photo-to-sqlite`→ `dogsheep-photos` replacement.,2022-07-05T02:09:13Z,2022-07-05T02:09:13Z,,,1fa5a3b9ddab2a954aea21ea4292b944e826866a,,,,,0,b0d256c5bc480450627d98d8c8a5e3d8c61dc2ae,325aa38cb23d0757bb1335ee2ea94a082475a66e,FIRST_TIME_CONTRIBUTOR,256834907,dogsheep-photos,https://github.com/dogsheep/dogsheep-photos/pull/37,,, 992299943,PR_kwDOCGYnMM47JUun,452,closed,0,Add duplicate table feature,1690072,davidleejy,"This PR addresses a feature request raised in issue #449. Specifically this PR adds a functionality that lets users duplicate a table via: ```python table_new = db[""my_table""].duplicate(""new_table"") ``` Test added in file `tests/test_duplicate.py`. Happy to make changes to meet maintainers' feedback, if any. ",2022-07-09T20:24:31Z,2022-07-15T21:21:37Z,2022-07-15T21:21:36Z,2022-07-15T21:21:36Z,b366e68deb0780048a23610c279552f8529d4726,,,,,0,eef350fe543c6301c61b257c5f708e0e16ed5a34,42440d6345c242ee39778045e29143fb550bd2c2,CONTRIBUTOR,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/452,,, 997743473,PR_kwDOBm6k_c47eFtx,1769,closed,0,"Update pytest-asyncio requirement from <0.19,>=0.17 to >=0.17,<0.20",49699333,dependabot[bot],"Updates the requirements on [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) to permit the latest version.
Release notes

Sourced from pytest-asyncio's releases.

pytest-asyncio 0.19.0


title: 'pytest-asyncio: pytest support for asyncio'

pytest-asyncio is an Apache2 licensed library, written in Python, for testing asyncio code with pytest.

asyncio code is usually written in the form of coroutines, which makes it slightly more difficult to test using normal testing tools. pytest-asyncio provides useful fixtures and markers to make testing easier.

@pytest.mark.asyncio
async def test_some_asyncio_code():
    res = await library.do_something()
    assert b"expected result" == res

pytest-asyncio has been strongly influenced by pytest-tornado.

Features

  • fixtures for creating and injecting versions of the asyncio event loop
  • fixtures for injecting unused tcp/udp ports
  • pytest markers for treating tests as asyncio coroutines
  • easy testing with non-default event loops
  • support for [async def]{.title-ref} fixtures and async generator fixtures
  • support auto mode to handle all async fixtures and tests automatically by asyncio; provide strict mode if a test suite should work with different async frameworks simultaneously, e.g. asyncio and trio.

Installation

... (truncated)

Changelog

Sourced from pytest-asyncio's changelog.

0.19.0 (22-07-13)

  • BREAKING: The default asyncio_mode is now strict. [#293](https://github.com/pytest-dev/pytest-asyncio/issues/293) <https://github.com/pytest-dev/pytest-asyncio/issues/293>_
  • Removes setup.py since all relevant configuration is present setup.cfg. Users requiring an editable installation of pytest-asyncio need to use pip v21.1 or newer. [#283](https://github.com/pytest-dev/pytest-asyncio/issues/283) <https://github.com/pytest-dev/pytest-asyncio/issues/283>_
  • Declare support for Python 3.11.

0.18.3 (22-03-25)

  • Adds pytest-trio <https://pypi.org/project/pytest-trio/>_ to the test dependencies
  • Fixes a bug that caused pytest-asyncio to try to set up async pytest_trio fixtures in strict mode. [#298](https://github.com/pytest-dev/pytest-asyncio/issues/298) <https://github.com/pytest-dev/pytest-asyncio/issues/298>_

0.18.2 (22-03-03)

  • Fix asyncio auto mode not marking static methods. [#295](https://github.com/pytest-dev/pytest-asyncio/issues/295) <https://github.com/pytest-dev/pytest-asyncio/issues/295>_
  • Fix a compatibility issue with Hypothesis 6.39.0. [#302](https://github.com/pytest-dev/pytest-asyncio/issues/302) <https://github.com/pytest-dev/pytest-asyncio/issues/302>_

0.18.1 (22-02-10)

  • Fixes a regression that prevented async fixtures from working in synchronous tests. [#286](https://github.com/pytest-dev/pytest-asyncio/issues/286) <https://github.com/pytest-dev/pytest-asyncio/issues/286>_

0.18.0 (22-02-07)

  • Raise a warning if @​pytest.mark.asyncio is applied to non-async function. [#275](https://github.com/pytest-dev/pytest-asyncio/issues/275) <https://github.com/pytest-dev/pytest-asyncio/issues/275>_
  • Support parametrized event_loop fixture. [#278](https://github.com/pytest-dev/pytest-asyncio/issues/278) <https://github.com/pytest-dev/pytest-asyncio/issues/278>_

0.17.2 (22-01-17)

  • Require typing-extensions on Python`_
  • Fix a regression in tests collection introduced by 0.17.1, the plugin works fine with non-python tests again. [#267](https://github.com/pytest-dev/pytest-asyncio/issues/267) <https://github.com/pytest-dev/pytest-asyncio/issues/267>_

0.17.1 (22-01-16)

  • Fixes a bug that prevents async Hypothesis tests from working without explicit asyncio marker when --asyncio-mode=auto is set. [#258](https://github.com/pytest-dev/pytest-asyncio/issues/258) <https://github.com/pytest-dev/pytest-asyncio/issues/258>_
  • Fixed a bug that closes the default event loop if the loop doesn't exist [#257](https://github.com/pytest-dev/pytest-asyncio/issues/257) <https://github.com/pytest-dev/pytest-asyncio/issues/257>_
  • Added type annotations. [#198](https://github.com/pytest-dev/pytest-asyncio/issues/198) <https://github.com/pytest-dev/pytest-asyncio/issues/198>_
  • Show asyncio mode in pytest report headers. [#266](https://github.com/pytest-dev/pytest-asyncio/issues/266) <https://github.com/pytest-dev/pytest-asyncio/issues/266>_
  • Relax asyncio_mode type definition; it allows to support pytest 6.1+. [#262](https://github.com/pytest-dev/pytest-asyncio/issues/262) <https://github.com/pytest-dev/pytest-asyncio/issues/262>_

0.17.0 (22-01-13)

  • pytest-asyncio no longer alters existing event loop policies. [#168](https://github.com/pytest-dev/pytest-asyncio/issues/168) <https://github.com/pytest-dev/pytest-asyncio/issues/168>, [#188](https://github.com/pytest-dev/pytest-asyncio/issues/188) <https://github.com/pytest-dev/pytest-asyncio/issues/168>
  • Drop support for Python 3.6
  • Fixed an issue when pytest-asyncio was used in combination with flaky or inherited asynchronous Hypothesis tests. [#178](https://github.com/pytest-dev/pytest-asyncio/issues/178) <https://github.com/pytest-dev/pytest-asyncio/issues/178>_ [#231](https://github.com/pytest-dev/pytest-asyncio/issues/231) <https://github.com/pytest-dev/pytest-asyncio/issues/231>_
  • Added flaky <https://pypi.org/project/flaky/>_ to test dependencies
  • Added unused_udp_port and unused_udp_port_factory fixtures (similar to unused_tcp_port and unused_tcp_port_factory counterparts. [#99](https://github.com/pytest-dev/pytest-asyncio/issues/99) <https://github.com/pytest-dev/pytest-asyncio/issues/99>_
  • Added the plugin modes: strict, auto, and legacy. See documentation <https://github.com/pytest-dev/pytest-asyncio#modes>_ for details. [#125](https://github.com/pytest-dev/pytest-asyncio/issues/125) <https://github.com/pytest-dev/pytest-asyncio/issues/125>_
  • Correctly process KeyboardInterrupt during async fixture setup phase [#219](https://github.com/pytest-dev/pytest-asyncio/issues/219) <https://github.com/pytest-dev/pytest-asyncio/issues/219>_

... (truncated)

Commits
  • 2da33c4 docs: Prepare v0.19.0 release. (#385)
  • 07beb80 opt into strict mode by default (#380)
  • 25c54a5 Clarify documentation of event_loop fixture (#375)
  • 49f07a4 Bump typing-extensions from 4.2.0 to 4.3.0 in /dependencies/default (#382)
  • 739198b Bump hypothesis from 6.48.0 to 6.48.3 in /dependencies/default (#381)
  • db72f25 Bump importlib-metadata from 4.11.4 to 4.12.0 in /dependencies/default (#378)
  • 4cf16cf Bump hypothesis from 6.47.3 to 6.48.0 in /dependencies/default (#377)
  • f13c85f docs: Fix typo in README.
  • b463f72 Python 3.11 support (#370)
  • 860ff51 Bump hypothesis from 6.47.2 to 6.47.3 in /dependencies/default (#373)
  • Additional commits viewable in compare view

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
",2022-07-15T13:10:15Z,2022-07-18T01:06:38Z,2022-07-18T01:06:38Z,2022-07-18T01:06:38Z,22354c48ce4d514d7a1b321e5651c7f1340e3f5e,,,,,0,bb3c6105164165432e2e72cc17d3ad71a1ba5b9b,950cc7677f65aa2543067b3bbfc2b6acb98b62c8,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1769,,, 998860509,PR_kwDOBm6k_c47iWbd,1772,open,0,Convert to setup.cfg,89725,kfdm,"Recent versions of setuptools can run most things from setup.cfg so one can have a simpler version that does not require executing code on install. The bulk of the changes were automated by running https://pypi.org/project/setup-py-upgrade/ with a few minor edits for the bits that it can not auto convert (the initial `get_long_description()` and `get_version()` can not be automatically converted)",2022-07-18T03:39:53Z,2022-07-18T03:39:53Z,,,3abb0780f97901ae39f8a206c7c6d376f8574ffc,,,,,0,c1b2f539c8d4cabe0a48d07bd8ce3fd1439a8f08,01369176b0a8943ab45292ffc6f9c929b80a00e8,FIRST_TIME_CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1772,,, 1000800283,PR_kwDOCGYnMM47pwAb,455,closed,0,"in extract code, check equality with IS instead of = for nulls",536941,fgregg,"sqlite ""IS"" is equivalent to SQL ""IS NOT DISTINCT FROM"" closes #423",2022-07-19T13:40:25Z,2022-08-27T14:45:03Z,2022-08-27T14:45:03Z,2022-08-27T14:45:03Z,c5f8a2eb1a81a18b52825cc649112f71fe419b12,,,,,0,1b35a92e3ede76f0f29f6f8dcd899f44b2abbb02,855bce8c3823718def13e0b8928c58bf857e41b2,CONTRIBUTOR,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/455,,, 1009936222,PR_kwDOCGYnMM48Mmde,457,closed,0,Link to installation instructions,9599,simonw,Also testing https://docs.readthedocs.io/en/stable/pull-requests.html,2022-07-27T17:38:36Z,2022-08-27T03:55:52Z,2022-07-27T17:57:50Z,2022-07-27T17:57:50Z,77ca051d4f5ddbd42fd6250749efac7ea85ea094,,,8355157,3.29,0,80b3907471f724aeecae75796663815c87731e77,9e6cceac1c0e086429e2d308b700e59cc53a1991,OWNER,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/457,,, 1015320511,PR_kwDOCGYnMM48hI-_,460,closed,0,Cross-link CLI to Python docs,9599,simonw,"Work in progress, partly to test the ReadTheDocs preview link action. Refs: - #426 ---- :books: Documentation preview :books:: https://readthedocs-preview--460.org.readthedocs.build/en/460/ ",2022-08-02T16:18:28Z,2022-08-18T21:58:10Z,2022-08-18T21:58:07Z,2022-08-18T21:58:07Z,f4fb78fa95057fbc86c734020835a3155695297f,,,,,0,f21f4ccf7197e7a0ac8c2eb5086659fc3eb5bc05,1856002e3c0fcc9f09f72ab7d97ad8c75f6de7df,OWNER,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/460,,, 1015591301,PR_kwDOCGYnMM48iLGF,462,closed,0,Discord badge,9599,simonw,"Also testing fix for: - https://github.com/readthedocs/readthedocs-preview/issues/10 ---- :books: Documentation preview :books:: https://sqlite-utils--462.org.readthedocs.build/en/462/ ",2022-08-02T20:56:04Z,2022-08-02T21:15:57Z,2022-08-02T21:15:52Z,2022-08-02T21:15:52Z,271433fdd18e436b0a527ab899cb6f6fa67f23d0,,,,,0,0a14a031385f2647be0b9d15d96c1d44d05c2296,98a28cbfe6cea67f6334b42b74f35b0ddd309561,OWNER,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/462,,, 1022524090,PR_kwDOBm6k_c488nq6,1778,closed,0,Use Read the Docs action v1,244656,humitos,"Read the Docs repository was renamed from `readthedocs/readthedocs-preview` to `readthedocs/actions/`. Now, the `preview` action is under `readthedocs/actions/preview` and is tagged as `v1` ---- :books: Documentation preview :books:: https://datasette--1778.org.readthedocs.build/en/1778/ ",2022-08-10T10:30:50Z,2022-08-20T00:04:17Z,2022-08-20T00:04:17Z,2022-08-20T00:04:17Z,663ac431fe7202c85967568d82b2034f92b9aa43,,,,,0,003ac653b0bbd9dd30f0f7855e6ecfc9a045d486,8cfc72336878dd846d149658e99cc598e835b661,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1778,,, 1022525059,PR_kwDOCGYnMM488n6D,463,closed,0,Use Read the Docs action v1,244656,humitos,"Read the Docs repository was renamed from `readthedocs/readthedocs-preview` to `readthedocs/actions/`. Now, the `preview` action is under `readthedocs/actions/preview` and is tagged as `v1` ---- :books: Documentation preview :books:: https://sqlite-utils--463.org.readthedocs.build/en/463/ ",2022-08-10T10:31:47Z,2022-08-18T08:30:14Z,2022-08-17T23:11:16Z,2022-08-17T23:11:16Z,83e7339255e811c62e6db8498c483c44a84d0f28,,,,,0,364110b97bd1c6e0d2bc841730e5dc1a595e537d,271433fdd18e436b0a527ab899cb6f6fa67f23d0,CONTRIBUTOR,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/463,,, 1029360106,PR_kwDOCGYnMM49Wsnq,465,closed,0,beanbag-docutils>=2.0,9599,simonw,Refs #464,2022-08-17T22:41:39Z,2022-08-17T23:38:07Z,2022-08-17T23:38:02Z,2022-08-17T23:38:02Z,f8ffac8787e299a62c99ed1ce914cd5ace84ad94,,,,,0,bb90d3326815a041512b40bf0cf53b3ace06cd67,45e24deffea042b5db7ab84cd1eb63b3ed9bb9da,OWNER,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/465,,, 1029373779,PR_kwDOCGYnMM49Wv9T,466,closed,0,Use Read the Docs action v1 (#463),9599,simonw,"Read the Docs repository was renamed from `readthedocs/readthedocs-preview` to `readthedocs/actions/`. Now, the `preview` action is under `readthedocs/actions/preview` and is tagged as `v1`",2022-08-17T23:11:50Z,2022-08-17T23:11:54Z,2022-08-17T23:11:54Z,2022-08-17T23:11:54Z,bb90d3326815a041512b40bf0cf53b3ace06cd67,,,,,0,83e7339255e811c62e6db8498c483c44a84d0f28,72655adabc596a9eed43cc11c07177a390791068,OWNER,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/466,,, 1031503844,PR_kwDOBm6k_c49e3_k,1789,closed,0,Add new entrypoint option to `--load-extension`,15178711,asg017,"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!",2022-08-19T19:27:47Z,2022-08-23T18:42:52Z,2022-08-23T18:34:30Z,2022-08-23T18:34:30Z,1d64c9a8dac45b9a3452acf8e76dfadea2b0bc49,,,,,0,5a2a05f2cea7b55b1c3bb1df043c0a454eca6563,663ac431fe7202c85967568d82b2034f92b9aa43,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1789,,, 1034485141,PR_kwDOCGYnMM49qP2V,468,closed,0,"db[table].create(..., transform=True) and create-table --transform",9599,simonw,"Work in progress. Still needs documentation and tests (and to cover more cases of things that might have changed). Refs: - #467 ---- :books: Documentation preview :books:: https://sqlite-utils--468.org.readthedocs.build/en/468/ ",2022-08-23T17:27:58Z,2022-08-27T23:17:55Z,2022-08-27T23:17:55Z,2022-08-27T23:17:55Z,104f37fa4d2e7e5999c1d829267b62c737f74d3e,,,8355157,3.29,0,2f6a64f61d561df821d737719941c678dcb1a03c,c5f8a2eb1a81a18b52825cc649112f71fe419b12,OWNER,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/468,,, 1034576054,PR_kwDOBm6k_c49qmC2,1792,closed,0,Test `--load-extension` in GitHub Actions,9599,simonw,"Refs: - #1789 ---- :books: Documentation preview :books:: https://datasette--1792.org.readthedocs.build/en/1792/ ",2022-08-23T18:43:29Z,2022-08-24T00:11:46Z,2022-08-24T00:11:45Z,2022-08-24T00:11:45Z,ba35105eee2d3ba620e4f230028a02b2e2571df2,,,,,0,f61cfb77056e2ee39ae827889c005b1e44c81165,456dc155d491a009942ace71a4e1827cddc6b93d,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/1792,,, 1037685744,PR_kwDOBm6k_c492dPw,1793,closed,0,Added a useful resource,111973926,MobiWancode,"Have added a useful resource about the types of databases in SQL i.e SQLite, PostgreSQL, MySQL &, etc from the scaler topics. ---- :books: Documentation preview :books:: https://datasette--1793.org.readthedocs.build/en/1793/ ",2022-08-26T08:41:26Z,2022-09-06T00:41:25Z,2022-09-06T00:41:24Z,,40c948ac58afa155bbceaff70c43e85e58434188,,,,,0,32a9224b7e107016e5ba0fc90ff86cfafad93b2f,ba35105eee2d3ba620e4f230028a02b2e2571df2,NONE,107914493,datasette,https://github.com/simonw/datasette/pull/1793,,, 1038547954,PR_kwDOBm6k_c495vvy,1794,closed,0,fix word break in facets by adding ul.tight-bullets li word-break: break-all,128286,dmr,"I noticed that long words break the layout of facets: ![image](https://user-images.githubusercontent.com/128286/187013146-fb2bbb60-a225-441b-ba8e-b9e74fb04f93.png) So I added CSS to add a line break. This is how the result looks now: ![image](https://user-images.githubusercontent.com/128286/187013175-a706fc72-9e69-4a75-9bdf-bdaa34a0cf51.png) I don't know enough about facet edge cases to decide if this change might break other things but it looks better for me so maybe this is helpful. ---- :books: Documentation preview :books:: https://datasette--1794.org.readthedocs.build/en/1794/ ",2022-08-27T03:47:25Z,2022-09-06T00:45:41Z,2022-09-06T00:45:41Z,2022-09-06T00:45:41Z,c9d1943aede436fa3413fd49bc56335cbda4ad07,,,,,0,3b8e005a5cf15e0639b460f7d2ab71790c9b4ef5,ba35105eee2d3ba620e4f230028a02b2e2571df2,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1794,,, 1038565427,PR_kwDOCGYnMM4950Az,473,closed,0,Support entrypoints for `--load-extension`,9599,simonw,"Refs #470 ---- :books: Documentation preview :books:: https://sqlite-utils--473.org.readthedocs.build/en/473/ ",2022-08-27T05:53:59Z,2022-08-27T05:55:52Z,2022-08-27T05:55:47Z,2022-08-27T05:55:47Z,19dd077944429c1365b513d80cc71c605ae3bed3,,,,,0,72db599ae03fabe2e9f999999e258edc1a99ed59,a46a5e3a9e03dcdd8c84a92e4a5dbfa02ba461fa,OWNER,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/473,,, 1038926741,PR_kwDODtX3eM497MOV,5,open,0,The program fails when the user has no submissions,2467,fernand0,"Tested with: hacker-news-to-sqlite user hacker-news.db fernand0 Result: ` Traceback (most recent call last): File ""/home/ftricas/.pyenv/versions/3.10.6/bin/hacker-news-to-sqlite"", line 8, in sys.exit(cli()) File ""/home/ftricas/.pyenv/versions/3.10.6/lib/python3.10/site-packages/click/core.py"", line 1130, in __call__ return self.main(*args, **kwargs) File ""/home/ftricas/.pyenv/versions/3.10.6/lib/python3.10/site-packages/click/core.py"", line 1055, in main rv = self.invoke(ctx) File ""/home/ftricas/.pyenv/versions/3.10.6/lib/python3.10/site-packages/click/core.py"", line 1657, in invoke return _process_result(sub_ctx.command.invoke(sub_ctx)) File ""/home/ftricas/.pyenv/versions/3.10.6/lib/python3.10/site-packages/click/core.py"", line 1404, in invoke return ctx.invoke(self.callback, **ctx.params) File ""/home/ftricas/.pyenv/versions/3.10.6/lib/python3.10/site-packages/click/core.py"", line 760, in invoke return __callback(*args, **kwargs) File ""/home/ftricas/.pyenv/versions/3.10.6/lib/python3.10/site-packages/hacker_news_to_sqlite/cli.py"", line 27, in user submitted = user.pop(""submitted"", None) or [] AttributeError: 'NoneType' object has no attribute 'pop' ` There is a problem of style with the patch (but not sure what to do) because with the new inicialization ( submitted = []) the part or [] is not needed. Maybe there is a more adequate way of doing this.",2022-08-28T17:25:45Z,2022-08-28T17:25:45Z,,,f0d7414305fc6cba4bcb7506b76a94938ccc7886,,,,,0,ea97e640ad7a24020821fde5c647240120bd7099,c5585c103d124b23ba1e163f8857d4ba49fe452a,FIRST_TIME_CONTRIBUTOR,248903544,hacker-news-to-sqlite,https://github.com/dogsheep/hacker-news-to-sqlite/pull/5,,, 1040691996,PR_kwDOCGYnMM4-B7Mc,480,closed,0,search_sql add include_rank option,7908073,chapmanjacobd,"I haven't tested this yet but wanted to get a heads-up whether this kind of change would be useful or if I should just duplicate the function and tweak it within my code ---- :books: Documentation preview :books:: https://sqlite-utils--480.org.readthedocs.build/en/480/ ",2022-08-30T09:10:29Z,2022-08-31T03:40:35Z,2022-08-31T03:40:35Z,2022-08-31T03:40:35Z,ecf1d40112e52a8f4e509c39b98caae996b7bc36,,,,,0,3dbfca6fdd878ba381f83157fdae2042eeaed371,087753cd42c406f1e060c1822dcd9b5fda3d60f4,CONTRIBUTOR,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/480,,, 1043733712,PR_kwDOBm6k_c4-NhzQ,1797,closed,0,Bump black from 22.6.0 to 22.8.0,49699333,dependabot[bot],"Bumps [black](https://github.com/psf/black) from 22.6.0 to 22.8.0.
Release notes

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 the X-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)

Changelog

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 the X-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)

Commits
  • 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 determination
  • afed2c0 Load .gitignore and exclude regex at time of use
  • e269f44 Lazily import parallelized format modules
  • c47b91f Fix misdetection of project root with --stdin-filename (#3216)
  • Additional commits viewable in compare view

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=black&package-manager=pip&previous-version=22.6.0&new-version=22.8.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
---- :books: Documentation preview :books:: https://datasette--1797.org.readthedocs.build/en/1797/ ",2022-09-01T13:25:14Z,2022-09-05T18:51:52Z,2022-09-05T18:51:52Z,2022-09-05T18:51:52Z,294ecd45f7801971dbeef383d0c5456ee95ab839,,,,,0,84f9d32109bc92abb609b920ea4f5bef5fb558b9,51030df1869b3b574dd3584d1563415776b9cd4e,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1797,,, 1046652968,PR_kwDOBm6k_c4-Yqgo,1799,closed,0,"Update aiofiles requirement from <0.9,>=0.4 to >=0.4,<22.2",49699333,dependabot[bot],"Updates the requirements on [aiofiles](https://github.com/Tinche/aiofiles) to permit the latest version.
Commits

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
---- :books: Documentation preview :books:: https://datasette--1799.org.readthedocs.build/en/1799/ ",2022-09-05T16:13:48Z,2022-09-05T18:36:44Z,2022-09-05T18:36:43Z,,1f3d29c2db5cbd793cd6224049cb3fe1f4a74b7e,,,,,0,5abd55a273fedfb700f76b97dc88f5cc2620446e,ba35105eee2d3ba620e4f230028a02b2e2571df2,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1799,,, 1046767034,PR_kwDOBm6k_c4-ZGW6,1801,closed,0,"Don't use upper bound dependencies, refs #1800",9599,simonw,"See https://iscinumpy.dev/post/bound-version-constraints/ ---- :books: Documentation preview :books:: https://datasette--1801.org.readthedocs.build/en/1801/ ",2022-09-05T18:29:28Z,2022-09-05T18:35:41Z,2022-09-05T18:35:41Z,2022-09-05T18:35:41Z,51030df1869b3b574dd3584d1563415776b9cd4e,,,,,0,3f24edd6b29e7deff37d0e45827133fc5a9e5387,ba35105eee2d3ba620e4f230028a02b2e2571df2,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/1801,,, 1046943107,PR_kwDOBm6k_c4-ZxWD,1803,closed,0,Workaround for test failure: RuntimeError: There is no current event loop,9599,simonw,"Closes #1802 ---- :books: Documentation preview :books:: https://datasette--1803.org.readthedocs.build/en/1803/ ",2022-09-06T00:31:06Z,2022-09-06T00:40:19Z,2022-09-06T00:40:19Z,2022-09-06T00:40:19Z,64288d827f7ff97f825e10f714da3f781ecf9345,,,,,0,7b6a2b48408697905bd93504b7f5554f4a7627ef,1c29b925d300d1ee17047504473f2517767aa05b,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/1803,,, 1047561919,PR_kwDODFdgUs4-cIa_,76,open,0,Add organization support to repos command,2757699,OverkillGuy,"New --organization flag to signify all given ""usernames"" are private orgs. Adapts API URL to the organization path instead. Not the best implementation, but a first draft to talk around Fixes #75 (badly, no tests, overly vague, untested)",2022-09-06T13:21:42Z,2022-09-06T13:59:08Z,,,1514acfa87f57261547bc3d7fc4f161e34285d76,,,,,0,bb959b46e8a7647755c14dee180fdd5209451954,ace13ec3d98090d99bd71871c286a4a612c96a50,FIRST_TIME_CONTRIBUTOR,207052882,github-to-sqlite,https://github.com/dogsheep/github-to-sqlite/pull/76,,, 1050417981,PR_kwDOCGYnMM4-nBs9,486,closed,0,"progressbar for inserts/upserts of all fileformats, closes #485",99098079,MischaU8," ---- :books: Documentation preview :books:: https://sqlite-utils--486.org.readthedocs.build/en/486/ ",2022-09-08T14:58:02Z,2022-09-15T20:40:03Z,2022-09-15T20:37:51Z,2022-09-15T20:37:51Z,0b315d3fa83c1584eaeec32f24912898621e437a,,,,,0,d5db749480aaf8518e611ff55da186cadf6c63bc,d9b9e075f07a20f1137cd2e34ed5d3f1a3db4ad8,CONTRIBUTOR,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/486,,, 1058623570,PR_kwDOBm6k_c4_GVBS,1812,closed,0,Bump furo from 2022.6.21 to 2022.9.15,49699333,dependabot[bot],"Bumps [furo](https://github.com/pradyunsg/furo) from 2022.6.21 to 2022.9.15.
Changelog

Sourced 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 pages nav.
  • 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's edit-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)

Commits
  • 08e6b38 Prepare release: 2022.09.15
  • 9de7613 Update changelog
  • a064929 Tweak changelog content style
  • 46f4adc Revert "Add initial theme.conf content for eventual ablog support"
  • 45b839b Set a minimum constraint on pygments
  • a4af988 [pre-commit.ci] pre-commit autoupdate (#518)
  • a72186f [pre-commit.ci] pre-commit autoupdate (#504)
  • 9f41ee6 Add initial theme.conf content for eventual ablog support
  • 75e0361 Make numpy-style documentation headers consistent
  • 9d280e6 [pre-commit.ci] pre-commit autoupdate (#487)
  • Additional commits viewable in compare view

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=furo&package-manager=pip&previous-version=2022.6.21&new-version=2022.9.15)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
---- :books: Documentation preview :books:: https://datasette--1812.org.readthedocs.build/en/1812/ ",2022-09-16T13:10:45Z,2022-09-16T19:50:53Z,2022-09-16T19:50:52Z,2022-09-16T19:50:52Z,2ebcffe2226ece2a5a86722790d486a480338632,,,,,0,b3855e7b57d2f2354296b23e8c12df82e9af729e,b40872f5e5ae5dad331c58f75451e2d206565196,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1812,,, 1067479608,PR_kwDOBm6k_c4_oHI4,1820,closed,0,[SPIKE] Don't truncate query CSVs,536941,fgregg,"Relates to #526 This is a minimal set of changes needed for having *query* CSVs attempt to download all the rows. What's good about it is the minimalism. What's bad about it: 1. We are abusing the `_size` argument to indicate we don't want truncation, which isn't the most obvious thing. Additionally, there are various checks that make sure the ""_size"" URL parameter is a positive integer, which we are relying on to prevent overloading. 2. The default CSV on a table page will use the max_returned_rows argument. Changing this could be a breaking change, since that's currently a place that has some facilities for pagination. Additionally, i think there's a limit under the hood somewhere which if we removed could lead to sql timeouts 3. There are similar reasons for leaving the current streaming method alone, as the current methods could allow for downloading very large files that could have a sql timeout if we tried to get them in one go. ---- :books: Documentation preview :books:: https://datasette--1820.org.readthedocs.build/en/1820/ ",2022-09-26T17:27:01Z,2022-10-07T16:12:17Z,2022-10-07T16:12:17Z,,bd62037d5cdf72c06fd4d78da162cbc1526c1ab6,,,,,1,9bead2a95b74f3a2e0be2a9f1cb1f624aec22c2f,eff112498ecc499323c26612d707908831446d25,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1820,,, 1067890893,PR_kwDOBm6k_c4_prjN,1823,open,0,Keyword-only arguments for a bunch of internal methods,9599,simonw,"Refs #1822 ---- :books: Documentation preview :books:: https://datasette--1823.org.readthedocs.build/en/1823/ ",2022-09-27T00:44:59Z,2022-10-05T04:37:54Z,,,28068a62ad6a8b76a1c9223c4ca78099cfd2ece5,,,,,0,b545b6a04ed7b407331f991adce107691ac3ab97,5f9f567acbc58c9fcd88af440e68034510fb5d2b,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/1823,,, 1069033742,PR_kwDOBm6k_c4_uCkO,1825,closed,0,Add documentation for serving via OpenRC,1048831,asimpson,"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/ ",2022-09-27T19:00:56Z,2022-09-28T04:21:37Z,2022-09-28T04:21:37Z,2022-09-28T04:21:37Z,984b1df12cf19a6731889fc0665bb5f622e07b7c,,,,,0,e7e96dc2ef2b76338786f1b911a9753bb8bfc297,5f9f567acbc58c9fcd88af440e68034510fb5d2b,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1825,,, 1072698114,PR_kwDOBm6k_c4_8BMC,1827,closed,0,Bump furo from 2022.9.15 to 2022.9.29,49699333,dependabot[bot],"Bumps [furo](https://github.com/pradyunsg/furo) from 2022.9.15 to 2022.9.29.
Changelog

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 pages nav.
  • 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's edit-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)

Commits
  • 1375f9d Prepare release: 2022.09.29
  • af43607 Update changelog
  • bc0fe52 Update user-facing documentation for edit button
  • 509c558 Modernise the edit-this-page.html template
  • 5a0ceca Add source_edit_link as a theme configuration parameter (#510)
  • 52fc32f Build documentation in pull requests
  • 149f77b Fix stylesheet for MyST tables
  • 9af2e44 Support MyST table column alignment (#531)
  • 82dd61c Back to development
  • See full diff in compare view

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=furo&package-manager=pip&previous-version=2022.9.15&new-version=2022.9.29)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
---- :books: Documentation preview :books:: https://datasette--1827.org.readthedocs.build/en/1827/ ",2022-09-30T13:15:35Z,2022-09-30T17:55:42Z,2022-09-30T17:55:41Z,2022-09-30T17:55:41Z,c92c4318e9892101f75fa158410c0a12c1d80b6e,,,,,0,1f0c557ef96d3e2e7a41598af8f9dece2d3fbcfc,34defdc10aa293294ca01cfab70780755447e1d7,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1827,,, 1073492809,PR_kwDODD6af84__DNJ,14,open,0,Photo links,6782721,redmanmale,"* add to `checkin_details` view new column for a calculated photo links * supported multiple links split by newline * create `events` table if there's no events in the history to avoid SQL errors Fixes #9.",2022-10-01T09:44:15Z,2022-11-18T17:10:49Z,,,6ca283dc30a2713bd3fda0dc35df1c7186a5996e,,,,,0,5541d9496bad73c9edce98f5562a3135359d57d6,719b6e96a016d0ca8b316d3bed9c2a7a0cb499ee,FIRST_TIME_CONTRIBUTOR,205429375,swarm-to-sqlite,https://github.com/dogsheep/swarm-to-sqlite/pull/14,,, 1079437524,PR_kwDOBm6k_c5AVujU,1835,closed,0,use inspect data for hash and file size,536941,fgregg,"`inspect_data` should already include the hash and the db file size, so this PR takes advantage of using those instead of always recalculating. should help a lot on startup with large DBs. closes #1834 ",2022-10-06T18:25:24Z,2022-10-27T20:51:30Z,2022-10-06T20:06:07Z,2022-10-06T20:06:07Z,eff112498ecc499323c26612d707908831446d25,,,,,0,b4b92df38c8ca8a6faeec4daaf803cee80e0dbed,bbf33a763537a1d913180b22bd3b5fe4a5e5b252,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1835,,, 1079714826,PR_kwDOBm6k_c5AWyQK,1837,closed,0,Make hash and size a lazy property,536941,fgregg,"Many apologies, @simonw. My previous PR #1835 did not really solve the problem because the name of the database is often not known to database object in the init method. I took a cue from how you dealt with this issue and made hash a lazy property and did something similar with size. ---- :books: Documentation preview :books:: https://datasette--1837.org.readthedocs.build/en/1837/ ",2022-10-06T23:51:22Z,2022-10-27T20:51:21Z,2022-10-27T20:51:20Z,2022-10-27T20:51:20Z,b912d92b651c4f0b5137da924d135654511f0fe0,,,,,0,c12447e484036ace9a685bd04b9f0e1fa66541c8,eff112498ecc499323c26612d707908831446d25,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1837,,, 1079769381,PR_kwDOBm6k_c5AW_kl,1838,closed,0,Open Datasette link in new tab,4399499,ocdtrekkie,"This is technically a Sandstorm-specific fix (as external links do not work inside the grain frame), however, I think it is an improvement to the upstream project, so I wanted to propose it here rather than patching it in our package. There's much opinions on the Internet about whether external links should open in a new tab by default or not, but I'd argue very few people who might click a ""powered by"" link intend to complete their interaction with the source page (a Datasette). And furthermore, users may be working within various queries or loading visualizations (navigating away when trying to plot a million GPS coordinates pretty much just resets your progress!), so linking away within the tab might be a frustrating or destructive act to one's work, even inadvertently. original report: https://github.com/ocdtrekkie/datasette-sandstorm/issues/1 ---- :books: Documentation preview :books:: https://datasette--1838.org.readthedocs.build/en/1838/ ",2022-10-07T01:12:20Z,2022-10-07T16:28:41Z,2022-10-07T02:01:07Z,,9a7745ceef270893fa76a10ee70546f62d5110bd,,,,,0,7f2a3376c348e9dd9ea926ab94ae6b610194e6c1,eff112498ecc499323c26612d707908831446d25,NONE,107914493,datasette,https://github.com/simonw/datasette/pull/1838,,, 1080343782,PR_kwDOBm6k_c5AZLzm,1839,closed,0,Bump black from 22.8.0 to 22.10.0,49699333,dependabot[bot],"Bumps [black](https://github.com/psf/black) from 22.8.0 to 22.10.0.
Release notes

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

  • Vim plugin: add flag (g:black_preview) to enable/disable the preview style (#3246)
  • Update GitHub Action to support formatting of Jupyter Notebook files via a jupyter option (#3282)
  • Update GitHub Action to support use of version specifiers (e.g. <23) for Black version (#3265)
Changelog

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

  • Vim plugin: add flag (g:black_preview) to enable/disable the preview style (#3246)
  • Update GitHub Action to support formatting of Jupyter Notebook files via a jupyter option (#3282)
  • Update GitHub Action to support use of version specifiers (e.g. <23) for Black version (#3265)
Commits

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=black&package-manager=pip&previous-version=22.8.0&new-version=22.10.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
---- :books: Documentation preview :books:: https://datasette--1839.org.readthedocs.build/en/1839/ ",2022-10-07T13:13:41Z,2022-10-27T20:51:46Z,2022-10-27T20:51:45Z,2022-10-27T20:51:45Z,2c36e45447494cd7505440943367e29ec57c8e72,,,,,0,21da9bebfc4811314a49140b0c31e86b9d05009f,d2ca13b699d441a201c55cb72ff96919d3cd22bf,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1839,,, 1081550456,PR_kwDOBm6k_c5AdyZ4,1840,closed,0,test commit,102635518,7lingyuan,"lalalalalalala ---- :books: Documentation preview :books:: https://datasette--1840.org.readthedocs.build/en/1840/ ",2022-10-10T05:15:26Z,2022-10-10T09:11:50Z,2022-10-10T09:11:50Z,,,,,,,0,304ce7a516a0b361ae9f5f0059ce02eb675f69aa,b7fec7f9020b79c1fe60cc5a2def86b50eeb5af9,NONE,107914493,datasette,https://github.com/simonw/datasette/pull/1840,,, 1082769953,PR_kwDOCGYnMM5AicIh,498,closed,0,fix: enable-fts permanently save triggers,7908073,chapmanjacobd,"I was wondering why my all my databases were giving wild search results. Turns out create_trigger was not sticking! Running `sqlite-utils triggers x.db` shows `[]` after running `enable-fts` using the python api. Looking at the counts trigger it seems that is the right way to save triggers. triggers show up now ---- :books: Documentation preview :books:: https://sqlite-utils--498.org.readthedocs.build/en/498/ ",2022-10-11T05:10:51Z,2022-10-15T04:33:08Z,2022-10-11T06:34:31Z,,ab24d21e9c2aa9c514c3b65f05cfc0bafa7621c1,,,,,0,75577e595d9177177a48030a1c39573af010df51,d792dad1cf5f16525da81b1e162fb71d469995f3,CONTRIBUTOR,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/498,,, 1083804914,PR_kwDOCGYnMM5AmYzy,499,open,0,feat: recreate fts triggers after table transform,7908073,chapmanjacobd,"https://github.com/simonw/sqlite-utils/pull/498 ---- :books: Documentation preview :books:: https://sqlite-utils--499.org.readthedocs.build/en/499/ alternatively, `self.disable_fts()`",2022-10-11T20:35:39Z,2022-10-26T17:54:51Z,,,861c992f97a97e1b13a5bbb850944b87438e197e,,,,,0,a25e83841f2703afb08aff4589cb559ae9060776,d792dad1cf5f16525da81b1e162fb71d469995f3,CONTRIBUTOR,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/499,,, 1086765659,PR_kwDOBm6k_c5Axrpb,1842,closed,0,check_visibility can now take multiple permissions into account,9599,simonw,"Refs #1829 - [x] Fix table page - [x] Fix database page - [x] Fix query page - [x] Fix row page - [x] Tests - [x] Updated documentation for `check_visibility` method, to cover the new `permissions=` keyword argument Also this fix is currently only applied on the table page - needs to be applied on database, row and query pages too. ---- :books: Documentation preview :books:: https://datasette--1842.org.readthedocs.build/en/1842/ ",2022-10-14T00:06:04Z,2022-10-24T02:11:36Z,2022-10-24T02:11:36Z,2022-10-24T02:11:34Z,78dad236df730212aa7172f885fd8ec575f0d3ad,,,,,0,362347574e3283d637243906af7d5e028e100180,79aa0de083d38a9975915d5a4cc68ca6c74fbe3d,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/1842,,, 1102353255,PR_kwDOBm6k_c5BtJNn,1870,open,0,"don't use immutable=1, only mode=ro",536941,fgregg,"Opening db files in immutable mode sometimes leads to the file being mutated, which causes duplication in the docker image layers: see #1836, #1480 That this happens in ""immutable"" mode is surprising, because the sqlite docs say that setting this should open the database as read only. https://www.sqlite.org/c3ref/open.html > immutable: The immutable parameter is a boolean query parameter that indicates that the database file is stored on read-only media. When immutable is set, SQLite assumes that the database file cannot be changed, even by a process with higher privilege, and so the database is opened read-only and all locking and change detection is disabled. Caution: Setting the immutable property on a database file that does in fact change can result in incorrect query results and/or [SQLITE_CORRUPT](https://www.sqlite.org/rescode.html#corrupt) errors. See also: [SQLITE_IOCAP_IMMUTABLE](https://www.sqlite.org/c3ref/c_iocap_atomic.html). Perhaps this is a bug in sqlite? ---- :books: Documentation preview :books:: https://datasette--1870.org.readthedocs.build/en/1870/ ",2022-10-27T23:33:04Z,2022-10-29T00:53:43Z,,,e5a41217c8ef86bcd73042d909864ae5660c6ff0,,,,,0,4faa4fd3b3e7f5eae758b713d0a121b960e2e261,bf00b0b59b6692bdec597ac9db4e0b497c5a47b4,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1870,,, 1105985162,PR_kwDOCGYnMM5B6_6K,508,closed,0,Allow surrogates in parameters,7908073,chapmanjacobd,"closes #507 https://dwheeler.com/essays/fixing-unix-linux-filenames.html ---- :books: Documentation preview :books:: https://sqlite-utils--508.org.readthedocs.build/en/508/ ",2022-10-31T22:11:49Z,2022-11-17T15:11:16Z,2022-10-31T22:55:36Z,,3b551597240d9a6058b1c3c720073120db213678,,,,,0,43a8c4c91fc22fb6bea07846f144072b0d047f4e,529110e7d8c4a6b1bbf5fb61f2e29d72aa95a611,CONTRIBUTOR,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/508,,, 1123392399,PR_kwDOBm6k_c5C9ZuP,1893,closed,0,"Upgrade to CodeMirror 6, add SQL autocomplete",95570,bgrins,"In an effort to get closer to table / column autocomplete I took a shot at https://github.com/simonw/datasette/issues/1796. I haven't done a lot of testing but would be curious if this fixes some of the concerns raised in https://github.com/simonw/datasette/issues/1796#issue-1355148385 for example. Done: * Changed to bundling using rollup as per https://codemirror.net/examples/bundle/ * Restored a fromTextArea-like function from https://codemirror.net/docs/migration/ * Removed old JS and CSS files (no external CSS needed anymore as per https://codemirror.net/examples/styling/) * Updated instructions for building the bundle Not done: * cmResize had an error, so commented out the resize handle * Add extraKeys option for shift+enter and tab ---- :books: Documentation preview :books:: https://datasette--1893.org.readthedocs.build/en/1893/ ",2022-11-15T20:52:35Z,2022-11-16T23:54:02Z,2022-11-16T23:49:06Z,2022-11-16T23:49:06Z,ae11fa5887e03376704c22e5d0969c1e0642d8d8,,,,,0,f254be4b38936e95e7a7f25866e7c6b0520db96f,6f610e1d94b7b8ec605b5b7fcb01537f6adf9c5b,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1893,,, 1125261188,PR_kwDOBm6k_c5DEh-E,1898,closed,0,Use DOMContentLoaded instead of load event for CodeMirror initialization,95570,bgrins," Closes #1894 ---- :books: Documentation preview :books:: https://datasette--1898.org.readthedocs.build/en/1898/ ",2022-11-17T00:19:21Z,2022-11-18T07:29:01Z,2022-11-18T07:29:01Z,2022-11-18T07:29:01Z,3ecd131e57add427d847b614c920c9624bb2e66b,,,,,0,5eb4ea45ce6cdc7003fc7c5175977b025b0f111e,00e233d7a7f6443cb95fb5227c23580c48551cad,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1898,,, 1136499802,PR_kwDOCGYnMM5DvZxa,515,closed,0,"upsert new rows with constraints, fixes #514",193185,cldellow,"This fixes #514 by making the initial insert for upserts include all columns, so that new rows can be added to tables with non-pkey columns that have constraints. (aside: I'm not a python programmer. `pip`? `pipenv`? `venv`? These are mystical incantations to me. The process to set up this repo for local development and testing was _so easy_. Thank you for the excellent contributing documentation!) ---- :books: Documentation preview :books:: https://sqlite-utils--515.org.readthedocs.build/en/515/ ",2022-11-26T16:15:21Z,2023-05-08T21:27:11Z,2023-05-08T21:27:10Z,,c3713ef6944cbeacf36e462712cecac2176db692,,,,,0,32f8173a8fe830c224e39a0a514cd12e78de7028,965ca0d5f5bffe06cc02cd7741344d1ddddf9d56,NONE,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/515,,, 1139440836,PR_kwDOBm6k_c5D6nzE,1912,closed,0,Merge 1.0-dev (with initial write API) back into main,9599,simonw,"See: - #1892 ---- :books: Documentation preview :books:: https://datasette--1912.org.readthedocs.build/en/1912/ ",2022-11-29T19:31:21Z,2022-11-29T19:39:37Z,2022-11-29T19:39:36Z,2022-11-29T19:39:36Z,07aad511769da9242260c850e8d975cbd8c29552,,,,,0,b8fc8e2cd755b9cfc66838bdc1ca9ee87afdce8a,21f8aab53164a4f096737743d8cc624d2186327a,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/1912,,, 1143946542,PR_kwDOBm6k_c5ELz0u,1930,closed,0,Typo in JSON API `Updating a row` documentation,3556,davidbgk," ---- :books: Documentation preview :books:: https://datasette--1930.org.readthedocs.build/en/1930/ ",2022-12-03T02:22:31Z,2022-12-08T21:12:35Z,2022-12-08T21:12:35Z,2022-12-08T21:12:35Z,e539c1c024bc62d88df91d9107cbe37e7f0fe55f,,,,,0,9928ff17b47443f6b51e570ae6116fd472756096,cab5b60e09e94aca820dbec5308446a88c99ea3d,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1930,,, 1144085408,PR_kwDOBm6k_c5EMVug,1931,closed,0,/db/table/-/upsert,9599,simonw,"Refs #1878 Still todo: - [x] Support `""return"": true` properly for upserts (with tests) - [x] Require both `insert-row` and `update-row` permissions - [x] Tests are going to need to cover both rowid-only and compound primary key tables, including all of the error states - [x] Documentation ---- :books: Documentation preview :books:: https://datasette--1931.org.readthedocs.build/en/1931/ ",2022-12-03T07:01:44Z,2022-12-08T01:12:17Z,2022-12-08T01:12:16Z,2022-12-08T01:12:16Z,272982e8a6f45700ff93c3917b4688a86de0e672,,,8711695, Datasette 1.0a2,0,7cd6fd9f76913196d4f99a194a30e406f33aa363,93ababe6f7150454d2cf278dae08569e505d2a5b,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/1931,,, 1151526508,PR_kwDOBm6k_c5EouZs,1935,closed,0,Bump furo from 2022.9.29 to 2022.12.7,49699333,dependabot[bot],"Bumps [furo](https://github.com/pradyunsg/furo) from 2022.9.29 to 2022.12.7.
Changelog

Sourced 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 pages nav.
  • 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)

Commits

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=furo&package-manager=pip&previous-version=2022.9.29&new-version=2022.12.7)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
---- :books: Documentation preview :books:: https://datasette--1935.org.readthedocs.build/en/1935/ ",2022-12-07T13:02:57Z,2022-12-08T21:12:08Z,2022-12-08T21:12:07Z,2022-12-08T21:12:07Z,bffefc7db0c25acb03e3b44ff357d50bb7f04dd7,,,,,0,e8ae41e27c5ec3b0738deb536fc206bd4b9ce823,93ababe6f7150454d2cf278dae08569e505d2a5b,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1935,,, 1154884166,PR_kwDOBm6k_c5E1iJG,1938,closed,0,"""permissions"" blocks in metadata.json/yaml",9599,simonw,"Refs #1636 - [x] Documentation - [ ] Implementation - [ ] Validate metadata to check there are no nonsensical permissions (like `debug-menu` set at the table level) - [ ] Tests ---- :books: Documentation preview :books:: https://datasette--1938.org.readthedocs.build/en/1938/ ",2022-12-08T22:07:36Z,2022-12-13T05:23:19Z,2022-12-13T05:23:18Z,,271ea3ae0c858de2d392b61a1a4a9f5837cbddf8,,,8711695, Datasette 1.0a2,0,6e35a6b4f7ea9ba3fb6f02f45452eeb41de69786,e539c1c024bc62d88df91d9107cbe37e7f0fe55f,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/1938,,, 1155365505,PR_kwDOBm6k_c5E3XqB,1940,closed,0,register_permissions() plugin hook,9599,simonw,"Refs #1939 From this comment: https://github.com/simonw/datasette/issues/1939#issuecomment-1343872168 - [x] Unit test for the registration plugin hook itself - [x] Use them in `check_permission_actions_are_documented` test in `conftest.py` - [x] Add description field to `Permissions` (and update tests and docs) - [x] Documentation for `datasette.permissions` dictionary - [x] If no `default=` provided in call to `permission_allowed()` then use default from `datasette.permissions` list - [x] Remove `default=` from a bunch of places - [x] Throw an error if two permissions are registered with the same name or abbreviation (but other attributes differ) - [x] Update authentication and permissions documentation to explain that permissions are now registered and have a registered default ---- :books: Documentation preview :books:: https://datasette--1940.org.readthedocs.build/en/1940/ ",2022-12-09T05:09:28Z,2022-12-13T02:05:55Z,2022-12-13T02:05:54Z,2022-12-13T02:05:54Z,8bf06a76b51bc9ace7cf72cf0cca8f1da7704ea7,,,8711695, Datasette 1.0a2,0,94e5c75397a96b86a3349123808cd02cb20f7440,e539c1c024bc62d88df91d9107cbe37e7f0fe55f,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/1940,,, 1160815750,PR_kwDOBm6k_c5FMKSG,1944,closed,0,Bump black from 22.10.0 to 22.12.0,49699333,dependabot[bot],"Bumps [black](https://github.com/psf/black) from 22.10.0 to 22.12.0.
Release notes

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)
Changelog

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)
Commits
  • 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)
  • Additional commits viewable in compare view

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=black&package-manager=pip&previous-version=22.10.0&new-version=22.12.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
",2022-12-12T13:05:11Z,2022-12-13T05:23:31Z,2022-12-13T05:23:30Z,2022-12-13T05:23:30Z,d4b98d3924dec625a99236e65b1b169ff957381f,,,,,0,ac7a52436638ae85f1db0556a382845863546b3d,e539c1c024bc62d88df91d9107cbe37e7f0fe55f,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1944,,, 1167432070,PR_kwDOBm6k_c5FlZmG,1960,closed,0,Port as many tests as possible to async def tests against ds_client,9599,simonw,"Refs: - #1959 ---- :books: Documentation preview :books:: https://datasette--1960.org.readthedocs.build/en/1960/ ",2022-12-15T21:45:53Z,2022-12-17T21:47:56Z,2022-12-17T21:47:55Z,2022-12-17T21:47:55Z,89cffcf14cda830871c8ee81742eaa1e2dff017b,,,,,0,f42bca8fc2657cecde05eca644c28fac7c28101f,0b68996cc511b3a801f0cd0157bd66332d75f46f,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/1960,,, 1167644140,PR_kwDOBm6k_c5FmNXs,1961,closed,0,Use click.echo() instead of print() for --root option,9599,simonw,"This ensures the URL is output correctly when running under Docker. Closes #1958 ---- :books: Documentation preview :books:: https://datasette--1961.org.readthedocs.build/en/1961/ ",2022-12-16T00:54:56Z,2022-12-16T00:55:19Z,2022-12-16T00:55:18Z,2022-12-16T00:55:18Z,013496862f4d4b441ab61255242b838b24287607,,,,,0,06d20c792f8c872118edd84973308fb3e5137b5e,0b68996cc511b3a801f0cd0157bd66332d75f46f,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/1961,,, 1169793638,PR_kwDOBm6k_c5FuaJm,1965,closed,0,Detect server start/stop more reliably.,11321,janl,"This is useful, especially in testing, since your test hosts might not reliabliy start the server within two seconds, so we do a definite check before progressing. By the same token, after `kill $server_pid` wait for the pid to be gone from the process list. Since now the script can end prematurely, I also added a cleanup function to make sure the temporary certs are removed in any case. n.b. this could also be done with the use of `trap 'fn' ERR` but that felt like a bit too much magic for this short a script. ---- :books: Documentation preview :books:: https://datasette--1965.org.readthedocs.build/en/1965/ ",2022-12-18T10:03:42Z,2022-12-20T19:08:26Z,2022-12-18T16:01:51Z,2022-12-18T16:01:51Z,e03aed00026cc2e59c09ca41f69a247e1a85cc89,,,,,0,6a58fc71d481d27ef28a75b026b47713ca88eeec,a21c00b54dd6e0ecb17c60024fb1b55729c5d21e,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1965,,, 1170816476,PR_kwDOBm6k_c5FyT3c,1967,closed,0,Add favicon to documentation,1839645,choldgraf,"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`. ",2022-12-19T14:01:04Z,2022-12-31T19:15:51Z,2022-12-31T19:00:31Z,2022-12-31T19:00:31Z,994ce46ed4a5d680bee58242efd95181946c25e9,,,,,0,ac64f6fe6aeb1941d01f862999a8b9d4e95f4991,e03aed00026cc2e59c09ca41f69a247e1a85cc89,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1967,,, 1173049178,PR_kwDOCGYnMM5F609a,519,closed,0,Fixes breaking DEFAULT values,13819005,rhoboro,"Fixes #509, Fixes #336 Thanks for the great library! I fixed a bug that `sqlite-utils transform` breaks DEFAULT values. All tests already present passed with no changes, and I added some tests for this PR. In #509 case, fixed here. ```shell $ sqlite3 test.db << EOF CREATE TABLE mytable ( col1 TEXT DEFAULT 'foo', col2 TEXT DEFAULT (STRFTIME('%Y-%m-%d %H:%M:%f', 'NOW')) ) EOF $ sqlite3 test.db ""SELECT sql FROM sqlite_master WHERE name = 'mytable';"" CREATE TABLE mytable ( col1 TEXT DEFAULT 'foo', col2 TEXT DEFAULT (STRFTIME('%Y-%m-%d %H:%M:%f', 'NOW')) ) $ sqlite3 test.db ""INSERT INTO mytable DEFAULT VALUES; SELECT * FROM mytable;"" foo|2022-12-21 01:15:39.669 $ sqlite-utils transform test.db mytable --rename col1 renamedcol1 $ sqlite3 test.db ""SELECT sql FROM sqlite_master WHERE name = 'mytable';"" CREATE TABLE ""mytable"" ( [renamedcol1] TEXT DEFAULT 'foo', [col2] TEXT DEFAULT (STRFTIME('%Y-%m-%d %H:%M:%f', 'NOW')) # ← Non-String Value ) $ sqlite3 test.db ""INSERT INTO mytable DEFAULT VALUES; SELECT * FROM mytable;"" foo|2022-12-21 01:15:39.669 foo|2022-12-21 01:15:56.432 ``` And #336 case also fixed. Special values are described [here](https://www.sqlite.org/lang_createtable.html). > 3.2. The DEFAULT clause > ... A default value may also be one of the special case-independent keywords CURRENT_TIME, CURRENT_DATE or CURRENT_TIMESTAMP. ```shell $ echo 'create table bar (baz text, created_at timestamp default CURRENT_TIMESTAMP)' | sqlite3 foo.db $ sqlite3 foo.db SQLite version 3.39.5 2022-10-14 20:58:05 Enter "".help"" for usage hints. sqlite> .schema bar CREATE TABLE bar (baz text, created_at timestamp default CURRENT_TIMESTAMP); sqlite> .exit $ sqlite-utils transform foo.db bar --column-order baz $ sqlite3 foo.db SQLite version 3.39.5 2022-10-14 20:58:05 Enter "".help"" for usage hints. sqlite> .schema bar CREATE TABLE IF NOT EXISTS ""bar"" ( [baz] TEXT, [created_at] FLOAT DEFAULT CURRENT_TIMESTAMP ); sqlite> .exit $ sqlite-utils transform foo.db bar --column-order baz $ sqlite3 foo.db SQLite version 3.39.5 2022-10-14 20:58:05 Enter "".help"" for usage hints. sqlite> .schema bar CREATE TABLE IF NOT EXISTS ""bar"" ( [baz] TEXT, [created_at] FLOAT DEFAULT CURRENT_TIMESTAMP # ← Non-String Value ); ``` ---- :books: Documentation preview :books:: https://sqlite-utils--519.org.readthedocs.build/en/519/ ",2022-12-21T01:27:52Z,2023-05-08T21:13:37Z,2023-05-08T21:13:37Z,2023-05-08T21:13:37Z,6500fed8b2085869b9714ce3a08c30f61dc829ad,,,,,0,5e5c262fab69eb3c470afa57fc52d3d7d8beee7a,fc221f9b62ed8624b1d2098e564f525c84497969,CONTRIBUTOR,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/519,,, 1179812287,PR_kwDODEm0Qs5GUoG_,67,open,0,Add support for app-only bearer tokens,26161409,sometimes-i-send-pull-requests,"Previously, twitter-to-sqlite only supported OAuth1 authentication, and the token must be on behalf of a user. However, Twitter also supports application-only bearer tokens, documented here: https://developer.twitter.com/en/docs/authentication/oauth-2-0/bearer-tokens This PR adds support to twitter-to-sqlite for using application-only bearer tokens. To use, the auth.json file just needs to contain a ""bearer_token"" key instead of ""api_key"", ""api_secret_key"", etc.",2022-12-28T23:31:20Z,2022-12-28T23:31:20Z,,,7825cd68047088cbdc9666586f1af9b7e1fa88c2,,,,,0,52050d06eeb85f3183b086944b7b75ae758096cd,f09d611782a8372cfb002792dfa727325afb4db6,FIRST_TIME_CONTRIBUTOR,206156866,twitter-to-sqlite,https://github.com/dogsheep/twitter-to-sqlite/pull/67,,, 1179812491,PR_kwDODEm0Qs5GUoKL,68,open,0,Archive: Import mute table,26161409,sometimes-i-send-pull-requests,,2022-12-28T23:32:06Z,2022-12-28T23:32:06Z,,,47d4d3bda6d4123f58d8dbd634f9f146d97b037e,,,,,0,e1cd68ea0244c4689a3c49799c6b24371cdc4978,f09d611782a8372cfb002792dfa727325afb4db6,FIRST_TIME_CONTRIBUTOR,206156866,twitter-to-sqlite,https://github.com/dogsheep/twitter-to-sqlite/pull/68,,, 1179812620,PR_kwDODEm0Qs5GUoMM,69,open,0,Archive: Import new tweets table name,26161409,sometimes-i-send-pull-requests,"Given the code here, it seems like in the past this file was named ""tweet.js"". In recent exports, it's named ""tweets.js"". The archive importer needs to be modified to take this into account. Existing logic is reused for importing this table. (However, the resulting table name will be different, matching the different file name -- archive_tweets, rather than archive_tweet).",2022-12-28T23:32:44Z,2022-12-28T23:32:44Z,,,1a8c02a8d349c8fd4074139a6a3eed552676bdf3,,,,,0,11e8fa64ca30cebde047a4268e65f376c42e2b60,f09d611782a8372cfb002792dfa727325afb4db6,FIRST_TIME_CONTRIBUTOR,206156866,twitter-to-sqlite,https://github.com/dogsheep/twitter-to-sqlite/pull/69,,, 1179812730,PR_kwDODEm0Qs5GUoN6,70,open,0,Archive: Import Twitter Circle data,26161409,sometimes-i-send-pull-requests,,2022-12-28T23:33:09Z,2022-12-28T23:33:09Z,,,1d2683101571550adf4a3b7bdf8e9ffbd8b77b61,,,,,0,cc80cb31a9afb9a50295d6202f509e5b500607a0,f09d611782a8372cfb002792dfa727325afb4db6,FIRST_TIME_CONTRIBUTOR,206156866,twitter-to-sqlite,https://github.com/dogsheep/twitter-to-sqlite/pull/70,,, 1179812838,PR_kwDODEm0Qs5GUoPm,71,open,0,"Archive: Fix ""ni devices"" typo in importer",26161409,sometimes-i-send-pull-requests,,2022-12-28T23:33:31Z,2022-12-28T23:33:31Z,,,7905dbd6e36bcabcfd9106c70ebb36ecf9e38260,,,,,0,0d3c62e8ba6e545785069cc0ffc8dc1bad03db80,f09d611782a8372cfb002792dfa727325afb4db6,FIRST_TIME_CONTRIBUTOR,206156866,twitter-to-sqlite,https://github.com/dogsheep/twitter-to-sqlite/pull/71,,, 1182000455,PR_kwDOC8tyDs5Gc-VH,23,open,0,Include workout statistics,2129,badboy,"Not sure when this changed (iOS 16 maybe?), but the `WorkoutStatistics` now has a whole bunch of information about workouts, e.g. for runs it contains the distance (as a `` element). Adding it as another column at leat allows me to pull these out (using SQLite's JSON support). I'm running with this patch on my own data now.",2023-01-01T17:29:56Z,2023-01-01T17:29:57Z,,,e0ad45055f363810085119f26df87a6804451056,,,,,0,d5b9e3609961515cc52bcc5ef070e3b83b473339,9fe3cb17e03d6c73222b63e643638cf951567c4c,FIRST_TIME_CONTRIBUTOR,197882382,healthkit-to-sqlite,https://github.com/dogsheep/healthkit-to-sqlite/pull/23,,, 1182593611,PR_kwDOBm6k_c5GfPJL,1974,closed,0,Bump sphinx from 5.3.0 to 6.0.0,49699333,dependabot[bot],"Bumps [sphinx](https://github.com/sphinx-doc/sphinx) from 5.3.0 to 6.0.0.
Release notes

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

Changelog

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 the extensions list in conf.py, or call app.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 and underscore.js from the Sphinx repository_ to your static directory, and add the following to your layout.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 and c_warn_on_allowed_pre_v3. Patch by Adam Turner.

Features added

... (truncated)

Commits

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=sphinx&package-manager=pip&previous-version=5.3.0&new-version=6.0.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
---- :books: Documentation preview :books:: https://datasette--1974.org.readthedocs.build/en/1974/ ",2023-01-02T13:04:26Z,2023-01-05T13:02:42Z,2023-01-05T13:02:40Z,,302502126c106d20af29005bbd3bc7e86ca69052,,,,,0,1e213a39f9582f881c626888d704dd3f196f6ae7,572bdb5b8095bbdc5ec2aa95400055e49ea028cb,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1974,,, 1186476109,PR_kwDOBm6k_c5GuDBN,1976,closed,0,Bump sphinx from 5.3.0 to 6.1.0,49699333,dependabot[bot],"Bumps [sphinx](https://github.com/sphinx-doc/sphinx) from 5.3.0 to 6.1.0.
Release notes

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

Changelog

Sourced from sphinx's changelog.

Release 6.1.0 (released Jan 05, 2023)

Dependencies

Incompatible changes

  • #10979: gettext: Removed support for pluralisation in get_translation. This was unused and complicated other changes to sphinx.locale.

Deprecated

  • sphinx.util functions:

    • Renamed sphinx.util.typing.stringify() to sphinx.util.typing.stringify_annotation()
    • Moved sphinx.util.xmlname_checker() to sphinx.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 for typing.Optional and typing.Optional types within the Python domain and autodoc.

... (truncated)

Commits

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=sphinx&package-manager=pip&previous-version=5.3.0&new-version=6.1.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
---- :books: Documentation preview :books:: https://datasette--1976.org.readthedocs.build/en/1976/ ",2023-01-05T13:02:37Z,2023-01-06T13:02:17Z,2023-01-06T13:02:15Z,,21d3f3f92f1c902ba7acb267022b1c2b38a59bf3,,,,,0,af76abcf2e9a6645e3d85acbc0da1f69d04e377c,c41278b46f7936b4b1a8a14bf285bed82c81c609,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1976,,, 1188133959,PR_kwDOBm6k_c5G0XxH,1977,closed,0,Bump sphinx from 5.3.0 to 6.1.1,49699333,dependabot[bot],"Bumps [sphinx](https://github.com/sphinx-doc/sphinx) from 5.3.0 to 6.1.1.
Release notes

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

Changelog

Sourced from sphinx's changelog.

Release 6.1.1 (released Jan 05, 2023)

Bugs fixed

  • #11091: Fix util.nodes.apply_source_workaround for literal_block nodes with no source information in the node or the node's parents.

Release 6.1.0 (released Jan 05, 2023)

Dependencies

Incompatible changes

  • #10979: gettext: Removed support for pluralisation in get_translation. This was unused and complicated other changes to sphinx.locale.

Deprecated

  • sphinx.util functions:

    • Renamed sphinx.util.typing.stringify() to sphinx.util.typing.stringify_annotation()
    • Moved sphinx.util.xmlname_checker() to sphinx.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)

Commits

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=sphinx&package-manager=pip&previous-version=5.3.0&new-version=6.1.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
---- :books: Documentation preview :books:: https://datasette--1977.org.readthedocs.build/en/1977/ ",2023-01-06T13:02:12Z,2023-01-09T13:06:17Z,2023-01-09T13:06:14Z,,23faad99fb4d7282f6170742fa7e5ef2bbd935af,,,,,0,a4eebeecd723ed9bc5517fd2f05320c11df3d749,c41278b46f7936b4b1a8a14bf285bed82c81c609,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1977,,, 1190763280,PR_kwDOBm6k_c5G-ZsQ,1982,closed,0,Bump sphinx from 5.3.0 to 6.1.2,49699333,dependabot[bot],"Bumps [sphinx](https://github.com/sphinx-doc/sphinx) from 5.3.0 to 6.1.2.
Release notes

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

Changelog

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 name topic_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 for literal_block nodes with no source information in the node or the node's parents.

Release 6.1.0 (released Jan 05, 2023)

Dependencies

Incompatible changes

  • #10979: gettext: Removed support for pluralisation in get_translation. This was unused and complicated other changes to sphinx.locale.

Deprecated

  • sphinx.util functions:

    • Renamed sphinx.util.typing.stringify() to sphinx.util.typing.stringify_annotation()

... (truncated)

Commits

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=sphinx&package-manager=pip&previous-version=5.3.0&new-version=6.1.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
---- :books: Documentation preview :books:: https://datasette--1982.org.readthedocs.build/en/1982/ ",2023-01-09T13:06:11Z,2023-01-10T02:03:21Z,2023-01-10T02:03:19Z,,8e25eb9553a34438663c16a75d921f2ffe11b353,,,,,0,700a12848da52e1f28a892d424319364e001ed6f,7b48664d751e59222c01c97a2739d53d6363bdda,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1982,,, 1191716406,PR_kwDOBm6k_c5HCCY2,1984,closed,0,Upgrade Sphinx,9599,simonw,"Refs #1971 ---- :books: Documentation preview :books:: https://datasette--1984.org.readthedocs.build/en/1984/ ",2023-01-10T02:00:40Z,2023-01-10T02:02:33Z,2023-01-10T02:02:33Z,2023-01-10T02:02:32Z,8e7073404379d79a2d269167a12bbb58439edd39,,,,,0,0c8b3f5ca1385c804c696f1fa61c24de29ae4755,4880638f13c3a1abc53f395cde39ac848daf416d,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/1984,,, 1193778792,PR_kwDOBm6k_c5HJ55o,1986,closed,0,Bump sphinx from 6.1.2 to 6.1.3,49699333,dependabot[bot],"Bumps [sphinx](https://github.com/sphinx-doc/sphinx) from 6.1.2 to 6.1.3.
Release notes

Sourced from sphinx's releases.

v6.1.3

Changelog: https://www.sphinx-doc.org/en/master/changes.html

Changelog

Sourced from sphinx's changelog.

Release 6.1.3 (released Jan 10, 2023)

Bugs fixed

  • #11116: Reverted to previous Sphinx 5 node copying method
  • #11117: Reverted changes to parallel image processing from Sphinx 6.1.0
  • #11119: Supress ValueError in the linkcheck builder
Commits
  • 776d01e Bump to 6.1.3 final
  • a2e922a CHANGES for Sphinx 6.1.3
  • 31162a9 Handle exceptions for get_node_source and get_node_line
  • dcb4429 Restore Sphinx 5 nodes.Element copying behaviour
  • 2a7c40d Undo parallel image changes
  • 7841d3d Ignore more checks in Ruff 0.0.214
  • ddbc5b5 Bump version
  • See full diff in compare view

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=sphinx&package-manager=pip&previous-version=6.1.2&new-version=6.1.3)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
---- :books: Documentation preview :books:: https://datasette--1986.org.readthedocs.build/en/1986/ ",2023-01-11T13:02:36Z,2023-03-29T06:09:50Z,2023-03-29T06:09:49Z,2023-03-29T06:09:49Z,d52402447ea5eb5a3f084e4f85a45675d34eb4da,,,,,0,82983b6c69c687f76e1ced0a07e0d590c3a97574,848a9a420de9b50a7c862db7fb34d930835bee89,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1986,,, 1198982240,PR_kwDOBm6k_c5HdwRg,1992,closed,0,Bump blacken-docs from 1.12.1 to 1.13.0,49699333,dependabot[bot],"Bumps [blacken-docs](https://github.com/asottile/blacken-docs) from 1.12.1 to 1.13.0.
Changelog

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.

Commits

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=blacken-docs&package-manager=pip&previous-version=1.12.1&new-version=1.13.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
---- :books: Documentation preview :books:: https://datasette--1992.org.readthedocs.build/en/1992/ ",2023-01-16T13:05:05Z,2023-03-29T06:11:35Z,2023-03-29T06:11:34Z,2023-03-29T06:11:34Z,bbd5489dbc440c67c69396e7f752584a32d2cfbe,,,,,0,64dd698df1d38903a5791f876c7c01e7dd6d04f4,d52402447ea5eb5a3f084e4f85a45675d34eb4da,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1992,,, 1201985064,PR_kwDOBm6k_c5HpNYo,1996,open,0,Document custom json encoder,25778,eyeseast,"Closes #1983 All documentation here. Edits welcome. ---- :books: Documentation preview :books:: https://datasette--1996.org.readthedocs.build/en/1996/ ",2023-01-18T16:54:14Z,2023-01-19T12:55:57Z,,,0dba13b7c2d434710b794b86c6686cce1d3699d2,,,,,0,96b8b7f1ecf3abaec5921aaedee251e36eed5339,6a352e99ab988dbf8fd22a100049caa6ad33f1ec,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/1996,,, 1212277427,PR_kwDOBm6k_c5IQeKz,1999,closed,0,?_extra= support (draft),9599,simonw,"Refs: - #262 ---- :books: Documentation preview :books:: https://datasette--1999.org.readthedocs.build/en/1999/ ",2023-01-21T04:55:18Z,2023-03-22T22:49:41Z,2023-03-22T22:49:40Z,2023-03-22T22:49:40Z,d97e82df3c8a3f2e97038d7080167be9bb74a68d,,,,,0,69a31cd5b61f0b62938efdeec5972090f1a1a508,56b0758a5fbf85d01ff80a40c9b028469d7bb65f,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/1999,,, 1215742203,PR_kwDOBm6k_c5IdsD7,2003,open,0,Show referring tables and rows when the referring foreign key is compound,536941,fgregg,"sqlite foreign keys can be compound, but that is not as well supported by datasette as single column foreign keys. in particular, 1. in a table view, there is not a link from the row to the referenced row if the foreign key is compound 2. in a row view, there is no listing of tables and rows that refer to the focal row if those referencing foreign keys are compound. Both of these issues are discussed in #1099. This PR only fixes the second one, because it's not clear what the right UX is for the first issue. ![Screenshot 2023-01-24 at 19-47-40 nlrb bargaining_unit](https://user-images.githubusercontent.com/536941/214454749-d53deead-4151-4329-a5d4-8a7a454de7d3.png) Some things that might not be desirable about this approach. 1. it changes the external API, by changing `column` => `columns` and `other_column` => `other_columns` (see inline comment for more discussion. 2. There are various places where the plural foreign keys have to be checked for length and discarded or transformed to singular. ",2023-01-24T21:31:31Z,2023-01-25T18:44:42Z,,,fb3abeceb2785a582d2c120c7c1bf7dc3cd1de05,,,,,0,1e5b42f9d6490926300953837cbaa571ef81d772,e4ebef082de90db4e1b8527abc0d582b7ae0bc9d,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/2003,,, 1216059840,PR_kwDOBm6k_c5Ie5nA,2004,open,0,"use single quotes for string literals, fixes #2001",193185,cldellow,"This modernizes some uses of double quotes for string literals to use only single quotes, fixes simonw/datasette#2001 While developing it, I manually enabled the stricter mode by using the code snippet at https://gist.github.com/cldellow/85bba507c314b127f85563869cd94820 I think that code snippet isn't generally safe/portable, so I haven't tried to automate it in the tests. ---- :books: Documentation preview :books:: https://datasette--2004.org.readthedocs.build/en/2004/ ",2023-01-25T05:08:45Z,2023-02-01T06:37:18Z,,,b1d355dad63a0f97761c2e67f24673a781cfef9a,,,,,0,dca7634c274e71fae0d95ea4ff1dfd987b9af63c,e4ebef082de90db4e1b8527abc0d582b7ae0bc9d,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/2004,,, 1220379312,PR_kwDOBm6k_c5IvYKw,2008,open,0,array facet: don't materialize unnecessary columns,193185,cldellow,"The presence of `inner.*` causes SQLite to materialize a row with all the columns. Those columns will be discarded later. Instead, we can select only the column we'll use. This lets SQLite's optimizer realize that the other columns in the CTE definition aren't needed. On a test table with 278K rows, 98K of which had an array, this speeds up the facet calculation from 4 sec to 1 sec. ---- :books: Documentation preview :books:: https://datasette--2008.org.readthedocs.build/en/2008/ ",2023-01-28T19:33:40Z,2023-01-29T18:17:40Z,,,0eda5a57ead9bda8be4c9e5cd2fdb9f22e69222e,,,,,0,f529a3001d35a114d2e622dcc7913c4c25a95ed8,0b4a28691468b5c758df74fa1d72a823813c96bf,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/2008,,, 1224851890,PR_kwDOBm6k_c5JAcGy,2014,closed,0,Bump black from 22.12.0 to 23.1.0,49699333,dependabot[bot],"Bumps [black](https://github.com/psf/black) from 22.12.0 to 23.1.0.
Release notes

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)

Changelog

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)

Commits
  • 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)
  • Additional commits viewable in compare view

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=black&package-manager=pip&previous-version=22.12.0&new-version=23.1.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
---- :books: Documentation preview :books:: https://datasette--2014.org.readthedocs.build/en/2014/ ",2023-02-01T13:06:16Z,2023-03-29T06:09:14Z,2023-03-29T06:09:12Z,,38f5695c85ee073f2405dfe89d6ff798b01222f8,,,,,0,c631684bc7bde78f77a564b337d2e2e6e87cfa7e,0b4a28691468b5c758df74fa1d72a823813c96bf,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/2014,,, 1234321667,PR_kwDOCGYnMM5JkkED,526,closed,0,Fix repeated calls to `Table.convert()`,167893,mcarpenter,"Fixes #525. All tests pass. There's perhaps a better way to name lambdas? There could be a collision if a caller passes a function with name like `lambda_123456`. SQLite [documentation](https://www.sqlite.org/appfunc.html) is a little, ah, lite on function name specs. If there is a character that can be used in place of underscore in a SQLite function name that is not permitted in a Python function identifier then that could be a good way to prevent accidental collisions. (I tried dash, colon, dot, no joy). Otherwise, there is little chance of this happening and if it should happen the risk is mitigated by now throwing an exception in the case of a (name, arity) collision without `replace=True`. ---- :books: Documentation preview :books:: https://sqlite-utils--526.org.readthedocs.build/en/526/ ",2023-02-09T00:14:49Z,2023-05-08T21:56:05Z,2023-05-08T21:53:58Z,2023-05-08T21:53:58Z,02f5c4d69d7b4baebde015c56e5bc62923f33314,,,,,0,486e0cc1cd67e98c22d1f125403144cdedfa3d58,fc221f9b62ed8624b1d2098e564f525c84497969,CONTRIBUTOR,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/526,,, 1235909998,PR_kwDOCGYnMM5Jqn1u,528,closed,0,Enable `Table.convert()` on falsey values,167893,mcarpenter,"Fixes #527 ---- :books: Documentation preview :books:: https://sqlite-utils--528.org.readthedocs.build/en/528/ ",2023-02-10T00:04:09Z,2023-05-08T21:08:23Z,2023-05-08T21:08:23Z,,279fb2c85c6b3fc7b593aaf4245bd3a038bff5f0,,,,,0,a09df3844ab91b70cebb7b888fc07cb21dffd01c,fc221f9b62ed8624b1d2098e564f525c84497969,CONTRIBUTOR,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/528,,, 1238017010,PR_kwDOBm6k_c5JyqPy,2025,open,0,Add database metadata to index.html template context,9993,palewire,"Fixes #2016 ---- :books: Documentation preview :books:: https://datasette--2025.org.readthedocs.build/en/2025/ ",2023-02-12T11:16:58Z,2023-02-12T11:17:14Z,,,a66d3976028cfec906ea04acec2910a178fa8842,,,,,0,912ed9de92d1bb9a28f50a2e08c5e7df2b827c15,0b4a28691468b5c758df74fa1d72a823813c96bf,FIRST_TIME_CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/2025,,, 1243080434,PR_kwDOBm6k_c5KF-by,2026,open,0,Avoid repeating primary key columns if included in _col args,8513,runderwood,"...while maintaining given order. Fixes #1975 (if I'm understanding correctly). ---- :books: Documentation preview :books:: https://datasette--2026.org.readthedocs.build/en/2026/ ",2023-02-16T04:16:25Z,2023-02-16T04:16:41Z,,,ad2bfc72186e7af2244a6f27e02754f4c2f64910,,,,,0,f15adf1d6211e05250e5492826dd3f8e8e328077,0b4a28691468b5c758df74fa1d72a823813c96bf,FIRST_TIME_CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/2026,,, 1246416723,PR_kwDOBm6k_c5KSs9T,2028,closed,0,add Python 3.11 classifier,614233,dtrodrigues,"Python 3.11 is tested in CI and is used in the docker image, so add the Python 3.11 Trove classifier. ---- :books: Documentation preview :books:: https://datasette--2028.org.readthedocs.build/en/2028/ ",2023-02-19T20:16:03Z,2023-03-06T21:01:20Z,2023-03-06T21:01:19Z,2023-03-06T21:01:19Z,a53b893c46453f35decc8c145c138671cee6140c,,,,,0,a8dde133f996099be9bc927c013d853dd10cd54f,0b4a28691468b5c758df74fa1d72a823813c96bf,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/2028,,, 1259276997,PR_kwDOBm6k_c5LDwrF,2031,open,0,Expand foreign key references in row view as well,82332573,tmcl-it,"Unlike the table view, the single row view does not resolve foreign key references into labels. This patch extracts the foreign key reference expansion code from TableView.data() into a standalone function that is then called by both TableView.data() and RowView.data(). ---- :books: Documentation preview :books:: https://datasette--2031.org.readthedocs.build/en/2031/ ",2023-03-01T18:43:09Z,2023-03-24T18:35:25Z,,,4ddeb77ab84dfd9b6cbafd2e233f344de68917fa,,,,,0,ef25867492ce6eb69492aa37fcde98936a95365c,3feed1f66e2b746f349ee56970a62246a18bb164,FIRST_TIME_CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/2031,,, 1266742462,PR_kwDOBm6k_c5LgPS-,2034,open,0,remove an unused `app` var in cli.py,4370201,wenhoujx,"this var `app` isn't actually used? unless init it does some side-effect outside of the event loop, idon't think it's necessary. Feel free to ignore this PR if the deleted line actually does something. ---- :books: Documentation preview :books:: https://datasette--2034.org.readthedocs.build/en/2034/ ",2023-03-07T18:19:05Z,2023-03-29T20:56:20Z,,,18da9ae95a86c4191b1e20d74c50c8ac89312447,,,,,0,28239c5bed362f2b9ee9e780bf23e5f31b680b5d,1ad92a1d87d79084ebe524ed186c900ff042328c,FIRST_TIME_CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/2034,,, 1272169404,PR_kwDOCGYnMM5L08O8,531,closed,0,Add paths for homebrew on Apple silicon,25778,eyeseast,"This also passes in the extension path when specified in GIS methods. Wherever we know an extension path, we use `db.init_spatialite(find_spatialite() or load_extension)`. ---- :books: Documentation preview :books:: https://sqlite-utils--531.org.readthedocs.build/en/531/ ",2023-03-11T22:27:52Z,2023-04-09T01:49:44Z,2023-04-09T01:49:43Z,,24f3eb082b98b8d676bab2eab4f763cd9b50fe96,,,,,0,afdf6187716b19fce8692f6887a1d45c85477fee,c0251cc9271260de73b4227859a51fab9b4cb745,CONTRIBUTOR,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/531,,, 1289104584,PR_kwDOBm6k_c5M1izI,2043,closed,0,Bump furo from 2022.12.7 to 2023.3.23,49699333,dependabot[bot],"Bumps [furo](https://github.com/pradyunsg/furo) from 2022.12.7 to 2023.3.23.
Changelog

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 pages nav.
  • Make numpy-style documentation headers consistent.
  • Retitle the reference section.
  • Update npm dependencies.

... (truncated)

Commits

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=furo&package-manager=pip&previous-version=2022.12.7&new-version=2023.3.23)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
---- :books: Documentation preview :books:: https://datasette--2043.org.readthedocs.build/en/2043/ ",2023-03-24T13:58:08Z,2023-03-28T13:58:24Z,2023-03-28T13:58:21Z,,eb0601c965ebb12162c76259d89fb9fe6549bcc0,,,,,0,85b9e5139980b0e802b6f0bcfaa2f7c975c30970,3feed1f66e2b746f349ee56970a62246a18bb164,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/2043,,, 1289476973,PR_kwDOBm6k_c5M29tt,2044,open,0,Expand labels in row view as well (patch for 0.64.x branch),82332573,tmcl-it,"This is a version of #2031 for the 0.64.x branch. ---- :books: Documentation preview :books:: https://datasette--2044.org.readthedocs.build/en/2044/ ",2023-03-24T18:44:44Z,2023-03-24T18:44:57Z,,,175202f5238c23fc6b76a0119d3ce9917d1570d1,,,,,0,c039d23a730448a7d82f9239cfb445aa1f7a4f16,2a0a94fe972e4b1556e73026dc381d297bc906bc,FIRST_TIME_CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/2044,,, 1290512937,PR_kwDODtX3eM5M66op,6,open,0,Add permalink virtual field to items table,1231935,xavdid,"I added a virtual column (no storage overhead) to the output that easily links back to the source. It works nicely out of the box with datasette: ![](https://cdn.zappy.app/faf43661d539ee0fee02c0421de22d65.png) I got bit a bit by https://github.com/simonw/sqlite-utils/issues/411, so I went with a manual `table_xinfo` and creating the table via execute. Happy to adjust if that issue moves, but this seems like it works. I also added my best-guess instructions for local development on this package. I'm shooting in the dark, so feel free to replace with how you work on it locally.",2023-03-26T22:22:38Z,2023-03-29T18:38:52Z,,,99bda9434e0adaa8459bc0abbe6262785cd4086c,,,,,0,b04d6c76c26820f2e0b04da58dd82789e83cbb42,c5585c103d124b23ba1e163f8857d4ba49fe452a,FIRST_TIME_CONTRIBUTOR,248903544,hacker-news-to-sqlite,https://github.com/dogsheep/hacker-news-to-sqlite/pull/6,,, 1293066318,PR_kwDOBm6k_c5NEqBO,2046,closed,0,Bump furo from 2022.12.7 to 2023.3.27,49699333,dependabot[bot],"Bumps [furo](https://github.com/pradyunsg/furo) from 2022.12.7 to 2023.3.27.
Changelog

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)

Commits

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=furo&package-manager=pip&previous-version=2022.12.7&new-version=2023.3.27)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
---- :books: Documentation preview :books:: https://datasette--2046.org.readthedocs.build/en/2046/ ",2023-03-28T13:58:14Z,2023-03-29T06:08:02Z,2023-03-29T06:08:01Z,2023-03-29T06:08:01Z,848a9a420de9b50a7c862db7fb34d930835bee89,,,,,0,a8166e96eecbab1064ef7a373699320415d839a5,c025b0180fe344e4f28177ecd7cf388d492d3064,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/2046,,, 1294011106,PR_kwDOBm6k_c5NIQri,2047,closed,0,Bump black from 22.12.0 to 23.3.0,49699333,dependabot[bot],"Bumps [black](https://github.com/psf/black) from 22.12.0 to 23.3.0.
Release notes

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, and async 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)

Changelog

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, and async 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)

Commits

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=black&package-manager=pip&previous-version=22.12.0&new-version=23.3.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
---- :books: Documentation preview :books:: https://datasette--2047.org.readthedocs.build/en/2047/ ",2023-03-29T06:09:06Z,2023-03-29T06:12:21Z,2023-03-29T06:12:05Z,2023-03-29T06:12:05Z,30c88e3570ba3febf232c7ad429d7045ea8a9915,,,,,0,dff8cf08625bbf4526b400f53da9f3ceba62fa97,bbd5489dbc440c67c69396e7f752584a32d2cfbe,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/2047,,, 1299129869,PR_kwDOJHON9s5NbyYN,13,open,0,use universal command,14314871,amlestin,,2023-04-02T15:10:54Z,2023-04-02T15:37:34Z,,,b40fdee5efac03f10257f749ee7f69e4692ad6c5,,,,,0,8111718e747f59dddcb5bf7820ce922e0723c04a,e55a802d37a896475b6cf475c1ba947af63cca73,FIRST_TIME_CONTRIBUTOR,611552758,apple-notes-to-sqlite,https://github.com/dogsheep/apple-notes-to-sqlite/pull/13,,, 1299206303,PR_kwDOBm6k_c5NcFCf,2052,open,0,"feat: Javascript Plugin API (Custom panels, column menu items with JS actions)",9020979,hydrosquall,"## Motivation - Allow plugins that add data visualizations [`datasette-vega`](https://github.com/simonw/datasette-vega), [`datasette-leaflet`](https://github.com/simonw/datasette-leaflet), and [`datasette-nteract-data-explorer`](https://github.com/hydrosquall/datasette-nteract-data-explorer) to co-exist safely - Standardize APIs / hooks to ease development for new JS plugin developers (better compat with datasette-lite) through standardized DOM selectors, methods for extending the existing Table UI. This has come up as a feature request several times (see research notes for examples) - Discussion w/ @simonw about a general-purpose Datasette JS API ## Changes Summary: Provide 2 new surface areas for Datasette JS plugin developers 1. Custom column header items: 2. Basic ""panels"" controlled by buttons: ### User Facing Changes - Allow creating menu items under table header that triggers JS (instead of opening hrefs per the existing [menu_link](https://docs.datasette.io/en/stable/plugin_hooks.html#menu-links-datasette-actor-request) hook). Items can respond to any column metadata provided by the column header (e.g. label). The proof of concept plugins log data to the console, or copy the column name to clipboard. - Allow plugins to register UI elements in a panel controller. The parent component handles switching the visibility of active plugins. - Because native button elements are used, the panel is keyboard-accessible - use tab / shift-tab to cycle through tab options, and `enter` to select. - There's room to improve the styling, but the focus of this PR is on the API rather than the UX. ### (plugin) Developer Facing Changes - Dispatch a `datasette_init` [CustomEvent](https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent/CustomEvent) when the `datasetteManager` is finished loading. - Provide `manager.registerPlugin` API for adding new functionality that coordinates with Datasette lifecycle events. - Provide a `manager.selectors` map of DOM elements that users may want to hook into. - Updated `table.js` to use refer to these to motivating keeping things in sync - Allow plugins to register themselves with 2 hooks: - `makeColumnActions`: Add items to menu in table column headers. Users can provide a `label`, and either `href` or `onClick` with full access to the metadata for the clicked column (name, type, misc. booleans) - `makeAboveTablePanelConfigs`: Add items to the panel. Each panel has a unique ID (namespaced within that plugin), a render function, and a string label. See [this file](https://github.com/simonw/datasette/blob/2d92b9328022d86505261bcdac419b6ed9cb2236/datasette/static/table-example-plugins.js) for example plugin usage. ### Core Developer Facing Changes - Modified `table.js` to make use of the `datasetteManager` API. - Added example plugins to the `demos/plugins` folder, and stored the test js in the `statics/` folder ## Testing For Datasette plugin developers, please see the [alpha-level documentation](https://github.com/simonw/datasette/pull/2052#issuecomment-1510423051) . To run the examples: ```bash datasette serve fixtures.db --plugins-dir=demos/plugins/ ``` Open local server: `http://127.0.0.1:8001/fixtures/facetable` Open to all feedback on this PR, from API design to variable naming, to what additional hooks might be useful for the future. My focus was more on the general shape of the API for developers, rather than on the UX of the test plugins. ## Design notes - The manager tab panel could be a separate plugin if the implementation is too custom. - The `makeColumnHeaderItems` benefits from hooking into the logic of `table.js` - I wanted to offer this to the Datasette core, since the `datasette-manager` would be more powerful if it were connected to lifecycle and JS events that are part of the existing table.js. - Non-goals: - Dependency management (for now) - there's no ""build"" step, we don't know when new plugins will be added. While there are some valid use cases (for example, allow multiple plugins to wait for a global leaflet object to be loaded), I don't see enough use-cases to justify doing this yet. - Enabling single-page-app features - for now, most datasette actions lead to a new page being loaded. SPA development offers some benefits (no page jumping after clicking on a link), but also complexity that doesn't need to be in the core Datasette project. ## Research Notes - Relocated to a [comment](https://github.com/simonw/datasette/pull/2052#issuecomment-1510423215), as this isn't required to review when evaluating the plugin. Including it just for those who are curious. ",2023-04-02T20:23:44Z,2023-07-12T16:38:28Z,,,e1db219299cf7a7608e827273b2bed466da6b5c0,15178711,asg017,,,0,cf5a9df3f5b3083f35e5e43b8025b72370497235,0f7192b6154edb576c41b55bd3f2a3f53e5f436a,FIRST_TIME_CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/2052,,, 1303909190,PR_kwDOBm6k_c5NuBNG,2053,open,0,WIP new JSON for queries,9599,simonw,"Refs: - #2049 TODO: - [x] Read queries JSON - [ ] Implement error display with `""ok"": false` and an errors key - [ ] Read queries HTML - [ ] Read queries other formats (plugins) - [ ] Canned read queries (dispatched to from table) - [ ] Write queries (a canned query thing) - [ ] Implement different shapes, refactoring to share code with table - [ ] Implement a sensible subset of extras, also refactoring to share code with table - [ ] Get all tests passing ---- :books: Documentation preview :books:: https://datasette--2053.org.readthedocs.build/en/2053/ ",2023-04-05T23:26:15Z,2023-05-26T23:13:03Z,,,3f9f8455e9a7c3fd65d034f5432a31a548c613a7,,,,,1,007294008d925b7e5529e6d14add002b6b56ddb5,dda99fc09fb0b5523948f6d481c6c051c1c7b5de,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/2053,,, 1306498393,PR_kwDOCGYnMM5N35VZ,536,closed,0,Add paths for homebrew on Apple silicon,25778,eyeseast,"Does what it says and nothing else. This is the same set of paths as Datasette uses. ---- :books: Documentation preview :books:: https://sqlite-utils--536.org.readthedocs.build/en/536/ ",2023-04-08T13:34:21Z,2023-04-13T01:44:43Z,2023-04-13T01:44:43Z,2023-04-13T01:44:43Z,8f9a729e8aff972cb18de25b40f4113e26bbc758,,,,,0,cea05dc5eab8d10fbd8943e615d2ab0dceff863c,c0251cc9271260de73b4227859a51fab9b4cb745,CONTRIBUTOR,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/536,,, 1308472112,PR_kwDOBm6k_c5N_bMw,2056,open,0,GitHub Action to lint Python code with ruff,3709715,cclauss,"[Ruff](https://beta.ruff.rs/) supports [over 500 lint rules](https://beta.ruff.rs/docs/rules) and can be used to replace [Flake8](https://pypi.org/project/flake8/) (plus dozens of plugins), [isort](https://pypi.org/project/isort/), [pydocstyle](https://pypi.org/project/pydocstyle/), [yesqa](https://github.com/asottile/yesqa), [eradicate](https://pypi.org/project/eradicate/), [pyupgrade](https://pypi.org/project/pyupgrade/), and [autoflake](https://pypi.org/project/autoflake/), all while executing (in Rust) tens or hundreds of times faster than any individual tool. The ruff Action uses minimal steps to run in ~5 seconds, rapidly providing intuitive GitHub Annotations to contributors. ![image](https://user-images.githubusercontent.com/3709715/223758136-afc386d2-70aa-4eff-953a-2c2d82ceea23.png) ---- :books: Documentation preview :books:: https://datasette--2056.org.readthedocs.build/en/2056/ ",2023-04-11T06:41:27Z,2023-04-15T14:24:46Z,,,dad6ef94091e032c7621ac6322f801ecf5292774,,,,,0,f53b78029321cd9bd5661accb5bd043d62e35a85,5890a20c374fb0812d88c9b0ef26a838bfa06c76,FIRST_TIME_CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/2056,,, 1311438738,PR_kwDOCGYnMM5OKveS,537,closed,0,Support self-referencing FKs in `Table.create`,544011,numist," ---- :books: Documentation preview :books:: https://sqlite-utils--537.org.readthedocs.build/en/537/ ",2023-04-12T20:26:58Z,2023-05-08T22:45:33Z,2023-05-08T21:10:01Z,2023-05-08T21:10:01Z,39ef137e6760d385dc48d03eccf9b89943636fc7,,,,,0,a75abeb61b91a28650d3b9933e7ec80ad0d92529,c0251cc9271260de73b4227859a51fab9b4cb745,CONTRIBUTOR,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/537,,, 1319390463,PR_kwDOBm6k_c5OpEz_,2061,open,0,"Add ""Packaging a plugin using Poetry"" section in docs",1238873,rclement,"This PR adds a new section about packaging a plugin using `poetry` within the ""Writing plugins"" page of the documentation. ---- :books: Documentation preview :books:: https://datasette--2061.org.readthedocs.build/en/2061/ ",2023-04-19T07:23:28Z,2023-04-19T07:27:18Z,,,5466cd524f68d2e32d176c1f1bc5bec84688fffc,,,,,0,2650e3ca2c5ae4f21efe216f9959be31d9e58eed,5890a20c374fb0812d88c9b0ef26a838bfa06c76,FIRST_TIME_CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/2061,,, 1325515181,PR_kwDOBm6k_c5PAcGt,2063,closed,0,Bump sphinx from 6.1.3 to 6.2.0,49699333,dependabot[bot],"Bumps [sphinx](https://github.com/sphinx-doc/sphinx) from 6.1.3 to 6.2.0.
Release notes

Sourced from sphinx's releases.

v6.2.0

Changelog: https://www.sphinx-doc.org/en/master/changes.html

Changelog

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 in sphinx.sty: \sphinxverbatimsep, \sphinxverbatimborder, \sphinxshadowsep, \sphinxshadowsize, and \sphinxshadowrule. (refs: #11105)
  • Remove .egg support from pycode ModuleAnalyser; 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 format
  • sphinx.util.osutil.cd is deprecated in favour of contextlib.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 option autosummary_ignore_module_all is set to False. Patch by Clement Pinard
  • #11147: Add a content_offset parameter to nested_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)

Commits
  • e7d4c36 Bump to 6.2.0 final
  • 4e27a5f Remove unneeded JavaScript from sphinx13 theme
  • bffb547 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 #11333
  • Additional commits viewable in compare view

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=sphinx&package-manager=pip&previous-version=6.1.3&new-version=6.2.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
---- :books: Documentation preview :books:: https://datasette--2063.org.readthedocs.build/en/2063/ ",2023-04-24T13:58:21Z,2023-04-25T13:57:55Z,2023-04-25T13:57:53Z,,e621c970bc64b2c90b801a9fc1e300b9452f6a5f,,,,,0,9838c5839d591332dc9a8ffd6255918e0ac78f05,5890a20c374fb0812d88c9b0ef26a838bfa06c76,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/2063,,, 1327188997,PR_kwDOBm6k_c5PG0wF,2064,closed,0,Bump sphinx from 6.1.3 to 6.2.1,49699333,dependabot[bot],"Bumps [sphinx](https://github.com/sphinx-doc/sphinx) from 6.1.3 to 6.2.1.
Release notes

Sourced 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

Changelog

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 to list.

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 in sphinx.sty: \sphinxverbatimsep, \sphinxverbatimborder, \sphinxshadowsep, \sphinxshadowsize, and \sphinxshadowrule. (refs: #11105)
  • Remove .egg support from pycode ModuleAnalyser; 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 format
  • sphinx.util.osutil.cd is deprecated in favour of contextlib.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 option autosummary_ignore_module_all is set to False. Patch by Clement Pinard
  • #11147: Add a content_offset parameter to nested_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)

Commits
  • ec993dd Bump to 6.2.1 final
  • d2aa91f Revert the default type of nitpick_ignore[_regex] to list
  • 60d8fa1 Bump version
  • 70102ac Bump to 6.2.0 final
  • 4e27a5f Remove unneeded JavaScript from sphinx13 theme
  • bffb547 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)
  • Additional commits viewable in compare view

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=sphinx&package-manager=pip&previous-version=6.1.3&new-version=6.2.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
---- :books: Documentation preview :books:: https://datasette--2064.org.readthedocs.build/en/2064/ ",2023-04-25T13:57:49Z,2023-05-01T13:58:53Z,2023-05-01T13:58:52Z,,52cecfdbe83c2ee73b7e4dd90e296b48dbaf3db2,,,,,0,7711a4af20ede9908867437d0baf3604281fd99f,5890a20c374fb0812d88c9b0ef26a838bfa06c76,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/2064,,, 1333843584,PR_kwDOBm6k_c5PgNaA,2068,closed,0,Bump sphinx from 6.1.3 to 7.0.0,49699333,dependabot[bot],"Bumps [sphinx](https://github.com/sphinx-doc/sphinx) from 6.1.3 to 7.0.0.
Release notes

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

Changelog

Sourced from sphinx's changelog.

Release 7.0.0 (released Apr 29, 2023)

Incompatible changes

  • #11359: Remove long-deprecated aliases for MecabSplitter and DefaultSplitter in sphinx.search.ja.
  • #11360: Remove deprecated make_old_id functions in domain object description classes.
  • #11363: Remove the Setuptools integration (build_sphinx hook in setup.py).
  • #11364: Remove deprecated sphinx.ext.napoleon.iterators module.
  • #11365: Remove support for the jsdump format in sphinx.search.
  • #11366: Make locale a required argument to sphinx.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 to Builder 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 and sphinx.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 to list.

Release 6.2.0 (released Apr 23, 2023)

Dependencies

  • Require Docutils 0.18.1 or greater.

Incompatible changes

... (truncated)

Commits
  • d568b2f Bump to 7.0.0 final
  • ff79edf Remove jsdump references post removal
  • 1a5133a Bump to 7.0.0rc1 final
  • 5795fc7 Update sphinx.deprecation for Sphinx 7.0 (#11386)
  • 6202087 Add a note to CHANGES for PR 11385
  • ad47373 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)
  • Additional commits viewable in compare view

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=sphinx&package-manager=pip&previous-version=6.1.3&new-version=7.0.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
---- :books: Documentation preview :books:: https://datasette--2068.org.readthedocs.build/en/2068/ ",2023-05-01T13:58:46Z,2023-05-15T13:59:38Z,2023-05-15T13:59:36Z,,262233b5f387ea64f6f71587eb14d3a4025a474c,,,,,0,379a597e4e813ace6ffd032c6e9a40a682e05a7f,55c526a5373aa41c76a3f052624f92e7add59cc8,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/2068,,, 1349830554,PR_kwDOBm6k_c5QdMea,2074,open,0,sort files by mtime,3919561,abbbi,"serving multiple database files and getting tired by the default sort, changes so the sort order puts the latest changed databases to be on top of the list so don't have to scroll down, lazy as i am ;) ---- :books: Documentation preview :books:: https://datasette--2074.org.readthedocs.build/en/2074/ ",2023-05-14T15:25:15Z,2023-05-14T15:25:29Z,,,8ceb7bdf5a929cee367c5a8c4cc4ff0766f7114e,,,,,0,689e3b0155612c766607feea10bc2e67e1c2a6da,49184c569cd70efbda4f3f062afef3a34401d8d5,FIRST_TIME_CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/2074,,, 1350861558,PR_kwDOBm6k_c5QhIL2,2075,open,0,Bump sphinx from 6.1.3 to 7.0.1,49699333,dependabot[bot],"Bumps [sphinx](https://github.com/sphinx-doc/sphinx) from 6.1.3 to 7.0.1.
Release notes

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

Changelog

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 and DefaultSplitter in sphinx.search.ja.
  • #11360: Remove deprecated make_old_id functions in domain object description classes.
  • #11363: Remove the Setuptools integration (build_sphinx hook in setup.py).
  • #11364: Remove deprecated sphinx.ext.napoleon.iterators module.
  • #11365: Remove support for the jsdump format in sphinx.search.
  • #11366: Make locale a required argument to sphinx.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 to Builder 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 and sphinx.builders.html.HTMLTranslator attributes.
  • #11385: Remove support for HTML 4 output.

Release 6.2.1 (released Apr 25, 2023)

... (truncated)

Commits

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=sphinx&package-manager=pip&previous-version=6.1.3&new-version=7.0.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) You can trigger a rebase of this PR by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
---- :books: Documentation preview :books:: https://datasette--2075.org.readthedocs.build/en/2075/ > **Note** > Automatic rebases have been disabled on this pull request as it has been open for over 30 days. ",2023-05-15T13:59:31Z,2023-06-29T14:31:59Z,,,d5ae0ab826ca78f98ddea077f42bdfd1f3964114,,,,,0,b99e1d3ee0308bce1df837f9e231d25cc44f8789,49184c569cd70efbda4f3f062afef3a34401d8d5,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/2075,,, 1355563020,PR_kwDOBm6k_c5QzEAM,2076,open,0,Datsette gpt plugin,130708713,StudioCordillera," ---- :books: Documentation preview :books:: https://datasette--2076.org.readthedocs.build/en/2076/ ",2023-05-18T11:22:30Z,2023-05-18T11:22:45Z,,,e561698980618a8d82a9430ab2c47753f8049c2f,,,,,0,093693edd2a177a38cbc5570aaef769e5cbffac1,49184c569cd70efbda4f3f062afef3a34401d8d5,FIRST_TIME_CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/2076,,, 1358254580,PR_kwDOCGYnMM5Q9VH0,546,closed,0,"Analyze tables options: --common-limit, --no-most, --no-least",9599,simonw,"Refs #544 - [x] Documentation for CLI options - [x] Documentation for new Python API parameters: `most_common: bool` and `least_common: bool` - [x] Tests for CLI - [x] Tests for Python API",2023-05-21T15:54:39Z,2023-05-21T16:19:30Z,2023-05-21T16:19:30Z,2023-05-21T16:19:30Z,d2a7b15b2b930fe384e1f1715fc4af23386f4935,,,,,0,2eca17d46eca2cff52c78553085ec64d9029c969,e047cc32e9d5de7025d4d3c16554d4290f4bd3d1,OWNER,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/546,,, 1358282799,PR_kwDOCGYnMM5Q9cAv,549,closed,0,TUI powered by Trogon,9599,simonw,"Refs: - #545 ---- :books: Documentation preview :books:: https://sqlite-utils--549.org.readthedocs.build/en/549/ ",2023-05-21T17:55:42Z,2023-05-21T18:42:00Z,2023-05-21T18:41:56Z,2023-05-21T18:41:56Z,718b0cba9b32d97a41bcf9757c97fe1d058da81c,,,,,0,948692a94b22852b3147abebac9d719b69320b57,e8c5b042e49c627aefd620c8d4b1c84eb8677f73,OWNER,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/549,,, 1358321208,PR_kwDOCGYnMM5Q9lY4,553,closed,0,Reformatted CLI examples in docs,9599,simonw,"Refs: - #551 ---- :books: Documentation preview :books:: https://sqlite-utils--553.org.readthedocs.build/en/553/ ",2023-05-21T20:44:34Z,2023-05-21T20:57:27Z,2023-05-21T20:57:23Z,2023-05-21T20:57:22Z,d8fe1b0d899faaaa3d4714a39328f4c24932278f,,,,,0,21036a5084a2c846a05feb6bced3111d849bbe3c,e240133b11588d31dc22c632f7a7ca636c72978d,OWNER,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/553,,, 1359311359,PR_kwDOBm6k_c5RBXH_,2077,open,0,Bump furo from 2023.3.27 to 2023.5.20,49699333,dependabot[bot],"Bumps [furo](https://github.com/pradyunsg/furo) from 2023.3.27 to 2023.5.20.
Changelog

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)

Commits
  • d2c9ca8 Prepare release: 2023.05.20
  • 662d21b Update changelog
  • 591780b Bump compatible Sphinx version
  • c2e7837 Bump NodeJS and package versions
  • dd85574 Use the reference HtmlFormatter class defined on PygmentsBridge. (#657)
  • 6bff419 Fix broken link (#654)
  • e7f732e Improve the screen-reader label for sidebar collapse
  • 48c0bf2 Drop the check for the theme name
  • 1b17d81 [pre-commit.ci] pre-commit autoupdate (#646)
  • 4904fd5 Remove Python 3.8 constraint from Black pre-commit config (#647)
  • Additional commits viewable in compare view

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=furo&package-manager=pip&previous-version=2023.3.27&new-version=2023.5.20)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) You can trigger a rebase of this PR by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
---- :books: Documentation preview :books:: https://datasette--2077.org.readthedocs.build/en/2077/ > **Note** > Automatic rebases have been disabled on this pull request as it has been open for over 30 days.",2023-05-22T13:58:16Z,2023-06-29T14:40:35Z,,,f56be0e5dc594c374d4d5d79842561ccf3968d80,,,,,0,9785c4f73e4bb15a2f407212cb664a8e4a46b6e0,ede62036180993dbd9d4e5d280fc21c183cda1c3,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/2077,,, 1365439700,PR_kwDOBm6k_c5RYvTU,2080,closed,0,New View base class,9599,simonw,"Refs: - #2078 TODO: - [x] Teach router layer how to handle this - [x] Use it for something ---- :books: Documentation preview :books:: https://datasette--2080.org.readthedocs.build/en/2080/ ",2023-05-25T23:22:55Z,2023-05-26T00:18:45Z,2023-05-26T00:18:44Z,2023-05-26T00:18:44Z,dda99fc09fb0b5523948f6d481c6c051c1c7b5de,,,,,0,e990fbc00ef36c022986432e7706b3ad1c9c68a1,b49fa446d683ddcaf6faf2944dacc0d866bf2d70,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/2080,,, 1372714762,PR_kwDOBm6k_c5R0fcK,2082,open,0,Catch query interrupted on facet suggest row count,10843208,redraw,"Just like facet's `suggest()` is trapping `QueryInterrupted` for facet columns, we also need to trap `get_row_count()`, which can reach timeout if database tables are big enough. I've included `get_columns()` inside the block as that's just another query, despite it's a really cheap one and might never raise the exception. ---- :books: Documentation preview :books:: https://datasette--2082.org.readthedocs.build/en/2082/ ",2023-05-31T18:42:46Z,2023-05-31T18:45:26Z,,,6135526d2fcaff648120df97788e6e0f2d0f5ea6,,,,,0,dfe99af36c11b88ffcb5ca602d72cee1b8acd8bc,dda99fc09fb0b5523948f6d481c6c051c1c7b5de,FIRST_TIME_CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/2082,,, 1392480869,PR_kwDOBm6k_c5S_5Jl,2083,closed,0,Bump blacken-docs from 1.13.0 to 1.14.0,49699333,dependabot[bot],"Bumps [blacken-docs](https://github.com/asottile/blacken-docs) from 1.13.0 to 1.14.0.
Changelog

Sourced from blacken-docs's changelog.

1.14.0 (2023-06-13)

  • Support Python 3.12.
Commits

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=blacken-docs&package-manager=pip&previous-version=1.13.0&new-version=1.14.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
---- :books: Documentation preview :books:: https://datasette--2083.org.readthedocs.build/en/2083/ ",2023-06-14T13:57:52Z,2023-06-29T14:31:55Z,2023-06-29T14:31:54Z,2023-06-29T14:31:54Z,ede62036180993dbd9d4e5d280fc21c183cda1c3,,,,,0,caee23e9ca8cbd4d189070188f90eabf97008b59,dda99fc09fb0b5523948f6d481c6c051c1c7b5de,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/2083,,, 1406821147,PR_kwDOCGYnMM5T2mMb,560,closed,0,Use sqlean if available in environment,9599,simonw,"Refs: - #559 ---- :books: Documentation preview :books:: https://sqlite-utils--560.org.readthedocs.build/en/560/ ",2023-06-25T19:48:48Z,2023-06-26T08:21:00Z,2023-06-25T23:25:51Z,2023-06-25T23:25:51Z,f5c63088e1454811ce8361208b72297408eb5237,,,,,0,5e7d27e5df024ce1f45e3a850c4e0f65e765cccd,2747257a3334d55e890b40ec58fada57ae8cfbfd,OWNER,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/560,,, 1425647904,PR_kwDOBm6k_c5U-akg,2096,open,0,Clarify docs for descriptions in metadata,15906,garthk,"G'day! I got confused while debugging, earlier today. That's on me, but it does strike me a little repetition in the metadata documentation might help those flicking around it rather than reading it from top to bottom. No worries if you think otherwise. ---- :books: Documentation preview :books:: https://datasette--2096.org.readthedocs.build/en/2096/ ",2023-07-08T01:57:58Z,2023-07-08T01:58:13Z,,,6447bbfd8308ec7b75392ec4c786db780b830acd,,,,,0,3b787aae74b683414f3546bc9979e9f2c0ae13e9,8cd60fd1d899952f1153460469b3175465f33f80,FIRST_TIME_CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/2096,,, 1427574243,PR_kwDOBm6k_c5VFw3j,2098,open,0,Bump blacken-docs from 1.14.0 to 1.15.0,49699333,dependabot[bot],"Bumps [blacken-docs](https://github.com/asottile/blacken-docs) from 1.14.0 to 1.15.0.
Changelog

Sourced from blacken-docs's changelog.

1.15.0 (2023-07-09)

  • Drop Python 3.7 support.
Commits

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=blacken-docs&package-manager=pip&previous-version=1.14.0&new-version=1.15.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
---- :books: Documentation preview :books:: https://datasette--2098.org.readthedocs.build/en/2098/ ",2023-07-10T13:49:12Z,2023-07-10T13:49:31Z,,,416cdc04da8bb837613eb75b589ba89420fa215c,,,,,0,79f95d1c2c685c7e569e6bcc912bbfa8274c2be9,0f7192b6154edb576c41b55bd3f2a3f53e5f436a,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/2098,,, 1429431050,PR_kwDOBm6k_c5VM2MK,2099,open,0,Bump black from 23.3.0 to 23.7.0,49699333,dependabot[bot],"Bumps [black](https://github.com/psf/black) from 23.3.0 to 23.7.0.
Release notes

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 the BLACK_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 the pyproject.toml found isn't in the current working directory (#3719)
  • Black will now error if exclude and extend-exclude have invalid data types in pyproject.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)

Changelog

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 the BLACK_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 the pyproject.toml found isn't in the current working directory (#3719)
  • Black will now error if exclude and extend-exclude have invalid data types in pyproject.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)

Commits

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=black&package-manager=pip&previous-version=23.3.0&new-version=23.7.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
---- :books: Documentation preview :books:: https://datasette--2099.org.readthedocs.build/en/2099/ ",2023-07-11T13:05:53Z,2023-07-11T13:06:16Z,,,8b3ebdb145b22150ddcfe51bebba88f910667792,,,,,0,2761e4db2429e5d5588d8d1e54f30a6aafa7456b,0f7192b6154edb576c41b55bd3f2a3f53e5f436a,CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/2099,,, 1432754160,PR_kwDOBm6k_c5VZhfw,2100,open,0,Make primary key view accessible to render_cell hook,1563881,meowcat," ---- :books: Documentation preview :books:: https://datasette--2100.org.readthedocs.build/en/2100/ ",2023-07-13T09:30:36Z,2023-07-13T09:30:50Z,,,414c40938a7ebf29aa8eabb1315f1863a7b0615e,,,,,0,43948f412c849d86ccee70094249c7f34cbb7580,0f7192b6154edb576c41b55bd3f2a3f53e5f436a,FIRST_TIME_CONTRIBUTOR,107914493,datasette,https://github.com/simonw/datasette/pull/2100,,,