issues

199 rows where type = "pull" sorted by updated_at descending

View and edit SQL

Suggested facets: milestone, comments, author_association, created_at (date), updated_at (date), closed_at (date)

state

type

  • pull · 199
id node_id number title user state locked assignee milestone comments created_at updated_at ▲ closed_at author_association pull_request body repo type active_lock_reason
651844316 MDExOlB1bGxSZXF1ZXN0NDQ1MDIzMzI2 118 Add insert --truncate option tsibley 79913 closed 0     9 2020-07-06T21:58:40Z 2020-07-08T17:26:21Z 2020-07-08T17:26:21Z CONTRIBUTOR simonw/sqlite-utils/pulls/118

Deletes all rows in the table (if it exists) before inserting new rows.
SQLite doesn't implement a TRUNCATE TABLE statement but does optimize an
unqualified DELETE FROM.

This can be handy if you want to refresh the entire contents of a table
but a) don't have a PK (so can't use --replace), b) don't want the table
to disappear (even briefly) for other connections, and c) have to handle
records that used to exist being deleted.

Ideally the replacement of rows would appear instantaneous to other
connections by putting the DELETE + INSERT in a transaction, but this is
very difficult without breaking other code as the current transaction
handling is inconsistent and non-systematic. There exists the
possibility for the DELETE to succeed but the INSERT to fail, leaving an
empty table. This is not much worse, however, than the current
possibility of one chunked INSERT succeeding and being committed while
the next chunked INSERT fails, leaving a partially complete operation.

sqlite-utils 140912432 pull  
652816158 MDExOlB1bGxSZXF1ZXN0NDQ1ODMzOTA4 120 Fix query command's support for DML tsibley 79913 closed 0     1 2020-07-08T01:36:34Z 2020-07-08T05:14:04Z 2020-07-08T05:14:04Z CONTRIBUTOR simonw/sqlite-utils/pulls/120

See commit messages for details. I ran into this while investigating another feature/issue.

sqlite-utils 140912432 pull  
650305298 MDExOlB1bGxSZXF1ZXN0NDQzODIzMDQw 890 Load only python files from plugins-dir. amjith 49260 closed 0     2 2020-07-03T02:47:32Z 2020-07-03T03:08:33Z 2020-07-03T03:08:33Z CONTRIBUTOR simonw/datasette/pulls/890

The current behavior for --plugins-dir is to load every file in that folder as a python module. This can result in errors if there are non-python files in the plugins dir (such as .mypy_cache).

This PR restricts the module loading to only python files.

datasette 107914493 pull  
638270441 MDExOlB1bGxSZXF1ZXN0NDM0MDg1MjM1 848 Reload support for config_dir mode. amjith 49260 closed 0     1 2020-06-14T02:34:46Z 2020-07-03T02:44:54Z 2020-07-03T02:44:53Z CONTRIBUTOR simonw/datasette/pulls/848

A reference implementation for adding support to reload when datasette is in the config_dir mode.

This implementation is flawed since it is watching the entire directory and any changes to the database will reload the server and adding unrelated files to the directory will also reload the server.

datasette 107914493 pull  
648749062 MDExOlB1bGxSZXF1ZXN0NDQyNTA1MDg4 883 Skip counting hidden tables abdusco 3243482 open 0     4 2020-07-01T07:38:08Z 2020-07-02T00:25:44Z   CONTRIBUTOR simonw/datasette/pulls/883

Potential fix for https://github.com/simonw/datasette/issues/859.

Disabling table counts for hidden tables speeds up database page quite a bit. In my setup it reduced load time by 2/3 (~300 -> ~90ms)

datasette 107914493 pull  
646448486 MDExOlB1bGxSZXF1ZXN0NDQwNzM1ODE0 868 initial windows ci setup joshmgrant 702729 open 0     2 2020-06-26T18:49:13Z 2020-06-30T03:51:22Z   FIRST_TIME_CONTRIBUTOR simonw/datasette/pulls/868

Picking up the work done on #557 with a new PR. Seeing if I can get this working.

datasette 107914493 pull  
646734280 MDExOlB1bGxSZXF1ZXN0NDQwOTQ2ODE3 869 Magic parameters for canned queries simonw 9599 closed 0   Datasette 0.45 5533512 1 2020-06-27T18:37:21Z 2020-06-28T02:58:18Z 2020-06-28T02:58:17Z OWNER simonw/datasette/pulls/869

Implementation for #842

TODO:

  • Add tests for built-in magic parameters
  • Magic parameters should not show up as blank form fields on the query page
  • Update documentation for new _request_X (now called _header_X) implementation where X is a key from the ASGI scope
  • Make sure these only work for canned queries, not for arbitrary SQL queries (security issue)
  • Add test for the register_magic_parameters plugin hook
  • Add documentation for the register_magic_parameters plugin hook
datasette 107914493 pull  
644610729 MDExOlB1bGxSZXF1ZXN0NDM5MjAzODA4 866 Update pytest-asyncio requirement from <0.13,>=0.10 to >=0.10,<0.15 dependabot-preview[bot] 27856297 closed 0     1 2020-06-24T13:21:47Z 2020-06-24T18:50:57Z 2020-06-24T18:50:56Z CONTRIBUTOR simonw/datasette/pulls/866

Updates the requirements on pytest-asyncio to permit the latest version.


Commits

  • 53f3da7 Prepare for release

  • e99569d A line is added to the changelog.

  • 4099b63 One import is not needed

  • 68513b3 Clarify names and comments, according to yanlend comments 26 May

  • 907e8f2 FIX new test_cases on python 3.5 & 3.6

  • 51d986c To solve test cases that fail:

  • f97e900 1) Test case (test_async_fixtures_with_finalizer) refactoring to pass on pyth...

  • c1131f8 1) A new test case that fails with 0.12.0, and pass with this commit.

  • 7a255bc 0.13.0 open for business

  • b8e2a45 0.12.0

  • Additional commits viewable in compare view




Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.



Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:
- @dependabot rebase will rebase this PR
- @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
- @dependabot merge will merge this PR after your CI passes on it
- @dependabot squash and merge will squash and merge this PR after your CI passes on it
- @dependabot cancel merge will cancel a previously requested merge and block automerging
- @dependabot reopen will reopen this PR if it is closed
- @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
- @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
- @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
- @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
- @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language
- @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

Additionally, you can set the following in your Dependabot dashboard:
- Update frequency (including time of day and day of week)
- Pull request limits (per update run and/or open at any time)
- Out-of-range updates (receive only lockfile updates, if desired)
- Security updates (receive only security updates, if desired)

datasette 107914493 pull  
638375985 MDExOlB1bGxSZXF1ZXN0NDM0MTYyMzE2 29 Fixed bug in SQL query for photo scores RhetTbull 41546558 open 0     0 2020-06-14T15:39:22Z 2020-06-14T15:39:22Z   FIRST_TIME_CONTRIBUTOR dogsheep/dogsheep-photos/pulls/29

The join on ZCOMPUTEDASSETATTRIBUTES used the wrong columns. In most of the Photos database tables, table.ZASSET joins with ZGENERICASSET.Z_PK

dogsheep-photos 256834907 pull  
638230433 MDExOlB1bGxSZXF1ZXN0NDM0MDU1NzUy 844 Action to run tests and upload coverage report simonw 9599 closed 0     1 2020-06-13T20:52:47Z 2020-06-13T21:36:52Z 2020-06-13T21:36:50Z OWNER simonw/datasette/pulls/844

Refs #843

datasette 107914493 pull  
614806683 MDExOlB1bGxSZXF1ZXN0NDE1Mjg2MTA1 763 Documentation + improvements for db.execute() and Results class simonw 9599 closed 0     0 2020-05-08T15:16:02Z 2020-06-11T16:05:48Z 2020-05-08T16:05:46Z OWNER simonw/datasette/pulls/763

Refs #685

Still TODO:

  • Implement results.first()
  • Implement results.single_value()
  • Unit tests for the above
datasette 107914493 pull  
632919570 MDExOlB1bGxSZXF1ZXN0NDI5NjEzODkz 809 Publish secrets simonw 9599 closed 0   Datasette 0.44 5512395 4 2020-06-07T02:00:31Z 2020-06-11T16:02:13Z 2020-06-11T16:02:03Z OWNER simonw/datasette/pulls/809

Refs #787. Will need quite a bit of manual testing since this involves code which runs against Heroku and Cloud Run.

datasette 107914493 pull  
635037204 MDExOlB1bGxSZXF1ZXN0NDMxNDc4NzI0 819 register_routes() plugin hook simonw 9599 closed 0   Datasette 0.44 5512395 0 2020-06-09T01:20:44Z 2020-06-09T03:12:08Z 2020-06-09T03:12:07Z OWNER simonw/datasette/pulls/819

Refs #215

datasette 107914493 pull  
632645865 MDExOlB1bGxSZXF1ZXN0NDI5MzY2NjQx 803 Canned query permissions simonw 9599 closed 0     0 2020-06-06T18:20:00Z 2020-06-06T19:40:21Z 2020-06-06T19:40:20Z OWNER simonw/datasette/pulls/803

Refs #800. Closes #786

datasette 107914493 pull  
631300342 MDExOlB1bGxSZXF1ZXN0NDI4MjEyNDIx 798 CSRF protection simonw 9599 closed 0   Datasette 0.44 5512395 5 2020-06-05T04:22:35Z 2020-06-06T00:43:41Z 2020-06-05T19:05:58Z OWNER simonw/datasette/pulls/798

Refs #793

datasette 107914493 pull  
629595228 MDExOlB1bGxSZXF1ZXN0NDI2ODkxNDcx 796 New WIP writable canned queries simonw 9599 closed 0   Datasette 1.0 3268330 9 2020-06-03T00:08:00Z 2020-06-03T15:16:52Z 2020-06-03T15:16:50Z OWNER simonw/datasette/pulls/796

Refs #698. Replaces #703

Still todo:

  • Unit tests
  • <del>Figure out .json mode</del>
  • Flash message solution
  • <del>CSRF protection</del>
  • Better error message display on errors
  • Documentation
  • <del>Maybe widgets?</del> I'll do these later
datasette 107914493 pull  
585597133 MDExOlB1bGxSZXF1ZXN0MzkxOTI0NTA5 703 WIP implementation of writable canned queries simonw 9599 closed 0     3 2020-03-21T22:23:51Z 2020-06-03T00:08:14Z 2020-06-02T23:57:35Z OWNER simonw/datasette/pulls/703

Refs #698.

datasette 107914493 pull  
627836898 MDExOlB1bGxSZXF1ZXN0NDI1NTMxMjA1 783 Authentication: plugin hooks plus default --root auth mechanism simonw 9599 closed 0     0 2020-05-30T22:25:47Z 2020-06-01T01:16:44Z 2020-06-01T01:16:43Z OWNER simonw/datasette/pulls/783

See #699

datasette 107914493 pull  
570101428 MDExOlB1bGxSZXF1ZXN0Mzc5MTkyMjU4 683 .execute_write() and .execute_write_fn() methods on Database simonw 9599 closed 0   Datasette 1.0 3268330 14 2020-02-24T19:51:58Z 2020-05-30T18:40:20Z 2020-02-25T04:45:08Z OWNER simonw/datasette/pulls/683

See #682

  • Come up with design for .execute_write() and .execute_write_fn()
  • Build some quick demo plugins to exercise the design
  • Write some unit tests
  • Write the documentation
datasette 107914493 pull  
622672640 MDExOlB1bGxSZXF1ZXN0NDIxNDkxODEw 768 Use dirs_exist_ok=True simonw 9599 closed 0   Datasette 0.43 5471110 0 2020-05-21T17:53:44Z 2020-05-27T20:21:56Z 2020-05-21T17:53:51Z OWNER simonw/datasette/pulls/768

Refs #744

datasette 107914493 pull  
625922239 MDExOlB1bGxSZXF1ZXN0NDI0MDMyNDQ1 769 Backport of Python 3.8 shutil.copytree simonw 9599 closed 0   Datasette 0.43 5471110 0 2020-05-27T18:17:15Z 2020-05-27T20:21:56Z 2020-05-27T18:17:44Z OWNER simonw/datasette/pulls/769

Closes #744

datasette 107914493 pull  
625991831 MDExOlB1bGxSZXF1ZXN0NDI0MDg1MjY0 772 Test that plugin hooks are unit tested simonw 9599 closed 0   Datasette 0.43 5471110 0 2020-05-27T20:01:32Z 2020-05-27T20:21:56Z 2020-05-27T20:16:03Z OWNER simonw/datasette/pulls/772

Refs #771

datasette 107914493 pull  
598891570 MDExOlB1bGxSZXF1ZXN0NDAyNjQ1OTg0 725 Update aiofiles requirement from ~=0.4.0 to >=0.4,<0.6 dependabot-preview[bot] 27856297 closed 0     3 2020-04-13T13:32:47Z 2020-05-04T18:16:54Z 2020-05-04T16:17:49Z CONTRIBUTOR simonw/datasette/pulls/725

Updates the requirements on aiofiles to permit the latest version.


Commits



Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.



Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:
- @dependabot rebase will rebase this PR
- @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
- @dependabot merge will merge this PR after your CI passes on it
- @dependabot squash and merge will squash and merge this PR after your CI passes on it
- @dependabot cancel merge will cancel a previously requested merge and block automerging
- @dependabot reopen will reopen this PR if it is closed
- @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
- @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
- @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
- @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
- @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language
- @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

Additionally, you can set the following in your Dependabot dashboard:
- Update frequency (including time of day and day of week)
- Pull request limits (per update run and/or open at any time)
- Out-of-range updates (receive only lockfile updates, if desired)
- Security updates (receive only security updates, if desired)

datasette 107914493 pull  
611874514 MDExOlB1bGxSZXF1ZXN0NDEyOTUxMTkx 753 Update pytest-asyncio requirement from ~=0.10.0 to >=0.10,<0.13 dependabot-preview[bot] 27856297 closed 0     0 2020-05-04T13:27:19Z 2020-05-04T17:41:01Z 2020-05-04T17:40:49Z CONTRIBUTOR simonw/datasette/pulls/753

Updates the requirements on pytest-asyncio to permit the latest version.


Commits

  • b8e2a45 0.12.0

  • 06580c6 Update changelog

  • b45de23 Fixed failing test case, 'test_asyncio_marker_without_loop'.

  • 238cced Put event_loop first among the fixtures of asyncio tests, fixes #154.

  • e5e3dc7 Added unittests for issue #154.

  • a7e5795 0.12.0 open for business!

  • 1026c39 0.11.0

  • ab2b140 Test on Python 3.8, drop 3.3 and 3.4

  • 6397a22 plugin: Use pytest 5.4.0 new Function API

  • 21a0f94 Replace yield_fixture() by fixture()

  • Additional commits viewable in compare view




Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.



Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:
- @dependabot rebase will rebase this PR
- @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
- @dependabot merge will merge this PR after your CI passes on it
- @dependabot squash and merge will squash and merge this PR after your CI passes on it
- @dependabot cancel merge will cancel a previously requested merge and block automerging
- @dependabot reopen will reopen this PR if it is closed
- @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
- @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
- @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
- @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
- @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language
- @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

Additionally, you can set the following in your Dependabot dashboard:
- Update frequency (including time of day and day of week)
- Pull request limits (per update run and/or open at any time)
- Out-of-range updates (receive only lockfile updates, if desired)
- Security updates (receive only security updates, if desired)

datasette 107914493 pull  
596245802 MDExOlB1bGxSZXF1ZXN0NDAwNTc4OTc5 720 Update beautifulsoup4 requirement from ~=4.8.1 to >=4.8.1,<4.10.0 dependabot-preview[bot] 27856297 closed 0     0 2020-04-08T01:24:38Z 2020-05-04T17:14:51Z 2020-05-04T17:14:46Z CONTRIBUTOR simonw/datasette/pulls/720

Updates the requirements on beautifulsoup4 to permit the latest version.

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Note: This repo was added to Dependabot recently, so you'll receive a maximum of 5 PRs for your first few update runs. Once an update run creates fewer than 5 PRs we'll remove that limit.

You can always request more updates by clicking Bump now in your Dependabot dashboard.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:
- @dependabot rebase will rebase this PR
- @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
- @dependabot merge will merge this PR after your CI passes on it
- @dependabot squash and merge will squash and merge this PR after your CI passes on it
- @dependabot cancel merge will cancel a previously requested merge and block automerging
- @dependabot reopen will reopen this PR if it is closed
- @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
- @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
- @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
- @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
- @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language
- @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

Additionally, you can set the following in your Dependabot dashboard:
- Update frequency (including time of day and day of week)
- Pull request limits (per update run and/or open at any time)
- Out-of-range updates (receive only lockfile updates, if desired)
- Security updates (receive only security updates, if desired)

datasette 107914493 pull  
594553553 MDExOlB1bGxSZXF1ZXN0Mzk5MTY2NDMz 719 asgi: check raw_path is not None cldellow 193185 closed 0     1 2020-04-05T16:53:58Z 2020-05-04T17:14:26Z 2020-05-04T17:14:26Z CONTRIBUTOR simonw/datasette/pulls/719

The ASGI spec
(https://asgi.readthedocs.io/en/latest/specs/www.html#http) seems to imply that None is a valid value, so we need to check the value itself, not just whether the key is present.

In particular, the mangum adapter passes None for this key's value. This change permits mangum to be used to front datasette in Amazon API Gateway + AWS Lambda deployments.

datasette 107914493 pull  
596245923 MDExOlB1bGxSZXF1ZXN0NDAwNTc5MDc3 721 Update pytest requirement from ~=5.2.2 to >=5.2.2,<5.5.0 dependabot-preview[bot] 27856297 closed 0     0 2020-04-08T01:25:04Z 2020-05-04T17:13:49Z 2020-05-04T17:13:41Z CONTRIBUTOR simonw/datasette/pulls/721

Updates the requirements on pytest to permit the latest version.


Release notes

Sourced from pytest's releases.



5.4.1


pytest 5.4.1 (2020-03-13)


Bug Fixes




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


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




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







Changelog

Sourced from pytest's changelog.




Commits

  • 3d0f3ba Preparing release version 5.4.1

  • b9e2cd0 Merge pull request #6914 from nicoddemus/revert-6330

  • a84fcbf Revert "[parametrize] enforce explicit argnames declaration (#6330)"

  • 59c1bfa Merge pull request #6913 from nicoddemus/backport-6910

  • 3267f64 Merge pull request #6910 from nicoddemus/resultlog-logreport

  • c9fd1bd Preparing release version 5.4.0

  • 93aa988 Merge pull request #6901 from RonnyPfannschmidt/regendoc-fix-simple

  • 7996724 Merge pull request #6902 from RoyalTS/filterwarnings-docfix

  • 90ee8a7 docfix

  • 378a75d run and fix tox -e regen to prepare 5.4

  • Additional commits viewable in compare view




Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Note: This repo was added to Dependabot recently, so you'll receive a maximum of 5 PRs for your first few update runs. Once an update run creates fewer than 5 PRs we'll remove that limit.

You can always request more updates by clicking Bump now in your Dependabot dashboard.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:
- @dependabot rebase will rebase this PR
- @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
- @dependabot merge will merge this PR after your CI passes on it
- @dependabot squash and merge will squash and merge this PR after your CI passes on it
- @dependabot cancel merge will cancel a previously requested merge and block automerging
- @dependabot reopen will reopen this PR if it is closed
- @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
- @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
- @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
- @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
- @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language
- @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

Additionally, you can set the following in your Dependabot dashboard:
- Update frequency (including time of day and day of week)
- Pull request limits (per update run and/or open at any time)
- Out-of-range updates (receive only lockfile updates, if desired)
- Security updates (receive only security updates, if desired)

datasette 107914493 pull  
596246006 MDExOlB1bGxSZXF1ZXN0NDAwNTc5MTM2 722 Update jinja2 requirement from ~=2.10.3 to >=2.10.3,<2.12.0 dependabot-preview[bot] 27856297 closed 0     0 2020-04-08T01:25:24Z 2020-05-04T17:13:26Z 2020-05-04T17:13:16Z CONTRIBUTOR simonw/datasette/pulls/722

Updates the requirements on jinja2 to permit the latest version.


Release notes

Sourced from jinja2's releases.



2.11.1


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






Changelog

Sourced from jinja2's changelog.



Version 2.11.1


Released 2020-01-30



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


Version 2.11.0


Released 2020-01-27



  • Drop support for Python 2.6, 3.3, and 3.4. This will be the last version to support Python 2.7 and 3.5.

  • Added a new ChainableUndefined class to support getitem and getattr on an undefined object. 977

  • Allow {%+ syntax (with NOP behavior) when lstrip_blocks is disabled. 748

  • Added a default parameter for the map filter. 557

  • Exclude environment globals from meta.find_undeclared_variables. 931

  • Float literals can be written with scientific notation, like 2.56e-3. 912, 922

  • Int and float literals can be written with the '_' separator for legibility, like 12_345. 923

  • Fix a bug causing deadlocks in LRUCache.setdefault. 1000

  • The trim filter takes an optional string of characters to trim. 828

  • A new jinja2.ext.debug extension adds a {% debug %} tag to quickly dump the current context and available filters and tests. 174, 798, 983

  • Lexing templates with large amounts of whitespace is much faster. 857, 858

  • Parentheses around comparisons are preserved, so {{ 2 * (3 < 5) }} outputs "2" instead of "False". 755, 938

  • Add new boolean, false, true, integer and float tests. 824

  • The environment's finalize function is only applied to the output of expressions (constant or not), not static template data. 63

  • When providing multiple paths to FileSystemLoader, a template can have the same name as a directory. 821

  • Always return Undefined when omitting the else clause in a {{ 'foo' if bar }} expression, regardless of the environment's undefined class. Omitting the else clause is a valid shortcut and should not raise an error when using StrictUndefined. 710, 1079

  • Fix behavior of loop control variables such as length and revindex0 when looping over a generator. 459, 751, 794, 993

  • Async support is only loaded the first time an environment enables it, in order to avoid a slow initial import. 765

  • In async environments, the |map filter will await the filter call if needed. 913

  • In for loops that access loop attributes, the iterator is not advanced ahead of the current iteration unless length, revindex, nextitem, or last are accessed. This makes it less likely to break groupby results. 555, 1101

  • In async environments, the loop attributes length and revindex work for async iterators. 1101

  • In async environments, values from attribute/property access will be awaited if needed. 1101

  • ~loader.PackageLoader doesn't depend on setuptools or pkg_resources. 970

  • PackageLoader has limited support for 420 namespace packages. 1097

  • Support os.PathLike objects in ~loader.FileSystemLoader and ~loader.ModuleLoader. 870

  • ~nativetypes.NativeTemplate correctly handles quotes between expressions. "'{{ a }}', '{{ b }}'" renders as the tuple ('1', '2') rather than the string '1, 2'. 1020

  • Creating a ~nativetypes.NativeTemplate directly creates a ~nativetypes.NativeEnvironment instead of a default Environment. 1091

  • After calling LRUCache.copy(), the copy's queue methods point to the correct queue. 843

  • Compiling templates always writes UTF-8 instead of defaulting to the system encoding. 889

  • |wordwrap filter treats existing newlines as separate paragraphs to be wrapped individually, rather than creating short intermediate lines. 175

  • Add break_on_hyphens parameter to |wordwrap filter. 550

  • Cython compiled functions decorated as context functions will be passed the context. 1108

  • When chained comparisons of constants are evaluated at compile time, the result follows Python's behavior of returning False if any comparison returns False, rather than only the last one. 1102

  • Tracebacks for exceptions in templates show the correct line numbers and source for Python >= 3.7. 1104

  • Tracebacks for template syntax errors in Python 3 no longer show internal compiler frames. 763

  • Add a DerivedContextReference node that can be used by extensions to get the current context and local variables such as loop. 860

  • Constant folding during compilation is applied to some node types that were previously overlooked. 733

  • TemplateSyntaxError.source is not empty when raised from an included template. 457


</tr></table> ... (truncated)



Commits

  • b85283e release version 2.11.1

  • 3d5bfc6 Merge pull request #1143 from pallets/bugfix/attribute-access

  • d61c1ea add changelog

  • 15d7e61 Added regression test for slicing of attributes

  • 05dee9b Fix attribute access in async code. Fixes #1141

  • bbdafe3 release version 2.11.0

  • 9ff27f6 add python 3.8 classifier, clean up changelog

  • d312609 isolate bytecode cache tests

  • 9849979 import Markup from markupsafe, fix flake8 import warnings

  • c6d864c increment bytecode cache version

  • Additional commits viewable in compare view




Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Note: This repo was added to Dependabot recently, so you'll receive a maximum of 5 PRs for your first few update runs. Once an update run creates fewer than 5 PRs we'll remove that limit.

You can always request more updates by clicking Bump now in your Dependabot dashboard.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:
- @dependabot rebase will rebase this PR
- @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
- @dependabot merge will merge this PR after your CI passes on it
- @dependabot squash and merge will squash and merge this PR after your CI passes on it
- @dependabot cancel merge will cancel a previously requested merge and block automerging
- @dependabot reopen will reopen this PR if it is closed
- @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
- @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
- @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
- @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
- @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language
- @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

Additionally, you can set the following in your Dependabot dashboard:
- Update frequency (including time of day and day of week)
- Pull request limits (per update run and/or open at any time)
- Out-of-range updates (receive only lockfile updates, if desired)
- Security updates (receive only security updates, if desired)

datasette 107914493 pull  
605546606 MDExOlB1bGxSZXF1ZXN0NDA3OTI5MTI4 734 Update janus requirement from ~=0.4.0 to >=0.4,<0.6 dependabot-preview[bot] 27856297 closed 0     0 2020-04-23T13:43:45Z 2020-05-04T16:48:14Z 2020-05-04T16:48:04Z CONTRIBUTOR simonw/datasette/pulls/734

Updates the requirements on janus to permit the latest version.


Changelog

Sourced from janus's changelog.



0.5.0 (2020-04-23)



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


0.4.0 (2018-07-28)



  • Add py.typed macro #89

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

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


0.3.2 (2018-07-06)



  • Fixed python 3.7 support #97


0.3.1 (2018-01-30)



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


0.3.0 (2017-02-21)



  • Expose unfinished_tasks property #34


0.2.4 (2016-12-05)



  • Restore tarball deploying


0.2.3 (2016-07-12)



  • Fix exception type


0.2.2 (2016-07-11)



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


0.2.1 (2016-03-24)



0.2.0 (2015-09-20)


</tr></table> ... (truncated)



Commits

  • 8e89b45 Bump to 0.5.0

  • ec8592b Fix up Python 3.8 loop argument warnings (#246)

  • 2543af6 Bump coverage from 5.0.4 to 5.1

  • 03d1b36 Bump tox from 3.14.5 to 3.14.6

  • 8219c38 Bump coverage from 5.0.3 to 5.0.4

  • 85ec71d Bump pytest from 5.4.0 to 5.4.1

  • 3b974c9 Bump pytest from 5.3.5 to 5.4.0

  • 282dc12 Bump mypy from 0.761 to 0.770

  • 1364fb3 Bump tox from 3.14.4 to 3.14.5

  • dc519bb Bump tox from 3.14.3 to 3.14.4

  • Additional commits viewable in compare view




Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.



Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:
- @dependabot rebase will rebase this PR
- @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
- @dependabot merge will merge this PR after your CI passes on it
- @dependabot squash and merge will squash and merge this PR after your CI passes on it
- @dependabot cancel merge will cancel a previously requested merge and block automerging
- @dependabot reopen will reopen this PR if it is closed
- @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
- @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
- @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
- @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
- @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language
- @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

Additionally, you can set the following in your Dependabot dashboard:
- Update frequency (including time of day and day of week)
- Pull request limits (per update run and/or open at any time)
- Out-of-range updates (receive only lockfile updates, if desired)
- Security updates (receive only security updates, if desired)

datasette 107914493 pull  
603242257 MDExOlB1bGxSZXF1ZXN0NDA2MDY3MDE5 728 Update mergedeep requirement from ~=1.1.1 to >=1.1.1,<1.4.0 dependabot-preview[bot] 27856297 closed 0     0 2020-04-20T13:33:23Z 2020-05-04T16:45:58Z 2020-05-04T16:45:49Z CONTRIBUTOR simonw/datasette/pulls/728

Updates the requirements on mergedeep to permit the latest version.


Commits

  • 3d6e7b4 v1.3.0 - support additive merging of Counter types

  • 56a258a v1.2.1 - tidy docs and variable names

  • 61ab213 v1.2.0 - support both TYPESAFE_REPLACE and TYPESAFE_ADDITIVE merge strategies...

  • b331bb5 cleanup Makefile

  • 6f577bf officially label support for python3.8

  • 84faf37 use pipenv for managing dev dependencies

  • 3a8761a Update README.md

  • See full diff in compare view




Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.



Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:
- @dependabot rebase will rebase this PR
- @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
- @dependabot merge will merge this PR after your CI passes on it
- @dependabot squash and merge will squash and merge this PR after your CI passes on it
- @dependabot cancel merge will cancel a previously requested merge and block automerging
- @dependabot reopen will reopen this PR if it is closed
- @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
- @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
- @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
- @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
- @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language
- @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

Additionally, you can set the following in your Dependabot dashboard:
- Update frequency (including time of day and day of week)
- Pull request limits (per update run and/or open at any time)
- Out-of-range updates (receive only lockfile updates, if desired)
- Security updates (receive only security updates, if desired)

datasette 107914493 pull  
604001627 MDExOlB1bGxSZXF1ZXN0NDA2Njc3MjA1 730 Update pytest-asyncio requirement from ~=0.10.0 to >=0.10,<0.12 dependabot-preview[bot] 27856297 closed 0     1 2020-04-21T13:32:35Z 2020-05-04T13:27:24Z 2020-05-04T13:27:23Z CONTRIBUTOR simonw/datasette/pulls/730

Updates the requirements on pytest-asyncio to permit the latest version.


Commits

  • 1026c39 0.11.0

  • ab2b140 Test on Python 3.8, drop 3.3 and 3.4

  • 6397a22 plugin: Use pytest 5.4.0 new Function API

  • 21a0f94 Replace yield_fixture() by fixture()

  • 964b295 Added min hypothesis version so that bugfix for https://github.com/Hypothesis...

  • 4a11a20 Add max supported pytest version to < 5.4.0 to prevent fails until #141 is fi...

  • b305594 Change event_loop to module scope in hypothesis tests, fixing #145.

  • d5a0f47 Enable test_subprocess to be run on win, by changing to ProactorEventLoop in ...

  • d07cd2d Fix required pytest version

  • 86cd9a6 Handle BaseExceptions from loop.run_until_complete (#126)

  • Additional commits viewable in compare view




Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.



Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:
- @dependabot rebase will rebase this PR
- @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
- @dependabot merge will merge this PR after your CI passes on it
- @dependabot squash and merge will squash and merge this PR after your CI passes on it
- @dependabot cancel merge will cancel a previously requested merge and block automerging
- @dependabot reopen will reopen this PR if it is closed
- @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
- @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
- @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
- @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
- @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language
- @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

Additionally, you can set the following in your Dependabot dashboard:
- Update frequency (including time of day and day of week)
- Pull request limits (per update run and/or open at any time)
- Out-of-range updates (receive only lockfile updates, if desired)
- Security updates (receive only security updates, if desired)

datasette 107914493 pull  
516763727 MDExOlB1bGxSZXF1ZXN0MzM1OTgwMjQ2 8 stargazers command, refs #4 simonw 9599 closed 0     5 2019-11-03T00:37:36Z 2020-05-02T20:00:27Z 2020-05-02T20:00:26Z MEMBER dogsheep/github-to-sqlite/pulls/8

Needs tests. Refs #4.

github-to-sqlite 207052882 pull  
608752766 MDExOlB1bGxSZXF1ZXN0NDEwNDY5Mjcy 746 shutil.Error, not OSError simonw 9599 closed 0     1 2020-04-29T03:30:51Z 2020-04-29T07:07:24Z 2020-04-29T07:07:23Z OWNER simonw/datasette/pulls/746

Refs #744

datasette 107914493 pull  
607107849 MDExOlB1bGxSZXF1ZXN0NDA5MTUzODcw 739 Configuration directory mode simonw 9599 closed 0     3 2020-04-26T20:37:46Z 2020-04-27T16:30:25Z 2020-04-27T16:30:25Z OWNER simonw/datasette/pulls/739

Refs #731

TODO:

  • Decide how to combine explicit command-line options with items detected from the directory structure
  • Add unit tests
  • Implement inspect-data.json mechanism for populating immutables
  • Add documentation
datasette 107914493 pull  
607067303 MDExOlB1bGxSZXF1ZXN0NDA5MTIzODk3 737 Custom pages mechanism, refs #648 simonw 9599 closed 0     4 2020-04-26T17:31:41Z 2020-04-26T18:46:43Z 2020-04-26T18:46:43Z OWNER simonw/datasette/pulls/737

Refs #648. TODO:
- [x] Pass a view_name to render_template()
- [x] Mechanism for custom status code / headers / redirect
- [x] Documentation

datasette 107914493 pull  
521323012 MDExOlB1bGxSZXF1ZXN0MzM5NzIyNzkw 627 Support Python 3.8, stop supporting Python 3.5 simonw 9599 closed 0     2 2019-11-12T04:36:33Z 2020-04-05T10:23:58Z 2019-11-12T05:09:12Z OWNER simonw/datasette/pulls/627

Refs #622

datasette 107914493 pull  
592844348 MDExOlB1bGxSZXF1ZXN0Mzk3NzQ5NjUz 714 --metadata accepts YAML as well as JSON simonw 9599 closed 0     1 2020-04-02T18:36:02Z 2020-04-02T19:30:54Z 2020-04-02T19:30:54Z OWNER simonw/datasette/pulls/714

Refs #713. Still needs tests and documentation.

datasette 107914493 pull  
589801352 MDExOlB1bGxSZXF1ZXN0Mzk1MjU4Njg3 96 Add type conversion for Panda's Timestamp b0b5h4rp13 32605365 closed 0     2 2020-03-29T14:13:09Z 2020-03-31T04:40:49Z 2020-03-31T04:40:48Z CONTRIBUTOR simonw/sqlite-utils/pulls/96

Add type conversion for Panda's Timestamp, if Panda library is present in system
(thanks for this project, I was about to do the same thing from scratch)

sqlite-utils 140912432 pull  
543355051 MDExOlB1bGxSZXF1ZXN0MzU3NjQwMTg2 6 don't break if source is missing mfa 78035 closed 0     1 2019-12-29T10:46:47Z 2020-03-28T02:28:11Z 2020-03-28T02:28:11Z CONTRIBUTOR dogsheep/swarm-to-sqlite/pulls/6

broke for me. very old checkins in 2010 had no source set.

swarm-to-sqlite 205429375 pull  
565064079 MDExOlB1bGxSZXF1ZXN0Mzc1MTgwODMy 672 --dirs option for scanning directories for SQLite databases simonw 9599 open 0     15 2020-02-14T02:25:52Z 2020-03-27T01:03:53Z   OWNER simonw/datasette/pulls/672

Refs #417.

datasette 107914493 pull  
587302139 MDExOlB1bGxSZXF1ZXN0MzkzMjc0NDMz 708 base_url configuration setting, refs #394 simonw 9599 closed 0   Datasette 0.39 5234079 2 2020-03-24T21:52:00Z 2020-03-25T00:18:44Z 2020-03-25T00:18:44Z OWNER simonw/datasette/pulls/708

Pull request implementing #394

datasette 107914493 pull  
539985017 MDExOlB1bGxSZXF1ZXN0MzU0ODY5Mzkx 652 Quick (and uninformed and perhaps misguided) attempt to add a <base> url for hosting datasette at a particular host/URI terrycojones 132978 closed 0     1 2019-12-18T23:37:16Z 2020-03-24T22:14:50Z 2020-03-24T22:14:50Z NONE simonw/datasette/pulls/652

As usual, I don't really know what I'm doing... so this is just a suggested approach. I've not written tests, I've not run the tests, I don't know if I've missed some absolute URLs that would need to have the leading slash dropped.

BUT, I tested it with --config base_url:http://127.0.0.1:8001/ on the command line and from what little I know about datasette it's at least working in some obvious cases.

My changes are based on what I saw in https://github.com/simonw/datasette/commit/8da2db4b71096b19e7a9ef1929369b8483d448bf (thanks!)

I'm happy to be more thorough on this if you think it's worth pursuing.

Fixes #394 (he said, optimistically).

datasette 107914493 pull  
561469252 MDExOlB1bGxSZXF1ZXN0MzcyMjczNjA4 33 Upgrade to sqlite-utils 2.2.1 simonw 9599 closed 0     1 2020-02-07T07:32:12Z 2020-03-20T19:21:42Z 2020-03-20T19:21:41Z MEMBER dogsheep/twitter-to-sqlite/pulls/33 twitter-to-sqlite 206156866 pull  
562085508 MDExOlB1bGxSZXF1ZXN0MzcyNzYzOTA2 666 Use inspect-file, if possible, for total row count kevindkeogh 13896256 closed 0     3 2020-02-08T22:10:35Z 2020-03-09T02:47:15Z 2020-02-25T20:19:29Z CONTRIBUTOR simonw/datasette/pulls/666

For large tables, counting the number of rows in the table can take a
signficant amount of time. Instead, where an inspect-file is provided
for an immutable database, look up the row-count for a plain count(*).

datasette 107914493 pull  
573088799 MDExOlB1bGxSZXF1ZXN0MzgxNjY2Nzc3 688 Don't count rows on homepage for DBs > 100MB simonw 9599 closed 0     0 2020-02-29T01:01:06Z 2020-02-29T01:08:30Z 2020-02-29T01:08:29Z OWNER simonw/datasette/pulls/688

Closes #649.

datasette 107914493 pull  
570327466 MDExOlB1bGxSZXF1ZXN0Mzc5Mzc4Nzgw 686 ?_searchmode=raw option simonw 9599 closed 0     0 2020-02-25T05:45:50Z 2020-02-25T05:56:09Z 2020-02-25T05:56:04Z OWNER simonw/datasette/pulls/686

Closes #676

datasette 107914493 pull  
563348959 MDExOlB1bGxSZXF1ZXN0MzczNzc1Nzg4 669 fix db-to-sqlite command in ecosystem doc page adipasquale 883348 closed 0     1 2020-02-11T17:05:41Z 2020-02-22T02:32:18Z 2020-02-22T02:32:17Z CONTRIBUTOR simonw/datasette/pulls/669

the --connection parameter has become positional

datasette 107914493 pull  
541331755 MDExOlB1bGxSZXF1ZXN0MzU2MDA0MjQy 653 allow leading comments in SQL input field jaywgraves 418191 closed 0     8 2019-12-21T14:19:52Z 2020-02-05T02:35:41Z 2020-02-05T02:13:25Z CONTRIBUTOR simonw/datasette/pulls/653

this changes the SQL validation to allow for lines that are commented out

my main use case for this is that I like to write a succession of queries when trying to solve a problem.
In most native SQL clients there is a key binding that will run just the current highlighted query or the program is smart enough to run just the query that the cursor is in if it's properly delimited with a ';'.
Typically my workflow will start with a single simple query and I'll copy/paste it to a new query below when I want to make big changes while debugging. This makes it easy to go back to a working version above when the query doesn't work.
Since datasette sends the whole query to the DB I have to comment out the older queries by prefixing each line with --. This gets caught by the validators when I use my typical strategy of copy/pasting each successive query below the last one.
so this is just a simple fix to allow for a query to be sent to the DB with leading comments.

datasette 107914493 pull  
559522877 MDExOlB1bGxSZXF1ZXN0MzcwNjc1MDA3 664 Datasette.render_template() method simonw 9599 closed 0     5 2020-02-04T06:53:59Z 2020-02-04T20:26:18Z 2020-02-04T20:26:18Z OWNER simonw/datasette/pulls/664

Refs #577

datasette 107914493 pull  
558715564 MDExOlB1bGxSZXF1ZXN0MzcwMDI0Njk3 4 Add beeminder-to-sqlite bcongdon 706257 open 0     0 2020-02-02T15:51:36Z 2020-02-02T15:51:36Z   FIRST_TIME_CONTRIBUTOR dogsheep/dogsheep.github.io/pulls/4 dogsheep.github.io 214746582 pull  
557892819 MDExOlB1bGxSZXF1ZXN0MzY5Mzk0MDQz 80 on_create mechanism for after table creation simonw 9599 closed 0     5 2020-01-31T03:38:48Z 2020-01-31T05:08:04Z 2020-01-31T05:08:04Z OWNER simonw/sqlite-utils/pulls/80

I need this for geojson-to-sqlite, in particular https://github.com/simonw/geojson-to-sqlite/issues/6

sqlite-utils 140912432 pull  
557830332 MDExOlB1bGxSZXF1ZXN0MzY5MzQ4MDg0 78 New conversions= feature, refs #77 simonw 9599 closed 0     0 2020-01-31T00:02:33Z 2020-01-31T00:24:31Z 2020-01-31T00:24:31Z OWNER simonw/sqlite-utils/pulls/78 sqlite-utils 140912432 pull  
546078359 MDExOlB1bGxSZXF1ZXN0MzU5ODIyNzcz 75 Explicitly include tests and docs in sdist jayvdb 15092 closed 0     1 2020-01-07T04:53:20Z 2020-01-31T00:21:27Z 2020-01-31T00:21:27Z CONTRIBUTOR simonw/sqlite-utils/pulls/75

Also exclude 'tests' from runtime installation.

sqlite-utils 140912432 pull  
557077945 MDExOlB1bGxSZXF1ZXN0MzY4NzM0NTAw 663 -p argument for datasette package, plus tests - refs #661 simonw 9599 closed 0     1 2020-01-29T19:47:50Z 2020-01-29T22:46:43Z 2020-01-29T22:46:43Z OWNER simonw/datasette/pulls/663 datasette 107914493 pull  
552773632 MDExOlB1bGxSZXF1ZXN0MzY1MjE4Mzkx 660 gcloud run is now GA, s/beta// glasnt 813732 closed 0     1 2020-01-21T10:08:38Z 2020-01-22T03:41:09Z 2020-01-21T23:28:12Z CONTRIBUTOR simonw/datasette/pulls/660 datasette 107914493 pull  
529376481 MDExOlB1bGxSZXF1ZXN0MzQ2MjY0OTI2 67 Run tests against 3.5 too simonw 9599 closed 0     2 2019-11-27T14:20:35Z 2019-12-31T01:29:44Z 2019-12-31T01:29:43Z OWNER simonw/sqlite-utils/pulls/67 sqlite-utils 140912432 pull  
543738004 MDExOlB1bGxSZXF1ZXN0MzU3OTkyNTg4 72 Fixed implementation of upsert simonw 9599 closed 0     0 2019-12-30T05:08:05Z 2019-12-30T05:29:24Z 2019-12-30T05:29:24Z OWNER simonw/sqlite-utils/pulls/72

Refs #66

sqlite-utils 140912432 pull  
543717994 MDExOlB1bGxSZXF1ZXN0MzU3OTc0MzI2 3 Add todoist-to-sqlite bcongdon 706257 open 0     0 2019-12-30T04:02:59Z 2019-12-30T04:02:59Z   FIRST_TIME_CONTRIBUTOR dogsheep/dogsheep.github.io/pulls/3

Really enjoying getting into the dogsheep/datasette ecosystem. I made a downloader for Todoist, and I think/hope others might find this useful

dogsheep.github.io 214746582 pull  
386459810 MDExOlB1bGxSZXF1ZXN0MjM1MTk0Mjg2 390 tiny typo in customization docs jaywgraves 418191 closed 0     1 2018-12-01T13:44:42Z 2019-12-19T02:30:35Z 2018-12-16T21:32:56Z CONTRIBUTOR simonw/datasette/pulls/390

was looking to add some custom templates to my use of datasette and saw this small typo.

datasette 107914493 pull  
361764460 MDExOlB1bGxSZXF1ZXN0MjE2NjUxMzE3 365 fix small doc typo jaywgraves 418191 closed 0     2 2018-09-19T14:02:02Z 2019-12-19T02:30:33Z 2018-09-19T17:15:43Z CONTRIBUTOR simonw/datasette/pulls/365 datasette 107914493 pull  
530513784 MDExOlB1bGxSZXF1ZXN0MzQ3MTc5MDgx 644 Validate metadata json on startup chris48s 6025893 open 0     1 2019-11-30T00:32:15Z 2019-12-14T21:33:31Z   CONTRIBUTOR simonw/datasette/pulls/644

This PR adds a sanity check which builds up a marshmallow schema on-the-fly based on the structure of the database(s) on startup and then validates the metadata json against it.

In case of invalid data, this will raise with a descriptive error e.g:

marshmallow.exceptions.ValidationError: {'databases': {'fixtures': {'tables': {'not_a_table': ['Unknown field.']}}}}

Closes #260


This was intended to be fairly self-contained, but then while I was working on it, I hit some problems getting the tests to pass in the context of the test suite as a whole. My tests passed in isolation, but then failed while doing a full test suite run. That's when the worms started coming out of the can :bug: After some sleuthing, it turned out this was essentially the result of several issues intersecting:

  • There are certain events in the application lifecycle where the metadata schema can be modified after it is loaded e.g: https://github.com/simonw/datasette/blob/a562f2965552fb2dbbbd74df245c9965ee23d886/datasette/app.py#L299-L320 This means that sometimes what goes in isn't always exactly what comes out when you call /-/metadata.
  • Because the test fixtures use session scope for performance reasons if one unit test performs an action which mutates the metadata, that can impact on other unit tests which run after it using the same fixture.
  • Because the self._metadata property was being set with a simple assignment self._metadata = metadata, that created an object reference to the test fixture data, so operating on self._metadata was actually modifying the test fixture METADATA meaning that depending on when it was loaded in the test suite lifecycle, METADATA had different content, which was somewhat unexpected.

As such, I've added some band-aids in 3552024 and 6859fd8:
Switching the metadata object to a deepcopy of the input prevents us directly mutating the input fixture.
I've switched some of the tests to use a fixture with function scope instead of session scope so we're working on a clean copy that hasn't been mutated by other tests where necessary but keeping session scope in most cases for performance.
* I haven't really addressed the fact that sometimes the metadata object gets mutated in place, so the object that is served from /-/metadata isn't necessarily always exactly the same as the file you fed into it on init. I'm not sure how much of a problem that is. The way the tests were written makes me think it was unexpected, but getting into it feels like too much scope creep for this PR so its probably best addressed as another issue.

datasette 107914493 pull  
464987783 MDExOlB1bGxSZXF1ZXN0Mjk1MTI3MjEz 546 Facet by delimiter simonw 9599 open 0     2 2019-07-07T20:06:05Z 2019-11-18T23:46:01Z   OWNER simonw/datasette/pulls/546

Refs #510

datasette 107914493 pull  
501773982 MDExOlB1bGxSZXF1ZXN0MzIzOTgzNzMy 579 New connection pooling simonw 9599 open 0     1 2019-10-02T23:22:19Z 2019-11-15T22:57:21Z   OWNER simonw/datasette/pulls/579

See #569

datasette 107914493 pull  
522566332 MDExOlB1bGxSZXF1ZXN0MzQwNzQzMjIw 635 Use Jinja async mode simonw 9599 closed 0     0 2019-11-14T01:20:57Z 2019-11-14T23:14:23Z 2019-11-14T23:14:23Z OWNER simonw/datasette/pulls/635

Refs #628. Still needs documentation.

datasette 107914493 pull  
382471625 MDExOlB1bGxSZXF1ZXN0MjMyMTcyMTA2 389 Bump dependency versions simonw 9599 closed 0     2 2018-11-20T02:23:12Z 2019-11-13T19:13:41Z 2019-11-13T19:13:41Z OWNER simonw/datasette/pulls/389 datasette 107914493 pull  
499954048 MDExOlB1bGxSZXF1ZXN0MzIyNTI5Mzgx 578 Added support for multi arch builds heussd 887095 closed 0     3 2019-09-29T18:43:03Z 2019-11-13T19:13:15Z 2019-11-13T19:13:15Z NONE simonw/datasette/pulls/578

Minor changes in Dockerfile and new Makefile to support Docker multi architecture builds. makewill build one image per architecture and push them as one Docker manifest to Docker Hub. Feel free to change IMAGE_NAME to datasetteproject/datasette to update your official Docker Hub image(s).

datasette 107914493 pull  
521923131 MDExOlB1bGxSZXF1ZXN0MzQwMjExMTQ5 631 bugfix issue 572 stzhng 3683993 closed 0     1 2019-11-13T02:46:50Z 2019-11-13T04:28:43Z 2019-11-13T04:28:42Z CONTRIBUTOR simonw/datasette/pulls/631

closes bugfix issue #572

datasette 107914493 pull  
521346800 MDExOlB1bGxSZXF1ZXN0MzM5NzQyNDMy 630 Use python:3.8 base Docker image simonw 9599 closed 0     0 2019-11-12T06:02:37Z 2019-11-12T06:03:10Z 2019-11-12T06:03:10Z OWNER simonw/datasette/pulls/630

Closes #629

datasette 107914493 pull  
403499298 MDExOlB1bGxSZXF1ZXN0MjQ3OTIzMzQ3 404 Experiment: run Jinja in async mode simonw 9599 closed 0     3 2019-01-27T00:28:44Z 2019-11-12T05:02:18Z 2019-11-12T05:02:13Z OWNER simonw/datasette/pulls/404

See http://jinja.pocoo.org/docs/2.10/api/#async-support

Tests all pass. Have not checked performance difference yet.

Creating pull request to run tests in Travis. This is not ready to merge - I'm not yet sure if this is a good idea.

datasette 107914493 pull  
506300941 MDExOlB1bGxSZXF1ZXN0MzI3NTQxMDQ2 595 bump uvicorn to 0.9.0 to be Python-3.8 friendly stonebig 4312421 closed 0     9 2019-10-13T10:00:04Z 2019-11-12T04:46:48Z 2019-11-12T04:46:48Z NONE simonw/datasette/pulls/595

as uvicorn-0.9 is needed to get websockets-8.0.2, which is needed to have Python-3.8 compatibility

datasette 107914493 pull  
520728483 MDExOlB1bGxSZXF1ZXN0MzM5MjQ0ODg4 624 Bump pint to 0.9 simonw 9599 closed 0     0 2019-11-11T04:07:07Z 2019-11-11T04:19:02Z 2019-11-11T04:19:02Z OWNER simonw/datasette/pulls/624 datasette 107914493 pull  
520718056 MDExOlB1bGxSZXF1ZXN0MzM5MjM2NjQ3 623 Test against Python 3.8 in Travis simonw 9599 closed 0     2 2019-11-11T03:24:54Z 2019-11-11T03:45:35Z 2019-11-11T03:45:35Z OWNER simonw/datasette/pulls/623

Needed for #622

datasette 107914493 pull  
452901999 MDExOlB1bGxSZXF1ZXN0Mjg1Njk4MzEw 501 Test against Python 3.8-dev using Travis simonw 9599 closed 0     3 2019-06-06T08:37:53Z 2019-11-11T03:23:29Z 2019-11-11T03:23:29Z OWNER simonw/datasette/pulls/501 datasette 107914493 pull  
289425975 MDExOlB1bGxSZXF1ZXN0MTYzNTYxODMw 181 add "format sql" button to query page, uses sql-formatter bsmithgall 1957344 closed 0     7 2018-01-17T21:50:04Z 2019-11-11T03:08:25Z 2019-11-11T03:08:25Z NONE simonw/datasette/pulls/181

Cool project!

This fixes #136 using the suggested sql formatter library. I included the minified version in the bundle and added the relevant scripts to the codemirror includes instead of adding new files, though I could also add new files. I wanted to keep it all together, since the result of the format needs access to the editor in order to properly update the codemirror instance.

datasette 107914493 pull  
519979091 MDExOlB1bGxSZXF1ZXN0MzM4NjQ3Mzc4 1 Add parkrun-to-sqlite mrw34 1101318 open 0     0 2019-11-08T12:05:32Z 2019-11-09T20:23:24Z   FIRST_TIME_CONTRIBUTOR dogsheep/dogsheep.github.io/pulls/1 dogsheep.github.io 214746582 pull  
519039316 MDExOlB1bGxSZXF1ZXN0MzM3ODUzMzk0 65 Release 1.12.1 simonw 9599 closed 0     0 2019-11-07T04:51:29Z 2019-11-07T04:58:48Z 2019-11-07T04:58:47Z OWNER simonw/sqlite-utils/pulls/65 sqlite-utils 140912432 pull  
519032008 MDExOlB1bGxSZXF1ZXN0MzM3ODQ3NTcz 64 test_insert_upsert_all_empty_list simonw 9599 closed 0     0 2019-11-07T04:24:45Z 2019-11-07T04:32:38Z 2019-11-07T04:32:38Z OWNER simonw/sqlite-utils/pulls/64 sqlite-utils 140912432 pull  
505818256 MDExOlB1bGxSZXF1ZXN0MzI3MTcyNTQ1 590 Handle spaces in DB names rixx 2657547 closed 0     3 2019-10-11T12:18:22Z 2019-11-04T23:16:31Z 2019-11-04T23:16:30Z CONTRIBUTOR simonw/datasette/pulls/590

Closes #503

datasette 107914493 pull  
509535510 MDExOlB1bGxSZXF1ZXN0MzMwMDc2MjYz 602 Offer to format readonly SQL rixx 2657547 closed 0     3 2019-10-20T02:29:32Z 2019-11-04T07:29:33Z 2019-11-04T02:39:56Z CONTRIBUTOR simonw/datasette/pulls/602

Following discussion in #601, this PR adds a "Format SQL" button to
read-only SQL (if the SQL actually differs from the formatting result).

It also removes a console error on readonly SQL queries.

datasette 107914493 pull  
509612217 MDExOlB1bGxSZXF1ZXN0MzMwMTI5MzU4 603 always pop as_format off args dict chris48s 6025893 closed 0     2 2019-10-20T15:44:22Z 2019-10-30T19:12:22Z 2019-10-21T02:03:09Z CONTRIBUTOR simonw/datasette/pulls/603

closes #563

datasette 107914493 pull  
514899195 MDExOlB1bGxSZXF1ZXN0MzM0NDQ4MjU4 609 Update to latest black simonw 9599 closed 0     0 2019-10-30T18:42:35Z 2019-10-30T18:49:01Z 2019-10-30T18:49:01Z OWNER simonw/datasette/pulls/609 datasette 107914493 pull  
509340359 MDExOlB1bGxSZXF1ZXN0MzI5OTQ3MTgw 601 Don't auto-format SQL on page load simonw 9599 closed 0     5 2019-10-18T22:37:39Z 2019-10-20T02:29:49Z 2019-10-18T23:56:45Z OWNER simonw/datasette/pulls/601

Refs #600

datasette 107914493 pull  
509267608 MDExOlB1bGxSZXF1ZXN0MzI5ODkwMzIw 599 Fix for /foo v.s. /foo-bar issue in #597 simonw 9599 closed 0     0 2019-10-18T19:22:55Z 2019-10-18T22:51:07Z 2019-10-18T22:51:07Z OWNER simonw/datasette/pulls/599

Refs #597

datasette 107914493 pull  
508553387 MDExOlB1bGxSZXF1ZXN0MzI5MzI0MzY4 24 Tweet source extraction and new migration system simonw 9599 closed 0     0 2019-10-17T15:24:56Z 2019-10-17T15:49:29Z 2019-10-17T15:49:24Z MEMBER dogsheep/twitter-to-sqlite/pulls/24

Closes #12 and #23

twitter-to-sqlite 206156866 pull  
505814865 MDExOlB1bGxSZXF1ZXN0MzI3MTY5NzQ4 589 Display metadata footer on custom SQL queries rixx 2657547 closed 0     0 2019-10-11T12:10:28Z 2019-10-14T08:58:23Z 2019-10-14T03:53:22Z CONTRIBUTOR simonw/datasette/pulls/589

Closes #408

datasette 107914493 pull  
505837199 MDExOlB1bGxSZXF1ZXN0MzI3MTg4MDg3 591 Sort databases on homepage by argument order rixx 2657547 closed 0     1 2019-10-11T12:57:38Z 2019-10-14T08:57:50Z 2019-10-14T03:52:34Z CONTRIBUTOR simonw/datasette/pulls/591

Closes #585

datasette 107914493 pull  
505950145 MDExOlB1bGxSZXF1ZXN0MzI3Mjc5ODE4 592 Offer SQL formatting rixx 2657547 closed 0     1 2019-10-11T16:35:49Z 2019-10-14T08:57:12Z 2019-10-14T03:46:13Z CONTRIBUTOR simonw/datasette/pulls/592

SQL code will be formatted on page load, and can additionally be formatted by clicking the "Format SQL" button. Closes #136

datasette 107914493 pull  
505666744 MDExOlB1bGxSZXF1ZXN0MzI3MDUxNjcz 15 twitter-to-sqlite import command, refs #4 simonw 9599 closed 0     0 2019-10-11T06:37:14Z 2019-10-11T06:45:01Z 2019-10-11T06:45:01Z MEMBER dogsheep/twitter-to-sqlite/pulls/15 twitter-to-sqlite 206156866 pull  
487987958 MDExOlB1bGxSZXF1ZXN0MzEzMTA1NjM0 57 Add triggers while enabling FTS amjith 49260 closed 0     4 2019-09-02T04:23:40Z 2019-09-03T01:03:59Z 2019-09-02T23:42:29Z CONTRIBUTOR simonw/sqlite-utils/pulls/57

This adds the option for a user to set up triggers in the database to keep their FTS table in sync with the parent table.

Ref: https://sqlite.org/fts5.html#external_content_and_contentless_tables

I would prefer to make the creation of triggers the default behavior, but that will break existing usage where people have been calling populate_fts after inserting new rows.

I am happy to make changes to the PR as you see fit.

sqlite-utils 140912432 pull  
488343304 MDExOlB1bGxSZXF1ZXN0MzEzMzg0OTI2 571 detect_fts now works with alternative table escaping simonw 9599 closed 0     0 2019-09-03T00:23:39Z 2019-09-03T00:32:28Z 2019-09-03T00:32:28Z OWNER simonw/datasette/pulls/571

Fixes #570

datasette 107914493 pull  
488341021 MDExOlB1bGxSZXF1ZXN0MzEzMzgzMzE3 60 db.triggers and table.triggers introspection simonw 9599 closed 0     0 2019-09-03T00:04:32Z 2019-09-03T00:09:42Z 2019-09-03T00:09:42Z OWNER simonw/sqlite-utils/pulls/60

Closes #59

sqlite-utils 140912432 pull  
487847945 MDExOlB1bGxSZXF1ZXN0MzEzMDA3NDgz 56 Escape the table name in populate_fts and search. amjith 49260 closed 0     2 2019-09-01T06:29:05Z 2019-09-02T17:23:21Z 2019-09-02T17:23:21Z CONTRIBUTOR simonw/sqlite-utils/pulls/56

The table names weren't escaped using double quotes in the populate_fts method.

Reproducible case:

>>> import sqlite_utils
>>> db = sqlite_utils.Database("abc.db")
>>> db["http://example.com"].insert_all([
...     {"id": 1, "age": 4, "name": "Cleo"},
...     {"id": 2, "age": 2, "name": "Pancakes"}
... ], pk="id")
<Table http://example.com (id, age, name)>
>>> db["http://example.com"].enable_fts(["name"])
Traceback (most recent call last):
  File "<input>", line 1, in <module>
    db["http://example.com"].enable_fts(["name"])
  File "/home/amjith/.virtualenvs/itsysearch/lib/python3.7/site-packages/sqlite_utils/db.py", l
ine 705, in enable_fts
    self.populate_fts(columns)
  File "/home/amjith/.virtualenvs/itsysearch/lib/python3.7/site-packages/sqlite_utils/db.py", l
ine 715, in populate_fts
    self.db.conn.executescript(sql)
sqlite3.OperationalError: unrecognized token: ":"
>>> 
sqlite-utils 140912432 pull  
481887482 MDExOlB1bGxSZXF1ZXN0MzA4MjkyNDQ3 55 Ability to introspect and run queries against views simonw 9599 closed 0     1 2019-08-17T13:40:56Z 2019-08-23T12:19:42Z 2019-08-23T12:19:42Z OWNER simonw/sqlite-utils/pulls/55

See #54

sqlite-utils 140912432 pull  
476436920 MDExOlB1bGxSZXF1ZXN0MzAzOTkwNjgz 53 Work in progress: m2m() method for creating many-to-many records simonw 9599 closed 0     0 2019-08-03T10:03:56Z 2019-08-04T03:38:10Z 2019-08-04T03:37:33Z OWNER simonw/sqlite-utils/pulls/53
  • table.insert({"name": "Barry"}).m2m("tags", lookup={"tag": "Coworker"})
  • Explicit table name .m2m("humans", ..., m2m_table="relationships")
  • Automatically use an existing m2m table if a single obvious candidate exists (a table with two foreign keys in the correct directions)
  • Require the explicit m2m_table= argument if multiple candidates for the m2m table exist
  • Documentation

Refs #23

sqlite-utils 140912432 pull  
467862459 MDExOlB1bGxSZXF1ZXN0Mjk3NDEyNDY0 38 table.update() method simonw 9599 closed 0     2 2019-07-14T17:03:49Z 2019-07-28T15:43:51Z 2019-07-28T15:43:51Z OWNER simonw/sqlite-utils/pulls/38

Refs #35

Still to do:

  • Unit tests
  • Switch to using .get()
  • Better exceptions, plus unit tests for what happens if pk does not exist
  • Documentation
  • Ensure compound primary keys work properly
  • alter=True support
sqlite-utils 140912432 pull  
473733752 MDExOlB1bGxSZXF1ZXN0MzAxODI0MDk3 51 Fix for too many SQL variables, closes #50 simonw 9599 closed 0     1 2019-07-28T11:30:30Z 2019-07-28T11:59:32Z 2019-07-28T11:59:32Z OWNER simonw/sqlite-utils/pulls/51 sqlite-utils 140912432 pull  
469828961 MDExOlB1bGxSZXF1ZXN0Mjk4OTYyNTUx 561 Fix typos minho42 15278512 closed 0     0 2019-07-18T15:13:35Z 2019-07-26T10:25:45Z 2019-07-26T10:25:45Z CONTRIBUTOR simonw/datasette/pulls/561 datasette 107914493 pull  
473288428 MDExOlB1bGxSZXF1ZXN0MzAxNDgzNjEz 564 First proof-of-concept of Datasette Library simonw 9599 open 0     0 2019-07-26T10:22:26Z 2019-07-26T10:22:26Z   OWNER simonw/datasette/pulls/564

Refs #417. Run it like this:

 datasette -d ~/Library

Uses a new plugin hook - available_databases()

datasette 107914493 pull  
472104705 MDExOlB1bGxSZXF1ZXN0MzAwNTgwMjIx 8 Use less RAM simonw 9599 closed 0     0 2019-07-24T06:35:01Z 2019-07-24T06:35:52Z 2019-07-24T06:35:52Z MEMBER dogsheep/healthkit-to-sqlite/pulls/8

Closes #7

healthkit-to-sqlite 197882382 pull  
471797101 MDExOlB1bGxSZXF1ZXN0MzAwMzc3NTk5 47 extracts= table parameter simonw 9599 closed 0     0 2019-07-23T16:30:29Z 2019-07-23T17:00:43Z 2019-07-23T17:00:43Z OWNER simonw/sqlite-utils/pulls/47

Still needs docs. Refs #46

sqlite-utils 140912432 pull  

Next page

Advanced export

JSON shape: default, array, newline-delimited, object

CSV options:

CREATE TABLE [issues] (
   [id] INTEGER PRIMARY KEY,
   [node_id] TEXT,
   [number] INTEGER,
   [title] TEXT,
   [user] INTEGER REFERENCES [users]([id]),
   [state] TEXT,
   [locked] INTEGER,
   [assignee] INTEGER REFERENCES [users]([id]),
   [milestone] INTEGER REFERENCES [milestones]([id]),
   [comments] INTEGER,
   [created_at] TEXT,
   [updated_at] TEXT,
   [closed_at] TEXT,
   [author_association] TEXT,
   [pull_request] TEXT,
   [body] TEXT,
   [repo] INTEGER REFERENCES [repos]([id]),
   [type] TEXT
, [active_lock_reason] TEXT);
CREATE INDEX [idx_issues_repo]
                ON [issues] ([repo]);
CREATE INDEX [idx_issues_milestone]
                ON [issues] ([milestone]);
CREATE INDEX [idx_issues_assignee]
                ON [issues] ([assignee]);
CREATE INDEX [idx_issues_user]
                ON [issues] ([user]);
Powered by Datasette · Query took 110.745ms · About: github-to-sqlite