{"sha": "c611ed80d2e9f721fc7848fd74e6e6baebe5adde", "message": ".indexes property for introspecting indexes", "author_date": "2018-08-01T01:31:29Z", "committer_date": "2018-08-01T01:31:29Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 140912432, "label": "sqlite-utils"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "515d362ad60c3dc16272c4fdca932cf0a0e9dafa", "message": ".table_names and .tables properties plus expanded docs", "author_date": "2018-08-01T00:35:36Z", "committer_date": "2018-08-01T00:35:36Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 140912432, "label": "sqlite-utils"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "63aac537f238239d5fb7f4934545404d37d874f6", "message": "1,442 format for facet counts, refs #255", "author_date": "2018-05-15T12:14:14Z", "committer_date": "2018-05-16T15:27:24Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "06a826c3188af82f27bb6b4e09cc89b782d30bd6", "message": ":fire: Removes DS_Store (#81)\n\n* :fire: Removes .DS_Store\r\n\r\nSigned-off-by: Jeff Triplett \r\n\r\n* :snowflake: Adds .DS_Store to gitignore\r\n\r\nSigned-off-by: Jeff Triplett ", "author_date": "2017-11-13T22:16:54Z", "committer_date": "2017-11-13T22:16:54Z", "raw_author": {"value": "207bb2132044fa5a4fe28a579f7588c2eee6e391", "label": "Jeff Triplett"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 50527, "label": "jefftriplett"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "c5068a0972651b3e359ebc2d6c1486b8b7d2c242", "message": ":pencil: Updates my_database.py to my_database.db (#9)", "author_date": "2019-02-24T03:55:04Z", "committer_date": "2019-02-24T03:55:04Z", "raw_author": {"value": "207bb2132044fa5a4fe28a579f7588c2eee6e391", "label": "Jeff Triplett"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 140912432, "label": "sqlite-utils"}, "author": {"value": 50527, "label": "jefftriplett"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "2565d623af6222f3ed1c630f753b5f95ad749d49", "message": "?_shape=array experimental feature", "author_date": "2018-05-01T17:40:33Z", "committer_date": "2018-05-02T00:20:39Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "fc47dacbbd4c4d245d7144e4cc014d3303f84b9a", "message": "Add `__version_info__` derived from `__version__`\n\nThis might be tuple of more than two values (major and minor\nversion) if commits have been made after a release.", "author_date": "2018-05-22T17:18:00Z", "committer_date": "2018-05-22T19:35:21Z", "raw_author": {"value": "106fe7fbf8b80a01038e265a137b3b703422db48", "label": "Robert Gieseke"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 198537, "label": "rgieseke"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "136a70d88741e2a5892c3de437064a9d14494d66", "message": "Add column name classes to s, make PK bold", "author_date": "2018-04-17T08:29:48Z", "committer_date": "2018-04-18T01:13:02Z", "raw_author": {"value": "cd9d55c7c0a7cc0ee69155676fd5e9fc6e1b884b", "label": "Russ Garrett"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 45057, "label": "russss"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "9e27b2a0ba45d92e198fcbac8641da41a62236b8", "message": "Add example of named parameter UI to the release notes", "author_date": "2017-11-16T16:09:07Z", "committer_date": "2017-11-16T16:46:25Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "eda848b37f8452dba7913583ef101f39d9b130ba", "message": "Add keyboard shortcut to execute SQL query (#115)", "author_date": "2017-11-17T14:22:55Z", "committer_date": "2017-11-17T14:22:55Z", "raw_author": {"value": "106fe7fbf8b80a01038e265a137b3b703422db48", "label": "Robert Gieseke"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 198537, "label": "rgieseke"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "3a56a2cd7eea5d477d5d936b01098be5cba0d98e", "message": "Add metadata, if it exists, to heroku temp dir (#178)", "author_date": "2018-01-14T21:05:16Z", "committer_date": "2018-01-14T21:05:16Z", "raw_author": {"value": "38fee63c62808d1ea42ad2bb2db074f9301d2840", "label": "Tony Hirst"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 82988, "label": "psychemedia"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "8b4c600d98b85655b3a1454ebf64f858b5fe54c8", "message": "Add spatialite, switch to debian and local build (#114)", "author_date": "2017-11-17T03:50:51Z", "committer_date": "2017-11-17T03:50:51Z", "raw_author": {"value": "959507cc7596b555bf4292e84f335b02cca843f8", "label": "Ariel N\u00fa\u00f1ez"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 54999, "label": "ingenieroariel"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "a113c28ea1924d83e6789ae5e0805312e55b4490", "message": "Add version number support with Versioneer\n\nRepo:\nhttps://github.com/warner/python-versioneer\n\nVersioneer Licence:\nPublic Domain (CC0-1.0)\n\nCloses #273", "author_date": "2018-05-22T15:33:29Z", "committer_date": "2018-05-22T19:35:21Z", "raw_author": {"value": "a1a72b19e432a3145fdb845aab2927c00d8a8426", "label": "Robert Gieseke"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 198537, "label": "rgieseke"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "fc7c04fe0b2f9daf8875ccaa9625ec80d8eeafe2", "message": "Added 'datasette publish now --force' option\n\nThis calls now with --force - which is useful as it means you get a fresh copy of\ndatasette even if now has already cached that docker layer.", "author_date": "2017-11-14T01:48:03Z", "committer_date": "2017-11-14T01:48:03Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "97c4bf4271495f8f711926ec44d8def3f2941379", "message": "Added --cors argument to enable CORS\n\nCloses #75", "author_date": "2017-11-13T18:17:42Z", "committer_date": "2017-11-13T18:17:42Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "b7c4165346ee8b6a6fbd72d6ba2275a24a8a8ae3", "message": "Added --load-extension argument to datasette serve\n\nAllows loading of SQLite extensions. Refs #110.", "author_date": "2017-11-16T16:46:04Z", "committer_date": "2017-11-16T16:48:49Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "abb591d83264bbf11a5eb9daf03011d051e8f833", "message": "Added --reload argument to 'immutabase serve' command\n\nUses hupper to restart the server when the code changes. Useful for development.\n\nDepends on https://pypi.python.org/pypi/hupper", "author_date": "2017-11-09T13:46:16Z", "committer_date": "2017-11-09T14:14:26Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "1e698787a4dd6df0432021a6814c446c8b69bba2", "message": "Added --sql_time_limit_ms and --extra-options\n\nThe serve command now accepts --sql_time_limit_ms for customizing the SQL time\nlimit.\n\nThe publish and package commands now accept --extra-options which can be used\nto specify additional options to be passed to the datasite serve command when\nit executes inside the rusulting Docker containers.", "author_date": "2017-11-13T21:58:34Z", "committer_date": "2017-11-13T22:00:53Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "bc9379aabcedce7fbc661ac15008d8801199a045", "message": "Added .jsono extension\n\nReturns JSON key/value objects for each row instead of lists of values.\n\nCloses #6", "author_date": "2017-10-24T15:07:52Z", "committer_date": "2017-10-24T15:07:52Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "e888bb122dadfbd937fc3893444a2edcb0b5b499", "message": "Added .schema property, improved docs, release 0.3", "author_date": "2018-07-31T15:33:52Z", "committer_date": "2018-07-31T15:33:52Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 140912432, "label": "sqlite-utils"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "e838bd743d31358b362875854a0ac5e78047727f", "message": "Added README and improved help for 'datasette serve'", "author_date": "2017-11-13T18:41:53Z", "committer_date": "2017-11-13T18:41:59Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "228bce83a37b4bee633f674b802aee13fe5b2f44", "message": "Added __version__, bumped it to 0.12\n\nCloses #108", "author_date": "2017-11-16T15:20:54Z", "committer_date": "2017-11-16T15:20:54Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "1a6cfcc10f9abcc743b45437996c7264cc2a57b2", "message": "Added a .dockerignore\n\nFigured this would be useful while testing out 03572ae3557", "author_date": "2017-11-17T14:18:23Z", "committer_date": "2017-11-17T14:18:23Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "8af7bc100c681975894f49f4ffd6d26a06e93f60", "message": "Added a MANIFEST.in\n\nNow python setup.py bdist_wheel creates a .whl that includes the CSS.", "author_date": "2017-11-09T02:39:42Z", "committer_date": "2017-11-09T02:39:42Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "5d8084a28578da2aefa79ad81df9d82e2c265666", "message": "Added a UI for editing named parameters\n\nFixes #96", "author_date": "2017-11-16T01:32:48Z", "committer_date": "2017-11-16T01:32:48Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "6a9fdcc0718aea2cbc01ae4d60b9a1fba3601a66", "message": "Added addressable page per row\n\nRefs #1 - only exists for tables with introspectable primary keys.\n\nStill need to link to this page.\n\nAlso added first unit tests - refs #9", "author_date": "2017-10-24T05:54:58Z", "committer_date": "2017-10-24T05:54:58Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "f4794df07032083fbd3d4829e17b3fd2a54b779a", "message": "Added border-right to table cells", "author_date": "2017-11-12T20:19:18Z", "committer_date": "2017-11-12T20:19:18Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "a9138f044a4d73256c2244243d4e2908d77d218e", "message": "Added date to most recent changelog entry", "author_date": "2017-11-16T15:40:43Z", "committer_date": "2017-11-16T15:40:43Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "a86c3ee832e0b608f9881e40425d294f31802bc0", "message": "Added db.create_view(name, sql) method", "author_date": "2018-08-02T15:24:16Z", "committer_date": "2018-08-02T15:24:16Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 140912432, "label": "sqlite-utils"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "e04f509c518af01db5f3174ed662c3ac50320f58", "message": "Added docs on storing JSON", "author_date": "2018-08-01T00:48:32Z", "committer_date": "2018-08-01T00:48:32Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 140912432, "label": "sqlite-utils"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "7fe1e8b4827aa1d7e72825da563effdf44ae7233", "message": "Added extra metadata options to publish and package commands\n\nYou can now run these commands like so:\n\n datasette now publish mydb.db \\\n --title=\"My Title\" \\\n --source=\"Source\" \\\n --source_url=\"http://www.example.com/\" \\\n --license=\"CC0\" \\\n --license_url=\"https://creativecommons.org/publicdomain/zero/1.0/\"\n\nThis will write those values into the metadata.json that is packaged with the\napp. If you also pass --metadata= that file will be updated with the extra\nvalues before being written into the Docker image.\n\nCloses #92", "author_date": "2017-11-15T05:02:11Z", "committer_date": "2017-11-15T05:02:11Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "1c5977961f596dae5aaa18c8b2d7a10e9f42a543", "message": "Added glob and like lookups - refs #23", "author_date": "2017-10-25T01:53:01Z", "committer_date": "2017-10-25T01:53:01Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "e4bf66d9b075190bf96c1f85eaccd7464915f249", "message": "Added header with breadcrumbs and footer\n\nAlso cleaned up titles on various pages.\n\nCloses #61", "author_date": "2017-11-11T20:36:20Z", "committer_date": "2017-11-11T20:36:20Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "e6ca88588395a9b8266c0e14121668990d34ff67", "message": "Added initial docs, including a changelog\n\nDocs initialized using this helpful guide:\n\nhttp://docs.readthedocs.io/en/latest/getting_started.html\n\nI used https://pypi.python.org/pypi/gitchangelog to kick-start the changelog.\n\nCloses #99\n\nRefs #109", "author_date": "2017-11-16T15:11:00Z", "committer_date": "2017-11-16T15:11:00Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "2366a016f252f2220eb777938a9da4b0de179063", "message": "Added links to .json and .jsono representations\n\nCloses #62", "author_date": "2017-11-11T22:40:44Z", "committer_date": "2017-11-11T22:40:44Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "9959a9e4deec8e3e178f919e8b494214d5faa7fd", "message": "Added screenshots to facets and full_text_search docs, refs #255", "author_date": "2018-05-16T15:24:44Z", "committer_date": "2018-05-16T15:27:24Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "79216bac12668eb90ccad65086d4f129476a3969", "message": "Added some breathing room to the footer", "author_date": "2017-11-13T19:38:20Z", "committer_date": "2017-11-13T19:38:20Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "630b40038ef31b351abc2e39c3a0c7b3648814f8", "message": "Added support for gt, gte, lt, lte lookups\n\nRefs #23", "author_date": "2017-10-25T01:46:49Z", "committer_date": "2017-10-25T01:46:55Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "e51f36d3ebb28378d0938aabb80a432720269bce", "message": "Added table.foreign_keys property, fixed bug in foreign key creation", "author_date": "2018-07-28T22:41:18Z", "committer_date": "2018-07-28T22:41:18Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 140912432, "label": "sqlite-utils"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "45e502aace6cc1198cc5f9a04d61b4a1860a012b", "message": "Added unit tests for inspect() foreign key detection\n\nUsed them to fix a bug with it.\n\nRefs #85", "author_date": "2017-11-17T16:08:11Z", "committer_date": "2017-11-17T16:08:11Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "0f782dd8dfd7c53a9c20bbd2cb8734bb806d928b", "message": "Additional test asserts", "author_date": "2018-04-16T20:22:04Z", "committer_date": "2018-04-18T01:13:02Z", "raw_author": {"value": "cd9d55c7c0a7cc0ee69155676fd5e9fc6e1b884b", "label": "Russ Garrett"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 45057, "label": "russss"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "03572ae35573c2ea802a540624ce116f540ba1ac", "message": "Allow --load-extension to be set via environment variable\n\nI tesed this by first building and running a container using the new\nDockerfile from #114:\n\n docker build .\n docker run -it -p 8001:8001 6c9ca7e29181 /bin/sh\n\nThen I ran this inside the container itself:\n\n apt update && apt-get install wget -y \\\n && wget http://www.gaia-gis.it/spatialite-2.3.1/test-2.3.sqlite.gz \\\n && gunzip test-2.3.sqlite.gz \\\n && mv test-2.3.sqlite test23.sqlite \\\n && datasette -h 0.0.0.0 test23.sqlite\n\nI visited this URL to confirm I got an error due to spatialite not being\nloaded:\n\nhttp://localhost:8001/test23-c88bc35?sql=select+ST_AsText%28Geometry%29+from+HighWays+limit+1\n\nThen I checked that loading it with `--load-extension` worked correctly:\n\n datasette -h 0.0.0.0 test23.sqlite \\\n --load-extension=/usr/lib/x86_64-linux-gnu/mod_spatialite.so\n\nThen, finally, I tested it with the new environment variable option:\n\n SQLITE_EXTENSIONS=/usr/lib/x86_64-linux-gnu/mod_spatialite.so \\\n datasette -h 0.0.0.0 test23.sqlite\n\nRunning it with an invalid environment variable option shows an error:\n\n $ SQLITE_EXTENSIONS=/usr/lib/x86_64-linux-gnu/blah.so datasette \\\n -h 0.0.0.0 test23.sqlite\n Usage: datasette -h [OPTIONS] [FILES]...\n\n Error: Invalid value for \"--load-extension\": Path \"/usr/lib/x86_64-linux-gnu/blah.so\" does not exist.\n\nCloses #112", "author_date": "2017-11-17T14:13:35Z", "committer_date": "2017-11-17T14:13:35Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "0fa177269767e5e55c863382333fde627d2b7074", "message": "Allow ?sql= argument against database\n\ne.g. /database-234324?sql=select * from table limit 1", "author_date": "2017-10-24T02:48:56Z", "committer_date": "2017-10-24T02:48:56Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "58fec99ab0a31bcf25968f2aa05d37de8139b83c", "message": "Allow app names for `datasette publish heroku`\n\nLets you supply the `-n` parameter for Heroku deploys, which also lets\nyou update existing Heroku deployments.", "author_date": "2018-07-14T13:10:49Z", "committer_date": "2018-07-14T14:04:42Z", "raw_author": {"value": "cd9d55c7c0a7cc0ee69155676fd5e9fc6e1b884b", "label": "Russ Garrett"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 45057, "label": "russss"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "2a09d3708777116daedc548078a662086552523f", "message": "Allow views to be browsed as well as tables", "author_date": "2017-10-24T23:55:08Z", "committer_date": "2017-10-24T23:55:08Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "4f7281af8ce421d2f8c57ba43108261ba89d2cd6", "message": "Apply a default height to CodeMirror\n\nMakes it a bit more obvious that it's an editable textarea even\nif the SQL in it is only one line long.", "author_date": "2017-11-15T02:04:04Z", "committer_date": "2017-11-15T02:04:04Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "bd30c696e18927207358ee9d63174a5c41c8297e", "message": "Build Dockerfile with recent Sqlite + Spatialite (#280)\n\nCloses #278\r\n\r\n```bash\r\n $ docker run --rm -it datasette spatialite\r\n SpatiaLite version ..: 4.4.0-RC0\tSupported Extensions:\r\n - 'VirtualShape'\t[direct Shapefile access]\r\n - 'VirtualDbf'\t\t[direct DBF access]\r\n - 'VirtualXL'\t\t[direct XLS access]\r\n - 'VirtualText'\t\t[direct CSV/TXT access]\r\n - 'VirtualNetwork'\t[Dijkstra shortest path]\r\n - 'RTree'\t\t[Spatial Index - R*Tree]\r\n - 'MbrCache'\t\t[Spatial Index - MBR cache]\r\n - 'VirtualSpatialIndex'\t[R*Tree metahandler]\r\n - 'VirtualElementary'\t[ElemGeoms metahandler]\r\n - 'VirtualKNN'\t[K-Nearest Neighbors metahandler]\r\n - 'VirtualXPath'\t[XML Path Language - XPath]\r\n - 'VirtualFDO'\t\t[FDO-OGR interoperability]\r\n - 'VirtualGPKG'\t[OGC GeoPackage interoperability]\r\n - 'VirtualBBox'\t\t[BoundingBox tables]\r\n - 'SpatiaLite'\t\t[Spatial SQL - OGC]\r\n PROJ.4 version ......: Rel. 4.9.3, 15 August 2016\r\n GEOS version ........: 3.5.1-CAPI-1.9.1 r4246\r\n TARGET CPU ..........: x86_64-linux-gnu\r\n the SPATIAL_REF_SYS table already contains some row(s)\r\n SQLite version ......: 3.23.1\r\n Enter \".help\" for instructions\r\n SQLite version 3.23.1 2018-04-10 17:39:29\r\n Enter \".help\" for instructions\r\n Enter SQL statements terminated with a \";\"\r\n spatialite>\r\n```\r\n\r\n```bash\r\n$ docker run --rm -it datasette python -c \"import sqlite3; print(sqlite3.sqlite_version)\"\r\n3.23.1\r\n```\r\n\r\nAlso updates the query used to check for FTS5 as the old version wasn't\r\ndetecting FTS5 for some reason.", "author_date": "2018-05-23T17:43:34Z", "committer_date": "2018-05-23T17:43:34Z", "raw_author": {"value": "a901819e7fab7b80a873df43d5123bb3252681f8", "label": "Ravi Kotecha"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 565628, "label": "r4vi"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "fa42a56c6a0fa62529eabf2d363bd3008ce23094", "message": "Bulked out table test a bit\n\nI'm closing #50 - more tests will be added in the future, but the framework\nis neatly in place for them now.", "author_date": "2017-11-11T22:22:47Z", "committer_date": "2017-11-11T22:22:47Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "31a5d8fa77be68d4f837f0a80a611675dce49f4b", "message": "Bump aiohttp to fix compatibility with Python 3.7\n\nTests failed here: https://travis-ci.org/simonw/datasette/jobs/403223333", "author_date": "2018-07-12T17:41:20Z", "committer_date": "2018-07-12T18:07:37Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "690736436bac599ca042d1caa465c6d66d2651f9", "message": "Bump up time limit for test_paginate_tables_and_views\n\nIt was intermittently failing in Travis CI on Python 3.5:\n\nhttps://travis-ci.org/simonw/datasette/jobs/373713476", "author_date": "2018-05-02T00:17:39Z", "committer_date": "2018-05-02T00:20:39Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "255e2611e5c3cfdda76c9da7abdbe5af976044ac", "message": "CORS headers for JSON responses\n\nAccess-Control-Allow-Origin: *", "author_date": "2017-10-24T02:48:06Z", "committer_date": "2017-10-24T02:48:06Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "51bdd67691bd69082ae7690af8b905f06050ee80", "message": "Changelog for 0.12 release", "author_date": "2017-11-16T15:37:46Z", "committer_date": "2017-11-16T15:37:46Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "566f2d31d6f4950200b64424f6f9cfdd06343f4e", "message": "Clarified relationship between metadata and _facet= facets, updated docs - refs @255", "author_date": "2018-05-16T15:15:23Z", "committer_date": "2018-05-16T15:27:24Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "747a801b50487cd4cc20856d44252ac0a6cb346f", "message": "Column headers now link to sort/desc sort - refs #189", "author_date": "2018-04-09T02:08:28Z", "committer_date": "2018-04-09T05:10:22Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "edaa10587e60946e0c1935333f6b79553db33798", "message": "Configured Travis CI", "author_date": "2017-11-04T23:47:46Z", "committer_date": "2017-11-04T23:47:46Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "03e3f7d6486123bf3eb852ad007d9761475f138c", "message": "Configured Travis CI", "author_date": "2018-07-28T13:48:53Z", "committer_date": "2018-07-28T13:48:53Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 140912432, "label": "sqlite-utils"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "b231d4243d748facf1897e7756c2b578bb448edc", "message": "Correct escaping for HTML display of row links", "author_date": "2018-04-15T21:48:30Z", "committer_date": "2018-04-18T01:13:02Z", "raw_author": {"value": "cd9d55c7c0a7cc0ee69155676fd5e9fc6e1b884b", "label": "Russ Garrett"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 45057, "label": "russss"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "5f806880c9766daf09fc9535171637ebb8224cab", "message": "Correctly JSON serialize sqlite3.Cursor", "author_date": "2017-10-24T23:53:21Z", "committer_date": "2017-10-24T23:53:21Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "bfb19e3a178ba9b2dab2f90f90a398b54a73d34e", "message": "Correctly escape sort-by columns in SQL (refs #189)", "author_date": "2018-04-09T02:25:14Z", "committer_date": "2018-04-09T05:10:22Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "acea54877ca65f08cef4f7260bd7f7fcabe31b90", "message": "Create table now works for pure m2m where both rows are foreign keys", "author_date": "2018-07-28T22:06:59Z", "committer_date": "2018-07-28T22:06:59Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 140912432, "label": "sqlite-utils"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "9f2ec39fbc5481b0fa6585ccdd159ba9fd989bcc", "message": "Current sort order now reflected in human filter description\n\nPlus renamed human_description to human_description_en\n\nRefs #189", "author_date": "2018-04-09T01:01:23Z", "committer_date": "2018-04-09T05:10:22Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "b2dee11fcd989d9e2a7bf4de1e23dbc320c05013", "message": "Databases now get distinct colours\n\nA left border based on their content hash.\n\nCloses #31", "author_date": "2017-11-09T14:12:42Z", "committer_date": "2017-11-09T14:14:40Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "0ac8bbce2e73c0759ec48661a7b740d2c368b2a2", "message": "Default subcommand is now serve\n\nUsing click-default-group: https://github.com/click-contrib/click-default-group\n\nAlso removed requirements.txt in favour of setup.py", "author_date": "2017-11-04T23:53:50Z", "committer_date": "2017-11-04T23:53:50Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "ea183b2ae3d557a370628e236fe606717c704e2a", "message": "Default to 127.0.0.1 not 0.0.0.0\n\nCloses #98", "author_date": "2017-11-15T05:08:46Z", "committer_date": "2017-11-15T05:08:46Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "02862be04c51e8ec6e29517d3c28b030627bb179", "message": "Default to FTS5", "author_date": "2018-08-13T00:21:55Z", "committer_date": "2018-08-13T00:21:55Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 140912432, "label": "sqlite-utils"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "19e1057ead0c4434f456bafb4812de2812d51bf5", "message": "Documentation for create_view()", "author_date": "2018-08-02T15:26:38Z", "committer_date": "2018-08-02T15:26:38Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 140912432, "label": "sqlite-utils"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "9fdf2c169caf544d56f6317afbed6879082be8b9", "message": "Documented Database(filepath) and in-memory database creation", "author_date": "2018-08-13T00:31:02Z", "committer_date": "2018-08-13T00:31:02Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 140912432, "label": "sqlite-utils"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "34a5c0e1e8d1e7e685b0ba73803d153552033aac", "message": "Documented insert_all() and upsert() and upsert_all()\n\nAlso re-titled main docs page to 'Python API'", "author_date": "2018-08-13T00:17:14Z", "committer_date": "2018-08-13T00:17:14Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 140912432, "label": "sqlite-utils"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "4c7379a898df426af0c31159e5cb06d672189301", "message": "Don't crash on weird character encodings\n\nExpecting SQLite columns to all be valid utf8 doesn't work, because we are\ndeailing with all kinds of databases. Instead, we now use the 'replace'\nencoding mode to replace any non-UTF8 characters with a [X] character.", "author_date": "2017-10-25T00:01:34Z", "committer_date": "2017-10-25T00:01:34Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "4586aa506a054d07e674cde8143a3008e6bc5d78", "message": "Don't duplicate simple primary keys in the link column\n\nWhen there's a simple (single-column) primary key, it looks weird to\nduplicate it in the link column.\n\nThis change removes the second PK column and treats the link column as\nif it were the PK column from a header/sorting perspective.", "author_date": "2018-04-15T21:49:01Z", "committer_date": "2018-04-18T01:13:02Z", "raw_author": {"value": "cd9d55c7c0a7cc0ee69155676fd5e9fc6e1b884b", "label": "Russ Garrett"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 45057, "label": "russss"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "6d39429daa4655e3cf7a6a7671493292a20a30a1", "message": "Don't prevent tabbing to `Run SQL` button (#117)\n\nSee comment in #115", "author_date": "2017-11-18T00:53:42Z", "committer_date": "2017-11-18T00:53:42Z", "raw_author": {"value": "106fe7fbf8b80a01038e265a137b3b703422db48", "label": "Robert Gieseke"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 198537, "label": "rgieseke"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "56e29158fe5174a5b06d0a58090da7fb4624ed60", "message": "Don't run black test on Python 3.7\n\nIt breaks on that version - see https://github.com/ambv/black/issues/425\n\nBut that's OK, we only need it to run onder one version anyway.", "author_date": "2018-07-28T18:18:40Z", "committer_date": "2018-07-28T18:18:40Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 140912432, "label": "sqlite-utils"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "e9fce441956642bef3548e3181d72a88317efa65", "message": "Don't serve cache headers in debug or refresh modes", "author_date": "2017-11-10T20:26:37Z", "committer_date": "2017-11-10T20:26:37Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "2fe94641b0b2dc291d1fce3dad0fbf96294b3a32", "message": "Don't try to show row counts for views\n\nAlso handle tables/views with spaces in their name in the URL.", "author_date": "2017-10-25T01:33:12Z", "committer_date": "2017-10-25T01:33:12Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "d94d4465d7e72e668122f81206397f4f20cf555b", "message": "Double quote around column names\n\nThis means filters still work even with column names that contain spaces", "author_date": "2017-10-25T14:47:20Z", "committer_date": "2017-10-25T14:47:20Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "00527e5c629d9dae56d6228891b40105ff0e34c6", "message": "Enable --cors by default in containers", "author_date": "2017-11-14T01:23:22Z", "committer_date": "2017-11-14T01:23:22Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "501618d0d519f808e54210f3c54420e5559a9343", "message": "Ensure black is correctly installed for tests", "author_date": "2018-07-28T14:36:43Z", "committer_date": "2018-07-28T14:36:43Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 140912432, "label": "sqlite-utils"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "a87df963a08054ad7a652f0218e70ddb7f9cc8bd", "message": "Error handling for ?_sort and ?_sort_desc\n\nVerifies that they match an existing column, and only one or the other option\nis provided - refs #189\n\nEses a new DatasetteError exception that closes #193", "author_date": "2018-04-09T04:07:31Z", "committer_date": "2018-04-09T05:10:22Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "292f140a4f391f646ec0be85ec9f22dde30f9de2", "message": "Explicitly order by pk (or by rowid)\n\nRefs #5", "author_date": "2017-11-09T16:11:14Z", "committer_date": "2017-11-09T16:11:14Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "eaf715a60ae3c3180d0949da8292e2627b72e287", "message": "Extract /-/plugins view into a method", "author_date": "2018-05-13T13:06:02Z", "committer_date": "2018-05-14T03:04:23Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "de05cf21aa6a922ee2825b5098b108dd23fb0755", "message": "Facet \"selected\" key and toggle_url now toggles, refs #255", "author_date": "2018-05-14T20:42:10Z", "committer_date": "2018-05-16T15:27:24Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "142a550a99f3c78349a10ed79f1b513fe704a169", "message": "Facet results now have \"truncated\" field\n\n To indicate if there was more than 20 distinct values. Refs #255", "author_date": "2018-05-15T09:50:27Z", "committer_date": "2018-05-16T15:27:24Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "f36c9d4b4ca77dd42495f31d02e89b4c10833531", "message": "Facet toggling now works for integer columns, refs #255", "author_date": "2018-05-14T21:33:24Z", "committer_date": "2018-05-16T15:27:24Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "1dc94f6eaa98431da9c61e803e2b05b082f9c6e8", "message": "Facets can now be toggled off again, refs #255", "author_date": "2018-05-15T10:11:52Z", "committer_date": "2018-05-16T15:27:24Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "b0d2bb3e43dd567b96b6a4ddc3c1a09a84c2c42d", "message": "Facets no longer consider null values", "author_date": "2018-05-14T22:19:43Z", "committer_date": "2018-05-16T15:27:24Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "a971718d2a5e1b61b5e5c27b0ef6c4ec65616e35", "message": "Fix a typo (#232)", "author_date": "2018-04-21T00:19:07Z", "committer_date": "2018-04-21T00:19:07Z", "raw_author": {"value": "8795af7c0eb348f1248a81917921e4a7d768bee3", "label": "lsb"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 45281, "label": "lsb"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "514873c6295dcd467d806064a549e46b4ea3279a", "message": "Fix bug with toggle_url on integer facets", "author_date": "2018-05-15T10:19:09Z", "committer_date": "2018-05-16T15:27:24Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "0aa28293adedc488eb9107dc52b5e9a124887fbd", "message": "Fix compatibility with SQLite prior to 3.16.0\n\npragma_index_info() and pragma_index_list() were introduced in 3.16.0 but the\nversion of SQLite running in Travis CI is earlier than that, hence the test\nfailures:\n\nhttps://travis-ci.com/simonw/sqlite-utils/jobs/137617744", "author_date": "2018-08-01T15:29:53Z", "committer_date": "2018-08-01T15:29:53Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 140912432, "label": "sqlite-utils"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "f96e55bce55d26c4d5b198edc536e1b8e9bbea43", "message": "Fix pytest version conflict\n\nhttps://travis-ci.org/simonw/datasette/jobs/305929426\r\n\r\n pkg_resources.VersionConflict: (pytest 3.2.1 (/home/travis/virtualenv/python3.5.3/lib/python3.5/site-packages), \r\n Requirement.parse('pytest==3.2.3'))", "author_date": "2017-11-22T20:15:29Z", "committer_date": "2017-11-22T20:17:51Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "1bcd54a834a2f9730d21095df855f6708c85c200", "message": "Fix small doc typo - thanks @jaywgraves (#365)", "author_date": "2018-09-19T17:15:42Z", "committer_date": "2018-09-19T17:15:42Z", "raw_author": {"value": "6410ac01839c113476668eeff88d60a0a2c6eb7a", "label": "Jay Graves"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 418191, "label": "jaywgraves"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "1cc5161089e559c8b16049b20f7a5b3a43290c21", "message": "Fix sqlite error when loading rows with no incoming FKs\n\nThis fixes `ERROR: conn=, sql\n= 'select ', params = {'id': '1'}` caused by an invalid query when\nloading incoming FKs.\n\nThe error was ignored due to async but it still got printed to the\nconsole.", "author_date": "2018-04-14T12:06:00Z", "committer_date": "2018-04-14T14:24:24Z", "raw_author": {"value": "cd9d55c7c0a7cc0ee69155676fd5e9fc6e1b884b", "label": "Russ Garrett"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 45057, "label": "russss"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "50e817801f90d07468ea394ef562d55d8940d124", "message": "Fixed #83\n\nTurns out we had a redirect bug as well.", "author_date": "2017-11-14T00:44:08Z", "committer_date": "2017-11-14T00:44:43Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "01e0c3fa18cd0dd7970e208790ffd683a420c924", "message": "Fixed   bug\n\n  was showing for all None values in table cells, thanks to the\nautoescaping change introduced in 82261a638bd35c9", "author_date": "2017-11-16T15:29:52Z", "committer_date": "2017-11-16T15:29:52Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "9199945a1bcec4852e1cb866eb3642614dd32a48", "message": "Fixed 500 on views page\n\nBug introduced in a4af532a31ece7095d710a1f5abb39ea93fe003f\n\nRefs 85", "author_date": "2017-11-16T14:46:49Z", "committer_date": "2017-11-16T14:46:49Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "2c625e31ed018f929223918240603bf2a80e665c", "message": "Fixed bug on Row page with tables containing spaces\n\nWe were attempting to run this SQL:\n\n select * from \"Order%20Details\" where ...\n\nOn this page:\n\n http://0.0.0.0:8877/northwind-40d049b/Order%20Details/10250,41", "author_date": "2017-10-27T07:16:18Z", "committer_date": "2017-10-27T07:16:18Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "7feb746efe8c5ed80f477475acc546370bae89e4", "message": "Fixed bug where 0 values were showing up blank", "author_date": "2017-11-17T18:14:01Z", "committer_date": "2017-11-18T03:15:49Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "f45ca30f91b92ac68adaba893bf034f13ec61ced", "message": "Fixed bug with datasette package --metadata\n\nCloses #84", "author_date": "2017-11-15T05:18:29Z", "committer_date": "2017-11-15T05:18:29Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "c1d37fdf2be84fb07155bb1b1f61057444b03300", "message": "Fixed bug with human filter description, refs #189\n\nWe were showing this:\n\n 201 rows where sorted by sortable_with_nulls\n\nWe now show this:\n\n 201 rows sorted by sortable_with_nulls", "author_date": "2018-04-09T05:07:18Z", "committer_date": "2018-04-09T05:10:22Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "b51836f8463ef65bc947f0a7b6e60167cb7154cf", "message": "Fixed bug with tables with spaces in their name\n\nThe new database index page was erroring.", "author_date": "2017-11-12T20:02:45Z", "committer_date": "2017-11-12T20:02:45Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "9e9e9613907b6a2a8a051fdda93c0d26344ee110", "message": "Fixed error in RowView", "author_date": "2017-11-06T02:38:06Z", "committer_date": "2017-11-06T02:38:06Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}}