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 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
327169748 | MDExOlB1bGxSZXF1ZXN0MzI3MTY5NzQ4 | 589 | closed | 0 | Display metadata footer on custom SQL queries | 2657547 | Closes #408 | 2019-10-11T12:10:28Z | 2019-10-14T08:58:23Z | 2019-10-14T03:53:22Z | 2019-10-14T03:53:22Z | 12cec411cae73ba7211429da12cd32c551fe17b1 | 0 | 5627fe8d58e791e004b89b5614007d5e64a5c8e2 | fffd69ec031b83f46680f192ba57a27f0d1f0b8a | CONTRIBUTOR | 107914493 | https://github.com/simonw/datasette/pull/589 | ||||
1432754160 | PR_kwDOBm6k_c5VZhfw | 2100 | open | 0 | Make primary key view accessible to render_cell hook | 1563881 | <!-- readthedocs-preview datasette start --> ---- :books: Documentation preview :books:: https://datasette--2100.org.readthedocs.build/en/2100/ <!-- readthedocs-preview datasette end --> | 2023-07-13T09:30:36Z | 2023-08-10T13:15:41Z | 37e72ded81cba41c7597a4287e73c47570dca2c7 | 0 | 5639f9d943e55d6990b40db726aa59790724899a | 33251d04e78d575cca62bb59069bb43a7d924746 | FIRST_TIME_CONTRIBUTOR | 107914493 | https://github.com/simonw/datasette/pull/2100 | ||||||
655741428 | MDExOlB1bGxSZXF1ZXN0NjU1NzQxNDI4 | 1348 | open | 0 | DRAFT: add test and scan for docker images | 10801138 | **NOTE: I don't think this PR is ready, since the arm/v6 and arm/v7 images are failing pytest due to missing dependencies (gcc and friends). But it's pretty close.** Closes https://github.com/simonw/datasette/issues/1344 . Using a build-matrix for the platforms and [this test](https://github.com/simonw/datasette/issues/1344#issuecomment-849820019), we test all the platforms in parallel. I also threw in container scanning. ### Switch `pip install` to use either tags or commit shas Notably! This also [changes the Dockerfile](https://github.com/blairdrummond/datasette/blob/7fe5315d68e04fce64b5bebf4e2d7feec44f8546/Dockerfile#L20) so that it accepts tags or commit-shas. ``` # It's backwards compatible with tags, but also lets you use shas root@712071df17af:/# pip install git+git://github.com/simonw/datasette.git@0.56 Collecting git+git://github.com/simonw/datasette.git@0.56 Cloning git://github.com/simonw/datasette.git (to revision 0.56) to /tmp/pip-req-build-u6dhm945 Running command git clone -q git://github.com/simonw/datasette.git /tmp/pip-req-build-u6dhm945 Running command git checkout -q af5a7f1c09f6a902bb2a25e8edf39c7034d2e5de Collecting Jinja2<2.12.0,>=2.10.3 Downloading Jinja2-2.11.3-py2.py3-none-any.whl (125 kB) ``` This le… | 2021-05-28T03:02:12Z | 2021-05-28T03:06:16Z | eeea7cb835be0f0319cafccf50dffa6ad26826c5 | 0 | 56cba8fb837cd938c2f9d7423ee43d62a81c8f7c | 7b106e106000713bbee31b34d694b3dadbd4818c | CONTRIBUTOR | 107914493 | https://github.com/simonw/datasette/pull/1348 | ||||||
560831638 | MDExOlB1bGxSZXF1ZXN0NTYwODMxNjM4 | 1206 | closed | 0 | Release 0.54 | 9599 | Refs #1201 | 2021-01-25T06:45:47Z | 2021-01-25T17:33:30Z | 2021-01-25T17:33:29Z | 2021-01-25T17:33:29Z | 0b9ac1b2e9c855f1b823a06a898891da87c720ef | 0 | 571476d2cf8f7d7eac6098de8557264e69cac43f | a5ede3cdd455e2bb1a1fb2f4e1b5a9855caf5179 | OWNER | 107914493 | https://github.com/simonw/datasette/pull/1206 | ||||
369348084 | MDExOlB1bGxSZXF1ZXN0MzY5MzQ4MDg0 | 78 | closed | 0 | New conversions= feature, refs #77 | 9599 | 2020-01-31T00:02:33Z | 2020-09-22T07:48:29Z | 2020-01-31T00:24:31Z | 2020-01-31T00:24:31Z | e8b2b7383bd94659d3b7a857a1414328bc48bc19 | 0 | 58190d67821aaa57c8ca0320a08e3691d6e27344 | 59a2e8ebdcbde7e6fb091b0556713ca5a20ea4e7 | OWNER | 140912432 | https://github.com/simonw/sqlite-utils/pull/78 | |||||
214653641 | MDExOlB1bGxSZXF1ZXN0MjE0NjUzNjQx | 364 | open | 0 | Support for other types of databases using external connectors | 11912854 | This PR is related to #293, but now all commits have been merged. The purpose is to support other file formats that aren't SQLite, like files with PyTables format. I've tried to accomplish that using external connectors published with entry points. The modifications in the original datasette code are minimal and many are in a separated file. | 2018-09-11T14:31:47Z | 2018-09-11T14:31:47Z | d84f3b1f585cb52b58aed0401c34214de2e8b47b | 0 | 592fd05f685859b271f0305c2fc8cdb7da58ebfb | b7257a21bf3dfa7353980f343c83a616da44daa7 | FIRST_TIME_CONTRIBUTOR | 107914493 | https://github.com/simonw/datasette/pull/364 | ||||||
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 | ||||
190901429 | MDExOlB1bGxSZXF1ZXN0MTkwOTAxNDI5 | 293 | closed | 0 | Support for external database connectors | 11912854 | I think it would be nice that Datasette could work with other file formats that aren't SQLite, like files with PyTables format. I've tried to accomplish that using external connectors published with entry points. These external connectors must have a structure similar to the structure [PyTables Datasette connector](https://github.com/PyTables/datasette-pytables) has. | 2018-05-28T11:02:45Z | 2018-09-11T14:32:45Z | 2018-09-11T14:32:45Z | ad2cb12473025ffab738d4df6bb47cd8b2e27859 | 0 | 59c94be46f9ccd806dd352fa28a6dba142d5ab82 | b7257a21bf3dfa7353980f343c83a616da44daa7 | FIRST_TIME_CONTRIBUTOR | 107914493 | https://github.com/simonw/datasette/pull/293 | |||||
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 | ||||
327188087 | MDExOlB1bGxSZXF1ZXN0MzI3MTg4MDg3 | 591 | closed | 0 | Sort databases on homepage by argument order | 2657547 | Closes #585 | 2019-10-11T12:57:38Z | 2019-10-14T08:57:50Z | 2019-10-14T03:52:34Z | 2019-10-14T03:52:34Z | 908fc3999e06f3ccd3bb8ad0539490bbc7809748 | 0 | 5a8e52fa60f2c2c93f10b9c6c126f31b02d647b0 | fffd69ec031b83f46680f192ba57a27f0d1f0b8a | CONTRIBUTOR | 107914493 | https://github.com/simonw/datasette/pull/591 | ||||
1046652968 | PR_kwDOBm6k_c4-Yqgo | 1799 | closed | 0 | Update aiofiles requirement from <0.9,>=0.4 to >=0.4,<22.2 | 49699333 | Updates the requirements on [aiofiles](https://github.com/Tinche/aiofiles) to permit the latest version. <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/Tinche/aiofiles/commit/9d697f5857b5e49bad485212d9d81917ce65b607"><code>9d697f5</code></a> 22.1.0</li> <li><a href="https://github.com/Tinche/aiofiles/commit/6a14491ff8fe7dd9788c62722f4f4bc7922d0c92"><code>6a14491</code></a> Update README</li> <li><a href="https://github.com/Tinche/aiofiles/commit/76f8934028d0cf490e180636f55eb381fa9343f9"><code>76f8934</code></a> Update test deps</li> <li><a href="https://github.com/Tinche/aiofiles/commit/885df353c199dd86d64424663880f0972b0c3943"><code>885df35</code></a> Min Python to 3.7</li> <li><a href="https://github.com/Tinche/aiofiles/commit/a93206be5bbc12c68a5bef753d40a8af449fa934"><code>a93206b</code></a> Bump poetry to 1.2.0</li> <li><a href="https://github.com/Tinche/aiofiles/commit/d2eda6120a813a6bd1014bd676abade70928c641"><code>d2eda61</code></a> Add missing comma</li> <li><a href="https://github.com/Tinche/aiofiles/commit/b02cf6a33872598cae3e587d233ad5404d7c7fb0"><code>b02cf6a</code></a> CI tweaks</li> <li><a href="https://github.com/Tinche/aiofiles/commit/7636eff01f2de6e2d3f94ea234eaf27380b33080"><code>7636eff</code></a> Update README.rst</li> <li><a href="https://github.com/Tinche/aiofiles/commit/9bc662aab0f735d06c54c69938ff3a828d8f91d8"><code>9bc662a</code></a> Added os scantdir with is't tests and improved the tests for listdir</li> <li><a href="https://github.com/Tinche/aiofiles/commit/2aefa1e4df8356604b5692fda45877b8a401e0df"><code>2aefa1e</code></a> Added os listdir function with it's tests</li> <li>Additional commits viewable in <a href="https://github.com/Tinche/aiofiles/compare/v0.4.0...v22.1.0">compare view</a></li> </ul> </details> <br /> 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) --- … | 2022-09-05T16:13:48Z | 2022-09-05T18:36:44Z | 2022-09-05T18:36:43Z | 1f3d29c2db5cbd793cd6224049cb3fe1f4a74b7e | 0 | 5abd55a273fedfb700f76b97dc88f5cc2620446e | ba35105eee2d3ba620e4f230028a02b2e2571df2 | CONTRIBUTOR | 107914493 | https://github.com/simonw/datasette/pull/1799 | |||||
494146043 | MDExOlB1bGxSZXF1ZXN0NDk0MTQ2MDQz | 977 | closed | 0 | Update pytest requirement from <6.1.0,>=5.2.2 to >=5.2.2,<6.2.0 | 27856297 | 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>6.1.0</h2> <h1>pytest 6.1.0 (2020-09-26)</h1> <h2>Breaking Changes</h2> <ul> <li> <p><a href="https://github-redirect.dependabot.com/pytest-dev/pytest/issues/5585">#5585</a>: As per our policy, the following features which have been deprecated in the 5.X series are now removed:</p> <ul> <li>The <code>funcargnames</code> read-only property of <code>FixtureRequest</code>, <code>Metafunc</code>, and <code>Function</code> classes. Use <code>fixturenames</code> attribute.</li> <li><code>@pytest.fixture</code> no longer supports positional arguments, pass all arguments by keyword instead.</li> <li>Direct construction of <code>Node</code> subclasses now raise an error, use <code>from_parent</code> instead.</li> <li>The default value for <code>junit_family</code> has changed to <code>xunit2</code>. If you require the old format, add <code>junit_family=xunit1</code> to your configuration file.</li> <li>The <code>TerminalReporter</code> no longer has a <code>writer</code> attribute. Plugin authors may use the public functions of the <code>TerminalReporter</code> instead of accessing the <code>TerminalWriter</code> object directly.</li> <li>The <code>--result-log</code> option has been removed. Users are recommended to use the <a href="https://github.com/pytest-dev/pytest-reportlog">pytest-reportlog</a> plugin instead.</li> </ul> <p>For more information consult <a href="https://docs.pytest.org/en/stable/deprecations.html">Deprecations and Removals</a> in the docs.</p> </li> </ul> <h2>Deprecations</h2> <ul> <li> <p><a href="https://github-redirect.dependabot.com/pytest-dev/pytest/issues/6981">#6981</a>: The <code>pytest.collect</code> module is deprecated: all its names can be imported from <code>pytest</code> directly.</p> </li> <li> <p><a href="https://gi… | 2020-09-28T13:33:05Z | 2020-09-28T22:16:36Z | 2020-09-28T22:16:35Z | 2020-09-28T22:16:35Z | 1f021c37110fc9019b0ef70062c28c335e568ae2 | 0 | 5c01344a0ee3e0e7ad59e1cd8b0e63c976be71ee | 9a6d0dce282e7fb58c5610e24c74098c923abfdc | CONTRIBUTOR | 107914493 | https://github.com/simonw/datasette/pull/977 | ||||
270251021 | MDExOlB1bGxSZXF1ZXN0MjcwMjUxMDIx | 432 | closed | 0 | Refactor facets to a class and new plugin, refs #427 | 9599 | WIP for #427 | 2019-04-13T20:04:45Z | 2019-05-03T00:04:24Z | 2019-05-03T00:04:24Z | b78bc19269ed83b054a60c79c4fe08f4ca943942 | 0 | 5c198f7ca5d2aff49180820271ba8d06b79aefb1 | 9c77e6e355ec718d76178a7607721d10a66b6aef | OWNER | 107914493 | https://github.com/simonw/datasette/pull/432 | |||||
483175509 | MDExOlB1bGxSZXF1ZXN0NDgzMTc1NTA5 | 158 | closed | 0 | Fix accidental mega long line in docs | 167319 | 2020-09-09T22:31:23Z | 2020-09-16T06:21:43Z | 2020-09-16T06:21:43Z | 2020-09-16T06:21:43Z | 7805d53bcf11199bd1f2b07e05ae90151f9d0eb0 | 0 | 5c1d8a5f3ac8684657eefe4f57ff5ff605f6b633 | 367082e787101fb90901ef3214804ab23a92ce46 | CONTRIBUTOR | 140912432 | https://github.com/simonw/sqlite-utils/pull/158 | |||||
189723716 | MDExOlB1bGxSZXF1ZXN0MTg5NzIzNzE2 | 280 | closed | 0 | Build Dockerfile with recent Sqlite + Spatialite | 565628 | This solves #278 without bloating the Dockerfile too much, the image size is now 495MB (original was ~240MB) but it could be reduced significantly if we only copied the output of the compilation of spatialite and friends to /usr/local/lib, instead of the entirety of it however that will take more time. In the python code change references to `import sqlite3` to `import pysqlite3` and it should use the compiled version of sqlite3.23.1. You don't need to try/except because pysqlite3 falls back to builtin sqlite3 if there is no compiled version. ```bash $ docker run --rm -it datasette spatialite SpatiaLite version ..: 4.4.0-RC0 Supported Extensions: - 'VirtualShape' [direct Shapefile access] - 'VirtualDbf' [direct DBF access] - 'VirtualXL' [direct XLS access] - 'VirtualText' [direct CSV/TXT access] - 'VirtualNetwork' [Dijkstra shortest path] - 'RTree' [Spatial Index - R*Tree] - 'MbrCache' [Spatial Index - MBR cache] - 'VirtualSpatialIndex' [R*Tree metahandler] - 'VirtualElementary' [ElemGeoms metahandler] - 'VirtualKNN' [K-Nearest Neighbors metahandler] - 'VirtualXPath' [XML Path Language - XPath] - 'VirtualFDO' [FDO-OGR interoperability] - 'VirtualGPKG' [OGC GeoPackage interoperability] - 'VirtualBBox' [BoundingBox tables] - 'SpatiaLite' [Spatial SQL - OGC] PROJ.4 version ......: Rel. 4.9.3, 15 August 2016 GEOS version ........: 3.5.1-CAPI-1.9.1 r4246 TARGET CPU ..........: x86_64-linux-gnu the SPATIAL_REF_SYS table already contains some row(s) SQLite version ......: 3.23.1 Enter ".help" for instructions SQLite version 3.23.1 2018-04-10 17:39:29 Enter ".help" for instructions Enter SQL statements terminated with a ";" spatialite> ``` ```bash $ docker run --rm -it datasette python -c "import pysqlite3; print(pysqlite3.sqlite_version)" 3.23.1 ``` | 2018-05-22T16:33:50Z | 2018-06-28T11:26:23Z | 2018-05-23T17:43:35Z | 2018-05-23T17:43:35Z | bd30c696e18927207358ee9d63174a5c41c8297e | 0 | 5cf78eded61cacec435b854e18f1e94511cf2da8 | 58b5a37dbbf13868a46bcbb284509434e66eca25 | CONTRIBUTOR | 107914493 | https://github.com/simonw/datasette/pull/280 | ||||
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 | ||||
1488057979 | PR_kwDOBm6k_c5YsfZ7 | 2152 | 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 [blacken-docs](https://github.com/asottile/blacken-docs). Updates `sphinx` from 7.1.2 to 7.2.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>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.3 (released Aug 23, 2023)</h1> <h2>Dependencies</h2> <ul> <li><a href="https://redirect.github.com/sphinx-doc/sphinx/issues/11576">#11576</a>: Require sphinxcontrib-serializinghtml 1.1.9.</li> </ul> <h2>Bugs fixed</h2> <ul> <li>Fix regression in <code>autodoc.Documenter.parse_name()</code>.</li> <li>Fix regression in JSON serialisation.</li> <li><a href="https://redirect.github.com/sphinx-doc/sphinx/issues/11543">#11543</a>: autodoc: Support positional-only parameters in <code>classmethod</code> methods when <code>autodoc_preserve_defaults</code> is <code>True</code>.</li> <li>Restore support string methods on path objects. This is deprecated and will be removed in Sphinx 8. Use :py:func<code>os.fspath</code> to convert :py:class:<del><code>pathlib.Path</code> objects to strings, or :py:class:</del><code>p… | 2023-08-24T13:34:44Z | 2023-08-28T13:49:39Z | 2023-08-28T13:49:37Z | 67309f5c52670b5a139bcfc7bbce8039a5af2a00 | 0 | 5dfa3055fa9812a7ae56741a0103ae59352f44bb | 527cec66b0403e689c8fb71fc8b381a1d7a46516 | CONTRIBUTOR | 107914493 | https://github.com/simonw/datasette/pull/2152 | |||||
521287994 | MDExOlB1bGxSZXF1ZXN0NTIxMjg3OTk0 | 203 | open | 0 | changes to allow for compound foreign keys | 1049910 | Add support for compound foreign keys, as per issue #117 Not sure if this is the right approach. In particular I'm unsure about: - the new `ForeignKey` class, which replaces the namedtuple in order to ensure that `column` and `other_column` are forced into tuples. The class does the job, but doesn't feel very elegant. - I haven't rewritten `guess_foreign_table` to take account of multiple columns, so it just checks for the first column in the foreign key definition. This isn't ideal. - I haven't added any ability to the CLI to add compound foreign keys, it's only in the python API at the moment. The PR also contains a minor related change that columns and tables are always quoted in foreign key definitions. | 2020-11-16T00:30:10Z | 2023-01-25T18:47:18Z | 0507a9464314f84e9e58b1931c583df51d757d7c | 0 | 5e43e31c2b9bcf6b5d1460b0f848fed019ed42a6 | f1277f638f3a54a821db6e03cb980adad2f2fa35 | FIRST_TIME_CONTRIBUTOR | 140912432 | https://github.com/simonw/sqlite-utils/pull/203 | ||||||
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 | ||||
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 | ||||
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 | ||||
512736705 | MDExOlB1bGxSZXF1ZXN0NTEyNzM2NzA1 | 1065 | closed | 0 | Nav menu plus menu_links() hook | 9599 | Closes #1064, refs #690. | 2020-10-30T03:40:18Z | 2020-10-30T03:45:17Z | 2020-10-30T03:45:16Z | 2020-10-30T03:45:16Z | 18a64fbb29271ce607937110bbdb55488c43f4e0 | 6026070 | 0 | 5f118b56afbeff5348acd50a8b87537210e731ee | 1a861be19e326e0c88230a711a1b6536366697d7 | OWNER | 107914493 | https://github.com/simonw/datasette/pull/1065 | |||
1501923826 | PR_kwDOJHON9s5ZhYny | 14 | open | 0 | fix: fix the problem of Chinese character garbling | 2698003 | 1. The code uses two different ways of writing encoding formats, `mac_roman` and `macroman`. It is uncertain whether there are any typo errors. 2. When there are Chinese characters in the content, exporting it results in garbled code. Changing it to `utf8` can fix the issue. | 2023-09-04T23:48:28Z | 2023-09-04T23:48:28Z | 66b5b73948b1bedc275432956dda43cfe151c78c | 0 | 5febe19b8922aa818e7dc265bdee30bcc5004eb4 | e55a802d37a896475b6cf475c1ba947af63cca73 | FIRST_TIME_CONTRIBUTOR | 611552758 | https://github.com/dogsheep/apple-notes-to-sqlite/pull/14 | ||||||
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 | ||||
391924509 | MDExOlB1bGxSZXF1ZXN0MzkxOTI0NTA5 | 703 | closed | 0 | WIP implementation of writable canned queries | 9599 | Refs #698. | 2020-03-21T22:23:51Z | 2020-06-03T00:08:14Z | 2020-06-02T23:57:35Z | 80c5a74a947e63673389604de12e80fa27305454 | 1 | 61e40e917efc43a8aea5298a22badbb6eaea3fa1 | 89c4ddd4828623888e91a1d2cb396cba12d4e7b4 | OWNER | 107914493 | https://github.com/simonw/datasette/pull/703 | |||||
300580221 | MDExOlB1bGxSZXF1ZXN0MzAwNTgwMjIx | 8 | closed | 0 | Use less RAM | 9599 | Closes #7 | 2019-07-24T06:35:01Z | 2019-07-24T06:35:52Z | 2019-07-24T06:35:52Z | 2019-07-24T06:35:52Z | c8392df78ee3e1643d18b747a4abf585d84d5d88 | 0 | 6261500b01274a739176480774e82b31f2926e7f | 5d7e14d40d5a4cfd133ca5faa442312f607784c5 | MEMBER | 197882382 | https://github.com/dogsheep/healthkit-to-sqlite/pull/8 | ||||
269364924 | MDExOlB1bGxSZXF1ZXN0MjY5MzY0OTI0 | 426 | closed | 0 | Upgrade to Jinja2==2.10.1 | 9599 | https://nvd.nist.gov/vuln/detail/CVE-2019-10906 This is only a security issue of concern if evaluating templates from untrusted sources, which isn't something I would ever expect a Datasette user to do. | 2019-04-10T23:03:08Z | 2019-04-22T21:23:22Z | 2019-04-10T23:13:31Z | 2019-04-10T23:13:31Z | 9cd3b44277e6a8ea9273bf659379ff0414e0b8ae | 0 | 629453383c7f911eddfc891f22c39b7d6e9661aa | 78e45ead4d771007c57b307edf8fc920101f8733 | OWNER | 107914493 | https://github.com/simonw/datasette/pull/426 | ||||
510956134 | MDExOlB1bGxSZXF1ZXN0NTEwOTU2MTM0 | 190 | closed | 0 | Progress bar for sqlite-utils insert command | 9599 | Refs #173 | 2020-10-27T18:08:53Z | 2020-10-27T18:16:03Z | 2020-10-27T18:16:03Z | 2020-10-27T18:16:03Z | f99a23652910b03ac4669bbbb35a9b484451aabb | 0 | 62d678122a251812cd650845705ca7b9efcef86d | c7e5dd64513c0ec2b2df4c51c8df924c282417f9 | OWNER | 140912432 | https://github.com/simonw/sqlite-utils/pull/190 | ||||
841715204 | PR_kwDOBm6k_c4yK44E | 1631 | closed | 0 | Update pytest-asyncio requirement from <0.17,>=0.10 to >=0.10,<0.19 | 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.18.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-02-07T13:13:19Z | 2022-03-06T01:29:54Z | 2022-03-06T01:29:53Z | 2022-03-06T01:29:53Z | a22ec96c3ac555337eb49121450723a273fb52d1 | 0 | 62eed844d3514957e7578e6981c5cb49227e97f8 | 03305ea183b1534bc4cef3a721fe5f3700273b84 | CONTRIBUTOR | 107914493 | https://github.com/simonw/datasette/pull/1631 | ||||
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 | ||||
508720660 | MDExOlB1bGxSZXF1ZXN0NTA4NzIwNjYw | 1044 | closed | 0 | Add minimum supported python | 45380 | Thanks for `datasette`! This PR adds `python_requires` to formally signal the [minimum supported python version](https://packaging.python.org/guides/dropping-older-python-versions/#specify-the-version-ranges-for-supported-python-distributions) (which is pointed out with classifiers, so seems pretty straightforward). | 2020-10-23T05:08:03Z | 2020-10-23T20:53:08Z | 2020-10-23T20:53:08Z | 2020-10-23T20:53:08Z | cab8e65261b117b493af6a0b21aa2e1ae4564419 | 0 | 6453ab18e56b36bc912b6f24c4a43002c6084ade | d0cc6f4c32e1f89238ddec782086b3122f445bd4 | CONTRIBUTOR | 107914493 | https://github.com/simonw/datasette/pull/1044 | ||||
448355680 | MDExOlB1bGxSZXF1ZXN0NDQ4MzU1Njgw | 30 | open | 0 | Handle empty bucket on first upload. Allow specifying the endpoint_url for services other than S3 (like b2 and digitalocean spaces) | 110038 | Finally got around to trying dogsheep-photos but I want to use backblaze's b2 service instead of AWS S3. Had to add a way to optionally specify the endpoint_url to connect to. Then with the bucket being empty the initial key retrieval would fail. Probably a better way to see that the bucket is empty than doing a test inside the paginator loop. Also probably a better way to specify the endpoint_url as we get and test for it twice using the same code in two different places but did not want to spend too much time worrying about it. | 2020-07-13T16:15:26Z | 2020-07-13T16:15:26Z | 583b26f244166aadf2dcc680e39d1ca59765da37 | 0 | 647d4b42c6f4d1fba4b99f73fe163946cea6ee36 | 45ce3f8bfb8c70f57ca5d8d82f22368fea1eb391 | FIRST_TIME_CONTRIBUTOR | 256834907 | https://github.com/dogsheep/dogsheep-photos/pull/30 | ||||||
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 | ||||
370024697 | MDExOlB1bGxSZXF1ZXN0MzcwMDI0Njk3 | 4 | closed | 0 | Add beeminder-to-sqlite | 706257 | 2020-02-02T15:51:36Z | 2020-10-12T00:36:16Z | 2020-10-12T00:36:16Z | 2020-10-12T00:36:16Z | 7e4c6ecdabc249c77e8049cd172b1b5af08a3371 | 0 | 6713b5c50178b95a9ec50227d4ef5793e71e8b0a | 2972bb001ab5f675eced62f7ba5adef2d3eba2ad | CONTRIBUTOR | 214746582 | https://github.com/dogsheep/dogsheep.github.io/pull/4 | |||||
181600926 | MDExOlB1bGxSZXF1ZXN0MTgxNjAwOTI2 | 204 | closed | 0 | Initial units support | 45057 | Add support for specifying units for a column in metadata.json and rendering them on display using [pint](https://pint.readthedocs.io/en/latest/). Example table metadata: ```json "license_frequency": { "units": { "frequency": "Hz", "channel_width": "Hz", "height": "m", "antenna_height": "m", "azimuth": "degrees" } } ``` [Example result](https://wtr-api.herokuapp.com/wtr-663ea99/license_frequency/1) This works surprisingly well! I'd like to add support for using units when querying but this is PR is pretty usable as-is. (Pint doesn't seem to support decibels though - it thinks they're decibytes - which is an annoying omission.) (ref ticket #203) | 2018-04-13T21:32:49Z | 2018-04-14T09:44:33Z | 2018-04-14T03:32:54Z | 2018-04-14T03:32:54Z | ec6abc81e433c9bac1b9f085111785fc227e9e34 | 0 | 67c20a98a0cbb59a10247a49320c2feb7d0b1b41 | fb988ace7c7e2bee5ac142a0eab22431d0675a77 | CONTRIBUTOR | 107914493 | https://github.com/simonw/datasette/pull/204 | ||||
799906901 | PR_kwDOBm6k_c4vrZxV | 1548 | closed | 0 | Update pytest-xdist requirement from <2.5,>=2.2.1 to >=2.2.1,<2.6 | 49699333 | Updates the requirements on [pytest-xdist](https://github.com/pytest-dev/pytest-xdist) to permit the latest version. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pytest-dev/pytest-xdist/blob/master/CHANGELOG.rst">pytest-xdist's changelog</a>.</em></p> <blockquote> <h1>pytest-xdist 2.5.0 (2021-12-10)</h1> <h2>Features</h2> <ul> <li> <p><code>[#722](https://github.com/pytest-dev/pytest-xdist/issues/722) <https://github.com/pytest-dev/pytest-xdist/issues/722></code>_: Full compatibility with pytest 7 - no deprecation warnings or use of legacy features.</p> </li> <li> <p><code>[#733](https://github.com/pytest-dev/pytest-xdist/issues/733) <https://github.com/pytest-dev/pytest-xdist/issues/733></code>_: New <code>--dist=loadgroup</code> option, which ensures all tests marked with <code>@pytest.mark.xdist_group</code> run in the same session/worker. Other tests run distributed as in <code>--dist=load</code>.</p> </li> </ul> <h2>Trivial Changes</h2> <ul> <li> <p><code>[#708](https://github.com/pytest-dev/pytest-xdist/issues/708) <https://github.com/pytest-dev/pytest-xdist/issues/708></code>_: Use <code>@pytest.hookspec</code> decorator to declare hook options in <code>newhooks.py</code> to avoid warnings in <code>pytest 7.0</code>.</p> </li> <li> <p><code>[#719](https://github.com/pytest-dev/pytest-xdist/issues/719) <https://github.com/pytest-dev/pytest-xdist/issues/719></code>_: Use up-to-date <code>setup.cfg</code>/<code>pyproject.toml</code> packaging setup.</p> </li> <li> <p><code>[#720](https://github.com/pytest-dev/pytest-xdist/issues/720) <https://github.com/pytest-dev/pytest-xdist/issues/720></code>_: Require pytest>=6.2.0.</p> </li> <li> <p><code>[#721](https://github.com/pytest-dev/pytest-xdist/issues/721) <https://github.com/pytest-dev/pytest-xdist/issues/721></code>_: Started using type annotations and mypy checking internally. The types are incomplete and not published.</p> </li> </ul> <h1>pytest-xdist 2.4.0 (2021-09-20)</h1> <h… | 2021-12-10T13:12:06Z | 2021-12-13T23:22:22Z | 2021-12-13T23:22:21Z | 2021-12-13T23:22:21Z | 8b411a6b70e93e044820d613a28607ba5d6fe416 | 0 | 68383f5c8e42a96537ae13ea6ede5cf6f0ed4d83 | 737115ea14cd51ffb55dea886e6a684c148db2c9 | CONTRIBUTOR | 107914493 | https://github.com/simonw/datasette/pull/1548 | ||||
347179081 | MDExOlB1bGxSZXF1ZXN0MzQ3MTc5MDgx | 644 | closed | 0 | Validate metadata json on startup | 6025893 | This PR adds a sanity check which builds up a marshmallow schema on-the-fly based on the structure of the database(s) on startup and then validates the metadata json against it. In case of invalid data, this will raise with a descriptive error e.g: ``` marshmallow.exceptions.ValidationError: {'databases': {'fixtures': {'tables': {'not_a_table': ['Unknown field.']}}}} ``` Closes #260 --- This was intended to be fairly self-contained, but then while I was working on it, I hit some problems getting the tests to pass in the context of the test suite as a whole. My tests passed in isolation, but then failed while doing a full test suite run. That's when the worms started coming out of the can :bug: After some sleuthing, it turned out this was essentially the result of several issues intersecting: * There are certain events in the application lifecycle where the metadata schema can be modified after it is loaded e.g: https://github.com/simonw/datasette/blob/a562f2965552fb2dbbbd74df245c9965ee23d886/datasette/app.py#L299-L320 This means that sometimes what goes in isn't always exactly what comes out when you call `/-/metadata`. * Because the test fixtures use session scope for performance reasons if one unit test performs an action which mutates the metadata, that can impact on other unit tests which run after it using the same fixture. * Because the `self._metadata` property was being set with a simple assignment `self._metadata = metadata`, that created an object reference to the test fixture data, so operating on `self._metadata` was actually modifying the test fixture `METADATA` meaning that depending on when it was loaded in the test suite lifecycle, `METADATA` had different content, which was somewhat unexpected. As such, I've added some band-aids in 3552024 and 6859fd8: * Switching the metadata object to a `deepcopy` of the input prevents us directly mutating the input fixture. * I've switched some of the tests to use a fixture with function scope instead of session scope so we're workin… | 2019-11-30T00:32:15Z | 2021-07-28T17:58:45Z | 2021-07-28T17:58:45Z | e71b642474d54f986bc8857346103d8a10d84e6d | 0 | 6859fd8c5eef26f397aa949dc4edf3747e8ab0a5 | a562f2965552fb2dbbbd74df245c9965ee23d886 | CONTRIBUTOR | 107914493 | https://github.com/simonw/datasette/pull/644 | |||||
1349830554 | PR_kwDOBm6k_c5QdMea | 2074 | open | 0 | sort files by mtime | 3919561 | serving multiple database files and getting tired by the default sort, changes so the sort order puts the latest changed databases to be on top of the list so don't have to scroll down, lazy as i am ;) <!-- readthedocs-preview datasette start --> ---- :books: Documentation preview :books:: https://datasette--2074.org.readthedocs.build/en/2074/ <!-- readthedocs-preview datasette end --> | 2023-05-14T15:25:15Z | 2023-05-14T15:25:29Z | 4fe4822c999a3003a9e3093814274190ea05e522 | 0 | 689e3b0155612c766607feea10bc2e67e1c2a6da | 49184c569cd70efbda4f3f062afef3a34401d8d5 | FIRST_TIME_CONTRIBUTOR | 107914493 | https://github.com/simonw/datasette/pull/2074 | ||||||
658991404 | MDExOlB1bGxSZXF1ZXN0NjU4OTkxNDA0 | 1352 | closed | 0 | Bump black from 21.5b1 to 21.5b2 | 49699333 | Bumps [black](https://github.com/psf/black) from 21.5b1 to 21.5b2. <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>21.5b2</h2> <h3><em>Black</em></h3> <ul> <li>A space is no longer inserted into empty docstrings (<a href="https://github-redirect.dependabot.com/psf/black/issues/2249">#2249</a>)</li> <li>Fix handling of .gitignore files containing non-ASCII characters on Windows (<a href="https://github-redirect.dependabot.com/psf/black/issues/2229">#2229</a>)</li> <li>Respect <code>.gitignore</code> files in all levels, not only <code>root/.gitignore</code> file (apply <code>.gitignore</code> rules like <code>git</code> does) (<a href="https://github-redirect.dependabot.com/psf/black/issues/2225">#2225</a>)</li> <li>Restored compatibility with Click 8.0 on Python 3.6 when LANG=C used (<a href="https://github-redirect.dependabot.com/psf/black/issues/2227">#2227</a>)</li> <li>Add extra uvloop install + import support if in python env (<a href="https://github-redirect.dependabot.com/psf/black/issues/2258">#2258</a>)</li> <li>Fix --experimental-string-processing crash when matching parens are not found (<a href="https://github-redirect.dependabot.com/psf/black/issues/2283">#2283</a>)</li> <li>Make sure to split lines that start with a string operator (<a href="https://github-redirect.dependabot.com/psf/black/issues/2286">#2286</a>)</li> <li>Fix regular expression that black uses to identify f-expressions (<a href="https://github-redirect.dependabot.com/psf/black/issues/2287">#2287</a>)</li> </ul> <h3><em>Blackd</em></h3> <ul> <li>Add a lower bound for the <code>aiohttp-cors</code> dependency. Only 0.4.0 or higher is supported. (<a href="https://github-redirect.dependabot.com/psf/black/issues/2231">#2231</a>)</li> </ul> <h3><em>Packaging</em></h3> <ul> <li>Release self-contained x86_64 MacOS binaries as part of the GitHub release pipeline (<a href="https://github-redirect.dependabot.com/psf/black/issues/2198">… | 2021-06-01T13:08:52Z | 2021-06-02T02:56:45Z | 2021-06-02T02:56:44Z | 2021-06-02T02:56:44Z | 03b35d70e281ea48bd9b8058738ed87b13cea2de | 0 | 6921552c80854d6ea73203fe2f9ab46bac6d5644 | a18e8641bc33e51b265855bc6e8a1939597b3a76 | CONTRIBUTOR | 107914493 | https://github.com/simonw/datasette/pull/1352 | ||||
719998225 | MDExOlB1bGxSZXF1ZXN0NzE5OTk4MjI1 | 322 | closed | 0 | Add dict type to be mapped as TEXT in sqllite | 2496189 | the library deal with Postgres type jsonb as dictionary, add dict type as a TEXT for mapping to sqlite | 2021-08-25T20:54:26Z | 2021-11-15T00:27:40Z | 2021-11-15T00:27:40Z | 2021-11-15T00:27:40Z | 271b894af52eb6437ae6cd84eba9867ad8dd43f6 | 0 | 69619f68c26478fdee479110e084fd22711013a3 | 77c240df56068341561e95e4a412cbfa24dc5bc7 | CONTRIBUTOR | 140912432 | https://github.com/simonw/sqlite-utils/pull/322 | ||||
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 | ||||
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 | ||||
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 | ||||
445833908 | MDExOlB1bGxSZXF1ZXN0NDQ1ODMzOTA4 | 120 | closed | 0 | Fix query command's support for DML | 79913 | See commit messages for details. I ran into this while investigating another feature/issue. | 2020-07-08T01:36:34Z | 2020-07-08T05:14:04Z | 2020-07-08T05:14:04Z | 2020-07-08T05:14:04Z | f8277d0fb9c05a88a9ff01d996e31d55f0f0a645 | 0 | 6a660d12a27864d6ab552e11eef9fd13bc281198 | d0cdaaaf00249230e847be3a3b393ee2689fbfe4 | CONTRIBUTOR | 140912432 | https://github.com/simonw/sqlite-utils/pull/120 | ||||
1479018104 | PR_kwDOBm6k_c5YKAZ4 | 2142 | closed | 0 | Bump the python-packages group with 2 updates | 49699333 | Bumps the python-packages group with 2 updates: [sphinx](https://github.com/sphinx-doc/sphinx) and [blacken-docs](https://github.com/asottile/blacken-docs). Updates `sphinx` from 7.1.2 to 7.2.0 <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.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.0 (released Aug 17, 2023)</h1> <h2>Dependencies</h2> <ul> <li><a href="https://redirect.github.com/sphinx-doc/sphinx/issues/11511">#11511</a>: Drop Python 3.8 support.</li> <li><a href="https://redirect.github.com/sphinx-doc/sphinx/issues/11576">#11576</a>: Require Pygments 2.14 or later.</li> </ul> <h2>Deprecated</h2> <ul> <li><a href="https://redirect.github.com/sphinx-doc/sphinx/issues/11512">#11512</a>: Deprecate <code>sphinx.util.md5</code> and <code>sphinx.util.sha1</code>. Use <code>hashlib</code> instead.</li> <li><a href="https://redirect.github.com/sphinx-doc/sphinx/issues/11526">#11526</a>: Deprecate <code>sphinx.testing.path</code>. Use <code>os.path</code> or <code>pathlib</code> instead.</li> <li><a href="https://redirect.github.com/sphinx-doc/sphinx/issues/11528">#11528</a>: Deprecate <code>sphinx.util.split_index_msg</code> and <code>sphinx.util.split_into</code>. Use <code>sphinx.util.index_entries.split_index_msg</code> instead.</li> <li>Deprecate <code>sphinx.builders.html.Stylesheet</code> and <code>sphinx.builders.html.Javascript</code>. Use <code>sphinx.application.Sphinx.add_css_file()</code> and <code>sphinx.application.Sphinx.add_js_file()</code> instead.</li> <li><a href="https://redirect.github.com/sphinx-doc/sphinx/issues/11582">#11582</a>: Deprecate <code>sphinx.builders.h… | 2023-08-17T13:07:53Z | 2023-08-18T13:49:29Z | 2023-08-18T13:49:26Z | 51c92d2b93052de68b53f2dbee1e8bde5e841dd8 | 0 | 6b617f7f50fb72feb9767b3b430495097f16140a | 943df09dcca93c3b9861b8c96277a01320db8662 | CONTRIBUTOR | 107914493 | https://github.com/simonw/datasette/pull/2142 | |||||
153201945 | MDExOlB1bGxSZXF1ZXN0MTUzMjAxOTQ1 | 114 | closed | 0 | Add spatialite, switch to debian and local build | 54999 | Improves the Dockerfile to support spatial datasets, work with the local datasette code (Friendly with git tags and Dockerhub) and moves to slim debian, a small image easy to extend via apt packages for sqlite. | 2017-11-17T02:37:09Z | 2017-11-17T03:50:52Z | 2017-11-17T03:50:52Z | 2017-11-17T03:50:52Z | 8b4c600d98b85655b3a1454ebf64f858b5fe54c8 | 0 | 6c6b63d890529eeefcefb7ab126ea3bd7b2315c1 | b7c4165346ee8b6a6fbd72d6ba2275a24a8a8ae3 | CONTRIBUTOR | 107914493 | https://github.com/simonw/datasette/pull/114 | ||||
775078665 | PR_kwDODFE5qs4uMsMJ | 9 | open | 0 | Removed space from filename My Activity.json | 91880982 | File name from google takeout has no space. The code only runs without error if filename is "MyActivity.json" and not "My Activity.json". Is it a new change by Google? | 2021-11-08T00:04:31Z | 2021-11-08T00:04:31Z | 236da5c8302c09a20fcd4164c563cd9fa5c9595c | 0 | 6d111f65687e13ffd8b39aa05f1f8f4a351e7788 | e54e544427f1cc3ea8189f0e95f54046301a8645 | FIRST_TIME_CONTRIBUTOR | 206649770 | https://github.com/dogsheep/google-takeout-to-sqlite/pull/9 | ||||||
1154884166 | PR_kwDOBm6k_c5E1iJG | 1938 | closed | 0 | "permissions" blocks in metadata.json/yaml | 9599 | Refs #1636 - [x] Documentation - [ ] Implementation - [ ] Validate metadata to check there are no nonsensical permissions (like `debug-menu` set at the table level) - [ ] Tests <!-- readthedocs-preview datasette start --> ---- :books: Documentation preview :books:: https://datasette--1938.org.readthedocs.build/en/1938/ <!-- readthedocs-preview datasette end --> | 2022-12-08T22:07:36Z | 2022-12-13T05:23:19Z | 2022-12-13T05:23:18Z | 271ea3ae0c858de2d392b61a1a4a9f5837cbddf8 | 8711695 | 0 | 6e35a6b4f7ea9ba3fb6f02f45452eeb41de69786 | e539c1c024bc62d88df91d9107cbe37e7f0fe55f | OWNER | 107914493 | https://github.com/simonw/datasette/pull/1938 | ||||
373775788 | MDExOlB1bGxSZXF1ZXN0MzczNzc1Nzg4 | 669 | closed | 0 | fix db-to-sqlite command in ecosystem doc page | 883348 | the `--connection` parameter has become positional | 2020-02-11T17:05:41Z | 2020-02-22T02:32:18Z | 2020-02-22T02:32:17Z | 2020-02-22T02:32:17Z | be2265b0e811d0ac2875c2f748125c17b0f9289e | 0 | 6eb0e8cd90be82eff0a5152b0985c2a3cb7a44a8 | 30b6f71b306a43605c99bef79302ed5cb22d1924 | CONTRIBUTOR | 107914493 | https://github.com/simonw/datasette/pull/669 | ||||
334448258 | MDExOlB1bGxSZXF1ZXN0MzM0NDQ4MjU4 | 609 | closed | 0 | Update to latest black | 9599 | 2019-10-30T18:42:35Z | 2019-10-30T18:49:01Z | 2019-10-30T18:49:01Z | 2019-10-30T18:49:01Z | 5dd4d2b2d3abcfd507a6df47e7c2fbad3c552fd8 | 0 | 6f57e5e77bac29ac88d51271fd0c785859a820ce | f4c0830529a9513a83437a9e1550bbe27ebc5c64 | OWNER | 107914493 | https://github.com/simonw/datasette/pull/609 | |||||
424032445 | MDExOlB1bGxSZXF1ZXN0NDI0MDMyNDQ1 | 769 | closed | 0 | Backport of Python 3.8 shutil.copytree | 9599 | Closes #744 | 2020-05-27T18:17:15Z | 2020-05-27T20:21:56Z | 2020-05-27T18:17:44Z | 2020-05-27T18:17:44Z | 2d099ad9c657d2cab59de91cdb8bfed2da236ef6 | 5471110 | 0 | 6f80757f27e4651e6533856ea87b676dbc0d9c37 | cee671a58f417f827d1735b1abaa40716534ea67 | OWNER | 107914493 | https://github.com/simonw/datasette/pull/769 | |||
532342025 | MDExOlB1bGxSZXF1ZXN0NTMyMzQyMDI1 | 1128 | closed | 0 | Fix startup error on windows | 3243482 | Fixes https://github.com/simonw/datasette/issues/1094 This import isn't used at all, and causes error on startup on Windows. | 2020-12-04T07:12:26Z | 2020-12-06T08:41:45Z | 2020-12-05T19:35:04Z | 2020-12-05T19:35:04Z | 705d1a1555c4791e9be3b884285b047223ab184f | 0 | 7004c3b1462675ba3845b1efc82c816f1d2199e0 | 49d8fc056844d5a537d6cfd96dab0dd5686fe718 | CONTRIBUTOR | 107914493 | https://github.com/simonw/datasette/pull/1128 | ||||
1190763280 | PR_kwDOBm6k_c5G-ZsQ | 1982 | closed | 0 | Bump sphinx from 5.3.0 to 6.1.2 | 49699333 | Bumps [sphinx](https://github.com/sphinx-doc/sphinx) from 5.3.0 to 6.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>v6.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>v6.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>v6.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>v6.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>v6.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>v6.0.0b2</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.0.0b1</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.2 (released Jan 07, 2023)</h1> <h2>Bugs fixed</h2> <ul> <li> <p><a href="https://github-redirect.dependabot.com/sphinx-doc/sphinx/issues/11101">#11101</a>: LaTeX: <code>div.topic_padding</code> key of sphinxsetup documented at 5.1.0 was implemented with name <code>topic_padding</code></p> </li> <li> <p><a href="https://github-redirect.dependabot.com/sphinx-doc/sphinx/issues/11099">#11099</a>: LaTeX: <code>shadowrule</code> key of sphinxsetup causes PDF build to crash since Sphinx 5.1.0</p> </li> <li> <p><a href="https://github-redirect.dependabot.com/… | 2023-01-09T13:06:11Z | 2023-01-10T02:03:21Z | 2023-01-10T02:03:19Z | 8e25eb9553a34438663c16a75d921f2ffe11b353 | 0 | 700a12848da52e1f28a892d424319364e001ed6f | 7b48664d751e59222c01c97a2739d53d6363bdda | CONTRIBUTOR | 107914493 | https://github.com/simonw/datasette/pull/1982 | |||||
280204276 | MDExOlB1bGxSZXF1ZXN0MjgwMjA0Mjc2 | 479 | closed | 0 | doc typo fix | 98555 | Fix typo in performance doc page | 2019-05-19T22:54:25Z | 2019-05-20T16:42:29Z | 2019-05-20T16:42:29Z | 2019-05-20T16:42:29Z | 70d2858067d3c4da0e17c1d39e03de89190e94b6 | 0 | 708e13ab87f8c8620796c3e8f2b0aa1b2fc26875 | e513a80afba30bca9eeebd71c5e6aa6d8a811f33 | CONTRIBUTOR | 107914493 | https://github.com/simonw/datasette/pull/479 | ||||
804924636 | PR_kwDOBm6k_c4v-izc | 1559 | closed | 0 | filters_from_request plugin hook, now used in TableView | 9599 | New plugin hook, refs #473 Used it to extract the logic from TableView that handles _search and _through and _where - refs #1518 | 2021-12-16T23:59:33Z | 2021-12-17T23:09:41Z | 2021-12-17T19:02:15Z | 2021-12-17T19:02:15Z | aa7f0037a46eb76ae6fe9bf2a1f616c58738ecdf | 0 | 71af58d9392d42f45506cbc2370c1e9994126f63 | 0663d5525cc41e9260ac7d1f6386d3a6eb5ad2a9 | OWNER | 107914493 | https://github.com/simonw/datasette/pull/1559 | ||||
181247568 | MDExOlB1bGxSZXF1ZXN0MTgxMjQ3NTY4 | 202 | closed | 0 | Raise 404 on nonexistent table URLs | 45057 | Currently they just 500. Also cleaned the logic up a bit, I hope I didn't miss anything. This is issue #184. | 2018-04-12T15:47:06Z | 2018-04-13T19:22:56Z | 2018-04-13T18:19:15Z | 134150933ade84327cfd97a88d536f5bff37a136 | 0 | 71bbf4e4be8a9ab7bcc4ddfb33760c7d902f4a34 | bfb4e45a7bcb880758dbc18f66258de26c1d1904 | CONTRIBUTOR | 107914493 | https://github.com/simonw/datasette/pull/202 | |||||
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 | ||||
1459796407 | PR_kwDOBm6k_c5XArm3 | 2125 | closed | 0 | Bump sphinx from 6.1.3 to 7.1.2 | 49699333 | Bumps [sphinx](https://github.com/sphinx-doc/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 spuriously report failures to validate anchors. Patch by James Addison.</li> </ul> <h1>Release 7.1.1 (released Jul 27, 2023)</h1> <h2>Bugs fixed</h2> <ul> <li><a href="http… | 2023-08-02T13:28:39Z | 2023-08-07T16:20:30Z | 2023-08-07T16:20:27Z | 96d7583ba0fe56f75303b9fee388d1852cfb89a3 | 0 | 730f554ba714b01be1fe2011ab2a6612bbaca0da | 08181823990a71ffa5a1b57b37259198eaa43e06 | CONTRIBUTOR | 107914493 | https://github.com/simonw/datasette/pull/2125 | |||||
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 | ||||
692557381 | MDExOlB1bGxSZXF1ZXN0NjkyNTU3Mzgx | 1399 | open | 0 | Multiple sort | 87192257 | Closes #197. I have added support for sorting by multiple parameters as mentioned in the issue above, and together with that, a suggestion on how to implement such sorting in the user interface. | 2021-07-19T12:20:14Z | 2021-07-19T12:20:14Z | 3161cd1202824921054cf78d82c1d8c07b140451 | 0 | 739697660382e4d2974619b4a5605baef87d233a | c73af5dd72305f6a01ea94a2c76d52e5e26de38b | FIRST_TIME_CONTRIBUTOR | 107914493 | https://github.com/simonw/datasette/pull/1399 | ||||||
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 | ||||
443823040 | MDExOlB1bGxSZXF1ZXN0NDQzODIzMDQw | 890 | closed | 0 | Load only python files from plugins-dir. | 49260 | The current behavior for `--plugins-dir` is to load every file in that folder as a python module. This can result in errors if there are non-python files in the plugins dir (such as .mypy_cache). This PR restricts the module loading to only python files. | 2020-07-03T02:47:32Z | 2020-07-03T03:08:33Z | 2020-07-03T03:08:33Z | 2020-07-03T03:08:33Z | ea99a4431ce5bc2d65a3496da5b38e1986550a96 | 0 | 745af3b72d95d91f3ccd703f4fab819bc9f4b6a4 | 57879dc8b346a435804a9e45ffaacbf2a0228bc6 | CONTRIBUTOR | 107914493 | https://github.com/simonw/datasette/pull/890 | ||||
271338405 | MDExOlB1bGxSZXF1ZXN0MjcxMzM4NDA1 | 434 | closed | 0 | "datasette publish cloudrun" command to publish to Google Cloud Run | 10352819 | This is a very rough draft to start a discussion on a possible datasette cloud run publish plugin (see issue #400). The main change was to dynamically set the listening port in `make_dockerfile` to satisfy cloud run's [requirements](https://cloud.google.com/run/docs/reference/container-contract). This was done by running `datasette` through `sh` to get environment variable substitution. Not sure if that's the right approach? | 2019-04-17T14:41:18Z | 2019-05-03T21:50:44Z | 2019-05-03T13:59:02Z | 2019-05-03T13:59:02Z | 75a21fc2a136ccfc9da7bbf521cf288e63c9707f | 0 | 74c20d0d2eac13892ac20db0e66fcb3437544aa6 | bf229c9bd88179c8ec16bd65fd4fb28ab4241c2e | CONTRIBUTOR | 107914493 | https://github.com/simonw/datasette/pull/434 | ||||
1082769953 | PR_kwDOCGYnMM5AicIh | 498 | closed | 0 | fix: enable-fts permanently save triggers | 7908073 | I was wondering why my all my databases were giving wild search results. Turns out create_trigger was not sticking! Running `sqlite-utils triggers x.db` shows `[]` after running `enable-fts` using the python api. Looking at the counts trigger it seems that is the right way to save triggers. triggers show up now <!-- readthedocs-preview sqlite-utils start --> ---- :books: Documentation preview :books:: https://sqlite-utils--498.org.readthedocs.build/en/498/ <!-- readthedocs-preview sqlite-utils end --> | 2022-10-11T05:10:51Z | 2022-10-15T04:33:08Z | 2022-10-11T06:34:31Z | ab24d21e9c2aa9c514c3b65f05cfc0bafa7621c1 | 0 | 75577e595d9177177a48030a1c39573af010df51 | d792dad1cf5f16525da81b1e162fb71d469995f3 | CONTRIBUTOR | 140912432 | https://github.com/simonw/sqlite-utils/pull/498 | |||||
943518450 | PR_kwDODEm0Qs44PPLy | 66 | open | 0 | Ageinfo workaround | 11887 | I'm not sure if this is due to a new format or just because my ageinfo file is blank, but trying to import an archive would crash when it got to that file. This PR adds a guard clause in the `ageinfo` transformer and sets a default value that doesn't throw an exception. Seems likely to be the same issue mentioned by danp in https://github.com/dogsheep/twitter-to-sqlite/issues/54, my ageinfo file looks the same. Added that same ageinfo file to the test archive as well to help confirm my workaround didn't break anything. Let me know if you want any changes! | 2022-05-21T21:08:29Z | 2022-05-21T21:09:16Z | c22e8eba634b70e914de9f72e452b1ebea55c6ef | 0 | 75ae7c94120d14083217bc76ebd603b396937104 | f09d611782a8372cfb002792dfa727325afb4db6 | FIRST_TIME_CONTRIBUTOR | 206156866 | https://github.com/dogsheep/twitter-to-sqlite/pull/66 | ||||||
716262829 | MDExOlB1bGxSZXF1ZXN0NzE2MjYyODI5 | 1444 | closed | 0 | Ability to deploy demos of branches | 9599 | See #1442. | 2021-08-19T21:08:04Z | 2021-08-19T21:09:44Z | 2021-08-19T21:09:39Z | 2021-08-19T21:09:39Z | d84e574e59c51ddcd6cf60a6f9b3d45182daf824 | 0 | 75f9fe6d6bc642ce5587dd74eed70064c11868be | adb5b70de5cec3c3dd37184defe606a082c232cf | OWNER | 107914493 | https://github.com/simonw/datasette/pull/1444 | ||||
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 | ||||
181033024 | MDExOlB1bGxSZXF1ZXN0MTgxMDMzMDI0 | 200 | closed | 0 | Hide Spatialite system tables | 45057 | They were getting on my nerves. | 2018-04-11T21:26:58Z | 2018-04-12T21:34:48Z | 2018-04-12T21:34:48Z | 2018-04-12T21:34:48Z | d08a13314081ae2ce0313a17d3c07c1a7f2d94d5 | 0 | 765b5d677154c633b91e3e826dfffc53b7c4b5d3 | bfb4e45a7bcb880758dbc18f66258de26c1d1904 | CONTRIBUTOR | 107914493 | https://github.com/simonw/datasette/pull/200 | ||||
274313625 | MDExOlB1bGxSZXF1ZXN0Mjc0MzEzNjI1 | 439 | closed | 0 | [WIP] Add primary key to the extra_body_script hook arguments | 45057 | This allows the row to be identified on row pages. The context here is that I want to access the row's data to plot it on a map. I considered passing the entire template context through to the hook function. This would expose the actual row data and potentially avoid a further fetch request in JS, but it does make the plugin API a lot more leaky. (At any rate, using the selected row data is tricky in my case because of Spatialite's infuriating custom binary representation...) | 2019-04-29T10:08:23Z | 2019-05-01T09:58:32Z | 2019-05-01T09:58:30Z | b3cbcfef4d11d2741cf00861734d726a4730afe5 | 0 | 76b2c8fa406063b436155a7d8995e07b7e718c13 | 11b352b4d52fd02a422776edebb14f12e4994d3b | CONTRIBUTOR | 107914493 | https://github.com/simonw/datasette/pull/439 | |||||
496298180 | MDExOlB1bGxSZXF1ZXN0NDk2Mjk4MTgw | 986 | closed | 0 | Allow facet by primary keys, fixes #985 | 39452697 | Hello! This PR makes it possible to facet by primary keys. Did I get it right that just removing the condition on UI side is enough? From testing it works fine with primary keys, just as with normal keys. If so, should I also remove unused `data-is-pk`? | 2020-10-01T14:18:55Z | 2020-10-01T16:51:45Z | 2020-10-01T16:51:45Z | 58906c597f1217381f5d746726bcb8bdfa8f52f8 | 0 | 76f7094bd33f037a1c689a173f0dbbb988e6dcdd | 141544613f9e76ddb74eee38d6f8ee1e0e70f833 | NONE | 107914493 | https://github.com/simonw/datasette/pull/986 | |||||
1327188997 | PR_kwDOBm6k_c5PG0wF | 2064 | closed | 0 | Bump sphinx from 6.1.3 to 6.2.1 | 49699333 | Bumps [sphinx](https://github.com/sphinx-doc/sphinx) from 6.1.3 to 6.2.1. <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.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 6.2.1 (released Apr 25, 2023)</h1> <h2>Bugs fixed</h2> <ul> <li><a href="https://redirect.github.com/sphinx-doc/sphinx/issues/11355">#11355</a>: Revert the default type of :confval:<code>nitpick_ignore</code> and :confval:<code>nitpick_ignore_regex</code> to <code>list</code>.</li> </ul> <h1>Release 6.2.0 (released Apr 23, 2023)</h1> <h2>Dependencies</h2> <ul> <li>Require Docutils 0.18.1 or greater.</li> </ul> <h2>Incompatible changes</h2> <ul> <li>LaTeX: removal of some internal TeX <code>\dimen</code> registers (not previously publicly documented) as per 5.1.0 code comments in <code>sphinx.sty</code>: <code>\sphinxverbatimsep</code>, <code>\sphinxverbatimborder</code>, <code>\sphinxshadowsep</code>, <code>\sphinxshadowsize</code>, and <code>\sphinxshadowrule</code>. (refs: <a href="https://redirect.github.com/sphinx-doc/sphinx/issues/11105">#11105</a>)</li> <li>Remove <code>.egg</code> support from pycode <code>ModuleAnalyser</code>; Python eggs are a now-obsolete binary distribution format</li> <li><a href="https://redirect.github.com/sphinx-doc/sphinx/issues/11089">#11089</a>: Remove deprecated code in <code>sphinx.builders.linkcheck</code>. Patch by Daniel Eades</li> <li>Remove internal-only <code>sphinx.locale.setlocale</code></li> </ul> <h2>Deprecated</h2> <ul> <li><a href="htt… | 2023-04-25T13:57:49Z | 2023-05-01T13:58:53Z | 2023-05-01T13:58:52Z | 52cecfdbe83c2ee73b7e4dd90e296b48dbaf3db2 | 0 | 7711a4af20ede9908867437d0baf3604281fd99f | 5890a20c374fb0812d88c9b0ef26a838bfa06c76 | CONTRIBUTOR | 107914493 | https://github.com/simonw/datasette/pull/2064 | |||||
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 | ||||
543246535 | MDExOlB1bGxSZXF1ZXN0NTQzMjQ2NTM1 | 59 | closed | 0 | Remove unneeded exists=True for -a/--auth flag. | 631242 | The file does not need to exist when using an environment variable. | 2020-12-21T06:03:55Z | 2021-05-22T14:06:19Z | 2021-05-19T16:08:12Z | 2021-05-19T16:08:12Z | 70dffca351375e6f542969c72ebc43c6d393d99c | 0 | 79745bed50b7344c5cbb17a08215dc20d58b9416 | d19d7db034bf7c3adcae37b9ab6f365d569605b3 | CONTRIBUTOR | 207052882 | https://github.com/dogsheep/github-to-sqlite/pull/59 | ||||
592289324 | MDExOlB1bGxSZXF1ZXN0NTkyMjg5MzI0 | 245 | closed | 0 | Correct some typos | 1076745 | Noticed a typo in the docs and followed that up with a spellcheck. Had to bite my tongue at some of the British spellings. | 2021-03-13T04:26:56Z | 2021-05-19T02:58:04Z | 2021-05-19T02:58:04Z | 2021-05-19T02:58:04Z | 3e62ab62a88992d4bbb0fe83debec3bacd93ebf3 | 0 | 79de6b639f9d14818a5006af4f63e4e20c961a10 | 22f1d9e1999f70af4c5b0f880a820cd9eead3942 | CONTRIBUTOR | 140912432 | https://github.com/simonw/sqlite-utils/pull/245 | ||||
760452915 | PR_kwDOBm6k_c4tU5cz | 1494 | closed | 0 | Update pytest-asyncio requirement from <0.16,>=0.10 to >=0.10,<0.17 | 49699333 | Updates the requirements on [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) to permit the latest version. <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/pytest-dev/pytest-asyncio/commit/f2fe98e5cbc4a25e31c24f5932d66f9c903f0fe5"><code>f2fe98e</code></a> 0.16.0</li> <li><a href="https://github.com/pytest-dev/pytest-asyncio/commit/4e1df3191aee1a902c873901b35d82363e13b08c"><code>4e1df31</code></a> Remove obsolete test, add make test</li> <li><a href="https://github.com/pytest-dev/pytest-asyncio/commit/6ec76477061ea14394cadbf2cef673b04971ef4d"><code>6ec7647</code></a> feat: Add support for Python 3.10.</li> <li><a href="https://github.com/pytest-dev/pytest-asyncio/commit/42ff5d176b2be5aa77a43f586179d563ae2196b5"><code>42ff5d1</code></a> ci: Include Python 3.10 in the CI test run.</li> <li><a href="https://github.com/pytest-dev/pytest-asyncio/commit/be3b32777b32774c288b604f0d95eacb32a4d1a2"><code>be3b327</code></a> build: Include Python 3.10 in Tox test runs.</li> <li><a href="https://github.com/pytest-dev/pytest-asyncio/commit/1c283bd821249ee3c695ae59bb022d31a1473ae2"><code>1c283bd</code></a> refactor: test_async_fixtures_with_finalizer no longer trigger a DeprecationW...</li> <li><a href="https://github.com/pytest-dev/pytest-asyncio/commit/2751982f3a84d55aad103ea039cc779537e90720"><code>2751982</code></a> refactor: Replaced tests asserting that the event loop is properly closed.</li> <li><a href="https://github.com/pytest-dev/pytest-asyncio/commit/70989fd7b626a86db4f75acc40057f982f2c76dd"><code>70989fd</code></a> refactor: Grouped test cases together that are related to the use of the asyn...</li> <li><a href="https://github.com/pytest-dev/pytest-asyncio/commit/b27abe8d138998a75cc4eb519be810439d3ed0d9"><code>b27abe8</code></a> refactor: Removed TestUnexistingLoop.remove_loop fixture, because it has no e...</li> <li><a href="https://github.com/pytest-dev/pytest-asyncio/commit/e3ec312c1d55b3688e4ce115df7791a0478582d1"><code>e3ec312</code></a> Adjusted Hypothesis integration tes… | 2021-10-18T13:14:17Z | 2021-10-24T22:22:40Z | 2021-10-24T22:22:39Z | 2021-10-24T22:22:39Z | 03cc697b6b3d0983618c29ee75b45b5e0ac91139 | 0 | 7a3e3c355695d95b002a2ec6a68b0c27c7089ed6 | ff9ccfb0310501a3b4b4ca24d73246a8eb3e7914 | CONTRIBUTOR | 107914493 | https://github.com/simonw/datasette/pull/1494 | ||||
204029142 | MDExOlB1bGxSZXF1ZXN0MjA0MDI5MTQy | 349 | closed | 0 | publish_subcommand hook + default plugins mechanism, used for publish heroku/now | 9599 | This change introduces a new plugin hook, publish_subcommand, which can be used to implement new subcommands for the "datasette publish" command family. I've used this new hook to refactor out the "publish now" and "publish heroku" implementations into separate modules. I've also added unit tests for these two publishers, mocking the subprocess.call and subprocess.check_output functions. As part of this, I introduced a mechanism for loading default plugins. These are defined in the new "default_plugins" list inside datasette/app.py Closes #217 (Plugin support for "datasette publish") Closes #348 (Unit tests for "datasette publish") Refs #14, #59, #102, #103, #146, #236, #347 | 2018-07-26T05:03:22Z | 2018-07-26T05:28:54Z | 2018-07-26T05:16:00Z | 2018-07-26T05:16:00Z | dbbe707841973b50a76d2703003ae2c40e7ad1fd | 0 | 7abdfd55daa9c617da02fd768b8e7476e89f0f94 | 3ac21c749881d0fb1c35b0f9b7a819e29f61c5c1 | OWNER | 107914493 | https://github.com/simonw/datasette/pull/349 | ||||
564172140 | MDExOlB1bGxSZXF1ZXN0NTY0MTcyMTQw | 61 | closed | 0 | fixing typo in get cli help text | 22578954 | 2021-01-29T18:57:04Z | 2021-05-19T16:07:09Z | 2021-05-19T16:07:09Z | 2021-05-19T16:07:09Z | ba8cf3e9bb5f4f8740bd4b9eed28f1464d7f6b9a | 0 | 7ac6efc3a873facafa72192b58e28c6e8a79f744 | 62dfd3bc4014b108200001ef4bc746feb6f33b45 | CONTRIBUTOR | 207052882 | https://github.com/dogsheep/github-to-sqlite/pull/61 | |||||
469944999 | MDExOlB1bGxSZXF1ZXN0NDY5OTQ0OTk5 | 49 | closed | 0 | Document the use of --stop_after with favorites, refs #20 | 370930 | (I discovered this trawling the issues for how to use --since with favorites) | 2020-08-19T06:10:52Z | 2021-08-20T00:02:11Z | 2021-08-20T00:02:11Z | 2021-08-20T00:02:10Z | b6a4da8be3b6d4b74c6a5fac8924bf22a6824f2c | 0 | 7ace806c81faf31c1aace0f0b2a4c17dd72cfa06 | 21fc1cad6dd6348c67acff90a785b458d3a81275 | CONTRIBUTOR | 206156866 | https://github.com/dogsheep/twitter-to-sqlite/pull/49 | ||||
474703007 | MDExOlB1bGxSZXF1ZXN0NDc0NzAzMDA3 | 952 | closed | 0 | Update black requirement from ~=19.10b0 to >=19.10,<21.0 | 27856297 | Updates the requirements on [black](https://github.com/psf/black) to permit the latest version. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/psf/black/blob/master/CHANGES.md">black's changelog</a>.</em></p> <blockquote> <h3>20.8b1</h3> <h4><em>Packaging</em></h4> <ul> <li>explicitly depend on Click 7.1.2 or newer as <code>Black</code> no longer works with versions older than 7.0</li> </ul> <h3>20.8b0</h3> <h4><em>Black</em></h4> <ul> <li> <p>re-implemented support for explicit trailing commas: now it works consistently within any bracket pair, including nested structures (<a href="https://github-redirect.dependabot.com/psf/black/issues/1288">#1288</a> and duplicates)</p> </li> <li> <p><code>Black</code> now reindents docstrings when reindenting code around it (<a href="https://github-redirect.dependabot.com/psf/black/issues/1053">#1053</a>)</p> </li> <li> <p><code>Black</code> now shows colored diffs (<a href="https://github-redirect.dependabot.com/psf/black/issues/1266">#1266</a>)</p> </li> <li> <p><code>Black</code> is now packaged using 'py3' tagged wheels (<a href="https://github-redirect.dependabot.com/psf/black/issues/1388">#1388</a>)</p> </li> <li> <p><code>Black</code> now supports Python 3.8 code, e.g. star expressions in return statements (<a href="https://github-redirect.dependabot.com/psf/black/issues/1121">#1121</a>)</p> </li> <li> <p><code>Black</code> no longer normalizes capital R-string prefixes as those have a community-accepted meaning (<a href="https://github-redirect.dependabot.com/psf/black/issues/1244">#1244</a>)</p> </li> <li> <p><code>Black</code> now uses exit code 2 when specified configuration file doesn't exit (<a href="https://github-redirect.dependabot.com/psf/black/issues/1361">#1361</a>)</p> </li> <li> <p><code>Black</code> now works on AWS Lambda (<a href="https://github-redirect.dependabot.com/psf/black/issues/1141">#1141</a>)</p> </li> <li> <p>added <code>--force-exclude</code> argument (<a href="https://github-redirect.dependabot.com/p… | 2020-08-27T13:31:36Z | 2020-09-02T22:26:17Z | 2020-09-02T22:26:16Z | 37f8531b321855bdbc58960281957febaa59e4b9 | 0 | 7b1354706467136f5030504fe799201b13333a95 | 86aefc39c5aca01b00dbc57ba386a6743c21fb46 | CONTRIBUTOR | 107914493 | https://github.com/simonw/datasette/pull/952 | |||||
153324301 | MDExOlB1bGxSZXF1ZXN0MTUzMzI0MzAx | 117 | closed | 0 | Don't prevent tabbing to `Run SQL` button | 198537 | Mentioned in #115 Here you go! | 2017-11-17T15:27:50Z | 2017-11-19T20:30:24Z | 2017-11-18T00:53:43Z | 2017-11-18T00:53:43Z | 6d39429daa4655e3cf7a6a7671493292a20a30a1 | 0 | 7b4d00e87ed8ac931e6f5458599aece1a95d4e82 | eda848b37f8452dba7913583ef101f39d9b130ba | CONTRIBUTOR | 107914493 | https://github.com/simonw/datasette/pull/117 | ||||
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 | ||||
542406910 | MDExOlB1bGxSZXF1ZXN0NTQyNDA2OTEw | 10 | closed | 0 | BugFix for encoding and not update info. | 1277270 | Bugfix 1: Traceback (most recent call last): File "d:\anaconda3\lib\runpy.py", line 194, in _run_module_as_main return _run_code(code, main_globals, None, File "d:\anaconda3\lib\runpy.py", line 87, in _run_code exec(code, run_globals) File "D:\Anaconda3\Scripts\evernote-to-sqlite.exe\__main__.py", line 7, in <module> File "d:\anaconda3\lib\site-packages\click\core.py", line 829, in __call__ File "d:\anaconda3\lib\site-packages\click\core.py", line 782, in main rv = self.invoke(ctx) File "d:\anaconda3\lib\site-packages\click\core.py", line 1259, in invoke return _process_result(sub_ctx.command.invoke(sub_ctx)) return ctx.invoke(self.callback, **ctx.params) File "d:\anaconda3\lib\site-packages\click\core.py", line 610, in invoke return callback(*args, **kwargs) File "d:\anaconda3\lib\site-packages\evernote_to_sqlite\cli.py", line 30, in enex for tag, note in find_all_tags(fp, ["note"], progress_callback=bar.update): File "d:\anaconda3\lib\site-packages\evernote_to_sqlite\utils.py", line 11, in find_all_tags chunk = fp.read(1024 * 1024) UnicodeDecodeError: 'gbk' codec can't decode byte 0xa4 in position 383: illegal multibyte sequence Bugfix 2: Traceback (most recent call last): File "D:\Anaconda3\Scripts\evernote-to-sqlite-script.py", line 33, in <module> sys.exit(load_entry_point('evernote-to-sqlite==0.3', 'console_scripts', 'evernote-to-sqlite')()) File "D:\Anaconda3\lib\site-packages\click\core.py", line 829, in __call__ return self.main(*args, **kwargs) File "D:\Anaconda3\lib\site-packages\click\core.py", line 782, in main rv = self.invoke(ctx) File "D:\Anaconda3\lib\site-packages\click\core.py", line 1259, in invoke return _process_result(sub_ctx.command.invoke(sub_ctx)) File "D:\Anaconda3\lib\site-packages\click\core.py", line 1066, in invoke return ctx.invoke(self.callback, **ctx.params) File "D:\Anaconda3\lib\site-packages\click\core.py", line 610, in invoke return callback(*args, **kw… | 2020-12-18T08:58:54Z | 2021-02-11T22:37:56Z | 2021-02-11T22:37:56Z | 4425daeccd43ce3c7bb45deaae577984f978e40f | 0 | 7b8b96b69f43cb2247875c3ca6d39878edf77a78 | 92254b71075c8806bca258c939e24af8397cdf98 | NONE | 303218369 | https://github.com/dogsheep/evernote-to-sqlite/pull/10 | |||||
255658112 | MDExOlB1bGxSZXF1ZXN0MjU1NjU4MTEy | 12 | closed | 0 | Support for numpy types, closes #11 | 9599 | 2019-02-24T03:57:32Z | 2019-02-24T04:02:20Z | 2019-02-24T04:02:20Z | 2019-02-24T04:02:20Z | e615d22c5564ea1f32abb086088b2700110be10a | 0 | 7c20e60685088d6da0739749305215790ca8375a | c5068a0972651b3e359ebc2d6c1486b8b7d2c242 | OWNER | 140912432 | https://github.com/simonw/sqlite-utils/pull/12 | |||||
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 | ||||
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 | |||
503685077 | MDExOlB1bGxSZXF1ZXN0NTAzNjg1MDc3 | 1022 | closed | 0 | Fix table name in spatialite example command | 639012 | The example query for creating a new point geometry seems to be using a table called 'museums' but at one point it instead uses 'events'. I *believe* it is intended to be museums (the example makes more sense if so). | 2020-10-14T22:19:34Z | 2020-10-14T23:46:46Z | 2020-10-14T23:46:46Z | 2020-10-14T23:46:46Z | 4f7c0ebd85ccd8c1853d7aa0147628f7c1b749cc | 0 | 7cef70a5528af4626302729ff0ebc88d92b5f4ca | 7f2edb5dd2074dce0090659021991695a984844b | CONTRIBUTOR | 107914493 | https://github.com/simonw/datasette/pull/1022 | ||||
196628304 | MDExOlB1bGxSZXF1ZXN0MTk2NjI4MzA0 | 324 | closed | 0 | Speed up Travis by reusing pip wheel cache across builds | 9599 | From https://atchai.com/blog/faster-ci/ - refs #323 | 2018-06-22T03:20:08Z | 2018-06-24T01:03:47Z | 2018-06-24T01:03:47Z | 2018-06-24T01:03:47Z | 47e689a89b3f5f0969595b17d2ec59ea3caffb3b | 0 | 7d7f5f61fd6dca3385386a657a13057680d8ddd7 | e7566cc59d4b02ef301054fd35fdde6c925a8e38 | OWNER | 107914493 | https://github.com/simonw/datasette/pull/324 | ||||
505769462 | MDExOlB1bGxSZXF1ZXN0NTA1NzY5NDYy | 1031 | closed | 0 | Fallback to databases in inspect-data.json when no -i options are passed | 299380 | Currenlty `Datasette.__init__` checks immutables against None to decide whether to fallback to inspect-data.json. This patch modifies the serve command to pass None when no -i options are passed so this fallback works correctly. | 2020-10-19T07:51:06Z | 2021-03-29T01:46:45Z | 2021-03-29T00:23:41Z | 3ee6b39e96ef684e1ac393bb269d804e957fee1d | 0 | 7e7eaa4e712b01de0b5a8a1b90145bdc1c3cd731 | c37a0a93ecb847e66cfe7b6f9452ba210fcae91b | FIRST_TIME_CONTRIBUTOR | 107914493 | https://github.com/simonw/datasette/pull/1031 | |||||
561512503 | MDExOlB1bGxSZXF1ZXN0NTYxNTEyNTAz | 15 | open | 0 | added try / except to write_records | 9857779 | to keep the data write from failing if it came across an error during processing. In particular when trying to convert my HealthKit zip file (and that of my wife's) it would consistently error out with the following: ``` db.py 1709 insert_chunk result = self.db.execute(query, params) db.py 226 execute return self.conn.execute(sql, parameters) sqlite3.OperationalError: too many SQL variables --------------------------------------------------------------------------------------------------------------------------------------------------------------------- db.py 1709 insert_chunk result = self.db.execute(query, params) db.py 226 execute return self.conn.execute(sql, parameters) sqlite3.OperationalError: too many SQL variables --------------------------------------------------------------------------------------------------------------------------------------------------------------------- db.py 1709 insert_chunk result = self.db.execute(query, params) db.py 226 execute return self.conn.execute(sql, parameters) sqlite3.OperationalError: table rBodyMass has no column named metadata_HKWasUserEntered --------------------------------------------------------------------------------------------------------------------------------------------------------------------- healthkit-to-sqlite 8 <module> sys.exit(cli()) core.py 829 __call__ return self.main(*args, **kwargs) core.py 782 main rv = self.invoke(ctx) core.py 1066 invoke return ctx.invoke(self.callback, **ctx.params) core.py 610 invoke return callback(*args, **kwargs) cli.py 57 cli convert_xml_to_sqlite(fp, db, progress_callback=bar.update, zipfile=zf) utils.py 42 convert_xml_to_sqlite write_records(records, db) utils.py 143 write_records db[table].insert_all( db.py 1899 insert_all self.insert_chunk( db.py 1720 insert_chunk self.insert_chunk( db.py 1720 insert_chunk self.insert_chunk( db.py 1714 insert_chunk result = self.db.execute(query, params) db.py 226 execute return self.co… | 2021-01-26T03:56:21Z | 2021-01-26T03:56:21Z | 8527278a87e448f57c7c6bd76a2d85f12d0233dd | 0 | 7f1b168c752b5af7c1f9052dfa61e26afc83d574 | 71e36e1cf034b96de2a8e6652265d782d3fdf63b | FIRST_TIME_CONTRIBUTOR | 197882382 | https://github.com/dogsheep/healthkit-to-sqlite/pull/15 | ||||||
247576942 | MDExOlB1bGxSZXF1ZXN0MjQ3NTc2OTQy | 4 | closed | 0 | Fts5 | 9599 | 2019-01-25T06:54:05Z | 2019-01-25T06:54:33Z | 2019-01-25T06:54:33Z | 2019-01-25T06:54:33Z | 42b2b4b785e3163371e92a9cc085bc47e7c83107 | 0 | 7f205d2308443557bcaec497b3d0badc0dc26f06 | ccb2a1e729780689188005a52c362b7e963f71e8 | OWNER | 140912432 | https://github.com/simonw/sqlite-utils/pull/4 | |||||
1079769381 | PR_kwDOBm6k_c5AW_kl | 1838 | closed | 0 | Open Datasette link in new tab | 4399499 | This is technically a Sandstorm-specific fix (as external links do not work inside the grain frame), however, I think it is an improvement to the upstream project, so I wanted to propose it here rather than patching it in our package. There's much opinions on the Internet about whether external links should open in a new tab by default or not, but I'd argue very few people who might click a "powered by" link intend to complete their interaction with the source page (a Datasette). And furthermore, users may be working within various queries or loading visualizations (navigating away when trying to plot a million GPS coordinates pretty much just resets your progress!), so linking away within the tab might be a frustrating or destructive act to one's work, even inadvertently. original report: https://github.com/ocdtrekkie/datasette-sandstorm/issues/1 <!-- readthedocs-preview datasette start --> ---- :books: Documentation preview :books:: https://datasette--1838.org.readthedocs.build/en/1838/ <!-- readthedocs-preview datasette end --> | 2022-10-07T01:12:20Z | 2022-10-07T16:28:41Z | 2022-10-07T02:01:07Z | 9a7745ceef270893fa76a10ee70546f62d5110bd | 0 | 7f2a3376c348e9dd9ea926ab94ae6b610194e6c1 | eff112498ecc499323c26612d707908831446d25 | NONE | 107914493 | https://github.com/simonw/datasette/pull/1838 | |||||
152522762 | MDExOlB1bGxSZXF1ZXN0MTUyNTIyNzYy | 89 | closed | 0 | SQL syntax highlighting with CodeMirror | 15543 | Addresses #13 Future enhancements could include autocompletion of table and column names, e.g. with ```javascript extraKeys: {"Ctrl-Space": "autocomplete"}, hintOptions: {tables: { users: ["name", "score", "birthDate"], countries: ["name", "population", "size"] }} ``` (see https://codemirror.net/doc/manual.html#addon_sql-hint and source at http://codemirror.net/mode/sql/) | 2017-11-14T14:43:33Z | 2017-11-15T02:03:01Z | 2017-11-15T02:03:01Z | 2017-11-15T02:03:01Z | 8252daa4c14d73b4b69e3f2db4576bb39d73c070 | 0 | 7f6ad095e9c41bf24d73b7724d898965c419965b | 075d422c0a1c70259188dfbd940538c67419694a | CONTRIBUTOR | 107914493 | https://github.com/simonw/datasette/pull/89 | ||||
507267087 | MDExOlB1bGxSZXF1ZXN0NTA3MjY3MDg3 | 1038 | closed | 0 | DOC: Fix syntax error | 194147 | If I understand https://docs.datasette.io/en/stable/plugin_hooks.html#register-routes correctly, `register_routes` should return a `List[Tuple[str, Callable]]`. I believe the current code in documentation has a syntax error (extra `)`). | 2020-10-21T05:45:38Z | 2020-10-21T22:57:21Z | 2020-10-21T22:44:17Z | 2020-10-21T22:44:17Z | 6e26b057996c6f3fefa8ad528e2759e53c738844 | 0 | 7fc0cce6a2d13ccc82c3584996acec236ae65df6 | 66120a7a1cb592e8a21164cf537f62a4d7ab1dfc | CONTRIBUTOR | 107914493 | https://github.com/simonw/datasette/pull/1038 | ||||
1448446507 | PR_kwDOBm6k_c5WVYor | 2107 | closed | 0 | Bump sphinx from 6.1.3 to 7.1.0 | 49699333 | Bumps [sphinx](https://github.com/sphinx-doc/sphinx) from 6.1.3 to 7.1.0. <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.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.0 (released Jul 24, 2023)</h1> <h2>Incompatible changes</h2> <ul> <li> <p>Releases are no longer signed, given the <code>change in PyPI policy</code>_.</p> <p>.. _change in PyPI policy: <a href="https://blog.pypi.org/posts/2023-05-23-removing-pgp/">https://blog.pypi.org/posts/2023-05-23-removing-pgp/</a></p> </li> </ul> <h2>Deprecated</h2> <ul> <li><a href="https://redirect.github.com/sphinx-doc/sphinx/issues/11412">#11412</a>: Emit warnings on using a deprecated Python-specific index entry type (namely, <code>module</code>, <code>keyword</code>, <code>operator</code>, <code>object</code>, <code>exception</code>, <code>statement</code>, and <code>builtin</code>) in the :rst:dir:<code>index</… | 2023-07-25T13:28:30Z | 2023-07-28T13:23:19Z | 2023-07-28T13:23:17Z | 290cfa2c8d0d673922da161bd993dd406ed5ce3f | 0 | 7fc79bace8283024fdd61b9fb69e1053797ce41e | 278ac91a4d68da333a6ed74a2c75b3ec9db8bd19 | CONTRIBUTOR | 107914493 | https://github.com/simonw/datasette/pull/2107 | |||||
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 | |||
1299129869 | PR_kwDOJHON9s5NbyYN | 13 | open | 0 | use universal command | 14314871 | 2023-04-02T15:10:54Z | 2023-04-02T15:37:34Z | b40fdee5efac03f10257f749ee7f69e4692ad6c5 | 0 | 8111718e747f59dddcb5bf7820ce922e0723c04a | e55a802d37a896475b6cf475c1ba947af63cca73 | FIRST_TIME_CONTRIBUTOR | 611552758 | https://github.com/dogsheep/apple-notes-to-sqlite/pull/13 | |||||||
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 | ||||
672053811 | MDExOlB1bGxSZXF1ZXN0NjcyMDUzODEx | 65 | open | 0 | basic support for events | 231498 | a quick first pass at implementing the feature requested in https://github.com/dogsheep/github-to-sqlite/issues/64 testing instructions: ``` $ github-to-sqlite events events.db user/khimaros ``` if the specified user is the authenticated user, it will also include private events. caveat: pagination appears to be broken (i don't see `next` in the response JSON from GitHub) | 2021-06-17T00:51:30Z | 2022-10-03T22:35:03Z | 0a252a06a15e307c8a67b2e0aac0907e2566bf19 | 0 | 82da9f91deda81d92ec64c9eda960aa64340c169 | 0e45b72312a0756e5a562effbba08cb8de1e480b | FIRST_TIME_CONTRIBUTOR | 207052882 | https://github.com/dogsheep/github-to-sqlite/pull/65 | ||||||
275275610 | MDExOlB1bGxSZXF1ZXN0Mjc1Mjc1NjEw | 443 | closed | 0 | Pass view_name to extra_body_script hook | 45057 | At the moment it's not easy to tell whether the hook is being called in (for example) the row or table view, as in both cases the `database` and `table` parameters are provided. This passes the `view_name` added in #441 to the `extra_body_script` hook. | 2019-05-02T08:38:36Z | 2019-05-03T13:12:20Z | 2019-05-03T13:12:20Z | 2019-05-03T13:12:20Z | bf229c9bd88179c8ec16bd65fd4fb28ab4241c2e | 0 | 83b6b82d4787b30d34eb26c22ad1ff9c5c118134 | efc93b8ab5a21e3802f75f08d5e41409f5684b5d | CONTRIBUTOR | 107914493 | https://github.com/simonw/datasette/pull/443 | ||||
313007483 | MDExOlB1bGxSZXF1ZXN0MzEzMDA3NDgz | 56 | closed | 0 | Escape the table name in populate_fts and search. | 49260 | The table names weren't escaped using double quotes in the populate_fts method. Reproducible case: ``` >>> import sqlite_utils >>> db = sqlite_utils.Database("abc.db") >>> db["http://example.com"].insert_all([ ... {"id": 1, "age": 4, "name": "Cleo"}, ... {"id": 2, "age": 2, "name": "Pancakes"} ... ], pk="id") <Table http://example.com (id, age, name)> >>> db["http://example.com"].enable_fts(["name"]) Traceback (most recent call last): File "<input>", line 1, in <module> db["http://example.com"].enable_fts(["name"]) File "/home/amjith/.virtualenvs/itsysearch/lib/python3.7/site-packages/sqlite_utils/db.py", l ine 705, in enable_fts self.populate_fts(columns) File "/home/amjith/.virtualenvs/itsysearch/lib/python3.7/site-packages/sqlite_utils/db.py", l ine 715, in populate_fts self.db.conn.executescript(sql) sqlite3.OperationalError: unrecognized token: ":" >>> ``` | 2019-09-01T06:29:05Z | 2019-09-02T17:23:21Z | 2019-09-02T17:23:21Z | 79852e97ecb69b88da87da0cba2a55887cf83bda | 0 | 83ca4c802f5d5102e73ff366e61514ded81dc7a1 | cb70f7d10996b844154bf3da88779dd1f65590bc | CONTRIBUTOR | 140912432 | https://github.com/simonw/sqlite-utils/pull/56 | |||||
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 |