{"rowid": 140912432, "repo": "https://github.com/simonw/sqlite-utils", "release": "https://github.com/simonw/sqlite-utils/releases/tag/2.10.1", "date": "2020-06-23", "body_markdown": "* Added documentation for the `table.pks` introspection property. #116", "published_at": "2020-06-23T21:04:50Z", "topics": "[\"cli\", \"click\", \"datasette\", \"datasette-io\", \"datasette-tool\", \"python\", \"sqlite\", \"sqlite-database\"]"} {"rowid": 107914493, "repo": "https://github.com/simonw/datasette", "release": "https://github.com/simonw/datasette/releases/tag/0.45a1", "date": "2020-06-19", "body_markdown": "", "published_at": "2020-06-19T00:02:29Z", "topics": "[\"asgi\", \"automatic-api\", \"csv\", \"datasets\", \"datasette\", \"datasette-io\", \"docker\", \"json\", \"python\", \"sql\", \"sqlite\"]"} {"rowid": 107914493, "repo": "https://github.com/simonw/datasette", "release": "https://github.com/simonw/datasette/releases/tag/0.45a0", "date": "2020-06-18", "body_markdown": "", "published_at": "2020-06-18T21:14:00Z", "topics": "[\"asgi\", \"automatic-api\", \"csv\", \"datasets\", \"datasette\", \"datasette-io\", \"docker\", \"json\", \"python\", \"sql\", \"sqlite\"]"} {"rowid": 140912432, "repo": "https://github.com/simonw/sqlite-utils", "release": "https://github.com/simonw/sqlite-utils/releases/tag/2.10", "date": "2020-06-12", "body_markdown": "- The `sqlite-utils` command now supports UPDATE/INSERT/DELETE in addition to SELECT. #115", "published_at": "2020-06-12T17:44:32Z", "topics": "[\"cli\", \"click\", \"datasette\", \"datasette-io\", \"datasette-tool\", \"python\", \"sqlite\", \"sqlite-database\"]"} {"rowid": 107914493, "repo": "https://github.com/simonw/datasette", "release": "https://github.com/simonw/datasette/releases/tag/0.44", "date": "2020-06-12", "body_markdown": "Authentication and permissions, writable canned queries, flash messages, new plugin hooks and more. [Full release notes](https://datasette.readthedocs.io/en/stable/changelog.html#v0-44). See also [Datasette 0.44: the annotated release notes](https://simonwillison.net/2020/Jun/12/annotated-release-notes/).", "published_at": "2020-06-12T07:10:38Z", "topics": "[\"asgi\", \"automatic-api\", \"csv\", \"datasets\", \"datasette\", \"datasette-io\", \"docker\", \"json\", \"python\", \"sql\", \"sqlite\"]"} {"rowid": 107914493, "repo": "https://github.com/simonw/datasette", "release": "https://github.com/simonw/datasette/releases/tag/0.43", "date": "2020-05-28", "body_markdown": "The main focus of this release is a major upgrade to the [register_output_renderer(datasette)](https://datasette.readthedocs.io/en/stable/plugins.html#plugin-register-output-renderer) plugin hook, which allows plugins to provide new output formats for Datasette such as [datasette-atom](https://github.com/simonw/datasette-atom) and [datasette-ics](https://github.com/simonw/datasette-ics).\r\n\r\n- Redesign of [register_output_renderer(datasette)](https://datasette.readthedocs.io/en/stable/plugins.html#plugin-register-output-renderer) to provide more context to the render callback and support an optional `\"can_render\"` callback that controls if a suggested link to the output format is provided. ([#581](https://github.com/simonw/datasette/issues/581), [#770](https://github.com/simonw/datasette/issues/770))\r\n- Visually distinguish float and integer columns - useful for figuring out why order-by-column might be returning unexpected results. ([#729](https://github.com/simonw/datasette/issues/729))\r\n- The [Request object](https://datasette.readthedocs.io/en/stable/internals.html#internals-request), which is passed to several plugin hooks, is now documented. ([#706](https://github.com/simonw/datasette/issues/706))\r\n- New `metadata.json` option for setting a custom default page size for specific tables and views, see [Setting a custom page size](https://datasette.readthedocs.io/en/stable/metadata.html#metadata-page-size). ([#751](https://github.com/simonw/datasette/issues/751))\r\n- Canned queries can now be configured with a default URL fragment hash, useful when working with plugins such as [datasette-vega](https://github.com/simonw/datasette-vega), see [Setting a default fragment](https://datasette.readthedocs.io/en/stable/sql_queries.html#canned-queries-default-fragment). ([#706](https://github.com/simonw/datasette/issues/706))\r\n- Fixed a bug in `datasette publish` when running on operating systems where the `/tmp` directory lives in a different volume, using a backport of the Python 3.8 `shutil.copytree()` function. ([#744](https://github.com/simonw/datasette/issues/744))\r\n- Every plugin hook is now covered by the unit tests, and a new unit test checks that each plugin hook has at least one corresponding test. ([#771](https://github.com/simonw/datasette/issues/771), [#773](https://github.com/simonw/datasette/issues/773))", "published_at": "2020-05-28T14:39:18Z", "topics": "[\"asgi\", \"automatic-api\", \"csv\", \"datasets\", \"datasette\", \"datasette-io\", \"docker\", \"json\", \"python\", \"sql\", \"sqlite\"]"} {"rowid": 256834907, "repo": "https://github.com/dogsheep/dogsheep-photos", "release": "https://github.com/dogsheep/dogsheep-photos/releases/tag/0.4.1", "date": "2020-05-25", "body_markdown": "- Documentation now explains how to use this with the [datasette-media](https://github.com/simonw/datasette-media), [datasette-json-html](https://github.com/simonw/datasette-json-html) and [datasette-template-sql](https://github.com/simonw/datasette-template-sql) plugins. #20", "published_at": "2020-05-25T20:13:23Z", "topics": "[\"datasette\", \"datasette-io\", \"datasette-tool\", \"dogsheep\", \"sqlite\"]"} {"rowid": 256834907, "repo": "https://github.com/dogsheep/dogsheep-photos", "release": "https://github.com/dogsheep/dogsheep-photos/releases/tag/0.4", "date": "2020-05-20", "body_markdown": "- Renamed this project to `dogsheep-photos`. #26\r\n- `apple-photos` command now works even if you haven't yet run `upload`. #19\r\n- `--image-url-prefix` and `--image-url-suffix` options to `apple-photos`. #24 \r\n- New `create-subset` command. #23 ", "published_at": "2020-05-20T04:24:28Z", "topics": "[\"datasette\", \"datasette-io\", \"datasette-tool\", \"dogsheep\", \"sqlite\"]"} {"rowid": 140912432, "repo": "https://github.com/simonw/sqlite-utils", "release": "https://github.com/simonw/sqlite-utils/releases/tag/2.9.1", "date": "2020-05-11", "body_markdown": "* Added custom project links to the [PyPI listing](https://pypi.org/project/sqlite-utils/).\r\n", "published_at": "2020-05-11T19:21:24Z", "topics": "[\"cli\", \"click\", \"datasette\", \"datasette-io\", \"datasette-tool\", \"python\", \"sqlite\", \"sqlite-database\"]"} {"rowid": 140912432, "repo": "https://github.com/simonw/sqlite-utils", "release": "https://github.com/simonw/sqlite-utils/releases/tag/2.9", "date": "2020-05-11", "body_markdown": "- New `sqlite-utils drop-table` command, see [Dropping tables](https://sqlite-utils.readthedocs.io/en/2.9/cli.html#cli-drop-table). ([#111](https://github.com/simonw/sqlite-utils/issues/111))\r\n- New `sqlite-utils drop-view` command, see [Dropping views](https://sqlite-utils.readthedocs.io/en/2.9/cli.html#cli-drop-view).\r\n- Python `decimal.Decimal` objects are now stored as `FLOAT`. ([#110](https://github.com/simonw/sqlite-utils/issues/110))", "published_at": "2020-05-11T01:57:11Z", "topics": "[\"cli\", \"click\", \"datasette\", \"datasette-io\", \"datasette-tool\", \"python\", \"sqlite\", \"sqlite-database\"]"} {"rowid": 107914493, "repo": "https://github.com/simonw/datasette", "release": "https://github.com/simonw/datasette/releases/tag/0.42", "date": "2020-05-08", "body_markdown": "A small release which provides improved internal methods for use in plugins, along with documentation. See #685.\r\n\r\n* Added documentation for `db.execute()`, see [await db.execute(sql, ...)](https://datasette.readthedocs.io/en/stable/internals.html#database-execute).\r\n* Renamed `db.execute_against_connection_in_thread()` to `db.execute_fn()` and made it a documented method, see [await db.execute_fn(fn)](https://datasette.readthedocs.io/en/stable/internals.html#database-execute-fn).\r\n* New `results.first()` and `results.single_value()` methods, plus documentation for the `Results` class - see [Results](https://datasette.readthedocs.io/en/stable/internals.html#database-results).\r\n", "published_at": "2020-05-08T17:56:36Z", "topics": "[\"asgi\", \"automatic-api\", \"csv\", \"datasets\", \"datasette\", \"datasette-io\", \"docker\", \"json\", \"python\", \"sql\", \"sqlite\"]"} {"rowid": 107914493, "repo": "https://github.com/simonw/datasette", "release": "https://github.com/simonw/datasette/releases/tag/0.41", "date": "2020-05-06", "body_markdown": "You can now create [custom pages](https://datasette.readthedocs.io/en/0.41/custom_templates.html#custom-pages) within your Datasette instance using a custom template file. For example, adding a template file called `templates/pages/about.html` will result in a new page being served at `/about` on your instance. See the [custom pages documentation](https://datasette.readthedocs.io/en/0.41/custom_templates.html#custom-pages) for full details, including how to return custom HTTP headers, redirects and status codes. (#648)\r\n\r\n[Configuration directory mode](https://datasette.readthedocs.io/en/0.41/config.html#config-dir) (#731) allows you to define a custom Datasette instance as a directory. So instead of running the following:\r\n\r\n $ datasette one.db two.db \\\r\n --metadata.json \\\r\n --template-dir=templates/ \\\r\n --plugins-dir=plugins \\\r\n --static css:css\r\n\r\nYou can instead arrange your files in a single directory called `my-project` and run this:\r\n\r\n $ datasette my-project/\r\n\r\nAlso in this release:\r\n\r\n- New `NOT LIKE` table filter: `?colname__notlike=expression`. (#750)\r\n- Datasette now has a *pattern portfolio* at `/-/patterns` - e.g. . This is a page that shows every Datasette user interface component in one place, to aid core development and people building custom CSS themes. (#151)\r\n- SQLite [PRAGMA functions](https://www.sqlite.org/pragma.html#pragfunc) such as `pragma_table_info(tablename)` are now allowed in Datasette SQL queries. (#761)\r\n- Datasette pages now consistently return a `content-type` of `text/html; charset=utf-8\"`. (#752)\r\n- Datasette now handles an ASGI `raw_path` value of `None`, which should allow compatibilty with the [Mangum](https://github.com/erm/mangum) adapter for running ASGI apps on AWS Lambda. Thanks, Colin Dellow. (#719)\r\n- Installation documentation now covers how to [Install using pipx](https://datasette.readthedocs.io/en/0.41/installation.html#installation-pipx). (#756)\r\n- Improved the documentation for [Full-text search](https://datasette.readthedocs.io/en/0.41/full_text_search.html#full-text-search).", "published_at": "2020-05-06T18:30:03Z", "topics": "[\"asgi\", \"automatic-api\", \"csv\", \"datasets\", \"datasette\", \"datasette-io\", \"docker\", \"json\", \"python\", \"sql\", \"sqlite\"]"} {"rowid": 256834907, "repo": "https://github.com/dogsheep/dogsheep-photos", "release": "https://github.com/dogsheep/dogsheep-photos/releases/tag/0.3a", "date": "2020-05-05", "body_markdown": "* Upload photos to S3 in a thread pool #11\r\n* New `--dry-run` option to `upload` command\r\n* New `photos-to-sqlite apple-photos` command for importing Apple Photos metadata #1\r\n* Apple Photos quality scores are imported into `apple_photos_scores` table #15\r\n* Machine learning labels imported from Apple Photos into `labels` table #16", "published_at": "2020-05-05T20:17:00Z", "topics": "[\"datasette\", \"datasette-io\", \"datasette-tool\", \"dogsheep\", \"sqlite\"]"} {"rowid": 140912432, "repo": "https://github.com/simonw/sqlite-utils", "release": "https://github.com/simonw/sqlite-utils/releases/tag/2.8", "date": "2020-05-03", "body_markdown": "* New `sqlite-utils create-table` command, see [Creating tables](https://sqlite-utils.readthedocs.io/en/latest/cli.html#creating-tables). (#27)\r\n* New `sqlite-utils create-view` command, see [Creating views](https://sqlite-utils.readthedocs.io/en/latest/cli.html#creating-views). (#107)\r\n", "published_at": "2020-05-03T15:41:31Z", "topics": "[\"cli\", \"click\", \"datasette\", \"datasette-io\", \"datasette-tool\", \"python\", \"sqlite\", \"sqlite-database\"]"} {"rowid": 207052882, "repo": "https://github.com/dogsheep/github-to-sqlite", "release": "https://github.com/dogsheep/github-to-sqlite/releases/tag/2.2", "date": "2020-05-02", "body_markdown": "* New command: `github-to-sqlite stargazers` ([docs](https://github.com/dogsheep/github-to-sqlite/blob/2.2/README.md#fetching-users-that-have-starred-specific-repos)) for fetching all users who have starred the specified repositories. #4\r\n* Added several views: [dependent_repos](https://github-to-sqlite.dogsheep.net/github/dependent_repos), [repos_starred](https://github-to-sqlite.dogsheep.net/github/repos_starred), [recent_releases](https://github-to-sqlite.dogsheep.net/github/recent_releases). #10 #12 #36\r\n* Added indexes on all foreign key relationships. #35\r\n* GitHub API token can now be read from `GITHUB_TOKEN` environment variable. #33", "published_at": "2020-05-02T21:28:00Z", "topics": "[\"datasette\", \"datasette-io\", \"datasette-tool\", \"dogsheep\", \"github-api\", \"sqlite\"]"} {"rowid": 140912432, "repo": "https://github.com/simonw/sqlite-utils", "release": "https://github.com/simonw/sqlite-utils/releases/tag/2.7.2", "date": "2020-05-02", "body_markdown": "* `db.create_view(...)` now has additional parameters `ignore=True` or `replace=True`, see [Creating views](https://sqlite-utils.readthedocs.io/en/latest/python-api.html#creating-views). (#106)\r\n", "published_at": "2020-05-02T16:10:11Z", "topics": "[\"cli\", \"click\", \"datasette\", \"datasette-io\", \"datasette-tool\", \"python\", \"sqlite\", \"sqlite-database\"]"} {"rowid": 140912432, "repo": "https://github.com/simonw/sqlite-utils", "release": "https://github.com/simonw/sqlite-utils/releases/tag/2.7.1", "date": "2020-05-01", "body_markdown": "* New `sqlite-utils views my.db` command for listing views in a database, see [Listing views](https://sqlite-utils.readthedocs.io/en/latest/cli.html#cli-views). (#105)\r\n* `sqlite-utils tables` (and `views`) has a new `--schema` option which outputs the table/view schema, see [Listing tables](https://sqlite-utils.readthedocs.io/en/latest/cli.html#cli-tables). (#104)\r\n* Nested structures containing invalid JSON values (e.g. Python bytestrings) are now serialized using `repr()` instead of throwing an error. (#102)", "published_at": "2020-05-01T22:11:19Z", "topics": "[\"cli\", \"click\", \"datasette\", \"datasette-io\", \"datasette-tool\", \"python\", \"sqlite\", \"sqlite-database\"]"} {"rowid": 207052882, "repo": "https://github.com/dogsheep/github-to-sqlite", "release": "https://github.com/dogsheep/github-to-sqlite/releases/tag/2.1", "date": "2020-04-30", "body_markdown": "* New `github-to-sqlite scrape-dependents` command for importing the dependent repositories for a repo. #34", "published_at": "2020-04-30T23:03:32Z", "topics": "[\"datasette\", \"datasette-io\", \"datasette-tool\", \"dogsheep\", \"github-api\", \"sqlite\"]"} {"rowid": 140912432, "repo": "https://github.com/simonw/sqlite-utils", "release": "https://github.com/simonw/sqlite-utils/releases/tag/2.7", "date": "2020-04-30", "body_markdown": "* New `columns=` argument for the `.insert()`, `.insert_all()`, `.upsert()` and `.upsert_all()` methods, for over-riding the auto-detected types for columns and specifying additional columns that should be added when the table is created. See [Custom column order and column types](https://sqlite-utils.readthedocs.io/en/stable/python-api.html#python-api-custom-columns). (#100)\r\n", "published_at": "2020-04-30T18:33:20Z", "topics": "[\"cli\", \"click\", \"datasette\", \"datasette-io\", \"datasette-tool\", \"python\", \"sqlite\", \"sqlite-database\"]"} {"rowid": 206156866, "repo": "https://github.com/dogsheep/twitter-to-sqlite", "release": "https://github.com/dogsheep/twitter-to-sqlite/releases/tag/0.21.1", "date": "2020-04-30", "body_markdown": "* Fixed bug that occurred when the `since_ids` table had not yet been created. #46", "published_at": "2020-04-30T18:21:46Z", "topics": "[\"datasette\", \"datasette-io\", \"datasette-tool\", \"dogsheep\", \"sqlite\", \"twitter\", \"twitter-api\"]"} {"rowid": 256834907, "repo": "https://github.com/dogsheep/dogsheep-photos", "release": "https://github.com/dogsheep/dogsheep-photos/releases/tag/0.2a", "date": "2020-04-24", "body_markdown": "* Only upload photos not already in S3. #9 ", "published_at": "2020-04-24T00:44:21Z", "topics": "[\"datasette\", \"datasette-io\", \"datasette-tool\", \"dogsheep\", \"sqlite\"]"} {"rowid": 256834907, "repo": "https://github.com/dogsheep/dogsheep-photos", "release": "https://github.com/dogsheep/dogsheep-photos/releases/tag/0.1a", "date": "2020-04-24", "body_markdown": "* First alpha release", "published_at": "2020-04-24T00:40:57Z", "topics": "[\"datasette\", \"datasette-io\", \"datasette-tool\", \"dogsheep\", \"sqlite\"]"} {"rowid": 107914493, "repo": "https://github.com/simonw/datasette", "release": "https://github.com/simonw/datasette/releases/tag/0.40", "date": "2020-04-22", "body_markdown": "* Datasette [Metadata](https://datasette.readthedocs.io/en/latest/metadata.html) can now be provided as a YAML file as an optional alternative to JSON. See [Using YAML for metadata](https://datasette.readthedocs.io/en/latest/metadata.html#metadata-yaml). (#713)\r\n* Removed support for `datasette publish now`, which used the the now-retired Zeit Now v1 hosting platform. A new plugin, [datasette-publish-now](https://github.com/simonw/datasette-publish-now), can be installed to publish data to Zeit ([now Vercel](https://vercel.com/blog/zeit-is-now-vercel)) Now v2. (#710)\r\n* Fixed a bug where the `extra_template_vars(request, view_name)` plugin hook was not receiving the correct `view_name`. (#716)\r\n* Variables added to the template context by the `extra_template_vars()` plugin hook are now shown in the `?_context=1` debugging mode (see [template_debug](https://datasette.readthedocs.io/en/latest/config.html#config-template-debug)). (#693)\r\n* Fixed a bug where the \u201ctemplates considered\u201d HTML comment was no longer being displayed. (#689)\r\n* Fixed a `datasette publish` bug where `--plugin-secret` would over-ride plugin configuration in the provided `metadata.json` file. (#724)\r\n* Added a new CSS class for customizing the canned query page. (#727)", "published_at": "2020-04-22T04:06:51Z", "topics": "[\"asgi\", \"automatic-api\", \"csv\", \"datasets\", \"datasette\", \"datasette-io\", \"docker\", \"json\", \"python\", \"sql\", \"sqlite\"]"} {"rowid": 207052882, "repo": "https://github.com/dogsheep/github-to-sqlite", "release": "https://github.com/dogsheep/github-to-sqlite/releases/tag/2.0", "date": "2020-04-22", "body_markdown": "This release includes some backwards-incompatible schema changes:\r\n\r\n* The `milestone` and `assignee` columns on the `issues` table are now integers that are foreign keys to the `milestones` and `users` tables - previously they could be `text` columns instead. #30\r\n* `milestones` now has an integer foreign key in the `creator` column, and a new `repo` column that is an integer foreign key to the `repos` table. #29\r\n* The `repo` column in the `issues` table is now an integer foreign key to `repos`. Previously it was a string of the format `dogsheep/github-to-sqlite`. #31", "published_at": "2020-04-22T01:24:37Z", "topics": "[\"datasette\", \"datasette-io\", \"datasette-tool\", \"dogsheep\", \"github-api\", \"sqlite\"]"} {"rowid": 207052882, "repo": "https://github.com/dogsheep/github-to-sqlite", "release": "https://github.com/dogsheep/github-to-sqlite/releases/tag/1.1", "date": "2020-04-18", "body_markdown": "* New `github-to-sqlite contributors` command for fetching contributors to one or more repositories. #28\r\n* The [live demo](https://github-to-sqlite.dogsheep.net/) now includes contributors, and pulls data from `simonw/datasette` and `simonw/sqlite-utils` in addition to the Dogsheep repositories.\r\n* The `organization` column in the `repos` table is now a foreign key to `users` as opposed to a big piece of JSON. #27", "published_at": "2020-04-18T15:09:55Z", "topics": "[\"datasette\", \"datasette-io\", \"datasette-tool\", \"dogsheep\", \"github-api\", \"sqlite\"]"} {"rowid": 206156866, "repo": "https://github.com/dogsheep/twitter-to-sqlite", "release": "https://github.com/dogsheep/twitter-to-sqlite/releases/tag/0.21", "date": "2020-04-17", "body_markdown": "* New command: `twitter-to-sqlite lists username` fetches lists owned by the specified users. #43\r\n* Handle tweets with a blank `source`. #44\r\n* Fixed error with `twitter-to-sqlite user-timeline --sql=... --ids`. #42\r\n* Better error messages for non-existing users. #37\r\n", "published_at": "2020-04-17T23:46:51Z", "topics": "[\"datasette\", \"datasette-io\", \"datasette-tool\", \"dogsheep\", \"sqlite\", \"twitter\", \"twitter-api\"]"} {"rowid": 207052882, "repo": "https://github.com/dogsheep/github-to-sqlite", "release": "https://github.com/dogsheep/github-to-sqlite/releases/tag/1.0.1", "date": "2020-04-16", "body_markdown": "* Fixed bug where repository topics were not being correctly fetched #26\r\n* Live demo at https://github-to-sqlite.dogsheep.net/ now uses [datasette-render-markdown](https://github.com/simonw/datasette-render-markdown) and pulls in issue comments #25", "published_at": "2020-04-16T18:09:29Z", "topics": "[\"datasette\", \"datasette-io\", \"datasette-tool\", \"dogsheep\", \"github-api\", \"sqlite\"]"} {"rowid": 140912432, "repo": "https://github.com/simonw/sqlite-utils", "release": "https://github.com/simonw/sqlite-utils/releases/tag/2.6", "date": "2020-04-16", "body_markdown": "* New `table.rows_where(..., order_by=\"age desc\")` argument, see [Listing rows](https://sqlite-utils.readthedocs.io/en/stable/python-api.html#listing-rows). (#76)\r\n", "published_at": "2020-04-16T03:14:48Z", "topics": "[\"cli\", \"click\", \"datasette\", \"datasette-io\", \"datasette-tool\", \"python\", \"sqlite\", \"sqlite-database\"]"} {"rowid": 140912432, "repo": "https://github.com/simonw/sqlite-utils", "release": "https://github.com/simonw/sqlite-utils/releases/tag/2.5", "date": "2020-04-13", "body_markdown": "* Panda\u2019s Timestamp is now stored as a SQLite TEXT column. Thanks, b0b5h4rp13! (#96)\r\n* `table.last_pk` is now only available for inserts or upserts of a single record. (#98)\r\n* New `Database(filepath, recreate=True)` parameter for deleting and recreating the database. (#97)\r\n", "published_at": "2020-04-13T03:54:08Z", "topics": "[\"cli\", \"click\", \"datasette\", \"datasette-io\", \"datasette-tool\", \"python\", \"sqlite\", \"sqlite-database\"]"} {"rowid": 206156866, "repo": "https://github.com/dogsheep/twitter-to-sqlite", "release": "https://github.com/dogsheep/twitter-to-sqlite/releases/tag/0.20.1", "date": "2020-04-01", "body_markdown": "* Buf fix: `since_id` table no longer records a record for `None`, `None`. #41", "published_at": "2020-04-01T04:33:35Z", "topics": "[\"datasette\", \"datasette-io\", \"datasette-tool\", \"dogsheep\", \"sqlite\", \"twitter\", \"twitter-api\"]"} {"rowid": 206156866, "repo": "https://github.com/dogsheep/twitter-to-sqlite", "release": "https://github.com/dogsheep/twitter-to-sqlite/releases/tag/0.20", "date": "2020-04-01", "body_markdown": "* Reworked how `--since` works to fix a bug spotted in #39. The most recently seen tweet ID for various commands is now stored in a new `since_ids` table.\r\n* New feature: the friends, followers and listed counts for each user are now stored in a `count_history` table and updated any time we spot that the counts in that user's profile have changed. #40", "published_at": "2020-04-01T04:18:53Z", "topics": "[\"datasette\", \"datasette-io\", \"datasette-tool\", \"dogsheep\", \"sqlite\", \"twitter\", \"twitter-api\"]"} {"rowid": 205429375, "repo": "https://github.com/dogsheep/swarm-to-sqlite", "release": "https://github.com/dogsheep/swarm-to-sqlite/releases/tag/0.3.1", "date": "2020-03-28", "body_markdown": "* Fixed bug with very old checkins that were missing their source - thanks, @mfa! #6", "published_at": "2020-03-28T02:30:10Z", "topics": "[\"datasette\", \"datasette-io\", \"datasette-tool\", \"dogsheep\", \"foursquare\", \"foursquare-api\", \"sqlite\", \"swarm\"]"} {"rowid": 205429375, "repo": "https://github.com/dogsheep/swarm-to-sqlite", "release": "https://github.com/dogsheep/swarm-to-sqlite/releases/tag/0.3", "date": "2020-03-28", "body_markdown": "* Upgraded to sqlite-utils 2.x", "published_at": "2020-03-28T02:28:35Z", "topics": "[\"datasette\", \"datasette-io\", \"datasette-tool\", \"dogsheep\", \"foursquare\", \"foursquare-api\", \"sqlite\", \"swarm\"]"} {"rowid": 197882382, "repo": "https://github.com/dogsheep/healthkit-to-sqlite", "release": "https://github.com/dogsheep/healthkit-to-sqlite/releases/tag/0.5", "date": "2020-03-28", "body_markdown": "* Upgraded to latest sqlite-utils", "published_at": "2020-03-28T01:55:19Z", "topics": "[\"datasette\", \"datasette-io\", \"datasette-tool\", \"dogsheep\", \"healthkit\", \"sqlite\"]"} {"rowid": 213286752, "repo": "https://github.com/dogsheep/pocket-to-sqlite", "release": "https://github.com/dogsheep/pocket-to-sqlite/releases/tag/0.2", "date": "2020-03-27", "body_markdown": "* Defaults to only retrieving updated items, unless you use `--all`. #2 \r\n* Now displays a progress bar for initial data import and `--all`.\r\n* Data is now fetched 500 items at a time using API pagination. #1\r\n* Now depends on `sqlite-utils 2.x`.\r\n* `auth.json` now uses `pocket_` prefix on each stored key. #4", "published_at": "2020-03-27T22:26:30Z", "topics": "[\"datasette\", \"datasette-io\", \"datasette-tool\", \"dogsheep\", \"pocket\", \"pocket-api\", \"sqlite\"]"} {"rowid": 107914493, "repo": "https://github.com/simonw/datasette", "release": "https://github.com/simonw/datasette/releases/tag/0.39", "date": "2020-03-25", "body_markdown": "* New [base_url](https://datasette.readthedocs.io/en/latest/config.html#config-base-url) configuration setting for serving up the correct links while running Datasette under a different URL prefix. (#394)\r\n* New metadata settings `\"sort\"` and `\"sort_desc\"` for setting the default sort order for a table. See [Setting a default sort order](https://datasette.readthedocs.io/en/latest/metadata.html#metadata-default-sort). (#702)\r\n* Sort direction arrow now displays by default on the primary key. This means you only have to click once (not twice) to sort in reverse order. (#677)\r\n* New `await Request(scope, receive).post_vars()` method for accessing POST form variables. (#700)\r\n* Plugin hooks documentation now links to example uses of each plugin. (#709)\r\n", "published_at": "2020-03-25T04:11:35Z", "topics": "[\"asgi\", \"automatic-api\", \"csv\", \"datasets\", \"datasette\", \"datasette-io\", \"docker\", \"json\", \"python\", \"sql\", \"sqlite\"]"} {"rowid": 206202864, "repo": "https://github.com/dogsheep/inaturalist-to-sqlite", "release": "https://github.com/dogsheep/inaturalist-to-sqlite/releases/tag/0.2", "date": "2020-03-24", "body_markdown": "* Upgraded to `sqlite-utils` 2.x\r\n* First non-alpha release", "published_at": "2020-03-24T00:36:40Z", "topics": "[\"datasette\", \"datasette-io\", \"datasette-tool\", \"dogsheep\", \"inaturalist\", \"sqlite\"]"} {"rowid": 207052882, "repo": "https://github.com/dogsheep/github-to-sqlite", "release": "https://github.com/dogsheep/github-to-sqlite/releases/tag/1.0", "date": "2020-03-24", "body_markdown": "* Full-text search is configured for more tables. #19\r\n* Release assets are now pulled out into a separate `assets` table. #15\r\n* Now depends on sqlite-utils 2.x. #20\r\n* Commit raw authors are now used to populate a new `raw_authors` able. #18\r\n* New live demo at https://github-to-sqlite.dogsheep.net/ #13\r\n* GitHub API errors are now raised as Pyton exceptions. #21\r\n* Fixed bug running `commits` against repos with no commits. #22", "published_at": "2020-03-24T00:11:51Z", "topics": "[\"datasette\", \"datasette-io\", \"datasette-tool\", \"dogsheep\", \"github-api\", \"sqlite\"]"} {"rowid": 140912432, "repo": "https://github.com/simonw/sqlite-utils", "release": "https://github.com/simonw/sqlite-utils/releases/tag/2.4.4", "date": "2020-03-23", "body_markdown": "* Fixed bug where columns with only null values were not correctly created. (#95)", "published_at": "2020-03-23T20:34:18Z", "topics": "[\"cli\", \"click\", \"datasette\", \"datasette-io\", \"datasette-tool\", \"python\", \"sqlite\", \"sqlite-database\"]"} {"rowid": 140912432, "repo": "https://github.com/simonw/sqlite-utils", "release": "https://github.com/simonw/sqlite-utils/releases/tag/2.4.3", "date": "2020-03-23", "body_markdown": "* Column type suggestion code is no longer confused by null values. (#94)", "published_at": "2020-03-23T20:00:25Z", "topics": "[\"cli\", \"click\", \"datasette\", \"datasette-io\", \"datasette-tool\", \"python\", \"sqlite\", \"sqlite-database\"]"} {"rowid": 248903544, "repo": "https://github.com/dogsheep/hacker-news-to-sqlite", "release": "https://github.com/dogsheep/hacker-news-to-sqlite/releases/tag/0.3.1", "date": "2020-03-21", "body_markdown": "Added documentation on [Browsing your data with Datasette](https://github.com/dogsheep/hacker-news-to-sqlite/blob/0.3.1/README.md#browsing-your-data-with-datasette).", "published_at": "2020-03-21T22:41:16Z", "topics": "[\"datasette\", \"datasette-io\", \"datasette-tool\", \"dogsheep\", \"hacker-news\"]"} {"rowid": 248903544, "repo": "https://github.com/dogsheep/hacker-news-to-sqlite", "release": "https://github.com/dogsheep/hacker-news-to-sqlite/releases/tag/0.3", "date": "2020-03-21", "body_markdown": "First non-alpha release. Now configures full-text search for the `users` and `items` tables. #1", "published_at": "2020-03-21T19:47:36Z", "topics": "[\"datasette\", \"datasette-io\", \"datasette-tool\", \"dogsheep\", \"hacker-news\"]"} {"rowid": 248903544, "repo": "https://github.com/dogsheep/hacker-news-to-sqlite", "release": "https://github.com/dogsheep/hacker-news-to-sqlite/releases/tag/0.2a", "date": "2020-03-21", "body_markdown": "Compatibility with sqlite-utils 1.x", "published_at": "2020-03-21T19:46:58Z", "topics": "[\"datasette\", \"datasette-io\", \"datasette-tool\", \"dogsheep\", \"hacker-news\"]"} {"rowid": 248903544, "repo": "https://github.com/dogsheep/hacker-news-to-sqlite", "release": "https://github.com/dogsheep/hacker-news-to-sqlite/releases/tag/0.1a", "date": "2020-03-21", "body_markdown": "* `user` and `trees` commands.", "published_at": "2020-03-21T04:26:28Z", "topics": "[\"datasette\", \"datasette-io\", \"datasette-tool\", \"dogsheep\", \"hacker-news\"]"} {"rowid": 206156866, "repo": "https://github.com/dogsheep/twitter-to-sqlite", "release": "https://github.com/dogsheep/twitter-to-sqlite/releases/tag/0.19", "date": "2020-03-20", "body_markdown": "* The `twitter-to-sqlite friends` and `twitter-to-sqlite followers` commands now accept the `--sql` and `--attach` options. #36\r\n* Improved the display of the progress bar for the `user-timeline` command. #38", "published_at": "2020-03-20T23:16:53Z", "topics": "[\"datasette\", \"datasette-io\", \"datasette-tool\", \"dogsheep\", \"sqlite\", \"twitter\", \"twitter-api\"]"} {"rowid": 206156866, "repo": "https://github.com/dogsheep/twitter-to-sqlite", "release": "https://github.com/dogsheep/twitter-to-sqlite/releases/tag/0.18", "date": "2020-03-20", "body_markdown": "* `twitter-to-sqlite user-timeline` command now accepts `--sql` and `--attach` and `--ids` options, and can also accept multiple screen names or user IDs as command arguments. #35", "published_at": "2020-03-20T20:19:42Z", "topics": "[\"datasette\", \"datasette-io\", \"datasette-tool\", \"dogsheep\", \"sqlite\", \"twitter\", \"twitter-api\"]"} {"rowid": 206156866, "repo": "https://github.com/dogsheep/twitter-to-sqlite", "release": "https://github.com/dogsheep/twitter-to-sqlite/releases/tag/0.17", "date": "2020-03-20", "body_markdown": "* Upgraded to latest `sqlite-utils` (currently 2.4.2)\r\n* This fixed a bug with `user-timeline` - #34", "published_at": "2020-03-20T19:23:40Z", "topics": "[\"datasette\", \"datasette-io\", \"datasette-tool\", \"dogsheep\", \"sqlite\", \"twitter\", \"twitter-api\"]"} {"rowid": 140912432, "repo": "https://github.com/simonw/sqlite-utils", "release": "https://github.com/simonw/sqlite-utils/releases/tag/2.4.2", "date": "2020-03-14", "body_markdown": "* `table.column_dicts` now works with all column types - previously it would throw errors on types other than `TEXT`, `BLOB`, `INTEGER` or `FLOAT`. (#92)\r\n* Documentation for `NotFoundError` thrown by `table.get(pk)` - see [Retrieving a specific record](https://sqlite-utils.readthedocs.io/en/latest/python-api.html#python-api-get).\r\n", "published_at": "2020-03-14T20:13:18Z", "topics": "[\"cli\", \"click\", \"datasette\", \"datasette-io\", \"datasette-tool\", \"python\", \"sqlite\", \"sqlite-database\"]"} {"rowid": 140912432, "repo": "https://github.com/simonw/sqlite-utils", "release": "https://github.com/simonw/sqlite-utils/releases/tag/2.4.1", "date": "2020-03-14", "body_markdown": "* `table.enable_fts()` now works with columns that contain spaces. (#90)\r\n", "published_at": "2020-03-14T20:06:08Z", "topics": "[\"cli\", \"click\", \"datasette\", \"datasette-io\", \"datasette-tool\", \"python\", \"sqlite\", \"sqlite-database\"]"} {"rowid": 207052882, "repo": "https://github.com/dogsheep/github-to-sqlite", "release": "https://github.com/dogsheep/github-to-sqlite/releases/tag/0.7", "date": "2020-03-11", "body_markdown": "* New `github-to-sqlite commits my.db dogsheep/github-to-sqlite` command. #17", "published_at": "2020-03-11T02:48:32Z", "topics": "[\"datasette\", \"datasette-io\", \"datasette-tool\", \"dogsheep\", \"github-api\", \"sqlite\"]"} {"rowid": 107914493, "repo": "https://github.com/simonw/datasette", "release": "https://github.com/simonw/datasette/releases/tag/0.38", "date": "2020-03-08", "body_markdown": "* The [Docker build](https://hub.docker.com/r/datasetteproject/datasette) of Datasette now uses SQLite 3.31.1, upgraded from 3.26. (#695)\r\n* `datasette publish cloudrun` now accepts an optional `--memory=2Gi` flag for setting the Cloud Run allocated memory to a value other than the default (256Mi). (#694)\r\n* Fixed bug where templates that shipped with plugins were sometimes not being correctly loaded. (#697)\r\n", "published_at": "2020-03-08T23:42:36Z", "topics": "[\"asgi\", \"automatic-api\", \"csv\", \"datasets\", \"datasette\", \"datasette-io\", \"docker\", \"json\", \"python\", \"sql\", \"sqlite\"]"} {"rowid": 107914493, "repo": "https://github.com/simonw/datasette", "release": "https://github.com/simonw/datasette/releases/tag/0.37.1", "date": "2020-03-03", "body_markdown": "* Don\u2019t attempt to count table rows to display on the index page for databases > 100MB. (#688)\r\n* Print exceptions if they occur in the write thread rather than silently swallowing them.\r\n* Handle the possibility of `scope[\"path\"]` being a string rather than bytes\r\n* Better documentation for the [extra_template_vars(template, database, table, view_name, request, datasette)](https://datasette.readthedocs.io/en/stable/plugins.html#plugin-hook-extra-template-vars) plugin hook.\r\n", "published_at": "2020-03-03T03:46:17Z", "topics": "[\"asgi\", \"automatic-api\", \"csv\", \"datasets\", \"datasette\", \"datasette-io\", \"docker\", \"json\", \"python\", \"sql\", \"sqlite\"]"} {"rowid": 140912432, "repo": "https://github.com/simonw/sqlite-utils", "release": "https://github.com/simonw/sqlite-utils/releases/tag/2.4", "date": "2020-02-27", "body_markdown": "* `table.disable_fts()` can now be used to remove FTS tables and triggers that were created using `table.enable_fts(...)`. (#88)\r\n* The `sqlite-utils disable-fts` command can be used to remove FTS tables and triggers from the command-line. (#88)\r\n* Trying to create table columns with square braces ([ or ]) in the name now raises an error. (#86)\r\n* Subclasses of `dict`, `list` and `tuple` are now detected as needing a JSON column. (#87)\r\n", "published_at": "2020-02-27T04:58:25Z", "topics": "[\"cli\", \"click\", \"datasette\", \"datasette-io\", \"datasette-tool\", \"python\", \"sqlite\", \"sqlite-database\"]"} {"rowid": 107914493, "repo": "https://github.com/simonw/datasette", "release": "https://github.com/simonw/datasette/releases/tag/0.37", "date": "2020-02-26", "body_markdown": "* Plugins now have a supported mechanism for writing to a database, using the new `.execute_write()` and `.execute_write_fn()` methods. [Documentation](https://datasette.readthedocs.io/en/stable/internals.html#database-execute-write). (#682)\r\n* Immutable databases that have had their rows counted using the `inspect` command now use the calculated count more effectively - thanks, Kevin Keogh. (#666)\r\n* `--reload` no longer restarts the server if a database file is modified, unless that database was opened immutable mode with `-i`. (#494)\r\n* New `?_searchmode=raw` option turns off escaping for FTS queries in `?_search=` allowing full use of SQLite\u2019s [FTS5 query syntax](https://www.sqlite.org/fts5.html#full_text_query_syntax). (#676)\r\n", "published_at": "2020-02-26T03:44:07Z", "topics": "[\"asgi\", \"automatic-api\", \"csv\", \"datasets\", \"datasette\", \"datasette-io\", \"docker\", \"json\", \"python\", \"sql\", \"sqlite\"]"} {"rowid": 107914493, "repo": "https://github.com/simonw/datasette", "release": "https://github.com/simonw/datasette/releases/tag/0.36", "date": "2020-02-22", "body_markdown": "* The `datasette` object passed to plugins now has API documentation: [Datasette class](https://datasette.readthedocs.io/en/latest/datasette.html#datasette). (#576)\r\n* New methods on `datasette`: `.add_database()` and `.remove_database()` - [documentation](https://datasette.readthedocs.io/en/latest/datasette.html#datasette-add-database). (#671)\r\n* `prepare_connection()` plugin hook now takes optional `datasette` and `database` arguments - [prepare_connection(conn, database, datasette)](https://datasette.readthedocs.io/en/latest/plugins.html#plugin-hook-prepare-connection). (#678)\r\n* Added three new plugins and one new conversion tool to the [The Datasette Ecosystem](https://datasette.readthedocs.io/en/latest/ecosystem.html#ecosystem).\r\n\r\nhttps://datasette.readthedocs.io/en/latest/changelog.html#v0-36", "published_at": "2020-02-22T03:24:50Z", "topics": "[\"asgi\", \"automatic-api\", \"csv\", \"datasets\", \"datasette\", \"datasette-io\", \"docker\", \"json\", \"python\", \"sql\", \"sqlite\"]"} {"rowid": 140912432, "repo": "https://github.com/simonw/sqlite-utils", "release": "https://github.com/simonw/sqlite-utils/releases/tag/2.3.1", "date": "2020-02-11", "body_markdown": "`table.create_index()` now works for columns that contain spaces. (#85)", "published_at": "2020-02-11T05:59:43Z", "topics": "[\"cli\", \"click\", \"datasette\", \"datasette-io\", \"datasette-tool\", \"python\", \"sqlite\", \"sqlite-database\"]"} {"rowid": 140912432, "repo": "https://github.com/simonw/sqlite-utils", "release": "https://github.com/simonw/sqlite-utils/releases/tag/2.3", "date": "2020-02-08", "body_markdown": "`table.exists()` is now a method, not a property. This was not a documented part of the API before so I\u2019m considering this a non-breaking change. (#83)", "published_at": "2020-02-08T23:59:20Z", "topics": "[\"cli\", \"click\", \"datasette\", \"datasette-io\", \"datasette-tool\", \"python\", \"sqlite\", \"sqlite-database\"]"} {"rowid": 206156866, "repo": "https://github.com/dogsheep/twitter-to-sqlite", "release": "https://github.com/dogsheep/twitter-to-sqlite/releases/tag/0.16", "date": "2020-02-07", "body_markdown": "New `friends` command for importing accounts that a specific user follows.", "published_at": "2020-02-07T07:44:53Z", "topics": "[\"datasette\", \"datasette-io\", \"datasette-tool\", \"dogsheep\", \"sqlite\", \"twitter\", \"twitter-api\"]"} {"rowid": 140912432, "repo": "https://github.com/simonw/sqlite-utils", "release": "https://github.com/simonw/sqlite-utils/releases/tag/2.2.1", "date": "2020-02-07", "body_markdown": "Fixed a bug where `.upsert(..., hash_id=\"pk\")` threw an error (#84).", "published_at": "2020-02-07T07:24:54Z", "topics": "[\"cli\", \"click\", \"datasette\", \"datasette-io\", \"datasette-tool\", \"python\", \"sqlite\", \"sqlite-database\"]"} {"rowid": 140912432, "repo": "https://github.com/simonw/sqlite-utils", "release": "https://github.com/simonw/sqlite-utils/releases/tag/2.2", "date": "2020-02-07", "body_markdown": "New feature: `sqlite_utils.suggest_column_types([records])` returns the suggested column types for a list of records. See [Suggesting column types](https://sqlite-utils.readthedocs.io/en/stable/python-api.html#python-api-suggest-column-types). (#81).\r\n\r\nThis replaces the undocumented `table.detect_column_types()` method.", "published_at": "2020-02-07T07:18:12Z", "topics": "[\"cli\", \"click\", \"datasette\", \"datasette-io\", \"datasette-tool\", \"python\", \"sqlite\", \"sqlite-database\"]"} {"rowid": 107914493, "repo": "https://github.com/simonw/datasette", "release": "https://github.com/simonw/datasette/releases/tag/0.35", "date": "2020-02-05", "body_markdown": "* Added five new plugins and one new conversion tool to the [The Datasette Ecosystem](https://datasette.readthedocs.io/en/latest/ecosystem.html#ecosystem).\r\n* The `Datasette` class has a new `render_template()` method which can be used by plugins to render templates using Datasette\u2019s pre-configured [Jinja](https://jinja.palletsprojects.com/) templating library.\r\n* You can now execute SQL queries that start with a `-- comment` - thanks, Jay Graves (#653)\r\n\r\nhttps://datasette.readthedocs.io/en/latest/changelog.html#v0-35", "published_at": "2020-02-05T02:32:34Z", "topics": "[\"asgi\", \"automatic-api\", \"csv\", \"datasets\", \"datasette\", \"datasette-io\", \"docker\", \"json\", \"python\", \"sql\", \"sqlite\"]"} {"rowid": 140912432, "repo": "https://github.com/simonw/sqlite-utils", "release": "https://github.com/simonw/sqlite-utils/releases/tag/2.1", "date": "2020-01-31", "body_markdown": "New feature: `conversions={...}` can be passed to the `.insert()` family of functions to specify SQL conversions that should be applied to values that are being inserted or updated. See [Converting column values using SQL functions](https://sqlite-utils.readthedocs.io/en/stable/python-api.html#python-api-conversions). (#77).", "published_at": "2020-01-31T00:30:40Z", "topics": "[\"cli\", \"click\", \"datasette\", \"datasette-io\", \"datasette-tool\", \"python\", \"sqlite\", \"sqlite-database\"]"} {"rowid": 107914493, "repo": "https://github.com/simonw/datasette", "release": "https://github.com/simonw/datasette/releases/tag/0.34", "date": "2020-01-30", "body_markdown": "- `_search=` queries are now correctly escaped using a new `escape_fts()` custom SQL function. This means you can now run searches for strings like `park.` without seeing errors. (#651)\r\n- Google Cloud Run is no longer in beta, so `datasette publish cloudrun` has been updated to work even if the user has not installed the `gcloud` beta components package. Thanks, Katie McLaughlin (#660)\r\n- `datasette package` now accepts a `--port` option for specifying which port the resulting Docker container should listen on. (#661)\r\n\r\nhttps://datasette.readthedocs.io/en/stable/changelog.html#v0-34\r\n", "published_at": "2020-01-30T00:29:21Z", "topics": "[\"asgi\", \"automatic-api\", \"csv\", \"datasets\", \"datasette\", \"datasette-io\", \"docker\", \"json\", \"python\", \"sql\", \"sqlite\"]"} {"rowid": 140912432, "repo": "https://github.com/simonw/sqlite-utils", "release": "https://github.com/simonw/sqlite-utils/releases/tag/2.0.1", "date": "2020-01-05", "body_markdown": "The `.upsert()` and `.upsert_all()` methods now raise a `sqlite_utils.db.PrimaryKeyRequired` exception if you call them without specifying the primary key column using `pk=` (#73).", "published_at": "2020-01-05T17:33:15Z", "topics": "[\"cli\", \"click\", \"datasette\", \"datasette-io\", \"datasette-tool\", \"python\", \"sqlite\", \"sqlite-database\"]"} {"rowid": 140912432, "repo": "https://github.com/simonw/sqlite-utils", "release": "https://github.com/simonw/sqlite-utils/releases/tag/2.0", "date": "2019-12-30", "body_markdown": "This release changes the behaviour of `upsert`. It\u2019s a breaking change, hence 2.0.\r\n\r\nThe `upsert` command-line utility and the `.upsert()` and `.upsert_all()` Python API methods have had their behaviour altered. They used to completely replace the affected records: now, they update the specified values on existing records but leave other columns unaffected.\r\n\r\nSee [Upserting data using the Python API](https://sqlite-utils.readthedocs.io/en/stable/python-api.html#python-api-upsert) and [Upserting data using the CLI](https://sqlite-utils.readthedocs.io/en/stable/cli.html#upserting-data) for full details.\r\n\r\nIf you want the old behaviour - where records were completely replaced - you can use `$ sqlite-utils insert ... --replace` on the command-line and `.insert(..., replace=True)` and `.insert_all(..., replace=True)` in the Python API. See [Insert-replacing data using the Python API](https://sqlite-utils.readthedocs.io/en/stable/python-api.html#python-api-insert-replace) and [Insert-replacing data using the CLI](https://sqlite-utils.readthedocs.io/en/stable/cli.html#cli-insert-replace) for more.\r\n\r\nFor full background on this change, see issue #66.", "published_at": "2019-12-30T06:26:09Z", "topics": "[\"cli\", \"click\", \"datasette\", \"datasette-io\", \"datasette-tool\", \"python\", \"sqlite\", \"sqlite-database\"]"} {"rowid": 107914493, "repo": "https://github.com/simonw/datasette", "release": "https://github.com/simonw/datasette/releases/tag/0.33", "date": "2019-12-22", "body_markdown": "* `rowid` is now included in dropdown menus for filtering tables (#636)\r\n* Columns are now only suggested for faceting if they have at least one value with more than one record (#638)\r\n* Queries with no results now display \u201c0 results\u201d (#637)\r\n* Improved documentation for the `--static` option (#641)\r\n* asyncio task information is now included on the `/-/threads` debug page\r\n* Bumped Uvicorn dependency 0.11\r\n* You can now use `--port 0` to listen on an available port\r\n* New `template_debug` setting for debugging templates, e.g. https://latest.datasette.io/fixtures/roadside_attractions?_context=1 (#654)\r\n\r\nhttps://datasette.readthedocs.io/en/latest/changelog.html#v0-33", "published_at": "2019-12-22T16:43:31Z", "topics": "[\"asgi\", \"automatic-api\", \"csv\", \"datasets\", \"datasette\", \"datasette-io\", \"docker\", \"json\", \"python\", \"sql\", \"sqlite\"]"} {"rowid": 107914493, "repo": "https://github.com/simonw/datasette", "release": "https://github.com/simonw/datasette/releases/tag/0.32", "date": "2019-11-14", "body_markdown": "Datasette now renders templates using [Jinja async mode](https://jinja.palletsprojects.com/en/2.10.x/api/#async-support). This makes it easy for plugins to provide custom template functions that perform asynchronous actions, for example the new [datasette-template-sql](https://github.com/simonw/datasette-template-sql) plugin which allows custom templates to directly execute SQL queries and render their results. (#628)\r\n\r\nhttps://datasette.readthedocs.io/en/latest/changelog.html#v0-32", "published_at": "2019-11-14T23:42:14Z", "topics": "[\"asgi\", \"automatic-api\", \"csv\", \"datasets\", \"datasette\", \"datasette-io\", \"docker\", \"json\", \"python\", \"sql\", \"sqlite\"]"} {"rowid": 107914493, "repo": "https://github.com/simonw/datasette", "release": "https://github.com/simonw/datasette/releases/tag/0.31.2", "date": "2019-11-13", "body_markdown": "- Fixed a bug where datasette publish heroku applications failed to start (#633)\r\n- Fix for datasette publish with just --source_url - thanks, Stanley Zheng (#572)\r\n- Deployments to Heroku now use Python 3.8.0 (#632)\r\n\r\nhttps://datasette.readthedocs.io/en/latest/changelog.html#v0-31-2", "published_at": "2019-11-13T17:38:59Z", "topics": "[\"asgi\", \"automatic-api\", \"csv\", \"datasets\", \"datasette\", \"datasette-io\", \"docker\", \"json\", \"python\", \"sql\", \"sqlite\"]"} {"rowid": 107914493, "repo": "https://github.com/simonw/datasette", "release": "https://github.com/simonw/datasette/releases/tag/0.31.1", "date": "2019-11-13", "body_markdown": "- Deployments created using `datasette publish` now use `python:3.8` base Docker image (#629)\r\n\r\nhttps://datasette.readthedocs.io/en/latest/changelog.html#v0-31-1", "published_at": "2019-11-13T02:40:53Z", "topics": "[\"asgi\", \"automatic-api\", \"csv\", \"datasets\", \"datasette\", \"datasette-io\", \"docker\", \"json\", \"python\", \"sql\", \"sqlite\"]"} {"rowid": 107914493, "repo": "https://github.com/simonw/datasette", "release": "https://github.com/simonw/datasette/releases/tag/0.31", "date": "2019-11-13", "body_markdown": "This version adds compatibility with Python 3.8 and breaks compatibility with Python 3.5.\r\n\r\nFull release notes: https://datasette.readthedocs.io/en/stable/changelog.html#v0-31", "published_at": "2019-11-13T02:16:15Z", "topics": "[\"asgi\", \"automatic-api\", \"csv\", \"datasets\", \"datasette\", \"datasette-io\", \"docker\", \"json\", \"python\", \"sql\", \"sqlite\"]"} {"rowid": 207052882, "repo": "https://github.com/dogsheep/github-to-sqlite", "release": "https://github.com/dogsheep/github-to-sqlite/releases/tag/0.6", "date": "2019-11-11", "body_markdown": "- New `releases` command for fetching releases for a repo, #11\r\n- Repository topics are now fetched by the `repos` command\r\n- `github-to-sqlite repos` now accepts multiple usernames\r\n- Command now works without `--auth` file (using anonymous API calls), #9", "published_at": "2019-11-11T05:34:06Z", "topics": "[\"datasette\", \"datasette-io\", \"datasette-tool\", \"dogsheep\", \"github-api\", \"sqlite\"]"} {"rowid": 206156866, "repo": "https://github.com/dogsheep/twitter-to-sqlite", "release": "https://github.com/dogsheep/twitter-to-sqlite/releases/tag/0.15", "date": "2019-11-09", "body_markdown": "- Import command no longer fails on empty files - #29\r\n- Fixed bug in `followers` command - #30\r\n- `following` table now has indexes - #28", "published_at": "2019-11-09T20:13:07Z", "topics": "[\"datasette\", \"datasette-io\", \"datasette-tool\", \"dogsheep\", \"sqlite\", \"twitter\", \"twitter-api\"]"} {"rowid": 197882382, "repo": "https://github.com/dogsheep/healthkit-to-sqlite", "release": "https://github.com/dogsheep/healthkit-to-sqlite/releases/tag/0.4", "date": "2019-11-08", "body_markdown": "* Fixed workout latitude/longitude points import for iOS 13 - #10", "published_at": "2019-11-08T01:19:51Z", "topics": "[\"datasette\", \"datasette-io\", \"datasette-tool\", \"dogsheep\", \"healthkit\", \"sqlite\"]"} {"rowid": 140912432, "repo": "https://github.com/simonw/sqlite-utils", "release": "https://github.com/simonw/sqlite-utils/releases/tag/1.12.1", "date": "2019-11-07", "body_markdown": "https://sqlite-utils.readthedocs.io/en/latest/changelog.html#v1-12-1", "published_at": "2019-11-07T05:00:55Z", "topics": "[\"cli\", \"click\", \"datasette\", \"datasette-io\", \"datasette-tool\", \"python\", \"sqlite\", \"sqlite-database\"]"} {"rowid": 140912432, "repo": "https://github.com/simonw/sqlite-utils", "release": "https://github.com/simonw/sqlite-utils/releases/tag/1.12", "date": "2019-11-07", "body_markdown": "https://sqlite-utils.readthedocs.io/en/latest/changelog.html#v1-12", "published_at": "2019-11-07T05:00:24Z", "topics": "[\"cli\", \"click\", \"datasette\", \"datasette-io\", \"datasette-tool\", \"python\", \"sqlite\", \"sqlite-database\"]"} {"rowid": 206156866, "repo": "https://github.com/dogsheep/twitter-to-sqlite", "release": "https://github.com/dogsheep/twitter-to-sqlite/releases/tag/0.14", "date": "2019-11-04", "body_markdown": "* `search` command gained `--since_id` and `--since` options, for retrieving tweets since the last time the search was run\r\n* `search` command is [now documented](https://github.com/dogsheep/twitter-to-sqlite/blob/0.14/README.md#running-searches). Closes #3.", "published_at": "2019-11-04T05:33:56Z", "topics": "[\"datasette\", \"datasette-io\", \"datasette-tool\", \"dogsheep\", \"sqlite\", \"twitter\", \"twitter-api\"]"} {"rowid": 107914493, "repo": "https://github.com/simonw/datasette", "release": "https://github.com/simonw/datasette/releases/tag/0.30.2", "date": "2019-11-02", "body_markdown": "https://datasette.readthedocs.io/en/latest/changelog.html#v0-30-2", "published_at": "2019-11-02T23:33:13Z", "topics": "[\"asgi\", \"automatic-api\", \"csv\", \"datasets\", \"datasette\", \"datasette-io\", \"docker\", \"json\", \"python\", \"sql\", \"sqlite\"]"} {"rowid": 107914493, "repo": "https://github.com/simonw/datasette", "release": "https://github.com/simonw/datasette/releases/tag/0.30.1", "date": "2019-11-02", "body_markdown": "https://datasette.readthedocs.io/en/stable/changelog.html#v0-30-1", "published_at": "2019-11-02T00:06:02Z", "topics": "[\"asgi\", \"automatic-api\", \"csv\", \"datasets\", \"datasette\", \"datasette-io\", \"docker\", \"json\", \"python\", \"sql\", \"sqlite\"]"} {"rowid": 107914493, "repo": "https://github.com/simonw/datasette", "release": "https://github.com/simonw/datasette/releases/tag/0.30", "date": "2019-10-30", "body_markdown": "https://datasette.readthedocs.io/en/stable/changelog.html#v0-30", "published_at": "2019-10-30T18:51:30Z", "topics": "[\"asgi\", \"automatic-api\", \"csv\", \"datasets\", \"datasette\", \"datasette-io\", \"docker\", \"json\", \"python\", \"sql\", \"sqlite\"]"} {"rowid": 206156866, "repo": "https://github.com/dogsheep/twitter-to-sqlite", "release": "https://github.com/dogsheep/twitter-to-sqlite/releases/tag/0.13", "date": "2019-10-30", "body_markdown": "- New `mentions-timeline` command (#26)", "published_at": "2019-10-30T02:22:30Z", "topics": "[\"datasette\", \"datasette-io\", \"datasette-tool\", \"dogsheep\", \"sqlite\", \"twitter\", \"twitter-api\"]"} {"rowid": 107914493, "repo": "https://github.com/simonw/datasette", "release": "https://github.com/simonw/datasette/releases/tag/0.29.3", "date": "2019-10-18", "body_markdown": "https://datasette.readthedocs.io/en/stable/changelog.html#v0-29-3", "published_at": "2019-10-18T05:24:54Z", "topics": "[\"asgi\", \"automatic-api\", \"csv\", \"datasets\", \"datasette\", \"datasette-io\", \"docker\", \"json\", \"python\", \"sql\", \"sqlite\"]"} {"rowid": 206156866, "repo": "https://github.com/dogsheep/twitter-to-sqlite", "release": "https://github.com/dogsheep/twitter-to-sqlite/releases/tag/0.12", "date": "2019-10-17", "body_markdown": "* The `source` column for a tweet is now a foreign key to a new `sources` table - #12\r\n* New migrations system to upgrade existing databases to handle the new `source` column extraction - #23\r\n* Experimental implementation of new `twitter-to-sqlite search tweets.db search-term` command, which runs a search and saves the tweets from that search - #3\r\n* Fixed bug where sometimes a user record for the authenticated user was not persisted to the `users` table", "published_at": "2019-10-17T18:00:28Z", "topics": "[\"datasette\", \"datasette-io\", \"datasette-tool\", \"dogsheep\", \"sqlite\", \"twitter\", \"twitter-api\"]"} {"rowid": 206156866, "repo": "https://github.com/dogsheep/twitter-to-sqlite", "release": "https://github.com/dogsheep/twitter-to-sqlite/releases/tag/0.11.1", "date": "2019-10-16", "body_markdown": "* Fix bugs running `home-timeline --since` from scratch. If tables were missing, script would throw an error.", "published_at": "2019-10-16T22:31:51Z", "topics": "[\"datasette\", \"datasette-io\", \"datasette-tool\", \"dogsheep\", \"sqlite\", \"twitter\", \"twitter-api\"]"} {"rowid": 205429375, "repo": "https://github.com/dogsheep/swarm-to-sqlite", "release": "https://github.com/dogsheep/swarm-to-sqlite/releases/tag/0.2", "date": "2019-10-16", "body_markdown": "* Added --since option, closes #3 ", "published_at": "2019-10-16T20:40:55Z", "topics": "[\"datasette\", \"datasette-io\", \"datasette-tool\", \"dogsheep\", \"foursquare\", \"foursquare-api\", \"sqlite\", \"swarm\"]"} {"rowid": 206156866, "repo": "https://github.com/dogsheep/twitter-to-sqlite", "release": "https://github.com/dogsheep/twitter-to-sqlite/releases/tag/0.11", "date": "2019-10-16", "body_markdown": "* Added `--since_id` and `--since` to `user-timeline` command, refs #20\r\n* `--since` and `--since_id` options for `home-timeline`, closes #19 \r\n* `import` command now works on files and directories, closes #22 ", "published_at": "2019-10-16T19:38:42Z", "topics": "[\"datasette\", \"datasette-io\", \"datasette-tool\", \"dogsheep\", \"sqlite\", \"twitter\", \"twitter-api\"]"} {"rowid": 206156866, "repo": "https://github.com/dogsheep/twitter-to-sqlite", "release": "https://github.com/dogsheep/twitter-to-sqlite/releases/tag/0.10", "date": "2019-10-15", "body_markdown": "* favorites command now populates `favorited_by` table - #14 \r\n* favorites `--stop_after` option - #20 \r\n* Store unescaped `full_text` of Tweet - #21 ", "published_at": "2019-10-15T18:56:09Z", "topics": "[\"datasette\", \"datasette-io\", \"datasette-tool\", \"dogsheep\", \"sqlite\", \"twitter\", \"twitter-api\"]"} {"rowid": 207052882, "repo": "https://github.com/dogsheep/github-to-sqlite", "release": "https://github.com/dogsheep/github-to-sqlite/releases/tag/0.5", "date": "2019-10-13", "body_markdown": "* New command: `github-to-sqlite issue-comments` for importing comments on issues - #7\r\n* `github-to-sqlite issues` now accepts optional `--issue=1` argument\r\n* Fixed bug inserting users into already-created table with wrong columns - #6", "published_at": "2019-10-13T05:30:05Z", "topics": "[\"datasette\", \"datasette-io\", \"datasette-tool\", \"dogsheep\", \"github-api\", \"sqlite\"]"} {"rowid": 206156866, "repo": "https://github.com/dogsheep/twitter-to-sqlite", "release": "https://github.com/dogsheep/twitter-to-sqlite/releases/tag/0.9", "date": "2019-10-11", "body_markdown": "* New `twitter-to-sqlite home-timeline` command, for retrieving your timeline of tweets from people you follow - #18\r\n* `twitter-to-sqlite import` created tables now use the `archive_` prefix instead of `archive-`, for easier querying\r\n* Running `twitter-to-sqlite import` now deletes existing `archive_` tables and recreates them - #17", "published_at": "2019-10-11T16:57:25Z", "topics": "[\"datasette\", \"datasette-io\", \"datasette-tool\", \"dogsheep\", \"sqlite\", \"twitter\", \"twitter-api\"]"} {"rowid": 206156866, "repo": "https://github.com/dogsheep/twitter-to-sqlite", "release": "https://github.com/dogsheep/twitter-to-sqlite/releases/tag/0.8", "date": "2019-10-11", "body_markdown": "* New `twitter-to-sqlite import twitter.db archive.zip` command for importing data from a Twitter export file. #4 - [documentation here](https://github.com/dogsheep/twitter-to-sqlite/blob/master/README.md#importing-data-from-your-twitter-archive).", "published_at": "2019-10-11T06:46:52Z", "topics": "[\"datasette\", \"datasette-io\", \"datasette-tool\", \"dogsheep\", \"sqlite\", \"twitter\", \"twitter-api\"]"} {"rowid": 213286752, "repo": "https://github.com/dogsheep/pocket-to-sqlite", "release": "https://github.com/dogsheep/pocket-to-sqlite/releases/tag/0.1", "date": "2019-10-07", "body_markdown": "Initial release", "published_at": "2019-10-07T05:18:20Z", "topics": "[\"datasette\", \"datasette-io\", \"datasette-tool\", \"dogsheep\", \"pocket\", \"pocket-api\", \"sqlite\"]"} {"rowid": 206156866, "repo": "https://github.com/dogsheep/twitter-to-sqlite", "release": "https://github.com/dogsheep/twitter-to-sqlite/releases/tag/0.7", "date": "2019-10-07", "body_markdown": "* New `statuses-lookup` command for bulk fetching tweets by their IDs - #13 ", "published_at": "2019-10-07T00:33:28Z", "topics": "[\"datasette\", \"datasette-io\", \"datasette-tool\", \"dogsheep\", \"sqlite\", \"twitter\", \"twitter-api\"]"} {"rowid": 206156866, "repo": "https://github.com/dogsheep/twitter-to-sqlite", "release": "https://github.com/dogsheep/twitter-to-sqlite/releases/tag/0.6", "date": "2019-10-06", "body_markdown": "* New experimental `track` and `follow` commands for subscribing to the Twitter real-time API #11. [Documentation](https://github.com/dogsheep/twitter-to-sqlite#capturing-tweets-in-real-time-with-track-and-follow) for track and follow.\r\n* Documentation for `--sql` and `--attach`, refs #8", "published_at": "2019-10-06T04:52:18Z", "topics": "[\"datasette\", \"datasette-io\", \"datasette-tool\", \"dogsheep\", \"sqlite\", \"twitter\", \"twitter-api\"]"} {"rowid": 209590345, "repo": "https://github.com/dogsheep/genome-to-sqlite", "release": "https://github.com/dogsheep/genome-to-sqlite/releases/tag/0.1", "date": "2019-09-19", "body_markdown": "First release", "published_at": "2019-09-19T15:41:17Z", "topics": "[\"23andme\", \"datasette\", \"datasette-io\", \"datasette-tool\", \"dogsheep\", \"genetics\", \"personal-analytics\", \"sqlite\"]"} {"rowid": 207052882, "repo": "https://github.com/dogsheep/github-to-sqlite", "release": "https://github.com/dogsheep/github-to-sqlite/releases/tag/0.4", "date": "2019-09-17", "body_markdown": "* Added `github-to-sqlite repos` command, #3 ", "published_at": "2019-09-17T00:19:42Z", "topics": "[\"datasette\", \"datasette-io\", \"datasette-tool\", \"dogsheep\", \"github-api\", \"sqlite\"]"} {"rowid": 207052882, "repo": "https://github.com/dogsheep/github-to-sqlite", "release": "https://github.com/dogsheep/github-to-sqlite/releases/tag/0.3", "date": "2019-09-14", "body_markdown": "* `license` is now extracted from the `repos` table into a separate `licenses` table with a foreign key, #2\r\n\r\n", "published_at": "2019-09-14T21:50:01Z", "topics": "[\"datasette\", \"datasette-io\", \"datasette-tool\", \"dogsheep\", \"github-api\", \"sqlite\"]"} {"rowid": 207052882, "repo": "https://github.com/dogsheep/github-to-sqlite", "release": "https://github.com/dogsheep/github-to-sqlite/releases/tag/0.2", "date": "2019-09-14", "body_markdown": "* Added the `github-to-sqlite starred` command for retrieving starred repos, #1 ", "published_at": "2019-09-14T21:32:34Z", "topics": "[\"datasette\", \"datasette-io\", \"datasette-tool\", \"dogsheep\", \"github-api\", \"sqlite\"]"} {"rowid": 207052882, "repo": "https://github.com/dogsheep/github-to-sqlite", "release": "https://github.com/dogsheep/github-to-sqlite/releases/tag/0.1.1", "date": "2019-09-14", "body_markdown": "* Fix bug in authentication handling code", "published_at": "2019-09-14T19:42:08Z", "topics": "[\"datasette\", \"datasette-io\", \"datasette-tool\", \"dogsheep\", \"github-api\", \"sqlite\"]"} {"rowid": 206156866, "repo": "https://github.com/dogsheep/twitter-to-sqlite", "release": "https://github.com/dogsheep/twitter-to-sqlite/releases/tag/0.5", "date": "2019-09-10", "body_markdown": "* Added `followers-ids` and `friends-ids` subcommands", "published_at": "2019-09-10T17:39:47Z", "topics": "[\"datasette\", \"datasette-io\", \"datasette-tool\", \"dogsheep\", \"sqlite\", \"twitter\", \"twitter-api\"]"} {"rowid": 206156866, "repo": "https://github.com/dogsheep/twitter-to-sqlite", "release": "https://github.com/dogsheep/twitter-to-sqlite/releases/tag/0.4", "date": "2019-09-09", "body_markdown": "* New `users-lookup` command for fetching multiple user profiles, including using new `--sql` and `--attach` options\r\n* New `list-members` subcommand for fetching members of a list\r\n* Added `stop_after` option to `user-timeline` command", "published_at": "2019-09-09T22:43:05Z", "topics": "[\"datasette\", \"datasette-io\", \"datasette-tool\", \"dogsheep\", \"sqlite\", \"twitter\", \"twitter-api\"]"} {"rowid": 206156866, "repo": "https://github.com/dogsheep/twitter-to-sqlite", "release": "https://github.com/dogsheep/twitter-to-sqlite/releases/tag/0.3", "date": "2019-09-04", "body_markdown": "Extract places and media into separate tables\r\n\r\nDemo: https://twitter-to-sqlite-demo.now.sh/", "published_at": "2019-09-04T22:11:01Z", "topics": "[\"datasette\", \"datasette-io\", \"datasette-tool\", \"dogsheep\", \"sqlite\", \"twitter\", \"twitter-api\"]"}