issue_comments
10,495 rows sorted by updated_at descending
This data as json, CSV (advanced)
issue >30
- Port Datasette to ASGI 42
- Ability to sort (and paginate) by column 31
- Export to CSV 27
- Documentation with recommendations on running Datasette in production without using Docker 26
- base_url configuration setting 24
- Datasette Plugins 22
- Handle spatialite geometry columns better 19
- Facets 16
- Bug: Sort by column with NULL in next_page URL 15
- Support cross-database joins 15
- The ".upsert()" method is misnamed 15
- --dirs option for scanning directories for SQLite databases 15
- Document (and reconsider design of) Database.execute() and Database.execute_against_connection_in_thread() 15
- latest.datasette.io is no longer updating 15
- Ability to customize presentation of specific columns in HTML view 14
- Mechanism for customizing the SQL used to select specific columns in the table view 14
- .execute_write() and .execute_write_fn() methods on Database 14
- Ability for a canned query to write to the database 14
- Upload all my photos to a secure S3 bucket 14
- link_or_copy_directory() error - Invalid cross-device link 14
- Dockerfile should build more recent SQLite with FTS5 and spatialite support 13
- Fix all the places that currently use .inspect() data 13
- Mechanism for adding arbitrary pages like /about 13
- Import machine-learning detected labels (dog, llama etc) from Apple Photos 13
- Metadata should be a nested arbitrary KV store 12
- Sanely handle Infinity/-Infinity values in JSON using ?_json_infinity=1 12
- Port Datasette from Sanic to ASGI + Uvicorn 12
- Populate "endpoint" key in ASGI scope 12
- base_url doesn't entirely work for running Datasette inside Binder 12
- Implement command-line tool interface 11
- …
id | html_url | issue_url | node_id | user | created_at | updated_at ▲ | author_association | body | reactions | issue | performed_via_github_app |
---|---|---|---|---|---|---|---|---|---|---|---|
626395507 | https://github.com/dogsheep/dogsheep-photos/issues/21#issuecomment-626395507 | https://api.github.com/repos/dogsheep/dogsheep-photos/issues/21 | MDEyOklzc3VlQ29tbWVudDYyNjM5NTUwNw== | RhetTbull 41546558 | 2020-05-10T21:54:45Z | 2020-05-10T21:54:45Z | CONTRIBUTOR | @simonw does Photos show valid reverse geolocation info? Are you sure you're using bpylist2 and not bpylist? They're both unfortunately imported as "bpylist" so if you somehow got the wrong (original bpylist) version installed, it could be the issue. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
bpylist.archiver.CircularReference: archive has a cycle with uid(13) 615474990 | |
626395209 | https://github.com/dogsheep/dogsheep-photos/issues/21#issuecomment-626395209 | https://api.github.com/repos/dogsheep/dogsheep-photos/issues/21 | MDEyOklzc3VlQ29tbWVudDYyNjM5NTIwOQ== | simonw 9599 | 2020-05-10T21:52:42Z | 2020-05-10T21:52:42Z | MEMBER | Aha! It looks like I accidentally installed the old bplist into the same environment:
|
{ "total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
bpylist.archiver.CircularReference: archive has a cycle with uid(13) 615474990 | |
626395103 | https://github.com/dogsheep/dogsheep-photos/issues/21#issuecomment-626395103 | https://api.github.com/repos/dogsheep/dogsheep-photos/issues/21 | MDEyOklzc3VlQ29tbWVudDYyNjM5NTEwMw== | simonw 9599 | 2020-05-10T21:51:36Z | 2020-05-10T21:51:36Z | MEMBER | @RhetTbull I tried that workaround and it turns out I'm getting this error on ALL of my photos now! It's weird: a few day ago this wasn't happening. Now it's happening to everything. I'm not sure what I might have changed. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
bpylist.archiver.CircularReference: archive has a cycle with uid(13) 615474990 | |
626390317 | https://github.com/dogsheep/dogsheep-photos/issues/21#issuecomment-626390317 | https://api.github.com/repos/dogsheep/dogsheep-photos/issues/21 | MDEyOklzc3VlQ29tbWVudDYyNjM5MDMxNw== | RhetTbull 41546558 | 2020-05-10T21:11:24Z | 2020-05-10T21:50:58Z | CONTRIBUTOR | Ugh....Yeah, I think easiest is to catch the exception and return no place as you suggest. This particular bit of code involves un-archiving a serialized NSKeyedArchiver which uses an object table and it is certainly possible to create a circular reference that way. Because this is happening in the decode, the circular reference must be in the original data. Does Photos show valid reverse geolocation info for the photo in question? If so, Photos may be doing something beyond a simple decode of the binary plist. For now, I'll push a patch to catch the exception. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
bpylist.archiver.CircularReference: archive has a cycle with uid(13) 615474990 | |
626394989 | https://github.com/dogsheep/dogsheep-photos/issues/21#issuecomment-626394989 | https://api.github.com/repos/dogsheep/dogsheep-photos/issues/21 | MDEyOklzc3VlQ29tbWVudDYyNjM5NDk4OQ== | simonw 9599 | 2020-05-10T21:50:36Z | 2020-05-10T21:50:36Z | MEMBER | https://github.com/Marketcircle/bpylist/pull/2 looks relevant here. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
bpylist.archiver.CircularReference: archive has a cycle with uid(13) 615474990 | |
626391307 | https://github.com/simonw/sqlite-utils/issues/110#issuecomment-626391307 | https://api.github.com/repos/simonw/sqlite-utils/issues/110 | MDEyOklzc3VlQ29tbWVudDYyNjM5MTMwNw== | simonw 9599 | 2020-05-10T21:19:04Z | 2020-05-10T21:19:04Z | OWNER | I'm going to set it up so that Python |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Support decimal.Decimal type 613755043 | |
626391217 | https://github.com/simonw/sqlite-utils/issues/110#issuecomment-626391217 | https://api.github.com/repos/simonw/sqlite-utils/issues/110 | MDEyOklzc3VlQ29tbWVudDYyNjM5MTIxNw== | simonw 9599 | 2020-05-10T21:18:28Z | 2020-05-10T21:18:28Z | OWNER |
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Support decimal.Decimal type 613755043 | |
626391063 | https://github.com/simonw/sqlite-utils/issues/110#issuecomment-626391063 | https://api.github.com/repos/simonw/sqlite-utils/issues/110 | MDEyOklzc3VlQ29tbWVudDYyNjM5MTA2Mw== | simonw 9599 | 2020-05-10T21:17:16Z | 2020-05-10T21:17:16Z | OWNER | From https://www.sqlite.org/datatype3.html#type_affinity :
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Support decimal.Decimal type 613755043 | |
626390822 | https://github.com/simonw/sqlite-utils/issues/110#issuecomment-626390822 | https://api.github.com/repos/simonw/sqlite-utils/issues/110 | MDEyOklzc3VlQ29tbWVudDYyNjM5MDgyMg== | simonw 9599 | 2020-05-10T21:15:28Z | 2020-05-10T21:15:28Z | OWNER | https://www.sqlite.org/datatype3.html#affinity_name_examples suggests that |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Support decimal.Decimal type 613755043 | |
626390456 | https://github.com/simonw/sqlite-utils/issues/110#issuecomment-626390456 | https://api.github.com/repos/simonw/sqlite-utils/issues/110 | MDEyOklzc3VlQ29tbWVudDYyNjM5MDQ1Ng== | simonw 9599 | 2020-05-10T21:12:40Z | 2020-05-10T21:12:40Z | OWNER | It definitely makes sense to me that this library should support Here are the current supported types: Should |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Support decimal.Decimal type 613755043 | |
626388837 | https://github.com/dogsheep/dogsheep-photos/issues/21#issuecomment-626388837 | https://api.github.com/repos/dogsheep/dogsheep-photos/issues/21 | MDEyOklzc3VlQ29tbWVudDYyNjM4ODgzNw== | simonw 9599 | 2020-05-10T20:59:32Z | 2020-05-10T20:59:32Z | MEMBER | So it appears it's possible for |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
bpylist.archiver.CircularReference: archive has a cycle with uid(13) 615474990 | |
626388764 | https://github.com/dogsheep/dogsheep-photos/issues/21#issuecomment-626388764 | https://api.github.com/repos/dogsheep/dogsheep-photos/issues/21 | MDEyOklzc3VlQ29tbWVudDYyNjM4ODc2NA== | simonw 9599 | 2020-05-10T20:58:52Z | 2020-05-10T20:58:52Z | MEMBER | More from the debugger: ```
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
bpylist.archiver.CircularReference: archive has a cycle with uid(13) 615474990 | |
626340387 | https://github.com/simonw/datasette/issues/254#issuecomment-626340387 | https://api.github.com/repos/simonw/datasette/issues/254 | MDEyOklzc3VlQ29tbWVudDYyNjM0MDM4Nw== | philroche 247131 | 2020-05-10T14:54:13Z | 2020-05-10T14:54:13Z | NONE | This has now been resolved and is not present in current version of datasette. Sample query @simonw mentioned now returns as expected. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Escaping named parameters in canned queries 322283067 | |
626006493 | https://github.com/simonw/datasette/issues/619#issuecomment-626006493 | https://api.github.com/repos/simonw/datasette/issues/619 | MDEyOklzc3VlQ29tbWVudDYyNjAwNjQ5Mw== | davidszotten 412005 | 2020-05-08T20:29:12Z | 2020-05-08T20:29:12Z | NONE | just trying out datasette and quite like it, thanks! i found this issue annoying enough to have a go at a fix. have you any thoughts on a good approach? (i'm happy to dig in myself if you haven't thought about it yet, but wanted to check if you had an idea for how to fix when you raised the issue) |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
"Invalid SQL" page should let you edit the SQL 520655983 | |
625947133 | https://github.com/dogsheep/dogsheep-photos/issues/20#issuecomment-625947133 | https://api.github.com/repos/dogsheep/dogsheep-photos/issues/20 | MDEyOklzc3VlQ29tbWVudDYyNTk0NzEzMw== | simonw 9599 | 2020-05-08T18:13:06Z | 2020-05-08T18:13:06Z | MEMBER |
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Ability to serve thumbnailed Apple Photo from its place on disk 613006393 | |
625890190 | https://github.com/simonw/datasette/issues/685#issuecomment-625890190 | https://api.github.com/repos/simonw/datasette/issues/685 | MDEyOklzc3VlQ29tbWVudDYyNTg5MDE5MA== | simonw 9599 | 2020-05-08T16:09:44Z | 2020-05-08T16:09:56Z | OWNER | Re-opening this ticket because I forgot to document |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Document (and reconsider design of) Database.execute() and Database.execute_against_connection_in_thread() 570309546 | |
625889673 | https://github.com/simonw/datasette/issues/685#issuecomment-625889673 | https://api.github.com/repos/simonw/datasette/issues/685 | MDEyOklzc3VlQ29tbWVudDYyNTg4OTY3Mw== | simonw 9599 | 2020-05-08T16:08:40Z | 2020-05-08T16:08:40Z | OWNER | I'm going to ship a release with just this change purely so I can start depending on it from my in-development https://github.com/simonw/datasette-media plugin. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Document (and reconsider design of) Database.execute() and Database.execute_against_connection_in_thread() 570309546 | |
625889303 | https://github.com/simonw/datasette/issues/685#issuecomment-625889303 | https://api.github.com/repos/simonw/datasette/issues/685 | MDEyOklzc3VlQ29tbWVudDYyNTg4OTMwMw== | simonw 9599 | 2020-05-08T16:07:55Z | 2020-05-08T16:07:55Z | OWNER | New documentation is live here: https://datasette.readthedocs.io/en/latest/internals.html#database-class |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Document (and reconsider design of) Database.execute() and Database.execute_against_connection_in_thread() 570309546 | |
625887196 | https://github.com/simonw/datasette/issues/685#issuecomment-625887196 | https://api.github.com/repos/simonw/datasette/issues/685 | MDEyOklzc3VlQ29tbWVudDYyNTg4NzE5Ng== | simonw 9599 | 2020-05-08T16:03:16Z | 2020-05-08T16:03:16Z | OWNER | [ Fun aside: I implemented and shipped this entire branch in my browser using the beta of GitHub's new Codespaces ] |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Document (and reconsider design of) Database.execute() and Database.execute_against_connection_in_thread() 570309546 | |
625868416 | https://github.com/simonw/datasette/issues/685#issuecomment-625868416 | https://api.github.com/repos/simonw/datasette/issues/685 | MDEyOklzc3VlQ29tbWVudDYyNTg2ODQxNg== | simonw 9599 | 2020-05-08T15:23:04Z | 2020-05-08T15:23:04Z | OWNER | I'll move the code into |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Document (and reconsider design of) Database.execute() and Database.execute_against_connection_in_thread() 570309546 | |
625866419 | https://github.com/simonw/datasette/issues/685#issuecomment-625866419 | https://api.github.com/repos/simonw/datasette/issues/685 | MDEyOklzc3VlQ29tbWVudDYyNTg2NjQxOQ== | simonw 9599 | 2020-05-08T15:18:55Z | 2020-05-08T15:18:55Z | OWNER | This code should live somewhere other than |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Document (and reconsider design of) Database.execute() and Database.execute_against_connection_in_thread() 570309546 | |
625865434 | https://github.com/simonw/datasette/issues/685#issuecomment-625865434 | https://api.github.com/repos/simonw/datasette/issues/685 | MDEyOklzc3VlQ29tbWVudDYyNTg2NTQzNA== | simonw 9599 | 2020-05-08T15:16:43Z | 2020-05-08T15:16:43Z | OWNER | Documentation for improved design: https://github.com/simonw/datasette/pull/763/files#diff-87703da03a02e0f8dae01f39abd6250f |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Document (and reconsider design of) Database.execute() and Database.execute_against_connection_in_thread() 570309546 | |
625862578 | https://github.com/simonw/datasette/issues/685#issuecomment-625862578 | https://api.github.com/repos/simonw/datasette/issues/685 | MDEyOklzc3VlQ29tbWVudDYyNTg2MjU3OA== | simonw 9599 | 2020-05-08T15:10:16Z | 2020-05-08T15:10:16Z | OWNER | I'm not going to do |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Document (and reconsider design of) Database.execute() and Database.execute_against_connection_in_thread() 570309546 | |
625850152 | https://github.com/simonw/datasette/issues/685#issuecomment-625850152 | https://api.github.com/repos/simonw/datasette/issues/685 | MDEyOklzc3VlQ29tbWVudDYyNTg1MDE1Mg== | simonw 9599 | 2020-05-08T14:44:37Z | 2020-05-08T14:44:37Z | OWNER | I'll write the API documentation first, in a branch. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Document (and reconsider design of) Database.execute() and Database.execute_against_connection_in_thread() 570309546 | |
625849497 | https://github.com/simonw/datasette/issues/685#issuecomment-625849497 | https://api.github.com/repos/simonw/datasette/issues/685 | MDEyOklzc3VlQ29tbWVudDYyNTg0OTQ5Nw== | simonw 9599 | 2020-05-08T14:43:13Z | 2020-05-08T14:43:13Z | OWNER | I'm going to add |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Document (and reconsider design of) Database.execute() and Database.execute_against_connection_in_thread() 570309546 | |
625841397 | https://github.com/simonw/datasette/issues/685#issuecomment-625841397 | https://api.github.com/repos/simonw/datasette/issues/685 | MDEyOklzc3VlQ29tbWVudDYyNTg0MTM5Nw== | simonw 9599 | 2020-05-08T14:25:56Z | 2020-05-08T14:27:15Z | OWNER | Maybe all I really want here is to add length and access-by-index methods to the Results class? So I don't have to do Also how about a |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Document (and reconsider design of) Database.execute() and Database.execute_against_connection_in_thread() 570309546 | |
625839046 | https://github.com/simonw/datasette/issues/685#issuecomment-625839046 | https://api.github.com/repos/simonw/datasette/issues/685 | MDEyOklzc3VlQ29tbWVudDYyNTgzOTA0Ng== | simonw 9599 | 2020-05-08T14:20:43Z | 2020-05-08T14:25:05Z | OWNER | The API design for the That object encapsulates the returned data, the named columns and whether or not the result was truncated.
The Here's the current class implementation: https://github.com/simonw/datasette/blob/0784f2ef9d3ff6dd9df05f54cb51de29a6d11764/datasette/utils/init.py#L54-L68 |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Document (and reconsider design of) Database.execute() and Database.execute_against_connection_in_thread() 570309546 | |
625817999 | https://github.com/simonw/datasette/issues/685#issuecomment-625817999 | https://api.github.com/repos/simonw/datasette/issues/685 | MDEyOklzc3VlQ29tbWVudDYyNTgxNzk5OQ== | simonw 9599 | 2020-05-08T13:33:23Z | 2020-05-08T13:33:23Z | OWNER | I'm going to rename |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Document (and reconsider design of) Database.execute() and Database.execute_against_connection_in_thread() 570309546 | |
625603221 | https://github.com/simonw/datasette/issues/685#issuecomment-625603221 | https://api.github.com/repos/simonw/datasette/issues/685 | MDEyOklzc3VlQ29tbWVudDYyNTYwMzIyMQ== | simonw 9599 | 2020-05-08T03:00:23Z | 2020-05-08T03:00:23Z | OWNER | Working with this in https://github.com/simonw/datasette-media/issues/2 made me really want to redesign this API: https://github.com/simonw/datasette-media/commit/be23ec3d05900b69a3d47bc1e0dd056c333125f4 |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Document (and reconsider design of) Database.execute() and Database.execute_against_connection_in_thread() 570309546 | |
625321121 | https://github.com/simonw/datasette/issues/648#issuecomment-625321121 | https://api.github.com/repos/simonw/datasette/issues/648 | MDEyOklzc3VlQ29tbWVudDYyNTMyMTEyMQ== | chekos 28694175 | 2020-05-07T15:21:19Z | 2020-05-07T15:21:19Z | NONE | It seems that heroku wasn't updating to 0.41 on deployment. Had to add and (i think) because the These are the lines that gave me an idea on how to solve it: https://github.com/simonw/datasette/blob/182e5c8745c94576718315f7596ccc81e5e2417b/datasette/publish/heroku.py#L164-L186 |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Mechanism for adding arbitrary pages like /about 534492501 | |
625286519 | https://github.com/simonw/datasette/issues/648#issuecomment-625286519 | https://api.github.com/repos/simonw/datasette/issues/648 | MDEyOklzc3VlQ29tbWVudDYyNTI4NjUxOQ== | chekos 28694175 | 2020-05-07T14:23:22Z | 2020-05-07T14:28:33Z | NONE | Hi! I'm using datasette on this repository: https://github.com/chekos/RIPA-2018-datasette and on my local machine i can see an /about page i created but when i deploy to heroku i get a 404 (http://ripa-2018-db.herokuapp.com) I bumped datasette in my requirements file to 0.41 so I'm 100% what the issue is 🤔 Do you have any idea what could be the problem? 👀 EDIT: for context, I have a templates directory with a pages/about.html file in https://github.com/chekos/RIPA-2018-datasette/tree/master/datasette/templates |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Mechanism for adding arbitrary pages like /about 534492501 | |
625091976 | https://github.com/simonw/datasette/issues/744#issuecomment-625091976 | https://api.github.com/repos/simonw/datasette/issues/744 | MDEyOklzc3VlQ29tbWVudDYyNTA5MTk3Ng== | aborruso 30607 | 2020-05-07T07:51:25Z | 2020-05-07T07:51:25Z | NONE | I have installed Then I have removed from
And now I have ``` Traceback (most recent call last): File "C:\Users\aborr\AppData\Roaming\Python\Python37\site-packages\datasette\publish\heroku.py", line 210, in temporary_heroku_directory yield File "C:\Users\aborr\AppData\Roaming\Python\Python37\site-packages\datasette\publish\heroku.py", line 96, in heroku list_output = check_output(["heroku", "apps:list", "--json"]).decode( File "c:\python37\lib\subprocess.py", line 395, in check_output kwargs).stdout File "c:\python37\lib\subprocess.py", line 472, in run with Popen(*popenargs, kwargs) as process: File "c:\python37\lib\subprocess.py", line 775, in init restore_signals, start_new_session) File "c:\python37\lib\subprocess.py", line 1178, in _execute_child startupinfo) FileNotFoundError: [WinError 2] The specified file could not be found During handling of the above exception, another exception occurred: Traceback (most recent call last): File "c:\python37\lib\runpy.py", line 193, in _run_module_as_main "main", mod_spec) File "c:\python37\lib\runpy.py", line 85, in _run_code exec(code, run_globals) File "C:\Users\aborr\AppData\Roaming\Python\Python37\Scripts\datasette.exe__main__.py", line 9, in <module> File "C:\Users\aborr\AppData\Roaming\Python\Python37\site-packages\click\core.py", line 829, in call return self.main(args, kwargs) File "C:\Users\aborr\AppData\Roaming\Python\Python37\site-packages\click\core.py", line 782, in main rv = self.invoke(ctx) File "C:\Users\aborr\AppData\Roaming\Python\Python37\site-packages\click\core.py", line 1259, in invoke return _process_result(sub_ctx.command.invoke(sub_ctx)) File "C:\Users\aborr\AppData\Roaming\Python\Python37\site-packages\click\core.py", line 1259, in invoke return _process_result(sub_ctx.command.invoke(sub_ctx)) File "C:\Users\aborr\AppData\Roaming\Python\Python37\site-packages\click\core.py", line 1066, in invoke return ctx.invoke(self.callback, ctx.params) File "C:\Users\aborr\AppData\Roaming\Python\Python37\site-packages\click\core.py", line 610, in invoke return callback(args, **kwargs) File "C:\Users\aborr\AppData\Roaming\Python\Python37\site-packages\datasette\publish\heroku.py", line 120, in heroku call(["heroku", "builds:create", "-a", app_name, "--include-vcs-ignore"]) File "c:\python37\lib\contextlib.py", line 130, in exit self.gen.throw(type, value, traceback) File "C:\Users\aborr\AppData\Roaming\Python\Python37\site-packages\datasette\publish\heroku.py", line 213, in temporary_heroku_directory tmp.cleanup() File "c:\python37\lib\tempfile.py", line 809, in cleanup _shutil.rmtree(self.name) File "c:\python37\lib\shutil.py", line 513, in rmtree return _rmtree_unsafe(path, onerror) File "c:\python37\lib\shutil.py", line 401, in _rmtree_unsafe onerror(os.rmdir, path, sys.exc_info()) File "c:\python37\lib\shutil.py", line 399, in _rmtree_unsafe os.rmdir(path) PermissionError: [WinError 32] Unable to access file. The file is being used by another process: 'C:\Users\aborr\AppData\Local\Temp\tmpkcxy8i_q' ``` |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
link_or_copy_directory() error - Invalid cross-device link 608058890 | |
625083715 | https://github.com/simonw/datasette/issues/744#issuecomment-625083715 | https://api.github.com/repos/simonw/datasette/issues/744 | MDEyOklzc3VlQ29tbWVudDYyNTA4MzcxNQ== | aborruso 30607 | 2020-05-07T07:34:18Z | 2020-05-07T07:34:18Z | NONE | In Windows I'm not very strong. I use debian (inside WSL). However these are the possible steps:
It's a very basic Python env that I do not use. This time only to reach my goal: try to publish using custom template |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
link_or_copy_directory() error - Invalid cross-device link 608058890 | |
625066876 | https://github.com/simonw/datasette/issues/744#issuecomment-625066876 | https://api.github.com/repos/simonw/datasette/issues/744 | MDEyOklzc3VlQ29tbWVudDYyNTA2Njg3Ng== | simonw 9599 | 2020-05-07T06:55:04Z | 2020-05-07T06:55:04Z | OWNER | I have a Windows 10 gaming PC in the house: what steps can I take to get an environment in there that matches yours? I've not installed Python on Windows before. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
link_or_copy_directory() error - Invalid cross-device link 608058890 | |
625066073 | https://github.com/simonw/datasette/issues/744#issuecomment-625066073 | https://api.github.com/repos/simonw/datasette/issues/744 | MDEyOklzc3VlQ29tbWVudDYyNTA2NjA3Mw== | aborruso 30607 | 2020-05-07T06:53:09Z | 2020-05-07T06:53:09Z | NONE | @simonw another error starting from Windows. I run
And I have
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
link_or_copy_directory() error - Invalid cross-device link 608058890 | |
625061250 | https://github.com/simonw/datasette/issues/744#issuecomment-625061250 | https://api.github.com/repos/simonw/datasette/issues/744 | MDEyOklzc3VlQ29tbWVudDYyNTA2MTI1MA== | simonw 9599 | 2020-05-07T06:40:09Z | 2020-05-07T06:40:09Z | OWNER | Have a try and let me know what happens! I'd like this stuff to just work on Windows but I need to figure out how to get an environment working. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
link_or_copy_directory() error - Invalid cross-device link 608058890 | |
625060561 | https://github.com/simonw/datasette/issues/744#issuecomment-625060561 | https://api.github.com/repos/simonw/datasette/issues/744 | MDEyOklzc3VlQ29tbWVudDYyNTA2MDU2MQ== | aborruso 30607 | 2020-05-07T06:38:24Z | 2020-05-07T06:38:24Z | NONE | Hi @simonw probably I could try to do it in Python for windows. I do not like to do these things in win enviroment. Because probably WSL Linux env (in which I do a lot of great things) is not an environment that will be tested for datasette. In win I shouldn't have any problems. Am I right? |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
link_or_copy_directory() error - Invalid cross-device link 608058890 | |
625003013 | https://github.com/simonw/datasette/issues/761#issuecomment-625003013 | https://api.github.com/repos/simonw/datasette/issues/761 | MDEyOklzc3VlQ29tbWVudDYyNTAwMzAxMw== | simonw 9599 | 2020-05-07T03:07:55Z | 2020-05-07T03:09:05Z | OWNER | Here's another demo I built using this feature: https://observablehq.com/@simonw/datasette-table-diagram Running on this query:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Allow-list pragma_table_info(tablename) and similar 613467382 | |
624949809 | https://github.com/simonw/datasette/issues/760#issuecomment-624949809 | https://api.github.com/repos/simonw/datasette/issues/760 | MDEyOklzc3VlQ29tbWVudDYyNDk0OTgwOQ== | simonw 9599 | 2020-05-06T23:49:06Z | 2020-05-06T23:49:06Z | OWNER |
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Way of seeing full schema for a database 613422636 | |
624860451 | https://github.com/simonw/datasette/issues/759#issuecomment-624860451 | https://api.github.com/repos/simonw/datasette/issues/759 | MDEyOklzc3VlQ29tbWVudDYyNDg2MDQ1MQ== | Krazybug 133845 | 2020-05-06T20:03:01Z | 2020-05-06T20:04:42Z | NONE | Thank you. Now it's ok with the url http://localhost:8001/index/summary?_search=language%3Aeng&_sort=title&_searchmode=raw But I'm not able to manage it in the metadata file. Here is mine (note that the sort column is taken into account) Here it is: ``` { "databases": { "index": { "tables": { "summary": { "sort": "title", "searchmode": "raw" } } } } } ``` Any idea ? |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
fts search on a column doesn't work anymore due to escape_fts 612673948 | |
624821090 | https://github.com/simonw/datasette/issues/757#issuecomment-624821090 | https://api.github.com/repos/simonw/datasette/issues/757 | MDEyOklzc3VlQ29tbWVudDYyNDgyMTA5MA== | simonw 9599 | 2020-05-06T18:41:29Z | 2020-05-06T18:41:29Z | OWNER | OK, I just released 0.41 with that and a bunch of other stuff: https://datasette.readthedocs.io/en/latest/changelog.html#v0-41 |
{ "total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Question: Any fixed date for the release with the uft8-encoding fix? 612378203 | |
624798540 | https://github.com/simonw/datasette/issues/757#issuecomment-624798540 | https://api.github.com/repos/simonw/datasette/issues/757 | MDEyOklzc3VlQ29tbWVudDYyNDc5ODU0MA== | simonw 9599 | 2020-05-06T17:56:34Z | 2020-05-06T17:56:34Z | OWNER | Actually I'm going to put that release out today. I was hoping to finish #698 first but that shouldn't delay those other features any longer. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Question: Any fixed date for the release with the uft8-encoding fix? 612378203 | |
624798182 | https://github.com/simonw/datasette/issues/757#issuecomment-624798182 | https://api.github.com/repos/simonw/datasette/issues/757 | MDEyOklzc3VlQ29tbWVudDYyNDc5ODE4Mg== | simonw 9599 | 2020-05-06T17:55:50Z | 2020-05-06T17:55:50Z | OWNER | I'll definitely get that out this week! For the moment a trick I often use is to put a URL to the most recent commit in my This should be safe because nothing lands on Datasette master without the full unit test suite passing. But you're right, there's a bunch of stuff now that needs to go out in a release: https://github.com/simonw/datasette/compare/0.40...0784f2ef9d3ff6dd9df05f54cb51de29a6d11764 |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Question: Any fixed date for the release with the uft8-encoding fix? 612378203 | |
624797119 | https://github.com/simonw/datasette/issues/758#issuecomment-624797119 | https://api.github.com/repos/simonw/datasette/issues/758 | MDEyOklzc3VlQ29tbWVudDYyNDc5NzExOQ== | simonw 9599 | 2020-05-06T17:53:46Z | 2020-05-06T17:53:46Z | OWNER | It's interesting to hear from someone who's using this feature - I'm considering moving it out into a plugin #647. |
{ "total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Question: Access to immutable database-path 612382643 | |
624796685 | https://github.com/simonw/datasette/issues/758#issuecomment-624796685 | https://api.github.com/repos/simonw/datasette/issues/758 | MDEyOklzc3VlQ29tbWVudDYyNDc5NjY4NQ== | simonw 9599 | 2020-05-06T17:52:54Z | 2020-05-06T17:52:54Z | OWNER | Thanks for the suggestion! I'll add this. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Question: Access to immutable database-path 612382643 | |
624795695 | https://github.com/simonw/datasette/issues/759#issuecomment-624795695 | https://api.github.com/repos/simonw/datasette/issues/759 | MDEyOklzc3VlQ29tbWVudDYyNDc5NTY5NQ== | simonw 9599 | 2020-05-06T17:50:57Z | 2020-05-06T17:52:07Z | OWNER | This was a deliberate change from #651. The
If you want to use advanced search syntax on those pages you can do so using the Example: https://latest.datasette.io/fixtures/searchable?_search=text1:dog&_searchmode=raw |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
fts search on a column doesn't work anymore due to escape_fts 612673948 | |
624790887 | https://github.com/simonw/datasette/issues/761#issuecomment-624790887 | https://api.github.com/repos/simonw/datasette/issues/761 | MDEyOklzc3VlQ29tbWVudDYyNDc5MDg4Nw== | simonw 9599 | 2020-05-06T17:41:21Z | 2020-05-06T17:41:21Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Allow-list pragma_table_info(tablename) and similar 613467382 | ||
624787678 | https://github.com/simonw/datasette/issues/760#issuecomment-624787678 | https://api.github.com/repos/simonw/datasette/issues/760 | MDEyOklzc3VlQ29tbWVudDYyNDc4NzY3OA== | simonw 9599 | 2020-05-06T17:35:05Z | 2020-05-06T17:35:05Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Way of seeing full schema for a database 613422636 | ||
624783996 | https://github.com/simonw/datasette/issues/761#issuecomment-624783996 | https://api.github.com/repos/simonw/datasette/issues/761 | MDEyOklzc3VlQ29tbWVudDYyNDc4Mzk5Ng== | simonw 9599 | 2020-05-06T17:28:20Z | 2020-05-06T17:28:20Z | OWNER | Interestingly https://latest.datasette.io/fixtures?sql=select+*+from+pragma_function_list() doesn't work, when it DOES work on my laptop.
https://www.sqlite.org/changes.html#version_3_30_0 says that as-of 3.30.0:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Allow-list pragma_table_info(tablename) and similar 613467382 | |
624782775 | https://github.com/simonw/datasette/issues/761#issuecomment-624782775 | https://api.github.com/repos/simonw/datasette/issues/761 | MDEyOklzc3VlQ29tbWVudDYyNDc4Mjc3NQ== | simonw 9599 | 2020-05-06T17:26:05Z | 2020-05-06T17:26:05Z | OWNER | Some demos: * https://latest.datasette.io/fixtures?sql=select++from+pragma_database_list%28%29 * https://latest.datasette.io/fixtures?sql=select++from+pragma_foreign_key_list%28%27complex_foreign_keys%27%29 * https://latest.datasette.io/fixtures?sql=select++from+pragma_function_list%28%29 * https://latest.datasette.io/fixtures?sql=select++from+pragma_index_info%28%27idx_compound_three_primary_keys_content%27%29 * https://latest.datasette.io/fixtures?sql=select++from+pragma_index_list%28%27compound_three_primary_keys%27%29 * https://latest.datasette.io/fixtures?sql=select++from+pragma_index_xinfo%28%27idx_compound_three_primary_keys_content%27%29 * https://latest.datasette.io/fixtures?sql=select++from+pragma_page_count%28%29 * https://latest.datasette.io/fixtures?sql=select++from+pragma_max_page_count%28%29 * https://latest.datasette.io/fixtures?sql=select++from+pragma_page_size%28%29 * https://latest.datasette.io/fixtures?sql=select++from+pragma_schema_version%28%29 * https://latest.datasette.io/fixtures?sql=select++from+pragma_table_info%28%27complex_foreign_keys%27%29 * https://latest.datasette.io/fixtures?sql=select++from+pragma_table_xinfo%28%27complex_foreign_keys%27%29 |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Allow-list pragma_table_info(tablename) and similar 613467382 | |
624774928 | https://github.com/simonw/datasette/issues/761#issuecomment-624774928 | https://api.github.com/repos/simonw/datasette/issues/761 | MDEyOklzc3VlQ29tbWVudDYyNDc3NDkyOA== | simonw 9599 | 2020-05-06T17:11:15Z | 2020-05-06T17:11:15Z | OWNER | For the moment I'll allow-list the following:
* |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Allow-list pragma_table_info(tablename) and similar 613467382 | |
624766424 | https://github.com/simonw/datasette/issues/761#issuecomment-624766424 | https://api.github.com/repos/simonw/datasette/issues/761 | MDEyOklzc3VlQ29tbWVudDYyNDc2NjQyNA== | simonw 9599 | 2020-05-06T16:54:38Z | 2020-05-06T17:01:02Z | OWNER | I could allow-list some other useful SQLite calls these "pragma functions" - documented here: https://www.sqlite.org/pragma.html#pragfunc They sound safe:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Allow-list pragma_table_info(tablename) and similar 613467382 | |
624768744 | https://github.com/simonw/datasette/issues/761#issuecomment-624768744 | https://api.github.com/repos/simonw/datasette/issues/761 | MDEyOklzc3VlQ29tbWVudDYyNDc2ODc0NA== | simonw 9599 | 2020-05-06T16:59:01Z | 2020-05-06T16:59:01Z | OWNER | Maybe use a negative lookahead assertion? https://docs.python.org/3/library/re.html#index-20
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Allow-list pragma_table_info(tablename) and similar 613467382 | |
624767466 | https://github.com/simonw/datasette/issues/761#issuecomment-624767466 | https://api.github.com/repos/simonw/datasette/issues/761 | MDEyOklzc3VlQ29tbWVudDYyNDc2NzQ2Ng== | simonw 9599 | 2020-05-06T16:56:40Z | 2020-05-06T16:57:03Z | OWNER | The rationale for blocking
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Allow-list pragma_table_info(tablename) and similar 613467382 | |
624729459 | https://github.com/simonw/datasette/issues/760#issuecomment-624729459 | https://api.github.com/repos/simonw/datasette/issues/760 | MDEyOklzc3VlQ29tbWVudDYyNDcyOTQ1OQ== | simonw 9599 | 2020-05-06T15:47:44Z | 2020-05-06T15:47:44Z | OWNER |
https://github.com/simonw/datasette/blob/d349d57cdf3d577afb62bdf784af342a4d5be660/datasette/utils/init.py#L174 |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Way of seeing full schema for a database 613422636 | |
624408738 | https://github.com/dogsheep/dogsheep-photos/issues/20#issuecomment-624408738 | https://api.github.com/repos/dogsheep/dogsheep-photos/issues/20 | MDEyOklzc3VlQ29tbWVudDYyNDQwODczOA== | simonw 9599 | 2020-05-06T02:21:05Z | 2020-05-06T02:21:32Z | MEMBER | Here's rendering code from my hacked-together not-yet-released S3 image proxy: ```python from starlette.responses import Response from PIL import Image, ExifTags import pyheif for ORIENTATION_TAG in ExifTags.TAGS.keys(): if ExifTags.TAGS[ORIENTATION_TAG] == "Orientation": break ... # Load it into Pillow if ext == "heic": heic = pyheif.read_heif(image_response.content) image = Image.frombytes(mode=heic.mode, size=heic.size, data=heic.data) else: image = Image.open(io.BytesIO(image_response.content))
``` |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Ability to serve thumbnailed Apple Photo from its place on disk 613006393 | |
624408370 | https://github.com/dogsheep/dogsheep-photos/issues/20#issuecomment-624408370 | https://api.github.com/repos/dogsheep/dogsheep-photos/issues/20 | MDEyOklzc3VlQ29tbWVudDYyNDQwODM3MA== | simonw 9599 | 2020-05-06T02:19:27Z | 2020-05-06T02:19:27Z | MEMBER | The plugin can be generalized: it can be configured to know how to take the URL path, look it up in ANY table (via a custom SQL query) to get a path on disk and then serve that. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Ability to serve thumbnailed Apple Photo from its place on disk 613006393 | |
624408220 | https://github.com/dogsheep/dogsheep-photos/issues/20#issuecomment-624408220 | https://api.github.com/repos/dogsheep/dogsheep-photos/issues/20 | MDEyOklzc3VlQ29tbWVudDYyNDQwODIyMA== | simonw 9599 | 2020-05-06T02:18:47Z | 2020-05-06T02:18:47Z | MEMBER | The I can write a custom Datasette plugin which takes the I'll prototype this is a one-off plugin first, then package it on PyPI for other people to install. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Ability to serve thumbnailed Apple Photo from its place on disk 613006393 | |
624406285 | https://github.com/dogsheep/dogsheep-photos/issues/19#issuecomment-624406285 | https://api.github.com/repos/dogsheep/dogsheep-photos/issues/19 | MDEyOklzc3VlQ29tbWVudDYyNDQwNjI4NQ== | simonw 9599 | 2020-05-06T02:10:03Z | 2020-05-06T02:10:03Z | MEMBER | Most annoying part of this is the difficulty of actually showing a photo. Maybe I need to run a local proxy that I can link to? A custom Datasette plugin perhaps? |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
apple-photos command should work even if upload has not run 613002220 | |
624364557 | https://github.com/dogsheep/dogsheep-photos/issues/18#issuecomment-624364557 | https://api.github.com/repos/dogsheep/dogsheep-photos/issues/18 | MDEyOklzc3VlQ29tbWVudDYyNDM2NDU1Nw== | simonw 9599 | 2020-05-05T23:49:18Z | 2020-05-05T23:49:18Z | MEMBER | Label is |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Switch CI solution to GitHub Actions with a macOS runner 612860758 | |
624284539 | https://github.com/dogsheep/dogsheep-photos/issues/17#issuecomment-624284539 | https://api.github.com/repos/dogsheep/dogsheep-photos/issues/17 | MDEyOklzc3VlQ29tbWVudDYyNDI4NDUzOQ== | RhetTbull 41546558 | 2020-05-05T20:20:05Z | 2020-05-05T20:20:05Z | CONTRIBUTOR | FYI, I've got an issue to make osxphotos cross-platform but it's low on my priority list. About 90% of the functionality could be done cross-platform but right now the MacOS specific stuff is embedded throughout and would take some work. Though I try to minimize it, there's sprinklings of ObjC & Applescript throughout osxphotos. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Only install osxphotos if running on macOS 612860531 | |
624278714 | https://github.com/dogsheep/dogsheep-photos/issues/17#issuecomment-624278714 | https://api.github.com/repos/dogsheep/dogsheep-photos/issues/17 | MDEyOklzc3VlQ29tbWVudDYyNDI3ODcxNA== | simonw 9599 | 2020-05-05T20:07:19Z | 2020-05-05T20:07:19Z | MEMBER | From https://hynek.me/articles/conditional-python-dependencies/ I think this will look like:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Only install osxphotos if running on macOS 612860531 | |
624278090 | https://github.com/dogsheep/dogsheep-photos/issues/17#issuecomment-624278090 | https://api.github.com/repos/dogsheep/dogsheep-photos/issues/17 | MDEyOklzc3VlQ29tbWVudDYyNDI3ODA5MA== | simonw 9599 | 2020-05-05T20:06:01Z | 2020-05-05T20:06:01Z | MEMBER | https://www.python.org/dev/peps/pep-0508/#environment-markers I think I want |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Only install osxphotos if running on macOS 612860531 | |
624099524 | https://github.com/simonw/sqlite-utils/issues/109#issuecomment-624099524 | https://api.github.com/repos/simonw/sqlite-utils/issues/109 | MDEyOklzc3VlQ29tbWVudDYyNDA5OTUyNA== | simonw 9599 | 2020-05-05T14:46:53Z | 2020-05-05T14:46:53Z | OWNER | This already exists, it's just called |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
table.create_index(..., ignore=True) 612658444 | |
623865250 | https://github.com/dogsheep/dogsheep-photos/issues/16#issuecomment-623865250 | https://api.github.com/repos/dogsheep/dogsheep-photos/issues/16 | MDEyOklzc3VlQ29tbWVudDYyMzg2NTI1MA== | simonw 9599 | 2020-05-05T05:38:16Z | 2020-05-05T05:38:16Z | MEMBER | It looks like |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Import machine-learning detected labels (dog, llama etc) from Apple Photos 612287234 | |
623863902 | https://github.com/dogsheep/dogsheep-photos/issues/16#issuecomment-623863902 | https://api.github.com/repos/dogsheep/dogsheep-photos/issues/16 | MDEyOklzc3VlQ29tbWVudDYyMzg2MzkwMg== | simonw 9599 | 2020-05-05T05:31:53Z | 2020-05-05T05:31:53Z | MEMBER | Yes! Turning those conn = sqlite3.connect( "/Users/simon/Pictures/Photos Library.photoslibrary/database/search/psi.sqlite" ) def all_rows(table): result = conn.execute("select rowid as id, * from {}".format(table)) cols = [c[0] for c in result.description] for row in result.fetchall(): yield dict(zip(cols, row)) if name == "main":
db = sqlite_utils.Database("psi_copy.db")
for table in ("assets", "collections", "ga", "gc", "groups"):
db[table].upsert_all(all_rows(table), pk="id", alter=True)
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Import machine-learning detected labels (dog, llama etc) from Apple Photos 612287234 | |
623857417 | https://github.com/dogsheep/dogsheep-photos/issues/16#issuecomment-623857417 | https://api.github.com/repos/dogsheep/dogsheep-photos/issues/16 | MDEyOklzc3VlQ29tbWVudDYyMzg1NzQxNw== | simonw 9599 | 2020-05-05T05:01:47Z | 2020-05-05T05:01:47Z | MEMBER | Even that didn't work - it didn't copy across the rowid values. I'm pretty sure that's what's wrong here:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Import machine-learning detected labels (dog, llama etc) from Apple Photos 612287234 | |
623855885 | https://github.com/dogsheep/dogsheep-photos/issues/16#issuecomment-623855885 | https://api.github.com/repos/dogsheep/dogsheep-photos/issues/16 | MDEyOklzc3VlQ29tbWVudDYyMzg1NTg4NQ== | simonw 9599 | 2020-05-05T04:54:39Z | 2020-05-05T04:54:53Z | MEMBER | Trying this import mechanism instead:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Import machine-learning detected labels (dog, llama etc) from Apple Photos 612287234 | |
623855841 | https://github.com/dogsheep/dogsheep-photos/issues/16#issuecomment-623855841 | https://api.github.com/repos/dogsheep/dogsheep-photos/issues/16 | MDEyOklzc3VlQ29tbWVudDYyMzg1NTg0MQ== | simonw 9599 | 2020-05-05T04:54:28Z | 2020-05-05T04:54:28Z | MEMBER | Things were not matching up for me correctly: I think that's because my import script didn't correctly import the existing |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Import machine-learning detected labels (dog, llama etc) from Apple Photos 612287234 | |
623846880 | https://github.com/dogsheep/dogsheep-photos/issues/16#issuecomment-623846880 | https://api.github.com/repos/dogsheep/dogsheep-photos/issues/16 | MDEyOklzc3VlQ29tbWVudDYyMzg0Njg4MA== | simonw 9599 | 2020-05-05T04:06:08Z | 2020-05-05T04:06:08Z | MEMBER | This function seems to convert them into UUIDs that match my photos:
|
{ "total_count": 1, "+1": 0, "-1": 0, "laugh": 0, "hooray": 1, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Import machine-learning detected labels (dog, llama etc) from Apple Photos 612287234 | |
623845014 | https://github.com/dogsheep/dogsheep-photos/issues/16#issuecomment-623845014 | https://api.github.com/repos/dogsheep/dogsheep-photos/issues/16 | MDEyOklzc3VlQ29tbWVudDYyMzg0NTAxNA== | RhetTbull 41546558 | 2020-05-05T03:55:14Z | 2020-05-05T03:56:24Z | CONTRIBUTOR | I'm traveling w/o access to my Mac so can't help with any code right now. I suspected ZSCENEIDENTIFIER was a foreign key into one of these psi.sqlite tables. But looks like you're on to something connecting groups to assets. As for the UUID, I think there's two ints because each is 64-bits but UUIDs are 128-bits. Thus they need to be combined to get the 128 bit UUID. You might be able to use Apple's NSUUID, for example, by wrapping with pyObjC. Here's one example of using this in PyObjC's test suite. Interesting it's stored this way instead of a UUIDString as in Photos.sqlite. Perhaps it for faster indexing. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Import machine-learning detected labels (dog, llama etc) from Apple Photos 612287234 | |
623811131 | https://github.com/dogsheep/dogsheep-photos/issues/16#issuecomment-623811131 | https://api.github.com/repos/dogsheep/dogsheep-photos/issues/16 | MDEyOklzc3VlQ29tbWVudDYyMzgxMTEzMQ== | simonw 9599 | 2020-05-05T03:16:18Z | 2020-05-05T03:16:18Z | MEMBER | Here's how to convert two integers unto a UUID using Java. Not sure if it's the solution I need though (or how to do the same thing in Python): https://repl.it/repls/EuphoricSomberClasslibrary ```java import java.util.UUID; class Main { public static void main(String[] args) { java.util.UUID uuid = new java.util.UUID( 2544182952487526660L, -3640314103732024685L ); System.out.println( uuid ); } } ``` |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Import machine-learning detected labels (dog, llama etc) from Apple Photos 612287234 | |
623807568 | https://github.com/dogsheep/dogsheep-photos/issues/16#issuecomment-623807568 | https://api.github.com/repos/dogsheep/dogsheep-photos/issues/16 | MDEyOklzc3VlQ29tbWVudDYyMzgwNzU2OA== | simonw 9599 | 2020-05-05T02:56:06Z | 2020-05-05T02:56:06Z | MEMBER | I'm pretty sure this is what I'm after. The Then there's a And an One major challenge: these UUIDs are split into two integer numbers, I need to figure out how to match up these two different UUID representations. I asked on Twitter if anyone has any ideas: https://twitter.com/simonw/status/1257500689019703296 |
{ "total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Import machine-learning detected labels (dog, llama etc) from Apple Photos 612287234 | |
623806687 | https://github.com/dogsheep/dogsheep-photos/issues/16#issuecomment-623806687 | https://api.github.com/repos/dogsheep/dogsheep-photos/issues/16 | MDEyOklzc3VlQ29tbWVudDYyMzgwNjY4Nw== | simonw 9599 | 2020-05-05T02:51:16Z | 2020-05-05T02:51:16Z | MEMBER | Running datasette against it directly doesn't work: ``` simon@Simons-MacBook-Pro search % datasette psi.sqlite Serve! files=('psi.sqlite',) (immutables=()) on port 8001 Usage: datasette serve [OPTIONS] [FILES]... Error: Connection to psi.sqlite failed check: no such tokenizer: PSITokenizer
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Import machine-learning detected labels (dog, llama etc) from Apple Photos 612287234 | |
623806533 | https://github.com/dogsheep/dogsheep-photos/issues/16#issuecomment-623806533 | https://api.github.com/repos/dogsheep/dogsheep-photos/issues/16 | MDEyOklzc3VlQ29tbWVudDYyMzgwNjUzMw== | simonw 9599 | 2020-05-05T02:50:16Z | 2020-05-05T02:50:16Z | MEMBER | I figured there must be a separate database that Photos uses to store the text of the identified labels. I used "Open Files and Ports" in Activity Monitor against the Photos app to try and spot candidates... and found Here's the schema of that file:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Import machine-learning detected labels (dog, llama etc) from Apple Photos 612287234 | |
623806085 | https://github.com/dogsheep/dogsheep-photos/issues/16#issuecomment-623806085 | https://api.github.com/repos/dogsheep/dogsheep-photos/issues/16 | MDEyOklzc3VlQ29tbWVudDYyMzgwNjA4NQ== | simonw 9599 | 2020-05-05T02:47:18Z | 2020-05-05T02:47:18Z | MEMBER | In https://github.com/RhetTbull/osxphotos/issues/121#issuecomment-623249263 Rhet Turnbull spotted a table called |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Import machine-learning detected labels (dog, llama etc) from Apple Photos 612287234 | |
623805823 | https://github.com/dogsheep/dogsheep-photos/issues/16#issuecomment-623805823 | https://api.github.com/repos/dogsheep/dogsheep-photos/issues/16 | MDEyOklzc3VlQ29tbWVudDYyMzgwNTgyMw== | simonw 9599 | 2020-05-05T02:45:56Z | 2020-05-05T02:45:56Z | MEMBER | I filed an issue with |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Import machine-learning detected labels (dog, llama etc) from Apple Photos 612287234 | |
623739934 | https://github.com/dogsheep/dogsheep-photos/issues/15#issuecomment-623739934 | https://api.github.com/repos/dogsheep/dogsheep-photos/issues/15 | MDEyOklzc3VlQ29tbWVudDYyMzczOTkzNA== | simonw 9599 | 2020-05-04T22:24:26Z | 2020-05-04T22:24:26Z | MEMBER | Twitter thread with some examples of photos that are coming up from queries against these scores: https://twitter.com/simonw/status/1257434670750408705 |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Expose scores from ZCOMPUTEDASSETATTRIBUTES 612151767 | |
623730934 | https://github.com/dogsheep/dogsheep-photos/issues/15#issuecomment-623730934 | https://api.github.com/repos/dogsheep/dogsheep-photos/issues/15 | MDEyOklzc3VlQ29tbWVudDYyMzczMDkzNA== | simonw 9599 | 2020-05-04T22:00:38Z | 2020-05-04T22:00:48Z | MEMBER | Here's the query to create the new table:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Expose scores from ZCOMPUTEDASSETATTRIBUTES 612151767 | |
623723687 | https://github.com/dogsheep/dogsheep-photos/issues/15#issuecomment-623723687 | https://api.github.com/repos/dogsheep/dogsheep-photos/issues/15 | MDEyOklzc3VlQ29tbWVudDYyMzcyMzY4Nw== | simonw 9599 | 2020-05-04T21:43:06Z | 2020-05-04T21:43:06Z | MEMBER | It looks like I can map the photos I'm importing to these tables using the |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Expose scores from ZCOMPUTEDASSETATTRIBUTES 612151767 | |
623723026 | https://github.com/dogsheep/dogsheep-photos/issues/15#issuecomment-623723026 | https://api.github.com/repos/dogsheep/dogsheep-photos/issues/15 | MDEyOklzc3VlQ29tbWVudDYyMzcyMzAyNg== | simonw 9599 | 2020-05-04T21:41:30Z | 2020-05-04T21:41:30Z | MEMBER | I'm going to put these in a table called
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Expose scores from ZCOMPUTEDASSETATTRIBUTES 612151767 | |
623654436 | https://github.com/simonw/datasette/issues/756#issuecomment-623654436 | https://api.github.com/repos/simonw/datasette/issues/756 | MDEyOklzc3VlQ29tbWVudDYyMzY1NDQzNg== | simonw 9599 | 2020-05-04T19:19:06Z | 2020-05-04T19:19:06Z | OWNER | New documentation is here: https://datasette.readthedocs.io/en/latest/installation.html#install-using-pipx |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Add pipx to installation documentation 612089949 | |
623650324 | https://github.com/simonw/datasette/issues/756#issuecomment-623650324 | https://api.github.com/repos/simonw/datasette/issues/756 | MDEyOklzc3VlQ29tbWVudDYyMzY1MDMyNA== | simonw 9599 | 2020-05-04T19:10:23Z | 2020-05-04T19:10:23Z | OWNER | https://github.com/pipxproject/pipx/issues/79 showed me how to upgrade plugins within the pipx virtual environment. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Add pipx to installation documentation 612089949 | |
623635525 | https://github.com/simonw/datasette/issues/755#issuecomment-623635525 | https://api.github.com/repos/simonw/datasette/issues/755 | MDEyOklzc3VlQ29tbWVudDYyMzYzNTUyNQ== | simonw 9599 | 2020-05-04T18:40:15Z | 2020-05-04T18:40:15Z | OWNER | ``` $ pytest tests/test_database.py -v ================================================================================ test session starts ================================================================================= platform darwin -- Python 3.7.7, pytest-5.2.4, py-1.8.1, pluggy-0.13.1 -- /Users/simon/.local/share/virtualenvs/datasette-AWNrQs95/bin/python cachedir: .pytest_cache rootdir: /Users/simon/Dropbox/Development/datasette, inifile: pytest.ini plugins: asyncio-0.10.0 collected 9 items tests/test_database.py::test_table_exists[tables0-True] PASSED [ 11%] tests/test_database.py::test_table_exists[tables1-False] PASSED [ 22%] tests/test_database.py::test_get_all_foreign_keys PASSED [ 33%] tests/test_database.py::test_table_names PASSED [ 44%] tests/test_database.py::test_execute_write_block_true PASSED [ 55%] tests/test_database.py::test_execute_write_block_false PASSED [ 66%] tests/test_database.py::test_execute_write_fn_block_false no such column: id PASSED [ 77%] tests/test_database.py::test_execute_write_fn_block_true PASSED [ 88%] tests/test_database.py::test_execute_write_fn_exception PASSED [100%] ================================================================================= 9 passed in 1.90s ================================================================================== ``` |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Fix "no such column: id" output in tests 612082842 | |
623623696 | https://github.com/simonw/datasette/pull/725#issuecomment-623623696 | https://api.github.com/repos/simonw/datasette/issues/725 | MDEyOklzc3VlQ29tbWVudDYyMzYyMzY5Ng== | stonebig 4312421 | 2020-05-04T18:16:54Z | 2020-05-04T18:16:54Z | NONE | thanks a lot, Simon |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Update aiofiles requirement from ~=0.4.0 to >=0.4,<0.6 598891570 | |
623598224 | https://github.com/simonw/datasette/issues/752#issuecomment-623598224 | https://api.github.com/repos/simonw/datasette/issues/752 | MDEyOklzc3VlQ29tbWVudDYyMzU5ODIyNA== | simonw 9599 | 2020-05-04T17:28:11Z | 2020-05-04T17:28:20Z | OWNER | Good catch: it looks like we're not specifying the charset for those pages: ``` $ curl -i 'https://latest.datasette.io/404' HTTP/1.1 404 Not Found access-control-allow-origin: * content-type: text/html Date: Mon, 04 May 2020 16:23:25 GMT Server: Google Frontend Content-Length: 605 <html> <head> <title>Error 404</title> ``` |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Non-utf8 encoding in exceptionhandlers and custom-pages 611835285 | |
623591293 | https://github.com/simonw/datasette/pull/719#issuecomment-623591293 | https://api.github.com/repos/simonw/datasette/issues/719 | MDEyOklzc3VlQ29tbWVudDYyMzU5MTI5Mw== | simonw 9599 | 2020-05-04T17:14:23Z | 2020-05-04T17:14:23Z | OWNER | Thanks, this is a smart fix. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
asgi: check raw_path is not None 594553553 | |
623561480 | https://github.com/simonw/datasette/issues/754#issuecomment-623561480 | https://api.github.com/repos/simonw/datasette/issues/754 | MDEyOklzc3VlQ29tbWVudDYyMzU2MTQ4MA== | simonw 9599 | 2020-05-04T16:17:42Z | 2020-05-04T16:17:42Z | OWNER | Sure enough this run https://travis-ci.org/github/simonw/datasette/jobs/674415040 from that PR no longer shows the warnings. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Clean up aiofiles warnings on 3.8 611997130 | |
623560732 | https://github.com/simonw/datasette/pull/725#issuecomment-623560732 | https://api.github.com/repos/simonw/datasette/issues/725 | MDEyOklzc3VlQ29tbWVudDYyMzU2MDczMg== | simonw 9599 | 2020-05-04T16:16:21Z | 2020-05-04T16:16:21Z | OWNER | This may fix #754 warnings. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Update aiofiles requirement from ~=0.4.0 to >=0.4,<0.6 598891570 | |
623560217 | https://github.com/simonw/datasette/issues/754#issuecomment-623560217 | https://api.github.com/repos/simonw/datasette/issues/754 | MDEyOklzc3VlQ29tbWVudDYyMzU2MDIxNw== | simonw 9599 | 2020-05-04T16:15:28Z | 2020-05-04T16:15:28Z | OWNER | I think those will be fixed by an upgrade to aiofiles 0.5.0: |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Clean up aiofiles warnings on 3.8 611997130 | |
623463200 | https://github.com/simonw/datasette/pull/730#issuecomment-623463200 | https://api.github.com/repos/simonw/datasette/issues/730 | MDEyOklzc3VlQ29tbWVudDYyMzQ2MzIwMA== | dependabot-preview[bot] 27856297 | 2020-05-04T13:27:22Z | 2020-05-04T13:27:22Z | CONTRIBUTOR | Superseded by #753. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Update pytest-asyncio requirement from ~=0.10.0 to >=0.10,<0.12 604001627 | |
623232984 | https://github.com/dogsheep/dogsheep-photos/issues/1#issuecomment-623232984 | https://api.github.com/repos/dogsheep/dogsheep-photos/issues/1 | MDEyOklzc3VlQ29tbWVudDYyMzIzMjk4NA== | simonw 9599 | 2020-05-04T02:41:32Z | 2020-05-04T02:41:32Z | MEMBER | Needs documentation. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Import photo metadata from Apple Photos into SQLite 602533300 | |
623207741 | https://github.com/simonw/datasette/issues/751#issuecomment-623207741 | https://api.github.com/repos/simonw/datasette/issues/751 | MDEyOklzc3VlQ29tbWVudDYyMzIwNzc0MQ== | simonw 9599 | 2020-05-04T00:14:35Z | 2020-05-04T00:14:35Z | OWNER | I'm calling it |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Ability to set custom default _size on a per-table basis 611540797 | |
623207636 | https://github.com/simonw/datasette/issues/751#issuecomment-623207636 | https://api.github.com/repos/simonw/datasette/issues/751 | MDEyOklzc3VlQ29tbWVudDYyMzIwNzYzNg== | simonw 9599 | 2020-05-04T00:13:46Z | 2020-05-04T00:13:46Z | OWNER | Syntax suggestion:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Ability to set custom default _size on a per-table basis 611540797 | |
623207541 | https://github.com/simonw/datasette/issues/751#issuecomment-623207541 | https://api.github.com/repos/simonw/datasette/issues/751 | MDEyOklzc3VlQ29tbWVudDYyMzIwNzU0MQ== | simonw 9599 | 2020-05-04T00:13:09Z | 2020-05-04T00:13:09Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Ability to set custom default _size on a per-table basis 611540797 | ||
623199750 | https://github.com/dogsheep/dogsheep-photos/issues/1#issuecomment-623199750 | https://api.github.com/repos/dogsheep/dogsheep-photos/issues/1 | MDEyOklzc3VlQ29tbWVudDYyMzE5OTc1MA== | simonw 9599 | 2020-05-03T23:17:58Z | 2020-05-03T23:17:58Z | MEMBER | Reading this source code is really useful for figuring out how to store a photo in a DB table: https://github.com/RhetTbull/osxphotos/blob/7444b6d173918a3ad2a07aefce5ecf054786c787/osxphotos/photoinfo.py |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Import photo metadata from Apple Photos into SQLite 602533300 | |
623199701 | https://github.com/dogsheep/dogsheep-photos/issues/1#issuecomment-623199701 | https://api.github.com/repos/dogsheep/dogsheep-photos/issues/1 | MDEyOklzc3VlQ29tbWVudDYyMzE5OTcwMQ== | simonw 9599 | 2020-05-03T23:17:38Z | 2020-05-03T23:17:38Z | MEMBER | Record burst_uuid as a column:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Import photo metadata from Apple Photos into SQLite 602533300 | |
623199214 | https://github.com/dogsheep/dogsheep-photos/issues/1#issuecomment-623199214 | https://api.github.com/repos/dogsheep/dogsheep-photos/issues/1 | MDEyOklzc3VlQ29tbWVudDYyMzE5OTIxNA== | simonw 9599 | 2020-05-03T23:14:08Z | 2020-05-03T23:14:08Z | MEMBER | Albums have UUIDs:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Import photo metadata from Apple Photos into SQLite 602533300 | |
623198986 | https://github.com/dogsheep/dogsheep-photos/issues/1#issuecomment-623198986 | https://api.github.com/repos/dogsheep/dogsheep-photos/issues/1 | MDEyOklzc3VlQ29tbWVudDYyMzE5ODk4Ng== | simonw 9599 | 2020-05-03T23:12:31Z | 2020-05-03T23:12:46Z | MEMBER | To get the taken date in UTC: ``` from datetime import timezone (Pdb) photo.date.astimezone(timezone.utc).isoformat() '2018-02-13T20:21:31.620000+00:00' (Pdb) photo.date.astimezone(timezone.utc).isoformat().split(".") ['2018-02-13T20:21:31', '620000+00:00'] (Pdb) photo.date.astimezone(timezone.utc).isoformat().split(".")[0] '2018-02-13T20:21:31' (Pdb) photo.date.astimezone(timezone.utc).isoformat().split(".")[0] + "+00:00" '2018-02-13T20:21:31+00:00' ``` |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Import photo metadata from Apple Photos into SQLite 602533300 | |
623198653 | https://github.com/dogsheep/dogsheep-photos/issues/1#issuecomment-623198653 | https://api.github.com/repos/dogsheep/dogsheep-photos/issues/1 | MDEyOklzc3VlQ29tbWVudDYyMzE5ODY1Mw== | simonw 9599 | 2020-05-03T23:09:57Z | 2020-05-03T23:09:57Z | MEMBER | For locations: I'll add |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Import photo metadata from Apple Photos into SQLite 602533300 |
Advanced export
JSON shape: default, array, newline-delimited, object
CREATE TABLE [issue_comments] ( [html_url] TEXT, [issue_url] TEXT, [id] INTEGER PRIMARY KEY, [node_id] TEXT, [user] INTEGER REFERENCES [users]([id]), [created_at] TEXT, [updated_at] TEXT, [author_association] TEXT, [body] TEXT, [reactions] TEXT, [issue] INTEGER REFERENCES [issues]([id]) , [performed_via_github_app] TEXT); CREATE INDEX [idx_issue_comments_issue] ON [issue_comments] ([issue]); CREATE INDEX [idx_issue_comments_user] ON [issue_comments] ([user]);
user >30