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
1117132741,I_kwDOBm6k_c5ClhfF,1615,Potential simplified publishing mechanism,369053,closed,0,,,2,2022-01-28T08:34:50Z,2022-02-02T07:34:21Z,2022-02-02T07:34:17Z,NONE,,"Hi,
Forewarning: this idea is one I've only been thinking about for a while and it's not fully fleshed-out yet.
I love Datasette and what it stands for. I was thinking about how we could make it accessible to more people, especially those without access to credit cards required for a lot of hosting options. Or they might not feel comfortable signing up for said services.
So I was thinking I might create a service that hosts Datasette instances for folks. I'd probably stick it on AWS Lambda and limit requests to something like n/month to avoid bankrupting myself. If I did build such a hypothetical service, I was thinking I would rely on GitHub Actions to do the heavy lifting.
E.g. user `johndoe` creates a repo `my-animals` with a couple of files: `dogs.csv`, `cats.csv` and the following GitHub Actions workflow:
```yaml
# .github/workflows/push.yml
on:
push
# this allows the publish action to use OIDC to authenticate johndoe/my-animals
permissions:
id-token: write
contents: read
jobs:
publish:
runs-on: ubuntu-latest
steps:
- uses: actions/setup-python@v2
- run: pip install sqlite-utils
- uses: actions/checkout@v2
- run: |
set -eux
sqlite-utils create-database animals.db
sqlite-utils insert animals.db dogs dogs.csv --csv
sqlite-utils insert animals.db cats cats.csv --csv
- uses: datasette-hub/publish@v1
with:
db: animals.db
metadata: meta.yml
# this step is helpful for debugging why the
# generated sqlite db was rejected
- uses: actions/upload-artifact@v2
if: failure()
with:
path: animals.db
retention-days: 1
```
This would then cause a Datasette instance to be available at `https://johndoe-my-animals.datasette-hub.test/`. It feels like this could significantly reduce the friction to someone being able to go from data set to Datasette.
What do you think? Does this address a real need? Or am I perhaps misunderstanding the main friction points? As a bonus: it feels like this would pair well with [git scraping](https://simonwillison.net/2020/Oct/9/git-scraping/).",107914493,issue,,,"{""url"": ""https://api.github.com/repos/simonw/datasette/issues/1615/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,completed
1065431383,I_kwDOBm6k_c4_gTFX,1533,"Add `Link: rel=""alternate""` header pointing to JSON for a table/query",9599,closed,0,,3268330,4,2021-11-28T20:43:25Z,2022-02-02T07:56:51Z,2022-02-02T07:49:33Z,OWNER,,"Originally explored in https://github.com/simonw/datasette-notebook/issues/2#issuecomment-980789406 - I wanted an efficient way to scan a list of URLs and figure out which if any of those corresponded to Datasette tables, canned queries or SQL output that could be represented as a table on a page.
It looks like a neat way to do that is with ` Link:` header like this:
`Link: http://127.0.0.1:8058/fixtures/compound_three_primary_keys.json; rel=""alternate""; type=""application/datasette+json""`
I can put a `
Sourced from black's releases.
22.1.0
At long last, Black is no longer a beta product! This is the first non-beta release and the first release covered by our new stability policy.
Highlights
Style
- Deprecate
--experimental-string-processing
and move the functionality under--preview
(#2789)- For stubs, one blank line between class attributes and methods is now kept if there's at least one pre-existing blank line (#2736)
- Black now normalizes string prefix order (#2297)
- Remove spaces around power operators if both operands are simple (#2726)
- Work around bug that causes unstable formatting in some cases in the presence of the magic trailing comma (#2807)
- Use parentheses for attribute access on decimal float and int literals (#2799)
- Don't add whitespace for attribute access on hexadecimal, binary, octal, and complex literals (#2799)
- Treat blank lines in stubs the same inside top-level if statements (#2820)
- Fix unstable formatting with semicolons and arithmetic expressions (#2817)
- Fix unstable formatting around magic trailing comma (#2572)
Parser
- Fix mapping cases that contain as-expressions, like
case {"key": 1 | 2 as password}
(#2686)- Fix cases that contain multiple top-level as-expressions, like
case 1 as a, 2 as b
(#2716)- Fix call patterns that contain as-expressions with keyword arguments, like
case Foo(bar=baz as quux)
(#2749)- Tuple unpacking on
return
andyield
constructs now implies 3.8+ (#2700)- Unparenthesized tuples on annotated assignments (e.g
values: Tuple[int, ...] = 1, 2, 3
) now implies 3.8+ (#2708)- Fix handling of standalone
match()
orcase()
when there is a trailing newline or a comment inside of the parentheses. (#2760)from __future__ import annotations
statement now implies Python 3.7+ (#2690)Performance
- Speed-up the new backtracking parser about 4X in general (enabled when
--target-version
is set to 3.10 and higher). (#2728)- Black is now compiled with mypyc for an overall 2x speed-up. 64-bit Windows, MacOS, and Linux (not including musl) are supported. (#1009, #2431)
Configuration
- Do not accept bare carriage return line endings in pyproject.toml (#2408)
- Add configuration option (
python-cell-magics
) to format cells with custom magics in Jupyter Notebooks (#2744)- Allow setting custom cache directory on all platforms with environment variable
BLACK_CACHE_DIR
(#2739).- Enable Python 3.10+ by default, without any extra need to specify -
-target-version=py310
. (#2758)- Make passing
SRC
or--code
mandatory and mutually exclusive (#2804)Output
- Improve error message for invalid regular expression (#2678)
- Improve error message when parsing fails during AST safety check by embedding the underlying SyntaxError (#2693)
- No longer color diff headers white as it's unreadable in light themed terminals (#2691)
- Text coloring added in the final statistics (#2712)
- Verbose mode also now describes how a project root was discovered and which paths will be formatted. (#2526)
Packaging
... (truncated)
Sourced from black's changelog.
22.1.0
At long last, Black is no longer a beta product! This is the first non-beta release and the first release covered by our new stability policy.
Highlights
Style
- Deprecate
--experimental-string-processing
and move the functionality under--preview
(#2789)- For stubs, one blank line between class attributes and methods is now kept if there's at least one pre-existing blank line (#2736)
- Black now normalizes string prefix order (#2297)
- Remove spaces around power operators if both operands are simple (#2726)
- Work around bug that causes unstable formatting in some cases in the presence of the magic trailing comma (#2807)
- Use parentheses for attribute access on decimal float and int literals (#2799)
- Don't add whitespace for attribute access on hexadecimal, binary, octal, and complex literals (#2799)
- Treat blank lines in stubs the same inside top-level
if
statements (#2820)- Fix unstable formatting with semicolons and arithmetic expressions (#2817)
- Fix unstable formatting around magic trailing comma (#2572)
Parser
- Fix mapping cases that contain as-expressions, like
case {"key": 1 | 2 as password}
(#2686)- Fix cases that contain multiple top-level as-expressions, like
case 1 as a, 2 as b
(#2716)- Fix call patterns that contain as-expressions with keyword arguments, like
case Foo(bar=baz as quux)
(#2749)- Tuple unpacking on
return
andyield
constructs now implies 3.8+ (#2700)- Unparenthesized tuples on annotated assignments (e.g
values: Tuple[int, ...] = 1, 2, 3
) now implies 3.8+ (#2708)- Fix handling of standalone
match()
orcase()
when there is a trailing newline or a comment inside of the parentheses. (#2760)from __future__ import annotations
statement now implies Python 3.7+ (#2690)Performance
... (truncated)