home / github

Menu
  • Search all tables
  • GraphQL API

issue_comments

Table actions
  • GraphQL API for issue_comments

25 rows where "updated_at" is on date 2022-02-03 sorted by updated_at descending

✖
✖

✎ View and edit SQL

This data as json, CSV (advanced)

Suggested facets: issue_url, reactions, created_at (date), updated_at (date)

issue 10

  • Add new spatialite helper methods 12
  • Ensure template_path always uses "/" to match jinja 3
  • Custom pages don't work on windows 2
  • Better error message if `--convert` code fails to return a dict 2
  • Helper methods for working with SpatiaLite 1
  • `sqlite-utils insert --extract colname` 1
  • Research how much of a difference analyze / sqlite_stat1 makes 1
  • Better documentation for insert-replace 1
  • Test against Python 3.11-dev 1
  • Try test suite against macOS and Windows 1

user 3

  • simonw 17
  • eyeseast 7
  • codecov[bot] 1

author_association 3

  • OWNER 17
  • CONTRIBUTOR 7
  • NONE 1
id html_url issue_url node_id user created_at updated_at ▲ author_association body reactions issue performed_via_github_app
1029479388 https://github.com/simonw/sqlite-utils/issues/352#issuecomment-1029479388 https://api.github.com/repos/simonw/sqlite-utils/issues/352 IC_kwDOCGYnMM49XJvc simonw 9599 2022-02-03T22:59:35Z 2022-02-03T22:59:35Z OWNER

Ran into this bug again while writing tests for this: - #186

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
`sqlite-utils insert --extract colname` 1072792507  
1029475387 https://github.com/simonw/sqlite-utils/issues/363#issuecomment-1029475387 https://api.github.com/repos/simonw/sqlite-utils/issues/363 IC_kwDOCGYnMM49XIw7 simonw 9599 2022-02-03T22:52:30Z 2022-02-03T22:52:30Z OWNER

Demos: % sqlite-utils insert /tmp/all.db blah /tmp/log.log --convert '[1]' --text Error: Rows must all be dictionaries, got: 1 % sqlite-utils insert /tmp/all.db blah /tmp/log.log --convert '1' --text Error: --convert must return dict or iterator

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
Better error message if `--convert` code fails to return a dict 1094981339  
1029469630 https://github.com/simonw/sqlite-utils/issues/363#issuecomment-1029469630 https://api.github.com/repos/simonw/sqlite-utils/issues/363 IC_kwDOCGYnMM49XHW- simonw 9599 2022-02-03T22:42:36Z 2022-02-03T22:42:36Z OWNER

This check should run inside the .insert_all() method. It should raise a custom exception which the CLI code can then catch and turn into a click error.

Actually no that doesn't work, because this line causes an error before we even get to .insert_all():

https://github.com/simonw/sqlite-utils/blob/7d928f83085fb285f294dbdaeb93fd94a44d5d44/sqlite_utils/cli.py#L1012-L1013

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
Better error message if `--convert` code fails to return a dict 1094981339  
1029450617 https://github.com/simonw/sqlite-utils/issues/393#issuecomment-1029450617 https://api.github.com/repos/simonw/sqlite-utils/issues/393 IC_kwDOCGYnMM49XCt5 simonw 9599 2022-02-03T22:13:24Z 2022-02-03T22:13:24Z OWNER

Much better: https://sqlite-utils.datasette.io/en/latest/python-api.html#insert-replacing-data

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
Better documentation for insert-replace 1118585417  
1029402837 https://github.com/simonw/sqlite-utils/issues/369#issuecomment-1029402837 https://api.github.com/repos/simonw/sqlite-utils/issues/369 IC_kwDOCGYnMM49W3DV simonw 9599 2022-02-03T21:07:35Z 2022-02-03T21:07:35Z OWNER

Closing this - it was something I was curious about, but evidently not curious enough to actually do the work!

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
Research how much of a difference analyze / sqlite_stat1 makes 1097091527  
1029402029 https://github.com/simonw/sqlite-utils/issues/394#issuecomment-1029402029 https://api.github.com/repos/simonw/sqlite-utils/issues/394 IC_kwDOCGYnMM49W22t simonw 9599 2022-02-03T21:06:35Z 2022-02-03T21:06:35Z OWNER

This broke on Windows: https://github.com/simonw/sqlite-utils/runs/5056912641 ``` if recreate and os.path.exists(filename_or_conn):

          os.remove(filename_or_conn)

E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\Users\runneradmin\AppData\Local\Temp\pytest-of-runneradmin\pytest-0\test_recreate_False_True_0\data.db' `` I'm going to revert it frommain` for the moment.

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
Test against Python 3.11-dev 1122446693  
1029370537 https://github.com/simonw/sqlite-utils/pull/385#issuecomment-1029370537 https://api.github.com/repos/simonw/sqlite-utils/issues/385 IC_kwDOCGYnMM49WvKp eyeseast 25778 2022-02-03T20:25:58Z 2022-02-03T20:25:58Z CONTRIBUTOR

OK, I moved all the GIS helpers into db.py as methods on Database and Table, and I put find_spatialite back in utils.py. I deleted gis.py, since there's nothing left it. Docs and tests are updated and passing.

I think this is better.

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
Add new spatialite helper methods 1102899312  
1029338360 https://github.com/simonw/sqlite-utils/pull/385#issuecomment-1029338360 https://api.github.com/repos/simonw/sqlite-utils/issues/385 IC_kwDOCGYnMM49WnT4 eyeseast 25778 2022-02-03T19:43:56Z 2022-02-03T19:43:56Z CONTRIBUTOR

Works for me. I was just looking at how the FTS extensions work and they're just methods, too. So this can be consistent with that.

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
Add new spatialite helper methods 1102899312  
1029335225 https://github.com/simonw/sqlite-utils/pull/385#issuecomment-1029335225 https://api.github.com/repos/simonw/sqlite-utils/issues/385 IC_kwDOCGYnMM49Wmi5 simonw 9599 2022-02-03T19:39:40Z 2022-02-03T19:39:40Z OWNER

I thought about adding these as methods on Database and Table, and I'm back and forth on it for the same reasons you are. It's certainly cleaner, and it's clearer what you're operating on. I could go either way.

I do sort of like having all the Spatialite stuff in its own module, just because it's built around an extension you might not have or want, but I don't know if that's a good reason to have a different API.

You could have init_spatialite add methods to Database and Table, so they're only there if you have Spatialite set up. Is that too clever? It feels too clever.

Yeah that's too clever. You know what? I'm pretty confident we are both massively over-thinking this. We should put the methods on Database and Table! API simplicity and consistency matters more than vague concerns about purity.

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
Add new spatialite helper methods 1102899312  
1029326568 https://github.com/simonw/sqlite-utils/pull/385#issuecomment-1029326568 https://api.github.com/repos/simonw/sqlite-utils/issues/385 IC_kwDOCGYnMM49Wkbo eyeseast 25778 2022-02-03T19:28:26Z 2022-02-03T19:28:26Z CONTRIBUTOR

from sqlite_utils.utils import find_spatialite is part of the documented API already:

https://sqlite-utils.datasette.io/en/3.22.1/python-api.html#finding-spatialite

To avoid needing to bump the major version number to 4 to indicate a backwards incompatible change, we should keep a from .gis import find_spatialite line at the top of utils.py such that any existing code with that documented import continues to work.

This is fixed now. I had to take out the type annotations for Database and Table to avoid a circular import, but that's fine and may be moot if these become class methods.

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
Add new spatialite helper methods 1102899312  
1029317527 https://github.com/simonw/sqlite-utils/issues/79#issuecomment-1029317527 https://api.github.com/repos/simonw/sqlite-utils/issues/79 IC_kwDOCGYnMM49WiOX eyeseast 25778 2022-02-03T19:18:02Z 2022-02-03T19:18:02Z CONTRIBUTOR

Taking part of the conversation from #385 here.

Would sqlite-utils add-geometry-column ... be a good CLI enhancement. for example?

Yes. And also sqlite-utils create-spatial-index would be great to have. My plan would be to add those once the Python API is settled.

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
Helper methods for working with SpatiaLite 557842245  
1029306428 https://github.com/simonw/sqlite-utils/pull/385#issuecomment-1029306428 https://api.github.com/repos/simonw/sqlite-utils/issues/385 IC_kwDOCGYnMM49Wfg8 eyeseast 25778 2022-02-03T19:03:43Z 2022-02-03T19:03:43Z CONTRIBUTOR

I thought about adding these as methods on Database and Table, and I'm back and forth on it for the same reasons you are. It's certainly cleaner, and it's clearer what you're operating on. I could go either way.

I do sort of like having all the Spatialite stuff in its own module, just because it's built around an extension you might not have or want, but I don't know if that's a good reason to have a different API.

You could have init_spatialite add methods to Database and Table, so they're only there if you have Spatialite set up. Is that too clever? It feels too clever.

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
Add new spatialite helper methods 1102899312  
1029297971 https://github.com/simonw/sqlite-utils/pull/385#issuecomment-1029297971 https://api.github.com/repos/simonw/sqlite-utils/issues/385 IC_kwDOCGYnMM49Wdcz simonw 9599 2022-02-03T18:52:50Z 2022-02-03T18:52:50Z OWNER

I'm not sure I like name="geometry" as the default argument to add_geometry_column - mainly because of this example here: python add_geometry_column(db["locations"], "POINT") create_spatial_index(db["locations"], "geometry") I had to go and look at the code to figure out if "POINT" was the name of the column - and I don't like how inconsistent it looks next to the following create_spatial_index() call where you DO need to pass the column name.

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
Add new spatialite helper methods 1102899312  
1029296782 https://github.com/simonw/sqlite-utils/pull/385#issuecomment-1029296782 https://api.github.com/repos/simonw/sqlite-utils/issues/385 IC_kwDOCGYnMM49WdKO simonw 9599 2022-02-03T18:51:21Z 2022-02-03T18:51:21Z OWNER

What do you think about adding these as methods on the Database class instead? Then you could do:

```python

This is with an optional argument, which if omitted runs find_spatialite() for you:

db.init_spatialite()

Instead of:

init_spatialite(db, find_spatialite()) Likewise, the `add_geometry_column` and `create_spatial_index` methods could live on `Table`:python

Instead of this:

add_geometry_column(db["locations"], "POINT", "geometry") create_spatial_index(db["locations"], "geometry")

Could have this:

db["locations"].add_geometry_column("POINT") db["locations"].create_spatial_index("geometry") `` On the one hand, this is much more consistent with the existingsqlite-utils` Python API.

But on the other hand... this is mixing SpatiaLite functionality directly into the core classes. Is that a good idea, seeing as SpatiaLite is both an optional extension (which can be tricky to install) AND something that has a very different release cadence and quality-of-documentation from SQLite itself?

There's a third option: the SpatiaLite could exist on subclasses of Database and Table - so the above examples would look something like this:

```python from sqlite_utils.gis import SpatiaLiteDatabase

db = SpatiaLiteDatabase("geo.db") db.init_spatialite() db["locations"].add_geometry_column("POINT") db["locations"].create_spatial_index("geometry") ```

On the one hand, this would keep the SpatiaLite-specific stuff out of the core Database/Table classes. But it feels a bit untidy to me, especially since it raises the spectre of someone who was already subclassing Database for some reason now needing to instead subclass SpatiaLiteDatabase (not too keen on that capitalization) - or even (horror) trying to dabble with multiple inheritance, which can only lead to pain.

So I don't have a strong opinion formed on this question yet!

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
Add new spatialite helper methods 1102899312  
1029285985 https://github.com/simonw/sqlite-utils/pull/385#issuecomment-1029285985 https://api.github.com/repos/simonw/sqlite-utils/issues/385 IC_kwDOCGYnMM49Wahh simonw 9599 2022-02-03T18:37:48Z 2022-02-03T18:37:48Z OWNER

from sqlite_utils.utils import find_spatialite is part of the documented API already:

https://sqlite-utils.datasette.io/en/3.22.1/python-api.html#finding-spatialite

To avoid needing to bump the major version number to 4 to indicate a backwards incompatible change, we should keep a from .gis import find_spatialite line at the top of utils.py such that any existing code with that documented import continues to work.

{
    "total_count": 1,
    "+1": 1,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
Add new spatialite helper methods 1102899312  
1029273853 https://github.com/simonw/sqlite-utils/pull/385#issuecomment-1029273853 https://api.github.com/repos/simonw/sqlite-utils/issues/385 IC_kwDOCGYnMM49WXj9 simonw 9599 2022-02-03T18:23:30Z 2022-02-03T18:31:21Z OWNER

OK, this change makes a bunch of sense to me - and also raises some interesting questions about future additions to sqlite-utils with regards to SpatiaLite. Would sqlite-utils add-geometry-column ... be a good CLI enhancement. for example?

I see you've already talked about that in #79 - moving this conversation there!

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
Add new spatialite helper methods 1102899312  
1029180984 https://github.com/simonw/sqlite-utils/pull/385#issuecomment-1029180984 https://api.github.com/repos/simonw/sqlite-utils/issues/385 IC_kwDOCGYnMM49WA44 eyeseast 25778 2022-02-03T16:42:04Z 2022-02-03T16:42:04Z CONTRIBUTOR

Fixed my spelling. That's a useful thing.

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
Add new spatialite helper methods 1102899312  
1029177015 https://github.com/simonw/sqlite-utils/pull/385#issuecomment-1029177015 https://api.github.com/repos/simonw/sqlite-utils/issues/385 IC_kwDOCGYnMM49V_63 simonw 9599 2022-02-03T16:38:02Z 2022-02-03T16:38:02Z OWNER

Sorry had missed this - tests should run now.

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
Add new spatialite helper methods 1102899312  
1029175907 https://github.com/simonw/sqlite-utils/pull/385#issuecomment-1029175907 https://api.github.com/repos/simonw/sqlite-utils/issues/385 IC_kwDOCGYnMM49V_pj eyeseast 25778 2022-02-03T16:36:54Z 2022-02-03T16:36:54Z CONTRIBUTOR

@simonw Not sure if you've seen this, but any chance you can run the tests?

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
Add new spatialite helper methods 1102899312  
1028535868 https://github.com/simonw/datasette/issues/1545#issuecomment-1028535868 https://api.github.com/repos/simonw/datasette/issues/1545 IC_kwDOBm6k_c49TjY8 simonw 9599 2022-02-03T02:08:30Z 2022-02-03T02:08:30Z OWNER

Filed an issue with Jinja suggesting a documentation update: - https://github.com/pallets/jinja/issues/1578

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
Custom pages don't work on windows 1075893249  
1028419517 https://github.com/simonw/datasette/pull/1617#issuecomment-1028419517 https://api.github.com/repos/simonw/datasette/issues/1617 IC_kwDOBm6k_c49TG-9 codecov[bot] 22429695 2022-02-02T22:30:26Z 2022-02-03T01:36:07Z NONE

Codecov Report

Merging #1617 (af293c9) into main (2aa686c) will increase coverage by 0.06%. The diff coverage is 100.00%.

```diff @@ Coverage Diff @@

main #1617 +/-

========================================== + Coverage 92.09% 92.16% +0.06%
========================================== Files 34 34
Lines 4518 4531 +13
========================================== + Hits 4161 4176 +15
+ Misses 357 355 -2
```

| Impacted Files | Coverage Δ | | |---|---|---| | datasette/app.py | 95.37% <100.00%> (ø) | | | datasette/views/table.py | 96.19% <0.00%> (ø) | | | datasette/utils/__init__.py | 94.79% <0.00%> (+<0.01%) | :arrow_up: | | datasette/views/base.py | 95.49% <0.00%> (+0.07%) | :arrow_up: | | datasette/views/special.py | 95.09% <0.00%> (+2.38%) | :arrow_up: |


Continue to review full report at Codecov.

Legend - Click here to learn more Δ = absolute <relative> (impact), ø = not affected, ? = missing data Powered by Codecov. Last update 2aa686c...af293c9. Read the comment docs.

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
Ensure template_path always uses "/" to match jinja 1120990806  
1028519382 https://github.com/simonw/datasette/pull/1617#issuecomment-1028519382 https://api.github.com/repos/simonw/datasette/issues/1617 IC_kwDOBm6k_c49TfXW simonw 9599 2022-02-03T01:31:25Z 2022-02-03T01:31:25Z OWNER

I was hoping to get the test suite running on Windows before merging this PR but that looks like it will be a BIG job, see: - #1627

So I'm going to merge this one as-is for the moment.

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
Ensure template_path always uses "/" to match jinja 1120990806  
1028517268 https://github.com/simonw/datasette/issues/1545#issuecomment-1028517268 https://api.github.com/repos/simonw/datasette/issues/1545 IC_kwDOBm6k_c49Te2U simonw 9599 2022-02-03T01:26:53Z 2022-02-03T01:26:53Z OWNER

I understand the problem now! https://github.com/pallets/jinja/issues/1378#issuecomment-812410922

Jinja template names/paths are not always filesystem paths. So regardless of the OS Jinja always uses forward slashes.

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
Custom pages don't work on windows 1075893249  
1028517073 https://github.com/simonw/datasette/pull/1617#issuecomment-1028517073 https://api.github.com/repos/simonw/datasette/issues/1617 IC_kwDOBm6k_c49TezR simonw 9599 2022-02-03T01:26:32Z 2022-02-03T01:26:32Z OWNER

Aha I understand the problem now! https://github.com/pallets/jinja/issues/1378#issuecomment-812410922

Jinja template names/paths are not always filesystem paths. So regardless of the OS Jinja always uses forward slashes.

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
Ensure template_path always uses "/" to match jinja 1120990806  
1028515161 https://github.com/simonw/datasette/pull/1626#issuecomment-1028515161 https://api.github.com/repos/simonw/datasette/issues/1626 IC_kwDOBm6k_c49TeVZ simonw 9599 2022-02-03T01:22:43Z 2022-02-03T01:22:43Z OWNER

OK, the tests do NOT pass against Windows! https://github.com/simonw/datasette/runs/5044105941

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
Try test suite against macOS and Windows 1122451096  

Advanced export

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

CSV options:

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]);
Powered by Datasette · Queries took 568.17ms · About: github-to-sqlite
  • Sort ascending
  • Sort descending
  • Facet by this
  • Hide this column
  • Show all columns
  • Show not-blank rows