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 5deb65f0623bff03421f50d3c61f699b981ae18b,"Now you just 'from sqlite_utils import Database' Plus fixed ad_id in the Russian ads example in the docs",2018-07-31T03:30:23Z,2018-07-31T03:30:23Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 5f806880c9766daf09fc9535171637ebb8224cab,Correctly JSON serialize sqlite3.Cursor,2017-10-24T23:53:21Z,2017-10-24T23:53:21Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 606ff9e35e007ae58a491d417f47779034bacabc,"python app.py --build to generate build-metadata.json This is now run by the Dockerfile to build this at compile time.",2017-10-24T05:53:13Z,2017-10-24T05:53:13Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 62f1d3a6cbf7fca5c0e85c13a77830755c314883,"class=""suggested-facets""",2018-05-16T05:08:58Z,2018-05-16T15:27:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 630b40038ef31b351abc2e39c3a0c7b3648814f8,"Added support for gt, gte, lt, lte lookups Refs #23",2017-10-25T01:46:49Z,2017-10-25T01:46:55Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 63aac537f238239d5fb7f4934545404d37d874f6,"1,442 format for facet counts, refs #255",2018-05-15T12:14:14Z,2018-05-16T15:27:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 65e350ca2a4845c25752a62c16ba58cfe2c14b9b,"Implemented 'datasette publish one.db two.db' command Closes #26",2017-11-11T07:25:22Z,2017-11-11T07:25:22Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 666aa032530189d585dd61d0e9851e9fe63ee598,"Improved error handling Invalid SQL now shows a special error.html template, and is covered by tests.",2017-11-12T21:16:15Z,2017-11-12T21:16:15Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 6823b094066c5cb1dcd3581da2ed877ed72298b7,"Set time limit of 1000ms on SQL queries Using the (undocumented in the Python docs) fact that if you return 1 from a set_progress_handler callback, SQLite will cancel the current query. Closes #35",2017-10-25T01:34:54Z,2017-10-25T01:34:54Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 690736436bac599ca042d1caa465c6d66d2651f9,"Bump up time limit for test_paginate_tables_and_views It was intermittently failing in Travis CI on Python 3.5: https://travis-ci.org/simonw/datasette/jobs/373713476",2018-05-02T00:17:39Z,2018-05-02T00:20:39Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 6a007f632258e6cfd3c5e9e229683deb0efd87be,Row pages show incoming foreign key relationships,2017-11-17T18:15:44Z,2017-11-18T03:15:49Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 6a0c5de6154893eb4269dc7b1f160726ec6395f2,"ensure_build_metadata() function for metadata This will be run at compile time - the goal is to generate a build- metadata.json file with a bunch of useful facts about the databases that could be expensive to generate at run-time. Example metadata: { ""flights"": { ""file"": ""flights.db"", ""tables"": { ""airlines"": 6048, ""airports"": 8107, ""routes"": 67663 }, ""hash"": ""07d1283e07786b1235bb7041ea445ae103d1571565580a29eab0203c555725fd"" } So far we have a sha256 hash of the database file itself, plus a row count for each table. Fixes #11",2017-10-23T16:02:40Z,2017-10-23T16:02:40Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 6a9fdcc0718aea2cbc01ae4d60b9a1fba3601a66,"Added addressable page per row Refs #1 - only exists for tables with introspectable primary keys. Still need to link to this page. Also added first unit tests - refs #9",2017-10-24T05:54:58Z,2017-10-24T05:54:58Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 6b3b05b6db0d2a7b7cec8b8dbb4ddc5e12a376b2,Released 0.7,2017-11-13T18:42:30Z,2017-11-13T18:42:30Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 6d12580ed74ff0baf081bf9fabc14eeaf8a3105c,"Foreign key facets are now expanded to labels, refs #255",2018-05-15T15:52:02Z,2018-05-16T15:27:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 6d39429daa4655e3cf7a6a7671493292a20a30a1,"Don't prevent tabbing to `Run SQL` button (#117) See comment in #115",2017-11-18T00:53:42Z,2017-11-18T00:53:42Z,106fe7fbf8b80a01038e265a137b3b703422db48,Robert Gieseke,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,198537,rgieseke,9599,simonw 70e1f831a00ec97b724187025e35338becd2309a,Typo,2018-08-01T01:32:03Z,2018-08-01T01:32:03Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 72644b6e3fc78ecf55b386854943ec3ad39f97bd,"Support method chaining, added .last_id for accessing lastrowid Also shipping as 0.5",2018-08-06T01:42:43Z,2018-08-06T01:42:43Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 747a801b50487cd4cc20856d44252ac0a6cb346f,Column headers now link to sort/desc sort - refs #189,2018-04-09T02:08:28Z,2018-04-09T05:10:22Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 79216bac12668eb90ccad65086d4f129476a3969,Added some breathing room to the footer,2017-11-13T19:38:20Z,2017-11-13T19:38:20Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 7d81083d40fb2749be897d89c9a094d6521ef20c,"Implemented responsive tables, removed bootstrap No need for all of bootstrap since we only need to style a few elements. Implemented responsive table pattern from here: https://css-tricks.com/responsive-data-tables/ Refs #16",2017-11-11T05:55:50Z,2017-11-11T05:55:50Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 7dac1c05cd40f89a5af34763e4d5614c750575c2,"Improved pagination Closes #78",2017-11-13T20:34:56Z,2017-11-13T20:34:56Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 7e0cedae3d920797f6f9411aea90a2b1d86ac9c7,"Now using bootstrap 4 beta Refs #16",2017-11-06T02:49:07Z,2017-11-06T02:49:07Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 7fe1e8b4827aa1d7e72825da563effdf44ae7233,"Added extra metadata options to publish and package commands You can now run these commands like so: datasette now publish mydb.db \ --title=""My Title"" \ --source=""Source"" \ --source_url=""http://www.example.com/"" \ --license=""CC0"" \ --license_url=""https://creativecommons.org/publicdomain/zero/1.0/"" This will write those values into the metadata.json that is packaged with the app. If you also pass --metadata= that file will be updated with the extra values before being written into the Docker image. Closes #92",2017-11-15T05:02:11Z,2017-11-15T05:02:11Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 7feb746efe8c5ed80f477475acc546370bae89e4,Fixed bug where 0 values were showing up blank,2017-11-17T18:14:01Z,2017-11-18T03:15:49Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 82261a638bd35c9d69a9582a898cf4dab374f76c,"Turn on auto-escaping in Jinja We had XSS holes! Since we don't do cookies or authentication they shouldn't cause any actual harm, but still really not good. https://github.com/pallets/jinja/issues/528",2017-11-16T01:59:42Z,2017-11-16T01:59:42Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 8252daa4c14d73b4b69e3f2db4576bb39d73c070,SQL syntax highlighting with Codemirror (#89),2017-11-15T02:03:00Z,2017-11-15T02:03:00Z,842b8095c01bad0cc95c5ee2e93d83bf3945daa0,Tom Dyson,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,15543,tomdyson,9599,simonw 8252e71da461c425e625e1c3e4ee0bd92ea4cbf0,"Limit on max rows returned, controlled by --max_returned_rows option If someone executes 'select * from table' against a table with a million rows in it, we could run into problems: just serializing that much data as JSON is likely to lock up the server. Solution: we now have a hard limit on the maximum number of rows that can be returned by a query. If that limit is exceeded, the server will return a `""truncated"": true` field in the JSON. This limit can be optionally controlled by the new `--max_returned_rows` option. Setting that option to 0 disables the limit entirely. Closes #69",2017-11-13T19:33:01Z,2017-11-13T19:33:01Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 847f3e0c92b5ac17200b2090bedcc5443bb08e4b,"Implemented offset/limit pagination for views Closes #70",2017-11-13T21:10:55Z,2017-11-13T21:10:55Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 858d79fe938afbe04e2b249da71860e812869ec8,Typo fix,2018-05-16T15:15:56Z,2018-05-16T15:27:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 86755503d26b4a83c2ec59f08ec1b8de791fd954,Initial add simple prod ready Dockerfile refs #57 (#94),2017-11-15T03:08:04Z,2017-11-15T03:08:04Z,2d9fb90ab683bec9ad9389c88bb10f454886e986,Andrew Cutler,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,247192,macropin,9599,simonw 8a0bd68c393423a6c3bdae27d3826e6161a101c1,Undid some slightly weird code formatting by 'black',2018-05-15T13:23:20Z,2018-05-16T15:27:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 8a4ed052a5034d3f12daf5eedabb0808a0bf20fc,path_with_added_args now works with multiple existing args,2018-05-14T22:09:09Z,2018-05-16T15:27:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 8acdc2fd14c0f7251e1e3fd592c53b3152f5256c,"Test for table with space in name Tests code in b51836f8463ef65bc947f0a7b6e60167cb7154cf",2017-11-12T20:08:32Z,2017-11-12T20:08:32Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 8af7bc100c681975894f49f4ffd6d26a06e93f60,"Added a MANIFEST.in Now python setup.py bdist_wheel creates a .whl that includes the CSS.",2017-11-09T02:39:42Z,2017-11-09T02:39:42Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 8b4c600d98b85655b3a1454ebf64f858b5fe54c8,"Add spatialite, switch to debian and local build (#114)",2017-11-17T03:50:51Z,2017-11-17T03:50:51Z,959507cc7596b555bf4292e84f335b02cca843f8,Ariel Núñez,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,54999,ingenieroariel,9599,simonw 8e2a313c1e831c465392c5cb1502d0f153d39431,"Fixed failing FTS5 test, release as 0.6.1",2018-08-13T00:48:43Z,2018-08-13T00:48:43Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 9199945a1bcec4852e1cb866eb3642614dd32a48,"Fixed 500 on views page Bug introduced in a4af532a31ece7095d710a1f5abb39ea93fe003f Refs 85",2017-11-16T14:46:49Z,2017-11-16T14:46:49Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 91bf5f56bb301fb564640fa6b1bb8a6e981ff721,"Show enabled facets in flexbox columns, refs #255",2018-05-16T05:06:05Z,2018-05-16T15:27:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 95bce37ad3447d3c265316fa029fc09b7bbdae11,Store list/dict/tuple values as JSON strings,2018-07-28T22:20:29Z,2018-07-28T22:20:29Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 976263effcc2b9658006f739f7f7f02554f8d97f,"Sanity check add_foreign_key() column exists, closes #29",2019-06-20T23:58:09Z,2019-06-20T23:58:18Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 97c4bf4271495f8f711926ec44d8def3f2941379,"Added --cors argument to enable CORS Closes #75",2017-11-13T18:17:42Z,2017-11-13T18:17:42Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 9959a9e4deec8e3e178f919e8b494214d5faa7fd,"Added screenshots to facets and full_text_search docs, refs #255",2018-05-16T15:24:44Z,2018-05-16T15:27:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 9cb69cbd45ed8fd93190c47060c19abec80bc4ef,"New ?_sql_time_limit_ms=10 argument to database and table page Allows callers to opt for a lower time limit. Closes #95",2017-11-15T02:55:10Z,2017-11-15T02:55:10Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 9d219140694551453bfa528e0624919eb065f9d6,"Refactored to use class based views Closes #22",2017-10-24T02:25:48Z,2017-10-24T02:25:48Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 9e27b2a0ba45d92e198fcbac8641da41a62236b8,Add example of named parameter UI to the release notes,2017-11-16T16:09:07Z,2017-11-16T16:46:25Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 9e8c36793bfbb17c2f67371cc7f9aa8b9202fdc4,"Update spatialite.rst (#413) a line of sql added to create the idx_ in the python recipe",2019-03-15T05:06:45Z,2019-03-15T05:06:45Z,41e868c44ebf155cd4e69182c407f1d278d635ce,joelondon,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,28597217,joelondon,9599,simonw 9e9e9613907b6a2a8a051fdda93c0d26344ee110,Fixed error in RowView,2017-11-06T02:38:06Z,2017-11-06T02:38:06Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 9eacd30b1d6e3f1bd138fb330cfea4830197cb1d,New column_order= parameter for setting column order,2018-08-08T23:06:49Z,2018-08-08T23:06:49Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 9f2ec39fbc5481b0fa6585ccdd159ba9fd989bcc,"Current sort order now reflected in human filter description Plus renamed human_description to human_description_en Refs #189",2018-04-09T01:01:23Z,2018-04-09T05:10:22Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 9f47b6e4d80f0f393cf0167a6f48280de6847d1d,"Pin to specific Jinja version Closes #100",2017-11-16T00:14:07Z,2017-11-16T00:14:07Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 9fdf2c169caf544d56f6317afbed6879082be8b9,Documented Database(filepath) and in-memory database creation,2018-08-13T00:31:02Z,2018-08-13T00:31:02Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw a0bb9da17fb95ac5e3bcd3c8d800d33c25a71bbc,"Now requires DB files to be passed as arguments Refs #40",2017-11-06T02:24:43Z,2017-11-06T02:24:43Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw a113c28ea1924d83e6789ae5e0805312e55b4490,"Add version number support with Versioneer Repo: https://github.com/warner/python-versioneer Versioneer Licence: Public Domain (CC0-1.0) Closes #273",2018-05-22T15:33:29Z,2018-05-22T19:35:21Z,a1a72b19e432a3145fdb845aab2927c00d8a8426,Robert Gieseke,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,198537,rgieseke,9599,simonw a4af532a31ece7095d710a1f5abb39ea93fe003f,"Include foreign key info in inspect() output Refs #85",2017-11-16T01:34:32Z,2017-11-16T01:34:32Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw a4cc5dc81364a7300f0ba0bd5711633e803c250a,"New ?_shape=array option + tweaks to _shape, closes #245 * Default is now ?_shape=arrays (renamed from lists) * New ?_shape=array returns an array of objects as the root object * Changed ?_shape=object to return the object as the root * Updated docs",2018-05-02T00:08:16Z,2018-05-02T00:20:39Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw a82175276c3f5898161c7630f669d0b8990d7a16,_sort/_next links now use new path_with_replaced_args method,2018-05-15T09:34:45Z,2018-05-16T15:27:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw a86c3ee832e0b608f9881e40425d294f31802bc0,"Added db.create_view(name, sql) method",2018-08-02T15:24:16Z,2018-08-02T15:24:16Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw a87df963a08054ad7a652f0218e70ddb7f9cc8bd,"Error handling for ?_sort and ?_sort_desc Verifies that they match an existing column, and only one or the other option is provided - refs #189 Eses a new DatasetteError exception that closes #193",2018-04-09T04:07:31Z,2018-04-09T05:10:22Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw a892f9a0bd6667c1ad4c590016d6845cd98a645a,Use escape_sqlite() more consistently,2018-05-15T15:00:39Z,2018-05-16T15:27:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw a8a293cd71f7529aff374be5ca01f2ebd5e71ee4,Refactored util functions into new utils module,2017-11-10T19:25:54Z,2017-11-10T19:25:54Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw a9138f044a4d73256c2244243d4e2908d77d218e,Added date to most recent changelog entry,2017-11-16T15:40:43Z,2017-11-16T15:40:43Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw a971718d2a5e1b61b5e5c27b0ef6c4ec65616e35,Fix a typo (#232),2018-04-21T00:19:07Z,2018-04-21T00:19:07Z,8795af7c0eb348f1248a81917921e4a7d768bee3,lsb,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,45281,lsb,9599,simonw abb591d83264bbf11a5eb9daf03011d051e8f833,"Added --reload argument to 'immutabase serve' command Uses hupper to restart the server when the code changes. Useful for development. Depends on https://pypi.python.org/pypi/hupper",2017-11-09T13:46:16Z,2017-11-09T14:14:26Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw acea54877ca65f08cef4f7260bd7f7fcabe31b90,Create table now works for pure m2m where both rows are foreign keys,2018-07-28T22:06:59Z,2018-07-28T22:06:59Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw ad8b5d3bd23a7b306b8843d7de53a7c918ddb74f,"JSON version of our homepage Now available at http://localhost:8006/.json Tested by tests added in 407795b61217205625f2d4e084afbf69f1db781b",2017-11-11T17:49:47Z,2017-11-11T17:49:47Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw b0d2bb3e43dd567b96b6a4ddc3c1a09a84c2c42d,Facets no longer consider null values,2018-05-14T22:19:43Z,2018-05-16T15:27:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw b0f3d4e375655f0764f3137dbcede324f9bbc0cb,Version 0.11,2017-11-14T01:48:22Z,2017-11-14T01:48:22Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw b13f0986f26d88938519b07871c961c0b5a97802,"New sortable_columns option in metadata.json to control sort options You can now explicitly set which columns in a table can be used for sorting using the _sort and _sort_desc arguments using metadata.json: { ""databases"": { ""database1"": { ""tables"": { ""example_table"": { ""sortable_columns"": [ ""height"", ""weight"" ] } } } } } Refs #189",2018-04-09T04:58:25Z,2018-04-09T05:10:22Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw b20d7119e4f6506cdb9d5d11322e28130823adfd,Implemented template inheritance and brought back errors,2017-10-24T02:56:27Z,2017-10-24T02:56:27Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw b231d4243d748facf1897e7756c2b578bb448edc,Correct escaping for HTML display of row links,2018-04-15T21:48:30Z,2018-04-18T01:13:02Z,cd9d55c7c0a7cc0ee69155676fd5e9fc6e1b884b,Russ Garrett,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,45057,russss,9599,simonw b2372605d63248f422b6e67cb5c392236a3aa612,"Implemented multi-db support plus initial URL structure Refs #24 Fixes #15",2017-10-24T02:00:37Z,2017-10-24T02:00:37Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw b263da78e329853ceea41c4ecabe7e8bb08d20a7,"Reliable sort order for facets in Python 3.5, fixing test - refs #255",2018-05-16T14:43:13Z,2018-05-16T15:27:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw b2dee11fcd989d9e2a7bf4de1e23dbc320c05013,"Databases now get distinct colours A left border based on their content hash. Closes #31",2017-11-09T14:12:42Z,2017-11-09T14:14:40Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw b46e370ee6126aa2fa85cf789a31da38aed98496,"Link to pages-per-row Closes #1",2017-10-24T14:10:58Z,2017-10-24T14:10:58Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw b51836f8463ef65bc947f0a7b6e60167cb7154cf,"Fixed bug with tables with spaces in their name The new database index page was erroring.",2017-11-12T20:02:45Z,2017-11-12T20:02:45Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw b69f8b6c856adff577fe6a1816359bb00e82ffd1,"table.count property, plus made a start on table documentation",2018-07-31T03:24:35Z,2018-07-31T03:24:35Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw b7c4165346ee8b6a6fbd72d6ba2275a24a8a8ae3,"Added --load-extension argument to datasette serve Allows loading of SQLite extensions. Refs #110.",2017-11-16T16:46:04Z,2017-11-16T16:48:49Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw ba515fc56e6cf77ea299b6d534be7ccfa925a533,Removed un-used variable,2018-05-15T10:08:07Z,2018-05-16T15:27:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw bc9379aabcedce7fbc661ac15008d8801199a045,"Added .jsono extension Returns JSON key/value objects for each row instead of lists of values. Closes #6",2017-10-24T15:07:52Z,2017-10-24T15:07:52Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw bc9871c93583f3cdcca191b7fa05b255be7275c8,"gt/lt/gte/lte now treat numeric arguments as numeric This now works: https://immutabase-dlmggyoepw.now.sh/northwind-40d049b/Products?UnitsInStock__gt=100 Previously the input value of 100 would be treated as a string. Also fixed a bug where filter arguments had stopped working entirely. Refs #23",2017-11-09T16:09:55Z,2017-11-09T16:09:55Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw bd30c696e18927207358ee9d63174a5c41c8297e,"Build Dockerfile with recent Sqlite + Spatialite (#280) Closes #278 ```bash $ docker run --rm -it datasette spatialite SpatiaLite version ..: 4.4.0-RC0 Supported Extensions: - 'VirtualShape' [direct Shapefile access] - 'VirtualDbf' [direct DBF access] - 'VirtualXL' [direct XLS access] - 'VirtualText' [direct CSV/TXT access] - 'VirtualNetwork' [Dijkstra shortest path] - 'RTree' [Spatial Index - R*Tree] - 'MbrCache' [Spatial Index - MBR cache] - 'VirtualSpatialIndex' [R*Tree metahandler] - 'VirtualElementary' [ElemGeoms metahandler] - 'VirtualKNN' [K-Nearest Neighbors metahandler] - 'VirtualXPath' [XML Path Language - XPath] - 'VirtualFDO' [FDO-OGR interoperability] - 'VirtualGPKG' [OGC GeoPackage interoperability] - 'VirtualBBox' [BoundingBox tables] - 'SpatiaLite' [Spatial SQL - OGC] PROJ.4 version ......: Rel. 4.9.3, 15 August 2016 GEOS version ........: 3.5.1-CAPI-1.9.1 r4246 TARGET CPU ..........: x86_64-linux-gnu the SPATIAL_REF_SYS table already contains some row(s) SQLite version ......: 3.23.1 Enter "".help"" for instructions SQLite version 3.23.1 2018-04-10 17:39:29 Enter "".help"" for instructions Enter SQL statements terminated with a "";"" spatialite> ``` ```bash $ docker run --rm -it datasette python -c ""import sqlite3; print(sqlite3.sqlite_version)"" 3.23.1 ``` Also updates the query used to check for FTS5 as the old version wasn't detecting FTS5 for some reason.",2018-05-23T17:43:34Z,2018-05-23T17:43:34Z,a901819e7fab7b80a873df43d5123bb3252681f8,Ravi Kotecha,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,565628,r4vi,9599,simonw bd5f3b2ba1a627383d512d613b77d15501dfccc4,Show time taken at bottom of table page,2017-10-25T01:31:54Z,2017-10-25T01:31:54Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw bd71be32abead38ec0b69695347219024efea0fe,Initial project layout + database table creation tools,2018-07-28T13:43:18Z,2018-07-28T13:46:17Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw be768f26d09fa060b1ca71785ff546dd572f3fbc,python setup.py test now runs the tests,2017-11-04T23:40:27Z,2017-11-04T23:40:27Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw bfb19e3a178ba9b2dab2f90f90a398b54a73d34e,Correctly escape sort-by columns in SQL (refs #189),2018-04-09T02:25:14Z,2018-04-09T05:10:22Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw c1d37fdf2be84fb07155bb1b1f61057444b03300,"Fixed bug with human filter description, refs #189 We were showing this: 201 rows where sorted by sortable_with_nulls We now show this: 201 rows sorted by sortable_with_nulls",2018-04-09T05:07:18Z,2018-04-09T05:10:22Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw c371f06fdea413cfb00aa8f81b7a5535a7ecdbc4,Include took_ms in JSON output,2017-10-24T23:55:53Z,2017-10-24T23:55:53Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw c446e22f34eb56a454c57edf93824d2615b83c0e,"Moved fixtures to fixtures.py, added .schema test",2018-07-31T15:55:24Z,2018-07-31T15:55:24Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw c5068a0972651b3e359ebc2d6c1486b8b7d2c242,:pencil: Updates my_database.py to my_database.db (#9),2019-02-24T03:55:04Z,2019-02-24T03:55:04Z,207bb2132044fa5a4fe28a579f7588c2eee6e391,Jeff Triplett,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,140912432,sqlite-utils,50527,jefftriplett,9599,simonw c611ed80d2e9f721fc7848fd74e6e6baebe5adde,.indexes property for introspecting indexes,2018-08-01T01:31:29Z,2018-08-01T01:31:29Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw cbb59e3801868e1c284ad50b66343cd4358e516c,Handle tables with names that start with digits,2017-11-14T18:13:37Z,2017-11-15T02:03:21Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw cf1fe693e5741035df65cc9d69c4af32befd021d,Used isort to re-order my imports,2018-05-13T12:58:28Z,2018-05-14T03:04:23Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw d01370f1660d0b0360248105cd43060dca31f70f,Show SQL and params if table has them applied,2017-11-12T23:21:39Z,2017-11-12T23:21:39Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw d08a13314081ae2ce0313a17d3c07c1a7f2d94d5,"Hide Spatialite system tables They were getting on my nerves.",2018-04-11T21:20:25Z,2018-04-12T21:34:47Z,cd9d55c7c0a7cc0ee69155676fd5e9fc6e1b884b,Russ Garrett,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,45057,russss,9599,simonw d1209a2c453311432dcc41966a81a39d895e9fae,"Use FTS4 when running the tests Because the version of sqlite3 running in Travis CI does not have FTS5",2018-08-13T00:33:13Z,2018-08-13T00:33:13Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw d75f423b6fcfc074b7c6f8f7679da8876f181edd,Release 0.9,2017-11-13T22:00:39Z,2017-11-13T22:00:53Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw d76412668f8c12572eb7de57ccb72f1e50306177,Removed rogue middot,2017-11-13T20:34:39Z,2017-11-13T20:34:39Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw d94d4465d7e72e668122f81206397f4f20cf555b,"Double quote around column names This means filters still work even with column names that contain spaces",2017-10-25T14:47:20Z,2017-10-25T14:47:20Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw d9fa2bf7ba2f9d3dcb2beb303f772c86344b4bcf,"Use rowid if no primary key available Allows us to link to individual records even for tables that do not have a primary key. Refs #5",2017-11-09T14:39:50Z,2017-11-09T14:39:50Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw db3fa4abfac366184e97fb313b36d3429e5b937a,"Views no longer attempt to link to records Closes #54",2017-11-12T21:29:26Z,2017-11-12T21:29:26Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw ddef2298509e3027a44971a681ad7855bf07b51a,"Initial implementation of suggested facets Causes tests to break at the moment",2018-05-14T22:09:42Z,2018-05-16T15:27:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw de04d7a854d71003ffcf98028eab976a936c2dba,Initial working proof of concept,2017-10-23T00:41:19Z,2017-10-23T00:41:19Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw de05cf21aa6a922ee2825b5098b108dd23fb0755,"Facet ""selected"" key and toggle_url now toggles, refs #255",2018-05-14T20:42:10Z,2018-05-16T15:27:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw e04f509c518af01db5f3174ed662c3ac50320f58,Added docs on storing JSON,2018-08-01T00:48:32Z,2018-08-01T00:48:32Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw e06b0117711ca7c9d6d6865d2bff8525aa11ebf0,"Updated tests Refs #23",2017-11-10T18:43:54Z,2017-11-10T18:43:54Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw e16ca1169cc49fbb5b0325564d248becad3a4b7f,"Refactored table column/row display logic Simplified the template and made the way for upcoming foreign key work. Refs #85 Also fixed   bug on database page - closes #113",2017-11-17T15:39:36Z,2017-11-17T15:39:36Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw e4bf66d9b075190bf96c1f85eaccd7464915f249,"Added header with breadcrumbs and footer Also cleaned up titles on various pages. Closes #61",2017-11-11T20:36:20Z,2017-11-11T20:36:20Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw e51f36d3ebb28378d0938aabb80a432720269bce,"Added table.foreign_keys property, fixed bug in foreign key creation",2018-07-28T22:41:18Z,2018-07-28T22:41:18Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw e55bc3b2fa6e1e8be7b7c1f5b6cb3764713b6faa,th align left for all tables,2017-10-25T14:46:38Z,2017-10-25T14:46:38Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw e6ca88588395a9b8266c0e14121668990d34ff67,"Added initial docs, including a changelog Docs initialized using this helpful guide: http://docs.readthedocs.io/en/latest/getting_started.html I used https://pypi.python.org/pypi/gitchangelog to kick-start the changelog. Closes #99 Refs #109",2017-11-16T15:11:00Z,2017-11-16T15:11:00Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw e7e50875d341f1d26b4dbba862f5202631f34896,Renamed to 'datasette',2017-11-10T18:38:35Z,2017-11-10T18:38:35Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw e838bd743d31358b362875854a0ac5e78047727f,Added README and improved help for 'datasette serve',2017-11-13T18:41:53Z,2017-11-13T18:41:59Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw e888bb122dadfbd937fc3893444a2edcb0b5b499,"Added .schema property, improved docs, release 0.3",2018-07-31T15:33:52Z,2018-07-31T15:33:52Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw e9e1def4c0cc49c96ed0b0d2bbc3ae81353ed2bb,"Revised JSON design a bit Closes #63",2017-11-11T22:20:00Z,2017-11-11T22:20:00Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw e9fce441956642bef3548e3181d72a88317efa65,Don't serve cache headers in debug or refresh modes,2017-11-10T20:26:37Z,2017-11-10T20:26:37Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw ea183b2ae3d557a370628e236fe606717c704e2a,"Default to 127.0.0.1 not 0.0.0.0 Closes #98",2017-11-15T05:08:46Z,2017-11-15T05:08:46Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw eaf715a60ae3c3180d0949da8292e2627b72e287,Extract /-/plugins view into a method,2018-05-13T13:06:02Z,2018-05-14T03:04:23Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw ec6abc81e433c9bac1b9f085111785fc227e9e34,"Initial units support Add support for specifying units for a column in metadata.json and rendering them on display using [pint](https://pint.readthedocs.io/en/latest/). ref #203",2018-04-13T21:17:59Z,2018-04-14T03:32:53Z,cd9d55c7c0a7cc0ee69155676fd5e9fc6e1b884b,Russ Garrett,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,45057,russss,9599,simonw ed2b3f25beac720f14869350baacc5f62b065194,"add support for ?field__isnull=1 (#107) * add support for ?field__isnull=1 * Add unit test and conditional formatting for ?field__isnull",2017-11-17T13:29:22Z,2017-11-17T13:29:22Z,19245be93da11be3d5e72991646660a06a9d3449,Ray N,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,3433657,raynae,9599,simonw ed78922ae38b51513319b60ac39990b7c2aca810,"Tiny typo in customization docs (#390) Thanks, @jaywgraves",2018-12-16T21:32:55Z,2018-12-16T21:32:55Z,6410ac01839c113476668eeff88d60a0a2c6eb7a,Jay Graves,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,418191,jaywgraves,9599,simonw eda848b37f8452dba7913583ef101f39d9b130ba,Add keyboard shortcut to execute SQL query (#115),2017-11-17T14:22:55Z,2017-11-17T14:22:55Z,106fe7fbf8b80a01038e265a137b3b703422db48,Robert Gieseke,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,198537,rgieseke,9599,simonw edaa10587e60946e0c1935333f6b79553db33798,Configured Travis CI,2017-11-04T23:47:46Z,2017-11-04T23:47:46Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw eef213ab4d57622dfc60c8655c0c7a18afcc844f,Show total number of rows in table,2017-10-25T00:11:36Z,2017-10-25T00:11:36Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw efbb4e83374a2c795e436c72fa79f70da72309b8,"Return HTTP 405 on InvalidUsage rather than 500 This also stops it filling up the logs. This happens for HEAD requests at the moment - which perhaps should be handled better, but that's a different issue.",2018-04-14T16:11:16Z,2018-04-14T18:00:38Z,cd9d55c7c0a7cc0ee69155676fd5e9fc6e1b884b,Russ Garrett,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,45057,russss,9599,simonw efecae5a11617eb576d475192384339fcdb03189,"Full path to database now works e.g. datasette /tmp/blah.db Previously this failed because it did not open with full path.",2017-11-12T22:23:41Z,2017-11-12T23:01:29Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw f1b0521810bbc467721e4dcc5a2ff1bf2a1ddbb8,Preserve .json through redirects,2017-10-25T15:01:22Z,2017-10-25T15:01:22Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw f2b940d6026677f6859d46a4f16fa402745d261d,"Link foreign keys which don't have labels This renders unlabeled FKs as simple links. I can't see why this would cause any major problems. Also includes bonus fixes for two minor issues: * In foreign key link hrefs the primary key was escaped using HTML escaping rather than URL escaping. This broke some non-integer PKs. * Print tracebacks to console when handling 500 errors.",2018-04-14T13:17:20Z,2018-04-14T14:59:59Z,cd9d55c7c0a7cc0ee69155676fd5e9fc6e1b884b,Russ Garrett,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,45057,russss,9599,simonw f3445e2d13e2c38bfbf75f35c2aa3e50df0040f1,Install python3-dev rothar than python-dev,2017-11-17T14:18:49Z,2017-11-17T14:18:49Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw f36c9d4b4ca77dd42495f31d02e89b4c10833531,"Facet toggling now works for integer columns, refs #255",2018-05-14T21:33:24Z,2018-05-16T15:27:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw f3a3820ff5c5ba9b4af102e65ed1f084b1fe704d,"_sort and _sort_desc parameters for table views Allows for paginated sorted results based on a specified column. Refs #189",2018-04-09T00:06:10Z,2018-04-09T05:10:22Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw f45ca30f91b92ac68adaba893bf034f13ec61ced,"Fixed bug with datasette package --metadata Closes #84",2017-11-15T05:18:29Z,2017-11-15T05:18:29Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw f4794df07032083fbd3d4829e17b3fd2a54b779a,Added border-right to table cells,2017-11-12T20:19:18Z,2017-11-12T20:19:18Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw f4907f6df58d822dfb67660b982a9081b39a06fb,"enable_fts(), populate_fts() and search() methods",2018-07-31T16:19:05Z,2018-07-31T16:19:20Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw f4943ca89bf400350205788f9130c135aaf7b85b,"_facet selections persist through table form, refs #255",2018-05-15T10:28:48Z,2018-05-16T15:27:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw f5418e13f2e435a42cd3611b28ec3c9ac02481da,Release 0.3.1 to publish updated README to PyPI,2018-07-31T15:39:43Z,2018-07-31T15:39:43Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw f571b19d8a5fd3a19fdf679421fd55a8edbf5295,"sqlerrors() decorator catching and returning useful errors Closes #8",2017-10-23T15:28:00Z,2017-10-23T15:28:00Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw f643f7aee1b3d29df82b93a6560887a35b7a2f13,"base64 encode bytestrings from DB in JSON Fixes #29",2017-10-24T14:58:41Z,2017-10-24T14:58:41Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw f96e55bce55d26c4d5b198edc536e1b8e9bbea43,"Fix pytest version conflict https://travis-ci.org/simonw/datasette/jobs/305929426 pkg_resources.VersionConflict: (pytest 3.2.1 (/home/travis/virtualenv/python3.5.3/lib/python3.5/site-packages), Requirement.parse('pytest==3.2.3'))",2017-11-22T20:15:29Z,2017-11-22T20:17:51Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw fa42a56c6a0fa62529eabf2d363bd3008ce23094,"Bulked out table test a bit I'm closing #50 - more tests will be added in the future, but the framework is neatly in place for them now.",2017-11-11T22:22:47Z,2017-11-11T22:22:47Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw fc47dacbbd4c4d245d7144e4cc014d3303f84b9a,"Add `__version_info__` derived from `__version__` This might be tuple of more than two values (major and minor version) if commits have been made after a release.",2018-05-22T17:18:00Z,2018-05-22T19:35:21Z,106fe7fbf8b80a01038e265a137b3b703422db48,Robert Gieseke,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,198537,rgieseke,9599,simonw fc7c04fe0b2f9daf8875ccaa9625ec80d8eeafe2,"Added 'datasette publish now --force' option This calls now with --force - which is useful as it means you get a fresh copy of datasette even if now has already cached that docker layer.",2017-11-14T01:48:03Z,2017-11-14T01:48:03Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw fcc38b9ff2e4dbb680a4429002767f6df855674b,Moved fixtures into conftest.py,2018-08-13T00:24:11Z,2018-08-13T00:25:39Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw fd3a33989aaf2533c4928de3b251c24614003f1e,"Implemented new database view and template Closes #53 - see comments there for screenshots.",2017-11-12T01:50:21Z,2017-11-12T01:50:21Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw fe279ab7b4ae99dab295d5cf4d39ad06d782997e,"v0.8 - added PyPI metadata, ready to ship",2017-11-13T21:17:34Z,2017-11-13T21:17:34Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw ff2ab9dc7d82f70daae10f5b0cde87d74704f910,"Views now show their SQL, are handled a bit better Refs #66",2017-11-12T20:31:46Z,2017-11-12T20:32:25Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw ff2fb573cd8773206a6df83229620928056e2ee2,"datasette publish --name=now-accepts-name Fixes #72",2017-11-13T02:12:21Z,2017-11-13T02:12:21Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw