github
id | node_id | number | state | locked | title | user | body | created_at | updated_at | closed_at | merged_at | merge_commit_sha | assignee | milestone | draft | head | base | author_association | repo | url | merged_by | auto_merge |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1608050242 | PR_kwDOCGYnMM5f2OZC | 604 | closed | 0 | Add more STRICT table support | 16437338 | - https://github.com/simonw/sqlite-utils/issues/344#issuecomment-982014776 Make `table.transform()` preserve STRICT mode. <!-- readthedocs-preview sqlite-utils start --> ---- :books: Documentation preview :books:: https://sqlite-utils--604.org.readthedocs.build/en/604/ <!-- readthedocs-preview sqlite-utils end --> | 2023-11-19T19:38:53Z | 2023-12-08T05:17:20Z | 2023-12-08T05:05:27Z | 2023-12-08T05:05:27Z | 1500c19bd0f31b2e7f28a5ec2d7bfa133a2e4d4c | 0 | 61c6e26cf922c70b65b161473723ff9d869a04a5 | 9286c1ba432e890b1bb4b2a1f847b15364c1fa18 | CONTRIBUTOR | 140912432 | https://github.com/simonw/sqlite-utils/pull/604 | ||||
1535767490 | PR_kwDOCGYnMM5bifPC | 596 | closed | 0 | Fixes mapping for time fields related to mysql, closes #522 | 4420927 | Adds `COLUMN_TYPE_MAPPING` for `TIME` fields that are mapped as `datetime.timedelta` for MySQL and json represantation for `datetime.timedelta` in order to fix #522 <!-- readthedocs-preview sqlite-utils start --> ---- :books: Documentation preview :books:: https://sqlite-utils--596.org.readthedocs.build/en/596/ <!-- readthedocs-preview sqlite-utils end --> | 2023-09-29T13:41:48Z | 2023-11-04T00:49:50Z | 2023-11-04T00:49:50Z | 2023-11-04T00:49:50Z | 347fdc865e91b8d3410f49a5c9d5b499fbb594c1 | 0 | ab12125b3f7d0ef327b08d95f27c6c4cec6fdfb3 | 622c3a5a7dd53a09c029e2af40c2643fe7579340 | CONTRIBUTOR | 140912432 | https://github.com/simonw/sqlite-utils/pull/596 | ||||
1542299634 | PR_kwDOCGYnMM5b7Z_y | 598 | closed | 0 | Fixed issue #433 - CLI eats cursor | 62745 | The issue is that underlying iterator is not fully consumed within the body of the `with file_progress()` block. Instead, that block creates generator expressions like `docs = (dict(zip(headers, row)) for row in reader)` These iterables are consumed later, outside the `with file_progress()` block, which consumes the underlying iterator, and in turn updates the progress bar. This means that the `ProgressBar.__exit__` method gets called before the last time the `ProgressBar.update` method gets called. The result is that the code to make the cursor invisible (inside the `update()` method) is called after the cleanup code to make it visible (in the `__exit__` method). The fix is to move consumption of the `docs` iterators within the progress bar block. ( (An additional fix, to make ProgressBar more robust against this kind of misuse, would to make it refusing to update after its `__exit__` method had been called, just like files cannot be `read()` after they are closed. That requires a in the click library). Note that Github diff obscures the simplicity of this diff, it's just indenting a block of code. <!-- readthedocs-preview sqlite-utils start --> ---- :books: Documentation preview :books:: https://sqlite-utils--598.org.readthedocs.build/en/598/ <!-- readthedocs-preview sqlite-utils end --> | 2023-10-04T18:06:58Z | 2023-11-04T00:46:55Z | 2023-11-04T00:40:30Z | 2023-11-04T00:40:30Z | 37273d7f63f08872aa1c90c4233a0580e384ac19 | 0 | 76113d1cb1387811d556fb7a32e0628492c34aea | 622c3a5a7dd53a09c029e2af40c2643fe7579340 | CONTRIBUTOR | 140912432 | https://github.com/simonw/sqlite-utils/pull/598 | ||||
1586779743 | PR_kwDOCGYnMM5elFZf | 600 | closed | 0 | Add spatialite arm64 linux path | 37802088 | According to both [Debian](https://packages.debian.org/bookworm/arm64/libsqlite3-mod-spatialite/filelist) and [Ubuntu](https://packages.ubuntu.com/mantic/arm64/libsqlite3-mod-spatialite/filelist), the correct “target triple” for arm64 is `aarch64-linux-gnu`, so we should be looking in `/usr/lib/aarch64-linux-gnu` for `mod_spatialite.so`. I can confirm that on both of my Debian arm64 SBCs, `libsqlite3-mod-spatialite` installs to that path. ``` $ ls -l /usr/lib/*/*spatial* lrwxrwxrwx 1 root root 23 Dec 1 2022 /usr/lib/aarch64-linux-gnu/mod_spatialite.so -> mod_spatialite.so.7.1.0 lrwxrwxrwx 1 root root 23 Dec 1 2022 /usr/lib/aarch64-linux-gnu/mod_spatialite.so.7 -> mod_spatialite.so.7.1.0 -rw-r--r-- 1 root root 7348584 Dec 1 2022 /usr/lib/aarch64-linux-gnu/mod_spatialite.so.7.1.0 ``` This is a set of before and after snippets of pytest’s output for this PR. ### Before ``` $ pytest tests/test_get.py ...... [ 73%] tests/test_gis.py ssssssssssss [ 75%] tests/test_hypothesis.py .... [ 75%] ``` ### After ``` $ pytest tests/test_get.py ...... [ 73%] tests/test_gis.py ............ [ 75%] tests/test_hypothesis.py .... [ 75%] ``` Issue: #599 <!-- readthedocs-preview sqlite-utils start --> ---- :books: Documentation preview :books:: https://sqlite-utils--600.org.readthedocs.build/en/600/ <!-- readthedocs-preview sqlite-utils end --> | 2023-11-03T22:23:26Z | 2023-11-04T00:34:33Z | 2023-11-04T00:31:49Z | 2023-11-04T00:31:49Z | b92ea4793ce4dcb73cf762aae634ab72f65ec50f | 0 | b1a60766a4150268557c4445297087a3f076be01 | 622c3a5a7dd53a09c029e2af40c2643fe7579340 | CONTRIBUTOR | 140912432 | https://github.com/simonw/sqlite-utils/pull/600 | ||||
1299206303 | PR_kwDOBm6k_c5NcFCf | 2052 | closed | 0 | feat: Javascript Plugin API (Custom panels, column menu items with JS actions) | 9020979 | ## Motivation - Allow plugins that add data visualizations [`datasette-vega`](https://github.com/simonw/datasette-vega), [`datasette-leaflet`](https://github.com/simonw/datasette-leaflet), and [`datasette-nteract-data-explorer`](https://github.com/hydrosquall/datasette-nteract-data-explorer) to co-exist safely - Standardize APIs / hooks to ease development for new JS plugin developers (better compat with datasette-lite) through standardized DOM selectors, methods for extending the existing Table UI. This has come up as a feature request several times (see research notes for examples) - Discussion w/ @simonw about a general-purpose Datasette JS API ## Changes Summary: Provide 2 new surface areas for Datasette JS plugin developers. See alpha [documentation](https://github.com/simonw/datasette/pull/2052#issuecomment-1510423051) 1. Custom column header items: <https://a.cl.ly/Kou97wJr> 2. Basic "panels" controlled by buttons: <https://a.cl.ly/rRugWobd> ### User Facing Changes - Allow creating menu items under table header that triggers JS (instead of opening hrefs per the existing [menu_link](https://docs.datasette.io/en/stable/plugin_hooks.html#menu-links-datasette-actor-request) hook). Items can respond to any column metadata provided by the column header (e.g. label). The proof of concept plugins log data to the console, or copy the column name to clipboard. - Allow plugins to register UI elements in a panel controller. The parent component handles switching the visibility of active plugins. - Because native button elements are used, the panel is keyboard-accessible - use tab / shift-tab to cycle through tab options, and `enter` to select. - There's room to improve the styling, but the focus of this PR is on the API rather than the UX. ### (plugin) Developer Facing Changes - Dispatch a `datasette_init` [CustomEvent](https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent/CustomEvent) when the `datasetteManager` is finished loading. - Provide `manager.registerPlugin` API for … | 2023-04-02T20:23:44Z | 2023-10-14T17:49:03Z | 2023-10-13T00:00:27Z | 2023-10-13T00:00:27Z | 452a587e236ef642cbc6ae345b58767ea8420cb5 | 9599 | 0 | 8ae479c4775125f59f2367626fd32f3229c1135d | 0f7192b6154edb576c41b55bd3f2a3f53e5f436a | CONTRIBUTOR | 107914493 | https://github.com/simonw/datasette/pull/2052 | |||
1519993584 | PR_kwDOBm6k_c5amULw | 2190 | closed | 0 | Raise an exception if a "plugins" block exists in metadata.json | 15178711 | refs #2183 #2093 From [this comment](https://github.com/simonw/datasette/pull/2183#issuecomment-1714699724) in #2183: If a `"plugins"` block appears in `metadata.json`, it means that a user hasn't migrated over their plugin configuration from `metadata.json` to `datasette.yaml`, which is a breaking change in Datasette 1.0. This PR will ensure that an error is raised whenever that happens. <!-- readthedocs-preview datasette start --> ---- :books: Documentation preview :books:: https://datasette--2190.org.readthedocs.build/en/2190/ <!-- readthedocs-preview datasette end --> | 2023-09-18T18:08:56Z | 2023-10-12T16:20:51Z | 2023-10-12T16:20:51Z | 2023-10-12T16:20:51Z | 3d6d1e3050b8e50fac40ec090672d8a95fa8e06c | 0 | fc7dbe0d8ac3e368b6c335d2ce8abe780f36dbd6 | 6ed7908580fa2ba9297c3225d85c56f8b08b9937 | CONTRIBUTOR | 107914493 | https://github.com/simonw/datasette/pull/2190 | ||||
1520248889 | PR_kwDOBm6k_c5anSg5 | 2191 | closed | 0 | Move `permissions`, `allow` blocks, canned queries and more out of `metadata.yaml` and into `datasette.yaml` | 15178711 | The PR moves the following fields from `metadata.yaml` to `datasette.yaml`: ``` permissions allow allow_sql queries extra_css_urls extra_js_urls ``` This is a significant breaking change that users will need to upgrade their `metadata.yaml` files for. But the format/locations are similar to the previous version, so it shouldn't be too difficult to upgrade. One note: I'm still working on the Configuration docs, specifically the "reference" section. Though it's pretty small, the rest of read to review | 2023-09-18T21:21:16Z | 2023-10-12T16:16:38Z | 2023-10-12T16:16:38Z | 2023-10-12T16:16:38Z | 35deaabcb105903790d18710a26e77545f6852ce | 0 | 18b48f879b68d1e80e3adbae056710a6238b16bb | 6ed7908580fa2ba9297c3225d85c56f8b08b9937 | CONTRIBUTOR | 107914493 | https://github.com/simonw/datasette/pull/2191 | ||||
1515716751 | PR_kwDOBm6k_c5aWACP | 2185 | closed | 0 | Bump the python-packages group with 3 updates | 49699333 | Bumps the python-packages group with 3 updates: [sphinx](https://github.com/sphinx-doc/sphinx), [furo](https://github.com/pradyunsg/furo) and [black](https://github.com/psf/black). Updates `sphinx` from 7.2.5 to 7.2.6 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/sphinx-doc/sphinx/releases">sphinx's releases</a>.</em></p> <blockquote> <h2>Sphinx 7.2.6</h2> <p>Changelog: <a href="https://www.sphinx-doc.org/en/master/changes.html">https://www.sphinx-doc.org/en/master/changes.html</a></p> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/sphinx-doc/sphinx/blob/master/CHANGES.rst">sphinx's changelog</a>.</em></p> <blockquote> <h1>Release 7.2.6 (released Sep 13, 2023)</h1> <h2>Bugs fixed</h2> <ul> <li><a href="https://redirect.github.com/sphinx-doc/sphinx/issues/11679">#11679</a>: Add the :envvar:<code>!SPHINX_AUTODOC_RELOAD_MODULES</code> environment variable, which if set reloads modules when using autodoc with <code>TYPE_CHECKING = True</code>. Patch by Matt Wozniski and Adam Turner.</li> <li><a href="https://redirect.github.com/sphinx-doc/sphinx/issues/11679">#11679</a>: Use :py:func:<code>importlib.reload</code> to reload modules in autodoc. Patch by Matt Wozniski and Adam Turner.</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/sphinx-doc/sphinx/commit/cf7d2759af0852d67288e58d823d51fe860749ca"><code>cf7d275</code></a> Bump to 7.2.6 final</li> <li><a href="https://github.com/sphinx-doc/sphinx/commit/43d69755df0088fd0ec099c0893da059f50175e4"><code>43d6975</code></a> Leverage <code>importlib.reload</code> for reloading modules (<a href="https://redirect.github.com/sphinx-doc/sphinx/issues/11679">#11679</a>)</li> <li><a href="https://github.com/sphinx-doc/sphinx/commit/13da5d7b2fda0da58137534e8fcdb0da9c88e55f"><code>13da5d7</code></a> Inline makecmd in make mode</li> <li><a href="https://github.com/sphinx-doc/sphinx/commit/3d0110a95a5260cc5056322eb8c… | 2023-09-14T13:27:40Z | 2023-09-20T22:11:25Z | 2023-09-20T22:11:24Z | 2023-09-20T22:11:24Z | 6763572948ffd047a89a3bbf7c300e91f51ae98f | 0 | fe5f881a5270201d833fff2ebfd08c883116223a | 6ed7908580fa2ba9297c3225d85c56f8b08b9937 | CONTRIBUTOR | 107914493 | https://github.com/simonw/datasette/pull/2185 | ||||
1522166951 | PR_kwDOBm6k_c5aumyn | 2192 | closed | 0 | Stop using parallel SQL queries for tables | 9599 | Refs: - #2189 <!-- readthedocs-preview datasette start --> ---- :books: Documentation preview :books:: https://datasette--2192.org.readthedocs.build/en/2192/ <!-- readthedocs-preview datasette end --> | 2023-09-20T01:28:43Z | 2023-09-20T22:10:56Z | 2023-09-20T22:10:55Z | 2023-09-20T22:10:55Z | b0e5d8afa308759f4ee9f3ecdf61101dffc4a037 | 0 | 4e6a34179eaedec44c1263275d7592fd83d7e2ac | 6ed7908580fa2ba9297c3225d85c56f8b08b9937 | OWNER | 107914493 | https://github.com/simonw/datasette/pull/2192 | ||||
1510964674 | PR_kwDOBm6k_c5aD33C | 2183 | closed | 0 | `datasette.yaml` plugin support | 15178711 | Part of #2093 In #2149 , we ported over `"settings.json"` into the new `datasette.yaml` config file, with a top-level `"settings"` key. This PR ports over plugin configuration into top-level `"plugins"` key, as well as nested database/table plugin config. From now on, no plugin-related configuration is allowed in `metadata.yaml`, and must be in `datasette.yaml` in this new format. This is a pretty significant breaking change. Thankfully, you should be able to copy-paste your legacy plugin key/values into the new `datasette.yaml` format. An example of what `datasette.yaml` would look like with this new plugin config: ```yaml plugins: datasette-my-plugin: config_key: value databases: fixtures: plugins: datasette-my-plugin: config_key: fixtures-db-value tables: students: plugins: datasette-my-plugin: config_key: fixtures-students-table-value ``` As an additional benefit, this now works with the new `-s` flag: ```bash datasette --memory -s 'plugins.datasette-my-plugin.config_key' new_value ``` Marked as a "Draft" right now until I add better documentation. We also should have a plan for the next alpha release to document and publicize this change, especially for plugin authors (since their docs will have to change to say `datasette.yaml` instead of `metadata.yaml` <!-- readthedocs-preview datasette start --> ---- :books: Documentation preview :books:: https://datasette--2183.org.readthedocs.build/en/2183/ <!-- readthedocs-preview datasette end --> | 2023-09-11T20:26:04Z | 2023-09-13T21:06:25Z | 2023-09-13T21:06:25Z | 2023-09-13T21:06:25Z | b2ec8717c3619260a1b535eea20e618bf95aa30b | 0 | acca3387a18a64439d8ae8f535c856c97605a8a5 | a4c96d01b27ce7cd06662a024da3547132a7c412 | CONTRIBUTOR | 107914493 | https://github.com/simonw/datasette/pull/2183 | ||||
1507097949 | PR_kwDOCGYnMM5Z1H1d | 593 | closed | 0 | .transform() now preserves rowid values, refs #592 | 9599 | Refs: - #592 - [x] Tests against weird shaped tables I need to test that this works against: - `rowid` tables - Tables that have a column called `rowid` even though they are not rowid tables <!-- readthedocs-preview sqlite-utils start --> ---- :books: Documentation preview :books:: https://sqlite-utils--593.org.readthedocs.build/en/593/ <!-- readthedocs-preview sqlite-utils end --> | 2023-09-08T01:02:28Z | 2023-09-10T17:44:59Z | 2023-09-09T00:45:30Z | 2023-09-09T00:45:30Z | 1c6ea54338e24fcebcee4e2f9c170ee300a5d946 | 0 | b86374f705d1f4143a51634b30289cb48add0ea2 | 5d123f031fc4fadc98f508e0ef6b7b6671e86155 | OWNER | 140912432 | https://github.com/simonw/sqlite-utils/pull/593 | ||||
1507122571 | PR_kwDOBm6k_c5Z1N2L | 2181 | closed | 0 | actors_from_ids plugin hook and datasette.actors_from_ids() method | 9599 | Refs: - #2180 This plugin hook is feature complete - including documentation and tests. I'm not going to land it in Datasette `main` until we've used it at least once though, which should happen promptly in development for [Datasette Cloud](https://www.datasette.cloud/). <!-- readthedocs-preview datasette start --> ---- :books: Documentation preview :books:: https://datasette--2181.org.readthedocs.build/en/2181/ <!-- readthedocs-preview datasette end --> | 2023-09-08T01:51:07Z | 2023-09-08T04:24:00Z | 2023-09-08T04:23:59Z | 2023-09-08T04:23:59Z | b645174271aa08e8ca83b27ff83ce078ecd15da2 | 0 | e1c5a9d92b7677eaf9eff58d05badb39d078d1bd | c26370485a4fd4bf130da051be9163d92c57f24f | OWNER | 107914493 | https://github.com/simonw/datasette/pull/2181 | ||||
1497165426 | PR_kwDOBm6k_c5ZPO5y | 2166 | closed | 0 | Bump the python-packages group with 1 update | 49699333 | Bumps the python-packages group with 1 update: [sphinx](https://github.com/sphinx-doc/sphinx). <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/sphinx-doc/sphinx/releases">sphinx's releases</a>.</em></p> <blockquote> <h2>Sphinx 7.2.5</h2> <p>Changelog: <a href="https://www.sphinx-doc.org/en/master/changes.html">https://www.sphinx-doc.org/en/master/changes.html</a></p> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/sphinx-doc/sphinx/blob/master/CHANGES">sphinx's changelog</a>.</em></p> <blockquote> <h1>Release 7.2.5 (released Aug 30, 2023)</h1> <h2>Bugs fixed</h2> <ul> <li><a href="https://redirect.github.com/sphinx-doc/sphinx/issues/11645">#11645</a>: Fix a regression preventing autodoc from importing modules within packages that make use of <code>if typing.TYPE_CHECKING:</code> to guard circular imports needed by type checkers. Patch by Matt Wozniski.</li> <li><a href="https://redirect.github.com/sphinx-doc/sphinx/issues/11634">#11634</a>: Fixed inheritance diagram relative link resolution for sibling files in a subdirectory. Patch by Albert Shih.</li> <li><a href="https://redirect.github.com/sphinx-doc/sphinx/issues/11659">#11659</a>: Allow <code>?config=...</code> in :confval:<code>mathjax_path</code>.</li> <li><a href="https://redirect.github.com/sphinx-doc/sphinx/issues/11654">#11654</a>: autodoc: Fail with a more descriptive error message when an object claims to be an instance of <code>type</code>, but is not a class. Patch by James Braza.</li> <li>11620: Cease emitting :event:<code>source-read</code> events for files read via the :dudir:<code>include</code> directive.</li> <li>11620: Add a new :event:<code>include-read</code> for observing and transforming the content of included files via the :dudir:<code>include</code> directive.</li> <li><a href="https://redirect.github.com/sphinx-doc/sphinx/issues/11627">#11627</a>: Restore support for copyright lines of the form <code>YYYY</code> when <code>SOU… | 2023-08-31T13:19:57Z | 2023-09-06T16:34:32Z | 2023-09-06T16:34:31Z | 2023-09-06T16:34:31Z | e4abae3fd7a828625d00c35c316852ffbaa5ef2f | 0 | 7c9df6e5499fdd06a2f5497d07052e23acd0ece7 | 05707aa16b5c6c39fbe48b3176b85a8ffe493938 | CONTRIBUTOR | 107914493 | https://github.com/simonw/datasette/pull/2166 | ||||
1504918180 | PR_kwDOBm6k_c5Zszqk | 2175 | closed | 0 | Test against Python 3.12 preview | 9599 | https://dev.to/hugovk/help-test-python-312-beta-1508/ <!-- readthedocs-preview datasette start --> ---- :books: Documentation preview :books:: https://datasette--2175.org.readthedocs.build/en/2175/ <!-- readthedocs-preview datasette end --> | 2023-09-06T16:09:05Z | 2023-09-06T16:16:28Z | 2023-09-06T16:16:27Z | 2023-09-06T16:16:27Z | e86eaaa4f371512689e973c18879298dab51f80a | 0 | 21e77c3ff9e4aacaa9442a7b3b36aafd87025115 | 05707aa16b5c6c39fbe48b3176b85a8ffe493938 | OWNER | 107914493 | https://github.com/simonw/datasette/pull/2175 | ||||
1503774871 | PR_kwDOBm6k_c5ZociX | 2173 | closed | 0 | click-default-group>=1.2.3 | 9599 | Now available as a wheel: - https://github.com/click-contrib/click-default-group/issues/21 <!-- readthedocs-preview datasette start --> ---- :books: Documentation preview :books:: https://datasette--2173.org.readthedocs.build/en/2173/ <!-- readthedocs-preview datasette end --> | 2023-09-06T02:33:28Z | 2023-09-06T02:50:10Z | 2023-09-06T02:50:10Z | 2023-09-06T02:50:10Z | 05707aa16b5c6c39fbe48b3176b85a8ffe493938 | 0 | a481ebd495d0f87ebd6dcf360a9cff25a6e148d7 | fd083e37ec53e7e625111168d324a572344a3b19 | OWNER | 107914493 | https://github.com/simonw/datasette/pull/2173 | ||||
1496106142 | PR_kwDOBm6k_c5ZLMSe | 2165 | closed | 0 | DATASETTE_LOAD_PLUGINS environment variable for loading specific plugins | 9599 | - #2164 TODO: - [x] Automated tests - [ ] Documentation - [x] Make sure `DATASETTE_LOAD_PLUGINS=''` works for loading zero plugins | 2023-08-30T20:33:30Z | 2023-08-30T22:12:25Z | 2023-08-30T22:12:25Z | 2023-08-30T22:12:25Z | 6bfe104d47b888c70bfb7781f8f48ff11452b2b5 | 0 | 6321c9c055a640ed6ea98e231dc5813dcde1f773 | 30b28c8367a9c6870386ea10a202705b40862457 | OWNER | 107914493 | https://github.com/simonw/datasette/pull/2165 | ||||
1488154809 | PR_kwDOBm6k_c5Ys3C5 | 2154 | closed | 0 | Cascade for restricted token view-table/view-database/view-instance operations | 9599 | Refs: - #2102 Also includes a prototype implementation of `--actor option` which I'm using for testing this, from: - #2153 <!-- readthedocs-preview datasette start --> ---- :books: Documentation preview :books:: https://datasette--2154.org.readthedocs.build/en/2154/ <!-- readthedocs-preview datasette end --> | 2023-08-24T14:24:23Z | 2023-08-29T16:32:35Z | 2023-08-29T16:32:34Z | 2023-08-29T16:32:34Z | 50da908213a0fc405ecd7a40090dfea7a2e7395c | 0 | 1b38cba913b0a3515b4b1649276dc1ff973680bb | 2e2825869fc2655b5fcadc743f6f9dec7a49bc65 | OWNER | 107914493 | https://github.com/simonw/datasette/pull/2154 | ||||
1492889894 | PR_kwDOBm6k_c5Y-7Em | 2162 | closed | 0 | Add new `--internal internal.db` option, deprecate legacy `_internal` database | 15178711 | refs #2157 This PR adds a new `--internal` option to datasette serve. If provided, it is the path to a persistent internal database that Datasette core and Datasette plugins can use to store data, as discussed in the proposal issue. This PR also removes and deprecates the previous in-memory `_internal` database. Those tables now appear in the `internal` database, with `core_` prefixes (ex `tables` in `_internal` is now `core_tables` in `internal`). ## A note on the new `core_` tables However, one important notes about those new `core_` tables: If a `--internal` DB is passed in, that means those `core_` tables will persist across multiple Datasette instances. This wasn't the case before, since `_internal` was always an in-memory database created from scratch. I tried to put those `core_` tables as `TEMP` tables - after all, there's always one 1 `internal` DB connection at a time, so I figured it would work. But, since we use the `Database()` wrapper for the internal DB, it has two separate connections: a default read-only connection and a write connection that is created when a write operation occurs. Which meant the `TEMP` tables would be created by the write connection, but not available in the read-only connection. So I had a brillant idea: Attach an in-memory named database with `cache=shared`, and create those tables there! ```sql ATTACH DATABASE 'file:datasette_internal_core?mode=memory&cache=shared' AS core; ``` We'd run this on both the read-only connection and the write-only connection. That way, those tables would stay in memory, they'd communicate with the `cache=shared` feature, and we'd be good to go. However, I couldn't find an easy way to run a `ATTACH DATABASE` command on the read-only query. Using `Database()` as a wrapper for the internal DB is pretty limiting - it's meant for Datasette "data" databases, where we want multiple readers and possibly 1 write connection at a time. But the internal database doesn't really require that kind of support - I think we… | 2023-08-29T00:05:07Z | 2023-08-29T03:24:23Z | 2023-08-29T03:24:23Z | 2023-08-29T03:24:23Z | 92b8bf38c02465f624ce3f48dcabb0b100c4645d | 0 | 73489cac8ef8e934e601302fa6594e27b75a382d | 2e2825869fc2655b5fcadc743f6f9dec7a49bc65 | CONTRIBUTOR | 107914493 | https://github.com/simonw/datasette/pull/2162 | ||||
1492124532 | PR_kwDOBm6k_c5Y8AN0 | 2160 | closed | 0 | Bump sphinx, furo, blacken-docs dependencies | 49699333 | Bumps the python-packages group with 3 updates: [sphinx](https://github.com/sphinx-doc/sphinx), [furo](https://github.com/pradyunsg/furo) and [blacken-docs](https://github.com/asottile/blacken-docs). Updates `sphinx` from 7.1.2 to 7.2.4 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/sphinx-doc/sphinx/releases">sphinx's releases</a>.</em></p> <blockquote> <h2>Sphinx 7.2.4</h2> <p>Changelog: <a href="https://www.sphinx-doc.org/en/master/changes.html">https://www.sphinx-doc.org/en/master/changes.html</a></p> <h2>Sphinx 7.2.3</h2> <p>Changelog: <a href="https://www.sphinx-doc.org/en/master/changes.html">https://www.sphinx-doc.org/en/master/changes.html</a></p> <h2>Sphinx 7.2.2</h2> <p>Changelog: <a href="https://www.sphinx-doc.org/en/master/changes.html">https://www.sphinx-doc.org/en/master/changes.html</a></p> <h2>Sphinx 7.2.1</h2> <p>Changelog: <a href="https://www.sphinx-doc.org/en/master/changes.html">https://www.sphinx-doc.org/en/master/changes.html</a></p> <h2>Sphinx 7.2.0</h2> <p>Changelog: <a href="https://www.sphinx-doc.org/en/master/changes.html">https://www.sphinx-doc.org/en/master/changes.html</a></p> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/sphinx-doc/sphinx/blob/master/CHANGES">sphinx's changelog</a>.</em></p> <blockquote> <h1>Release 7.2.4 (released Aug 28, 2023)</h1> <h2>Bugs fixed</h2> <ul> <li><a href="https://redirect.github.com/sphinx-doc/sphinx/issues/11618">#11618</a>: Fix a regression in the MoveModuleTargets transform, introduced in <a href="https://redirect.github.com/sphinx-doc/sphinx/issues/10478">#10478</a> (<a href="https://redirect.github.com/sphinx-doc/sphinx/issues/9662">#9662</a>).</li> <li><a href="https://redirect.github.com/sphinx-doc/sphinx/issues/11649">#11649</a>: linkcheck: Resolve hanging tests for timezones west of London and incorrect conversion from UTC to offsets from the UNIX epoch. Patch by Dmitry Shachnev and Adam Turner.</li> </ul> <h1>Release 7.2.3 (rele… | 2023-08-28T13:49:31Z | 2023-08-29T00:38:33Z | 2023-08-29T00:38:32Z | 2023-08-29T00:38:32Z | d28f12092dd795f35e9500154711d542f8931676 | 0 | 3529c9c4a6b9cdf628b8452f502014a51f650709 | 2e2825869fc2655b5fcadc743f6f9dec7a49bc65 | CONTRIBUTOR | 107914493 | https://github.com/simonw/datasette/pull/2160 | ||||
1492599485 | PR_kwDOBm6k_c5Y90K9 | 2161 | closed | 0 | -s/--setting x y gets merged into datasette.yml, refs #2143, #2156 | 9599 | This change updates the `-s/--setting` option to `datasette serve` to allow it to be used to set arbitrarily complex nested settings in a way that is compatible with the new `-c datasette.yml` work happening in: - #2143 It will enable things like this: ``` datasette data.db --setting plugins.datasette-ripgrep.path "/home/simon/code" ``` For the moment though it just affects [settings](https://docs.datasette.io/en/1.0a4/settings.html) - so you can do this: ``` datasette data.db --setting settings.sql_time_limit_ms 3500 ``` I've also implemented a backwards compatibility mechanism, so if you use it this way (the old way): ``` datasette data.db --setting sql_time_limit_ms 3500 ``` It will notice that the setting you passed is one of Datasette's core settings, and will treat that as if you said `settings.sql_time_limit_ms` instead. <!-- readthedocs-preview datasette start --> ---- :books: Documentation preview :books:: https://datasette--2161.org.readthedocs.build/en/2161/ <!-- readthedocs-preview datasette end --> | 2023-08-28T19:30:42Z | 2023-08-28T20:06:15Z | 2023-08-28T20:06:14Z | 2023-08-28T20:06:14Z | d9aad1fd042a25d226f2ace1f7827b4602761038 | 0 | a5cbf80d795b599697b2b873566386abb0cd8b32 | 527cec66b0403e689c8fb71fc8b381a1d7a46516 | OWNER | 107914493 | https://github.com/simonw/datasette/pull/2161 | ||||
1485078422 | PR_kwDOBm6k_c5YhH-W | 2149 | closed | 0 | Start a new `datasette.yaml` configuration file, with settings support | 15178711 | refs #2093 #2143 This is the first step to implementing the new `datasette.yaml`/`datasette.json` configuration file. - The old `--config` argument is now back, and is the path to a `datasette.yaml` file. Acts like the `--metadata` flag. - The old `settings.json` behavior has been removed. - The `"settings"` key inside `datasette.yaml` defines the same `--settings` flags - Values passed in `--settings` will over-write values in `datasette.yaml` Docs for the Config file is pretty light, not much to add until we add more config to the file. <!-- readthedocs-preview datasette start --> ---- :books: Documentation preview :books:: https://datasette--2149.org.readthedocs.build/en/2149/ <!-- readthedocs-preview datasette end --> | 2023-08-22T16:24:16Z | 2023-08-23T01:26:11Z | 2023-08-23T01:26:11Z | 2023-08-23T01:26:11Z | 17ec309e14f9c2e90035ba33f2f38ecc5afba2fa | 0 | db720cd603def51f1d0f074a16d186779a962ea7 | 943df09dcca93c3b9861b8c96277a01320db8662 | CONTRIBUTOR | 107914493 | https://github.com/simonw/datasette/pull/2149 | ||||
1479795255 | PR_kwDOCGYnMM5YM-I3 | 584 | closed | 0 | .transform() instead of modifying sqlite_master for add_foreign_keys | 9599 | Refs: - #577 <!-- readthedocs-preview sqlite-utils start --> ---- :books: Documentation preview :books:: https://sqlite-utils--584.org.readthedocs.build/en/584/ <!-- readthedocs-preview sqlite-utils end --> | 2023-08-17T23:32:45Z | 2023-08-18T00:48:13Z | 2023-08-18T00:48:08Z | 2023-08-18T00:48:08Z | 509857ee8724f73760f3631b69c26f9047381187 | 0 | 291505084e652972ad806383250757d41d596d38 | 1dc6b5aa644a92d3654f7068110ed7930989ce71 | OWNER | 140912432 | https://github.com/simonw/sqlite-utils/pull/584 | ||||
1451100029 | PR_kwDOBm6k_c5Wfgd9 | 2118 | closed | 0 | New JSON design for query views | 9599 | WIP. Refs: - #2109 <!-- readthedocs-preview datasette start --> ---- :books: Documentation preview :books:: https://datasette--2118.org.readthedocs.build/en/2118/ <!-- readthedocs-preview datasette end --> | 2023-07-26T23:29:21Z | 2023-08-08T01:47:40Z | 2023-08-08T01:47:39Z | 2023-08-08T01:47:39Z | 1377a290cd85ba8d3338b1da47c4665ed4c6c625 | 9700784 | 0 | 8b1dea3c0994d5875e372965eb5ca388ea08fe6a | 08181823990a71ffa5a1b57b37259198eaa43e06 | OWNER | 107914493 | https://github.com/simonw/datasette/pull/2118 | |||
1465521541 | PR_kwDOBm6k_c5XWhWF | 2128 | closed | 0 | Bump blacken-docs, furo, blacken-docs | 49699333 | Bumps the python-packages group with 3 updates: [sphinx](https://github.com/sphinx-doc/sphinx), [furo](https://github.com/pradyunsg/furo) and [blacken-docs](https://github.com/asottile/blacken-docs). Updates `sphinx` from 6.1.3 to 7.1.2 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/sphinx-doc/sphinx/releases">sphinx's releases</a>.</em></p> <blockquote> <h2>Sphinx 7.1.2</h2> <p>Changelog: <a href="https://www.sphinx-doc.org/en/master/changes.html">https://www.sphinx-doc.org/en/master/changes.html</a></p> <h2>Sphinx 7.1.1</h2> <p>Changelog: <a href="https://www.sphinx-doc.org/en/master/changes.html">https://www.sphinx-doc.org/en/master/changes.html</a></p> <h2>Sphinx 7.1.0</h2> <p>Changelog: <a href="https://www.sphinx-doc.org/en/master/changes.html">https://www.sphinx-doc.org/en/master/changes.html</a></p> <h2>v7.0.1</h2> <p>Changelog: <a href="https://www.sphinx-doc.org/en/master/changes.html">https://www.sphinx-doc.org/en/master/changes.html</a></p> <h2>v7.0.0</h2> <p>Changelog: <a href="https://www.sphinx-doc.org/en/master/changes.html">https://www.sphinx-doc.org/en/master/changes.html</a></p> <h2>v7.0.0rc1</h2> <p>Changelog: <a href="https://www.sphinx-doc.org/en/master/changes.html">https://www.sphinx-doc.org/en/master/changes.html</a></p> <h2>v6.2.1</h2> <p>Changelog: <a href="https://www.sphinx-doc.org/en/master/changes.html">https://www.sphinx-doc.org/en/master/changes.html</a></p> <h2>v6.2.0</h2> <p>Changelog: <a href="https://www.sphinx-doc.org/en/master/changes.html">https://www.sphinx-doc.org/en/master/changes.html</a></p> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/sphinx-doc/sphinx/blob/master/CHANGES">sphinx's changelog</a>.</em></p> <blockquote> <h1>Release 7.1.2 (released Aug 02, 2023)</h1> <h2>Bugs fixed</h2> <ul> <li><a href="https://redirect.github.com/sphinx-doc/sphinx/issues/11542">#11542</a>: linkcheck: Properly respect :confval:<code>linkcheck_anchors</code> and do not spurious… | 2023-08-07T15:50:40Z | 2023-08-07T16:19:25Z | 2023-08-07T16:19:24Z | 2023-08-07T16:19:24Z | 5139c0886a7f6bb94d317ba0665aa6e728716028 | 0 | 935d336884f4f2c900ebec7b799693ef51d337fb | adf54f5c808c16e9ad812c3a4376f35cf829a93c | CONTRIBUTOR | 107914493 | https://github.com/simonw/datasette/pull/2128 | ||||
1445438054 | PR_kwDOCGYnMM5WJ6Jm | 573 | closed | 0 | feat: Implement a prepare_connection plugin hook | 15178711 | Just like the [Datasette prepare_connection hook](https://docs.datasette.io/en/stable/plugin_hooks.html#prepare-connection-conn-database-datasette), this PR adds a similar hook for the `sqlite-utils` plugin system. The sole argument is `conn`, since I don't believe a `database` or `datasette` argument would be relevant here. I want to do this so I can release `sqlite-utils` plugins for my [SQLite extensions](https://github.com/asg017/sqlite-ecosystem), similar to the Datasette plugins I've release for them. An example plugin: https://gist.github.com/asg017/d7cdf0d56e2be87efda28cebee27fa3c ```bash $ sqlite-utils install https://gist.github.com/asg017/d7cdf0d56e2be87efda28cebee27fa3c/archive/5f5ad549a40860787629c69ca120a08c32519e99.zip $ sqlite-utils memory 'select hello("alex") as response' [{"response": "Hello, alex!"}] ``` Refs: - #574 <!-- readthedocs-preview sqlite-utils start --> ---- :books: Documentation preview :books:: https://sqlite-utils--573.org.readthedocs.build/en/573/ <!-- readthedocs-preview sqlite-utils end --> | 2023-07-22T22:48:44Z | 2023-07-22T22:59:09Z | 2023-07-22T22:59:09Z | 2023-07-22T22:59:09Z | 3f80a026983d3e634f05a46f2a6da162b5139dd9 | 0 | faf398fe075f60929337d3cd0f12309fc4229a3c | 091c63cfbf7b40e99e2017a3c37619c7689cc447 | CONTRIBUTOR | 140912432 | https://github.com/simonw/sqlite-utils/pull/573 | ||||
1429431050 | PR_kwDOBm6k_c5VM2MK | 2099 | closed | 0 | Bump black from 23.3.0 to 23.7.0 | 49699333 | Bumps [black](https://github.com/psf/black) from 23.3.0 to 23.7.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/psf/black/releases">black's releases</a>.</em></p> <blockquote> <h2>23.7.0</h2> <h3>Highlights</h3> <ul> <li>Runtime support for Python 3.7 has been removed. Formatting 3.7 code will still be supported until further notice (<a href="https://redirect.github.com/psf/black/issues/3765">#3765</a>)</li> </ul> <h3>Stable style</h3> <ul> <li>Fix a bug where an illegal trailing comma was added to return type annotations using PEP 604 unions (<a href="https://redirect.github.com/psf/black/issues/3735">#3735</a>)</li> <li>Fix several bugs and crashes where comments in stub files were removed or mishandled under some circumstances (<a href="https://redirect.github.com/psf/black/issues/3745">#3745</a>)</li> <li>Fix a crash with multi-line magic comments like <code>type: ignore</code> within parentheses (<a href="https://redirect.github.com/psf/black/issues/3740">#3740</a>)</li> <li>Fix error in AST validation when <em>Black</em> removes trailing whitespace in a type comment (<a href="https://redirect.github.com/psf/black/issues/3773">#3773</a>)</li> </ul> <h3>Preview style</h3> <ul> <li>Implicitly concatenated strings used as function args are no longer wrapped inside parentheses (<a href="https://redirect.github.com/psf/black/issues/3640">#3640</a>)</li> <li>Remove blank lines between a class definition and its docstring (<a href="https://redirect.github.com/psf/black/issues/3692">#3692</a>)</li> </ul> <h3>Configuration</h3> <ul> <li>The <code>--workers</code> argument to <em>Black</em> can now be specified via the <code>BLACK_NUM_WORKERS</code> environment variable (<a href="https://redirect.github.com/psf/black/issues/3743">#3743</a>)</li> <li><code>.pytest_cache</code>, <code>.ruff_cache</code> and <code>.vscode</code> are now excluded by default (<a href="https://redirect.github.com/psf/black/issues/3691">#3691</a>)</li> <li>Fix <em>Black</em> not honouring <code>p… | 2023-07-11T13:05:53Z | 2023-07-21T21:19:25Z | 2023-07-21T21:19:24Z | 2023-07-21T21:19:24Z | 3a51ca901427ac93b0ed0638fd1f82fb647a299a | 0 | 2761e4db2429e5d5588d8d1e54f30a6aafa7456b | 0f7192b6154edb576c41b55bd3f2a3f53e5f436a | CONTRIBUTOR | 107914493 | https://github.com/simonw/datasette/pull/2099 | ||||
1392480869 | PR_kwDOBm6k_c5S_5Jl | 2083 | closed | 0 | Bump blacken-docs from 1.13.0 to 1.14.0 | 49699333 | Bumps [blacken-docs](https://github.com/asottile/blacken-docs) from 1.13.0 to 1.14.0. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/adamchainz/blacken-docs/blob/main/CHANGELOG.rst">blacken-docs's changelog</a>.</em></p> <blockquote> <h2>1.14.0 (2023-06-13)</h2> <ul> <li>Support Python 3.12.</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/adamchainz/blacken-docs/commit/4b94add9bc83d772ae5e31a679a18609c1750513"><code>4b94add</code></a> Version 1.14.0</li> <li><a href="https://github.com/adamchainz/blacken-docs/commit/292cb18828c73dfa5273c88ce261b453fb9fdf43"><code>292cb18</code></a> Support Python 3.12 (<a href="https://redirect.github.com/asottile/blacken-docs/issues/251">#251</a>)</li> <li><a href="https://github.com/adamchainz/blacken-docs/commit/72ecf2c719027fd464f5561d4ab119f736e8a4ad"><code>72ecf2c</code></a> [pre-commit.ci] pre-commit autoupdate (<a href="https://redirect.github.com/asottile/blacken-docs/issues/249">#249</a>)</li> <li><a href="https://github.com/adamchainz/blacken-docs/commit/ea8f1ca88f2f0a58371bb07dab9c647d56d5b3ed"><code>ea8f1ca</code></a> Upgrade requirements (<a href="https://redirect.github.com/asottile/blacken-docs/issues/248">#248</a>)</li> <li><a href="https://github.com/adamchainz/blacken-docs/commit/9979d7a78be5b7749ebb000f10f4515e5dc9a574"><code>9979d7a</code></a> Upgrade requirements (<a href="https://redirect.github.com/asottile/blacken-docs/issues/247">#247</a>)</li> <li><a href="https://github.com/adamchainz/blacken-docs/commit/7b71075ceb458be255e24da587c0275818b51faa"><code>7b71075</code></a> [pre-commit.ci] pre-commit autoupdate (<a href="https://redirect.github.com/asottile/blacken-docs/issues/245">#245</a>)</li> <li><a href="https://github.com/adamchainz/blacken-docs/commit/6280868a8b944193e72436bb467749a21b790d7c"><code>6280868</code></a> [pre-commit.ci] pre-commit autoupdate (<a href="https://redirect.github.com/asottile/blacken-docs/issues/244">#244</a>)</li> <li><a hr… | 2023-06-14T13:57:52Z | 2023-06-29T14:31:55Z | 2023-06-29T14:31:54Z | 2023-06-29T14:31:54Z | ede62036180993dbd9d4e5d280fc21c183cda1c3 | 0 | caee23e9ca8cbd4d189070188f90eabf97008b59 | dda99fc09fb0b5523948f6d481c6c051c1c7b5de | CONTRIBUTOR | 107914493 | https://github.com/simonw/datasette/pull/2083 | ||||
1406821147 | PR_kwDOCGYnMM5T2mMb | 560 | closed | 0 | Use sqlean if available in environment | 9599 | Refs: - #559 <!-- readthedocs-preview sqlite-utils start --> ---- :books: Documentation preview :books:: https://sqlite-utils--560.org.readthedocs.build/en/560/ <!-- readthedocs-preview sqlite-utils end --> | 2023-06-25T19:48:48Z | 2023-06-26T08:21:00Z | 2023-06-25T23:25:51Z | 2023-06-25T23:25:51Z | f5c63088e1454811ce8361208b72297408eb5237 | 0 | 5e7d27e5df024ce1f45e3a850c4e0f65e765cccd | 2747257a3334d55e890b40ec58fada57ae8cfbfd | OWNER | 140912432 | https://github.com/simonw/sqlite-utils/pull/560 | ||||
1365439700 | PR_kwDOBm6k_c5RYvTU | 2080 | closed | 0 | New View base class | 9599 | Refs: - #2078 TODO: - [x] Teach router layer how to handle this - [x] Use it for something <!-- readthedocs-preview datasette start --> ---- :books: Documentation preview :books:: https://datasette--2080.org.readthedocs.build/en/2080/ <!-- readthedocs-preview datasette end --> | 2023-05-25T23:22:55Z | 2023-05-26T00:18:45Z | 2023-05-26T00:18:44Z | 2023-05-26T00:18:44Z | dda99fc09fb0b5523948f6d481c6c051c1c7b5de | 0 | e990fbc00ef36c022986432e7706b3ad1c9c68a1 | b49fa446d683ddcaf6faf2944dacc0d866bf2d70 | OWNER | 107914493 | https://github.com/simonw/datasette/pull/2080 | ||||
1358321208 | PR_kwDOCGYnMM5Q9lY4 | 553 | closed | 0 | Reformatted CLI examples in docs | 9599 | Refs: - #551 <!-- readthedocs-preview sqlite-utils start --> ---- :books: Documentation preview :books:: https://sqlite-utils--553.org.readthedocs.build/en/553/ <!-- readthedocs-preview sqlite-utils end --> | 2023-05-21T20:44:34Z | 2023-05-21T20:57:27Z | 2023-05-21T20:57:23Z | 2023-05-21T20:57:22Z | d8fe1b0d899faaaa3d4714a39328f4c24932278f | 0 | 21036a5084a2c846a05feb6bced3111d849bbe3c | e240133b11588d31dc22c632f7a7ca636c72978d | OWNER | 140912432 | https://github.com/simonw/sqlite-utils/pull/553 | ||||
1358282799 | PR_kwDOCGYnMM5Q9cAv | 549 | closed | 0 | TUI powered by Trogon | 9599 | Refs: - #545 <!-- readthedocs-preview sqlite-utils start --> ---- :books: Documentation preview :books:: https://sqlite-utils--549.org.readthedocs.build/en/549/ <!-- readthedocs-preview sqlite-utils end --> | 2023-05-21T17:55:42Z | 2023-05-21T18:42:00Z | 2023-05-21T18:41:56Z | 2023-05-21T18:41:56Z | 718b0cba9b32d97a41bcf9757c97fe1d058da81c | 0 | 948692a94b22852b3147abebac9d719b69320b57 | e8c5b042e49c627aefd620c8d4b1c84eb8677f73 | OWNER | 140912432 | https://github.com/simonw/sqlite-utils/pull/549 | ||||
1358254580 | PR_kwDOCGYnMM5Q9VH0 | 546 | closed | 0 | Analyze tables options: --common-limit, --no-most, --no-least | 9599 | Refs #544 - [x] Documentation for CLI options - [x] Documentation for new Python API parameters: `most_common: bool` and `least_common: bool` - [x] Tests for CLI - [x] Tests for Python API | 2023-05-21T15:54:39Z | 2023-05-21T16:19:30Z | 2023-05-21T16:19:30Z | 2023-05-21T16:19:30Z | d2a7b15b2b930fe384e1f1715fc4af23386f4935 | 0 | 2eca17d46eca2cff52c78553085ec64d9029c969 | e047cc32e9d5de7025d4d3c16554d4290f4bd3d1 | OWNER | 140912432 | https://github.com/simonw/sqlite-utils/pull/546 | ||||
1234321667 | PR_kwDOCGYnMM5JkkED | 526 | closed | 0 | Fix repeated calls to `Table.convert()` | 167893 | Fixes #525. All tests pass. There's perhaps a better way to name lambdas? There could be a collision if a caller passes a function with name like `lambda_123456`. SQLite [documentation](https://www.sqlite.org/appfunc.html) is a little, ah, lite on function name specs. If there is a character that can be used in place of underscore in a SQLite function name that is not permitted in a Python function identifier then that could be a good way to prevent accidental collisions. (I tried dash, colon, dot, no joy). Otherwise, there is little chance of this happening and if it should happen the risk is mitigated by now throwing an exception in the case of a (name, arity) collision without `replace=True`. <!-- readthedocs-preview sqlite-utils start --> ---- :books: Documentation preview :books:: https://sqlite-utils--526.org.readthedocs.build/en/526/ <!-- readthedocs-preview sqlite-utils end --> | 2023-02-09T00:14:49Z | 2023-05-08T21:56:05Z | 2023-05-08T21:53:58Z | 2023-05-08T21:53:58Z | 02f5c4d69d7b4baebde015c56e5bc62923f33314 | 0 | 486e0cc1cd67e98c22d1f125403144cdedfa3d58 | fc221f9b62ed8624b1d2098e564f525c84497969 | CONTRIBUTOR | 140912432 | https://github.com/simonw/sqlite-utils/pull/526 | ||||
1173049178 | PR_kwDOCGYnMM5F609a | 519 | closed | 0 | Fixes breaking DEFAULT values | 13819005 | Fixes #509, Fixes #336 Thanks for the great library! I fixed a bug that `sqlite-utils transform` breaks DEFAULT values. All tests already present passed with no changes, and I added some tests for this PR. In #509 case, fixed here. ```shell $ sqlite3 test.db << EOF CREATE TABLE mytable ( col1 TEXT DEFAULT 'foo', col2 TEXT DEFAULT (STRFTIME('%Y-%m-%d %H:%M:%f', 'NOW')) ) EOF $ sqlite3 test.db "SELECT sql FROM sqlite_master WHERE name = 'mytable';" CREATE TABLE mytable ( col1 TEXT DEFAULT 'foo', col2 TEXT DEFAULT (STRFTIME('%Y-%m-%d %H:%M:%f', 'NOW')) ) $ sqlite3 test.db "INSERT INTO mytable DEFAULT VALUES; SELECT * FROM mytable;" foo|2022-12-21 01:15:39.669 $ sqlite-utils transform test.db mytable --rename col1 renamedcol1 $ sqlite3 test.db "SELECT sql FROM sqlite_master WHERE name = 'mytable';" CREATE TABLE "mytable" ( [renamedcol1] TEXT DEFAULT 'foo', [col2] TEXT DEFAULT (STRFTIME('%Y-%m-%d %H:%M:%f', 'NOW')) # ← Non-String Value ) $ sqlite3 test.db "INSERT INTO mytable DEFAULT VALUES; SELECT * FROM mytable;" foo|2022-12-21 01:15:39.669 foo|2022-12-21 01:15:56.432 ``` And #336 case also fixed. Special values are described [here](https://www.sqlite.org/lang_createtable.html). > 3.2. The DEFAULT clause > ... A default value may also be one of the special case-independent keywords CURRENT_TIME, CURRENT_DATE or CURRENT_TIMESTAMP. ```shell $ echo 'create table bar (baz text, created_at timestamp default CURRENT_TIMESTAMP)' | sqlite3 foo.db $ sqlite3 foo.db SQLite version 3.39.5 2022-10-14 20:58:05 Enter ".help" for usage hints. sqlite> .schema bar CREATE TABLE bar (baz text, created_at timestamp default CURRENT_TIMESTAMP); sqlite> .exit $ sqlite-utils transform foo.db bar --column-order baz $ sqlite3 foo.db SQLite version 3.39.5 2022-10-14 20:58:05 Enter ".help" for usage hints. sqlite> .schema bar CREATE TABLE IF NOT EXISTS "bar" ( [baz] TEXT, [created_at] FLOAT DEFAULT CURRENT_TIMESTAMP ); sqlite> .exit $ sqlite… | 2022-12-21T01:27:52Z | 2023-05-08T21:13:37Z | 2023-05-08T21:13:37Z | 2023-05-08T21:13:37Z | 6500fed8b2085869b9714ce3a08c30f61dc829ad | 0 | 5e5c262fab69eb3c470afa57fc52d3d7d8beee7a | fc221f9b62ed8624b1d2098e564f525c84497969 | CONTRIBUTOR | 140912432 | https://github.com/simonw/sqlite-utils/pull/519 | ||||
1311438738 | PR_kwDOCGYnMM5OKveS | 537 | closed | 0 | Support self-referencing FKs in `Table.create` | 544011 | <!-- readthedocs-preview sqlite-utils start --> ---- :books: Documentation preview :books:: https://sqlite-utils--537.org.readthedocs.build/en/537/ <!-- readthedocs-preview sqlite-utils end --> | 2023-04-12T20:26:58Z | 2023-05-08T22:45:33Z | 2023-05-08T21:10:01Z | 2023-05-08T21:10:01Z | 39ef137e6760d385dc48d03eccf9b89943636fc7 | 0 | a75abeb61b91a28650d3b9933e7ec80ad0d92529 | c0251cc9271260de73b4227859a51fab9b4cb745 | CONTRIBUTOR | 140912432 | https://github.com/simonw/sqlite-utils/pull/537 | ||||
1306498393 | PR_kwDOCGYnMM5N35VZ | 536 | closed | 0 | Add paths for homebrew on Apple silicon | 25778 | Does what it says and nothing else. This is the same set of paths as Datasette uses. <!-- readthedocs-preview sqlite-utils start --> ---- :books: Documentation preview :books:: https://sqlite-utils--536.org.readthedocs.build/en/536/ <!-- readthedocs-preview sqlite-utils end --> | 2023-04-08T13:34:21Z | 2023-04-13T01:44:43Z | 2023-04-13T01:44:43Z | 2023-04-13T01:44:43Z | 8f9a729e8aff972cb18de25b40f4113e26bbc758 | 0 | cea05dc5eab8d10fbd8943e615d2ab0dceff863c | c0251cc9271260de73b4227859a51fab9b4cb745 | CONTRIBUTOR | 140912432 | https://github.com/simonw/sqlite-utils/pull/536 | ||||
1294011106 | PR_kwDOBm6k_c5NIQri | 2047 | closed | 0 | Bump black from 22.12.0 to 23.3.0 | 49699333 | Bumps [black](https://github.com/psf/black) from 22.12.0 to 23.3.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/psf/black/releases">black's releases</a>.</em></p> <blockquote> <h2>23.3.0</h2> <h3>Highlights</h3> <p>This release fixes a longstanding confusing behavior in Black's GitHub action, where the version of the action did not determine the version of Black being run (issue <a href="https://redirect.github.com/psf/black/issues/3382">#3382</a>). In addition, there is a small bug fix around imports and a number of improvements to the preview style.</p> <p>Please try out the <a href="https://black.readthedocs.io/en/stable/the_black_code_style/future_style.html#preview-style">preview style</a> with <code>black --preview</code> and tell us your feedback. All changes in the preview style are expected to become part of Black's stable style in January 2024.</p> <h3>Stable style</h3> <ul> <li>Import lines with <code># fmt: skip</code> and <code># fmt: off</code> no longer have an extra blank line added when they are right after another import line (<a href="https://redirect.github.com/psf/black/issues/3610">#3610</a>)</li> </ul> <h3>Preview style</h3> <ul> <li>Add trailing commas to collection literals even if there's a comment after the last entry (<a href="https://redirect.github.com/psf/black/issues/3393">#3393</a>)</li> <li><code>async def</code>, <code>async for</code>, and <code>async with</code> statements are now formatted consistently compared to their non-async version. (<a href="https://redirect.github.com/psf/black/issues/3609">#3609</a>)</li> <li><code>with</code> statements that contain two context managers will be consistently wrapped in parentheses (<a href="https://redirect.github.com/psf/black/issues/3589">#3589</a>)</li> <li>Let string splitters respect <a href="https://www.unicode.org/reports/tr11/">East Asian Width</a> (<a href="https://redirect.github.com/psf/black/issues/3445">#3445</a>)</li> <li>Now long string literals can be split after East Asi… | 2023-03-29T06:09:06Z | 2023-03-29T06:12:21Z | 2023-03-29T06:12:05Z | 2023-03-29T06:12:05Z | 30c88e3570ba3febf232c7ad429d7045ea8a9915 | 0 | dff8cf08625bbf4526b400f53da9f3ceba62fa97 | bbd5489dbc440c67c69396e7f752584a32d2cfbe | CONTRIBUTOR | 107914493 | https://github.com/simonw/datasette/pull/2047 | ||||
1198982240 | PR_kwDOBm6k_c5HdwRg | 1992 | closed | 0 | Bump blacken-docs from 1.12.1 to 1.13.0 | 49699333 | Bumps [blacken-docs](https://github.com/asottile/blacken-docs) from 1.12.1 to 1.13.0. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/adamchainz/blacken-docs/blob/main/HISTORY.rst">blacken-docs's changelog</a>.</em></p> <blockquote> <h2>1.13.0 (2023-01-16)</h2> <ul> <li> <p>Note Adam Johnson is new maintainer.</p> </li> <li> <p>Require Black 22.1.0+.</p> </li> <li> <p>Add <code>--rst-literal-blocks</code> option, to also format text in reStructuredText literal blocks, starting with <code>::</code>. Sphinx highlights these with the project’s default language, which defaults to Python.</p> </li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/adamchainz/blacken-docs/commit/1238e1d8f03e96a7ed9ad44937ea4348eb6b11b8"><code>1238e1d</code></a> Version 1.13.0</li> <li><a href="https://github.com/adamchainz/blacken-docs/commit/4e6dc07c9bd600d1bf274a15e314ef26596bf07d"><code>4e6dc07</code></a> Fix setup.cfg long_description_content_type</li> <li><a href="https://github.com/adamchainz/blacken-docs/commit/579a71a3572a721f0f910b0231933cce0215dd09"><code>579a71a</code></a> Standardize setup.cfg (<a href="https://github-redirect.dependabot.com/asottile/blacken-docs/issues/212">#212</a>)</li> <li><a href="https://github.com/adamchainz/blacken-docs/commit/a6b2ba04face950d02af581ab147942b620fdb27"><code>a6b2ba0</code></a> Changelog entry about change in maintenance</li> <li><a href="https://github.com/adamchainz/blacken-docs/commit/3cf8b9a15c1f0dd86a6cd50e48eec1000b88059d"><code>3cf8b9a</code></a> Standard pre-commit config (<a href="https://github-redirect.dependabot.com/asottile/blacken-docs/issues/211">#211</a>)</li> <li><a href="https://github.com/adamchainz/blacken-docs/commit/bcd36699e185fc0376c951650fe0cf13fa526e15"><code>bcd3669</code></a> Standardize test file name (<a href="https://github-redirect.dependabot.com/asottile/blacken-docs/issues/210">#210</a>)</li> <li><a href="https://github.com/adamchainz/blacken-docs/commit/6d17… | 2023-01-16T13:05:05Z | 2023-03-29T06:11:35Z | 2023-03-29T06:11:34Z | 2023-03-29T06:11:34Z | bbd5489dbc440c67c69396e7f752584a32d2cfbe | 0 | 64dd698df1d38903a5791f876c7c01e7dd6d04f4 | d52402447ea5eb5a3f084e4f85a45675d34eb4da | CONTRIBUTOR | 107914493 | https://github.com/simonw/datasette/pull/1992 | ||||
1193778792 | PR_kwDOBm6k_c5HJ55o | 1986 | closed | 0 | Bump sphinx from 6.1.2 to 6.1.3 | 49699333 | Bumps [sphinx](https://github.com/sphinx-doc/sphinx) from 6.1.2 to 6.1.3. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/sphinx-doc/sphinx/releases">sphinx's releases</a>.</em></p> <blockquote> <h2>v6.1.3</h2> <p>Changelog: <a href="https://www.sphinx-doc.org/en/master/changes.html">https://www.sphinx-doc.org/en/master/changes.html</a></p> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/sphinx-doc/sphinx/blob/master/CHANGES">sphinx's changelog</a>.</em></p> <blockquote> <h1>Release 6.1.3 (released Jan 10, 2023)</h1> <h2>Bugs fixed</h2> <ul> <li><a href="https://github-redirect.dependabot.com/sphinx-doc/sphinx/issues/11116">#11116</a>: Reverted to previous Sphinx 5 node copying method</li> <li><a href="https://github-redirect.dependabot.com/sphinx-doc/sphinx/issues/11117">#11117</a>: Reverted changes to parallel image processing from Sphinx 6.1.0</li> <li><a href="https://github-redirect.dependabot.com/sphinx-doc/sphinx/issues/11119">#11119</a>: Supress <code>ValueError</code> in the <code>linkcheck</code> builder</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/sphinx-doc/sphinx/commit/776d01eb6229f5d5384da17fc15df9d50fa8e87a"><code>776d01e</code></a> Bump to 6.1.3 final</li> <li><a href="https://github.com/sphinx-doc/sphinx/commit/a2e922ac6c58134d8ad19888de93d52c8a1de669"><code>a2e922a</code></a> CHANGES for Sphinx 6.1.3</li> <li><a href="https://github.com/sphinx-doc/sphinx/commit/31162a9b6335f2abce9ffb90b905a314f6bdfe6b"><code>31162a9</code></a> Handle exceptions for <code>get_node_source</code> and <code>get_node_line</code></li> <li><a href="https://github.com/sphinx-doc/sphinx/commit/dcb4429abacda015f98875fe9489ced696155bd7"><code>dcb4429</code></a> Restore Sphinx 5 <code>nodes.Element</code> copying behaviour</li> <li><a href="https://github.com/sphinx-doc/sphinx/commit/2a7c40d07f4b0e0fd2a4bc942e74634c2df24dee"><code>2a7c40d</code></a> Undo… | 2023-01-11T13:02:36Z | 2023-03-29T06:09:50Z | 2023-03-29T06:09:49Z | 2023-03-29T06:09:49Z | d52402447ea5eb5a3f084e4f85a45675d34eb4da | 0 | 82983b6c69c687f76e1ced0a07e0d590c3a97574 | 848a9a420de9b50a7c862db7fb34d930835bee89 | CONTRIBUTOR | 107914493 | https://github.com/simonw/datasette/pull/1986 | ||||
1293066318 | PR_kwDOBm6k_c5NEqBO | 2046 | closed | 0 | Bump furo from 2022.12.7 to 2023.3.27 | 49699333 | Bumps [furo](https://github.com/pradyunsg/furo) from 2022.12.7 to 2023.3.27. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pradyunsg/furo/blob/main/docs/changelog.md">furo's changelog</a>.</em></p> <blockquote> <h1>Changelog</h1> <!-- raw HTML omitted --> <h2>2023.03.27 -- Tasty Tangerine</h2> <ul> <li>Regenerate with newer version of sphinx-theme-builder, to fix RECORD hashes.</li> <li>Add missing class to Font Awesome examples</li> </ul> <h2>2023.03.23 -- Sassy Saffron</h2> <ul> <li>Update Python version classifiers.</li> <li>Increase the icon size in mobile header.</li> <li>Increase admonition title bg opacity.</li> <li>Change the default API background to transparent.</li> <li>Transition the API background change.</li> <li>Remove the "indent" of API entries which have a background.</li> <li>Break long inline code literals.</li> </ul> <h2>2022.12.07 -- Reverent Raspberry</h2> <ul> <li>✨ Add support for Sphinx 6.</li> <li>✨ Improve footnote presentation with docutils 0.18+.</li> <li>Drop support for Sphinx 4.</li> <li>Improve documentation about what the edit button does.</li> <li>Improve handling of empty-flexboxes for better print experience on Chrome.</li> <li>Improve styling for inline signatures.</li> <li>Replace the <code>meta</code> generator tag with a comment.</li> <li>Tweak labels with icons to prevent users selecting icons as text on touch.</li> </ul> <h2>2022.09.29 -- Quaint Quartz</h2> <ul> <li>Add ability to set arbitrary URLs for edit button.</li> <li>Add support for aligning text in MyST-parser generated tables.</li> </ul> <h2>2022.09.15 -- Pragmatic Pistachio</h2> <ul> <li>Add a minimum version constraint on pygments.</li> <li>Add an explicit dependency on <code>sass</code>.</li> <li>Change right sidebar title from "Contents" to "On this page".</li> <li>Correctly position sidebars on small screens.</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <… | 2023-03-28T13:58:14Z | 2023-03-29T06:08:02Z | 2023-03-29T06:08:01Z | 2023-03-29T06:08:01Z | 848a9a420de9b50a7c862db7fb34d930835bee89 | 0 | a8166e96eecbab1064ef7a373699320415d839a5 | c025b0180fe344e4f28177ecd7cf388d492d3064 | CONTRIBUTOR | 107914493 | https://github.com/simonw/datasette/pull/2046 | ||||
1212277427 | PR_kwDOBm6k_c5IQeKz | 1999 | closed | 0 | ?_extra= support (draft) | 9599 | Refs: - #262 <!-- readthedocs-preview datasette start --> ---- :books: Documentation preview :books:: https://datasette--1999.org.readthedocs.build/en/1999/ <!-- readthedocs-preview datasette end --> | 2023-01-21T04:55:18Z | 2023-03-22T22:49:41Z | 2023-03-22T22:49:40Z | 2023-03-22T22:49:40Z | d97e82df3c8a3f2e97038d7080167be9bb74a68d | 0 | 69a31cd5b61f0b62938efdeec5972090f1a1a508 | 56b0758a5fbf85d01ff80a40c9b028469d7bb65f | OWNER | 107914493 | https://github.com/simonw/datasette/pull/1999 | ||||
1246416723 | PR_kwDOBm6k_c5KSs9T | 2028 | closed | 0 | add Python 3.11 classifier | 614233 | Python 3.11 is tested in CI and is used in the docker image, so add the Python 3.11 Trove classifier. <!-- readthedocs-preview datasette start --> ---- :books: Documentation preview :books:: https://datasette--2028.org.readthedocs.build/en/2028/ <!-- readthedocs-preview datasette end --> | 2023-02-19T20:16:03Z | 2023-03-06T21:01:20Z | 2023-03-06T21:01:19Z | 2023-03-06T21:01:19Z | a53b893c46453f35decc8c145c138671cee6140c | 0 | a8dde133f996099be9bc927c013d853dd10cd54f | 0b4a28691468b5c758df74fa1d72a823813c96bf | CONTRIBUTOR | 107914493 | https://github.com/simonw/datasette/pull/2028 | ||||
1191716406 | PR_kwDOBm6k_c5HCCY2 | 1984 | closed | 0 | Upgrade Sphinx | 9599 | Refs #1971 <!-- readthedocs-preview datasette start --> ---- :books: Documentation preview :books:: https://datasette--1984.org.readthedocs.build/en/1984/ <!-- readthedocs-preview datasette end --> | 2023-01-10T02:00:40Z | 2023-01-10T02:02:33Z | 2023-01-10T02:02:33Z | 2023-01-10T02:02:32Z | 8e7073404379d79a2d269167a12bbb58439edd39 | 0 | 0c8b3f5ca1385c804c696f1fa61c24de29ae4755 | 4880638f13c3a1abc53f395cde39ac848daf416d | OWNER | 107914493 | https://github.com/simonw/datasette/pull/1984 | ||||
1170816476 | PR_kwDOBm6k_c5FyT3c | 1967 | closed | 0 | Add favicon to documentation | 1839645 | I've been browsing the datasette documentation and found it hard to quickly locate tabs with many of them open, because it does not ship a favicon. So this PR: - Grabs the favicon `.png` from datasette itself[^1] - Adds it to the `_static/` folder - Sets `html_favicon` to load it in the docs [^1]: I also learned that Chrome can fetch favicons as an internal service! See `chrome://favicon/https://datasette.io/tools/github-to-sqlite`. | 2022-12-19T14:01:04Z | 2022-12-31T19:15:51Z | 2022-12-31T19:00:31Z | 2022-12-31T19:00:31Z | 994ce46ed4a5d680bee58242efd95181946c25e9 | 0 | ac64f6fe6aeb1941d01f862999a8b9d4e95f4991 | e03aed00026cc2e59c09ca41f69a247e1a85cc89 | CONTRIBUTOR | 107914493 | https://github.com/simonw/datasette/pull/1967 | ||||
1169793638 | PR_kwDOBm6k_c5FuaJm | 1965 | closed | 0 | Detect server start/stop more reliably. | 11321 | This is useful, especially in testing, since your test hosts might not reliabliy start the server within two seconds, so we do a definite check before progressing. By the same token, after `kill $server_pid` wait for the pid to be gone from the process list. Since now the script can end prematurely, I also added a cleanup function to make sure the temporary certs are removed in any case. n.b. this could also be done with the use of `trap 'fn' ERR` but that felt like a bit too much magic for this short a script. <!-- readthedocs-preview datasette start --> ---- :books: Documentation preview :books:: https://datasette--1965.org.readthedocs.build/en/1965/ <!-- readthedocs-preview datasette end --> | 2022-12-18T10:03:42Z | 2022-12-20T19:08:26Z | 2022-12-18T16:01:51Z | 2022-12-18T16:01:51Z | e03aed00026cc2e59c09ca41f69a247e1a85cc89 | 0 | 6a58fc71d481d27ef28a75b026b47713ca88eeec | a21c00b54dd6e0ecb17c60024fb1b55729c5d21e | CONTRIBUTOR | 107914493 | https://github.com/simonw/datasette/pull/1965 | ||||
1167432070 | PR_kwDOBm6k_c5FlZmG | 1960 | closed | 0 | Port as many tests as possible to async def tests against ds_client | 9599 | Refs: - #1959 <!-- readthedocs-preview datasette start --> ---- :books: Documentation preview :books:: https://datasette--1960.org.readthedocs.build/en/1960/ <!-- readthedocs-preview datasette end --> | 2022-12-15T21:45:53Z | 2022-12-17T21:47:56Z | 2022-12-17T21:47:55Z | 2022-12-17T21:47:55Z | 89cffcf14cda830871c8ee81742eaa1e2dff017b | 0 | f42bca8fc2657cecde05eca644c28fac7c28101f | 0b68996cc511b3a801f0cd0157bd66332d75f46f | OWNER | 107914493 | https://github.com/simonw/datasette/pull/1960 | ||||
1167644140 | PR_kwDOBm6k_c5FmNXs | 1961 | closed | 0 | Use click.echo() instead of print() for --root option | 9599 | This ensures the URL is output correctly when running under Docker. Closes #1958 <!-- readthedocs-preview datasette start --> ---- :books: Documentation preview :books:: https://datasette--1961.org.readthedocs.build/en/1961/ <!-- readthedocs-preview datasette end --> | 2022-12-16T00:54:56Z | 2022-12-16T00:55:19Z | 2022-12-16T00:55:18Z | 2022-12-16T00:55:18Z | 013496862f4d4b441ab61255242b838b24287607 | 0 | 06d20c792f8c872118edd84973308fb3e5137b5e | 0b68996cc511b3a801f0cd0157bd66332d75f46f | OWNER | 107914493 | https://github.com/simonw/datasette/pull/1961 | ||||
1160815750 | PR_kwDOBm6k_c5FMKSG | 1944 | closed | 0 | Bump black from 22.10.0 to 22.12.0 | 49699333 | Bumps [black](https://github.com/psf/black) from 22.10.0 to 22.12.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/psf/black/releases">black's releases</a>.</em></p> <blockquote> <h2>22.12.0</h2> <h3>Preview style</h3> <!-- raw HTML omitted --> <ul> <li>Enforce empty lines before classes and functions with sticky leading comments (<a href="https://github-redirect.dependabot.com/psf/black/issues/3302">#3302</a>)</li> <li>Reformat empty and whitespace-only files as either an empty file (if no newline is present) or as a single newline character (if a newline is present) (<a href="https://github-redirect.dependabot.com/psf/black/issues/3348">#3348</a>)</li> <li>Implicitly concatenated strings used as function args are now wrapped inside parentheses (<a href="https://github-redirect.dependabot.com/psf/black/issues/3307">#3307</a>)</li> <li>Correctly handle trailing commas that are inside a line's leading non-nested parens (<a href="https://github-redirect.dependabot.com/psf/black/issues/3370">#3370</a>)</li> </ul> <h3>Configuration</h3> <!-- raw HTML omitted --> <ul> <li>Fix incorrectly applied <code>.gitignore</code> rules by considering the <code>.gitignore</code> location and the relative path to the target file (<a href="https://github-redirect.dependabot.com/psf/black/issues/3338">#3338</a>)</li> <li>Fix incorrectly ignoring <code>.gitignore</code> presence when more than one source directory is specified (<a href="https://github-redirect.dependabot.com/psf/black/issues/3336">#3336</a>)</li> </ul> <h3>Parser</h3> <!-- raw HTML omitted --> <ul> <li>Parsing support has been added for walruses inside generator expression that are passed as function args (for example, <code>any(match := my_re.match(text) for text in texts)</code>) (<a href="https://github-redirect.dependabot.com/psf/black/issues/3327">#3327</a>).</li> </ul> <h3>Integrations</h3> <!-- raw HTML omitted --> <ul> <li>Vim plugin: Optionally allow using the system installation of Black via <code>let g:black_use… | 2022-12-12T13:05:11Z | 2022-12-13T05:23:31Z | 2022-12-13T05:23:30Z | 2022-12-13T05:23:30Z | d4b98d3924dec625a99236e65b1b169ff957381f | 0 | ac7a52436638ae85f1db0556a382845863546b3d | e539c1c024bc62d88df91d9107cbe37e7f0fe55f | CONTRIBUTOR | 107914493 | https://github.com/simonw/datasette/pull/1944 | ||||
1155365505 | PR_kwDOBm6k_c5E3XqB | 1940 | closed | 0 | register_permissions() plugin hook | 9599 | Refs #1939 From this comment: https://github.com/simonw/datasette/issues/1939#issuecomment-1343872168 - [x] Unit test for the registration plugin hook itself - [x] Use them in `check_permission_actions_are_documented` test in `conftest.py` - [x] Add description field to `Permissions` (and update tests and docs) - [x] Documentation for `datasette.permissions` dictionary - [x] If no `default=` provided in call to `permission_allowed()` then use default from `datasette.permissions` list - [x] Remove `default=` from a bunch of places - [x] Throw an error if two permissions are registered with the same name or abbreviation (but other attributes differ) - [x] Update authentication and permissions documentation to explain that permissions are now registered and have a registered default <!-- readthedocs-preview datasette start --> ---- :books: Documentation preview :books:: https://datasette--1940.org.readthedocs.build/en/1940/ <!-- readthedocs-preview datasette end --> | 2022-12-09T05:09:28Z | 2022-12-13T02:05:55Z | 2022-12-13T02:05:54Z | 2022-12-13T02:05:54Z | 8bf06a76b51bc9ace7cf72cf0cca8f1da7704ea7 | 8711695 | 0 | 94e5c75397a96b86a3349123808cd02cb20f7440 | e539c1c024bc62d88df91d9107cbe37e7f0fe55f | OWNER | 107914493 | https://github.com/simonw/datasette/pull/1940 | |||
1143946542 | PR_kwDOBm6k_c5ELz0u | 1930 | closed | 0 | Typo in JSON API `Updating a row` documentation | 3556 | <!-- readthedocs-preview datasette start --> ---- :books: Documentation preview :books:: https://datasette--1930.org.readthedocs.build/en/1930/ <!-- readthedocs-preview datasette end --> | 2022-12-03T02:22:31Z | 2022-12-08T21:12:35Z | 2022-12-08T21:12:35Z | 2022-12-08T21:12:35Z | e539c1c024bc62d88df91d9107cbe37e7f0fe55f | 0 | 9928ff17b47443f6b51e570ae6116fd472756096 | cab5b60e09e94aca820dbec5308446a88c99ea3d | CONTRIBUTOR | 107914493 | https://github.com/simonw/datasette/pull/1930 | ||||
1151526508 | PR_kwDOBm6k_c5EouZs | 1935 | closed | 0 | Bump furo from 2022.9.29 to 2022.12.7 | 49699333 | Bumps [furo](https://github.com/pradyunsg/furo) from 2022.9.29 to 2022.12.7. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pradyunsg/furo/blob/main/docs/changelog.md">furo's changelog</a>.</em></p> <blockquote> <h1>Changelog</h1> <!-- raw HTML omitted --> <h2>2022.12.07 -- Reverent Raspberry</h2> <ul> <li>✨ Add support for Sphinx 6.</li> <li>✨ Improve footnote presentation with docutils 0.18+.</li> <li>Drop support for Sphinx 4.</li> <li>Improve documentation about what the edit button does.</li> <li>Improve handling of empty-flexboxes for better print experience on Chrome.</li> <li>Improve styling for inline signatures.</li> <li>Replace the <code>meta</code> generator tag with a comment.</li> <li>Tweak labels with icons to prevent users selecting icons as text on touch.</li> </ul> <h2>2022.09.29 -- Quaint Quartz</h2> <ul> <li>Add ability to set arbitrary URLs for edit button.</li> <li>Add support for aligning text in MyST-parser generated tables.</li> </ul> <h2>2022.09.15 -- Pragmatic Pistachio</h2> <ul> <li>Add a minimum version constraint on pygments.</li> <li>Add an explicit dependency on <code>sass</code>.</li> <li>Change right sidebar title from "Contents" to "On this page".</li> <li>Correctly position sidebars on small screens.</li> <li>Correctly select only Furo's own <code>svg</code> in related pages <code>nav</code>.</li> <li>Make numpy-style documentation headers consistent.</li> <li>Retitle the reference section.</li> <li>Update npm dependencies.</li> </ul> <h2>2022.06.21 -- Opulent Opal</h2> <ul> <li>Fix <code>docutils <= 0.17.x</code> compatibility.</li> <li>Bump to the latest Node.js LTS.</li> </ul> <h2>2022.06.04.1 -- Naughty Nickel bugfix</h2> <ul> <li>Fix the URL used in the "Edit this page" for Read the Docs builds.</li> </ul> <h2>2022.06.04 -- Naughty Nickel</h2> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/pradyunsg/fu… | 2022-12-07T13:02:57Z | 2022-12-08T21:12:08Z | 2022-12-08T21:12:07Z | 2022-12-08T21:12:07Z | bffefc7db0c25acb03e3b44ff357d50bb7f04dd7 | 0 | e8ae41e27c5ec3b0738deb536fc206bd4b9ce823 | 93ababe6f7150454d2cf278dae08569e505d2a5b | CONTRIBUTOR | 107914493 | https://github.com/simonw/datasette/pull/1935 | ||||
1144085408 | PR_kwDOBm6k_c5EMVug | 1931 | closed | 0 | /db/table/-/upsert | 9599 | Refs #1878 Still todo: - [x] Support `"return": true` properly for upserts (with tests) - [x] Require both `insert-row` and `update-row` permissions - [x] Tests are going to need to cover both rowid-only and compound primary key tables, including all of the error states - [x] Documentation <!-- readthedocs-preview datasette start --> ---- :books: Documentation preview :books:: https://datasette--1931.org.readthedocs.build/en/1931/ <!-- readthedocs-preview datasette end --> | 2022-12-03T07:01:44Z | 2022-12-08T01:12:17Z | 2022-12-08T01:12:16Z | 2022-12-08T01:12:16Z | 272982e8a6f45700ff93c3917b4688a86de0e672 | 8711695 | 0 | 7cd6fd9f76913196d4f99a194a30e406f33aa363 | 93ababe6f7150454d2cf278dae08569e505d2a5b | OWNER | 107914493 | https://github.com/simonw/datasette/pull/1931 | |||
1139440836 | PR_kwDOBm6k_c5D6nzE | 1912 | closed | 0 | Merge 1.0-dev (with initial write API) back into main | 9599 | See: - #1892 <!-- readthedocs-preview datasette start --> ---- :books: Documentation preview :books:: https://datasette--1912.org.readthedocs.build/en/1912/ <!-- readthedocs-preview datasette end --> | 2022-11-29T19:31:21Z | 2022-11-29T19:39:37Z | 2022-11-29T19:39:36Z | 2022-11-29T19:39:36Z | 07aad511769da9242260c850e8d975cbd8c29552 | 0 | b8fc8e2cd755b9cfc66838bdc1ca9ee87afdce8a | 21f8aab53164a4f096737743d8cc624d2186327a | OWNER | 107914493 | https://github.com/simonw/datasette/pull/1912 | ||||
1125261188 | PR_kwDOBm6k_c5DEh-E | 1898 | closed | 0 | Use DOMContentLoaded instead of load event for CodeMirror initialization | 95570 | Closes #1894 <!-- readthedocs-preview datasette start --> ---- :books: Documentation preview :books:: https://datasette--1898.org.readthedocs.build/en/1898/ <!-- readthedocs-preview datasette end --> | 2022-11-17T00:19:21Z | 2022-11-18T07:29:01Z | 2022-11-18T07:29:01Z | 2022-11-18T07:29:01Z | 3ecd131e57add427d847b614c920c9624bb2e66b | 0 | 5eb4ea45ce6cdc7003fc7c5175977b025b0f111e | 00e233d7a7f6443cb95fb5227c23580c48551cad | CONTRIBUTOR | 107914493 | https://github.com/simonw/datasette/pull/1898 | ||||
1123392399 | PR_kwDOBm6k_c5C9ZuP | 1893 | closed | 0 | Upgrade to CodeMirror 6, add SQL autocomplete | 95570 | In an effort to get closer to table / column autocomplete I took a shot at https://github.com/simonw/datasette/issues/1796. I haven't done a lot of testing but would be curious if this fixes some of the concerns raised in https://github.com/simonw/datasette/issues/1796#issue-1355148385 for example. Done: * Changed to bundling using rollup as per https://codemirror.net/examples/bundle/ * Restored a fromTextArea-like function from https://codemirror.net/docs/migration/ * Removed old JS and CSS files (no external CSS needed anymore as per https://codemirror.net/examples/styling/) * Updated instructions for building the bundle Not done: * cmResize had an error, so commented out the resize handle * Add extraKeys option for shift+enter and tab <!-- readthedocs-preview datasette start --> ---- :books: Documentation preview :books:: https://datasette--1893.org.readthedocs.build/en/1893/ <!-- readthedocs-preview datasette end --> | 2022-11-15T20:52:35Z | 2022-11-16T23:54:02Z | 2022-11-16T23:49:06Z | 2022-11-16T23:49:06Z | ae11fa5887e03376704c22e5d0969c1e0642d8d8 | 0 | f254be4b38936e95e7a7f25866e7c6b0520db96f | 6f610e1d94b7b8ec605b5b7fcb01537f6adf9c5b | CONTRIBUTOR | 107914493 | https://github.com/simonw/datasette/pull/1893 | ||||
1080343782 | PR_kwDOBm6k_c5AZLzm | 1839 | closed | 0 | Bump black from 22.8.0 to 22.10.0 | 49699333 | Bumps [black](https://github.com/psf/black) from 22.8.0 to 22.10.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/psf/black/releases">black's releases</a>.</em></p> <blockquote> <h2>22.10.0</h2> <h3>Highlights</h3> <ul> <li>Runtime support for Python 3.6 has been removed. Formatting 3.6 code will still be supported until further notice.</li> </ul> <h3>Stable style</h3> <ul> <li>Fix a crash when <code># fmt: on</code> is used on a different block level than <code># fmt: off</code> (<a href="https://github-redirect.dependabot.com/psf/black/issues/3281">#3281</a>)</li> </ul> <h3>Preview style</h3> <ul> <li>Fix a crash when formatting some dicts with parenthesis-wrapped long string keys (<a href="https://github-redirect.dependabot.com/psf/black/issues/3262">#3262</a>)</li> </ul> <h3>Configuration</h3> <ul> <li><code>.ipynb_checkpoints</code> directories are now excluded by default (<a href="https://github-redirect.dependabot.com/psf/black/issues/3293">#3293</a>)</li> <li>Add <code>--skip-source-first-line</code> / <code>-x</code> option to ignore the first line of source code while formatting (<a href="https://github-redirect.dependabot.com/psf/black/issues/3299">#3299</a>)</li> </ul> <h3>Packaging</h3> <ul> <li>Executables made with PyInstaller will no longer crash when formatting several files at once on macOS. Native x86-64 executables for macOS are available once again. (<a href="https://github-redirect.dependabot.com/psf/black/issues/3275">#3275</a>)</li> <li>Hatchling is now used as the build backend. This will not have any effect for users who install Black with its wheels from PyPI. (<a href="https://github-redirect.dependabot.com/psf/black/issues/3233">#3233</a>)</li> <li>Faster compiled wheels are now available for CPython 3.11 (<a href="https://github-redirect.dependabot.com/psf/black/issues/3276">#3276</a>)</li> </ul> <h3><em>Blackd</em></h3> <ul> <li>Windows style (CRLF) newlines will be preserved (<a href="https://github-redirect.dependabot.com/psf/black/issu… | 2022-10-07T13:13:41Z | 2022-10-27T20:51:46Z | 2022-10-27T20:51:45Z | 2022-10-27T20:51:45Z | 2c36e45447494cd7505440943367e29ec57c8e72 | 0 | 21da9bebfc4811314a49140b0c31e86b9d05009f | d2ca13b699d441a201c55cb72ff96919d3cd22bf | CONTRIBUTOR | 107914493 | https://github.com/simonw/datasette/pull/1839 | ||||
1079714826 | PR_kwDOBm6k_c5AWyQK | 1837 | closed | 0 | Make hash and size a lazy property | 536941 | Many apologies, @simonw. My previous PR #1835 did not really solve the problem because the name of the database is often not known to database object in the init method. I took a cue from how you dealt with this issue and made hash a lazy property and did something similar with size. <!-- readthedocs-preview datasette start --> ---- :books: Documentation preview :books:: https://datasette--1837.org.readthedocs.build/en/1837/ <!-- readthedocs-preview datasette end --> | 2022-10-06T23:51:22Z | 2022-10-27T20:51:21Z | 2022-10-27T20:51:20Z | 2022-10-27T20:51:20Z | b912d92b651c4f0b5137da924d135654511f0fe0 | 0 | c12447e484036ace9a685bd04b9f0e1fa66541c8 | eff112498ecc499323c26612d707908831446d25 | CONTRIBUTOR | 107914493 | https://github.com/simonw/datasette/pull/1837 | ||||
1086765659 | PR_kwDOBm6k_c5Axrpb | 1842 | closed | 0 | check_visibility can now take multiple permissions into account | 9599 | Refs #1829 - [x] Fix table page - [x] Fix database page - [x] Fix query page - [x] Fix row page - [x] Tests - [x] Updated documentation for `check_visibility` method, to cover the new `permissions=` keyword argument Also this fix is currently only applied on the table page - needs to be applied on database, row and query pages too. <!-- readthedocs-preview datasette start --> ---- :books: Documentation preview :books:: https://datasette--1842.org.readthedocs.build/en/1842/ <!-- readthedocs-preview datasette end --> | 2022-10-14T00:06:04Z | 2022-10-24T02:11:36Z | 2022-10-24T02:11:36Z | 2022-10-24T02:11:34Z | 78dad236df730212aa7172f885fd8ec575f0d3ad | 0 | 362347574e3283d637243906af7d5e028e100180 | 79aa0de083d38a9975915d5a4cc68ca6c74fbe3d | OWNER | 107914493 | https://github.com/simonw/datasette/pull/1842 | ||||
1079437524 | PR_kwDOBm6k_c5AVujU | 1835 | closed | 0 | use inspect data for hash and file size | 536941 | `inspect_data` should already include the hash and the db file size, so this PR takes advantage of using those instead of always recalculating. should help a lot on startup with large DBs. closes #1834 | 2022-10-06T18:25:24Z | 2022-10-27T20:51:30Z | 2022-10-06T20:06:07Z | 2022-10-06T20:06:07Z | eff112498ecc499323c26612d707908831446d25 | 0 | b4b92df38c8ca8a6faeec4daaf803cee80e0dbed | bbf33a763537a1d913180b22bd3b5fe4a5e5b252 | CONTRIBUTOR | 107914493 | https://github.com/simonw/datasette/pull/1835 | ||||
1072698114 | PR_kwDOBm6k_c4_8BMC | 1827 | closed | 0 | Bump furo from 2022.9.15 to 2022.9.29 | 49699333 | Bumps [furo](https://github.com/pradyunsg/furo) from 2022.9.15 to 2022.9.29. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pradyunsg/furo/blob/main/docs/changelog.md">furo's changelog</a>.</em></p> <blockquote> <h1>Changelog</h1> <!-- raw HTML omitted --> <h2>2022.09.29 -- Quaint Quartz</h2> <ul> <li>Add ability to set arbitrary URLs for edit button.</li> <li>Add support for aligning text in MyST-parser generated tables.</li> </ul> <h2>2022.09.15 -- Pragmatic Pistachio</h2> <ul> <li>Add a minimum version constraint on pygments.</li> <li>Add an explicit dependency on <code>sass</code>.</li> <li>Change right sidebar title from "Contents" to "On this page".</li> <li>Correctly position sidebars on small screens.</li> <li>Correctly select only Furo's own <code>svg</code> in related pages <code>nav</code>.</li> <li>Make numpy-style documentation headers consistent.</li> <li>Retitle the reference section.</li> <li>Update npm dependencies.</li> </ul> <h2>2022.06.21 -- Opulent Opal</h2> <ul> <li>Fix <code>docutils <= 0.17.x</code> compatibility.</li> <li>Bump to the latest Node.js LTS.</li> </ul> <h2>2022.06.04.1 -- Naughty Nickel bugfix</h2> <ul> <li>Fix the URL used in the "Edit this page" for Read the Docs builds.</li> </ul> <h2>2022.06.04 -- Naughty Nickel</h2> <ul> <li>✨ Advertise Sphinx 5 compatibility.</li> <li>✨ Change to <code>basic-ng</code> as the base theme (from {pypi}<code>sphinx-basic-ng</code>).</li> <li>Document site-wide announcement banners.</li> <li>Drop the pin on pygments.</li> <li>Improve edit button, using <code>basic-ng</code>'s <code>edit-this-page</code> component.</li> <li>Tweak headings to better match what users expect.</li> <li>Tweak how Sphinx's default HTML is rendered, using docutils post-transforms (this replaces parsing+modifying it with BeautifulSoup).</li> <li>When built with docutils 0.18, footnotes are rendered differently and stylised differently in Furo.</li> </ul> <h2>2022.04.07 -- Magical Mauve</h2> <!-- r… | 2022-09-30T13:15:35Z | 2022-09-30T17:55:42Z | 2022-09-30T17:55:41Z | 2022-09-30T17:55:41Z | c92c4318e9892101f75fa158410c0a12c1d80b6e | 0 | 1f0c557ef96d3e2e7a41598af8f9dece2d3fbcfc | 34defdc10aa293294ca01cfab70780755447e1d7 | CONTRIBUTOR | 107914493 | https://github.com/simonw/datasette/pull/1827 | ||||
1069033742 | PR_kwDOBm6k_c4_uCkO | 1825 | closed | 0 | Add documentation for serving via OpenRC | 1048831 | I also removed a few lines which felt redundant given the following section dedicated to running behind a nginx proxy. <!-- readthedocs-preview datasette start --> ---- :books: Documentation preview :books:: https://datasette--1825.org.readthedocs.build/en/1825/ <!-- readthedocs-preview datasette end --> | 2022-09-27T19:00:56Z | 2022-09-28T04:21:37Z | 2022-09-28T04:21:37Z | 2022-09-28T04:21:37Z | 984b1df12cf19a6731889fc0665bb5f622e07b7c | 0 | e7e96dc2ef2b76338786f1b911a9753bb8bfc297 | 5f9f567acbc58c9fcd88af440e68034510fb5d2b | CONTRIBUTOR | 107914493 | https://github.com/simonw/datasette/pull/1825 | ||||
1058623570 | PR_kwDOBm6k_c4_GVBS | 1812 | closed | 0 | Bump furo from 2022.6.21 to 2022.9.15 | 49699333 | Bumps [furo](https://github.com/pradyunsg/furo) from 2022.6.21 to 2022.9.15. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pradyunsg/furo/blob/main/docs/changelog.md">furo's changelog</a>.</em></p> <blockquote> <h1>Changelog</h1> <!-- raw HTML omitted --> <h2>2022.09.15 -- Pragmatic Pistachio</h2> <ul> <li>Add a minimum version constraint on pygments.</li> <li>Add an explicit dependency on <code>sass</code>.</li> <li>Change right sidebar title from "Contents" to "On this page".</li> <li>Correctly position sidebars on small screens.</li> <li>Correctly select only Furo's own <code>svg</code> in related pages <code>nav</code>.</li> <li>Make numpy-style documentation headers consistent.</li> <li>Retitle the reference section.</li> <li>Update npm dependencies.</li> </ul> <h2>2022.06.21 -- Opulent Opal</h2> <ul> <li>Fix <code>docutils <= 0.17.x</code> compatibility.</li> <li>Bump to the latest Node.js LTS.</li> </ul> <h2>2022.06.04.1 -- Naughty Nickel bugfix</h2> <ul> <li>Fix the URL used in the "Edit this page" for Read the Docs builds.</li> </ul> <h2>2022.06.04 -- Naughty Nickel</h2> <ul> <li>✨ Advertise Sphinx 5 compatibility.</li> <li>✨ Change to <code>basic-ng</code> as the base theme (from {pypi}<code>sphinx-basic-ng</code>).</li> <li>Document site-wide announcement banners.</li> <li>Drop the pin on pygments.</li> <li>Improve edit button, using <code>basic-ng</code>'s <code>edit-this-page</code> component.</li> <li>Tweak headings to better match what users expect.</li> <li>Tweak how Sphinx's default HTML is rendered, using docutils post-transforms (this replaces parsing+modifying it with BeautifulSoup).</li> <li>When built with docutils 0.18, footnotes are rendered differently and stylised differently in Furo.</li> </ul> <h2>2022.04.07 -- Magical Mauve</h2> <ul> <li>✨ Make sphinx-copybutton look better.</li> <li>Add margin to indentations in line blocks.</li> <li>Add styling for non-arabic list styles</li> <li>Add support for <code>html_bas… | 2022-09-16T13:10:45Z | 2022-09-16T19:50:53Z | 2022-09-16T19:50:52Z | 2022-09-16T19:50:52Z | 2ebcffe2226ece2a5a86722790d486a480338632 | 0 | b3855e7b57d2f2354296b23e8c12df82e9af729e | b40872f5e5ae5dad331c58f75451e2d206565196 | CONTRIBUTOR | 107914493 | https://github.com/simonw/datasette/pull/1812 | ||||
1050417981 | PR_kwDOCGYnMM4-nBs9 | 486 | closed | 0 | progressbar for inserts/upserts of all fileformats, closes #485 | 99098079 | <!-- readthedocs-preview sqlite-utils start --> ---- :books: Documentation preview :books:: https://sqlite-utils--486.org.readthedocs.build/en/486/ <!-- readthedocs-preview sqlite-utils end --> | 2022-09-08T14:58:02Z | 2022-09-15T20:40:03Z | 2022-09-15T20:37:51Z | 2022-09-15T20:37:51Z | 0b315d3fa83c1584eaeec32f24912898621e437a | 0 | d5db749480aaf8518e611ff55da186cadf6c63bc | d9b9e075f07a20f1137cd2e34ed5d3f1a3db4ad8 | CONTRIBUTOR | 140912432 | https://github.com/simonw/sqlite-utils/pull/486 | ||||
1038547954 | PR_kwDOBm6k_c495vvy | 1794 | closed | 0 | fix word break in facets by adding ul.tight-bullets li word-break: break-all | 128286 | I noticed that long words break the layout of facets: ![image](https://user-images.githubusercontent.com/128286/187013146-fb2bbb60-a225-441b-ba8e-b9e74fb04f93.png) So I added CSS to add a line break. This is how the result looks now: ![image](https://user-images.githubusercontent.com/128286/187013175-a706fc72-9e69-4a75-9bdf-bdaa34a0cf51.png) I don't know enough about facet edge cases to decide if this change might break other things but it looks better for me so maybe this is helpful. <!-- readthedocs-preview datasette start --> ---- :books: Documentation preview :books:: https://datasette--1794.org.readthedocs.build/en/1794/ <!-- readthedocs-preview datasette end --> | 2022-08-27T03:47:25Z | 2022-09-06T00:45:41Z | 2022-09-06T00:45:41Z | 2022-09-06T00:45:41Z | c9d1943aede436fa3413fd49bc56335cbda4ad07 | 0 | 3b8e005a5cf15e0639b460f7d2ab71790c9b4ef5 | ba35105eee2d3ba620e4f230028a02b2e2571df2 | CONTRIBUTOR | 107914493 | https://github.com/simonw/datasette/pull/1794 | ||||
1046943107 | PR_kwDOBm6k_c4-ZxWD | 1803 | closed | 0 | Workaround for test failure: RuntimeError: There is no current event loop | 9599 | Closes #1802 <!-- readthedocs-preview datasette start --> ---- :books: Documentation preview :books:: https://datasette--1803.org.readthedocs.build/en/1803/ <!-- readthedocs-preview datasette end --> | 2022-09-06T00:31:06Z | 2022-09-06T00:40:19Z | 2022-09-06T00:40:19Z | 2022-09-06T00:40:19Z | 64288d827f7ff97f825e10f714da3f781ecf9345 | 0 | 7b6a2b48408697905bd93504b7f5554f4a7627ef | 1c29b925d300d1ee17047504473f2517767aa05b | OWNER | 107914493 | https://github.com/simonw/datasette/pull/1803 | ||||
1043733712 | PR_kwDOBm6k_c4-NhzQ | 1797 | closed | 0 | Bump black from 22.6.0 to 22.8.0 | 49699333 | Bumps [black](https://github.com/psf/black) from 22.6.0 to 22.8.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/psf/black/releases">black's releases</a>.</em></p> <blockquote> <h2>22.8.0</h2> <h3>Highlights</h3> <ul> <li>Python 3.11 is now supported, except for <em>blackd</em> as aiohttp does not support 3.11 as of publishing (<a href="https://github-redirect.dependabot.com/psf/black/issues/3234">#3234</a>)</li> <li>This is the last release that supports running <em>Black</em> on Python 3.6 (formatting 3.6 code will continue to be supported until further notice)</li> <li>Reword the stability policy to say that we may, in rare cases, make changes that affect code that was not previously formatted by <em>Black</em> (<a href="https://github-redirect.dependabot.com/psf/black/issues/3155">#3155</a>)</li> </ul> <h3>Stable style</h3> <ul> <li>Fix an infinite loop when using <code># fmt: on/off</code> in the middle of an expression or code block (<a href="https://github-redirect.dependabot.com/psf/black/issues/3158">#3158</a>)</li> <li>Fix incorrect handling of <code># fmt: skip</code> on colon (<code>:</code>) lines (<a href="https://github-redirect.dependabot.com/psf/black/issues/3148">#3148</a>)</li> <li>Comments are no longer deleted when a line had spaces removed around power operators (<a href="https://github-redirect.dependabot.com/psf/black/issues/2874">#2874</a>)</li> </ul> <h3>Preview style</h3> <ul> <li>Single-character closing docstring quotes are no longer moved to their own line as this is invalid. This was a bug introduced in version 22.6.0. (<a href="https://github-redirect.dependabot.com/psf/black/issues/3166">#3166</a>)</li> <li><code>--skip-string-normalization</code> / <code>-S</code> now prevents docstring prefixes from being normalized as expected (<a href="https://github-redirect.dependabot.com/psf/black/issues/3168">#3168</a>)</li> <li>When using <code>--skip-magic-trailing-comma</code> or <code>-C</code>, trailing commas are stripped from subscript ex… | 2022-09-01T13:25:14Z | 2022-09-05T18:51:52Z | 2022-09-05T18:51:52Z | 2022-09-05T18:51:52Z | 294ecd45f7801971dbeef383d0c5456ee95ab839 | 0 | 84f9d32109bc92abb609b920ea4f5bef5fb558b9 | 51030df1869b3b574dd3584d1563415776b9cd4e | CONTRIBUTOR | 107914493 | https://github.com/simonw/datasette/pull/1797 | ||||
1046767034 | PR_kwDOBm6k_c4-ZGW6 | 1801 | closed | 0 | Don't use upper bound dependencies, refs #1800 | 9599 | See https://iscinumpy.dev/post/bound-version-constraints/ <!-- readthedocs-preview datasette start --> ---- :books: Documentation preview :books:: https://datasette--1801.org.readthedocs.build/en/1801/ <!-- readthedocs-preview datasette end --> | 2022-09-05T18:29:28Z | 2022-09-05T18:35:41Z | 2022-09-05T18:35:41Z | 2022-09-05T18:35:41Z | 51030df1869b3b574dd3584d1563415776b9cd4e | 0 | 3f24edd6b29e7deff37d0e45827133fc5a9e5387 | ba35105eee2d3ba620e4f230028a02b2e2571df2 | OWNER | 107914493 | https://github.com/simonw/datasette/pull/1801 | ||||
1040691996 | PR_kwDOCGYnMM4-B7Mc | 480 | closed | 0 | search_sql add include_rank option | 7908073 | I haven't tested this yet but wanted to get a heads-up whether this kind of change would be useful or if I should just duplicate the function and tweak it within my code <!-- readthedocs-preview sqlite-utils start --> ---- :books: Documentation preview :books:: https://sqlite-utils--480.org.readthedocs.build/en/480/ <!-- readthedocs-preview sqlite-utils end --> | 2022-08-30T09:10:29Z | 2022-08-31T03:40:35Z | 2022-08-31T03:40:35Z | 2022-08-31T03:40:35Z | ecf1d40112e52a8f4e509c39b98caae996b7bc36 | 0 | 3dbfca6fdd878ba381f83157fdae2042eeaed371 | 087753cd42c406f1e060c1822dcd9b5fda3d60f4 | CONTRIBUTOR | 140912432 | https://github.com/simonw/sqlite-utils/pull/480 | ||||
1034485141 | PR_kwDOCGYnMM49qP2V | 468 | closed | 0 | db[table].create(..., transform=True) and create-table --transform | 9599 | Work in progress. Still needs documentation and tests (and to cover more cases of things that might have changed). Refs: - #467 <!-- readthedocs-preview sqlite-utils start --> ---- :books: Documentation preview :books:: https://sqlite-utils--468.org.readthedocs.build/en/468/ <!-- readthedocs-preview sqlite-utils end --> | 2022-08-23T17:27:58Z | 2022-08-27T23:17:55Z | 2022-08-27T23:17:55Z | 2022-08-27T23:17:55Z | 104f37fa4d2e7e5999c1d829267b62c737f74d3e | 8355157 | 0 | 2f6a64f61d561df821d737719941c678dcb1a03c | c5f8a2eb1a81a18b52825cc649112f71fe419b12 | OWNER | 140912432 | https://github.com/simonw/sqlite-utils/pull/468 | |||
1000800283 | PR_kwDOCGYnMM47pwAb | 455 | closed | 0 | in extract code, check equality with IS instead of = for nulls | 536941 | sqlite "IS" is equivalent to SQL "IS NOT DISTINCT FROM" closes #423 | 2022-07-19T13:40:25Z | 2022-08-27T14:45:03Z | 2022-08-27T14:45:03Z | 2022-08-27T14:45:03Z | c5f8a2eb1a81a18b52825cc649112f71fe419b12 | 0 | 1b35a92e3ede76f0f29f6f8dcd899f44b2abbb02 | 855bce8c3823718def13e0b8928c58bf857e41b2 | CONTRIBUTOR | 140912432 | https://github.com/simonw/sqlite-utils/pull/455 | ||||
1038565427 | PR_kwDOCGYnMM4950Az | 473 | closed | 0 | Support entrypoints for `--load-extension` | 9599 | Refs #470 <!-- readthedocs-preview sqlite-utils start --> ---- :books: Documentation preview :books:: https://sqlite-utils--473.org.readthedocs.build/en/473/ <!-- readthedocs-preview sqlite-utils end --> | 2022-08-27T05:53:59Z | 2022-08-27T05:55:52Z | 2022-08-27T05:55:47Z | 2022-08-27T05:55:47Z | 19dd077944429c1365b513d80cc71c605ae3bed3 | 0 | 72db599ae03fabe2e9f999999e258edc1a99ed59 | a46a5e3a9e03dcdd8c84a92e4a5dbfa02ba461fa | OWNER | 140912432 | https://github.com/simonw/sqlite-utils/pull/473 | ||||
1034576054 | PR_kwDOBm6k_c49qmC2 | 1792 | closed | 0 | Test `--load-extension` in GitHub Actions | 9599 | Refs: - #1789 <!-- readthedocs-preview datasette start --> ---- :books: Documentation preview :books:: https://datasette--1792.org.readthedocs.build/en/1792/ <!-- readthedocs-preview datasette end --> | 2022-08-23T18:43:29Z | 2022-08-24T00:11:46Z | 2022-08-24T00:11:45Z | 2022-08-24T00:11:45Z | ba35105eee2d3ba620e4f230028a02b2e2571df2 | 0 | f61cfb77056e2ee39ae827889c005b1e44c81165 | 456dc155d491a009942ace71a4e1827cddc6b93d | OWNER | 107914493 | https://github.com/simonw/datasette/pull/1792 | ||||
1031503844 | PR_kwDOBm6k_c49e3_k | 1789 | closed | 0 | Add new entrypoint option to `--load-extension` | 15178711 | Closes #1784 The `--load-extension` flag can now accept an optional "entrypoint" value, to specify which entrypoint SQLite should load from the given extension. ```bash # would load default entrypoint like before datasette data.db --load-extension ext # loads the extensions with the "sqlite3_foo_init" entrpoint datasette data.db --load-extension ext:sqlite3_foo_init # loads the extensions with the "sqlite3_bar_init" entrpoint datasette data.db --load-extension ext:sqlite3_bar_init ``` For testing, I added a small SQLite extension in C at `tests/ext.c`. If compiled, then pytest will run the unit tests in `test_load_extensions.py`to verify that Datasette loads in extensions correctly (and loads the correct entrypoints). Compiling the extension requires a C compiler, I compiled it on my Mac with: ``` gcc ext.c -I path/to/sqlite -fPIC -shared -o ext.dylib ``` Where `path/to/sqlite` is a directory that contains the SQLite amalgamation header files. Re documentation: I added a bit to the help text for `--load-extension` (which I believe should auto-add to documentation?), and the existing extension documentation is spatialite specific. Let me know if a new extensions documentation page would be helpful! | 2022-08-19T19:27:47Z | 2022-08-23T18:42:52Z | 2022-08-23T18:34:30Z | 2022-08-23T18:34:30Z | 1d64c9a8dac45b9a3452acf8e76dfadea2b0bc49 | 0 | 5a2a05f2cea7b55b1c3bb1df043c0a454eca6563 | 663ac431fe7202c85967568d82b2034f92b9aa43 | CONTRIBUTOR | 107914493 | https://github.com/simonw/datasette/pull/1789 | ||||
526847823 | MDExOlB1bGxSZXF1ZXN0NTI2ODQ3ODIz | 7 | closed | 0 | Fixed conflicting CLI flags | 8944 | The `-a` used for the auth credentials and the shortened form of the `--all` flags were in conflict on the `fetch` command. To be consistent with other `-to-sqlite` libraries in the Dogsheep ecosystem, I removed the shortened form of the `--all` flag. | 2020-11-24T23:25:12Z | 2022-08-21T21:11:56Z | 2022-08-21T21:11:56Z | 2022-08-21T21:11:56Z | 4d88c84a66a501e4cb0dd2de9949072b8d42b859 | 0 | 02576f9b1c234128c6a3d52123761af8486beb57 | b956a01464007fe227895fe6eb6c942ed71298c8 | CONTRIBUTOR | 213286752 | https://github.com/dogsheep/pocket-to-sqlite/pull/7 | ||||
1022524090 | PR_kwDOBm6k_c488nq6 | 1778 | closed | 0 | Use Read the Docs action v1 | 244656 | Read the Docs repository was renamed from `readthedocs/readthedocs-preview` to `readthedocs/actions/`. Now, the `preview` action is under `readthedocs/actions/preview` and is tagged as `v1` <!-- readthedocs-preview datasette start --> ---- :books: Documentation preview :books:: https://datasette--1778.org.readthedocs.build/en/1778/ <!-- readthedocs-preview datasette end --> | 2022-08-10T10:30:50Z | 2022-08-20T00:04:17Z | 2022-08-20T00:04:17Z | 2022-08-20T00:04:17Z | 663ac431fe7202c85967568d82b2034f92b9aa43 | 0 | 003ac653b0bbd9dd30f0f7855e6ecfc9a045d486 | 8cfc72336878dd846d149658e99cc598e835b661 | CONTRIBUTOR | 107914493 | https://github.com/simonw/datasette/pull/1778 | ||||
1015320511 | PR_kwDOCGYnMM48hI-_ | 460 | closed | 0 | Cross-link CLI to Python docs | 9599 | Work in progress, partly to test the ReadTheDocs preview link action. Refs: - #426 <!-- readthedocs-preview readthedocs-preview start --> ---- :books: Documentation preview :books:: https://readthedocs-preview--460.org.readthedocs.build/en/460/ <!-- readthedocs-preview readthedocs-preview end --> | 2022-08-02T16:18:28Z | 2022-08-18T21:58:10Z | 2022-08-18T21:58:07Z | 2022-08-18T21:58:07Z | f4fb78fa95057fbc86c734020835a3155695297f | 0 | f21f4ccf7197e7a0ac8c2eb5086659fc3eb5bc05 | 1856002e3c0fcc9f09f72ab7d97ad8c75f6de7df | OWNER | 140912432 | https://github.com/simonw/sqlite-utils/pull/460 | ||||
1029360106 | PR_kwDOCGYnMM49Wsnq | 465 | closed | 0 | beanbag-docutils>=2.0 | 9599 | Refs #464 | 2022-08-17T22:41:39Z | 2022-08-17T23:38:07Z | 2022-08-17T23:38:02Z | 2022-08-17T23:38:02Z | f8ffac8787e299a62c99ed1ce914cd5ace84ad94 | 0 | bb90d3326815a041512b40bf0cf53b3ace06cd67 | 45e24deffea042b5db7ab84cd1eb63b3ed9bb9da | OWNER | 140912432 | https://github.com/simonw/sqlite-utils/pull/465 | ||||
1029373779 | PR_kwDOCGYnMM49Wv9T | 466 | closed | 0 | Use Read the Docs action v1 (#463) | 9599 | Read the Docs repository was renamed from `readthedocs/readthedocs-preview` to `readthedocs/actions/`. Now, the `preview` action is under `readthedocs/actions/preview` and is tagged as `v1` | 2022-08-17T23:11:50Z | 2022-08-17T23:11:54Z | 2022-08-17T23:11:54Z | 2022-08-17T23:11:54Z | bb90d3326815a041512b40bf0cf53b3ace06cd67 | 0 | 83e7339255e811c62e6db8498c483c44a84d0f28 | 72655adabc596a9eed43cc11c07177a390791068 | OWNER | 140912432 | https://github.com/simonw/sqlite-utils/pull/466 | ||||
1022525059 | PR_kwDOCGYnMM488n6D | 463 | closed | 0 | Use Read the Docs action v1 | 244656 | Read the Docs repository was renamed from `readthedocs/readthedocs-preview` to `readthedocs/actions/`. Now, the `preview` action is under `readthedocs/actions/preview` and is tagged as `v1` <!-- readthedocs-preview sqlite-utils start --> ---- :books: Documentation preview :books:: https://sqlite-utils--463.org.readthedocs.build/en/463/ <!-- readthedocs-preview sqlite-utils end --> | 2022-08-10T10:31:47Z | 2022-08-18T08:30:14Z | 2022-08-17T23:11:16Z | 2022-08-17T23:11:16Z | 83e7339255e811c62e6db8498c483c44a84d0f28 | 0 | 364110b97bd1c6e0d2bc841730e5dc1a595e537d | 271433fdd18e436b0a527ab899cb6f6fa67f23d0 | CONTRIBUTOR | 140912432 | https://github.com/simonw/sqlite-utils/pull/463 | ||||
1015591301 | PR_kwDOCGYnMM48iLGF | 462 | closed | 0 | Discord badge | 9599 | Also testing fix for: - https://github.com/readthedocs/readthedocs-preview/issues/10 <!-- readthedocs-preview sqlite-utils start --> ---- :books: Documentation preview :books:: https://sqlite-utils--462.org.readthedocs.build/en/462/ <!-- readthedocs-preview sqlite-utils end --> | 2022-08-02T20:56:04Z | 2022-08-02T21:15:57Z | 2022-08-02T21:15:52Z | 2022-08-02T21:15:52Z | 271433fdd18e436b0a527ab899cb6f6fa67f23d0 | 0 | 0a14a031385f2647be0b9d15d96c1d44d05c2296 | 98a28cbfe6cea67f6334b42b74f35b0ddd309561 | OWNER | 140912432 | https://github.com/simonw/sqlite-utils/pull/462 | ||||
1009936222 | PR_kwDOCGYnMM48Mmde | 457 | closed | 0 | Link to installation instructions | 9599 | Also testing https://docs.readthedocs.io/en/stable/pull-requests.html | 2022-07-27T17:38:36Z | 2022-08-27T03:55:52Z | 2022-07-27T17:57:50Z | 2022-07-27T17:57:50Z | 77ca051d4f5ddbd42fd6250749efac7ea85ea094 | 8355157 | 0 | 80b3907471f724aeecae75796663815c87731e77 | 9e6cceac1c0e086429e2d308b700e59cc53a1991 | OWNER | 140912432 | https://github.com/simonw/sqlite-utils/pull/457 | |||
959140599 | PR_kwDODFdgUs45K1L3 | 73 | closed | 0 | Fixing 'NoneType' object has no attribute 'items' | 1224205 | Under some conditions, GitHub caches removed starred repositories and ends up leaving dangling `None` user references. Traceback (most recent call last): File "/home/dogsheep/dogsheep/github-to-sqlite/bin/github-to-sqlite", line 8, in <module> sys.exit(cli()) File "/home/dogsheep/dogsheep/github-to-sqlite/lib64/python3.10/site-packages/click/core.py", line 1130, in __call__ return self.main(*args, **kwargs) File "/home/dogsheep/dogsheep/github-to-sqlite/lib64/python3.10/site-packages/click/core.py", line 1055, in main rv = self.invoke(ctx) File "/home/dogsheep/dogsheep/github-to-sqlite/lib64/python3.10/site-packages/click/core.py", line 1657, in invoke return _process_result(sub_ctx.command.invoke(sub_ctx)) File "/home/dogsheep/dogsheep/github-to-sqlite/lib64/python3.10/site-packages/click/core.py", line 1404, in invoke return ctx.invoke(self.callback, **ctx.params) File "/home/dogsheep/dogsheep/github-to-sqlite/lib64/python3.10/site-packages/click/core.py", line 760, in invoke return __callback(*args, **kwargs) File "/home/dogsheep/dogsheep/github-to-sqlite/lib64/python3.10/site-packages/github_to_sqlite/cli.py", line 181, in starred utils.save_stars(db, user, stars) File "/home/dogsheep/dogsheep/github-to-sqlite/lib64/python3.10/site-packages/github_to_sqlite/utils.py", line 494, in save_stars repo_id = save_repo(db, repo) File "/home/dogsheep/dogsheep/github-to-sqlite/lib64/python3.10/site-packages/github_to_sqlite/utils.py", line 308, in save_repo to_save["owner"] = save_user(db, to_save["owner"]) File "/home/dogsheep/dogsheep/github-to-sqlite/lib64/python3.10/site-packages/github_to_sqlite/utils.py", line 229, in save_user for key, value in user.items() AttributeError: 'NoneType' object has no attribute 'items' | 2022-06-06T13:58:11Z | 2022-07-18T19:40:12Z | 2022-07-18T19:40:12Z | 2022-07-18T19:40:12Z | dbac2e5dd8a562b45d8255a265859cf8020ca22a | 0 | d7c06886f3bb95085a3af3b2a21547e41556cc6e | a6e237f75a4b86963d91dcb5c9582e3a1b3349d6 | CONTRIBUTOR | 207052882 | https://github.com/dogsheep/github-to-sqlite/pull/73 | ||||
985781142 | PR_kwDOBm6k_c46wdOW | 1766 | closed | 0 | Keep track of config_dir | 25778 | Closes #1764 Small change that adds `self.config_dir = config_dir` to `Datasette.__init__`. This will let plugins also use `config_dir`, if available. | 2022-07-03T17:37:02Z | 2022-07-18T01:12:45Z | 2022-07-18T01:12:45Z | 2022-07-18T01:12:45Z | 01369176b0a8943ab45292ffc6f9c929b80a00e8 | 0 | 257fd240975abf9647217f5d22ccadbecd6ec9f2 | 9f1eb0d4eac483b953392157bd9fd6cc4df37de7 | CONTRIBUTOR | 107914493 | https://github.com/simonw/datasette/pull/1766 | ||||
997743473 | PR_kwDOBm6k_c47eFtx | 1769 | closed | 0 | Update pytest-asyncio requirement from <0.19,>=0.17 to >=0.17,<0.20 | 49699333 | Updates the requirements on [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) to permit the latest version. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/pytest-dev/pytest-asyncio/releases">pytest-asyncio's releases</a>.</em></p> <blockquote> <h2>pytest-asyncio 0.19.0</h2> <hr /> <h2>title: 'pytest-asyncio: pytest support for asyncio'</h2> <p><a href="https://pypi.python.org/pypi/pytest-asyncio"><img src="https://img.shields.io/pypi/v/pytest-asyncio.svg" alt="image" /></a></p> <p><a href="https://github.com/pytest-dev/pytest-asyncio/actions?workflow=CI"><img src="https://github.com/pytest-dev/pytest-asyncio/workflows/CI/badge.svg" alt="image" /></a></p> <p><a href="https://codecov.io/gh/pytest-dev/pytest-asyncio"><img src="https://codecov.io/gh/pytest-dev/pytest-asyncio/branch/master/graph/badge.svg" alt="image" /></a></p> <p><a href="https://github.com/pytest-dev/pytest-asyncio"><img src="https://img.shields.io/pypi/pyversions/pytest-asyncio.svg" alt="Supported Python versions" /></a></p> <p><a href="https://github.com/ambv/black"><img src="https://img.shields.io/badge/code%20style-black-000000.svg" alt="image" /></a></p> <p>pytest-asyncio is an Apache2 licensed library, written in Python, for testing asyncio code with pytest.</p> <p>asyncio code is usually written in the form of coroutines, which makes it slightly more difficult to test using normal testing tools. pytest-asyncio provides useful fixtures and markers to make testing easier.</p> <pre lang="{.sourceCode" data-meta=".python}"><code>@pytest.mark.asyncio async def test_some_asyncio_code(): res = await library.do_something() assert b"expected result" == res </code></pre> <p>pytest-asyncio has been strongly influenced by <a href="https://github.com/eugeniy/pytest-tornado">pytest-tornado</a>.</p> <h1>Features</h1> <ul> <li>fixtures for creating and injecting versions of the asyncio event loop</li> <li>fixtures for injecting unused tcp/udp ports</li> <li>pytest markers for treatin… | 2022-07-15T13:10:15Z | 2022-07-18T01:06:38Z | 2022-07-18T01:06:38Z | 2022-07-18T01:06:38Z | 22354c48ce4d514d7a1b321e5651c7f1340e3f5e | 0 | bb3c6105164165432e2e72cc17d3ad71a1ba5b9b | 950cc7677f65aa2543067b3bbfc2b6acb98b62c8 | CONTRIBUTOR | 107914493 | https://github.com/simonw/datasette/pull/1769 | ||||
975096803 | PR_kwDOBm6k_c46Hsvj | 1760 | closed | 0 | Bump furo from 2022.4.7 to 2022.6.21 | 49699333 | Bumps [furo](https://github.com/pradyunsg/furo) from 2022.4.7 to 2022.6.21. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pradyunsg/furo/blob/main/docs/changelog.md">furo's changelog</a>.</em></p> <blockquote> <h1>Changelog</h1> <!-- raw HTML omitted --> <h2>2022.06.21 -- Opulent Opal</h2> <ul> <li>Fix <code>docutils <= 0.17.x</code> compatibility</li> <li>Bump to the latest Node.js LTS</li> </ul> <h2>2022.06.04.1 -- Naughty Nickel bugfix</h2> <ul> <li>Fix the URL used in the "Edit this page" for Read the Docs builds.</li> </ul> <h2>2022.06.04 -- Naughty Nickel</h2> <ul> <li>✨ Advertise Sphinx 5 compatibility.</li> <li>✨ Change to <code>basic-ng</code> as the base theme (from {pypi}<code>sphinx-basic-ng</code>).</li> <li>Document site-wide announcement banners.</li> <li>Drop the pin on pygments.</li> <li>Improve edit button, using <code>basic-ng</code>'s <code>edit-this-page</code> component.</li> <li>Tweak headings to better match what users expect.</li> <li>Tweak how Sphinx's default HTML is rendered, using docutils post-transforms (this replaces parsing+modifying it with BeautifulSoup).</li> <li>When built with docutils 0.18, footnotes are rendered differently and stylised differently in Furo.</li> </ul> <h2>2022.04.07 -- Magical Mauve</h2> <ul> <li>✨ Make sphinx-copybutton look better.</li> <li>Add margin to indentations in line blocks.</li> <li>Add styling for non-arabic list styles</li> <li>Add support for <code>html_baseurl</code>.</li> <li>Improve "Edit this page" icon to be more accessible.</li> <li>Improve <code>html_sidebars</code> example.</li> <li>Tweak positioning of back to top on desktop.</li> </ul> <h2>2022.03.04 -- Lucent Lilac</h2> <ul> <li>Improve support for print media.</li> <li>Reduce heading sizes for h3 and below.</li> <li>Don't allow selecting headerlink content.</li> <li>Improve how overflow wrapping is handled.</li> <li>Add a reference from the configuration variables to the color customisation page.</li> </ul> <h2>2022.02… | 2022-06-22T13:22:31Z | 2022-07-18T01:06:27Z | 2022-07-18T01:06:27Z | 2022-07-18T01:06:27Z | ea6161f8475d9fa41c4879049511c58f692cce04 | 0 | 69951eedb7ca7f1284ba29f3890bef917d59a655 | 00e59ec461dc0150772b999c7cc15fcb9b507d58 | CONTRIBUTOR | 107914493 | https://github.com/simonw/datasette/pull/1760 | ||||
992299943 | PR_kwDOCGYnMM47JUun | 452 | closed | 0 | Add duplicate table feature | 1690072 | This PR addresses a feature request raised in issue #449. Specifically this PR adds a functionality that lets users duplicate a table via: ```python table_new = db["my_table"].duplicate("new_table") ``` Test added in file `tests/test_duplicate.py`. Happy to make changes to meet maintainers' feedback, if any. | 2022-07-09T20:24:31Z | 2022-07-15T21:21:37Z | 2022-07-15T21:21:36Z | 2022-07-15T21:21:36Z | b366e68deb0780048a23610c279552f8529d4726 | 0 | eef350fe543c6301c61b257c5f708e0e16ed5a34 | 42440d6345c242ee39778045e29143fb550bd2c2 | CONTRIBUTOR | 140912432 | https://github.com/simonw/sqlite-utils/pull/452 | ||||
981389800 | PR_kwDOBm6k_c46ftHo | 1763 | closed | 0 | Bump black from 22.1.0 to 22.6.0 | 49699333 | Bumps [black](https://github.com/psf/black) from 22.1.0 to 22.6.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/psf/black/releases">black's releases</a>.</em></p> <blockquote> <h2>22.6.0</h2> <h3>Style</h3> <ul> <li>Fix unstable formatting involving <code>#fmt: skip</code> and <code># fmt:skip</code> comments (notice the lack of spaces) (<a href="https://github-redirect.dependabot.com/psf/black/issues/2970">#2970</a>)</li> </ul> <h3>Preview style</h3> <ul> <li>Docstring quotes are no longer moved if it would violate the line length limit (<a href="https://github-redirect.dependabot.com/psf/black/issues/3044">#3044</a>)</li> <li>Parentheses around return annotations are now managed (<a href="https://github-redirect.dependabot.com/psf/black/issues/2990">#2990</a>)</li> <li>Remove unnecessary parentheses around awaited objects (<a href="https://github-redirect.dependabot.com/psf/black/issues/2991">#2991</a>)</li> <li>Remove unnecessary parentheses in <code>with</code> statements (<a href="https://github-redirect.dependabot.com/psf/black/issues/2926">#2926</a>)</li> <li>Remove trailing newlines after code block open (<a href="https://github-redirect.dependabot.com/psf/black/issues/3035">#3035</a>)</li> </ul> <h3>Integrations</h3> <ul> <li>Add <code>scripts/migrate-black.py</code> script to ease introduction of Black to a Git project (<a href="https://github-redirect.dependabot.com/psf/black/issues/3038">#3038</a>)</li> </ul> <h3>Output</h3> <ul> <li>Output Python version and implementation as part of <code>--version</code> flag (<a href="https://github-redirect.dependabot.com/psf/black/issues/2997">#2997</a>)</li> </ul> <h3>Packaging</h3> <ul> <li>Use <code>tomli</code> instead of <code>tomllib</code> on Python 3.11 builds where <code>tomllib</code> is not available (<a href="https://github-redirect.dependabot.com/psf/black/issues/2987">#2987</a>)</li> </ul> <h3>Parser</h3> <ul> <li><a href="https://peps.python.org/pep-0654/#except">PEP 654</a> syntax (for example, <code>… | 2022-06-28T13:11:32Z | 2022-06-28T17:40:25Z | 2022-06-28T17:40:25Z | 2022-06-28T17:40:24Z | 9f1eb0d4eac483b953392157bd9fd6cc4df37de7 | 0 | fd6a817de499053c10c62139872486ef1698a481 | 00e59ec461dc0150772b999c7cc15fcb9b507d58 | CONTRIBUTOR | 107914493 | https://github.com/simonw/datasette/pull/1763 | ||||
971057476 | PR_kwDOBm6k_c454SlE | 1759 | closed | 0 | Extract facet portions of table.html out into included templates | 19872 | To allow users customise the facet content as they would prefer such as sorting of facet results. ordering of suggested facets etc. | 2022-06-17T22:04:04Z | 2022-06-20T18:05:45Z | 2022-06-20T18:05:45Z | 2022-06-20T18:05:45Z | 00e59ec461dc0150772b999c7cc15fcb9b507d58 | 0 | b901bb0a8eb50bc966c3e1712d73c0822edf3861 | 2e9751672d4fe329b3c359d5b7b1992283185820 | CONTRIBUTOR | 107914493 | https://github.com/simonw/datasette/pull/1759 | ||||
928210171 | PR_kwDOBm6k_c43U1z7 | 1740 | closed | 0 | chore: Set permissions for GitHub actions | 172697 | Restrict the GitHub token permissions only to the required ones; this way, even if the attackers will succeed in compromising your workflow, they won’t be able to do much. - Included permissions for the action. https://github.com/ossf/scorecard/blob/main/docs/checks.md#token-permissions https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#permissions https://docs.github.com/en/actions/using-jobs/assigning-permissions-to-jobs [Keeping your GitHub Actions and workflows secure Part 1: Preventing pwn requests](https://securitylab.github.com/research/github-actions-preventing-pwn-requests/) Signed-off-by: naveen <172697+naveensrinivasan@users.noreply.github.com> | 2022-05-05T01:03:08Z | 2022-05-31T19:28:41Z | 2022-05-31T19:28:40Z | 2022-05-31T19:28:40Z | 2e9751672d4fe329b3c359d5b7b1992283185820 | 0 | f76fce5fd2bacadf2f46656e32093c6d639270c9 | 280ff372ab30df244f6c54f6f3002da57334b3d7 | CONTRIBUTOR | 107914493 | https://github.com/simonw/datasette/pull/1740 | ||||
943686022 | PR_kwDOCGYnMM44P4GG | 437 | closed | 0 | docs to dogs | 114388 | Fixes a typo. | 2022-05-22T15:50:33Z | 2022-05-30T21:32:41Z | 2022-05-30T21:32:41Z | 2022-05-30T21:32:41Z | 9fedfc69d7239ac49900051e1c48ee9cdd470d9e | 0 | 9e540417821385939db0fdd2d0a859f85be377e6 | 59be60c471fd7a2c4be7f75e8911163e618ff5ca | CONTRIBUTOR | 140912432 | https://github.com/simonw/sqlite-utils/pull/437 | ||||
925926708 | PR_kwDOBm6k_c43MIU0 | 1736 | closed | 0 | Clean up compatibility with Pyodide | 9599 | Closes #1735, closes #1733 | 2022-05-02T20:14:38Z | 2022-05-02T20:15:28Z | 2022-05-02T20:15:27Z | 2022-05-02T20:15:27Z | 3f00a29141bdea5be747f6d1c93871ccdb792167 | 0 | 784fe6a245a051ef6b42e153d3fae9cce7b0b148 | a29c1277896b6a7905ef5441c42a37bc15f67599 | OWNER | 107914493 | https://github.com/simonw/datasette/pull/1736 | ||||
925807233 | PR_kwDOCGYnMM43LrKB | 429 | closed | 0 | Depend on click-default-group-wheel | 9599 | Trying to get this to work with Pyodide. Refs: https://github.com/simonw/click-default-group-wheel/issues/3 | 2022-05-02T18:03:10Z | 2022-05-02T18:52:42Z | 2022-05-02T18:05:00Z | 2022-05-02T18:05:00Z | ed6fd516082e8cc83b199798f62dd67728a6974f | 0 | 4a02dcf265702a4f11eed943bf8feaa502c590d5 | e3a14c33a033b0c2fc00f2470666caaf9027e446 | OWNER | 140912432 | https://github.com/simonw/sqlite-utils/pull/429 | ||||
917185800 | PR_kwDOBm6k_c42qyUI | 1717 | closed | 0 | Add timeout option to Cloudrun build | 127565 | I've found that the Cloudrun build phase often hits a timeout limit with large databases. I believe the default timeout is 10 minutes. This pull request just adds a `--timeout` option to the cloudrun `publish` command and passes the value on to the build step. | 2022-04-23T11:51:21Z | 2022-04-24T14:03:08Z | 2022-04-24T14:03:08Z | 2022-04-24T14:03:08Z | 3001e1e394b6cb605c2cd81eed671a7da419c1b3 | 0 | 9b9a314a84453cec5ad6c886351ef3df9d47a5a4 | d57c347f35bcd8cff15f913da851b4b8eb030867 | CONTRIBUTOR | 107914493 | https://github.com/simonw/datasette/pull/1717 | ||||
893040042 | PR_kwDOBm6k_c41OrWq | 1694 | closed | 0 | Update click requirement from <8.1.0,>=7.1.1 to >=7.1.1,<8.2.0 | 49699333 | Updates the requirements on [click](https://github.com/pallets/click) to permit the latest version. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/pallets/click/releases">click's releases</a>.</em></p> <blockquote> <h2>8.1.0</h2> <p>This is a feature release, which includes new features and removes previously deprecated features. The 8.1.x branch is now the supported bugfix branch, the 8.0.x branch will become a tag marking the end of support for that branch. We encourage everyone to upgrade, and to use a tool such as <a href="https://pypi.org/project/pip-tools/">pip-tools</a> to pin all dependencies and control upgrades.</p> <ul> <li>Changes: <a href="https://click.palletsprojects.com/en/8.1.x/changes/#version-8-1-0">https://click.palletsprojects.com/en/8.1.x/changes/#version-8-1-0</a></li> <li>Milestone: <a href="https://github.com/pallets/click/milestone/9?closed=1">https://github.com/pallets/click/milestone/9?closed=1</a></li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pallets/click/blob/main/CHANGES.rst">click's changelog</a>.</em></p> <blockquote> <h2>Version 8.1.0</h2> <p>Released 2022-03-28</p> <ul> <li> <p>Drop support for Python 3.6. :pr:<code>2129</code></p> </li> <li> <p>Remove previously deprecated code. :pr:<code>2130</code></p> <ul> <li><code>Group.resultcallback</code> is renamed to <code>result_callback</code>.</li> <li><code>autocompletion</code> parameter to <code>Command</code> is renamed to <code>shell_complete</code>.</li> <li><code>get_terminal_size</code> is removed, use <code>shutil.get_terminal_size</code> instead.</li> <li><code>get_os_args</code> is removed, use <code>sys.argv[1:]</code> instead.</li> </ul> </li> <li> <p>Rely on :pep:<code>538</code> and :pep:<code>540</code> to handle selecting UTF-8 encoding instead of ASCII. Click's locale encoding detection is removed. :issue:<code>2198</code></p> </li> <li> <p>Single options boolean flags with <code>show_default=T… | 2022-03-29T13:11:23Z | 2022-04-08T23:05:10Z | 2022-04-08T23:05:09Z | 2022-04-08T23:05:09Z | 138e4d9a53e3982137294ba383303c3a848cfca4 | 0 | 83ff96792fd670ed32a1a61d38529959170c7309 | e73fa72917ca28c152208d62d07a490c81cadf52 | CONTRIBUTOR | 107914493 | https://github.com/simonw/datasette/pull/1694 | ||||
903832393 | PR_kwDOBm6k_c4132NJ | 1703 | closed | 0 | Update beautifulsoup4 requirement from <4.11.0,>=4.8.1 to >=4.8.1,<4.12.0 | 49699333 | Updates the requirements on [beautifulsoup4](https://www.crummy.com/software/BeautifulSoup/bs4/) to permit the latest version. Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> | 2022-04-08T13:08:53Z | 2022-04-08T22:51:05Z | 2022-04-08T22:51:05Z | 2022-04-08T22:51:05Z | 247e460e08bf823142f7b84058fe44e43626787f | 0 | 73aabe6c4222500745be8ca324431295b727d335 | 90d1be9952db9aaddc21a536e4d00a8de44765d7 | CONTRIBUTOR | 107914493 | https://github.com/simonw/datasette/pull/1703 | ||||
887534558 | PR_kwDOCGYnMM405rPe | 419 | closed | 0 | Ignore common generated files | 25778 | Closes #418 This adds four files to `.gitignore`: .hypothesis/ Pipfile Pipfile.lock pyproject.toml Those are all generated in the course of development and testing. | 2022-03-23T18:06:22Z | 2022-03-24T21:01:44Z | 2022-03-24T21:01:44Z | 2022-03-24T21:01:44Z | 396f80fcc60da8dd844577114f7920830a2e5403 | 0 | 228f73615cf993dd3caf3c240682c00392832bb8 | 93fa79d30b1531bea281d0eb6b925c4e61bc1aa6 | CONTRIBUTOR | 140912432 | https://github.com/simonw/sqlite-utils/pull/419 | ||||
882973374 | PR_kwDOBm6k_c40oRq- | 1664 | closed | 0 | Remove hashed URL mode | 9599 | Refs #1661. | 2022-03-17T23:19:10Z | 2022-03-19T00:12:04Z | 2022-03-19T00:12:04Z | 2022-03-19T00:12:03Z | d4f60c2388c01ddce1b16f95c16d310e037c9912 | 0 | eae91fe8c2934c8674f5202b2d9f85b6f674c410 | 30e5f0e67c38054a8087a2a4eae3fc4d1779af90 | OWNER | 107914493 | https://github.com/simonw/datasette/pull/1664 | ||||
879038656 | PR_kwDOBm6k_c40ZRDA | 1656 | closed | 0 | Update pytest requirement from <7.1.0,>=5.2.2 to >=5.2.2,<7.2.0 | 49699333 | Updates the requirements on [pytest](https://github.com/pytest-dev/pytest) to permit the latest version. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/pytest-dev/pytest/releases">pytest's releases</a>.</em></p> <blockquote> <h2>7.1.0</h2> <h1>pytest 7.1.0 (2022-03-13)</h1> <h2>Breaking Changes</h2> <ul> <li> <p><a href="https://github-redirect.dependabot.com/pytest-dev/pytest/issues/8838">#8838</a>: As per our policy, the following features have been deprecated in the 6.X series and are now removed:</p> <ul> <li><code>pytest._fillfuncargs</code> function.</li> <li><code>pytest_warning_captured</code> hook - use <code>pytest_warning_recorded</code> instead.</li> <li><code>-k -foobar</code> syntax - use <code>-k 'not foobar'</code> instead.</li> <li><code>-k foobar:</code> syntax.</li> <li><code>pytest.collect</code> module - import from <code>pytest</code> directly.</li> </ul> <p>For more information consult <a href="https://docs.pytest.org/en/latest/deprecations.html">Deprecations and Removals</a> in the docs.</p> </li> <li> <p><a href="https://github-redirect.dependabot.com/pytest-dev/pytest/issues/9437">#9437</a>: Dropped support for Python 3.6, which reached <a href="https://devguide.python.org/#status-of-python-branches">end-of-life</a> at 2021-12-23.</p> </li> </ul> <h2>Improvements</h2> <ul> <li> <p><a href="https://github-redirect.dependabot.com/pytest-dev/pytest/issues/5192">#5192</a>: Fixed test output for some data types where <code>-v</code> would show less information.</p> <p>Also, when showing diffs for sequences, <code>-q</code> would produce full diffs instead of the expected diff.</p> </li> <li> <p><a href="https://github-redirect.dependabot.com/pytest-dev/pytest/issues/9362">#9362</a>: pytest now avoids specialized assert formatting when it is detected that the default <code>__eq__</code> is overridden in <code>attrs</code> or <code>dataclasses</code>.</p> </li> <li> <p><a href="https://github-redirect.dependabot.com/pytest-dev/pytest/issues/9536">#953… | 2022-03-14T13:11:53Z | 2022-03-15T18:03:03Z | 2022-03-15T18:03:02Z | 2022-03-15T18:03:01Z | 77a904fea14f743560af9cc668146339bdbbd0a9 | 0 | 5d9883fcbb5ce00c50fd58aacfcf6e0e2d39ba48 | c10cd48baf106659bf3f129ad7bfb2226be73821 | CONTRIBUTOR | 107914493 | https://github.com/simonw/datasette/pull/1656 | ||||
880373442 | PR_kwDOBm6k_c40eW7C | 1659 | closed | 0 | Tilde encoding | 9599 | Refs #1657 | 2022-03-15T16:19:07Z | 2022-03-15T18:01:58Z | 2022-03-15T18:01:57Z | 2022-03-15T18:01:57Z | a35393b29cfb5b8abdc6a94e577af1c9a5c13652 | 0 | 99b8263806e81028af169f400352c26e5473ab44 | c10cd48baf106659bf3f129ad7bfb2226be73821 | OWNER | 107914493 | https://github.com/simonw/datasette/pull/1659 | ||||
872324754 | PR_kwDOBm6k_c4z_p6S | 1648 | closed | 0 | Use dash encoding for table names and row primary keys in URLs | 9599 | Refs #1439. - [x] Build `dash_encode` / `dash_decode` functions - [x] Use dash encoding for row primary keys - [x] Use dash encoding for `?_next=` pagination tokens - [x] Use dash encoding for table names in URLs - [x] Use dash encoding for database name - ~~Implement redirects from previous `%` URLs that replace those with `-`~~ - separate issue: #1650 | 2022-03-05T19:50:45Z | 2022-03-07T15:38:30Z | 2022-03-07T15:38:30Z | 2022-03-07T15:38:29Z | 1baa030eca375f839f3471237547ab403523e643 | 0 | 32548b88fdb413429d960966decba8f6b3889190 | 5010d1359b9e9db90a5a69a3ca22d12862893e00 | OWNER | 107914493 | https://github.com/simonw/datasette/pull/1648 | ||||
872509423 | PR_kwDOBm6k_c40AW_v | 1649 | closed | 0 | Add /opt/homebrew to where spatialite extension can be found | 2182 | Helps homebrew on Apple Silicon setups find spatialite without needing a full path. Similar to #1114 | 2022-03-06T18:09:35Z | 2022-03-06T22:46:00Z | 2022-03-06T19:39:15Z | 2022-03-06T19:39:15Z | de810f49cc57a4f88e4a1553d26c579253ce4531 | 0 | 59b2c16e3db10390b134673bda20045c351bdef8 | 0499f174c063283aa9b589d475a32077aaf7adc5 | CONTRIBUTOR | 107914493 | https://github.com/simonw/datasette/pull/1649 |