pull_requests
608 rows sorted by node_id descending
This data as json, CSV (advanced)
Suggested facets: state, milestone, draft, author_association, repo, created_at (date), closed_at (date), merged_at (date)
updated_at (date) >30 ✖
- 2020-05-04 9
- 2021-10-13 9
- 2019-05-03 8
- 2022-03-06 7
- 2023-03-29 7
- 2021-05-22 6
- 2018-04-14 5
- 2021-03-29 5
- 2021-05-19 5
- 2022-07-18 5
- 2022-09-06 5
- 2022-12-28 5
- 2023-05-08 5
- 2019-11-11 4
- 2020-10-12 4
- 2021-11-30 4
- 2022-08-27 4
- 2022-09-05 4
- 2023-08-07 4
- 2023-08-29 4
- 2023-09-06 4
- 2023-11-04 4
- 2017-11-17 3
- 2019-05-04 3
- 2019-07-03 3
- 2019-09-03 3
- 2019-10-14 3
- 2019-11-12 3
- 2019-11-13 3
- 2020-05-27 3
- …
id | node_id ▲ | number | state | locked | title | user | body | created_at | updated_at | closed_at | merged_at | merge_commit_sha | assignee | milestone | draft | head | base | author_association | repo | url | merged_by | auto_merge |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1501923826 | PR_kwDOJHON9s5ZhYny | 14 | open | 0 | fix: fix the problem of Chinese character garbling | barretlee 2698003 | 1. The code uses two different ways of writing encoding formats, `mac_roman` and `macroman`. It is uncertain whether there are any typo errors. 2. When there are Chinese characters in the content, exporting it results in garbled code. Changing it to `utf8` can fix the issue. | 2023-09-04T23:48:28Z | 2023-09-04T23:48:28Z | 66b5b73948b1bedc275432956dda43cfe151c78c | 0 | 5febe19b8922aa818e7dc265bdee30bcc5004eb4 | e55a802d37a896475b6cf475c1ba947af63cca73 | FIRST_TIME_CONTRIBUTOR | apple-notes-to-sqlite 611552758 | https://github.com/dogsheep/apple-notes-to-sqlite/pull/14 | ||||||
1299129869 | PR_kwDOJHON9s5NbyYN | 13 | open | 0 | use universal command | amlestin 14314871 | 2023-04-02T15:10:54Z | 2023-04-02T15:37:34Z | b40fdee5efac03f10257f749ee7f69e4692ad6c5 | 0 | 8111718e747f59dddcb5bf7820ce922e0723c04a | e55a802d37a896475b6cf475c1ba947af63cca73 | FIRST_TIME_CONTRIBUTOR | apple-notes-to-sqlite 611552758 | https://github.com/dogsheep/apple-notes-to-sqlite/pull/13 | |||||||
771790589 | PR_kwDOEhK-wc4uAJb9 | 15 | open | 0 | include note tags in the export | d-rep 436138 | When parsing the Evernote `<note>` elements, the script will now also parse any nested `<tag>` elements, writing them out into a separate sqlite table. Here is an example of how to query the data after the script has run: ``` select notes.*, (select group_concat(tag) from notes_tags where notes_tags.note_id=notes.id) as tags from notes; ``` My .enex source file is 3+ years old so I am assuming the structure hasn't changed. Interestingly, my _notebook names_ show up in the _tags_ list where the tag name is prefixed with `notebook_`, so this could maybe help work around the first limitation mentioned in the [evernote-to-sqlite blog post](https://simonwillison.net/2020/Oct/16/building-evernote-sqlite-exporter/). | 2021-11-02T20:04:31Z | 2021-11-02T20:04:31Z | ee36aba995b0a5385bdf9a451851dcfc316ff7f6 | 0 | 8cc3aa49c6e61496b04015c14048c5dac58d6b42 | fff89772b4404995400e33fe1d269050717ff4cf | FIRST_TIME_CONTRIBUTOR | evernote-to-sqlite 303218369 | https://github.com/dogsheep/evernote-to-sqlite/pull/15 | ||||||
1290512937 | PR_kwDODtX3eM5M66op | 6 | open | 0 | Add permalink virtual field to items table | xavdid 1231935 | I added a virtual column (no storage overhead) to the output that easily links back to the source. It works nicely out of the box with datasette: ![](https://cdn.zappy.app/faf43661d539ee0fee02c0421de22d65.png) I got bit a bit by https://github.com/simonw/sqlite-utils/issues/411, so I went with a manual `table_xinfo` and creating the table via execute. Happy to adjust if that issue moves, but this seems like it works. I also added my best-guess instructions for local development on this package. I'm shooting in the dark, so feel free to replace with how you work on it locally. | 2023-03-26T22:22:38Z | 2023-03-29T18:38:52Z | 99bda9434e0adaa8459bc0abbe6262785cd4086c | 0 | b04d6c76c26820f2e0b04da58dd82789e83cbb42 | c5585c103d124b23ba1e163f8857d4ba49fe452a | FIRST_TIME_CONTRIBUTOR | hacker-news-to-sqlite 248903544 | https://github.com/dogsheep/hacker-news-to-sqlite/pull/6 | ||||||
1038926741 | PR_kwDODtX3eM497MOV | 5 | open | 0 | The program fails when the user has no submissions | fernand0 2467 | Tested with: hacker-news-to-sqlite user hacker-news.db fernand0 Result: ` Traceback (most recent call last): File "/home/ftricas/.pyenv/versions/3.10.6/bin/hacker-news-to-sqlite", line 8, in <module> sys.exit(cli()) File "/home/ftricas/.pyenv/versions/3.10.6/lib/python3.10/site-packages/click/core.py", line 1130, in __call__ return self.main(*args, **kwargs) File "/home/ftricas/.pyenv/versions/3.10.6/lib/python3.10/site-packages/click/core.py", line 1055, in main rv = self.invoke(ctx) File "/home/ftricas/.pyenv/versions/3.10.6/lib/python3.10/site-packages/click/core.py", line 1657, in invoke return _process_result(sub_ctx.command.invoke(sub_ctx)) File "/home/ftricas/.pyenv/versions/3.10.6/lib/python3.10/site-packages/click/core.py", line 1404, in invoke return ctx.invoke(self.callback, **ctx.params) File "/home/ftricas/.pyenv/versions/3.10.6/lib/python3.10/site-packages/click/core.py", line 760, in invoke return __callback(*args, **kwargs) File "/home/ftricas/.pyenv/versions/3.10.6/lib/python3.10/site-packages/hacker_news_to_sqlite/cli.py", line 27, in user submitted = user.pop("submitted", None) or [] AttributeError: 'NoneType' object has no attribute 'pop' ` There is a problem of style with the patch (but not sure what to do) because with the new inicialization ( submitted = []) the part or [] is not needed. Maybe there is a more adequate way of doing this. | 2022-08-28T17:25:45Z | 2022-08-28T17:25:45Z | f0d7414305fc6cba4bcb7506b76a94938ccc7886 | 0 | ea97e640ad7a24020821fde5c647240120bd7099 | c5585c103d124b23ba1e163f8857d4ba49fe452a | FIRST_TIME_CONTRIBUTOR | hacker-news-to-sqlite 248903544 | https://github.com/dogsheep/hacker-news-to-sqlite/pull/5 | ||||||
862538586 | PR_kwDODFdgUs4zaUta | 70 | open | 0 | scrape-dependents: enable paging through package menu option if present | stanbiryukov 36061055 | Some repos organize network dependents by a Package toggle. This PR adds the ability to page through those options and scrape underlying dependents. | 2022-02-24T15:07:25Z | 2022-02-24T15:07:25Z | 36cca3584a07d88d1e505111d1b23294d66ba73e | 0 | cc8f276a474525e55ed0bcacb0cd8cc560f89614 | 751bc900366ca52e662ea383b858cbf4365093d9 | FIRST_TIME_CONTRIBUTOR | github-to-sqlite 207052882 | https://github.com/dogsheep/github-to-sqlite/pull/70 | ||||||
747742034 | PR_kwDODFdgUs4skaNS | 68 | open | 0 | Add support for retrieving teams / members | philwills 68329 | Adds a method for retrieving all the teams within an organisation and all the members in those teams. The latter is stored as a join table `team_members` beteween `teams` and `users`. | 2021-10-01T15:55:02Z | 2021-10-01T15:59:53Z | f46e276c356c893370d5893296f4b69f08baf02c | 0 | cc838e87b1eb19b299f277a07802923104f35ce2 | ed3752022e45b890af63996efec804725e95d0d4 | FIRST_TIME_CONTRIBUTOR | github-to-sqlite 207052882 | https://github.com/dogsheep/github-to-sqlite/pull/68 | ||||||
959140599 | PR_kwDODFdgUs45K1L3 | 73 | closed | 0 | Fixing 'NoneType' object has no attribute 'items' | empjustine 1224205 | Under some conditions, GitHub caches removed starred repositories and ends up leaving dangling `None` user references. Traceback (most recent call last): File "/home/dogsheep/dogsheep/github-to-sqlite/bin/github-to-sqlite", line 8, in <module> sys.exit(cli()) File "/home/dogsheep/dogsheep/github-to-sqlite/lib64/python3.10/site-packages/click/core.py", line 1130, in __call__ return self.main(*args, **kwargs) File "/home/dogsheep/dogsheep/github-to-sqlite/lib64/python3.10/site-packages/click/core.py", line 1055, in main rv = self.invoke(ctx) File "/home/dogsheep/dogsheep/github-to-sqlite/lib64/python3.10/site-packages/click/core.py", line 1657, in invoke return _process_result(sub_ctx.command.invoke(sub_ctx)) File "/home/dogsheep/dogsheep/github-to-sqlite/lib64/python3.10/site-packages/click/core.py", line 1404, in invoke return ctx.invoke(self.callback, **ctx.params) File "/home/dogsheep/dogsheep/github-to-sqlite/lib64/python3.10/site-packages/click/core.py", line 760, in invoke return __callback(*args, **kwargs) File "/home/dogsheep/dogsheep/github-to-sqlite/lib64/python3.10/site-packages/github_to_sqlite/cli.py", line 181, in starred utils.save_stars(db, user, stars) File "/home/dogsheep/dogsheep/github-to-sqlite/lib64/python3.10/site-packages/github_to_sqlite/utils.py", line 494, in save_stars repo_id = save_repo(db, repo) File "/home/dogsheep/dogsheep/github-to-sqlite/lib64/python3.10/site-packages/github_to_sqlite/utils.py", line 308, in save_repo to_save["owner"] = save_user(db, to_save["owner"]) File "/home/dogsheep/dogsheep/github-to-sqlite/lib64/python3.10/site-packages/github_to_sqlite/utils.py", line 229, in save_user for key, value in user.items() AttributeError: 'NoneType' object has no attribute 'items' | 2022-06-06T13:58:11Z | 2022-07-18T19:40:12Z | 2022-07-18T19:40:12Z | 2022-07-18T19:40:12Z | dbac2e5dd8a562b45d8255a265859cf8020ca22a | 0 | d7c06886f3bb95085a3af3b2a21547e41556cc6e | a6e237f75a4b86963d91dcb5c9582e3a1b3349d6 | CONTRIBUTOR | github-to-sqlite 207052882 | https://github.com/dogsheep/github-to-sqlite/pull/73 | ||||
1047561919 | PR_kwDODFdgUs4-cIa_ | 76 | open | 0 | Add organization support to repos command | OverkillGuy 2757699 | New --organization flag to signify all given "usernames" are private orgs. Adapts API URL to the organization path instead. Not the best implementation, but a first draft to talk around Fixes #75 (badly, no tests, overly vague, untested) | 2022-09-06T13:21:42Z | 2022-09-06T13:59:08Z | 1514acfa87f57261547bc3d7fc4f161e34285d76 | 0 | bb959b46e8a7647755c14dee180fdd5209451954 | ace13ec3d98090d99bd71871c286a4a612c96a50 | FIRST_TIME_CONTRIBUTOR | github-to-sqlite 207052882 | https://github.com/dogsheep/github-to-sqlite/pull/76 | ||||||
1505067804 | PR_kwDODFE5qs5ZtYMc | 13 | open | 0 | use poetry for packages, asdf for versioning, and gh actions for ci | iloveitaly 150855 | - build: use poetry for package management, asdf for python version - build: cleanup poetry config, add keywords, ignore dist - ci: migrate circleci to gh actions - fix: dup method definition | 2023-09-06T17:59:16Z | 2023-09-06T17:59:16Z | cd4d8c4a7ecd231f6c5a8886245271934177f104 | 0 | b5f0ebe91755c46e01dc4aefb808f0292848fbed | e54e544427f1cc3ea8189f0e95f54046301a8645 | FIRST_TIME_CONTRIBUTOR | google-takeout-to-sqlite 206649770 | https://github.com/dogsheep/google-takeout-to-sqlite/pull/13 | ||||||
775078665 | PR_kwDODFE5qs4uMsMJ | 9 | open | 0 | Removed space from filename My Activity.json | widadmogral 91880982 | File name from google takeout has no space. The code only runs without error if filename is "MyActivity.json" and not "My Activity.json". Is it a new change by Google? | 2021-11-08T00:04:31Z | 2021-11-08T00:04:31Z | 236da5c8302c09a20fcd4164c563cd9fa5c9595c | 0 | 6d111f65687e13ffd8b39aa05f1f8f4a351e7788 | e54e544427f1cc3ea8189f0e95f54046301a8645 | FIRST_TIME_CONTRIBUTOR | google-takeout-to-sqlite 206649770 | https://github.com/dogsheep/google-takeout-to-sqlite/pull/9 | ||||||
948892757 | PR_kwDODFE5qs44jvRV | 11 | open | 0 | Update README.md | ashanan 11887 | Fix typo | 2022-05-27T03:13:59Z | 2022-05-27T03:13:59Z | 3d479a1052f2661de61b15c50b7a5b2daa20a33a | 0 | d4af1554a9b5ddedcd0b241450f7b935f38b9bf7 | e54e544427f1cc3ea8189f0e95f54046301a8645 | FIRST_TIME_CONTRIBUTOR | google-takeout-to-sqlite 206649770 | https://github.com/dogsheep/google-takeout-to-sqlite/pull/11 | ||||||
1179812838 | PR_kwDODEm0Qs5GUoPm | 71 | open | 0 | Archive: Fix "ni devices" typo in importer | sometimes-i-send-pull-requests 26161409 | 2022-12-28T23:33:31Z | 2022-12-28T23:33:31Z | 7905dbd6e36bcabcfd9106c70ebb36ecf9e38260 | 0 | 0d3c62e8ba6e545785069cc0ffc8dc1bad03db80 | f09d611782a8372cfb002792dfa727325afb4db6 | FIRST_TIME_CONTRIBUTOR | twitter-to-sqlite 206156866 | https://github.com/dogsheep/twitter-to-sqlite/pull/71 | |||||||
1179812730 | PR_kwDODEm0Qs5GUoN6 | 70 | open | 0 | Archive: Import Twitter Circle data | sometimes-i-send-pull-requests 26161409 | 2022-12-28T23:33:09Z | 2022-12-28T23:33:09Z | 1d2683101571550adf4a3b7bdf8e9ffbd8b77b61 | 0 | cc80cb31a9afb9a50295d6202f509e5b500607a0 | f09d611782a8372cfb002792dfa727325afb4db6 | FIRST_TIME_CONTRIBUTOR | twitter-to-sqlite 206156866 | https://github.com/dogsheep/twitter-to-sqlite/pull/70 | |||||||
1179812620 | PR_kwDODEm0Qs5GUoMM | 69 | open | 0 | Archive: Import new tweets table name | sometimes-i-send-pull-requests 26161409 | Given the code here, it seems like in the past this file was named "tweet.js". In recent exports, it's named "tweets.js". The archive importer needs to be modified to take this into account. Existing logic is reused for importing this table. (However, the resulting table name will be different, matching the different file name -- archive_tweets, rather than archive_tweet). | 2022-12-28T23:32:44Z | 2022-12-28T23:32:44Z | 1a8c02a8d349c8fd4074139a6a3eed552676bdf3 | 0 | 11e8fa64ca30cebde047a4268e65f376c42e2b60 | f09d611782a8372cfb002792dfa727325afb4db6 | FIRST_TIME_CONTRIBUTOR | twitter-to-sqlite 206156866 | https://github.com/dogsheep/twitter-to-sqlite/pull/69 | ||||||
1179812491 | PR_kwDODEm0Qs5GUoKL | 68 | open | 0 | Archive: Import mute table | sometimes-i-send-pull-requests 26161409 | 2022-12-28T23:32:06Z | 2022-12-28T23:32:06Z | 47d4d3bda6d4123f58d8dbd634f9f146d97b037e | 0 | e1cd68ea0244c4689a3c49799c6b24371cdc4978 | f09d611782a8372cfb002792dfa727325afb4db6 | FIRST_TIME_CONTRIBUTOR | twitter-to-sqlite 206156866 | https://github.com/dogsheep/twitter-to-sqlite/pull/68 | |||||||
1179812287 | PR_kwDODEm0Qs5GUoG_ | 67 | open | 0 | Add support for app-only bearer tokens | sometimes-i-send-pull-requests 26161409 | Previously, twitter-to-sqlite only supported OAuth1 authentication, and the token must be on behalf of a user. However, Twitter also supports application-only bearer tokens, documented here: https://developer.twitter.com/en/docs/authentication/oauth-2-0/bearer-tokens This PR adds support to twitter-to-sqlite for using application-only bearer tokens. To use, the auth.json file just needs to contain a "bearer_token" key instead of "api_key", "api_secret_key", etc. | 2022-12-28T23:31:20Z | 2022-12-28T23:31:20Z | 7825cd68047088cbdc9666586f1af9b7e1fa88c2 | 0 | 52050d06eeb85f3183b086944b7b75ae758096cd | f09d611782a8372cfb002792dfa727325afb4db6 | FIRST_TIME_CONTRIBUTOR | twitter-to-sqlite 206156866 | https://github.com/dogsheep/twitter-to-sqlite/pull/67 | ||||||
872242672 | PR_kwDODEm0Qs4z_V3w | 65 | open | 0 | Update Twitter dev link, clarify apps vs projects | rixx 2657547 | Twitter pushes you heavily towards v2 projects instead of v1 apps – I know the README mentions v1 API compatibility at the top, but I still nearly got turned around here. | 2022-03-05T11:56:08Z | 2022-03-05T11:56:08Z | 765a450845ba26fac102d9154980cd936399546c | 0 | b7cfe9dcb7dbccc7ba8171cfe74f19227c4351ec | f09d611782a8372cfb002792dfa727325afb4db6 | FIRST_TIME_CONTRIBUTOR | twitter-to-sqlite 206156866 | https://github.com/dogsheep/twitter-to-sqlite/pull/65 | ||||||
943518450 | PR_kwDODEm0Qs44PPLy | 66 | open | 0 | Ageinfo workaround | ashanan 11887 | I'm not sure if this is due to a new format or just because my ageinfo file is blank, but trying to import an archive would crash when it got to that file. This PR adds a guard clause in the `ageinfo` transformer and sets a default value that doesn't throw an exception. Seems likely to be the same issue mentioned by danp in https://github.com/dogsheep/twitter-to-sqlite/issues/54, my ageinfo file looks the same. Added that same ageinfo file to the test archive as well to help confirm my workaround didn't break anything. Let me know if you want any changes! | 2022-05-21T21:08:29Z | 2022-05-21T21:09:16Z | c22e8eba634b70e914de9f72e452b1ebea55c6ef | 0 | 75ae7c94120d14083217bc76ebd603b396937104 | f09d611782a8372cfb002792dfa727325afb4db6 | FIRST_TIME_CONTRIBUTOR | twitter-to-sqlite 206156866 | https://github.com/dogsheep/twitter-to-sqlite/pull/66 | ||||||
1073492809 | PR_kwDODD6af84__DNJ | 14 | open | 0 | Photo links | redmanmale 6782721 | * add to `checkin_details` view new column for a calculated photo links * supported multiple links split by newline * create `events` table if there's no events in the history to avoid SQL errors Fixes #9. | 2022-10-01T09:44:15Z | 2022-11-18T17:10:49Z | 6ca283dc30a2713bd3fda0dc35df1c7186a5996e | 0 | 5541d9496bad73c9edce98f5562a3135359d57d6 | 719b6e96a016d0ca8b316d3bed9c2a7a0cb499ee | FIRST_TIME_CONTRIBUTOR | swarm-to-sqlite 205429375 | https://github.com/dogsheep/swarm-to-sqlite/pull/14 | ||||||
1454726308 | PR_kwDOD079W85WtVyk | 39 | open | 0 | Missing option in datasette instructions | coldclimate 319473 | Gotta tell it where to look | 2023-07-29T10:34:48Z | 2023-07-29T10:34:48Z | bd9c51b4e3e110122f921fc6ebf10b69d7fcbb7a | 0 | 17c0ddf5113d8587247d4736e1390fe07ec33b8c | 325aa38cb23d0757bb1335ee2ea94a082475a66e | FIRST_TIME_CONTRIBUTOR | dogsheep-photos 256834907 | https://github.com/dogsheep/dogsheep-photos/pull/39 | ||||||
1454719622 | PR_kwDOD079W85WtUKG | 38 | closed | 0 | photos-to-sql not found? | coldclimate 319473 | I wonder if `photos-to-sql` is an old name for `dogsheep-photos`, because I can't find it anywhere. I can't actually get this command to work (`sqlite3.OperationalError: no such table: attached.ZGENERICASSET` thrown) but I don't think that's related | 2023-07-29T09:59:42Z | 2023-07-29T10:01:27Z | 2023-07-29T10:01:23Z | 78898d8344bd37379b9ef44384629c26ed8c4558 | 0 | dbf0213a98cfb92f49a60695d0e0094b851b1cbb | 325aa38cb23d0757bb1335ee2ea94a082475a66e | FIRST_TIME_CONTRIBUTOR | dogsheep-photos 256834907 | https://github.com/dogsheep/dogsheep-photos/pull/38 | |||||
986925985 | PR_kwDOD079W84600uh | 37 | open | 0 | Fix former command name in readme | DanLipsitt 578773 | Looks like a previous commit missed a `photo-to-sqlite`→ `dogsheep-photos` replacement. | 2022-07-05T02:09:13Z | 2022-07-05T02:09:13Z | 1fa5a3b9ddab2a954aea21ea4292b944e826866a | 0 | b0d256c5bc480450627d98d8c8a5e3d8c61dc2ae | 325aa38cb23d0757bb1335ee2ea94a082475a66e | FIRST_TIME_CONTRIBUTOR | dogsheep-photos 256834907 | https://github.com/dogsheep/dogsheep-photos/pull/37 | ||||||
1608050242 | PR_kwDOCGYnMM5f2OZC | 604 | closed | 0 | Add more STRICT table support | tkhattra 16437338 | - https://github.com/simonw/sqlite-utils/issues/344#issuecomment-982014776 Make `table.transform()` preserve STRICT mode. <!-- readthedocs-preview sqlite-utils start --> ---- :books: Documentation preview :books:: https://sqlite-utils--604.org.readthedocs.build/en/604/ <!-- readthedocs-preview sqlite-utils end --> | 2023-11-19T19:38:53Z | 2023-12-08T05:17:20Z | 2023-12-08T05:05:27Z | 2023-12-08T05:05:27Z | 1500c19bd0f31b2e7f28a5ec2d7bfa133a2e4d4c | 0 | 61c6e26cf922c70b65b161473723ff9d869a04a5 | 9286c1ba432e890b1bb4b2a1f847b15364c1fa18 | CONTRIBUTOR | sqlite-utils 140912432 | https://github.com/simonw/sqlite-utils/pull/604 | ||||
1586779743 | PR_kwDOCGYnMM5elFZf | 600 | closed | 0 | Add spatialite arm64 linux path | MikeCoats 37802088 | According to both [Debian](https://packages.debian.org/bookworm/arm64/libsqlite3-mod-spatialite/filelist) and [Ubuntu](https://packages.ubuntu.com/mantic/arm64/libsqlite3-mod-spatialite/filelist), the correct “target triple” for arm64 is `aarch64-linux-gnu`, so we should be looking in `/usr/lib/aarch64-linux-gnu` for `mod_spatialite.so`. I can confirm that on both of my Debian arm64 SBCs, `libsqlite3-mod-spatialite` installs to that path. ``` $ ls -l /usr/lib/*/*spatial* lrwxrwxrwx 1 root root 23 Dec 1 2022 /usr/lib/aarch64-linux-gnu/mod_spatialite.so -> mod_spatialite.so.7.1.0 lrwxrwxrwx 1 root root 23 Dec 1 2022 /usr/lib/aarch64-linux-gnu/mod_spatialite.so.7 -> mod_spatialite.so.7.1.0 -rw-r--r-- 1 root root 7348584 Dec 1 2022 /usr/lib/aarch64-linux-gnu/mod_spatialite.so.7.1.0 ``` This is a set of before and after snippets of pytest’s output for this PR. ### Before ``` $ pytest tests/test_get.py ...... [ 73%] tests/test_gis.py ssssssssssss [ 75%] tests/test_hypothesis.py .... [ 75%] ``` ### After ``` $ pytest tests/test_get.py ...... [ 73%] tests/test_gis.py ............ [ 75%] tests/test_hypothesis.py .... [ 75%] ``` Issue: #599 <!-- readthedocs-preview sqlite-utils start --> ---- :books: Documentation preview :books:: https://sqlite-utils--600.org.readthedocs.build/en/600/ <!-- readthedocs-preview sqlite-utils end --> | 2023-11-03T22:23:26Z | 2023-11-04T00:34:33Z | 2023-11-04T00:31:49Z | 2023-11-04T00:31:49Z | b92ea4793ce4dcb73cf762aae634ab72f65ec50f | 0 | b1a60766a4150268557c4445297087a3f076be01 | 622c3a5a7dd53a09c029e2af40c2643fe7579340 | CONTRIBUTOR | sqlite-utils 140912432 | https://github.com/simonw/sqlite-utils/pull/600 | ||||
1535767490 | PR_kwDOCGYnMM5bifPC | 596 | closed | 0 | Fixes mapping for time fields related to mysql, closes #522 | nezhar 4420927 | Adds `COLUMN_TYPE_MAPPING` for `TIME` fields that are mapped as `datetime.timedelta` for MySQL and json represantation for `datetime.timedelta` in order to fix #522 <!-- readthedocs-preview sqlite-utils start --> ---- :books: Documentation preview :books:: https://sqlite-utils--596.org.readthedocs.build/en/596/ <!-- readthedocs-preview sqlite-utils end --> | 2023-09-29T13:41:48Z | 2023-11-04T00:49:50Z | 2023-11-04T00:49:50Z | 2023-11-04T00:49:50Z | 347fdc865e91b8d3410f49a5c9d5b499fbb594c1 | 0 | ab12125b3f7d0ef327b08d95f27c6c4cec6fdfb3 | 622c3a5a7dd53a09c029e2af40c2643fe7579340 | CONTRIBUTOR | sqlite-utils 140912432 | https://github.com/simonw/sqlite-utils/pull/596 | ||||
1542299634 | PR_kwDOCGYnMM5b7Z_y | 598 | closed | 0 | Fixed issue #433 - CLI eats cursor | spookylukey 62745 | The issue is that underlying iterator is not fully consumed within the body of the `with file_progress()` block. Instead, that block creates generator expressions like `docs = (dict(zip(headers, row)) for row in reader)` These iterables are consumed later, outside the `with file_progress()` block, which consumes the underlying iterator, and in turn updates the progress bar. This means that the `ProgressBar.__exit__` method gets called before the last time the `ProgressBar.update` method gets called. The result is that the code to make the cursor invisible (inside the `update()` method) is called after the cleanup code to make it visible (in the `__exit__` method). The fix is to move consumption of the `docs` iterators within the progress bar block. ( (An additional fix, to make ProgressBar more robust against this kind of misuse, would to make it refusing to update after its `__exit__` method had been called, just like files cannot be `read()` after they are closed. That requires a in the click library). Note that Github diff obscures the simplicity of this diff, it's just indenting a block of code. <!-- readthedocs-preview sqlite-utils start --> ---- :books: Documentation preview :books:: https://sqlite-utils--598.org.readthedocs.build/en/598/ <!-- readthedocs-preview sqlite-utils end --> | 2023-10-04T18:06:58Z | 2023-11-04T00:46:55Z | 2023-11-04T00:40:30Z | 2023-11-04T00:40:30Z | 37273d7f63f08872aa1c90c4233a0580e384ac19 | 0 | 76113d1cb1387811d556fb7a32e0628492c34aea | 622c3a5a7dd53a09c029e2af40c2643fe7579340 | CONTRIBUTOR | sqlite-utils 140912432 | https://github.com/simonw/sqlite-utils/pull/598 | ||||
1504920193 | PR_kwDOCGYnMM5Zs0KB | 591 | closed | 0 | Test against Python 3.12 preview | simonw 9599 | https://dev.to/hugovk/help-test-python-312-beta-1508/ <!-- readthedocs-preview sqlite-utils start --> ---- :books: Documentation preview :books:: https://sqlite-utils--591.org.readthedocs.build/en/591/ <!-- readthedocs-preview sqlite-utils end --> | 2023-09-06T16:10:00Z | 2023-11-04T00:58:03Z | 2023-11-04T00:58:02Z | ac0db3c705355178bd5a337b8dd74df141b12c7a | 0 | 1f14df1de4a214b12abfba6edd61a4bfa0b8473e | 347fdc865e91b8d3410f49a5c9d5b499fbb594c1 | OWNER | sqlite-utils 140912432 | https://github.com/simonw/sqlite-utils/pull/591 | |||||
1507097949 | PR_kwDOCGYnMM5Z1H1d | 593 | closed | 0 | .transform() now preserves rowid values, refs #592 | simonw 9599 | Refs: - #592 - [x] Tests against weird shaped tables I need to test that this works against: - `rowid` tables - Tables that have a column called `rowid` even though they are not rowid tables <!-- readthedocs-preview sqlite-utils start --> ---- :books: Documentation preview :books:: https://sqlite-utils--593.org.readthedocs.build/en/593/ <!-- readthedocs-preview sqlite-utils end --> | 2023-09-08T01:02:28Z | 2023-09-10T17:44:59Z | 2023-09-09T00:45:30Z | 2023-09-09T00:45:30Z | 1c6ea54338e24fcebcee4e2f9c170ee300a5d946 | 0 | b86374f705d1f4143a51634b30289cb48add0ea2 | 5d123f031fc4fadc98f508e0ef6b7b6671e86155 | OWNER | sqlite-utils 140912432 | https://github.com/simonw/sqlite-utils/pull/593 | ||||
1479795255 | PR_kwDOCGYnMM5YM-I3 | 584 | closed | 0 | .transform() instead of modifying sqlite_master for add_foreign_keys | simonw 9599 | Refs: - #577 <!-- readthedocs-preview sqlite-utils start --> ---- :books: Documentation preview :books:: https://sqlite-utils--584.org.readthedocs.build/en/584/ <!-- readthedocs-preview sqlite-utils end --> | 2023-08-17T23:32:45Z | 2023-08-18T00:48:13Z | 2023-08-18T00:48:08Z | 2023-08-18T00:48:08Z | 509857ee8724f73760f3631b69c26f9047381187 | 0 | 291505084e652972ad806383250757d41d596d38 | 1dc6b5aa644a92d3654f7068110ed7930989ce71 | OWNER | sqlite-utils 140912432 | https://github.com/simonw/sqlite-utils/pull/584 | ||||
1445438054 | PR_kwDOCGYnMM5WJ6Jm | 573 | closed | 0 | feat: Implement a prepare_connection plugin hook | asg017 15178711 | Just like the [Datasette prepare_connection hook](https://docs.datasette.io/en/stable/plugin_hooks.html#prepare-connection-conn-database-datasette), this PR adds a similar hook for the `sqlite-utils` plugin system. The sole argument is `conn`, since I don't believe a `database` or `datasette` argument would be relevant here. I want to do this so I can release `sqlite-utils` plugins for my [SQLite extensions](https://github.com/asg017/sqlite-ecosystem), similar to the Datasette plugins I've release for them. An example plugin: https://gist.github.com/asg017/d7cdf0d56e2be87efda28cebee27fa3c ```bash $ sqlite-utils install https://gist.github.com/asg017/d7cdf0d56e2be87efda28cebee27fa3c/archive/5f5ad549a40860787629c69ca120a08c32519e99.zip $ sqlite-utils memory 'select hello("alex") as response' [{"response": "Hello, alex!"}] ``` Refs: - #574 <!-- readthedocs-preview sqlite-utils start --> ---- :books: Documentation preview :books:: https://sqlite-utils--573.org.readthedocs.build/en/573/ <!-- readthedocs-preview sqlite-utils end --> | 2023-07-22T22:48:44Z | 2023-07-22T22:59:09Z | 2023-07-22T22:59:09Z | 2023-07-22T22:59:09Z | 3f80a026983d3e634f05a46f2a6da162b5139dd9 | 0 | faf398fe075f60929337d3cd0f12309fc4229a3c | 091c63cfbf7b40e99e2017a3c37619c7689cc447 | CONTRIBUTOR | sqlite-utils 140912432 | https://github.com/simonw/sqlite-utils/pull/573 | ||||
1406821147 | PR_kwDOCGYnMM5T2mMb | 560 | closed | 0 | Use sqlean if available in environment | simonw 9599 | Refs: - #559 <!-- readthedocs-preview sqlite-utils start --> ---- :books: Documentation preview :books:: https://sqlite-utils--560.org.readthedocs.build/en/560/ <!-- readthedocs-preview sqlite-utils end --> | 2023-06-25T19:48:48Z | 2023-06-26T08:21:00Z | 2023-06-25T23:25:51Z | 2023-06-25T23:25:51Z | f5c63088e1454811ce8361208b72297408eb5237 | 0 | 5e7d27e5df024ce1f45e3a850c4e0f65e765cccd | 2747257a3334d55e890b40ec58fada57ae8cfbfd | OWNER | sqlite-utils 140912432 | https://github.com/simonw/sqlite-utils/pull/560 | ||||
1358321208 | PR_kwDOCGYnMM5Q9lY4 | 553 | closed | 0 | Reformatted CLI examples in docs | simonw 9599 | Refs: - #551 <!-- readthedocs-preview sqlite-utils start --> ---- :books: Documentation preview :books:: https://sqlite-utils--553.org.readthedocs.build/en/553/ <!-- readthedocs-preview sqlite-utils end --> | 2023-05-21T20:44:34Z | 2023-05-21T20:57:27Z | 2023-05-21T20:57:23Z | 2023-05-21T20:57:22Z | d8fe1b0d899faaaa3d4714a39328f4c24932278f | 0 | 21036a5084a2c846a05feb6bced3111d849bbe3c | e240133b11588d31dc22c632f7a7ca636c72978d | OWNER | sqlite-utils 140912432 | https://github.com/simonw/sqlite-utils/pull/553 | ||||
1358282799 | PR_kwDOCGYnMM5Q9cAv | 549 | closed | 0 | TUI powered by Trogon | simonw 9599 | Refs: - #545 <!-- readthedocs-preview sqlite-utils start --> ---- :books: Documentation preview :books:: https://sqlite-utils--549.org.readthedocs.build/en/549/ <!-- readthedocs-preview sqlite-utils end --> | 2023-05-21T17:55:42Z | 2023-05-21T18:42:00Z | 2023-05-21T18:41:56Z | 2023-05-21T18:41:56Z | 718b0cba9b32d97a41bcf9757c97fe1d058da81c | 0 | 948692a94b22852b3147abebac9d719b69320b57 | e8c5b042e49c627aefd620c8d4b1c84eb8677f73 | OWNER | sqlite-utils 140912432 | https://github.com/simonw/sqlite-utils/pull/549 | ||||
1358254580 | PR_kwDOCGYnMM5Q9VH0 | 546 | closed | 0 | Analyze tables options: --common-limit, --no-most, --no-least | simonw 9599 | Refs #544 - [x] Documentation for CLI options - [x] Documentation for new Python API parameters: `most_common: bool` and `least_common: bool` - [x] Tests for CLI - [x] Tests for Python API | 2023-05-21T15:54:39Z | 2023-05-21T16:19:30Z | 2023-05-21T16:19:30Z | 2023-05-21T16:19:30Z | d2a7b15b2b930fe384e1f1715fc4af23386f4935 | 0 | 2eca17d46eca2cff52c78553085ec64d9029c969 | e047cc32e9d5de7025d4d3c16554d4290f4bd3d1 | OWNER | sqlite-utils 140912432 | https://github.com/simonw/sqlite-utils/pull/546 | ||||
1311438738 | PR_kwDOCGYnMM5OKveS | 537 | closed | 0 | Support self-referencing FKs in `Table.create` | numist 544011 | <!-- readthedocs-preview sqlite-utils start --> ---- :books: Documentation preview :books:: https://sqlite-utils--537.org.readthedocs.build/en/537/ <!-- readthedocs-preview sqlite-utils end --> | 2023-04-12T20:26:58Z | 2023-05-08T22:45:33Z | 2023-05-08T21:10:01Z | 2023-05-08T21:10:01Z | 39ef137e6760d385dc48d03eccf9b89943636fc7 | 0 | a75abeb61b91a28650d3b9933e7ec80ad0d92529 | c0251cc9271260de73b4227859a51fab9b4cb745 | CONTRIBUTOR | sqlite-utils 140912432 | https://github.com/simonw/sqlite-utils/pull/537 | ||||
1306498393 | PR_kwDOCGYnMM5N35VZ | 536 | closed | 0 | Add paths for homebrew on Apple silicon | eyeseast 25778 | Does what it says and nothing else. This is the same set of paths as Datasette uses. <!-- readthedocs-preview sqlite-utils start --> ---- :books: Documentation preview :books:: https://sqlite-utils--536.org.readthedocs.build/en/536/ <!-- readthedocs-preview sqlite-utils end --> | 2023-04-08T13:34:21Z | 2023-04-13T01:44:43Z | 2023-04-13T01:44:43Z | 2023-04-13T01:44:43Z | 8f9a729e8aff972cb18de25b40f4113e26bbc758 | 0 | cea05dc5eab8d10fbd8943e615d2ab0dceff863c | c0251cc9271260de73b4227859a51fab9b4cb745 | CONTRIBUTOR | sqlite-utils 140912432 | https://github.com/simonw/sqlite-utils/pull/536 | ||||
1272169404 | PR_kwDOCGYnMM5L08O8 | 531 | closed | 0 | Add paths for homebrew on Apple silicon | eyeseast 25778 | This also passes in the extension path when specified in GIS methods. Wherever we know an extension path, we use `db.init_spatialite(find_spatialite() or load_extension)`. <!-- readthedocs-preview sqlite-utils start --> ---- :books: Documentation preview :books:: https://sqlite-utils--531.org.readthedocs.build/en/531/ <!-- readthedocs-preview sqlite-utils end --> | 2023-03-11T22:27:52Z | 2023-04-09T01:49:44Z | 2023-04-09T01:49:43Z | 24f3eb082b98b8d676bab2eab4f763cd9b50fe96 | 0 | afdf6187716b19fce8692f6887a1d45c85477fee | c0251cc9271260de73b4227859a51fab9b4cb745 | CONTRIBUTOR | sqlite-utils 140912432 | https://github.com/simonw/sqlite-utils/pull/531 | |||||
1235909998 | PR_kwDOCGYnMM5Jqn1u | 528 | closed | 0 | Enable `Table.convert()` on falsey values | mcarpenter 167893 | Fixes #527 <!-- readthedocs-preview sqlite-utils start --> ---- :books: Documentation preview :books:: https://sqlite-utils--528.org.readthedocs.build/en/528/ <!-- readthedocs-preview sqlite-utils end --> | 2023-02-10T00:04:09Z | 2023-05-08T21:08:23Z | 2023-05-08T21:08:23Z | 279fb2c85c6b3fc7b593aaf4245bd3a038bff5f0 | 0 | a09df3844ab91b70cebb7b888fc07cb21dffd01c | fc221f9b62ed8624b1d2098e564f525c84497969 | CONTRIBUTOR | sqlite-utils 140912432 | https://github.com/simonw/sqlite-utils/pull/528 | |||||
1234321667 | PR_kwDOCGYnMM5JkkED | 526 | closed | 0 | Fix repeated calls to `Table.convert()` | mcarpenter 167893 | Fixes #525. All tests pass. There's perhaps a better way to name lambdas? There could be a collision if a caller passes a function with name like `lambda_123456`. SQLite [documentation](https://www.sqlite.org/appfunc.html) is a little, ah, lite on function name specs. If there is a character that can be used in place of underscore in a SQLite function name that is not permitted in a Python function identifier then that could be a good way to prevent accidental collisions. (I tried dash, colon, dot, no joy). Otherwise, there is little chance of this happening and if it should happen the risk is mitigated by now throwing an exception in the case of a (name, arity) collision without `replace=True`. <!-- readthedocs-preview sqlite-utils start --> ---- :books: Documentation preview :books:: https://sqlite-utils--526.org.readthedocs.build/en/526/ <!-- readthedocs-preview sqlite-utils end --> | 2023-02-09T00:14:49Z | 2023-05-08T21:56:05Z | 2023-05-08T21:53:58Z | 2023-05-08T21:53:58Z | 02f5c4d69d7b4baebde015c56e5bc62923f33314 | 0 | 486e0cc1cd67e98c22d1f125403144cdedfa3d58 | fc221f9b62ed8624b1d2098e564f525c84497969 | CONTRIBUTOR | sqlite-utils 140912432 | https://github.com/simonw/sqlite-utils/pull/526 | ||||
1173049178 | PR_kwDOCGYnMM5F609a | 519 | closed | 0 | Fixes breaking DEFAULT values | rhoboro 13819005 | Fixes #509, Fixes #336 Thanks for the great library! I fixed a bug that `sqlite-utils transform` breaks DEFAULT values. All tests already present passed with no changes, and I added some tests for this PR. In #509 case, fixed here. ```shell $ sqlite3 test.db << EOF CREATE TABLE mytable ( col1 TEXT DEFAULT 'foo', col2 TEXT DEFAULT (STRFTIME('%Y-%m-%d %H:%M:%f', 'NOW')) ) EOF $ sqlite3 test.db "SELECT sql FROM sqlite_master WHERE name = 'mytable';" CREATE TABLE mytable ( col1 TEXT DEFAULT 'foo', col2 TEXT DEFAULT (STRFTIME('%Y-%m-%d %H:%M:%f', 'NOW')) ) $ sqlite3 test.db "INSERT INTO mytable DEFAULT VALUES; SELECT * FROM mytable;" foo|2022-12-21 01:15:39.669 $ sqlite-utils transform test.db mytable --rename col1 renamedcol1 $ sqlite3 test.db "SELECT sql FROM sqlite_master WHERE name = 'mytable';" CREATE TABLE "mytable" ( [renamedcol1] TEXT DEFAULT 'foo', [col2] TEXT DEFAULT (STRFTIME('%Y-%m-%d %H:%M:%f', 'NOW')) # ← Non-String Value ) $ sqlite3 test.db "INSERT INTO mytable DEFAULT VALUES; SELECT * FROM mytable;" foo|2022-12-21 01:15:39.669 foo|2022-12-21 01:15:56.432 ``` And #336 case also fixed. Special values are described [here](https://www.sqlite.org/lang_createtable.html). > 3.2. The DEFAULT clause > ... A default value may also be one of the special case-independent keywords CURRENT_TIME, CURRENT_DATE or CURRENT_TIMESTAMP. ```shell $ echo 'create table bar (baz text, created_at timestamp default CURRENT_TIMESTAMP)' | sqlite3 foo.db $ sqlite3 foo.db SQLite version 3.39.5 2022-10-14 20:58:05 Enter ".help" for usage hints. sqlite> .schema bar CREATE TABLE bar (baz text, created_at timestamp default CURRENT_TIMESTAMP); sqlite> .exit $ sqlite-utils transform foo.db bar --column-order baz $ sqlite3 foo.db SQLite version 3.39.5 2022-10-14 20:58:05 Enter ".help" for usage hints. sqlite> .schema bar CREATE TABLE IF NOT EXISTS "bar" ( [baz] TEXT, [created_at] FLOAT DEFAULT CURRENT_TIMESTAMP ); sqlite> .exit $ sqlite… | 2022-12-21T01:27:52Z | 2023-05-08T21:13:37Z | 2023-05-08T21:13:37Z | 2023-05-08T21:13:37Z | 6500fed8b2085869b9714ce3a08c30f61dc829ad | 0 | 5e5c262fab69eb3c470afa57fc52d3d7d8beee7a | fc221f9b62ed8624b1d2098e564f525c84497969 | CONTRIBUTOR | sqlite-utils 140912432 | https://github.com/simonw/sqlite-utils/pull/519 | ||||
1136499802 | PR_kwDOCGYnMM5DvZxa | 515 | closed | 0 | upsert new rows with constraints, fixes #514 | cldellow 193185 | This fixes #514 by making the initial insert for upserts include all columns, so that new rows can be added to tables with non-pkey columns that have constraints. (aside: I'm not a python programmer. `pip`? `pipenv`? `venv`? These are mystical incantations to me. The process to set up this repo for local development and testing was _so easy_. Thank you for the excellent contributing documentation!) <!-- readthedocs-preview sqlite-utils start --> ---- :books: Documentation preview :books:: https://sqlite-utils--515.org.readthedocs.build/en/515/ <!-- readthedocs-preview sqlite-utils end --> | 2022-11-26T16:15:21Z | 2023-05-08T21:27:11Z | 2023-05-08T21:27:10Z | c3713ef6944cbeacf36e462712cecac2176db692 | 0 | 32f8173a8fe830c224e39a0a514cd12e78de7028 | 965ca0d5f5bffe06cc02cd7741344d1ddddf9d56 | NONE | sqlite-utils 140912432 | https://github.com/simonw/sqlite-utils/pull/515 | |||||
1105985162 | PR_kwDOCGYnMM5B6_6K | 508 | closed | 0 | Allow surrogates in parameters | chapmanjacobd 7908073 | closes #507 https://dwheeler.com/essays/fixing-unix-linux-filenames.html <!-- readthedocs-preview sqlite-utils start --> ---- :books: Documentation preview :books:: https://sqlite-utils--508.org.readthedocs.build/en/508/ <!-- readthedocs-preview sqlite-utils end --> | 2022-10-31T22:11:49Z | 2022-11-17T15:11:16Z | 2022-10-31T22:55:36Z | 3b551597240d9a6058b1c3c720073120db213678 | 0 | 43a8c4c91fc22fb6bea07846f144072b0d047f4e | 529110e7d8c4a6b1bbf5fb61f2e29d72aa95a611 | CONTRIBUTOR | sqlite-utils 140912432 | https://github.com/simonw/sqlite-utils/pull/508 | |||||
1083804914 | PR_kwDOCGYnMM5AmYzy | 499 | open | 0 | feat: recreate fts triggers after table transform | chapmanjacobd 7908073 | https://github.com/simonw/sqlite-utils/pull/498 <!-- readthedocs-preview sqlite-utils start --> ---- :books: Documentation preview :books:: https://sqlite-utils--499.org.readthedocs.build/en/499/ <!-- readthedocs-preview sqlite-utils end --> alternatively, `self.disable_fts()` | 2022-10-11T20:35:39Z | 2022-10-26T17:54:51Z | 6c71562a7a21ab93541a14453961ce3d6abca3cc | 0 | a25e83841f2703afb08aff4589cb559ae9060776 | d792dad1cf5f16525da81b1e162fb71d469995f3 | CONTRIBUTOR | sqlite-utils 140912432 | https://github.com/simonw/sqlite-utils/pull/499 | ||||||
1082769953 | PR_kwDOCGYnMM5AicIh | 498 | closed | 0 | fix: enable-fts permanently save triggers | chapmanjacobd 7908073 | I was wondering why my all my databases were giving wild search results. Turns out create_trigger was not sticking! Running `sqlite-utils triggers x.db` shows `[]` after running `enable-fts` using the python api. Looking at the counts trigger it seems that is the right way to save triggers. triggers show up now <!-- readthedocs-preview sqlite-utils start --> ---- :books: Documentation preview :books:: https://sqlite-utils--498.org.readthedocs.build/en/498/ <!-- readthedocs-preview sqlite-utils end --> | 2022-10-11T05:10:51Z | 2022-10-15T04:33:08Z | 2022-10-11T06:34:31Z | ab24d21e9c2aa9c514c3b65f05cfc0bafa7621c1 | 0 | 75577e595d9177177a48030a1c39573af010df51 | d792dad1cf5f16525da81b1e162fb71d469995f3 | CONTRIBUTOR | sqlite-utils 140912432 | https://github.com/simonw/sqlite-utils/pull/498 | |||||
862823026 | PR_kwDOCGYnMM4zbaJy | 410 | closed | 0 | Correct spelling mistakes (found with codespell) | EdwardBetts 3818 | 2022-02-24T20:44:18Z | 2022-03-06T08:48:29Z | 2022-03-01T21:05:29Z | 2022-03-01T21:05:29Z | b6c9dfce0ba27eb5fb6bc2221044798420f861c4 | 0 | a174069da6669b8914d4a08dded7fd750d52a316 | 7a098aa0c5e8beef6ccc55c866cf7792af5fcf43 | CONTRIBUTOR | sqlite-utils 140912432 | https://github.com/simonw/sqlite-utils/pull/410 | |||||
853484980 | PR_kwDOCGYnMM4y3yW0 | 407 | closed | 0 | Add SpatiaLite helpers to CLI | eyeseast 25778 | Closes #398 This adds SpatiaLite helpers to the CLI. ```sh # init spatialite when creating a database sqlite-utils create database.db --enable-wal --init-spatialite # add geometry columns # needs a database, table, geometry column name, type, with optional SRID and not-null # this will throw an error if the table doesn't already exist sqlite-utils add-geometry-column database.db table-name geometry --srid 4326 --not-null # spatial index an existing table/column # this will throw an error it the table and column don't exist sqlite-utils create-spatial-index database.db table-name geometry ``` Docs and tests are included. | 2022-02-15T16:50:17Z | 2022-02-16T01:49:40Z | 2022-02-16T00:58:08Z | 2022-02-16T00:58:07Z | a692c56659c3563b26dcdc9e3534d63ecc26e180 | 0 | a974da591915e0548182bbbf01da34ecb9e537e6 | e7f040106b5f5a892ebd984f19b21c605e87c142 | CONTRIBUTOR | sqlite-utils 140912432 | https://github.com/simonw/sqlite-utils/pull/407 | ||||
817257851 | PR_kwDOCGYnMM4wtl17 | 377 | closed | 0 | `sqlite-utils bulk` command | simonw 9599 | Refs #375 Still needs: - [x] Refactor `@insert_upsert_options` so that it doesn't duplicate `@import_options` - [x] Tests - [x] Documentation - [x] Try it against a really big file | 2022-01-10T05:34:24Z | 2022-01-11T02:10:57Z | 2022-01-11T02:10:54Z | 2022-01-11T02:10:54Z | 129141572f249ea290e2a075437e2ebaad215859 | 3.21 7558727 | 0 | f4ea0d32c0543373eefaa9b9f3911eb07549eecb | b6dad08a8389736b7e960cfe9bc719cfc21a98f5 | OWNER | sqlite-utils 140912432 | https://github.com/simonw/sqlite-utils/pull/377 | |||
816927546 | PR_kwDOCGYnMM4wsVM6 | 367 | closed | 0 | Initial prototype of .analyze() methods | simonw 9599 | Refs #366 | 2022-01-08T21:35:12Z | 2022-01-10T19:31:08Z | 2022-01-10T19:31:08Z | 2ffcbed6787523649dd676985f3ea70a62944764 | 3.21 7558727 | 1 | 9848eaa61b43de0ddb74ff6d085bcb18f4640f91 | a8f9cc6f64f299830834428509940d448b82b4ed | OWNER | sqlite-utils 140912432 | https://github.com/simonw/sqlite-utils/pull/367 | ||||
815164865 | PR_kwDOCGYnMM4wlm3B | 361 | closed | 0 | --lines and --text and --convert and --import | simonw 9599 | Refs #356 Still TODO: - [x] Get `--lines` working, with tests - [x] Get `--text` working, with tests - [x] Get regular JSON import working with `--convert` with tests - [x] Get `--lines` working with `--convert` with tests - [x] Get `--text` working with `--convert` with tests - [x] Get `--csv` and `--tsv` import working with `--convert` with tests - [x] Get `--nl` working with `--convert` with tests - [x] Documentation for all of the above | 2022-01-06T01:49:44Z | 2022-01-06T06:37:03Z | 2022-01-06T06:24:54Z | 2022-01-06T06:24:54Z | 413f8ed754e38d7b190de888c85fe8438336cb11 | 0 | b7f0b88d49032a053f0de2dbba356ee1f3b949c0 | f3fd8613113d21d44238a6ec54b375f5aa72c4e0 | OWNER | sqlite-utils 140912432 | https://github.com/simonw/sqlite-utils/pull/361 | ||||
821992886 | PR_kwDOCGYnMM4w_p22 | 385 | closed | 0 | Add new spatialite helper methods | eyeseast 25778 | Refs #79 This PR adds three new Spatialite-related methods to Database and Table: - `Database.init_spatialite` loads the Spatialite extension and initializes it - `Table.add_geometry_column` adds a geometry column - `Table.create_spatial_index` creates a spatial index Has tests and documentation. Feedback very welcome. | 2022-01-14T03:57:30Z | 2022-02-05T00:04:26Z | 2022-02-04T05:55:10Z | 2022-02-04T05:55:10Z | ee11274fcb1c00f32c95f2ef2924d5349538eb4d | 0 | af86b17acf2fa50048e38b96497636d49db89766 | 74586d3cb26fa3cc3412721985ecdc1864c2a31d | CONTRIBUTOR | sqlite-utils 140912432 | https://github.com/simonw/sqlite-utils/pull/385 | ||||
791153878 | PR_kwDOCGYnMM4vKAzW | 347 | open | 0 | Test against pysqlite3 running SQLite 3.37 | simonw 9599 | Refs #346 and #344. | 2021-11-29T23:17:57Z | 2021-12-11T01:02:19Z | f70a61e58ae62e53af74ab48d742bdc335131fbd | 0 | 1a7ef2fe2064ace01d5535fb771f941296fb642a | 213a0ff177f23a35f3b235386366ff132eb879f1 | OWNER | sqlite-utils 140912432 | https://github.com/simonw/sqlite-utils/pull/347 | ||||||
774610166 | PR_kwDOCGYnMM4uK5z2 | 337 | closed | 0 | Default values for `--attach` and `--param` options | urbas 771193 | It seems that `click` 8.x uses `None` as the default value for `multiple=True` options. This change makes the code forward-compatible with `click` 8.x. See this build failure for more info: https://hydra.nixos.org/build/156926608 | 2021-11-05T21:57:53Z | 2021-11-05T22:33:03Z | 2021-11-05T22:33:02Z | eb8bf28da1794638a5693043cd5268f506a674d3 | 0 | 095fc64c5399d75d44d304571a21293d06d817f0 | fda4dad23a0494890267fbe8baf179e2b56ee914 | NONE | sqlite-utils 140912432 | https://github.com/simonw/sqlite-utils/pull/337 | |||||
757797315 | PR_kwDOCGYnMM4tKxHD | 330 | closed | 0 | Test against Python 3.10 | simonw 9599 | 2021-10-13T21:50:22Z | 2021-11-15T02:59:29Z | 2021-10-13T22:25:05Z | 2021-10-13T22:25:05Z | fda4dad23a0494890267fbe8baf179e2b56ee914 | 0 | fc3de90963b6b097826d36f6a24c46267659dcf2 | 718a8f61bcaed39c04d5d223104056213f8c8516 | OWNER | sqlite-utils 140912432 | https://github.com/simonw/sqlite-utils/pull/330 | |||||
768796296 | PR_kwDOCGYnMM4t0uaI | 333 | closed | 0 | Add functionality to read Parquet files. | Florents-Tselai 2118708 | I needed this for a project of mine, and I thought it'd be useful to have it in sqlite-utils (It's also mentioned in #248 ). The current implementation works (data is read & data types are inferred correctly. I've added a single straightforward test case, but @simonw please let me know if there are any non-obvious flags/combinations I should test too. | 2021-10-28T23:43:19Z | 2021-11-25T19:47:35Z | 2021-11-25T19:47:35Z | eda2b1f8d2670c6ca8512e3e7c0150866bd0bdc6 | 0 | 50ec2e49dee3b09a48a7aef55eceaa3f752a52e7 | fda4dad23a0494890267fbe8baf179e2b56ee914 | NONE | sqlite-utils 140912432 | https://github.com/simonw/sqlite-utils/pull/333 | |||||
737050557 | PR_kwDOCGYnMM4r7n-9 | 327 | closed | 0 | Extract expand: Support JSON Arrays | phaer 101753 | Hi, I needed to extract data in JSON Arrays to normalize data imports. I've quickly hacked the following together based on #241 which refers to #239 where you, @simonw, wrote: > Could this handle lists of objects too? That would be pretty amazing - if the column has a [{...}, {...}] list in it could turn that into a many-to-many. They way this works in my work is that many-to-many relationships are created for anything that maps to an dictionary in a list, and many-to-one relations for everything else (assumed to be scalar values). Not sure what the best approach here would be? Are many-to-one relationships are at all useful here? What do you think about this approach? I could try to add it to the cli interface and documentation if wanted. Thanks for this awesome piece of software in any case! :sun_with_face: | 2021-09-19T10:34:30Z | 2022-12-29T09:05:36Z | 2022-12-29T09:05:36Z | f0105cde23452cb4c8a15fc6096154b15d9b7c5a | 0 | 2840c697aa9817462d864ed5f8a7696d749fe039 | 8d641ab08ac449081e96f3e25bd6c0226870948a | NONE | sqlite-utils 140912432 | https://github.com/simonw/sqlite-utils/pull/327 | |||||
1034485141 | PR_kwDOCGYnMM49qP2V | 468 | closed | 0 | db[table].create(..., transform=True) and create-table --transform | simonw 9599 | Work in progress. Still needs documentation and tests (and to cover more cases of things that might have changed). Refs: - #467 <!-- readthedocs-preview sqlite-utils start --> ---- :books: Documentation preview :books:: https://sqlite-utils--468.org.readthedocs.build/en/468/ <!-- readthedocs-preview sqlite-utils end --> | 2022-08-23T17:27:58Z | 2022-08-27T23:17:55Z | 2022-08-27T23:17:55Z | 2022-08-27T23:17:55Z | 104f37fa4d2e7e5999c1d829267b62c737f74d3e | 3.29 8355157 | 0 | 2f6a64f61d561df821d737719941c678dcb1a03c | c5f8a2eb1a81a18b52825cc649112f71fe419b12 | OWNER | sqlite-utils 140912432 | https://github.com/simonw/sqlite-utils/pull/468 | |||
1029373779 | PR_kwDOCGYnMM49Wv9T | 466 | closed | 0 | Use Read the Docs action v1 (#463) | simonw 9599 | Read the Docs repository was renamed from `readthedocs/readthedocs-preview` to `readthedocs/actions/`. Now, the `preview` action is under `readthedocs/actions/preview` and is tagged as `v1` | 2022-08-17T23:11:50Z | 2022-08-17T23:11:54Z | 2022-08-17T23:11:54Z | 2022-08-17T23:11:54Z | bb90d3326815a041512b40bf0cf53b3ace06cd67 | 0 | 83e7339255e811c62e6db8498c483c44a84d0f28 | 72655adabc596a9eed43cc11c07177a390791068 | OWNER | sqlite-utils 140912432 | https://github.com/simonw/sqlite-utils/pull/466 | ||||
1029360106 | PR_kwDOCGYnMM49Wsnq | 465 | closed | 0 | beanbag-docutils>=2.0 | simonw 9599 | Refs #464 | 2022-08-17T22:41:39Z | 2022-08-17T23:38:07Z | 2022-08-17T23:38:02Z | 2022-08-17T23:38:02Z | f8ffac8787e299a62c99ed1ce914cd5ace84ad94 | 0 | bb90d3326815a041512b40bf0cf53b3ace06cd67 | 45e24deffea042b5db7ab84cd1eb63b3ed9bb9da | OWNER | sqlite-utils 140912432 | https://github.com/simonw/sqlite-utils/pull/465 | ||||
1038565427 | PR_kwDOCGYnMM4950Az | 473 | closed | 0 | Support entrypoints for `--load-extension` | simonw 9599 | Refs #470 <!-- readthedocs-preview sqlite-utils start --> ---- :books: Documentation preview :books:: https://sqlite-utils--473.org.readthedocs.build/en/473/ <!-- readthedocs-preview sqlite-utils end --> | 2022-08-27T05:53:59Z | 2022-08-27T05:55:52Z | 2022-08-27T05:55:47Z | 2022-08-27T05:55:47Z | 19dd077944429c1365b513d80cc71c605ae3bed3 | 0 | 72db599ae03fabe2e9f999999e258edc1a99ed59 | a46a5e3a9e03dcdd8c84a92e4a5dbfa02ba461fa | OWNER | sqlite-utils 140912432 | https://github.com/simonw/sqlite-utils/pull/473 | ||||
1015591301 | PR_kwDOCGYnMM48iLGF | 462 | closed | 0 | Discord badge | simonw 9599 | Also testing fix for: - https://github.com/readthedocs/readthedocs-preview/issues/10 <!-- readthedocs-preview sqlite-utils start --> ---- :books: Documentation preview :books:: https://sqlite-utils--462.org.readthedocs.build/en/462/ <!-- readthedocs-preview sqlite-utils end --> | 2022-08-02T20:56:04Z | 2022-08-02T21:15:57Z | 2022-08-02T21:15:52Z | 2022-08-02T21:15:52Z | 271433fdd18e436b0a527ab899cb6f6fa67f23d0 | 0 | 0a14a031385f2647be0b9d15d96c1d44d05c2296 | 98a28cbfe6cea67f6334b42b74f35b0ddd309561 | OWNER | sqlite-utils 140912432 | https://github.com/simonw/sqlite-utils/pull/462 | ||||
1015320511 | PR_kwDOCGYnMM48hI-_ | 460 | closed | 0 | Cross-link CLI to Python docs | simonw 9599 | Work in progress, partly to test the ReadTheDocs preview link action. Refs: - #426 <!-- readthedocs-preview readthedocs-preview start --> ---- :books: Documentation preview :books:: https://readthedocs-preview--460.org.readthedocs.build/en/460/ <!-- readthedocs-preview readthedocs-preview end --> | 2022-08-02T16:18:28Z | 2022-08-18T21:58:10Z | 2022-08-18T21:58:07Z | 2022-08-18T21:58:07Z | f4fb78fa95057fbc86c734020835a3155695297f | 0 | f21f4ccf7197e7a0ac8c2eb5086659fc3eb5bc05 | 1856002e3c0fcc9f09f72ab7d97ad8c75f6de7df | OWNER | sqlite-utils 140912432 | https://github.com/simonw/sqlite-utils/pull/460 | ||||
1009936222 | PR_kwDOCGYnMM48Mmde | 457 | closed | 0 | Link to installation instructions | simonw 9599 | Also testing https://docs.readthedocs.io/en/stable/pull-requests.html | 2022-07-27T17:38:36Z | 2022-08-27T03:55:52Z | 2022-07-27T17:57:50Z | 2022-07-27T17:57:50Z | 77ca051d4f5ddbd42fd6250749efac7ea85ea094 | 3.29 8355157 | 0 | 80b3907471f724aeecae75796663815c87731e77 | 9e6cceac1c0e086429e2d308b700e59cc53a1991 | OWNER | sqlite-utils 140912432 | https://github.com/simonw/sqlite-utils/pull/457 | |||
1022525059 | PR_kwDOCGYnMM488n6D | 463 | closed | 0 | Use Read the Docs action v1 | humitos 244656 | Read the Docs repository was renamed from `readthedocs/readthedocs-preview` to `readthedocs/actions/`. Now, the `preview` action is under `readthedocs/actions/preview` and is tagged as `v1` <!-- readthedocs-preview sqlite-utils start --> ---- :books: Documentation preview :books:: https://sqlite-utils--463.org.readthedocs.build/en/463/ <!-- readthedocs-preview sqlite-utils end --> | 2022-08-10T10:31:47Z | 2022-08-18T08:30:14Z | 2022-08-17T23:11:16Z | 2022-08-17T23:11:16Z | 83e7339255e811c62e6db8498c483c44a84d0f28 | 0 | 364110b97bd1c6e0d2bc841730e5dc1a595e537d | 271433fdd18e436b0a527ab899cb6f6fa67f23d0 | CONTRIBUTOR | sqlite-utils 140912432 | https://github.com/simonw/sqlite-utils/pull/463 | ||||
1000800283 | PR_kwDOCGYnMM47pwAb | 455 | closed | 0 | in extract code, check equality with IS instead of = for nulls | fgregg 536941 | sqlite "IS" is equivalent to SQL "IS NOT DISTINCT FROM" closes #423 | 2022-07-19T13:40:25Z | 2022-08-27T14:45:03Z | 2022-08-27T14:45:03Z | 2022-08-27T14:45:03Z | c5f8a2eb1a81a18b52825cc649112f71fe419b12 | 0 | 1b35a92e3ede76f0f29f6f8dcd899f44b2abbb02 | 855bce8c3823718def13e0b8928c58bf857e41b2 | CONTRIBUTOR | sqlite-utils 140912432 | https://github.com/simonw/sqlite-utils/pull/455 | ||||
992299943 | PR_kwDOCGYnMM47JUun | 452 | closed | 0 | Add duplicate table feature | davidleejy 1690072 | This PR addresses a feature request raised in issue #449. Specifically this PR adds a functionality that lets users duplicate a table via: ```python table_new = db["my_table"].duplicate("new_table") ``` Test added in file `tests/test_duplicate.py`. Happy to make changes to meet maintainers' feedback, if any. | 2022-07-09T20:24:31Z | 2022-07-15T21:21:37Z | 2022-07-15T21:21:36Z | 2022-07-15T21:21:36Z | b366e68deb0780048a23610c279552f8529d4726 | 0 | eef350fe543c6301c61b257c5f708e0e16ed5a34 | 42440d6345c242ee39778045e29143fb550bd2c2 | CONTRIBUTOR | sqlite-utils 140912432 | https://github.com/simonw/sqlite-utils/pull/452 | ||||
943686022 | PR_kwDOCGYnMM44P4GG | 437 | closed | 0 | docs to dogs | yurivish 114388 | Fixes a typo. | 2022-05-22T15:50:33Z | 2022-05-30T21:32:41Z | 2022-05-30T21:32:41Z | 2022-05-30T21:32:41Z | 9fedfc69d7239ac49900051e1c48ee9cdd470d9e | 0 | 9e540417821385939db0fdd2d0a859f85be377e6 | 59be60c471fd7a2c4be7f75e8911163e618ff5ca | CONTRIBUTOR | sqlite-utils 140912432 | https://github.com/simonw/sqlite-utils/pull/437 | ||||
925807233 | PR_kwDOCGYnMM43LrKB | 429 | closed | 0 | Depend on click-default-group-wheel | simonw 9599 | Trying to get this to work with Pyodide. Refs: https://github.com/simonw/click-default-group-wheel/issues/3 | 2022-05-02T18:03:10Z | 2022-05-02T18:52:42Z | 2022-05-02T18:05:00Z | 2022-05-02T18:05:00Z | ed6fd516082e8cc83b199798f62dd67728a6974f | 0 | 4a02dcf265702a4f11eed943bf8feaa502c590d5 | e3a14c33a033b0c2fc00f2470666caaf9027e446 | OWNER | sqlite-utils 140912432 | https://github.com/simonw/sqlite-utils/pull/429 | ||||
887534558 | PR_kwDOCGYnMM405rPe | 419 | closed | 0 | Ignore common generated files | eyeseast 25778 | Closes #418 This adds four files to `.gitignore`: .hypothesis/ Pipfile Pipfile.lock pyproject.toml Those are all generated in the course of development and testing. | 2022-03-23T18:06:22Z | 2022-03-24T21:01:44Z | 2022-03-24T21:01:44Z | 2022-03-24T21:01:44Z | 396f80fcc60da8dd844577114f7920830a2e5403 | 0 | 228f73615cf993dd3caf3c240682c00392832bb8 | 93fa79d30b1531bea281d0eb6b925c4e61bc1aa6 | CONTRIBUTOR | sqlite-utils 140912432 | https://github.com/simonw/sqlite-utils/pull/419 | ||||
1050417981 | PR_kwDOCGYnMM4-nBs9 | 486 | closed | 0 | progressbar for inserts/upserts of all fileformats, closes #485 | MischaU8 99098079 | <!-- readthedocs-preview sqlite-utils start --> ---- :books: Documentation preview :books:: https://sqlite-utils--486.org.readthedocs.build/en/486/ <!-- readthedocs-preview sqlite-utils end --> | 2022-09-08T14:58:02Z | 2022-09-15T20:40:03Z | 2022-09-15T20:37:51Z | 2022-09-15T20:37:51Z | 0b315d3fa83c1584eaeec32f24912898621e437a | 0 | d5db749480aaf8518e611ff55da186cadf6c63bc | d9b9e075f07a20f1137cd2e34ed5d3f1a3db4ad8 | CONTRIBUTOR | sqlite-utils 140912432 | https://github.com/simonw/sqlite-utils/pull/486 | ||||
1040691996 | PR_kwDOCGYnMM4-B7Mc | 480 | closed | 0 | search_sql add include_rank option | chapmanjacobd 7908073 | I haven't tested this yet but wanted to get a heads-up whether this kind of change would be useful or if I should just duplicate the function and tweak it within my code <!-- readthedocs-preview sqlite-utils start --> ---- :books: Documentation preview :books:: https://sqlite-utils--480.org.readthedocs.build/en/480/ <!-- readthedocs-preview sqlite-utils end --> | 2022-08-30T09:10:29Z | 2022-08-31T03:40:35Z | 2022-08-31T03:40:35Z | 2022-08-31T03:40:35Z | ecf1d40112e52a8f4e509c39b98caae996b7bc36 | 0 | 3dbfca6fdd878ba381f83157fdae2042eeaed371 | 087753cd42c406f1e060c1822dcd9b5fda3d60f4 | CONTRIBUTOR | sqlite-utils 140912432 | https://github.com/simonw/sqlite-utils/pull/480 | ||||
1182000455 | PR_kwDOC8tyDs5Gc-VH | 23 | open | 0 | Include workout statistics | badboy 2129 | Not sure when this changed (iOS 16 maybe?), but the `WorkoutStatistics` now has a whole bunch of information about workouts, e.g. for runs it contains the distance (as a `<WorkoutStatistics type="HKQuantityTypeIdentifierDistanceWalkingRunning ...>` element). Adding it as another column at leat allows me to pull these out (using SQLite's JSON support). I'm running with this patch on my own data now. | 2023-01-01T17:29:56Z | 2023-01-01T17:29:57Z | e0ad45055f363810085119f26df87a6804451056 | 0 | d5b9e3609961515cc52bcc5ef070e3b83b473339 | 9fe3cb17e03d6c73222b63e643638cf951567c4c | FIRST_TIME_CONTRIBUTOR | healthkit-to-sqlite 197882382 | https://github.com/dogsheep/healthkit-to-sqlite/pull/23 | ||||||
1602618258 | PR_kwDOBm6k_c5fhgOS | 2209 | open | 0 | Fix query for suggested facets with column named value | rgieseke 198537 | See discussion in https://github.com/simonw/datasette/issues/2208 <!-- readthedocs-preview datasette start --> ---- :books: Documentation preview :books:: https://datasette--2209.org.readthedocs.build/en/2209/ <!-- readthedocs-preview datasette end --> | 2023-11-15T14:13:30Z | 2023-11-15T15:31:12Z | d628c1520160c030c26353792221925fdcd5cbe4 | 0 | c88414be391a2e64208e35d33a69a246170499a6 | 452a587e236ef642cbc6ae345b58767ea8420cb5 | CONTRIBUTOR | datasette 107914493 | https://github.com/simonw/datasette/pull/2209 | ||||||
1592615419 | PR_kwDOBm6k_c5e7WH7 | 2206 | open | 0 | Bump the python-packages group with 1 update | dependabot[bot] 49699333 | Bumps the python-packages group with 1 update: [black](https://github.com/psf/black). <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/psf/black/releases">black's releases</a>.</em></p> <blockquote> <h2>23.11.0</h2> <h3>Highlights</h3> <ul> <li>Support formatting ranges of lines with the new <code>--line-ranges</code> command-line option (<a href="https://redirect.github.com/psf/black/issues/4020">#4020</a>)</li> </ul> <h3>Stable style</h3> <ul> <li>Fix crash on formatting bytes strings that look like docstrings (<a href="https://redirect.github.com/psf/black/issues/4003">#4003</a>)</li> <li>Fix crash when whitespace followed a backslash before newline in a docstring (<a href="https://redirect.github.com/psf/black/issues/4008">#4008</a>)</li> <li>Fix standalone comments inside complex blocks crashing Black (<a href="https://redirect.github.com/psf/black/issues/4016">#4016</a>)</li> <li>Fix crash on formatting code like <code>await (a ** b)</code> (<a href="https://redirect.github.com/psf/black/issues/3994">#3994</a>)</li> <li>No longer treat leading f-strings as docstrings. This matches Python's behaviour and fixes a crash (<a href="https://redirect.github.com/psf/black/issues/4019">#4019</a>)</li> </ul> <h3>Preview style</h3> <ul> <li>Multiline dicts and lists that are the sole argument to a function are now indented less (<a href="https://redirect.github.com/psf/black/issues/3964">#3964</a>)</li> <li>Multiline unpacked dicts and lists as the sole argument to a function are now also indented less (<a href="https://redirect.github.com/psf/black/issues/3992">#3992</a>)</li> <li>In f-string debug expressions, quote types that are visible in the final string are now preserved (<a href="https://redirect.github.com/psf/black/issues/4005">#4005</a>)</li> <li>Fix a bug where long <code>case</code> blocks were not split into multiple lines. Also enable general trailing comma rules on <code>case</code> blocks (<a href="https://redirect.github.com/psf/black/issues/4024">#4024</a>)… | 2023-11-08T13:18:56Z | 2023-12-08T13:46:24Z | 57f4b139eaf0a394606b76c6281470c42c116dfa | 0 | eec10df01afbb4489feb7c97544fa10db041e6b0 | 452a587e236ef642cbc6ae345b58767ea8420cb5 | CONTRIBUTOR | datasette 107914493 | https://github.com/simonw/datasette/pull/2206 | ||||||
1571053445 | PR_kwDOBm6k_c5dpF-F | 2202 | closed | 0 | Bump the python-packages group with 1 update | dependabot[bot] 49699333 | Bumps the python-packages group with 1 update: [black](https://github.com/psf/black). <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/psf/black/releases">black's releases</a>.</em></p> <blockquote> <h2>23.10.1</h2> <h3>Highlights</h3> <ul> <li>Maintanence release to get a fix out for GitHub Action edge case (<a href="https://redirect.github.com/psf/black/issues/3957">#3957</a>)</li> </ul> <h3>Preview style</h3> <ul> <li>Fix merging implicit multiline strings that have inline comments (<a href="https://redirect.github.com/psf/black/issues/3956">#3956</a>)</li> <li>Allow empty first line after block open before a comment or compound statement (<a href="https://redirect.github.com/psf/black/issues/3967">#3967</a>)</li> </ul> <h3>Packaging</h3> <ul> <li>Change Dockerfile to hatch + compile black (<a href="https://redirect.github.com/psf/black/issues/3965">#3965</a>)</li> </ul> <h3>Integrations</h3> <ul> <li>The summary output for GitHub workflows is now suppressible using the <code>summary</code> parameter. (<a href="https://redirect.github.com/psf/black/issues/3958">#3958</a>)</li> <li>Fix the action failing when Black check doesn't pass (<a href="https://redirect.github.com/psf/black/issues/3957">#3957</a>)</li> </ul> <h3>Documentation</h3> <ul> <li>It is known Windows documentation CI is broken <a href="https://redirect.github.com/psf/black/issues/3968">psf/black#3968</a></li> </ul> <h2>23.10.0</h2> <h3>Stable style</h3> <ul> <li>Fix comments getting removed from inside parenthesized strings (<a href="https://redirect.github.com/psf/black/issues/3909">#3909</a>)</li> </ul> <h3>Preview style</h3> <ul> <li>Fix long lines with power operators getting split before the line length (<a href="https://redirect.github.com/psf/black/issues/3942">#3942</a>)</li> <li>Long type hints are now wrapped in parentheses and properly indented when split across multiple lines (<a href="https://redirect.github.com/psf/black/issues/3899">#3899</a>)</li> <li>Magic trailing commas are now respec… | 2023-10-24T13:40:21Z | 2023-11-08T13:19:03Z | 2023-11-08T13:19:01Z | dec2db2dd566aa9aa9d9ac124328c15bb80d52c5 | 0 | be4d0f0ad1f2d113230a1ae4c394f1b3134a0324 | 452a587e236ef642cbc6ae345b58767ea8420cb5 | CONTRIBUTOR | datasette 107914493 | https://github.com/simonw/datasette/pull/2202 | |||||
1562664755 | PR_kwDOBm6k_c5dJF8z | 2200 | closed | 0 | Bump the python-packages group with 1 update | dependabot[bot] 49699333 | Bumps the python-packages group with 1 update: [black](https://github.com/psf/black). <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/psf/black/releases">black's releases</a>.</em></p> <blockquote> <h2>23.10.0</h2> <h3>Stable style</h3> <ul> <li>Fix comments getting removed from inside parenthesized strings (<a href="https://redirect.github.com/psf/black/issues/3909">#3909</a>)</li> </ul> <h3>Preview style</h3> <ul> <li>Fix long lines with power operators getting split before the line length (<a href="https://redirect.github.com/psf/black/issues/3942">#3942</a>)</li> <li>Long type hints are now wrapped in parentheses and properly indented when split across multiple lines (<a href="https://redirect.github.com/psf/black/issues/3899">#3899</a>)</li> <li>Magic trailing commas are now respected in return types. (<a href="https://redirect.github.com/psf/black/issues/3916">#3916</a>)</li> <li>Require one empty line after module-level docstrings. (<a href="https://redirect.github.com/psf/black/issues/3932">#3932</a>)</li> <li>Treat raw triple-quoted strings as docstrings (<a href="https://redirect.github.com/psf/black/issues/3947">#3947</a>)</li> </ul> <h3>Configuration</h3> <ul> <li>Fix cache versioning logic when <code>BLACK_CACHE_DIR</code> is set (<a href="https://redirect.github.com/psf/black/issues/3937">#3937</a>)</li> </ul> <h3>Parser</h3> <ul> <li>Fix bug where attributes named <code>type</code> were not acccepted inside <code>match</code> statements (<a href="https://redirect.github.com/psf/black/issues/3950">#3950</a>)</li> <li>Add support for PEP 695 type aliases containing lambdas and other unusual expressions (<a href="https://redirect.github.com/psf/black/issues/3949">#3949</a>)</li> </ul> <h3>Output</h3> <ul> <li>Black no longer attempts to provide special errors for attempting to format Python 2 code (<a href="https://redirect.github.com/psf/black/issues/3933">#3933</a>)</li> <li>Black will more consistently print stacktraces on internal errors in verbose mode … | 2023-10-18T13:25:55Z | 2023-10-24T13:40:29Z | 2023-10-24T13:40:26Z | dc3806dfbfbcfab2f7d75a8e91e7bd8b3dfc11f2 | 0 | 011bb920c5e8061aaf3d90d47e3e5bb684eef2ba | 452a587e236ef642cbc6ae345b58767ea8420cb5 | CONTRIBUTOR | datasette 107914493 | https://github.com/simonw/datasette/pull/2200 | |||||
1522166951 | PR_kwDOBm6k_c5aumyn | 2192 | closed | 0 | Stop using parallel SQL queries for tables | simonw 9599 | Refs: - #2189 <!-- readthedocs-preview datasette start --> ---- :books: Documentation preview :books:: https://datasette--2192.org.readthedocs.build/en/2192/ <!-- readthedocs-preview datasette end --> | 2023-09-20T01:28:43Z | 2023-09-20T22:10:56Z | 2023-09-20T22:10:55Z | 2023-09-20T22:10:55Z | b0e5d8afa308759f4ee9f3ecdf61101dffc4a037 | 0 | 4e6a34179eaedec44c1263275d7592fd83d7e2ac | 6ed7908580fa2ba9297c3225d85c56f8b08b9937 | OWNER | datasette 107914493 | https://github.com/simonw/datasette/pull/2192 | ||||
1520248889 | PR_kwDOBm6k_c5anSg5 | 2191 | closed | 0 | Move `permissions`, `allow` blocks, canned queries and more out of `metadata.yaml` and into `datasette.yaml` | asg017 15178711 | The PR moves the following fields from `metadata.yaml` to `datasette.yaml`: ``` permissions allow allow_sql queries extra_css_urls extra_js_urls ``` This is a significant breaking change that users will need to upgrade their `metadata.yaml` files for. But the format/locations are similar to the previous version, so it shouldn't be too difficult to upgrade. One note: I'm still working on the Configuration docs, specifically the "reference" section. Though it's pretty small, the rest of read to review | 2023-09-18T21:21:16Z | 2023-10-12T16:16:38Z | 2023-10-12T16:16:38Z | 2023-10-12T16:16:38Z | 35deaabcb105903790d18710a26e77545f6852ce | 0 | 18b48f879b68d1e80e3adbae056710a6238b16bb | 6ed7908580fa2ba9297c3225d85c56f8b08b9937 | CONTRIBUTOR | datasette 107914493 | https://github.com/simonw/datasette/pull/2191 | ||||
1519993584 | PR_kwDOBm6k_c5amULw | 2190 | closed | 0 | Raise an exception if a "plugins" block exists in metadata.json | asg017 15178711 | refs #2183 #2093 From [this comment](https://github.com/simonw/datasette/pull/2183#issuecomment-1714699724) in #2183: If a `"plugins"` block appears in `metadata.json`, it means that a user hasn't migrated over their plugin configuration from `metadata.json` to `datasette.yaml`, which is a breaking change in Datasette 1.0. This PR will ensure that an error is raised whenever that happens. <!-- readthedocs-preview datasette start --> ---- :books: Documentation preview :books:: https://datasette--2190.org.readthedocs.build/en/2190/ <!-- readthedocs-preview datasette end --> | 2023-09-18T18:08:56Z | 2023-10-12T16:20:51Z | 2023-10-12T16:20:51Z | 2023-10-12T16:20:51Z | 3d6d1e3050b8e50fac40ec090672d8a95fa8e06c | 0 | fc7dbe0d8ac3e368b6c335d2ce8abe780f36dbd6 | 6ed7908580fa2ba9297c3225d85c56f8b08b9937 | CONTRIBUTOR | datasette 107914493 | https://github.com/simonw/datasette/pull/2190 | ||||
1515716751 | PR_kwDOBm6k_c5aWACP | 2185 | closed | 0 | Bump the python-packages group with 3 updates | dependabot[bot] 49699333 | Bumps the python-packages group with 3 updates: [sphinx](https://github.com/sphinx-doc/sphinx), [furo](https://github.com/pradyunsg/furo) and [black](https://github.com/psf/black). Updates `sphinx` from 7.2.5 to 7.2.6 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/sphinx-doc/sphinx/releases">sphinx's releases</a>.</em></p> <blockquote> <h2>Sphinx 7.2.6</h2> <p>Changelog: <a href="https://www.sphinx-doc.org/en/master/changes.html">https://www.sphinx-doc.org/en/master/changes.html</a></p> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/sphinx-doc/sphinx/blob/master/CHANGES.rst">sphinx's changelog</a>.</em></p> <blockquote> <h1>Release 7.2.6 (released Sep 13, 2023)</h1> <h2>Bugs fixed</h2> <ul> <li><a href="https://redirect.github.com/sphinx-doc/sphinx/issues/11679">#11679</a>: Add the :envvar:<code>!SPHINX_AUTODOC_RELOAD_MODULES</code> environment variable, which if set reloads modules when using autodoc with <code>TYPE_CHECKING = True</code>. Patch by Matt Wozniski and Adam Turner.</li> <li><a href="https://redirect.github.com/sphinx-doc/sphinx/issues/11679">#11679</a>: Use :py:func:<code>importlib.reload</code> to reload modules in autodoc. Patch by Matt Wozniski and Adam Turner.</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/sphinx-doc/sphinx/commit/cf7d2759af0852d67288e58d823d51fe860749ca"><code>cf7d275</code></a> Bump to 7.2.6 final</li> <li><a href="https://github.com/sphinx-doc/sphinx/commit/43d69755df0088fd0ec099c0893da059f50175e4"><code>43d6975</code></a> Leverage <code>importlib.reload</code> for reloading modules (<a href="https://redirect.github.com/sphinx-doc/sphinx/issues/11679">#11679</a>)</li> <li><a href="https://github.com/sphinx-doc/sphinx/commit/13da5d7b2fda0da58137534e8fcdb0da9c88e55f"><code>13da5d7</code></a> Inline makecmd in make mode</li> <li><a href="https://github.com/sphinx-doc/sphinx/commit/3d0110a95a5260cc5056322eb8c… | 2023-09-14T13:27:40Z | 2023-09-20T22:11:25Z | 2023-09-20T22:11:24Z | 2023-09-20T22:11:24Z | 6763572948ffd047a89a3bbf7c300e91f51ae98f | 0 | fe5f881a5270201d833fff2ebfd08c883116223a | 6ed7908580fa2ba9297c3225d85c56f8b08b9937 | CONTRIBUTOR | datasette 107914493 | https://github.com/simonw/datasette/pull/2185 | ||||
1510964674 | PR_kwDOBm6k_c5aD33C | 2183 | closed | 0 | `datasette.yaml` plugin support | asg017 15178711 | Part of #2093 In #2149 , we ported over `"settings.json"` into the new `datasette.yaml` config file, with a top-level `"settings"` key. This PR ports over plugin configuration into top-level `"plugins"` key, as well as nested database/table plugin config. From now on, no plugin-related configuration is allowed in `metadata.yaml`, and must be in `datasette.yaml` in this new format. This is a pretty significant breaking change. Thankfully, you should be able to copy-paste your legacy plugin key/values into the new `datasette.yaml` format. An example of what `datasette.yaml` would look like with this new plugin config: ```yaml plugins: datasette-my-plugin: config_key: value databases: fixtures: plugins: datasette-my-plugin: config_key: fixtures-db-value tables: students: plugins: datasette-my-plugin: config_key: fixtures-students-table-value ``` As an additional benefit, this now works with the new `-s` flag: ```bash datasette --memory -s 'plugins.datasette-my-plugin.config_key' new_value ``` Marked as a "Draft" right now until I add better documentation. We also should have a plan for the next alpha release to document and publicize this change, especially for plugin authors (since their docs will have to change to say `datasette.yaml` instead of `metadata.yaml` <!-- readthedocs-preview datasette start --> ---- :books: Documentation preview :books:: https://datasette--2183.org.readthedocs.build/en/2183/ <!-- readthedocs-preview datasette end --> | 2023-09-11T20:26:04Z | 2023-09-13T21:06:25Z | 2023-09-13T21:06:25Z | 2023-09-13T21:06:25Z | b2ec8717c3619260a1b535eea20e618bf95aa30b | 0 | acca3387a18a64439d8ae8f535c856c97605a8a5 | a4c96d01b27ce7cd06662a024da3547132a7c412 | CONTRIBUTOR | datasette 107914493 | https://github.com/simonw/datasette/pull/2183 | ||||
1510415840 | PR_kwDOBm6k_c5aBx3g | 2182 | closed | 0 | Bump the python-packages group with 2 updates | dependabot[bot] 49699333 | Bumps the python-packages group with 2 updates: [furo](https://github.com/pradyunsg/furo) and [black](https://github.com/psf/black). Updates `furo` from 2023.8.19 to 2023.9.10 <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pradyunsg/furo/blob/main/docs/changelog.md">furo's changelog</a>.</em></p> <blockquote> <h1>Changelog</h1> <!-- raw HTML omitted --> <h2>2023.09.10 -- Zesty Zaffre</h2> <ul> <li>Make asset hash injection idempotent, fixing Sphinx 6 compatibility.</li> <li>Fix the check for HTML builders, fixing non-HTML Read the Docs builds.</li> </ul> <h2>2023.08.19 -- Xenolithic Xanadu</h2> <ul> <li>Fix missing search context with Sphinx 7.2, for dirhtml builds.</li> <li>Drop support for Python 3.7.</li> <li>Present configuration errors in a better format -- thanks <a href="https://github.com/AA-Turner"><code>@AA-Turner</code></a>!</li> <li>Bump <code>require_sphinx()</code> to Sphinx 6.0, in line with dependency changes in Unassuming Ultramarine.</li> </ul> <h2>2023.08.17 -- Wonderous White</h2> <ul> <li>Fix compatiblity with Sphinx 7.2.0 and 7.2.1.</li> </ul> <h2>2023.07.26 -- Vigilant Volt</h2> <ul> <li>Fix compatiblity with Sphinx 7.1.</li> <li>Improve how content overflow is handled.</li> <li>Improve how literal blocks containing inline code are handled.</li> </ul> <h2>2023.05.20 -- Unassuming Ultramarine</h2> <ul> <li>✨ Add support for Sphinx 7.</li> <li>Drop support for Sphinx 5.</li> <li>Improve the screen-reader label for sidebar collapse.</li> <li>Make it easier to create derived themes from Furo.</li> <li>Bump all JS dependencies (NodeJS and npm packages).</li> </ul> <h2>2023.03.27 -- Tasty Tangerine</h2> <ul> <li>Regenerate with newer version of sphinx-theme-builder, to fix RECORD hashes.</li> <li>Add missing class to Font Awesome examples</li> </ul> <h2>2023.03.23 -- Sassy Saffron</h2> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/pradyunsg/furo/commit/27… | 2023-09-11T14:01:25Z | 2023-09-14T13:27:30Z | 2023-09-14T13:27:28Z | dd3b8703a32faac88c94e79b429c0eb1fe86c537 | 0 | bda70bfb3f2fe4847bcaa6d1b48a721a2214a24c | a4c96d01b27ce7cd06662a024da3547132a7c412 | CONTRIBUTOR | datasette 107914493 | https://github.com/simonw/datasette/pull/2182 | |||||
1504918180 | PR_kwDOBm6k_c5Zszqk | 2175 | closed | 0 | Test against Python 3.12 preview | simonw 9599 | https://dev.to/hugovk/help-test-python-312-beta-1508/ <!-- readthedocs-preview datasette start --> ---- :books: Documentation preview :books:: https://datasette--2175.org.readthedocs.build/en/2175/ <!-- readthedocs-preview datasette end --> | 2023-09-06T16:09:05Z | 2023-09-06T16:16:28Z | 2023-09-06T16:16:27Z | 2023-09-06T16:16:27Z | e86eaaa4f371512689e973c18879298dab51f80a | 0 | 21e77c3ff9e4aacaa9442a7b3b36aafd87025115 | 05707aa16b5c6c39fbe48b3176b85a8ffe493938 | OWNER | datasette 107914493 | https://github.com/simonw/datasette/pull/2175 | ||||
1504915653 | PR_kwDOBm6k_c5ZszDF | 2174 | open | 0 | Use $DATASETTE_INTERNAL in absence of --internal | asg017 15178711 | #refs 2157, specifically [this comment](https://github.com/simonw/datasette/issues/2157#issuecomment-1700291967) Passing in `--internal my_internal.db` over and over again can get repetitive. This PR adds a new configurable env variable `DATASETTE_INTERNAL_DB_PATH`. If it's defined, then it takes place as the path to the internal database. Users can still overwrite this behavior by passing in their own `--internal internal.db` flag. In draft mode for now, needs tests and documentation. Side note: Maybe we can have a sections in the docs that lists all the "configuration environment variables" that Datasette respects? I did a quick grep and found: - `DATASETTE_LOAD_PLUGINS` - `DATASETTE_SECRETS` <!-- readthedocs-preview datasette start --> ---- :books: Documentation preview :books:: https://datasette--2174.org.readthedocs.build/en/2174/ <!-- readthedocs-preview datasette end --> | 2023-09-06T16:07:15Z | 2023-09-08T00:46:13Z | 0fc2896ffc5b49adba967a3d0ab8ac9ca119ba0e | 0 | d75b51950f6836d6e5a58accb48b1d7687dbdd1c | 05707aa16b5c6c39fbe48b3176b85a8ffe493938 | CONTRIBUTOR | datasette 107914493 | https://github.com/simonw/datasette/pull/2174 | ||||||
1503774871 | PR_kwDOBm6k_c5ZociX | 2173 | closed | 0 | click-default-group>=1.2.3 | simonw 9599 | Now available as a wheel: - https://github.com/click-contrib/click-default-group/issues/21 <!-- readthedocs-preview datasette start --> ---- :books: Documentation preview :books:: https://datasette--2173.org.readthedocs.build/en/2173/ <!-- readthedocs-preview datasette end --> | 2023-09-06T02:33:28Z | 2023-09-06T02:50:10Z | 2023-09-06T02:50:10Z | 2023-09-06T02:50:10Z | 05707aa16b5c6c39fbe48b3176b85a8ffe493938 | 0 | a481ebd495d0f87ebd6dcf360a9cff25a6e148d7 | fd083e37ec53e7e625111168d324a572344a3b19 | OWNER | datasette 107914493 | https://github.com/simonw/datasette/pull/2173 | ||||
1497165426 | PR_kwDOBm6k_c5ZPO5y | 2166 | closed | 0 | Bump the python-packages group with 1 update | dependabot[bot] 49699333 | Bumps the python-packages group with 1 update: [sphinx](https://github.com/sphinx-doc/sphinx). <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/sphinx-doc/sphinx/releases">sphinx's releases</a>.</em></p> <blockquote> <h2>Sphinx 7.2.5</h2> <p>Changelog: <a href="https://www.sphinx-doc.org/en/master/changes.html">https://www.sphinx-doc.org/en/master/changes.html</a></p> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/sphinx-doc/sphinx/blob/master/CHANGES">sphinx's changelog</a>.</em></p> <blockquote> <h1>Release 7.2.5 (released Aug 30, 2023)</h1> <h2>Bugs fixed</h2> <ul> <li><a href="https://redirect.github.com/sphinx-doc/sphinx/issues/11645">#11645</a>: Fix a regression preventing autodoc from importing modules within packages that make use of <code>if typing.TYPE_CHECKING:</code> to guard circular imports needed by type checkers. Patch by Matt Wozniski.</li> <li><a href="https://redirect.github.com/sphinx-doc/sphinx/issues/11634">#11634</a>: Fixed inheritance diagram relative link resolution for sibling files in a subdirectory. Patch by Albert Shih.</li> <li><a href="https://redirect.github.com/sphinx-doc/sphinx/issues/11659">#11659</a>: Allow <code>?config=...</code> in :confval:<code>mathjax_path</code>.</li> <li><a href="https://redirect.github.com/sphinx-doc/sphinx/issues/11654">#11654</a>: autodoc: Fail with a more descriptive error message when an object claims to be an instance of <code>type</code>, but is not a class. Patch by James Braza.</li> <li>11620: Cease emitting :event:<code>source-read</code> events for files read via the :dudir:<code>include</code> directive.</li> <li>11620: Add a new :event:<code>include-read</code> for observing and transforming the content of included files via the :dudir:<code>include</code> directive.</li> <li><a href="https://redirect.github.com/sphinx-doc/sphinx/issues/11627">#11627</a>: Restore support for copyright lines of the form <code>YYYY</code> when <code>SOU… | 2023-08-31T13:19:57Z | 2023-09-06T16:34:32Z | 2023-09-06T16:34:31Z | 2023-09-06T16:34:31Z | e4abae3fd7a828625d00c35c316852ffbaa5ef2f | 0 | 7c9df6e5499fdd06a2f5497d07052e23acd0ece7 | 05707aa16b5c6c39fbe48b3176b85a8ffe493938 | CONTRIBUTOR | datasette 107914493 | https://github.com/simonw/datasette/pull/2166 | ||||
1496106142 | PR_kwDOBm6k_c5ZLMSe | 2165 | closed | 0 | DATASETTE_LOAD_PLUGINS environment variable for loading specific plugins | simonw 9599 | - #2164 TODO: - [x] Automated tests - [ ] Documentation - [x] Make sure `DATASETTE_LOAD_PLUGINS=''` works for loading zero plugins | 2023-08-30T20:33:30Z | 2023-08-30T22:12:25Z | 2023-08-30T22:12:25Z | 2023-08-30T22:12:25Z | 6bfe104d47b888c70bfb7781f8f48ff11452b2b5 | 0 | 6321c9c055a640ed6ea98e231dc5813dcde1f773 | 30b28c8367a9c6870386ea10a202705b40862457 | OWNER | datasette 107914493 | https://github.com/simonw/datasette/pull/2165 | ||||
1507122571 | PR_kwDOBm6k_c5Z1N2L | 2181 | closed | 0 | actors_from_ids plugin hook and datasette.actors_from_ids() method | simonw 9599 | Refs: - #2180 This plugin hook is feature complete - including documentation and tests. I'm not going to land it in Datasette `main` until we've used it at least once though, which should happen promptly in development for [Datasette Cloud](https://www.datasette.cloud/). <!-- readthedocs-preview datasette start --> ---- :books: Documentation preview :books:: https://datasette--2181.org.readthedocs.build/en/2181/ <!-- readthedocs-preview datasette end --> | 2023-09-08T01:51:07Z | 2023-09-08T04:24:00Z | 2023-09-08T04:23:59Z | 2023-09-08T04:23:59Z | b645174271aa08e8ca83b27ff83ce078ecd15da2 | 0 | e1c5a9d92b7677eaf9eff58d05badb39d078d1bd | c26370485a4fd4bf130da051be9163d92c57f24f | OWNER | datasette 107914493 | https://github.com/simonw/datasette/pull/2181 | ||||
1489526658 | PR_kwDOBm6k_c5YyF-C | 2159 | open | 0 | Implement Dark Mode colour scheme | jamietanna 3315059 | Closes #2095. <!-- readthedocs-preview datasette start --> ---- :books: Documentation preview :books:: https://datasette--2159.org.readthedocs.build/en/2159/ <!-- readthedocs-preview datasette end --> | 2023-08-25T10:46:23Z | 2023-08-25T10:46:35Z | 97687cea4bd9c94ae76a780311e044b3c77ef902 | 1 | 4b969945d106e48b50545fc029ec020593ee1db0 | 527cec66b0403e689c8fb71fc8b381a1d7a46516 | FIRST_TIME_CONTRIBUTOR | datasette 107914493 | https://github.com/simonw/datasette/pull/2159 | ||||||
1488782498 | PR_kwDOBm6k_c5YvQSi | 2158 | open | 0 | add brand option to metadata.json. | publicmatt 52261150 | This adds a brand link to the top navbar if 'brand' key is populated in metadata.json. The link will be either '#' or use the contents of 'brand_url' in metadata.json for href. I was able to get this done on my own site by replacing `templates/_crumbs.html` with a custom version, but I thought it would be nice to incorporate this in the tool directly. ![image](https://github.com/simonw/datasette/assets/52261150/fdfe9bb5-fee4-466c-8074-6132071d94e6) <!-- readthedocs-preview datasette start --> ---- :books: Documentation preview :books:: https://datasette--2158.org.readthedocs.build/en/2158/ <!-- readthedocs-preview datasette end --> | 2023-08-24T22:37:41Z | 2023-08-24T22:37:57Z | 20fad9361ea7173a3543fa16e4b6913a3a0f4b9e | 0 | 0d89c4bd19732487232ab2637cf5e8632f48986b | 527cec66b0403e689c8fb71fc8b381a1d7a46516 | FIRST_TIME_CONTRIBUTOR | datasette 107914493 | https://github.com/simonw/datasette/pull/2158 | ||||||
1488414606 | PR_kwDOBm6k_c5Yt2eO | 2155 | open | 0 | Fix hupper.start_reloader entry point | cadeef 79087 | Update hupper's entry point so that click commands are processed properly. Fixes #2123 <!-- readthedocs-preview datasette start --> ---- :books: Documentation preview :books:: https://datasette--2155.org.readthedocs.build/en/2155/ <!-- readthedocs-preview datasette end --> | 2023-08-24T17:14:08Z | 2023-09-27T18:44:02Z | 8b993f48927cfb89f31251a94dc7b48b6b2d3021 | 0 | ba2c235a8ea7240549af38988b4cbff8d7ec55bd | bdf59eb7db42559e538a637bacfe86d39e5d17ca | FIRST_TIME_CONTRIBUTOR | datasette 107914493 | https://github.com/simonw/datasette/pull/2155 | ||||||
1488057979 | PR_kwDOBm6k_c5YsfZ7 | 2152 | closed | 0 | Bump the python-packages group with 3 updates | dependabot[bot] 49699333 | Bumps the python-packages group with 3 updates: [sphinx](https://github.com/sphinx-doc/sphinx), [furo](https://github.com/pradyunsg/furo) and [blacken-docs](https://github.com/asottile/blacken-docs). Updates `sphinx` from 7.1.2 to 7.2.3 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/sphinx-doc/sphinx/releases">sphinx's releases</a>.</em></p> <blockquote> <h2>Sphinx 7.2.3</h2> <p>Changelog: <a href="https://www.sphinx-doc.org/en/master/changes.html">https://www.sphinx-doc.org/en/master/changes.html</a></p> <h2>Sphinx 7.2.2</h2> <p>Changelog: <a href="https://www.sphinx-doc.org/en/master/changes.html">https://www.sphinx-doc.org/en/master/changes.html</a></p> <h2>Sphinx 7.2.1</h2> <p>Changelog: <a href="https://www.sphinx-doc.org/en/master/changes.html">https://www.sphinx-doc.org/en/master/changes.html</a></p> <h2>Sphinx 7.2.0</h2> <p>Changelog: <a href="https://www.sphinx-doc.org/en/master/changes.html">https://www.sphinx-doc.org/en/master/changes.html</a></p> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/sphinx-doc/sphinx/blob/master/CHANGES">sphinx's changelog</a>.</em></p> <blockquote> <h1>Release 7.2.3 (released Aug 23, 2023)</h1> <h2>Dependencies</h2> <ul> <li><a href="https://redirect.github.com/sphinx-doc/sphinx/issues/11576">#11576</a>: Require sphinxcontrib-serializinghtml 1.1.9.</li> </ul> <h2>Bugs fixed</h2> <ul> <li>Fix regression in <code>autodoc.Documenter.parse_name()</code>.</li> <li>Fix regression in JSON serialisation.</li> <li><a href="https://redirect.github.com/sphinx-doc/sphinx/issues/11543">#11543</a>: autodoc: Support positional-only parameters in <code>classmethod</code> methods when <code>autodoc_preserve_defaults</code> is <code>True</code>.</li> <li>Restore support string methods on path objects. This is deprecated and will be removed in Sphinx 8. Use :py:func<code>os.fspath</code> to convert :py:class:<del><code>pathlib.Path</code> objects to strings, or :py:class:</del><code>p… | 2023-08-24T13:34:44Z | 2023-08-28T13:49:39Z | 2023-08-28T13:49:37Z | 67309f5c52670b5a139bcfc7bbce8039a5af2a00 | 0 | 5dfa3055fa9812a7ae56741a0103ae59352f44bb | 527cec66b0403e689c8fb71fc8b381a1d7a46516 | CONTRIBUTOR | datasette 107914493 | https://github.com/simonw/datasette/pull/2152 | |||||
1488154809 | PR_kwDOBm6k_c5Ys3C5 | 2154 | closed | 0 | Cascade for restricted token view-table/view-database/view-instance operations | simonw 9599 | Refs: - #2102 Also includes a prototype implementation of `--actor option` which I'm using for testing this, from: - #2153 <!-- readthedocs-preview datasette start --> ---- :books: Documentation preview :books:: https://datasette--2154.org.readthedocs.build/en/2154/ <!-- readthedocs-preview datasette end --> | 2023-08-24T14:24:23Z | 2023-08-29T16:32:35Z | 2023-08-29T16:32:34Z | 2023-08-29T16:32:34Z | 50da908213a0fc405ecd7a40090dfea7a2e7395c | 0 | 1b38cba913b0a3515b4b1649276dc1ff973680bb | 2e2825869fc2655b5fcadc743f6f9dec7a49bc65 | OWNER | datasette 107914493 | https://github.com/simonw/datasette/pull/2154 | ||||
1487124196 | PR_kwDOBm6k_c5Yo7bk | 2151 | open | 0 | Test Datasette on multiple SQLite versions | asg017 15178711 | still testing, hope it works! <!-- readthedocs-preview datasette start --> ---- :books: Documentation preview :books:: https://datasette--2151.org.readthedocs.build/en/2151/ <!-- readthedocs-preview datasette end --> | 2023-08-23T22:42:51Z | 2023-08-23T22:58:13Z | 3d2c7cbf727c0ca31161a7acb8ea51f1ee7dcd58 | 1 | b895cd2fb308154de67972c485e54497c006f47e | bdf59eb7db42559e538a637bacfe86d39e5d17ca | CONTRIBUTOR | datasette 107914493 | https://github.com/simonw/datasette/pull/2151 | ||||||
1485078422 | PR_kwDOBm6k_c5YhH-W | 2149 | closed | 0 | Start a new `datasette.yaml` configuration file, with settings support | asg017 15178711 | refs #2093 #2143 This is the first step to implementing the new `datasette.yaml`/`datasette.json` configuration file. - The old `--config` argument is now back, and is the path to a `datasette.yaml` file. Acts like the `--metadata` flag. - The old `settings.json` behavior has been removed. - The `"settings"` key inside `datasette.yaml` defines the same `--settings` flags - Values passed in `--settings` will over-write values in `datasette.yaml` Docs for the Config file is pretty light, not much to add until we add more config to the file. <!-- readthedocs-preview datasette start --> ---- :books: Documentation preview :books:: https://datasette--2149.org.readthedocs.build/en/2149/ <!-- readthedocs-preview datasette end --> | 2023-08-22T16:24:16Z | 2023-08-23T01:26:11Z | 2023-08-23T01:26:11Z | 2023-08-23T01:26:11Z | 17ec309e14f9c2e90035ba33f2f38ecc5afba2fa | 0 | db720cd603def51f1d0f074a16d186779a962ea7 | 943df09dcca93c3b9861b8c96277a01320db8662 | CONTRIBUTOR | datasette 107914493 | https://github.com/simonw/datasette/pull/2149 | ||||
1482920218 | PR_kwDOBm6k_c5YY5Ea | 2148 | closed | 0 | Bump sphinx, furo, blacken-docs dependencies | dependabot[bot] 49699333 | Bumps the python-packages group with 3 updates: [sphinx](https://github.com/sphinx-doc/sphinx), [furo](https://github.com/pradyunsg/furo) and [blacken-docs](https://github.com/asottile/blacken-docs). Updates `sphinx` from 7.1.2 to 7.2.2 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/sphinx-doc/sphinx/releases">sphinx's releases</a>.</em></p> <blockquote> <h2>Sphinx 7.2.2</h2> <p>Changelog: <a href="https://www.sphinx-doc.org/en/master/changes.html">https://www.sphinx-doc.org/en/master/changes.html</a></p> <h2>Sphinx 7.2.1</h2> <p>Changelog: <a href="https://www.sphinx-doc.org/en/master/changes.html">https://www.sphinx-doc.org/en/master/changes.html</a></p> <h2>Sphinx 7.2.0</h2> <p>Changelog: <a href="https://www.sphinx-doc.org/en/master/changes.html">https://www.sphinx-doc.org/en/master/changes.html</a></p> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/sphinx-doc/sphinx/blob/master/CHANGES">sphinx's changelog</a>.</em></p> <blockquote> <h1>Release 7.2.2 (released Aug 17, 2023)</h1> <h2>Bugs fixed</h2> <ul> <li>Fix the signature of the <code>StateMachine.insert_input()</code> patch, for when calling with keyword arguments.</li> <li>Fixed membership testing (<code>in</code>) for the :py:class:<code>str</code> interface of the asset classes (<code>_CascadingStyleSheet</code> and <code>_JavaScript</code>), which several extensions relied upon.</li> <li>Fixed a type error in <code>SingleFileHTMLBuilder._get_local_toctree</code>, <code>includehidden</code> may be passed as a string or a boolean.</li> <li>Fix <code>:noindex:</code> for <code>PyModule</code> and JSModule``.</li> </ul> <h1>Release 7.2.1 (released Aug 17, 2023)</h1> <h2>Bugs fixed</h2> <ul> <li>Restored the the :py:class:<code>str</code> interface of the asset classes (<code>_CascadingStyleSheet</code> and <code>_JavaScript</code>), which several extensions relied upon. This will be removed in Sphinx 9.</li> <li>Restored calls to <code>Builder.add… | 2023-08-21T13:48:11Z | 2023-08-29T00:15:31Z | 2023-08-29T00:15:27Z | bbe51d990f37e90d34a566186ca720494626bfa2 | 0 | a651d3cc8b57f6acc9e72d4f6f9e9b107edc9295 | 17ec309e14f9c2e90035ba33f2f38ecc5afba2fa | CONTRIBUTOR | datasette 107914493 | https://github.com/simonw/datasette/pull/2148 | |||||
1480615708 | PR_kwDOBm6k_c5YQGcc | 2144 | closed | 0 | Bump the python-packages group with 3 updates | dependabot[bot] 49699333 | Bumps the python-packages group with 3 updates: [sphinx](https://github.com/sphinx-doc/sphinx), [furo](https://github.com/pradyunsg/furo) and [blacken-docs](https://github.com/asottile/blacken-docs). Updates `sphinx` from 7.1.2 to 7.2.2 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/sphinx-doc/sphinx/releases">sphinx's releases</a>.</em></p> <blockquote> <h2>Sphinx 7.2.2</h2> <p>Changelog: <a href="https://www.sphinx-doc.org/en/master/changes.html">https://www.sphinx-doc.org/en/master/changes.html</a></p> <h2>Sphinx 7.2.1</h2> <p>Changelog: <a href="https://www.sphinx-doc.org/en/master/changes.html">https://www.sphinx-doc.org/en/master/changes.html</a></p> <h2>Sphinx 7.2.0</h2> <p>Changelog: <a href="https://www.sphinx-doc.org/en/master/changes.html">https://www.sphinx-doc.org/en/master/changes.html</a></p> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/sphinx-doc/sphinx/blob/master/CHANGES">sphinx's changelog</a>.</em></p> <blockquote> <h1>Release 7.2.2 (released Aug 17, 2023)</h1> <h2>Bugs fixed</h2> <ul> <li>Fix the signature of the <code>StateMachine.insert_input()</code> patch, for when calling with keyword arguments.</li> <li>Fixed membership testing (<code>in</code>) for the :py:class:<code>str</code> interface of the asset classes (<code>_CascadingStyleSheet</code> and <code>_JavaScript</code>), which several extensions relied upon.</li> <li>Fixed a type error in <code>SingleFileHTMLBuilder._get_local_toctree</code>, <code>includehidden</code> may be passed as a string or a boolean.</li> <li>Fix <code>:noindex:</code> for <code>PyModule</code> and JSModule``.</li> </ul> <h1>Release 7.2.1 (released Aug 17, 2023)</h1> <h2>Bugs fixed</h2> <ul> <li>Restored the the :py:class:<code>str</code> interface of the asset classes (<code>_CascadingStyleSheet</code> and <code>_JavaScript</code>), which several extensions relied upon. This will be removed in Sphinx 9.</li> <li>Restored calls to <code>Builder.add… | 2023-08-18T13:49:37Z | 2023-08-21T13:48:18Z | 2023-08-21T13:48:16Z | dc265dd15d0c7f42aef86755bfea28bbb3ce557b | 0 | 3a97755e8924130e649009877a255fa9b7cc703b | 943df09dcca93c3b9861b8c96277a01320db8662 | CONTRIBUTOR | datasette 107914493 | https://github.com/simonw/datasette/pull/2144 | |||||
1479018104 | PR_kwDOBm6k_c5YKAZ4 | 2142 | closed | 0 | Bump the python-packages group with 2 updates | dependabot[bot] 49699333 | Bumps the python-packages group with 2 updates: [sphinx](https://github.com/sphinx-doc/sphinx) and [blacken-docs](https://github.com/asottile/blacken-docs). Updates `sphinx` from 7.1.2 to 7.2.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/sphinx-doc/sphinx/releases">sphinx's releases</a>.</em></p> <blockquote> <h2>Sphinx 7.2.0</h2> <p>Changelog: <a href="https://www.sphinx-doc.org/en/master/changes.html">https://www.sphinx-doc.org/en/master/changes.html</a></p> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/sphinx-doc/sphinx/blob/master/CHANGES">sphinx's changelog</a>.</em></p> <blockquote> <h1>Release 7.2.0 (released Aug 17, 2023)</h1> <h2>Dependencies</h2> <ul> <li><a href="https://redirect.github.com/sphinx-doc/sphinx/issues/11511">#11511</a>: Drop Python 3.8 support.</li> <li><a href="https://redirect.github.com/sphinx-doc/sphinx/issues/11576">#11576</a>: Require Pygments 2.14 or later.</li> </ul> <h2>Deprecated</h2> <ul> <li><a href="https://redirect.github.com/sphinx-doc/sphinx/issues/11512">#11512</a>: Deprecate <code>sphinx.util.md5</code> and <code>sphinx.util.sha1</code>. Use <code>hashlib</code> instead.</li> <li><a href="https://redirect.github.com/sphinx-doc/sphinx/issues/11526">#11526</a>: Deprecate <code>sphinx.testing.path</code>. Use <code>os.path</code> or <code>pathlib</code> instead.</li> <li><a href="https://redirect.github.com/sphinx-doc/sphinx/issues/11528">#11528</a>: Deprecate <code>sphinx.util.split_index_msg</code> and <code>sphinx.util.split_into</code>. Use <code>sphinx.util.index_entries.split_index_msg</code> instead.</li> <li>Deprecate <code>sphinx.builders.html.Stylesheet</code> and <code>sphinx.builders.html.Javascript</code>. Use <code>sphinx.application.Sphinx.add_css_file()</code> and <code>sphinx.application.Sphinx.add_js_file()</code> instead.</li> <li><a href="https://redirect.github.com/sphinx-doc/sphinx/issues/11582">#11582</a>: Deprecate <code>sphinx.builders.h… | 2023-08-17T13:07:53Z | 2023-08-18T13:49:29Z | 2023-08-18T13:49:26Z | 51c92d2b93052de68b53f2dbee1e8bde5e841dd8 | 0 | 6b617f7f50fb72feb9767b3b430495097f16140a | 943df09dcca93c3b9861b8c96277a01320db8662 | CONTRIBUTOR | datasette 107914493 | https://github.com/simonw/datasette/pull/2142 | |||||
1477525578 | PR_kwDOBm6k_c5YEUBK | 2141 | closed | 0 | Bump the python-packages group with 1 update | dependabot[bot] 49699333 | Bumps the python-packages group with 1 update: [blacken-docs](https://github.com/asottile/blacken-docs). <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/adamchainz/blacken-docs/blob/main/CHANGELOG.rst">blacken-docs's changelog</a>.</em></p> <blockquote> <h2>1.16.0 (2023-08-16)</h2> <ul> <li> <p>Allow Markdown fence options.</p> <p>Thanks to initial work from Matthew Anderson in <code>PR [#246](https://github.com/asottile/blacken-docs/issues/246) <https://github.com/adamchainz/blacken-docs/pull/246></code>__.</p> </li> <li> <p>Expand Markdown detection to all Python language names from Pygments: <code>py</code>, <code>sage</code>, <code>python3</code>, <code>py3</code>, and <code>numpy</code>.</p> </li> <li> <p>Preserve leading whitespace lines in reStructuredText code blocks.</p> <p>Thanks to Julianus Pfeuffer for the report in <code>Issue [#217](https://github.com/asottile/blacken-docs/issues/217) <https://github.com/adamchainz/blacken-docs/issues/217></code>__.</p> </li> <li> <p>Use exit code 2 to indicate errors from Black, whilst exit code 1 remains for “files have been formatted”.</p> <p>Thanks to Julianus Pfeuffer for the report in <code>Issue [#218](https://github.com/asottile/blacken-docs/issues/218) <https://github.com/adamchainz/blacken-docs/issues/218></code>__.</p> </li> <li> <p>Support passing the <code>--preview</code> option through to Black, to select the future style.</p> </li> <li> <p>Remove <code>language_version</code> from <code>.pre-commit-hooks.yaml</code>. This change allows <code>default_language_version</code> in ``.pre-commit-config.yaml` to take precedence.</p> <p>Thanks to Aneesh Agrawal in <code>PR [#258](https://github.com/asottile/blacken-docs/issues/258) <https://github.com/adamchainz/blacken-docs/pull/258></code>__.</p> </li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/adamchainz/blacken-docs/commit/960ead214cd1184149d366c6d27ca6c369ce46b6"><code>960ead2</c… | 2023-08-16T13:47:35Z | 2023-08-17T13:07:48Z | 2023-08-17T13:07:45Z | dcd7926e18195d4f301a89de73711f58dcc76c95 | 0 | e2be94a4e064464e1050964bcf41807dbfd9d809 | 943df09dcca93c3b9861b8c96277a01320db8662 | CONTRIBUTOR | datasette 107914493 | https://github.com/simonw/datasette/pull/2141 | |||||
1492599485 | PR_kwDOBm6k_c5Y90K9 | 2161 | closed | 0 | -s/--setting x y gets merged into datasette.yml, refs #2143, #2156 | simonw 9599 | This change updates the `-s/--setting` option to `datasette serve` to allow it to be used to set arbitrarily complex nested settings in a way that is compatible with the new `-c datasette.yml` work happening in: - #2143 It will enable things like this: ``` datasette data.db --setting plugins.datasette-ripgrep.path "/home/simon/code" ``` For the moment though it just affects [settings](https://docs.datasette.io/en/1.0a4/settings.html) - so you can do this: ``` datasette data.db --setting settings.sql_time_limit_ms 3500 ``` I've also implemented a backwards compatibility mechanism, so if you use it this way (the old way): ``` datasette data.db --setting sql_time_limit_ms 3500 ``` It will notice that the setting you passed is one of Datasette's core settings, and will treat that as if you said `settings.sql_time_limit_ms` instead. <!-- readthedocs-preview datasette start --> ---- :books: Documentation preview :books:: https://datasette--2161.org.readthedocs.build/en/2161/ <!-- readthedocs-preview datasette end --> | 2023-08-28T19:30:42Z | 2023-08-28T20:06:15Z | 2023-08-28T20:06:14Z | 2023-08-28T20:06:14Z | d9aad1fd042a25d226f2ace1f7827b4602761038 | 0 | a5cbf80d795b599697b2b873566386abb0cd8b32 | 527cec66b0403e689c8fb71fc8b381a1d7a46516 | OWNER | datasette 107914493 | https://github.com/simonw/datasette/pull/2161 |
Advanced export
JSON shape: default, array, newline-delimited, object
CREATE TABLE [pull_requests] ( [id] INTEGER PRIMARY KEY, [node_id] TEXT, [number] INTEGER, [state] TEXT, [locked] INTEGER, [title] TEXT, [user] INTEGER REFERENCES [users]([id]), [body] TEXT, [created_at] TEXT, [updated_at] TEXT, [closed_at] TEXT, [merged_at] TEXT, [merge_commit_sha] TEXT, [assignee] INTEGER REFERENCES [users]([id]), [milestone] INTEGER REFERENCES [milestones]([id]), [draft] INTEGER, [head] TEXT, [base] TEXT, [author_association] TEXT, [repo] INTEGER REFERENCES [repos]([id]), [url] TEXT, [merged_by] INTEGER REFERENCES [users]([id]) , [auto_merge] TEXT); CREATE INDEX [idx_pull_requests_merged_by] ON [pull_requests] ([merged_by]); CREATE INDEX [idx_pull_requests_repo] ON [pull_requests] ([repo]); CREATE INDEX [idx_pull_requests_milestone] ON [pull_requests] ([milestone]); CREATE INDEX [idx_pull_requests_assignee] ON [pull_requests] ([assignee]); CREATE INDEX [idx_pull_requests_user] ON [pull_requests] ([user]);