Skip to content

Scheduled weekly dependency update for week 18#504

Closed
pyup-bot wants to merge 86 commits into
masterfrom
pyup-scheduled-update-2026-05-04
Closed

Scheduled weekly dependency update for week 18#504
pyup-bot wants to merge 86 commits into
masterfrom
pyup-scheduled-update-2026-05-04

Conversation

@pyup-bot

@pyup-bot pyup-bot commented May 4, 2026

Copy link
Copy Markdown
Collaborator

Update amqp from 2.5.2 to 5.3.1.

The bot wasn't able to find a changelog for this release. Got an idea?

Links

Update argh from 0.26.2 to 0.31.3.

Changelog

0.31.3

---------------------------

Bugs fixed:

- wrong type annotation of `errors` in `wrap_errors` (PR 229 by laazy)
- tests were failing under Python 3.13 (issue 228 by mgorny)
- regression: can't set argument name with `dest` via decorator
(issue 224 by mathieulongtin)

0.31.2

---------------------------

Bugs fixed:

- broken support for `Optional[List]` (but not `Optional[list]`), a narrower
case of the problem fixed earlier (issue 216).

0.31.1

---------------------------

Bugs fixed:

- broken support for type alias `List` (issue 216).

Enhancements:

- cleaned up the README, rearranged other documentation.

0.31.0

---------------------------

Breaking changes:

- The typing hints introspection feature is automatically enabled for any
command (function) which does **not** have any arguments specified via `arg`
decorator.

This means that, for example, the following function used to fail and now
it will pass::

   def main(count: int):
       assert isinstance(count, int)

This may lead to unexpected behaviour in some rare cases.

- A small change in the legacy argument mapping policy `BY_NAME_IF_HAS_DEFAULT`
concerning the order of variadic positional vs. keyword-only arguments.

The following function now results in ``main alpha [args ...] beta`` instead of
``main alpha beta [args ...]``::

   def main(alpha, *args, beta): ...

This does **not** concern the default name mapping policy.  Even for the
legacy one it's an edge case which is extremely unlikely to appear in any
real-life application.

- Removed the previously deprecated decorator `expects_obj`.

Enhancements:

- Added experimental support for basic typing hints (issue 203)

The following hints are currently supported:

- ``str``, ``int``, ``float``, ``bool`` (goes to ``type``);
- ``list`` (affects ``nargs``), ``list[T]`` (first subtype goes into ``type``);
- ``Literal[T1, T2, ...]`` (interpreted as ``choices``);
- ``Optional[T]`` AKA ``T | None`` (currently interpreted as
 ``required=False`` for optional and ``nargs="?"`` for positional
 arguments; likely to change in the future as use cases accumulate).

The exact interpretation of the type hints is subject to change in the
upcoming versions of Argh.

- Added `always_flush` argument to `dispatch()` (issue 145)

- High-level functions `argh.dispatch_command()` and `argh.dispatch_commands()`
now accept a new parameter `old_name_mapping_policy`.  The behaviour hasn't
changed because the parameter is `True` by default.  It will change to
`False` in Argh v.0.33 or v.1.0.

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.

0.30.5

---------------------------

Bugs fixed:

- A combination of `nargs` with a list as default value would lead to the
values coming from CLI being wrapped in another list (issue 212).

Enhancements:

- Argspec guessing: if `nargs` is not specified but the default value
is a list, ``nargs="*"`` is assumed and passed to argparse.

0.30.4

---------------------------

There were complaints about the lack of a deprecation cycle for the legacy name
mapping policy.  This version addresses the issue:

- The handling introduced in v.0.30.2 (raising an exception for clarity)
is retained for cases when no name mapping policy is specified but function
signature contains defaults in non-kwonly args **and kwonly args are also
defined**::

   def main(alpha, beta=1, *, gamma=2):   error — explicit policy required

In a similar case but when **kwonly args are not defined** Argh now assumes
the legacy name mapping policy (`BY_NAME_IF_HAS_DEFAULT`) and merely issues
a deprecation warning with the same message as the exception mentioned above::

   def main(alpha, beta=2):     `[-b BETA] alpha` + DeprecationWarning

This ensures that most of the old scripts still work the same way despite the
new policy being used by default and enforced in cases when it's impossible
to resolve the mapping conflict.

Please note that this "soft" handling is to be removed in version v0.33
(or v1.0 if the former is not deemed necessary).  The new name mapping policy
will be used by default without warnings, like in v0.30.

0.30.3

---------------------------

Bugs fixed:

- Regression: a positional argument with an underscore used in `arg` decorator
would cause Argh fail on the assembling stage. (208)

0.30.2

---------------------------

Bugs fixed:

- As reported in 204 and 206, the new default name mapping policy in fact
silently changed the CLI API of some scripts: arguments which were previously
translated as CLI options became optional positionals. Although the
instructions were supplied in the release notes, the upgrade may not
necessarily be intentional, so a waste of users' time is quite likely.

To alleviate this, the default value for `name_mapping_policy` in standard
functions has been changed to `None`; if it's not specified, Argh falls back
to the new default policy, but raises `ArgumentNameMappingError` with
detailed instructions if it sees a non-kwonly argument with a default value.

Please specify the policy explicitly in order to avoid this error if you need
to infer optional positionals (``nargs="?"``) from function signature.

0.30.1

---------------------------

Bugs fixed:

- Regression: certain special values in argument default value would cause an
exception (204)

Enhancements:

- Improved the tutorial.
- Added a more informative error message when the reason is likely to be
related to the migration from Argh v0.29 to a version with a new argument
name mapping policy.

Other changes:

- Added `py.typed` marker file for :pep:`561`.

0.30.0

---------------------------

Backwards incompatible changes:

- A new policy for mapping function arguments to CLI arguments is used by
default (see :class:`argh.assembling.NameMappingPolicy`).

The following function does **not** map to ``func foo [--bar]`` anymore::

   def func(foo, bar=None):
       ...

Since this release it maps to ``func foo [bar]`` instead.
Please update the function this way to keep `bar` an "option"::

   def func(foo, *, bar=None):
       ...

If you cannot modify the function signature to use kwonly args for options,
please consider explicitly specifying the legacy name mapping policy::

   set_default_command(
       func, name_mapping_policy=NameMappingPolicy.BY_NAME_IF_HAS_DEFAULT
   )

- The name mapping policy `BY_NAME_IF_HAS_DEFAULT` slightly deviates from the
old behaviour. Kwonly arguments without default values used to be marked as
required options (``--foo FOO``), now they are treated as positionals
(``foo``). Please consider the new default policy (`BY_NAME_IF_KWONLY`) for
a better treatment of kwonly.

- Removed previously deprecated features (184 → 188):

- argument help string in annotations — reserved for type hints;
- `argh.SUPPORTS_ALIASES`;
- `argh.safe_input()`;
- previously renamed arguments for `add_commands()`: `namespace`,
 `namespace_kwargs`, `title`, `description`, `help`;
- `pre_call` argument in `dispatch()`.  The basic usage remains simple but
 more granular functions are now available for more control.

 Instead of this::

   argh.dispatch(..., pre_call=pre_call_hook)

 please use this::

   func, ns = argh.parse_and_resolve(...)
   pre_call_hook(ns)
   argh.run_endpoint_function(func, ns, ...)

Deprecated:

- The `expects_obj` decorator.  Rationale: it used to support the old,
"un-pythonic" style of usage, which essentially lies outside the scope of
Argh.  If you are not using the mapping of function arguments onto CLI, then
you aren't reducing the amount of code compared to vanilla Argparse.

- The `add_help_command` argument in `dispatch()`.
Rationale: it doesn't add much to user experience; it's not much harder to
type ``--help`` than it is to type ``help``; moreover, the option can be
added anywhere, unlike its positional counterpart.

Enhancements:

- Added support for Python 3.12.
- Added type annotations to existing Argh code (185 → 189).
- The `dispatch()` function has been refactored, so in case you need finer
control over the process, two new, more granular functions can be used:

- `endpoint_function, namespace = argh.parse_and_resolve(...)`
- `argh.run_endpoint_function(endpoint_function, namespace, ...)`

Please note that the names may change in the upcoming versions.

- Configurable name mapping policy has been introduced for function argument
to CLI argument translation (191 → 199):

- `BY_NAME_IF_KWONLY` (default and recommended).
- `BY_NAME_IF_HAS_DEFAULT` (close to pre-v.0.30 behaviour);

Please check API docs on :class:`argh.assembling.NameMappingPolicy` for
details.

0.29.4

---------------------------

Bugs fixed:

- Test coverage reported as <100% when argcomplete is installed (187)

0.29.3

------------------------------

Technical releases for packaging purposes.  No changes in functionality.

0.29.0

---------------------------

Backwards incompatible changes:

- Wrapped exceptions now cause ``dispatching.dispatch()`` to raise
``SystemExit(1)`` instead of returning without error. For most users, this
means failed commands will now exit with a failure status instead of a
success. (161)

Deprecated:

- Renamed arguments in `add_commands()` (165):

- `namespace` → `group_name`
- `namespace_kwargs` → `group_kwargs`

The old names are deprecated and will be removed in v.0.30.

Enhancements:

- Can control exit status (see Backwards Incompatible Changes above) when
raising ``CommandError`` using the ``code`` keyword arg.

Bugs fixed:

-  Positional arguments should not lead to removal of short form of keyword
arguments. (115)

Other changes:

- Avoid depending on iocapture by using pytest's built-in feature (177)

0.28.1

---------------------------

- Fixed bugs in tests (171, 172)

0.28.0

---------------------------

A major cleanup.

Backward incompatible changes:

- Dropped support for Python 2.7 and 3.7.

Deprecated features, to be removed in v.0.30:

- `argh.assembling.SUPPORTS_ALIASES`.

- Always `True` for recent versions of Python.

- `argh.io.safe_input()` AKA `argh.interaction.safe_input()`.

- Not relevant anymore.  Please use the built-in `input()` instead.

- argument `pre_call` in `dispatch()`.

Even though this hack seems to have been used in some projects, it was never
part of the official API and never recommended.

Describing your use case in the `discussion about shared arguments`_ can
help improve the library to accomodate it in a proper way.

.. _discussion about shared arguments: https://github.com/neithere/argh/issues/63

- Argument help as annotations.

- Annotations will only be used for types after v.0.30.
- Please replace any instance of::

   def func(foo: "Foobar"):

 with the following::

   arg('-f', '--foo', help="Foobar")
   def func(foo):

 It will be decided later how to keep this functionality "DRY" (don't repeat
 yourself) without conflicts with modern conventions and tools.

- Added deprecation warnings for some arguments deprecated back in v.0.26.

0.27.2

---------------------------

Minor packaging fix:

* chore: include file required by tox.ini in the sdist (155)

0.27.1

---------------------------

Minor building and packaging fixes:

* docs: add Read the Docs config (160)
* chore: include tox.ini in the sdist (155)

0.27.0

---------------------------

This is the last version to support Python 2.7.

Backward incompatible changes:

- Dropped support for Python 2.6.

Enhancements:

- Added support for Python 3.7 through 3.11.
- Support introspection of function signature behind the `wraps` decorator
(issue 111).

Fixed bugs:

- When command function signature contained ``**kwargs`` *and* positionals
without defaults and with underscores in their names, a weird behaviour could
be observed (issue 104).
- Fixed introspection through decorators (issue 111).
- Switched to Python's built-in `unittest.mock` (PR 154).
- Fixed bug with `skip_unknown_args=True` (PR 134).
- Fixed tests for Python 3.9.7+ (issue 148).

Other changes:

- Included the license files in manifest (PR 112).
- Extended the list of similar projects (PR 87).
- Fixed typos and links in documentation (PR 110, 116, 156).
- Switched CI to Github Actions (PR 153).
Links

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

Update attrs from 19.3.0 to 26.1.0.

The bot wasn't able to find a changelog for this release. Got an idea?

Links

Update beautifulsoup4 from 4.8.1 to 4.14.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

Update billiard from 3.6.1.0 to 4.2.4.

Changelog

4.2.4

--------------------
- Eliminate usage of 'return' in 'finally' blocks (438)
- Prepare for release: v4.2.4 (439)

4.2.3

--------------------
- Ensure that task results are delivered during pool shutdown (435)
- Prepare for release: v4.2.3 (436)

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

Update blinker from 1.4 to 1.9.0.

Changelog

1.9.0

-------------

Released 2024-11-08

-   Drop support for Python 3.8. :pr:`175`
-   Remove previously deprecated ``__version__``, ``receiver_connected``,
 ``Signal.temporarily_connected_to`` and ``WeakNamespace``. :pr:`172`
-   Skip weakref signal cleanup if the interpreter is shutting down.
 :issue:`173`

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

Update bokeh from 1.4.0 to 3.9.0.

Changelog

3.8

--------------------
* bugfixes:
 - 12430 [component: bokehjs] [BUG] Step glyphs do not support linked brushing
 - 12994 [component: bokehjs] [BUG] Patch does not output under certain conditions
 - 13616 [component: bokehjs] [BUG] DateRangePicker value does not reflect value in browser when selection is aborted
 - 14334 js_on_change not firing when range is updated in range tool
 - 14352 [component: bokehjs] Log Axis and Range1d < 1 failing
 - 14383 [component: bokehjs] `SerializationError: circular reference` When Passing List of Renderers to CustomJS Callbacks, but not when passing renderers sperately.
 - 14396 [component: examples] Remove context from time of day in span example
 - 14399 Bad typings for `list_attr_splat` (e.g. `Plot.axis`)
 - 14413 [component: bokehjs] `ValueRef` `formatter` does not handle datetime nullable well
 - 14420 [component: bokehjs] Enhance performance of WebGL multi_marker
 - 14422 [component: bokehjs] Legend renderer not correctly positioned when saved with SaveTool
 - 14424 [component: bokehjs] Patches with no data does not show plot with Bokeh 3.7+
 - 14458 [component: bokehjs] Removing and re-adding DOM nodes causes React problems
 - 14461 [component: tests] The regression test for issue 14207 is unreliable
 - 14468 [component: docs] Try on CodePen link does not work in documentation /docs/user_guide/advanced/bokehjs.html
 - 14469 [component: bokehjs] Canvas2D: Multiple readback operations using getImageData are faster with the willReadFrequently attribute set to true
 - 14476 Improve handling of pd.NA in Property.matches
 - 14497 mypy 1.15.0 fails in CI but not locally
 - 14499 [component: docs] IndexError on importing bokeh.sphinxext.bokeh_plot
 - 14520 [component: bokehjs] BokehJS complains about categorical factors for the BoxAnnotation widget
 - 14536 Flex layouts need to apply `min_width` and `min_height` selectively
 - 14540 [component: tests] Tests are failing on Windows and Python 3.10 after PR 14531
 - 14541 New SVG icons have inconsistent line widths
 - 14554 Add support for scalar uint32 color input.
 - 14565 [component: bokehjs] DataTable source update broken
 - 14574 [component: build] grammar build script failing with whitespace in path
 - 14597 [component: bokehjs] `document_ready` even trigger twice with Bokeh 3.4.0.dev4
 - 14602 [component: bokehjs] Layoutable components in side panels don't appear in exported images
 - 14620 Re-connect race condition on page reload

* features:
 - 2603 [component: bokehjs] Add a SizeBar guide to label relative scatter glyph sizes
 - 7338 Setting areas for the activation of the hover.
 - 8608 [component: bokehjs] [Feature request] automatic reconnect to server
 - 9087 [component: bokehjs] Provide hit_filter property on HoverTool and TapTool
 - 9327 [component: bokehjs] [BUG] Not possible to disable multi-select behavior for DataTable
 - 12375 [FEATURE] Set axis label at a fixed distance from the axis
 - 14177 Define the initial set of common CSS variables
 - 14323 Allow to place layouts in `Plot`'s side and center panels
 - 14324 Allow to add `legend_labels` to legends by `legend_name`
 - 14398 Provide (tick) formatter for time deltas
 - 14440 Expose row entries of ColumnDataSource on Python side
 - 14460 [component: bokehjs] Large html output size when using image_rgba.
 - 14564 Notify about lost connection, etc. in the UI
 - 14585 Add `bokeh` command for displaying settings (all, set)
 - 14603 Re-connect behavior not configurable and potentially destroys unsaved state

* tasks:
 - 9980 [component: tests] Migrate examples/integration to bokehjs' integration tests
 - 12282 [component: docs] Finalize migration from PNG to SVG icons
 - 12414 [BUG] Incorrect indentation with bokeh.embed.components
 - 12469 [component: server] [BUG] IndexError when using bokeh serve --dev without app directory or script
 - 14314 [component: bokehjs] Landing page for BokehJS test/devtools server
 - 14393 [component: examples] Color sliders example has inconsistent labeling
 - 14418 [component: bokehjs] Enhance performance with large scatter datasets - spatial
 - 14427 [component: bokehjs] Enhance performance of _paint in glyph_renderer
 - 14434 [component: build] Deprecated license specifiers
 - 14501 [component: docs] Make all Sphinx extensions except bokeh-plot be internal
 - 14513 [component: build] Update or replace boto release dependency
 - 14514 Update for mypy 1.16
 - 14521 [component: docs] [DOCS] Update docs pages with new SVG icons
 - 14525 `_ModelResolver.add()` is too strict when redefining a model
 - 14534 [component: tests] CI failure: Narwhals 1.43
 - 14555 [component: bokehjs] Improve color mapping performance
 - 14571 [component: build] Resolve `npm audit` complaints
 - 14580 [component: docs] Replace `save()` calls with `show()` in examples
 - 14582 [component: docs] rename `pygment_light_style` to `pygments_light_style`
 - 14586 [component: bokehjs] Micro optimizations multimarker
 - 14588 [component: build] Upgrade to TypeScript 5.9
 - 14591 [component: bokehjs] Update Flatbush
 - 14601 [component: docs] Update bokeh 3.8 release notes
 - 14622 Update `switcher.json` for 3.8 release

3.6

--------------------
* bugfixes:
 - 4951 ModelExtensions - all resources from a whole module are loaded
 - 7524 GroupFilter only accepts strings
 - 13827 [component: bokehjs] [BUG] Lack of range expansion when there remains unbounded directions, even when `maintain_focus=False`
 - 13886 [component: bokehjs] [BUG] NPM package has types (*.d.ts) in incorrect location
 - 13957 [component: bokehjs] Explicit selection glyph example broken
 - 13959 [BUG] Reset Tool Error in Bokeh Gridplot with Single Plot
 - 13964 [component: bokehjs] [BUG] page won't render if CustomJS args has a dict with key "constructor"
 - 13965 [component: bokehjs] [BUG] CategoricalSlider shows ‘undefined’ value and skip that value
 - 13972 BOKEH_MINIFIED not working
 - 13984 [component: tests] [BUG] Deprecation warning treated as error in pytest hook
 - 14014 [component: bokehjs] [BUG] StringFormatter `nan_format` seems broken 
 - 14054 [component: bokehjs] [BUG] Custom hover tooltip on image plot shows all the image data.
 - 14058 [component: bokehjs] [BUG] Clearing selection with ESC only works on first selection tool
 - 14068 [component: bokehjs] [BUG] Unable to change figures displayed by altering children attribute of gridplot (or other layout classes) in JS callback
 - 14072 [component: bokehjs] [BUG] Spinner input not responding to wheel event
 - 13968 [component: docs] fix indentation in `offset` parameter for `Title`
 - 14038 [component: bokehjs] Allow `is_equal(0, -0)` to be true to match `===`
 - 14055 [component: docs] fix some typos
 - 14065 [component: build] Generate correct `*.d.ts` files for CSS modules

* features:
 - 601 [component: bokehjs] Add support for click events on categorical axes
 - 11104 [component: bokehjs] [FEATURE] Option for DataTable column sorting to place NaNs last
 - 13130 [component: bokehjs] Add CustomJSTicker
 - 13893 [component: bokehjs] [FEATURE] Custom sorting of columns in a table
 - 13905 [component: bokehjs] [FEATURE] triangle relative size by data units
 - 13921 [FEATURE] Attach ScaleBar to subplot range
 - 14035 [component: bokehjs] Add WebGL implementation for Ngon glyph
 - 14031 [component: bokehjs] Add "open image in a new tab" mode to save tool
 - 14033 Add support for click-style pan tools

* tasks:
 - 12303 [FEATURE] Improved error message on token expiry
 - 13835 [FEATURE] NumPy 2.0 support
 - 13960 [component: docs] Remove sampledata download in contributing guide
 - 13963 [FEATURE] Add a conda channel for rc releases 
 - 13969 [component: bokehjs] [BUG] Plots fail in Firefox 115.12.0esr (64-bit)
 - 13946 [component: build] Upgrade to TypeScript 5.5
 - 13977 [component: bokehjs] Make `GlyphRenderer` generic in glyph type and remove a lot of `any` types
 - 13992 Remove docker and old integration tests cruft
 - 14019 [component: docs] Python docstring argument fixes
 - 14021 [component: docs] Fix HTML/CSS warning for palette group detail
 - 14023 [component: docs] Remove outdated known issues list from BokehJS docs
 - 14024 [component: docs] Update setup and testing docs dev guide
 - 14037 [component: bokehjs] Clean up factor range and add factor method
 - 14048 [component: bokehjs] Add missing `abstract` modifier to classes
 - 14051 [component: bokehjs] Use pseudo type members to avoid casting
 - 14052 [component: bokehjs] Make `PaletteSelect` use stylehseets instead of inline styles
 - 14056 [component: bokehjs] Upgrade to TypeScript 5.6
 - 14064 [component: build] Add `script:watch` task for incremental builds
 - 14067 [component: build] Upgrade `types/node` and fix npm audit's concerns
 - 14071 [component: docs] fix a typo
 - 14074 [component: docs] Bring 3.5.x point release notes to 3.6.0
 - 14075 [component: docs] Add release notes for bokeh 3.6.0

3.5

--------------------
* bugfixes:
 - 8766 [component: bokehjs] box_select not working as active_drag for gridplot
 - 12638 [component: bokehjs] Make Slider and Image available in BokehJS (JS only)
 - 13515 [component: tests] CI unit-test on Python 3.9 fails systematically 
 - 13623 [component: bokehjs] [BUG] TextAreaInput resizable=False doesn't set resize: none
 - 13720 [component: docs] Explanation is part of the code block in the latex_axis_labels_titles_labels example
 - 13766 [component: bokehjs] [BUG] Dropdown doesnt update properly when .menu changed in 3.4
 - 13771 [component: bokehjs] GMap example not showing glyphs
 - 13787 [component: bokehjs] [BUG] DataTable inside Dialog
 - 13789 [component: docs] [BUG] JS errors on Bokeh docs page
 - 13824 [component: docs] activate pydata-sphinx-theme version banner
 - 13834 [component: build] bokehjs' build fails on Windows with no explanation
 - 13844 [component: build] [BUG] cannot build environment with pixi due to `firefox =>96` constraint
 - 13848 Can't build extensions on Windows
 - 13852 [component: bokehjs] [BUG] <b> and <strong> ignored in tooltips on Firefox
 - 13878 [component: bokehjs] Bokeh.Plotting.figure.circle in bokehjs can't find `x` and `y` in a ColumnDataSource
 - 13894 [component: bokehjs] `Tooltip` is initially attached to the DOM when it shouldn't be
 - 13895 [component: bokehjs] Inner canvas layers need `overflow: hidden` after PR 13863
 - 13897 [component: docs] [BUG] Typing of layouts.gridplot expects wrong type if ncols given
 - 13902 Release build fails after PR 13901
 - 13910 [component: tests] Tests/CI fail due to a regression in requests 2.32.0
 - 13912 [component: bokehjs] [BUG]  Dialog and Datatable don't get along well
 - 13919 [component: bokehjs] [BUG] Bokeh 3.5 no longer allow custom properties for HTMLAttr
 - 13923 [component: bokehjs] `Tooltip.content` doesn't rebuild views on change
 - 13948 [component: docs] Version banner warns about unknown version on latest docs after 3.4.2 release
 - 13951 [component: bokehjs] [BUG] Image Glyph causing tons of unnecessary calls to set_data
 - 13822 [component: docs] remove consecutive "the" and fix typos in touched files
 - 13879 [component: docs] Fix broken example in user guide advanced bokehjs
 - 13884 [component: docs] silence warning in `theme_glyphs.py`
 - 13908 [component: bokehjs] Fix `CartesianFrame`'s position and generalize `rendering_target()`
 - 13926 [component: docs] Remove `blob/main` and `tree/master` from references
 - 13927 [component: docs] update path in readme for server examples 
 - 13939 [component: docs] correct version string to match dev name from switcher.json
 - 13940 [component: bokehjs] Fix initialization of `AjaxDataSource` and add tests

* features:
 - 8289 [component: bokehjs] Permanent labels on Networkx graph
 - 10439 [component: bokehjs] Activate wheel zoom by default with BokehJS
 - 12185 [component: bokehjs] [FEATURE] Legend click events
 - 12759 [component: bokehjs] [FEATURE] Support using CSS Variables in place of colors
 - 13599 [FEATURE] Support formatters when using Template as HoverTool
 - 13646 [FEATURE] Support BoxSelectTool-like range-setting for the RangeTool
 - 13652 [FEATURE] `HTMLLabel` to support `stylesheets` and `css_classes` 
 - 13673 [FEATURE] Add Carbon Theme
 - 13728 [FEATURE] Create option for wheel zoom tool to apply only to subplot nearest to the cursor position
 - 13792 [component: server] [FEATURE] Allow bokeh server embed script to forward credentials
 - 13861 [FEATURE] Support directory upload and clearing inputs from Python for `FileInput` widget
 - 13935 [FEATURE] Allow extensions to register server side events
 - 13936 [component: bokehjs] `AjaxDataSource.if_modified` not implemented
 - 13467 [component: bokehjs] Add scale up boundary to datetimetickformatter
 - 13810 Add support for `BoxAnnotation.inverted`
 - 13890 Add support for server sent bokeh/model/UI events
 - 13906 Add support for resize and drag handles to `BoxAnnotation`

* tasks:
 - 11745 [component: docs] Need examples of callbacks with BokehJS
 - 13791 [component: docs] [DOC] Boxplot example: some whiskers and vbar are rendered slightly asymmetrically and boldly
 - 13831 [component: bokehjs] Tap tool default mode should select+unselect, but not append
 - 13856 [component: build] Move sampledata files to pip/conda installable package
 - 13634 Drop support for Python 3.9 and modernize the codebase
 - 13686 [component: examples] added metadata to spans and strips example
 - 13731 [component: examples] Add metadata to the data_models.py in plotting example
 - 13735 [component: bokehjs] Improve type safety of DOM elements on `core/dom`
 - 13747 [component: build] Upgrade to TypeScript 5.4
 - 13770 [component: bokehjs] Remove legacy font measurement logic
 - 13778 [component: bokehjs] Simplify eslint's configuration
 - 13802 [component: build] Update bokehjs' dependencies and clear dependabot alerts
 - 13839 [component: server] remove unnecessary code from ProtocolHandler.handle
 - 13840 Upgrade to mypy 1.10.0 and ruff 0.4.2
 - 13847 Upgrade CI actions to most recent versions
 - 13860 Remove unused code from `bokeh.models.plots`
 - 13862 [component: bokehjs] Redesign `CartesianFrame` as an internal model/view
 - 13863 [component: bokehjs] Generalize bbox handling in UI views (DOM and canvas)
 - 13877 [component: bokehjs] Replace `PlotView.renderer_view()` with generic `ViewQuery`
 - 13882 Remove old deprecations
 - 13889 [component: docs] Repository cloning issues
 - 13892 Unify definitions of enums in `bokeh.core.enums`
 - 13925 [component: build] Add `http://` to devtools server
 - 13961 Final preparations for 3.5.0 release

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

@pyup-bot

Copy link
Copy Markdown
Collaborator Author

Closing this in favor of #505

@pyup-bot pyup-bot closed this May 11, 2026
@Tommos0 Tommos0 deleted the pyup-scheduled-update-2026-05-04 branch May 11, 2026 18:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant