home / github

Menu
  • Search all tables
  • GraphQL API

issues

Table actions
  • GraphQL API for issues

11 rows where milestone = 5471110 and state = "closed" sorted by updated_at descending

✖
✖
✖

✎ View and edit SQL

This data as json, CSV (advanced)

Suggested facets: user, comments, updated_at, author_association, created_at (date), updated_at (date), closed_at (date)

type 2

  • issue 8
  • pull 3

state 1

  • closed · 11 ✖

repo 1

  • datasette 11
id node_id number title user state locked assignee milestone comments created_at updated_at ▲ closed_at author_association pull_request body repo type active_lock_reason performed_via_github_app reactions draft state_reason
625930207 MDU6SXNzdWU2MjU5MzAyMDc= 770 register_output_renderer can_render mechanism simonw 9599 closed 0   Datasette 0.43 5471110 4 2020-05-27T18:29:14Z 2020-05-28T05:57:16Z 2020-05-28T05:57:16Z OWNER  

I would like is the ability for renderers to opt-in / opt-out of being displayed as options on the page.

https://www.niche-museums.com/browse/museums for example shows a atom link because the datasette-atom plugin is installed... but clicking it will give you a 400 error because the correct columns are not present.

Here's the code that passes a list of renderers to the template:

https://github.com/simonw/datasette/blob/2d099ad9c657d2cab59de91cdb8bfed2da236ef6/datasette/views/base.py#L411-L423

A renderer is currently defined as a two-key dictionary: python @hookimpl def register_output_renderer(datasette): return { 'extension': 'test', 'callback': render_test } I can add a third key, "should_suggest" which is a function that returns True or False for a given query. If that key is missing it is assumed to return True.

One catch: what arguments should be passed to the should_suggest(...) function?

UPDATE: now calling it can_render instead.

Originally posted by @simonw in https://github.com/simonw/datasette/issues/581#issuecomment-634856748

datasette 107914493 issue    
{
    "url": "https://api.github.com/repos/simonw/datasette/issues/770/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  completed
611540797 MDU6SXNzdWU2MTE1NDA3OTc= 751 Ability to set custom default _size on a per-table basis simonw 9599 closed 0   Datasette 0.43 5471110 4 2020-05-04T00:13:03Z 2020-05-28T05:00:22Z 2020-05-28T05:00:20Z OWNER  

I have some tables where I'd like the default page size to be 10, without affecting the rest of my Datasette instance.

datasette 107914493 issue    
{
    "url": "https://api.github.com/repos/simonw/datasette/issues/751/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  completed
626001501 MDU6SXNzdWU2MjYwMDE1MDE= 773 All plugin hooks should have unit tests simonw 9599 closed 0   Datasette 0.43 5471110 2 2020-05-27T20:17:41Z 2020-05-28T04:12:11Z 2020-05-28T04:09:25Z OWNER  

Four hooks currently missing tests:

  • [x] prepare_jinja2_environment
  • [x] publish_subcommand
  • [x] register_facet_classes
  • [x] register_output_renderer

``` $ pytest -k test_plugin_hooks_have_tests -vv ====================================== 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 486 items / 475 deselected / 11 selected

tests/test_plugins.py::test_plugin_hooks_have_tests[asgi_wrapper] XPASS [ 9%] tests/test_plugins.py::test_plugin_hooks_have_tests[extra_body_script] XPASS [ 18%] tests/test_plugins.py::test_plugin_hooks_have_tests[extra_css_urls] XPASS [ 27%] tests/test_plugins.py::test_plugin_hooks_have_tests[extra_js_urls] XPASS [ 36%] tests/test_plugins.py::test_plugin_hooks_have_tests[extra_template_vars] XPASS [ 45%] tests/test_plugins.py::test_plugin_hooks_have_tests[prepare_connection] XPASS [ 54%] tests/test_plugins.py::test_plugin_hooks_have_tests[prepare_jinja2_environment] XFAIL [ 63%] tests/test_plugins.py::test_plugin_hooks_have_tests[publish_subcommand] XFAIL [ 72%] tests/test_plugins.py::test_plugin_hooks_have_tests[register_facet_classes] XFAIL [ 81%] tests/test_plugins.py::test_plugin_hooks_have_tests[register_output_renderer] XFAIL [ 90%] tests/test_plugins.py::test_plugin_hooks_have_tests[render_cell] XPASS [100%]

========================= 475 deselected, 4 xfailed, 7 xpassed in 1.70s =========================

Originally posted by @simonw in https://github.com/simonw/datasette/issues/771#issuecomment-634915104

datasette 107914493 issue    
{
    "url": "https://api.github.com/repos/simonw/datasette/issues/773/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  completed
626163974 MDU6SXNzdWU2MjYxNjM5NzQ= 776 register_output_renderer render callback should be optionally awaitable simonw 9599 closed 0   Datasette 0.43 5471110 1 2020-05-28T02:26:29Z 2020-05-28T02:43:36Z 2020-05-28T02:43:36Z OWNER  

In #581 I made a bunch of improvements to this, including making datasette available to it so it could execute queries.

But... it needs to be able to await in order to do that. Which means it should be optionally-awaitable.

Original idea here: https://github.com/simonw/datasette/issues/645#issuecomment-560036740

datasette 107914493 issue    
{
    "url": "https://api.github.com/repos/simonw/datasette/issues/776/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  completed
502993509 MDU6SXNzdWU1MDI5OTM1MDk= 581 Redesign register_output_renderer callback simonw 9599 closed 0   Datasette 0.43 5471110 24 2019-10-05T17:43:23Z 2020-05-28T02:24:14Z 2020-05-28T02:21:50Z OWNER  

In building https://github.com/simonw/datasette-atom it became clear that the callback function (which currently accepts just args, data and view_name) would also benefit from access to a mechanism to render templates and a datasette instance so it can execute SQL.

To maintain backwards compatibility with existing plugins, we can introspect the callback function to see if it wants those new arguments or not.

At a minimum I want to make datasette and ASGI scope available.

datasette 107914493 issue    
{
    "url": "https://api.github.com/repos/simonw/datasette/issues/581/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  completed
620969465 MDU6SXNzdWU2MjA5Njk0NjU= 767 Allow to specify a URL fragment for canned queries rixx 2657547 closed 0   Datasette 0.43 5471110 2 2020-05-19T13:17:42Z 2020-05-27T21:52:25Z 2020-05-27T21:52:25Z CONTRIBUTOR  

Canned queries are very useful to direct users to prepared data and views. I like to use them with charts using datasette-vega a lot, because people get a direct impression at first glance.

datasette-vega doesn't show up by default though, and users have to click through to it. Also, datasette-vega does not always guess the best way to render columns correctly though, so it would be nice if I could specify a URL fragment in my canned queries to make sure people see what I want them to see.

My current workaround is to include a fragement link in description_html and ask people to reload the page, like here, which is a bit hacky.

datasette 107914493 issue    
{
    "url": "https://api.github.com/repos/simonw/datasette/issues/767/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  completed
622672640 MDExOlB1bGxSZXF1ZXN0NDIxNDkxODEw 768 Use dirs_exist_ok=True simonw 9599 closed 0   Datasette 0.43 5471110 0 2020-05-21T17:53:44Z 2020-05-27T20:21:56Z 2020-05-21T17:53:51Z OWNER simonw/datasette/pulls/768

Refs #744

datasette 107914493 pull    
{
    "url": "https://api.github.com/repos/simonw/datasette/issues/768/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
0  
625922239 MDExOlB1bGxSZXF1ZXN0NDI0MDMyNDQ1 769 Backport of Python 3.8 shutil.copytree simonw 9599 closed 0   Datasette 0.43 5471110 0 2020-05-27T18:17:15Z 2020-05-27T20:21:56Z 2020-05-27T18:17:44Z OWNER simonw/datasette/pulls/769

Closes #744

datasette 107914493 pull    
{
    "url": "https://api.github.com/repos/simonw/datasette/issues/769/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
0  
625991831 MDExOlB1bGxSZXF1ZXN0NDI0MDg1MjY0 772 Test that plugin hooks are unit tested simonw 9599 closed 0   Datasette 0.43 5471110 0 2020-05-27T20:01:32Z 2020-05-27T20:21:56Z 2020-05-27T20:16:03Z OWNER simonw/datasette/pulls/772

Refs #771

datasette 107914493 pull    
{
    "url": "https://api.github.com/repos/simonw/datasette/issues/772/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
0  
616012427 MDU6SXNzdWU2MTYwMTI0Mjc= 764 Add PyPI project urls to setup.py simonw 9599 closed 0   Datasette 0.43 5471110 3 2020-05-11T16:23:08Z 2020-05-27T20:21:36Z 2020-05-11T18:28:55Z OWNER  

Spotted this example here: python project_urls={ "Issues": "https://gitlab.com/Cyb3r-Jak3/ExifReader/issues", "Source Code": "https://gitlab.com/Cyb3r-Jak3/ExifReader/-/tree/publish", "CI": "https://gitlab.com/Cyb3r-Jak3/ExifReader/pipelines", "Releases": "https://github.com/Cyb3r-Jak3/ExifReader" }, Results in this on https://pypi.org/project/ExifReader/

datasette 107914493 issue    
{
    "url": "https://api.github.com/repos/simonw/datasette/issues/764/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  completed
625980317 MDU6SXNzdWU2MjU5ODAzMTc= 771 Unit test that checks that all plugin hooks have corresponding unit tests simonw 9599 closed 0   Datasette 0.43 5471110 5 2020-05-27T19:42:35Z 2020-05-27T20:21:36Z 2020-05-27T20:17:13Z OWNER  

Turns out some hooks are missing unit test coverage: https://github.com/simonw/datasette/issues/581#issuecomment-634893744_

datasette 107914493 issue    
{
    "url": "https://api.github.com/repos/simonw/datasette/issues/771/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  completed

Advanced export

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

CSV options:

CREATE TABLE [issues] (
   [id] INTEGER PRIMARY KEY,
   [node_id] TEXT,
   [number] INTEGER,
   [title] TEXT,
   [user] INTEGER REFERENCES [users]([id]),
   [state] TEXT,
   [locked] INTEGER,
   [assignee] INTEGER REFERENCES [users]([id]),
   [milestone] INTEGER REFERENCES [milestones]([id]),
   [comments] INTEGER,
   [created_at] TEXT,
   [updated_at] TEXT,
   [closed_at] TEXT,
   [author_association] TEXT,
   [pull_request] TEXT,
   [body] TEXT,
   [repo] INTEGER REFERENCES [repos]([id]),
   [type] TEXT
, [active_lock_reason] TEXT, [performed_via_github_app] TEXT, [reactions] TEXT, [draft] INTEGER, [state_reason] TEXT);
CREATE INDEX [idx_issues_repo]
                ON [issues] ([repo]);
CREATE INDEX [idx_issues_milestone]
                ON [issues] ([milestone]);
CREATE INDEX [idx_issues_assignee]
                ON [issues] ([assignee]);
CREATE INDEX [idx_issues_user]
                ON [issues] ([user]);
Powered by Datasette · Queries took 41.034ms · About: github-to-sqlite
  • Sort ascending
  • Sort descending
  • Facet by this
  • Hide this column
  • Show all columns
  • Show not-blank rows