pull_requests
608 rows sorted by number
This data as json, CSV (advanced)
closed_at (date) >30 ✖
- 2021-10-13 10
- 2019-05-03 9
- 2020-05-04 9
- 2021-03-29 6
- 2022-03-06 6
- 2018-04-14 5
- 2021-05-22 5
- 2023-03-29 5
- 2023-05-08 5
- 2019-11-11 4
- 2019-11-12 4
- 2021-05-19 4
- 2021-10-14 4
- 2021-11-30 4
- 2022-09-05 4
- 2023-08-07 4
- 2023-08-29 4
- 2023-11-04 4
- 2019-07-03 3
- 2019-10-14 3
- 2019-11-13 3
- 2020-02-25 3
- 2020-10-14 3
- 2020-10-27 3
- 2020-10-29 3
- 2021-02-14 3
- 2021-04-29 3
- 2021-06-02 3
- 2021-08-25 3
- 2022-07-18 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 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
475874493 | MDExOlB1bGxSZXF1ZXN0NDc1ODc0NDkz | 146 | closed | 0 | Handle case where subsequent records (after first batch) include extra columns | simonwiles 96218 | Addresses #145. I think this should do the job. If it meets with your approval I'll update this PR to include an update to the documentation -- I came across this bug while preparing a PR to update the documentation around `batch_size` in any event. | 2020-08-30T07:13:58Z | 2020-09-08T23:20:37Z | 2020-09-08T23:20:37Z | 2020-09-08T23:20:36Z | e6d202b742a7b531fffa593703d34f8337632d68 | 0 | 40fcea41525682fdc2f601da787b29d5a8517dcd | deb2eb013ff85bbc828ebc244a9654f0d9c3139e | CONTRIBUTOR | sqlite-utils 140912432 | https://github.com/simonw/sqlite-utils/pull/146 | ||||
481616704 | MDExOlB1bGxSZXF1ZXN0NDgxNjE2NzA0 | 151 | closed | 0 | Tracer mechanism for seeing underlying SQL | simonw 9599 | Refs #150. Needs tests and documentation, including for the new `db.execute()` and `db.executescript()` methods. | 2020-09-07T19:46:43Z | 2020-09-07T21:57:00Z | 2020-09-07T21:57:00Z | 2020-09-07T21:57:00Z | cf2cb244faf992118f34aa196387a4ef8b39a20f | 0 | dc82bf371911d01ac140f40ea99d06d2daee507e | 3e87500e1561f5c4e105cd026d33e0f715cc7dea | OWNER | sqlite-utils 140912432 | https://github.com/simonw/sqlite-utils/pull/151 | ||||
483027587 | MDExOlB1bGxSZXF1ZXN0NDgzMDI3NTg3 | 156 | closed | 0 | Typos in tests | simonwiles 96218 | One of these is my fault, and the other is one I just happened to come across. They're harmless, but might as well be fixed. | 2020-09-09T18:00:58Z | 2020-09-09T18:24:50Z | 2020-09-09T18:21:23Z | 2020-09-09T18:21:23Z | 367082e787101fb90901ef3214804ab23a92ce46 | 0 | b777776753ef08f35dfaa7d86b2d5082e8904f27 | 6be61263642d8e46ec54cf5f51af74e0df2f2393 | CONTRIBUTOR | sqlite-utils 140912432 | https://github.com/simonw/sqlite-utils/pull/156 | ||||
483175509 | MDExOlB1bGxSZXF1ZXN0NDgzMTc1NTA5 | 158 | closed | 0 | Fix accidental mega long line in docs | tomviner 167319 | 2020-09-09T22:31:23Z | 2020-09-16T06:21:43Z | 2020-09-16T06:21:43Z | 2020-09-16T06:21:43Z | 7805d53bcf11199bd1f2b07e05ae90151f9d0eb0 | 0 | 5c1d8a5f3ac8684657eefe4f57ff5ff605f6b633 | 367082e787101fb90901ef3214804ab23a92ce46 | CONTRIBUTOR | sqlite-utils 140912432 | https://github.com/simonw/sqlite-utils/pull/158 | |||||
490607949 | MDExOlB1bGxSZXF1ZXN0NDkwNjA3OTQ5 | 161 | closed | 0 | table.transform() method | simonw 9599 | Refs #114 - [x] Ability to change the primary key - [x] Support for changing default value for columns - [x] Support for changing `NOT NULL` status of columns - [x] Support for copying existing foreign keys and removing them - <strike>Support for `conversions=` parameter</strike> - [x] Detailed documentation - [x] `PRAGMA foreign_keys` stuff | 2020-09-21T23:16:59Z | 2020-09-22T07:48:24Z | 2020-09-22T04:20:02Z | 2020-09-22T04:20:02Z | 987dd123f2ac43c5ab66d69e59d454fe09660606 | 2.20 5897911 | 0 | dc3eb9c313502832c07f4de889aa60c373f45b52 | ef882986d07f157b6bcc6be3d7b64270fda3e523 | OWNER | sqlite-utils 140912432 | https://github.com/simonw/sqlite-utils/pull/161 | |||
490703173 | MDExOlB1bGxSZXF1ZXN0NDkwNzAzMTcz | 166 | closed | 0 | Keyword only arguments for transform() | simonw 9599 | Refs #165 | 2020-09-22T05:41:44Z | 2020-09-22T06:39:11Z | 2020-09-22T06:39:11Z | 2020-09-22T06:39:10Z | f8e10df00eae209fb0a1ea03384d9153f673a3ec | 0 | f8648cac3a6dda90578a1536cdae44d145633a2c | 987dd123f2ac43c5ab66d69e59d454fe09660606 | OWNER | sqlite-utils 140912432 | https://github.com/simonw/sqlite-utils/pull/166 | ||||
157365811 | MDExOlB1bGxSZXF1ZXN0MTU3MzY1ODEx | 168 | closed | 0 | Upgrade to Sanic 0.7.0 | simonw 9599 | 2017-12-09T01:25:08Z | 2017-12-09T03:00:34Z | 2017-12-09T03:00:34Z | 2017-12-09T03:00:34Z | 446f4b832272b2286f6f65af19714eb64afb7aa6 | 0 | d9e13a5cc2b77637a6cdd8bd21b9b8fc1350051a | 61e3c5a1e904a6e1cbee86ba1494b5cb4b5820cf | OWNER | datasette 107914493 | https://github.com/simonw/datasette/pull/168 | |||||
492257405 | MDExOlB1bGxSZXF1ZXN0NDkyMjU3NDA1 | 174 | closed | 0 | Much, much faster extract() implementation | simonw 9599 | Takes my test down from ten minutes to four seconds. Refs #172. | 2020-09-24T07:52:31Z | 2020-09-24T15:44:00Z | 2020-09-24T15:43:56Z | 2020-09-24T15:43:56Z | 022cdd97a9ddab1a152e23e1e1c42e78c1ed0fa9 | 0 | 227095ee90e2a92effec6478d3e629a24d3ccfba | 0ca5585fcb834122193e8e7186f926217b23cb8a | OWNER | sqlite-utils 140912432 | https://github.com/simonw/sqlite-utils/pull/174 | ||||
161982711 | MDExOlB1bGxSZXF1ZXN0MTYxOTgyNzEx | 178 | closed | 0 | If metadata exists, add it to heroku launch command | psychemedia 82988 | The heroku build does seem to make use of any provided `metadata.json` file. Add the `--metadata` switch to the Heroku web launch command if a `metadata.json` file is available. Addresses: https://github.com/simonw/datasette/issues/177 | 2018-01-09T21:42:21Z | 2018-01-15T09:42:46Z | 2018-01-14T21:05:16Z | 2018-01-14T21:05:16Z | 3a56a2cd7eea5d477d5d936b01098be5cba0d98e | 0 | 1bc9ed98c4f4fd91b70560ac8f507a2fddbd8317 | 306e1c6ac4f00cc25d676a6ee660938f5b27427c | CONTRIBUTOR | datasette 107914493 | https://github.com/simonw/datasette/pull/178 | ||||
493162767 | MDExOlB1bGxSZXF1ZXN0NDkzMTYyNzY3 | 178 | closed | 0 | Update README.md | shakeel 19921 | The `sqlite-utils insert releases.db releases - --pk` is missing the pk field name, added ` "id"` to fix it. | 2020-09-25T15:52:11Z | 2020-10-01T14:18:30Z | 2020-09-30T20:29:28Z | 2020-09-30T20:29:28Z | cada1017edcfa691c2314d7ad1b7c7576495317f | 0 | 0c6a81dae802a55d5469c18cd32402d11b6e8a59 | 94fc62857ee2655a21d85f6dae84b67bbfa5956d | CONTRIBUTOR | sqlite-utils 140912432 | https://github.com/simonw/sqlite-utils/pull/178 | ||||
163523976 | MDExOlB1bGxSZXF1ZXN0MTYzNTIzOTc2 | 180 | closed | 0 | make html title more readable in query template | ryanpitts 56477 | tiny tweak to make this easier to visually parse—I think it matches your style in other templates | 2018-01-17T18:56:03Z | 2018-04-03T16:03:38Z | 2018-04-03T15:24:05Z | 2018-04-03T15:24:05Z | 446d47fdb005b3776bc06ad8d1f44b01fc2e938b | 0 | dc900b2f587c839e97389aaca70140fb06b4d40b | 56623e48da5412b25fb39cc26b9c743b684dd968 | CONTRIBUTOR | datasette 107914493 | https://github.com/simonw/datasette/pull/180 | ||||
163561830 | MDExOlB1bGxSZXF1ZXN0MTYzNTYxODMw | 181 | closed | 0 | add "format sql" button to query page, uses sql-formatter | bsmithgall 1957344 | Cool project! This fixes #136 using the suggested [sql formatter](https://github.com/zeroturnaround/sql-formatter) library. I included the minified version in the bundle and added the relevant scripts to the codemirror includes instead of adding new files, though I could also add new files. I wanted to keep it all together, since the result of the format needs access to the editor in order to properly update the codemirror instance. | 2018-01-17T21:50:04Z | 2019-11-11T03:08:25Z | 2019-11-11T03:08:25Z | a9ac208088e536043890e0f7ff8a182398576a51 | 0 | 86ac746cfcbf2fa86863f8fab528494600eac1ae | a290f28caae61b47e76e825c06984f22fc41a694 | NONE | datasette 107914493 | https://github.com/simonw/datasette/pull/181 | |||||
165029807 | MDExOlB1bGxSZXF1ZXN0MTY1MDI5ODA3 | 182 | closed | 0 | Add db filesize next to download link | raynae 3433657 | Took a stab at #172, will this do the trick? | 2018-01-25T04:58:56Z | 2019-03-22T13:50:57Z | 2019-02-06T04:59:38Z | a8d9e69872dec9a551b25cd609ffdbf3896045bd | 0 | b62835205a830472abb66c708822c2dcdf4ab027 | 56623e48da5412b25fb39cc26b9c743b684dd968 | CONTRIBUTOR | datasette 107914493 | https://github.com/simonw/datasette/pull/182 | |||||
499603359 | MDExOlB1bGxSZXF1ZXN0NDk5NjAzMzU5 | 184 | closed | 0 | Test against Python 3.9 | simonw 9599 | 2020-10-08T01:37:05Z | 2020-10-08T01:44:06Z | 2020-10-08T01:44:06Z | 2020-10-08T01:44:06Z | 8e91de8e4edf6c8abeeccdf084b8870fff40a51a | 0 | 975c05b6dde9feebcdecabc047d47122ebcfdf84 | 7f4fe9190c1df7f0e72f9d7040327a43cf252c48 | OWNER | sqlite-utils 140912432 | https://github.com/simonw/sqlite-utils/pull/184 | |||||
510235909 | MDExOlB1bGxSZXF1ZXN0NTEwMjM1OTA5 | 189 | closed | 0 | Allow iterables other than Lists in m2m records | adamwolf 35681 | I was playing around with sqlite-utils, creating a Roam Research dogsheep-style importer for Datasette, and ran into a slight snag. I wanted to use a generator to add an order column in an importer. It looked something like: ``` def order_generator(iterable, attr=None): if attr is None: attr = "order" order: int = 0 for i in iterable: i[attr] = order order += 1 yield i ``` When I used this with `insert_all` and other things, it worked fine--but it didn't work as the `records` argument to `m2m`. I dug into it, and sqlite-utils is explicitly checking if the records argument is a list or a tuple. I flipped the check upside down, and now it checks if the argument is a mapping. If it's a mapping, it wraps it in a list, otherwise it leaves it alone. (I get that it might not really make sense to put the order column on the second table. I changed my import schema a bit, and no longer have a real example, but maybe this change still makes sense.) The automated tests still pass, but I did not add any new ones. Let me know what you think! I'm really loving Datasette and its ecosystem; thanks for everything! | 2020-10-26T18:47:44Z | 2020-10-27T16:28:37Z | 2020-10-27T16:24:21Z | 2020-10-27T16:24:21Z | f045d8559a6d2cb922a2de30fbcc896a4486b82f | 0 | 93230b2acb61635b6d5070ad9c65e7221c63b75a | e4f1c7b936981de29823730c5dbef4f4ba7a4286 | CONTRIBUTOR | sqlite-utils 140912432 | https://github.com/simonw/sqlite-utils/pull/189 | ||||
510956134 | MDExOlB1bGxSZXF1ZXN0NTEwOTU2MTM0 | 190 | closed | 0 | Progress bar for sqlite-utils insert command | simonw 9599 | Refs #173 | 2020-10-27T18:08:53Z | 2020-10-27T18:16:03Z | 2020-10-27T18:16:03Z | 2020-10-27T18:16:03Z | f99a23652910b03ac4669bbbb35a9b484451aabb | 0 | 62d678122a251812cd650845705ca7b9efcef86d | c7e5dd64513c0ec2b2df4c51c8df924c282417f9 | OWNER | sqlite-utils 140912432 | https://github.com/simonw/sqlite-utils/pull/190 | ||||
179108961 | MDExOlB1bGxSZXF1ZXN0MTc5MTA4OTYx | 192 | closed | 0 | New ?_shape=objects/object/lists param for JSON API | simonw 9599 | Refs #122 | 2018-04-03T14:02:58Z | 2018-04-03T14:53:00Z | 2018-04-03T14:52:55Z | 2018-04-03T14:52:55Z | 0abd3abacb309a2bd5913a7a2df4e9256585b1bb | 0 | a759e09e8599e2cf54f6c5ab4d1cf8adf8608793 | dd0566ff8eda7fa2f0d92e51809581fae62cffed | OWNER | datasette 107914493 | https://github.com/simonw/datasette/pull/192 | ||||
515014883 | MDExOlB1bGxSZXF1ZXN0NTE1MDE0ODgz | 195 | closed | 0 | table.search() improvements plus sqlite-utils search command | simonw 9599 | Refs #192. Still needs tests. | 2020-11-03T22:02:08Z | 2020-11-06T18:30:49Z | 2020-11-06T18:30:42Z | 2020-11-06T18:30:42Z | d411fba1f4124047429ac9d1175a04b36bf5bee9 | 0 | 973d94d44f27d35d856fe1cc822f9d5d40e4b5e6 | 59d8689ed0e6e042d99fd650896def680ca3c657 | OWNER | sqlite-utils 140912432 | https://github.com/simonw/sqlite-utils/pull/195 | ||||
180188397 | MDExOlB1bGxSZXF1ZXN0MTgwMTg4Mzk3 | 196 | closed | 0 | _sort= and _sort_desc= parameters to table view | simonw 9599 | See #189 | 2018-04-09T00:07:21Z | 2018-04-09T05:10:29Z | 2018-04-09T05:10:23Z | 2018-04-09T05:10:23Z | c1d37fdf2be84fb07155bb1b1f61057444b03300 | 0 | fdd6b71e40c8aa9a93e95802a8b6291099d4db2c | b2188f044265c95f7e54860e28107c17d2a6ed2e | OWNER | datasette 107914493 | https://github.com/simonw/datasette/pull/196 | ||||
181033024 | MDExOlB1bGxSZXF1ZXN0MTgxMDMzMDI0 | 200 | closed | 0 | Hide Spatialite system tables | russss 45057 | They were getting on my nerves. | 2018-04-11T21:26:58Z | 2018-04-12T21:34:48Z | 2018-04-12T21:34:48Z | 2018-04-12T21:34:48Z | d08a13314081ae2ce0313a17d3c07c1a7f2d94d5 | 0 | 765b5d677154c633b91e3e826dfffc53b7c4b5d3 | bfb4e45a7bcb880758dbc18f66258de26c1d1904 | CONTRIBUTOR | datasette 107914493 | https://github.com/simonw/datasette/pull/200 | ||||
181247568 | MDExOlB1bGxSZXF1ZXN0MTgxMjQ3NTY4 | 202 | closed | 0 | Raise 404 on nonexistent table URLs | russss 45057 | Currently they just 500. Also cleaned the logic up a bit, I hope I didn't miss anything. This is issue #184. | 2018-04-12T15:47:06Z | 2018-04-13T19:22:56Z | 2018-04-13T18:19:15Z | 134150933ade84327cfd97a88d536f5bff37a136 | 0 | 71bbf4e4be8a9ab7bcc4ddfb33760c7d902f4a34 | bfb4e45a7bcb880758dbc18f66258de26c1d1904 | CONTRIBUTOR | datasette 107914493 | https://github.com/simonw/datasette/pull/202 | |||||
521287994 | MDExOlB1bGxSZXF1ZXN0NTIxMjg3OTk0 | 203 | open | 0 | changes to allow for compound foreign keys | drkane 1049910 | Add support for compound foreign keys, as per issue #117 Not sure if this is the right approach. In particular I'm unsure about: - the new `ForeignKey` class, which replaces the namedtuple in order to ensure that `column` and `other_column` are forced into tuples. The class does the job, but doesn't feel very elegant. - I haven't rewritten `guess_foreign_table` to take account of multiple columns, so it just checks for the first column in the foreign key definition. This isn't ideal. - I haven't added any ability to the CLI to add compound foreign keys, it's only in the python API at the moment. The PR also contains a minor related change that columns and tables are always quoted in foreign key definitions. | 2020-11-16T00:30:10Z | 2023-01-25T18:47:18Z | 0507a9464314f84e9e58b1931c583df51d757d7c | 0 | 5e43e31c2b9bcf6b5d1460b0f848fed019ed42a6 | f1277f638f3a54a821db6e03cb980adad2f2fa35 | FIRST_TIME_CONTRIBUTOR | sqlite-utils 140912432 | https://github.com/simonw/sqlite-utils/pull/203 | ||||||
181600926 | MDExOlB1bGxSZXF1ZXN0MTgxNjAwOTI2 | 204 | closed | 0 | Initial units support | russss 45057 | Add support for specifying units for a column in metadata.json and rendering them on display using [pint](https://pint.readthedocs.io/en/latest/). Example table metadata: ```json "license_frequency": { "units": { "frequency": "Hz", "channel_width": "Hz", "height": "m", "antenna_height": "m", "azimuth": "degrees" } } ``` [Example result](https://wtr-api.herokuapp.com/wtr-663ea99/license_frequency/1) This works surprisingly well! I'd like to add support for using units when querying but this is PR is pretty usable as-is. (Pint doesn't seem to support decibels though - it thinks they're decibytes - which is an annoying omission.) (ref ticket #203) | 2018-04-13T21:32:49Z | 2018-04-14T09:44:33Z | 2018-04-14T03:32:54Z | 2018-04-14T03:32:54Z | ec6abc81e433c9bac1b9f085111785fc227e9e34 | 0 | 67c20a98a0cbb59a10247a49320c2feb7d0b1b41 | fb988ace7c7e2bee5ac142a0eab22431d0675a77 | CONTRIBUTOR | datasette 107914493 | https://github.com/simonw/datasette/pull/204 | ||||
529090560 | MDExOlB1bGxSZXF1ZXN0NTI5MDkwNTYw | 204 | closed | 0 | use jsonify_if_need for sql updates | mfa 78035 | 2020-11-29T10:49:00Z | 2020-12-08T17:49:42Z | 2020-12-08T17:49:42Z | 2020-12-08T17:49:42Z | c5f4f0f70ce394dfec6054c3c5aaedf330887093 | 0 | 8ea9ad1913aa63395391818ebb4e43bfce936dda | 60d3c4821be4cf25c41097c1e8b79b2e60c5ead5 | CONTRIBUTOR | sqlite-utils 140912432 | https://github.com/simonw/sqlite-utils/pull/204 | |||||
181642114 | MDExOlB1bGxSZXF1ZXN0MTgxNjQyMTE0 | 205 | closed | 0 | Support filtering with units and more | russss 45057 | The first commit: * Adds units to exported JSON * Adds units key to metadata skeleton * Adds some docs for units The second commit adds filtering by units by the first method I mentioned in #203: ![image](https://user-images.githubusercontent.com/45057/38767463-7193be16-3fd9-11e8-8a5f-ac4159415c6d.png) [Try it here](https://wtr-api.herokuapp.com/wtr-663ea99/license_frequency?frequency__gt=50GHz&height__lt=50ft). I think it integrates pretty neatly. The third commit adds support for registering custom units with Pint from metadata.json. Probably pretty niche, but I need decibels! | 2018-04-14T10:47:51Z | 2018-04-14T15:24:04Z | 2018-04-14T15:24:04Z | ed059c70e87a2930206652621e23a55167aa57c1 | 0 | eb3a37c34813ecbbfdae015305fec1f2a4ec27a5 | 6b15a53cd3cd40880a5e2d38827d5fac10e4bb5f | CONTRIBUTOR | datasette 107914493 | https://github.com/simonw/datasette/pull/205 | |||||
181644805 | MDExOlB1bGxSZXF1ZXN0MTgxNjQ0ODA1 | 206 | closed | 0 | Fix sqlite error when loading rows with no incoming FKs | russss 45057 | This fixes `ERROR: conn=<sqlite3.Connection object at 0x10bbb9f10>, sql = 'select ', params = {'id': '1'}` caused by an invalid query loading incoming FKs when none exist. The error was ignored due to async but it still got printed to the console. | 2018-04-14T12:08:17Z | 2018-04-14T14:32:42Z | 2018-04-14T14:24:25Z | 2018-04-14T14:24:25Z | 1cc5161089e559c8b16049b20f7a5b3a43290c21 | 0 | 93b038e2469bee07d36ae8a943aab8b9d8610c1d | ec6abc81e433c9bac1b9f085111785fc227e9e34 | CONTRIBUTOR | datasette 107914493 | https://github.com/simonw/datasette/pull/206 | ||||
181647717 | MDExOlB1bGxSZXF1ZXN0MTgxNjQ3NzE3 | 207 | closed | 0 | Link foreign keys which don't have labels | russss 45057 | This renders unlabeled FKs as simple links. I can't see why this would cause any major problems. ![image](https://user-images.githubusercontent.com/45057/38768722-ea15a000-3fef-11e8-8664-ffd7aa4894ea.png) Also includes bonus fixes for two minor issues: * In foreign key link hrefs the primary key was escaped using HTML escaping rather than URL escaping. This broke some non-integer PKs. * Print tracebacks to console when handling 500 errors. | 2018-04-14T13:27:14Z | 2018-04-14T15:00:00Z | 2018-04-14T15:00:00Z | 2018-04-14T15:00:00Z | f2b940d6026677f6859d46a4f16fa402745d261d | 0 | d9858672da8f74e5530deead140e2e633e1c2627 | ec6abc81e433c9bac1b9f085111785fc227e9e34 | CONTRIBUTOR | datasette 107914493 | https://github.com/simonw/datasette/pull/207 | ||||
181654839 | MDExOlB1bGxSZXF1ZXN0MTgxNjU0ODM5 | 208 | closed | 0 | Return HTTP 405 on InvalidUsage rather than 500 | russss 45057 | This also stops it filling up the logs. This happens for HEAD requests at the moment - which perhaps should be handled better, but that's a different issue. | 2018-04-14T16:12:50Z | 2018-04-14T18:00:39Z | 2018-04-14T18:00:39Z | 2018-04-14T18:00:39Z | efbb4e83374a2c795e436c72fa79f70da72309b8 | 0 | 20e5fcf827046adf76968d0e58f47e0b7d9271c3 | 8d394586f55bc4b8ab70476968d08fb6ec8339e5 | CONTRIBUTOR | datasette 107914493 | https://github.com/simonw/datasette/pull/208 | ||||
537791675 | MDExOlB1bGxSZXF1ZXN0NTM3NzkxNjc1 | 208 | closed | 0 | sqlite-utils analyze-tables command and table.analyze_column() method | simonw 9599 | Refs #207 - [x] Improve design of CLI output - [x] Truncate long values in least/most common - [x] Add a `-c` column selection option - [x] Tests - [x] Documentation | 2020-12-12T05:27:49Z | 2020-12-13T07:20:16Z | 2020-12-13T07:20:12Z | 2020-12-13T07:20:12Z | 69a121e08847acbf95abf0c2df1759fc73dc81b8 | 0 | 95a966bb6216215d40d0016d673a28b04428db43 | c5f4f0f70ce394dfec6054c3c5aaedf330887093 | OWNER | sqlite-utils 140912432 | https://github.com/simonw/sqlite-utils/pull/208 | ||||
181723303 | MDExOlB1bGxSZXF1ZXN0MTgxNzIzMzAz | 209 | closed | 0 | Don't duplicate simple primary keys in the link column | russss 45057 | When there's a simple (single-column) primary key, it looks weird to duplicate it in the link column. This change removes the second PK column and treats the link column as if it were the PK column from a header/sorting perspective. This might make it a bit more difficult to tell what the link for the row is, I'm not sure yet. I feel like the alternative is to change the link column to just have the text "view" or something, instead of repeating the PK. (I doubt it makes much more sense with compound PKs.) Bonus change in this PR: fix urlencoding of links in the displayed HTML. Before: ![image](https://user-images.githubusercontent.com/45057/38783830-e2ababb4-40ff-11e8-97fb-25e286a8c920.png) After: ![image](https://user-images.githubusercontent.com/45057/38783835-ebf6b48e-40ff-11e8-8c47-6a864cf21ccc.png) | 2018-04-15T21:56:15Z | 2018-04-18T08:40:37Z | 2018-04-18T01:13:04Z | 2018-04-18T01:13:04Z | 136a70d88741e2a5892c3de437064a9d14494d66 | 0 | 4acde4e187795214af6fc86f46af48982ec5de46 | bf5ec2d61148f9852441934dd206b3b1c07a512f | CONTRIBUTOR | datasette 107914493 | https://github.com/simonw/datasette/pull/209 | ||||
181731956 | MDExOlB1bGxSZXF1ZXN0MTgxNzMxOTU2 | 210 | closed | 0 | Start of the plugin system, based on pluggy | simonw 9599 | Refs #14 | 2018-04-16T00:51:30Z | 2018-04-16T00:56:16Z | 2018-04-16T00:56:16Z | 2018-04-16T00:56:16Z | 33c7c53ff87c25445c68088ede49d062d9c31fe8 | 0 | d75e57060d9ef4ef6ebab3600e542885b7467272 | efbb4e83374a2c795e436c72fa79f70da72309b8 | OWNER | datasette 107914493 | https://github.com/simonw/datasette/pull/210 | ||||
181755220 | MDExOlB1bGxSZXF1ZXN0MTgxNzU1MjIw | 212 | closed | 0 | New --plugins-dir=plugins/ option | simonw 9599 | Refs #211 | 2018-04-16T05:19:28Z | 2018-04-16T05:22:18Z | 2018-04-16T05:22:01Z | 2018-04-16T05:22:01Z | b2955d9065ea019500c7d072bcd9d49d1967f051 | 0 | 33c6bcadb962457be6b0c7f369826b404e2bcef5 | 92396ae5bacedfcb3d7c81319ccdd04483fd7fd4 | OWNER | datasette 107914493 | https://github.com/simonw/datasette/pull/212 | ||||
182357613 | MDExOlB1bGxSZXF1ZXN0MTgyMzU3NjEz | 222 | closed | 0 | Fix for plugins in Python 3.5 | simonw 9599 | 2018-04-18T03:21:01Z | 2018-04-18T04:26:50Z | 2018-04-18T03:24:21Z | 2018-04-18T03:24:21Z | 4be6deb94776744071311777f0b18efb993c0cfa | 0 | 420cdcb88ee41c15a90fce30fdec5832c03295bd | 1c36d07dd432b9960f4f2d096739460b4fcf8877 | OWNER | datasette 107914493 | https://github.com/simonw/datasette/pull/222 | |||||
560204306 | MDExOlB1bGxSZXF1ZXN0NTYwMjA0MzA2 | 224 | closed | 0 | Add fts offset docs. | polyrand 37962604 | The limit can be passed as a string to the query builder to have an offset. I have tested it using the shorthand `limit=f"15, 30"`, the standard syntax should work too. | 2021-01-22T20:50:58Z | 2021-02-14T19:31:06Z | 2021-02-14T19:31:06Z | 4d6ff040770119fb2c1bcbc97678d9deca752f2f | 0 | 341f50d2d95ba1d69ad64ba8c0ec0ffa9a68d063 | 36dc7e3909a44878681c266b90f9be76ac749f2d | NONE | sqlite-utils 140912432 | https://github.com/simonw/sqlite-utils/pull/224 | |||||
564215011 | MDExOlB1bGxSZXF1ZXN0NTY0MjE1MDEx | 225 | closed | 0 | fix for problem in Table.insert_all on search for columns per chunk of rows | nieuwenhoven 261237 | Hi, I ran into a problem when trying to create a database from my Apple Healthkit data using [healthkit-to-sqlite](https://github.com/dogsheep/healthkit-to-sqlite). The program crashed because of an invalid insert statement that was generated for table `rDistanceCycling`. The actual problem turned out to be in [sqlite-utils](https://github.com/simonw/sqlite-utils). `Table.insert_all` processes the data to be inserted in chunks of rows and checks for every chunk which columns are used, and it will collect all column names in the variable `all_columns`. The collection of columns is done using a nested list comprehension that is not completely correct. I'm using a Windows machine and had to make a few adjustments to the tests in order to be able to run them because they had a posix dependency. Thanks, kind regards, Frans ``` # this is a (condensed) chunk of data from my Apple healthkit export that caused the problem. # the 3 last items in the chunk have additional keys: metadata_HKMetadataKeySyncVersion and metadata_HKMetadataKeySyncIdentifier chunk = [{'sourceName': 'AppleÂ\xa0Watch van Frans', 'sourceVersion': '7.0.1', 'device': '<<HKDevice: 0x281cf6c70>, name:Apple Watch, manufacturer:Apple Inc., model:Watch, hardware:Watch3,4, software:7.0.1>', 'unit': 'km', 'creationDate': '2020-10-10 12:29:09 +0100', 'startDate': '2020-10-10 12:29:06 +0100', 'endDate': '2020-10-10 12:29:07 +0100', 'value': '0.00518016'}, {'sourceName': 'AppleÂ\xa0Watch van Frans', 'sourceVersion': '7.0.1', 'device': '<<HKDevice: 0x281cf6c70>, name:Apple Watch, manufacturer:Apple Inc., model:Watch, hardware:Watch3,4, software:7.0.1>', 'unit': 'km', 'creationDate': '2020-10-10 12:29:10 +0100', 'startDate': '2020-10-10 12:29:07 +0100', 'endDate': '2020-10-10 12:29:08 +0100', 'value': '0.00544049'}, {'sourceName': 'AppleÂ\xa0Watch van Frans', 'sourceVersion': '6.2.6', 'device': '<<HKDevice: 0x281cf83e0>, name:Apple Watch, manu… | 2021-01-29T20:16:07Z | 2021-02-14T21:04:13Z | 2021-02-14T21:04:13Z | 1cba965a1ddc2bd77db3bc3912aa7e8467e2fa2f | 0 | 929ea7551135df0cc2ac9d67f4fbbecf701a11f6 | 36dc7e3909a44878681c266b90f9be76ac749f2d | NONE | sqlite-utils 140912432 | https://github.com/simonw/sqlite-utils/pull/225 | |||||
183135604 | MDExOlB1bGxSZXF1ZXN0MTgzMTM1NjA0 | 232 | closed | 0 | Fix a typo | lsb 45281 | It looks like this was the only instance of it: https://github.com/simonw/datasette/search?utf8=%E2%9C%93&q=SOLite&type= | 2018-04-20T18:20:04Z | 2018-04-21T00:19:08Z | 2018-04-21T00:19:08Z | 2018-04-21T00:19:08Z | a971718d2a5e1b61b5e5c27b0ef6c4ec65616e35 | 0 | b0f0f16a1c1f48aba62dfa30fa039dc6d3c07802 | 3a5d7951ce8f35118ffdd7f8d86e09b909e1218c | CONTRIBUTOR | datasette 107914493 | https://github.com/simonw/datasette/pull/232 | ||||
573147168 | MDExOlB1bGxSZXF1ZXN0NTczMTQ3MTY4 | 233 | closed | 0 | Run tests against Ubuntu, macOS and Windows | simonw 9599 | Refs #232 | 2021-02-14T20:11:02Z | 2021-02-14T20:39:54Z | 2021-02-14T20:39:54Z | 2021-02-14T20:39:54Z | f51a1f6c3cb2929bcf79cb4efe3b2a9886d9c25c | 0 | deb01a8913441e7fedb53c52a3a9fdff274ddbd2 | 320f3ac33a83b32f89559ef0c162b7eca428a278 | OWNER | sqlite-utils 140912432 | https://github.com/simonw/sqlite-utils/pull/233 | ||||
580235427 | MDExOlB1bGxSZXF1ZXN0NTgwMjM1NDI3 | 241 | open | 0 | Extract expand - work in progress | simonw 9599 | Refs #239. Still needs documentation and CLI implementation. | 2021-02-25T16:36:38Z | 2021-02-25T16:36:38Z | 0bb6c7a38994627a64e7b3375931528e96b8c222 | 1 | 8d641ab08ac449081e96f3e25bd6c0226870948a | 38e688fb8bcb58ae888b676fe3f7dd0529b4eecc | OWNER | sqlite-utils 140912432 | https://github.com/simonw/sqlite-utils/pull/241 | ||||||
583407989 | MDExOlB1bGxSZXF1ZXN0NTgzNDA3OTg5 | 244 | closed | 0 | Typo in upsert example | j-e-d 387669 | Remove extra `[` | 2021-03-02T23:14:14Z | 2021-05-19T02:58:21Z | 2021-05-19T02:58:21Z | 2021-05-19T02:58:21Z | 328211eaca1247cd6b33a2c0a54642f87866d85b | 0 | 1899200fa5a43f638573ea2c483df62819ba53b1 | 09c3386f55f766b135b6a1c00295646c4ae29bec | CONTRIBUTOR | sqlite-utils 140912432 | https://github.com/simonw/sqlite-utils/pull/244 | ||||
592289324 | MDExOlB1bGxSZXF1ZXN0NTkyMjg5MzI0 | 245 | closed | 0 | Correct some typos | dbready 1076745 | Noticed a typo in the docs and followed that up with a spellcheck. Had to bite my tongue at some of the British spellings. | 2021-03-13T04:26:56Z | 2021-05-19T02:58:04Z | 2021-05-19T02:58:04Z | 2021-05-19T02:58:04Z | 3e62ab62a88992d4bbb0fe83debec3bacd93ebf3 | 0 | 79de6b639f9d14818a5006af4f63e4e20c961a10 | 22f1d9e1999f70af4c5b0f880a820cd9eead3942 | CONTRIBUTOR | sqlite-utils 140912432 | https://github.com/simonw/sqlite-utils/pull/245 | ||||
185307407 | MDExOlB1bGxSZXF1ZXN0MTg1MzA3NDA3 | 246 | closed | 0 | ?_shape=array and _timelimit= | simonw 9599 | 2018-05-02T00:18:54Z | 2018-05-02T00:20:41Z | 2018-05-02T00:20:40Z | 2018-05-02T00:20:40Z | 690736436bac599ca042d1caa465c6d66d2651f9 | 0 | 3807d93b98573e142858c5871b8b4aadda71d28f | aa954382c3776d596f459897b0d984161293529d | OWNER | datasette 107914493 | https://github.com/simonw/datasette/pull/246 | |||||
593805804 | MDExOlB1bGxSZXF1ZXN0NTkzODA1ODA0 | 247 | closed | 0 | FTS quote functionality from datasette | DeNeutoy 16001974 | Addresses #246 - this is a bit of a kludge because it doesn't actually *validate* the FTS string, just makes sure that it will not crash when executed, but I figured that building a query parser is a bit out of the scope of sqlite-utils and if you actually want to use the query language, you probably need to parse that yourself. | 2021-03-16T11:17:34Z | 2021-08-18T18:43:12Z | 2021-08-18T18:43:12Z | 2021-08-18T18:43:11Z | 53fec0d8639d2a66e322d05e1fcc8f34caa57815 | 0 | af989af658e23be0077f226292594226103b063d | 1fe73c898b44695052f1a9ca832818d50cecf662 | CONTRIBUTOR | sqlite-utils 140912432 | https://github.com/simonw/sqlite-utils/pull/247 | ||||
614727036 | MDExOlB1bGxSZXF1ZXN0NjE0NzI3MDM2 | 254 | closed | 0 | Fix incorrect create-table cli description | robjwells 1935268 | The description for `create-table` was duplicated from `create-index`. | 2021-04-13T20:03:15Z | 2021-05-19T04:43:46Z | 2021-05-19T02:57:26Z | 2021-05-19T02:57:26Z | e7b2626291040b78b9a2dbc2982ba72691fb1a0f | 0 | cdeb7d7da77c6d1cd3554d08cb5659243cb3d55b | 22f1d9e1999f70af4c5b0f880a820cd9eead3942 | CONTRIBUTOR | sqlite-utils 140912432 | https://github.com/simonw/sqlite-utils/pull/254 | ||||
187668890 | MDExOlB1bGxSZXF1ZXN0MTg3NjY4ODkw | 257 | closed | 0 | Refactor views | simonw 9599 | * Split out view classes from main `app.py` * Run [black](https://github.com/ambv/black) against resulting code to apply opinionated source code formatting * Run [isort](https://github.com/timothycrosley/isort) to re-order my imports Refs #256 | 2018-05-13T13:00:50Z | 2018-05-14T03:04:25Z | 2018-05-14T03:04:24Z | 2018-05-14T03:04:24Z | 2b79f2bdeb1efa86e0756e741292d625f91cb93d | 0 | 0e2b41f3fa38456af32548c536f955c48c7637e8 | 4301a8f3ac69f2f54916e73cc90fcf216a9a3746 | OWNER | datasette 107914493 | https://github.com/simonw/datasette/pull/257 | ||||
187770345 | MDExOlB1bGxSZXF1ZXN0MTg3NzcwMzQ1 | 258 | closed | 0 | Add new metadata key persistent_urls which removes the hash from all database urls | philroche 247131 | Add new metadata key "persistent_urls" which removes the hash from all database urls when set to "true" This PR is just to gauge if this, or something like it, is something you would consider merging? I understand the reason why the substring of the hash is included in the url but there are some use cases where the urls should persist across deployments. For bookmarks for example or for scripts that use the JSON API. This is the initial commit for this feature. Tests and documentation updates to follow. | 2018-05-14T09:39:18Z | 2018-05-21T07:38:15Z | 2018-05-21T07:38:15Z | 457fcdfc82a0260db543d49006d49f8486f233b5 | 0 | 0d77a896ccb16b34c86fdeef7738f2d056e27e02 | 2b79f2bdeb1efa86e0756e741292d625f91cb93d | NONE | datasette 107914493 | https://github.com/simonw/datasette/pull/258 | |||||
623755723 | MDExOlB1bGxSZXF1ZXN0NjIzNzU1NzIz | 258 | closed | 0 | Fixing insert from JSON containing strings with non-ascii characters … | dylan-wu 6586811 | …are escaped aps unicode for lists, tuples, dicts Fix of #257 | 2021-04-26T20:50:00Z | 2021-05-19T02:47:44Z | 2021-05-19T02:47:44Z | 2021-05-19T02:47:44Z | 6f4f9a3effeb16de0348d3cf136664f7531f498d | 0 | 27e7c1ae1913e2127361af4fc664c2061fb76627 | 22f1d9e1999f70af4c5b0f880a820cd9eead3942 | CONTRIBUTOR | sqlite-utils 140912432 | https://github.com/simonw/sqlite-utils/pull/258 | ||||
188312411 | MDExOlB1bGxSZXF1ZXN0MTg4MzEyNDEx | 261 | closed | 0 | Facets improvements plus suggested facets | simonw 9599 | Refs #255 | 2018-05-16T03:52:39Z | 2018-05-16T15:27:26Z | 2018-05-16T15:27:25Z | 2018-05-16T15:27:25Z | 9959a9e4deec8e3e178f919e8b494214d5faa7fd | 0 | af0e91e7769891949198fb1e1760886424f34b16 | 2b79f2bdeb1efa86e0756e741292d625f91cb93d | OWNER | datasette 107914493 | https://github.com/simonw/datasette/pull/261 | ||||
657373726 | MDExOlB1bGxSZXF1ZXN0NjU3MzczNzI2 | 262 | closed | 0 | Ability to add descending order indexes | simonw 9599 | Refs #260 | 2021-05-29T04:51:04Z | 2021-05-29T05:01:42Z | 2021-05-29T05:01:39Z | 2021-05-29T05:01:39Z | 51d01da30d45c1fbc1e587e6046a933529cf915e | 0 | 50a4fb722d29c3e53f7b148a41aeda901d02a264 | b2302875c97f723e02cc39136d0b20fd706369aa | OWNER | sqlite-utils 140912432 | https://github.com/simonw/sqlite-utils/pull/262 | ||||
671014751 | MDExOlB1bGxSZXF1ZXN0NjcxMDE0NzUx | 273 | closed | 0 | sqlite-utils memory command for directly querying CSV/JSON data | simonw 9599 | Refs #272. Initial implementation only does CSV data, still needs: - [x] Implement `--save` - [x] Add `--dump` to the documentation - [x] Add `--attach` example to the documentation - [x] Replace `:memory:` in documentation | 2021-06-16T05:04:58Z | 2021-06-18T15:01:17Z | 2021-06-18T15:00:52Z | 2021-06-18T15:00:52Z | 42ec59d8ee3fcfb8ac1affb772aed43b6e2a7381 | 0 | df7a37bdb730bb863fa29758f6fb35f809fa0dd0 | 78aebb6479420217454747870737bc593a259abc | OWNER | sqlite-utils 140912432 | https://github.com/simonw/sqlite-utils/pull/273 | ||||
189318453 | MDExOlB1bGxSZXF1ZXN0MTg5MzE4NDUz | 277 | closed | 0 | Refactor inspect logic | russss 45057 | This pulls the logic for inspect out into a new file which makes it a bit easier to understand. This was going to be the first part of an implementation for #276, but it seems like that might take a while so I'm going to PR a few bits of refactoring individually. | 2018-05-21T08:49:31Z | 2018-05-22T16:07:24Z | 2018-05-22T14:03:07Z | 2018-05-22T14:03:07Z | 58b5a37dbbf13868a46bcbb284509434e66eca25 | 0 | 0b81e047ad27b67ba17e8c176e38a94cf4548115 | d59366d36e95b973d674e62edff0168d5bdd90eb | CONTRIBUTOR | datasette 107914493 | https://github.com/simonw/datasette/pull/277 | ||||
672359609 | MDExOlB1bGxSZXF1ZXN0NjcyMzU5NjA5 | 277 | closed | 0 | add -h support closes #276 | mcint 601708 | This appears to be the [canonical solution](https://click.palletsprojects.com/en/7.x/documentation/#help-parameter-customization). | 2021-06-17T08:08:26Z | 2021-06-18T14:56:59Z | 2021-06-18T14:56:59Z | 2021-06-18T14:56:59Z | aa652b6afe43d2b40fabc7a513c3e68866e030a5 | 0 | abbd324a2178f09b19966ec36ab2f584d1824c59 | a19ce1a4d0048d389411cfe11a5dbe4c503720e1 | CONTRIBUTOR | sqlite-utils 140912432 | https://github.com/simonw/sqlite-utils/pull/277 | ||||
189707374 | MDExOlB1bGxSZXF1ZXN0MTg5NzA3Mzc0 | 279 | closed | 0 | Add version number support with Versioneer | rgieseke 198537 | I think that's all for getting Versioneer support, I've been happily using it in a couple of projects ... ``` In [2]: datasette.__version__ Out[2]: '0.22+3.g6e12445' ``` Repo: https://github.com/warner/python-versioneer Versioneer Licence: Public Domain (CC0-1.0) Closes #273 | 2018-05-22T15:39:45Z | 2018-05-22T19:35:23Z | 2018-05-22T19:35:22Z | 2018-05-22T19:35:22Z | 49f317752cfe89c5641165a490eef49e025752a7 | 0 | d0d19453e8623cc98a2baa2cadaaff4cd2fee973 | 58b5a37dbbf13868a46bcbb284509434e66eca25 | CONTRIBUTOR | datasette 107914493 | https://github.com/simonw/datasette/pull/279 | ||||
189723716 | MDExOlB1bGxSZXF1ZXN0MTg5NzIzNzE2 | 280 | closed | 0 | Build Dockerfile with recent Sqlite + Spatialite | r4vi 565628 | This solves #278 without bloating the Dockerfile too much, the image size is now 495MB (original was ~240MB) but it could be reduced significantly if we only copied the output of the compilation of spatialite and friends to /usr/local/lib, instead of the entirety of it however that will take more time. In the python code change references to `import sqlite3` to `import pysqlite3` and it should use the compiled version of sqlite3.23.1. You don't need to try/except because pysqlite3 falls back to builtin sqlite3 if there is no compiled version. ```bash $ docker run --rm -it datasette spatialite SpatiaLite version ..: 4.4.0-RC0 Supported Extensions: - 'VirtualShape' [direct Shapefile access] - 'VirtualDbf' [direct DBF access] - 'VirtualXL' [direct XLS access] - 'VirtualText' [direct CSV/TXT access] - 'VirtualNetwork' [Dijkstra shortest path] - 'RTree' [Spatial Index - R*Tree] - 'MbrCache' [Spatial Index - MBR cache] - 'VirtualSpatialIndex' [R*Tree metahandler] - 'VirtualElementary' [ElemGeoms metahandler] - 'VirtualKNN' [K-Nearest Neighbors metahandler] - 'VirtualXPath' [XML Path Language - XPath] - 'VirtualFDO' [FDO-OGR interoperability] - 'VirtualGPKG' [OGC GeoPackage interoperability] - 'VirtualBBox' [BoundingBox tables] - 'SpatiaLite' [Spatial SQL - OGC] PROJ.4 version ......: Rel. 4.9.3, 15 August 2016 GEOS version ........: 3.5.1-CAPI-1.9.1 r4246 TARGET CPU ..........: x86_64-linux-gnu the SPATIAL_REF_SYS table already contains some row(s) SQLite version ......: 3.23.1 Enter ".help" for instructions SQLite version 3.23.1 2018-04-10 17:39:29 Enter ".help" for instructions Enter SQL statements terminated with a ";" spatialite> ``` ```bash $ docker run --rm -it datasette python -c "import pysqlite3; print(pysqlite3.sqlite_version)" 3.23.1 ``` | 2018-05-22T16:33:50Z | 2018-06-28T11:26:23Z | 2018-05-23T17:43:35Z | 2018-05-23T17:43:35Z | bd30c696e18927207358ee9d63174a5c41c8297e | 0 | 5cf78eded61cacec435b854e18f1e94511cf2da8 | 58b5a37dbbf13868a46bcbb284509434e66eca25 | CONTRIBUTOR | datasette 107914493 | https://github.com/simonw/datasette/pull/280 | ||||
189860052 | MDExOlB1bGxSZXF1ZXN0MTg5ODYwMDUy | 281 | closed | 0 | Reduces image size using Alpine + Multistage (re: #278) | iMerica 487897 | Hey Simon! I got the image size down from 256MB to 110MB. Seems to be working okay, but you might want to test it a bit more. Example output of `docker run --rm -it <my-tag> datasette` ``` Serve! files=() on port 8001 [2018-05-23 05:23:08 +0000] [1] [INFO] Goin' Fast @ http://127.0.0.1:8001 [2018-05-23 05:23:08 +0000] [1] [INFO] Starting worker [1] ``` Related: https://github.com/simonw/datasette/issues/278 | 2018-05-23T05:27:05Z | 2018-05-26T02:10:38Z | 2018-05-26T02:10:38Z | 0d6c8fa841ae5d28e151e4ba43370289d1e2e22c | 0 | 3af65075c430d94647f8a1b1f215e82f563bc46f | 49f317752cfe89c5641165a490eef49e025752a7 | NONE | datasette 107914493 | https://github.com/simonw/datasette/pull/281 | |||||
190901429 | MDExOlB1bGxSZXF1ZXN0MTkwOTAxNDI5 | 293 | closed | 0 | Support for external database connectors | jsancho-gpl 11912854 | I think it would be nice that Datasette could work with other file formats that aren't SQLite, like files with PyTables format. I've tried to accomplish that using external connectors published with entry points. These external connectors must have a structure similar to the structure [PyTables Datasette connector](https://github.com/PyTables/datasette-pytables) has. | 2018-05-28T11:02:45Z | 2018-09-11T14:32:45Z | 2018-09-11T14:32:45Z | ad2cb12473025ffab738d4df6bb47cd8b2e27859 | 0 | 59c94be46f9ccd806dd352fa28a6dba142d5ab82 | b7257a21bf3dfa7353980f343c83a616da44daa7 | FIRST_TIME_CONTRIBUTOR | datasette 107914493 | https://github.com/simonw/datasette/pull/293 | |||||
677554929 | MDExOlB1bGxSZXF1ZXN0Njc3NTU0OTI5 | 293 | closed | 0 | Test against Python 3.10-dev | simonw 9599 | 2021-06-25T01:40:39Z | 2021-10-13T21:49:33Z | 2021-10-13T21:49:33Z | 0f64d20b044ecb86d9e4e5843f9590006d2f39c2 | 0 | ae0f46a78958c0118e98c2ab18bd1b57a0478326 | 747be6057d09a4e5d9d726e29d5cf99b10c59dea | OWNER | sqlite-utils 140912432 | https://github.com/simonw/sqlite-utils/pull/293 | ||||||
700944644 | MDExOlB1bGxSZXF1ZXN0NzAwOTQ0NjQ0 | 303 | closed | 0 | sqlite-utils convert command and db[table].convert(...) method | simonw 9599 | Refs #251, #302. - [x] Get recipes working - [x] Document recipes - [x] Implement `db[table].convert(...)` method - [x] Add tests for recipes that use the new Python method - [x] Implement `db[table].convert(..., multi=True)` mechanism - [x] Documentation for `db[table].convert(...)` - [x] Refactor `sqlite-utils convert` to use the new method | 2021-08-01T16:52:42Z | 2021-08-02T04:47:42Z | 2021-08-02T04:47:39Z | 2021-08-02T04:47:39Z | 5ec6686153e29ae10d4921a1ad4c841f192f20e2 | 0 | 4c3bf9730542f1e49cbf11a61dbdb7fd621453df | c7e8d72be9fe8fe0811f685a18eebc637662d41b | OWNER | sqlite-utils 140912432 | https://github.com/simonw/sqlite-utils/pull/303 | ||||
193361341 | MDExOlB1bGxSZXF1ZXN0MTkzMzYxMzQx | 307 | closed | 0 | Initial sketch of custom URL routing, refs #306 | simonw 9599 | See #306 for background on this. | 2018-06-07T15:26:48Z | 2018-06-07T15:29:54Z | 2018-06-07T15:29:41Z | 8c6663d3cc8043fc6f5c796275e80b0445bdff12 | 0 | 018af454f286120452e33d2568dd40908474a8a8 | a246f476b4fe490f5450836b22961bc607e6b4b0 | OWNER | datasette 107914493 | https://github.com/simonw/datasette/pull/307 | |||||
195339111 | MDExOlB1bGxSZXF1ZXN0MTk1MzM5MTEx | 311 | closed | 0 | ?_labels=1 to expand foreign keys (in csv and json), refs #233 | simonw 9599 | Output looks something like this: { "rowid": 233, "TreeID": 121240, "qLegalStatus": { "value" 2, "label": "Private" } "qSpecies": { "value": 16, "label": "Sycamore" } "qAddress": "91 Commonwealth Ave", ... } | 2018-06-16T16:31:12Z | 2018-06-16T22:20:31Z | 2018-06-16T22:20:31Z | 9fe59e54ad65eb1c8239b1a78edb5219d3ab8ab0 | 0 | 40287b1ba09d6e75f0db1458fe78d8c055f128af | d0a578c0fc07b9d9208cd9de981bdf7385a26c49 | OWNER | datasette 107914493 | https://github.com/simonw/datasette/pull/311 | |||||
707490789 | MDExOlB1bGxSZXF1ZXN0NzA3NDkwNzg5 | 312 | closed | 0 | Add reference page to documentation using Sphinx autodoc | simonw 9599 | Refs #311. | 2021-08-10T16:59:17Z | 2021-08-10T23:09:32Z | 2021-08-10T23:09:28Z | 2021-08-10T23:09:28Z | 6155da72c8939b5d9bdacb7853e5e8d1767ce1d5 | 0 | 43bc06481783c3cfcee70c0cb541a686e8894adb | ee469e3122d6f5973ec2584c1580d930daca2e7c | OWNER | sqlite-utils 140912432 | https://github.com/simonw/sqlite-utils/pull/312 | ||||
195413241 | MDExOlB1bGxSZXF1ZXN0MTk1NDEzMjQx | 315 | closed | 0 | Streaming mode for downloading all rows as a CSV | simonw 9599 | Refs #266 | 2018-06-18T03:06:59Z | 2018-06-18T03:29:13Z | 2018-06-18T03:21:02Z | 2018-06-18T03:21:02Z | fc3660cfad7668dbce6ead12766e048fc1f78b11 | 0 | b15f412e04ce9ff21983986e661fbe4396f97b43 | 0d7ba1ba676828dc7c8dda78ebe7921f7986fc18 | OWNER | datasette 107914493 | https://github.com/simonw/datasette/pull/315 | ||||
719109709 | MDExOlB1bGxSZXF1ZXN0NzE5MTA5NzA5 | 321 | closed | 0 | Ability to insert file contents as text, in addition to blob | simonw 9599 | Refs #319. | 2021-08-24T22:37:18Z | 2021-08-24T23:31:17Z | 2021-08-24T23:31:13Z | 2021-08-24T23:31:13Z | 49a010c93d90bc68ce1c6fff7639927248912b54 | 0 | db2dd6d9f30b347f4ed22b07f59b5a615184fbfd | 9258f4bd8450c951900de998a7bf81ca9b45a014 | OWNER | sqlite-utils 140912432 | https://github.com/simonw/sqlite-utils/pull/321 | ||||
196526861 | MDExOlB1bGxSZXF1ZXN0MTk2NTI2ODYx | 322 | closed | 0 | Feature/in operator | 4e1e0603 2691848 | 2018-06-21T17:41:51Z | 2018-06-21T17:45:25Z | 2018-06-21T17:45:25Z | 80b7bcefa1c07202779d98c9e2214f3ebad704e3 | 0 | 1acc562a2f60a7289438df657db8fd6dd3a7391d | e7566cc59d4b02ef301054fd35fdde6c925a8e38 | NONE | datasette 107914493 | https://github.com/simonw/datasette/pull/322 | ||||||
719998225 | MDExOlB1bGxSZXF1ZXN0NzE5OTk4MjI1 | 322 | closed | 0 | Add dict type to be mapped as TEXT in sqllite | minaeid90 2496189 | the library deal with Postgres type jsonb as dictionary, add dict type as a TEXT for mapping to sqlite | 2021-08-25T20:54:26Z | 2021-11-15T00:27:40Z | 2021-11-15T00:27:40Z | 2021-11-15T00:27:40Z | 271b894af52eb6437ae6cd84eba9867ad8dd43f6 | 0 | 69619f68c26478fdee479110e084fd22711013a3 | 77c240df56068341561e95e4a412cbfa24dc5bc7 | CONTRIBUTOR | sqlite-utils 140912432 | https://github.com/simonw/sqlite-utils/pull/322 | ||||
196628304 | MDExOlB1bGxSZXF1ZXN0MTk2NjI4MzA0 | 324 | closed | 0 | Speed up Travis by reusing pip wheel cache across builds | simonw 9599 | From https://atchai.com/blog/faster-ci/ - refs #323 | 2018-06-22T03:20:08Z | 2018-06-24T01:03:47Z | 2018-06-24T01:03:47Z | 2018-06-24T01:03:47Z | 47e689a89b3f5f0969595b17d2ec59ea3caffb3b | 0 | 7d7f5f61fd6dca3385386a657a13057680d8ddd7 | e7566cc59d4b02ef301054fd35fdde6c925a8e38 | OWNER | datasette 107914493 | https://github.com/simonw/datasette/pull/324 | ||||
727012996 | MDExOlB1bGxSZXF1ZXN0NzI3MDEyOTk2 | 324 | closed | 0 | Use python-dateutil package instead of dateutils | meatcar 191622 | While working on updating `sqlite-utils` for NixOS/Nixpkgs, I came a cross the following: In 5ec6686153e29ae10d4921a1ad4c841f192f20e2, a new dependency was added on `dateutils` (https://pypi.org/project/dateutils/). I believe this is unintentional, and instead `python-dateutil` (https://pypi.org/project/python-dateutil/) was intended. My reasoning is: - `python-dateutil` is imported here in [recipes.py](https://github.com/simonw/sqlite-utils/blob/5ec6686153e29ae10d4921a1ad4c841f192f20e2/sqlite_utils/recipes.py#L1) - The `mypy` `type-python-dateutil` dependency in [setup.py](https://github.com/simonw/sqlite-utils/blob/5ec6686153e29ae10d4921a1ad4c841f192f20e2/setup.py#L36) - `python-dateutil` is a dependency of `dateutils` as seen in the output in [docs/tutorial.ipynb](https://github.com/simonw/sqlite-utils/blob/77c240df56068341561e95e4a412cbfa24dc5bc7/docs/tutorial.ipynb#L43) Seems like the trailing "s" seems to be the source of confusion 😅 I've swapped the dependencies out, hope this helps. | 2021-09-03T18:31:19Z | 2021-11-14T23:25:40Z | 2021-11-14T23:25:40Z | 2021-11-14T23:25:40Z | bc4c42d68879c710c851dba3c98deda96ca6caa8 | 0 | 275ac3b282947fa5df5d18de835d5d958a778e72 | 77c240df56068341561e95e4a412cbfa24dc5bc7 | CONTRIBUTOR | sqlite-utils 140912432 | https://github.com/simonw/sqlite-utils/pull/324 | ||||
729731441 | MDExOlB1bGxSZXF1ZXN0NzI5NzMxNDQx | 326 | closed | 0 | Test against 3.10-dev | simonw 9599 | This tests against the latest 3.10 RC, https://www.python.org/downloads/release/python-3100rc2/ | 2021-09-08T15:01:15Z | 2021-10-13T21:49:28Z | 2021-10-13T21:49:28Z | c563260408e1b802cbbc81ec7c1e398350a1ca3a | 0 | 078a08765d8aefa5ce376a03b2643d4ebe1aa57e | 77c240df56068341561e95e4a412cbfa24dc5bc7 | OWNER | sqlite-utils 140912432 | https://github.com/simonw/sqlite-utils/pull/326 | |||||
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 | |||||
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 | |||||
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 | |||||
201075532 | MDExOlB1bGxSZXF1ZXN0MjAxMDc1NTMy | 341 | closed | 0 | Bump aiohttp to fix compatibility with Python 3.7 | simonw 9599 | Tests failed here: https://travis-ci.org/simonw/datasette/jobs/403223333 | 2018-07-12T17:41:24Z | 2018-07-12T18:07:38Z | 2018-07-12T18:07:38Z | 2018-07-12T18:07:38Z | 31a5d8fa77be68d4f837f0a80a611675dce49f4b | 0 | 8d34ed776168dcac530859c51f22e8b48829a513 | 130dc8823ebdcc1834fc7c4a03c996b13fc1e444 | OWNER | datasette 107914493 | https://github.com/simonw/datasette/pull/341 | ||||
201451332 | MDExOlB1bGxSZXF1ZXN0MjAxNDUxMzMy | 345 | closed | 0 | Allow app names for `datasette publish heroku` | russss 45057 | Lets you supply the `-n` parameter for Heroku deploys, which also lets you update existing Heroku deployments. | 2018-07-14T13:12:34Z | 2018-07-14T14:09:54Z | 2018-07-14T14:04:44Z | 2018-07-14T14:04:44Z | 58fec99ab0a31bcf25968f2aa05d37de8139b83c | 0 | 864cf8c1b01a581d6dc9711efe7cb4f2a6ac87e8 | 31a5d8fa77be68d4f837f0a80a611675dce49f4b | CONTRIBUTOR | datasette 107914493 | https://github.com/simonw/datasette/pull/345 | ||||
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 | ||||||
204029142 | MDExOlB1bGxSZXF1ZXN0MjA0MDI5MTQy | 349 | closed | 0 | publish_subcommand hook + default plugins mechanism, used for publish heroku/now | simonw 9599 | This change introduces a new plugin hook, publish_subcommand, which can be used to implement new subcommands for the "datasette publish" command family. I've used this new hook to refactor out the "publish now" and "publish heroku" implementations into separate modules. I've also added unit tests for these two publishers, mocking the subprocess.call and subprocess.check_output functions. As part of this, I introduced a mechanism for loading default plugins. These are defined in the new "default_plugins" list inside datasette/app.py Closes #217 (Plugin support for "datasette publish") Closes #348 (Unit tests for "datasette publish") Refs #14, #59, #102, #103, #146, #236, #347 | 2018-07-26T05:03:22Z | 2018-07-26T05:28:54Z | 2018-07-26T05:16:00Z | 2018-07-26T05:16:00Z | dbbe707841973b50a76d2703003ae2c40e7ad1fd | 0 | 7abdfd55daa9c617da02fd768b8e7476e89f0f94 | 3ac21c749881d0fb1c35b0f9b7a819e29f61c5c1 | OWNER | datasette 107914493 | https://github.com/simonw/datasette/pull/349 | ||||
204851511 | MDExOlB1bGxSZXF1ZXN0MjA0ODUxNTEx | 353 | closed | 0 | render_cell(value) plugin hook | simonw 9599 | Closes #352. | 2018-07-30T15:57:08Z | 2018-08-05T00:14:57Z | 2018-08-05T00:14:57Z | 2018-08-05T00:14:57Z | 4ac913224061f2dc4f673efab1a5ac6bc748854f | 0 | 2e538d924f3b17f82e94e8e8b5a05abcf9e1e697 | 295d005ca48747faf046ed30c3c61e7563c61ed2 | OWNER | datasette 107914493 | https://github.com/simonw/datasette/pull/353 | ||||
206863803 | MDExOlB1bGxSZXF1ZXN0MjA2ODYzODAz | 358 | closed | 0 | Bump versions of pytest, pluggy and beautifulsoup4 | simonw 9599 | 2018-08-08T00:44:38Z | 2018-08-08T01:11:13Z | 2018-08-08T01:11:13Z | 2018-08-08T01:11:13Z | e1db8194e8c1d7f361fd0c1c3fc1b91d6aa920e5 | 0 | 848ed0e0420d2e8c95a96b4cf73082da4c65d8f6 | fe5b6ea95a973534fe8a44907c0ea2449aae7602 | OWNER | datasette 107914493 | https://github.com/simonw/datasette/pull/358 | |||||
208719043 | MDExOlB1bGxSZXF1ZXN0MjA4NzE5MDQz | 361 | closed | 0 | Import pysqlite3 if available, closes #360 | simonw 9599 | 2018-08-16T00:52:21Z | 2018-08-16T00:58:57Z | 2018-08-16T00:58:57Z | 2018-08-16T00:58:57Z | aae49fef3b75848628d824077ec063834e3e5167 | 0 | da41daa168af8f29a1beb5278aed833cf3dc48ce | e1db8194e8c1d7f361fd0c1c3fc1b91d6aa920e5 | OWNER | datasette 107914493 | https://github.com/simonw/datasette/pull/361 | |||||
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 | ||||
211860706 | MDExOlB1bGxSZXF1ZXN0MjExODYwNzA2 | 363 | open | 0 | Search all apps during heroku publish | kevboh 436032 | Adds the `-A` option to include apps from all organizations when searching app names for publish. | 2018-08-29T19:25:10Z | 2018-08-31T14:39:45Z | b684b04c30f6b8779a3d11f7599329092fb152f3 | 0 | 2dd363e01fa73b24ba72f539c0a854bc901d23a7 | b7257a21bf3dfa7353980f343c83a616da44daa7 | FIRST_TIME_CONTRIBUTOR | datasette 107914493 | https://github.com/simonw/datasette/pull/363 | ||||||
214653641 | MDExOlB1bGxSZXF1ZXN0MjE0NjUzNjQx | 364 | open | 0 | Support for other types of databases using external connectors | jsancho-gpl 11912854 | This PR is related to #293, but now all commits have been merged. The purpose is to support other file formats that aren't SQLite, like files with PyTables format. I've tried to accomplish that using external connectors published with entry points. The modifications in the original datasette code are minimal and many are in a separated file. | 2018-09-11T14:31:47Z | 2018-09-11T14:31:47Z | d84f3b1f585cb52b58aed0401c34214de2e8b47b | 0 | 592fd05f685859b271f0305c2fc8cdb7da58ebfb | b7257a21bf3dfa7353980f343c83a616da44daa7 | FIRST_TIME_CONTRIBUTOR | datasette 107914493 | https://github.com/simonw/datasette/pull/364 | ||||||
216651317 | MDExOlB1bGxSZXF1ZXN0MjE2NjUxMzE3 | 365 | closed | 0 | fix small doc typo | jaywgraves 418191 | 2018-09-19T14:02:02Z | 2019-12-19T02:30:33Z | 2018-09-19T17:15:43Z | 2018-09-19T17:15:43Z | 1bcd54a834a2f9730d21095df855f6708c85c200 | 0 | d3fb6a80c5878c73befa2a35e11a9ce28a6e1ab6 | b7257a21bf3dfa7353980f343c83a616da44daa7 | CONTRIBUTOR | datasette 107914493 | https://github.com/simonw/datasette/pull/365 | |||||
226314862 | MDExOlB1bGxSZXF1ZXN0MjI2MzE0ODYy | 367 | closed | 0 | Mark codemirror files as vendored | jaap3 48517 | GitHub lists datasette as a Javascript project, primarily because of the vendored codemirror files. This is somewhat confusing when you're looking for datasette, knowing it's written in Python. Luckily it's possible exclude certain files from GitHub's code statistics: https://github.com/github/linguist#using-gitattributes | 2018-10-27T18:41:25Z | 2019-05-03T21:12:09Z | 2019-05-03T21:11:20Z | 2019-05-03T21:11:20Z | 66c87cee0c7344c7877373c60b180c766c206101 | 0 | 8e23e4548eedd58b0ff0e69c9a5010fc1a0136d5 | 6b398c2971801d9a20cfdb7998f59020d5534e22 | CONTRIBUTOR | datasette 107914493 | https://github.com/simonw/datasette/pull/367 | ||||
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 | ||||
226315513 | MDExOlB1bGxSZXF1ZXN0MjI2MzE1NTEz | 368 | closed | 0 | Update installation instructions | jaap3 48517 | I was writing this as a response to your tweet, but decided I might just make it a pull request. I feel like it might be confusing to those unfamiliar with Python's `-m` flag and the built-in `venv` module to omit the space between the flag and its argument. By adding a space and prefixing the second occurrence of `venv` with a `./` it's maybe a bit clearer what the arguments are and what they do. By also using `python3 -m pip` it becomes even clearer that `-m` is a special flag that makes the python executable do neat things. | 2018-10-27T18:52:31Z | 2019-05-03T18:18:43Z | 2019-05-03T18:18:42Z | 2019-05-03T18:18:42Z | f853d5592ec7f901a50381de22a26a9ab098f885 | 0 | 8f8d6072820a13e2c698d9c326998b63810779c6 | 553314dcd699a84aa7cc806377150ca0d57a6024 | CONTRIBUTOR | datasette 107914493 | https://github.com/simonw/datasette/pull/368 | ||||
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 | |||
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 | ||||
232172106 | MDExOlB1bGxSZXF1ZXN0MjMyMTcyMTA2 | 389 | closed | 0 | Bump dependency versions | simonw 9599 | 2018-11-20T02:23:12Z | 2019-11-13T19:13:41Z | 2019-11-13T19:13:41Z | 9194c0165aef411e0784ba49939b1005306f1f38 | 0 | f8349b45916e68d2f89c57694bd0e6afaf1bd508 | 5e3a432a0caa23837fa58134f69e2f82e4f632a6 | OWNER | datasette 107914493 | https://github.com/simonw/datasette/pull/389 | ||||||
235194286 | MDExOlB1bGxSZXF1ZXN0MjM1MTk0Mjg2 | 390 | closed | 0 | tiny typo in customization docs | jaywgraves 418191 | was looking to add some custom templates to my use of datasette and saw this small typo. | 2018-12-01T13:44:42Z | 2019-12-19T02:30:35Z | 2018-12-16T21:32:56Z | 2018-12-16T21:32:56Z | ed78922ae38b51513319b60ac39990b7c2aca810 | 0 | f8c01373dad3b8dcd10577a2e541f88ef34c77bc | 3de8fac1d322cbab6c8c55899e0e8511b36337d0 | CONTRIBUTOR | datasette 107914493 | https://github.com/simonw/datasette/pull/390 | ||||
241418443 | MDExOlB1bGxSZXF1ZXN0MjQxNDE4NDQz | 392 | closed | 0 | Fix some regex DeprecationWarnings | simonw 9599 | 2018-12-29T02:10:28Z | 2018-12-29T02:22:28Z | 2018-12-29T02:22:28Z | 2018-12-29T02:22:28Z | a2bfcfc1b1c60dac3526364af17c2fa2f3d41a0a | 0 | d245982aedaf7c54bf41d60ea7f0e0cf419c2b2f | eac08f0dfc61a99e8887442fc247656d419c76f8 | OWNER | datasette 107914493 | https://github.com/simonw/datasette/pull/392 | |||||
247923347 | MDExOlB1bGxSZXF1ZXN0MjQ3OTIzMzQ3 | 404 | closed | 0 | Experiment: run Jinja in async mode | simonw 9599 | See http://jinja.pocoo.org/docs/2.10/api/#async-support Tests all pass. Have not checked performance difference yet. Creating pull request to run tests in Travis. This is not ready to merge - I'm not yet sure if this is a good idea. | 2019-01-27T00:28:44Z | 2019-11-12T05:02:18Z | 2019-11-12T05:02:13Z | 773bcac907d17b16eef604ad943837da39a10090 | 0 | dd7f24a47f660e2f0fc1e97a13d28908c28dc245 | 909cc8fbdfc9c05e447f40e9a73489809602c3cd | OWNER | datasette 107914493 | https://github.com/simonw/datasette/pull/404 | |||||
250628275 | MDExOlB1bGxSZXF1ZXN0MjUwNjI4Mjc1 | 407 | closed | 0 | Heroku --include-vcs-ignore | simonw 9599 | Should mean `datasette publish heroku` can work under Travis, unlike this failure: https://travis-ci.org/simonw/fivethirtyeight-datasette/builds/488047550 ``` 2.25s$ datasette publish heroku fivethirtyeight.db -m metadata.json -n fivethirtyeight-datasette tar: unrecognized option '--exclude-vcs-ignores' Try 'tar --help' or 'tar --usage' for more information. ▸ Command failed: tar cz -C /tmp/tmpuaxm7i8f --exclude-vcs-ignores --exclude ▸ .git --exclude .gitmodules . > ▸ /tmp/f49440e0-1bf3-4d3f-9eb0-fbc2967d1fd4.tar.gz ▸ tar: unrecognized option '--exclude-vcs-ignores' ▸ Try 'tar --help' or 'tar --usage' for more information. ▸ The command "datasette publish heroku fivethirtyeight.db -m metadata.json -n fivethirtyeight-datasette" exited with 0. ``` The fix for that issue is to call the heroku command like this: heroku builds:create -a app_name --include-vcs-ignore | 2019-02-06T04:06:20Z | 2019-02-06T04:31:30Z | 2019-02-06T04:15:47Z | 2019-02-06T04:15:46Z | 195a5b36349d0d24a6bbb758cebb719b6de303b6 | 0 | 01978ddb9682c828cafddaf9ca625e08ba3ba3a4 | 436b8bc1d17c2ab415800ab209204f94e7f7929e | OWNER | datasette 107914493 | https://github.com/simonw/datasette/pull/407 | ||||
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 | ||||
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 | |||||
255725057 | MDExOlB1bGxSZXF1ZXN0MjU1NzI1MDU3 | 413 | closed | 0 | Update spatialite.rst | joelondon 28597217 | a line of sql added to create the idx_<table_name> in the python recipe | 2019-02-25T00:08:35Z | 2019-03-15T05:06:45Z | 2019-03-15T05:06:45Z | 2019-03-15T05:06:45Z | 9e8c36793bfbb17c2f67371cc7f9aa8b9202fdc4 | 0 | e87565604a169a34eadadfc99e96a8f503123e8c | 1f91065b20cbc691f464bccfd8eef7d1ce4b14a8 | CONTRIBUTOR | datasette 107914493 | https://github.com/simonw/datasette/pull/413 | ||||
261418285 | MDExOlB1bGxSZXF1ZXN0MjYxNDE4Mjg1 | 416 | closed | 0 | URL hashing now optional: turn on with --config hash_urls:1 (#418) | simonw 9599 | 2019-03-15T04:26:06Z | 2019-03-17T22:55:04Z | 2019-03-17T22:55:04Z | 2019-03-17T22:55:04Z | 6f6d0ff2b41f1cacaf42287b1b230b646bcba9ee | 0 | 0d02a99c9665669540aebff981246d8c743072b3 | afe9aa3ae03c485c5d6652741438d09445a486c1 | OWNER | datasette 107914493 | https://github.com/simonw/datasette/pull/416 | |||||
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 | ||||
266035382 | MDExOlB1bGxSZXF1ZXN0MjY2MDM1Mzgy | 424 | closed | 0 | Column types in inspected metadata | russss 45057 | This PR does two things: * Adds the sqlite column type for each column to the inspected table info. * Stops binary columns from being rendered to HTML, unless a plugin handles it. There's a bit more detail in the changeset descriptions. These changes are intended as a precursor to a plugin which adds first-class support for Spatialite geographic primitives, and perhaps more useful geo-stuff. | 2019-03-31T18:46:33Z | 2019-04-29T18:30:50Z | 2019-04-29T18:30:46Z | a332d4e0b3fed7165a22880430664f1c3a00963d | 0 | 92e7b8c67fe5bcd484f19576f20c9235aca9050b | 0209a0a344503157351e625f0629b686961763c9 | CONTRIBUTOR | datasette 107914493 | https://github.com/simonw/datasette/pull/424 | |||||
269364924 | MDExOlB1bGxSZXF1ZXN0MjY5MzY0OTI0 | 426 | closed | 0 | Upgrade to Jinja2==2.10.1 | simonw 9599 | https://nvd.nist.gov/vuln/detail/CVE-2019-10906 This is only a security issue of concern if evaluating templates from untrusted sources, which isn't something I would ever expect a Datasette user to do. | 2019-04-10T23:03:08Z | 2019-04-22T21:23:22Z | 2019-04-10T23:13:31Z | 2019-04-10T23:13:31Z | 9cd3b44277e6a8ea9273bf659379ff0414e0b8ae | 0 | 629453383c7f911eddfc891f22c39b7d6e9661aa | 78e45ead4d771007c57b307edf8fc920101f8733 | OWNER | datasette 107914493 | https://github.com/simonw/datasette/pull/426 | ||||
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 |
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]);