sha,message,author_date,committer_date,raw_author,raw_author_label,raw_committer,raw_committer_label,repo,repo_label,author,author_label,committer,committer_label 6894c8bc767b4c0375ddb8b2f0d2fed857667ff5,First release,2019-09-19T15:38:10Z,2019-09-19T15:38:10Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,209590345,genome-to-sqlite,9599,simonw,9599,simonw 9d7aed336c8e62bf372caa800cb4aae3985cbae9,"Release 2.1, refs #34",2020-04-30T23:02:24Z,2020-04-30T23:02:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw 719f3d8ed93783f796a0d9f7c4df25227de65a23,"Install test dependencies, refs #34",2020-04-30T23:01:02Z,2020-04-30T23:01:02Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw c9f48404481882e8b3af06f35e4801a80ac79ed6,"New scrape-dependents command, refs #34",2020-04-30T22:58:37Z,2020-04-30T22:58:37Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw 44611df1524a03ce305405e5902c9615e3c73a72,"Release 2.0 Backwards incompatible schema change, refs #31",2020-04-22T01:20:52Z,2020-04-22T01:20:52Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw 6237994433d9c5518ea6295e79d6f400fdc78aa2,"Removed debug output, refs #32",2020-04-22T01:16:17Z,2020-04-22T01:16:17Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw 37eedc06c0e23ecbe3bbfb666a243b17f29a47ff,"Added missing issue-comments.json, refs #32",2020-04-22T01:15:34Z,2020-04-22T01:15:34Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw 89e3d9260d2edaf066a1a3b7722bbff0265ce477,"Debug list of files in tests, for #32",2020-04-22T01:14:17Z,2020-04-22T01:14:17Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw 717ac2a715f12444aad48cbe339d3a5c98214d75,"Fix for issue_comments bug #32 Refs #31",2020-04-21T20:25:35Z,2020-04-21T20:25:35Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw 2cf75a0a036719eb7e57fdc7c5c2ea0f4c26978a,"Fix for creator foreign key on milestones, refs #31",2020-04-21T19:14:23Z,2020-04-21T19:14:29Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw 02e38b363ed2211fd32f7d97bef36512b5ebf294,"Foreign keys for milestones table, refs #31",2020-04-21T18:58:21Z,2020-04-21T18:58:21Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw 7757a417c266f311152e3ccf359e35e3c2f1e063,"Use foreign key to repos table on issues and milestones, refs #31",2020-04-21T18:44:43Z,2020-04-21T18:44:43Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw e0e8d8caa9657b04bfb8a2cf16c9b580f38b1805,"milestones now has FK to creator, plus repo column - closes #29",2020-04-21T00:43:52Z,2020-04-21T00:43:52Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw befb6fec28828394c42af546ea0d738fb02cfec9,"Ensure issues.milestone/assignee are integers, closes #30",2020-04-21T00:36:15Z,2020-04-21T00:36:15Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw 92a72e540479123c78207a68984a2a4a41fbc17b,Ignore *.json and *.db and .DS_Store,2020-04-21T00:28:55Z,2020-04-21T00:30:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw 5cd34bd07d704487d48ac741ee5da5317afe88d2,Release 1.1,2020-04-18T15:07:04Z,2020-04-18T15:07:04Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw 87d4bcfff4babcb17c1125884cce5791054b5cca,Note that demo includes datasette and sqlite-utils now,2020-04-18T15:06:46Z,2020-04-18T15:06:46Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw 13f8868fb5efa01c263b24f6dd91c617e6e938e1,Demo also pulls datasette and sqlite-utils,2020-04-18T14:56:47Z,2020-04-18T14:56:47Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw 9ca6dc835ca6da948ee5f766024ad0734cc69db8,"Handle 204 No Content from GitHub API, refs #28",2020-04-18T14:53:39Z,2020-04-18T14:53:39Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw 4fa33ffcf138e50125d8d04dcaa34ea32413151e,"New contributors command, refs #28",2020-04-18T01:19:56Z,2020-04-18T01:19:56Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw 0ad3ce5e2d664c227d7045afafec46704f251a10,"Use INTEGER for organization column, fixes #27",2020-04-18T00:18:45Z,2020-04-18T00:18:45Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw da5beb2f94eb21454a71fb364aec562ec7c221d7,"Updated foreign keys test, refs #27",2020-04-16T19:19:38Z,2020-04-16T19:19:38Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw 47686c7c3d2eee7f9e5425af8922970967ffb379,"Extract organizaion to users table, refs #27",2020-04-16T19:03:44Z,2020-04-16T19:03:44Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw 539e8a86ba53decf26cd6bd9e53cffb80396719b,Add datasette-pretty-json to demo,2020-04-16T19:03:08Z,2020-04-16T19:03:08Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw 3b7ab5685de89fcb6fc92d320c0e24b17be05570,"Release 1.0.1 With bug fix for #26",2020-04-16T17:41:47Z,2020-04-16T17:41:47Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw 85a09a9966ab1aff36c83083243ab6985ec60084,"Send topic Accept header in fetch_repo() too, closes #26",2020-04-16T17:40:47Z,2020-04-16T17:41:01Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw c3f7fc6925c6c34d64c26d436356ab917da0917d,--install=py-gfm,2020-03-25T05:17:20Z,2020-03-25T05:17:20Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw c53bd21b66b24558b0e219f93eceed4021c36939,--service github-to-sqlite,2020-03-25T05:09:04Z,2020-03-25T05:09:04Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw 267efaf75f2f9a09a721d568916460b2bbc20c38,"Configure demo with demo-metadata.json This includes datasette-render-markdown",2020-03-25T05:03:35Z,2020-03-25T05:03:35Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw 1ea30c8fb1d080bd5e38c577e3ad20bb527a2fe6,"Release 1.0, refs #23",2020-03-24T00:07:47Z,2020-03-24T00:07:47Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw 867f352fc1aedfd8abf00711ecb638e3529c0000,"Link to demo from README, refs #13 and #23",2020-03-24T00:07:25Z,2020-03-24T00:07:25Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw 471cf4f045d25bc319d61b9de3a698beaf1a6c96,"datasette-search-all plugin, refs #13",2020-03-23T23:58:24Z,2020-03-23T23:58:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw f78c4e9baaf0970ffab266ba780df7240aae9f32,Install datasette (for datasette publish) - refs #13,2020-03-23T23:33:28Z,2020-03-23T23:33:28Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw 5ecf6e6b5aee904176bd50c7be4a1ffa84e40edb,"Install sqlite3 in action, refs #13",2020-03-23T23:29:40Z,2020-03-23T23:29:40Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw 8d1ec675fa7e64cbcb214e6e1ddc23ac79fcd8f5,Redact email addresses before publishing,2020-03-23T23:25:48Z,2020-03-23T23:25:48Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw d723211163d0d0906b8e7906ade5b31ef90f87dc,"Explicit title/description columns on milestone, refs #13",2020-03-23T23:23:35Z,2020-03-23T23:23:35Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw 9693e733ae22a8d8a5e7e2046315b03a3cb03636,"Handle repos with no commits, closes #22 Refs #21",2020-03-23T23:13:03Z,2020-03-23T23:13:03Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw c4c7fc3ae60e5dfdf97ef9328e75ea22c311b1c7,"Raise GitHub API errors as exceptions, refs #21",2020-03-23T22:47:24Z,2020-03-23T22:47:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw 12046c32207f35d2260268e3ab52f313835df6e7,"Fixed bad bash syntax, refs #13",2020-03-23T22:41:36Z,2020-03-23T22:41:36Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw df9e2b41f2f9fdedfc75d686587725b253737eef,"Expose GITHUB_ACCESS_TOKEN env variable, refs #13",2020-03-23T22:35:57Z,2020-03-23T22:35:57Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw 7fb03a8880d163e40e31ab81c0ac9c5f636002cd,"Cat auth.json - revoke token immediately after this run, refs #13",2020-03-23T22:31:40Z,2020-03-23T22:31:40Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw 67396e16a9f1711334c8fa68099c5c5065d3ebbb,"Cat auth.json - revoke token immediately after this run, refs #13",2020-03-23T22:30:34Z,2020-03-23T22:30:34Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw 1818f611fcb1f567b430bba8954e7c3b3b1eb8f1,"Removed some debugging, refs #13",2020-03-23T22:28:29Z,2020-03-23T22:28:29Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw 87e431e961cb3b0041b09027431a62f7e3224efd,"No need for explicit auth.json if I get the key right, refs #13",2020-03-23T22:24:54Z,2020-03-23T22:24:54Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw 59f98ecae20f77f22a20349d4897f6543d594ba7,"Revert ""More debugging for actions, refs #13"" This reverts commit aca2823f1987fafd1dfead79a275ce3819168f2a.",2020-03-23T22:14:21Z,2020-03-23T22:14:26Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw aca2823f1987fafd1dfead79a275ce3819168f2a,"More debugging for actions, refs #13",2020-03-23T22:14:09Z,2020-03-23T22:14:09Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw 3c3296a6ba38d97708d400699c61a40dd5b4a97b,"Debug assertion, refs #13",2020-03-23T22:12:02Z,2020-03-23T22:12:02Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw bb747b3f71250e63f287efffa2fec48f2b4f4acb,"Just run against dogsheep repos, refs #13 Otherwise the demo will leak my private simonw repos",2020-03-23T22:10:13Z,2020-03-23T22:10:13Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw fa77a1fa3ab20c7b44887c3a8f8c17319063c5f3,"Explicit auth.json, refs #13",2020-03-23T22:07:31Z,2020-03-23T22:07:31Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw 34878d1579b8b460f6aa5b0bd53d6ac9008a118f,"More action debugging, refs #13",2020-03-23T22:05:46Z,2020-03-23T22:05:46Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw 551515d8a3fb2587f0f14a07151defc88419f678,"Some actions debugging output, refs #13",2020-03-23T22:03:59Z,2020-03-23T22:04:02Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw 2cae2a754231e35f0714f45d4d362762acb70c38,"Write auth.json with plain echo, refs #13",2020-03-23T21:57:54Z,2020-03-23T21:58:00Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw 53d4473ce5015299eed679b4375a44c6f17155d8,"Use jq to create auth.json Refs #13",2020-03-23T21:50:12Z,2020-03-23T21:50:12Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw ef538da58f24826e16ff7b4fa7690bf23da13721,"Deploy demo using Actions, refs #13",2020-03-23T21:43:31Z,2020-03-23T21:43:31Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw f39c98a9c706a1e5c59ed0b2ced234bbf9325174,"raw_authors plus handle null authors, closes #18",2020-03-23T20:43:52Z,2020-03-23T20:43:52Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw 0057c087a1d467b1770bebf3206e2cb008bc2b7f,"Upgrade to sqlite-utils 2.x, closes #20",2020-03-23T19:22:46Z,2020-03-23T19:22:46Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw 219ffc2493cf7400c279d0fd15d5eed73f2cd402,"assets in a separate table, closes #15",2020-03-23T19:17:25Z,2020-03-23T19:17:25Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw b7f6accec89c0deecb8fec6cc49fa4dd4d2afb47,"Full-text search for more tables, closes #19",2020-03-23T19:06:31Z,2020-03-23T19:06:31Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw e35eec4343aa560c58c1634cc228d0d46c442304,Release 0.7,2020-03-11T02:47:32Z,2020-03-11T02:47:32Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw f12e26f78f5f3165b257caa6addcc29266da3888,"Docs for commits command, closes #17",2020-03-11T02:47:20Z,2020-03-11T02:47:20Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw 56c351893cb4d443a812de4470f0617f4f6c8aa8,"commits now only gets new commits unless --all, refs #17",2020-03-11T02:42:55Z,2020-03-11T02:42:55Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw 0cdceb9244a21fbd1e70a6ca0a76b2ed2ce4dd3f,"github-to-sqlite commits command, refs #17",2020-03-10T21:55:36Z,2020-03-10T21:55:36Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw 9eb737090fafd0e5a7e314be48402374d99e9828,Release 0.6,2019-11-11T05:31:46Z,2019-11-11T05:31:46Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw 1e6995a362e5b8f23331aafb84e631392eb81492,"--auth is now optional, closes #9",2019-11-11T05:30:41Z,2019-11-11T05:30:41Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw 0a2dddccd7eb6cedae128c08931f14f12d5bce70,'github-to-sqlite repos' now accepts multiple usernames,2019-11-11T05:02:33Z,2019-11-11T05:02:33Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw 9c86d05f90bfe08b6d1cbc281cd5a76d4d120b81,Fetch repo topics using Accept header,2019-11-11T05:00:40Z,2019-11-11T05:00:40Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw 1eb04e2ecb764d2e76a0e5731e16c3833df04c93,"'releases' command to fetch releases, closes #11",2019-11-09T22:56:53Z,2019-11-09T22:56:53Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw 50dc86acc2df6bb7246d14fb2fd016c75924d20f,Rename test file so it actually runs,2019-11-09T22:39:21Z,2019-11-09T22:39:21Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw ae9035f8fe5aff1c54bff4c6b4c2e808a44f0f2a,Release 0.5,2019-10-13T05:28:24Z,2019-10-13T05:28:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw 8c9b5558a1549803ac0cb648c78a21767cccce86,"issue-comments command, closes #7 Also added --issue option to issues command, for fetching one specific issue.",2019-10-13T05:24:25Z,2019-10-13T05:24:25Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw 552543a74970f8a3a3f87f887be23a0c6eb1cb5b,alter=True when upserting users,2019-10-07T04:01:41Z,2019-10-07T04:01:41Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw 8c6251c31a05c58c2bfbef114247642d1b3dbb44,Release 0.4,2019-09-17T00:18:37Z,2019-09-17T00:18:37Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw 8c9a9498159c4dfa1dff0593427cc3ee7df9a83c,"'github-to-sqlite repos' command, closes #3",2019-09-17T00:17:42Z,2019-09-17T00:17:42Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw f697f247468516aa4ee13b1862b59e0dba18d00f,Release 0.3,2019-09-14T21:49:27Z,2019-09-14T21:49:27Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw a4e0dc3407058b05966a1c37b48c8b8cb4bbad05,"Extract license from repos table, closes #2",2019-09-14T21:46:49Z,2019-09-14T21:46:49Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw 0fe96bc50fb3d7b1c7e4577db0ddf207eaeebbb9,Release 0.2,2019-09-14T21:31:17Z,2019-09-14T21:31:17Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw f1fa627a744f740a31b19dae812718838c3a6f6b,"github-to-sqlite starred' command, closes #1",2019-09-14T21:30:30Z,2019-09-14T21:30:36Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw 321e0284c64dc48b2143311009886293c05edb07,Release 0.1.1,2019-09-14T19:19:33Z,2019-09-14T19:19:33Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw d3a0e4cedaa965061c6aa1a38ceffa0a3f00210e,Removed accidental debugging code,2019-09-14T19:19:16Z,2019-09-14T19:19:16Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw 7387c88a3f84704548e81d43b91615c02b61a957,Implemented 'issues' OAuthed data fetching,2019-09-08T03:06:52Z,2019-09-08T03:06:52Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw 7fd4cb33b7db2dc2ba7fbf57a1d119d6d21d0f20,Fixed README title,2019-09-07T22:44:23Z,2019-09-07T22:44:23Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw e7f83e628ba6737fe5a7084ecf76221a2580fe2a,"Initial working version * ""github-to-sqlite auth"" command saves a token to auth.json * ""github-to-sqlite issues"" command only works with --load=",2019-09-07T22:43:03Z,2019-09-07T22:43:03Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw e54e544427f1cc3ea8189f0e95f54046301a8645,Release 0.2,2019-09-08T03:13:45Z,2019-09-08T03:13:45Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206649770,google-takeout-to-sqlite,9599,simonw,9599,simonw 231497345d5a653d5ce9b74a8c003cfe1b87530d,Order of files in zip does not matter,2019-09-08T03:12:50Z,2019-09-08T03:12:50Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206649770,google-takeout-to-sqlite,9599,simonw,9599,simonw 2fb755e7d829321538b2aac69da3180e746ba3a8,Implemented location-history import command,2019-09-07T23:30:23Z,2019-09-07T23:30:23Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206649770,google-takeout-to-sqlite,9599,simonw,9599,simonw d1cefefc207b8401cc8bf375f07a936c940a4ada,Adjust sort order in test,2019-09-05T20:31:13Z,2019-09-05T20:31:13Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206649770,google-takeout-to-sqlite,9599,simonw,9599,simonw 84351a5269ca6a2e99808cd66652a6158e2f67f0,Use pytest -vv,2019-09-05T20:18:02Z,2019-09-05T20:18:02Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206649770,google-takeout-to-sqlite,9599,simonw,9599,simonw 6fe6359b0887b75cd5e7890f2a3c906e6442d59a,Initial working version,2019-09-05T20:14:33Z,2019-09-05T20:14:33Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206649770,google-takeout-to-sqlite,9599,simonw,9599,simonw c8697b3e4ef044412209b52c70548fedbcb346c7,clarification in README,2020-03-22T15:44:45Z,2020-03-22T15:44:45Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,248903544,hacker-news-to-sqlite,9599,simonw,9599,simonw 1aad0462567d5eb431f5c2a88e9d24f73f5d8e91,"Release 0.3.1 Updated README for PyPI",2020-03-21T22:39:34Z,2020-03-21T22:39:34Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,248903544,hacker-news-to-sqlite,9599,simonw,9599,simonw ef8fb24abfb437c919f2799f47410a641834e511,Release 0.3,2020-03-21T19:46:08Z,2020-03-21T19:46:08Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,248903544,hacker-news-to-sqlite,9599,simonw,9599,simonw 9e12f24cc28fbd95058231ee9765896dc11f5589,"Configure full-text search, closes #1",2020-03-21T18:56:49Z,2020-03-21T18:56:49Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,248903544,hacker-news-to-sqlite,9599,simonw,9599,simonw 25d8578e3b68ca9b4d36af7e7a7ea7b27e30c8f9,"Compatibility with sqlite-utils 1.x, release 0.2a",2020-03-21T15:27:15Z,2020-03-21T15:27:15Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,248903544,hacker-news-to-sqlite,9599,simonw,9599,simonw b08037edcfb499dc443592820f80a8aba0fe3b19,Applied Black,2020-03-21T04:19:07Z,2020-03-21T04:19:07Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,248903544,hacker-news-to-sqlite,9599,simonw,9599,simonw 36e8ffc4a9b6d506b521c038018818a9b5e502e3,Added requests-mock test dependency,2020-03-21T04:18:45Z,2020-03-21T04:18:45Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,248903544,hacker-news-to-sqlite,9599,simonw,9599,simonw 75e75d2a3d5bc5a60b53bb38d4c7eab221ece2fe,user and trees commands,2020-03-21T04:15:48Z,2020-03-21T04:15:48Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,248903544,hacker-news-to-sqlite,9599,simonw,9599,simonw fe856bf313e269edec46d304fd09348f37282f1b,Release 0.5,2020-03-28T01:50:51Z,2020-03-28T01:50:51Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,197882382,healthkit-to-sqlite,9599,simonw,9599,simonw cfb2fd0711fd510bfff821b2cfebfd3daf902ec7,Bump to sqlite-utils 2.4.4,2020-03-28T01:20:42Z,2020-03-28T01:20:42Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,197882382,healthkit-to-sqlite,9599,simonw,9599,simonw 1c0afa0895427a074b4c1db9b7b9b9a3c4a39bb5,Release 0.4,2019-11-08T01:19:23Z,2019-11-08T01:19:23Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,197882382,healthkit-to-sqlite,9599,simonw,9599,simonw e488c6addd4b647c2e4917b94e3e320cb7df5456,"Fixed workout points import for iOS 13 Workout lat/lon tracks are now stored in .gpx files. Closes #10",2019-11-08T01:17:50Z,2019-11-08T01:17:50Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,197882382,healthkit-to-sqlite,9599,simonw,9599,simonw 58b65b504d61bea5d3ab3696257204b925063a6b,Release 0.3.2,2019-07-26T06:02:30Z,2019-07-26T06:02:30Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,197882382,healthkit-to-sqlite,9599,simonw,9599,simonw 35162fce0d216e15508964f7209e022bad31bb89,Fix for #9 - too many SQL variables,2019-07-26T06:00:27Z,2019-07-26T06:00:27Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,197882382,healthkit-to-sqlite,9599,simonw,9599,simonw 6fcc27be26a560d525a1e0cf0ab225c5f7c19daf,Release 0.3.1,2019-07-24T06:33:22Z,2019-07-24T06:34:14Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,197882382,healthkit-to-sqlite,9599,simonw,9599,simonw 5d7e14d40d5a4cfd133ca5faa442312f607784c5,Release 0.3,2019-07-22T03:31:54Z,2019-07-22T03:31:54Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,197882382,healthkit-to-sqlite,9599,simonw,9599,simonw 604d423f92732c7f6d2b4402cc80734ac3bd7c21,Documentation for progress bar / --silent,2019-07-22T03:31:02Z,2019-07-22T03:31:02Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,197882382,healthkit-to-sqlite,9599,simonw,9599,simonw f518d8c7099a9f8826920ab9634a159036094cf7,"Break records out into separate tables, closes #6",2019-07-22T03:28:43Z,2019-07-22T03:28:43Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,197882382,healthkit-to-sqlite,9599,simonw,9599,simonw b63bab25de0d6db72d5e410789fbc9bfa1eace93,"Better progress bar label, refs #5",2019-07-22T03:17:20Z,2019-07-22T03:17:20Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,197882382,healthkit-to-sqlite,9599,simonw,9599,simonw 5fa404135a2704fe94dd976bf197472acffded28,"Added progress bar, --xml and --silent options --xml lets you pass path to an XML file - I used this to add some unit tests for the CLI itself. --silent means ""don't show a progress bar"" Closes #5",2019-07-22T02:47:56Z,2019-07-22T02:47:56Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,197882382,healthkit-to-sqlite,9599,simonw,9599,simonw 2bb3bddec9db5a47f0d064bdc124c0c6c12780e5,Release 0.2,2019-07-20T16:44:05Z,2019-07-20T16:44:05Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,197882382,healthkit-to-sqlite,9599,simonw,9599,simonw 63aaf80e5b3d27ded34f557df2c689c9d9854e97,"Use hash_id in less places I was getting import errors when duplicate hash_id was generated.",2019-07-20T16:42:26Z,2019-07-20T16:42:26Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,197882382,healthkit-to-sqlite,9599,simonw,9599,simonw d64299765064501f4efdd9a0b21dbdba9ec4287f,Fixed URLs in README,2019-07-20T06:22:57Z,2019-07-20T06:22:57Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,197882382,healthkit-to-sqlite,9599,simonw,9599,simonw 38464031acf34b8fecb6a719971f2d95045dcd01,"Import records, closes #4",2019-07-20T06:19:31Z,2019-07-20T06:19:31Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,197882382,healthkit-to-sqlite,9599,simonw,9599,simonw 8cb1d04ae0425d471da1e6df21a92bc1a1764c24,"Import workouts, closes #2",2019-07-20T06:10:18Z,2019-07-20T06:10:18Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,197882382,healthkit-to-sqlite,9599,simonw,9599,simonw d016e70c31cf84ba0f5ec3102546db54a51aaffb,"Export activity summaries, closes #3",2019-07-20T05:57:58Z,2019-07-20T05:57:58Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,197882382,healthkit-to-sqlite,9599,simonw,9599,simonw 8fb7609e5b133fd8b53a79772ee5501dac60ea88,Usage instructions,2019-07-20T05:57:26Z,2019-07-20T05:57:26Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,197882382,healthkit-to-sqlite,9599,simonw,9599,simonw 997136e714281c82955464fa13071e6b3e986eed,"Added export.xml test fixture Also utils.find_all_tags() utility function",2019-07-20T05:40:04Z,2019-07-20T05:40:04Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,197882382,healthkit-to-sqlite,9599,simonw,9599,simonw 47a15cba605f045bdb5b224362f7fd27f6a47956,Initial framework,2019-07-20T05:12:38Z,2019-07-20T05:12:38Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,197882382,healthkit-to-sqlite,9599,simonw,9599,simonw 7d5f3480dc7022212d5fdcdeb9f3acf2744c4405,Release 0.2,2020-03-24T00:35:44Z,2020-03-24T00:35:44Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206202864,inaturalist-to-sqlite,9599,simonw,9599,simonw 113bfbe5fe833e3c90a4ba364b2173d7cffe47a8,Fixed bug with conservation_status column,2020-03-24T00:35:14Z,2020-03-24T00:35:14Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206202864,inaturalist-to-sqlite,9599,simonw,9599,simonw a56d4394438f34abf175c6fdba0d5c2096d46133,Updated to sqlite-utils 2.x,2020-03-24T00:28:39Z,2020-03-24T00:28:39Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206202864,inaturalist-to-sqlite,9599,simonw,9599,simonw ce55b96ebeee79275307a406cd1ae88e511e147c,Preparing release 0.1a,2019-09-04T04:03:31Z,2019-09-04T04:03:31Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206202864,inaturalist-to-sqlite,9599,simonw,9599,simonw a7b00b7bd95121ee2e39cf01498e77945c9d67f6,"Added observations_with_photos view Optimized for use with datasette-json-html",2019-09-04T03:52:40Z,2019-09-04T03:52:40Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206202864,inaturalist-to-sqlite,9599,simonw,9599,simonw 309bddb71e21f79dc6aa16d53413959929809663,Guess medium_url from /square.jpg regular url,2019-09-04T03:41:56Z,2019-09-04T03:41:56Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206202864,inaturalist-to-sqlite,9599,simonw,9599,simonw f7af9fa164739a09d5e83bc5be64fede4b7f795b,Removed obsolete import,2019-09-04T03:34:07Z,2019-09-04T03:34:07Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206202864,inaturalist-to-sqlite,9599,simonw,9599,simonw 5ff02db0ed251c9cbf494f932028e576692addf9,"Removed obsolete code, applied black",2019-09-04T03:32:14Z,2019-09-04T03:32:14Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206202864,inaturalist-to-sqlite,9599,simonw,9599,simonw aa36ab8eacaf61643b81f639bbc60dc820741091,First working version,2019-09-04T01:17:22Z,2019-09-04T01:17:22Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206202864,inaturalist-to-sqlite,9599,simonw,9599,simonw d6c9a1a2cdc72d806f297f64e0495ef1fba8b068,Added the --dry-run option,2020-04-28T01:16:38Z,2020-04-28T01:16:38Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,256834907,dogsheep-photos,9599,simonw,9599,simonw d939455af00e07866686457ee2fcb9b2d1b7194e,"Upload photos in a thread pool, closes #11",2020-04-24T16:45:30Z,2020-04-24T16:45:30Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,256834907,dogsheep-photos,9599,simonw,9599,simonw a388cf1f1b6b67752d669466cda8b171b6582171,"Use thread pool for hashing This speeds it up a ton. Closes #10",2020-04-24T04:32:27Z,2020-04-24T04:32:27Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,256834907,dogsheep-photos,9599,simonw,9599,simonw 2e7f2c67cc18b02c75bb64992a05b0196e507252,Release 0.2a,2020-04-24T00:41:23Z,2020-04-24T00:42:43Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,256834907,dogsheep-photos,9599,simonw,9599,simonw 18f33355bbd53d2e1c433f8e157150d8ddc8d9e2,"Only upload photos not already in S3, refs #9",2020-04-23T23:31:23Z,2020-04-23T23:31:23Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,256834907,dogsheep-photos,9599,simonw,9599,simonw ec934491d5940c743e81cc2f5b434a0847e81126,Release 0.1a,2020-04-19T00:15:55Z,2020-04-19T00:15:55Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,256834907,dogsheep-photos,9599,simonw,9599,simonw c47d6b998e3357b05a5cd61bfaebdf7781664e5e,"Add progress bar to upload command, closes #6",2020-04-19T00:10:56Z,2020-04-19T00:12:00Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,256834907,dogsheep-photos,9599,simonw,9599,simonw db169f90d96d6e39d49e3c70fc5b11b6823f7901,"Ask for bucket in s3-auth, refs #5",2020-04-19T00:10:00Z,2020-04-19T00:10:03Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,256834907,dogsheep-photos,9599,simonw,9599,simonw 502efb941a8177611d6295c864f7a88553af2fa7,"photos-to-sqlite upload photos.db dirname command, closes #4",2020-04-18T21:57:00Z,2020-04-18T21:57:00Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,256834907,dogsheep-photos,9599,simonw,9599,simonw 2ff303f8eac37d72231427944e05d93c30fba98f,Ignore my auth.json,2020-04-18T21:17:41Z,2020-04-18T21:18:08Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,256834907,dogsheep-photos,9599,simonw,9599,simonw 6989842e8e512f1b47ed17554f56c6fa67811ae9,"Test for s3-auth command Also renamed JSON keys to have photos_s3 prefix - refs #5",2020-04-18T21:15:49Z,2020-04-18T21:15:56Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,256834907,dogsheep-photos,9599,simonw,9599,simonw 86d3ca4015d23f494d372e8623e62318723f2220,"Initial checkn + s3-auth command, closes #5",2020-04-18T21:08:29Z,2020-04-18T21:08:29Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,256834907,dogsheep-photos,9599,simonw,9599,simonw 046ca380fd93f352da6e58139b96f2e4a365f53a,Release 0.2,2020-03-27T22:23:16Z,2020-03-27T22:23:16Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,213286752,pocket-to-sqlite,9599,simonw,9599,simonw 4c35bd6ad27c5d60a23a858130236a99324e620b,"Documentation for fetch, --all and --silent Closes #2",2020-03-27T22:22:23Z,2020-03-27T22:22:23Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,213286752,pocket-to-sqlite,9599,simonw,9599,simonw 302ea29178ba8d57446e0a3f5a43bf0501a33649,Fixed --silent option,2020-03-27T22:22:04Z,2020-03-27T22:22:04Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,213286752,pocket-to-sqlite,9599,simonw,9599,simonw a7f58e96b45edb4b0f91fac13f57283cec9bcebb,"Pagination, progress bar and --since support Closes #1 Refs #2 - still needs README update Also upgraded to sqlite-utils 2.x",2020-03-27T22:12:51Z,2020-03-27T22:13:35Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,213286752,pocket-to-sqlite,9599,simonw,9599,simonw 78af2b8ada30e7e81f910cb632bfedff98201920,"Use pocket_ prefix in auth.json, closes #4",2020-03-27T20:43:53Z,2020-03-27T20:43:53Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,213286752,pocket-to-sqlite,9599,simonw,9599,simonw 1143fcc20b253213925f84f3979a27c9834fbbac,Implemented 'fetch' command,2019-10-07T05:07:37Z,2019-10-07T05:07:37Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,213286752,pocket-to-sqlite,9599,simonw,9599,simonw 618b05b44fa526aca7d4a8fcdbb2e7ee7f3456d7,Initial save_items() utility plus tests,2019-10-07T04:50:41Z,2019-10-07T04:50:41Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,213286752,pocket-to-sqlite,9599,simonw,9599,simonw 5495bca54a2aad91b1243b3cdc7f7d85cddd0bd5,Initial setup plus 'pocket-to-sqlite auth' command,2019-10-07T03:23:42Z,2019-10-07T03:23:42Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,213286752,pocket-to-sqlite,9599,simonw,9599,simonw c91677ee74c574f0fb0826846bdbb3117a3e2552,Ran Black,2020-03-28T02:29:41Z,2020-03-28T02:29:41Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,205429375,swarm-to-sqlite,9599,simonw,9599,simonw f50cad4a2b6977e3eb174ccc440ae6709885faed,Release 0.3.1,2020-03-28T02:29:25Z,2020-03-28T02:29:25Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,205429375,swarm-to-sqlite,9599,simonw,9599,simonw dfb6826524f41b3a5f8140e6d36d7077ccd10421,Release 0.3,2020-03-28T02:25:29Z,2020-03-28T02:25:29Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,205429375,swarm-to-sqlite,9599,simonw,9599,simonw be2fa42f5f4e9d146ce6e486d7e421ba286a2d3a,"Upgraded to sqlite-utils 2.x, closes #7",2020-03-28T02:24:57Z,2020-03-28T02:24:57Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,205429375,swarm-to-sqlite,9599,simonw,9599,simonw 2cc11a9e551daa588c962dda70053827c7f971cf,Release 0.2,2019-10-16T20:40:25Z,2019-10-16T20:40:25Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,205429375,swarm-to-sqlite,9599,simonw,9599,simonw f2c89dd613fb8a7f14e5267ccc2145463b996190,Applied black,2019-10-16T20:40:15Z,2019-10-16T20:40:15Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,205429375,swarm-to-sqlite,9599,simonw,9599,simonw 54a8a88e81e57cbc7ec3de2efba583aec8855906,"Added --since option, closes #3",2019-10-16T20:39:54Z,2019-10-16T20:39:54Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,205429375,swarm-to-sqlite,9599,simonw,9599,simonw c8246218c074d4a53394de9d364eb6c21b245104,"Treat Foursquare timestamps as UTC, closes #5",2019-08-31T02:46:58Z,2019-08-31T02:46:58Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,205429375,swarm-to-sqlite,9599,simonw,9599,simonw 5da18118ea820b3e76dad4a8d53cd4de6f63e658,Run pytest with -vv in Circle CI,2019-08-31T02:39:12Z,2019-08-31T02:39:12Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,205429375,swarm-to-sqlite,9599,simonw,9599,simonw 3f8cadd6a33254788839a5c1e64ff61872aeb54a,"Implemented --save option, closes #2 Also added usage instructions to README.",2019-08-31T02:36:52Z,2019-08-31T02:36:52Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,205429375,swarm-to-sqlite,9599,simonw,9599,simonw 0e5b6025c6f9823ff81aa8aae1cbff5c45e57baf,"Can now fetch data from Foursquare API, closes #1 Also made createdAt field the original unix timestamp and added a new created field which is the ISO formatted version.",2019-08-30T18:16:20Z,2019-08-30T18:19:20Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,205429375,swarm-to-sqlite,9599,simonw,9599,simonw 31ea281c40540013c5dbae84d67c5193f40b0e3e,Use group_concat(distinct categories.name) for venue_details view,2019-08-30T17:25:04Z,2019-08-30T17:25:04Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,205429375,swarm-to-sqlite,9599,simonw,9599,simonw 7bc005a8664ae1b3f831c4714534d612561d5e93,Added venue_categories to venue_details view,2019-08-30T17:18:44Z,2019-08-30T17:19:23Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,205429375,swarm-to-sqlite,9599,simonw,9599,simonw b77e0d54c59825ebe0d1cc7f01bbe954cc6fd70d,"Added venue_details view Includes date of first and last checkin plus count of checkins",2019-08-30T17:16:24Z,2019-08-30T17:16:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,205429375,swarm-to-sqlite,9599,simonw,9599,simonw 61c7734979a5592526ea6841e77175de2163eb17,"Require at least sqlite-utils 1.10 We need it for the view introspection methods",2019-08-30T17:02:46Z,2019-08-30T17:02:46Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,205429375,swarm-to-sqlite,9599,simonw,9599,simonw e04ec1f86e35e14ec9148108de27d4305bb79230,Added checkin_details SQL view,2019-08-30T15:01:17Z,2019-08-30T15:01:17Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,205429375,swarm-to-sqlite,9599,simonw,9599,simonw 00e2473f919d921a2aa1c9264397e3e593e3907e,Added support for stickers,2019-08-30T14:45:26Z,2019-08-30T14:45:26Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,205429375,swarm-to-sqlite,9599,simonw,9599,simonw cfd1ac4f0eb942fd81ac86e148b4ca20915343cd,Implemented events and posts,2019-08-30T14:27:10Z,2019-08-30T14:27:10Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,205429375,swarm-to-sqlite,9599,simonw,9599,simonw 06dfb95a5ca5c0682ccad87b6150a2b0db66ade1,"Initial working version Only supports loading checkins from a JSON file on disk: swarm-to-sqlite swarm.db -f checkins.json",2019-08-30T11:26:27Z,2019-08-30T11:26:27Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,205429375,swarm-to-sqlite,9599,simonw,9599,simonw ac60ce9331dc557837d879680611aca4bd6c28be,0.21.1 bugfix release,2020-04-30T18:20:43Z,2020-04-30T18:20:43Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw 6be0ffcee24504fa2964b0e526842b8cfce7567b,"Fix for since_ids bug, closes #46",2020-04-30T18:11:42Z,2020-04-30T18:11:42Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw 537587823a81c96b863c5db9cddae89c4fbec4aa,Release 0.21,2020-04-17T23:44:31Z,2020-04-17T23:44:31Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw 73947d50115257b15e4a687ddf41cbf60ba942cb,"Better error for non-existing user, closes #37",2020-04-17T23:43:35Z,2020-04-17T23:43:35Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw 9d61313a98569f693dd1ec9ce516b28d0f931b8d,"Fix for TypeError, closes #42",2020-04-17T23:34:34Z,2020-04-17T23:34:34Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw 279f2ba0652221bb4a542603f0846e9754e1632f,"New command: twitter-to-sqlite lists, refs #43",2020-04-17T22:02:59Z,2020-04-17T22:02:59Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw faefa30fff03a9e88fc60e646ea6e7be97646dc1,"Handle blank tweet[source], closes #44",2020-04-17T19:29:58Z,2020-04-17T19:29:58Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw 0b8a952cd5709ac27494b1694ca95188c89442ce,"Release 0.20.1 Refs #41",2020-04-01T04:31:23Z,2020-04-01T04:31:23Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw 19bdd23a1c81d31664c44adc543ac9c9f7692edf,"Fix for None, None since_id bug, closes #41",2020-04-01T04:31:05Z,2020-04-01T04:31:05Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw e2e373d2178ea76fe16fc8d07fffac8b175c2010,Updated tests for new tables in #40,2020-04-01T04:18:17Z,2020-04-01T04:18:17Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw 7f9eaa7bb08eb7f34911b954c9c88850d2a54b10,Release 0.20,2020-04-01T04:13:33Z,2020-04-01T04:13:33Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw 32690eb7641b119030f439d1cc0fb160f379691f,"New feature: track history of various counts, closes #40",2020-04-01T04:12:54Z,2020-04-01T04:12:54Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw 4b6c8d8c1cc6fefdb566ec8506157133f47c569a,"Improved --since= for searc, refs #39 Also fixed bug from the sqlite-utils 2.x upgrade caused by checking db[table].exists instead of db[table].exists()",2020-04-01T03:44:30Z,2020-04-01T03:44:30Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw 824109b0707f0d352470ba4e9ec7d729250afcd3,"Improved --since= for home-timeline, refs #39",2020-04-01T03:37:33Z,2020-04-01T03:37:33Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw aab95d1f68f84e900764ec502dad87c4940206da,"Improved --since= for mentions-timeline, refs #39",2020-04-01T03:28:58Z,2020-04-01T03:28:58Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw c78e6ba76453e9f6461b1182599a1a6fd0535dc9,"Improved --since= for user-timeline, refs #39",2020-04-01T03:17:09Z,2020-04-01T03:17:09Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw 8585efbecda055d62d2357bc3cee040dd3c3e0f3,"Create tables for --since tracking, refs #39",2020-04-01T00:31:01Z,2020-04-01T00:31:01Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw 810cb2af5a175837204389fd7f4b5721f8b325ab,Release 0.19,2020-03-20T23:14:02Z,2020-03-20T23:14:02Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw 04c1d2cc54c71d4c6e795d174c7bb52f91739627,"followers/friends --sql/--attach options, closes #36",2020-03-20T23:12:30Z,2020-03-20T23:12:30Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw b03674cc30991439c5320148a4a32de674f2896c,"Better progress bar formatting for user-timeline Closes #38",2020-03-20T22:36:46Z,2020-03-20T22:36:46Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw 2057fc2d2a9b86a2bd34ca4fc3bb1dde798bcd1a,Release 0.18,2020-03-20T20:16:46Z,2020-03-20T20:16:46Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw 98729fd80a7b3f16d82752c6972c8d96c2f2f959,"Docs for new user-timeline options, closes #35",2020-03-20T20:16:28Z,2020-03-20T20:16:28Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw ad79a31a11de6c74cebe819fc6185b093a338e90,Fixed bug in #35,2020-03-20T20:14:37Z,2020-03-20T20:14:37Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw bfcc1233f3f7b3f50b68971102a848adbcd5f53d,"user-timeline now takes --sql/--attach/--ids and multiple identifiers Refs #35, refs #8. Still needs documentation.",2020-03-20T20:12:51Z,2020-03-20T20:12:51Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw 41221277af818552f766480120518b4a7bde6ec4,Release 0.17,2020-03-20T19:22:37Z,2020-03-20T19:22:37Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw d3887d1535c3edd59d3ebf6aea4495bacd82e59b,Fix #34 by upgrading sqlite-utils,2020-03-20T19:20:22Z,2020-03-20T19:20:22Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw a4c50fb6451329b37d869f974ca9c2fa4a43a244,Release 0.16,2020-02-07T07:42:45Z,2020-02-07T07:42:45Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw 35c18a09fa664324dcb75e5e58ccb90644456d02,"Documentation for friends, closes #31",2020-02-07T07:03:22Z,2020-02-07T07:03:22Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw 6ebd482619bd94180e54bb7b56549c413077d329,"friends command, refs #31",2019-11-09T20:38:09Z,2019-11-09T20:38:09Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw 7d038b74a10f2826b36d62d42f1e29ea5b501f77,Release 0.15,2019-11-09T20:12:32Z,2019-11-09T20:12:32Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw 674dcc0d19c1398203c0efffddef43919ee04a09,"Add indexes to following table, closes #28",2019-11-09T20:11:41Z,2019-11-09T20:11:41Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw 1ef6075b258703b411e9dd22ecbdce9b719a9b30,"No need to save user twice, fixes #30",2019-11-09T19:55:38Z,2019-11-09T19:55:38Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw 1dcf8029cc08814197deb39a8a15f460aa0ef78f,Reformatted with Black,2019-11-09T19:36:30Z,2019-11-09T19:36:30Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw fd196a7f65c3c4721904042ff97ee85c839f6bf3,"Fixed #29: import command fails on empty files By bumping sqlite-utils dependency to get this fix: https://github.com/simonw/sqlite-utils/issues/52",2019-11-09T19:35:09Z,2019-11-09T19:35:09Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw 08110bc2b8801d725d65fa834d30b57e473d2241,"Added example Twitter developer account application email Thanks to Jacob Kaplan-Moss: https://twitter.com/jacobian/status/1192510111719313408",2019-11-08T23:04:17Z,2019-11-08T23:04:17Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw 31ec6e4badb77cf3a0c7a6e82bd3c992c5e1ec30,Release 0.14,2019-11-04T05:32:37Z,2019-11-04T05:32:37Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw 801c0c2daf17d8abce9dcb5d8d610410e7e25dbe,"Documentation for search command, closes #3",2019-11-04T05:31:10Z,2019-11-04T05:31:10Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw 4f86a46b1e6ef4d02d72fd2241850039f41fd8a8,"Added --since and --since_id to search, refs #3",2019-11-04T05:30:58Z,2019-11-04T05:30:58Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw dd093b4edd6d2034a2917ff260f1bbaa12e1d285,Release 0.13,2019-10-30T02:20:09Z,2019-10-30T02:20:09Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw 7275abb5573f00e1ea60707cfe243346a6e0ece6,"Documentation for mentions-timeline command, refs #26",2019-10-30T02:19:23Z,2019-10-30T02:19:23Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw 518f9ae704cf325aad66d945798bcbd6c8cc7f3f,"New mentions-timeline command, refs #26",2019-10-30T02:15:31Z,2019-10-30T02:16:18Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw ba709553c5fc264cf055cf37f3ba21a96de48f83,Release 0.12,2019-10-17T17:57:33Z,2019-10-17T17:57:33Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw a79fbdf29989d0537a2ebf144119d3994b9e04b5,"Initial implementation of search command, refs #3",2019-10-17T17:56:29Z,2019-10-17T17:56:45Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw 1aad51519b6a7a224565a44c081b136ff3a7d667,"Don't create index/foreign key that already exists, fixes #25",2019-10-17T16:56:28Z,2019-10-17T16:56:42Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw 619f724a722b3f23f4364f67d3164b93e8ba2a70,"get_profile() now saves user to DB This ensures we don't accidentally fail to create a user record for the currently authenticated user.",2019-10-17T05:54:36Z,2019-10-17T05:54:36Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw e6555b35a7bdb1825ecc08158e4ee6ce79397ece,Instructions on updating favorited_by table with imported likes,2019-10-17T02:27:24Z,2019-10-17T02:27:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw dc584416df10d1feee838b1ed5359bde45eca45f,Release 0.11.1,2019-10-16T19:46:35Z,2019-10-16T19:46:35Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw c1f62c8fac09ce5f288aa87f950a90b8f89d13c6,"Fix bugs running --since from scratch If tables were missing, script would throw an error.",2019-10-16T19:46:23Z,2019-10-16T19:46:23Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw 2878c7ccbfc98f22d6fa3bc96a070aba7b712297,Release 0.11,2019-10-16T19:37:10Z,2019-10-16T19:37:10Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw 20ffa86b8ad3f2c98d88bb5e92365977bbcff417,"Added --since_id and --since to user-timeline, refs #20",2019-10-16T19:23:35Z,2019-10-16T19:23:35Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw fced2a9b67d2cbdf9817f1eb75f7c28e413c963b,"--since and --since_id options for user-timeline, closes #19 Refs #20 Also added some initial rate limit error handling code.",2019-10-16T19:12:41Z,2019-10-16T19:12:41Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw ff55f97f1c9ba3203a25eb2cafe21e712c010d86,"Removed unneccessary test file I moved this test into test_import.py in the previous commit.",2019-10-16T18:58:17Z,2019-10-16T18:58:17Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw 8d607194db4ad6e92f59e901e3da690a3d20f1fa,"import command now works on files and directories, closes #22",2019-10-16T18:53:31Z,2019-10-16T18:53:31Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw 0b84d52ab87d960d4b5e188052540518db2ea569,Release 0.10,2019-10-15T18:53:53Z,2019-10-15T18:53:53Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw 19b5633b4ae0937e33e980b93bf777763f454a80,"favorites --stop_after option, refs #20",2019-10-15T18:51:16Z,2019-10-15T18:51:16Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw 993a30e8cb96c94e599c30fac810d3933b46b6fa,"Store unescaped full_text of Tweet, closes #21",2019-10-15T18:48:11Z,2019-10-15T18:48:11Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw f5b7ceba5b3167e962808814d492e49f87454b3f,"favorites command now populates favorited_by table, closes #14",2019-10-14T03:30:17Z,2019-10-14T03:30:17Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw 2045f2766387dada103dce4c9aaf1418bfaec3b5,Use archive_ in README,2019-10-11T16:55:10Z,2019-10-11T16:55:10Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw d22afae39b1390964dace33f43a8f86c222876fe,"Archive tables use _ not - Tables with hyphens in the name are harder to query because you have to remember to [escape-them].",2019-10-11T16:54:25Z,2019-10-11T16:54:25Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw 1d84a96a47a70680de9d621771dfe6cf2082cf08,"home-timeline command, closes #18",2019-10-11T16:51:03Z,2019-10-11T16:51:03Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw 6a8012b6370154616f073cd8f1c159c3b388b0b7,"twitter-to-sqlite import recreates archive- tables, closes #17",2019-10-11T15:40:00Z,2019-10-11T15:40:00Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw fb2698086d766e0333a55bb73435e7283feeb438,Release 0.8,2019-10-11T06:45:21Z,2019-10-11T06:45:21Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw 436a170d74ec70903d1b4ca430c2c6b6435cdfcc,Release 0.7,2019-10-07T00:32:08Z,2019-10-07T00:32:08Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw 17606ed11e157f3c67611d7233b60ed5eb750c37,"statuses-lookup command, closes #13",2019-10-07T00:31:27Z,2019-10-07T00:31:39Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw 2f8ceca31b8f3ca3a60bccdf25f39b7c3807877a,Release 0.6,2019-10-06T04:49:17Z,2019-10-06T04:49:17Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw cfd977e97f82ece49c850fbed3d8778149a59c7d,"Documentation for follow/track commands, closes #11",2019-10-06T04:48:23Z,2019-10-06T04:48:23Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw 5bfc59fe205da619d2b306734fc30f7327b175e7,"follow command now takes screen names, supports --sql and --ids refs #11",2019-10-06T04:33:18Z,2019-10-06T04:33:18Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw a429dd14c776a7602e603a8e5fa0e99169ca34ac,"Experimental follow/track commands, refs #11",2019-10-06T04:09:18Z,2019-10-06T04:09:48Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw 6670b0719ba4486a1341924522b73eedd0f198aa,Slightly better error handling,2019-10-06T04:08:42Z,2019-10-06T04:09:48Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw e60f314b0b4f9ab6a292270c11320530da66f4ac,Release 0.5,2019-09-10T17:38:46Z,2019-09-10T17:38:46Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw cab7edb1e50549a37b1c8520b546dfa85afda92a,Fixed incorrect header in README,2019-09-10T17:38:04Z,2019-09-10T17:38:04Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw b5ab2bd69772ece9dc853b359931c7fdaaa19160,"followers-ids and friends-ids subcommands Closes #9",2019-09-10T17:36:44Z,2019-09-10T17:36:44Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw 9fa0f564486c416456a88c277df2f16b86739c73,Added missing --ids in README,2019-09-09T22:44:33Z,2019-09-09T22:44:33Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw 898bad33fd1f0e755f05df6f1885b85031884df4,Release 0.4,2019-09-09T22:41:25Z,2019-09-09T22:41:25Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw a1d547132356501d3d19c99d0f2e6c8108c53981,Added list-members subcommand,2019-09-09T22:39:41Z,2019-09-09T22:39:41Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw 3e21277c76b86b54fb5cc8dd41a3eb14b6164947,"--attach and --sql for users-lookup, refs #8",2019-09-08T21:24:27Z,2019-09-08T21:24:27Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw 54867fefc58b88b63de4a2b3c06cce970b41d1f2,"users-lookup command, closes #7",2019-09-08T20:32:08Z,2019-09-08T20:32:08Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw 24568509931d68d0ad1b017ab72f0462cde7666c,New --stop_after option for user-timeline,2019-09-08T19:45:53Z,2019-09-08T19:45:53Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw e2d7db2c9ef6c944804cda5c6662718ab3a80d0e,Release 0.2,2019-09-04T22:10:07Z,2019-09-04T22:10:07Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw bc2307450b6944b4fc894de88b1a6e7f6c133f66,"Extract media to separate table, closes #6",2019-09-04T22:07:52Z,2019-09-04T22:07:52Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw f07d3d14ca39ea95416edc904e566fe28e5b46f6,Extract places into separate table,2019-09-04T21:54:39Z,2019-09-04T21:54:39Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw ea4577bcded84cf135d5aff0c5bcb23dbc8e29db,Release 0.2,2019-09-04T21:17:34Z,2019-09-04T21:28:20Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw ee202d8ce2cd226fd7512f37b201698b6bcac027,Test for new FTS tables,2019-09-04T21:17:18Z,2019-09-04T21:17:18Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw 005913518b695a2456fada7db61ba0d30488bc12,"Fix for bug where tweets were not saved This is a messy fix, need to dig in more",2019-09-04T21:16:38Z,2019-09-04T21:16:38Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw 5c626013c74ca3624d2402ae59d0398de67369bc,Enable FTS on tweets full_text,2019-09-04T21:16:23Z,2019-09-04T21:16:23Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw c03174ee34eeb6bccb6c6fd0e228a7e892d0b257,Release 0.1,2019-09-04T20:43:35Z,2019-09-04T20:43:35Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw 013cc8147abb78227b7232c2d14cb428613b5760,user-timeline documentation,2019-09-04T20:39:12Z,2019-09-04T20:39:12Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw 11b2847252a2d6683023339873d6a31c5300409e,"Save followers in following m2m table, closes #1",2019-09-04T20:22:52Z,2019-09-04T20:22:52Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw b266da2f01d6f9ed622a4be36fcafba64b42831c,Removed dead code,2019-09-04T20:03:20Z,2019-09-04T20:03:20Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw 656c970d8b7d0744f1bb5743767fc5b34b62b90e,Added python-dateutil dependency,2019-09-04T20:01:12Z,2019-09-04T20:01:12Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw 506c9d5e8e659b46e2f544bf476a96047feed402,Circle CI now runs pytest,2019-09-04T20:00:10Z,2019-09-04T20:00:10Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw 5966dad3844b6f98e900de6e738248d949eaaa68,"Implemented favorites and user-timeline commands Plus tests",2019-09-04T19:59:00Z,2019-09-04T19:59:00Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw c1340a15bbd2fced600e5e72626cf42d93b3f789,"Added twitter-to-sqlite fetch URL command Useful development tool - makes it easy to make authenticated API requests on the command-line. Also started the Design notes docs",2019-09-04T16:13:21Z,2019-09-04T16:13:21Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw f95762cc25cbf75909fee8ad041cc903d5f421b0,Better heading,2019-09-03T22:42:41Z,2019-09-03T22:42:41Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw 4c0977fc5d091d3c31102000a7312f28d07cdd5b,Added help text for --auth option,2019-09-03T22:42:06Z,2019-09-03T22:42:06Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw aedf22abac2f87f02d05252a7c6bf2c9854bc786,twitter-to-sqlite followers --auth option,2019-09-03T22:40:56Z,2019-09-03T22:40:56Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw 9dc9f6243f20d0a1217e0d67793ec496333befde,twitter-to-sqlite auth -a my-auth.json option,2019-09-03T22:32:22Z,2019-09-03T22:37:30Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw ef70bb8b3658a984f00e377e6ca1c1d5c238e81d,Break loop after last page,2019-09-03T21:17:25Z,2019-09-03T21:18:05Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw fd1a989e09ccfd7b19ac5044ed4679c2134c1294,Fixed regex,2019-09-03T20:42:38Z,2019-09-03T20:42:38Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw 2a0a84a4ff8211cd96e2f7a8b882a6cc3cc55c5c,Deploy releases tagged with alpha or beta,2019-09-03T20:41:20Z,2019-09-03T20:41:20Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw 9ecd8f04a59621e59307f412f6df842f2b5ef65d,"Release 0.1a Mainly doing this to reserve twitter-to-sqlite on PyPI",2019-09-03T20:36:44Z,2019-09-03T20:36:44Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw 2e4b7c136734b352732186b4d761e608835f7ad3,twitter-to-sqlite auth and followers commands,2019-09-03T20:28:36Z,2019-09-03T20:30:34Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw 4df1b4d8b0cd37a880d8a04c823be7783c6d5fad,"Re-arranged full-text search docs Also documented ?_searchmode=raw - closes #748",2020-04-30T21:06:00Z,2020-04-30T21:06:00Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw cf2d547ffc9ecee265e09780ad73bcc337ad8ef3,Documentation for #747,2020-04-30T19:02:28Z,2020-04-30T19:02:28Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 1d91ab71d4359741b03bbd4347f4360eb8ca817d,"Directory configuration mode supports metadata.yaml, closes #747",2020-04-30T18:47:21Z,2020-04-30T18:47:41Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw e37f4077c0f1cd09d4102213d4e2a512af471b8d,"Remove 'Serve!' line from serve CLI output It wasn't adding anything, and it was confusing when run in conjunction with the new config directory mode from #731",2020-04-27T22:02:02Z,2020-04-27T22:02:28Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 89c4ddd4828623888e91a1d2cb396cba12d4e7b4,"403 for static directory listing, closes #740",2020-04-27T18:29:04Z,2020-04-27T18:29:04Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 1b7b66c465e44025ec73421bd69752e42f108321,"Make request available when rendering custom pages, closes #738",2020-04-26T19:01:46Z,2020-04-26T19:01:46Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 8da108193b08abf140716f8ac499f32309dfe9cf,Fixed a couple of spelling errors,2020-04-22T04:06:39Z,2020-04-22T04:06:39Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw edb39c91f75c97b6b55f1db6b7626e66cb8f2d45,Release Datasette 0.40,2020-04-22T04:00:34Z,2020-04-22T04:00:34Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 15e232180427e988174fdf88440c84b91d2d98d1,"Extra body CSS class for canned queries, closes #727",2020-04-15T21:06:12Z,2020-04-15T21:07:28Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw d349d57cdf3d577afb62bdf784af342a4d5be660,"Smarter merging of metadata and extra_metadata, closes #724",2020-04-10T18:34:09Z,2020-04-10T18:34:09Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw d55fe8cdfc2ce7bc6960bf2507766c1fcd1d31a7,"Fixed bug with Templates considered comment, closes #689",2020-04-05T19:38:33Z,2020-04-05T19:38:33Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw e89b0ef2f9ae89eb3bde83b694f21452ea4858da,"Expose extra_template_vars in _contex=1, refs #693",2020-04-05T18:49:15Z,2020-04-05T18:49:15Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 09253817dea3c131553494f9b2eb9c03f94ae761,"Fix for missing view_name bug, closes #716",2020-04-05T18:28:20Z,2020-04-05T18:28:20Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw e0e7a0facfc935a835cd73c720bc46661462f0b1,"Removed Zeit Now v1 support, closes #710",2020-04-04T23:04:33Z,2020-04-04T23:04:33Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 07e208cc6d9e901b87552c1be2854c220b3f9b6d,"Refactored .custom_sql() method to new QueryView class Refs #698",2020-04-03T01:12:13Z,2020-04-03T01:12:13Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw b07312c2b3bc7e4a9298c1f291f420bd92b6f842,"dedent SQL for neighborhood_search fixture Makes this page a little prettier: https://latest.datasette.io/fixtures/neighborhood_search",2020-04-03T00:54:27Z,2020-04-03T00:54:27Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 2aaad72789c427875426673c1a43e67c86fc970e,"Refactor template setup into Datasette constructor Closes #707",2020-03-27T01:12:43Z,2020-03-27T01:12:43Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 6aa516d82dea9885cb4db8d56ec2ccfd4cd9b840,"Run base_url tests against /fixtures/facetable too, refs #712",2020-03-26T02:31:22Z,2020-03-26T02:31:22Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 99b1e919651c4be781aea162fe517e45f1f2a9c3,Fixed RST bug,2020-03-25T04:46:52Z,2020-03-25T04:46:52Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw dedd775512daee49925882654f252df61a9e3b6d,Release 0.39,2020-03-25T04:02:37Z,2020-03-25T04:02:37Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw a351d353bc0d6b0f737f789a0c2953e2531ed92d,"Fixed typo in GitHub Action configuration, refs #705",2020-03-25T02:30:50Z,2020-03-25T02:30:50Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 90015b26895fd2bd29676bc375f096102b0587ed,"Deploy latest.datasett.io to Cloud Run, refs #705",2020-03-25T02:26:02Z,2020-03-25T02:26:02Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw cc4445801eb7c86a686b0e65fbd815d5aef857ec,"Removed deploy to Zeit Now, refs #705",2020-03-25T02:17:27Z,2020-03-25T02:17:27Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 2a36dfa2a892122029f379722913469d71367925,"Fix for input type=search Webkit styling, closes #701",2020-03-24T22:57:09Z,2020-03-24T22:57:09Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 5f4aeb1f198e2e866a1eed6a7194842d77313ea8,"Removed documentation for Zeit Now v1, refs #710",2020-03-24T22:45:24Z,2020-03-24T22:45:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw c0aa929cdd497f0c722e6f4eb17ad5668786a6fd,"Added datasette-publish-fly plugin to docs, closes #704",2020-03-24T22:38:58Z,2020-03-24T22:38:58Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 3b3cb3e8df243408ab4c03b0ea75cadd02bd65dc,"Added example plugins to plugin hooks docs, closes #709",2020-03-24T22:29:34Z,2020-03-24T22:29:34Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw a498d0fe6590f9bdbc4faf9e0dd5faeb3b06002c,"Fix bug with over-riding default sort, closes #702",2020-03-22T02:40:29Z,2020-03-22T02:40:29Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 236aa065b2ecfbe5a77870689bae432b89a48b23,"""sort"" and ""sort_desc"" metadata properties, closes #702",2020-03-22T02:28:35Z,2020-03-22T02:28:35Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw e1a817411a20e3120943ee407503e53a7445c0db,Bump to click 7.1.1 to fix flaky tests,2020-03-22T01:47:51Z,2020-03-22T01:47:51Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 3d656f4b31e95047e0ffc1eaa7417a303ccce3c1,Updated documentation formatting,2020-03-22T01:31:49Z,2020-03-22T01:31:54Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 2c0e1e09bc833c5939c20b937a2ce8ef997c5f5a,"Show sort arrow on primary key by default Closes #677. Refs #702.",2020-03-21T23:57:37Z,2020-03-21T23:57:37Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw a000c80d5036822c8324c1cd037fe7d20e5246b5,"await Request(scope, receive).post_vars() method, closes #700 Needed for #698",2020-03-17T02:47:37Z,2020-03-17T02:47:37Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 7e357abbc38dcc9d19a2f1df3252668a48e941e4,Release 0.38,2020-03-08T23:26:50Z,2020-03-08T23:26:50Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw e1b5339fdfe47474a0d33a400acedefecff6e67e,"Do not look for templates_path in default plugins Closes #697",2020-03-08T23:09:31Z,2020-03-08T23:11:18Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw f7f31a0223d822f7186c4d20174c002cb723d0f9,"Upgrade Dockerfile to SQLite 3.31.1, closes #695",2020-03-06T06:15:19Z,2020-03-06T06:15:19Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw af9cd4ca64652fae262e6f7b5d201f6e0adc989b,"Fixes for new --memory option, refs #694",2020-03-05T23:44:15Z,2020-03-05T23:44:15Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw ddd11b3ddd886d16867c134d73105895c5726cc7,"--memory option for publish cloudrun, refs #694",2020-03-05T23:34:21Z,2020-03-05T23:34:36Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw be20e6991eac2baa9b43e9b26ae209bae805ede5,Changelog for 0.37.1,2020-03-03T03:43:08Z,2020-03-03T03:43:08Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw b796519da27dc6c30d490321bb449091974d3d38,Print exceptions if they occur in the write thread,2020-03-03T01:59:29Z,2020-03-03T01:59:29Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw dc80e779a2e708b2685fc641df99e6aae9ad6f97,"Handle scope path if it is a string I ran into this while running a unit test with httpx.AsyncClient",2020-03-02T20:01:10Z,2020-03-02T23:34:04Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw c9e6841482b299fceadc5ad548c2dbf58a8f1227,News and release notes for 0.37,2020-02-26T01:22:02Z,2020-02-26T01:22:02Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 78198df668e189d2c9afe5f922fe4277d84b2f30,Fixed incorrect target name,2020-02-26T01:10:30Z,2020-02-26T01:10:30Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 411056c4c43e74f2b3d0e3bc1175e7998516b1b3,"Only --reload on changes to immutable databases, closes #494",2020-02-24T19:44:59Z,2020-02-24T19:44:59Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw b031fe97636b80b05fec409ee1dffb7d044fd4e9,Updated README news for 0.36,2020-02-22T03:04:46Z,2020-02-22T03:04:46Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 962a7e16e5e73c000d87815194b8261428e0938e,"Release notes for 0.36, refs #679",2020-02-22T03:01:57Z,2020-02-22T03:01:57Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw d6335f1f3184683b05131dd12a73ff1115aefba3,"Added shapefile-to-sqlite, datasette-mask-columns, datasette-auth-existing-cookies, datasette-auth-existing-cookies Refs #679",2020-02-22T02:53:35Z,2020-02-22T02:53:35Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 7c6a9c35299f251f9abfb03fd8e85143e4361709,"Better tests for prepare_connection() plugin hook, refs #678",2020-02-22T02:27:07Z,2020-02-22T02:27:07Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 6303ea50483e432bbef193d1c54c2bf54e53f157,"prepare_connection() now takes datasette and database args, refs #678",2020-02-22T01:32:40Z,2020-02-22T01:32:40Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw d3f2fade88984dc6157b2ff69c24aa5a070f9716,"Refactored run_sanity_checks to check_connection(conn), refs #674",2020-02-15T17:56:48Z,2020-02-15T17:56:48Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw f1442a8151f66ceef6517b6d3d045e2ec1d0f0ec,Replaced self.ds.execute with db.execute in more places,2020-02-14T02:20:05Z,2020-02-14T02:20:05Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw efa54b439fd0394440c302602b919255047b59c5,"Docs for .render_template(), refs #577 Also improved parameter documentation for other methods, refs #576",2020-02-14T01:58:32Z,2020-02-14T01:58:32Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 3ffb8f3b98252531d11897fd431711e9b8045ace,".add_database() and .remove_database() methods, refs #671 Also made a start on the Datasette class documentation, refs #576",2020-02-14T01:25:27Z,2020-02-14T01:27:57Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw cf5f4386ef6fea9179bbaaec2e187917934759d7,"Run black against everything, not just tests and datasette dirs",2020-02-13T23:02:10Z,2020-02-13T23:02:10Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw b38a792ef0fb9c9e4057afd196bb9439edd9c0e9,"Apply Black, update copyright to be 2017-2020",2020-02-13T23:00:35Z,2020-02-13T23:01:14Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 0091dfe3e5a3db94af8881038d3f1b8312bb857d,"More reliable tie-break ordering for facet results I was seeing a weird bug where the order of results running tests on my laptop was inconsistent, causing pytest failures even though the order of tests in Travis CI was fine. I think the fix is to explicitly state how facet ordering ties on the count should be resolved.",2020-02-13T06:36:42Z,2020-02-13T06:36:42Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 298a899e792ebd0cd82a5f01b613c31f19082e51,Reformatted with black,2020-02-13T06:05:46Z,2020-02-13T06:05:46Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 30b6f71b306a43605c99bef79302ed5cb22d1924,Updated release notes with #653,2020-02-05T02:17:30Z,2020-02-05T02:17:47Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw ce12244037b60ba0202c814871218c1dab38d729,Release notes for 0.35,2020-02-05T02:02:32Z,2020-02-05T02:02:32Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw e7f60d2a9b59752e20de8412f7b0a3e9a5359a31,"Release notes for Datasette 0.34, plus news updates",2020-01-30T00:09:01Z,2020-01-30T00:09:01Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 34d77d780f68b778fd9d6ebbaf69f250436f055f,"gcloud run is now GA, s/beta// (#660) Thanks, @glasnt",2020-01-21T23:28:11Z,2020-01-21T23:28:11Z,f9a18a704545f33349d7b28b24faf7063846ae0a,Katie McLaughlin,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,813732,glasnt,9599,simonw 3c861f363df02a59a67c59036278338e4760d2ed,"_search= queries now correctly escaped, fixes #651 Queries with reserved words or characters according to the SQLite FTS5 query language could cause errors. Queries are now escaped like so: dog cat => ""dog"" ""cat""",2019-12-29T18:48:13Z,2019-12-29T18:48:30Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 59e7014c8a0f4102d7dc79f517540c55c49e1554,Release 0.33,2019-12-22T16:27:04Z,2019-12-22T16:27:04Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw dc98b0f41defa4eb45d5b88fd9dfcfb1c5bbe144,Link to JSK Medium post from news,2019-12-22T16:16:58Z,2019-12-22T16:16:58Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw d54318fc7f2565e6121920ce1ea9cb8b700e629a,"Added template_debug setting, closes #654",2019-12-22T16:04:45Z,2019-12-22T16:04:45Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw ceef5ce684214a9b55d242043206cb10b13c878a,Documentation for --port=0,2019-12-22T15:42:30Z,2019-12-22T15:42:30Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 85c19c4037ddc757794c63a04faad07a6ea57ae6,Apply black,2019-12-22T15:34:20Z,2019-12-22T15:34:20Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 9c3f0b73de059ec2b953f952fc1eadecb8f396c5,Bump to uvicorn 0.11,2019-12-22T15:33:04Z,2019-12-22T15:33:04Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 16665c9ee63df40bc262661ce6ed728a946375db,Better handling of corrupted database files,2019-12-22T15:31:40Z,2019-12-22T15:31:40Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw d6b6c9171f3fd945c4e5e4144923ac831c43c208,Include asyncio task information in /-/threads debug page,2019-12-05T06:46:39Z,2019-12-05T06:47:17Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw a562f2965552fb2dbbbd74df245c9965ee23d886,Examples of things you can do with plugins,2019-11-27T19:19:11Z,2019-11-27T19:19:11Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw df2879ee2a88f94ae590067e019237afc2189e00,"Better documentation for --static, closes #641 https://datasette.readthedocs.io/en/stable/custom_templates.html#serving-static-files",2019-11-26T02:31:42Z,2019-11-26T02:31:42Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw aca41618f8761f99c47c8ae8e81b07a6d4af4d7a,index view is also important for plugin hooks,2019-11-25T17:04:39Z,2019-11-25T17:04:39Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw d3e1c3017ee2f606a731208d59fe48805cdc3259,"Display 0 results, closes #637",2019-11-23T06:07:01Z,2019-11-23T06:07:01Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw fd137da7f83c117b18e189707a1039e319dd5c91,"Suggest column facet only if at least one count > 1 Fixes #638",2019-11-22T00:56:55Z,2019-11-22T00:56:55Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 440a70428c624f6e27b630026acdba2032acc9a7,"Include rowid in filter select, closes #636",2019-11-19T23:01:10Z,2019-11-19T23:01:10Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw a9909c29ccac771c23c2ef22b89d10697b5256b9,"Move .execute() from Datasette to Database Refs #569 - I split this change out from #579",2019-11-15T22:49:45Z,2019-11-15T22:52:03Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw a95bedb9c423fa6d772c93ef47bc40f13a5bea50,Release notes for 0.32,2019-11-14T23:18:53Z,2019-11-14T23:20:21Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw b51f258d00bb3c3b401f15d46a1fbd50394dbe1c,Release notes for 0.31.2,2019-11-13T16:48:36Z,2019-11-13T16:48:36Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw f52451023025579ae9a13de4a7f00d69200184cd,"Fix ""publish heroku"" + upgrade to use Python 3.8.0 Closes #633. Closes #632.",2019-11-13T16:42:47Z,2019-11-13T16:42:47Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 848dec4deb0d3c140a4e0394cac45fbb2593349b,"Fix for datasette publish with just --source_url (#631) Closes #572",2019-11-13T04:28:42Z,2019-11-13T04:28:42Z,6c3a98f05c13cf31297e605e4d584d20fc12ab6b,Stanley Zheng,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,3683993,qwo,9599,simonw a22c7761b61baa61b8e3da7d30887468d61d6b83,Fixed typo in release notes,2019-11-13T02:18:39Z,2019-11-13T02:18:39Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 16265f6a1a7c547e3925e0fc2d6b88754afb0435,Release notes for 0.31.1,2019-11-13T02:18:04Z,2019-11-13T02:18:04Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 7f89928062b1a1fdb2625a946f7cd5161e597401,"Removed code that conditionally installs black Since we no longer support Python 3.5 we don't need this any more.",2019-11-12T05:33:51Z,2019-11-12T05:33:51Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw c633c035dc8d4c60f1d13cb074918406bbdb3734,Datasette 0.31 in news section,2019-11-12T05:26:56Z,2019-11-12T05:26:56Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 76fc6a9c7317ce4fbf3cc3d327c849f7274d960a,Release notes for 0.31,2019-11-12T05:17:59Z,2019-11-12T05:18:17Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 5bc2570121aea8141ff88790e214765472882b08,"Include uvicorn version in /-/versions, refs #622",2019-11-12T04:45:12Z,2019-11-12T04:45:12Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 28c4a6db5b5e512db630d7ba6127196185de67c7,"CREATE INDEX statements on table page, closes #618",2019-11-10T01:29:36Z,2019-11-10T01:29:36Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 83fc5165ac724f69cd57d8f15cd3038e7b30f878,"Improved UI for publish cloudrun, closes #608",2019-11-08T02:48:39Z,2019-11-08T02:48:39Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw f9c146b893856a48afa810ebcce1714f30d0d3a2,Removed unused special_args_lists variable,2019-11-07T00:55:44Z,2019-11-07T00:55:44Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw c30f07c58e410ee296b28aeabe4dc461dd40b435,"Removed _group_count=col feature, closes #504",2019-11-06T05:12:55Z,2019-11-06T05:12:55Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 931bfc66613aa3e22f8314df5c0d0758baf31f38,"Handle spaces in DB names (#590) Closes #503 - thanks, @rixx",2019-11-04T23:16:30Z,2019-11-04T23:16:30Z,b90d9715d7c0881515e9d6aa98923ed89d445945,Tobias Kunze,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,2657547,rixx,9599,simonw 52fa79c6075f0830ff635b81d957c64d877a05aa,"Use select colnames, not select * for table view - refs #615",2019-11-04T23:03:48Z,2019-11-04T23:03:48Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 9db22cdf1809fb78a7b183cd2f617cd5e26efc68,"pk__notin= filter, closes #614",2019-11-04T04:11:55Z,2019-11-04T04:11:55Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw ee330222f4c3ee66c2fe41ebc76fed56b9cb9a00,"Offer to format readonly SQL (#602) 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. Thanks, @rixx!",2019-11-04T02:39:55Z,2019-11-04T02:39:55Z,b90d9715d7c0881515e9d6aa98923ed89d445945,Tobias Kunze,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,2657547,rixx,9599,simonw 2bf7ce5f517d772a16d7855a35a8a75d4456aad7,"Fix CSV export for nullable foreign keys, closes #612",2019-11-02T23:12:46Z,2019-11-02T23:12:46Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw c3181d9a840dff7be8c990b21f5749db393a4ea0,Release notes for 0.30.2,2019-11-02T22:47:20Z,2019-11-02T22:47:20Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 14da70525b35e1a44cd45c19101385467057f041,"Don't show 'None' as label for nullable foreign key, closes #406",2019-11-02T22:29:40Z,2019-11-02T22:29:40Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw ed57e4f99018c1d520858f55f6eee4eb1cc2af3d,"Plugin static assets support both hyphens and underscores in names Closes #611",2019-11-01T22:15:10Z,2019-11-01T22:15:10Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw ffae2f0ecde1ca92e78d097665df820d3b7861e6,"Better documentation of --host, closes #574",2019-11-01T21:57:49Z,2019-11-01T21:57:49Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 7152e76eda9049574643261e7a471958cc16d0b9,"Don't suggest array facet if column is only [], closes #610",2019-11-01T21:45:59Z,2019-11-01T21:45:59Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw ba5414f16b49781261d0f41a16f2210d5fa3976f,Only inspect first 100 records for #562,2019-11-01T19:38:15Z,2019-11-01T19:38:15Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 50287e7c6bb0987536e5515f05945721c4515e9a,Only suggest array facet for arrays of strings - closes #562,2019-11-01T19:37:46Z,2019-11-01T19:37:46Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 937828f946238c28e77ba50e0b2e649c874560f7,"Use distinfo.project_name for plugin name if available, closes #606",2019-11-01T05:39:59Z,2019-11-01T05:39:59Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 3ca290e0db03bb4747e24203c445873f74512107,Fixed dumb error,2019-10-30T19:00:21Z,2019-10-30T19:00:21Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw f5f6cbe03cbf05737d848f44779372b5daa79a25,Release 0.30.1,2019-10-30T18:56:04Z,2019-10-30T18:56:04Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw e2c390500e6782aa476a7edc05c46cf907875a6e,"Persist _where= in hidden fields, closes #604",2019-10-30T18:49:26Z,2019-10-30T18:49:26Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw f4c0830529a9513a83437a9e1550bbe27ebc5c64,"Always pop as_format off args dict (#603) Closes #563. Thanks, @chris48s",2019-10-21T02:03:08Z,2019-10-21T02:03:08Z,5a0a3d8ffa3a5fa7036ede67cc44274222c2f074,chris48s,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,6025893,chris48s,9599,simonw 8050f9e1ece9afd0236ad38c6458c12a4ad917e6,Update news in README,2019-10-19T01:08:04Z,2019-10-19T01:08:04Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw debea4f971c180af64e16b83be98d830e9dee54f,Release 0.30,2019-10-19T01:05:47Z,2019-10-19T01:06:37Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw b6ad1fdc7068cb8248787843e7438d1f19fa2e3a,"Fixed bug returning non-ascii characters in CSV, closes #584",2019-10-18T05:23:01Z,2019-10-18T05:23:01Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 3e864b1625f3142e6ff084f9b41247f2f9f60f80,"Use --platform=managed for publish cloudrun, closes #587",2019-10-17T21:51:45Z,2019-10-17T21:51:45Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 12cec411cae73ba7211429da12cd32c551fe17b1,"Display metadata footer on custom SQL queries (#589) Closes #408 - thanks, @rixx!",2019-10-14T03:53:21Z,2019-10-14T03:53:21Z,b90d9715d7c0881515e9d6aa98923ed89d445945,Tobias Kunze,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,2657547,rixx,9599,simonw 908fc3999e06f3ccd3bb8ad0539490bbc7809748,"Sort databases on homepage by argument order - #591 Closes #585 - thanks, @rixx!",2019-10-14T03:52:33Z,2019-10-14T03:52:33Z,b90d9715d7c0881515e9d6aa98923ed89d445945,Tobias Kunze,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,2657547,rixx,9599,simonw af2e6a5cf186a7200d76cb67ac30fa59cc24d84e,"Button to format SQL, closes #136 SQL code will be formatted on page load, and can additionally be formatted by clicking the ""Format SQL"" button. Thanks, @rixx!",2019-10-14T03:46:12Z,2019-10-14T03:46:12Z,b90d9715d7c0881515e9d6aa98923ed89d445945,Tobias Kunze,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,2657547,rixx,9599,simonw fffd69ec031b83f46680f192ba57a27f0d1f0b8a,Allow EXPLAIN WITH... - closes #583,2019-10-06T17:23:58Z,2019-10-06T17:23:58Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw a314b761866d250c16f1ff6dd682010cf4181eb4,Added /-/threads debugging page,2019-10-02T15:32:47Z,2019-10-02T15:35:25Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 0fc8afde0eb5ef677f4ac31601540d6168c8208d,Changelog for 0.29.3 release,2019-09-03T00:40:53Z,2019-09-03T00:40:53Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw f04deebec4f3842f7bd610cd5859de529f77d50e,Refactored connection logic to database.connect(),2019-07-25T13:07:44Z,2019-07-26T10:22:57Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 27cb29365c9f5f6f1492968d1268497193ed75a2,"Fix numerous typos (#561) Thanks, @minho42!",2019-07-26T10:25:44Z,2019-07-26T10:25:44Z,710d89efa471054d77ad1b7e2b26e2e78e1153e7,Min ho Kim,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,15278512,minho42,9599,simonw a9453c4dda70bbf5122835e68f63db6ecbe1a6fc,"Fixed CodeMirror on database page, closes #560",2019-07-14T03:38:40Z,2019-07-14T03:38:40Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 6abe6faff6b035e9334dd05f8c741ae9b7a47440,Release 0.9.2,2019-07-14T03:04:05Z,2019-07-14T03:04:05Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 90d4f497f9b3f6a5882937c91fddb496ac3e7368,"Fix plus test for unicode characters in custom query name, closes #558",2019-07-14T02:49:24Z,2019-07-14T02:49:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 5ed450a3328bd6a6a918474eeb5446d8a704df1c,Fixed breadcrumbs on custom query page,2019-07-14T02:05:39Z,2019-07-14T02:05:58Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw f2006cca80040871439055ae6ccbc14e589bdf4b,Updated release notes,2019-07-11T16:27:28Z,2019-07-11T16:27:28Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 2a94f3719fb2c4335fcda374fa92f87272b02d34,Release 0.29.1,2019-07-11T16:17:55Z,2019-07-11T16:17:55Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw cc27857c722c172b3c9bd93c92f02e19f2a55d6c,Removed unused variable,2019-07-11T16:14:24Z,2019-07-11T16:14:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 74ecf8a7cc45cabf369e510c7214f5ed85c8c6d8,"Fix static mounts using relative paths and prevent traversal exploits (#554) Thanks, @abdusco! Closes #555",2019-07-11T16:13:19Z,2019-07-11T16:13:19Z,3684ad6084bc36bc5a059f0d6eb929bcf9854536,Abdus,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,3243482,abdusco,9599,simonw 9ca860e54fe480d0a365c0c1d8d085926d12be1e,"Add support for running datasette as a module (#556) python -m datasette Thanks, @abdusco",2019-07-11T16:07:44Z,2019-07-11T16:07:44Z,3684ad6084bc36bc5a059f0d6eb929bcf9854536,Abdus,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,3243482,abdusco,9599,simonw fb7ee8e0ad59a15083234a48e935525f6e7257dd,Changelog for 0.29 release,2019-07-08T03:14:27Z,2019-07-08T03:14:27Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 2d04986c4438cdfd3bb9d156d9dfcf830cb87b49,"Added datasette-auth-github and datasette-cors plugins to Ecosystem Closes #548",2019-07-08T02:02:27Z,2019-07-08T02:02:27Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw aa4cc99c0221a98850f8c801c329aac40f243b7b,"Removed facet-by-m2m from docs, refs #550 Will bring this back in #551",2019-07-08T01:22:05Z,2019-07-08T01:22:05Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw c5542abba564a0b320a1201a8cc85b48c743005d,"Removed ManyToManyFacet for the moment, closes #550",2019-07-07T23:21:11Z,2019-07-07T23:21:11Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 9998f92cc05e6061a81af6cf194c3caa4d0759c1,"Updated custom facet docs, closes #482",2019-07-07T23:19:02Z,2019-07-07T23:19:02Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 912ce848b9fa8b1642c800b446f504518bc39f2a,"Fix nav display on 500 page, closes #545",2019-07-07T20:25:38Z,2019-07-07T20:26:45Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 787dd427de97dcbd0843611f1aef6d157d8bb0b6,"white-space: pre-wrap for table SQL, closes #505",2019-07-07T20:21:50Z,2019-07-07T20:26:38Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw f80ff9b07b5ecdfeca4aa81f5728812a22bfb019,"min-height on .hd Now it should be the same size on the homepage as it is on pages with breadcrumbs",2019-07-07T20:16:48Z,2019-07-07T20:16:48Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw d95048031edb02bbc9892879507f55a4f29c5459,"Split pypi and docker travis tasks (#480) Thanks @glasnt!",2019-07-07T20:03:19Z,2019-07-07T20:03:19Z,f9a18a704545f33349d7b28b24faf7063846ae0a,Katie McLaughlin,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,813732,glasnt,9599,simonw a18e0964ecd04593f227616538a80dee08768057,"Refactor templates for better top nav customization, refs #540",2019-07-05T20:34:41Z,2019-07-05T20:34:41Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 16fdabda978fa659bed0e8670a385dab3c2cd197,Better robustness in face of missing raw_path,2019-07-04T14:03:02Z,2019-07-04T14:03:02Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 107d47567dedd472eebec7f35bc34f5b58285ba8,Black,2019-07-04T05:56:13Z,2019-07-04T05:56:13Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 25ff0a8ba6b2e3247a66048ad173ba5ed8a38b80,"Fix for accidentally leaking secrets in /-/metadata, closes #538",2019-07-04T05:47:45Z,2019-07-04T05:47:45Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 4d2fdafe39159c9a8aa83f7e9bfe768bbbbb56a3,"Added asgi_wrapper plugin hook, closes #520",2019-07-03T03:57:28Z,2019-07-03T04:06:25Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw b9ede4c1898616512b5d204f9c941deff473cbe4,"Updated custom template docs, refs #521",2019-07-03T03:13:34Z,2019-07-03T03:23:05Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 13e4f9a676da91e271a243f18f3a4ebe4f84557a,"Unit test for _table custom template, refs #521",2019-07-03T03:06:22Z,2019-07-03T03:23:05Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw e7120d91f6ab7917b57b0e966259082d513c36ee,"Rename _rows_and_columns.html to _table.html, refs #521",2019-07-03T00:50:45Z,2019-07-03T03:23:05Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw c461357b4483f1cc44efb3f12cf91cc1fb45ab1d,"Default to raw value, use Row.display(key) for display, refs #521",2019-06-25T12:21:10Z,2019-07-03T03:23:05Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 754836eef043676e84626c4fd3cb993eed0d2976,"New experimental Row() for templates, refs #521",2019-06-25T12:02:42Z,2019-07-03T03:23:05Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 9e97b725f11be3f4dca077fe5569078a62ec2761,pip install -e .[docs] for docs dependencies,2019-06-25T12:08:04Z,2019-06-25T12:08:04Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 6341f8cbc7833022012804dea120b838ec1f6558,"Better coverage of sqlite-utils in FTS docs, closes #525",2019-06-24T16:28:42Z,2019-06-24T16:28:42Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 35429f90894321eda7f2db31b9ea7976f31f73ac,"Revert ""New encode/decode_path_component functions"" Refs #272 This reverts commit 9fdb47ca952b93b7b60adddb965ea6642b1ff523. Now that ASGI supports raw_path we don't need our own encoding scheme!",2019-06-19T00:22:26Z,2019-06-19T00:23:27Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw d4df640d187d01a0ee81c238082a690bbefd0800,"Refactored view class hierarchy, refs #272 See https://github.com/simonw/datasette/issues/272#issuecomment-502393107",2019-06-15T19:41:34Z,2019-06-15T19:41:34Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw aa911122feab13f8e65875c98edb00fd3832b7b8,Fix typo in install step: should be install -e (#500),2019-06-11T18:48:40Z,2019-06-11T18:48:40Z,6067f58a7236b3d01e4166f795a161c7469a447c,Tom MacWright,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,32314,tmcw,9599,simonw 2a4b892d6c0f6609ea48df0dc393397af2b7b1c1,Tidy up with Black,2019-05-28T02:28:47Z,2019-05-28T02:28:47Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 9c58d048ec4af8a35b680a5654c2a18985704f8b,"Fix pagination when sorted by expanded foreign key Closes #489",2019-05-28T02:23:18Z,2019-05-28T02:23:18Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw f069950a143b97b384ec39a86db28e6f2830947d,Removed obsolete __init__ method,2019-05-28T02:03:36Z,2019-05-28T02:03:36Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw de92c0513409e72af78e6796c47c8954fd47576e,Fixed duplicate function name,2019-05-28T01:49:57Z,2019-05-28T01:49:57Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 839e55bf0a5cc2ef4d47074b7d804f7f2d5accb3,"Start of unit tests for Database class, refs #485",2019-05-28T01:42:30Z,2019-05-28T01:42:30Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw bd4dbc8519c24c2799dfa5e69bb3dc37a3f3092e,"Rename InterruptedError => QueryInterrupted, closes #490",2019-05-28T00:16:36Z,2019-05-28T00:16:36Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw edb36629e7356f70f42b9d37fea5dfe9cc3c364a,"Database.get_outbound_foreign_keys() refactor Following this, the only module that ever makes calls to the low-level execute_against_connection_in_thread() method is datasette/database.py",2019-05-27T18:41:44Z,2019-05-27T18:41:44Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 20f98c3e20902c62db610e43155c476508ead4a4,"Databse.primary_keys(table) / fts_table(table) refactor, closes #488 Also cleaned up some unused imports spotted by the linter.",2019-05-27T18:27:42Z,2019-05-27T18:27:42Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 3fe21b91bb37b0dded09f73e119b5e1ae5035d85,Typo,2019-05-27T18:27:21Z,2019-05-27T18:27:21Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 6569287d9001fb7e37f99b4bc5eddb78d047fa6f,"Refactored ConnectedDatabase to datasette/database.py Closes #487",2019-05-27T05:07:27Z,2019-05-27T05:07:43Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 026c84db30bd0a75ecde146a80a5d142078dc299,"Refactor Datasette methods to ConnectedDatabase Refs #487",2019-05-27T04:56:43Z,2019-05-27T04:56:43Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 182a3017c24e3fa3af60e4ac0c91c7e48f8736fd,Sort keys to past tests in Python 3.5,2019-05-25T16:22:02Z,2019-05-25T16:22:02Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 5ef3b2d6c902622b349a35d33eefc39f2a85e59e,"Don't use -v with pytest in Travis It seems to slow things down more than I expected.",2019-05-25T16:19:30Z,2019-05-25T16:19:30Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 9bd39672dead0da8570a9e68b70f9ca7a2b4e63e,"Better label detection, refs #485 This needs unit tests.",2019-05-25T16:14:57Z,2019-05-25T16:14:57Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw d923d847545e829bf946bb9170bebfc7c3f9d993,"Facet by many-to-many, closes #365",2019-05-25T16:05:52Z,2019-05-25T16:06:32Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 6e79fecf7e57adf89e072c7ce3a70a83d3d10ec4,Travis now uses pytest -v,2019-05-23T05:54:40Z,2019-05-23T05:54:40Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 172da009d890aa029cff7138b4dcfd4f60948525,"Added ?_through= table argument, closes #355 Also added much more interesting many-to-many fixtures - roadside attractions!",2019-05-23T05:44:34Z,2019-05-23T05:45:12Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 967230c90e7467d4adb5df5a5732ece0247cf536,"Facet by date, closes #481",2019-05-21T06:09:22Z,2019-05-21T06:09:22Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 2d14f21f85d3a1fe0ff914e01fcacd089704f7aa,Updated tests for date(...) lookup,2019-05-21T06:06:19Z,2019-05-21T06:06:19Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw de4503a136617697648473bc37780c6799eb4d98,Fix ?col__date= for columns with spaces,2019-05-21T05:36:22Z,2019-05-21T05:36:56Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 70d2858067d3c4da0e17c1d39e03de89190e94b6,Doc typo fix (#479),2019-05-20T16:42:28Z,2019-05-20T16:42:28Z,798007d3f9547f7bcb9228088222d35f30b5b716,Thomas Wood,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,98555,IgnoredAmbience,9599,simonw e513a80afba30bca9eeebd71c5e6aa6d8a811f33,"Use -i with datasette publish, closes #469",2019-05-19T22:53:34Z,2019-05-19T22:53:34Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 48759d3b35de9fa1a89622587e38b286e0484997,New setup.py description,2019-05-19T21:57:47Z,2019-05-19T21:57:47Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw e518f76c5f5dd0138032bfb26387f5bb91086a3f,README for Datasette 0.28 release,2019-05-19T21:37:49Z,2019-05-19T21:37:49Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 17243fc35546fefbdba7bf7f3bc6ab13b06e39e3,Release notes for 0.28 - closes #463,2019-05-19T21:24:12Z,2019-05-19T21:24:12Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw a9d138702c5b4d1d5d9402272b030c3c3d945593,"Docs for facet-by-JSON-array, closes #477",2019-05-19T21:19:35Z,2019-05-19T21:19:35Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw f4eefdf19330bcd2e6867875a93a948c96912213,Do not allow downloads of mutable databases - closes #474,2019-05-19T20:41:09Z,2019-05-19T20:41:09Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 88976d6cd6e0f4809023149ce9f75a62975c9beb,"Source, license and about docs - closes #475",2019-05-19T20:13:27Z,2019-05-19T20:13:27Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 503fee891b81dfe10f4ecd7b6c3a1dca0eb0432b,"Removed 'datasette skeleton', closes #476",2019-05-19T20:05:38Z,2019-05-19T20:05:38Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 260085838887ee343f4d3b177c422e7aef5ade9d,Fixed some links,2019-05-19T18:17:35Z,2019-05-19T18:17:35Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 870f6dd55fc5e7bc2f9db4ab22f90b7a734e402a,Replaced a straggling 'datasette publish now' reference,2019-05-19T18:12:53Z,2019-05-19T18:12:53Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 7d8573d6724a13d5003e48d75682323ee1e55692,"Rename ""datasette publish now"" to ""datasette publish nowv1"" Also added an alias so ""datasette publish now"" continues to work. Closes #472",2019-05-19T18:06:51Z,2019-05-19T18:06:51Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 81ba98a5096e3cded20966b816df6eebfce76f26,"New performance documentation, closes #421",2019-05-19T05:31:03Z,2019-05-19T05:31:03Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw db9dbfb816e1e9e4a0845884035eeaeb3110668e,"?_hash=1 no longer respected for mutable databases Closes #471, refs #419",2019-05-16T15:10:25Z,2019-05-16T15:10:25Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw cccea85be6aaaeadb31f3b588ec7f732628815f5,"/-/databases sorts alphabetically Should fix test failure in Python 3.5",2019-05-16T14:56:13Z,2019-05-16T14:56:13Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 0dad111d24856ee6012850dac19929a48dc0a59f,"New introspection endpoint: /-/databases - closes #470 Refs #419 and #465",2019-05-16T14:49:34Z,2019-05-16T14:49:34Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 21b57cdf9a4ede0f9444f15a3bd182be3b06f2c0,"serve --inspect-file=X now populates cached table counts Closes #462",2019-05-16T14:30:32Z,2019-05-16T14:30:32Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 909e66dfdb9b43eed718004eba903497bc67b25a,"Removed .inspect() and /-/inspect.json Refs #462 /-/inspect.json may return in some shape in #465",2019-05-16T14:14:10Z,2019-05-16T14:15:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw a88b599cce14cb10226c846ea93438e80b3b7911,Improved introduction copy on Plugins docs page,2019-05-16T05:18:02Z,2019-05-16T05:18:02Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 725b5b6a69f7fad9355524948942c632f8411d5b,Re-ordered documentation index page,2019-05-16T05:14:33Z,2019-05-16T05:14:33Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 12350e8b8a5e55f0fba14bb37ca725d751056c92,Fixed broken link to global-power-plants demo,2019-05-16T05:12:36Z,2019-05-16T05:12:36Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 8461b930d5d4d3a282289b6663b252037ebd45d3,Wording tweaks,2019-05-16T05:09:06Z,2019-05-16T05:09:06Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 8d639dd0966888aacd56cc6fc4b03a6851dd06df,Docs on how to use sphinx-autobuild,2019-05-16T05:03:37Z,2019-05-16T05:03:37Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 623c552ff4e2eda9cc710063a7cc674aa49264f4,"'Try Datasette without installing anything using Glitch' Also new 'Play with a live demo' section, both at the top of the Getting Started documentation page. https://datasette.readthedocs.io/en/latest/getting_started.html Closes #464",2019-05-16T04:57:26Z,2019-05-16T04:57:36Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 666c37415a898949fae0437099d62a35b1e9c430,"publish heroku now uses Python 3.6.8 Also refactored temporary_heroku_directory out of utils.py",2019-05-16T04:32:23Z,2019-05-16T04:32:23Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 2ad9d15cd6901654e6801e2faa29e6fc08bae5fa,"Table counts now handles SQL Logic Error too I tried running Datasette against 22 database files at once and ran into a weird error where the table counts broke with an SQL Logic Error exception. Easy fix: catch that exception too and treat it the same as a regular Interrupted error.",2019-05-16T03:55:28Z,2019-05-16T03:55:28Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw b7fe722f0541c8c026e93dc59cfcff6c6201ddfd,Removed rogue print(),2019-05-16T03:25:51Z,2019-05-16T03:25:51Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw faf33515b2e6ef8b891e7c9693c66aba2a77dc54,"Sometimes sort tables by number of relationships, closes #460",2019-05-16T03:23:33Z,2019-05-16T03:23:33Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 689cf9c139f57d6a3fd61e0c62fe66c793f234ae,"Index page only shows row counts for smaller databases The index page now only shows row counts for immutable databases OR for databases with less than 30 tables provided it could get a count for each of those tables in less than 10ms. Closes #467, Refs #460",2019-05-16T03:02:33Z,2019-05-16T03:02:33Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 79303163b249829182f2e8d8c2d45e4526aa174f,"Row count fix + sort index page databases alphabetically Sorting alphabetically should fix a test failure in Python 3.5 Refs #460",2019-05-16T00:40:10Z,2019-05-16T00:40:10Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 5d6b2c30f15c36bcf49906acda7f15ec6232c984,"Include views on homepage, fix table counts If we have less than 5 tables we now also show one or more views in the summary on the homepage. Also corrected the logic for the row counts - we now count hidden and visible tables separately. Closes #373, Refs #460",2019-05-16T00:28:07Z,2019-05-16T00:28:07Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw e04511410f57e88c806455b9182a853bf07122a2,"Don't show hidden tables on index page, closes #455 Refs #460. Also bulked out HTML index page unit tests.",2019-05-14T15:46:57Z,2019-05-14T15:46:57Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 24bf79d2f01f373eafcb41eaa1279a13711eff25,"Run sanity checks, not .inspect(), on startup Also fixes tests that did NOT like a call to run_until_complete in the Datasette() constructor.",2019-05-11T23:22:55Z,2019-05-11T23:22:55Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw da0b3ce2b76227f1cd0cfdd3df361712c17ddcd0,"New run_sanity_checks mechanism, for SpatiLite Moved VirtualSpatialIndex check into a new mechanism that should allow us to add further sanity checks in the future. To test this I've had to commit a binary sample SpatiaLite database to the repository. I included a build script for creating that database. Closes #466",2019-05-11T22:55:30Z,2019-05-11T22:55:30Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw c692cd291111050483a32bea1ee08e994a0b781b,Fix test ordering,2019-05-11T22:03:52Z,2019-05-11T22:03:52Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw a187c81e0caf92ed52a380f262b6b5eabb399897,Black + fix broken test,2019-05-11T21:45:59Z,2019-05-11T21:45:59Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw c0d1b4c32297453adaa4c159edee9be0a9617f2b,"""datasette inspect foo.db"" now just calculates table counts Refs #462 * inspect command now just outputs table counts * test_inspect.py is now only tests for that CLI command * Updated some relevant documentation * Removed docs for /-/inspect since that is about to change",2019-05-11T21:36:57Z,2019-05-11T21:36:57Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw ce09e5d2d392634eced44c3c8d603d7c628e2822,Fixed tests relating to #459,2019-05-11T20:58:22Z,2019-05-11T20:58:22Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 05cabaebd99b4aa388096de0a03fb52d08f6c117,"Pass --token to now alias, refs #459",2019-05-11T20:35:34Z,2019-05-11T20:35:34Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 09ef305c687399384fe38487c075e8669682deb4,"Fixed ""datasette publish now ... --alias=x"" The --alias argument can now be passed more than once. Also updated our Travis configuration to use this. Fixes #459",2019-05-11T20:20:36Z,2019-05-11T20:20:36Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw a0d444837f6ce3fdaf6b0664605f74dd4a7f8215,"Finished implementation of ?_trace=1 debug tool I redesigned the JSON output and added a handy ""traceback"" key showing three relevant lines of the current traceback for each logged query. Closes #435",2019-05-11T19:06:22Z,2019-05-11T19:06:22Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 37adf3229038137de82a4e7331075212e7e94367,Changelog for 0.27.1,2019-05-11T18:34:13Z,2019-05-11T18:34:13Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw de005b9b7d3db72375e6b8b048d1616a98e6347a,Fixed 500 error on homepage,2019-05-10T03:58:19Z,2019-05-10T05:28:16Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw ad789eaaea069046d3b293d2c650a60acd72ced7,Added some things to .gitignore,2019-05-10T03:54:44Z,2019-05-10T05:28:16Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 9f8d9fe262866ff3463f8e61214dcc6897bd5a9c,setup: add tests to package exclusion (#458),2019-05-10T01:54:50Z,2019-05-10T01:54:50Z,5e571aa122bb7440d7e40e22fd627b3fbbf12c38,Veit Heller,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,7725188,hellerve,9599,simonw f825e2012109247fa246e2b938f8174069e574f1,Run black and update docs for #457,2019-05-09T16:47:58Z,2019-05-09T16:48:13Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw b80b03ac9a9b8fc676ae17570b32f5439545198e,"datasette publish cloudrun --service=x, closes #457",2019-05-09T16:45:01Z,2019-05-09T16:45:01Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 2db977d8f30e0eb8b7cda1481a4a8852b414915d,"tests/fixtures.py can now write out plugins too This command: python tests/fixtures.py \ fixtures.db \ metadata.json \ fixtures-plugins/ Will now create the fixtures.db and metadata.json files, AND create a folder called fixtures-plugins/ containing two test plugins. You can then run it like this: datasette fixtures.db \ -m metadata.json --plugins-dir=fixtures-plugins/",2019-05-06T02:50:33Z,2019-05-09T16:44:21Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 9fdb47ca952b93b7b60adddb965ea6642b1ff523,"New encode/decode_path_component functions ASGI cannot differentiate between / and %2F in a URL, so we need an alternative scheme for encoding the names of tables that contain special characters such as / For background, see https://github.com/django/asgiref/issues/51#issuecomment-450603464 Some examples: ""table/and/slashes"" => ""tableU+002FandU+002Fslashes"" ""~table"" => ""U+007Etable"" ""+bobcats!"" => ""U+002Bbobcats!"" ""U+007Etable"" => ""UU+002B007Etable""",2019-05-05T22:36:04Z,2019-05-09T16:44:21Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw ec2db345e9465ee4ce3880dc62dcd453e66bcbca,Fixed crash on /:memory: page,2019-05-05T18:01:14Z,2019-05-05T18:01:14Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 9617e92aa819ec7d7f09b9e44656ebba90c67f67,"Removed pointless return variable handle_request() always returns None anyway.",2019-05-05T17:58:35Z,2019-05-05T17:58:35Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 831515b834b1bf465a5c64e69ce505d22f75b35b,"Respect --cors for error pages, closes #453",2019-05-05T11:59:45Z,2019-05-05T12:12:03Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 66c87cee0c7344c7877373c60b180c766c206101,"Mark codemirror files as vendored (#367) This should stop GitHub from incorrectly stating that Datasette is 46% JavaScript.",2019-05-03T21:11:19Z,2019-05-03T21:11:19Z,93b11f15fd4dc15002baf3d9160dc6eb928bd883,Jaap Roes,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,48517,jaap3,9599,simonw 93c65d29ba372fa2262a641c0fecb7a071d998d6,Fixed 500 error on /-/metadata page,2019-05-03T20:40:24Z,2019-05-03T20:42:59Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw f853d5592ec7f901a50381de22a26a9ab098f885,"""python3 -m pip"" is clearer (thanks @jaap3) (#368)",2019-05-03T18:18:42Z,2019-05-03T18:18:42Z,93b11f15fd4dc15002baf3d9160dc6eb928bd883,Jaap Roes,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,48517,jaap3,9599,simonw 01b3de5b66742f0f661183e9e2ef66be3600e831,"Unit test for binary data display, refs #442",2019-05-03T16:43:59Z,2019-05-03T16:45:06Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw d555baf508de71a5e3dc9a9aed2c13f6f202956d,"Suppress rendering of binary data - thanks @russss (#442) 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-05-03T16:44:48Z,2019-05-03T16:44:48Z,cd9d55c7c0a7cc0ee69155676fd5e9fc6e1b884b,Russ Garrett,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,45057,russss,9599,simonw bade9daeb234e35e216adfe5f6d99f489892b2f8,"Docs for 'datasette publish cloudrun', refs #434",2019-05-03T16:16:35Z,2019-05-03T16:16:58Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 75a21fc2a136ccfc9da7bbf521cf288e63c9707f,"datasette publish cloudrun (#434) - thanks, @rprimet New publish subcommand that publishes using the new Google Cloud Run platform. datasette publish cloudrun database.db",2019-05-03T13:59:01Z,2019-05-03T13:59:01Z,8ff51bbea01fdafe1fb3502111343b563f7d5a1b,Romain Primet,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,10352819,rprimet,9599,simonw bf229c9bd88179c8ec16bd65fd4fb28ab4241c2e,"Pass view_name to extra_body_script hook (#443) 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-03T13:12:19Z,2019-05-03T13:12:19Z,cd9d55c7c0a7cc0ee69155676fd5e9fc6e1b884b,Russ Garrett,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,45057,russss,9599,simonw 470cf0b05d4fda0d2563f81c7e32af13fe346ccc,"Add a max-line-length setting for flake8 (#444) This stops my automatic editor linting from flagging lines which are too long. It's been lingering in my checkout for ages. 160 is an arbitrary large number - we could alter it if we have any opinions (but I find the line length limit to be my least favourite part of PEP8).",2019-05-03T13:11:27Z,2019-05-03T13:11:27Z,cd9d55c7c0a7cc0ee69155676fd5e9fc6e1b884b,Russ Garrett,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,45057,russss,9599,simonw 53d2f00b732488e0204332da181fc256aa00f41c,"Implemented ArrayFacet, closes #359",2019-05-03T00:21:27Z,2019-05-03T00:21:27Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw efc93b8ab5a21e3802f75f08d5e41409f5684b5d,"Entirely removed table_rows_count table property We were not displaying this anywhere, and it is now expensive to calculate. Refs #419, #420",2019-05-02T05:29:47Z,2019-05-02T05:29:47Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 3651eedf20b86ad30f510bf762fb25790bb3560c,"Show 'many rows' if count times out, refs #420",2019-05-02T05:20:24Z,2019-05-02T05:20:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw ad9de774f75ba41f2a627a9d2cecd61050bac901,"Added missing file, refs #438",2019-05-02T05:10:23Z,2019-05-02T05:10:23Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw f553a670216960043ec7e62ff35d42db78903ff0,"Don't load setuptools plugins during test runs Uses pattern from https://docs.pytest.org/en/latest/example/simple.html#detect-if-running-from-within-a-pytest-run Closes #438",2019-05-02T05:09:03Z,2019-05-02T05:09:03Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 033cf0bcbbcadd0256d0c43fb7b9d3053727b4fe,"DatabaseView no longer uses .inspect(), closes #420",2019-05-02T01:12:58Z,2019-05-02T01:13:26Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 50d2d1aac985f440b36e6847e3ddacb4a6bf4d4b,Fixed bug where metadata.json hidden tables were ignored,2019-05-02T00:54:48Z,2019-05-02T00:54:48Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw e7151ccccf4a0d10e1fcf3832e18c5199c16dea0,"Index page no longer uses inspect data - refs #420 Also introduced a mechanism whereby table counts are calculated against a time limit but immutable databases have their table counts calculated on server startup.",2019-05-02T00:39:39Z,2019-05-02T00:39:39Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 669fa21a71c9920923df0f64907c095c0e7d889f,Include request duration in traces,2019-05-01T23:16:15Z,2019-05-01T23:27:14Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw cf406c075433882b656e340870adf7757976fa4c,"New plugin hook: register_output_renderer hook (#441) Thanks @russss! * Add register_output_renderer hook 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-05-01T23:01:56Z,2019-05-01T23:01:56Z,cd9d55c7c0a7cc0ee69155676fd5e9fc6e1b884b,Russ Garrett,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,45057,russss,9599,simonw bac4e01f40ae7bd19d1eab1fb9349452c18de8f5,"Ensure sqlite_timelimit correctly clears handler If an error occurred inside the block the progress handler (used to enforce a time limit) was not being correctly cleared, resulting in timeout errors potentially occurring during subsequent SQL queries. The fix is described here: https://docs.python.org/3/library/contextlib.html#contextlib.contextmanager",2019-04-21T19:02:24Z,2019-04-21T19:02:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 11b352b4d52fd02a422776edebb14f12e4994d3b,"Fix for Python 3.5, refs #435",2019-04-21T18:20:20Z,2019-04-21T18:20:20Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 9d73e3c8bd5f3aae24a75b62c420de166992b30c,"Note that trace data format is very likely to change, refs #435",2019-04-21T17:53:28Z,2019-04-21T17:53:28Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw e4e73a537add40b92a02e55af004b0d26a3ccdce,"Test for ?_trace=1, refs #435",2019-04-21T17:46:56Z,2019-04-21T17:46:56Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 58a862cee4a065d463da0a08b87134efb6b6e18d,"?_trace=1 now adds SQL trace info to JSON/HTML response Also added documentation for it. Refs #435",2019-04-21T17:41:16Z,2019-04-21T17:41:16Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 7d01ca34a10b5f8a993859cfd05790eb2870b94e,"Added ?_trace=1 option to trace SQL Currently just dumps all SQL statements out on the console.",2019-04-21T05:28:15Z,2019-04-21T05:34:34Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 2b11948d7c5f4548325c941d92eaf428852a19d8,"New ConnectedDatabase.mtime_ns property I plan to use this for some clever table count caching tricks",2019-04-20T17:50:45Z,2019-04-20T17:50:45Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 9c77e6e355ec718d76178a7607721d10a66b6aef,"Support multiple filters of the same type Closes #288",2019-04-15T23:44:17Z,2019-04-15T23:44:17Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 583b22aa28e26c318de0189312350ab2688c90b1,New ?column__date=yyyy-mm-dd filter,2019-04-15T22:54:54Z,2019-04-15T22:54:54Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 1c6649b19b09ea018d91a86db9c019a940fe36fc,"New colname__in=x,y,z filter, closes #433",2019-04-15T22:42:28Z,2019-04-15T22:43:22Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 2c19a27d15a913e5f3dd443f04067169a6f24634,"Documentation for filters, plus new documentation unit test https://simonwillison.net/2018/Jul/28/documentation-unit-tests/",2019-04-15T22:41:11Z,2019-04-15T22:41:11Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 6da567dda953c7ac0e5500f17d8e220467a3499e,"Extract and refactor filters into filters.py This will help in implementing __in as a filter, refs #433",2019-04-15T21:51:20Z,2019-04-15T21:51:20Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw d4bfb8461c68ba2912f6d01fe159ce186a9040c6,Removed accidental extra default plugins module,2019-04-13T19:33:23Z,2019-04-13T19:33:23Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw d1075b8259b06e6002aaecc9a1167a4db9b2c2f4,Cleaned up pylint warnings,2019-04-13T19:20:10Z,2019-04-13T19:20:10Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 13ee3c222f8ee967a2f716cca11bee4ea51fea46,Moved BaseView.absolute_url() to Datasette,2019-04-13T19:16:05Z,2019-04-13T19:16:05Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 274ef43bb7b129ddc2e68805b4f4ff3776fb9503,Moved expand_foreign_keys() from TableView to Datasette,2019-04-13T18:48:00Z,2019-04-13T18:48:00Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw f2c767c2221b06c0fb4962cfa430e038359019d3,Fixed broken link in documentation,2019-04-13T01:56:51Z,2019-04-13T01:57:43Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw e11cb4c66442abca2a6b6159521a6cf4da8739c1,"Persist show/hide state better, closes #425",2019-04-12T05:00:47Z,2019-04-12T05:00:47Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw db74cf0144df3e2a017c40a3a36ff5e1a78d7e92,"?_fts_table= and ?_fts_pk= arguments, closes #428",2019-04-12T04:21:17Z,2019-04-12T04:21:17Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 78e45ead4d771007c57b307edf8fc920101f8733,"New ?tags__arraycontains=tag lookup against JSON fields Part one of supporting facet-by-JSON-array, refs #359",2019-04-10T15:17:19Z,2019-04-10T15:27:52Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 3a208a41d4dce35b97eca8b25f37055c3fda5aed,"TableView.data() no longer uses .inspect, refs #420 BUT... it does a count(*) against the whole table which may take unbounded time. Fixing this is part of #422",2019-04-07T03:47:10Z,2019-04-07T03:47:10Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 36bd6558b00be027bb4b7dba0c8d200da0ca95df,"expandable_columns() no longer uses inspect, refs #420",2019-04-07T03:46:08Z,2019-04-07T03:46:08Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw db02311ebf3711309b231d007967bcf8b026a026,"foreign_key_tables no longer uses inspect, refs #420",2019-04-07T03:23:30Z,2019-04-07T03:23:30Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw f23120a9641e521d669788e9938fb3cf2754d710,RowView.data() no longer uses inspect refs #420,2019-04-07T03:17:47Z,2019-04-07T03:17:47Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw c882e9262f64e0fc7c2fc89c611bdb768c069af7,"display_columns_and_rows() no longer uses inspect, refs #420",2019-04-07T03:11:08Z,2019-04-07T03:11:08Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 53bf875483d98861314db3a0cdcec8f5ce22ee96,"expand_foreign_keys() no longer uses inspect, refs #420",2019-04-07T02:56:07Z,2019-04-07T02:56:07Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 97331f3435ba1583a0f9dbcaffc25de8894cf1f8,"sortable_columns_for_table() no longer uses inspect() Refs #420",2019-04-07T01:58:51Z,2019-04-07T01:58:51Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw d8851e0011f256ce52775aa776e0e4323db50c8e,Removed rogue print(),2019-04-07T01:54:51Z,2019-04-07T01:54:51Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 468c6fd9532f08859c77ae670307fd5f4c6632f5,"DatabaseDownload no longer uses .inspect(), refs #420",2019-04-01T02:04:17Z,2019-04-01T02:04:17Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 29a3896fe1e09d5c35a90d55690c9f71fae81e24,".database_url(database) no longer needs inspect, refs #420",2019-03-31T23:55:38Z,2019-03-31T23:55:38Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 7d0f668556b6d9a6c3d70a7b8a07a542857bbb56,".resolve_db_name() and .execute() work without inspect Refs #420",2019-03-31T23:51:52Z,2019-03-31T23:51:52Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 0209a0a344503157351e625f0629b686961763c9,"table_exists() now uses async SQL, refs #420",2019-03-31T18:02:22Z,2019-03-31T18:02:22Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 82fec6048148b58748040a7e2caa163387e982a3,"Fix for TypeError File ""../datasette/app.py"", line 138, in __init__ self.files = files + immutables TypeError: can only concatenate tuple (not ""list"") to tuple",2019-03-17T23:36:35Z,2019-03-17T23:36:35Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 47032636b55718dd711670f19b753f4ada9e8f2f,"'datasette serve -i immutable.db' option, refs #419",2019-03-17T23:25:15Z,2019-03-17T23:25:15Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw afe9aa3ae03c485c5d6652741438d09445a486c1,"show/hide link for SQL on custom query page Closes #415",2019-03-15T05:22:24Z,2019-03-15T05:22:35Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 285566790879b31d2fdd2a8c6f56825162eb71b9,Fix for test failure with Click 7.0,2019-03-15T05:00:13Z,2019-03-15T05:00:13Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw b3e739332624c2d4f2668a105afd727af774100b,"Allow more recent versions of Click Closes #414",2019-03-15T04:41:43Z,2019-03-15T04:41:43Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 9743e1d91b5f0a2b3c1c0bd6ffce8739341f43c4,"Support for :memory: databases If you start Datasette with no files, it will connect to :memory: instead. When starting it with files you can add --memory to also get a :memory: database.",2019-03-14T23:42:38Z,2019-03-15T03:54:42Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw bf6b0f918de4aeee7c1036ac975ce2fb23237da7,about and about_url metadata options,2019-03-10T21:37:11Z,2019-03-15T03:54:42Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 4462a5ab2817ac0d9ffe20dafbbf27c5c5b81466,"Show size of database file next to download link, closes #172",2019-02-06T04:53:44Z,2019-02-06T04:58:29Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 436b8bc1d17c2ab415800ab209204f94e7f7929e,Datasette 0.27,2019-02-01T03:47:05Z,2019-02-01T03:47:05Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw b944bcd0f0e0914a9f308945faffed88ad6c3b4c,"Added documentation on the Datasette Ecosystem https://datasette.readthedocs.io/en/latest/ecosystem.html",2019-02-01T03:36:07Z,2019-02-01T03:36:07Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw b5dd83981a7dbff571284d4d90a950c740245b05,Export option: _shape=array&_nl=on for newline-delimited JSON,2019-01-28T01:40:23Z,2019-01-28T01:40:23Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 909cc8fbdfc9c05e447f40e9a73489809602c3cd,New 'datasette plugins' command to list installed plugins,2019-01-26T20:01:16Z,2019-01-26T20:01:16Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 7950105c278b140e6cb665c68b59df219870f9bc,Python 3.7.2 as base for Docker image,2019-01-13T23:33:50Z,2019-01-13T23:33:50Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw a418c8b44f82d456be523c8690cf7236bb648c22,"Expose current git tag to Docker build, closes #399",2019-01-13T23:09:48Z,2019-01-13T23:09:48Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw c3a78eb05c0b146b2eb37b50c1668b9430b8f50a,app_client() fixture doesn't need to take **kwargs,2019-01-13T22:23:44Z,2019-01-13T22:23:44Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 4722acc73ce761556b18f5dcbe36b7fef2ee2c69,Release 0.26.1,2019-01-11T00:51:38Z,2019-01-11T00:51:38Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 50d8d8216dcc5557e6b581a13bb871f033722117,"Dockerfile now builds SQLite 3.26.0, closes #397",2019-01-11T00:47:54Z,2019-01-11T00:47:54Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw c4c970f3c90fa79a6c6527fe963baf9e07b023c8,Bump aiohttp to 3.5.3 to fix a warning,2019-01-11T00:47:15Z,2019-01-11T00:47:15Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 8ce7866312f9b7c873541d6e3662ada3e850fa85,"compile_options output in /-/versions, closes #396",2019-01-11T00:44:37Z,2019-01-11T00:44:50Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 788f218e267ad9e29df904c6c6a61e78bcc8e744,Supress pytest warnings from 3rd party modules,2019-01-06T04:44:34Z,2019-01-06T04:44:34Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 424e146697309a54c05d5d1ba1f840849ddbafdc,Datasette 0.26 release notes,2019-01-03T02:53:59Z,2019-01-03T02:53:59Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 996e8822d2cb551c0ed821ff1fda24af905332d3,"Fix CSV export hidden form fields, closes #393",2019-01-03T02:43:56Z,2019-01-03T02:43:56Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 8b8ae55e7c8b9e1dceef53f55a330b596ca44d41,"Pass --token to 'now alias', if provided",2019-01-02T05:35:16Z,2019-01-02T05:35:16Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw d95b46b09bf53530b212cc17202a242daa62fd64,"datasette publish now --alias option You can now use --alias to attempt to alias after you deploy. Also updated now.json to use version: 1",2019-01-02T05:14:46Z,2019-01-02T05:15:54Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw eac08f0dfc61a99e8887442fc247656d419c76f8,--reload now also reloads if databases change on disk,2018-12-20T15:51:08Z,2018-12-20T15:51:08Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 1e2db8547be111e7c1583f096f40cec7c0824281,Improved release process documentation,2018-12-16T21:47:26Z,2018-12-16T21:47:39Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw b5128fc53fce6a1bf3b16bad9f318451bc1d1263,Release 0.25.2,2018-12-16T21:26:37Z,2018-12-16T21:26:37Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 84d7890b63f6aa43e7369fa8fc7a0a1bbf98c91f,Upgrade pytest to 4.0.2,2018-12-16T21:18:55Z,2018-12-16T21:18:55Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw c5f90dd1b20e41d1a3736dcbda5101d27279390b,Added docs on updating docs + the release process,2018-12-16T21:14:50Z,2018-12-16T21:14:50Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 54a59b9fdb40b9c86ff065a5b7047e6ef305bc22,Use python-3.6.7 runtime for Heroku deploys,2018-12-16T20:53:00Z,2018-12-16T20:53:00Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 3de8fac1d322cbab6c8c55899e0e8511b36337d0,"New make_app_client() pattern Because next version of pytest discourages calling fixture factories as functions",2018-11-20T17:16:31Z,2018-11-20T17:46:47Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw d0393e821e5914a7c1d659eaf0a5d612a1aa8e01,"Travis to use Python 3.7-dev for a little longer 3.7 produces a 403 forbidden error: https://travis-ci.org/simonw/datasette/jobs/450716231#L6",2018-11-05T06:45:38Z,2018-11-05T06:45:38Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw c2c03f8e7be6973ef3cbdb3ca424e55a81a956d7,Compatible with Python 3.7,2018-11-05T06:40:03Z,2018-11-05T06:40:03Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 3dc0b3fa8c9b9bd81540ffe20c8b7e7a72465274,Release 0.25.1,2018-11-05T06:31:41Z,2018-11-05T06:31:41Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw b6546da53516e148e6aa34ad94f3452da30040f8,"Use Zeit cloud v1 to avoid 100MB image limit Closes #366 - thanks @slygent",2018-11-05T06:22:34Z,2018-11-05T06:22:34Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 5debabd3fba1f0669081cefe55b67d333470bbd4,More human friendly 'what is Datasette' intro text,2018-11-05T06:04:23Z,2018-11-05T06:04:23Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 6b398c2971801d9a20cfdb7998f59020d5534e22,Link to dev environment instructions from installation guide,2018-10-27T17:34:31Z,2018-10-27T17:34:31Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 7dda8898c12720f1494cfd4761399e95211520a1,"Started contributing docs: setting up a dev environment https://datasette.readthedocs.io/en/latest/contributing.html",2018-10-27T17:12:19Z,2018-10-27T17:13:08Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 96af802352e49e35751e295e9846aa39c5e22311,"Travis applies :latest tag to Docker release, refs #329",2018-09-19T18:23:56Z,2018-09-19T18:23:56Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 57a71377c992753327a16b417daf79df7f506dd1,Releasing Datasette 0.25,2018-09-19T17:48:12Z,2018-09-19T17:48:12Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw b7257a21bf3dfa7353980f343c83a616da44daa7,"Fix json.loads in Python 3.5 3.5 requires a str, not a bytes https://travis-ci.org/simonw/datasette/jobs/421660555",2018-08-28T16:55:30Z,2018-08-28T16:55:30Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 1f54e092306b208125f39d06712b02895eb75168,Better docs for publish_subcommand() plugin hook,2018-08-28T10:59:50Z,2018-08-28T10:59:50Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw b7c6a9f9bd2bbd06ef64fef4a1fcc86fa0039039,"extra_css_urls(template, database, table, datasette) The extra_css_urls and extra_js_urls hooks now take additional optional parameters. Also refactored them out of the Datasette class and into RenderMixin. Plus improved plugin documentation to explicitly list parameters.",2018-08-28T10:56:57Z,2018-08-28T10:56:57Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw fbf446965b398a0a6c3e6bce72c0b9b0112498ab,"Refactoring: renamed ""name"" variable to ""database""",2018-08-28T10:17:13Z,2018-08-28T10:25:13Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 2e836f72d9a4e61341d75ea48e88314e0d006b65,"render_cell(value, column, table, database, datasette) The render_cell plugin hook previously was only passed value. It is now passed (value, column, table, database, datasette).",2018-08-28T10:03:01Z,2018-08-28T10:03:01Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 9e1fca4b016bbb2d4b2ab350ca1570ba6141afe8,Corrected indentation in metadata.rst,2018-08-28T09:56:34Z,2018-08-28T09:56:34Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 5cf0c6c91c077b8b69ea159c19f0c6fb02ab9c19,New plugin hook: extra_body_script,2018-08-28T08:56:44Z,2018-08-28T09:02:49Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 0a14a4846b29b4b60d153356ad926cbc461c45c7,Added plugin_config() method,2018-08-28T08:35:21Z,2018-08-28T08:35:21Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 1905c0336451b150b44478285ddb6878f5238519,New ds.metadata() method,2018-08-13T14:56:50Z,2018-08-28T07:45:39Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 0bd41d4cb0a42d7d2baf8b49675418d1482ae39b,Do not show default plugins on /-/plugins,2018-08-28T07:36:22Z,2018-08-28T07:36:22Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 2189be144002484c3abe5339a9c69aeca7b9889a,Refactor to use new datasatte.config(key) method,2018-08-11T20:06:45Z,2018-08-11T20:09:07Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw fe5b6ea95a973534fe8a44907c0ea2449aae7602,Hide 'view and edit SQL' if config.allow_sql turned off,2018-08-06T03:17:17Z,2018-08-06T03:17:17Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 7d0299edd40636037a06548736681b67385b499e,"fts_table and fts_pk metadata configs, available for both tables and views",2018-08-06T00:44:47Z,2018-08-06T00:44:47Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 5629aaca67437acce8af47acb06488bd9991420b,sortable_columns also now works with views,2018-08-06T00:29:23Z,2018-08-06T00:29:23Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 295d005ca48747faf046ed30c3c61e7563c61ed2,"Renamed variable, since docs are not written in Markdown",2018-07-28T04:56:51Z,2018-07-28T04:56:51Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 8128497b7946ab68fff703e207fc7c5b26b6e9c9,"Only run documented_views() fixture once per session Speeds up tests, because previously it ran once per view class.",2018-07-28T04:49:20Z,2018-07-28T04:49:20Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 788a542d3c739da5207db7d1fb91789603cdd336,"Docs for IndexView, TableView, RowView, closes #299 Also removed xfail from test_view_classes_are_documented, so any future *View classes that are added without documentation will cause the tests to fail.",2018-07-28T04:21:42Z,2018-07-28T04:21:42Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 8da6b0d542c7ea276df8b5467d4be6cd08cf867f,"Added labels so unit tests can detect docs, refs #299",2018-07-28T03:26:18Z,2018-07-28T03:26:18Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw e8625695a3b7938f37b64dff09c14e47d9428fe5,"xfail documentation unit tests for view classes, refs #299 More documentation unit tests. These ones check that every single **View class imported into the datasette/app.py module are covered by our documentation. Just one problem: they aren't documented yet. So I'm using the xfail pytest decorator to mark these tests as allowed-to-fail. When you run the test suite you now get a report of how many views still need to be documented, but it doesn't fail the tests. The output looks something like this: $ pytest tests/test_docs.py collected 31 items tests/test_docs.py ..........................XXXxx. [100%] ============ 26 passed, 2 xfailed, 3 xpassed in 1.06 seconds ============ Once I have documented all the views I will remove the xfail so any future views that are added without documentation will cause a test failure. We can detect that a view is documented by looking for ReST label in the docs, for example: .. _IndexView: Some view classes can be used to power multiple URLs - the JsonDataView class for example is used to power /-/metadata and /-/config and /-/plugins In this case, the second part of the label can indicate the variety of page, e.g: .. _JsonDataView_metadata: The test will pass as long as there is at least one label that starts with _JsonDataView.",2018-07-28T03:13:26Z,2018-07-28T03:13:26Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 3b68314d8f59d92fe7b2150cf747a082192ef9b7,Unit tests for publish now/heroku - closes #348,2018-07-26T05:45:47Z,2018-07-26T05:45:47Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 1fb518618c1c246c58daf5085247b430f2aea29f,"""datasette publish heroku"" improvements * Fixed bug where --title= didn't work if -m not provided * Now using Python 3.6.6 instead of Python 3.6.3",2018-07-26T05:43:01Z,2018-07-26T05:43:01Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 3ac21c749881d0fb1c35b0f9b7a819e29f61c5c1,Unit test confirming all plugin hooks are documented,2018-07-26T04:09:33Z,2018-07-26T04:09:59Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 9b85c599079e7dc37e7be125839711c982afc526,Removed unnecessary print statements from tests,2018-07-24T16:04:06Z,2018-07-24T16:04:06Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw bd1db56936d7aa09f5ee87ac8146e19b71ae8b42,"'Usage: datasette', not 'Usage: cli' - refs #336",2018-07-24T16:03:07Z,2018-07-24T16:03:07Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 74ad3ff4af4ebb499b07c6ce984def7d88fcbbb7,"Ensure --help examples in docs are always up to date, closes #336 Unit tests now check that docs/*.txt help examples are all up-to-date. I ran into a problem here in that the terminal_width needed to be more accurately defined - so I replaced update-docs-help.sh with update-docs- help.py which hard-codes the terminal width.",2018-07-24T16:00:10Z,2018-07-24T16:01:23Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 28872a1fa789f314b0342f4e6182f1c78d6e2bca,Release notes for 0.24 release,2018-07-24T04:34:28Z,2018-07-24T04:34:38Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 581b4c97ee3d8339b1866480375e20b2fd2f6818,"URLify URLs in custom SQL queries, closes #298",2018-07-24T03:56:32Z,2018-07-24T03:56:32Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 3955771feaf47ddb6d281bba28ca2d6281551ed7,"Unit tests for advanced export box HTML, closes #320",2018-07-24T03:38:31Z,2018-07-24T03:38:31Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 700d83d8adfeb3859ebc93828951e5048cb0e425,?_json_infinity=1 for handling Infinity/-Infinity - fixes #332,2018-07-24T03:07:57Z,2018-07-24T03:07:57Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw b320f58d13e510d51e07187c8a75db856205b88f,'publish now' uses force_https_urls:on - closes #333,2018-07-24T01:51:43Z,2018-07-24T01:51:43Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw f24b49a1a8c202e5b28500eeb991173992a5ea18,"New force_https_urls option, refs #333",2018-07-23T15:58:29Z,2018-07-23T15:58:29Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 4e82d0e64d1e8c085375278e5b8ecadeab56ddb5,Removed unused imports,2018-07-23T15:39:00Z,2018-07-23T15:39:00Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 6e37f091edec35e2706197489f54fff5d890c63c,"Support title/description for canned queries, closes #342 Demo here: https://latest.datasette.io/fixtures/neighborhood_search",2018-07-16T02:33:30Z,2018-07-16T02:33:30Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw aec3ae53237e43b0c268dbf9b58fa265ef38cfe1,"Docs for datasette publish and package, closes #337 Also introduced a new mechanism for ensuring the --help examples in the documentation reflect the current output of the --help commands, via a new update-docs-help.sh script. Closes #336",2018-07-11T02:04:13Z,2018-07-11T02:05:46Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 9281a4a804961b06ab133e042db839402f8a7796,New tagline: 'A tool for exploring and publishing data',2018-07-11T01:57:54Z,2018-07-11T02:05:41Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw fc9b1cc1368cff455478c10f7b400bf5afc7d8e3,"New truncate_cells_html config for truncating cells, closes #330",2018-07-10T16:20:41Z,2018-07-10T16:20:41Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 2db2ae4f21d0ba5b84359f611da7b123262d92c7,"Show custom error message if SpatiaLite needed, closes #331",2018-07-10T15:13:27Z,2018-07-10T15:13:27Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 17863d108b9c8672b5e102d97858a96ca715a9d6,"datasette publish heroku now supports --extra-options, closes #334",2018-07-10T01:45:56Z,2018-07-10T01:45:56Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 6df6f712b36f0fe75694174906e31242427a8d1d,Release notes for 0.23.2,2018-07-08T05:28:45Z,2018-07-08T05:28:45Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 6541ce633ebf56770106221b0984751270adb2c7,"Fix for row pages for tables with / in, closes #325",2018-07-08T05:21:51Z,2018-07-08T05:21:51Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 8ac71a61278d2d1b24ad3f3ab68048dac31467bc,Removed rogue print statement left over from #309,2018-07-08T03:09:45Z,2018-07-08T03:09:45Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 71b46fd9f5b323d746b108d1f674b4007d5c252c,Cleaned up view constructors to accept just a datasette instance,2018-06-30T14:51:57Z,2018-07-08T02:58:11Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw d08faa89872d9ec8d3c8e76d85164ccd84596811,"Fix for weird nested exception in RequestTimeout I saw this error: sanic.exceptions.RequestTimeout: Request Timeout During handling of the above exception, another exception occurred: Traceback (most recent call last): File ""/Users/simonw/Dropbox/Development/datasette/venv/lib/python3.6/site-packages/sanic/handlers.py"", line 82, in response response = handler(request=request, exception=exception) File ""/Users/simonw/Dropbox/Development/datasette/datasette/app.py"", line 512, in on_exception if request.path.split(""?"")[0].endswith("".json""): AttributeError: 'NoneType' object has no attribute 'path' Strangely ""if request and request.path..."" did not work here, because the Sanic Request class extends builtins.dict and hence evaluates to False if it has no headers.",2018-06-29T12:52:51Z,2018-07-08T02:58:11Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw ad66c0da2bb171cdcb0d13b307b3fd7900b77963,"Installation instructions, including docker image - closes #328",2018-06-28T03:59:58Z,2018-06-28T03:59:58Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 64c2fea8dfcecb06a3f9c674a96948e7366985fc,"CSV export now respects --cors, fixes #326",2018-06-24T00:59:37Z,2018-06-24T00:59:37Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw dea86b9fba78e032ad09673e884e764387daf209,Changelog for 0.23.1,2018-06-21T15:37:13Z,2018-06-21T15:37:13Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 0104dccca9d04916a9a5ba03874c92d9a9704096,"Updated Travis password, refs #317",2018-06-21T15:33:14Z,2018-06-21T15:33:14Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw e843ce26e536bb1a105da808c8f765b2c56e9c7b,"Correctly display empty strings in HTML table, closes #314",2018-06-21T15:26:18Z,2018-06-21T15:26:18Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 120f20cd97c14b4d9102d9c309b27cc2c0e4ee17,"Allow ""."" in database filenames, closes #302",2018-06-21T15:21:09Z,2018-06-21T15:21:09Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 97ae66ccabd0e2eae5a7880ac93bd2ac26bb355e,"404s ending in slash redirect to remove that slash, closes #309",2018-06-21T15:13:07Z,2018-06-21T15:13:07Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 3b53eea38267420bb78a2a604e23e5f816eccce2,"Fixed incorrect display of compound primary keys with foreign key references Closes #319",2018-06-21T14:56:28Z,2018-06-21T14:56:28Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 3683a6b626b2e79f4dc9600d45853ca4ae8de11a,"Docs + example of canned SQL query using || concatenation Closes #321",2018-06-21T04:54:36Z,2018-06-21T04:54:36Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw aeeb50f61b7b1bf8ccb61448f8b8253db457d350,"Correctly display facets with value of 0 - fixes #318 Also added comprehensive unit test for facet display HTML.",2018-06-21T04:30:13Z,2018-06-21T04:30:13Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw fdfbbbb9ee0d02fd4d43dfc42382252fa2287d6d,Default 'expand labels' to checked in CSV advanced export,2018-06-20T16:15:33Z,2018-06-20T16:15:33Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw e04f5b0d348ef7275a0a5ab9eb53527105132885,Release notes for 0.23,2018-06-18T15:11:57Z,2018-06-18T15:11:57Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 54f805dca3fd9e05d9276aedec83036a2e36578c,Advanced export box now obeys allow_csv_stream config - refs #266,2018-06-18T15:11:11Z,2018-06-18T15:11:11Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 04c896160a9981d37beb71529ac717a6fcf1b195,"Renamed 'stream all records' to 'stream all rows', refs #266",2018-06-18T14:25:44Z,2018-06-18T14:25:44Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw bb4a9fbf362d0791e148195d86815d65ebc26fba,"Docs for CSV export, refs #266",2018-06-18T14:12:21Z,2018-06-18T14:12:21Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 398d29c2873ad22a8e779fab12e65bdbf598f823,"Don't link to #export on custom query results The advanced CSV export options don't work for custom SQL queries. Refs #266",2018-06-18T06:14:48Z,2018-06-18T06:14:48Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 83f4ef7ec7aa5b4cac9892b3e80cbca00c9080db,"Improved UI for CSV/JSON export, closes #266",2018-06-18T06:03:22Z,2018-06-18T06:05:18Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 0d7ba1ba676828dc7c8dda78ebe7921f7986fc18,"Default to _labels=on on JSON/CSV links with foreign keys, refs #266",2018-06-17T22:56:55Z,2018-06-17T22:56:55Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 6a32684ebba89dfe882e1147b23aa8778479f5d8,"Release tagged versions to PyPI and now alias When a new tagged version is pushed, this should: * bdist_wheel it and release to https://pypi.python.org/pypi/datasette * Set an alias of v0-22-1.datasette.io for the deployed demo",2018-06-17T22:19:21Z,2018-06-17T22:24:47Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 958b75c69841ef5913da86e0eb2df634a9b95fda,"Set Now deployment name with datasette publish, refs #313",2018-06-17T21:46:30Z,2018-06-17T21:46:30Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 438244c2853185e46bef8089ff9bb934442ec14b,"Try using a different name for each Now deploy Refs #313",2018-06-17T21:39:45Z,2018-06-17T21:39:45Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw f0c17229b7a7914d3da02e087dfd0e25d8321448,"Deploy latest.datasette.io on commit to master - #313 If the tests pass in Travis CI, deploy an instance containing Datasette's test fixtures to https://latest.datasette.io/ Also set up an alias of truncated-commit-hash.datasette.io",2018-06-17T21:24:39Z,2018-06-17T21:24:39Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw db1e6bc182d11f333e6addaa1a6be87625a4e12b,"--version-note for datasette, datasette publish and datasette package This is a relatively obscure new command-line argument that helps solve the problem of showing accurate version information in deployed instances of Datasette even if they were deployed directly from source code. You can pass --version-note to datasette publish and package and it will then in turn be passed to datasette when it starts: datasette --version-note=hello fixtures.db Now if you visit /-/versions.json you will see this: { ""datasette"": { ""note"": ""hello"", ""version"": ""0+unknown"" }, ""python"": { ""full"": ""3.6.5 (default, Jun 6 2018, 19:19:24) \n[GCC 6.3.0 20170516]"", ""version"": ""3.6.5"" }, ... } I plan to use this in some Travis CI configuration, refs #313",2018-06-17T20:14:55Z,2018-06-17T21:19:39Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 538565de3a126a6aa1cdb4b4ba91135507411af0,"datasette publish now --token=X argument Lets you specify the auth token to use when deploying to Now. Tokens can be created at https://zeit.co/account/tokens",2018-06-17T19:46:52Z,2018-06-17T21:16:08Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 6a32df334de1a7e3579879dd7ee073613be9b91b,"Improved fixtures to support publication The fixtures database created by our unit tests makes for a good ""live"" demo of Datasette in action. I've improved the metadata it ships with to better support this use-case. I've also improved the mechanism for writing out fixtures: you can do this: python tests/fixtures.py fixtures.db To get just the fixtures database written out... or you can do this: python tests/fixtures.py fixtures.db fixtures.json To get metadata which you can then serve like so: datasette fixtures.db -m fixtures.json Refs #313",2018-06-17T19:16:04Z,2018-06-17T19:16:04Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 0357774c946b7a35871715d7fc23b3f04f519af8,Renamed test_tables.db to fixtures.db in unit tests,2018-06-17T18:34:16Z,2018-06-17T18:34:16Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw ed631e690b81e34fcaeaba1f16c9166f1c505990,"?_labels= and ?_label=COL to expand foreign keys in JSON/CSV These new querystring arguments can be used to request expanded foreign keys in both JSON and CSV formats. ?_labels=on turns on expansions for ALL foreign key columns ?_label=COLUMN1&_label=COLUMN2 can be used to pick specific columns to expand e.g. `Street_Tree_List.json?_label=qSpecies&_label=qLegalStatus` { ""rowid"": 233, ""TreeID"": 121240, ""qLegalStatus"": { ""value"" 2, ""label"": ""Private"" } ""qSpecies"": { ""value"": 16, ""label"": ""Sycamore"" } ""qAddress"": ""91 Commonwealth Ave"", ... } The labels option also works for the HTML and CSV views. HTML defaults to `?_labels=on`, so if you pass `?_labels=off` you can disable foreign key expansion entirely - or you can use `?_label=COLUMN` to request just specific columns. If you expand labels on CSV you get additional columns in the output: `/Street_Tree_List.csv?_label=qLegalStatus` rowid,TreeID,qLegalStatus,qLegalStatus_label... 1,141565,1,Permitted Site... 2,232565,2,Undocumented... I also refactored the existing foreign key expansion code. Closes #233. Refs #266.",2018-06-16T22:18:57Z,2018-06-16T22:18:57Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 0c22fa8f09e9fce7434d5fc83bcfb73c25795205,"Cleaned up view_definition/table_definition code in table view Also moved those out of standard JSON into just the HTML template context",2018-06-16T17:33:17Z,2018-06-16T17:33:17Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 7e0caa1e62607c6579101cc0e62bec8899013715,Extract string-to-bool logic into utils.py,2018-06-16T16:44:31Z,2018-06-16T16:44:31Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw d0a578c0fc07b9d9208cd9de981bdf7385a26c49,"Switch back from python:3.6-slim-stretch to python:3.6 Turns out slim-stretch doesn't include gcc which means it can't build various Sanic dependencies. So `datasette publish now ...` was broken. Fixes #310",2018-06-16T16:28:55Z,2018-06-16T16:28:55Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 5bda4a477c52b6d1cd7d0ca25382dbb20bda40ea,"Fixed CSV tests - Python 3.6.5 and 3.6.3 apparently differ The test used to expect CSV to come back like this: hello world """" With the final blank value encoded in quotes. Judging by Travis failures, this behaviour changed between Python 3.6.3 and 3.6.5: https://travis-ci.org/simonw/datasette/jobs/392586661",2018-06-15T07:01:48Z,2018-06-15T07:01:48Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 3a79ad98eafb9da527a3b9d9d8fbeb81936b02e7,"Basic CSV export, refs #266 Tables and custom SQL query results can now be exported as CSV. The easiest way to do this is to use the .csv extension, e.g. /test_tables/facet_cities.csv By default this is served as Content-Type: text/plain so you can see it in your browser. If you want to download the file (using text/csv and with an appropriate Content-Disposition: attachment header) you can do so like this: /test_tables/facet_cities.csv?_dl=1 We link to the CSV and downloadable CSV URLs from the table and query pages. The links use ?_size=max and so by default will return 1,000 rows. Also fixes #303 - table names ending in .json or .csv are now detected and URLs are generated that look like this instead: /test_tables/table%2Fwith%2Fslashes.csv?_format=csv The ?_format= option is available for everything else too, but we link to the .csv / .json versions in most cases because they are aesthetically pleasing.",2018-06-15T06:51:23Z,2018-06-15T06:51:23Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw a246f476b4fe490f5450836b22961bc607e6b4b0,"Moved JsonDataView into views/special,py",2018-06-07T15:22:29Z,2018-06-07T15:22:29Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 864328e074d771a9b50fb1b01392541d7045fbb5,"Test client wrapper removing need for gather_request - refs #272 As part of decoupling from Sanic, this will make it easier to run tests against ASGI instead.",2018-06-05T03:53:12Z,2018-06-05T03:53:12Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw b252bdb7404de88b4fa6f5495a83a712201a12ce,Documented how to set multiple --config at once,2018-06-05T01:45:47Z,2018-06-05T01:45:47Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 29edbe90ffcdd4f6c2ff564ab1938dff151b40c4,"New cache_size_kb config for SQLite, closes #304",2018-06-04T16:02:07Z,2018-06-04T16:02:07Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 9277c6236a8216450d4ebe3242ce6d56c1a7e437,Fixed tests I broke in b18e45158,2018-05-31T14:47:22Z,2018-05-31T14:47:22Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 7381af85e6e8a2aa13cb308d37ebfe7550dd7331,"Hide sort select on larger screens, closes #300",2018-05-31T14:43:06Z,2018-05-31T14:43:06Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw a80e1d50b9394feee267d76398b5ab249817156c,"Show error on 'datasette publish heroku --spatialite', refs #301",2018-05-31T14:21:27Z,2018-05-31T14:21:27Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw b18e4515855c3f1eeca3dfcccdbb6df05869084a,"datasette publish/package --spatialite, closes #243 New command-line argument which causes SpatiaLite to be installed and configured for the published Datasette. datasette publish now --spatialite mydb.db",2018-05-31T14:16:50Z,2018-05-31T14:16:50Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 969771770fcf795daace72e2310804e699067cfe,"Upgrade pytest to 3.6.0 https://github.com/pytest-dev/pytest/issues/1875 made it impossible to declare a function as a fixture multiple times, which we were doing across different modules. The fix was to move our @pytest.fixture calls into decorators in the tests/fixtures.py module.",2018-05-31T13:40:30Z,2018-05-31T13:42:37Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 16398641d95db7374fddccc79d0f08e4d4c96ee1,SQL syntax highlighting in docs,2018-05-31T13:17:53Z,2018-05-31T13:17:53Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw d69ebce53385b7c6fafb85fdab3b136dbf3f332c,Fixed broken :ref:,2018-05-30T03:11:24Z,2018-05-30T03:11:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 1a8b0213e0152234b25f2777d5c6f61a41834c8a,Fixed broken test introduced in b0a95da96,2018-05-30T02:38:21Z,2018-05-30T02:38:21Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 27eff1809c21b7c1ae2ba33ebde1dac7f8bc8fbc,Expanded SpatiaLite docs to cover GeoJSON plus lat-lon spatial indexes,2018-05-30T02:32:30Z,2018-05-30T02:32:30Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw b0a95da96386ddf99816911e08df86178ffa9a89,"Show more useful error message for SQL interrupted, closes #142",2018-05-28T21:24:19Z,2018-05-28T21:24:19Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 98c8f0e7285fb58b7cbb38304e2ed4576774ad91,Moved plugin HTML tests from test_html to test_plugins,2018-05-28T21:23:48Z,2018-05-28T21:23:48Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 27c10f6482858f9654e31c800884d75304d50ed5,Missing half of last commit fefb0db8ae15,2018-05-28T20:42:48Z,2018-05-28T20:42:48Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw fefb0db8ae15199d0204af859ba1edc6ae98f84b,"Unit test for 02870e57, closes #291",2018-05-28T20:41:53Z,2018-05-28T20:41:53Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw a4d6acc23943759b46fa90ec68e500016b933410,"Use scope='session' for all fixtures This means they will only be executed once which makes sense since the database they create is immutable.",2018-05-28T20:41:06Z,2018-05-28T20:41:06Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 76d11eb768e2f05f593c4d37a25280c0fcdf8fd6,"New ?_json=colname argument for returning unescaped JSON Also extracted docs for special JSON arguments into a new section. Closes #31",2018-05-28T18:08:39Z,2018-05-28T18:08:39Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 02870e573154517f129cbc85e437d5f0105d7cbe,"Filter out duplicate JS/CSS URLs, refs #291 (testme)",2018-05-27T08:45:03Z,2018-05-27T08:45:03Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw c972d79b5a633cbd3e6a7934ae58bd60c57da3a2,Added docs on Importing shapefiles into SpatiaLite,2018-05-27T01:39:26Z,2018-05-27T01:39:26Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 7944a8b0de9f892713da9d31ef0085cd9bcc5ff3,"Added num_sql_threads config option, closes #285",2018-05-27T00:43:22Z,2018-05-27T00:43:22Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 276913b74803554e03e1617389f6998885ea8c06,"?_shape=arrayfirst, closes #287",2018-05-27T00:32:15Z,2018-05-27T00:32:15Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw b463f60158ccf791809cb51cba2cf7a14e491b36,"?_ttl= parameter and default_cache_ttl config Refs #285, Closes #289",2018-05-26T22:17:33Z,2018-05-26T22:17:33Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw a6afc21aba50e84ae5ca4dc7c899dfd6fd1619d9,Test that ensures all config options are documented,2018-05-26T22:11:04Z,2018-05-26T22:11:16Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw df71e8cea87542aa7a7be84fabca0adc1177728d,Fixed documentation typo,2018-05-26T18:04:43Z,2018-05-26T18:04:43Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 37f8361c6f7b3eeaa351c0cd93b6db1fdd2744ab,"Initial documentation on using SpatiaLite https://datasette.readthedocs.io/en/latest/spatialite.html",2018-05-26T18:04:09Z,2018-05-26T18:04:09Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw f98e62fe5ac48cd31362b7e2001b0262fa68ef3b,Fix for 500 error on /db?sql=x,2018-05-25T22:08:57Z,2018-05-25T22:08:57Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw b9b93583467986a72f34732fc87a201157ad83ea,"boolean --config are now case insensitive, refs #284",2018-05-25T05:53:58Z,2018-05-25T05:53:58Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw f722b0a730377d28e3b4e8292da2036f32896e02,"allow_sql config option to disable custom SQL, closes #284",2018-05-25T05:50:50Z,2018-05-25T05:50:50Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 50920cfe3d42483f15e2077c345427059fd19941,"allow_facet, allow_download, suggest_facets boolean --config Refs #284",2018-05-25T01:12:27Z,2018-05-25T01:12:27Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 81df47e8d95df895bec792466b3d7b34c8d5c509,"Moved .execute() method from BaseView to Datasette class Also introduced new Results() class with results.truncated, results.description, results.rows",2018-05-25T00:15:37Z,2018-05-25T00:15:53Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 5d6252788230d168ba09f379d1d2af867e3302ab,0.22.1 bugfix release,2018-05-23T14:00:01Z,2018-05-23T14:00:01Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 2bfd111d65c892e54b06c2c9498ce2b4cc3e67ff,"Faceting no longer breaks pagination, fixes #282",2018-05-23T13:41:14Z,2018-05-23T13:41:14Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 558d9d7bfef3dd633eb16389281b67d42c9bdeef,Datasette 0.22: Datasette Facets,2018-05-20T23:41:47Z,2018-05-20T23:41:47Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 0b8e5981a37c0da75ce4f4e6b6b5275681e2e0c5,Typo fix,2018-05-20T21:30:48Z,2018-05-20T21:30:48Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw bd3353a31f930c2e504094d79513cadbade43cda,"Added docs for introspection endpoints https://datasette.readthedocs.io/en/latest/introspection.html",2018-05-20T21:28:53Z,2018-05-20T21:28:53Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw f00137c8ac2bdb9767733b0d72bf204b034644a7,Only apply responsive table CSS to .rows-and-columns,2018-05-20T17:45:01Z,2018-05-20T17:45:01Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw f6183ff5fa715c68d13d6ae8c7b3b9f2c6ffc9f8,"Renamed --limit to --config, added --help-config, closes #274 Removed the --page_size= argument to datasette serve in favour of: datasette serve --config default_page_size:50 mydb.db Added new help section: $ datasette --help-config Config options: default_page_size Default page size for the table view (default=100) max_returned_rows Maximum rows that can be returned from a table or custom query (default=1000) sql_time_limit_ms Time limit for a SQL query in milliseconds (default=1000) default_facet_size Number of values to return for requested facets (default=30) facet_time_limit_ms Time limit for calculating a requested facet (default=200) facet_suggest_time_limit_ms Time limit for calculating a suggested facet (default=50)",2018-05-20T17:01:49Z,2018-05-20T17:01:49Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 918de9403e09ba607996a985be1779eddcf76151,"Only apply responsive table styles to .rows-and-column Otherwise they interfere with tables in the description, e.g. on https://fivethirtyeight.datasettes.com/fivethirtyeight/nba-elo%2Fnbaallelo",2018-05-20T15:10:46Z,2018-05-20T15:10:46Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw b8227556c6ef040e2299b113d1ec6e220586ffc3,"Suggested facets now use #fragment links Useful for pages with large amounts of content at the top like on https://fivethirtyeight.datasettes.com/fivethirtyeight-469e30d/nba-elo%2Fnbaallelo",2018-05-18T16:18:41Z,2018-05-18T16:18:51Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 39426ff0e43a406f42c03692d3dc9d4a1b7b9d52,"Added /-/limits and /-/limits.json, closes #270",2018-05-18T06:16:28Z,2018-05-18T06:16:28Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 08f4b7658fec97419eb34118a2cd5c8be805673f,"Show facets that timed out using new InterruptedError If the user requests some _facet= options that do not successfully execute in the configured facet_time_limit_ms, we now show a warning message like this: These facets timed out: rowid, Title To build this I had to clean up our SQLite interrupted logic. We now raise a custom InterruptedError exception when SQLite terminates due to exceeding a time limit. In implementing this I found and fixed a logic error where invalid SQL was being generated in some cases for our faceting calculations but the resulting sqlite3.OperationalError had been incorrectly captured and treated as a timeout. Refs #255 Closes #269",2018-05-18T06:07:45Z,2018-05-18T06:11:23Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw cef9a9a8701af86cc7df8b7939398185f0a76f5f,"--limit= mechanism plus new limits for facets Replaced the --max_returned_rows and --sql_time_limit_ms options to ""datasette serve"" with a new --limit option, which supports a larger list of limits. Example usage: datasette serve --limit max_returned_rows:1000 \ --limit sql_time_limit_ms:2500 \ --limit default_facet_size:50 \ --limit facet_time_limit_ms:1000 \ --limit facet_suggest_time_limit_ms:500 New docs: https://datasette.readthedocs.io/en/latest/limits.html Closes #270 Closes #264",2018-05-18T05:08:26Z,2018-05-18T05:08:26Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 8003a13331cb78774d613a8f3f1b204a33918088,"Empty string """" facets can now be selected in UI, refs #255",2018-05-17T13:34:42Z,2018-05-17T13:34:42Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 5e78d11c247f88946f4c0929b075df327235fe4a,Docs: Speeding up facets with indexes,2018-05-17T04:08:50Z,2018-05-17T04:08:50Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 7261584f0413b10a0ece98be802a6c7099fd53de,"Display currently selected facets better, refs #255",2018-05-17T02:42:31Z,2018-05-17T02:42:31Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 96aac7f9e94d94243a7ee524d0ad25501ec98f72,Facet documentation tweaks,2018-05-16T15:45:12Z,2018-05-16T20:50:34Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 4301a8f3ac69f2f54916e73cc90fcf216a9a3746,"Case insensitive querystring comparison, fix Python 3.5",2018-05-12T22:49:37Z,2018-05-12T22:49:37Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw eaaa3ea1498df0d4790f814e3d2f3fcc5ea28429,"Initial implementation of facets, plus tests and docs Refs #255",2018-05-12T22:29:06Z,2018-05-12T22:29:41Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 70ff615f1b831c4dce936e9f9fc57a9e8e71e547,"utils.path_with_added_args() improvements * Now covered by unit tests * Preserves original order * Can handle multiple args of the same name, e.g. ?bar=1&bar=2",2018-05-12T21:35:25Z,2018-05-12T21:44:09Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 694f8457153eba715db98098c412a96fcfbb944f,"Documentation for SQLite full-text search support, closes #253",2018-05-12T12:06:38Z,2018-05-12T12:06:38Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 04d21ccd089fcaf7a2b535d217fc541ab19aa54b,"/-/versions now includes SQLite fts_versions, closes #252",2018-05-11T13:19:25Z,2018-05-11T13:19:25Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw e10f8e1274267fdb9021832917c35cfd1ec6c714,Slight simplification of /-/inspect,2018-05-06T13:02:43Z,2018-05-06T13:05:38Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 62c08d0d7197264af678c2f6e0c6403196217184,"Revert ""Travis should now deploy new tags to PyPI if tests pass"" This reverts commit d39b2e357e34469728f300273ab07c3904ea7a2b. It failed with this error: https://travis-ci.org/simonw/datasette/jobs/375398977 Uploading distributions to https://upload.pypi.org/legacy/ Uploading datasette-0.21-py3-none-any.whl 100% 182k/182k [00:00<00:00, 694kB/s] HTTPError: 403 Client Error: Invalid or non-existent authentication information. for url: https://upload.pypi.org/legacy/",2018-05-05T23:22:21Z,2018-05-05T23:22:21Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 403211de632cd15f0820cc9399305fc43c187b47,Release Datasette 0.21,2018-05-05T23:15:38Z,2018-05-05T23:15:38Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw d39b2e357e34469728f300273ab07c3904ea7a2b,Travis should now deploy new tags to PyPI if tests pass,2018-05-05T23:15:05Z,2018-05-05T23:15:05Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 801381b7657dd084c11ac2fb6e3d0194cfaa3455,"Default tests to using a longer timelimit Every now and then a test will fail in Travis CI on Python 3.5 because it hit the default 20ms SQL time limit. Test fixtures now default to a 200ms time limit, and we only use the 20ms time limit for the specific test that tests query interruption. This should make our tests on Python 3.5 in Travis much more stable.",2018-05-05T22:41:37Z,2018-05-05T22:44:32Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 1259b8ac0bb25fc8af61c1948e2cc16860dca7ff,"Support _search_COLUMN=text searches, closes #237",2018-05-05T22:33:08Z,2018-05-05T22:33:08Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 4d6a568d6c1c9edabbaa8d58899b3857cd0185a7,"Unit tests for _search= feature, refs #237",2018-05-05T22:01:14Z,2018-05-05T22:01:14Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw ca290719edc2ba508585149a3e905f5c0bb23a8d,"Show version on /-/plugins page, closes #248",2018-05-04T18:04:33Z,2018-05-04T18:04:33Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw d4da4c92c8ff19f29ca0cb4b93cb7eaca4553e73,"?_size=max option, closes #249",2018-05-04T18:03:40Z,2018-05-04T18:03:40Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw bb87cf873017c70a2e9155c336067d4e82481dd6,"Added /-/versions and /-/versions.json, closes #244 Sample output: { ""python"": { ""version"": ""3.6.3"", ""full"": ""3.6.3 (default, Oct 4 2017, 06:09:38) \n[GCC 4.2.1 Compatible Apple LLVM 9.0.0 (clang-900.0.37)]"" }, ""datasette"": { ""version"": ""0.20"" }, ""sqlite"": { ""version"": ""3.23.1"", ""extensions"": { ""json1"": null, ""spatialite"": ""4.3.0a"" } } }",2018-05-02T08:46:54Z,2018-05-03T14:09:27Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw aa954382c3776d596f459897b0d984161293529d,"FTS tables now detected by inspect(), closes #240",2018-04-29T00:04:32Z,2018-04-29T00:04:32Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw f188ceaa2a3a5b2eab83425ad0f00cb0d364e24a,"New ?_size=XXX querystring parameter for table view, closes #229 Also added documentation for all of the _special arguments. Plus deleted some duplicate logic implementing _group_count.",2018-04-26T04:47:12Z,2018-04-26T04:47:12Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 4504d5160b2d86d4dae17b7c2f72bc3b02509c2c,"If max_returned_rows==page_size, increment max_returned_rows Fixes #230, where if the two were equal pagination didn't work correctly.",2018-04-26T04:04:12Z,2018-04-26T04:04:12Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 02ee31c8b45b872fff91e2059c15a20532e2d035,"New hidden: True option for table metadat, closes #239",2018-04-26T03:42:57Z,2018-04-26T03:42:57Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw d3a0069c54aeaeffd197740120e0dca64bd0eeff,"Hide idx_* tables if spatialite detected, closes #228",2018-04-26T03:25:21Z,2018-04-26T03:25:21Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw db7a57a9a62d1d32e204d8acd9ab4341a1436ef9,Added class=rows-and-columns to custom query results table,2018-04-26T03:24:22Z,2018-04-26T03:24:22Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 00ab95430003768067bb496b125a2be93134e73d,Added CSS class rows-and-columns to main table,2018-04-24T01:30:03Z,2018-04-24T01:31:32Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw f3f42957128c1e7ece584d45d9167f2ac003a3b8,"label_column now defined on the table-being-linked-to, fixes #234",2018-04-22T20:46:18Z,2018-04-22T20:46:18Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw f27cabbaf3d834f47bc6bea1de7e27c11fcfa5e7,label_column option in metadata.json - closes #234,2018-04-22T17:51:43Z,2018-04-22T17:53:16Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 3a5d7951ce8f35118ffdd7f8d86e09b909e1218c,Added Datasette 0.20 to news,2018-04-20T14:36:24Z,2018-04-20T14:36:29Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 72a7ae6859c9f9a951b96c4bd603d44acf634f00,Datasette 0.20: static assets and templates for plugins,2018-04-20T14:32:02Z,2018-04-20T14:32:02Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw e2750c7cc0585adaa8c866be611089e62961ee35,Add col-X classes to HTML table on custom query page,2018-04-19T15:36:14Z,2018-04-19T15:36:14Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 1e4c29501289f7bc7b3b7daf60f1ddd9f66ee338,Fixed out-dated template in documentation,2018-04-19T05:57:31Z,2018-04-19T05:57:31Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw b52171db1e97e2be1ff2dc505ccf29107288b27b,"Plugins can now bundle custom templates, closes #224 Refs #14",2018-04-19T05:50:27Z,2018-04-19T05:50:27Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw b55809a1e20986bb2e638b698815a77902e8708d,"Added /-/metadata /-/plugins /-/inspect, closes #225",2018-04-19T05:24:48Z,2018-04-19T05:25:22Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 6e28ed447f879a46ee5457882cf6ae8b785c87b4,Thanks to #214 JavaScript is no longer 'soon',2018-04-18T15:17:10Z,2018-04-18T15:17:20Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 7581320823d542fd827cb6788be87e6d51aa96dd,"Documentation for --install option, refs #223",2018-04-18T15:05:06Z,2018-04-18T15:05:06Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 404fa2252b070952ff1d1fc8bafc153789f36ada,"datasette publish/package --install option, closes #223 Allows you to specify one or more additional packages to be installed, useful for deploying plugins.",2018-04-18T14:48:34Z,2018-04-18T14:55:36Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 2b344f6a34d2adaa305996a1a580ece06397f6e4,"Ran black against datasette/cli.py https://pypi.org/project/black/ cli.py was getting a bit untidy due to all of the heavily annotated click function methods - used black to clean it up and make it easier to read.",2018-04-18T14:14:21Z,2018-04-18T14:52:17Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 1c36d07dd432b9960f4f2d096739460b4fcf8877,"New plugin hooks: extra_css_urls() and extra_js_urls() Closes #214",2018-04-18T03:12:21Z,2018-04-18T03:12:21Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw ca588b6a30e50212f6ac233121745a4216d878f9,Fixed example HTML in CSS docs,2018-04-18T02:35:03Z,2018-04-18T02:35:03Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 0bb483ca5bee61c9f7d148b5755d2eed56001aca," /-/static-plugins/PLUGIN_NAME/ now serves static/ from plugins Refs #214",2018-04-18T02:32:48Z,2018-04-18T02:32:48Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw a5792a8c61b9bb6a7a5295c8ec87c2567a5e39a2," now gets class=""col-X"" - plus added col-X documentation Refs #209",2018-04-18T02:11:11Z,2018-04-18T02:11:54Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw dfb87d012c30a5a3e2d6c4f2cf0a94d2fd080723,"Use to_css_class for table cell column classes This ensures that columns with spaces in the name will still generate usable CSS class names. Refs #209",2018-04-18T01:19:21Z,2018-04-18T01:19:21Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw aaf59db570ab7688af72c08bb5bc1edc145e3e07,"Longer time limit for test_paginate_compound_keys It was failing intermittently in Travis - see #209",2018-04-18T01:08:51Z,2018-04-18T01:09:48Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 5ebc7137d736d8fa47b24cc799fb93909f49cabb,"Use application/octet-stream for downloadable databses I'd also like to send the Content-Length here but that's not currently possible in Sanic - see bug report here: https://github.com/channelcat/sanic/issues/1194",2018-04-18T00:31:54Z,2018-04-18T00:31:54Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 1f384e662b58e2eb43ce20842976b677e4478f43,Updated PyPI classifiers,2018-04-18T00:30:46Z,2018-04-18T00:30:46Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw ba9bfa583179c25aaef94b1f44da7eba74620b9a,Datasette 0.19: plugin preview (with release notes),2018-04-17T02:12:21Z,2018-04-17T02:12:21Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw e7c769ef30add8f984eab920b2f503d4b8096bde,"Working implementation of #216 which passes the tests Reverted commit 5364fa7f3357f2de24fd45c85832205377642f19 (where I removed the code that didn't work). Added primary keys to order-by clause for sorting to get tests to pass",2018-04-17T01:41:17Z,2018-04-17T01:41:55Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 5364fa7f3357f2de24fd45c85832205377642f19,"Revert #216 until I can get tests to pass in Travis Revert ""Fix for _sort_desc=sortable_with_nulls test, refs #216"" This reverts commit 07fc2d113e462bfd8d7d56152c0d1fc55e0fdbe9. Revert ""Fixed #216 - paginate correctly when sorting by nullable column"" This reverts commit 2abe539a0f9f967ec0de6894774cb7ee83c4b3b9.",2018-04-17T00:52:22Z,2018-04-17T00:53:37Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 07fc2d113e462bfd8d7d56152c0d1fc55e0fdbe9,"Fix for _sort_desc=sortable_with_nulls test, refs #216",2018-04-17T00:05:03Z,2018-04-17T00:05:03Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 2abe539a0f9f967ec0de6894774cb7ee83c4b3b9,Fixed #216 - paginate correctly when sorting by nullable column,2018-04-16T23:51:51Z,2018-04-16T23:52:50Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 10a34f995c70daa37a8a2aa02c3135a4b023a24c,Removed rogue print() call,2018-04-16T15:38:09Z,2018-04-16T15:38:09Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 904f1c75a3c17671d25c53b91e177c249d14ab3b,"Initial documentation for plugins, closes #213 https://datasette.readthedocs.io/en/latest/plugins.html",2018-04-16T15:12:09Z,2018-04-16T15:12:09Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 92396ae5bacedfcb3d7c81319ccdd04483fd7fd4,Better fix for setup.py version,2018-04-16T04:28:24Z,2018-04-16T04:38:04Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 43ae15c0d14b3e968e8d5bfef72ac0c39783c3a2,"Releasing v0.18 - support for units! Refs #203",2018-04-14T15:36:10Z,2018-04-14T15:36:10Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw c857608738d6b6c3e4f3248304a22f8b2648dd3e,"Merge ""Support filtering with units"" from #205",2018-04-14T15:12:34Z,2018-04-14T15:17:09Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw dd4491dd8112d70d96d73f8f1d12b58cb42fe1bd,Update number of expected tables,2018-04-14T15:03:41Z,2018-04-14T15:16:54Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 6b15a53cd3cd40880a5e2d38827d5fac10e4bb5f,Unit test for unlabelled foreign keys from #207,2018-04-14T15:00:54Z,2018-04-14T15:00:54Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw d72201e883c0612d14dfb8ffdd61aa0fe223d94a,"Added unit test for foreign key links in HTML Needed to add a further unit test for #207",2018-04-14T14:55:27Z,2018-04-14T14:55:27Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw fb988ace7c7e2bee5ac142a0eab22431d0675a77,"Release 0.17 to fix issues with PyPI See https://twitter.com/simonw/status/984862976447414272",2018-04-13T19:04:33Z,2018-04-13T19:04:40Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw b6539ff04502536bd1fa96e3b1430bdafc456826,Releasing v0.16,2018-04-13T18:28:55Z,2018-04-13T18:28:55Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 6e16ed2a632b488a5ca21185c0147b4bca16336b,Removed pathlib dependency (incompatible with Python 3.5),2018-04-13T18:22:15Z,2018-04-13T18:22:15Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 9f28bbe43dc277a3963a12aaae37b5ee3c277207,"Better mechanism for handling errors; 404s for missing table/database New error mechanism closes #193 404s for missing tables/databesse closes #184 Makes pull request #202 unnecessary.",2018-04-13T18:17:22Z,2018-04-13T18:17:22Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw ad6142b67c8f137b001770339510979c5df43d85,long_description in markdown for the new PyPI,2018-04-13T16:03:09Z,2018-04-13T16:04:18Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw cca8bf36fed9f2d0cedcfa2691a95b7965b7573c,"Allow explain select / explain query plan select Closes #201",2018-04-11T22:39:43Z,2018-04-12T21:32:47Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 46b237c29a195025de81dcd920c6893181229dc5,"datasette inspect now finds primary_keys Closes #195",2018-04-10T00:54:12Z,2018-04-10T00:54:12Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 57b19f09d1ee24b7369ceca8937ce67df2ca1abc,"Ability to sort using form fields (for mobile portrait mode) We now display sort options as a select box plus a descending checkbox, which means you can apply sort orders even in portrait mode on a mobile phone where the column headers are hidden. Closes #199",2018-04-10T00:30:44Z,2018-04-10T00:34:32Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 7706fe0c67aba5cfe905c7906cae9e0c43cd75b2,Releasing v0.15,2018-04-09T15:48:24Z,2018-04-09T15:48:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw a290f28caae61b47e76e825c06984f22fc41a694,"table_rows => table_rows_count, filtered_table_rows => filtered_table_rows_count Renamed properties. Closes #194",2018-04-09T05:24:24Z,2018-04-09T05:24:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw b2188f044265c95f7e54860e28107c17d2a6ed2e,Use .custom_sql() for _group_count implementation (refs #150),2018-04-08T15:42:56Z,2018-04-08T15:43:45Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw dd0566ff8eda7fa2f0d92e51809581fae62cffed,"Utility for writing test database fixtures to a .db file python tests/fixtures.py /tmp/hello.db This is useful for making a SQLite database of the test fixtures for interactive exploration.",2018-04-03T13:46:11Z,2018-04-03T13:46:11Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 8f0d44d6468a96e9b78487c36da20ddc2ae9d937,"escape_sqlite_table_name => escape_sqlite, handles reserved words It can be used for column names as well as table names. Reserved word list from https://www.sqlite.org/lang_keywords.html",2018-04-03T13:39:50Z,2018-04-03T13:40:49Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 7365c3f51cedffade3428a677e5baeab2f401138,"Compound primary key _next= now plays well with extra filters Closes #190",2018-03-30T06:26:22Z,2018-03-30T06:26:22Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 31f63d1672a9214962cd7335a2daeabab7c0000e,"Fixed bug with keyset pagination over compound primary keys Closes #190",2018-03-30T05:10:09Z,2018-03-30T05:11:02Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 89d9fbb91bfc0dd9091b34dbf3cf540ab849cc44,"Database/Table views inherit source/license/source_url/license_url metadata If you set the source_url/license_url/source/license fields in your root metadata those values will now be inherited all the way down to the database and table templates. The title/description are NOT inherited. Also added unit tests for the HTML generated by the metadata. Refs #185",2018-03-27T16:18:32Z,2018-03-27T16:18:32Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 012fc7c5cd3e9160c9a4c19cc964253e97fb054a,Fix for FTS virtual table counting error,2018-03-21T01:26:04Z,2018-03-21T01:26:04Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw cac32b0ec4081c00bb6eb9122d61dccfae729199,Initial documentation for pagination,2018-01-10T04:47:03Z,2018-01-10T04:47:03Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw e63f432fe521eb8e196049f86742dc9e20f4dc35,Mention Heroku in docs index page,2018-01-10T04:46:34Z,2018-01-10T04:46:34Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 306e1c6ac4f00cc25d676a6ee660938f5b27427c,Broke up test_app into test_api and test_html,2017-12-15T12:04:17Z,2017-12-15T12:08:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 1aad396c9ef46837b224607086c09f48ac921165,"Fixed bug with .json path regular expression I had a table called ""geojson"" and it caused an exception because the regex was matching .json and not \.json",2017-12-13T05:32:43Z,2017-12-13T05:36:03Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 68a34bc222af586c75daa5166c937f3f26cfefac,"Deploy to Heroku with Python 3.6.3 Heroku deploys are currently showing the following warning: The latest version of Python 3 is python-3.6.3 (you are using python-3.6.2, which is unsupported). We recommend upgrading by specifying the latest version (python-3.6.3).",2017-12-10T02:01:17Z,2017-12-10T02:01:17Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 2edc652df6d786e4f2c3f073e3567002d248be09,Releasing v0.14,2017-12-10T01:33:24Z,2017-12-10T01:33:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw ae940068096ad9ff2f27f4e1784c87788d53eb3d,"No longer include database hash in hyperlinks It was making the unit tests unreliable. Also we do not do that for foreign key links.",2017-12-10T01:31:08Z,2017-12-10T01:31:08Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 7db790fbf999d83275a5bde4563d935a58a3d787,"Release notes for 0.14 Also updated ""datasette serve"" help in getting started docs.",2017-12-10T01:24:57Z,2017-12-10T01:26:32Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 794c3bfcfc03087bbebffb7b228e81aaa8b72183,"Cleaned up row/column display logic, fixed bug Closes #167",2017-12-10T00:59:25Z,2017-12-10T00:59:25Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 7a7e4b2ed8c76c6d002a9d707dbc840f6a2abf7f,"Started unit tests for row/table HTML pages Refs #167 Thanks to the new tests, spotted and fixed a bug where pages that were supposed to have 100 things on them were actually displaying 101.",2017-12-09T23:32:54Z,2017-12-09T23:32:54Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 3f2fed109395179de4145ca1a2675360f1717225,"Fixed bug with HTML labels loop.counter is incorrect - loop.index outputs the correct loop value.",2017-12-09T21:57:36Z,2017-12-09T21:57:36Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 7126d08f10d637c9f1af346324f6f7c0fece8be4,"HTML comment showing which templates were considered for a page Closes #171",2017-12-09T21:47:32Z,2017-12-09T21:47:32Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 3c9f889715249d7b0b3bc014529073066a1d478d,"Custom templates for canned queries Closes #170",2017-12-09T21:34:46Z,2017-12-09T21:34:46Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 1c0d93c39b194103e729aed2496d2d24f5ad4850,Fix Python 3.5 test failure,2017-12-09T18:39:16Z,2017-12-09T18:39:19Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw b01304d7070df5a02870ebd204ea093f3742029e,Updated tests I broke in c195ee4,2017-12-09T18:38:04Z,2017-12-09T18:39:19Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw c195ee4d46f2577b1943836a8270d84c8341d138,"package and publish commands now accept --static and --template-dir Example usage: datasette package --static css:extra-css/ --static js:extra-js/ \ sf-trees.db --template-dir templates/ --tag sf-trees --branch master This creates a local Docker image that includes copies of the templates/, extra-css/ and extra-js/ directories. You can then run it like this: docker run -p 8001:8001 sf-trees For publishing to Zeit now: datasette publish now --static css:extra-css/ --static js:extra-js/ \ sf-trees.db --template-dir templates/ --name sf-trees --branch master Example: https://sf-trees-wbihszoazc.now.sh/sf-trees-02c8ef1/Street_Tree_List For publishing to Heroku: datasette publish heroku --static css:extra-css/ --static js:extra-js/ \ sf-trees.db --template-dir templates/ --branch master Closes #157, #160",2017-12-09T18:19:39Z,2017-12-09T18:28:49Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 16dfccb1c569359fa2a03639ada233e7661156af,"Include sha1 hash in /static/app.css URL This means that when Datasette's CSS changes the new CSS will be loaded even though browsers may have cached the previous version. Closes #154",2017-12-09T03:10:09Z,2017-12-09T03:10:09Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 61e3c5a1e904a6e1cbee86ba1494b5cb4b5820cf,"Removed rogue print statement, refs #141",2017-12-08T16:08:00Z,2017-12-08T16:08:00Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw cbfd6b745eabf51295e5a5e0ea57a0f93d63b37d,"Publish should now work if /tmp is on different device Fixes #141",2017-12-08T16:06:24Z,2017-12-08T16:06:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 9af2964f6fd4ae876ef8ecd2c14c2ffa61542fdb,"Documentation for metadata.json and ""datasette skeleton"" command http://datasette.readthedocs.io/en/latest/metadata.html Closes #166",2017-12-07T17:19:35Z,2017-12-07T17:19:35Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 05399058062ba6df467c8745b87ece5f6951b39f,"Renamed ""datasette build"" command to ""datasette inspect"" Closes #130",2017-12-07T16:57:31Z,2017-12-07T16:57:31Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 80bf3afa43e3cb396c7a7c9b168eedbc6fe0fa15,"metadata.json support for per-table/per-database metadata Also added support for descriptions and HTML descriptions. Here's an example metadata.json file illustrating custom per-database and per- table metadata: { ""title"": ""Overall datasette title"", ""description_html"": ""This is a description with HTML."", ""databases"": { ""db1"": { ""title"": ""First database"", ""description"": ""This is a string description & has no HTML"", ""license_url"": ""http://example.com/"", ""license"": ""The example license"", ""queries"": { ""canned_query"": ""select * from table1 limit 3;"" }, ""tables"": { ""table1"": { ""title"": ""Custom title for table1"", ""description"": ""Tables can have descriptions too"", ""source"": ""This has a custom source"", ""source_url"": ""http://example.com/"" } } } } } Closes #165, Refs #164",2017-12-07T16:42:54Z,2017-12-07T16:47:07Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 515eaa8ccba0603de5b14679b74402f3ddf02bd7,--reload now reloads on metadata changes too,2017-12-07T16:42:28Z,2017-12-07T16:42:28Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 32cf5a4a72c1c8d46dd302566fdcbf4793f2f927,"New datasette skeleton command for generating metadata.json Closes #164",2017-12-07T06:20:37Z,2017-12-07T06:20:37Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 7e1ba161ec87b02cf7665a73188258f14036f892,"Ability to easily customize _rows_and_columns.html per database table Also added documentation for this. Refs #158, Closes #159.",2017-12-07T06:11:22Z,2017-12-07T06:11:22Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw afbda9e210b6e5eae10a537c121cbb5e92cc8502,"All extra_head blocks now call super This means you can provide a custom base.html template that populates extra_head and any of the default child templates will still render content you included in that block. Refs #158",2017-12-07T05:58:42Z,2017-12-07T05:58:42Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw a2b954e82818d5aa4b4c313d9a687d6a7bdd04b5,Fixed #155,2017-12-07T05:39:47Z,2017-12-07T05:39:47Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 198b8b2955b9d8a8a80ce850a92a99426c5f161f,"Fixed row page for tables with a primary key Closes #152",2017-12-07T05:23:13Z,2017-12-07T05:23:13Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 52a5e95d21c9b2b7b50f5bc423e3746ae0538734,"Fixed bug with filter columns Closes #162",2017-12-07T05:05:53Z,2017-12-07T05:05:53Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 709f4f2798d0490ae048094536bed7e973ea29f4,"Fixed bug with detecting FTS tables Closes #135",2017-12-07T04:54:25Z,2017-12-07T04:54:37Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 7a4da7e5aedff3f61648d5530c4dc34de011ea8a,"Documentation for custom SQL queries http://datasette.readthedocs.io/en/latest/sql_queries.html Closes #20",2017-12-05T17:43:59Z,2017-12-05T17:43:59Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw b7b590b4149563ec6572f577632d7471b84dcb94,"Docs for query.html CSS/template, refs #20",2017-12-05T16:35:14Z,2017-12-05T16:35:14Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw a743cdeafca0e5d011c282a53baf753c85d01516,"Canned query support + database/query template refactor Named canned queries can now be defined in metadata.json like this: { ""databases"": { ""timezones"": { ""queries"": { ""timezone_for_point"": ""select tzid from timezones ..."" } } } } These will be shown in a new ""Queries"" section beneath ""Views"" on the database page. As part of this, I refactored the logic for the database index page. It used to combine the functionality for listing available tables and the functionality for executing custom SQL queries in a single template and view. I have split that template out into database.html and query.html and reworked the view to more clearly separate the custom SQL executing code. Refs #20",2017-12-05T16:17:02Z,2017-12-05T16:17:02Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 0cfd7ce59d9018eb07af8f9e20f7d04308c9d01d,"Allow WITH query (previously we required SELECT at start) Fixes #161",2017-12-04T04:51:31Z,2017-12-04T04:51:31Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw e981ac7d4d1e1603257369eb5edba0fc4fdf5ae9,"--static option for datasette serve You can now tell Datasette to serve static files from a specific location at a specific mountpoint. For example: datasette serve mydb.db --static extra-css:/tmp/static/css Now if you visit this URL: http://localhost:8001/extra-css/blah.css The following file will be served: /tmp/static/css/blah.css Refs #160",2017-12-03T16:33:36Z,2017-12-03T16:33:36Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 1feb5735dad538312fac8b76705c05516250967b,Moved getting started into separate docs page,2017-11-30T18:27:00Z,2017-11-30T18:27:00Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 601934936c9e6e0007aca13547b73c3b36343f7f,"Documentation for custom CSS/JavaScript/Templates Will go live at http://datasette.readthedocs.io/en/latest/custom_templates.html Closes #156",2017-11-30T17:09:48Z,2017-11-30T17:09:48Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw cf46b86cf736aadd5147f85bfd6ff44c29655fde,Switch to sphinx_rtd_theme,2017-11-30T16:56:20Z,2017-11-30T16:56:20Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 3cd06729f457d690603b6060dc552b535517ab09,"Ability to over-ride templates for individual tables/databases It is now possible to over-ride templates on a per-database / per-row or per- table basis. When you access e.g. /mydatabase/mytable Datasette will look for the following: - table-mydatabase-mytable.html - table.html If you provided a --template-dir argument to datasette serve it will look in that directory first. The lookup rules are as follows: Index page (/): index.html Database page (/mydatabase): database-mydatabase.html database.html Table page (/mydatabase/mytable): table-mydatabase-mytable.html table.html Row page (/mydatabase/mytable/id): row-mydatabase-mytable.html row.html If a table name has spaces or other unexpected characters in it, the template filename will follow the same rules as our custom CSS classes introduced in 8ab3a169d42d096f - for example, a table called ""Food Trucks"" will attempt to load the following templates: table-mydatabase-Food-Trucks-399138.html table.html It is possible to extend the default templates using Jinja template inheritance. If you want to customize EVERY row template with some additional content you can do so by creating a row.html template like this: {% extends ""default:row.html"" %} {% block content %}

EXTRA HTML AT THE TOP OF THE CONTENT BLOCK

This line renders the original block:

{{ super() }} {% endblock %} Closes #12, refs #153",2017-11-30T16:30:10Z,2017-11-30T16:38:16Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 7ff51598c468deb1d2c0d4c23a808458c9b1e3a2,"git commit -m ""datasette --template-dir=mytemplates/"" argument You can now pass an additional argument specifying a directory to look for custom templates in. Datasette will fall back on the default templates if a template is not found in that directory. Refs #12, #153",2017-11-30T16:05:01Z,2017-11-30T16:05:01Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw ffa77f62b46e1ddf2f848f5da10a1e958323a084,"Removed dependency on sanic-jinja2 I wasn't using any of the functionality it adds on top of raw Jinja2. Refs #12 and #153",2017-11-30T15:51:40Z,2017-11-30T15:51:40Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 8ab3a169d42d096f2c7979c6d3d7746618d30f0b,"CSS styling hooks as classes on the body Refs #153 Every template now gets CSS classes in the body designed to support custom styling. The index template (the top level page at /) gets this: The database template (/dbname/) gets this: The table template (/dbname/tablename) gets: The row template (/dbname/tablename/rowid) gets: The db-x and table-x classes use the database or table names themselves IF they are valid CSS identifiers. If they aren't, we strip any invalid characters out and append a 6 character md5 digest of the original name, in order to ensure that multiple tables which resolve to the same stripped character version still have different CSS classes. Some examples (extracted from the unit tests): ""simple"" => ""simple"" ""MixedCase"" => ""MixedCase"" ""-no-leading-hyphens"" => ""no-leading-hyphens-65bea6"" ""_no-leading-underscores"" => ""no-leading-underscores-b921bc"" ""no spaces"" => ""no-spaces-7088d7"" ""-"" => ""336d5e"" ""no $ characters"" => ""no--characters-59e024""",2017-11-30T07:09:54Z,2017-11-30T07:09:54Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw b67890d15d164c7affb2887e5737534628dc6227,"Auto-link column values that look like URLs Refs #153",2017-11-29T17:05:24Z,2017-11-29T17:05:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 0120c24927af364304574ab1a58e417094e01c22,"extra_css_urls/extra_js_urls in metadata, refs #153 A mechanism in the metadata.json format for adding custom CSS and JS urls. Create a metadata.json file that looks like this: { ""extra_css_urls"": [ ""https://simonwillison.net/static/css/all.bf8cd891642c.css"" ], ""extra_js_urls"": [ ""https://code.jquery.com/jquery-3.2.1.slim.min.js"" ] } Then start datasette like this: datasette mydb.db --metadata=metadata.json The CSS and JavaScript files will be linked in the of every page. You can also specify a SRI (subresource integrity hash) for these assets: { ""extra_css_urls"": [ { ""url"": ""https://simonwillison.net/static/css/all.bf8cd891642c.css"", ""sri"": ""sha384-9qIZekWUyjCyDIf2YK1FRoKiPJq4PHt6tp/ulnuuyRBvazd0hG7pWbE99zvwSznI"" } ], ""extra_js_urls"": [ { ""url"": ""https://code.jquery.com/jquery-3.2.1.slim.min.js"", ""sri"": ""sha256-k2WSCIexGzOj3Euiig+TlR8gA0EmPjuc79OEeY5L45g="" } ] } Modern browsers will only execute the stylsheet or JavaScript if the SRI hash matches the content served. You can generate hashes using www.srihash.org",2017-11-29T02:38:15Z,2017-11-29T02:38:15Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 36701c85928b1eb785527ffd11cd941b31087ea3,datasette build now takes --load-extension,2017-11-26T23:01:53Z,2017-11-26T23:02:01Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw de6c62ed9a30b12b22fded13d492b1f193cfc728,Load SQLite extensions inside .inspect() too,2017-11-26T22:51:42Z,2017-11-26T23:02:00Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw c160f15c3937f8fbe581276f811e8c58f9137bb1,Release version 0.13,2017-11-25T03:33:39Z,2017-11-25T03:33:39Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 17fee0cc1411b69d66d4401120f96c5087b16841,"Automatically deploy tags as PyPI releases https://docs.travis-ci.com/user/deployment/pypi/",2017-11-25T03:02:55Z,2017-11-25T03:32:47Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw e3dd2483bb78f3d4b80db6de5475ceb163155b80,Fixed quoting on foreign-key links to tables with spaces in name,2017-11-25T00:05:28Z,2017-11-25T00:05:28Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw c5c923d93c26f312b713b81c8d08db5c3279a23a,Don't incorrectly detect VIEWs as supporting FTS,2017-11-24T22:51:00Z,2017-11-24T22:51:00Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw a81c62d8481d8cf97be5c5c61931e5e5bea2fbf3,"Tweaked custom SQL results display Closes #149",2017-11-24T22:41:31Z,2017-11-24T22:41:31Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw a802cbee74d8c83876375890d914252f1adb1c96,"Search now applies to current filters Combined search into the same form as filters. Closes #133",2017-11-24T22:22:57Z,2017-11-24T22:29:54Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 8a37baba14bc00d782fb6701d1f32e1687f10305,"Much tidier design for table view header Closes #147",2017-11-24T22:02:39Z,2017-11-24T22:02:39Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw a53d09d91910e4af5552a6c1e73d1468a67b7962,"Show count of matching rows on table view Closes #127",2017-11-24T22:01:53Z,2017-11-24T22:01:53Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw ab32bd64272886440c92c2fff846faa35b761158,"Fixed bug with params other than p0 p1 and upwards were not correctly extracted.",2017-11-24T21:55:00Z,2017-11-24T21:55:00Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw b45077839100a57adbc284ad5bf555002da819e8,"Added column__not=blah filter Closes #148",2017-11-23T22:09:50Z,2017-11-23T22:09:50Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 4b7596ee5caf68c9b1acd17866f88a57b23db3c4,"Row page now resolves foreign keys Closes #132",2017-11-23T21:51:16Z,2017-11-23T21:51:16Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw a30c5b220c15360d575e94b0e67f3255e120b916,"Fixed bug on rows page, added unit test Rows page for rows that linked to the same table in more than one columns were display incorrectly. Fixed that and added a test. Also introduced /db/table/row-pk.json?_extras=foreign_key_tables This is used by the new unit test, but is the first example of a new ?_extras=comma-separated-list pattern I am introducing.",2017-11-23T21:09:45Z,2017-11-23T21:09:45Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 77088876813fea833b6fc3eb588ecc9b02f0a7d7,Tweaked styling of submit buttons and search box,2017-11-23T20:39:26Z,2017-11-23T20:39:26Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw ef3eacf622e69723d48ab1ad597645770a7361db,Select option for removing filters,2017-11-23T20:32:54Z,2017-11-23T20:32:54Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 22b91dd95be59148c02991a1bb56df6d82f45b6f,"Further tweaks to select/input filter styling Refs #86 - thanks for the help, @natbat!",2017-11-23T20:05:51Z,2017-11-23T20:05:51Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw a74e455cede3070db4138500ba0d3f354d58c436,"Custom styled select boxes for filters Refs #86",2017-11-23T15:58:55Z,2017-11-23T15:58:55Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 2f97834d0e47fdcd160bab6a3eb1ffd2f836771d,NBSP before ID display,2017-11-23T04:45:04Z,2017-11-23T04:45:04Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 38dc1ef73b13e5ae9f05ca5e7c86fa3eb639e628,Show linked foreign key in table cells,2017-11-23T04:43:27Z,2017-11-23T04:43:27Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 72e328dccf6def3328290a1a6cd7e7ab22ab0de2,Removed rogue print statement,2017-11-23T04:40:15Z,2017-11-23T04:40:15Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 82c20ea36eb86fc68a48f219e96305477864d589,Added '- pick a column -' as first option,2017-11-23T04:39:53Z,2017-11-23T04:39:53Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 0071b5d6f5c97b9896dbcfc8f95ca0db8652a18a,"Added UI for editing table filters Refs #86",2017-11-23T04:33:55Z,2017-11-23T04:33:55Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 53534b6e9d3956cdb6aa9c062d2beffdd89fa7d9,"Even more complicated redirect scheme This: ?_filter_column_1=name&_filter_op_1=contains&_filter_value_1=hello &_filter_column_2=age&_filter_op_2=gte&_filter_value_2=12 Now redirects to this: ?name__contains=hello&age__gte=12 This is needed for the filter editing interface, refs #86",2017-11-23T04:03:46Z,2017-11-23T04:03:46Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw c8e7c85fd3db46081d61d6071ab1140e8291325e,Updated test_database_page test,2017-11-22T20:25:51Z,2017-11-22T20:25:51Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 1c8638c30ae9b1e59dd045cf6d0b20e6dc630e5b,"Hide FTS-created tables on index pages Closes #129",2017-11-22T20:12:15Z,2017-11-22T20:18:57Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw fb505de11c882fa7f2522160509172561b5b8270,"Back-ported format strings for compatibility with Py 3.5 Also fixed a encoding error where Heroku --json return needs to be treated as UTF8",2017-11-22T17:42:29Z,2017-11-22T17:42:29Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw a9b9d427915adc133814a022e554f042d5d82d4d,"Mark FTS-related tables as 'hidden' in inspect() Refs #129",2017-11-20T16:57:41Z,2017-11-21T20:55:59Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 0331666e346c68b86de4aa19fbb37f3a408d37ca,"?_search=x now works directly against fts virtual table Closes #135",2017-11-20T06:18:07Z,2017-11-20T06:18:07Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 771b0ee34789750fdec176c3129eeaa6a6523041,"Initial implementation of ?_group_count=column URL shortcut for counting rows grouped by one or more columns. ?_group_count=column1&_group_count=column2 works as well. SQL generated looks like this: select ""qSpecies"", count(*) as ""count"" from Street_Tree_List group by ""qSpecies"" order by ""count"" desc limit 100 Or for two columns like this: select ""qSpecies"", ""qSiteInfo"", count(*) as ""count"" from Street_Tree_List group by ""qSpecies"", ""qSiteInfo"" order by ""count"" desc limit 100 Refs #44 Still todo: clean up code a bunch (it currently fakes being a 'view'), get foreign key expansion working.",2017-11-20T06:04:13Z,2017-11-20T06:04:13Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw b4e6211a9729b5df340c6e210177ee86098b8480,Refactored filter logic and added human descriptions - refs #86,2017-11-20T06:03:24Z,2017-11-20T06:03:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 523c6f9e3a2cb9a9b5627ee2951147110e91d499,Fixed bug with FTS against tables with hyphens in the name,2017-11-20T05:59:53Z,2017-11-20T05:59:53Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw a5881e105a02830d26f07e98177248d5910893da,"?_filter_column=col&_filter_op=isnull__1 redirect if filter_op contains a __ the value is set to the right hand side. e.g. ?_filter_column=col&_filter_op=isnull__1&_filter_value=x Redirects to: ?col__isnull=1 Refs #86",2017-11-19T20:33:30Z,2017-11-19T20:33:30Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 386fb11d42767039bb2b389ce98996673d780a42,"?_filter_column=col&_filter_op=op&_filter_value=value redirect Part of implementing the filters UI (refs #86) - the following: /trees/Trees?_filter_column=SiteOrder&_filter_op=gt&_filter_value=2 Now redirects to this; /trees/Trees?SiteOrder__gt=2",2017-11-19T20:25:29Z,2017-11-19T20:25:29Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw ddc808f387be62cf776b815bb0eda77616c412ae,"Added --build=master option to datasette publish and package The `datasette publish` and `datasette package` commands both now accept an optional `--build` argument. If provided, this can be used to specify a branch published to GitHub that should be built into the container. This makes it easier to test code that has not yet been officially released to PyPI, e.g.: datasette publish now mydb.db --branch=master",2017-11-19T18:20:17Z,2017-11-19T18:20:17Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw eed6a0fe36120948f8bbc0596185300eadc3d2f4,"Implemented ?_search=XXX + UI if a FTS table is detected Closes #131",2017-11-19T16:59:26Z,2017-11-19T16:59:26Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw f59c840e7db8870afcdeba7a53bdea07bb674334,Show row count for custom SQL queries,2017-11-19T15:54:50Z,2017-11-19T15:54:50Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 80ada4dbb3b7a19e6a0480570f38758d17b87f8b,"Added 'datasette --version' support Using http://click.pocoo.org/5/api/#click.version_option",2017-11-19T05:59:16Z,2017-11-19T05:59:16Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw f58f7464243f75367da2ad3cab240246e6e2e618,Release 2.7 - refs #100,2020-04-18T00:04:50Z,2020-04-18T00:04:50Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 2ab62bcd54f8aa73a7a77d209133f0da6c73f3ea,"New columns= parameter for over-riding column types, closes #100",2020-04-17T23:53:25Z,2020-04-17T23:53:25Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw cd146bbbfa43c501adb9edd57f231c653aaa2397,Fixed RST underlines,2020-04-17T17:58:08Z,2020-04-17T17:58:08Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 13528faa817d79bc3900d3af7473300686b145d7,Release 2.6,2020-04-16T03:13:13Z,2020-04-16T03:13:13Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 125c625fbc46244a4b4025732e1526fb13c55843,".rows_where(..., order_by=) argument, closes #76",2020-04-16T03:12:55Z,2020-04-16T03:12:55Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw fc38868bd4c97acfc65b1aefbff80dfdea5e0d54,"Refactored tests into new test_rows.py, refs #76",2020-04-16T01:04:51Z,2020-04-16T01:04:55Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw ad6ac19470a67867b96cb4c086450b8e4e46bf02,"Release 2.5 Refs #96. Refs #98. Closes #97.",2020-04-13T03:52:19Z,2020-04-13T03:52:19Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 729a3e7869e26bb1ec97c685d3eadc0443404adc,"Tests for Database(..., recreate=True), refs #97",2020-04-13T03:47:36Z,2020-04-13T03:47:36Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 7e4b9997c2cec4c2af42bd3088847a81c970b6fc,"Database(..., recreate=True) option, refs #97",2020-04-13T03:46:51Z,2020-04-13T03:46:51Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 635c91475aa52e58b467797a95fec4554908f7dc,"Only set last_pk on singular .insert()/.update(), refs #98",2020-04-13T03:22:32Z,2020-04-13T03:22:49Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 22250a9c735077d6f365b73bf824e6c67b122c83,Release 2.4.4,2020-03-23T20:32:09Z,2020-03-23T20:32:09Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw b436bdb594fad3134ce6eba2219809faf1472c6e,"Fixed bug with null columns, closes #95",2020-03-23T20:31:06Z,2020-03-23T20:31:06Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 3db9881970eead7e27b5411360b0c86296c99a32,Release 2.4.3,2020-03-23T19:58:55Z,2020-03-23T19:58:55Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 1c745df92340ff861750643181a6a3c6685c3d55,"Suggest column types ignores nulls, closes #94",2020-03-23T19:57:02Z,2020-03-23T19:57:02Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 755580e2f3020d6af214a41634ab2ab6ed776e10,Release 2.4.2,2020-03-14T20:09:56Z,2020-03-14T20:09:56Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw daf2a245aa4e0b0cf62a94c1232cfb858821803b,"Unit tests covering column_affinity, refs #92",2020-03-14T20:05:07Z,2020-03-14T20:05:07Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 1125460497e0891e730f3e5feff2bb04a78c9163,"Improved column type introspection, closes #92",2020-03-14T20:04:06Z,2020-03-14T20:04:06Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 8f19bbed029df0009cd30f357d26fdf27c7ba5c4,Release 2.4.1,2020-03-02T06:12:21Z,2020-03-02T06:12:21Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 0c36feb6ca5c3ffb9a6df4c8ea4bb732fcab74f4,".enable_fts() now works with columns with spaces in them, closes #90",2020-03-02T06:10:43Z,2020-03-02T06:10:43Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 2ac4ea3c950d380f4bc44370db229ea9cd82527a,Fixed typo in changelog,2020-02-27T04:59:01Z,2020-02-27T04:59:01Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 277d4e55c496dbe289656bf7649a47db9d1ec5d1,Release 2.4,2020-02-27T04:55:58Z,2020-02-27T04:55:58Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 04ec53c039feb590c7832d499a14a9caba081f11,"Validate column names in more places, refs #86",2020-02-27T04:55:17Z,2020-02-27T04:55:17Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 67dd3106d56adfa335fdfc7f8737cf693b1db088,Changelog for 2.4,2020-02-27T04:46:13Z,2020-02-27T04:46:13Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw f9473ace14878212c1fa968b7bd2f51e4f064dba,"disable-fts and .disable_fts(), closes #88",2020-02-27T04:40:35Z,2020-02-27T04:40:35Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw b0ca657f49dcecb9985f92d481cfe77f7d3ad0f4,"Disallow square braces in column names, closes #86",2020-02-27T04:16:02Z,2020-02-27T04:16:02Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 685e6a1bb3ca8c14b6b8297e438e88cabebc5c56,"Detect subclasses of dict/tuple/list, fixes #87",2020-02-16T02:20:39Z,2020-02-16T02:20:39Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 5e0000609f9be6efafea1b96f610988eb18d6d89,Try using Travis Pythons that are not -dev,2020-02-11T05:52:23Z,2020-02-11T05:52:23Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 45df15fe23227306aca53dc99eeb66d9e272e38e,"Attempt to fix the build Suggestion from here: https://github.com/bluethon/bluethon/blob/fedbdb506a49ddba3b972f3fd35772b65b241390/languages/python/pip/pip_note.md#L13",2020-02-11T05:19:54Z,2020-02-11T05:19:54Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw de45597327c5561913efac528062c70fe14235fb,Release 2.3.1,2020-02-11T05:15:10Z,2020-02-11T05:15:10Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 6f3cb2c106ae99f0a14201e6b4c61ec2f492e766,"create_index now works with columns with spaces, closes #85",2020-02-11T05:13:15Z,2020-02-11T05:13:15Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 0c2451e0690c5f4e6463a2f339b0a280e30ed806,Release 2.3,2020-02-08T23:56:16Z,2020-02-08T23:56:16Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 0eda638d81280c7e585db071c35444e14b0b00f6,"table.exists() now a documented method, closes #83",2020-02-08T23:56:03Z,2020-02-08T23:56:03Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 4cbade256414844961af5006e93c1cdc5bb84868,Release 2.2.1,2020-02-07T07:20:03Z,2020-02-07T07:20:03Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 7c28a4d133b6a639fa70ba22b22cd43cb0746394,"Fix for upsert(hash_id=) bug, closes #84",2020-02-07T07:17:06Z,2020-02-07T07:17:06Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 72fa16b3d9033525ea6a798c99a870db93ece9e6,Release 2.2,2020-02-01T21:59:08Z,2020-02-01T21:59:08Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw de76168be5a3e18e9fda32670ff219e04e239d8f,"Docs for suggest_column_types, closes #81",2020-02-01T21:55:13Z,2020-02-01T21:55:13Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 5ecf3ffdeae0ab90b54044d34428b348b8473c94,"Extracted detect_column_types as suggest_column_types, refs #81",2020-02-01T21:38:26Z,2020-02-01T21:38:51Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw f7289174e66ae4d91d57de94bbd9d09fabf7aff4,Release 2.1,2020-01-31T00:25:20Z,2020-01-31T00:25:20Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 59a2e8ebdcbde7e6fb091b0556713ca5a20ea4e7,Release 2.0.1,2020-01-05T17:23:02Z,2020-01-05T17:23:02Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 489eda92bc3b528c90b76ac90a3f9b78c8ea02a3,".upsert() and upsert_all() require pk=, closes #73",2020-01-05T17:20:11Z,2020-01-05T17:20:11Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 1f3f902ea4c991e6b8ad0fcfd6cffd01e3aa1c23,Typo,2019-12-30T13:01:36Z,2019-12-30T13:01:36Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 6b79cb706a6d6252d1b66e4565283b73b3090851,Removed rogue parenthesis,2019-12-30T06:51:07Z,2019-12-30T06:51:07Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw c6c2e7184bbfeaa84fd78ec0cd9d878715f64f98,Release 2.0,2019-12-30T06:18:58Z,2019-12-30T06:18:58Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 0b0a431bff94d24866fc10d82dc91ab00287de2d,Changelog for 2.0 release,2019-12-30T06:18:44Z,2019-12-30T06:18:44Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw f0f15d3dc8dc686642f2c40894c011a2e6bac240,Reformatted with black,2019-12-30T06:09:52Z,2019-12-30T06:09:52Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw a0f0175d64d3c52529703755b89daf9c24d12d8b,"Updated help for upsert, refs #66",2019-12-30T06:05:31Z,2019-12-30T06:05:31Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 468d51314adac193e63b3a6ef9d67f0d43501e9b,test_upsert_compound_primary_key,2019-12-30T05:31:03Z,2019-12-30T05:31:03Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 9f47e8b9a4cb788b48b76aee1333c6f3baaebbd6,"Documentation for new upsert v.s insert-replace Refs #66",2019-12-30T05:23:58Z,2019-12-30T05:29:23Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 84bcabd09381a98502797a7d1adee357a1d45a67,"New upsert implementation, refs #66",2019-12-30T05:03:43Z,2019-12-30T05:29:23Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw cfbc09967e1bf69df9355a4a57e3f63882019b41,"Ran black, plus added comments for next step Refs #66",2019-12-27T09:30:29Z,2019-12-30T05:29:23Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 607a2a9ff63b2bf8b14ed67b66ead5d00c77f2b7,"insert --replace and insert(..., replace=True) Refs #66",2019-12-27T09:15:31Z,2019-12-30T05:29:23Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw dc0a62556ec092be7b341c5220e0410354f7cd02,"Run Travis tests on Ubuntu Bionic, fixes #71",2019-12-27T09:46:51Z,2019-12-27T09:49:07Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw a0a65f9a6405079b01aefdbf4b5f507bc758567a,Release 1.12,2019-11-04T16:28:52Z,2019-11-04T16:28:52Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 169ea455fc1f1d5e5b6e44cb339ba7ffa9d49c31,"Added table.delete_where(), closes #62",2019-11-04T16:18:06Z,2019-11-04T16:18:06Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 19073d6d972fad9d68dd74c28544cd29083f1c12,"Added table.delete(pk) method, refs #62",2019-11-04T16:07:44Z,2019-11-04T16:08:01Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw eb39c84a8f27443abb7aaebc1724c99f68e441fb,Test and docs for using :memory: as a filename,2019-10-04T16:17:27Z,2019-10-04T16:17:27Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw d5e1f8ac77d91b9b713358e80d9542abbf5f3633,Release 1.11,2019-09-03T00:58:41Z,2019-09-03T00:58:41Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 3a4dddaca23157984dbda7c16a957d3fc459024f,"Documentation for create-triggers, refs #57",2019-09-03T00:10:26Z,2019-09-03T00:10:26Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 405e092d5916e70df10f82d15e9c052aa9ee8d80,"Option to add triggers when enabling FTS (#57) --create-triggers CLI option and create_triggers=True in the Python library * Add an option to create triggers for fts table. * Add cli option for the create-update-trigger. * Add tests for the create-update-trigger option. * Change FTS table escaping to square brackets.",2019-09-02T23:42:28Z,2019-09-02T23:42:28Z,a83a9ad7fdcc8d400257ebb4c5d09638aa09f73b,Amjith Ramanujam,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,49260,amjith,9599,simonw 53124bc02fac5a89b154513f5fdc67431901fad9,Release 1.10,2019-08-23T12:24:04Z,2019-08-23T12:24:04Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 6ac0a5df5d714f6f3b33a92eed9ccbd8eebe66a4,Release 1.9,2019-08-04T03:35:30Z,2019-08-04T03:35:30Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 243bcaa1acd32a173c07b24dca553991493005a0,Documentation for .m2m() table method,2019-08-04T02:29:19Z,2019-08-04T02:29:19Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 5516175ca6b9b2d48b7a929ba074b1ef69e981b0,Allow table objects to be passed to .m2m(),2019-08-04T02:09:17Z,2019-08-04T02:09:17Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw d96a8f149ecb4d3fd8a8e5226774b7060c96ec95,Use existing m2m table if one exists,2019-08-03T18:15:16Z,2019-08-03T18:16:51Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw b9256413d26875c2bc3841e68b90d3842e88ccb8,"db.m2m_table_candidates(table, other_table)",2019-08-03T18:07:06Z,2019-08-03T18:07:06Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw b6b92980c00eda14a4d759b724139a0a2d321007,"table.m2m(..., m2m_table=x) argument",2019-08-03T17:51:22Z,2019-08-03T17:51:22Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw ba1211d4456911bf0bd13f2e753a56ed988df3b4,"Implemented .m2m(table, lookup=...)",2019-08-03T14:28:03Z,2019-08-03T14:28:03Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw ff2348e71af6705dfa3220d823ce0285e95b127f,Added failing tests,2019-07-31T06:16:46Z,2019-07-31T06:16:46Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 35eeafaaa33648a528cbcd57ceca966fea19c6ae,"table.m2m(...) method, with tests",2019-07-31T05:31:27Z,2019-07-31T05:51:50Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw e1021030dd2d8d4705ad0e7bae389eeaea7fa17b,Release 1.8,2019-07-28T15:41:42Z,2019-07-28T15:41:42Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 16d7008002b43cf47a973791da93e5cdd5913fc3,Applied black,2019-07-28T15:37:27Z,2019-07-28T15:37:27Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 598608374625cbfa0799f5b7a210ca6e192f9c0b,Documentation for table.update() method,2019-07-28T15:03:44Z,2019-07-28T15:03:44Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw bc9c4db34b815f5385abbf4bb491bab0e10779db,.update(...) with no update argument sets last_pk,2019-07-28T14:59:52Z,2019-07-28T14:59:52Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 4ab8d46b03a92c68e9694ea7c285d3852ef58530,"Added table.update(pk, ..., alter=True)",2019-07-28T14:51:49Z,2019-07-28T14:51:49Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 5225dbb89c08a73b1af536105f7fcff64aef5638,Unit tests for invalid .update() pks,2019-07-28T14:46:49Z,2019-07-28T14:46:49Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw e4a11b181580605b1711acee4828039137e2fcd9,"Refactor .update() to use .get() .pks introspection now returns [rowid] for rowid tables.",2019-07-28T12:44:33Z,2019-07-28T12:44:33Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 455071f3c5e76141926eb1e77656cb131a826707,"Unit tests for .update() Also now set .last_pk to lastrowid for rowid tables.",2019-07-28T12:30:28Z,2019-07-28T12:30:28Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 15368c5f59066fc9c6b8ce5d0578132b1b68b75d,"First working version of .update(), refs #35",2019-07-14T17:03:18Z,2019-07-28T12:15:50Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw a6749cdf43229c4f7864c946496e9ac0141627d9,Release 1.7.1,2019-07-28T12:00:51Z,2019-07-28T12:00:51Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 535a5ea476fb41738c839ac609b43d2f019cea96,Documentation and tests for table.drop() method,2019-07-28T11:22:12Z,2019-07-28T11:57:02Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 0c1b8b7f96be874bb63801f69323960f277aa49a,Use assertion to enforce <=999 columns,2019-07-28T11:41:57Z,2019-07-28T11:41:57Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 62d292252804aa0a0c1d6fdc9ea1722b5ffb20a8,"Fix for too many SQL variables, closes #50",2019-07-28T11:10:56Z,2019-07-28T11:10:56Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 9b7be79c86b4283f24a64f62257c918f12542997,Release 1.7 - with lookup table support,2019-07-24T06:50:41Z,2019-07-24T06:50:41Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw e22cfcd953f967f6e9551b3a048d7c40726f349b,Removed a TODO which is now done,2019-07-23T13:05:04Z,2019-07-23T13:05:04Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw f3a4c3d3ee6475a6caf3c9606656dbaf1df020b7,db.create_table() now remembers configs,2019-07-23T07:47:19Z,2019-07-23T07:47:19Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 535a731b9310a07b10a8649313c8bd8fafcdadea,Fixed lint error,2019-07-23T07:41:34Z,2019-07-23T07:41:34Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 034d498b319d37b0639203fa4fbb304715b3ae03,Support Database(memory=True) for in-memory databases,2019-07-23T00:12:54Z,2019-07-23T00:12:54Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 58db40d67c12cb4353a825d4aa215141a51b9e6e,Better __repr__ for tables,2019-07-23T00:05:51Z,2019-07-23T00:05:51Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 127a836054fb784dc02ea40dadb55b3741dcd603,Documented new table configuration options via .table(),2019-07-22T23:59:17Z,2019-07-22T23:59:17Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw be655827b4a4ff88eb4813075339b0b01e018145,use_table_factory is a better name than use_class_constructor,2019-07-22T23:33:37Z,2019-07-22T23:33:37Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 57e43baece0936d75c74711f5f6835a5c1c1ac42,"Table options can now be passed to constructor OR to insert_all() If you want to set default options for a table, you can do this: table = db.table(""dogs"", pk=""id"", column_order=[""name"", ""age""]) If you pass those keyword arguments to the .insert/.update/etc methods they will over-ride the defaults you set on the table. table = db[""dogs""] # This still works too",2019-07-22T23:30:54Z,2019-07-22T23:30:54Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 152eb2afaf35cde5d44e50369f4cb32a72e72fdb,Use pysqlite3 if available,2019-07-22T22:39:35Z,2019-07-22T22:39:35Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw c88f0a4d4617ff832aa728aac1da3500548c3137,Release 1.6,2019-07-19T04:51:21Z,2019-07-19T04:51:21Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 09316835e609e2321dafa08d37d8f227521373f8,"Implemented --tsv option, closes #41",2019-07-19T04:50:38Z,2019-07-19T04:50:38Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw ef112ffc94e157b2152ebc4e01ab750570f447e8,Release 1.5,2019-07-15T04:34:49Z,2019-07-15T04:37:31Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 65b2156d9cc0aa6b5c3dc7a6bd600d98b281a13b,"Show version in docs Thanks, @nedbat https://twitter.com/nedbat/status/1150490436114534400",2019-07-14T19:45:00Z,2019-07-14T19:45:00Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 91311bb0db14d410200845b2367f3c9d73e74db6,"Sphinx docs now pull version info from git tag Based on http://dreamiurg.net/2011/10/03/using-git-to-get-version-information/",2019-07-14T19:24:45Z,2019-07-14T19:24:45Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw a8ecf95f115e70eafc4cb352c4677e6e1418afbd,Use pip install -e .[docs] for documentation dependencies,2019-07-14T19:23:31Z,2019-07-14T19:23:31Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw f70e35c9bbc0d5803bc0aee572b894a8b21ac41e,"Added table.rows_where(where, args) method",2019-07-14T18:58:40Z,2019-07-14T18:58:40Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 72a6f430dfa99f99ca3204ac7e7bd280e1bd421b,Update PyPI classifiers,2019-07-14T17:16:36Z,2019-07-14T17:16:36Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 41d1751aec9c08c05191f9806aa07d56b565e9d1,Release 1.4.1,2019-07-14T17:08:34Z,2019-07-14T17:08:34Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw ba6bd47f15c154e348c3c85c05858053a4ab7bab,Typo fix,2019-07-14T16:25:57Z,2019-07-14T16:25:57Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw fad14ab9438869d38003254f3fc1444af21a2cdb,Release 1.4,2019-06-30T23:51:17Z,2019-06-30T23:51:17Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw b4e36546b093281d1e01549c6d8c4c66b1063675,Release 1.3,2019-06-29T06:31:18Z,2019-06-29T06:32:36Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 86bd2bba689e25f09551d611ccfbee1e069e5b66,1.2.2 release notes,2019-06-26T04:23:45Z,2019-06-26T04:23:45Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 641eccc2b7a7d39f234de8e42c7ebc426d350984,Release 1.2.2,2019-06-26T04:20:55Z,2019-06-26T04:20:55Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw f03d2eddd8d861a7cf43a0ef3d72f67aae571dd4,Handle datetime.time correctly,2019-06-26T04:18:35Z,2019-06-26T04:18:35Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 1c8a0e874fe0fc2eaade1a6c44d947e1e6c7b2b6,Release 1.2,2019-06-13T06:39:59Z,2019-06-13T06:39:59Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 208f56fbaf173fdd8cb03a840e218f85d414a144,"--not-null and --default options to insert/update, closes #24",2019-06-13T06:30:16Z,2019-06-13T06:30:16Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 362359da7eed7dc6589589122960c0a0d0460d7c,"not_null= and defaults= arguments to various Python methods, refs #24",2019-06-13T06:10:07Z,2019-06-13T06:10:07Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 07a10bdb2c09c7e275a9db546c42900b1dea4e75,foreign_keys=[...] can now detect tables and keys - closes #25,2019-06-13T05:32:26Z,2019-06-13T05:32:26Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw d645032cfa4edbccd0542eecdddca29edf9f7b07,"add_foreign_key can now detect table and pk, refs #25",2019-06-13T04:51:09Z,2019-06-13T04:51:09Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw c2622ceabd073b43b5789ccaa5036471b3c96e12,"cd docs && make livehtml Enabled make rule for sphinx-autobuild",2019-06-13T04:50:18Z,2019-06-13T04:50:18Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 2fed87da6ea990d295672e4db2c8ae97b787913e,"--not-null-default and not_null_default=, refs #24",2019-06-13T01:35:02Z,2019-06-13T01:35:02Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 7a3041b1adcb1c95f2edeb789e4b1ecac34f0eab,Releasing 1.1,2019-05-29T05:12:03Z,2019-05-29T05:12:03Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 26b2cf3418f1e19b5436a7385c3945384838e594,Changelog for 1.1 + docs for --ignore/ignore=True,2019-05-29T05:06:22Z,2019-05-29T05:06:22Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 50e2f94b583436b1a6c54be04e78a3029de6b521,"Ability to add a column that is a foreign key reference Python API: db[""dogs""].add_column(""species_id"", fk=""species"") # or db[""dogs""].add_column(""species_id"", fk=""species"", fk_col=""ref"") CLI: $ sqlite-utils add-column mydb.db dogs species_id --fk species # or $ sqlite-utils add-column mydb.db dogs species_id --fk species --fk-col ref Closes #16",2019-05-29T04:54:43Z,2019-05-29T04:54:43Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 00c5a49a87e1ef3e39bb7ec5ab61f7c17f9ecd60,"Option to ignore inserts if primary key exists already Support for SQLite's INSERT OR IGNORE In the API layer it looks like this: fresh_db[""test""].insert({""id"": 1, ""bar"": 3}, ignore=True) For the CLI layer it looks like this: $ sqlite-utils insert data.db dogs dogs.json --ignore Closes #21",2019-05-29T04:15:57Z,2019-05-29T04:15:57Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 63953f56e7001c2e21bc37d5afac699c48c00b9e,Release 1.0.1,2019-05-28T00:50:28Z,2019-05-28T00:50:28Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw cec8c3c4826da8999a5d0f905596be8de519cbc9,sqlite-utils rows now obeys --json-cols,2019-05-28T00:47:59Z,2019-05-28T00:47:59Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 092e1368edc4e7f4cb337a62eabd9a6e1245006b,Fixed typo,2019-05-25T14:24:17Z,2019-05-25T14:24:17Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw ee017cdbddfb7cdbf522149d195dd41416b24ecd,"Release notes for 1.0, closes #22",2019-05-25T01:06:38Z,2019-05-25T01:06:38Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 251e4730412210e7fdb1efd476c730ed3ff10e81,"--json-cols option for outputting nested JSON, closes #20",2019-05-25T00:56:44Z,2019-05-25T00:56:44Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 747ea5d6bc31b31fd046e036d90fb603c55307b5,"Fixed help text for sqlite-utils enable-fts Closes #19",2019-05-25T00:43:41Z,2019-05-25T00:43:46Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw eff52023c6d316ead336c198a2a9365ce4f91b09,"alter=True/--alter option to automatically add missing columns Closes #18",2019-05-25T00:41:04Z,2019-05-25T00:41:04Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 8ab7dcb4f939f38a9a8f8d92e79f4271fa0a6874,"Update description, don't package tests/",2019-05-25T00:37:29Z,2019-05-25T00:37:29Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 05317f53411fab3c3d66b88408bc867f2e474a35,Release 0.14,2019-02-24T23:11:51Z,2019-02-24T23:11:51Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 3cab079d3e45aa3468e9f7317680ded6438f3955,"add-column col_type now optional, defaults to str",2019-02-24T22:24:00Z,2019-02-24T22:24:00Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 557dc3f9a7b622c45c73fd791cfe0a786f9a1de0,"Improved foreign_keys= argument, closes #17",2019-02-24T22:12:45Z,2019-02-24T22:12:45Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw f8d3b7cfe5c1950b0749d40eb2640df50b52f651,"sqlite-utils add-foreign-key books.db books author_id authors id Command for adding foreign keys to existing tables. Closes #2",2019-02-24T21:33:45Z,2019-02-24T21:33:45Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw e1ca938aa1c84367fd9d4786b9709c56f3e6e778,"table.add_foreign_key(column, other_table, other_column) New mechanism for adding foreign key constraints to an existing SQLite table. SQLite ALTER TABLE does not support this out-of-the-box, so I instead had to write some careful code that uses PRAGMA writable_schema = 1 to directly modify the sqlite_master table. Refs #2",2019-02-24T21:10:51Z,2019-02-24T21:10:51Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 9756310408c7e5fa1ca257573e46aa13c2041c24,Black,2019-02-24T20:59:46Z,2019-02-24T20:59:46Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 33df260b38e1b0f179cdb849fc4e3e9c76e57f3a,Fix for CLI test,2019-02-24T20:12:59Z,2019-02-24T20:12:59Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 0bc49e938e1e3444df734f9178a9a317f68f9716,"'sqlite-utils add-column name type' command, closes #15",2019-02-24T20:04:33Z,2019-02-24T20:04:33Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 05a85b358fb907d8fcb72f19390ee2ba5a2261a5,Don't assume -1 for error code,2019-02-24T19:50:56Z,2019-02-24T19:50:56Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 6d25f648ed708b8dd78cbb0af5e356d16859625f,"add_column now accepts explicit SQLite types, refs #15",2019-02-24T19:49:24Z,2019-02-24T19:49:31Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw c5286d2c66b8c187002f9ad8991a6665b2b092f9,Black formatting,2019-02-24T19:40:58Z,2019-02-24T19:40:58Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw dc2560879ed32136d64707a031b62b2870809892,"table.add_column(name, type) method, refs #15",2019-02-24T19:40:26Z,2019-02-24T19:40:26Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 8a5d0d80c37008f30953110d58f474aac2728ee3,"sqlite-utils create-index command, closes #14",2019-02-24T19:11:21Z,2019-02-24T19:11:21Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 7784b924a179ee213f52693276ab7b68d6549b51,"Added create_index(..., if_not_exists=True), refs #14",2019-02-24T18:46:44Z,2019-02-24T18:46:44Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw