\r\n sys.exit(cli())\r\n File \"/usr/local/lib/python3.7/site-packages/click/core.py\", line 764, in __call__\r\n return self.main(*args, **kwargs)\r\n File \"/usr/local/lib/python3.7/site-packages/click/core.py\", line 717, in main\r\n rv = self.invoke(ctx)\r\n File \"/usr/local/lib/python3.7/site-packages/click/core.py\", line 1137, in invoke\r\n return _process_result(sub_ctx.command.invoke(sub_ctx))\r\n File \"/usr/local/lib/python3.7/site-packages/click/core.py\", line 1137, in invoke\r\n return _process_result(sub_ctx.command.invoke(sub_ctx))\r\n File \"/usr/local/lib/python3.7/site-packages/click/core.py\", line 956, in invoke\r\n return ctx.invoke(self.callback, **ctx.params)\r\n File \"/usr/local/lib/python3.7/site-packages/click/core.py\", line 555, in invoke\r\n return callback(*args, **kwargs)\r\n File \"/Users/NNNNN/Library/Python/3.7/lib/python/site-packages/datasette/publish/heroku.py\", line 124, in heroku\r\n create_output = check_output(cmd).decode(\"utf8\")\r\n File \"/usr/local/Cellar/python/3.7.5/Frameworks/Python.framework/Versions/3.7/lib/python3.7/subprocess.py\", line 411, in check_output\r\n **kwargs).stdout\r\n File \"/usr/local/Cellar/python/3.7.5/Frameworks/Python.framework/Versions/3.7/lib/python3.7/subprocess.py\", line 512, in run\r\n output=stdout, stderr=stderr)\r\nsubprocess.CalledProcessError: Command '['heroku', 'apps:create', 'datasette', '--json']' returned non-zero exit status 1.\r\n```\r\n\r\nIt would be neater if:\r\n\r\n- the Py error message was caught;\r\n- the report suggested setting a project name using `-n` etc.\r\n\r\nIt may also be useful to provide a command to list the current names that are being used, which I assume is available via a Heroku call?", "repo": {"value": 107914493, "label": "datasette"}, "type": "issue", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/640/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": null, "state_reason": null}
{"id": 530513784, "node_id": "MDExOlB1bGxSZXF1ZXN0MzQ3MTc5MDgx", "number": 644, "title": "Validate metadata json on startup", "user": {"value": 6025893, "label": "chris48s"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2019-11-30T00:32:15Z", "updated_at": "2021-07-28T17:58:45Z", "closed_at": "2021-07-28T17:58:45Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/644", "body": "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.\r\n\r\nIn case of invalid data, this will raise with a descriptive error e.g:\r\n\r\n```\r\nmarshmallow.exceptions.ValidationError: {'databases': {'fixtures': {'tables': {'not_a_table': ['Unknown field.']}}}}\r\n```\r\n\r\nCloses #260\r\n\r\n---\r\n\r\nThis 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:\r\n\r\n* 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`.\r\n* 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.\r\n* 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.\r\n\r\nAs such, I've added some band-aids in 3552024 and 6859fd8:\r\n* Switching the metadata object to a `deepcopy` of the input prevents us directly mutating the input fixture.\r\n* I've switched some of the tests to use a fixture with function scope instead of session scope so we're working on a clean copy that hasn't been mutated by other tests where necessary but keeping session scope in most cases for performance.\r\n* I haven't really addressed the fact that sometimes the metadata object gets mutated in place, so the object that is served from `/-/metadata` isn't necessarily always exactly the same as the file you fed into it on init. I'm not sure how much of a problem that is. The way the tests were written makes me think it was unexpected, but getting into it feels like too much scope creep for this PR so its probably best addressed as another issue.", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/644/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null}
{"id": 543355051, "node_id": "MDExOlB1bGxSZXF1ZXN0MzU3NjQwMTg2", "number": 6, "title": "don't break if source is missing", "user": {"value": 78035, "label": "mfa"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2019-12-29T10:46:47Z", "updated_at": "2020-03-28T02:28:11Z", "closed_at": "2020-03-28T02:28:11Z", "author_association": "CONTRIBUTOR", "pull_request": "dogsheep/swarm-to-sqlite/pulls/6", "body": "broke for me. very old checkins in 2010 had no source set.", "repo": {"value": 205429375, "label": "swarm-to-sqlite"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/dogsheep/swarm-to-sqlite/issues/6/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null}
{"id": 546078359, "node_id": "MDExOlB1bGxSZXF1ZXN0MzU5ODIyNzcz", "number": 75, "title": "Explicitly include tests and docs in sdist", "user": {"value": 15092, "label": "jayvdb"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2020-01-07T04:53:20Z", "updated_at": "2020-01-31T00:21:27Z", "closed_at": "2020-01-31T00:21:27Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/sqlite-utils/pulls/75", "body": "Also exclude 'tests' from runtime installation.", "repo": {"value": 140912432, "label": "sqlite-utils"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/sqlite-utils/issues/75/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null}
{"id": 546961357, "node_id": "MDU6SXNzdWU1NDY5NjEzNTc=", "number": 656, "title": "Display of the column definitions", "user": {"value": 6371750, "label": "JBPressac"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2020-01-08T16:16:53Z", "updated_at": "2020-01-20T14:17:11Z", "closed_at": "2020-01-20T14:14:33Z", "author_association": "CONTRIBUTOR", "pull_request": null, "body": "Hello,\r\nIs the nice display of headers and definitions at the top of https://fivethirtyeight.datasettes.com/fivethirtyeight-ac35616/antiquities-act%2Factions_under_antiquities_act is configured in the metadata.json file ?\r\nThank you,", "repo": {"value": 107914493, "label": "datasette"}, "type": "issue", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/656/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": null, "state_reason": "completed"}
{"id": 552773632, "node_id": "MDExOlB1bGxSZXF1ZXN0MzY1MjE4Mzkx", "number": 660, "title": "gcloud run is now GA, s/beta//", "user": {"value": 813732, "label": "glasnt"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2020-01-21T10:08:38Z", "updated_at": "2020-01-22T03:41:09Z", "closed_at": "2020-01-21T23:28:12Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/660", "body": "", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/660/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null}
{"id": 563348959, "node_id": "MDExOlB1bGxSZXF1ZXN0MzczNzc1Nzg4", "number": 669, "title": "fix db-to-sqlite command in ecosystem doc page", "user": {"value": 883348, "label": "adipasquale"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2020-02-11T17:05:41Z", "updated_at": "2020-02-22T02:32:18Z", "closed_at": "2020-02-22T02:32:17Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/669", "body": "the `--connection` parameter has become positional", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/669/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null}
{"id": 594553553, "node_id": "MDExOlB1bGxSZXF1ZXN0Mzk5MTY2NDMz", "number": 719, "title": "asgi: check raw_path is not None", "user": {"value": 193185, "label": "cldellow"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2020-04-05T16:53:58Z", "updated_at": "2020-05-04T17:14:26Z", "closed_at": "2020-05-04T17:14:26Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/719", "body": "The ASGI spec\r\n(https://asgi.readthedocs.io/en/latest/specs/www.html#http) seems to imply that `None` is a valid value, so we need to check the value itself, not just whether the key is present.\r\n\r\nIn particular, the [mangum](https://github.com/erm/mangum) adapter passes `None` for this key's value. This change permits mangum to be used to front datasette in Amazon API Gateway + AWS Lambda deployments.", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/719/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null}
{"id": 600120439, "node_id": "MDU6SXNzdWU2MDAxMjA0Mzk=", "number": 726, "title": "Foreign key : case of a link to the associated row not displayed", "user": {"value": 6371750, "label": "JBPressac"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2020-04-15T08:31:27Z", "updated_at": "2020-04-27T22:05:47Z", "closed_at": "2020-04-27T22:05:46Z", "author_association": "CONTRIBUTOR", "pull_request": null, "body": "Hello,\r\nI use Datasette to publish tsv files linked together by foreign keys declared thanks to sqlite-utils. In one table, [prelib_personne](http://crbc-dataset.huma-num.fr/prelib/prelib_personne), the foreign keys are properly noticed by a link to the associated row (for instance ville_naissance_id is properly linked to prelib_ville). But every link to the foreign key prelib_oeuvre.id fails. For instance, [prelib_ecritoeuvre](http://crbc-dataset.huma-num.fr/prelib/prelib_ecritoeuvre) has links to prelib_personne but none to prelib_oeuvre. In despite of the schema:\r\n\r\nCREATE TABLE \"prelib_ecritoeuvre\" (\r\n\"id\" INTEGER,\r\n \"fonction_id\" INTEGER,\r\n \"oeuvre_id\" INTEGER,\r\n \"personne_id\" INTEGER\r\n ,PRIMARY KEY ([id]),\r\n FOREIGN KEY(fonction_id) REFERENCES prelib_fonctionecritoeuvre(id),\r\n FOREIGN KEY(personne_id) REFERENCES prelib_personne(id),\r\n FOREIGN KEY(oeuvre_id) REFERENCES prelib_oeuvre(id)\r\n); \r\n\r\nWould you have any clue to investigate the reason of this problem?\r\nThanks,", "repo": {"value": 107914493, "label": "datasette"}, "type": "issue", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/726/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": null, "state_reason": "completed"}
{"id": 604001627, "node_id": "MDExOlB1bGxSZXF1ZXN0NDA2Njc3MjA1", "number": 730, "title": "Update pytest-asyncio requirement from ~=0.10.0 to >=0.10,<0.12", "user": {"value": 27856297, "label": "dependabot-preview[bot]"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2020-04-21T13:32:35Z", "updated_at": "2020-05-04T13:27:24Z", "closed_at": "2020-05-04T13:27:23Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/730", "body": "Updates the requirements on [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) to permit the latest version.\n\nCommits
\n\n1026c39
0.11.0 \nab2b140
Test on Python 3.8, drop 3.3 and 3.4 \n6397a22
plugin: Use pytest 5.4.0 new Function API \n21a0f94
Replace yield_fixture() by fixture() \n964b295
Added min hypothesis version so that bugfix for https://github.com/Hypothesis... \n4a11a20
Add max supported pytest version to < 5.4.0 to prevent fails until #141 is fi... \nb305594
Change event_loop to module scope in hypothesis tests, fixing #145. \nd5a0f47
Enable test_subprocess to be run on win, by changing to ProactorEventLoop in ... \nd07cd2d
Fix required pytest version \n86cd9a6
Handle BaseExceptions from loop.run_until_complete (#126) \n- Additional commits viewable in compare view
\n
\n \n
\n\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\nDependabot commands and options
\n
\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@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)\n- `@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)\n- `@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)\n- `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language\n- `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language\n- `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language\n- `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language\n- `@dependabot badge me` will comment on this PR with code to add a \"Dependabot enabled\" badge to your readme\n\nAdditionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com):\n- Update frequency (including time of day and day of week)\n- Pull request limits (per update run and/or open at any time)\n- Out-of-range updates (receive only lockfile updates, if desired)\n- Security updates (receive only security updates, if desired)\n\n\n\n ", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/730/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null}
{"id": 638270441, "node_id": "MDExOlB1bGxSZXF1ZXN0NDM0MDg1MjM1", "number": 848, "title": "Reload support for config_dir mode.", "user": {"value": 49260, "label": "amjith"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2020-06-14T02:34:46Z", "updated_at": "2020-07-03T02:44:54Z", "closed_at": "2020-07-03T02:44:53Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/848", "body": "A reference implementation for adding support to reload when datasette is in the config_dir mode. \r\n\r\nThis implementation is flawed since it is watching the entire directory and any changes to the database will reload the server and adding unrelated files to the directory will also reload the server. ", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/848/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null}
{"id": 638375985, "node_id": "MDExOlB1bGxSZXF1ZXN0NDM0MTYyMzE2", "number": 29, "title": "Fixed bug in SQL query for photo scores", "user": {"value": 41546558, "label": "RhetTbull"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2020-06-14T15:39:22Z", "updated_at": "2020-12-04T22:32:36Z", "closed_at": "2020-12-04T22:32:27Z", "author_association": "CONTRIBUTOR", "pull_request": "dogsheep/dogsheep-photos/pulls/29", "body": "The join on ZCOMPUTEDASSETATTRIBUTES used the wrong columns. In most of the Photos database tables, table.ZASSET joins with ZGENERICASSET.Z_PK", "repo": {"value": 256834907, "label": "dogsheep-photos"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/dogsheep/dogsheep-photos/issues/29/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null}
{"id": 640330278, "node_id": "MDU6SXNzdWU2NDAzMzAyNzg=", "number": 851, "title": "Having trouble getting writable canned queries to work", "user": {"value": 3243482, "label": "abdusco"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2020-06-17T10:30:28Z", "updated_at": "2020-06-17T10:33:25Z", "closed_at": "2020-06-17T10:32:33Z", "author_association": "CONTRIBUTOR", "pull_request": null, "body": "Hey,\r\n\r\nI'm trying to get canned inserts to work. I have an DB with following metadata:\r\n\r\n```text\r\nsqlite> .mode line\r\n\r\nsqlite> select name, sql from sqlite_master where name like '%search%';\r\n name = search\r\n sql = CREATE TABLE \"search\" (\"id\" INTEGER NOT NULL PRIMARY KEY, \"name\" VARCHAR(255) NOT NULL, \"url\" VARCHAR(255) NOT NULL)\r\n```\r\n\r\n```yaml\r\n# ...\r\nqueries:\r\n add_search:\r\n sql: insert into search(name, url) VALUES (:name, :url),\r\n write: true\r\n```\r\nwhich renders a form as expected, but when I submit the form I get `incomplete input` error.\r\n\r\n![image](https://user-images.githubusercontent.com/3243482/84885285-7f46fe80-b09b-11ea-8a05-92c8986bbf7a.png)\r\n\r\nbut when submit post the form\r\n\r\nI've attached a debugger to see where the error comes from, because `incomplete input` string doesn't appear in datasette codebase.\r\n\r\nInside `datasette.database.Database.execute_write_fn` \r\n\r\nhttps://github.com/simonw/datasette/blob/4fa7cf68536628344356d3ef8c92c25c249067a0/datasette/database.py#L69\r\n\r\n```py\r\nresult = await reply_queue.async_q.get()\r\n```\r\n\r\nthis line raises an exception. \r\n\r\nThat led me to believe I had something wrong with my SQL. But running the command in `sqlite3` inserts the record just fine.\r\n\r\n```text\r\nsqlite> insert into search (name, url) values ('my name', 'my url');\r\nsqlite> SELECT last_insert_rowid();\r\nlast_insert_rowid() = 3\r\n```\r\n\r\nSo I'm a bit lost here.\r\n\r\n---\r\n- datasette, version 0.44\r\n- Python 3.8.1", "repo": {"value": 107914493, "label": "datasette"}, "type": "issue", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/851/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": null, "state_reason": "completed"}
{"id": 644610729, "node_id": "MDExOlB1bGxSZXF1ZXN0NDM5MjAzODA4", "number": 866, "title": "Update pytest-asyncio requirement from <0.13,>=0.10 to >=0.10,<0.15", "user": {"value": 27856297, "label": "dependabot-preview[bot]"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2020-06-24T13:21:47Z", "updated_at": "2020-06-24T18:50:57Z", "closed_at": "2020-06-24T18:50:56Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/866", "body": "Updates the requirements on [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) to permit the latest version.\n\nCommits
\n\n53f3da7
Prepare for release \ne99569d
A line is added to the changelog. \n4099b63
One import is not needed \n68513b3
Clarify names and comments, according to yanlend comments 26 May \n907e8f2
FIX new test_cases on python 3.5 & 3.6 \n51d986c
To solve test cases that fail: \nf97e900
1) Test case (test_async_fixtures_with_finalizer) refactoring to pass on pyth... \nc1131f8
1) A new test case that fails with 0.12.0, and pass with this commit. \n7a255bc
0.13.0 open for business \nb8e2a45
0.12.0 \n- Additional commits viewable in compare view
\n
\n \n
\n\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\nDependabot commands and options
\n
\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@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)\n- `@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)\n- `@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)\n- `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language\n- `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language\n- `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language\n- `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language\n- `@dependabot badge me` will comment on this PR with code to add a \"Dependabot enabled\" badge to your readme\n\nAdditionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com):\n- Update frequency (including time of day and day of week)\n- Pull request limits (per update run and/or open at any time)\n- Out-of-range updates (receive only lockfile updates, if desired)\n- Security updates (receive only security updates, if desired)\n\n\n\n ", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/866/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null}
{"id": 649702801, "node_id": "MDU6SXNzdWU2NDk3MDI4MDE=", "number": 888, "title": "URLs in release notes point to 127.0.0.1", "user": {"value": 3243482, "label": "abdusco"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2020-07-02T07:28:04Z", "updated_at": "2020-09-15T20:39:50Z", "closed_at": "2020-09-15T20:39:49Z", "author_association": "CONTRIBUTOR", "pull_request": null, "body": "Just a quick heads up:\r\n\r\nRelease notes for 0.45 include urls that point to localhost. \r\n\r\nhttps://github.com/simonw/datasette/releases/tag/0.45", "repo": {"value": 107914493, "label": "datasette"}, "type": "issue", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/888/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": null, "state_reason": "completed"}
{"id": 652816158, "node_id": "MDExOlB1bGxSZXF1ZXN0NDQ1ODMzOTA4", "number": 120, "title": "Fix query command's support for DML", "user": {"value": 79913, "label": "tsibley"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2020-07-08T01:36:34Z", "updated_at": "2020-07-08T05:14:04Z", "closed_at": "2020-07-08T05:14:04Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/sqlite-utils/pulls/120", "body": "See commit messages for details. I ran into this while investigating another feature/issue.", "repo": {"value": 140912432, "label": "sqlite-utils"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/sqlite-utils/issues/120/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null}
{"id": 662322234, "node_id": "MDExOlB1bGxSZXF1ZXN0NDUzODkwMjky", "number": 901, "title": "Use None as a default arg", "user": {"value": 56323389, "label": "Alyetama"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2020-07-20T22:18:38Z", "updated_at": "2020-07-31T18:42:39Z", "closed_at": "2020-07-31T18:42:39Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/901", "body": "When passing a mutable value as a default argument in a function, the default argument is mutated anytime that value is mutated. This poses a bug risk. Instead, use None as a default and assign the mutable value inside the function.", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/901/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null}
{"id": 667840539, "node_id": "MDExOlB1bGxSZXF1ZXN0NDU4NDM1NTky", "number": 910, "title": "Update pytest requirement from <5.5.0,>=5.2.2 to >=5.2.2,<6.1.0", "user": {"value": 27856297, "label": "dependabot-preview[bot]"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2020-07-29T13:21:17Z", "updated_at": "2020-07-29T21:26:05Z", "closed_at": "2020-07-29T21:26:04Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/910", "body": "Updates the requirements on [pytest](https://github.com/pytest-dev/pytest) to permit the latest version.\n\nRelease notes
\nSourced from pytest's releases.
\n\n6.0.0
\npytest 6.0.0 (2020-07-28)
\n(Please see the full set of changes for this release also in the 6.0.0rc1 notes below)
\nBreaking Changes
\n\n- \n
#5584: PytestDeprecationWarning are now errors by default.
\nFollowing our plan to remove deprecated features with as little disruption as\npossible, all warnings of type PytestDeprecationWarning
now generate errors\ninstead of warning messages.
\nThe affected features will be effectively removed in pytest 6.1, so please consult the\nDeprecations and Removals\nsection in the docs for directions on how to update existing code.
\nIn the pytest 6.0.X
series, it is possible to change the errors back into warnings as a\nstopgap measure by adding this to your pytest.ini
file:
\n[pytest]\nfilterwarnings =\n ignore::pytest.PytestDeprecationWarning\n
\nBut this will stop working when pytest 6.1
is released.
\nIf you have concerns about the removal of a specific feature, please add a\ncomment to #5584.
\n \n- \n
#7472: The exec_()
and is_true()
methods of _pytest._code.Frame
have been removed.
\n \n
\nFeatures
\n\n- #7464: Added support for NO_COLOR and FORCE_COLOR environment variables to control colored output.
\n
\nImprovements
\n\n- #7467:
--log-file
CLI option and log_file
ini marker now create subdirectories if needed. \n- #7489: The pytest.raises function has a clearer error message when
match
equals the obtained string but is not a regex match. In this case it is suggested to escape the regex. \n
\nBug Fixes
\n\n- #7392: Fix the reported location of tests skipped with
@pytest.mark.skip
when --runxfail
is used. \n
\n\n
\n \n\nChangelog
\nSourced from pytest's changelog.
\n \n\nCommits
\n\n41a4539
Add link to 6.0.0rc1 changelog \n45ced1d
Update doc/en/announce/release-6.0.0.rst \n1e4b8d4
Prepare release version 6.0.0 \n3802982
Support generating major releases using issue comments (#7548) \nc2c0b7a
Merge pull request #7545 from asottile/pylib_in_docs \n9818899
remove usage of pylib in docs \n3a060b7
Revert change to traceback repr (#7535) \n7ec6401
Change pytest deprecation warnings into errors for 6.0 release (#7362) \na9799f0
Merge pull request #7531 from bluetech/changelog-mypy-version \n102360b
Merge pull request #7519 from hroncok/pytest_warning_captured_deprecated \n- Additional commits viewable in compare view
\n
\n \n
\n\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\nDependabot commands and options
\n
\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@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)\n- `@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)\n- `@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)\n- `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language\n- `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language\n- `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language\n- `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language\n- `@dependabot badge me` will comment on this PR with code to add a \"Dependabot enabled\" badge to your readme\n\nAdditionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com):\n- Update frequency (including time of day and day of week)\n- Pull request limits (per update run and/or open at any time)\n- Out-of-range updates (receive only lockfile updates, if desired)\n- Security updates (receive only security updates, if desired)\n\n\n\n ", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/910/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null}
{"id": 681575714, "node_id": "MDExOlB1bGxSZXF1ZXN0NDY5OTQ0OTk5", "number": 49, "title": "Document the use of --stop_after with favorites, refs #20", "user": {"value": 370930, "label": "mikepqr"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2020-08-19T06:10:52Z", "updated_at": "2021-08-20T00:02:11Z", "closed_at": "2021-08-20T00:02:11Z", "author_association": "CONTRIBUTOR", "pull_request": "dogsheep/twitter-to-sqlite/pulls/49", "body": "(I discovered this trawling the issues for how to use --since with favorites)", "repo": {"value": 206156866, "label": "twitter-to-sqlite"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/dogsheep/twitter-to-sqlite/issues/49/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null}
{"id": 687245650, "node_id": "MDExOlB1bGxSZXF1ZXN0NDc0NzAzMDA3", "number": 952, "title": "Update black requirement from ~=19.10b0 to >=19.10,<21.0", "user": {"value": 27856297, "label": "dependabot-preview[bot]"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2020-08-27T13:31:36Z", "updated_at": "2020-09-02T22:26:17Z", "closed_at": "2020-09-02T22:26:16Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/952", "body": "Updates the requirements on [black](https://github.com/psf/black) to permit the latest version.\n\nChangelog
\nSourced from black's changelog.
\n\n20.8b1
\nPackaging
\n\n- explicitly depend on Click 7.1.2 or newer as
Black
no longer works with versions\nolder than 7.0 \n
\n20.8b0
\nBlack
\n\n- \n
re-implemented support for explicit trailing commas: now it works consistently within\nany bracket pair, including nested structures (#1288 and duplicates)
\n \n- \n
Black
now reindents docstrings when reindenting code around it (#1053)
\n \n- \n
Black
now shows colored diffs (#1266)
\n \n- \n
Black
is now packaged using 'py3' tagged wheels (#1388)
\n \n- \n
Black
now supports Python 3.8 code, e.g. star expressions in return statements\n(#1121)
\n \n- \n
Black
no longer normalizes capital R-string prefixes as those have a\ncommunity-accepted meaning (#1244)
\n \n- \n
Black
now uses exit code 2 when specified configuration file doesn't exit (#1361)
\n \n- \n
Black
now works on AWS Lambda (#1141)
\n \n- \n
added --force-exclude
argument (#1032)
\n \n- \n
removed deprecated --py36
option (#1236)
\n \n- \n
fixed --diff
output when EOF is encountered (#526)
\n \n- \n
fixed # fmt: off
handling around decorators (#560)
\n \n- \n
fixed unstable formatting with some # type: ignore
comments (#1113)
\n \n- \n
fixed invalid removal on organizing brackets followed by indexing (#1575)
\n \n- \n
introduced black-primer
, a CI tool that allows us to run regression tests against\nexisting open source users of Black (#1402)
\n \n- \n
introduced property-based fuzzing to our test suite based on Hypothesis and\nHypothersmith (#1566)
\n \n- \n
implemented experimental and disabled by default long string rewrapping (#1132),\nhidden under a --experimental-string-processing
flag while it's being worked on;
\n \n
\n\n
\n \n\nCommits
\n\n \n
\n\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\nDependabot commands and options
\n
\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@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)\n- `@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)\n- `@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)\n- `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language\n- `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language\n- `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language\n- `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language\n- `@dependabot badge me` will comment on this PR with code to add a \"Dependabot enabled\" badge to your readme\n\nAdditionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com):\n- Update frequency (including time of day and day of week)\n- Pull request limits (per update run and/or open at any time)\n- Out-of-range updates (receive only lockfile updates, if desired)\n- Security updates (receive only security updates, if desired)\n\n\n\n ", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/952/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null}
{"id": 697030843, "node_id": "MDExOlB1bGxSZXF1ZXN0NDgzMDI3NTg3", "number": 156, "title": "Typos in tests", "user": {"value": 96218, "label": "simonwiles"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2020-09-09T18:00:58Z", "updated_at": "2020-09-09T18:24:50Z", "closed_at": "2020-09-09T18:21:23Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/sqlite-utils/pulls/156", "body": "One of these is my fault, and the other is one I just happened to come across. They're harmless, but might as well be fixed.", "repo": {"value": 140912432, "label": "sqlite-utils"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/sqlite-utils/issues/156/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null}
{"id": 697203800, "node_id": "MDExOlB1bGxSZXF1ZXN0NDgzMTc1NTA5", "number": 158, "title": "Fix accidental mega long line in docs", "user": {"value": 167319, "label": "tomviner"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2020-09-09T22:31:23Z", "updated_at": "2020-09-16T06:21:43Z", "closed_at": "2020-09-16T06:21:43Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/sqlite-utils/pulls/158", "body": "", "repo": {"value": 140912432, "label": "sqlite-utils"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/sqlite-utils/issues/158/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null}
{"id": 709043182, "node_id": "MDExOlB1bGxSZXF1ZXN0NDkzMTYyNzY3", "number": 178, "title": "Update README.md", "user": {"value": 19921, "label": "shakeel"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2020-09-25T15:52:11Z", "updated_at": "2020-10-01T14:18:30Z", "closed_at": "2020-09-30T20:29:28Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/sqlite-utils/pulls/178", "body": "The `sqlite-utils insert releases.db releases - --pk` is missing the pk field name, added ` \"id\"` to fix it.", "repo": {"value": 140912432, "label": "sqlite-utils"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/sqlite-utils/issues/178/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null}
{"id": 710269200, "node_id": "MDExOlB1bGxSZXF1ZXN0NDk0MTQ2MDQz", "number": 977, "title": "Update pytest requirement from <6.1.0,>=5.2.2 to >=5.2.2,<6.2.0", "user": {"value": 27856297, "label": "dependabot-preview[bot]"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2020-09-28T13:33:05Z", "updated_at": "2020-09-28T22:16:36Z", "closed_at": "2020-09-28T22:16:35Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/977", "body": "Updates the requirements on [pytest](https://github.com/pytest-dev/pytest) to permit the latest version.\n\nRelease notes
\nSourced from pytest's releases.
\n\n6.1.0
\npytest 6.1.0 (2020-09-26)
\nBreaking Changes
\n\n- \n
#5585: As per our policy, the following features which have been deprecated in the 5.X series are now\nremoved:
\n\n- The
funcargnames
read-only property of FixtureRequest
, Metafunc
, and Function
classes. Use fixturenames
attribute. \n@pytest.fixture
no longer supports positional arguments, pass all arguments by keyword instead. \n- Direct construction of
Node
subclasses now raise an error, use from_parent
instead. \n- The default value for
junit_family
has changed to xunit2
. If you require the old format, add junit_family=xunit1
to your configuration file. \n- The
TerminalReporter
no longer has a writer
attribute. Plugin authors may use the public functions of the TerminalReporter
instead of accessing the TerminalWriter
object directly. \n- The
--result-log
option has been removed. Users are recommended to use the pytest-reportlog plugin instead. \n
\nFor more information consult\nDeprecations and Removals in the docs.
\n \n
\nDeprecations
\n\n- \n
#6981: The pytest.collect
module is deprecated: all its names can be imported from pytest
directly.
\n \n- \n
#7097: The pytest._fillfuncargs
function is deprecated. This function was kept\nfor backward compatibility with an older plugin.
\nIt's functionality is not meant to be used directly, but if you must replace\nit, use function._request._fillfixtures() instead, though note this is not\na public API and may break in the future.
\n \n- \n
#7210: The special -k '-expr'
syntax to -k
is deprecated. Use -k 'not expr'
\ninstead.
\nThe special -k 'expr:'
syntax to -k
is deprecated. Please open an issue\nif you use this and want a replacement.
\n \n- \n
#7255: The pytest_warning_captured <_pytest.hookspec.pytest_warning_captured> hook is deprecated in favor\nof pytest_warning_recorded <_pytest.hookspec.pytest_warning_recorded>, and will be removed in a future version.
\n \n- \n
#7648: The gethookproxy()
and isinitpath()
methods of FSCollector
and Package
are deprecated;\nuse self.session.gethookproxy()
and self.session.isinitpath()
instead.\nThis should work on all pytest versions.
\n \n
\nFeatures
\n\n- #7667: New
--durations-min
command-line flag controls the minimal duration for inclusion in the slowest list of tests shown by --durations
. Previously this was hard-coded to 0.005s
. \n
\nImprovements
\n\n
\n \n\nChangelog
\nSourced from pytest's changelog.
\n \n\nCommits
\n\n868bc00
Prepare release version 6.1.0 \n0b327cc
Merge pull request #7796 from bluetech/changelog-cleanups \nd3c746e
changelog: some consistency cleanups \nd3f47bf
Improved 'Declaring new hooks' section in docs. (#7782) \n3db2489
Merge pull request #7784 from nicoddemus/use-new-pip-solver-7783 \n8215625
Use new pip resolver in plugins tox env \n5cfd7c0
Merge pull request #7780 from bluetech/final \na99ca87
Mark some public and to-be-public classes as @final
\n050c2df
Use multiple issue template types and mention Discussions (#7739) \ncdfdb3a
Add docs about reusing fixtures from other projects (#7772) \n- Additional commits viewable in compare view
\n
\n \n
\n\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\nDependabot commands and options
\n
\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@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)\n- `@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)\n- `@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)\n- `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language\n- `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language\n- `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language\n- `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language\n- `@dependabot badge me` will comment on this PR with code to add a \"Dependabot enabled\" badge to your readme\n\nAdditionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com):\n- Update frequency (including time of day and day of week)\n- Pull request limits (per update run and/or open at any time)\n- Out-of-range updates (receive only lockfile updates, if desired)\n- Security updates (receive only security updates, if desired)\n\n\n\n ", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/977/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null}
{"id": 719381863, "node_id": "MDExOlB1bGxSZXF1ZXN0NTAxNTc5MDg4", "number": 1017, "title": "Update janus requirement from <0.6,>=0.4 to >=0.4,<0.7", "user": {"value": 27856297, "label": "dependabot-preview[bot]"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2020-10-12T13:29:46Z", "updated_at": "2020-10-14T21:52:08Z", "closed_at": "2020-10-14T21:52:07Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/1017", "body": "Updates the requirements on [janus](https://github.com/aio-libs/janus) to permit the latest version.\n\nChangelog
\nSourced from janus's changelog.
\n\nChanges
\n0.5.0 (2020-04-23)
\n\n- Remove explicit loop arguments and forbid creating queues outside event loops #246
\n
\n0.4.0 (2018-07-28)
\n\n- Add
py.typed
macro #89 \n- Drop python 3.4 support and fix minimal version python3.5.3 #88
\n- Add property with that indicates if queue is closed #86
\n
\n0.3.2 (2018-07-06)
\n\n- Fixed python 3.7 support #97
\n
\n0.3.1 (2018-01-30)
\n\n- Fixed bug with join() in case tasks are added by sync_q.put() #75
\n
\n0.3.0 (2017-02-21)
\n\n- Expose unfinished_tasks property #34
\n
\n0.2.4 (2016-12-05)
\n\n- Restore tarball deploying
\n
\n0.2.3 (2016-07-12)
\n\n0.2.2 (2016-07-11)
\n\n- Update asyncio.async() to use asyncio.ensure_future() #6
\n
\n0.2.1 (2016-03-24)
\n\n- Fix python setup.py test command #4
\n
\n\n
\n \n\nCommits
\n\nd186724
Fix yaml \ndbb2d7b
Fix deploy script \n18df625
Bump to 0.6.0 \na50b7ec
Test on ubuntu only, the library has no platform specific dependencies \nb599d94
Fix workflow \n9897fca
Setup github workflows \ncde6918
Drop Python 3.5, test on Python 3.9, format with black/isort \n5f04d79
Support Python 3.9 officially \nac23eb7
janus: remove unused type ignores (#287) \n0da8f95
Make all tests non-skipped again \n- Additional commits viewable in compare view
\n
\n \n
\n\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\nDependabot commands and options
\n
\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@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)\n- `@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)\n- `@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)\n- `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language\n- `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language\n- `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language\n- `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language\n- `@dependabot badge me` will comment on this PR with code to add a \"Dependabot enabled\" badge to your readme\n\nAdditionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com):\n- Update frequency (including time of day and day of week)\n- Pull request limits (per update run and/or open at any time)\n- Out-of-range updates (receive only lockfile updates, if desired)\n- Security updates (receive only security updates, if desired)\n\n\n\n ", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1017/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null}
{"id": 719382156, "node_id": "MDExOlB1bGxSZXF1ZXN0NTAxNTc5MzE1", "number": 1018, "title": "Update asgiref requirement from ~=3.2.10 to >=3.2.10,<3.4.0", "user": {"value": 27856297, "label": "dependabot-preview[bot]"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2020-10-12T13:30:09Z", "updated_at": "2020-10-14T21:51:36Z", "closed_at": "2020-10-14T21:51:35Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/1018", "body": "Updates the requirements on [asgiref](https://github.com/django/asgiref) to permit the latest version.\n\nChangelog
\nSourced from asgiref's changelog.
\n\n3.3.0 (2020-10-09)
\n\n- sync_to_async now defaults to thread-sensitive mode being on
\n- async_to_sync now works inside of forked processes
\n- WsgiToAsgi now correctly clamps its response body when Content-Length is set
\n
\n3.2.10 (2020-08-18)
\n\n- Fixed bugs due to bad WeakRef handling introduced in 3.2.8
\n
\n3.2.9 (2020-06-16)
\n\n- Fixed regression with exception handling in 3.2.8 related to the contextvars fix.
\n
\n3.2.8 (2020-06-15)
\n\n- Fixed small memory leak in local.Local
\n- contextvars are now persisted through AsyncToSync
\n
\n3.2.7 (2020-03-24)
\n\n- Bug fixed in local.Local where deleted Locals would occasionally inherit\ntheir storage into new Locals due to memory reuse.
\n
\n3.2.6 (2020-03-23)
\n\n- local.Local now works in all threading situations, no longer requires\nperiodic garbage collection, and works with libraries that monkeypatch\nthreading (like gevent)
\n
\n3.2.5 (2020-03-11)
\n\n- self is now preserved on methods by async_to_sync
\n
\n3.2.4 (2020-03-10)
\n\n
\n \n\nCommits
\n\n7dba5ff
Releasing 3.3.0 \ne1e0dd9
Added ZeroCopy extension \n3834d13
Added rpc.py to Implementations (#198) \n03b0dbb
Clamped WsgiToAsgi response body using Content-Length value \ncfd82e4
Fix linting with unused import removal \ncc1877e
Fix import sorting in previous commit. \n7becc9d
Making thread_sensitive=True the default \n66a6e68
Fixed #194: Made async_to_sync work inside a fork \n4ab9d8e
Fixed #193: Bumped docs version to 3.0 \n1c9d063
Clarified "Optional" meaning (#190) \n- Additional commits viewable in compare view
\n
\n \n
\n\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\nDependabot commands and options
\n
\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@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)\n- `@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)\n- `@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)\n- `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language\n- `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language\n- `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language\n- `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language\n- `@dependabot badge me` will comment on this PR with code to add a \"Dependabot enabled\" badge to your readme\n\nAdditionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com):\n- Update frequency (including time of day and day of week)\n- Pull request limits (per update run and/or open at any time)\n- Out-of-range updates (receive only lockfile updates, if desired)\n- Security updates (receive only security updates, if desired)\n\n\n\n ", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1018/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null}
{"id": 719637258, "node_id": "MDExOlB1bGxSZXF1ZXN0NTAxNzkxNjYz", "number": 10, "title": "Update utils.py to fix sqlite3.OperationalError", "user": {"value": 29426418, "label": "mattiaborsoi"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2020-10-12T20:17:53Z", "updated_at": "2020-10-12T20:25:10Z", "closed_at": "2020-10-12T20:25:09Z", "author_association": "CONTRIBUTOR", "pull_request": "dogsheep/swarm-to-sqlite/pulls/10", "body": "Fixes the errors:\r\n- sqlite3.OperationalError: table posts has no column named text\r\n- sqlite3.OperationalError: table photos has no column named hasSticker\r\n\r\nThat will cause sqlite-utils to notice if there's a missing column and add it. As recommended by @simonw", "repo": {"value": 205429375, "label": "swarm-to-sqlite"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/dogsheep/swarm-to-sqlite/issues/10/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null}
{"id": 723837704, "node_id": "MDExOlB1bGxSZXF1ZXN0NTA1MzM5NTE1", "number": 1029, "title": "fix(docs): broken link", "user": {"value": 17075617, "label": "jthodge"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2020-10-17T20:03:20Z", "updated_at": "2020-10-17T20:05:04Z", "closed_at": "2020-10-17T20:05:04Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/1029", "body": "This PR fixes a broken markdown link in the `Publish` docs page.", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1029/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null}
{"id": 748372469, "node_id": "MDU6SXNzdWU3NDgzNzI0Njk=", "number": 9, "title": "ParseError: undefined entity š", "user": {"value": 4028322, "label": "mkorosec"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2020-11-22T23:04:35Z", "updated_at": "2021-02-11T22:10:55Z", "closed_at": "2021-02-11T22:10:55Z", "author_association": "CONTRIBUTOR", "pull_request": null, "body": "I encountered a parse error if the enex file contained š or \r\n\r\nRun command: \r\nevernote-to-sqlite enex evernote.db evernote.enex\r\n\r\n```\r\nTraceback (most recent call last):\r\n...\r\n File \"evernote_to_sqlite/cli.py\", line 31, in enex\r\n save_note(db, note)\r\n File \"evernote_to_sqlite/utils.py\", line 35, in save_note\r\n content = ET.tostring(ET.fromstring(content_xml)).decode(\"utf-8\")\r\n File \"/usr/lib/python3.8/xml/etree/ElementTree.py\", line 1320, in XML\r\n parser.feed(text)\r\nxml.etree.ElementTree.ParseError: undefined entity š: line 3, column 35\r\n```\r\n\r\nWorkaround:\r\n```\r\nsed -i 's/š//g' evernote.enex\r\nsed -i 's/ //g' evernote.enex\r\n```", "repo": {"value": 303218369, "label": "evernote-to-sqlite"}, "type": "issue", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/dogsheep/evernote-to-sqlite/issues/9/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": null, "state_reason": "completed"}
{"id": 750141615, "node_id": "MDExOlB1bGxSZXF1ZXN0NTI2ODQ3ODIz", "number": 7, "title": "Fixed conflicting CLI flags", "user": {"value": 8944, "label": "tlockney"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2020-11-24T23:25:12Z", "updated_at": "2022-08-21T21:11:56Z", "closed_at": "2022-08-21T21:11:56Z", "author_association": "CONTRIBUTOR", "pull_request": "dogsheep/pocket-to-sqlite/pulls/7", "body": "The `-a` used for the auth credentials and the shortened form of the `--all` flags were in conflict on the `fetch` command. To be consistent with other `-to-sqlite` libraries in the Dogsheep ecosystem, I removed the shortened form of the `--all` flag.", "repo": {"value": 213286752, "label": "pocket-to-sqlite"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/dogsheep/pocket-to-sqlite/issues/7/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null}
{"id": 752888228, "node_id": "MDExOlB1bGxSZXF1ZXN0NTI5MDkwNTYw", "number": 204, "title": "use jsonify_if_need for sql updates", "user": {"value": 78035, "label": "mfa"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2020-11-29T10:49:00Z", "updated_at": "2020-12-08T17:49:42Z", "closed_at": "2020-12-08T17:49:42Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/sqlite-utils/pulls/204", "body": "", "repo": {"value": 140912432, "label": "sqlite-utils"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/sqlite-utils/issues/204/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null}
{"id": 754178780, "node_id": "MDU6SXNzdWU3NTQxNzg3ODA=", "number": 1121, "title": "Table actions cog is misaligned", "user": {"value": 3243482, "label": "abdusco"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2020-12-01T08:41:25Z", "updated_at": "2020-12-03T01:03:19Z", "closed_at": "2020-12-03T00:33:36Z", "author_association": "CONTRIBUTOR", "pull_request": null, "body": "At the moment it looks like this\r\nhttps://datasette-graphql-demo.datasette.io/github/repos\r\n\r\n![image](https://user-images.githubusercontent.com/3243482/100716533-e6e2d300-33c9-11eb-866e-1e83ba228bf5.png)\r\n\r\nAdding a few flex statements fixes the alignment and centers `h1` text and the cog icon vertically.\r\n![image](https://user-images.githubusercontent.com/3243482/100716605-f8c47600-33c9-11eb-8d69-0e37499cf641.png)\r\n\r\n", "repo": {"value": 107914493, "label": "datasette"}, "type": "issue", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1121/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": null, "state_reason": "completed"}
{"id": 766156875, "node_id": "MDU6SXNzdWU3NjYxNTY4NzU=", "number": 209, "title": "Test failure with sqlite 3.34 in test_cli.py::test_optimize", "user": {"value": 191622, "label": "meatcar"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2020-12-14T08:58:18Z", "updated_at": "2021-01-01T23:52:46Z", "closed_at": "2021-01-01T23:52:46Z", "author_association": "CONTRIBUTOR", "pull_request": null, "body": "pytest output:\r\n```\r\n...\r\n============================== short test summary info ===============================\r\nFAILED tests/test_cli.py::test_optimize[tables0] - assert 1662976 < 1662976\r\nFAILED tests/test_cli.py::test_optimize[tables1] - assert 1667072 < 1662976\r\n===================== 2 failed, 538 passed, 3 skipped in 34.32s ======================\r\n```\r\n\r\nCame across this while packaging `sqlite-utils` for NixOS, but it can be recreated it using the `alpine:edge` docker image as well as follows:\r\n\r\n```\r\ndocker run --rm -it alpine:edge /bin/sh\r\n# apk update && apk add git sqlite python3 gcc python3-dev musl-dev && python3 -m ensurepip\r\n# git clone https://github.com/simonw/sqlite-utils.git\r\n# cd sqlite-utils/\r\n# pip3 install -e .[test]\r\n# pytest\r\n```\r\n\r\nThis definitely works on sqlite v3.33.", "repo": {"value": 140912432, "label": "sqlite-utils"}, "type": "issue", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/sqlite-utils/issues/209/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": null, "state_reason": "completed"}
{"id": 766494367, "node_id": "MDExOlB1bGxSZXF1ZXN0NTM5NDg5NTI1", "number": 1145, "title": "Update pytest requirement from <6.2.0,>=5.2.2 to >=5.2.2,<6.3.0", "user": {"value": 27856297, "label": "dependabot-preview[bot]"}, "state": "closed", "locked": 0, "assignee": null, "milestone": {"value": 6346396, "label": "Datasette 0.54"}, "comments": 1, "created_at": "2020-12-14T14:22:16Z", "updated_at": "2021-01-24T21:20:29Z", "closed_at": "2020-12-16T21:44:39Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/1145", "body": "Updates the requirements on [pytest](https://github.com/pytest-dev/pytest) to permit the latest version.\n\nRelease notes
\nSourced from pytest's releases.
\n\n6.2.0
\npytest 6.2.0 (2020-12-12)
\nBreaking Changes
\n\n- #7808: pytest now supports python3.6+ only.
\n
\nDeprecations
\n\n- \n
#7469: Directly constructing/calling the following classes/functions is now deprecated:
\n\n_pytest.cacheprovider.Cache
\n_pytest.cacheprovider.Cache.for_config()
\n_pytest.cacheprovider.Cache.clear_cache()
\n_pytest.cacheprovider.Cache.cache_dir_from_config()
\n_pytest.capture.CaptureFixture
\n_pytest.fixtures.FixtureRequest
\n_pytest.fixtures.SubRequest
\n_pytest.logging.LogCaptureFixture
\n_pytest.pytester.Pytester
\n_pytest.pytester.Testdir
\n_pytest.recwarn.WarningsRecorder
\n_pytest.recwarn.WarningsChecker
\n_pytest.tmpdir.TempPathFactory
\n_pytest.tmpdir.TempdirFactory
\n
\nThese have always been considered private, but now issue a deprecation warning, which may become a hard error in pytest 7.0.0.
\n \n- \n
#7530: The --strict
command-line option has been deprecated, use --strict-markers
instead.
\nWe have plans to maybe in the future to reintroduce --strict
and make it an encompassing flag for all strictness\nrelated options (--strict-markers
and --strict-config
at the moment, more might be introduced in the future).
\n \n- \n
#7988: The @pytest.yield_fixture
decorator/function is now deprecated. Use pytest.fixture instead.
\nyield_fixture
has been an alias for fixture
for a very long time, so can be search/replaced safely.
\n \n
\nFeatures
\n\n- \n
#5299: pytest now warns about unraisable exceptions and unhandled thread exceptions that occur in tests on Python>=3.8.\nSee unraisable for more information.
\n \n- \n
#7425: New pytester fixture, which is identical to testdir but its methods return pathlib.Path when appropriate instead of py.path.local
.
\nThis is part of the movement to use pathlib.Path objects internally, in order to remove the dependency to py
in the future.
\nInternally, the old Testdir <_pytest.pytester.Testdir> is now a thin wrapper around Pytester <_pytest.pytester.Pytester>, preserving the old interface.
\n \n
\n\n
\n \n\nChangelog
\nSourced from pytest's changelog.
\n \n\nCommits
\n\ne7073af
Prepare release version 6.2.0 \n683f29f
Merge pull request #8129 from bluetech/docs-pygments-workaround \n0feeddf
doc: temporary workaround for pytest-pygments lexing error \nb478275
Merge pull request #8128 from bluetech/skip-reason-empty \n3302ff9
terminal: when the skip/xfail is empty, don't show it as "()" \n59bd0f6
Merge pull request #8126 from bluetech/tox-regen-pretend-scm2 \n6298ff1
tox: use pip legacy resolver for regen job \nd51ecbd
Merge pull request #8125 from bluetech/tox-rm-pip-req \nf237b07
tox: remove requires: pip>=20.3.1 \n95e0e19
Merge pull request #8124 from bluetech/s0undt3ch-feature/skip-context-hook \n- Additional commits viewable in compare view
\n
\n \n
\n\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\nDependabot commands and options
\n
\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@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)\n- `@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)\n- `@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)\n- `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language\n- `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language\n- `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language\n- `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language\n- `@dependabot badge me` will comment on this PR with code to add a \"Dependabot enabled\" badge to your readme\n\nAdditionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com):\n- Update frequency (including time of day and day of week)\n- Pull request limits (per update run and/or open at any time)\n- Out-of-range updates (receive only lockfile updates, if desired)\n- Security updates (receive only security updates, if desired)\n\n\n\n ", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1145/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null}
{"id": 797108702, "node_id": "MDExOlB1bGxSZXF1ZXN0NTY0MTcyMTQw", "number": 61, "title": "fixing typo in get cli help text", "user": {"value": 22578954, "label": "daniel-butler"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2021-01-29T18:57:04Z", "updated_at": "2021-05-19T16:07:09Z", "closed_at": "2021-05-19T16:07:09Z", "author_association": "CONTRIBUTOR", "pull_request": "dogsheep/github-to-sqlite/pulls/61", "body": "", "repo": {"value": 207052882, "label": "github-to-sqlite"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/dogsheep/github-to-sqlite/issues/61/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null}
{"id": 820468864, "node_id": "MDExOlB1bGxSZXF1ZXN0NTgzNDA3OTg5", "number": 244, "title": "Typo in upsert example", "user": {"value": 387669, "label": "j-e-d"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2021-03-02T23:14:14Z", "updated_at": "2021-05-19T02:58:21Z", "closed_at": "2021-05-19T02:58:21Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/sqlite-utils/pulls/244", "body": "Remove extra `[`", "repo": {"value": 140912432, "label": "sqlite-utils"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/sqlite-utils/issues/244/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null}
{"id": 830803173, "node_id": "MDExOlB1bGxSZXF1ZXN0NTkyMjg5MzI0", "number": 245, "title": "Correct some typos", "user": {"value": 1076745, "label": "dbready"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2021-03-13T04:26:56Z", "updated_at": "2021-05-19T02:58:04Z", "closed_at": "2021-05-19T02:58:04Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/sqlite-utils/pulls/245", "body": "Noticed a typo in the docs and followed that up with a spellcheck. Had to bite my tongue at some of the British spellings.", "repo": {"value": 140912432, "label": "sqlite-utils"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/sqlite-utils/issues/245/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null}
{"id": 857280617, "node_id": "MDExOlB1bGxSZXF1ZXN0NjE0NzI3MDM2", "number": 254, "title": "Fix incorrect create-table cli description", "user": {"value": 1935268, "label": "robjwells"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2021-04-13T20:03:15Z", "updated_at": "2021-05-19T04:43:46Z", "closed_at": "2021-05-19T02:57:26Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/sqlite-utils/pulls/254", "body": "The description for `create-table` was duplicated from `create-index`.", "repo": {"value": 140912432, "label": "sqlite-utils"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/sqlite-utils/issues/254/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null}
{"id": 860722711, "node_id": "MDU6SXNzdWU4NjA3MjI3MTE=", "number": 1301, "title": "Publishing to cloudrun with immutable mode?", "user": {"value": 5413548, "label": "louispotok"}, "state": "open", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2021-04-18T17:51:46Z", "updated_at": "2022-10-07T02:38:04Z", "closed_at": null, "author_association": "CONTRIBUTOR", "pull_request": null, "body": "I'm a bit confused about immutable mode and publishing to cloudrun. (I want to publish with immutable mode so that I can support database downloads.)\r\n\r\nRunning `datasette publish cloudrun --extra-options=\"-i example.db\"` leads to an error:\r\n> Error: Invalid value for '-i' / '--immutable': Path 'example.db' does not exist. \r\n\r\nHowever, running `datasette publish cloudrun example.db` not only works but seems to publish in immutable mode anyway! I'm seeing this both with `/-/databases.json` and the fact that downloads are working.\r\n\r\nWhen I just `datasette serve` locally, this succeeds both ways and works as expected.", "repo": {"value": 107914493, "label": "datasette"}, "type": "issue", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1301/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": null, "state_reason": null}
{"id": 861331159, "node_id": "MDExOlB1bGxSZXF1ZXN0NjE4MDExOTc3", "number": 1303, "title": "Update pytest-asyncio requirement from <0.15,>=0.10 to >=0.10,<0.16", "user": {"value": 27856297, "label": "dependabot-preview[bot]"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2021-04-19T13:49:12Z", "updated_at": "2021-04-19T18:18:17Z", "closed_at": "2021-04-19T18:18:17Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/1303", "body": "Updates the requirements on [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) to permit the latest version.\n\nCommits
\n\n \n
\n\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\nDependabot commands and options
\n
\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@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)\n- `@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)\n- `@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)\n- `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language\n- `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language\n- `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language\n- `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language\n- `@dependabot badge me` will comment on this PR with code to add a \"Dependabot enabled\" badge to your readme\n\nAdditionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com):\n- Update frequency (including time of day and day of week)\n- Pull request limits (per update run and/or open at any time)\n- Out-of-range updates (receive only lockfile updates, if desired)\n- Security updates (receive only security updates, if desired)\n\n\n\n ", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1303/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null}
{"id": 868191959, "node_id": "MDExOlB1bGxSZXF1ZXN0NjIzNzU1NzIz", "number": 258, "title": "Fixing insert from JSON containing strings with non-ascii characters \u2026", "user": {"value": 6586811, "label": "dylan-wu"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2021-04-26T20:50:00Z", "updated_at": "2021-05-19T02:47:44Z", "closed_at": "2021-05-19T02:47:44Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/sqlite-utils/pulls/258", "body": "\u2026are escaped aps unicode for lists, tuples, dicts\r\n\r\nFix of #257 ", "repo": {"value": 140912432, "label": "sqlite-utils"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/sqlite-utils/issues/258/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null}
{"id": 871157602, "node_id": "MDExOlB1bGxSZXF1ZXN0NjI2MjIyNjc2", "number": 1314, "title": "Upgrade to GitHub-native Dependabot", "user": {"value": 27856297, "label": "dependabot-preview[bot]"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2021-04-29T15:36:41Z", "updated_at": "2021-04-29T15:47:22Z", "closed_at": "2021-04-29T15:47:21Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/1314", "body": "_Dependabot Preview will be shut down on August 3rd, 2021. In order to keep getting Dependabot updates, please merge this PR and migrate to GitHub-native Dependabot before then._\n\nDependabot has been fully integrated into GitHub, so you no longer have to install and manage a separate app. This pull request migrates your configuration from Dependabot.com to a config file, using the [new syntax][new_syntax]. When merged, we'll swap out `dependabot-preview` (me) for a new `dependabot` app, and you'll be all set!\n\nWith this change, you'll now use the [Dependabot page in GitHub][dependabot_page], rather than the [Dependabot dashboard][dashboard], to monitor your version updates, and you'll configure Dependabot through the new config file rather than a UI.\n\n\n\n\n\n\n\nIf you've got any questions or feedback for us, please let us know by creating an issue in the [dependabot/dependabot-core][issues] repository.\n\n[Learn more about migrating to GitHub-native Dependabot][learn]\n\nPlease note that regular `@dependabot` commands do not work on this pull request.\n\n[dashboard]: https://app.dependabot.com/\n[dependabot_page]: https://github.com/simonw/datasette/network/updates\n[issues]: https://github.com/dependabot/dependabot-core/issues/new?assignees=%40dependabot%2Fpreview-migration-reviewers&labels=E%3A+preview-migration&template=migration-issue.md\n[learn]: http://docs.github.com/code-security/supply-chain-security/upgrading-from-dependabotcom-to-github-native-dependabot\n[new_syntax]: https://help.github.com/en/github/administering-a-repository/configuration-options-for-dependency-updates\n[org_secrets_url]: https://github.com/settings/secrets/dependabot\n[repo_secrets_url]: https://github.com/simonw/datasette/settings/secrets/dependabot\n", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1314/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null}
{"id": 887241681, "node_id": "MDExOlB1bGxSZXF1ZXN0NjQwNDg0OTY2", "number": 1321, "title": "Bump black from 21.4b2 to 21.5b1", "user": {"value": 49699333, "label": "dependabot[bot]"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2021-05-11T13:12:28Z", "updated_at": "2021-05-22T23:55:39Z", "closed_at": "2021-05-22T23:55:39Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/1321", "body": "Bumps [black](https://github.com/psf/black) from 21.4b2 to 21.5b1.\n\nRelease notes
\nSourced from black's releases.
\n\n21.5b1
\nBlack
\n\n- Refactor
src/black/__init__.py
into many files (#2206) \n
\nDocumentation
\n\n- Replaced all remaining references to the
master
branch with the main
branch. Some additional changes in the source code were also made. (#2210) \n- Sigificantly reorganized the documentation to make much more sense. Check them out by heading over to the stable docs on RTD. (#2174)
\n
\n21.5b0
\nBlack
\n\n- Set
--pyi
mode if --stdin-filename
ends in .pyi
(#2169) \n- Stop detecting target version as Python 3.9+ with pre-PEP-614 decorators that are\nbeing called but with no arguments (#2182)
\n
\nBlack-Primer
\n\n- Add
--no-diff
to black-primer to suppress formatting changes (#2187) \n
\n
\n \n\nChangelog
\nSourced from black's changelog.
\n\n21.5b1
\nBlack
\n\n- Refactor
src/black/__init__.py
into many files (#2206) \n
\nDocumentation
\n\n- Replaced all remaining references to the\n
master
branch with the\nmain
branch. Some additional changes in\nthe source code were also made. (#2210) \n- Sigificantly reorganized the documentation to make much more sense. Check them out by\nheading over to the stable docs on RTD.\n(#2174)
\n
\n21.5b0
\nBlack
\n\n- Set
--pyi
mode if --stdin-filename
ends in .pyi
(#2169) \n- Stop detecting target version as Python 3.9+ with pre-PEP-614 decorators that are\nbeing called but with no arguments (#2182)
\n
\nBlack-Primer
\n\n- Add
--no-diff
to black-primer to suppress formatting changes (#2187) \n
\n
\n \n\nCommits
\n\n \n
\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=black&package-manager=pip&previous-version=21.4b2&new-version=21.5b1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\nDependabot commands and options
\n
\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n\n\n ", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1321/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null}
{"id": 890073888, "node_id": "MDExOlB1bGxSZXF1ZXN0NjQzMTQ5Mjcz", "number": 1323, "title": "Update click requirement from ~=7.1.1 to >=7.1.1,<8.1.0", "user": {"value": 49699333, "label": "dependabot[bot]"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2021-05-12T13:08:56Z", "updated_at": "2021-05-22T23:54:48Z", "closed_at": "2021-05-22T23:54:48Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/1323", "body": "Updates the requirements on [click](https://github.com/pallets/click) to permit the latest version.\n\nRelease notes
\nSourced from click's releases.
\n\n8.0.0
\nNew major versions of all the core Pallets libraries, including Click 8.0, have been released! :tada:
\n\nThis represents a significant amount of work, and there are quite a few changes. Be sure to carefully read the changelog, and use tools such as pip-compile and Dependabot to pin your dependencies and control your updates.
\n
\n \n\nChangelog
\nSourced from click's changelog.
\n\nVersion 8.0.0
\nReleased 2021-05-11
\n\n- Drop support for Python 2 and 3.5.
\n- Colorama is always installed on Windows in order to provide style\nand color support. :pr:
1784
\n- Adds a repr to Command, showing the command name for friendlier\ndebugging. :issue:
1267
, :pr:1295
\n- Add support for distinguishing the source of a command line\nparameter. :issue:
1264
, :pr:1329
\n- Add an optional parameter to
ProgressBar.update
to set the\ncurrent_item
. :issue:1226
, :pr:1332
\nversion_option
uses importlib.metadata
(or the\nimportlib_metadata
backport) instead of pkg_resources
.\n:issue:1582
\n- If validation fails for a prompt with
hide_input=True
, the value\nis not shown in the error message. :issue:1460
\n- An
IntRange
or FloatRange
option shows the accepted range in\nits help text. :issue:1525
, :pr:1303
\nIntRange
and FloatRange
bounds can be open (<
) instead\nof closed (<=
) by setting min_open
and max_open
. Error\nmessages have changed to reflect this. :issue:1100
\n- An option defined with duplicate flag names (
"--foo/--foo"
)\nraises a ValueError
. :issue:1465
\necho()
will not fail when using pytest's capsys
fixture on\nWindows. :issue:1590
\n- Resolving commands returns the canonical command name instead of the\nmatched name. This makes behavior such as help text and\n
Context.invoked_subcommand
consistent when using patterns like\nAliasedGroup
. :issue:1422
\n- The
BOOL
type accepts the values "on" and "off". :issue:1629
\n- A
Group
with invoke_without_command=True
will always invoke\nits result callback. :issue:1178
\nnargs == -1
and nargs > 1
is parsed and validated for\nvalues from environment variables and defaults. :issue:729
\n- Detect the program name when executing a module or package with\n
python -m name
. :issue:1603
\n- Include required parent arguments in help synopsis of subcommands.\n:issue:
1475
\n- Help for boolean flags with
show_default=True
shows the flag\nname instead of True
or False
. :issue:1538
\n- Non-string objects passed to
style()
and secho()
will be\nconverted to string. :pr:1146
\nedit(require_save=True)
will detect saves for editors that exit\nvery fast on filesystems with 1 second resolution. :pr:1050
\n- New class attributes make it easier to use custom core objects\nthroughout an entire application. :pr:
938
\n
\n\n
\n... (truncated)
\n \n\nCommits
\n\n9da1669
Merge pull request #1877 from pallets/release-8.0.0 \ndfa6369
release version 8.0.0 \nb862cb1
update requirements \nf51584c
Merge pull request #1876 from pallets/pre-commit-ci-schedule \n804c71c
update pre-commit monthly \nac655f8
Merge pull request #1872 from janLuke/fix/formatter_write_text \ndcd991d
HelpFormatter.write_text uses full width \n5215fc1
Merge pull request #1870 from AdrienPensart/allow_colors_in_metavar \ne3e1691
repr is erasing ANSI escapes codes \n482e6e6
Merge pull request #1875 from pallets/pre-commit-ci-update-config \n- Additional commits viewable in compare view
\n
\n \n
\n\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\nDependabot commands and options
\n
\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n\n\n ", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1323/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null}
{"id": 893314402, "node_id": "MDExOlB1bGxSZXF1ZXN0NjQ1ODQ5MDI3", "number": 1330, "title": "Update aiofiles requirement from <0.7,>=0.4 to >=0.4,<0.8", "user": {"value": 49699333, "label": "dependabot[bot]"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2021-05-17T13:07:31Z", "updated_at": "2021-05-22T23:53:57Z", "closed_at": "2021-05-22T23:53:56Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/1330", "body": "Updates the requirements on [aiofiles](https://github.com/Tinche/aiofiles) to permit the latest version.\n\nCommits
\n\n \n
\n\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\nDependabot commands and options
\n
\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n\n\n ", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1330/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null}
{"id": 895315478, "node_id": "MDExOlB1bGxSZXF1ZXN0NjQ3NTUyMTQx", "number": 1335, "title": "Fix small typo", "user": {"value": 3243482, "label": "abdusco"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2021-05-19T11:17:04Z", "updated_at": "2021-05-22T23:53:34Z", "closed_at": "2021-05-22T23:53:34Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/1335", "body": "", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1335/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null}
{"id": 908276134, "node_id": "MDExOlB1bGxSZXF1ZXN0NjU4OTkxNDA0", "number": 1352, "title": "Bump black from 21.5b1 to 21.5b2", "user": {"value": 49699333, "label": "dependabot[bot]"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2021-06-01T13:08:52Z", "updated_at": "2021-06-02T02:56:45Z", "closed_at": "2021-06-02T02:56:44Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/1352", "body": "Bumps [black](https://github.com/psf/black) from 21.5b1 to 21.5b2.\n\nRelease notes
\nSourced from black's releases.
\n\n21.5b2
\nBlack
\n\n- A space is no longer inserted into empty docstrings (#2249)
\n- Fix handling of .gitignore files containing non-ASCII characters on Windows (#2229)
\n- Respect
.gitignore
files in all levels, not only root/.gitignore
file (apply\n.gitignore
rules like git
does) (#2225) \n- Restored compatibility with Click 8.0 on Python 3.6 when LANG=C used (#2227)
\n- Add extra uvloop install + import support if in python env (#2258)
\n- Fix --experimental-string-processing crash when matching parens are not found (#2283)
\n- Make sure to split lines that start with a string operator (#2286)
\n- Fix regular expression that black uses to identify f-expressions (#2287)
\n
\nBlackd
\n\n- Add a lower bound for the
aiohttp-cors
dependency. Only 0.4.0 or higher is\nsupported. (#2231) \n
\nPackaging
\n\n- Release self-contained x86_64 MacOS binaries as part of the GitHub release pipeline\n(#2198)
\n- Always build binaries with the latest available Python (#2260)
\n
\nDocumentation
\n\n- Add discussion of magic comments to FAQ page (#2272)
\n--experimental-string-processing
will be enabled by default in the future (#2273) \n- Fix typos discovered by codespell (#2228)
\n- Fix Vim plugin installation instructions. (#2235)
\n- Add new Frequently Asked Questions page (#2247)
\n- Fix encoding + symlink issues preventing proper build on Windows (#2262)
\n
\n
\n \n\nChangelog
\nSourced from black's changelog.
\n\n21.5b2
\nBlack
\n\n- A space is no longer inserted into empty docstrings (#2249)
\n- Fix handling of .gitignore files containing non-ASCII characters on Windows (#2229)
\n- Respect
.gitignore
files in all levels, not only root/.gitignore
file (apply\n.gitignore
rules like git
does) (#2225) \n- Restored compatibility with Click 8.0 on Python 3.6 when LANG=C used (#2227)
\n- Add extra uvloop install + import support if in python env (#2258)
\n- Fix --experimental-string-processing crash when matching parens are not found (#2283)
\n- Make sure to split lines that start with a string operator (#2286)
\n- Fix regular expression that black uses to identify f-expressions (#2287)
\n
\nBlackd
\n\n- Add a lower bound for the
aiohttp-cors
dependency. Only 0.4.0 or higher is\nsupported. (#2231) \n
\nIntegrations
\n\n- The official Black action now supports choosing what version to use, and supports the\nmajor 3 OSes. (#1940)
\n
\nPackaging
\n\n- Release self-contained x86_64 MacOS binaries as part of the GitHub release pipeline\n(#2198)
\n- Always build binaries with the latest available Python (#2260)
\n
\nDocumentation
\n\n- Add discussion of magic comments to FAQ page (#2272)
\n--experimental-string-processing
will be enabled by default in the future (#2273) \n- Fix typos discovered by codespell (#2228)
\n- Fix Vim plugin installation instructions. (#2235)
\n- Add new Frequently Asked Questions page (#2247)
\n- Fix encoding + symlink issues preventing proper build on Windows (#2262)
\n
\n
\n \n\nCommits
\n\n \n
\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=black&package-manager=pip&previous-version=21.5b1&new-version=21.5b2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\nDependabot commands and options
\n
\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@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)\n- `@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)\n- `@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)\n\n\n ", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1352/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null}
{"id": 913017577, "node_id": "MDU6SXNzdWU5MTMwMTc1Nzc=", "number": 1365, "title": "pathlib.Path breaks internal schema", "user": {"value": 25778, "label": "eyeseast"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2021-06-07T01:40:37Z", "updated_at": "2021-06-21T15:57:39Z", "closed_at": "2021-06-21T15:57:39Z", "author_association": "CONTRIBUTOR", "pull_request": null, "body": "Ran into an issue while trying to build a plugin to render GeoJSON. I'm using pytest's `tmp_path` fixture, which is a `pathlib.Path`, to get a temporary database path. I was getting a weird error involving writes, but I was doing reads. Turns out it's the internal database trying to insert a `Path` where it wants a string.\r\n\r\nMy test looked like this:\r\n\r\n```python\r\n@pytest.mark.asyncio\r\nasync def test_render_feature_collection(tmp_path):\r\n database = tmp_path / \"test.db\"\r\n datasette = Datasette([database])\r\n\r\n # this will break with a path\r\n await datasette.refresh_schemas()\r\n\r\n # build a url\r\n url = datasette.urls.table(database.stem, TABLE_NAME, format=\"geojson\")\r\n\r\n response = await datasette.client.get(url)\r\n fc = response.json()\r\n\r\n assert 200 == response.status_code\r\n```\r\n\r\nI only ran into this while running tests, because passing in database paths from the CLI uses strings, but it's a weird error and probably something other people have run into.\r\n\r\nThe fix is easy enough: Convert the path to a string and everything works. So this:\r\n\r\n```python\r\n@pytest.mark.asyncio\r\nasync def test_render_feature_collection(tmp_path):\r\n database = tmp_path / \"test.db\"\r\n datasette = Datasette([str(database)])\r\n\r\n # this is fine now\r\n await datasette.refresh_schemas()\r\n```\r\n\r\nThis could (probably, haven't tested) be fixed [here](https://github.com/simonw/datasette/blob/03ec71193b9545536898a4bc7493274fec48bdd7/datasette/app.py#L357) by calling `str(db.path)` or by doing that conversion earlier.", "repo": {"value": 107914493, "label": "datasette"}, "type": "issue", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1365/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": null, "state_reason": "completed"}
{"id": 916183914, "node_id": "MDExOlB1bGxSZXF1ZXN0NjY1ODkyMzEz", "number": 1373, "title": "Update trustme requirement from <0.8,>=0.7 to >=0.7,<0.9", "user": {"value": 49699333, "label": "dependabot[bot]"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2021-06-09T13:09:44Z", "updated_at": "2021-06-13T15:38:47Z", "closed_at": "2021-06-13T15:38:47Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/1373", "body": "Updates the requirements on [trustme](https://github.com/python-trio/trustme) to permit the latest version.\n\nCommits
\n\nf9e13e0
Release 0.8.0 \n4ae4435
Merge pull request #304 from python-trio/dependabot/add-v2-config-file \n8767902
Merge pull request #327 from graingert/test-on-py310 \n6abfddd
Merge branch 'master' of github.com:python-trio/trustme into test-on-py310 \n51d3bdf
Merge pull request #328 from tiran/correct_ku_eku \n034fb3a
retry codecov more \n53e121d
try codecov harder \nc1e7923
require codecov in ci \ne3ac2d6
Update tests/test_trustme.py \n496dca6
close the wrapped sockets to prevent Unraisable ResourceWarnings \n- Additional commits viewable in compare view
\n
\n \n
\n\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\nDependabot commands and options
\n
\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@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)\n- `@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)\n- `@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)\n\n\n ", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1373/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null}
{"id": 918730335, "node_id": "MDExOlB1bGxSZXF1ZXN0NjY4MTI5NDQx", "number": 1374, "title": "Bump black from 21.5b2 to 21.6b0", "user": {"value": 49699333, "label": "dependabot[bot]"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2021-06-11T13:07:39Z", "updated_at": "2021-06-13T15:33:23Z", "closed_at": "2021-06-13T15:33:22Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/1374", "body": "Bumps [black](https://github.com/psf/black) from 21.5b2 to 21.6b0.\n\nRelease notes
\nSourced from black's releases.
\n\n21.6b0
\nBlack
\n\n- Fix failure caused by
fmt: skip
and indentation (#2281) \n- Account for += assignment when deciding whether to split string (#2312)
\n- Correct max string length calculation when there are string operators (#2292)
\n- Fixed option usage when using the
--code
flag (#2259) \n- Do not call
uvloop.install()
when Black is used as a library (#2303) \n- Added
--required-version
option to require a specific version to be running (#2300) \n- Fix incorrect custom breakpoint indices when string group contains fake f-strings\n(#2311)
\n- Fix regression where
R
prefixes would be lowercased for docstrings (#2285) \n- Fix handling of named escapes (
\\N{...}
) when --experimental-string-processing
is\nused (#2319) \n
\n
\n \n\nChangelog
\nSourced from black's changelog.
\n\n21.6b0
\nBlack
\n\n- Fix failure caused by
fmt: skip
and indentation (#2281) \n- Account for += assignment when deciding whether to split string (#2312)
\n- Correct max string length calculation when there are string operators (#2292)
\n- Fixed option usage when using the
--code
flag (#2259) \n- Do not call
uvloop.install()
when Black is used as a library (#2303) \n- Added
--required-version
option to require a specific version to be running (#2300) \n- Fix incorrect custom breakpoint indices when string group contains fake f-strings\n(#2311)
\n- Fix regression where
R
prefixes would be lowercased for docstrings (#2285) \n- Fix handling of named escapes (
\\N{...}
) when --experimental-string-processing
is\nused (#2319) \n
\n
\n \n\nCommits
\n\n \n
\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=black&package-manager=pip&previous-version=21.5b2&new-version=21.6b0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\nDependabot commands and options
\n
\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@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)\n- `@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)\n- `@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)\n\n\n ", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1374/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null}
{"id": 923910375, "node_id": "MDExOlB1bGxSZXF1ZXN0NjcyNjIwMTgw", "number": 1378, "title": "Update pytest-xdist requirement from <2.3,>=2.2.1 to >=2.2.1,<2.4", "user": {"value": 49699333, "label": "dependabot[bot]"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2021-06-17T13:11:56Z", "updated_at": "2021-06-20T00:17:07Z", "closed_at": "2021-06-20T00:17:06Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/1378", "body": "Updates the requirements on [pytest-xdist](https://github.com/pytest-dev/pytest-xdist) to permit the latest version.\n\nChangelog
\nSourced from pytest-xdist's changelog.
\n\npytest-xdist 2.3.0 (2021-06-16)
\nDeprecations and Removals
\n\n[#654](https://github.com/pytest-dev/pytest-xdist/issues/654) <https://github.com/pytest-dev/pytest-xdist/issues/654>
_: Python 3.5 is no longer supported. \n
\nFeatures
\n\n- \n
[#646](https://github.com/pytest-dev/pytest-xdist/issues/646) <https://github.com/pytest-dev/pytest-xdist/issues/646>
_: Add --numprocesses=logical
flag, which automatically uses the number of logical CPUs available, instead of physical CPUs with auto
.
\nThis is very useful for test suites which are not CPU-bound.
\n \n- \n
[#650](https://github.com/pytest-dev/pytest-xdist/issues/650) <https://github.com/pytest-dev/pytest-xdist/issues/650>
_: Added new pytest_handlecrashitem
hook to allow handling and rescheduling crashed items.
\n \n
\nBug Fixes
\n\n- \n
[#421](https://github.com/pytest-dev/pytest-xdist/issues/421) <https://github.com/pytest-dev/pytest-xdist/issues/421>
_: Copy the parent process sys.path into local workers, to work around execnet's python -c adding the current directory to sys.path.
\n \n- \n
[#638](https://github.com/pytest-dev/pytest-xdist/issues/638) <https://github.com/pytest-dev/pytest-xdist/issues/638>
_: Fix issue caused by changing the branch name of the pytest repository.
\n \n
\nTrivial Changes
\n\n- \n
[#592](https://github.com/pytest-dev/pytest-xdist/issues/592) <https://github.com/pytest-dev/pytest-xdist/issues/592>
_: Replace master with controller where ever possible.
\n \n- \n
[#643](https://github.com/pytest-dev/pytest-xdist/issues/643) <https://github.com/pytest-dev/pytest-xdist/issues/643>
_: Use 'main' to refer to pytest default branch in tox env names.
\n \n
\npytest-xdist 2.2.1 (2021-02-09)
\nBug Fixes
\n\n[#623](https://github.com/pytest-dev/pytest-xdist/issues/623) <https://github.com/pytest-dev/pytest-xdist/issues/623>
_: Gracefully handle the pending deprecation of Node.fspath by using config.rootpath for topdir. \n
\npytest-xdist 2.2.0 (2020-12-14)
\nFeatures
\n\n
\n... (truncated)
\n \n\nCommits
\n\nfe57b39
fixup: add release title underline for 2.3.0 \n26e7d95
prepare release 2.3.0 \nb02a6db
Merge pull request #667 from graingert/fix-sys-path \nb072267
add newsfile \n881cc48
Merge pull request #672 from pytest-dev/pre-commit-ci-update-config \n958679e
[pre-commit.ci] pre-commit autoupdate \n7f07d50
Merge pull request #646 from kroeschl/numprocesses-logical \nfb518de
Merge pull request #669 from pytest-dev/pre-commit-ci-update-config \n0b14d92
[pre-commit.ci] pre-commit autoupdate \n02f971d
swap docstring \n- Additional commits viewable in compare view
\n
\n \n
\n\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\nDependabot commands and options
\n
\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@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)\n- `@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)\n- `@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)\n\n\n ", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1378/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null}
{"id": 930855052, "node_id": "MDExOlB1bGxSZXF1ZXN0Njc4NDU5NTU0", "number": 1385, "title": "Fix + improve get_metadata plugin hook docs", "user": {"value": 2670795, "label": "brandonrobertz"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2021-06-27T05:43:20Z", "updated_at": "2021-09-13T18:53:11Z", "closed_at": "2021-09-13T18:53:11Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/1385", "body": "This fixes documentation inaccuracies and adds a disclaimer about the signature of the `get_metadata` hook.\r\n\r\nAddresses the following comments:\r\n- https://github.com/simonw/datasette/issues/1384#issuecomment-869069926\r\n- https://github.com/simonw/datasette/issues/1384#issuecomment-869075368", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1385/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null}
{"id": 931557895, "node_id": "MDExOlB1bGxSZXF1ZXN0Njc5MDM1ODQ3", "number": 1386, "title": "Update asgiref requirement from <3.4.0,>=3.2.10 to >=3.2.10,<3.5.0", "user": {"value": 49699333, "label": "dependabot[bot]"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2021-06-28T13:13:07Z", "updated_at": "2021-07-11T01:36:19Z", "closed_at": "2021-07-11T01:36:18Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/1386", "body": "Updates the requirements on [asgiref](https://github.com/django/asgiref) to permit the latest version.\n\nChangelog
\nSourced from asgiref's changelog.
\n\n3.4.0 (2021-06-27)
\n\n- \n
Calling sync_to_async directly from inside itself (which causes a deadlock\nwhen in the default, thread-sensitive mode) now has deadlock detection.
\n \n- \n
asyncio usage has been updated to use the new versions of get_event_loop,\nensure_future, wait and gather, avoiding deprecation warnings in Python 3.10.\nPython 3.6 installs continue to use the old versions; this is only for 3.7+
\n \n- \n
sync_to_async and async_to_sync now have improved type hints that pass\nthrough the underlying function type correctly.
\n \n- \n
All Websocket* types are now spelled WebSocket, to match our specs and the\nofficial spelling. The old names will work until release 3.5.0, but will\nraise deprecation warnings.
\n \n- \n
The typing for WebSocketScope and HTTPScope's extensions
key has been\nfixed.
\n \n
\n3.3.4 (2021-04-06)
\n\n- The async_to_sync type error is now a warning due the high false negative\nrate when trying to detect coroutine-returning callables in Python.
\n
\n3.3.3 (2021-04-06)
\n\n- The sync conversion functions now correctly detect functools.partial and other\nwrappers around async functions on earlier Python releases.
\n
\n3.3.2 (2021-04-05)
\n\n- \n
SyncToAsync now takes an optional "executor" argument if you want to supply\nyour own executor rather than using the built-in one.
\n \n- \n
async_to_sync and sync_to_async now check their arguments are functions of\nthe correct type.
\n \n- \n
Raising CancelledError inside a SyncToAsync function no longer stops a future\ncall from functioning.
\n \n- \n
ThreadSensitive now provides context hooks/override options so it can be\nmade to be sensitive in a unit smaller than threads (e.g. per request)
\n \n
\n\n
\n... (truncated)
\n \n\nCommits
\n\n \n
\n\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\nDependabot commands and options
\n
\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@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)\n- `@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)\n- `@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)\n\n\n ", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1386/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null}
{"id": 941403676, "node_id": "MDExOlB1bGxSZXF1ZXN0Njg3Mjk4MTEy", "number": 1392, "title": "Update deploying.rst", "user": {"value": 80737, "label": "aslakr"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2021-07-11T08:43:19Z", "updated_at": "2021-07-13T17:42:31Z", "closed_at": "2021-07-13T17:42:27Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/1392", "body": "Use same base url for Apache as in the example", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1392/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null}
{"id": 941412189, "node_id": "MDExOlB1bGxSZXF1ZXN0Njg3MzA0MjQy", "number": 1393, "title": "Update deploying.rst", "user": {"value": 80737, "label": "aslakr"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2021-07-11T09:32:16Z", "updated_at": "2021-07-13T18:32:49Z", "closed_at": "2021-07-13T18:32:49Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/1393", "body": "Example on how to use Unix domain socket option on Apache. Not testet.\r\n\r\n(Usually I would have used [`ProxyPassReverse`](https://httpd.apache.org/docs/current/mod/mod_proxy.html#proxypassreverse) in combination with `ProxyPass` , i.e.\r\n\r\n```apache\r\nProxyPass /my-datasette/ http://127.0.0.1:8009/my-datasette/\r\nProxyPassReverse /my-datasette/ http://127.0.0.1:8009/my-datasette/\r\n```\r\n\r\nand\r\n\r\n```apache\r\nProxyPass /my-datasette/ unix:/tmp/datasette.sock|http://localhost/my-datasette/\r\nProxyPassReverse /my-datasette/ unix:/tmp/datasette.sock|http://localhost/my-datasette/\r\n```\r\n)", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1393/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null}
{"id": 947640902, "node_id": "MDExOlB1bGxSZXF1ZXN0NjkyNTk2MDA2", "number": 1400, "title": "Bump black from 21.6b0 to 21.7b0", "user": {"value": 49699333, "label": "dependabot[bot]"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2021-07-19T13:13:41Z", "updated_at": "2021-08-25T01:29:56Z", "closed_at": "2021-08-25T01:29:55Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/1400", "body": "Bumps [black](https://github.com/psf/black) from 21.6b0 to 21.7b0.\n\nRelease notes
\nSourced from black's releases.
\n\n21.7b0
\nBlack
\n\n- Configuration files using TOML features higher than spec v0.5.0 are now supported\n(#2301)
\n- Add primer support and test for code piped into black via STDIN (#2315)
\n- Fix internal error when
FORCE_OPTIONAL_PARENTHESES
feature is enabled (#2332) \n- Accept empty stdin (#2346)
\n- Provide a more useful error when parsing fails during AST safety checks (#2304)
\n
\nDocker
\n\n- Add new
latest_release
tag automation to follow latest black release on docker\nimages (#2374) \n
\nIntegrations
\n\n- The vim plugin now searches upwards from the directory containing the current buffer\ninstead of the current working directory for pyproject.toml. (#1871)
\n- The vim plugin now reads the correct string normalization option in pyproject.toml\n(#1869)
\n- The vim plugin no longer crashes Black when there's boolean values in pyproject.toml\n(#1869)
\n
\n
\n \n\nChangelog
\nSourced from black's changelog.
\n\n21.7b0
\nBlack
\n\n- Configuration files using TOML features higher than spec v0.5.0 are now supported\n(#2301)
\n- Add primer support and test for code piped into black via STDIN (#2315)
\n- Fix internal error when
FORCE_OPTIONAL_PARENTHESES
feature is enabled (#2332) \n- Accept empty stdin (#2346)
\n- Provide a more useful error when parsing fails during AST safety checks (#2304)
\n
\nDocker
\n\n- Add new
latest_release
tag automation to follow latest black release on docker\nimages (#2374) \n
\nIntegrations
\n\n- The vim plugin now searches upwards from the directory containing the current buffer\ninstead of the current working directory for pyproject.toml. (#1871)
\n- The vim plugin now reads the correct string normalization option in pyproject.toml\n(#1869)
\n- The vim plugin no longer crashes Black when there's boolean values in pyproject.toml\n(#1869)
\n
\n
\n \n\nCommits
\n\n \n
\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=black&package-manager=pip&previous-version=21.6b0&new-version=21.7b0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\nDependabot commands and options
\n
\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@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)\n- `@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)\n- `@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)\n\n\n ", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1400/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null}
{"id": 970386262, "node_id": "MDExOlB1bGxSZXF1ZXN0NzEyMzQ2MTk5", "number": 1433, "title": "Update trustme requirement from <0.9,>=0.7 to >=0.7,<0.10", "user": {"value": 49699333, "label": "dependabot[bot]"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2021-08-13T13:10:24Z", "updated_at": "2021-08-25T01:29:27Z", "closed_at": "2021-08-25T01:29:26Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/1433", "body": "Updates the requirements on [trustme](https://github.com/python-trio/trustme) to permit the latest version.\n\nCommits
\n\n8fc5bf9
Bump version to 0.9.0 \n913e21d
Bump types-cryptography from 3.3.3 to 3.3.5 (#342) \nc66709d
Bump types-pyopenssl from 20.0.4 to 20.0.5 (#343) \n5131f79
Add type annotations (#341) \na411dad
Bump charset-normalizer from 2.0.3 to 2.0.4 (#340) \nbe5ec8a
Bump sphinx from 4.1.1 to 4.1.2 \nd3b8865
Bump charset-normalizer from 2.0.2 to 2.0.3 \n4503bef
Merge pull request #334 from python-trio/dependabot/pip/charset-normalizer-2.0.2 \nce8099d
Merge pull request #335 from python-trio/dependabot/pip/sphinx-4.1.1 \n8b6d3c6
Merge pull request #336 from python-trio/dependabot/pip/idna-3.2 \n- Additional commits viewable in compare view
\n
\n \n
\n\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\nDependabot commands and options
\n
\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@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)\n- `@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)\n- `@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)\n\n\n ", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1433/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null}
{"id": 978614898, "node_id": "MDExOlB1bGxSZXF1ZXN0NzE5MTc1NTkz", "number": 1447, "title": "Remove underscore from search mode parameter name", "user": {"value": 127565, "label": "wragge"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2021-08-25T01:28:04Z", "updated_at": "2021-08-25T01:28:58Z", "closed_at": "2021-08-25T01:28:58Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/1447", "body": "The fulltext search documentation refers to the parameter as `searchmode` but the `metadata.json` example uses `search_mode`. The latter doesn't actually seem to work.", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1447/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null}
{"id": 979612115, "node_id": "MDExOlB1bGxSZXF1ZXN0NzE5OTk4MjI1", "number": 322, "title": "Add dict type to be mapped as TEXT in sqllite", "user": {"value": 2496189, "label": "minaeid90"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2021-08-25T20:54:26Z", "updated_at": "2021-11-15T00:27:40Z", "closed_at": "2021-11-15T00:27:40Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/sqlite-utils/pulls/322", "body": "the library deal with Postgres type jsonb as dictionary, add dict type as a TEXT for mapping to sqlite\r\n\r\n", "repo": {"value": 140912432, "label": "sqlite-utils"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/sqlite-utils/issues/322/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null}
{"id": 980228553, "node_id": "MDExOlB1bGxSZXF1ZXN0NzIwNTA2MTM1", "number": 1448, "title": "Update pluggy requirement from ~=0.13.0 to >=0.13,<1.1", "user": {"value": 49699333, "label": "dependabot[bot]"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2021-08-26T13:09:52Z", "updated_at": "2021-10-13T21:11:01Z", "closed_at": "2021-10-13T21:11:00Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/1448", "body": "Updates the requirements on [pluggy](https://github.com/pytest-dev/pluggy) to permit the latest version.\n\nChangelog
\nSourced from pluggy's changelog.
\n\npluggy 1.0.0 (2021-08-25)
\nDeprecations and Removals
\n\n- \n
[#116](https://github.com/pytest-dev/pluggy/issues/116) <https://github.com/pytest-dev/pluggy/issues/116>
_: Remove deprecated implprefix
support.\nDecorate hook implementations using an instance of HookimplMarker instead.\nThe deprecation was announced in release 0.7.0
.
\n \n- \n
[#120](https://github.com/pytest-dev/pluggy/issues/120) <https://github.com/pytest-dev/pluggy/issues/120>
_: Remove the deprecated proc
argument to call_historic
.\nUse result_callback
instead, which has the same behavior.\nThe deprecation was announced in release 0.7.0
.
\n \n- \n
[#265](https://github.com/pytest-dev/pluggy/issues/265) <https://github.com/pytest-dev/pluggy/issues/265>
_: Remove the _Result.result
property. Use _Result.get_result()
instead.\nNote that unlike result
, get_result()
raises the exception if the hook raised.\nThe deprecation was announced in release 0.6.0
.
\n \n- \n
[#267](https://github.com/pytest-dev/pluggy/issues/267) <https://github.com/pytest-dev/pluggy/issues/267>
_: Remove official support for Python 3.4.
\n \n- \n
[#272](https://github.com/pytest-dev/pluggy/issues/272) <https://github.com/pytest-dev/pluggy/issues/272>
_: Dropped support for Python 2.\nContinue to use pluggy 0.13.x for Python 2 support.
\n \n- \n
[#308](https://github.com/pytest-dev/pluggy/issues/308) <https://github.com/pytest-dev/pluggy/issues/308>
_: Remove official support for Python 3.5.
\n \n- \n
[#313](https://github.com/pytest-dev/pluggy/issues/313) <https://github.com/pytest-dev/pluggy/issues/313>
_: The internal pluggy.callers
, pluggy.manager
and pluggy.hooks
are now explicitly marked private by a _
prefix (e.g. pluggy._callers
).\nOnly API exported by the top-level pluggy
module is considered public.
\n \n- \n
[#59](https://github.com/pytest-dev/pluggy/issues/59) <https://github.com/pytest-dev/pluggy/issues/59>
_: Remove legacy __multicall__
recursive hook calling system.\nThe deprecation was announced in release 0.5.0
.
\n \n
\nFeatures
\n\n- \n
[#282](https://github.com/pytest-dev/pluggy/issues/282) <https://github.com/pytest-dev/pluggy/issues/282>
_: When registering a hookimpl which is declared as hookwrapper=True
but whose\nfunction is not a generator function, a PluggyValidationError
exception is\nnow raised.
\nPreviously this problem would cause an error only later, when calling the hook.
\nIn the unlikely case that you have a hookwrapper that returns a generator
\n \n
\n\n
\n... (truncated)
\n \n\nCommits
\n\n4259fdd
Fix CHANGELOG title manually \n906abca
Preparing release 1.0.0 \n56eb23c
Rename HOWTORELEASE to RELEASING to follow pytest \nfc6395c
Fix scripts/release.py to use main instead of master \ne04816f
Merge pull request #324 from RonnyPfannschmidt/benchmarks \n1424ab0
add micro benchmarks for hook calling playing with a the number of callers, w... \n5e51864
Merge pull request #323 from RonnyPfannschmidt/switch-to-main \n05c3bbd
switch to main as primary branch \n6b344fb
Merge pull request #319 from RonnyPfannschmidt/pre-commit-update \n71f2d6b
introduce pyupgrade and update black \n- Additional commits viewable in compare view
\n
\n \n
\n\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\nDependabot commands and options
\n
\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@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)\n- `@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)\n- `@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)\n\n\n ", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1448/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null}
{"id": 984939366, "node_id": "MDU6SXNzdWU5ODQ5MzkzNjY=", "number": 58, "title": "Error: Use either --since or --since_id, not both - still broken", "user": {"value": 42904, "label": "rubenv"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2021-09-01T09:45:28Z", "updated_at": "2021-09-21T17:37:41Z", "closed_at": "2021-09-21T17:37:41Z", "author_association": "CONTRIBUTOR", "pull_request": null, "body": "Hi Simon,\r\n\r\nIt appears the fix for #57 doesn't fix things for me:\r\n\r\n```\r\n$ twitter-to-sqlite --version\r\ntwitter-to-sqlite, version 0.21.4\r\n$ python --version\r\nPython 3.9.6\r\n```\r\n\r\n```\r\n$ twitter-to-sqlite home-timeline -a twitter-auth.json twitter/timeline.db --since\r\nImporting tweets\r\nError: Use either --since or --since_id, not both\r\n```\r\n\r\nIs there any way I can help debug this?", "repo": {"value": 206156866, "label": "twitter-to-sqlite"}, "type": "issue", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/dogsheep/twitter-to-sqlite/issues/58/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": null, "state_reason": "completed"}
{"id": 984942782, "node_id": "MDExOlB1bGxSZXF1ZXN0NzI0MzE3NjUw", "number": 59, "title": "Fix for since_id bug, closes #58", "user": {"value": 42904, "label": "rubenv"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2021-09-01T09:49:09Z", "updated_at": "2021-09-21T17:37:40Z", "closed_at": "2021-09-21T17:37:40Z", "author_association": "CONTRIBUTOR", "pull_request": "dogsheep/twitter-to-sqlite/pulls/59", "body": "Fixes remaining instances of this bug", "repo": {"value": 206156866, "label": "twitter-to-sqlite"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/dogsheep/twitter-to-sqlite/issues/59/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null}
{"id": 988013247, "node_id": "MDExOlB1bGxSZXF1ZXN0NzI3MDEyOTk2", "number": 324, "title": "Use python-dateutil package instead of dateutils", "user": {"value": 191622, "label": "meatcar"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2021-09-03T18:31:19Z", "updated_at": "2021-11-14T23:25:40Z", "closed_at": "2021-11-14T23:25:40Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/sqlite-utils/pulls/324", "body": "While working on updating `sqlite-utils` for NixOS/Nixpkgs, I came a cross the following:\r\n\r\nIn 5ec6686153e29ae10d4921a1ad4c841f192f20e2, a new dependency was added on `dateutils` (https://pypi.org/project/dateutils/). \r\n\r\nI believe this is unintentional, and instead `python-dateutil` (https://pypi.org/project/python-dateutil/) was intended.\r\n\r\nMy reasoning is:\r\n- `python-dateutil` is imported here in [recipes.py](https://github.com/simonw/sqlite-utils/blob/5ec6686153e29ae10d4921a1ad4c841f192f20e2/sqlite_utils/recipes.py#L1) \r\n- The `mypy` `type-python-dateutil` dependency in [setup.py](https://github.com/simonw/sqlite-utils/blob/5ec6686153e29ae10d4921a1ad4c841f192f20e2/setup.py#L36)\r\n- `python-dateutil` is a dependency of `dateutils` as seen in the output in [docs/tutorial.ipynb](https://github.com/simonw/sqlite-utils/blob/77c240df56068341561e95e4a412cbfa24dc5bc7/docs/tutorial.ipynb#L43)\r\n\r\nSeems like the trailing \"s\" seems to be the source of confusion \ud83d\ude05\r\n\r\nI've swapped the dependencies out, hope this helps.", "repo": {"value": 140912432, "label": "sqlite-utils"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/sqlite-utils/issues/324/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null}
{"id": 988555009, "node_id": "MDExOlB1bGxSZXF1ZXN0NzI3NDM2NDA0", "number": 1458, "title": "Rework the `--static` documentation a bit", "user": {"value": 51016, "label": "ctb"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2021-09-05T17:08:48Z", "updated_at": "2021-10-15T13:24:29Z", "closed_at": "2021-10-14T18:39:55Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/1458", "body": "Per https://github.com/simonw/datasette/issues/1457, I was confused by the current docs and took a few minutes to sort out what the right combination of locations was.\r\n\r\nThis is a PR that differentiates the docs to split out `/static/` in URL from `--static` option and `./static/` path.\r\n\r\nNot wedded to the details in any way, happy to change to suit.\r\n\r\nFixes #1457.", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1458/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null}
{"id": 988556488, "node_id": "MDU6SXNzdWU5ODg1NTY0ODg=", "number": 1459, "title": "suggestion: allow `datasette --open` to take a relative URL", "user": {"value": 51016, "label": "ctb"}, "state": "open", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2021-09-05T17:17:07Z", "updated_at": "2021-09-05T19:59:15Z", "closed_at": null, "author_association": "CONTRIBUTOR", "pull_request": null, "body": "(soft suggestion because I'm not sure I'm using datasette right yet)\r\n\r\nOver at https://github.com/ctb/2021-sourmash-datasette, I'm playing around with datasette, and I'm creating some static pages to send people to the right facets. There may well be better ways of achieving this end goal, and I will find out if so, I'm sure!\r\n\r\nBut regardless I think it might be neat to support an option to allow `-o/--open` to take a relative URL, that then gets appended to the hostname and port. This would let me improve my documentation. I don't see any downsides, either, but \ud83e\udd37 there may well be some :)\r\n\r\nHappy to dig in and provide a PR if it's of interest. I'm not sure off the top of my head how to support an optional value to a parameter in argparse - the current `-o` behavior is kinda nice so it'd be suboptimal to require a url for `-o`. Maybe `--open-url=` or something would work?\r\n\r\n", "repo": {"value": 107914493, "label": "datasette"}, "type": "issue", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1459/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": null, "state_reason": null}
{"id": 991121619, "node_id": "MDExOlB1bGxSZXF1ZXN0NzI5NjMyNjQz", "number": 1463, "title": "Update beautifulsoup4 requirement from <4.10.0,>=4.8.1 to >=4.8.1,<4.11.0", "user": {"value": 49699333, "label": "dependabot[bot]"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2021-09-08T13:09:38Z", "updated_at": "2021-10-13T22:35:37Z", "closed_at": "2021-10-13T22:35:36Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/1463", "body": "Updates the requirements on [beautifulsoup4](http://www.crummy.com/software/BeautifulSoup/bs4/) to permit the latest version.\n\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\nDependabot commands and options
\n
\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@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)\n- `@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)\n- `@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)\n\n\n ", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1463/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null}
{"id": 996002181, "node_id": "PR_kwDOBm6k_c4rutdp", "number": 1471, "title": "Bump black from 21.7b0 to 21.9b0", "user": {"value": 49699333, "label": "dependabot[bot]"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2021-09-14T13:10:35Z", "updated_at": "2021-10-13T21:47:42Z", "closed_at": "2021-10-13T21:47:42Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/1471", "body": "Bumps [black](https://github.com/psf/black) from 21.7b0 to 21.9b0.\n\nRelease notes
\nSourced from black's releases.
\n\n21.9b0
\nPackaging
\n\n- Fix missing modules in self-contained binaries (#2466)
\n- Fix missing toml extra used during installation (#2475)
\n
\n21.8b0
\nBlack
\n\n- Add support for formatting Jupyter Notebook files (#2357)
\n- Move from
appdirs
dependency to platformdirs
(#2375) \n- Present a more user-friendly error if .gitignore is invalid (#2414)
\n- The failsafe for accidentally added backslashes in f-string expressions has been hardened to handle more edge cases during quote normalization (#2437)
\n- Avoid changing a function return type annotation's type to a tuple by adding a trailing comma (#2384)
\n- Parsing support has been added for unparenthesized walruses in set literals, set comprehensions, and indices (#2447).
\n- Pin
setuptools-scm
build-time dependency version (#2457) \n- Exclude typing-extensions version 3.10.0.1 due to it being broken on Python 3.10 (#2460)
\n
\nBlackd
\n\n- Replace sys.exit(-1) with raise ImportError as it plays more nicely with tools that scan installed packages (#2440)
\n
\nIntegrations
\n\n- The provided pre-commit hooks no longer specify
language_version
to avoid overriding default_language_version
(#2430) \n
\n
\n \n\nChangelog
\nSourced from black's changelog.
\n\n21.9b0
\nPackaging
\n\n- Fix missing modules in self-contained binaries (#2466)
\n- Fix missing toml extra used during installation (#2475)
\n
\n21.8b0
\nBlack
\n\n- Add support for formatting Jupyter Notebook files (#2357)
\n- Move from
appdirs
dependency to platformdirs
(#2375) \n- Present a more user-friendly error if .gitignore is invalid (#2414)
\n- The failsafe for accidentally added backslashes in f-string expressions has been\nhardened to handle more edge cases during quote normalization (#2437)
\n- Avoid changing a function return type annotation's type to a tuple by adding a\ntrailing comma (#2384)
\n- Parsing support has been added for unparenthesized walruses in set literals, set\ncomprehensions, and indices (#2447).
\n- Pin
setuptools-scm
build-time dependency version (#2457) \n- Exclude typing-extensions version 3.10.0.1 due to it being broken on Python 3.10\n(#2460)
\n
\nBlackd
\n\n- Replace sys.exit(-1) with raise ImportError as it plays more nicely with tools that\nscan installed packages (#2440)
\n
\nIntegrations
\n\n- The provided pre-commit hooks no longer specify
language_version
to avoid overriding\ndefault_language_version
(#2430) \n
\n
\n \n\nCommits
\n\n \n
\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=black&package-manager=pip&previous-version=21.7b0&new-version=21.9b0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\nDependabot commands and options
\n
\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@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)\n- `@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)\n- `@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)\n\n\n ", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1471/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null}
{"id": 1002459220, "node_id": "PR_kwDOBm6k_c4sCfBT", "number": 1476, "title": "Update pytest-xdist requirement from <2.4,>=2.2.1 to >=2.2.1,<2.5", "user": {"value": 49699333, "label": "dependabot[bot]"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2021-09-21T13:13:01Z", "updated_at": "2021-10-13T21:10:03Z", "closed_at": "2021-10-13T21:10:03Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/1476", "body": "Updates the requirements on [pytest-xdist](https://github.com/pytest-dev/pytest-xdist) to permit the latest version.\n\nChangelog
\nSourced from pytest-xdist's changelog.
\n\npytest-xdist 2.4.0 (2021-09-20)
\nFeatures
\n\n- \n
[#696](https://github.com/pytest-dev/pytest-xdist/issues/696) <https://github.com/pytest-dev/pytest-xdist/issues/696>
_: On Linux, the process title now changes to indicate the current worker state (running/idle).
\nDepends on the setproctitle <https://pypi.org/project/setproctitle/>
__ package, which can be installed with pip install pytest-xdist[setproctitle]
.
\n \n- \n
[#704](https://github.com/pytest-dev/pytest-xdist/issues/704) <https://github.com/pytest-dev/pytest-xdist/issues/704>
_: Add support for Python 3.10.
\n \n
\npytest-xdist 2.3.0 (2021-06-16)
\nDeprecations and Removals
\n\n[#654](https://github.com/pytest-dev/pytest-xdist/issues/654) <https://github.com/pytest-dev/pytest-xdist/issues/654>
_: Python 3.5 is no longer supported. \n
\nFeatures
\n\n- \n
[#646](https://github.com/pytest-dev/pytest-xdist/issues/646) <https://github.com/pytest-dev/pytest-xdist/issues/646>
_: Add --numprocesses=logical
flag, which automatically uses the number of logical CPUs available, instead of physical CPUs with auto
.
\nThis is very useful for test suites which are not CPU-bound.
\n \n- \n
[#650](https://github.com/pytest-dev/pytest-xdist/issues/650) <https://github.com/pytest-dev/pytest-xdist/issues/650>
_: Added new pytest_handlecrashitem
hook to allow handling and rescheduling crashed items.
\n \n
\nBug Fixes
\n\n- \n
[#421](https://github.com/pytest-dev/pytest-xdist/issues/421) <https://github.com/pytest-dev/pytest-xdist/issues/421>
_: Copy the parent process sys.path into local workers, to work around execnet's python -c adding the current directory to sys.path.
\n \n- \n
[#638](https://github.com/pytest-dev/pytest-xdist/issues/638) <https://github.com/pytest-dev/pytest-xdist/issues/638>
_: Fix issue caused by changing the branch name of the pytest repository.
\n \n
\nTrivial Changes
\n\n- \n
[#592](https://github.com/pytest-dev/pytest-xdist/issues/592) <https://github.com/pytest-dev/pytest-xdist/issues/592>
_: Replace master with controller where ever possible.
\n \n- \n
[#643](https://github.com/pytest-dev/pytest-xdist/issues/643) <https://github.com/pytest-dev/pytest-xdist/issues/643>
_: Use 'main' to refer to pytest default branch in tox env names.
\n \n
\npytest-xdist 2.2.1 (2021-02-09)
\n\n
\n... (truncated)
\n \n\nCommits
\n\n4b487ed
Manually fix changelog title \necf4d3b
Release 2.4.0 \n87d8979
Merge pull request #704 from hugovk/add-3.10 \nb4544c8
Merge pull request #706 from pytest-dev/pre-commit-ci-update-config \n66dc390
[pre-commit.ci] pre-commit autoupdate \ne0ce1b7
Add news file to add support for Python 3.10 \ned47f0e
Add support for Python 3.10 \n1c8178a
Merge pull request #703 from pytest-dev/pre-commit-ci-update-config \n9807064
[pre-commit.ci] pre-commit autoupdate \n766e67c
Use setproctitle if available to show state (#696) \n- Additional commits viewable in compare view
\n
\n \n
\n\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\nDependabot commands and options
\n
\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@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)\n- `@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)\n- `@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)\n\n\n ", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1476/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null}
{"id": 1022688960, "node_id": "PR_kwDOBm6k_c4tBIEE", "number": 1485, "title": "Update pytest-timeout requirement from <1.5,>=1.4.2 to >=1.4.2,<2.1", "user": {"value": 49699333, "label": "dependabot[bot]"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2021-10-11T13:10:51Z", "updated_at": "2021-10-13T21:09:23Z", "closed_at": "2021-10-13T21:09:23Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/1485", "body": "Updates the requirements on [pytest-timeout](https://github.com/pytest-dev/pytest-timeout) to permit the latest version.\n\nCommits
\n\n \n
\n\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\nDependabot commands and options
\n
\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@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)\n- `@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)\n- `@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)\n\n\n ", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1485/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null}
{"id": 1023245060, "node_id": "PR_kwDOBm6k_c4tC4Lx", "number": 1487, "title": "Added instructions for installing plugins via pipx, #1486", "user": {"value": 41546558, "label": "RhetTbull"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2021-10-12T00:48:30Z", "updated_at": "2021-10-13T21:09:11Z", "closed_at": "2021-10-13T21:09:10Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/1487", "body": "Adds missing instructions for installing plugins via pipx", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1487/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null}
{"id": 1029100823, "node_id": "PR_kwDOBm6k_c4tU5cz", "number": 1494, "title": "Update pytest-asyncio requirement from <0.16,>=0.10 to >=0.10,<0.17", "user": {"value": 49699333, "label": "dependabot[bot]"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2021-10-18T13:14:17Z", "updated_at": "2021-10-24T22:22:40Z", "closed_at": "2021-10-24T22:22:39Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/1494", "body": "Updates the requirements on [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) to permit the latest version.\n\nCommits
\n\nf2fe98e
0.16.0 \n4e1df31
Remove obsolete test, add make test \n6ec7647
feat: Add support for Python 3.10. \n42ff5d1
ci: Include Python 3.10 in the CI test run. \nbe3b327
build: Include Python 3.10 in Tox test runs. \n1c283bd
refactor: test_async_fixtures_with_finalizer no longer trigger a DeprecationW... \n2751982
refactor: Replaced tests asserting that the event loop is properly closed. \n70989fd
refactor: Grouped test cases together that are related to the use of the asyn... \nb27abe8
refactor: Removed TestUnexistingLoop.remove_loop fixture, because it has no e... \ne3ec312
Adjusted Hypothesis integration test to use the same event loop initializatio... \n- Additional commits viewable in compare view
\n
\n \n
\n\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\nDependabot commands and options
\n
\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@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)\n- `@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)\n- `@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)\n\n\n ", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1494/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null}
{"id": 1044267332, "node_id": "I_kwDOCGYnMM4-PkFE", "number": 336, "title": "sqlite-util tranform --column-order mangles columns of type \"timestamp\"", "user": {"value": 536941, "label": "fgregg"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2021-11-04T01:15:38Z", "updated_at": "2023-05-08T21:13:38Z", "closed_at": "2023-05-08T21:13:38Z", "author_association": "CONTRIBUTOR", "pull_request": null, "body": "Reproducible code below:\r\n\r\n```bash\r\n> echo 'create table bar (baz text, created_at timestamp default CURRENT_TIMESTAMP)' | sqlite3 foo.db\r\n> sqlite3 foo.db\r\nSQLite version 3.36.0 2021-06-18 18:36:39\r\nEnter \".help\" for usage hints.\r\nsqlite> .schema bar\r\nCREATE TABLE bar (baz text, created_at timestamp default CURRENT_TIMESTAMP);\r\nsqlite> .exit\r\n> sqlite-utils transform foo.db bar --column-order baz\r\nsqlite3 foo.db\r\nSQLite version 3.36.0 2021-06-18 18:36:39\r\nEnter \".help\" for usage hints.\r\nsqlite> .schema bar\r\nCREATE TABLE IF NOT EXISTS \"bar\" (\r\n [baz] TEXT,\r\n [created_at] FLOAT DEFAULT 'CURRENT_TIMESTAMP'\r\n);\r\nsqlite> .exit\r\n> sqlite-utils transform foo.db bar --column-order baz\r\n> sqlite3 foo.db\r\nSQLite version 3.36.0 2021-06-18 18:36:39\r\nEnter \".help\" for usage hints.\r\nsqlite> .schema bar\r\nCREATE TABLE IF NOT EXISTS \"bar\" (\r\n [baz] TEXT,\r\n [created_at] FLOAT DEFAULT '''CURRENT_TIMESTAMP'''\r\n);\r\n```\r\n\r\n", "repo": {"value": 140912432, "label": "sqlite-utils"}, "type": "issue", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/sqlite-utils/issues/336/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": null, "state_reason": "completed"}
{"id": 1053655062, "node_id": "PR_kwDOBm6k_c4uiE0n", "number": 1508, "title": "Update docutils requirement from <0.18 to <0.19", "user": {"value": 49699333, "label": "dependabot[bot]"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2021-11-15T13:15:47Z", "updated_at": "2021-11-30T02:35:19Z", "closed_at": "2021-11-30T02:35:19Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/1508", "body": "Updates the requirements on [docutils](http://docutils.sourceforge.net/) to permit the latest version.\n\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\nDependabot commands and options
\n
\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@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)\n- `@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)\n- `@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)\n\n\n ", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1508/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null}
{"id": 1057340779, "node_id": "PR_kwDOBm6k_c4utsKs", "number": 1516, "title": "Bump black from 21.9b0 to 21.11b1", "user": {"value": 49699333, "label": "dependabot[bot]"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2021-11-18T13:11:12Z", "updated_at": "2021-11-30T02:35:29Z", "closed_at": "2021-11-30T02:35:29Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/1516", "body": "Bumps [black](https://github.com/psf/black) from 21.9b0 to 21.11b1.\n\nRelease notes
\nSourced from black's releases.
\n\n21.11b1
\nBlack
\n\n- Bumped regex version minimum to 2021.4.4 to fix Pattern class usage (#2621)
\n
\n21.11b0
\nBlack
\n\n- Warn about Python 2 deprecation in more cases by improving Python 2 only syntax\ndetection (#2592)
\n- Add experimental PyPy support (#2559)
\n- Add partial support for the match statement. As it's experimental, it's only enabled\nwhen
--target-version py310
is explicitly specified (#2586) \n- Add support for parenthesized with (#2586)
\n- Declare support for Python 3.10 for running Black (#2562)
\n
\nIntegrations
\n\n- Fixed vim plugin with Python 3.10 by removing deprecated distutils import (#2610)
\n- The vim plugin now parses
skip_magic_trailing_comma
from pyproject.toml (#2613) \n
\n21.10b0
\nBlack
\n\n- Document stability policy, that will apply for non-beta releases (#2529)
\n- Add new
--workers
parameter (#2514) \n- Fixed feature detection for positional-only arguments in lambdas (#2532)
\n- Bumped typed-ast version minimum to 1.4.3 for 3.10 compatiblity (#2519)
\n- Fixed a Python 3.10 compatibility issue where the loop argument was still being passed\neven though it has been removed (#2580)
\n- Deprecate Python 2 formatting support (#2523)
\n
\nBlackd
\n\n- Remove dependency on aiohttp-cors (#2500)
\n- Bump required aiohttp version to 3.7.4 (#2509)
\n
\nBlack-Primer
\n\n- Add primer support for --projects (#2555)
\n- Print primer summary after individual failures (#2570)
\n
\nIntegrations
\n\n- Allow to pass
target_version
in the vim plugin (#1319) \n- Install build tools in docker file and use multi-stage build to keep the image size\ndown (#2582)
\n
\n
\n \n\nChangelog
\nSourced from black's changelog.
\n\n21.11b1
\nBlack
\n\n- Bumped regex version minimum to 2021.4.4 to fix Pattern class usage (#2621)
\n
\n21.11b0
\nBlack
\n\n- Warn about Python 2 deprecation in more cases by improving Python 2 only syntax\ndetection (#2592)
\n- Add experimental PyPy support (#2559)
\n- Add partial support for the match statement. As it's experimental, it's only enabled\nwhen
--target-version py310
is explicitly specified (#2586) \n- Add support for parenthesized with (#2586)
\n- Declare support for Python 3.10 for running Black (#2562)
\n
\nIntegrations
\n\n- Fixed vim plugin with Python 3.10 by removing deprecated distutils import (#2610)
\n- The vim plugin now parses
skip_magic_trailing_comma
from pyproject.toml (#2613) \n
\n21.10b0
\nBlack
\n\n- Document stability policy, that will apply for non-beta releases (#2529)
\n- Add new
--workers
parameter (#2514) \n- Fixed feature detection for positional-only arguments in lambdas (#2532)
\n- Bumped typed-ast version minimum to 1.4.3 for 3.10 compatibility (#2519)
\n- Fixed a Python 3.10 compatibility issue where the loop argument was still being passed\neven though it has been removed (#2580)
\n- Deprecate Python 2 formatting support (#2523)
\n
\nBlackd
\n\n- Remove dependency on aiohttp-cors (#2500)
\n- Bump required aiohttp version to 3.7.4 (#2509)
\n
\nBlack-Primer
\n\n- Add primer support for --projects (#2555)
\n- Print primer summary after individual failures (#2570)
\n
\nIntegrations
\n\n- Allow to pass
target_version
in the vim plugin (#1319) \n- Install build tools in docker file and use multi-stage build to keep the image size\ndown (#2582)
\n
\n
\n \n\nCommits
\n\n \n
\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=black&package-manager=pip&previous-version=21.9b0&new-version=21.11b1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\nDependabot commands and options
\n
\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@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)\n- `@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)\n- `@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)\n\n\n ", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1516/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null}
{"id": 1062414013, "node_id": "PR_kwDOBm6k_c4u9wQq", "number": 1529, "title": "Update janus requirement from <0.7,>=0.6.2 to >=0.6.2,<0.8", "user": {"value": 49699333, "label": "dependabot[bot]"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2021-11-24T13:12:42Z", "updated_at": "2021-11-30T02:37:13Z", "closed_at": "2021-11-30T02:37:13Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/1529", "body": "Updates the requirements on [janus](https://github.com/aio-libs/janus) to permit the latest version.\n\nChangelog
\nSourced from janus's changelog.
\n\n0.7.0 (2021-11-24)
\n\n- Add SyncQueue and AsyncQueue Protocols to provide type hints for sync and async queues #374
\n
\n0.6.2 (2021-10-24)
\n\n- Fix Python 3.10 compatibility #358
\n
\n0.6.1 (2020-10-26)
\n\n0.6.0 (2020-10-10)
\n\n0.5.0 (2020-04-23)
\n\n- Remove explicit loop arguments and forbid creating queues outside event loops #246
\n
\n0.4.0 (2018-07-28)
\n\n0.3.2 (2018-07-06)
\n\n- Fixed python 3.7 support #97
\n
\n0.3.1 (2018-01-30)
\n\n- Fixed bug with join() in case tasks are added by sync_q.put() #75
\n
\n\n
\n... (truncated)
\n \n\nCommits
\n\n \n
\n\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\nDependabot commands and options
\n
\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@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)\n- `@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)\n- `@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)\n\n\n ", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1529/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null}