home / github

Menu
  • Search all tables
  • GraphQL API

issue_comments

Table actions
  • GraphQL API for issue_comments

7 rows where author_association = "OWNER" and issue = 728905098 sorted by updated_at descending

✖
✖
✖

✎ View and edit SQL

This data as json, CSV (advanced)

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

user 1

  • simonw 7

issue 1

  • Documentation and unit tests for urls.row() urls.row_blob() methods · 7 ✖

author_association 1

  • OWNER · 7 ✖
id html_url issue_url node_id user created_at updated_at ▲ author_association body reactions issue performed_via_github_app
1179758180 https://github.com/simonw/datasette/issues/1048#issuecomment-1179758180 https://api.github.com/repos/simonw/datasette/issues/1048 IC_kwDOBm6k_c5GUa5k simonw 9599 2022-07-10T16:23:34Z 2022-07-10T16:23:57Z OWNER

But do I need to pass the use_rowid boolean here as well, as used by def path_from_row_pks(row, pks, use_rowid, quote=True)? Or can I derive that from the fact that pks is an empty tuple?

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
Documentation and unit tests for urls.row() urls.row_blob() methods 728905098  
719996693 https://github.com/simonw/datasette/issues/1048#issuecomment-719996693 https://api.github.com/repos/simonw/datasette/issues/1048 MDEyOklzc3VlQ29tbWVudDcxOTk5NjY5Mw== simonw 9599 2020-10-31T22:32:09Z 2022-07-10T16:22:48Z OWNER

The row_path part of these really isn't very user friendly, since you need to properly URL-encode the values. The safest way to do so is by calling this obscure, undocumented utility function: https://github.com/simonw/datasette/blob/f0bd2d05f5f7832df4879822afb99d2096c00d48/datasette/utils/init.py#L84-L98

This feels like it should be improved before I turn it into a documented API.

(Note that this API deals with a row that is a potentially-nested dictionary - not with a sqlite3.Row object.)

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
Documentation and unit tests for urls.row() urls.row_blob() methods 728905098  
1179757912 https://github.com/simonw/datasette/issues/1048#issuecomment-1179757912 https://api.github.com/repos/simonw/datasette/issues/1048 IC_kwDOBm6k_c5GUa1Y simonw 9599 2022-07-10T16:21:38Z 2022-07-10T16:21:38Z OWNER

I think the best way to do this is to change the method signatures to: ```python def row(self, database, table, row, pks): ...

def row_blob(self, database, table, row, pks, column): ... ```

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
Documentation and unit tests for urls.row() urls.row_blob() methods 728905098  
1179757605 https://github.com/simonw/datasette/issues/1048#issuecomment-1179757605 https://api.github.com/repos/simonw/datasette/issues/1048 IC_kwDOBm6k_c5GUawl simonw 9599 2022-07-10T16:19:42Z 2022-07-10T16:21:03Z OWNER

If I do require pks to be passed here, maybe I could make those available to the render_cell() plugin hook to at least make this a bit more pleasant for plugin authors to use?

Current hook: https://docs.datasette.io/en/latest/plugin_hooks.html#render-cell-row-value-column-table-database-datasette

https://github.com/simonw/datasette/blob/035dc5e7b95142d4a700819a8cc4ff64aefe4efe/datasette/hookspecs.py#L62-L64

The hook is called in two places in the codebase - when rendering a table (pks variable is already in scope here):

https://github.com/simonw/datasette/blob/6373bb341457e5becfd5b67792ac2c8b9ed7c384/datasette/views/table.py#L897-L904

And when rendering an arbitrary query:

https://github.com/simonw/datasette/blob/6373bb341457e5becfd5b67792ac2c8b9ed7c384/datasette/views/database.py#L377-L384

Note that in that second one table is None (which is also called out in the documentation) - pks would be None here too.

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
Documentation and unit tests for urls.row() urls.row_blob() methods 728905098  
1179757067 https://github.com/simonw/datasette/issues/1048#issuecomment-1179757067 https://api.github.com/repos/simonw/datasette/issues/1048 IC_kwDOBm6k_c5GUaoL simonw 9599 2022-07-10T16:16:19Z 2022-07-10T16:16:19Z OWNER

None of the potential solutions for that problem are particularly appealing:

  • Make these URL generation methods async - should the other ones be async too for consistency?
  • Have some kind of mechanism that calculates and caches the pks for each table somewhere which can then be accessed here without an async call
  • Require pks is passed to these methods, having been looked up elsewhere. This is a bit gross but may end up being the best solution
{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
Documentation and unit tests for urls.row() urls.row_blob() methods 728905098  
1179756689 https://github.com/simonw/datasette/issues/1048#issuecomment-1179756689 https://api.github.com/repos/simonw/datasette/issues/1048 IC_kwDOBm6k_c5GUaiR simonw 9599 2022-07-10T16:14:03Z 2022-07-10T16:14:03Z OWNER

I'm considering changing these functions to accept the row object itself:

```python def row(self, database, table, row): ...

def row_blob(self, database, table, row, column): ... `` Just one catch: in order to generate the correctrow_pathwe need to know the primary keys for that table. We can look those up based on having access todatabaseandtable, but doing so requires anawait ...operation - and these functions are notasync`.

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
Documentation and unit tests for urls.row() urls.row_blob() methods 728905098  
1179756391 https://github.com/simonw/datasette/issues/1048#issuecomment-1179756391 https://api.github.com/repos/simonw/datasette/issues/1048 IC_kwDOBm6k_c5GUadn simonw 9599 2022-07-10T16:12:23Z 2022-07-10T16:12:23Z OWNER

Also related: row is now available to render_cell() hook as-of this issue: - https://github.com/simonw/datasette/issues/1300

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
Documentation and unit tests for urls.row() urls.row_blob() methods 728905098  

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 17.538ms · About: github-to-sqlite
  • Sort ascending
  • Sort descending
  • Facet by this
  • Hide this column
  • Show all columns
  • Show not-blank rows