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.31.2
```
What's Changed
Bugs fixed:
- broken support for `Optional[List]` (but not `Optional[list]`), a narrower case of the problem fixed earlier (issue 216) by neithere, thanks to thorwhalen
Full changelog: https://argh.readthedocs.io/en/latest/changes.html
Full diff: https://github.com/neithere/argh/compare/v0.31.1...v0.31.2
```
### 0.31.1
```
*This text is a brief summary of the full changelog entry: https://argh.readthedocs.io/en/latest/changes.html#version-0-31-1-2024-01-19*
What's Changed
Bugs fixed:
- broken support for type alias `List` (issue 216), thanks to thorwhalen.
Enhancements:
- cleaned up the README, rearranged other documentation.
**Full diff**: https://github.com/neithere/argh/compare/v0.31.0...v0.31.1
```
### 0.31.0
```
What's Changed
This release is a major step forward for Argh. It paves the way to a fully annotations-driven approach where decorators will remain a mere legacy.
*This text is a brief summary of the full changelog entry: https://argh.readthedocs.io/en/latest/changes.html#version-0-31-0-2023-12-30*
Breaking changes:
* The typing hints introspection feature is automatically enabled for any command (function) which does **not** have any arguments specified via `arg` decorator.
* A small change in the legacy argument mapping policy `BY_NAME_IF_HAS_DEFAULT` concerning the order of variadic positional vs. keyword-only arguments.
* Removed the previously deprecated decorator `expects_obj`.
Enhancements:
* Type hints: basic usage to infer argument types (fixes 203) by neithere in https://github.com/neithere/argh/pull/211
* Support realtime output through a pipe (fixes 145) by neithere in https://github.com/neithere/argh/pull/202
* High-level functions `argh.dispatch_command()` and `argh.dispatch_commands()`
now accept a new parameter `old_name_mapping_policy`.
Deprecated:
- the `namespace` argument in `argh.dispatch()` and `argh.parse_and_resolve()`.
Rationale: continued API cleanup. It's already possible to mutate the
namespace object between parsing and calling the endpoint; it's unlikely that
anyone would need to specify a custom namespace class or pre-populate it
before parsing. Please file an issue if you have a valid use case.
Other changes:
- Refactoring.
**Full Diff**: https://github.com/neithere/argh/compare/v0.30.5...v0.31.0
```
### 0.30.5
```
What's Changed
* fix: nargs + list as default value (212) by neithere in https://github.com/neithere/argh/pull/213
(thanks to pioio for bug report)
* feat: argspec guessing: if `nargs` is not specified but the default value is a list, `nargs="*"` is assumed and passed to argparse.
**Full Changelog**: https://github.com/neithere/argh/compare/v0.30.4...v0.30.5
Please refer to the official changelog for more details: https://argh.readthedocs.io/en/latest/changes.html
```
### 0.30.4
```
What's Changed
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.
— by neithere
**Full Changelog**: https://github.com/neithere/argh/compare/v0.30.3...v0.30.4
```
### 0.30.3
```
What's Changed
* fix: regression — `arg` deco failing with underscore in positional arg name (fixes 208) by neithere in https://github.com/neithere/argh/pull/209 (thanks to kaetir for a report with a reproducible example)
**Full Changelog**: https://github.com/neithere/argh/compare/v0.30.2...v0.30.3
```
### 0.30.2
```
What's Changed
* fix: raise exception for non-migrated commands (fixes 206) by neithere (reported and valuable feedback given by valentin-feron) in https://github.com/neithere/argh/pull/207
**Full Changelog**: https://github.com/neithere/argh/compare/v0.30.1...v0.30.2
```
### 0.30.1
```
What's Changed
Bugs fixed:
- Regression: certain special values in argument default value would cause an exception (204 reported by mfussenegger, fixed by neithere)
Enhancements:
- Improved the tutorial by neithere
- 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 by neithere
Other changes:
- Added `py.typed` marker file for PEP-561 by neithere
Details
Commits: https://github.com/neithere/argh/compare/v0.30.0...v0.30.1
Full changelog: https://argh.readthedocs.io/en/latest/changes.html#version-0-30-1
```
### 0.30.0
```
What's Changed
* Remove previously deprecated code (closes 184) by neithere in https://github.com/neithere/argh/pull/188
* Type annotations for existing code (closes 185) by neithere in https://github.com/neithere/argh/pull/189
* Deprecate `help` command alias and `expects_obj` decorator by neithere in https://github.com/neithere/argh/pull/192
* Document usage with class methods (closes 138) by neithere in https://github.com/neithere/argh/pull/194
* Remove pre_call, expose finer control over dispatching (re 63) by neithere in https://github.com/neithere/argh/pull/193
* Add support for Python 3.12 (closes 196) by neithere in https://github.com/neithere/argh/pull/195
* Refactor assembling module (closes 197) by neithere in https://github.com/neithere/argh/pull/198
* Keyword-only arguments as options (closes 191) by neithere in https://github.com/neithere/argh/pull/199
**Full Changelog**: https://github.com/neithere/argh/compare/v0.29.4...v0.30.0
```
### 0.30.0alpha
```
What's Changed
* Remove previously deprecated code (closes 184) by neithere in https://github.com/neithere/argh/pull/188
* Type annotations for existing code (closes 185) by neithere in https://github.com/neithere/argh/pull/189
* Deprecate `help` command alias and `expects_obj` decorator by neithere in https://github.com/neithere/argh/pull/192
* Document usage with class methods (closes 138) by neithere in https://github.com/neithere/argh/pull/194
* Remove pre_call, expose finer control over dispatching (re 63) by neithere in https://github.com/neithere/argh/pull/193
* Add support for Python 3.12 (closes 196) by neithere in https://github.com/neithere/argh/pull/195
* Refactor assembling module (closes 197) by neithere in https://github.com/neithere/argh/pull/198
* Keyword-only arguments as options (closes 191) by neithere in https://github.com/neithere/argh/pull/199
**Full Changelog**: https://github.com/neithere/argh/compare/v0.29.4...v0.30.0-alpha
```
### 0.29.4
```
Bugs fixed:
- Test coverage reported as <100% when argcomplete is installed (187)
```
### 0.29.3
```
This is a technical release for packaging purposes.
```
### 0.29.2
```
This is a technical release for packaging purposes.
```
### 0.29.1
```
This is a technical release for packaging purposes.
```
### 0.29.0
```
What's Changed
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 (by ekimekim in 161).
Deprecated:
* Renamed arguments in `add_commands()` (165 / 178):
- `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 argument by neithere in 181
Other changes:
* Avoid depending on iocapture by using pytest's built-in feature by mr-c in 177
* chore: publishing to prod PyPI by neithere in 173
* test: add coverage for action="count" (127) by neithere in 183
New Contributors
* ekimekim made their first contribution in https://github.com/neithere/argh/pull/161
* mr-c made their first contribution in https://github.com/neithere/argh/pull/177
**Full Changelog**: https://github.com/neithere/argh/compare/v0.28.1...v0.29.0
```
### 0.28.1
```
What's Changed
* Add Github workflow to publish the release to PyPI by neithere in https://github.com/neithere/argh/pull/167
* fix: argcomplete-related test by neithere in 172 (reported in 169 by kloczek)
* fix: assumed prog name in tests by neithere in 171 (reported in 170 by mgorny)
**Full Changelog**: https://github.com/neithere/argh/compare/v0.28.0...v0.28.1
Thanks to everyone who reported
```
### 0.28.0
```
A major modernisation and 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 (63) can help improve the library to accomodate it in a proper way.
- 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.
**Full Changelog**: https://github.com/neithere/argh/compare/v0.27.2...v0.28.0
```
### 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)
Contributors:
mtelka (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).
Contributors:
dwf (105), jwilk (110), jakirkham (112), brilee, sanga (116), Gidgidonihah (134), mrdavidlaing (153), jelly (154), mtelka (154), hugovk (reviewing PRs).
```
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.8.2
```
-------------
Released 2024-05-06
- Simplify type for ``_async_wrapper`` and ``_sync_wrapper`` arguments.
:pr:`156`
```
### 1.8.1
```
-------------
Released 2024-04-28
- Restore identity handling for ``str`` and ``int`` senders. :pr:`148`
- Fix deprecated ``blinker.base.WeakNamespace`` import. :pr:`149`
- Fix deprecated ``blinker.base.receiver_connected import``. :pr:`153`
- Use types from ``collections.abc`` instead of ``typing``. :pr:`150`
- Fully specify exported types as reported by pyright. :pr:`152`
```
### 1.8.0
```
-------------
Released 2024-04-27
- Deprecate the ``__version__`` attribute. Use feature detection, or
``importlib.metadata.version("blinker")``, instead. :issue:`128`
- Specify that the deprecated ``temporarily_connected_to`` will be removed in
the next version.
- Show a deprecation warning for the deprecated global ``receiver_connected``
signal and specify that it will be removed in the next version.
- Show a deprecation warning for the deprecated ``WeakNamespace`` and specify
that it will be removed in the next version.
- Greatly simplify how the library uses weakrefs. This is a significant change
internally but should not affect any public API. :pr:`144`
- Expose the namespace used by ``signal()`` as ``default_namespace``.
:pr:`145`
```
### 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 ``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`
- ``int`` instances with the same value will be treated as the same sender,
the same as ``str`` instances. :pr:`83`
- Add a ``send_async`` method 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 initial 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
### 3.4
```
--------------------
* bugfixes:
- 6826 [component: bokehjs] Tap events not registering during MouseMove events
- 8508 [component: bokehjs] Tap event latency
- 10782 [component: bokehjs] Typo in prelude.ts
- 11794 `BOKEH_DEV=true` assumes file resources when using the server
- 12088 [component: bokehjs] [BUG] Select widget has no value if only options are provided but the UI suggests otherwise
- 12616 [component: bokehjs] [BUG] installing bokehjs from npm doesn't pull in dependencies
- 12870 [component: bokehjs] [BUG] DatetimeTickFormatter strips leading 0 in "%H" format, works in " %H"
- 13071 [component: bokehjs] [BUG] Pinching zoom-in on touch devices
- 13131 [component: bokehjs] roots added in a callback are not displayed
- 13157 [component: bokehjs] Prevent blink when updating ImageURL source
- 13281 [component: bokehjs] font-size does not depend on --font-size css variable
- 13293 [component: bokehjs] [BUG] _hit_point() is broken in VAreaStep
- 13337 [component: bokehjs] [BUG] `output_notebook(resources=INLINE)` in jupyter lab does not load jquery
- 13362 [component: bokehjs] [BUG] Inconsistent handling of background and border fill alpha
- 13378 [component: bokehjs] [BUG] `Axis.major_label_overrides` being `{}` causing error in deserialization
- 13389 Unable to clone models with readonly properties
- 13421 `bokehjsdir(dev=True)` doesn't resolve `bokehjs/build` anymore
- 13441 [component: bokehjs] [BUG] filter.booleans doesn't trigger the re-render of the plot
- 13483 [component: bokehjs] [BUG] RangeTool does not respect target `max_interval`
- 13499 [BUG] Latex does not render in Notebook
- 13500 [component: bokehjs] [BUG] Box edit tool using all supported glyphs
- 13520 [component: bokehjs] [BUG] Template does not seem to render correctly in Firefox
- 13524 [component: docs] [BUG] Missing SRI hash for version 2.2.2
- 13525 [component: docs] [BUG] Unexpected attribute 'size' to Circle
- 13536 [component: bokehjs] ColumnDataSource.selected.indices incompatibility with CDSView.filter.indices [BUG]
- 13555 [component: bokehjs] [BUG] image hover value is wrong on inverted axes
- 13558 [component: build] Release build CI workflow fails
- 13563 [BUG] Return type of the Model.__new__ function is incorrect
- 13583 [component: tests] `minimal-deps` CI job fails with "coroutine was never awaited"
- 13598 [component: bokehjs] [BUG] Improve NaT support for HoverTool
- 13607 [component: bokehjs] [BUG] Multiple inline math elements in different axes causing axis labels to disappear
- 13611 [component: bokehjs] [BUG] Layout won’t update after curdoc().unhold()
- 13637 [BUG] Regression handling glyph border_radius that is a dict
- 13648 [component: bokehjs] [BUG] WebGL Rect with large corner radius rendered incorrectly
- 13678 [component: bokehjs] [BUG] Using tap tool makes image glyph disappear with webgl enabled
- 13679 [component: examples] Deprecation warning in notebook_embed.ipynb
- 13688 Useless error formatting can be sometimes costly in on_change setup
- 13698 [component: docs] Missing links in docs in "Third-party integrations" page
- 13716 Errors related to MIN_PREFERRED_MAX_WIDTH while building the docs
- 13717 [component: docs] Broken page in the docs
- 13729 [component: docs] [BUG] Documentation Missing space character in the command to enable jupyter server extension in jupyterLab docs.
- 13739 [component: docs] [BUG] Documentation: TypeScript in Custom Extensions section fails to compile
- 13743 VBox is not working in 3.4.0rc1
- 13755 [component: bokehjs] [BUG] Button does not updated when property is changed
- 13756 [component: bokehjs] `Tooltip` node positioning is wrong when the target is offset
- 13713 [component: build] Fix logic in plugin prelude
- 13718 [component: docs] add MathTextGlyph to imports
- 13737 [component: build] Include generated TS modules in extensions' build
- 13741 [component: bokehjs] Avoid spurious warning about Py/Js version mismatch
- 13758 [component: docs] fix broken link in first_steps_9.rst
* features:
- 2367 Different sizes not used for selection & nonselection glyphs
- 4284 Add attribution annotation
- 4416 Add support Title/Label bounding box padding
- 8153 [component: bokehjs] Feature Request: Hide some (but not all) tools from toolbar
- 8519 Overlapping attribution for labels tiles
- 8898 [component: bokehjs] Allow Select to accept non-string option values
- 9843 categorical slider
- 10317 [BUG] Cannot deselect with TapTool
- 10583 The empty_value property of EditTools needs generalizing
- 12243 [FEATURE] DataTable from_dataframe()
- 12651 [BUG] bokeh.plotting.graph.from_networkx fails on graphs having nodes with string index values
- 13291 [FEATURE] Inline widgets for data entry
- 13349 [component: bokehjs] Tooltip for tab panels
- 13682 [FEATURE] - DataTable - Conditional Formatting
- 13697 [component: bokehjs] [BUG] HoverTool can't adress source with `ö`
- 13612 Add support for math text glyphs
- 13625 Allow users to provide custom units of measurement
* tasks:
- 3529 Unify dev and non-minified resources
- 9684 [component: bokehjs] If BokehJS isn't available, error message should be displayed
- 10157 [component: examples] Replacing Iris data with penguin data
- 12941 [component: build] Don't upload ESM files to CDN
- 13246 Complete the consolidation of scatter markers in bokeh.plotting
- 13381 [component: docs] Document new-style (ESM) JS callbacks
- 13387 [component: docs] [FEATURE] Improving the "Deployment scenario" section of the user guide
- 13430 [component: build] Split up _sri.json
- 13485 Update contour line calculations to use ContourPy's LineType.ChunkCombinedNan
- 13533 Errors in codebase CI runs using MyPy 1.7.0
- 13570 [component: docs] Add documentation and tests for non-visual overrides (PR 13554)
- 13585 [component: bokehjs] [BUG] HTML `<label>` elements are not referencing the item they are labeling
- 13629 Use globally unique and CSS safe IDs in `<script type="application/json">`
- 13667 [BUG] Display Greek small letter mu
- 13669 [component: examples] Stadia tiles not displaying
- 13680 Remove year or year range from copyright notices
- 13700 [component: docs] [BUG] Outdated link in warning for standalone Python callback
- 13734 [component: docs] Typo in the documentation related to writing tests in the Contribute section
- 13736 [component: docs] App README links are all old / bad
- 13096 [component: examples] Show how to reference the same field multiple times in hover tool's formatters
- 13448 Use `Never` type if function doesn't return
- 13449 [component: bokehjs] Use curly brackets in bokehjs for all statements
- 13450 [component: bokehjs] Remove `bokehjs/src/lib/testing.ts`
- 13451 [component: bokehjs] Add support for function callbacks in bokehjs
- 13465 [component: tests] Robustify type expectations greatly reduce `!` usage in tests
- 13470 [component: examples] simplify and use more latex ticks
- 13481 [component: bokehjs] Fix unawaited promises and modernize interactive tests
- 13493 [component: tests] Optimize performance of loading visual baselines
- 13537 Rename `ColorMap` to `PaletteSelect` and improve it
- 13539 [component: docs] Update server example URLs
- 13540 [component: bokehjs] Decouple `Tool` event handlers from state/active management
- 13565 [component: build] Migrate bokehjs' bundles from ES2017 to ES2020
- 13575 [component: examples] Added metadata to position_toolbar.py, position_toolbar_clash.py, and toolbar_autohide.py
- 13582 [component: tests] Sort defaults' baseline by fully qualified names
- 13586 [component: bokehjs] Added `for` tag to HTML `<label>` element to reference input fields
- 13601 [component: bokehjs] Upgrade TypeScript to version 5.3 and upgrade other depenencies
- 13605 [component: build] Relativize imports paths also in type declaration files (`*.d.ts`)
- 13610 [component: build] Don't use implicit command-line arguments in bokehjs
- 13651 [component: bokehjs] Use simpler shader for rect-like glyphs without rounded corners
- 13689 Improve `PlainObjectProxy` and remove unnecessary `hasOwnProperty()`
- 13693 Upgrade nodejs to 20.x (LTS) in CI
- 13701 [component: bokehjs] Normalize enum definitions in bokehjs; remove redundancy
- 13703 [component: bokehjs] Finalize migration to obligatory curly brackets
- 13707 Upgrade mypy, pandas-stubs and ruff and fix issues
- 13709 [component: docs] Update examples for legends
- 13722 Rename property kinds that conflict with JS builtins
- 13724 [component: tests] Ignore `pytest.PytestUnraisableExceptionWarning`
- 13744 [component: docs] Update bokeh 3.4.0 release notes
- 13746 [component: docs] remove double space in example code
- 13753 [component: docs] Add documentation for `ScaleBar` annotation
```
### 3.3
```
--------------------
* bugfixes:
- 7671 [component: bokehjs] Tool tip remains while using a scroll tool
- 11273 [component: bokehjs] [BUG] hover tooltip is cut off when the tooltip is tall and hover near the top of the plot
- 13170 [component: server] [BUG] Static paths loaded always from localhost in Bokeh 3.1.1
- 13195 [component: bokehjs] [BUG] WebGL with dashed line is not working when click_policy is muted
- 13196 Setting readonly properties in model constructors shouldn't be allowed
- 13257 [BUG] FileNotFoundError when setting icon for BoxSelectTool
- 13284 [component: bokehjs] Reset WebGL changed flags on data glyph not visual glyphs
- 13311 [component: tests] Bokeh build failing
- 13315 [component: bokehjs] [BUG] RangeTool allows target plot to pan beyond explicit range bounds
- 13323 [component: bokehjs] Layout is broken when using `RangeTool` and other weird behavior
- 13347 [component: bokehjs] Long tooltip can trigger viewport scrollbars
- 13369 [BUG] gridplot got multiple values for keyword argument 'logo'
- 13377 [component: bokehjs] [BUG] `value_throttled` being `Unset` prevents serialization of some widgets
- 13380 [component: tests] Examples tests are failing due to a missing dependency
- 13400 [component: build] Release build fails with `FileNotFoundError`
- 13407 [component: tests] Tests and CI is broken due to urllib3 incompatibility
* features:
- 2325 [component: bokehjs] Lasso select not working on patches
- 11571 [FEATURE] Make AutocompleteInput more usable by providing an option to match any part of the input items
- 11755 [FEATURE] Show scale in map
- 13200 [FEATURE] Preserve category information for categorical colormapping
- 13203 [FEATURE] Make BoxEditTool support Quad Model
- 13210 Unable to plot a polars.Series with bokeh 3
- 13211 [component: bokehjs] Allow inline LaTeX support
- 13295 Non-specific error when the DataFrame Used to construct a ColumnDataSource contains non-string keys
- 13339 [FEATURE] Allow zoom tools to scale subplots/subcoordinates
- 13403 [FEATURE] Transparent use on JupyterHub
- 13212 Add more options for specifying contour colors
- 13269 Add support for `ColorMap` (palette selector) widget
- 13366 Add stack_labels property to WeightedStackColorMapper
* tasks:
- 8807 Support scale factor for PNG output
- 12548 [component: docs] Unpin Sphinx theme
- 12625 export_png doesn't find chrome webdriver because it was installed as chromedriver-binary
- 13125 Replace utcnow and utcfromtimestamp function calls
- 13136 [component: bokehjs] WebGL support for image glyphs
- 13324 Selenium deprecation warning because of log_path
- 13329 Restore full top-menu in docs
- 13330 Foward-port 3.2.2 SRI hashes and changelog
- 13356 [component: docs] Update tutorials URL to new tutorial
- 13360 [component: docs] Explicitly document conf.py changes for bokeh.sphinxext
- 13385 [component: docs] [FEATURE] Document location of intersphinx file
- 13392 [component: docs] [BUG] Interspinx link added by me in 13386 is wrong
- 12068 [component: examples] Add a variant of ridgeplot example that uses sub-coordinates
- 13175 [component: bokehjs] Implement WebGL multi_line glyph
- 13193 [component: bokehjs] Hover tooltip for ImageStack glyph
- 13215 Use PEP 673 `Self` type instead of `TypeVar(..., bound=...)`
- 13227 Forward ports from 3.2
- 13301 [component: bokehjs] Improve WebGL conversion to ReGL AttributeConfig
- 13304 [component: tests] Allow to configure Chromium executable
- 13309 [component: tests] Allow to serve bokeh examples from bokehjs' devtools server
- 13327 [component: tests] Mark Test_webdriver_control and test_get_screenshot_as_png_* as selenium tests
- 13333 [component: bokehjs] Don't `set_data()` when `FactorRange.{start,end}` changes
- 13334 [component: bokehjs] Improve performance of invalidation of refs in bokehjs
- 13342 Upgrade to ruff 0.0.285
- 13343 [component: bokehjs] Control random (and np.random) seed in devtools' server
- 13352 [component: build] Upgrade to TypeScript 5.2
- 13353 [component: docs] 13276 fix issues in documentation part two
- 13368 [component: docs] Add more examples in the gallery
- 13376 [component: docs] added gallery json and png file to new example
- 13398 [component: docs] Clarify CODE_OF_CONDUCT.md escalation section
- 13399 [component: docs] Update 3.3.0 release notes
- 13405 [component: docs] fix tile_providery.py
- 13408 [component: examples] Correlogram example.
- 13417 [component: docs] Update and restructure categorical chapter
- 13418 Misc 3.3 docs changes
- 13419 [component: build] Add Python 3.12 to CI
```
### 3.2.2
```
--------------------
* bugfixes:
- 13265 [BUG] Merging tools in `gridplot` leads to wrong active state next to tool icon
- 13288 [BUG] construct_color_bar does not support ImageStack glyph
- 13307 [component: tests] Incorrect file docstrings in tests/support/plugins directory
- 13314 [BUG] CDS stream broken for larger rollover
* tasks:
- 13126 [component: examples] [BUG] Mismatch in GroupFilter documentation example between text and code
- 13305 [component: docs] 13276 easy fixes in documentation
- 13326 Backports for 3.2.2
```
### 3.2.1
```
--------------------
* bugfixes:
- 13139 [component: bokehjs] Error in downstream library when rendering WebGL canvas with width or height of zero
- 13162 [component: docs] Broken link in docs/first_steps/first_steps_9.html
- 13248 [component: bokehjs] [BUG] Browser freezes when deleting notebook cell containing plot with TileSource
- 13252 [component: bokehjs] [BUG] plots in png generated by SaveTool on gridplot layout overlap
- 13255 [component: bokehjs] [BUG] Enabling/Disabled DatePickers does not work
- 13262 [component: bokehjs] [BUG] Legend draws 3 columns but `ncols` is set to 2
- 13254 [component: bokehjs] Use `../core/kinds` instead of `core/kinds` in imports
- 13270 [component: docs] Update theme.py
- 13274 [component: docs] fix unterminated string literals in example code [skip ci]
* tasks:
- 13226 [component: bokehjs] [FEATURE] make bokehjs ndarrays cloneable to enable client-side image transforms
- 13272 [component: docs] update docs to show legend support for `nrows` and `ncols`
- 13271 Backports for 3.2.1
```
### 3.2
```
--------------------
* bugfixes:
- 11852 [BUG] DataRange.renderers.append fails silently
- 12078 [component: bokehjs] [BUG] Non-circle hover glyphs permanently rendered with vline/hline mode
- 12718 [component: bokehjs] [BUG] Changing view's filter with group based legend causes redraw in canvas to be shifted
- 12951 [component: bokehjs] [BUG] bokeh.models.Tooltip causes rendering error
- 12956 [component: bokehjs] [BUG] DataTable requires custom scaling in Bokeh 3.1.0
- 13015 [BUG] select(CategoricalColorMapper) returns an empty array
- 13112 [component: bokehjs] [BUG] Setting source.selected.indices fails on glyphs that contain text
- 13134 [component: bokehjs] [BUG] IndexFilter indices no longer accepts numpy.ndarray
- 13150 [component: bokehjs] [BUG] Nodes of networkx graph not rendered using webgl backend
- 13152 [component: tests] Tests fail due to `requests` and `urllib3` 2.x incompatibility
- 13159 [component: docs] [BUG] Small typos in the docs
- 13182 [component: bokehjs] [BUG] legend_field labels no longer update with CDS in Bokeh 3
- 13187 [component: docs] [BUG] Missing import in minimal example in dom.rst
- 13192 [component: bokehjs] [BUG] Cannot reset enabled_dates in DatePicker
- 13197 Release deploy fails with `AccessDenied` when publishing documentation
- 13217 [component: bokehjs] js_link is broken
- 13222 [component: docs] Search bar is missing from dev docs
- 13135 [component: docs] Fix typo
- 13202 [component: docs] Update theme.py
* features:
- 7093 [component: bokehjs] A ColorBar needs a label, as a plot needs a ColorBar
- 12062 [component: bokehjs] [FEATURE] Support varea with step lines
- 12532 [FEATURE] Access to know whether user ctrl-clicks, shift-clicks, or command-clicks in CustomJS callback
- 12829 [FEATURE] Independent extra ranges in a single figure
- 13036 Ability to rotate axis labels by adding 'axis_label_orientation'
- 12677 Add support for `HSpan`, `VSpan`, `HStrip` and `VStrip`
- 12704 Add webgl support to `Annulus`, `Wedge` and `AnnularWedge`
- 12812 Add support for ES module (`import`/`export` syntax) callbacks
* tasks:
- 7156 [component: build] Standalone mode: images referenced in CSS files are missing
- 12278 [component: tests] Add a method for generating bokehjs' JSON tests assests
- 12872 [BUG] ResourceWarning: unclosed file
- 12936 [FEATURE] Update ruff to include W291 (trailing whitespace)
- 13058 Check if sample data files are outdated before loading them
- 13114 [BUG] bokeh.embed.file_html produces unhelpful error message if passing a Document with no root models
- 13116 [component: examples] Burtin example has a bad tick format
- 13117 Update AWS CI role for docs deploy
- 13122 [component: build] sdist builds require git tags
- 13143 [BUG] Ruff pyupgrade keep-runtime-annotations is obsolete.
- 12720 Drop support for Python 3.8
- 12920 [component: docs] Added metadata to legends.py
- 12922 [component: examples] Updated colors of Band Plots
- 12923 [component: docs] added accessible color palette
- 12944 Forward ports from 3.1
- 12950 added metadata to twin_axis.py
- 12953 [component: examples] Update to Bokeh example plot: accessible palette with new images
- 12959 [component: examples] Increased alpha of the circle plot
- 12967 [component: docs] 11765 add metadata to plots
- 12970 Added Images for new Band Plots
- 12975 [component: docs] added metadata to legends_item_visibility.py
- 12977 [component: build] Upgrade to TypeScript 5.0
- 12979 [component: docs] Add metadata to plots (11765)
- 12982 [component: docs] Update example metadata
- 12983 [component: examples] Improve color contrast for accessibility
- 12984 [component: docs] Added reference for server.py file
- 12990 [component: docs] Update text.py with metadata
- 12991 [component: docs] Added metadata to setvalue.py
- 12992 [component: docs] Update metadata to legend_hide and tile_xyzservices
- 12993 [component: docs] Added metadata to label.py and whisker.py
- 12995 [component: docs] Updated server.py reference
- 12998 [component: docs] Added metadata to band.py for Band Plots
- 12999 [component: examples] Updated colors of Twin Axes Plots
- 13006 [component: docs] Add metadata to image alpha
- 13012 [component: docs] Added metadata to examples/plotting/aspect.py
- 13013 [component: examples] Updated colors of Slope Plots
- 13018 [component: examples] Updating nested_colormapped with new accessible palettes
- 13022 [component: docs] Line select metadata
- 13023 [component: docs] 11765 maps cities
- 13024 [component: examples] changed span example lines from solid to dashed
- 13031 Updated colors of Mixed Plots
- 13043 [component: docs] added metadata to tooltip_content.py, arc.py
- 13047 [component: docs] Added metadata to theme_glyphs
- 13050 [component: docs] added metadata to examples/plotting/polar.py
- 13051 [component: docs] Added metadata for examples/models/toolbars2.py
- 13069 [component: examples] Disable `na_filter` instead of ignoring incorrectly parsed NaNs
- 13094 [component: docs] Update docs infrastructure
- 13140 [component: bokehjs] Do not blit webgl canvas if width or height are zero
- 13142 Improve handling of resources in lower level embed APIs
- 13145 Upgrade to ruff 0.0.269 and further modernize bokeh's codebase
- 13146 [component: bokehjs] Separate type imports from value/mixed imports in bokehjs
- 13153 [component: server] Allow to recover from deserialization of a previously seen ref
- 13169 [component: docs] Don't turn warnings into errors in sphinx-build
- 13173 [component: bokehjs] Clean up the rest of eslint warnings and refactor its config
- 13174 Do not resolve default descriptor value if already present in unstable defaults
- 13178 [component: docs] Add ColorBar to LaTeX docs
- 13208 [component: docs] Update bokeh 3.2.0 release notes
- 13220 [component: examples] remove text duplicate in burtin.py
- 13221 [component: examples] Remove unneeded backslash in LaTeX [skip ci]
```
### 3.1.1
```
--------------------
* bugfixes:
- 10547 [BUG] Division element id of components can be invalid for CSS
- 12400 [component: server] [BUG] Domain is not resolved correctly when using BOKEH_RESOURCES=server
- 12905 `load_notebook()` uses non-unique DOM element IDs
- 12913 [component: bokehjs] [BUG] Artifacts on the signal when using WebGL to plot
- 12926 [component: build] bokehjs' build fails on Windows 10 due to creating symlinks
- 13056 [component: examples] `autocompleteinput.py` example doesn't work with pandas 2.0
- 13060 [component: docs] `README.md` in `examples/` doesn't reflect the contents of the directory
- 13081 [component: bokehjs] [BUG] Incorrect behaviour of Slider control on Safari (macOS)
- 13104 [component: bokehjs] Heavy `lazy_initialize()` can result in a race condition
- 13108 [BUG] Fix broken link to tools guide
- 13062 Fix bokeh.sphinxext.util after PR 13041
- 13070 [component: server] Fix `MultiRootStaticHandler` after PR 13041
- 13086 [component: docs] fix broken docs refs
- 13100 [component: bokehjs] Fix race conditions related to layout resize and updates
* tasks:
- 6683 [component: bokehjs] accent are sorted last in sorted Tablecolumn
- 10408 [component: bokehjs] Investigate duplicated `ctx.stroke()` in various hatch patterns
- 11335 [component: build] Display a list of installed dependencies and related software in CI
- 11782 [component: bokehjs] [FEATURE] Propagate Name attribute to js for all Models
- 12729 [component: docs] [BUG] [docs] Serializer cannot serialize decimal.Decimal
- 12790 [component: tests] Complete unit tests for BokehJS mathematical array functions
- 12814 [component: build] Check for existence of git tags early on in build process
- 12909 [component: docs] dev guide has incorrect links to executables in the github
- 12914 Disable miniconda-setup Post step on Windows
- 12954 Prune latest docs properly
- 13001 [component: docs] Carriage returns error on Windows systems. [BUG]
- 13053 [FEATURE] Set `Cross-Origin-Resource-Policy: cross-origin`
- 12939 [component: docs] add ref
- 12963 [component: tests] Temporarily disable docker_from_wheel test in CI
- 12973 [component: docs] Fix tiny error in doc code-block
- 13003 [component: docs] Added metadata to line_on_off.py
- 13009 [component: docs] Add dropdowns to contributor docs troubleshooting
- 13026 [component: docs] Tile source metadata
- 13035 Increase the number of iterations in CSS safe ID generator
- 13054 [component: docs] Update In-kind sponsors list
- 13065 [component: build] Allow `static/` symlinks in `BOKEHJS_ACTION=install pip install -e .`
- 13084 [component: docs] Update first_steps_1.rst
- 13103 Backports for 3.1.1
```
### 3.1
```
--------------------
* bugfixes:
- 5829 [component: bokehjs] PolySelectTool area remains the same at all zoom levels
- 6931 "Slider" widget: omitting a required argument does not produce error message
- 8180 [component: bokehjs] HoverTool not working with RangeTool
- 9047 [component: bokehjs] [BUG] Can't interact with multiple RangeTools
- 9381 [component: bokehjs] [BUG] range_tool broken on inverted axes
- 9752 [component: bokehjs] [BUG] Hover tool not working correctly for rotated rectangles
- 10749 [component: bokehjs] [BUG] Plaintext copy-pasted from DataTable has a different order
- 10769 [component: bokehjs] [BUG] Dates in DataTables appear as zero-epoch
- 11830 [BUG] TypeError when customizing tools icon using PIL Image
- 11955 [component: bokehjs] [BUG] Replacing filter of CDSView does not trigger update of DataTable
- 11969 [component: bokehjs] [BUG] DataTable rendering behaves inconsistently for different indices of an IndexFilter
- 11994 [BUG] Allow reset of DatePicker to empty date
- 12315 [component: bokehjs] [BUG] ColumnDataSource does not work with NumPy floating-point scalars
- 12331 [component: bokehjs] [FEATURE] enable linebreaks in legend labels
- 12379 Figure out why `HexTile` with `pointytop` orientation and `aspect_scale=0.5` fails
- 12410 [component: bokehjs] Hover tool can point to data outside of the frame
- 12540 Handle Datetime values consistently in annotations
- 12574 [component: docs] [BUG] `bokeh.core.json_encoder.serialize_json` doesn't work as shown in example
- 12584 [component: bokehjs] [BUG] MultiChoice dropdown and autocomplete
- 12592 [component: bokehjs] Rect hit testing on circles is overzealous, at least by the default
- 12610 light_minimal theme is missing
- 12614 [component: bokehjs] [BUG] sizing_mode='stretch_both' broken in gridplot (bokeh 3.0.2)
- 12624 [BUG] bokeh v3 ColumnDataSource.selected.indices no longer works with ndarray
- 12666 [BUG] Performance differences between v2 and v3
- 12674 [component: docs] Ref guide autoclasstoc links are missing
- 12678 [component: bokehjs] [BUG] tooltips disappear when range of image is reversed
- 12700 [component: bokehjs] ReGL initialization is excessively and unnecessarily slow in tests
- 12709 [component: bokehjs] [BUG] DatePicker kills layout
- 12710 [component: docs] [BUG] CheckboxGroup minimal example in the documentation (Widgets and DOM elements 3.0.3) does not work properly
- 12714 [component: bokehjs] [BUG] Updating DatePicker css_classes from callbacks not working
- 12719 Type check errors due to updated `pandas-stubs`
- 12730 [component: docs] [BUG] No such file: examples/plotting/marker_map.py
- 12731 [component: bokehjs] [BUG] Possible regression: pinching not working with wheelzoomtool
- 12735 [component: bokehjs] [BUG] hatching scales differently on different displays
- 12756 [component: examples] Custom tooltip example mis-renders
- 12757 [component: bokehjs] Custom extensi
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.31.2.
Changelog
### 0.31.2 ``` What's Changed Bugs fixed: - broken support for `Optional[List]` (but not `Optional[list]`), a narrower case of the problem fixed earlier (issue 216) by neithere, thanks to thorwhalen Full changelog: https://argh.readthedocs.io/en/latest/changes.html Full diff: https://github.com/neithere/argh/compare/v0.31.1...v0.31.2 ``` ### 0.31.1 ``` *This text is a brief summary of the full changelog entry: https://argh.readthedocs.io/en/latest/changes.html#version-0-31-1-2024-01-19* What's Changed Bugs fixed: - broken support for type alias `List` (issue 216), thanks to thorwhalen. Enhancements: - cleaned up the README, rearranged other documentation. **Full diff**: https://github.com/neithere/argh/compare/v0.31.0...v0.31.1 ``` ### 0.31.0 ``` What's Changed This release is a major step forward for Argh. It paves the way to a fully annotations-driven approach where decorators will remain a mere legacy. *This text is a brief summary of the full changelog entry: https://argh.readthedocs.io/en/latest/changes.html#version-0-31-0-2023-12-30* Breaking changes: * The typing hints introspection feature is automatically enabled for any command (function) which does **not** have any arguments specified via `arg` decorator. * A small change in the legacy argument mapping policy `BY_NAME_IF_HAS_DEFAULT` concerning the order of variadic positional vs. keyword-only arguments. * Removed the previously deprecated decorator `expects_obj`. Enhancements: * Type hints: basic usage to infer argument types (fixes 203) by neithere in https://github.com/neithere/argh/pull/211 * Support realtime output through a pipe (fixes 145) by neithere in https://github.com/neithere/argh/pull/202 * High-level functions `argh.dispatch_command()` and `argh.dispatch_commands()` now accept a new parameter `old_name_mapping_policy`. Deprecated: - the `namespace` argument in `argh.dispatch()` and `argh.parse_and_resolve()`. Rationale: continued API cleanup. It's already possible to mutate the namespace object between parsing and calling the endpoint; it's unlikely that anyone would need to specify a custom namespace class or pre-populate it before parsing. Please file an issue if you have a valid use case. Other changes: - Refactoring. **Full Diff**: https://github.com/neithere/argh/compare/v0.30.5...v0.31.0 ``` ### 0.30.5 ``` What's Changed * fix: nargs + list as default value (212) by neithere in https://github.com/neithere/argh/pull/213 (thanks to pioio for bug report) * feat: argspec guessing: if `nargs` is not specified but the default value is a list, `nargs="*"` is assumed and passed to argparse. **Full Changelog**: https://github.com/neithere/argh/compare/v0.30.4...v0.30.5 Please refer to the official changelog for more details: https://argh.readthedocs.io/en/latest/changes.html ``` ### 0.30.4 ``` What's Changed 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. — by neithere **Full Changelog**: https://github.com/neithere/argh/compare/v0.30.3...v0.30.4 ``` ### 0.30.3 ``` What's Changed * fix: regression — `arg` deco failing with underscore in positional arg name (fixes 208) by neithere in https://github.com/neithere/argh/pull/209 (thanks to kaetir for a report with a reproducible example) **Full Changelog**: https://github.com/neithere/argh/compare/v0.30.2...v0.30.3 ``` ### 0.30.2 ``` What's Changed * fix: raise exception for non-migrated commands (fixes 206) by neithere (reported and valuable feedback given by valentin-feron) in https://github.com/neithere/argh/pull/207 **Full Changelog**: https://github.com/neithere/argh/compare/v0.30.1...v0.30.2 ``` ### 0.30.1 ``` What's Changed Bugs fixed: - Regression: certain special values in argument default value would cause an exception (204 reported by mfussenegger, fixed by neithere) Enhancements: - Improved the tutorial by neithere - 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 by neithere Other changes: - Added `py.typed` marker file for PEP-561 by neithere Details Commits: https://github.com/neithere/argh/compare/v0.30.0...v0.30.1 Full changelog: https://argh.readthedocs.io/en/latest/changes.html#version-0-30-1 ``` ### 0.30.0 ``` What's Changed * Remove previously deprecated code (closes 184) by neithere in https://github.com/neithere/argh/pull/188 * Type annotations for existing code (closes 185) by neithere in https://github.com/neithere/argh/pull/189 * Deprecate `help` command alias and `expects_obj` decorator by neithere in https://github.com/neithere/argh/pull/192 * Document usage with class methods (closes 138) by neithere in https://github.com/neithere/argh/pull/194 * Remove pre_call, expose finer control over dispatching (re 63) by neithere in https://github.com/neithere/argh/pull/193 * Add support for Python 3.12 (closes 196) by neithere in https://github.com/neithere/argh/pull/195 * Refactor assembling module (closes 197) by neithere in https://github.com/neithere/argh/pull/198 * Keyword-only arguments as options (closes 191) by neithere in https://github.com/neithere/argh/pull/199 **Full Changelog**: https://github.com/neithere/argh/compare/v0.29.4...v0.30.0 ``` ### 0.30.0alpha ``` What's Changed * Remove previously deprecated code (closes 184) by neithere in https://github.com/neithere/argh/pull/188 * Type annotations for existing code (closes 185) by neithere in https://github.com/neithere/argh/pull/189 * Deprecate `help` command alias and `expects_obj` decorator by neithere in https://github.com/neithere/argh/pull/192 * Document usage with class methods (closes 138) by neithere in https://github.com/neithere/argh/pull/194 * Remove pre_call, expose finer control over dispatching (re 63) by neithere in https://github.com/neithere/argh/pull/193 * Add support for Python 3.12 (closes 196) by neithere in https://github.com/neithere/argh/pull/195 * Refactor assembling module (closes 197) by neithere in https://github.com/neithere/argh/pull/198 * Keyword-only arguments as options (closes 191) by neithere in https://github.com/neithere/argh/pull/199 **Full Changelog**: https://github.com/neithere/argh/compare/v0.29.4...v0.30.0-alpha ``` ### 0.29.4 ``` Bugs fixed: - Test coverage reported as <100% when argcomplete is installed (187) ``` ### 0.29.3 ``` This is a technical release for packaging purposes. ``` ### 0.29.2 ``` This is a technical release for packaging purposes. ``` ### 0.29.1 ``` This is a technical release for packaging purposes. ``` ### 0.29.0 ``` What's Changed 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 (by ekimekim in 161). Deprecated: * Renamed arguments in `add_commands()` (165 / 178): - `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 argument by neithere in 181 Other changes: * Avoid depending on iocapture by using pytest's built-in feature by mr-c in 177 * chore: publishing to prod PyPI by neithere in 173 * test: add coverage for action="count" (127) by neithere in 183 New Contributors * ekimekim made their first contribution in https://github.com/neithere/argh/pull/161 * mr-c made their first contribution in https://github.com/neithere/argh/pull/177 **Full Changelog**: https://github.com/neithere/argh/compare/v0.28.1...v0.29.0 ``` ### 0.28.1 ``` What's Changed * Add Github workflow to publish the release to PyPI by neithere in https://github.com/neithere/argh/pull/167 * fix: argcomplete-related test by neithere in 172 (reported in 169 by kloczek) * fix: assumed prog name in tests by neithere in 171 (reported in 170 by mgorny) **Full Changelog**: https://github.com/neithere/argh/compare/v0.28.0...v0.28.1 Thanks to everyone who reported ``` ### 0.28.0 ``` A major modernisation and 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 (63) can help improve the library to accomodate it in a proper way. - 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. **Full Changelog**: https://github.com/neithere/argh/compare/v0.27.2...v0.28.0 ``` ### 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) Contributors: mtelka (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). Contributors: dwf (105), jwilk (110), jakirkham (112), brilee, sanga (116), Gidgidonihah (134), mrdavidlaing (153), jelly (154), mtelka (154), hugovk (reviewing PRs). ```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.2.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.3.
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.8.2.
Changelog
### 1.8.2 ``` ------------- Released 2024-05-06 - Simplify type for ``_async_wrapper`` and ``_sync_wrapper`` arguments. :pr:`156` ``` ### 1.8.1 ``` ------------- Released 2024-04-28 - Restore identity handling for ``str`` and ``int`` senders. :pr:`148` - Fix deprecated ``blinker.base.WeakNamespace`` import. :pr:`149` - Fix deprecated ``blinker.base.receiver_connected import``. :pr:`153` - Use types from ``collections.abc`` instead of ``typing``. :pr:`150` - Fully specify exported types as reported by pyright. :pr:`152` ``` ### 1.8.0 ``` ------------- Released 2024-04-27 - Deprecate the ``__version__`` attribute. Use feature detection, or ``importlib.metadata.version("blinker")``, instead. :issue:`128` - Specify that the deprecated ``temporarily_connected_to`` will be removed in the next version. - Show a deprecation warning for the deprecated global ``receiver_connected`` signal and specify that it will be removed in the next version. - Show a deprecation warning for the deprecated ``WeakNamespace`` and specify that it will be removed in the next version. - Greatly simplify how the library uses weakrefs. This is a significant change internally but should not affect any public API. :pr:`144` - Expose the namespace used by ``signal()`` as ``default_namespace``. :pr:`145` ``` ### 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 ``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` - ``int`` instances with the same value will be treated as the same sender, the same as ``str`` instances. :pr:`83` - Add a ``send_async`` method 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 initial 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.4.2.
Changelog
### 3.4 ``` -------------------- * bugfixes: - 6826 [component: bokehjs] Tap events not registering during MouseMove events - 8508 [component: bokehjs] Tap event latency - 10782 [component: bokehjs] Typo in prelude.ts - 11794 `BOKEH_DEV=true` assumes file resources when using the server - 12088 [component: bokehjs] [BUG] Select widget has no value if only options are provided but the UI suggests otherwise - 12616 [component: bokehjs] [BUG] installing bokehjs from npm doesn't pull in dependencies - 12870 [component: bokehjs] [BUG] DatetimeTickFormatter strips leading 0 in "%H" format, works in " %H" - 13071 [component: bokehjs] [BUG] Pinching zoom-in on touch devices - 13131 [component: bokehjs] roots added in a callback are not displayed - 13157 [component: bokehjs] Prevent blink when updating ImageURL source - 13281 [component: bokehjs] font-size does not depend on --font-size css variable - 13293 [component: bokehjs] [BUG] _hit_point() is broken in VAreaStep - 13337 [component: bokehjs] [BUG] `output_notebook(resources=INLINE)` in jupyter lab does not load jquery - 13362 [component: bokehjs] [BUG] Inconsistent handling of background and border fill alpha - 13378 [component: bokehjs] [BUG] `Axis.major_label_overrides` being `{}` causing error in deserialization - 13389 Unable to clone models with readonly properties - 13421 `bokehjsdir(dev=True)` doesn't resolve `bokehjs/build` anymore - 13441 [component: bokehjs] [BUG] filter.booleans doesn't trigger the re-render of the plot - 13483 [component: bokehjs] [BUG] RangeTool does not respect target `max_interval` - 13499 [BUG] Latex does not render in Notebook - 13500 [component: bokehjs] [BUG] Box edit tool using all supported glyphs - 13520 [component: bokehjs] [BUG] Template does not seem to render correctly in Firefox - 13524 [component: docs] [BUG] Missing SRI hash for version 2.2.2 - 13525 [component: docs] [BUG] Unexpected attribute 'size' to Circle - 13536 [component: bokehjs] ColumnDataSource.selected.indices incompatibility with CDSView.filter.indices [BUG] - 13555 [component: bokehjs] [BUG] image hover value is wrong on inverted axes - 13558 [component: build] Release build CI workflow fails - 13563 [BUG] Return type of the Model.__new__ function is incorrect - 13583 [component: tests] `minimal-deps` CI job fails with "coroutine was never awaited" - 13598 [component: bokehjs] [BUG] Improve NaT support for HoverTool - 13607 [component: bokehjs] [BUG] Multiple inline math elements in different axes causing axis labels to disappear - 13611 [component: bokehjs] [BUG] Layout won’t update after curdoc().unhold() - 13637 [BUG] Regression handling glyph border_radius that is a dict - 13648 [component: bokehjs] [BUG] WebGL Rect with large corner radius rendered incorrectly - 13678 [component: bokehjs] [BUG] Using tap tool makes image glyph disappear with webgl enabled - 13679 [component: examples] Deprecation warning in notebook_embed.ipynb - 13688 Useless error formatting can be sometimes costly in on_change setup - 13698 [component: docs] Missing links in docs in "Third-party integrations" page - 13716 Errors related to MIN_PREFERRED_MAX_WIDTH while building the docs - 13717 [component: docs] Broken page in the docs - 13729 [component: docs] [BUG] Documentation Missing space character in the command to enable jupyter server extension in jupyterLab docs. - 13739 [component: docs] [BUG] Documentation: TypeScript in Custom Extensions section fails to compile - 13743 VBox is not working in 3.4.0rc1 - 13755 [component: bokehjs] [BUG] Button does not updated when property is changed - 13756 [component: bokehjs] `Tooltip` node positioning is wrong when the target is offset - 13713 [component: build] Fix logic in plugin prelude - 13718 [component: docs] add MathTextGlyph to imports - 13737 [component: build] Include generated TS modules in extensions' build - 13741 [component: bokehjs] Avoid spurious warning about Py/Js version mismatch - 13758 [component: docs] fix broken link in first_steps_9.rst * features: - 2367 Different sizes not used for selection & nonselection glyphs - 4284 Add attribution annotation - 4416 Add support Title/Label bounding box padding - 8153 [component: bokehjs] Feature Request: Hide some (but not all) tools from toolbar - 8519 Overlapping attribution for labels tiles - 8898 [component: bokehjs] Allow Select to accept non-string option values - 9843 categorical slider - 10317 [BUG] Cannot deselect with TapTool - 10583 The empty_value property of EditTools needs generalizing - 12243 [FEATURE] DataTable from_dataframe() - 12651 [BUG] bokeh.plotting.graph.from_networkx fails on graphs having nodes with string index values - 13291 [FEATURE] Inline widgets for data entry - 13349 [component: bokehjs] Tooltip for tab panels - 13682 [FEATURE] - DataTable - Conditional Formatting - 13697 [component: bokehjs] [BUG] HoverTool can't adress source with `ö` - 13612 Add support for math text glyphs - 13625 Allow users to provide custom units of measurement * tasks: - 3529 Unify dev and non-minified resources - 9684 [component: bokehjs] If BokehJS isn't available, error message should be displayed - 10157 [component: examples] Replacing Iris data with penguin data - 12941 [component: build] Don't upload ESM files to CDN - 13246 Complete the consolidation of scatter markers in bokeh.plotting - 13381 [component: docs] Document new-style (ESM) JS callbacks - 13387 [component: docs] [FEATURE] Improving the "Deployment scenario" section of the user guide - 13430 [component: build] Split up _sri.json - 13485 Update contour line calculations to use ContourPy's LineType.ChunkCombinedNan - 13533 Errors in codebase CI runs using MyPy 1.7.0 - 13570 [component: docs] Add documentation and tests for non-visual overrides (PR 13554) - 13585 [component: bokehjs] [BUG] HTML `<label>` elements are not referencing the item they are labeling - 13629 Use globally unique and CSS safe IDs in `<script type="application/json">` - 13667 [BUG] Display Greek small letter mu - 13669 [component: examples] Stadia tiles not displaying - 13680 Remove year or year range from copyright notices - 13700 [component: docs] [BUG] Outdated link in warning for standalone Python callback - 13734 [component: docs] Typo in the documentation related to writing tests in the Contribute section - 13736 [component: docs] App README links are all old / bad - 13096 [component: examples] Show how to reference the same field multiple times in hover tool's formatters - 13448 Use `Never` type if function doesn't return - 13449 [component: bokehjs] Use curly brackets in bokehjs for all statements - 13450 [component: bokehjs] Remove `bokehjs/src/lib/testing.ts` - 13451 [component: bokehjs] Add support for function callbacks in bokehjs - 13465 [component: tests] Robustify type expectations greatly reduce `!` usage in tests - 13470 [component: examples] simplify and use more latex ticks - 13481 [component: bokehjs] Fix unawaited promises and modernize interactive tests - 13493 [component: tests] Optimize performance of loading visual baselines - 13537 Rename `ColorMap` to `PaletteSelect` and improve it - 13539 [component: docs] Update server example URLs - 13540 [component: bokehjs] Decouple `Tool` event handlers from state/active management - 13565 [component: build] Migrate bokehjs' bundles from ES2017 to ES2020 - 13575 [component: examples] Added metadata to position_toolbar.py, position_toolbar_clash.py, and toolbar_autohide.py - 13582 [component: tests] Sort defaults' baseline by fully qualified names - 13586 [component: bokehjs] Added `for` tag to HTML `<label>` element to reference input fields - 13601 [component: bokehjs] Upgrade TypeScript to version 5.3 and upgrade other depenencies - 13605 [component: build] Relativize imports paths also in type declaration files (`*.d.ts`) - 13610 [component: build] Don't use implicit command-line arguments in bokehjs - 13651 [component: bokehjs] Use simpler shader for rect-like glyphs without rounded corners - 13689 Improve `PlainObjectProxy` and remove unnecessary `hasOwnProperty()` - 13693 Upgrade nodejs to 20.x (LTS) in CI - 13701 [component: bokehjs] Normalize enum definitions in bokehjs; remove redundancy - 13703 [component: bokehjs] Finalize migration to obligatory curly brackets - 13707 Upgrade mypy, pandas-stubs and ruff and fix issues - 13709 [component: docs] Update examples for legends - 13722 Rename property kinds that conflict with JS builtins - 13724 [component: tests] Ignore `pytest.PytestUnraisableExceptionWarning` - 13744 [component: docs] Update bokeh 3.4.0 release notes - 13746 [component: docs] remove double space in example code - 13753 [component: docs] Add documentation for `ScaleBar` annotation ``` ### 3.3 ``` -------------------- * bugfixes: - 7671 [component: bokehjs] Tool tip remains while using a scroll tool - 11273 [component: bokehjs] [BUG] hover tooltip is cut off when the tooltip is tall and hover near the top of the plot - 13170 [component: server] [BUG] Static paths loaded always from localhost in Bokeh 3.1.1 - 13195 [component: bokehjs] [BUG] WebGL with dashed line is not working when click_policy is muted - 13196 Setting readonly properties in model constructors shouldn't be allowed - 13257 [BUG] FileNotFoundError when setting icon for BoxSelectTool - 13284 [component: bokehjs] Reset WebGL changed flags on data glyph not visual glyphs - 13311 [component: tests] Bokeh build failing - 13315 [component: bokehjs] [BUG] RangeTool allows target plot to pan beyond explicit range bounds - 13323 [component: bokehjs] Layout is broken when using `RangeTool` and other weird behavior - 13347 [component: bokehjs] Long tooltip can trigger viewport scrollbars - 13369 [BUG] gridplot got multiple values for keyword argument 'logo' - 13377 [component: bokehjs] [BUG] `value_throttled` being `Unset` prevents serialization of some widgets - 13380 [component: tests] Examples tests are failing due to a missing dependency - 13400 [component: build] Release build fails with `FileNotFoundError` - 13407 [component: tests] Tests and CI is broken due to urllib3 incompatibility * features: - 2325 [component: bokehjs] Lasso select not working on patches - 11571 [FEATURE] Make AutocompleteInput more usable by providing an option to match any part of the input items - 11755 [FEATURE] Show scale in map - 13200 [FEATURE] Preserve category information for categorical colormapping - 13203 [FEATURE] Make BoxEditTool support Quad Model - 13210 Unable to plot a polars.Series with bokeh 3 - 13211 [component: bokehjs] Allow inline LaTeX support - 13295 Non-specific error when the DataFrame Used to construct a ColumnDataSource contains non-string keys - 13339 [FEATURE] Allow zoom tools to scale subplots/subcoordinates - 13403 [FEATURE] Transparent use on JupyterHub - 13212 Add more options for specifying contour colors - 13269 Add support for `ColorMap` (palette selector) widget - 13366 Add stack_labels property to WeightedStackColorMapper * tasks: - 8807 Support scale factor for PNG output - 12548 [component: docs] Unpin Sphinx theme - 12625 export_png doesn't find chrome webdriver because it was installed as chromedriver-binary - 13125 Replace utcnow and utcfromtimestamp function calls - 13136 [component: bokehjs] WebGL support for image glyphs - 13324 Selenium deprecation warning because of log_path - 13329 Restore full top-menu in docs - 13330 Foward-port 3.2.2 SRI hashes and changelog - 13356 [component: docs] Update tutorials URL to new tutorial - 13360 [component: docs] Explicitly document conf.py changes for bokeh.sphinxext - 13385 [component: docs] [FEATURE] Document location of intersphinx file - 13392 [component: docs] [BUG] Interspinx link added by me in 13386 is wrong - 12068 [component: examples] Add a variant of ridgeplot example that uses sub-coordinates - 13175 [component: bokehjs] Implement WebGL multi_line glyph - 13193 [component: bokehjs] Hover tooltip for ImageStack glyph - 13215 Use PEP 673 `Self` type instead of `TypeVar(..., bound=...)` - 13227 Forward ports from 3.2 - 13301 [component: bokehjs] Improve WebGL conversion to ReGL AttributeConfig - 13304 [component: tests] Allow to configure Chromium executable - 13309 [component: tests] Allow to serve bokeh examples from bokehjs' devtools server - 13327 [component: tests] Mark Test_webdriver_control and test_get_screenshot_as_png_* as selenium tests - 13333 [component: bokehjs] Don't `set_data()` when `FactorRange.{start,end}` changes - 13334 [component: bokehjs] Improve performance of invalidation of refs in bokehjs - 13342 Upgrade to ruff 0.0.285 - 13343 [component: bokehjs] Control random (and np.random) seed in devtools' server - 13352 [component: build] Upgrade to TypeScript 5.2 - 13353 [component: docs] 13276 fix issues in documentation part two - 13368 [component: docs] Add more examples in the gallery - 13376 [component: docs] added gallery json and png file to new example - 13398 [component: docs] Clarify CODE_OF_CONDUCT.md escalation section - 13399 [component: docs] Update 3.3.0 release notes - 13405 [component: docs] fix tile_providery.py - 13408 [component: examples] Correlogram example. - 13417 [component: docs] Update and restructure categorical chapter - 13418 Misc 3.3 docs changes - 13419 [component: build] Add Python 3.12 to CI ``` ### 3.2.2 ``` -------------------- * bugfixes: - 13265 [BUG] Merging tools in `gridplot` leads to wrong active state next to tool icon - 13288 [BUG] construct_color_bar does not support ImageStack glyph - 13307 [component: tests] Incorrect file docstrings in tests/support/plugins directory - 13314 [BUG] CDS stream broken for larger rollover * tasks: - 13126 [component: examples] [BUG] Mismatch in GroupFilter documentation example between text and code - 13305 [component: docs] 13276 easy fixes in documentation - 13326 Backports for 3.2.2 ``` ### 3.2.1 ``` -------------------- * bugfixes: - 13139 [component: bokehjs] Error in downstream library when rendering WebGL canvas with width or height of zero - 13162 [component: docs] Broken link in docs/first_steps/first_steps_9.html - 13248 [component: bokehjs] [BUG] Browser freezes when deleting notebook cell containing plot with TileSource - 13252 [component: bokehjs] [BUG] plots in png generated by SaveTool on gridplot layout overlap - 13255 [component: bokehjs] [BUG] Enabling/Disabled DatePickers does not work - 13262 [component: bokehjs] [BUG] Legend draws 3 columns but `ncols` is set to 2 - 13254 [component: bokehjs] Use `../core/kinds` instead of `core/kinds` in imports - 13270 [component: docs] Update theme.py - 13274 [component: docs] fix unterminated string literals in example code [skip ci] * tasks: - 13226 [component: bokehjs] [FEATURE] make bokehjs ndarrays cloneable to enable client-side image transforms - 13272 [component: docs] update docs to show legend support for `nrows` and `ncols` - 13271 Backports for 3.2.1 ``` ### 3.2 ``` -------------------- * bugfixes: - 11852 [BUG] DataRange.renderers.append fails silently - 12078 [component: bokehjs] [BUG] Non-circle hover glyphs permanently rendered with vline/hline mode - 12718 [component: bokehjs] [BUG] Changing view's filter with group based legend causes redraw in canvas to be shifted - 12951 [component: bokehjs] [BUG] bokeh.models.Tooltip causes rendering error - 12956 [component: bokehjs] [BUG] DataTable requires custom scaling in Bokeh 3.1.0 - 13015 [BUG] select(CategoricalColorMapper) returns an empty array - 13112 [component: bokehjs] [BUG] Setting source.selected.indices fails on glyphs that contain text - 13134 [component: bokehjs] [BUG] IndexFilter indices no longer accepts numpy.ndarray - 13150 [component: bokehjs] [BUG] Nodes of networkx graph not rendered using webgl backend - 13152 [component: tests] Tests fail due to `requests` and `urllib3` 2.x incompatibility - 13159 [component: docs] [BUG] Small typos in the docs - 13182 [component: bokehjs] [BUG] legend_field labels no longer update with CDS in Bokeh 3 - 13187 [component: docs] [BUG] Missing import in minimal example in dom.rst - 13192 [component: bokehjs] [BUG] Cannot reset enabled_dates in DatePicker - 13197 Release deploy fails with `AccessDenied` when publishing documentation - 13217 [component: bokehjs] js_link is broken - 13222 [component: docs] Search bar is missing from dev docs - 13135 [component: docs] Fix typo - 13202 [component: docs] Update theme.py * features: - 7093 [component: bokehjs] A ColorBar needs a label, as a plot needs a ColorBar - 12062 [component: bokehjs] [FEATURE] Support varea with step lines - 12532 [FEATURE] Access to know whether user ctrl-clicks, shift-clicks, or command-clicks in CustomJS callback - 12829 [FEATURE] Independent extra ranges in a single figure - 13036 Ability to rotate axis labels by adding 'axis_label_orientation' - 12677 Add support for `HSpan`, `VSpan`, `HStrip` and `VStrip` - 12704 Add webgl support to `Annulus`, `Wedge` and `AnnularWedge` - 12812 Add support for ES module (`import`/`export` syntax) callbacks * tasks: - 7156 [component: build] Standalone mode: images referenced in CSS files are missing - 12278 [component: tests] Add a method for generating bokehjs' JSON tests assests - 12872 [BUG] ResourceWarning: unclosed file - 12936 [FEATURE] Update ruff to include W291 (trailing whitespace) - 13058 Check if sample data files are outdated before loading them - 13114 [BUG] bokeh.embed.file_html produces unhelpful error message if passing a Document with no root models - 13116 [component: examples] Burtin example has a bad tick format - 13117 Update AWS CI role for docs deploy - 13122 [component: build] sdist builds require git tags - 13143 [BUG] Ruff pyupgrade keep-runtime-annotations is obsolete. - 12720 Drop support for Python 3.8 - 12920 [component: docs] Added metadata to legends.py - 12922 [component: examples] Updated colors of Band Plots - 12923 [component: docs] added accessible color palette - 12944 Forward ports from 3.1 - 12950 added metadata to twin_axis.py - 12953 [component: examples] Update to Bokeh example plot: accessible palette with new images - 12959 [component: examples] Increased alpha of the circle plot - 12967 [component: docs] 11765 add metadata to plots - 12970 Added Images for new Band Plots - 12975 [component: docs] added metadata to legends_item_visibility.py - 12977 [component: build] Upgrade to TypeScript 5.0 - 12979 [component: docs] Add metadata to plots (11765) - 12982 [component: docs] Update example metadata - 12983 [component: examples] Improve color contrast for accessibility - 12984 [component: docs] Added reference for server.py file - 12990 [component: docs] Update text.py with metadata - 12991 [component: docs] Added metadata to setvalue.py - 12992 [component: docs] Update metadata to legend_hide and tile_xyzservices - 12993 [component: docs] Added metadata to label.py and whisker.py - 12995 [component: docs] Updated server.py reference - 12998 [component: docs] Added metadata to band.py for Band Plots - 12999 [component: examples] Updated colors of Twin Axes Plots - 13006 [component: docs] Add metadata to image alpha - 13012 [component: docs] Added metadata to examples/plotting/aspect.py - 13013 [component: examples] Updated colors of Slope Plots - 13018 [component: examples] Updating nested_colormapped with new accessible palettes - 13022 [component: docs] Line select metadata - 13023 [component: docs] 11765 maps cities - 13024 [component: examples] changed span example lines from solid to dashed - 13031 Updated colors of Mixed Plots - 13043 [component: docs] added metadata to tooltip_content.py, arc.py - 13047 [component: docs] Added metadata to theme_glyphs - 13050 [component: docs] added metadata to examples/plotting/polar.py - 13051 [component: docs] Added metadata for examples/models/toolbars2.py - 13069 [component: examples] Disable `na_filter` instead of ignoring incorrectly parsed NaNs - 13094 [component: docs] Update docs infrastructure - 13140 [component: bokehjs] Do not blit webgl canvas if width or height are zero - 13142 Improve handling of resources in lower level embed APIs - 13145 Upgrade to ruff 0.0.269 and further modernize bokeh's codebase - 13146 [component: bokehjs] Separate type imports from value/mixed imports in bokehjs - 13153 [component: server] Allow to recover from deserialization of a previously seen ref - 13169 [component: docs] Don't turn warnings into errors in sphinx-build - 13173 [component: bokehjs] Clean up the rest of eslint warnings and refactor its config - 13174 Do not resolve default descriptor value if already present in unstable defaults - 13178 [component: docs] Add ColorBar to LaTeX docs - 13208 [component: docs] Update bokeh 3.2.0 release notes - 13220 [component: examples] remove text duplicate in burtin.py - 13221 [component: examples] Remove unneeded backslash in LaTeX [skip ci] ``` ### 3.1.1 ``` -------------------- * bugfixes: - 10547 [BUG] Division element id of components can be invalid for CSS - 12400 [component: server] [BUG] Domain is not resolved correctly when using BOKEH_RESOURCES=server - 12905 `load_notebook()` uses non-unique DOM element IDs - 12913 [component: bokehjs] [BUG] Artifacts on the signal when using WebGL to plot - 12926 [component: build] bokehjs' build fails on Windows 10 due to creating symlinks - 13056 [component: examples] `autocompleteinput.py` example doesn't work with pandas 2.0 - 13060 [component: docs] `README.md` in `examples/` doesn't reflect the contents of the directory - 13081 [component: bokehjs] [BUG] Incorrect behaviour of Slider control on Safari (macOS) - 13104 [component: bokehjs] Heavy `lazy_initialize()` can result in a race condition - 13108 [BUG] Fix broken link to tools guide - 13062 Fix bokeh.sphinxext.util after PR 13041 - 13070 [component: server] Fix `MultiRootStaticHandler` after PR 13041 - 13086 [component: docs] fix broken docs refs - 13100 [component: bokehjs] Fix race conditions related to layout resize and updates * tasks: - 6683 [component: bokehjs] accent are sorted last in sorted Tablecolumn - 10408 [component: bokehjs] Investigate duplicated `ctx.stroke()` in various hatch patterns - 11335 [component: build] Display a list of installed dependencies and related software in CI - 11782 [component: bokehjs] [FEATURE] Propagate Name attribute to js for all Models - 12729 [component: docs] [BUG] [docs] Serializer cannot serialize decimal.Decimal - 12790 [component: tests] Complete unit tests for BokehJS mathematical array functions - 12814 [component: build] Check for existence of git tags early on in build process - 12909 [component: docs] dev guide has incorrect links to executables in the github - 12914 Disable miniconda-setup Post step on Windows - 12954 Prune latest docs properly - 13001 [component: docs] Carriage returns error on Windows systems. [BUG] - 13053 [FEATURE] Set `Cross-Origin-Resource-Policy: cross-origin` - 12939 [component: docs] add ref - 12963 [component: tests] Temporarily disable docker_from_wheel test in CI - 12973 [component: docs] Fix tiny error in doc code-block - 13003 [component: docs] Added metadata to line_on_off.py - 13009 [component: docs] Add dropdowns to contributor docs troubleshooting - 13026 [component: docs] Tile source metadata - 13035 Increase the number of iterations in CSS safe ID generator - 13054 [component: docs] Update In-kind sponsors list - 13065 [component: build] Allow `static/` symlinks in `BOKEHJS_ACTION=install pip install -e .` - 13084 [component: docs] Update first_steps_1.rst - 13103 Backports for 3.1.1 ``` ### 3.1 ``` -------------------- * bugfixes: - 5829 [component: bokehjs] PolySelectTool area remains the same at all zoom levels - 6931 "Slider" widget: omitting a required argument does not produce error message - 8180 [component: bokehjs] HoverTool not working with RangeTool - 9047 [component: bokehjs] [BUG] Can't interact with multiple RangeTools - 9381 [component: bokehjs] [BUG] range_tool broken on inverted axes - 9752 [component: bokehjs] [BUG] Hover tool not working correctly for rotated rectangles - 10749 [component: bokehjs] [BUG] Plaintext copy-pasted from DataTable has a different order - 10769 [component: bokehjs] [BUG] Dates in DataTables appear as zero-epoch - 11830 [BUG] TypeError when customizing tools icon using PIL Image - 11955 [component: bokehjs] [BUG] Replacing filter of CDSView does not trigger update of DataTable - 11969 [component: bokehjs] [BUG] DataTable rendering behaves inconsistently for different indices of an IndexFilter - 11994 [BUG] Allow reset of DatePicker to empty date - 12315 [component: bokehjs] [BUG] ColumnDataSource does not work with NumPy floating-point scalars - 12331 [component: bokehjs] [FEATURE] enable linebreaks in legend labels - 12379 Figure out why `HexTile` with `pointytop` orientation and `aspect_scale=0.5` fails - 12410 [component: bokehjs] Hover tool can point to data outside of the frame - 12540 Handle Datetime values consistently in annotations - 12574 [component: docs] [BUG] `bokeh.core.json_encoder.serialize_json` doesn't work as shown in example - 12584 [component: bokehjs] [BUG] MultiChoice dropdown and autocomplete - 12592 [component: bokehjs] Rect hit testing on circles is overzealous, at least by the default - 12610 light_minimal theme is missing - 12614 [component: bokehjs] [BUG] sizing_mode='stretch_both' broken in gridplot (bokeh 3.0.2) - 12624 [BUG] bokeh v3 ColumnDataSource.selected.indices no longer works with ndarray - 12666 [BUG] Performance differences between v2 and v3 - 12674 [component: docs] Ref guide autoclasstoc links are missing - 12678 [component: bokehjs] [BUG] tooltips disappear when range of image is reversed - 12700 [component: bokehjs] ReGL initialization is excessively and unnecessarily slow in tests - 12709 [component: bokehjs] [BUG] DatePicker kills layout - 12710 [component: docs] [BUG] CheckboxGroup minimal example in the documentation (Widgets and DOM elements 3.0.3) does not work properly - 12714 [component: bokehjs] [BUG] Updating DatePicker css_classes from callbacks not working - 12719 Type check errors due to updated `pandas-stubs` - 12730 [component: docs] [BUG] No such file: examples/plotting/marker_map.py - 12731 [component: bokehjs] [BUG] Possible regression: pinching not working with wheelzoomtool - 12735 [component: bokehjs] [BUG] hatching scales differently on different displays - 12756 [component: examples] Custom tooltip example mis-renders - 12757 [component: bokehjs] Custom extensi