Sourced from click's releases.
8.1.0
This is a feature release, which includes new features and removes previously deprecated features. The 8.1.x branch is now the supported bugfix branch, the 8.0.x branch will become a tag marking the end of support for that branch. We encourage everyone to upgrade, and to use a tool such as pip-tools to pin all dependencies and control upgrades.
Sourced from click's changelog.
Version 8.1.0
Released 2022-03-28
Drop support for Python 3.6. :pr:
2129
Remove previously deprecated code. :pr:
2130
Group.resultcallback
is renamed toresult_callback
.autocompletion
parameter toCommand
is renamed toshell_complete
.get_terminal_size
is removed, useshutil.get_terminal_size
instead.get_os_args
is removed, usesys.argv[1:]
instead.Rely on :pep:
538
and :pep:540
to handle selecting UTF-8 encoding instead of ASCII. Click's locale encoding detection is removed. :issue:2198
Single options boolean flags with
show_default=True
only show the default if it isTrue
. :issue:1971
The
command
andgroup
decorators can be applied with or without parentheses. :issue:1359
The
Path
type can check whether the target is executable. :issue:1961
Command.show_default
overridesContext.show_default
, instead of the other way around. :issue:1963
Parameter decorators and
@group
handlescls=None
the same as not passingcls
.@option
handleshelp=None
the same as not passinghelp
. :issue:[#1959](https://github.com/pallets/click/issues/1959)
A flag option with
required=True
requires that the flag is passed instead of choosing the implicit default value. :issue:1978
Indentation in help text passed to
Option
andCommand
is cleaned the same as using the@option
and@command
decorators does. A command'sepilog
andshort_help
are also processed. :issue:1985
Store unprocessed
Command.help
,epilog
andshort_help
strings. Processing is only done when formatting help text for output. :issue:2149
Allow empty str input for
prompt()
whenconfirmation_prompt=True
anddefault=""
. :issue:2157
Windows glob pattern expansion doesn't fail if a value is an invalid pattern. :issue:
2195
It's possible to pass a list of
params
to@command
. Any params defined with decorators are appended to the passed params. :issue:2131
.
@command
decorator is annotated as returning the correct type if acls
argument is used. :issue:2211
A
Group
withinvoke_without_command=True
andchain=False
will invoke its result callback with the group function's return value. :issue:2124
... (truncated)
e4aceee
Merge pull request #2224 from pallets/release-8.1.0f8d811e
release version 8.1.020c88f0
Merge pull request #2223 from pallets/env-var8d7f03d
treat empty auto_envvar as Noneef11be6
Merge pull request #2041 from spanglerco/shell-completion-option-valuesf2e579a
shell completion prioritizes option values over new optionsd251cb0
Merge pull request #2219 from pallets/paramtype-namee003331
fix ParamType.to_info_dict() with no name19be092
Merge pull request #2217 from pallets/group-return7d3a871
group without command passes return value to result callbackSourced from pytest's releases.
7.1.0
pytest 7.1.0 (2022-03-13)
Breaking Changes
#8838: As per our policy, the following features have been deprecated in the 6.X series and are now removed:
pytest._fillfuncargs
function.pytest_warning_captured
hook - usepytest_warning_recorded
instead.-k -foobar
syntax - use-k 'not foobar'
instead.-k foobar:
syntax.pytest.collect
module - import frompytest
directly.For more information consult Deprecations and Removals in the docs.
#9437: Dropped support for Python 3.6, which reached end-of-life at 2021-12-23.
Improvements
#5192: Fixed test output for some data types where
-v
would show less information.Also, when showing diffs for sequences,
-q
would produce full diffs instead of the expected diff.#9362: pytest now avoids specialized assert formatting when it is detected that the default
__eq__
is overridden inattrs
ordataclasses
.#9536: When
-vv
is given on command line, show skipping and xfail reasons in full instead of truncating them to fit the terminal width.#9644: More information about the location of resources that led Python to raise
ResourceWarning
{.interpreted-text role="class"} can now be obtained by enablingtracemalloc
{.interpreted-text role="mod"}.See
resource-warnings
{.interpreted-text role="ref"} for more information.#9678: More types are now accepted in the
ids
argument to@pytest.mark.parametrize
. Previously only [str]{.title-ref}, [float]{.title-ref}, [int]{.title-ref} and [bool]{.title-ref} were accepted; now [bytes]{.title-ref}, [complex]{.title-ref}, [re.Pattern]{.title-ref}, [Enum]{.title-ref} and anything with a [__name__]{.title-ref} are also accepted.#9692:
pytest.approx
{.interpreted-text role="func"} now raises aTypeError
{.interpreted-text role="class"} when given an unordered sequence (such asset
{.interpreted-text role="class"}).Note that this implies that custom classes which only implement
__iter__
and__len__
are no longer supported as they don't guarantee order.Bug Fixes
- #8242: The deprecation of raising
unittest.SkipTest
{.interpreted-text role="class"} to skip collection of tests during the pytest collection phase is reverted - this is now a supported feature again.- #9493: Symbolic link components are no longer resolved in conftest paths. This means that if a conftest appears twice in collection tree, using symlinks, it will be executed twice.
... (truncated)
1dbffcc
[pre-commit.ci] auto fixes from pre-commit.com hooksd53a5fb
Prepare release version 7.1.0d306ec0
Update upcoming trainings (#9744)3e4c14b
Merge pull request #9751 from fabianegli/main7f924b1
Fix typo in deprecation documentation4a8f8ad
build(deps): Bump django from 4.0.2 to 4.0.3 in /testing/plugins_integration ...c0fd2d8
build(deps): Bump pytest-asyncio from 0.18.1 to 0.18.2 in /testing/plugins_in...843e018
Merge pull request #9732 from nicoddemus/9730-toml-failurebc43d66
[automated] Update plugin list (#9733)e38d1ca
Improve error message for malformed pyproject.toml files8e4800e
Fixup readmedc1efca
2.1.0 releasedd9d608
Add custom hooks specifications for overriding setup_timeout and teardown_tim...ed8ecd6
module names, they're difficult3ab4319
Add changelog4f7ebae
Replace deprecated py.io.get_terminal_width() with shutil.get_terminal_size()...b8a2fa6
Prep release951972d
Update changelog748a9c3
Making detection of whether a debugger is currently attached more flexible. (...f8a46a1
Github removed the git protocol (#112)Sourced from asgiref's changelog.
3.5.0 (2022-01-22)
Python 3.6 is no longer supported, and asyncio calls have been changed to use only the modern versions of the APIs as a result
Several causes of RuntimeErrors in cases where an event loop was assigned to a thread but not running
Speed improvements in the Local class
3.4.1 (2021-07-01)
- Fixed an issue with the deadlock detection where it had false positives during exception handling.
3.4.0 (2021-06-27)
Calling sync_to_async directly from inside itself (which causes a deadlock when in the default, thread-sensitive mode) now has deadlock detection.
asyncio usage has been updated to use the new versions of get_event_loop, ensure_future, wait and gather, avoiding deprecation warnings in Python 3.10. Python 3.6 installs continue to use the old versions; this is only for 3.7+
sync_to_async and async_to_sync now have improved type hints that pass through the underlying function type correctly.
All Websocket* types are now spelled WebSocket, to match our specs and the official spelling. The old names will work until release 3.5.0, but will raise deprecation warnings.
The typing for WebSocketScope and HTTPScope's
extensions
key has been fixed.3.3.4 (2021-04-06)
- The async_to_sync type error is now a warning due the high false negative rate when trying to detect coroutine-returning callables in Python.
3.3.3 (2021-04-06)
... (truncated)
8b61513
Releasing 3.5.0b2e1c9d
Fixed pytest_asyncio deprecation warning.2eda551
Added testing for Python 3.10.02fecb6
Drop Python 3.6 (#307)6689c0a
Added stacklevel to warning in AsyncToSync.4364f9b
Changed how StatelessServer handles event loops7bc055c
Update implementations.rst (#295)c758984
Move current_task import choice to module definition timedfe87b2
Fixed #292: Use get_event_loop in class-level codeb3a65e3
Removed class variable which has been unused since a0bbe90Sourced from pytest's releases.
7.0.0
pytest 7.0.0 (2022-02-03)
(Please see the full set of changes for this release also in the 7.0.0rc1 notes below)
Deprecations
#9488: If custom subclasses of nodes like
pytest.Item
{.interpreted-text role="class"} override the__init__
method, they should take**kwargs
. Seeuncooperative-constructors-deprecated
{.interpreted-text role="ref"} for details.Note that a deprection warning is only emitted when there is a conflict in the arguments pytest expected to pass. This deprecation was already part of pytest 7.0.0rc1 but wasn't documented.
Bug Fixes
- #9355: Fixed error message prints function decorators when using assert in Python 3.8 and above.
- #9396: Ensure
pytest.Config.inifile
{.interpreted-text role="attr"} is available during thepytest_cmdline_main <_pytest.hookspec.pytest_cmdline_main>
{.interpreted-text role="func"} hook (regression during7.0.0rc1
).Improved Documentation
- #9404: Added extra documentation on alternatives to common misuses of [pytest.warns(None)]{.title-ref} ahead of its deprecation.
- #9505: Clarify where the configuration files are located. To avoid confusions documentation mentions that configuration file is located in the root of the repository.
Trivial/Internal Changes
- #9521: Add test coverage to assertion rewrite path.
pytest 7.0.0rc1 (2021-12-06)
Breaking Changes
#7259: The
Node.reportinfo() <non-python tests>
{.interpreted-text role="ref"} function first return value type has been expanded from [py.path.local | str]{.title-ref} to [os.PathLike[str] | str]{.title-ref}.Most plugins which refer to [reportinfo()]{.title-ref} only define it as part of a custom
pytest.Item
{.interpreted-text role="class"} implementation. Since [py.path.local]{.title-ref} is a [os.PathLike[str]]{.title-ref}, these plugins are unaffacted.Plugins and users which call [reportinfo()]{.title-ref}, use the first return value and interact with it as a [py.path.local]{.title-ref}, would need to adjust by calling [py.path.local(fspath)]{.title-ref}. Although preferably, avoid the legacy [py.path.local]{.title-ref} and use [pathlib.Path]{.title-ref}, or use [item.location]{.title-ref} or [item.path]{.title-ref}, instead.
Note: pytest was not able to provide a deprecation period for this change.
... (truncated)
3554b83
Add note to changelog6ea7f99
Prepare release version 7.0.0737b220
[7.0.x] releasing: Add template for major releases (#9597)7fa3972
[7.0.x] releasing: Always set doc_version (#9590)b304499
[7.0.x] Make 'warnings' and 'deselected' in assert_outcomes optional (#9566)f17525d
[7.0.x] doc: Add ellipsis to warning usecase list (#9562)0a7be97
ci: Bump up timeout (#9565)c17908c
[7.0.x] doc: Recategorize 7.0.0 changelog items (#9564)ab549bb
[7.0.x] Add missing cooperative constructor changelog (#9563)4b1707f
[7.0.x] Autouse linearization graph (#9557)Sourced from pytest-asyncio's releases.
pytest-asyncio 0.18.0
title: 'pytest-asyncio: pytest support for asyncio'
pytest-asyncio is an Apache2 licensed library, written in Python, for testing asyncio code with pytest.
asyncio code is usually written in the form of coroutines, which makes it slightly more difficult to test using normal testing tools. pytest-asyncio provides useful fixtures and markers to make testing easier.
@pytest.mark.asyncio async def test_some_asyncio_code(): res = await library.do_something() assert b"expected result" == res
pytest-asyncio has been strongly influenced by pytest-tornado.
Features
- fixtures for creating and injecting versions of the asyncio event loop
- fixtures for injecting unused tcp/udp ports
- pytest markers for treating tests as asyncio coroutines
- easy testing with non-default event loops
- support for [async def]{.title-ref} fixtures and async generator fixtures
- support auto mode to handle all async fixtures and tests automatically by asyncio; provide strict mode if a test suite should work with different async frameworks simultaneously, e.g.
asyncio
andtrio
.Installation
... (truncated)
07e9922
Prepare release of v0.18.0 (#282)a92d894
Relax dependency on typing-extensions (#284)e78b59d
Fix setuptools_scm configuration (#279)d8efa64
Support parametrized event_loop fixture (#278)dab3b51
Raise a warning if @pytest
.mark.asyncio is applied to non-async function (#275)048a6ed
Code cleanup: drop 'request' argument from async fixtures (#270)4353327
Update changelogc919fd7
Remove unconditional test item attribute access (#268)39c6d0c
Update README547933d
Require typing-extensions on py<3.8 only (#269)Sourced from pytest-asyncio's releases.
pytest-asyncio 0.17.0
title: 'pytest-asyncio: pytest support for asyncio'
pytest-asyncio is an Apache2 licensed library, written in Python, for testing asyncio code with pytest.
asyncio code is usually written in the form of coroutines, which makes it slightly more difficult to test using normal testing tools. pytest-asyncio provides useful fixtures and markers to make testing easier.
@pytest.mark.asyncio async def test_some_asyncio_code(): res = await library.do_something() assert b"expected result" == res
pytest-asyncio has been strongly influenced by pytest-tornado.
Features
- fixtures for creating and injecting versions of the asyncio event loop
- fixtures for injecting unused tcp/udp ports
- pytest markers for treating tests as asyncio coroutines
- easy testing with non-default event loops
- support for [async def]{.title-ref} fixtures and async generator fixtures
- support auto mode to handle all async fixtures and tests automatically by asyncio; provide strict mode if a test suite should work with different async frameworks simultaneously, e.g.
asyncio
andtrio
.Installation
... (truncated)
2e2d5d2
Bump to 0.17 release90436c9
Fix pandoc installation procedured291c66
Convert README.rst to Markdown for making githun release141937b
Fix release artifacts696cf7d
Fix trove classifier for asyncio8ccb306
Build on tagcd84987
Release process automation (#252)2eb12a7
Setup GitHub Workflows linter and yaml-reformatter (#253)d28b826
Bump codecov/codecov-action from 1 to 2.1.0 (#251)2f523ba
Configure dependabot version updater (#250)Sourced from black's releases.
22.1.0
At long last, Black is no longer a beta product! This is the first non-beta release and the first release covered by our new stability policy.
Highlights
Style
- Deprecate
--experimental-string-processing
and move the functionality under--preview
(#2789)- For stubs, one blank line between class attributes and methods is now kept if there's at least one pre-existing blank line (#2736)
- Black now normalizes string prefix order (#2297)
- Remove spaces around power operators if both operands are simple (#2726)
- Work around bug that causes unstable formatting in some cases in the presence of the magic trailing comma (#2807)
- Use parentheses for attribute access on decimal float and int literals (#2799)
- Don't add whitespace for attribute access on hexadecimal, binary, octal, and complex literals (#2799)
- Treat blank lines in stubs the same inside top-level if statements (#2820)
- Fix unstable formatting with semicolons and arithmetic expressions (#2817)
- Fix unstable formatting around magic trailing comma (#2572)
Parser
- Fix mapping cases that contain as-expressions, like
case {"key": 1 | 2 as password}
(#2686)- Fix cases that contain multiple top-level as-expressions, like
case 1 as a, 2 as b
(#2716)- Fix call patterns that contain as-expressions with keyword arguments, like
case Foo(bar=baz as quux)
(#2749)- Tuple unpacking on
return
andyield
constructs now implies 3.8+ (#2700)- Unparenthesized tuples on annotated assignments (e.g
values: Tuple[int, ...] = 1, 2, 3
) now implies 3.8+ (#2708)- Fix handling of standalone
match()
orcase()
when there is a trailing newline or a comment inside of the parentheses. (#2760)from __future__ import annotations
statement now implies Python 3.7+ (#2690)Performance
- Speed-up the new backtracking parser about 4X in general (enabled when
--target-version
is set to 3.10 and higher). (#2728)- Black is now compiled with mypyc for an overall 2x speed-up. 64-bit Windows, MacOS, and Linux (not including musl) are supported. (#1009, #2431)
Configuration
- Do not accept bare carriage return line endings in pyproject.toml (#2408)
- Add configuration option (
python-cell-magics
) to format cells with custom magics in Jupyter Notebooks (#2744)- Allow setting custom cache directory on all platforms with environment variable
BLACK_CACHE_DIR
(#2739).- Enable Python 3.10+ by default, without any extra need to specify -
-target-version=py310
. (#2758)- Make passing
SRC
or--code
mandatory and mutually exclusive (#2804)Output
- Improve error message for invalid regular expression (#2678)
- Improve error message when parsing fails during AST safety check by embedding the underlying SyntaxError (#2693)
- No longer color diff headers white as it's unreadable in light themed terminals (#2691)
- Text coloring added in the final statistics (#2712)
- Verbose mode also now describes how a project root was discovered and which paths will be formatted. (#2526)
Packaging
... (truncated)
Sourced from black's changelog.
22.1.0
At long last, Black is no longer a beta product! This is the first non-beta release and the first release covered by our new stability policy.
Highlights
Style
- Deprecate
--experimental-string-processing
and move the functionality under--preview
(#2789)- For stubs, one blank line between class attributes and methods is now kept if there's at least one pre-existing blank line (#2736)
- Black now normalizes string prefix order (#2297)
- Remove spaces around power operators if both operands are simple (#2726)
- Work around bug that causes unstable formatting in some cases in the presence of the magic trailing comma (#2807)
- Use parentheses for attribute access on decimal float and int literals (#2799)
- Don't add whitespace for attribute access on hexadecimal, binary, octal, and complex literals (#2799)
- Treat blank lines in stubs the same inside top-level
if
statements (#2820)- Fix unstable formatting with semicolons and arithmetic expressions (#2817)
- Fix unstable formatting around magic trailing comma (#2572)
Parser
- Fix mapping cases that contain as-expressions, like
case {"key": 1 | 2 as password}
(#2686)- Fix cases that contain multiple top-level as-expressions, like
case 1 as a, 2 as b
(#2716)- Fix call patterns that contain as-expressions with keyword arguments, like
case Foo(bar=baz as quux)
(#2749)- Tuple unpacking on
return
andyield
constructs now implies 3.8+ (#2700)- Unparenthesized tuples on annotated assignments (e.g
values: Tuple[int, ...] = 1, 2, 3
) now implies 3.8+ (#2708)- Fix handling of standalone
match()
orcase()
when there is a trailing newline or a comment inside of the parentheses. (#2760)from __future__ import annotations
statement now implies Python 3.7+ (#2690)Performance
... (truncated)
....
"", ""columns"": { ""name_of_column"": ""column_description goes here"" } ```",107914493,datasette,issue,,,"{""url"": ""https://api.github.com/repos/simonw/datasette/issues/942/reactions"", ""total_count"": 4, ""+1"": 4, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,completed 1067771698,I_kwDOCGYnMM4_pOcy,348,Command for creating an empty database,9599,simonw,closed,0,,,7558727,3.21,6,2021-11-30T23:24:27Z,2022-01-13T07:06:59Z,2022-01-09T20:33:20Z,OWNER,,"I sometimes find the need to create an empty SQLite database file - for example if I want to enable WAL on it before using it with another script. I currently do that like this: sqlite3 my.db vacuum sqlite-utils enable-wal my.db It would be nice if `sqlite-utils` had a convenience command for doing this.",140912432,sqlite-utils,issue,,,"{""url"": ""https://api.github.com/repos/simonw/sqlite-utils/issues/348/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,completed 1099584685,I_kwDOCGYnMM5BilSt,381,`sqlite-utils rows` options `--limit` and `--offset`,9599,simonw,closed,0,,,,,2,2022-01-11T20:23:12Z,2022-01-11T23:33:37Z,2022-01-11T23:19:36Z,OWNER,,Because I often want to use it just to preview a few rows from the database. Piping through `| head -n 20` works for JSON and CSV (they stream) but not for `--table`.,140912432,sqlite-utils,issue,,,"{""url"": ""https://api.github.com/repos/simonw/sqlite-utils/issues/381/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,completed 1099585611,I_kwDOCGYnMM5BilhL,382,`--where` option for `sqlite-rows`,9599,simonw,closed,0,,,,,1,2022-01-11T20:24:23Z,2022-01-11T23:33:14Z,2022-01-11T23:32:47Z,OWNER,,CLI equivalent of `table.rows_where()` - should accept parameters too. Work on this at the same time as #381.,140912432,sqlite-utils,issue,,,"{""url"": ""https://api.github.com/repos/simonw/sqlite-utils/issues/382/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,completed 1099586786,I_kwDOCGYnMM5Bilzi,383,Add documentation page with the output of `--help`,9599,simonw,closed,0,,,,,4,2022-01-11T20:25:58Z,2022-01-11T22:55:05Z,2022-01-11T21:44:05Z,OWNER,,"Can be maintained using `cog` from #373. Similar in purpose to the API reference page, but this is for the CLI.",140912432,sqlite-utils,issue,,,"{""url"": ""https://api.github.com/repos/simonw/sqlite-utils/issues/383/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,completed 1096558279,I_kwDOCGYnMM5BXCbH,365,create-index should run analyze after creating index,536941,fgregg,closed,0,,,7558727,3.21,16,2022-01-07T18:21:25Z,2022-01-11T02:43:34Z,2022-01-11T01:36:48Z,CONTRIBUTOR,,"sqlite's query planner depends upon analyze to make good use of indices. It would be nice if analyze was run as part of the create-index command. If data is inserted later, things can get out date, but it would still probably be a net win. ",140912432,sqlite-utils,issue,,,"{""url"": ""https://api.github.com/repos/simonw/sqlite-utils/issues/365/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,completed 1098574572,I_kwDOCGYnMM5Beurs,380,Release notes for 3.21,9599,simonw,closed,0,,,7558727,3.21,1,2022-01-11T02:12:30Z,2022-01-11T02:34:26Z,2022-01-11T02:34:26Z,OWNER,,For these commits: https://github.com/simonw/sqlite-utils/compare/3.20...129141572f249ea290e2a075437e2ebaad215859,140912432,sqlite-utils,issue,,,"{""url"": ""https://api.github.com/repos/simonw/sqlite-utils/issues/380/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,completed 1097251014,I_kwDOCGYnMM5BZrjG,375,`sqlite-utils bulk` command,9599,simonw,closed,0,,,7558727,3.21,3,2022-01-09T17:12:38Z,2022-01-11T02:12:58Z,2022-01-11T02:10:55Z,OWNER,,"The `.executemany()` method is a very efficient way to execute the same SQL query against a huge list of parameters. `sqlite-utils insert` supports a bunch of ways of loading a list of dictionaries - from CSV, TSV, JSON, newline JSON and more thanks to: - #361 What if you could load a list of dictionaries and provide a SQL query with `:named` parameters that correspond to keys in those dictionaries instead? This would need to be a new command - I thought about adding a `--sql` option to `insert` but that doesn't make sense as that command already requires a table name.",140912432,sqlite-utils,issue,,,"{""url"": ""https://api.github.com/repos/simonw/sqlite-utils/issues/375/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,completed 1097477582,PR_kwDOCGYnMM4wtl17,377,`sqlite-utils bulk` command,9599,simonw,closed,0,,,7558727,3.21,3,2022-01-10T05:34:24Z,2022-01-11T02:10:57Z,2022-01-11T02:10:54Z,OWNER,simonw/sqlite-utils/pulls/377,"Refs #375 Still needs: - [x] Refactor `@insert_upsert_options` so that it doesn't duplicate `@import_options` - [x] Tests - [x] Documentation - [x] Try it against a really big file",140912432,sqlite-utils,pull,,,"{""url"": ""https://api.github.com/repos/simonw/sqlite-utils/issues/377/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",0, 1098544628,I_kwDOCGYnMM5BenX0,379,CLI options for running ANALYZE,9599,simonw,closed,0,,,7558727,3.21,0,2022-01-11T01:09:16Z,2022-01-11T01:38:01Z,2022-01-11T01:36:48Z,OWNER,,"> The Python methods are all done now, next step is the CLI options. I'll do those in a separate issue. _Originally posted by @simonw in https://github.com/simonw/sqlite-utils/issues/366#issuecomment-1009508865_ - [x] `sqlite-utils analyze` command - [x] `sqlite-utils create-index --analyze` option (see #365) - [x] `sqlite-utils insert --analyze` option - [x] `sqlite-utils upsert --analyze` option In #378 I also added `.delete_where(..., analyze=True)` but there isn't currently a `sqlite-utils delete-where` CLI command - deletions via CLI are expected to be handled using SQL queries.",140912432,sqlite-utils,issue,,,"{""url"": ""https://api.github.com/repos/simonw/sqlite-utils/issues/379/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,completed 1096563265,I_kwDOCGYnMM5BXDpB,366,Python library methods for calling ANALYZE,9599,simonw,closed,0,,,7558727,3.21,10,2022-01-07T18:28:01Z,2022-01-11T01:09:33Z,2022-01-11T01:09:33Z,OWNER,,"> Relevant documentation: https://www.sqlite.org/lang_analyze.html _Originally posted by @simonw in https://github.com/simonw/sqlite-utils/issues/365#issuecomment-1007633376_",140912432,sqlite-utils,issue,,,"{""url"": ""https://api.github.com/repos/simonw/sqlite-utils/issues/366/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,completed 1098309897,I_kwDOCGYnMM5BduEJ,378,analyze=True parameter for some methods,9599,simonw,closed,0,,,7558727,3.21,0,2022-01-10T19:54:52Z,2022-01-11T01:08:11Z,2022-01-11T01:08:09Z,OWNER,,"This would cause `ANALYZE` to be run against the relevant table at the end of executing the method. > Having browsed the API reference I think the methods that would benefit from an `analyze=True` parameter are: - [x] `table.create_index` - [x] `table.insert_all` - [x] `table.upsert_all` - [x] `table.delete_where` _Originally posted by @simonw in https://github.com/simonw/sqlite-utils/issues/366#issuecomment-1009288898_",140912432,sqlite-utils,issue,,,"{""url"": ""https://api.github.com/repos/simonw/sqlite-utils/issues/378/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,completed 1097041471,PR_kwDOCGYnMM4wsVM6,367,Initial prototype of .analyze() methods,9599,simonw,closed,0,,,7558727,3.21,2,2022-01-08T21:35:12Z,2022-01-10T19:31:08Z,2022-01-10T19:31:08Z,OWNER,simonw/sqlite-utils/pulls/367,Refs #366,140912432,sqlite-utils,pull,,,"{""url"": ""https://api.github.com/repos/simonw/sqlite-utils/issues/367/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",1, 1097436959,I_kwDOCGYnMM5BaY8f,376,`--nl` mode should ignore blank lines,9599,simonw,closed,0,,,7558727,3.21,0,2022-01-10T04:10:54Z,2022-01-10T19:27:41Z,2022-01-10T04:12:46Z,OWNER,,Spotted this while manually testing #364 - there's no reason `--nl` should crash if you feed it an empty line in between JSON objects.,140912432,sqlite-utils,issue,,,"{""url"": ""https://api.github.com/repos/simonw/sqlite-utils/issues/376/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,completed 1097129710,I_kwDOCGYnMM5BZN7u,372,Idea: `suffix` and `stem` file columns,9599,simonw,closed,0,,,7558727,3.21,1,2022-01-09T07:48:53Z,2022-01-10T19:27:34Z,2022-01-09T20:17:00Z,OWNER,,"For https://sqlite-utils.datasette.io/en/stable/cli.html#inserting-data-from-files Given a file called `dogs.jpg` stem would be `dogs` and ext would be `jpg`. Need to decide what happens for `dogs.and.cats.jpg.gz`.",140912432,sqlite-utils,issue,,,"{""url"": ""https://api.github.com/repos/simonw/sqlite-utils/issues/372/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,completed 1097128334,I_kwDOCGYnMM5BZNmO,371,Support mutating row in `--convert` without returning it,9599,simonw,closed,0,,,7558727,3.21,6,2022-01-09T07:38:44Z,2022-01-10T19:27:30Z,2022-01-09T20:06:15Z,OWNER,,"Currently you have to do this: ``` $ sqlite-utils insert dogs.db dogs dogs.json --convert ' row[""is_good""] = 1 return row' ``` Would be neat if this worked too: ``` $ sqlite-utils insert dogs.db dogs dogs.json \ --convert 'row[""is_good""] = 1' ```",140912432,sqlite-utils,issue,,,"{""url"": ""https://api.github.com/repos/simonw/sqlite-utils/issues/371/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,completed 1097135860,I_kwDOCGYnMM5BZPb0,374,`--fmt` should imply `-t`,9599,simonw,closed,0,,,7558727,3.21,4,2022-01-09T08:23:07Z,2022-01-10T19:27:26Z,2022-01-09T18:07:59Z,OWNER,,Not sure why I didn't implement this.,140912432,sqlite-utils,issue,,,"{""url"": ""https://api.github.com/repos/simonw/sqlite-utils/issues/374/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,completed 1097135732,I_kwDOCGYnMM5BZPZ0,373,List `--fmt` options in the docs ,9599,simonw,closed,0,,,7558727,3.21,3,2022-01-09T08:22:11Z,2022-01-10T19:27:24Z,2022-01-09T17:49:00Z,OWNER,,https://sqlite-utils.datasette.io/en/stable/cli.html#table-formatted-output currently cheats and tells the user to run `--help` - can fix this using `cog`. ,140912432,sqlite-utils,issue,,,"{""url"": ""https://api.github.com/repos/simonw/sqlite-utils/issues/373/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,completed 1097087280,I_kwDOCGYnMM5BZDkw,368,Offer `python -m sqlite_utils` as an alternative to `sqlite-utils`,9599,simonw,closed,0,,,7558727,3.21,3,2022-01-09T02:29:30Z,2022-01-10T19:27:20Z,2022-01-09T02:40:50Z,OWNER,,"> Add this to `sqlite_utils/cli.py`: > > ```python > if __name__ == ""__main__"": > cli() > ``` > Now the tool can be run using `python -m sqlite_utils.cli --help` _Originally posted by @simonw in https://github.com/simonw/sqlite-utils/issues/364#issuecomment-1008214998_",140912432,sqlite-utils,issue,,,"{""url"": ""https://api.github.com/repos/simonw/sqlite-utils/issues/368/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,completed 1095570074,I_kwDOCGYnMM5BTRKa,364,`--batch-size 1` doesn't seem to commit for every item,9599,simonw,closed,0,,,7558727,3.21,16,2022-01-06T18:18:50Z,2022-01-10T19:27:17Z,2022-01-10T05:36:19Z,OWNER,,"I'm trying this, but it doesn't seem to write anything to the database file until I hit `CTRL+C`: ``` heroku logs --app=simonwillisonblog --tail | grep 'measure#nginx.service' | \ sqlite-utils insert /tmp/herokutail.db log - --import re --convert ""$(cat <Sourced from janus's releases.
janus 1.0.0 release
- Dropped Python 3.6 support
- Janus is marked as stable, no API changes was made for years
Sourced from janus's changelog.
1.0.0 (2021-12-17)
- Drop Python 3.6 support
0.7.0 (2021-11-24)
- Add SyncQueue and AsyncQueue Protocols to provide type hints for sync and async queues #374
0.6.2 (2021-10-24)
- Fix Python 3.10 compatibility #358
0.6.1 (2020-10-26)
Raise RuntimeError on queue.join() after queue closing. #295
Replace
timeout
type fromOptional[int]
toOptional[float]
#2670.6.0 (2020-10-10)
Drop Python 3.5, the minimal supported version is Python 3.6
Support Python 3.9
Refomat with
black
0.5.0 (2020-04-23)
- Remove explicit loop arguments and forbid creating queues outside event loops #246
0.4.0 (2018-07-28)
Add
py.typed
macro #89Drop python 3.4 support and fix minimal version python3.5.3 #88
Add property with that indicates if queue is closed #86
0.3.2 (2018-07-06)
- Fixed python 3.7 support #97
... (truncated)
0783f9b
Fix coverage upload41c49ba
Make deployment only if checks are greenec94b35
Fix CI again2303208
Fix CIdff5078
Bump to 1.0.03421545
Bump mypy from 0.910 to 0.920 (#384)56b2d1d
Bump black from 21.11b1 to 21.12b0 (#383)883e82b
Update README.rst2e30d8a
Bump coverage from 6.1.2 to 6.2 (#382)7b72d85
Bump to 0.7Sourced from black's releases.
21.12b0
Black
- Fix determination of f-string expression spans (#2654)
- Fix bad formatting of error messages about EOF in multi-line statements (#2343)
- Functions and classes in blocks now have more consistent surrounding spacing (#2472)
Jupyter Notebook support
- Cell magics are now only processed if they are known Python cell magics. Earlier, all cell magics were tokenized, leading to possible indentation errors e.g. with
%%writefile
. (#2630)- Fix assignment to environment variables in Jupyter Notebooks (#2642)
Python 3.10 support
- Point users to using
--target-version py310
if we detect 3.10-only syntax (#2668)- Fix
match
statements with open sequence subjects, likematch a, b:
ormatch a, *b:
(#2639) (#2659)- Fix
match
/case
statements that containmatch
/case
soft keywords multiple times, likematch re.match()
(#2661)- Fix
case
statements with an inline body (#2665)- Fix styling of starred expressions inside
match
subject (#2667)- Fix parser error location on invalid syntax in a
match
statement (#2649)- Fix Python 3.10 support on platforms without ProcessPoolExecutor (#2631)
- Improve parsing performance on code that uses
match
under--target-version py310
up to ~50% (#2670)Packaging
Thank you!
@isidentical
for the polishing up 3.10 syntax support (which they contributed in the first place!)@MarcoGorelli
for their ever-continuing work on Black's jupyter support@jalaziz
for cleaning up our Pyinstaller CD workflow@hauntsaninja
for helping us drop theregex
dependencyAnd also congrats to first contributors!
@MatthewScholefield
made their first contribution in psf/black#2631@AshIsbitt
made their first contribution in psf/black#2632@kalbasit
made their first contribution in psf/black#2638@danieleades
made their first contribution in psf/black#2653@danielsparing
made their first contribution in psf/black#2630@tanvimoharir
made their first contribution in psf/black#2343
Sourced from black's changelog.
21.12b0
Black
- Fix determination of f-string expression spans (#2654)
- Fix bad formatting of error messages about EOF in multi-line statements (#2343)
- Functions and classes in blocks now have more consistent surrounding spacing (#2472)
Jupyter Notebook support
- Cell magics are now only processed if they are known Python cell magics. Earlier, all cell magics were tokenized, leading to possible indentation errors e.g. with
%%writefile
. (#2630)- Fix assignment to environment variables in Jupyter Notebooks (#2642)
Python 3.10 support
- Point users to using
--target-version py310
if we detect 3.10-only syntax (#2668)- Fix
match
statements with open sequence subjects, likematch a, b:
ormatch a, *b:
(#2639) (#2659)- Fix
match
/case
statements that containmatch
/case
soft keywords multiple times, likematch re.match()
(#2661)- Fix
case
statements with an inline body (#2665)- Fix styling of starred expressions inside
match
subject (#2667)- Fix parser error location on invalid syntax in a
match
statement (#2649)- Fix Python 3.10 support on platforms without ProcessPoolExecutor (#2631)
- Improve parsing performance on code that uses
match
under--target-version py310
up to ~50% (#2670)Packaging
Sourced from pytest-xdist's changelog.
pytest-xdist 2.5.0 (2021-12-10)
Features
[#722](https://github.com/pytest-dev/pytest-xdist/issues/722) <https://github.com/pytest-dev/pytest-xdist/issues/722>
_: Full compatibility with pytest 7 - no deprecation warnings or use of legacy features.
[#733](https://github.com/pytest-dev/pytest-xdist/issues/733) <https://github.com/pytest-dev/pytest-xdist/issues/733>
_: New--dist=loadgroup
option, which ensures all tests marked with@pytest.mark.xdist_group
run in the same session/worker. Other tests run distributed as in--dist=load
.Trivial Changes
[#708](https://github.com/pytest-dev/pytest-xdist/issues/708) <https://github.com/pytest-dev/pytest-xdist/issues/708>
_: Use@pytest.hookspec
decorator to declare hook options innewhooks.py
to avoid warnings inpytest 7.0
.
[#719](https://github.com/pytest-dev/pytest-xdist/issues/719) <https://github.com/pytest-dev/pytest-xdist/issues/719>
_: Use up-to-datesetup.cfg
/pyproject.toml
packaging setup.
[#720](https://github.com/pytest-dev/pytest-xdist/issues/720) <https://github.com/pytest-dev/pytest-xdist/issues/720>
_: Require pytest>=6.2.0.
[#721](https://github.com/pytest-dev/pytest-xdist/issues/721) <https://github.com/pytest-dev/pytest-xdist/issues/721>
_: Started using type annotations and mypy checking internally. The types are incomplete and not published.pytest-xdist 2.4.0 (2021-09-20)
Features
[#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).Depends on the
setproctitle <https://pypi.org/project/setproctitle/>
__ package, which can be installed withpip install pytest-xdist[setproctitle]
.
[#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.pytest-xdist 2.3.0 (2021-06-16)
Deprecations and Removals
[#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.Features
[#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 withauto
.
... (truncated)
13f3934
Remove unnecessary skip from test_logfinish_hook as we require pytest>=6.2c76d562
Skip test_warning_captured_deprecated_in_pytest_6 in pytest>=7.15f78c71
Fix CHANGELOG headerc8bbc03
Release 2.5.08dbf367
Merge pull request #738 from pytest-dev/pre-commit-ci-update-configa25c14b
[pre-commit.ci] pre-commit autoupdate110c114
Merge pull request #734 from nicoddemus/revamp-readme83bdbf4
Revamp README630c1eb
Merge pull request #733 from baekdohyeop/feature-loadgroup62e50d0
Address reviewSourced from janus's changelog.
0.7.0 (2021-11-24)
- Add SyncQueue and AsyncQueue Protocols to provide type hints for sync and async queues #374
0.6.2 (2021-10-24)
- Fix Python 3.10 compatibility #358
0.6.1 (2020-10-26)
Raise RuntimeError on queue.join() after queue closing. #295
Replace
timeout
type fromOptional[int]
toOptional[float]
#2670.6.0 (2020-10-10)
Drop Python 3.5, the minimal supported version is Python 3.6
Support Python 3.9
Refomat with
black
0.5.0 (2020-04-23)
- Remove explicit loop arguments and forbid creating queues outside event loops #246
0.4.0 (2018-07-28)
Add
py.typed
macro #89Drop python 3.4 support and fix minimal version python3.5.3 #88
Add property with that indicates if queue is closed #86
0.3.2 (2018-07-06)
- Fixed python 3.7 support #97
0.3.1 (2018-01-30)
- Fixed bug with join() in case tasks are added by sync_q.put() #75
... (truncated)
7b72d85
Bump to 0.75389dec
add SyncQueue and AsyncQueue Protocols (#374)d54ae42
Bump docutils from 0.18 to 0.18.1 (#381)76ccc92
Bump black from 21.11b0 to 21.11b1 (#380)967c284
Bump black from 21.10b0 to 21.11b0 (#379)4d625a2
Bump bandit from 1.7.0 to 1.7.1 (#378)e21eec2
Bump coverage from 6.1.1 to 6.1.2 (#377)7ff20af
Bump isort from 5.10.0 to 5.10.1 (#376)67e3782
Switch from setup.py to declarative setup.cfg (#375)8a0c498
Bump isort from 5.9.3 to 5.10.0 (#373)Sourced from black's releases.
21.11b1
Black
- Bumped regex version minimum to 2021.4.4 to fix Pattern class usage (#2621)
21.11b0
Black
- Warn about Python 2 deprecation in more cases by improving Python 2 only syntax detection (#2592)
- Add experimental PyPy support (#2559)
- Add partial support for the match statement. As it's experimental, it's only enabled when
--target-version py310
is explicitly specified (#2586)- Add support for parenthesized with (#2586)
- Declare support for Python 3.10 for running Black (#2562)
Integrations
- Fixed vim plugin with Python 3.10 by removing deprecated distutils import (#2610)
- The vim plugin now parses
skip_magic_trailing_comma
from pyproject.toml (#2613)21.10b0
Black
- Document stability policy, that will apply for non-beta releases (#2529)
- Add new
--workers
parameter (#2514)- Fixed feature detection for positional-only arguments in lambdas (#2532)
- Bumped typed-ast version minimum to 1.4.3 for 3.10 compatiblity (#2519)
- Fixed a Python 3.10 compatibility issue where the loop argument was still being passed even though it has been removed (#2580)
- Deprecate Python 2 formatting support (#2523)
Blackd
Black-Primer
Integrations
Sourced from black's changelog.
21.11b1
Black
- Bumped regex version minimum to 2021.4.4 to fix Pattern class usage (#2621)
21.11b0
Black
- Warn about Python 2 deprecation in more cases by improving Python 2 only syntax detection (#2592)
- Add experimental PyPy support (#2559)
- Add partial support for the match statement. As it's experimental, it's only enabled when
--target-version py310
is explicitly specified (#2586)- Add support for parenthesized with (#2586)
- Declare support for Python 3.10 for running Black (#2562)
Integrations
- Fixed vim plugin with Python 3.10 by removing deprecated distutils import (#2610)
- The vim plugin now parses
skip_magic_trailing_comma
from pyproject.toml (#2613)21.10b0
Black
- Document stability policy, that will apply for non-beta releases (#2529)
- Add new
--workers
parameter (#2514)- Fixed feature detection for positional-only arguments in lambdas (#2532)
- Bumped typed-ast version minimum to 1.4.3 for 3.10 compatibility (#2519)
- Fixed a Python 3.10 compatibility issue where the loop argument was still being passed even though it has been removed (#2580)
- Deprecate Python 2 formatting support (#2523)
Blackd
Black-Primer
Integrations
d010ff4
0.8.03e3830d
Tweak README713984e
Update README9570975
Use os.sep2b2500d
Add prefix, suffix, dir args to TemporaryDirectory8895eb4
Fix ospath.exists test8308355
Fix typo: aiofiles.ospath.existsb8cf8dd
Update Readme with os.makedirs and os.removedirsaea353e
Merge branch 'patch-2'761f06e
Fix READMESourced from black's releases.
21.11b0
Black
- Warn about Python 2 deprecation in more cases by improving Python 2 only syntax detection (#2592)
- Add experimental PyPy support (#2559)
- Add partial support for the match statement. As it's experimental, it's only enabled when
--target-version py310
is explicitly specified (#2586)- Add support for parenthesized with (#2586)
- Declare support for Python 3.10 for running Black (#2562)
Integrations
- Fixed vim plugin with Python 3.10 by removing deprecated distutils import (#2610)
- The vim plugin now parses
skip_magic_trailing_comma
from pyproject.toml (#2613)21.10b0
Black
- Document stability policy, that will apply for non-beta releases (#2529)
- Add new
--workers
parameter (#2514)- Fixed feature detection for positional-only arguments in lambdas (#2532)
- Bumped typed-ast version minimum to 1.4.3 for 3.10 compatiblity (#2519)
- Fixed a Python 3.10 compatibility issue where the loop argument was still being passed even though it has been removed (#2580)
- Deprecate Python 2 formatting support (#2523)
Blackd
Black-Primer
Integrations
Sourced from black's changelog.
21.11b0
Black
- Warn about Python 2 deprecation in more cases by improving Python 2 only syntax detection (#2592)
- Add experimental PyPy support (#2559)
- Add partial support for the match statement. As it's experimental, it's only enabled when
--target-version py310
is explicitly specified (#2586)- Add support for parenthesized with (#2586)
- Declare support for Python 3.10 for running Black (#2562)
Integrations
- Fixed vim plugin with Python 3.10 by removing deprecated distutils import (#2610)
- The vim plugin now parses
skip_magic_trailing_comma
from pyproject.toml (#2613)21.10b0
Black
- Document stability policy, that will apply for non-beta releases (#2529)
- Add new
--workers
parameter (#2514)- Fixed feature detection for positional-only arguments in lambdas (#2532)
- Bumped typed-ast version minimum to 1.4.3 for 3.10 compatibility (#2519)
- Fixed a Python 3.10 compatibility issue where the loop argument was still being passed even though it has been removed (#2580)
- Deprecate Python 2 formatting support (#2523)
Blackd
Black-Primer
Integrations
Sourced from black's releases.
21.10b0
Black
- Document stability policy, that will apply for non-beta releases (#2529)
- Add new
--workers
parameter (#2514)- Fixed feature detection for positional-only arguments in lambdas (#2532)
- Bumped typed-ast version minimum to 1.4.3 for 3.10 compatiblity (#2519)
- Fixed a Python 3.10 compatibility issue where the loop argument was still being passed even though it has been removed (#2580)
- Deprecate Python 2 formatting support (#2523)
Blackd
Black-Primer
Integrations
Sourced from black's changelog.
21.10b0
Black
- Document stability policy, that will apply for non-beta releases (#2529)
- Add new
--workers
parameter (#2514)- Fixed feature detection for positional-only arguments in lambdas (#2532)
- Bumped typed-ast version minimum to 1.4.3 for 3.10 compatiblity (#2519)
- Fixed a Python 3.10 compatibility issue where the loop argument was still being passed even though it has been removed (#2580)
- Deprecate Python 2 formatting support (#2523)
Blackd
Black-Primer
Integrations
f2fe98e
0.16.04e1df31
Remove obsolete test, add make test6ec7647
feat: Add support for Python 3.10.42ff5d1
ci: Include Python 3.10 in the CI test run.be3b327
build: Include Python 3.10 in Tox test runs.1c283bd
refactor: test_async_fixtures_with_finalizer no longer trigger a DeprecationW...2751982
refactor: Replaced tests asserting that the event loop is properly closed.70989fd
refactor: Grouped test cases together that are related to the use of the asyn...b27abe8
refactor: Removed TestUnexistingLoop.remove_loop fixture, because it has no e...e3ec312
Adjusted Hypothesis integration test to use the same event loop initializatio...Sourced from pyyaml's changelog.
6.0 (2021-10-13)
- yaml/pyyaml#327 -- Change README format to Markdown
- yaml/pyyaml#483 -- Add a test for YAML 1.1 types
- yaml/pyyaml#497 -- fix float resolver to ignore
.
and._
- yaml/pyyaml#550 -- drop Python 2.7
- yaml/pyyaml#553 -- Fix spelling of “hexadecimal”
- yaml/pyyaml#556 -- fix representation of Enum subclasses
- yaml/pyyaml#557 -- fix libyaml extension compiler warnings
- yaml/pyyaml#560 -- fix ResourceWarning on leaked file descriptors
- yaml/pyyaml#561 -- always require
Loader
arg toyaml.load()
- yaml/pyyaml#564 -- remove remaining direct distutils usage
5.4.1 (2021-01-20)
- yaml/pyyaml#480 -- Fix stub compat with older pyyaml versions that may unwittingly load it
5.4 (2021-01-19)
- yaml/pyyaml#407 -- Build modernization, remove distutils, fix metadata, build wheels, CI to GHA
- yaml/pyyaml#472 -- Fix for CVE-2020-14343, moves arbitrary python tags to UnsafeLoader
- yaml/pyyaml#441 -- Fix memory leak in implicit resolver setup
- yaml/pyyaml#392 -- Fix py2 copy support for timezone objects
- yaml/pyyaml#378 -- Fix compatibility with Jython
5.3.1 (2020-03-18)
- yaml/pyyaml#386 -- Prevents arbitrary code execution during python/object/new constructor
5.3 (2020-01-06)
- yaml/pyyaml#290 -- Use
is
instead of equality for comparing withNone
- yaml/pyyaml#270 -- Fix typos and stylistic nit
- yaml/pyyaml#309 -- Fix up small typo
- yaml/pyyaml#161 -- Fix handling of slots
- yaml/pyyaml#358 -- Allow calling add_multi_constructor with None
- yaml/pyyaml#285 -- Add use of safe_load() function in README
- yaml/pyyaml#351 -- Fix reader for Unicode code points over 0xFFFF
- yaml/pyyaml#360 -- Enable certain unicode tests when maxunicode not > 0xffff
- yaml/pyyaml#359 -- Use full_load in yaml-highlight example
- yaml/pyyaml#244 -- Document that PyYAML is implemented with Cython
- yaml/pyyaml#329 -- Fix for Python 3.10
- yaml/pyyaml#310 -- Increase size of index, line, and column fields
- yaml/pyyaml#260 -- Remove some unused imports
- yaml/pyyaml#163 -- Create timezone-aware datetimes when parsed as such
- yaml/pyyaml#363 -- Add tests for timezone
5.2 (2019-12-02)
... (truncated)
8cdff2c
6.0 releasea4fb55e
Update Python 3.10 versions for Windows builde45b964
Add Python 3.10 to tox.ini4808fba
6.0b1 released5aba40
Omnibus CI/artifact build updatea6d384c
Various setup fixes8f3f979
No longer using appveyorc274365
The yaml.load{,_all} functions require Loader= now2f87ac4
Add a basic test file for yaml.load and yaml.dump7bd92df
Makefile tweaksSourced from black's releases.
21.9b0
Packaging
- Fix missing modules in self-contained binaries (#2466)
- Fix missing toml extra used during installation (#2475)
21.8b0
Black
- Add support for formatting Jupyter Notebook files (#2357)
- Move from
appdirs
dependency toplatformdirs
(#2375)- Present a more user-friendly error if .gitignore is invalid (#2414)
- The failsafe for accidentally added backslashes in f-string expressions has been hardened to handle more edge cases during quote normalization (#2437)
- Avoid changing a function return type annotation's type to a tuple by adding a trailing comma (#2384)
- Parsing support has been added for unparenthesized walruses in set literals, set comprehensions, and indices (#2447).
- Pin
setuptools-scm
build-time dependency version (#2457)- Exclude typing-extensions version 3.10.0.1 due to it being broken on Python 3.10 (#2460)
Blackd
- Replace sys.exit(-1) with raise ImportError as it plays more nicely with tools that scan installed packages (#2440)
Integrations
- The provided pre-commit hooks no longer specify
language_version
to avoid overridingdefault_language_version
(#2430)
Sourced from black's changelog.
21.9b0
Packaging
- Fix missing modules in self-contained binaries (#2466)
- Fix missing toml extra used during installation (#2475)
21.8b0
Black
- Add support for formatting Jupyter Notebook files (#2357)
- Move from
appdirs
dependency toplatformdirs
(#2375)- Present a more user-friendly error if .gitignore is invalid (#2414)
- The failsafe for accidentally added backslashes in f-string expressions has been hardened to handle more edge cases during quote normalization (#2437)
- Avoid changing a function return type annotation's type to a tuple by adding a trailing comma (#2384)
- Parsing support has been added for unparenthesized walruses in set literals, set comprehensions, and indices (#2447).
- Pin
setuptools-scm
build-time dependency version (#2457)- Exclude typing-extensions version 3.10.0.1 due to it being broken on Python 3.10 (#2460)
Blackd
- Replace sys.exit(-1) with raise ImportError as it plays more nicely with tools that scan installed packages (#2440)
Integrations
- The provided pre-commit hooks no longer specify
language_version
to avoid overridingdefault_language_version
(#2430)
Sourced from pluggy's changelog.
pluggy 1.0.0 (2021-08-25)
Deprecations and Removals
[#116](https://github.com/pytest-dev/pluggy/issues/116) <https://github.com/pytest-dev/pluggy/issues/116>
_: Remove deprecatedimplprefix
support. Decorate hook implementations using an instance of HookimplMarker instead. The deprecation was announced in release0.7.0
.
[#120](https://github.com/pytest-dev/pluggy/issues/120) <https://github.com/pytest-dev/pluggy/issues/120>
_: Remove the deprecatedproc
argument tocall_historic
. Useresult_callback
instead, which has the same behavior. The deprecation was announced in release0.7.0
.
[#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. Note that unlikeresult
,get_result()
raises the exception if the hook raised. The deprecation was announced in release0.6.0
.
[#267](https://github.com/pytest-dev/pluggy/issues/267) <https://github.com/pytest-dev/pluggy/issues/267>
_: Remove official support for Python 3.4.
[#272](https://github.com/pytest-dev/pluggy/issues/272) <https://github.com/pytest-dev/pluggy/issues/272>
_: Dropped support for Python 2. Continue to use pluggy 0.13.x for Python 2 support.
[#308](https://github.com/pytest-dev/pluggy/issues/308) <https://github.com/pytest-dev/pluggy/issues/308>
_: Remove official support for Python 3.5.
[#313](https://github.com/pytest-dev/pluggy/issues/313) <https://github.com/pytest-dev/pluggy/issues/313>
_: The internalpluggy.callers
,pluggy.manager
andpluggy.hooks
are now explicitly marked private by a_
prefix (e.g.pluggy._callers
). Only API exported by the top-levelpluggy
module is considered public.
[#59](https://github.com/pytest-dev/pluggy/issues/59) <https://github.com/pytest-dev/pluggy/issues/59>
_: Remove legacy__multicall__
recursive hook calling system. The deprecation was announced in release0.5.0
.Features
[#282](https://github.com/pytest-dev/pluggy/issues/282) <https://github.com/pytest-dev/pluggy/issues/282>
_: When registering a hookimpl which is declared ashookwrapper=True
but whose function is not a generator function, aPluggyValidationError
exception is now raised.Previously this problem would cause an error only later, when calling the hook.
In the unlikely case that you have a hookwrapper that returns a generator
... (truncated)
4259fdd
Fix CHANGELOG title manually906abca
Preparing release 1.0.056eb23c
Rename HOWTORELEASE to RELEASING to follow pytestfc6395c
Fix scripts/release.py to use main instead of mastere04816f
Merge pull request #324 from RonnyPfannschmidt/benchmarks1424ab0
add micro benchmarks for hook calling playing with a the number of callers, w...5e51864
Merge pull request #323 from RonnyPfannschmidt/switch-to-main05c3bbd
switch to main as primary branch6b344fb
Merge pull request #319 from RonnyPfannschmidt/pre-commit-update71f2d6b
introduce pyupgrade and update blackSourced from pytest-xdist's changelog.
pytest-xdist 2.4.0 (2021-09-20)
Features
[#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).Depends on the
setproctitle <https://pypi.org/project/setproctitle/>
__ package, which can be installed withpip install pytest-xdist[setproctitle]
.
[#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.pytest-xdist 2.3.0 (2021-06-16)
Deprecations and Removals
[#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.Features
[#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 withauto
.This is very useful for test suites which are not CPU-bound.
[#650](https://github.com/pytest-dev/pytest-xdist/issues/650) <https://github.com/pytest-dev/pytest-xdist/issues/650>
_: Added newpytest_handlecrashitem
hook to allow handling and rescheduling crashed items.Bug Fixes
[#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.
[#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.Trivial Changes
[#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.
[#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.pytest-xdist 2.2.1 (2021-02-09)
... (truncated)
4b487ed
Manually fix changelog titleecf4d3b
Release 2.4.087d8979
Merge pull request #704 from hugovk/add-3.10b4544c8
Merge pull request #706 from pytest-dev/pre-commit-ci-update-config66dc390
[pre-commit.ci] pre-commit autoupdatee0ce1b7
Add news file to add support for Python 3.10ed47f0e
Add support for Python 3.101c8178a
Merge pull request #703 from pytest-dev/pre-commit-ci-update-config9807064
[pre-commit.ci] pre-commit autoupdate766e67c
Use setproctitle if available to show state (#696)Sourced from black's releases.
21.8b0
Black
- Add support for formatting Jupyter Notebook files (#2357)
- Move from
appdirs
dependency toplatformdirs
(#2375)- Present a more user-friendly error if .gitignore is invalid (#2414)
- The failsafe for accidentally added backslashes in f-string expressions has been hardened to handle more edge cases during quote normalization (#2437)
- Avoid changing a function return type annotation's type to a tuple by adding a trailing comma (#2384)
- Parsing support has been added for unparenthesized walruses in set literals, set comprehensions, and indices (#2447).
- Pin
setuptools-scm
build-time dependency version (#2457)- Exclude typing-extensions version 3.10.0.1 due to it being broken on Python 3.10 (#2460)
Blackd
- Replace sys.exit(-1) with raise ImportError as it plays more nicely with tools that scan installed packages (#2440)
Integrations
- The provided pre-commit hooks no longer specify
language_version
to avoid overridingdefault_language_version
(#2430)
Sourced from black's changelog.
21.8b0
Black
- Add support for formatting Jupyter Notebook files (#2357)
- Move from
appdirs
dependency toplatformdirs
(#2375)- Present a more user-friendly error if .gitignore is invalid (#2414)
- The failsafe for accidentally added backslashes in f-string expressions has been hardened to handle more edge cases during quote normalization (#2437)
- Avoid changing a function return type annotation's type to a tuple by adding a trailing comma (#2384)
- Parsing support has been added for unparenthesized walruses in set literals, set comprehensions, and indices (#2447).
- Pin
setuptools-scm
build-time dependency version (#2457)- Exclude typing-extensions version 3.10.0.1 due to it being broken on Python 3.10 (#2460)
Blackd
- Replace sys.exit(-1) with raise ImportError as it plays more nicely with tools that scan installed packages (#2440)
Integrations
- The provided pre-commit hooks no longer specify
language_version
to avoid overridingdefault_language_version
(#2430)
Sourced from black's releases.
21.7b0
Black
- Configuration files using TOML features higher than spec v0.5.0 are now supported (#2301)
- Add primer support and test for code piped into black via STDIN (#2315)
- Fix internal error when
FORCE_OPTIONAL_PARENTHESES
feature is enabled (#2332)- Accept empty stdin (#2346)
- Provide a more useful error when parsing fails during AST safety checks (#2304)
Docker
- Add new
latest_release
tag automation to follow latest black release on docker images (#2374)Integrations
- The vim plugin now searches upwards from the directory containing the current buffer instead of the current working directory for pyproject.toml. (#1871)
- The vim plugin now reads the correct string normalization option in pyproject.toml (#1869)
- The vim plugin no longer crashes Black when there's boolean values in pyproject.toml (#1869)
Sourced from black's changelog.
21.7b0
Black
- Configuration files using TOML features higher than spec v0.5.0 are now supported (#2301)
- Add primer support and test for code piped into black via STDIN (#2315)
- Fix internal error when
FORCE_OPTIONAL_PARENTHESES
feature is enabled (#2332)- Accept empty stdin (#2346)
- Provide a more useful error when parsing fails during AST safety checks (#2304)
Docker
- Add new
latest_release
tag automation to follow latest black release on docker images (#2374)Integrations
- The vim plugin now searches upwards from the directory containing the current buffer instead of the current working directory for pyproject.toml. (#1871)
- The vim plugin now reads the correct string normalization option in pyproject.toml (#1869)
- The vim plugin no longer crashes Black when there's boolean values in pyproject.toml (#1869)
8fc5bf9
Bump version to 0.9.0913e21d
Bump types-cryptography from 3.3.3 to 3.3.5 (#342)c66709d
Bump types-pyopenssl from 20.0.4 to 20.0.5 (#343)5131f79
Add type annotations (#341)a411dad
Bump charset-normalizer from 2.0.3 to 2.0.4 (#340)be5ec8a
Bump sphinx from 4.1.1 to 4.1.2d3b8865
Bump charset-normalizer from 2.0.2 to 2.0.34503bef
Merge pull request #334 from python-trio/dependabot/pip/charset-normalizer-2.0.2ce8099d
Merge pull request #335 from python-trio/dependabot/pip/sphinx-4.1.18b6d3c6
Merge pull request #336 from python-trio/dependabot/pip/idna-3.2Sourced from asgiref's changelog.
3.4.0 (2021-06-27)
Calling sync_to_async directly from inside itself (which causes a deadlock when in the default, thread-sensitive mode) now has deadlock detection.
asyncio usage has been updated to use the new versions of get_event_loop, ensure_future, wait and gather, avoiding deprecation warnings in Python 3.10. Python 3.6 installs continue to use the old versions; this is only for 3.7+
sync_to_async and async_to_sync now have improved type hints that pass through the underlying function type correctly.
All Websocket* types are now spelled WebSocket, to match our specs and the official spelling. The old names will work until release 3.5.0, but will raise deprecation warnings.
The typing for WebSocketScope and HTTPScope's
extensions
key has been fixed.3.3.4 (2021-04-06)
- The async_to_sync type error is now a warning due the high false negative rate when trying to detect coroutine-returning callables in Python.
3.3.3 (2021-04-06)
- The sync conversion functions now correctly detect functools.partial and other wrappers around async functions on earlier Python releases.
3.3.2 (2021-04-05)
SyncToAsync now takes an optional "executor" argument if you want to supply your own executor rather than using the built-in one.
async_to_sync and sync_to_async now check their arguments are functions of the correct type.
Raising CancelledError inside a SyncToAsync function no longer stops a future call from functioning.
ThreadSensitive now provides context hooks/override options so it can be made to be sensitive in a unit smaller than threads (e.g. per request)
... (truncated)
Sourced from pytest-xdist's changelog.
pytest-xdist 2.3.0 (2021-06-16)
Deprecations and Removals
[#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.Features
[#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 withauto
.This is very useful for test suites which are not CPU-bound.
[#650](https://github.com/pytest-dev/pytest-xdist/issues/650) <https://github.com/pytest-dev/pytest-xdist/issues/650>
_: Added newpytest_handlecrashitem
hook to allow handling and rescheduling crashed items.Bug Fixes
[#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.
[#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.Trivial Changes
[#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.
[#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.pytest-xdist 2.2.1 (2021-02-09)
Bug Fixes
[#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.pytest-xdist 2.2.0 (2020-12-14)
Features
... (truncated)
fe57b39
fixup: add release title underline for 2.3.026e7d95
prepare release 2.3.0b02a6db
Merge pull request #667 from graingert/fix-sys-pathb072267
add newsfile881cc48
Merge pull request #672 from pytest-dev/pre-commit-ci-update-config958679e
[pre-commit.ci] pre-commit autoupdate7f07d50
Merge pull request #646 from kroeschl/numprocesses-logicalfb518de
Merge pull request #669 from pytest-dev/pre-commit-ci-update-config0b14d92
[pre-commit.ci] pre-commit autoupdate02f971d
swap docstringf9e13e0
Release 0.8.04ae4435
Merge pull request #304 from python-trio/dependabot/add-v2-config-file8767902
Merge pull request #327 from graingert/test-on-py3106abfddd
Merge branch 'master' of github.com:python-trio/trustme into test-on-py31051d3bdf
Merge pull request #328 from tiran/correct_ku_eku034fb3a
retry codecov more53e121d
try codecov harderc1e7923
require codecov in cie3ac2d6
Update tests/test_trustme.py496dca6
close the wrapped sockets to prevent Unraisable ResourceWarningsSourced from black's releases.
21.6b0
Black
- Fix failure caused by
fmt: skip
and indentation (#2281)- Account for += assignment when deciding whether to split string (#2312)
- Correct max string length calculation when there are string operators (#2292)
- Fixed option usage when using the
--code
flag (#2259)- Do not call
uvloop.install()
when Black is used as a library (#2303)- Added
--required-version
option to require a specific version to be running (#2300)- Fix incorrect custom breakpoint indices when string group contains fake f-strings (#2311)
- Fix regression where
R
prefixes would be lowercased for docstrings (#2285)- Fix handling of named escapes (
\N{...}
) when--experimental-string-processing
is used (#2319)
Sourced from black's changelog.
21.6b0
Black
- Fix failure caused by
fmt: skip
and indentation (#2281)- Account for += assignment when deciding whether to split string (#2312)
- Correct max string length calculation when there are string operators (#2292)
- Fixed option usage when using the
--code
flag (#2259)- Do not call
uvloop.install()
when Black is used as a library (#2303)- Added
--required-version
option to require a specific version to be running (#2300)- Fix incorrect custom breakpoint indices when string group contains fake f-strings (#2311)
- Fix regression where
R
prefixes would be lowercased for docstrings (#2285)- Fix handling of named escapes (
\N{...}
) when--experimental-string-processing
is used (#2319)