Sourced from click's releases.
\n\n\n8.1.0
\nThis 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.
\n\n
Sourced from click's changelog.
\n\n\nVersion 8.1.0
\nReleased 2022-03-28
\n\n
\n\n- \n
\nDrop support for Python 3.6. :pr:
\n2129
- \n
\nRemove previously deprecated code. :pr:
\n2130
\n
\n- \n
Group.resultcallback
is renamed toresult_callback
.- \n
autocompletion
parameter toCommand
is renamed to\nshell_complete
.- \n
get_terminal_size
is removed, use\nshutil.get_terminal_size
instead.- \n
get_os_args
is removed, usesys.argv[1:]
instead.- \n
\nRely on :pep:
\n538
and :pep:540
to handle selecting UTF-8 encoding\ninstead of ASCII. Click's locale encoding detection is removed.\n:issue:2198
- \n
\nSingle options boolean flags with
\nshow_default=True
only show\nthe default if it isTrue
. :issue:1971
- \n
\nThe
\ncommand
andgroup
decorators can be applied with or\nwithout parentheses. :issue:1359
- \n
\nThe
\nPath
type can check whether the target is executable.\n:issue:1961
- \n
\n\n
Command.show_default
overridesContext.show_default
, instead\nof the other way around. :issue:1963
- \n
\nParameter decorators and
\n@group
handlescls=None
the same as\nnot passingcls
.@option
handleshelp=None
the same as\nnot passinghelp
. :issue:[#1959](https://github.com/pallets/click/issues/1959)
- \n
\nA flag option with
\nrequired=True
requires that the flag is\npassed instead of choosing the implicit default value. :issue:1978
- \n
\nIndentation in help text passed to
\nOption
andCommand
is\ncleaned the same as using the@option
and@command
\ndecorators does. A command'sepilog
andshort_help
are also\nprocessed. :issue:1985
- \n
\nStore unprocessed
\nCommand.help
,epilog
andshort_help
\nstrings. Processing is only done when formatting help text for\noutput. :issue:2149
- \n
\nAllow empty str input for
\nprompt()
when\nconfirmation_prompt=True
anddefault=""
. :issue:2157
- \n
\nWindows glob pattern expansion doesn't fail if a value is an invalid\npattern. :issue:
\n2195
- \n
\nIt's possible to pass a list of
\nparams
to@command
. Any\nparams defined with decorators are appended to the passed params.\n:issue:2131
.- \n
\n\n
@command
decorator is annotated as returning the correct type if\nacls
argument is used. :issue:2211
- \n
\nA
\nGroup
withinvoke_without_command=True
andchain=False
\nwill invoke its result callback with the group function's return\nvalue. :issue:2124
... (truncated)
\ne4aceee
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.
\n\n\n7.1.0
\npytest 7.1.0 (2022-03-13)
\nBreaking Changes
\n\n
\n- \n
\n#8838: As per our policy, the following features have been deprecated in the 6.X series and are now\nremoved:
\n\n
\n- \n
pytest._fillfuncargs
function.- \n
pytest_warning_captured
hook - usepytest_warning_recorded
instead.- \n
-k -foobar
syntax - use-k 'not foobar'
instead.- \n
-k foobar:
syntax.- \n
pytest.collect
module - import frompytest
directly.For more information consult\nDeprecations and Removals in the docs.
\n- \n
\n#9437: Dropped support for Python 3.6, which reached end-of-life at 2021-12-23.
\nImprovements
\n\n
\n- \n
\n#5192: Fixed test output for some data types where
\n-v
would show less information.Also, when showing diffs for sequences,
\n-q
would produce full diffs instead of the expected diff.- \n
\n#9362: pytest now avoids specialized assert formatting when it is detected that the default
\n__eq__
is overridden inattrs
ordataclasses
.- \n
\n#9536: When
\n-vv
is given on command line, show skipping and xfail reasons in full instead of truncating them to fit the terminal width.- \n
\n#9644: More information about the location of resources that led Python to raise
\nResourceWarning
{.interpreted-text role="class"} can now\nbe obtained by enablingtracemalloc
{.interpreted-text role="mod"}.See
\nresource-warnings
{.interpreted-text role="ref"} for more information.- \n
\n#9678: More types are now accepted in the
\nids
argument to@pytest.mark.parametrize
.\nPreviously only [str]{.title-ref}, [float]{.title-ref}, [int]{.title-ref} and [bool]{.title-ref} were accepted;\nnow [bytes]{.title-ref}, [complex]{.title-ref}, [re.Pattern]{.title-ref}, [Enum]{.title-ref} and anything with a [__name__]{.title-ref} are also accepted.- \n
\n#9692:
\npytest.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
\n__iter__
and__len__
are no longer supported as they don't guarantee order.Bug Fixes
\n\n
\n\n- #8242: The deprecation of raising
\nunittest.SkipTest
{.interpreted-text role="class"} to skip collection of\ntests during the pytest collection phase is reverted - this is now a supported\nfeature again.- #9493: Symbolic link components are no longer resolved in conftest paths.\nThis means that if a conftest appears twice in collection tree, using symlinks, it will be executed twice.
\n
... (truncated)
\n1dbffcc
[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.
\n\n\n3.5.0 (2022-01-22)
\n\n
\n- \n
\nPython 3.6 is no longer supported, and asyncio calls have been changed to\nuse only the modern versions of the APIs as a result
\n- \n
\nSeveral causes of RuntimeErrors in cases where an event loop was assigned\nto a thread but not running
\n- \n
\nSpeed improvements in the Local class
\n3.4.1 (2021-07-01)
\n\n
\n- Fixed an issue with the deadlock detection where it had false positives\nduring exception handling.
\n3.4.0 (2021-06-27)
\n\n
\n- \n
\nCalling sync_to_async directly from inside itself (which causes a deadlock\nwhen in the default, thread-sensitive mode) now has deadlock detection.
\n- \n
\nasyncio 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
\nsync_to_async and async_to_sync now have improved type hints that pass\nthrough the underlying function type correctly.
\n- \n
\nAll 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
\nThe typing for WebSocketScope and HTTPScope's
\nextensions
key has been\nfixed.3.3.4 (2021-04-06)
\n\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.
\n3.3.3 (2021-04-06)
\n\n
... (truncated)
\n8b61513
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.
\n\n\n7.0.0
\npytest 7.0.0 (2022-02-03)
\n(Please see the full set of changes for this release also in the 7.0.0rc1 notes below)
\nDeprecations
\n\n
\n- \n
\n#9488: If custom subclasses of nodes like
\npytest.Item
{.interpreted-text role="class"} override the\n__init__
method, they should take**kwargs
. See\nuncooperative-constructors-deprecated
{.interpreted-text role="ref"} for details.Note that a deprection warning is only emitted when there is a conflict in the\narguments pytest expected to pass. This deprecation was already part of pytest\n7.0.0rc1 but wasn't documented.
\nBug Fixes
\n\n
\n- #9355: Fixed error message prints function decorators when using assert in Python 3.8 and above.
\n- #9396: Ensure
\npytest.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
\n\n
\n- #9404: Added extra documentation on alternatives to common misuses of [pytest.warns(None)]{.title-ref} ahead of its deprecation.
\n- #9505: Clarify where the configuration files are located. To avoid confusions documentation mentions\nthat configuration file is located in the root of the repository.
\nTrivial/Internal Changes
\n\n
\n- #9521: Add test coverage to assertion rewrite path.
\npytest 7.0.0rc1 (2021-12-06)
\nBreaking Changes
\n\n
\n\n- \n
\n#7259: The
\nNode.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
\npytest.Item
{.interpreted-text role="class"} implementation.\nSince [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}.\nAlthough 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.
\nNote: pytest was not able to provide a deprecation period for this change.
\n
... (truncated)
\n3554b83
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.
\n\n\npytest-asyncio 0.18.0
\n
\ntitle: 'pytest-asyncio: pytest support for asyncio'
\n\n\n\n\n\npytest-asyncio is an Apache2 licensed library, written in Python, for\ntesting asyncio code with pytest.
\nasyncio code is usually written in the form of coroutines, which makes\nit slightly more difficult to test using normal testing tools.\npytest-asyncio provides useful fixtures and markers to make testing\neasier.
\n\n@pytest.mark.asyncio\nasync def test_some_asyncio_code():\n res = await library.do_something()\n assert b"expected result" == res\n
pytest-asyncio has been strongly influenced by\npytest-tornado.
\nFeatures
\n\n
\n- fixtures for creating and injecting versions of the asyncio event\nloop
\n- fixtures for injecting unused tcp/udp ports
\n- pytest markers for treating tests as asyncio coroutines
\n- easy testing with non-default event loops
\n- support for [async def]{.title-ref} fixtures and async generator\nfixtures
\n- support auto mode to handle all async fixtures and tests\nautomatically by asyncio; provide strict mode if a test suite\nshould work with different async frameworks simultaneously, e.g.\n
\nasyncio
andtrio
.Installation
\n\n
... (truncated)
\n07e9922
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 @\u200bpytest
.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.
\n\n\npytest-asyncio 0.17.0
\n
\ntitle: 'pytest-asyncio: pytest support for asyncio'
\n\n\n\n\n\npytest-asyncio is an Apache2 licensed library, written in Python, for\ntesting asyncio code with pytest.
\nasyncio code is usually written in the form of coroutines, which makes\nit slightly more difficult to test using normal testing tools.\npytest-asyncio provides useful fixtures and markers to make testing\neasier.
\n\n@pytest.mark.asyncio\nasync def test_some_asyncio_code():\n res = await library.do_something()\n assert b"expected result" == res\n
pytest-asyncio has been strongly influenced by\npytest-tornado.
\nFeatures
\n\n
\n- fixtures for creating and injecting versions of the asyncio event\nloop
\n- fixtures for injecting unused tcp/udp ports
\n- pytest markers for treating tests as asyncio coroutines
\n- easy testing with non-default event loops
\n- support for [async def]{.title-ref} fixtures and async generator\nfixtures
\n- support auto mode to handle all async fixtures and tests\nautomatically by asyncio; provide strict mode if a test suite\nshould work with different async frameworks simultaneously, e.g.\n
\nasyncio
andtrio
.Installation
\n\n
... (truncated)
\n2e2d5d2
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.
\n\n\n22.1.0
\nAt 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.
\nHighlights
\n\nStyle
\n\n
\n- Deprecate
\n--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)
\n- Black now normalizes string prefix order (#2297)
\n- Remove spaces around power operators if both operands are simple (#2726)
\n- Work around bug that causes unstable formatting in some cases in the presence of the magic trailing comma (#2807)
\n- Use parentheses for attribute access on decimal float and int literals (#2799)
\n- Don't add whitespace for attribute access on hexadecimal, binary, octal, and complex literals (#2799)
\n- Treat blank lines in stubs the same inside top-level if statements (#2820)
\n- Fix unstable formatting with semicolons and arithmetic expressions (#2817)
\n- Fix unstable formatting around magic trailing comma (#2572)
\nParser
\n\n
\n- Fix mapping cases that contain as-expressions, like
\ncase {"key": 1 | 2 as password}
(#2686)- Fix cases that contain multiple top-level as-expressions, like
\ncase 1 as a, 2 as b
(#2716)- Fix call patterns that contain as-expressions with keyword arguments, like
\ncase Foo(bar=baz as quux)
(#2749)- Tuple unpacking on
\nreturn
andyield
constructs now implies 3.8+ (#2700)- Unparenthesized tuples on annotated assignments (e.g
\nvalues: Tuple[int, ...] = 1, 2, 3
) now implies 3.8+ (#2708)- Fix handling of standalone
\nmatch()
orcase()
when there is a trailing newline or a comment inside of the parentheses. (#2760)- \n
from __future__ import annotations
statement now implies Python 3.7+ (#2690)Performance
\n\n
\n- Speed-up the new backtracking parser about 4X in general (enabled when
\n--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)
\nConfiguration
\n\n
\n- Do not accept bare carriage return line endings in pyproject.toml (#2408)
\n- Add configuration option (
\npython-cell-magics
) to format cells with custom magics in Jupyter Notebooks (#2744)- Allow setting custom cache directory on all platforms with environment variable
\nBLACK_CACHE_DIR
(#2739).- Enable Python 3.10+ by default, without any extra need to specify -
\n-target-version=py310
. (#2758)- Make passing
\nSRC
or--code
mandatory and mutually exclusive (#2804)Output
\n\n
\n- Improve error message for invalid regular expression (#2678)
\n- Improve error message when parsing fails during AST safety check by embedding the underlying SyntaxError (#2693)
\n- No longer color diff headers white as it's unreadable in light themed terminals (#2691)
\n- Text coloring added in the final statistics (#2712)
\n- Verbose mode also now describes how a project root was discovered and which paths will be formatted. (#2526)
\nPackaging
\n\n\n
... (truncated)
\nSourced from black's changelog.
\n\n\n22.1.0
\nAt long last, Black is no longer a beta product! This is the first non-beta release\nand the first release covered by our new stability policy.
\nHighlights
\n\nStyle
\n\n
\n- Deprecate
\n--experimental-string-processing
and move the functionality under\n--preview
(#2789)- For stubs, one blank line between class attributes and methods is now kept if there's\nat least one pre-existing blank line (#2736)
\n- Black now normalizes string prefix order (#2297)
\n- Remove spaces around power operators if both operands are simple (#2726)
\n- Work around bug that causes unstable formatting in some cases in the presence of the\nmagic trailing comma (#2807)
\n- Use parentheses for attribute access on decimal float and int literals (#2799)
\n- Don't add whitespace for attribute access on hexadecimal, binary, octal, and complex\nliterals (#2799)
\n- Treat blank lines in stubs the same inside top-level
\nif
statements (#2820)- Fix unstable formatting with semicolons and arithmetic expressions (#2817)
\n- Fix unstable formatting around magic trailing comma (#2572)
\nParser
\n\n
\n- Fix mapping cases that contain as-expressions, like
\ncase {"key": 1 | 2 as password}
\n(#2686)- Fix cases that contain multiple top-level as-expressions, like
\ncase 1 as a, 2 as b
\n(#2716)- Fix call patterns that contain as-expressions with keyword arguments, like\n
\ncase Foo(bar=baz as quux)
(#2749)- Tuple unpacking on
\nreturn
andyield
constructs now implies 3.8+ (#2700)- Unparenthesized tuples on annotated assignments (e.g\n
\nvalues: Tuple[int, ...] = 1, 2, 3
) now implies 3.8+ (#2708)- Fix handling of standalone
\nmatch()
orcase()
when there is a trailing newline or a\ncomment inside of the parentheses. (#2760)- \n
from __future__ import annotations
statement now implies Python 3.7+ (#2690)Performance
\n\n\n
... (truncated)
\n