home / github

Menu
  • Search all tables
  • GraphQL API

issue_comments

Table actions
  • GraphQL API for issue_comments

10 rows where author_association = "NONE" and issue = 396212021 sorted by updated_at descending

✖
✖
✖

✎ View and edit SQL

This data as json, CSV (advanced)

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

user 3

  • terrycojones 7
  • LVerneyPEReN 2
  • betatim 1

issue 1

  • base_url configuration setting · 10 ✖

author_association 1

  • NONE · 10 ✖
id html_url issue_url node_id user created_at updated_at ▲ author_association body reactions issue performed_via_github_app
642522285 https://github.com/simonw/datasette/issues/394#issuecomment-642522285 https://api.github.com/repos/simonw/datasette/issues/394 MDEyOklzc3VlQ29tbWVudDY0MjUyMjI4NQ== LVerneyPEReN 58298410 2020-06-11T09:15:19Z 2020-06-11T09:15:19Z NONE

Hi @wragge,

This looks great, thanks for the share! I refactored it into a self-contained function, binding on a random available TCP port (multi-user context). I am using subprocess API directly since the %run magic was leaving defunct process behind :/

```python import socket

from signal import SIGINT from subprocess import Popen, PIPE

from IPython.display import display, HTML from notebook.notebookapp import list_running_servers

def get_free_tcp_port(): """ Get a free TCP port. """ tcp = socket.socket(socket.AF_INET, socket.SOCK_STREAM) tcp.bind(('', 0)) _, port = tcp.getsockname() tcp.close() return port

def datasette(database): """ Run datasette on an SQLite database. """ # Get current running servers servers = list_running_servers()

# Get the current base url
base_url = next(servers)['base_url']

# Get a free port
port = get_free_tcp_port()

# Create a base url for Datasette suing the proxy path
proxy_url = f'{base_url}proxy/absolute/{port}/'

# Display a link to Datasette
display(HTML(f'<p><a href="{proxy_url}">View Datasette</a> (Click on the stop button to close the Datasette server)</p>'))

# Launch Datasette
with Popen(
    [
        'python', '-m', 'datasette', '--',
        database,
        '--port', str(port),
        '--config', f'base_url:{proxy_url}'
    ],
    stdout=PIPE,
    stderr=PIPE,
    bufsize=1,
    universal_newlines=True
) as p:
    print(p.stdout.readline(), end='')
    while True:
        try:
            line = p.stderr.readline()
            if not line:
                break
            print(line, end='')
            exit_code = p.poll()
        except KeyboardInterrupt:
            p.send_signal(SIGINT)

```

Ideally, I'd like some extra magic to notify users when they are leaving the closing the notebook tab and make them terminate the running datasette processes. I'll be looking for it.

{
    "total_count": 1,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 1,
    "rocket": 0,
    "eyes": 0
}
base_url configuration setting 396212021  
641889565 https://github.com/simonw/datasette/issues/394#issuecomment-641889565 https://api.github.com/repos/simonw/datasette/issues/394 MDEyOklzc3VlQ29tbWVudDY0MTg4OTU2NQ== LVerneyPEReN 58298410 2020-06-10T09:49:34Z 2020-06-10T09:49:34Z NONE

Hi,

I came across this issue while looking for a way to spawn Datasette as a SQLite files viewer in JupyterLab. I found https://github.com/simonw/jupyterserverproxy-datasette-demo which seems to be the most up to date proof of concept, but it seems to be failing to list the available db (at least in the Binder demo, https://hub.gke.mybinder.org/user/simonw-jupyters--datasette-demo-uw4dmlnn/datasette/, I only have :memory).

Does anyone tried to improve on this proof of concept to have a Datasette visualization for SQLite files?

Thanks!

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
base_url configuration setting 396212021  
603849245 https://github.com/simonw/datasette/issues/394#issuecomment-603849245 https://api.github.com/repos/simonw/datasette/issues/394 MDEyOklzc3VlQ29tbWVudDYwMzg0OTI0NQ== terrycojones 132978 2020-03-25T13:48:13Z 2020-03-25T13:48:13Z NONE

Great - thanks again.

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
base_url configuration setting 396212021  
603539349 https://github.com/simonw/datasette/issues/394#issuecomment-603539349 https://api.github.com/repos/simonw/datasette/issues/394 MDEyOklzc3VlQ29tbWVudDYwMzUzOTM0OQ== terrycojones 132978 2020-03-24T22:33:23Z 2020-03-24T22:33:23Z NONE

Hi Simon - I'm just (trying, at least) to follow along in the above. I can't try it out now, but I will if no one else gets to it. Sorry I didn't write any tests in the original bit of code I pushed - I was just trying to see if it could work & whether you'd want to maybe head in that direction. Anyway, thank you, I will certainly use this. Comment back here if no one tried it out & I'll make time.

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
base_url configuration setting 396212021  
602916580 https://github.com/simonw/datasette/issues/394#issuecomment-602916580 https://api.github.com/repos/simonw/datasette/issues/394 MDEyOklzc3VlQ29tbWVudDYwMjkxNjU4MA== terrycojones 132978 2020-03-23T23:37:06Z 2020-03-23T23:37:06Z NONE

@simonw You're welcome - I was just trying it out back in December as I thought it should work. Now there's a pandemic to work on though.... so no time at all for more at the moment. BTW, I have datasette running on several protein and full (virus) genome databases I build, and it's great - thank you! Hi and best regards to you & Nat :-)

{
    "total_count": 1,
    "+1": 0,
    "-1": 0,
    "laugh": 1,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
base_url configuration setting 396212021  
602911133 https://github.com/simonw/datasette/issues/394#issuecomment-602911133 https://api.github.com/repos/simonw/datasette/issues/394 MDEyOklzc3VlQ29tbWVudDYwMjkxMTEzMw== terrycojones 132978 2020-03-23T23:22:10Z 2020-03-23T23:22:10Z NONE

I just updated #652 to remove a merge conflict. I think it's an easy way to add this functionality. I don't have time to do more though, sorry!

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
base_url configuration setting 396212021  
602904184 https://github.com/simonw/datasette/issues/394#issuecomment-602904184 https://api.github.com/repos/simonw/datasette/issues/394 MDEyOklzc3VlQ29tbWVudDYwMjkwNDE4NA== betatim 1448859 2020-03-23T23:03:42Z 2020-03-23T23:03:42Z NONE

On mybinder.org we allow access to arbitrary processes listening on a port inside the container via a reverse proxy.

This means we need support for a proxy prefix as the proxy ends up running at a URL like /something/random/proxy/datasette/...

An example that shows the problem is https://github.com/psychemedia/jupyterserverproxy-datasette-demo. Launch directly into a datasette instance on mybinder.org with https://mybinder.org/v2/gh/psychemedia/jupyterserverproxy-datasette-demo/master?urlpath=datasette then try to follow links inside the UI.

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
base_url configuration setting 396212021  
567219479 https://github.com/simonw/datasette/issues/394#issuecomment-567219479 https://api.github.com/repos/simonw/datasette/issues/394 MDEyOklzc3VlQ29tbWVudDU2NzIxOTQ3OQ== terrycojones 132978 2019-12-18T21:24:23Z 2019-12-18T21:24:23Z NONE

@simonw What about allowing a base url. The <base>....</base> tag has been around forever. Then just use all relative URLs, which I guess is likely what you already do. See https://www.w3schools.com/TAGs/tag_base.asp

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
base_url configuration setting 396212021  
567128636 https://github.com/simonw/datasette/issues/394#issuecomment-567128636 https://api.github.com/repos/simonw/datasette/issues/394 MDEyOklzc3VlQ29tbWVudDU2NzEyODYzNg== terrycojones 132978 2019-12-18T17:19:46Z 2019-12-18T17:19:46Z NONE

Hmmm, wait, maybe my mindless (copy/paste) use of proxy_redirect is causing me grief...

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
base_url configuration setting 396212021  
567127981 https://github.com/simonw/datasette/issues/394#issuecomment-567127981 https://api.github.com/repos/simonw/datasette/issues/394 MDEyOklzc3VlQ29tbWVudDU2NzEyNzk4MQ== terrycojones 132978 2019-12-18T17:18:06Z 2019-12-18T17:18:06Z NONE

Agreed, this would be nice to have. I'm currently working around it in nginx with additional location blocks:

```

location /datasette/ {
    proxy_pass         http://127.0.0.1:8001/;
    proxy_redirect     off;
    include proxy_params;
}

location /dna-protein-genome/ {
    proxy_pass         http://127.0.0.1:8001/dna-protein-genome/;
    proxy_redirect     off;
    include proxy_params;
}

location /rna-protein-genome/ {
    proxy_pass         http://127.0.0.1:8001/rna-protein-genome/;
    proxy_redirect     off;
    include proxy_params;
}

```

The 2nd and 3rd above are my databases. This works, but I have a small problem with URLs like /rna-protein-genome?params.... that I could fix with some more nginx munging. I seem to do this sort of thing once every 5 years and then have to look it all up again.

Thanks!

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
base_url configuration setting 396212021  

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