Changelog
### 5.2.0
```
=====
:release-date: 2023-11-06 10:55 A.M. UTC+6:00
:release-by: Asif Saif Uddin
- Added python 3.12 and drop python 3.7 (423).
- Test vine 5.1.0 (424).
- Set an explicit timeout on SSL handshake to prevent hangs.
- Add MessageNacked to recoverable errors.
- Send heartbeat frames more often.
.. _version-5.1.1:
```
### 5.1.1
```
=====
:release-date: 2022-04-17 12:45 P.M. UTC+6:00
:release-by: Asif Saif Uddin
- Use AF_UNSPEC for name resolution (389).
.. _version-5.1.0:
```
### 5.1.0
```
=====
:release-date: 2022-03-06 10:05 A.M. UTC+6:00
:release-by: Asif Saif Uddin
- Improve performance of _get_free_channel_id, fix channel max bug (385).
- Document memoryview usage, minor frame_writer.write_frame refactor (384).
- Start dropping python 3.6 (387).
- Added experimental __slots__ to some classes (368)
- Relaxed vine version for upcoming release.
- Upgraded topytest 7 (388).
.. _version-5.0.9:
```
### 5.0.9
```
=====
:release-date: 2021-12-20 11:00 A.M. UTC+6:00
:release-by: Asif Saif Uddin
- Append to _used_channel_ids in _used_channel_ids
.. _version-5.0.8:
```
### 5.0.8
```
=====
:release-date: 2021-12-19 11:15 A.M. UTC+6:00
:release-by: Asif Saif Uddin
- Reduce memory usage of Connection (377)
- Add additional error handling around code where an OSError
may be raised on failed connections. Fixes (378)
.. _version-5.0.7:
```
### 5.0.7
```
=====
:release-date: 2021-12-13 15:45 P.M. UTC+6:00
:release-by: Asif Saif Uddin
- Remove dependency to case
- Bugfix: not closing socket after server disconnect
.. _version-5.0.6:
```
### 5.0.6
```
=====
:release-date: 2021-04-01 10:45 A.M. UTC+6:00
:release-by: Asif Saif Uddin
- Change the order in which context.check_hostname and context.verify_mode get set
in SSLTransport._wrap_socket_sni. Fixes bug introduced in 5.0.3 where setting
context.verify_mode = ssl.CERT_NONE would raise
"ValueError: Cannot set verify_mode to CERT_NONE when check_hostname is enabled."
Setting context.check_hostname prior to setting context.verify_mode resolves the
issue.
- Remove TCP_USER_TIMEOUT option for Solaris (355)
- Pass long_description to setup() (353)
- Fix for tox-docker 2.0
- Moved to GitHub actions CI (359)
.. _version-5.0.5:
```
### 5.0.5
```
=====
:release-date: 2021-01-28 4:30 P.M UTC+6:00
:release-by: Asif Saif Uddin
- Removed mistakenly introduced code which was causing import errors
.. _version-5.0.4:
```
### 5.0.4
```
=====
:release-date: 2021-01-28 2:30 P.M UTC+6:00
:release-by: Asif Saif Uddin
- Add missing load_default_certs() call to fix a regression in v5.0.3 release. (350)
.. _version-5.0.3:
```
### 5.0.3
```
=====
:release-date: 2021-01-19 9:00 P.M UTC+6:00
:release-by: Asif Saif Uddin
- Change the default value of ssl_version to None. When not set, the
proper value between ssl.PROTOCOL_TLS_CLIENT and ssl.PROTOCOL_TLS_SERVER
will be selected based on the param server_side in order to create
a TLS Context object with better defaults that fit the desired
connection side.
- Change the default value of cert_reqs to None. The default value
of ctx.verify_mode is ssl.CERT_NONE, but when ssl.PROTOCOL_TLS_CLIENT
is used, ctx.verify_mode defaults to ssl.CERT_REQUIRED.
- Fix context.check_hostname logic. Checking the hostname depends on
having support of the SNI TLS extension and being provided with a
server_hostname value. Another important thing to mention is that
enabling hostname checking automatically sets verify_mode from
ssl.CERT_NONE to ssl.CERT_REQUIRED in the stdlib ssl and it cannot
be set back to ssl.CERT_NONE as long as hostname checking is enabled.
- Refactor the SNI tests to test one thing at a time and removing some
tests that were being repeated over and over.
.. _version-5.0.2:
```
### 5.0.2
```
=====
:release-date: 2020-11-08 6:50 P.M UTC+3:00
:release-by: Omer Katz
- Whhels are no longer universal.
Contributed by **Omer Katz**
- Added debug representation to Connection and *Transport classes
Contributed by **Matus Valo**
- Reintroduce ca_certs and ciphers parameters of SSLTransport._wrap_socket_sni()
This fixes issue introduced in commit: 53d6777
Contributed by **Matus Valo**
- Fix infinite wait when using confirm_publish
Contributed by **Omer Katz** & **RezaSi**
.. _version-5.0.1:
```
### 5.0.1
```
=====
:release-date: 2020-09-06 6:10 P.M UTC+3:00
:release-by: Omer Katz
- Require vine 5.0.0.
Contributed by **Omer Katz**
.. _version-5.0.0:
```
### 5.0.0
```
=====
:release-date: 2020-09-03 3:20 P.M UTC+3:00
:release-by: Omer Katz
- Stop to use deprecated method ssl.wrap_socket.
Contributed by **Hervé Beraud**
.. _version-5.0.0b1:
```
### 5.0.0b1
```
=======
:release-date: 2020-09-01 6:20 P.M UTC+3:00
:release-by: Omer Katz
- Dropped Python 3.5 support.
Contributed by **Omer Katz**
- Removed additional compatibility code.
Contributed by **Omer Katz**
.. _version-5.0.0a1:
```
### 5.0.0a1
```
=======
:release-date: 2019-04-01 4:30 P.M UTC+3:00
:release-by: Omer Katz
- Dropped Python 2.x support.
Contributed by **Omer Katz**
- Dropped Python 3.4 support.
Contributed by **Omer Katz**
- Depend on :pypi:`vine` 5.0.0a1.
Contributed by **Omer Katz**
Code Cleanups & Improvements:
- **Omer Katz**
.. _version-2.6.0:
```
### 2.6.1
```
=====
:release-date: 2020-07-31 10.30 P.M UTC+6:00
:release-by: Asif Saif Uddin
- Fix buffer overflow in frame_writer after frame_max is increased. `frame_writer`
allocates a `bytearray` on initialization with a length based on the `connection.frame_max`
value. If `connection.frame_max` is changed to a larger value, this causes an
error like `pack_into requires a buffer of at least 408736 bytes`.
.. _version-2.6.0:
```
### 2.6.0
```
=====
:release-date: 20-06-01 12.00 P.M UTC+6:00
:release-by: Asif Saif Uddin
- Implement speedups in cython (311)
- Updated some tests & code improvements
- Separate logger for Connection.heartbeat_tick method
- Cython generic content (315)
- Improve documentation a_global parameter of basic_qos() method.
- Fix saving partial read buffer on windows during socket timeout. (321)
- Fix deserialization of long string field values that are not utf-8.
- Added simple cythonization of abstract_channel.py
- Speedups of serialization.py are more restrictive
.. _version-2.5.2:
```
Links
- PyPI: https://pypi.org/project/amqp
- Changelog: https://data.safetycli.com/changelogs/amqp/
- Repo: http://github.com/celery/py-amqp
Changelog
### 0.30.4
```
---------------------------
There were complaints about the lack of a deprecation cycle for the legacy name
mapping policy. This version addresses the issue:
- The handling introduced in v.0.30.2 (raising an exception for clarity)
is retained for cases when no name mapping policy is specified but function
signature contains defaults in non-kwonly args **and kwonly args are also
defined**::
def main(alpha, beta=1, *, gamma=2): error — explicit policy required
In a similar case but when **kwonly args are not defined** Argh now assumes
the legacy name mapping policy (`BY_NAME_IF_HAS_DEFAULT`) and merely issues
a deprecation warning with the same message as the exception mentioned above::
def main(alpha, beta=2): `[-b BETA] alpha` + DeprecationWarning
This ensures that most of the old scripts still work the same way despite the
new policy being used by default and enforced in cases when it's impossible
to resolve the mapping conflict.
Please note that this "soft" handling is to be removed in version v0.33
(or v1.0 if the former is not deemed necessary). The new name mapping policy
will be used by default without warnings, like in v0.30.
```
### 0.30.3
```
---------------------------
Bugs fixed:
- Regression: a positional argument with an underscore used in `arg` decorator
would cause Argh fail on the assembling stage. (208)
```
### 0.30.2
```
---------------------------
Bugs fixed:
- As reported in 204 and 206, the new default name mapping policy in fact
silently changed the CLI API of some scripts: arguments which were previously
translated as CLI options became optional positionals. Although the
instructions were supplied in the release notes, the upgrade may not
necessarily be intentional, so a waste of users' time is quite likely.
To alleviate this, the default value for `name_mapping_policy` in standard
functions has been changed to `None`; if it's not specified, Argh falls back
to the new default policy, but raises `ArgumentNameMappingError` with
detailed instructions if it sees a non-kwonly argument with a default value.
Please specify the policy explicitly in order to avoid this error if you need
to infer optional positionals (``nargs="?"``) from function signature.
```
### 0.30.1
```
---------------------------
Bugs fixed:
- Regression: certain special values in argument default value would cause an
exception (204)
Enhancements:
- Improved the tutorial.
- Added a more informative error message when the reason is likely to be
related to the migration from Argh v0.29 to a version with a new argument
name mapping policy.
Other changes:
- Added `py.typed` marker file for :pep:`561`.
```
### 0.30.0
```
---------------------------
Backwards incompatible changes:
- A new policy for mapping function arguments to CLI arguments is used by
default (see :class:`argh.assembling.NameMappingPolicy`).
The following function does **not** map to ``func foo [--bar]`` anymore::
def func(foo, bar=None):
...
Since this release it maps to ``func foo [bar]`` instead.
Please update the function this way to keep `bar` an "option"::
def func(foo, *, bar=None):
...
If you cannot modify the function signature to use kwonly args for options,
please consider explicitly specifying the legacy name mapping policy::
set_default_command(
func, name_mapping_policy=NameMappingPolicy.BY_NAME_IF_HAS_DEFAULT
)
- The name mapping policy `BY_NAME_IF_HAS_DEFAULT` slightly deviates from the
old behaviour. Kwonly arguments without default values used to be marked as
required options (``--foo FOO``), now they are treated as positionals
(``foo``). Please consider the new default policy (`BY_NAME_IF_KWONLY`) for
a better treatment of kwonly.
- Removed previously deprecated features (184 → 188):
- argument help string in annotations — reserved for type hints;
- `argh.SUPPORTS_ALIASES`;
- `argh.safe_input()`;
- previously renamed arguments for `add_commands()`: `namespace`,
`namespace_kwargs`, `title`, `description`, `help`;
- `pre_call` argument in `dispatch()`. The basic usage remains simple but
more granular functions are now available for more control.
Instead of this::
argh.dispatch(..., pre_call=pre_call_hook)
please use this::
func, ns = argh.parse_and_resolve(...)
pre_call_hook(ns)
argh.run_endpoint_function(func, ns, ...)
Deprecated:
- The `expects_obj` decorator. Rationale: it used to support the old,
"un-pythonic" style of usage, which essentially lies outside the scope of
Argh. If you are not using the mapping of function arguments onto CLI, then
you aren't reducing the amount of code compared to vanilla Argparse.
- The `add_help_command` argument in `dispatch()`.
Rationale: it doesn't add much to user experience; it's not much harder to
type ``--help`` than it is to type ``help``; moreover, the option can be
added anywhere, unlike its positional counterpart.
Enhancements:
- Added support for Python 3.12.
- Added type annotations to existing Argh code (185 → 189).
- The `dispatch()` function has been refactored, so in case you need finer
control over the process, two new, more granular functions can be used:
- `endpoint_function, namespace = argh.parse_and_resolve(...)`
- `argh.run_endpoint_function(endpoint_function, namespace, ...)`
Please note that the names may change in the upcoming versions.
- Configurable name mapping policy has been introduced for function argument
to CLI argument translation (191 → 199):
- `BY_NAME_IF_KWONLY` (default and recommended).
- `BY_NAME_IF_HAS_DEFAULT` (close to pre-v.0.30 behaviour);
Please check API docs on :class:`argh.assembling.NameMappingPolicy` for
details.
```
### 0.29.4
```
---------------------------
Bugs fixed:
- Test coverage reported as <100% when argcomplete is installed (187)
```
### 0.29.3
```
------------------------------
Technical releases for packaging purposes. No changes in functionality.
```
### 0.29.0
```
---------------------------
Backwards incompatible changes:
- Wrapped exceptions now cause ``dispatching.dispatch()`` to raise
``SystemExit(1)`` instead of returning without error. For most users, this
means failed commands will now exit with a failure status instead of a
success. (161)
Deprecated:
- Renamed arguments in `add_commands()` (165):
- `namespace` → `group_name`
- `namespace_kwargs` → `group_kwargs`
The old names are deprecated and will be removed in v.0.30.
Enhancements:
- Can control exit status (see Backwards Incompatible Changes above) when
raising ``CommandError`` using the ``code`` keyword arg.
Bugs fixed:
- Positional arguments should not lead to removal of short form of keyword
arguments. (115)
Other changes:
- Avoid depending on iocapture by using pytest's built-in feature (177)
```
### 0.28.1
```
---------------------------
- Fixed bugs in tests (171, 172)
```
### 0.28.0
```
---------------------------
A major cleanup.
Backward incompatible changes:
- Dropped support for Python 2.7 and 3.7.
Deprecated features, to be removed in v.0.30:
- `argh.assembling.SUPPORTS_ALIASES`.
- Always `True` for recent versions of Python.
- `argh.io.safe_input()` AKA `argh.interaction.safe_input()`.
- Not relevant anymore. Please use the built-in `input()` instead.
- argument `pre_call` in `dispatch()`.
Even though this hack seems to have been used in some projects, it was never
part of the official API and never recommended.
Describing your use case in the `discussion about shared arguments`_ can
help improve the library to accomodate it in a proper way.
.. _discussion about shared arguments: https://github.com/neithere/argh/issues/63
- Argument help as annotations.
- Annotations will only be used for types after v.0.30.
- Please replace any instance of::
def func(foo: "Foobar"):
with the following::
arg('-f', '--foo', help="Foobar")
def func(foo):
It will be decided later how to keep this functionality "DRY" (don't repeat
yourself) without conflicts with modern conventions and tools.
- Added deprecation warnings for some arguments deprecated back in v.0.26.
```
### 0.27.2
```
---------------------------
Minor packaging fix:
* chore: include file required by tox.ini in the sdist (155)
```
### 0.27.1
```
---------------------------
Minor building and packaging fixes:
* docs: add Read the Docs config (160)
* chore: include tox.ini in the sdist (155)
```
### 0.27.0
```
---------------------------
This is the last version to support Python 2.7.
Backward incompatible changes:
- Dropped support for Python 2.6.
Enhancements:
- Added support for Python 3.7 through 3.11.
- Support introspection of function signature behind the `wraps` decorator
(issue 111).
Fixed bugs:
- When command function signature contained ``**kwargs`` *and* positionals
without defaults and with underscores in their names, a weird behaviour could
be observed (issue 104).
- Fixed introspection through decorators (issue 111).
- Switched to Python's built-in `unittest.mock` (PR 154).
- Fixed bug with `skip_unknown_args=True` (PR 134).
- Fixed tests for Python 3.9.7+ (issue 148).
Other changes:
- Included the license files in manifest (PR 112).
- Extended the list of similar projects (PR 87).
- Fixed typos and links in documentation (PR 110, 116, 156).
- Switched CI to Github Actions (PR 153).
```
Links
- PyPI: https://pypi.org/project/argh
- Changelog: https://data.safetycli.com/changelogs/argh/
- Docs: https://pythonhosted.org/argh/
Changelog
### 4.11.1
```
This release was done to ensure that the unit tests are packaged along
with the released source. There are no functionality changes in this
release, but there are a few other packaging changes:
* The Japanese and Korean translations of the documentation are included.
* The changelog is now packaged as CHANGELOG, and the license file is
packaged as LICENSE. NEWS.txt and COPYING.txt are still present,
but may be removed in the future.
* TODO.txt is no longer packaged, since a TODO is not relevant for released
code.
```
### 4.11.0
```
* Ported unit tests to use pytest.
* Added special string classes, RubyParenthesisString and RubyTextString,
to make it possible to treat ruby text specially in get_text() calls.
[bug=1941980]
* It's now possible to customize the way output is indented by
providing a value for the 'indent' argument to the Formatter
constructor. The 'indent' argument works very similarly to the
argument of the same name in the Python standard library's
json.dump() function. [bug=1955497]
* If the charset-normalizer Python module
(https://pypi.org/project/charset-normalizer/) is installed, Beautiful
Soup will use it to detect the character sets of incoming documents.
This is also the module used by newer versions of the Requests library.
For the sake of backwards compatibility, chardet and cchardet both take
precedence if installed. [bug=1955346]
* Added a workaround for an lxml bug
(https://bugs.launchpad.net/lxml/+bug/1948551) that causes
problems when parsing a Unicode string beginning with BYTE ORDER MARK.
[bug=1947768]
* Issue a warning when an HTML parser is used to parse a document that
looks like XML but not XHTML. [bug=1939121]
* Do a better job of keeping track of namespaces as an XML document is
parsed, so that CSS selectors that use namespaces will do the right
thing more often. [bug=1946243]
* Some time ago, the misleadingly named "text" argument to find-type
methods was renamed to the more accurate "string." But this supposed
"renaming" didn't make it into important places like the method
signatures or the docstrings. That's corrected in this
version. "text" still works, but will give a DeprecationWarning.
[bug=1947038]
* Fixed a crash when pickling a BeautifulSoup object that has no
tree builder. [bug=1934003]
* Fixed a crash when overriding multi_valued_attributes and using the
html5lib parser. [bug=1948488]
* Standardized the wording of the MarkupResemblesLocatorWarning
warnings to omit untrusted input and make the warnings less
judgmental about what you ought to be doing. [bug=1955450]
* Removed support for the iconv_codec library, which doesn't seem
to exist anymore and was never put up on PyPI. (The closest
replacement on PyPI, iconv_codecs, is GPL-licensed, so we can't use
it--it's also quite old.)
```
### 4.10.0
```
* This is the first release of Beautiful Soup to only support Python
3. I dropped Python 2 support to maintain support for newer versions
(58 and up) of setuptools. See:
https://github.com/pypa/setuptools/issues/2769 [bug=1942919]
* The behavior of methods like .get_text() and .strings now differs
depending on the type of tag. The change is visible with HTML tags
like <script>, <style>, and <template>. Starting in 4.9.0, methods
like get_text() returned no results on such tags, because the
contents of those tags are not considered 'text' within the document
as a whole.
But a user who calls script.get_text() is working from a different
definition of 'text' than a user who calls div.get_text()--otherwise
there would be no need to call script.get_text() at all. In 4.10.0,
the contents of (e.g.) a <script> tag are considered 'text' during a
get_text() call on the tag itself, but not considered 'text' during
a get_text() call on the tag's parent.
Because of this change, calling get_text() on each child of a tag
may now return a different result than calling get_text() on the tag
itself. That's because different tags now have different
understandings of what counts as 'text'. [bug=1906226] [bug=1868861]
* NavigableString and its subclasses now implement the get_text()
method, as well as the properties .strings and
.stripped_strings. These methods will either return the string
itself, or nothing, so the only reason to use this is when iterating
over a list of mixed Tag and NavigableString objects. [bug=1904309]
* The 'html5' formatter now treats attributes whose values are the
empty string as HTML boolean attributes. Previously (and in other
formatters), an attribute value must be set as None to be treated as
a boolean attribute. In a future release, I plan to also give this
behavior to the 'html' formatter. Patch by Isaac Muse. [bug=1915424]
* The 'replace_with()' method now takes a variable number of arguments,
and can be used to replace a single element with a sequence of elements.
Patch by Bill Chandos. [rev=605]
* Corrected output when the namespace prefix associated with a
namespaced attribute is the empty string, as opposed to
None. [bug=1915583]
* Performance improvement when processing tags that speeds up overall
tree construction by 2%. Patch by Morotti. [bug=1899358]
* Corrected the use of special string container classes in cases when a
single tag may contain strings with different containers; such as
the <template> tag, which may contain both TemplateString objects
and Comment objects. [bug=1913406]
* The html.parser tree builder can now handle named entities
found in the HTML5 spec in much the same way that the html5lib
tree builder does. Note that the lxml HTML tree builder doesn't handle
named entities this way. [bug=1924908]
* Added a second way to pass specify encodings to UnicodeDammit and
EncodingDetector, based on the order of precedence defined in the
HTML5 spec, starting at:
https://html.spec.whatwg.org/multipage/parsing.html#parsing-with-a-known-character-encoding
Encodings in 'known_definite_encodings' are tried first, then
byte-order-mark sniffing is run, then encodings in 'user_encodings'
are tried. The old argument, 'override_encodings', is now a
deprecated alias for 'known_definite_encodings'.
This changes the default behavior of the html.parser and lxml tree
builders, in a way that may slightly improve encoding
detection but will probably have no effect. [bug=1889014]
* Improve the warning issued when a directory name (as opposed to
the name of a regular file) is passed as markup into the BeautifulSoup
constructor. [bug=1913628]
```
### 4.9.3
```
* Implemented a significant performance optimization to the process of
searching the parse tree. Patch by Morotti. [bug=1898212]
```
### 4.9.2
```
* Fixed a bug that caused too many tags to be popped from the tag
stack during tree building, when encountering a closing tag that had
no matching opening tag. [bug=1880420]
* Fixed a bug that inconsistently moved elements over when passing
a Tag, rather than a list, into Tag.extend(). [bug=1885710]
* Specify the soupsieve dependency in a way that complies with
PEP 508. Patch by Mike Nerone. [bug=1893696]
* Change the signatures for BeautifulSoup.insert_before and insert_after
(which are not implemented) to match PageElement.insert_before and
insert_after, quieting warnings in some IDEs. [bug=1897120]
```
### 4.9.1
```
* Added a keyword argument 'on_duplicate_attribute' to the
BeautifulSoupHTMLParser constructor (used by the html.parser tree
builder) which lets you customize the handling of markup that
contains the same attribute more than once, as in:
<a href="url1" href="url2"> [bug=1878209]
* Added a distinct subclass, GuessedAtParserWarning, for the warning
issued when BeautifulSoup is instantiated without a parser being
specified. [bug=1873787]
* Added a distinct subclass, MarkupResemblesLocatorWarning, for the
warning issued when BeautifulSoup is instantiated with 'markup' that
actually seems to be a URL or the path to a file on
disk. [bug=1873787]
* The new NavigableString subclasses (Stylesheet, Script, and
TemplateString) can now be imported directly from the bs4 package.
* If you encode a document with a Python-specific encoding like
'unicode_escape', that encoding is no longer mentioned in the final
XML or HTML document. Instead, encoding information is omitted or
left blank. [bug=1874955]
* Fixed test failures when run against soupselect 2.0. Patch by Tomáš
Chvátal. [bug=1872279]
```
### 4.9.0
```
* Added PageElement.decomposed, a new property which lets you
check whether you've already called decompose() on a Tag or
NavigableString.
* Embedded CSS and Javascript is now stored in distinct Stylesheet and
Script tags, which are ignored by methods like get_text() since most
people don't consider this sort of content to be 'text'. This
feature is not supported by the html5lib treebuilder. [bug=1868861]
* Added a Russian translation by 'authoress' to the repository.
* Fixed an unhandled exception when formatting a Tag that had been
decomposed.[bug=1857767]
* Fixed a bug that happened when passing a Unicode filename containing
non-ASCII characters as markup into Beautiful Soup, on a system that
allows Unicode filenames. [bug=1866717]
* Added a performance optimization to PageElement.extract(). Patch by
Arthur Darcet.
```
### 4.8.2
```
* Added Python docstrings to all public methods of the most commonly
used classes.
* Added a Chinese translation by Deron Wang and a Brazilian Portuguese
translation by Cezar Peixeiro to the repository.
* Fixed two deprecation warnings. Patches by Colin
Watson and Nicholas Neumann. [bug=1847592] [bug=1855301]
* The html.parser tree builder now correctly handles DOCTYPEs that are
not uppercase. [bug=1848401]
* PageElement.select() now returns a ResultSet rather than a regular
list, making it consistent with methods like find_all().
```
Links
- PyPI: https://pypi.org/project/beautifulsoup4
- Changelog: https://data.safetycli.com/changelogs/beautifulsoup4/
Changelog
### 4.2.0
```
--------------------
- Update process.py to close during join only if process has completed.
- Adjust the __repr__ in ApplyResult.
- Remove python 3.7 from CI.
- Added Python 3.12 support.
- Fixed (co_positions): resolve issue caused by absence co_positions (395).
- Fixed: Replaced mktemp usage for Python 3 from python 2.
- Changed nose test to pytest (397) in Integration test.
- Changed nose dependency for unit test (383).
```
### 4.1.0
```
--------------------
- Fixed a python 2 to 3 compat issue which was missed earlier (374).
- Adde Python 3.11 primary support
```
### 4.0.2
```
--------------------
- ExceptionWithTraceback should be an exception.
```
### 4.0.1
```
--------------------
- Add support for Python 3.11 _posixsubprocess.fork_exec() arguments.
- Keep exception traceback somehow (368).
```
### 4.0.0
```
--------------------
- Support Sphinx 4.x.
- Remove dependency to case.
- Drop support of Python < 3.7.
- Update to psutil 5.9.0.
- Add python_requires to enforce Python version.
- Replace deprecated threading Event.isSet with Event.is_set.
- Prevent segmentation fault in get_pdeathsig while using ctypes (361).
- Migrated CI to Github actions.
- Python 3.10 support added.
```
### 3.6.4.0
```
--------------------
- Issue 309: Add Python 3.9 support to spawnv_passfds()
- fix 314
```
Links
- PyPI: https://pypi.org/project/billiard
- Changelog: https://data.safetycli.com/changelogs/billiard/
- Repo: https://github.com/celery/billiard
Changelog
### 1.7.0
```
-------------
Released 2023-11-01
- Fixed messages printed to standard error about unraisable exceptions during
signal cleanup, typically during interpreter shutdown. :pr:`123`
- Allow the Signal set_class to be customised, to allow calling of receivers
in registration order. :pr:`116`.
- Drop Python 3.7 and support Python 3.12. :pr:`126`
```
### 1.6.3
```
-------------
Released 2023-09-23
- Fix `SyncWrapperType` and `AsyncWrapperType` :pr:`108`
- Fixed issue where ``signal.connected_to`` would not disconnect the
receiver if an instance of ``BaseException`` was raised. :pr:`114`
```
### 1.6.2
```
-------------
Released 2023-04-12
- Type annotations are not evaluated at runtime. typing-extensions is not a runtime
dependency. :pr:`94`
```
### 1.6.1
```
-------------
Released 2023-04-09
- Ensure that py.typed is present in the distributions (to enable other
projects to use blinker's typing).
- Require typing-extensions > 4.2 to ensure it includes
ParamSpec. :issue:`90`
```
### 1.6
```
-----------
Released 2023-04-02
- Add a muted context manager to temporarily turn off a
signal. :pr:`84`
- Allow int senders (alongside existing string senders). :pr:`83`
- Add a send_async method to the Signal to allow signals to send to
coroutine receivers. :pr:`76`
- Update and modernise the project structure to match that used by the
pallets projects. :pr:`77`
- Add an intial set of type hints for the project.
```
### 1.5
```
-----------
Released 2022-07-17
- Support Python >= 3.7 and PyPy. Python 2, Python < 3.7, and Jython
may continue to work, but the next release will make incompatible
changes.
```
Links
- PyPI: https://pypi.org/project/blinker
- Changelog: https://data.safetycli.com/changelogs/blinker/
Changelog
### 5.3.5
```
=====
:release-date: 2023-11-10 7:15 P.M GMT+6
:release-by: Asif Saif Uddin
What's Changed
==============
- Update test.txt versions by auvipy in https://github.com/celery/celery/pull/8481
- fix os.getcwd() FileNotFoundError by mortimer2015 in https://github.com/celery/celery/pull/8448
- Fix typo in CONTRIBUTING.rst by monteiro-renato in https://github.com/celery/celery/pull/8494
- typo(doc): configuration.rst by shifenhutu in https://github.com/celery/celery/pull/8484
- assert before raise by monteiro-renato in https://github.com/celery/celery/pull/8495
- Update GHA checkout version by auvipy in https://github.com/celery/celery/pull/8496
- Fixed replaced_task_nesting by Nusnus in https://github.com/celery/celery/pull/8500
- Fix code indentation for route_task() example by stefmolin in https://github.com/celery/celery/pull/8502
- support redis 5.x by dulmandakh in https://github.com/celery/celery/pull/8504
- Fix typos in test_canvas.py by monteiro-renato in https://github.com/celery/celery/pull/8498
- Marked flaky tests by Nusnus in https://github.com/celery/celery/pull/8508
- Fix typos in calling.rst by visitorckw in https://github.com/celery/celery/pull/8506
- Added support for replaced_task_nesting in chains by Nusnus in https://github.com/celery/celery/pull/8501
- Fix typos in canvas.rst by visitorckw in https://github.com/celery/celery/pull/8509
- Patch Version Release Checklist by Nusnus in https://github.com/celery/celery/pull/8488
- Added Python 3.11 support to Dockerfile by Nusnus in https://github.com/celery/celery/pull/8511
- Dependabot (Celery) by Nusnus in https://github.com/celery/celery/pull/8510
- Bump actions/checkout from 3 to 4 by dependabot in https://github.com/celery/celery/pull/8512
- Update ETA example to include timezone by amantri in https://github.com/celery/celery/pull/8516
- Replaces datetime.fromisoformat with the more lenient dateutil parser by stumpylog in https://github.com/celery/celery/pull/8507
- Fixed indentation in Dockerfile for Python 3.11 by Nusnus in https://github.com/celery/celery/pull/8527
- Fix git bug in Dockerfile by Nusnus in https://github.com/celery/celery/pull/8528
- Tox lint upgrade from Python 3.9 to Python 3.11 by Nusnus in https://github.com/celery/celery/pull/8526
- Document gevent concurrency by cunla in https://github.com/celery/celery/pull/8520
- Update test.txt by auvipy in https://github.com/celery/celery/pull/8530
- Celery Docker Upgrades by Nusnus in https://github.com/celery/celery/pull/8531
- pyupgrade upgrade v3.11.0 -> v3.13.0 by Nusnus in https://github.com/celery/celery/pull/8535
- Update msgpack.txt by auvipy in https://github.com/celery/celery/pull/8548
- Update auth.txt by auvipy in https://github.com/celery/celery/pull/8547
- Update msgpack.txt to fix build issues by auvipy in https://github.com/celery/celery/pull/8552
- Basic ElasticSearch / ElasticClient 8.x Support by q2justin in https://github.com/celery/celery/pull/8519
- Fix eager tasks does not populate name field by KOliver94 in https://github.com/celery/celery/pull/8486
- Fix typo in celery.app.control by Spaceface16518 in https://github.com/celery/celery/pull/8563
- Update solar.txt ephem by auvipy in https://github.com/celery/celery/pull/8566
- Update test.txt pytest-timeout by auvipy in https://github.com/celery/celery/pull/8565
- Correct some mypy errors by rbtcollins in https://github.com/celery/celery/pull/8570
- Update elasticsearch.txt by auvipy in https://github.com/celery/celery/pull/8573
- Update test.txt deps by auvipy in https://github.com/celery/celery/pull/8574
- Update test.txt by auvipy in https://github.com/celery/celery/pull/8590
- Improved the "Next steps" documentation (8561). by frolenkov-nikita in https://github.com/celery/celery/pull/8600
- Disabled couchbase tests due to broken package breaking main by Nusnus in https://github.com/celery/celery/pull/8602
- Update elasticsearch deps by auvipy in https://github.com/celery/celery/pull/8605
- Update cryptography==41.0.5 by auvipy in https://github.com/celery/celery/pull/8604
- Update pytest==7.4.3 by auvipy in https://github.com/celery/celery/pull/8606
- test initial support of python 3.12.x by auvipy in https://github.com/celery/celery/pull/8549
- updated new versions to fix CI by auvipy in https://github.com/celery/celery/pull/8607
- Update zstd.txt by auvipy in https://github.com/celery/celery/pull/8609
- Fixed CI Support with Python 3.12 by Nusnus in https://github.com/celery/celery/pull/8611
- updated CI, docs and classifier for next release by auvipy in https://github.com/celery/celery/pull/8613
- updated dockerfile to add python 3.12 by auvipy in https://github.com/celery/celery/pull/8614
- lint,mypy,docker-unit-tests -> Python 3.12 by Nusnus in https://github.com/celery/celery/pull/8617
- Correct type of `request` in `task_revoked` documentation by RJPercival in https://github.com/celery/celery/pull/8616
- update docs docker image by auvipy in https://github.com/celery/celery/pull/8618
- Fixed RecursionError caused by giving `config_from_object` nested mod… by frolenkov-nikita in https://github.com/celery/celery/pull/8619
- Fix: serialization error when gossip working by kitsuyui in https://github.com/celery/celery/pull/6566
* [documentation] broker_connection_max_retries of 0 does not mean "retry forever" by jakila in https://github.com/celery/celery/pull/8626
- added 2 debian package for better stability in Docker by auvipy in https://github.com/celery/celery/pull/8629
New Contributors
================
- mortimer2015 made their first contribution in https://github.com/celery/celery/pull/8448
- monteiro-renato made their first contribution in https://github.com/celery/celery/pull/8494
- shifenhutu made their first contribution in https://github.com/celery/celery/pull/8484
- stefmolin made their first contribution in https://github.com/celery/celery/pull/8502
- visitorckw made their first contribution in https://github.com/celery/celery/pull/8506
- dependabot made their first contribution in https://github.com/celery/celery/pull/8512
- amantri made their first contribution in https://github.com/celery/celery/pull/8516
- cunla made their first contribution in https://github.com/celery/celery/pull/8520
- q2justin made their first contribution in https://github.com/celery/celery/pull/8519
- Spaceface16518 made their first contribution in https://github.com/celery/celery/pull/8563
- rbtcollins made their first contribution in https://github.com/celery/celery/pull/8570
- frolenkov-nikita made their first contribution in https://github.com/celery/celery/pull/8600
- RJPercival made their first contribution in https://github.com/celery/celery/pull/8616
- kitsuyui made their first contribution in https://github.com/celery/celery/pull/6566
- jakila made their first contribution in https://github.com/celery/celery/pull/8626
.. _version-5.3.4:
```
### 5.3.4
```
=====
:release-date: 2023-09-03 10:10 P.M GMT+2
:release-by: Tomer Nosrati
.. warning::
This version has reverted the breaking changes introduced in 5.3.2 and 5.3.3:
- Revert "store children with database backend" (8475)
- Revert "Fix eager tasks does not populate name field" (8476)
- Bugfix: Removed unecessary stamping code from _chord.run() (8339)
- User guide fix (hotfix for 1755) (8342)
- store children with database backend (8338)
- Stamping bugfix with group/chord header errback linking (8347)
- Use argsrepr and kwargsrepr in LOG_RECEIVED (8301)
- Fixing minor typo in code example in calling.rst (8366)
- add documents for timeout settings (8373)
- fix: copyright year (8380)
- setup.py: enable include_package_data (8379)
- Fix eager tasks does not populate name field (8383)
- Update test.txt dependencies (8389)
- Update auth.txt deps (8392)
- Fix backend.get_task_meta ignores the result_extended config parameter in mongodb backend (8391)
- Support preload options for shell and purge commands (8374)
- Implement safer ArangoDB queries (8351)
- integration test: cleanup worker after test case (8361)
- Added "Tomer Nosrati" to CONTRIBUTORS.txt (8400)
- Update README.rst (8404)
- Update README.rst (8408)
- fix(canvas): add group index when unrolling tasks (8427)
- fix(beat): debug statement should only log AsyncResult.id if it exists (8428)
- Lint fixes & pre-commit autoupdate (8414)
- Update auth.txt (8435)
- Update mypy on test.txt (8438)
- added missing kwargs arguments in some cli cmd (8049)
- Fix 8431: Set format_date to False when calling _get_result_meta on mongo backend (8432)
- Docs: rewrite out-of-date code (8441)
- Limit redis client to 4.x since 5.x fails the test suite (8442)
- Limit tox to < 4.9 (8443)
- Fixed issue: Flags broker_connection_retry_on_startup & broker_connection_retry aren’t reliable (8446)
- doc update from 7651 (8451)
- Remove tox version limit (8464)
- Fixed AttributeError: 'str' object has no attribute (8463)
- Upgraded Kombu from 5.3.1 -> 5.3.2 (8468)
- Document need for CELERY_ prefix on CLI env vars (8469)
- Use string value for CELERY_SKIP_CHECKS envvar (8462)
- Revert "store children with database backend" (8475)
- Revert "Fix eager tasks does not populate name field" (8476)
- Update Changelog (8474)
- Remove as it seems to be buggy. (8340)
- Revert "Add Semgrep to CI" (8477)
- Revert "Revert "Add Semgrep to CI"" (8478)
.. _version-5.3.3:
```
### 5.3.3
```
=====
:release-date: 6 Nov, 2023
:release-by: Asif Saif Uddin
- Raise access denied error when ack.
- test redis 5.0.0.
- fix azure servicebus using managed identity support (1801).
- Added as_uri method to MongoDB transport - Fixes 1795 (1796).
- Revert "[fix 1726] Use boto3 for SQS async requests (1759)" (1799).
- Create a lock on cached_property if not present (1811).
- Bump kafka deps versions & fix integration test failures (1818).
- Added Python 3.12 support.
- Fix: redis requeue concurrency bug 1800 (1805).
.. _version-5.3.2:
```
### 5.3.2
```
=====
:release-date: 31 Aug, 2023
:release-by: Tomer Nosrati
- Reverted unwanted constraint introduced in 1629 with max_retries (1755)
- Doc fix (hotfix for 1755) (1758)
- Python3.12: fix imports in kombu/utils/objects.py (1756)
- [fix 1726] Use boto3 for SQS async requests (1759)
- docs: Remove SimpleQueue import (1764)
- Fixed pre-commit issues (1773)
- azure service bus: add managed identity support (1641)
- fix: Prevent redis task loss when closing connection while in poll (1733)
- Kombu & celery with SQS 222 (1779)
- syntax correction (1780)
.. _version-5.3.1:
```
### 5.3.1
```
=====
:release-date: 15 Jun, 2023
:release-by: Asif Saif Uddin
- Update pycurl version.
- Declare python 3.11 support (1425).
- Fix: allow deserializing any version of UUID.
- Update PyCurl version in SQS (1747).
.. _version-5.3.0:
```
### 5.3.0
```
=====
:release-date: 03 Jun, 2023
:release-by: Asif Saif Uddin
- Support for Kafka as transport.
- Add fanout to filesystem (1499).
- Added possibility to serialize and deserialize binary messages in json (1516).
- Support pymongo 4.x (1536).
- Support redis-py 4.5.x.
- Upgrade Azure Storage Queues transport to version 12 (1539).
- Add support to SQS DelaySeconds (1567).
- Add WATCH to prefixed complex commands.
- Avoid losing type of UUID when serializing/deserializing (1575).
- Added HLEN to the list of prefixed redis commands (1540).
- Add managed identity support to azure storage queue (1631).
- Add Support of sqlalchemy v2.0.
- Deprecate pytz and use zoneinfo (1680)
.. _version-5.3.0rc2:
```
### 5.3.0rc2
```
========
:release-date: 31 May, 2023
:release-by: Asif Saif Uddin
- add missing zoneinfo dependency (1732).
- Support redis >= 4.5.2
- Loosen urlib3 version range for botocore compat
.. _version-5.3.0rc1:
```
### 5.3.0rc1
```
========
:release-date: 24 May, 2023
:release-by: Asif Saif Uddin
- Moved to pytest-freezer (1683).
- Deprecate pytz and use zoneinfo (1680).
- handle keyerror in azureservicebus transport when message is not
found in qos and perform basic_ack (1691).
- fix mongodb transport obsolete calls (1694).
- SQS: avoid excessive GetQueueURL calls by using cached queue url (1621).
- Update confluentkafka.txt version (1727).
- Revert back to pyro4 for now.
.. _version-5.3.0b3:
```
### 5.3.0b3
```
=======
:release-date: 20 Mar, 2023
:release-by: Asif Saif Uddin
- Use SPDX license expression in project metadata.
- Allowing Connection.ensure() to retry on specific exceptions given by policy (1629).
- Redis==4.3.4 temporarilly in an attempt to avoid BC (1634).
- Add managed identity support to azure storage queue (1631).
- Support sqla v2.0 (1651).
- Switch to Pyro5 (1655).
- Remove unused _setupfuns from serialization.py.
- Refactor: Refactor utils/json (1659).
- Adapt the mock to correctly mock the behaviors as implemented on Python 3.10. (Ref 1663).
.. _version-5.3.0b2:
```
### 5.3.0b2
```
=======
:release-date: 19 Oct, 2022
:release-by: Asif Saif Uddin
- fix: save QueueProperties to _queue_name_cache instead of QueueClient.
- hub: tick delay fix (1587).
- Fix incompatibility with redis in disconnect() (1589).
- Solve Kombu filesystem transport not thread safe.
- importlib_metadata remove deprecated entry point interfaces (1601).
- Allow azurestoragequeues transport to be used with Azurite emulator in docker-compose (1611).
.. _version-5.3.0b1:
```
### 5.3.0b1
```
=======
:release-date: 1 Aug, 2022
:release-by: Asif Saif Uddin
- Add ext.py files to setup.cfg.
- Add support to SQS DelaySeconds (1567).
- Add WATCH to prefixed complex commands.
- Avoid losing type of UUID when serializing/deserializing (1575).
- chore: add confluentkafka to extras.
.. _version-5.3.0a1:
```
### 5.3.0a1
```
=======
:release-date: 29 Jun, 2022
:release-by: Asif Saif Uddin
- Add fanout to filesystem (1499).
- Protect set of ready tasks by lock to avoid concurrent updates. (1489).
- Correct documentation stating kombu uses pickle protocol version 2.
- Use new entry_points interface.
- Add mypy to the pipeline (1512).
- Added possibility to serialize and deserialize binary messages in json (1516).
- Bump pyupgrade version and add __future__.annotations import.
- json.py cleaning from outdated libs (1533).
- bump new py-amqp to 5.1.1 (1534).
- add GitHub URL for PyPi.
- Upgrade pytest to ~=7.1.1.
- Support pymongo 4.x (1536).
- Initial Kafka support (1506).
- Upgrade Azure Storage Queues transport to version 12 (1539).
- move to consul2 (1544).
- Datetime serialization and deserialization fixed (1515).
- Bump redis>=4.2.2 (1546).
- Update sqs dependencies (1547).
- Added HLEN to the list of prefixed redis commands (1540).
- Added some type annotations.
.. _version-5.2.4:
```
### 5.2.7
```
=====
:release-date: 2022-5-26 12:15 P.M UTC+2:00
:release-by: Omer Katz
- Fix packaging issue which causes poetry 1.2b1 and above to fail install Celery (7534).
.. _version-5.2.6:
```
### 5.2.6
```
=====
:release-date: 2022-4-04 21:15 P.M UTC+2:00
:release-by: Omer Katz
- load_extension_class_names - correct module_name (7433).
This fixes a regression caused by 7218.
.. _version-5.2.5:
```
### 5.2.5
```
=====
:release-date: 2022-4-03 20:42 P.M UTC+2:00
:release-by: Omer Katz
**This release was yanked due to a regression caused by the PR below**
- Use importlib instead of deprecated pkg_resources (7218).
.. _version-5.2.4:
```
### 5.2.4
```
=====
:release-date: 06 Mar, 2022
:release-by: Asif Saif Uddin
- Allow getting recoverable_connection_errors without an active transport.
- Prevent KeyError: 'purelib' by removing INSTALLED_SCHEME hack from setup.py.
- Revert "try pining setuptools (1466)" (1481).
- Fix issue 789: Async http code not allowing for proxy config (790).
- Fix The incorrect times of retrying.
- Set redelivered property for Celery with Redis (1484).
- Remove use of OrderedDict in various places (1483).
- Warn about missing hostname only when default one is available (1488).
- All supported versions of Python define __package__.
- Added global_keyprefix support for pubsub clients (1495).
- try pytest 7 (1497).
- Add an option to not base64-encode SQS messages.
- Fix SQS extract_task_name message reference.
.. _version-5.2.3:
```
### 5.2.3
```
=====
:release-date: 29 Dec, 2021
:release-by: Asif Saif Uddin
- Allow redis >= 4.0.2.
- Fix PyPy CI jobs.
- SQS transport: detect FIFO queue properly by checking queue URL (1450).
- Ensure that restore is atomic in redis transport (1444).
- Restrict setuptools>=59.1.1,<59.7.0.
- Bump minimum py-amqp to v5.0.9 (1462).
- Reduce memory usage of Transport (1470).
- Prevent event loop polling on closed redis transports (and causing leak).
- Respect connection timeout (1458)
- prevent redis event loop stopping on 'consumer: Cannot connect' (1477).
.. _version-5.2.2:
```
### 5.2.2
```
=====
:release-date: 16 Nov, 2021
:release-by: Asif Saif Uddin
- Pin redis version to >= 3.4.1<4.0.0 as it is not fully compatible yet.
.. _version-5.2.1:
```
### 5.2.1
```
=====
:release-date: 8 Nov, 2021
:release-by: Asif Saif Uddin
- Bump redis version to >= 3.4.1.
- try latest sqs dependencies ti fix security warning.
- Tests & dependency updates
.. _version-5.2.0:
```
### 5.2.0
```
=====
:release-date: 5 Nov, 2021
:release-by: Naomi Elstein
- v 1.4.x (1338).
- stop mentioning librabbitmq (1381).
- Merge branch 'master' of https://github.com/celery/kombu
- test new pytest version (1383).
- drop python 3.6 from CI (1382).
- Use ANY from unittest instead of case.mock.
- Fix missing dependency to redis in docs requirements.
- [pre-commit.ci] pre-commit autoupdate.
- Remove dependency to case (1389).
- Fix: check redis response type.
- [pre-commit.ci] pre-commit autoupdate (1393).
- py3.7+ on setup (1392).
- Prevent caching of oid in pidbox (1394).
- Added unittests for 1394 .
- fix flake8 in kombu/asynchronous/aws/connection.py (1397).
- [pre-commit.ci] pre-commit autoupdate.
- Fix test_pidbox unittests to support non-linux platforms (1398).
- [pre-commit.ci] pre-commit autoupdate.
- removre bdist.
- add python 3.10 to CI & fix other issues (1402).
- try to fix CI (1407).
- Dont failfast when pypy3 tests fail (1408).
- Return empty list instead of InconsistencyError when exchange table is empty (1404).
- [pre-commit.ci] pre-commit autoupdate.
.. _version-5.2.0rc1:
```
### 5.2.0rc2
```
========
:release-date: 2021-11-02 1.54 P.M UTC+3:00
:release-by: Naomi Elstein
- Bump Python 3.10.0 to rc2.
- [pre-commit.ci] pre-commit autoupdate (6972).
- autopep8.
- Prevent worker to send expired revoked items upon hello command (6975).
- docs: clarify the 'keeping results' section (6979).
- Update deprecated task module removal in 5.0 documentation (6981).
- [pre-commit.ci] pre-commit autoupdate.
- try python 3.10 GA.
- mention python 3.10 on readme.
- Documenting the default consumer_timeout value for rabbitmq >= 3.8.15.
- Azure blockblob backend parametrized connection/read timeouts (6978).
- Add as_uri method to azure block blob backend.
- Add possibility to override backend implementation with celeryconfig (6879).
- [pre-commit.ci] pre-commit autoupdate.
- try to fix deprecation warning.
- [pre-commit.ci] pre-commit autoupdate.
- not needed anyore.
- not needed anyore.
- not used anymore.
- add github discussions forum
.. _version-5.2.0rc1:
```
### 5.2.0rc1
```
========
:release-date: 2021-09-07 7:00 P.M UTC+6:00
:release-by: Asif Saif Uddin
- Remove backward compatible code not used anymore (1344).
- Add support for setting redis username (1351).
- Add support for Python 3.9.
- Use hostname from URI when server_host is None.
- Use Python's built-in json module by default, instead of simplejson.
- SQS Channel.predefined_queues should be {} if not defined.
- Add global key prefix for keys set by Redis transporter (1349).
- fix: raise BrokenPipeError (1231).
- fix: add missing commands to prefix.
- Make BrokerState Transport specific.
- Tests & Docs cleanup.
.. _version-5.1.0:
```
### 5.2.0b3
```
=======
:release-date: 2021-09-02 8.38 P.M UTC+3:00
:release-by: Omer Katz
- Add args to LOG_RECEIVED (fixes 6885) (6898).
- Terminate job implementation for eventlet concurrency backend (6917).
- Add cleanup implementation to filesystem backend (6919).
- [pre-commit.ci] pre-commit autoupdate (69).
- Add before_start hook (fixes 4110) (6923).
- Restart consumer if connection drops (6930).
- Remove outdated optimization documentation (6933).
- added https verification check functionality in arangodb backend (6800).
- Drop Python 3.6 support.
- update supported python versions on readme.
- [pre-commit.ci] pre-commit autoupdate (6935).
- Remove appveyor configuration since we migrated to GA.
- pyugrade is now set to upgrade code to 3.7.
- Drop exclude statement since we no longer test with pypy-3.6.
- 3.10 is not GA so it's not supported yet.
- Celery 5.1 or earlier support Python 3.6.
- Fix linting error.
- fix: Pass a Context when chaining fail results (6899).
- Bump version: 5.2.0b2 → 5.2.0b3.
.. _version-5.2.0b2:
```
### 5.2.0b2
```
=======
:release-date: 2021-08-17 5.35 P.M UTC+3:00
:release-by: Omer Katz
- Test windows on py3.10rc1 and pypy3.7 (6868).
- Route chord_unlock task to the same queue as chord body (6896).
- Add message properties to app.tasks.Context (6818).
- handle already converted LogLevel and JSON (6915).
- 5.2 is codenamed dawn-chorus.
- Bump version: 5.2.0b1 → 5.2.0b2.
.. _version-5.2.0b1:
```
### 5.2.0b1
```
=======
:release-date: 2021-08-11 5.42 P.M UTC+3:00
:release-by: Omer Katz
- Add Python 3.10 support (6807).
- Fix docstring for Signal.send to match code (6835).
- No blank line in log output (6838).
- Chords get body_type independently to handle cases where body.type does not exist (6847).
- Fix 6844 by allowing safe queries via app.inspect().active() (6849).
- Fix multithreaded backend usage (6851).
- Fix Open Collective donate button (6848).
- Fix setting worker concurrency option after signal (6853).
- Make ResultSet.on_ready promise hold a weakref to self (6784).
- Update configuration.rst.
- Discard jobs on flush if synack isn't enabled (6863).
- Bump click version to 8.0 (6861).
- Amend IRC network link to Libera (6837).
- Import celery lazily in pytest plugin and unignore flake8 F821, "undefined name '...'" (6872).
- Fix inspect --json output to return valid json without --quiet.
- Remove celery.task references in modules, docs (6869).
- The Consul backend must correctly associate requests and responses (6823).
Changes
=======
py-amqp is fork of amqplib used by Kombu containing additional features and improvements.
The previous amqplib changelog is here:
http://code.google.com/p/py-amqplib/source/browse/CHANGES
.. _version-5.2.0:
```
### 5.1.1
```
=====
:release-date: 2022-04-17 12:45 P.M. UTC+6:00
:release-by: Asif Saif Uddin
- Use AF_UNSPEC for name resolution (389).
.. _version-5.1.0:
```
### 5.1.0
```
=====
:release-date: 2021-05-23 7:00 P.M UTC+3:00
:release-by: Omer Katz
- Fix queue names special characters replacement for Azure Service Bus. (1324)
- Add support for SQLAlchemy 1.4. (1328)
- Coerce seconds argument to a floating point number in ``Timer.enter_after``. (1330)
- Add accept parameter to SimpleQueue class. (1140)
- ``prepare_accept_content()`` now raises ``SerializerNotInstalled`` instead of ``KeyError``. (1343)
.. _version-5.1.0b1:
```
### 5.1.0b1
```
=======
:release-date: 2021-04-01 10:30 P.M UTC+6:00
:release-by: Asiff Saif Uddin
- Wheels are no longer universal.
- Revert "Added redis transport key_prefix from envvars".
- Redis Transport: Small improvements of `SentinelChannel` (1253).
- Fix pidbox not using default channels.
- Revert "on worker restart - restore visible regardless to time (905)".
- Add vine to dependencies.
- Pin urllib3<1.26 to fix failing unittests.
- Add timeout to producer publish (1269).
- Remove python2 compatibility code (1277).
- redis: Support Sentinel with SSL.
- Support for Azure Service Bus 7.0.0 (1284).
- Allow specifying session token (1283).
- kombu/asynchronous/http/curl: implement _set_timeout.
- Disable namedtuple to object feature in simplejson (1297).
- Update to tox docker 2.0.
- SQS back-off policy (1301).
- Fixed SQS unittests.
- Fix: non kombu json message decoding in SQS transport (1306).
- Add Github Actions CI (1309).
- Update default pickle protocol version to 4 (1314).
- Update connection.py (1311).
- Drop support for the lzma backport.
- Drop obsolete code importing pickle (1315).
- Update default login method for librabbitmq and pyamqp (936).
- SQS Broker - handle STS authentication with AWS (1322).
- Min py-amqp version is v5.0.6 (1325).
- Numerous docs & example fixes.
- Use a thread-safe implementation of cached_property (1316).
.. _version-5.0.2:
```
### 5.0.9
```
=====
:release-date: 2021-12-20 11:00 A.M. UTC+6:00
:release-by: Asif Saif Uddin
- Append to _used_channel_ids in _used_channel_ids
.. _version-5.0.8:
```
### 5.0.8
```
=====
:release-date: 2021-12-19 11:15 A.M. UTC+6:00
:release-by: Asif Saif Uddin
- Reduce memory usage of Connection (377)
- Add additional error handling around code where an OSError
may be raised on failed connections. Fixes (378)
.. _version-5.0.7:
```
### 5.0.7
```
=====
:release-date: 2021-12-13 15:45 P.M. UTC+6:00
:release-by: Asif Saif Uddin
- Remove dependency to case
- Bugfix: not closing socket after server disconnect
.. _version-5.0.6:
```
### 5.0.6
```
=====
:release-date: 2021-04-01 10:45 A.M. UTC+6:00
:release-by: Asif Saif Uddin
- Change the order in which context.check_hostname and context.verify_mode get set
in SSLTransport._wrap_socket_sni. Fixes bug introduced in 5.0.3 where setting
context.verify_mode = ssl.CERT_NONE would raise
"ValueError: Cannot set verify_mode to CERT_NONE when check_hostname is enabled."
Setting context.check_hostname prior to setting context.verify_mode resolves the
issue.
- Remove TCP_USER_TIMEOUT option for Solaris (355)
- Pass long_description to setup() (353)
- Fix for tox-docker 2.0
- Moved to GitHub actions CI (359)
.. _version-5.0.5:
```
### 5.0.5
```
=====
:release-date: 2021-01-28 4:30 P.M UTC+6:00
:release-by: Asif Saif Uddin
- Removed mistakenly introduced code which was causing import errors
.. _version-5.0.4:
```
### 5.0.4
```
=====
:release-date: 2021-01-28 2:30 P.M UTC+6:00
:release-by: Asif Saif Uddin
- Add missing load_default_certs() call to fix a regression in v5.0.3 release. (350)
.. _version-5.0.3:
```
### 5.0.3
```
=====
:release-date: 2021-01-19 9:00 P.M UTC+6:00
:release-by: Asif Saif Uddin
- Change the default value of ssl_version to None. When not set, the
proper value between ssl.PROTOCOL_TLS_CLIENT and ssl.PROTOCOL_TLS_SERVER
will be selected based on the param server_side in order to create
a TLS Context object with better defaults that fit the desired
connection side.
- Change the default value of cert_reqs to None. The default value
of ctx.verify_mode is ssl.CERT_NONE, but when ssl.PROTOCOL_TLS_CLIENT
is used, ctx.verify_mode defaults to ssl.CERT_REQUIRED.
- Fix context.check_hostname logic. Checking the hostname depends on
having support of the SNI TLS extension and being provided with a
server_hostname value. Another important thing to mention is that
enabling hostname checking automatically sets verify_mode from
ssl.CERT_NONE to ssl.CERT_REQUIRED in the stdlib ssl and it cannot
be set back to ssl.CERT_NONE as long as hostname checking is enabled.
- Refactor the SNI tests to test one thing at a time and removing some
tests that were being repeated over and over.
.. _version-5.0.2:
```
### 5.0.2
```
=====
:release-date: 2020-09-06 6:30 P.M UTC+3:00
:release-by: Omer Katz
- Bump required amqp version to 5.0.0.
.. _version-5.0.1:
```
### 5.0.1
```
=====
:release-date: 2020-08-23 19:10 P.M UTC+3:00
:release-by: Omer Katz
- Removed kombu.five from the reference documentation since it no longer exists
- Adjusted the stable documentation's version in Sphinx's configuration since that was overlooked in the latest release
.. _version-5.0.0:
```
### 5.0.0
```
=====
:release-date: 2020-08-05 16:00 P.M UTC+3:00
:release-by: Omer Katz
- **BREAKING CHANGE**: Dropped support for Python 2 (1232)
- Add an SQS transport option for custom botocore config (1219)
.. _version-4.6.11:
```
### 5.0.0b1
```
=======
:release-date: 2020-09-01 6:20 P.M UTC+3:00
:release-by: Omer Katz
- Dropped Python 3.5 support.
Contributed by **Omer Katz**
- Removed additional compatibility code.
Contributed by **Omer Katz**
.. _version-5.0.0a1:
```
### 5.0.0a1
```
=======
:release-date: 2019-04-01 4:30 P.M UTC+3:00
:release-by: Omer Katz
- Dropped Python 2.x support.
Contributed by **Omer Katz**
- Dropped Python 3.4 support.
Contributed by **Omer Katz**
- Removed the :mod:`vine.five` module.
Contributed by **Omer Katz**
- Removed the :mod:`vine.backports.weakref_backports` module.
Contributed by **Omer Katz**
.. _version-1.3.0:
```
### 4.6.11
```
=======
:release-date: 2020-06-24 1.15 P.M UTC+6:00
:release-by: Asif Saif Uddin
- Revert incompatible changes in 1193 and additional improvements (1211)
- Default_channel should reconnect automatically (1209)
.. _version-4.6.10:
```
### 4.6.10
```
======
:release-date: 2020-06-03 10.45 A.M UTC+6:00
:release-by: Asif Saif Uddin
- Doc improvement.
- set _connection in _ensure_connection (1205)
- Fix for the issue 1172
- reuse connection [bug fix]
.. _version-4.6.9:
```
### 4.6.9
```
=====
:release-date: 2020-06-01 14.00 P.M UTC+6:00
:release-by: Asif Saif Uddin
- Prevent failure if AWS creds are not explicitly defined on predefined.
- Raise RecoverableConnectionError in maybe_declare with retry on and.
- Fix for the issue 1172 .
- possible fix for 1174 .
- Fix: make SQLAlchemy Channel init thread-safe
- Added integration testing infrastructure for RabbitMQ
- Initial redis integration tests implementation
- SQLAlchemy transport: Use Query.with_for_update() instead of deprecated
- Fix Consumer Encoding
- Added Integration tests for direct, topic and fanout exchange types
- Added TTL integration tests
- Added integration tests for priority queues
- fix 100% cpu usage on linux while using sqs
- Modified Mutex to use redis LuaLock implementation
- Fix: eliminate remaining race conditions from SQLAlchemy Channel
- Fix connection imaybe_declare (1196)
- Fix for issue 1198: Celery crashes in cases where there aren’t enough
- Ensure connection when connecting to broker
- update pyamqp to 2.6 with optional cythonization
.. _version-4.6.8:
```
### 4.6.8
```
=====
:release-date: 2020-03-29 20:45 A.M UTC+6:00
:release-by: Asif Saif Uddin
- Added support for health_check_interval option in broker_transport_options (1145)
- Added retry_on_timeout parameter to Redis Channel (1150)
- Added support for standard values for ssl_cert_reqs query parameter for Redis (1139)
- Added predefined_queues option to SQS transport (1156)
- Added ssl certificate verification against ca certificat
Update amqp from 2.5.2 to 5.2.0.
Changelog
### 5.2.0 ``` ===== :release-date: 2023-11-06 10:55 A.M. UTC+6:00 :release-by: Asif Saif Uddin - Added python 3.12 and drop python 3.7 (423). - Test vine 5.1.0 (424). - Set an explicit timeout on SSL handshake to prevent hangs. - Add MessageNacked to recoverable errors. - Send heartbeat frames more often. .. _version-5.1.1: ``` ### 5.1.1 ``` ===== :release-date: 2022-04-17 12:45 P.M. UTC+6:00 :release-by: Asif Saif Uddin - Use AF_UNSPEC for name resolution (389). .. _version-5.1.0: ``` ### 5.1.0 ``` ===== :release-date: 2022-03-06 10:05 A.M. UTC+6:00 :release-by: Asif Saif Uddin - Improve performance of _get_free_channel_id, fix channel max bug (385). - Document memoryview usage, minor frame_writer.write_frame refactor (384). - Start dropping python 3.6 (387). - Added experimental __slots__ to some classes (368) - Relaxed vine version for upcoming release. - Upgraded topytest 7 (388). .. _version-5.0.9: ``` ### 5.0.9 ``` ===== :release-date: 2021-12-20 11:00 A.M. UTC+6:00 :release-by: Asif Saif Uddin - Append to _used_channel_ids in _used_channel_ids .. _version-5.0.8: ``` ### 5.0.8 ``` ===== :release-date: 2021-12-19 11:15 A.M. UTC+6:00 :release-by: Asif Saif Uddin - Reduce memory usage of Connection (377) - Add additional error handling around code where an OSError may be raised on failed connections. Fixes (378) .. _version-5.0.7: ``` ### 5.0.7 ``` ===== :release-date: 2021-12-13 15:45 P.M. UTC+6:00 :release-by: Asif Saif Uddin - Remove dependency to case - Bugfix: not closing socket after server disconnect .. _version-5.0.6: ``` ### 5.0.6 ``` ===== :release-date: 2021-04-01 10:45 A.M. UTC+6:00 :release-by: Asif Saif Uddin - Change the order in which context.check_hostname and context.verify_mode get set in SSLTransport._wrap_socket_sni. Fixes bug introduced in 5.0.3 where setting context.verify_mode = ssl.CERT_NONE would raise "ValueError: Cannot set verify_mode to CERT_NONE when check_hostname is enabled." Setting context.check_hostname prior to setting context.verify_mode resolves the issue. - Remove TCP_USER_TIMEOUT option for Solaris (355) - Pass long_description to setup() (353) - Fix for tox-docker 2.0 - Moved to GitHub actions CI (359) .. _version-5.0.5: ``` ### 5.0.5 ``` ===== :release-date: 2021-01-28 4:30 P.M UTC+6:00 :release-by: Asif Saif Uddin - Removed mistakenly introduced code which was causing import errors .. _version-5.0.4: ``` ### 5.0.4 ``` ===== :release-date: 2021-01-28 2:30 P.M UTC+6:00 :release-by: Asif Saif Uddin - Add missing load_default_certs() call to fix a regression in v5.0.3 release. (350) .. _version-5.0.3: ``` ### 5.0.3 ``` ===== :release-date: 2021-01-19 9:00 P.M UTC+6:00 :release-by: Asif Saif Uddin - Change the default value of ssl_version to None. When not set, the proper value between ssl.PROTOCOL_TLS_CLIENT and ssl.PROTOCOL_TLS_SERVER will be selected based on the param server_side in order to create a TLS Context object with better defaults that fit the desired connection side. - Change the default value of cert_reqs to None. The default value of ctx.verify_mode is ssl.CERT_NONE, but when ssl.PROTOCOL_TLS_CLIENT is used, ctx.verify_mode defaults to ssl.CERT_REQUIRED. - Fix context.check_hostname logic. Checking the hostname depends on having support of the SNI TLS extension and being provided with a server_hostname value. Another important thing to mention is that enabling hostname checking automatically sets verify_mode from ssl.CERT_NONE to ssl.CERT_REQUIRED in the stdlib ssl and it cannot be set back to ssl.CERT_NONE as long as hostname checking is enabled. - Refactor the SNI tests to test one thing at a time and removing some tests that were being repeated over and over. .. _version-5.0.2: ``` ### 5.0.2 ``` ===== :release-date: 2020-11-08 6:50 P.M UTC+3:00 :release-by: Omer Katz - Whhels are no longer universal. Contributed by **Omer Katz** - Added debug representation to Connection and *Transport classes Contributed by **Matus Valo** - Reintroduce ca_certs and ciphers parameters of SSLTransport._wrap_socket_sni() This fixes issue introduced in commit: 53d6777 Contributed by **Matus Valo** - Fix infinite wait when using confirm_publish Contributed by **Omer Katz** & **RezaSi** .. _version-5.0.1: ``` ### 5.0.1 ``` ===== :release-date: 2020-09-06 6:10 P.M UTC+3:00 :release-by: Omer Katz - Require vine 5.0.0. Contributed by **Omer Katz** .. _version-5.0.0: ``` ### 5.0.0 ``` ===== :release-date: 2020-09-03 3:20 P.M UTC+3:00 :release-by: Omer Katz - Stop to use deprecated method ssl.wrap_socket. Contributed by **Hervé Beraud** .. _version-5.0.0b1: ``` ### 5.0.0b1 ``` ======= :release-date: 2020-09-01 6:20 P.M UTC+3:00 :release-by: Omer Katz - Dropped Python 3.5 support. Contributed by **Omer Katz** - Removed additional compatibility code. Contributed by **Omer Katz** .. _version-5.0.0a1: ``` ### 5.0.0a1 ``` ======= :release-date: 2019-04-01 4:30 P.M UTC+3:00 :release-by: Omer Katz - Dropped Python 2.x support. Contributed by **Omer Katz** - Dropped Python 3.4 support. Contributed by **Omer Katz** - Depend on :pypi:`vine` 5.0.0a1. Contributed by **Omer Katz** Code Cleanups & Improvements: - **Omer Katz** .. _version-2.6.0: ``` ### 2.6.1 ``` ===== :release-date: 2020-07-31 10.30 P.M UTC+6:00 :release-by: Asif Saif Uddin - Fix buffer overflow in frame_writer after frame_max is increased. `frame_writer` allocates a `bytearray` on initialization with a length based on the `connection.frame_max` value. If `connection.frame_max` is changed to a larger value, this causes an error like `pack_into requires a buffer of at least 408736 bytes`. .. _version-2.6.0: ``` ### 2.6.0 ``` ===== :release-date: 20-06-01 12.00 P.M UTC+6:00 :release-by: Asif Saif Uddin - Implement speedups in cython (311) - Updated some tests & code improvements - Separate logger for Connection.heartbeat_tick method - Cython generic content (315) - Improve documentation a_global parameter of basic_qos() method. - Fix saving partial read buffer on windows during socket timeout. (321) - Fix deserialization of long string field values that are not utf-8. - Added simple cythonization of abstract_channel.py - Speedups of serialization.py are more restrictive .. _version-2.5.2: ```Links
- PyPI: https://pypi.org/project/amqp - Changelog: https://data.safetycli.com/changelogs/amqp/ - Repo: http://github.com/celery/py-amqpUpdate argh from 0.26.2 to 0.30.4.
Changelog
### 0.30.4 ``` --------------------------- There were complaints about the lack of a deprecation cycle for the legacy name mapping policy. This version addresses the issue: - The handling introduced in v.0.30.2 (raising an exception for clarity) is retained for cases when no name mapping policy is specified but function signature contains defaults in non-kwonly args **and kwonly args are also defined**:: def main(alpha, beta=1, *, gamma=2): error — explicit policy required In a similar case but when **kwonly args are not defined** Argh now assumes the legacy name mapping policy (`BY_NAME_IF_HAS_DEFAULT`) and merely issues a deprecation warning with the same message as the exception mentioned above:: def main(alpha, beta=2): `[-b BETA] alpha` + DeprecationWarning This ensures that most of the old scripts still work the same way despite the new policy being used by default and enforced in cases when it's impossible to resolve the mapping conflict. Please note that this "soft" handling is to be removed in version v0.33 (or v1.0 if the former is not deemed necessary). The new name mapping policy will be used by default without warnings, like in v0.30. ``` ### 0.30.3 ``` --------------------------- Bugs fixed: - Regression: a positional argument with an underscore used in `arg` decorator would cause Argh fail on the assembling stage. (208) ``` ### 0.30.2 ``` --------------------------- Bugs fixed: - As reported in 204 and 206, the new default name mapping policy in fact silently changed the CLI API of some scripts: arguments which were previously translated as CLI options became optional positionals. Although the instructions were supplied in the release notes, the upgrade may not necessarily be intentional, so a waste of users' time is quite likely. To alleviate this, the default value for `name_mapping_policy` in standard functions has been changed to `None`; if it's not specified, Argh falls back to the new default policy, but raises `ArgumentNameMappingError` with detailed instructions if it sees a non-kwonly argument with a default value. Please specify the policy explicitly in order to avoid this error if you need to infer optional positionals (``nargs="?"``) from function signature. ``` ### 0.30.1 ``` --------------------------- Bugs fixed: - Regression: certain special values in argument default value would cause an exception (204) Enhancements: - Improved the tutorial. - Added a more informative error message when the reason is likely to be related to the migration from Argh v0.29 to a version with a new argument name mapping policy. Other changes: - Added `py.typed` marker file for :pep:`561`. ``` ### 0.30.0 ``` --------------------------- Backwards incompatible changes: - A new policy for mapping function arguments to CLI arguments is used by default (see :class:`argh.assembling.NameMappingPolicy`). The following function does **not** map to ``func foo [--bar]`` anymore:: def func(foo, bar=None): ... Since this release it maps to ``func foo [bar]`` instead. Please update the function this way to keep `bar` an "option":: def func(foo, *, bar=None): ... If you cannot modify the function signature to use kwonly args for options, please consider explicitly specifying the legacy name mapping policy:: set_default_command( func, name_mapping_policy=NameMappingPolicy.BY_NAME_IF_HAS_DEFAULT ) - The name mapping policy `BY_NAME_IF_HAS_DEFAULT` slightly deviates from the old behaviour. Kwonly arguments without default values used to be marked as required options (``--foo FOO``), now they are treated as positionals (``foo``). Please consider the new default policy (`BY_NAME_IF_KWONLY`) for a better treatment of kwonly. - Removed previously deprecated features (184 → 188): - argument help string in annotations — reserved for type hints; - `argh.SUPPORTS_ALIASES`; - `argh.safe_input()`; - previously renamed arguments for `add_commands()`: `namespace`, `namespace_kwargs`, `title`, `description`, `help`; - `pre_call` argument in `dispatch()`. The basic usage remains simple but more granular functions are now available for more control. Instead of this:: argh.dispatch(..., pre_call=pre_call_hook) please use this:: func, ns = argh.parse_and_resolve(...) pre_call_hook(ns) argh.run_endpoint_function(func, ns, ...) Deprecated: - The `expects_obj` decorator. Rationale: it used to support the old, "un-pythonic" style of usage, which essentially lies outside the scope of Argh. If you are not using the mapping of function arguments onto CLI, then you aren't reducing the amount of code compared to vanilla Argparse. - The `add_help_command` argument in `dispatch()`. Rationale: it doesn't add much to user experience; it's not much harder to type ``--help`` than it is to type ``help``; moreover, the option can be added anywhere, unlike its positional counterpart. Enhancements: - Added support for Python 3.12. - Added type annotations to existing Argh code (185 → 189). - The `dispatch()` function has been refactored, so in case you need finer control over the process, two new, more granular functions can be used: - `endpoint_function, namespace = argh.parse_and_resolve(...)` - `argh.run_endpoint_function(endpoint_function, namespace, ...)` Please note that the names may change in the upcoming versions. - Configurable name mapping policy has been introduced for function argument to CLI argument translation (191 → 199): - `BY_NAME_IF_KWONLY` (default and recommended). - `BY_NAME_IF_HAS_DEFAULT` (close to pre-v.0.30 behaviour); Please check API docs on :class:`argh.assembling.NameMappingPolicy` for details. ``` ### 0.29.4 ``` --------------------------- Bugs fixed: - Test coverage reported as <100% when argcomplete is installed (187) ``` ### 0.29.3 ``` ------------------------------ Technical releases for packaging purposes. No changes in functionality. ``` ### 0.29.0 ``` --------------------------- Backwards incompatible changes: - Wrapped exceptions now cause ``dispatching.dispatch()`` to raise ``SystemExit(1)`` instead of returning without error. For most users, this means failed commands will now exit with a failure status instead of a success. (161) Deprecated: - Renamed arguments in `add_commands()` (165): - `namespace` → `group_name` - `namespace_kwargs` → `group_kwargs` The old names are deprecated and will be removed in v.0.30. Enhancements: - Can control exit status (see Backwards Incompatible Changes above) when raising ``CommandError`` using the ``code`` keyword arg. Bugs fixed: - Positional arguments should not lead to removal of short form of keyword arguments. (115) Other changes: - Avoid depending on iocapture by using pytest's built-in feature (177) ``` ### 0.28.1 ``` --------------------------- - Fixed bugs in tests (171, 172) ``` ### 0.28.0 ``` --------------------------- A major cleanup. Backward incompatible changes: - Dropped support for Python 2.7 and 3.7. Deprecated features, to be removed in v.0.30: - `argh.assembling.SUPPORTS_ALIASES`. - Always `True` for recent versions of Python. - `argh.io.safe_input()` AKA `argh.interaction.safe_input()`. - Not relevant anymore. Please use the built-in `input()` instead. - argument `pre_call` in `dispatch()`. Even though this hack seems to have been used in some projects, it was never part of the official API and never recommended. Describing your use case in the `discussion about shared arguments`_ can help improve the library to accomodate it in a proper way. .. _discussion about shared arguments: https://github.com/neithere/argh/issues/63 - Argument help as annotations. - Annotations will only be used for types after v.0.30. - Please replace any instance of:: def func(foo: "Foobar"): with the following:: arg('-f', '--foo', help="Foobar") def func(foo): It will be decided later how to keep this functionality "DRY" (don't repeat yourself) without conflicts with modern conventions and tools. - Added deprecation warnings for some arguments deprecated back in v.0.26. ``` ### 0.27.2 ``` --------------------------- Minor packaging fix: * chore: include file required by tox.ini in the sdist (155) ``` ### 0.27.1 ``` --------------------------- Minor building and packaging fixes: * docs: add Read the Docs config (160) * chore: include tox.ini in the sdist (155) ``` ### 0.27.0 ``` --------------------------- This is the last version to support Python 2.7. Backward incompatible changes: - Dropped support for Python 2.6. Enhancements: - Added support for Python 3.7 through 3.11. - Support introspection of function signature behind the `wraps` decorator (issue 111). Fixed bugs: - When command function signature contained ``**kwargs`` *and* positionals without defaults and with underscores in their names, a weird behaviour could be observed (issue 104). - Fixed introspection through decorators (issue 111). - Switched to Python's built-in `unittest.mock` (PR 154). - Fixed bug with `skip_unknown_args=True` (PR 134). - Fixed tests for Python 3.9.7+ (issue 148). Other changes: - Included the license files in manifest (PR 112). - Extended the list of similar projects (PR 87). - Fixed typos and links in documentation (PR 110, 116, 156). - Switched CI to Github Actions (PR 153). ```Links
- PyPI: https://pypi.org/project/argh - Changelog: https://data.safetycli.com/changelogs/argh/ - Docs: https://pythonhosted.org/argh/Update atomicwrites from 1.3.0 to 1.4.1.
The bot wasn't able to find a changelog for this release. Got an idea?
Links
- PyPI: https://pypi.org/project/atomicwrites - Repo: https://github.com/untitaker/python-atomicwritesUpdate attrs from 19.3.0 to 23.1.0.
The bot wasn't able to find a changelog for this release. Got an idea?
Links
- PyPI: https://pypi.org/project/attrsUpdate beautifulsoup4 from 4.8.1 to 4.12.2.
Changelog
### 4.11.1 ``` This release was done to ensure that the unit tests are packaged along with the released source. There are no functionality changes in this release, but there are a few other packaging changes: * The Japanese and Korean translations of the documentation are included. * The changelog is now packaged as CHANGELOG, and the license file is packaged as LICENSE. NEWS.txt and COPYING.txt are still present, but may be removed in the future. * TODO.txt is no longer packaged, since a TODO is not relevant for released code. ``` ### 4.11.0 ``` * Ported unit tests to use pytest. * Added special string classes, RubyParenthesisString and RubyTextString, to make it possible to treat ruby text specially in get_text() calls. [bug=1941980] * It's now possible to customize the way output is indented by providing a value for the 'indent' argument to the Formatter constructor. The 'indent' argument works very similarly to the argument of the same name in the Python standard library's json.dump() function. [bug=1955497] * If the charset-normalizer Python module (https://pypi.org/project/charset-normalizer/) is installed, Beautiful Soup will use it to detect the character sets of incoming documents. This is also the module used by newer versions of the Requests library. For the sake of backwards compatibility, chardet and cchardet both take precedence if installed. [bug=1955346] * Added a workaround for an lxml bug (https://bugs.launchpad.net/lxml/+bug/1948551) that causes problems when parsing a Unicode string beginning with BYTE ORDER MARK. [bug=1947768] * Issue a warning when an HTML parser is used to parse a document that looks like XML but not XHTML. [bug=1939121] * Do a better job of keeping track of namespaces as an XML document is parsed, so that CSS selectors that use namespaces will do the right thing more often. [bug=1946243] * Some time ago, the misleadingly named "text" argument to find-type methods was renamed to the more accurate "string." But this supposed "renaming" didn't make it into important places like the method signatures or the docstrings. That's corrected in this version. "text" still works, but will give a DeprecationWarning. [bug=1947038] * Fixed a crash when pickling a BeautifulSoup object that has no tree builder. [bug=1934003] * Fixed a crash when overriding multi_valued_attributes and using the html5lib parser. [bug=1948488] * Standardized the wording of the MarkupResemblesLocatorWarning warnings to omit untrusted input and make the warnings less judgmental about what you ought to be doing. [bug=1955450] * Removed support for the iconv_codec library, which doesn't seem to exist anymore and was never put up on PyPI. (The closest replacement on PyPI, iconv_codecs, is GPL-licensed, so we can't use it--it's also quite old.) ``` ### 4.10.0 ``` * This is the first release of Beautiful Soup to only support Python 3. I dropped Python 2 support to maintain support for newer versions (58 and up) of setuptools. See: https://github.com/pypa/setuptools/issues/2769 [bug=1942919] * The behavior of methods like .get_text() and .strings now differs depending on the type of tag. The change is visible with HTML tags like <script>, <style>, and <template>. Starting in 4.9.0, methods like get_text() returned no results on such tags, because the contents of those tags are not considered 'text' within the document as a whole. But a user who calls script.get_text() is working from a different definition of 'text' than a user who calls div.get_text()--otherwise there would be no need to call script.get_text() at all. In 4.10.0, the contents of (e.g.) a <script> tag are considered 'text' during a get_text() call on the tag itself, but not considered 'text' during a get_text() call on the tag's parent. Because of this change, calling get_text() on each child of a tag may now return a different result than calling get_text() on the tag itself. That's because different tags now have different understandings of what counts as 'text'. [bug=1906226] [bug=1868861] * NavigableString and its subclasses now implement the get_text() method, as well as the properties .strings and .stripped_strings. These methods will either return the string itself, or nothing, so the only reason to use this is when iterating over a list of mixed Tag and NavigableString objects. [bug=1904309] * The 'html5' formatter now treats attributes whose values are the empty string as HTML boolean attributes. Previously (and in other formatters), an attribute value must be set as None to be treated as a boolean attribute. In a future release, I plan to also give this behavior to the 'html' formatter. Patch by Isaac Muse. [bug=1915424] * The 'replace_with()' method now takes a variable number of arguments, and can be used to replace a single element with a sequence of elements. Patch by Bill Chandos. [rev=605] * Corrected output when the namespace prefix associated with a namespaced attribute is the empty string, as opposed to None. [bug=1915583] * Performance improvement when processing tags that speeds up overall tree construction by 2%. Patch by Morotti. [bug=1899358] * Corrected the use of special string container classes in cases when a single tag may contain strings with different containers; such as the <template> tag, which may contain both TemplateString objects and Comment objects. [bug=1913406] * The html.parser tree builder can now handle named entities found in the HTML5 spec in much the same way that the html5lib tree builder does. Note that the lxml HTML tree builder doesn't handle named entities this way. [bug=1924908] * Added a second way to pass specify encodings to UnicodeDammit and EncodingDetector, based on the order of precedence defined in the HTML5 spec, starting at: https://html.spec.whatwg.org/multipage/parsing.html#parsing-with-a-known-character-encoding Encodings in 'known_definite_encodings' are tried first, then byte-order-mark sniffing is run, then encodings in 'user_encodings' are tried. The old argument, 'override_encodings', is now a deprecated alias for 'known_definite_encodings'. This changes the default behavior of the html.parser and lxml tree builders, in a way that may slightly improve encoding detection but will probably have no effect. [bug=1889014] * Improve the warning issued when a directory name (as opposed to the name of a regular file) is passed as markup into the BeautifulSoup constructor. [bug=1913628] ``` ### 4.9.3 ``` * Implemented a significant performance optimization to the process of searching the parse tree. Patch by Morotti. [bug=1898212] ``` ### 4.9.2 ``` * Fixed a bug that caused too many tags to be popped from the tag stack during tree building, when encountering a closing tag that had no matching opening tag. [bug=1880420] * Fixed a bug that inconsistently moved elements over when passing a Tag, rather than a list, into Tag.extend(). [bug=1885710] * Specify the soupsieve dependency in a way that complies with PEP 508. Patch by Mike Nerone. [bug=1893696] * Change the signatures for BeautifulSoup.insert_before and insert_after (which are not implemented) to match PageElement.insert_before and insert_after, quieting warnings in some IDEs. [bug=1897120] ``` ### 4.9.1 ``` * Added a keyword argument 'on_duplicate_attribute' to the BeautifulSoupHTMLParser constructor (used by the html.parser tree builder) which lets you customize the handling of markup that contains the same attribute more than once, as in: <a href="url1" href="url2"> [bug=1878209] * Added a distinct subclass, GuessedAtParserWarning, for the warning issued when BeautifulSoup is instantiated without a parser being specified. [bug=1873787] * Added a distinct subclass, MarkupResemblesLocatorWarning, for the warning issued when BeautifulSoup is instantiated with 'markup' that actually seems to be a URL or the path to a file on disk. [bug=1873787] * The new NavigableString subclasses (Stylesheet, Script, and TemplateString) can now be imported directly from the bs4 package. * If you encode a document with a Python-specific encoding like 'unicode_escape', that encoding is no longer mentioned in the final XML or HTML document. Instead, encoding information is omitted or left blank. [bug=1874955] * Fixed test failures when run against soupselect 2.0. Patch by Tomáš Chvátal. [bug=1872279] ``` ### 4.9.0 ``` * Added PageElement.decomposed, a new property which lets you check whether you've already called decompose() on a Tag or NavigableString. * Embedded CSS and Javascript is now stored in distinct Stylesheet and Script tags, which are ignored by methods like get_text() since most people don't consider this sort of content to be 'text'. This feature is not supported by the html5lib treebuilder. [bug=1868861] * Added a Russian translation by 'authoress' to the repository. * Fixed an unhandled exception when formatting a Tag that had been decomposed.[bug=1857767] * Fixed a bug that happened when passing a Unicode filename containing non-ASCII characters as markup into Beautiful Soup, on a system that allows Unicode filenames. [bug=1866717] * Added a performance optimization to PageElement.extract(). Patch by Arthur Darcet. ``` ### 4.8.2 ``` * Added Python docstrings to all public methods of the most commonly used classes. * Added a Chinese translation by Deron Wang and a Brazilian Portuguese translation by Cezar Peixeiro to the repository. * Fixed two deprecation warnings. Patches by Colin Watson and Nicholas Neumann. [bug=1847592] [bug=1855301] * The html.parser tree builder now correctly handles DOCTYPEs that are not uppercase. [bug=1848401] * PageElement.select() now returns a ResultSet rather than a regular list, making it consistent with methods like find_all(). ```Links
- PyPI: https://pypi.org/project/beautifulsoup4 - Changelog: https://data.safetycli.com/changelogs/beautifulsoup4/Update billiard from 3.6.1.0 to 4.2.0.
Changelog
### 4.2.0 ``` -------------------- - Update process.py to close during join only if process has completed. - Adjust the __repr__ in ApplyResult. - Remove python 3.7 from CI. - Added Python 3.12 support. - Fixed (co_positions): resolve issue caused by absence co_positions (395). - Fixed: Replaced mktemp usage for Python 3 from python 2. - Changed nose test to pytest (397) in Integration test. - Changed nose dependency for unit test (383). ``` ### 4.1.0 ``` -------------------- - Fixed a python 2 to 3 compat issue which was missed earlier (374). - Adde Python 3.11 primary support ``` ### 4.0.2 ``` -------------------- - ExceptionWithTraceback should be an exception. ``` ### 4.0.1 ``` -------------------- - Add support for Python 3.11 _posixsubprocess.fork_exec() arguments. - Keep exception traceback somehow (368). ``` ### 4.0.0 ``` -------------------- - Support Sphinx 4.x. - Remove dependency to case. - Drop support of Python < 3.7. - Update to psutil 5.9.0. - Add python_requires to enforce Python version. - Replace deprecated threading Event.isSet with Event.is_set. - Prevent segmentation fault in get_pdeathsig while using ctypes (361). - Migrated CI to Github actions. - Python 3.10 support added. ``` ### 3.6.4.0 ``` -------------------- - Issue 309: Add Python 3.9 support to spawnv_passfds() - fix 314 ```Links
- PyPI: https://pypi.org/project/billiard - Changelog: https://data.safetycli.com/changelogs/billiard/ - Repo: https://github.com/celery/billiardUpdate blinker from 1.4 to 1.7.0.
Changelog
### 1.7.0 ``` ------------- Released 2023-11-01 - Fixed messages printed to standard error about unraisable exceptions during signal cleanup, typically during interpreter shutdown. :pr:`123` - Allow the Signal set_class to be customised, to allow calling of receivers in registration order. :pr:`116`. - Drop Python 3.7 and support Python 3.12. :pr:`126` ``` ### 1.6.3 ``` ------------- Released 2023-09-23 - Fix `SyncWrapperType` and `AsyncWrapperType` :pr:`108` - Fixed issue where ``signal.connected_to`` would not disconnect the receiver if an instance of ``BaseException`` was raised. :pr:`114` ``` ### 1.6.2 ``` ------------- Released 2023-04-12 - Type annotations are not evaluated at runtime. typing-extensions is not a runtime dependency. :pr:`94` ``` ### 1.6.1 ``` ------------- Released 2023-04-09 - Ensure that py.typed is present in the distributions (to enable other projects to use blinker's typing). - Require typing-extensions > 4.2 to ensure it includes ParamSpec. :issue:`90` ``` ### 1.6 ``` ----------- Released 2023-04-02 - Add a muted context manager to temporarily turn off a signal. :pr:`84` - Allow int senders (alongside existing string senders). :pr:`83` - Add a send_async method to the Signal to allow signals to send to coroutine receivers. :pr:`76` - Update and modernise the project structure to match that used by the pallets projects. :pr:`77` - Add an intial set of type hints for the project. ``` ### 1.5 ``` ----------- Released 2022-07-17 - Support Python >= 3.7 and PyPy. Python 2, Python < 3.7, and Jython may continue to work, but the next release will make incompatible changes. ```Links
- PyPI: https://pypi.org/project/blinker - Changelog: https://data.safetycli.com/changelogs/blinker/Update bokeh from 1.4.0 to 3.3.1.
The bot wasn't able to find a changelog for this release. Got an idea?
Links
- PyPI: https://pypi.org/project/bokehUpdate celery from 4.3.0 to 5.3.5.
Changelog
### 5.3.5 ``` ===== :release-date: 2023-11-10 7:15 P.M GMT+6 :release-by: Asif Saif Uddin What's Changed ============== - Update test.txt versions by auvipy in https://github.com/celery/celery/pull/8481 - fix os.getcwd() FileNotFoundError by mortimer2015 in https://github.com/celery/celery/pull/8448 - Fix typo in CONTRIBUTING.rst by monteiro-renato in https://github.com/celery/celery/pull/8494 - typo(doc): configuration.rst by shifenhutu in https://github.com/celery/celery/pull/8484 - assert before raise by monteiro-renato in https://github.com/celery/celery/pull/8495 - Update GHA checkout version by auvipy in https://github.com/celery/celery/pull/8496 - Fixed replaced_task_nesting by Nusnus in https://github.com/celery/celery/pull/8500 - Fix code indentation for route_task() example by stefmolin in https://github.com/celery/celery/pull/8502 - support redis 5.x by dulmandakh in https://github.com/celery/celery/pull/8504 - Fix typos in test_canvas.py by monteiro-renato in https://github.com/celery/celery/pull/8498 - Marked flaky tests by Nusnus in https://github.com/celery/celery/pull/8508 - Fix typos in calling.rst by visitorckw in https://github.com/celery/celery/pull/8506 - Added support for replaced_task_nesting in chains by Nusnus in https://github.com/celery/celery/pull/8501 - Fix typos in canvas.rst by visitorckw in https://github.com/celery/celery/pull/8509 - Patch Version Release Checklist by Nusnus in https://github.com/celery/celery/pull/8488 - Added Python 3.11 support to Dockerfile by Nusnus in https://github.com/celery/celery/pull/8511 - Dependabot (Celery) by Nusnus in https://github.com/celery/celery/pull/8510 - Bump actions/checkout from 3 to 4 by dependabot in https://github.com/celery/celery/pull/8512 - Update ETA example to include timezone by amantri in https://github.com/celery/celery/pull/8516 - Replaces datetime.fromisoformat with the more lenient dateutil parser by stumpylog in https://github.com/celery/celery/pull/8507 - Fixed indentation in Dockerfile for Python 3.11 by Nusnus in https://github.com/celery/celery/pull/8527 - Fix git bug in Dockerfile by Nusnus in https://github.com/celery/celery/pull/8528 - Tox lint upgrade from Python 3.9 to Python 3.11 by Nusnus in https://github.com/celery/celery/pull/8526 - Document gevent concurrency by cunla in https://github.com/celery/celery/pull/8520 - Update test.txt by auvipy in https://github.com/celery/celery/pull/8530 - Celery Docker Upgrades by Nusnus in https://github.com/celery/celery/pull/8531 - pyupgrade upgrade v3.11.0 -> v3.13.0 by Nusnus in https://github.com/celery/celery/pull/8535 - Update msgpack.txt by auvipy in https://github.com/celery/celery/pull/8548 - Update auth.txt by auvipy in https://github.com/celery/celery/pull/8547 - Update msgpack.txt to fix build issues by auvipy in https://github.com/celery/celery/pull/8552 - Basic ElasticSearch / ElasticClient 8.x Support by q2justin in https://github.com/celery/celery/pull/8519 - Fix eager tasks does not populate name field by KOliver94 in https://github.com/celery/celery/pull/8486 - Fix typo in celery.app.control by Spaceface16518 in https://github.com/celery/celery/pull/8563 - Update solar.txt ephem by auvipy in https://github.com/celery/celery/pull/8566 - Update test.txt pytest-timeout by auvipy in https://github.com/celery/celery/pull/8565 - Correct some mypy errors by rbtcollins in https://github.com/celery/celery/pull/8570 - Update elasticsearch.txt by auvipy in https://github.com/celery/celery/pull/8573 - Update test.txt deps by auvipy in https://github.com/celery/celery/pull/8574 - Update test.txt by auvipy in https://github.com/celery/celery/pull/8590 - Improved the "Next steps" documentation (8561). by frolenkov-nikita in https://github.com/celery/celery/pull/8600 - Disabled couchbase tests due to broken package breaking main by Nusnus in https://github.com/celery/celery/pull/8602 - Update elasticsearch deps by auvipy in https://github.com/celery/celery/pull/8605 - Update cryptography==41.0.5 by auvipy in https://github.com/celery/celery/pull/8604 - Update pytest==7.4.3 by auvipy in https://github.com/celery/celery/pull/8606 - test initial support of python 3.12.x by auvipy in https://github.com/celery/celery/pull/8549 - updated new versions to fix CI by auvipy in https://github.com/celery/celery/pull/8607 - Update zstd.txt by auvipy in https://github.com/celery/celery/pull/8609 - Fixed CI Support with Python 3.12 by Nusnus in https://github.com/celery/celery/pull/8611 - updated CI, docs and classifier for next release by auvipy in https://github.com/celery/celery/pull/8613 - updated dockerfile to add python 3.12 by auvipy in https://github.com/celery/celery/pull/8614 - lint,mypy,docker-unit-tests -> Python 3.12 by Nusnus in https://github.com/celery/celery/pull/8617 - Correct type of `request` in `task_revoked` documentation by RJPercival in https://github.com/celery/celery/pull/8616 - update docs docker image by auvipy in https://github.com/celery/celery/pull/8618 - Fixed RecursionError caused by giving `config_from_object` nested mod… by frolenkov-nikita in https://github.com/celery/celery/pull/8619 - Fix: serialization error when gossip working by kitsuyui in https://github.com/celery/celery/pull/6566 * [documentation] broker_connection_max_retries of 0 does not mean "retry forever" by jakila in https://github.com/celery/celery/pull/8626 - added 2 debian package for better stability in Docker by auvipy in https://github.com/celery/celery/pull/8629 New Contributors ================ - mortimer2015 made their first contribution in https://github.com/celery/celery/pull/8448 - monteiro-renato made their first contribution in https://github.com/celery/celery/pull/8494 - shifenhutu made their first contribution in https://github.com/celery/celery/pull/8484 - stefmolin made their first contribution in https://github.com/celery/celery/pull/8502 - visitorckw made their first contribution in https://github.com/celery/celery/pull/8506 - dependabot made their first contribution in https://github.com/celery/celery/pull/8512 - amantri made their first contribution in https://github.com/celery/celery/pull/8516 - cunla made their first contribution in https://github.com/celery/celery/pull/8520 - q2justin made their first contribution in https://github.com/celery/celery/pull/8519 - Spaceface16518 made their first contribution in https://github.com/celery/celery/pull/8563 - rbtcollins made their first contribution in https://github.com/celery/celery/pull/8570 - frolenkov-nikita made their first contribution in https://github.com/celery/celery/pull/8600 - RJPercival made their first contribution in https://github.com/celery/celery/pull/8616 - kitsuyui made their first contribution in https://github.com/celery/celery/pull/6566 - jakila made their first contribution in https://github.com/celery/celery/pull/8626 .. _version-5.3.4: ``` ### 5.3.4 ``` ===== :release-date: 2023-09-03 10:10 P.M GMT+2 :release-by: Tomer Nosrati .. warning:: This version has reverted the breaking changes introduced in 5.3.2 and 5.3.3: - Revert "store children with database backend" (8475) - Revert "Fix eager tasks does not populate name field" (8476) - Bugfix: Removed unecessary stamping code from _chord.run() (8339) - User guide fix (hotfix for 1755) (8342) - store children with database backend (8338) - Stamping bugfix with group/chord header errback linking (8347) - Use argsrepr and kwargsrepr in LOG_RECEIVED (8301) - Fixing minor typo in code example in calling.rst (8366) - add documents for timeout settings (8373) - fix: copyright year (8380) - setup.py: enable include_package_data (8379) - Fix eager tasks does not populate name field (8383) - Update test.txt dependencies (8389) - Update auth.txt deps (8392) - Fix backend.get_task_meta ignores the result_extended config parameter in mongodb backend (8391) - Support preload options for shell and purge commands (8374) - Implement safer ArangoDB queries (8351) - integration test: cleanup worker after test case (8361) - Added "Tomer Nosrati" to CONTRIBUTORS.txt (8400) - Update README.rst (8404) - Update README.rst (8408) - fix(canvas): add group index when unrolling tasks (8427) - fix(beat): debug statement should only log AsyncResult.id if it exists (8428) - Lint fixes & pre-commit autoupdate (8414) - Update auth.txt (8435) - Update mypy on test.txt (8438) - added missing kwargs arguments in some cli cmd (8049) - Fix 8431: Set format_date to False when calling _get_result_meta on mongo backend (8432) - Docs: rewrite out-of-date code (8441) - Limit redis client to 4.x since 5.x fails the test suite (8442) - Limit tox to < 4.9 (8443) - Fixed issue: Flags broker_connection_retry_on_startup & broker_connection_retry aren’t reliable (8446) - doc update from 7651 (8451) - Remove tox version limit (8464) - Fixed AttributeError: 'str' object has no attribute (8463) - Upgraded Kombu from 5.3.1 -> 5.3.2 (8468) - Document need for CELERY_ prefix on CLI env vars (8469) - Use string value for CELERY_SKIP_CHECKS envvar (8462) - Revert "store children with database backend" (8475) - Revert "Fix eager tasks does not populate name field" (8476) - Update Changelog (8474) - Remove as it seems to be buggy. (8340) - Revert "Add Semgrep to CI" (8477) - Revert "Revert "Add Semgrep to CI"" (8478) .. _version-5.3.3: ``` ### 5.3.3 ``` ===== :release-date: 6 Nov, 2023 :release-by: Asif Saif Uddin - Raise access denied error when ack. - test redis 5.0.0. - fix azure servicebus using managed identity support (1801). - Added as_uri method to MongoDB transport - Fixes 1795 (1796). - Revert "[fix 1726] Use boto3 for SQS async requests (1759)" (1799). - Create a lock on cached_property if not present (1811). - Bump kafka deps versions & fix integration test failures (1818). - Added Python 3.12 support. - Fix: redis requeue concurrency bug 1800 (1805). .. _version-5.3.2: ``` ### 5.3.2 ``` ===== :release-date: 31 Aug, 2023 :release-by: Tomer Nosrati - Reverted unwanted constraint introduced in 1629 with max_retries (1755) - Doc fix (hotfix for 1755) (1758) - Python3.12: fix imports in kombu/utils/objects.py (1756) - [fix 1726] Use boto3 for SQS async requests (1759) - docs: Remove SimpleQueue import (1764) - Fixed pre-commit issues (1773) - azure service bus: add managed identity support (1641) - fix: Prevent redis task loss when closing connection while in poll (1733) - Kombu & celery with SQS 222 (1779) - syntax correction (1780) .. _version-5.3.1: ``` ### 5.3.1 ``` ===== :release-date: 15 Jun, 2023 :release-by: Asif Saif Uddin - Update pycurl version. - Declare python 3.11 support (1425). - Fix: allow deserializing any version of UUID. - Update PyCurl version in SQS (1747). .. _version-5.3.0: ``` ### 5.3.0 ``` ===== :release-date: 03 Jun, 2023 :release-by: Asif Saif Uddin - Support for Kafka as transport. - Add fanout to filesystem (1499). - Added possibility to serialize and deserialize binary messages in json (1516). - Support pymongo 4.x (1536). - Support redis-py 4.5.x. - Upgrade Azure Storage Queues transport to version 12 (1539). - Add support to SQS DelaySeconds (1567). - Add WATCH to prefixed complex commands. - Avoid losing type of UUID when serializing/deserializing (1575). - Added HLEN to the list of prefixed redis commands (1540). - Add managed identity support to azure storage queue (1631). - Add Support of sqlalchemy v2.0. - Deprecate pytz and use zoneinfo (1680) .. _version-5.3.0rc2: ``` ### 5.3.0rc2 ``` ======== :release-date: 31 May, 2023 :release-by: Asif Saif Uddin - add missing zoneinfo dependency (1732). - Support redis >= 4.5.2 - Loosen urlib3 version range for botocore compat .. _version-5.3.0rc1: ``` ### 5.3.0rc1 ``` ======== :release-date: 24 May, 2023 :release-by: Asif Saif Uddin - Moved to pytest-freezer (1683). - Deprecate pytz and use zoneinfo (1680). - handle keyerror in azureservicebus transport when message is not found in qos and perform basic_ack (1691). - fix mongodb transport obsolete calls (1694). - SQS: avoid excessive GetQueueURL calls by using cached queue url (1621). - Update confluentkafka.txt version (1727). - Revert back to pyro4 for now. .. _version-5.3.0b3: ``` ### 5.3.0b3 ``` ======= :release-date: 20 Mar, 2023 :release-by: Asif Saif Uddin - Use SPDX license expression in project metadata. - Allowing Connection.ensure() to retry on specific exceptions given by policy (1629). - Redis==4.3.4 temporarilly in an attempt to avoid BC (1634). - Add managed identity support to azure storage queue (1631). - Support sqla v2.0 (1651). - Switch to Pyro5 (1655). - Remove unused _setupfuns from serialization.py. - Refactor: Refactor utils/json (1659). - Adapt the mock to correctly mock the behaviors as implemented on Python 3.10. (Ref 1663). .. _version-5.3.0b2: ``` ### 5.3.0b2 ``` ======= :release-date: 19 Oct, 2022 :release-by: Asif Saif Uddin - fix: save QueueProperties to _queue_name_cache instead of QueueClient. - hub: tick delay fix (1587). - Fix incompatibility with redis in disconnect() (1589). - Solve Kombu filesystem transport not thread safe. - importlib_metadata remove deprecated entry point interfaces (1601). - Allow azurestoragequeues transport to be used with Azurite emulator in docker-compose (1611). .. _version-5.3.0b1: ``` ### 5.3.0b1 ``` ======= :release-date: 1 Aug, 2022 :release-by: Asif Saif Uddin - Add ext.py files to setup.cfg. - Add support to SQS DelaySeconds (1567). - Add WATCH to prefixed complex commands. - Avoid losing type of UUID when serializing/deserializing (1575). - chore: add confluentkafka to extras. .. _version-5.3.0a1: ``` ### 5.3.0a1 ``` ======= :release-date: 29 Jun, 2022 :release-by: Asif Saif Uddin - Add fanout to filesystem (1499). - Protect set of ready tasks by lock to avoid concurrent updates. (1489). - Correct documentation stating kombu uses pickle protocol version 2. - Use new entry_points interface. - Add mypy to the pipeline (1512). - Added possibility to serialize and deserialize binary messages in json (1516). - Bump pyupgrade version and add __future__.annotations import. - json.py cleaning from outdated libs (1533). - bump new py-amqp to 5.1.1 (1534). - add GitHub URL for PyPi. - Upgrade pytest to ~=7.1.1. - Support pymongo 4.x (1536). - Initial Kafka support (1506). - Upgrade Azure Storage Queues transport to version 12 (1539). - move to consul2 (1544). - Datetime serialization and deserialization fixed (1515). - Bump redis>=4.2.2 (1546). - Update sqs dependencies (1547). - Added HLEN to the list of prefixed redis commands (1540). - Added some type annotations. .. _version-5.2.4: ``` ### 5.2.7 ``` ===== :release-date: 2022-5-26 12:15 P.M UTC+2:00 :release-by: Omer Katz - Fix packaging issue which causes poetry 1.2b1 and above to fail install Celery (7534). .. _version-5.2.6: ``` ### 5.2.6 ``` ===== :release-date: 2022-4-04 21:15 P.M UTC+2:00 :release-by: Omer Katz - load_extension_class_names - correct module_name (7433). This fixes a regression caused by 7218. .. _version-5.2.5: ``` ### 5.2.5 ``` ===== :release-date: 2022-4-03 20:42 P.M UTC+2:00 :release-by: Omer Katz **This release was yanked due to a regression caused by the PR below** - Use importlib instead of deprecated pkg_resources (7218). .. _version-5.2.4: ``` ### 5.2.4 ``` ===== :release-date: 06 Mar, 2022 :release-by: Asif Saif Uddin - Allow getting recoverable_connection_errors without an active transport. - Prevent KeyError: 'purelib' by removing INSTALLED_SCHEME hack from setup.py. - Revert "try pining setuptools (1466)" (1481). - Fix issue 789: Async http code not allowing for proxy config (790). - Fix The incorrect times of retrying. - Set redelivered property for Celery with Redis (1484). - Remove use of OrderedDict in various places (1483). - Warn about missing hostname only when default one is available (1488). - All supported versions of Python define __package__. - Added global_keyprefix support for pubsub clients (1495). - try pytest 7 (1497). - Add an option to not base64-encode SQS messages. - Fix SQS extract_task_name message reference. .. _version-5.2.3: ``` ### 5.2.3 ``` ===== :release-date: 29 Dec, 2021 :release-by: Asif Saif Uddin - Allow redis >= 4.0.2. - Fix PyPy CI jobs. - SQS transport: detect FIFO queue properly by checking queue URL (1450). - Ensure that restore is atomic in redis transport (1444). - Restrict setuptools>=59.1.1,<59.7.0. - Bump minimum py-amqp to v5.0.9 (1462). - Reduce memory usage of Transport (1470). - Prevent event loop polling on closed redis transports (and causing leak). - Respect connection timeout (1458) - prevent redis event loop stopping on 'consumer: Cannot connect' (1477). .. _version-5.2.2: ``` ### 5.2.2 ``` ===== :release-date: 16 Nov, 2021 :release-by: Asif Saif Uddin - Pin redis version to >= 3.4.1<4.0.0 as it is not fully compatible yet. .. _version-5.2.1: ``` ### 5.2.1 ``` ===== :release-date: 8 Nov, 2021 :release-by: Asif Saif Uddin - Bump redis version to >= 3.4.1. - try latest sqs dependencies ti fix security warning. - Tests & dependency updates .. _version-5.2.0: ``` ### 5.2.0 ``` ===== :release-date: 5 Nov, 2021 :release-by: Naomi Elstein - v 1.4.x (1338). - stop mentioning librabbitmq (1381). - Merge branch 'master' of https://github.com/celery/kombu - test new pytest version (1383). - drop python 3.6 from CI (1382). - Use ANY from unittest instead of case.mock. - Fix missing dependency to redis in docs requirements. - [pre-commit.ci] pre-commit autoupdate. - Remove dependency to case (1389). - Fix: check redis response type. - [pre-commit.ci] pre-commit autoupdate (1393). - py3.7+ on setup (1392). - Prevent caching of oid in pidbox (1394). - Added unittests for 1394 . - fix flake8 in kombu/asynchronous/aws/connection.py (1397). - [pre-commit.ci] pre-commit autoupdate. - Fix test_pidbox unittests to support non-linux platforms (1398). - [pre-commit.ci] pre-commit autoupdate. - removre bdist. - add python 3.10 to CI & fix other issues (1402). - try to fix CI (1407). - Dont failfast when pypy3 tests fail (1408). - Return empty list instead of InconsistencyError when exchange table is empty (1404). - [pre-commit.ci] pre-commit autoupdate. .. _version-5.2.0rc1: ``` ### 5.2.0rc2 ``` ======== :release-date: 2021-11-02 1.54 P.M UTC+3:00 :release-by: Naomi Elstein - Bump Python 3.10.0 to rc2. - [pre-commit.ci] pre-commit autoupdate (6972). - autopep8. - Prevent worker to send expired revoked items upon hello command (6975). - docs: clarify the 'keeping results' section (6979). - Update deprecated task module removal in 5.0 documentation (6981). - [pre-commit.ci] pre-commit autoupdate. - try python 3.10 GA. - mention python 3.10 on readme. - Documenting the default consumer_timeout value for rabbitmq >= 3.8.15. - Azure blockblob backend parametrized connection/read timeouts (6978). - Add as_uri method to azure block blob backend. - Add possibility to override backend implementation with celeryconfig (6879). - [pre-commit.ci] pre-commit autoupdate. - try to fix deprecation warning. - [pre-commit.ci] pre-commit autoupdate. - not needed anyore. - not needed anyore. - not used anymore. - add github discussions forum .. _version-5.2.0rc1: ``` ### 5.2.0rc1 ``` ======== :release-date: 2021-09-07 7:00 P.M UTC+6:00 :release-by: Asif Saif Uddin - Remove backward compatible code not used anymore (1344). - Add support for setting redis username (1351). - Add support for Python 3.9. - Use hostname from URI when server_host is None. - Use Python's built-in json module by default, instead of simplejson. - SQS Channel.predefined_queues should be {} if not defined. - Add global key prefix for keys set by Redis transporter (1349). - fix: raise BrokenPipeError (1231). - fix: add missing commands to prefix. - Make BrokerState Transport specific. - Tests & Docs cleanup. .. _version-5.1.0: ``` ### 5.2.0b3 ``` ======= :release-date: 2021-09-02 8.38 P.M UTC+3:00 :release-by: Omer Katz - Add args to LOG_RECEIVED (fixes 6885) (6898). - Terminate job implementation for eventlet concurrency backend (6917). - Add cleanup implementation to filesystem backend (6919). - [pre-commit.ci] pre-commit autoupdate (69). - Add before_start hook (fixes 4110) (6923). - Restart consumer if connection drops (6930). - Remove outdated optimization documentation (6933). - added https verification check functionality in arangodb backend (6800). - Drop Python 3.6 support. - update supported python versions on readme. - [pre-commit.ci] pre-commit autoupdate (6935). - Remove appveyor configuration since we migrated to GA. - pyugrade is now set to upgrade code to 3.7. - Drop exclude statement since we no longer test with pypy-3.6. - 3.10 is not GA so it's not supported yet. - Celery 5.1 or earlier support Python 3.6. - Fix linting error. - fix: Pass a Context when chaining fail results (6899). - Bump version: 5.2.0b2 → 5.2.0b3. .. _version-5.2.0b2: ``` ### 5.2.0b2 ``` ======= :release-date: 2021-08-17 5.35 P.M UTC+3:00 :release-by: Omer Katz - Test windows on py3.10rc1 and pypy3.7 (6868). - Route chord_unlock task to the same queue as chord body (6896). - Add message properties to app.tasks.Context (6818). - handle already converted LogLevel and JSON (6915). - 5.2 is codenamed dawn-chorus. - Bump version: 5.2.0b1 → 5.2.0b2. .. _version-5.2.0b1: ``` ### 5.2.0b1 ``` ======= :release-date: 2021-08-11 5.42 P.M UTC+3:00 :release-by: Omer Katz - Add Python 3.10 support (6807). - Fix docstring for Signal.send to match code (6835). - No blank line in log output (6838). - Chords get body_type independently to handle cases where body.type does not exist (6847). - Fix 6844 by allowing safe queries via app.inspect().active() (6849). - Fix multithreaded backend usage (6851). - Fix Open Collective donate button (6848). - Fix setting worker concurrency option after signal (6853). - Make ResultSet.on_ready promise hold a weakref to self (6784). - Update configuration.rst. - Discard jobs on flush if synack isn't enabled (6863). - Bump click version to 8.0 (6861). - Amend IRC network link to Libera (6837). - Import celery lazily in pytest plugin and unignore flake8 F821, "undefined name '...'" (6872). - Fix inspect --json output to return valid json without --quiet. - Remove celery.task references in modules, docs (6869). - The Consul backend must correctly associate requests and responses (6823). Changes ======= py-amqp is fork of amqplib used by Kombu containing additional features and improvements. The previous amqplib changelog is here: http://code.google.com/p/py-amqplib/source/browse/CHANGES .. _version-5.2.0: ``` ### 5.1.1 ``` ===== :release-date: 2022-04-17 12:45 P.M. UTC+6:00 :release-by: Asif Saif Uddin - Use AF_UNSPEC for name resolution (389). .. _version-5.1.0: ``` ### 5.1.0 ``` ===== :release-date: 2021-05-23 7:00 P.M UTC+3:00 :release-by: Omer Katz - Fix queue names special characters replacement for Azure Service Bus. (1324) - Add support for SQLAlchemy 1.4. (1328) - Coerce seconds argument to a floating point number in ``Timer.enter_after``. (1330) - Add accept parameter to SimpleQueue class. (1140) - ``prepare_accept_content()`` now raises ``SerializerNotInstalled`` instead of ``KeyError``. (1343) .. _version-5.1.0b1: ``` ### 5.1.0b1 ``` ======= :release-date: 2021-04-01 10:30 P.M UTC+6:00 :release-by: Asiff Saif Uddin - Wheels are no longer universal. - Revert "Added redis transport key_prefix from envvars". - Redis Transport: Small improvements of `SentinelChannel` (1253). - Fix pidbox not using default channels. - Revert "on worker restart - restore visible regardless to time (905)". - Add vine to dependencies. - Pin urllib3<1.26 to fix failing unittests. - Add timeout to producer publish (1269). - Remove python2 compatibility code (1277). - redis: Support Sentinel with SSL. - Support for Azure Service Bus 7.0.0 (1284). - Allow specifying session token (1283). - kombu/asynchronous/http/curl: implement _set_timeout. - Disable namedtuple to object feature in simplejson (1297). - Update to tox docker 2.0. - SQS back-off policy (1301). - Fixed SQS unittests. - Fix: non kombu json message decoding in SQS transport (1306). - Add Github Actions CI (1309). - Update default pickle protocol version to 4 (1314). - Update connection.py (1311). - Drop support for the lzma backport. - Drop obsolete code importing pickle (1315). - Update default login method for librabbitmq and pyamqp (936). - SQS Broker - handle STS authentication with AWS (1322). - Min py-amqp version is v5.0.6 (1325). - Numerous docs & example fixes. - Use a thread-safe implementation of cached_property (1316). .. _version-5.0.2: ``` ### 5.0.9 ``` ===== :release-date: 2021-12-20 11:00 A.M. UTC+6:00 :release-by: Asif Saif Uddin - Append to _used_channel_ids in _used_channel_ids .. _version-5.0.8: ``` ### 5.0.8 ``` ===== :release-date: 2021-12-19 11:15 A.M. UTC+6:00 :release-by: Asif Saif Uddin - Reduce memory usage of Connection (377) - Add additional error handling around code where an OSError may be raised on failed connections. Fixes (378) .. _version-5.0.7: ``` ### 5.0.7 ``` ===== :release-date: 2021-12-13 15:45 P.M. UTC+6:00 :release-by: Asif Saif Uddin - Remove dependency to case - Bugfix: not closing socket after server disconnect .. _version-5.0.6: ``` ### 5.0.6 ``` ===== :release-date: 2021-04-01 10:45 A.M. UTC+6:00 :release-by: Asif Saif Uddin - Change the order in which context.check_hostname and context.verify_mode get set in SSLTransport._wrap_socket_sni. Fixes bug introduced in 5.0.3 where setting context.verify_mode = ssl.CERT_NONE would raise "ValueError: Cannot set verify_mode to CERT_NONE when check_hostname is enabled." Setting context.check_hostname prior to setting context.verify_mode resolves the issue. - Remove TCP_USER_TIMEOUT option for Solaris (355) - Pass long_description to setup() (353) - Fix for tox-docker 2.0 - Moved to GitHub actions CI (359) .. _version-5.0.5: ``` ### 5.0.5 ``` ===== :release-date: 2021-01-28 4:30 P.M UTC+6:00 :release-by: Asif Saif Uddin - Removed mistakenly introduced code which was causing import errors .. _version-5.0.4: ``` ### 5.0.4 ``` ===== :release-date: 2021-01-28 2:30 P.M UTC+6:00 :release-by: Asif Saif Uddin - Add missing load_default_certs() call to fix a regression in v5.0.3 release. (350) .. _version-5.0.3: ``` ### 5.0.3 ``` ===== :release-date: 2021-01-19 9:00 P.M UTC+6:00 :release-by: Asif Saif Uddin - Change the default value of ssl_version to None. When not set, the proper value between ssl.PROTOCOL_TLS_CLIENT and ssl.PROTOCOL_TLS_SERVER will be selected based on the param server_side in order to create a TLS Context object with better defaults that fit the desired connection side. - Change the default value of cert_reqs to None. The default value of ctx.verify_mode is ssl.CERT_NONE, but when ssl.PROTOCOL_TLS_CLIENT is used, ctx.verify_mode defaults to ssl.CERT_REQUIRED. - Fix context.check_hostname logic. Checking the hostname depends on having support of the SNI TLS extension and being provided with a server_hostname value. Another important thing to mention is that enabling hostname checking automatically sets verify_mode from ssl.CERT_NONE to ssl.CERT_REQUIRED in the stdlib ssl and it cannot be set back to ssl.CERT_NONE as long as hostname checking is enabled. - Refactor the SNI tests to test one thing at a time and removing some tests that were being repeated over and over. .. _version-5.0.2: ``` ### 5.0.2 ``` ===== :release-date: 2020-09-06 6:30 P.M UTC+3:00 :release-by: Omer Katz - Bump required amqp version to 5.0.0. .. _version-5.0.1: ``` ### 5.0.1 ``` ===== :release-date: 2020-08-23 19:10 P.M UTC+3:00 :release-by: Omer Katz - Removed kombu.five from the reference documentation since it no longer exists - Adjusted the stable documentation's version in Sphinx's configuration since that was overlooked in the latest release .. _version-5.0.0: ``` ### 5.0.0 ``` ===== :release-date: 2020-08-05 16:00 P.M UTC+3:00 :release-by: Omer Katz - **BREAKING CHANGE**: Dropped support for Python 2 (1232) - Add an SQS transport option for custom botocore config (1219) .. _version-4.6.11: ``` ### 5.0.0b1 ``` ======= :release-date: 2020-09-01 6:20 P.M UTC+3:00 :release-by: Omer Katz - Dropped Python 3.5 support. Contributed by **Omer Katz** - Removed additional compatibility code. Contributed by **Omer Katz** .. _version-5.0.0a1: ``` ### 5.0.0a1 ``` ======= :release-date: 2019-04-01 4:30 P.M UTC+3:00 :release-by: Omer Katz - Dropped Python 2.x support. Contributed by **Omer Katz** - Dropped Python 3.4 support. Contributed by **Omer Katz** - Removed the :mod:`vine.five` module. Contributed by **Omer Katz** - Removed the :mod:`vine.backports.weakref_backports` module. Contributed by **Omer Katz** .. _version-1.3.0: ``` ### 4.6.11 ``` ======= :release-date: 2020-06-24 1.15 P.M UTC+6:00 :release-by: Asif Saif Uddin - Revert incompatible changes in 1193 and additional improvements (1211) - Default_channel should reconnect automatically (1209) .. _version-4.6.10: ``` ### 4.6.10 ``` ====== :release-date: 2020-06-03 10.45 A.M UTC+6:00 :release-by: Asif Saif Uddin - Doc improvement. - set _connection in _ensure_connection (1205) - Fix for the issue 1172 - reuse connection [bug fix] .. _version-4.6.9: ``` ### 4.6.9 ``` ===== :release-date: 2020-06-01 14.00 P.M UTC+6:00 :release-by: Asif Saif Uddin - Prevent failure if AWS creds are not explicitly defined on predefined. - Raise RecoverableConnectionError in maybe_declare with retry on and. - Fix for the issue 1172 . - possible fix for 1174 . - Fix: make SQLAlchemy Channel init thread-safe - Added integration testing infrastructure for RabbitMQ - Initial redis integration tests implementation - SQLAlchemy transport: Use Query.with_for_update() instead of deprecated - Fix Consumer Encoding - Added Integration tests for direct, topic and fanout exchange types - Added TTL integration tests - Added integration tests for priority queues - fix 100% cpu usage on linux while using sqs - Modified Mutex to use redis LuaLock implementation - Fix: eliminate remaining race conditions from SQLAlchemy Channel - Fix connection imaybe_declare (1196) - Fix for issue 1198: Celery crashes in cases where there aren’t enough - Ensure connection when connecting to broker - update pyamqp to 2.6 with optional cythonization .. _version-4.6.8: ``` ### 4.6.8 ``` ===== :release-date: 2020-03-29 20:45 A.M UTC+6:00 :release-by: Asif Saif Uddin - Added support for health_check_interval option in broker_transport_options (1145) - Added retry_on_timeout parameter to Redis Channel (1150) - Added support for standard values for ssl_cert_reqs query parameter for Redis (1139) - Added predefined_queues option to SQS transport (1156) - Added ssl certificate verification against ca certificat