Skip to content

Scheduled weekly dependency update for week 31 #3232

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 15 commits into from

Conversation

pyup-bot
Copy link
Collaborator

Update sphinx from 5.3.0 to 7.1.1.

Changelog

7.1.1

=====================================

Bugs fixed
----------

* 11514: Fix ``SOURCE_DATE_EPOCH`` in multi-line copyright footer.
Patch by Bénédikt Tran.

7.1.0

=====================================

Incompatible changes
--------------------

* Releases are no longer signed, given the `change in PyPI policy`_.

.. _change in PyPI policy: https://blog.pypi.org/posts/2023-05-23-removing-pgp/

Deprecated
----------

* 11412: Emit warnings on using a deprecated Python-specific index entry type
(namely, ``module``, ``keyword``, ``operator``, ``object``, ``exception``,
``statement``, and ``builtin``) in the :rst:dir:`index` directive, and
set the removal version to Sphinx 9. Patch by Adam Turner.

Features added
--------------

* 11415: Add a checksum to JavaScript and CSS asset URIs included within
generated HTML, using the CRC32 algorithm.
* :meth:`~sphinx.application.Sphinx.require_sphinx` now allows the version
requirement to be specified as ``(major, minor)``.
* 11011: Allow configuring a line-length limit for object signatures, via
:confval:`maximum_signature_line_length` and the domain-specific variants.
If the length of the signature (in characters) is greater than the configured
limit, each parameter in the signature will be split to its own logical line.
This behaviour may also be controlled by options on object description
directives, for example :rst:dir:`py:function:single-line-parameter-list`.
Patch by Thomas Louf, Adam Turner, and Jean-François B.
* 10983: Support for multiline copyright statements in the footer block.
Patch by Stefanie Molin
* ``sphinx.util.display.status_iterator`` now clears the current line
with ANSI control codes, rather than overprinting with space characters.
* 11431: linkcheck: Treat SSL failures as broken links.
Patch by Bénédikt Tran
* 11157: Keep the ``translated`` attribute on translated nodes.
* 11451: Improve the traceback displayed when using :option:`sphinx-build -T`
in parallel builds. Patch by Bénédikt Tran
* 11324: linkcheck: Use session-basd HTTP requests.
* 11438: Add support for the :rst:dir:`py:class` and :rst:dir:`py:function`
directives for PEP 695 (generic classes and functions declarations) and
PEP 696 (default type parameters).  Multi-line support (11011) is enabled
for type parameters list and can be locally controlled on object description
directives, e.g., :rst:dir:`py:function:single-line-type-parameter-list`.
Patch by Bénédikt Tran.
* 11484: linkcheck: Allow HTML anchors to be ignored on a per-URL basis
via :confval:`linkcheck_anchors_ignore_for_url` while
still checking the validity of the page itself.
Patch by Bénédikt Tran
* 1246: Add translation progress statistics and inspection support,
via a new substitution (``|translation progress|``) and a new
configuration variable (:confval:`translation_progress_classes`).
These enable determining the percentage of translated elements within
a document, and the remaining translated and untranslated elements.

Bugs fixed
----------

* Restored the ``footnote-reference`` class that has been removed in
the latest (unreleased) version of Docutils.
* 11486: Use :rfc:`8081` font file MIME types in the EPUB builder.
Using the correct MIME type will prevent warnings from ``epubcheck``
and will generate a valid EPUB.
* 11435: Use microsecond-resolution timestamps for outdated file detection
in ``BuildEnvironment.get_outdated_files``.
* 11437: Top-level headings starting with a reStructuredText role
now render properly when :confval:`rst_prolog` is set.
Previously, a file starting with the below would have
improperly rendered due to where the prologue text
was inserted into the document.

.. code:: rst

  :mod:`lobster` -- The lobster module
  ====================================

  ...

Patch by Bénédikt Tran.
* 11337: Fix a ``MemoryError`` in ``sphinx.ext.intersphinx`` when using ``None``
or ``typing.*`` as inline type references. Patch by Bénédikt Tran (picnixz)

Testing
-------

* 11345: Always delete ``docutils.conf`` in test directories when running
``SphinxTestApp.cleanup()``.

7.0.1

=====================================

Dependencies
------------

* 11411: Support `Docutils 0.20`_. Patch by Adam Turner.

.. _Docutils 0.20: https://docutils.sourceforge.io/RELEASE-NOTES.html#release-0-20-2023-05-04

Bugs fixed
----------

* 11418: Clean up remaining references to ``sphinx.setup_command``
following the removal of support for setuptools.
Patch by Willem Mulder.

7.0.0

=====================================

Incompatible changes
--------------------

* 11359: Remove long-deprecated aliases for ``MecabSplitter`` and
``DefaultSplitter`` in ``sphinx.search.ja``.
* 11360: Remove deprecated ``make_old_id`` functions in domain object
description classes.
* 11363: Remove the Setuptools integration (``build_sphinx`` hook in
``setup.py``).
* 11364: Remove deprecated ``sphinx.ext.napoleon.iterators`` module.
* 11365: Remove support for the ``jsdump`` format in ``sphinx.search``.
* 11366: Make ``locale`` a required argument to
``sphinx.util.i18n.format_date()``.
* 11370: Remove deprecated ``sphinx.util.stemmer`` module.
* 11371: Remove deprecated ``sphinx.pycode.ast.parse()`` function.
* 11372: Remove deprecated ``sphinx.io.read_doc()`` function.
* 11373: Removed deprecated ``sphinx.util.get_matching_files()`` function.
* 11378: Remove deprecated ``sphinx.util.docutils.is_html5_writer_available()``
function.
* 11379: Make the ``env`` argument to ``Builder`` subclasses required.
* 11380: autosummary: Always emit grouped import exceptions.
* 11381: Remove deprecated ``style`` key for HTML templates.
* 11382: Remove deprecated ``sphinx.writers.latex.LaTeXTranslator.docclasses``
attribute.
* 11383: Remove deprecated ``sphinx.builders.html.html5_ready`` and
``sphinx.builders.html.HTMLTranslator`` attributes.
* 11385: Remove support for HTML 4 output.

6.2.1

=====================================

Bugs fixed
----------

* 11355: Revert the default type of :confval:`nitpick_ignore` and
:confval:`nitpick_ignore_regex` to ``list``.

6.2.0

=====================================

Dependencies
------------

* Require Docutils 0.18.1 or greater.

Incompatible changes
--------------------

* LaTeX: removal of some internal TeX ``\dimen`` registers (not previously
publicly documented) as per 5.1.0 code comments in ``sphinx.sty``:
``\sphinxverbatimsep``, ``\sphinxverbatimborder``, ``\sphinxshadowsep``,
``\sphinxshadowsize``, and ``\sphinxshadowrule``. (refs: 11105)
* Remove ``.egg`` support from pycode ``ModuleAnalyser``; Python eggs are a
now-obsolete binary distribution format
* 11089: Remove deprecated code in ``sphinx.builders.linkcheck``.
Patch by Daniel Eades
* Remove internal-only ``sphinx.locale.setlocale``

Deprecated
----------

* 11247: Deprecate the legacy ``intersphinx_mapping`` format
* ``sphinx.util.osutil.cd`` is deprecated in favour of ``contextlib.chdir``.

Features added
--------------

* 11277: :rst:dir:`autoproperty` allows the return type to be specified as
a type comment (e.g., `` type: () -> int``). Patch by Bénédikt Tran
* 10811: Autosummary: extend ``__all__`` to imported members for template rendering
when option ``autosummary_ignore_module_all`` is set to ``False``. Patch by
Clement Pinard
* 11147: Add a ``content_offset`` parameter to ``nested_parse_with_titles()``,
allowing for correct line numbers during nested parsing.
Patch by Jeremy Maitin-Shepard
* Update to Unicode CLDR 42
* Add a ``--jobs`` synonym for ``-j``. Patch by Hugo van Kemenade
* LaTeX: a command ``\sphinxbox`` for styling text elements with a (possibly
rounded) box, optional background color and shadow, has been added.
See :ref:`sphinxbox`. (refs: 11224)
* LaTeX: add ``\sphinxstylenotetitle``, ..., ``\sphinxstylewarningtitle``, ...,
for an extra layer of mark-up freeing up ``\sphinxstrong`` for other uses.
See :ref:`latex-macros`. (refs: 11267)
* LaTeX: :dudir:`note`, :dudir:`hint`, :dudir:`important` and :dudir:`tip` can
now each be styled as the other admonitions, i.e. possibly with a background
color, individual border widths and paddings, possibly rounded corners, and
optional shadow.  See :ref:`additionalcss`. (refs: 11234)
* LaTeX: admonitions and :dudir:`topic` (and
:dudir:`contents <table-of-contents>`) directives, and not only
:rst:dir:`code-block`, support ``box-decoration-break=slice``.
* LaTeX: let rounded boxes support up to 4 distinct border-widths (refs: 11243)
* LaTeX: new options ``noteTextColor``, ``noteTeXextras`` et al.
See :ref:`additionalcss`.
* LaTeX: support elliptical corners in rounded boxes. (refs: 11254)
* 11150: Include source location in highlighting warnings, when lexing fails.
Patch by Jeremy Maitin-Shepard
* 11281: Support for :confval:`imgmath_latex` ``= 'tectonic'`` or
``= 'xelatex'``.  Patch by Dimitar Dimitrov
* 11109, 9643: Add :confval:`python_display_short_literal_types` option for
condensed rendering of ``Literal`` types.

Bugs fixed
----------

* 11079: LaTeX: figures with align attribute may disappear and strangely impact
following lists
* 11093: LaTeX: fix "multiply-defined references" PDF build warnings when one or
more reST labels directly precede an :rst:dir:`py:module` or :rst:dir:`automodule`
directive. Patch by Bénédikt Tran (picnixz)
* 11110: LaTeX: Figures go missing from latex pdf if their files have the same
base name and they use a post transform.  Patch by aaron-cooper
* LaTeX: fix potential color leak from shadow to border of rounded boxes, if
shadow color is set but border color is not
* LaTeX: fix unintended 1pt upwards vertical shift of code blocks frames
respective to contents (when using rounded corners)
* 11235: LaTeX: added ``\color`` in topic (or admonition) contents may cause color
leak to the shadow and border at a page break
* 11264: LaTeX: missing space before colon after "Voir aussi" for :rst:dir:`seealso`
directive in French
* 11268: LaTeX: longtable with left alignment breaks out of current list
indentation context in PDF.  Thanks to picnixz.
* 11274: LaTeX: external links are not properly escaped for ``\sphinxupquote``
compatibility
* 11147: Fix source file/line number info in object description content and in
other uses of ``nested_parse_with_titles``.  Patch by Jeremy Maitin-Shepard.
* 11192: Restore correct parallel search index building.
Patch by Jeremy Maitin-Shepard
* Use the new Transifex ``tx`` client

Testing
-------

* Fail testing when any Python warnings are emitted
* Migrate remaining ``unittest.TestCase`` style test functions to pytest style
* Remove tests that rely on setuptools

6.1.3

=====================================

Bugs fixed
----------

* 11116: Reverted to previous Sphinx 5 node copying method
* 11117: Reverted changes to parallel image processing from Sphinx 6.1.0
* 11119: Supress ``ValueError`` in the ``linkcheck`` builder

6.1.2

=====================================

Bugs fixed
----------

* 11101: LaTeX: ``div.topic_padding`` key of sphinxsetup documented at 5.1.0 was
implemented with name ``topic_padding``
* 11099: LaTeX: ``shadowrule`` key of sphinxsetup causes PDF build to crash
since Sphinx 5.1.0
* 11096: LaTeX: ``shadowsize`` key of sphinxsetup causes PDF build to crash
since Sphinx 5.1.0
* 11095: LaTeX: shadow of :dudir:`topic` and :dudir:`contents <table-of-contents>`
boxes not in page margin since Sphinx 5.1.0
* 11100: Fix copying images when running under parallel mode.

6.1.1

=====================================

Bugs fixed
----------

* 11091: Fix ``util.nodes.apply_source_workaround`` for ``literal_block`` nodes
with no source information in the node or the node's parents.

6.1.0

=====================================

Dependencies
------------

* Adopted the `Ruff`_ code linter.

.. _Ruff: https://github.com/charliermarsh/ruff

Incompatible changes
--------------------

* 10979: gettext: Removed support for pluralisation in ``get_translation``.
This was unused and complicated other changes to ``sphinx.locale``.

Deprecated
----------

* ``sphinx.util`` functions:

* Renamed ``sphinx.util.typing.stringify()``
  to ``sphinx.util.typing.stringify_annotation()``
* Moved ``sphinx.util.xmlname_checker()``
  to ``sphinx.builders.epub3._XML_NAME_PATTERN``

Moved to ``sphinx.util.display``:

* ``sphinx.util.status_iterator``
* ``sphinx.util.display_chunk``
* ``sphinx.util.SkipProgressMessage``
* ``sphinx.util.progress_message``

Moved to ``sphinx.util.http_date``:

* ``sphinx.util.epoch_to_rfc1123``
* ``sphinx.util.rfc1123_to_epoch``

Moved to ``sphinx.util.exceptions``:

* ``sphinx.util.save_traceback``
* ``sphinx.util.format_exception_cut_frames``

Features added
--------------

* Cache doctrees in the build environment during the writing phase.
* Make all writing phase tasks support parallel execution.
* 11072: Use PEP 604 (``X | Y``) display conventions for ``typing.Optional``
and ``typing.Optional`` types within the Python domain and autodoc.
* 10700: autodoc: Document ``typing.NewType()`` types as classes rather than
'data'.
* Cache doctrees between the reading and writing phases.

Bugs fixed
----------

* 10962: HTML: Fix the multi-word key name lookup table.
* Fixed support for Python 3.12 alpha 3 (changes in the ``enum`` module).
* 11069: HTML Theme: Removed outdated "shortcut" link relation keyword.
* 10952: Properly terminate parallel processes on programme interuption.
* 10988: Speed up ``TocTree.resolve()`` through more efficient copying.
* 6744: LaTeX: support for seealso directive should be via an environment
to allow styling.
* 11074: LaTeX: Can't change sphinxnote to use sphinxheavybox starting with
5.1.0

6.0.1

=====================================

Dependencies
------------

* Require Pygments 2.13 or later.

Bugs fixed
----------

* 10944: imgmath:  Fix resolving image paths for files in nested folders.

6.0.0

=====================================

Dependencies
------------

* 10468: Drop Python 3.6 support
* 10470: Drop Python 3.7, Docutils 0.14, Docutils 0.15, Docutils 0.16, and
Docutils 0.17 support. Patch by Adam Turner

Incompatible changes
--------------------

* 7405: Removed the jQuery and underscore.js JavaScript frameworks.

These frameworks are no longer be automatically injected into themes from
Sphinx 6.0. If you develop a theme or extension that uses the
``jQuery``, ``$``, or ``$u`` global objects, you need to update your
JavaScript to modern standards, or use the mitigation below.

The first option is to use the sphinxcontrib.jquery_ extension, which has been
developed by the Sphinx team and contributors. To use this, add
``sphinxcontrib.jquery`` to the ``extensions`` list in ``conf.py``, or call
``app.setup_extension("sphinxcontrib.jquery")`` if you develop a Sphinx theme
or extension.

The second option is to manually ensure that the frameworks are present.
To re-add jQuery and underscore.js, you will need to copy ``jquery.js`` and
``underscore.js`` from `the Sphinx repository`_ to your ``static`` directory,
and add the following to your ``layout.html``:

.. code-block:: html+jinja

  {%- block scripts %}
      <script src="{{ pathto('_static/jquery.js', resource=True) }}"></script>
      <script src="{{ pathto('_static/underscore.js', resource=True) }}"></script>
      {{ super() }}
  {%- endblock %}

.. _sphinxcontrib.jquery: https://github.com/sphinx-contrib/jquery/

Patch by Adam Turner.
* 10471, 10565: Removed deprecated APIs scheduled for removal in Sphinx 6.0. See
:ref:`dev-deprecated-apis` for details. Patch by Adam Turner.
* 10901: C Domain: Remove support for parsing pre-v3 style type directives and
roles. Also remove associated configuration variables ``c_allow_pre_v3`` and
``c_warn_on_allowed_pre_v3``. Patch by Adam Turner.

Features added
--------------

* 10924: LaTeX: adopt better looking defaults for tables and code-blocks.
See :confval:`latex_table_style` and the ``pre_border-radius`` and
``pre_background-TeXcolor`` :ref:`additionalcss` for the former defaults
and how to re-enact them if desired.

Bugs fixed
----------

* 10984: LaTeX: Document :confval:`latex_additional_files` behavior for files
with ``.tex`` extension.
Links

Update sphinx_rtd_theme from 1.1.1 to 1.2.2.

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

Links

Update reportlab from 3.6.12 to 4.0.4.

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

Links

Update freetype-py from 2.3.0 to 2.4.0.

Changelog

2.4.0

What's Changed
* Add pyinstaller hook by Korijn in https://github.com/rougier/freetype-py/pull/162
* Update bundled dependencies (HarfBuzz 7.2.0 and FreeType 2.13.0) by madig in https://github.com/rougier/freetype-py/pull/164
* Use leftside bearings to layout bitmaps by HinTak to fix 161
* Correct copyright and description in [examples/hello-vf.py](https://github.com/rougier/freetype-py/commit/023fccd775eae147e43e3c87a618096f490b1e06#diff-9845de6d92ba78a36125ee4c96bef421041a53cfe7647c01e5245df4820a2d35) by HinTak 
* Fix `FT_Glyph_Get_CBox()`/`FT_Outline_Get_CBox()` return type treatment by HinTak to fix 160 

**Full Changelog**: https://github.com/rougier/freetype-py/compare/v2.3.0...v2.4.0
Links

Update black from 22.12.0 to 23.7.0.

Changelog

23.7.0

Highlights

- Runtime support for Python 3.7 has been removed. Formatting 3.7 code will still be
supported until further notice (3765)

Stable style

- Fix a bug where an illegal trailing comma was added to return type annotations using
PEP 604 unions (3735)
- Fix several bugs and crashes where comments in stub files were removed or mishandled
under some circumstances (3745)
- Fix a crash with multi-line magic comments like `type: ignore` within parentheses
(3740)
- Fix error in AST validation when _Black_ removes trailing whitespace in a type comment
(3773)

Preview style

- Implicitly concatenated strings used as function args are no longer wrapped inside
parentheses (3640)
- Remove blank lines between a class definition and its docstring (3692)

Configuration

- The `--workers` argument to _Black_ can now be specified via the `BLACK_NUM_WORKERS`
environment variable (3743)
- `.pytest_cache`, `.ruff_cache` and `.vscode` are now excluded by default (3691)
- Fix _Black_ not honouring `pyproject.toml` settings when running `--stdin-filename`
and the `pyproject.toml` found isn't in the current working directory (3719)
- _Black_ will now error if `exclude` and `extend-exclude` have invalid data types in
`pyproject.toml`, instead of silently doing the wrong thing (3764)

Packaging

- Upgrade mypyc from 0.991 to 1.3 (3697)
- Remove patching of Click that mitigated errors on Python 3.6 with `LANG=C` (3768)

Parser

- Add support for the new PEP 695 syntax in Python 3.12 (3703)

Performance

- Speed up _Black_ significantly when the cache is full (3751)
- Avoid importing `IPython` in a case where we wouldn't need it (3748)

Output

- Use aware UTC datetimes internally, avoids deprecation warning on Python 3.12 (3728)
- Change verbose logging to exactly mirror _Black_'s logic for source discovery (3749)

_Blackd_

- The `blackd` argument parser now shows the default values for options in their help
text (3712)

Integrations

- Black is now tested with
[`PYTHONWARNDEFAULTENCODING = 1`](https://docs.python.org/3/library/io.html#io-encoding-warning)
(3763)
- Update GitHub Action to display black output in the job summary (3688)

Documentation

- Add a CITATION.cff file to the root of the repository, containing metadata on how to
cite this software (3723)
- Update the _classes_ and _exceptions_ documentation in Developer reference to match
the latest code base (3755)

23.3.0

Highlights

This release fixes a longstanding confusing behavior in Black's GitHub action, where the
version of the action did not determine the version of Black being run (issue 3382). In
addition, there is a small bug fix around imports and a number of improvements to the
preview style.

Please try out the
[preview style](https://black.readthedocs.io/en/stable/the_black_code_style/future_style.html#preview-style)
with `black --preview` and tell us your feedback. All changes in the preview style are
expected to become part of Black's stable style in January 2024.

Stable style

- Import lines with ` fmt: skip` and ` fmt: off` no longer have an extra blank line
added when they are right after another import line (3610)

Preview style

- Add trailing commas to collection literals even if there's a comment after the last
entry (3393)
- `async def`, `async for`, and `async with` statements are now formatted consistently
compared to their non-async version. (3609)
- `with` statements that contain two context managers will be consistently wrapped in
parentheses (3589)
- Let string splitters respect [East Asian Width](https://www.unicode.org/reports/tr11/)
(3445)
- Now long string literals can be split after East Asian commas and periods (`、` U+3001
IDEOGRAPHIC COMMA, `。` U+3002 IDEOGRAPHIC FULL STOP, & `,` U+FF0C FULLWIDTH COMMA)
besides before spaces (3445)
- For stubs, enforce one blank line after a nested class with a body other than just
`...` (3564)
- Improve handling of multiline strings by changing line split behavior (1879)

Parser

- Added support for formatting files with invalid type comments (3594)

Integrations

- Update GitHub Action to use the version of Black equivalent to action's version if
version input is not specified (3543)
- Fix missing Python binary path in autoload script for vim (3508)

Documentation

- Document that only the most recent release is supported for security issues;
vulnerabilities should be reported through Tidelift (3612)

23.1.0

Highlights

This is the first release of 2023, and following our
[stability policy](https://black.readthedocs.io/en/stable/the_black_code_style/index.html#stability-policy),
it comes with a number of improvements to our stable style, including improvements to
empty line handling, removal of redundant parentheses in several contexts, and output
that highlights implicitly concatenated strings better.

There are also many changes to the preview style; try out `black --preview` and give us
feedback to help us set the stable style for next year.

In addition to style changes, Black now automatically infers the supported Python
versions from your `pyproject.toml` file, removing the need to set Black's target
versions separately.

Stable style

<!-- Changes that affect Black's stable style -->

- Introduce the 2023 stable style, which incorporates most aspects of last year's
preview style (3418). Specific changes:
- Enforce empty lines before classes and functions with sticky leading comments
 (3302) (22.12.0)
- Reformat empty and whitespace-only files as either an empty file (if no newline is
 present) or as a single newline character (if a newline is present) (3348)
 (22.12.0)
- Implicitly concatenated strings used as function args are now wrapped inside
 parentheses (3307) (22.12.0)
- Correctly handle trailing commas that are inside a line's leading non-nested parens
 (3370) (22.12.0)
- `--skip-string-normalization` / `-S` now prevents docstring prefixes from being
 normalized as expected (3168) (since 22.8.0)
- When using `--skip-magic-trailing-comma` or `-C`, trailing commas are stripped from
 subscript expressions with more than 1 element (3209) (22.8.0)
- Implicitly concatenated strings inside a list, set, or tuple are now wrapped inside
 parentheses (3162) (22.8.0)
- Fix a string merging/split issue when a comment is present in the middle of
 implicitly concatenated strings on its own line (3227) (22.8.0)
- Docstring quotes are no longer moved if it would violate the line length limit
 (3044, 3430) (22.6.0)
- Parentheses around return annotations are now managed (2990) (22.6.0)
- Remove unnecessary parentheses around awaited objects (2991) (22.6.0)
- Remove unnecessary parentheses in `with` statements (2926) (22.6.0)
- Remove trailing newlines after code block open (3035) (22.6.0)
- Code cell separators `%%` are now standardised to ` %%` (2919) (22.3.0)
- Remove unnecessary parentheses from `except` statements (2939) (22.3.0)
- Remove unnecessary parentheses from tuple unpacking in `for` loops (2945) (22.3.0)
- Avoid magic-trailing-comma in single-element subscripts (2942) (22.3.0)
- Fix a crash when a colon line is marked between ` fmt: off` and ` fmt: on` (3439)

Preview style

<!-- Changes that affect Black's preview style -->

- Format hex codes in unicode escape sequences in string literals (2916)
- Add parentheses around `if`-`else` expressions (2278)
- Improve performance on large expressions that contain many strings (3467)
- Fix a crash in preview style with assert + parenthesized string (3415)
- Fix crashes in preview style with walrus operators used in function return annotations
and except clauses (3423)
- Fix a crash in preview advanced string processing where mixed implicitly concatenated
regular and f-strings start with an empty span (3463)
- Fix a crash in preview advanced string processing where a standalone comment is placed
before a dict's value (3469)
- Fix an issue where extra empty lines are added when a decorator has ` fmt: skip`
applied or there is a standalone comment between decorators (3470)
- Do not put the closing quotes in a docstring on a separate line, even if the line is
too long (3430)
- Long values in dict literals are now wrapped in parentheses; correspondingly
unnecessary parentheses around short values in dict literals are now removed; long
string lambda values are now wrapped in parentheses (3440)
- Fix two crashes in preview style involving edge cases with docstrings (3451)
- Exclude string type annotations from improved string processing; fix crash when the
return type annotation is stringified and spans across multiple lines (3462)
- Wrap multiple context managers in parentheses when targeting Python 3.9+ (3489)
- Fix several crashes in preview style with walrus operators used in `with` statements
or tuples (3473)
- Fix an invalid quote escaping bug in f-string expressions where it produced invalid
code. Implicitly concatenated f-strings with different quotes can now be merged or
quote-normalized by changing the quotes used in expressions. (3509)
- Fix crash on `await (yield)` when Black is compiled with mypyc (3533)

Configuration

<!-- Changes to how Black can be configured -->

- Black now tries to infer its `--target-version` from the project metadata specified in
`pyproject.toml` (3219)

Packaging

<!-- Changes to how Black is packaged, such as dependency requirements -->

- Upgrade mypyc from `0.971` to `0.991` so mypycified _Black_ can be built on armv7
(3380)
- This also fixes some crashes while using compiled Black with a debug build of
 CPython
- Drop specific support for the `tomli` requirement on 3.11 alpha releases, working
around a bug that would cause the requirement not to be installed on any non-final
Python releases (3448)
- Black now depends on `packaging` version `22.0` or later. This is required for new
functionality that needs to parse part of the project metadata (3219)

Output

<!-- Changes to Black's terminal output and error messages -->

- Calling `black --help` multiple times will return the same help contents each time
(3516)
- Verbose logging now shows the values of `pyproject.toml` configuration variables
(3392)
- Fix false symlink detection messages in verbose output due to using an incorrect
relative path to the project root (3385)

Integrations

<!-- For example, Docker, GitHub Actions, pre-commit, editors -->

- Move 3.11 CI to normal flow now that all dependencies support 3.11 (3446)
- Docker: Add new `latest_prerelease` tag automation to follow latest black alpha
release on docker images (3465)

Documentation

<!-- Major changes to documentation and policies. Small docs changes
  don't need a changelog entry. -->

- Expand `vim-plug` installation instructions to offer more explicit options (3468)
Links

Update scipy from 1.10.0 to 1.11.1.

Changelog

1.11.1

compared to `1.11.0`. In particular, a licensing issue
discovered after the release of `1.11.0` has been addressed.


Authors
=======

* Name (commits)
* h-vetinari (1)
* Robert Kern (1)
* Ilhan Polat (4)
* Tyler Reddy (8)

A total of 4 people contributed to this release.
People with a "+" by their names contributed a patch for the first time.
This list of names is automatically generated, and may not be fully complete.

1.11.0

many new features, numerous bug-fixes, improved test coverage and better
documentation. There have been a number of deprecations and API changes
in this release, which are documented below. All users are encouraged to
upgrade to this release, as there are a large number of bug-fixes and
optimizations. Before upgrading, we recommend that users check that
their own code does not use deprecated SciPy functionality (to do so,
run your code with ``python -Wd`` and check for ``DeprecationWarning`` s).
Our development attention will now shift to bug-fix releases on the
`1.11.x` branch, and on adding new features on the main branch.

This release requires Python `3.9+` and NumPy `1.21.6` or greater.

For running on PyPy, PyPy3 `6.0+` is required.


Highlights of this release
====================

- Several `scipy.sparse` array API improvements, including a new public base
class distinct from the older matrix class, proper 64-bit index support,
and numerous deprecations paving the way to a modern sparse array experience.
- Added three new statistical distributions, and wide-ranging performance and
precision improvements to several other statistical distributions.
- A new function was added for quasi-Monte Carlo integration, and linear
algebra functions ``det`` and ``lu`` now accept nD-arrays.
- An ``axes`` argument was added broadly to ``ndimage`` functions, facilitating
analysis of stacked image data.



New features
===========

`scipy.integrate` improvements
==============================
- Added `scipy.integrate.qmc_quad` for quasi-Monte Carlo integration.
- For an even number of points, `scipy.integrate.simpson` now calculates
a parabolic segment over the last three points which gives improved
accuracy over the previous implementation.

`scipy.cluster` improvements
============================
- ``disjoint_set`` has a new method ``subset_size`` for providing the size
of a particular subset.


`scipy.constants` improvements
================================
- The ``quetta``, ``ronna``, ``ronto``, and ``quecto`` SI prefixes were added.


`scipy.linalg` improvements
===========================
- `scipy.linalg.det` is improved and now accepts nD-arrays.
- `scipy.linalg.lu` is improved and now accepts nD-arrays. With the new
``p_indices`` switch the output permutation argument can be 1D ``(n,)``
permutation index instead of the full ``(n, n)`` array.


`scipy.ndimage` improvements
============================
- ``axes`` argument was added to ``rank_filter``, ``percentile_filter``,
``median_filter``, ``uniform_filter``, ``minimum_filter``,
``maximum_filter``, and ``gaussian_filter``, which can be useful for
processing stacks of image data.


`scipy.optimize` improvements
=============================
- `scipy.optimize.linprog` now passes unrecognized options directly to HiGHS.
- `scipy.optimize.root_scalar` now uses Newton's method to be used without
providing ``fprime`` and the ``secant`` method to be used without a second
guess.
- `scipy.optimize.lsq_linear` now accepts ``bounds`` arguments of type
`scipy.optimize.Bounds`.
- `scipy.optimize.minimize` ``method='cobyla'`` now supports simple bound
constraints.
- Users can opt into a new callback interface for most methods of
`scipy.optimize.minimize`: If the provided callback callable accepts
a single keyword argument, ``intermediate_result``, `scipy.optimize.minimize`
now passes both the current solution and the optimal value of the objective
function to the callback as an instance of `scipy.optimize.OptimizeResult`.
It also allows the user to terminate optimization by raising a
``StopIteration`` exception from the callback function.
`scipy.optimize.minimize` will return normally, and the latest solution
information is provided in the result object.
- `scipy.optimize.curve_fit` now supports an optional ``nan_policy`` argument.
- `scipy.optimize.shgo` now has parallelization with the ``workers`` argument,
symmetry arguments that can improve performance, class-based design to
improve usability, and generally improved performance.


`scipy.signal` improvements
===========================
- ``istft`` has an improved warning message when the NOLA condition fails.

`scipy.sparse` improvements
===========================
- `scipy.sparse` array (not matrix) classes now return a sparse array instead
of a dense array when divided by a dense array.
- A new public base class `scipy.sparse.sparray` was introduced, allowing
`isinstance(x, scipy.sparse.sparray)` to select the new sparse array classes,
while `isinstance(x, scipy.sparse.spmatrix)` selects only the old sparse
matrix types.
- The behavior of `scipy.sparse.isspmatrix()` was updated to return True for
only the sparse matrix types. If you want to check for either sparse arrays
or sparse matrices, use `scipy.sparse.issparse()` instead. (Previously,
these had identical behavior.)
- Sparse arrays constructed with 64-bit indices will no longer automatically
downcast to 32-bit.
- A new `scipy.sparse.diags_array` function was added, which behaves like the
existing `scipy.sparse.diags` function except that it returns a sparse
array instead of a sparse matrix.
- ``argmin`` and ``argmax`` methods now return the correct result when no
implicit zeros are present.

`scipy.sparse.linalg` improvements
==================================
- dividing ``LinearOperator`` by a number now returns a
``_ScaledLinearOperator``
- ``LinearOperator`` now supports right multiplication by arrays
- ``lobpcg`` should be more efficient following removal of an extraneous
QR decomposition.


`scipy.spatial` improvements
============================
- Usage of new C++ backend for additional distance metrics, the majority of
which will see substantial performance improvements, though a few minor
regressions are known. These are focused on distances between boolean
arrays.


`scipy.special` improvements
============================
- The factorial functions ``factorial``, ``factorial2`` and ``factorialk``
were made consistent in their behavior (in terms of dimensionality,
errors etc.). Additionally, ``factorial2`` can now handle arrays with
``exact=True``, and ``factorialk`` can handle arrays.


`scipy.stats` improvements
==========================

New Features
------------
- `scipy.stats.sobol_indices`, a method to compute Sobol' sensitivity indices.
- `scipy.stats.dunnett`, which performs Dunnett's test of the means of multiple
experimental groups against the mean of a control group.
- `scipy.stats.ecdf` for computing the empirical CDF and complementary
CDF (survival function / SF) from uncensored or right-censored data. This
function is also useful for survival analysis / Kaplain-Meier estimation.
- `scipy.stats.logrank` to compare survival functions underlying samples.
- `scipy.stats.false_discovery_control` for adjusting p-values to control the
false discovery rate of multiple hypothesis tests using the
Benjamini-Hochberg or Benjamini-Yekutieli procedures.
- `scipy.stats.CensoredData` to represent censored data. It can be used as
input to the ``fit`` method of univariate distributions and to the new
``ecdf`` function.
- Filliben's goodness of fit test as ``method='Filliben'`` of
`scipy.stats.goodness_of_fit`.
- `scipy.stats.ttest_ind` has a new method, ``confidence_interval`` for
computing confidence intervals.
- `scipy.stats.MonteCarloMethod`, `scipy.stats.PermutationMethod`, and
`scipy.stats.BootstrapMethod` are new classes to configure resampling and/or
Monte Carlo versions of hypothesis tests. They can currently be used with
`scipy.stats.pearsonr`.

Statistical Distributions
-------------------------
- Added the von-Mises Fisher distribution as `scipy.stats.vonmises_fisher`.
This distribution is the most common analogue of the normal distribution
on the unit sphere.
- Added the relativistic Breit-Wigner distribution as
`scipy.stats.rel_breitwigner`.
It is used in high energy physics to model resonances.
- Added the Dirichlet multinomial distribution as
`scipy.stats.dirichlet_multinomial`.
- Improved the speed and precision of several univariate statistical
distributions.

- `scipy.stats.anglit` ``sf``
- `scipy.stats.beta` ``entropy``
- `scipy.stats.betaprime` ``cdf``, ``sf``, ``ppf``
- `scipy.stats.chi` ``entropy``
- `scipy.stats.chi2` ``entropy``
- `scipy.stats.dgamma` ``entropy``, ``cdf``, ``sf``, ``ppf``, and ``isf``
- `scipy.stats.dweibull` ``entropy``, ``sf``, and ``isf``
- `scipy.stats.exponweib` ``sf`` and ``isf``
- `scipy.stats.f` ``entropy``
- `scipy.stats.foldcauchy` ``sf``
- `scipy.stats.foldnorm` ``cdf`` and ``sf``
- `scipy.stats.gamma` ``entropy``
- `scipy.stats.genexpon` ``ppf``, ``isf``, ``rvs``
- `scipy.stats.gengamma` ``entropy``
- `scipy.stats.geom` ``entropy``
- `scipy.stats.genlogistic` ``entropy``, ``logcdf``, ``sf``, ``ppf``,
 and ``isf``
- `scipy.stats.genhyperbolic` ``cdf`` and ``sf``
- `scipy.stats.gibrat` ``sf`` and ``isf``
- `scipy.stats.gompertz` ``entropy``, ``sf``. and ``isf``
- `scipy.stats.halflogistic` ``sf``, and ``isf``
- `scipy.stats.halfcauchy` ``sf`` and ``isf``
- `scipy.stats.halfnorm` ``cdf``, ``sf``, and ``isf``
- `scipy.stats.invgamma` ``entropy``
- `scipy.stats.invgauss` ``entropy``
- `scipy.stats.johnsonsb` ``pdf``, ``cdf``, ``sf``, ``ppf``, and ``isf``
- `scipy.stats.johnsonsu` ``pdf``, ``sf``, ``isf``, and ``stats``
- `scipy.stats.lognorm` ``fit``
- `scipy.stats.loguniform` ``entropy``, ``logpdf``, ``pdf``, ``cdf``, ``ppf``,
 and ``stats``
- `scipy.stats.maxwell` ``sf`` and ``isf``
- `scipy.stats.nakagami` ``entropy``
- `scipy.stats.powerlaw` ``sf``
- `scipy.stats.powerlognorm` ``logpdf``, ``logsf``, ``sf``, and ``isf``
- `scipy.stats.powernorm` ``sf`` and ``isf``
- `scipy.stats.t` ``entropy``, ``logpdf``, and ``pdf``
- `scipy.stats.truncexpon` ``sf``, and ``isf``
- `scipy.stats.truncnorm` ``entropy``
- `scipy.stats.truncpareto` ``fit``
- `scipy.stats.vonmises` ``fit``

- `scipy.stats.multivariate_t` now has ``cdf`` and ``entropy`` methods.
- `scipy.stats.multivariate_normal`, `scipy.stats.matrix_normal`, and
`scipy.stats.invwishart` now have an ``entropy`` method.

Other Improvements
------------------
- `scipy.stats.monte_carlo_test` now supports multi-sample statistics.
- `scipy.stats.bootstrap` can now produce one-sided confidence intervals.
- `scipy.stats.rankdata` performance was improved for ``method=ordinal`` and
``method=dense``.
- `scipy.stats.moment` now supports non-central moment calculation.
- `scipy.stats.anderson` now supports the ``weibull_min`` distribution.
- `scipy.stats.sem` and `scipy.stats.iqr` now support ``axis``, ``nan_policy``,
and masked array input.


Deprecated features
=================

- Multi-Ellipsis sparse matrix indexing has been deprecated and will
be removed in SciPy 1.13.
- Several methods were deprecated for sparse arrays: ``asfptype``, ``getrow``,
``getcol``, ``get_shape``, ``getmaxprint``, ``set_shape``,
``getnnz``, and ``getformat``. Additionally, the ``.A`` and ``.H``
attributes were deprecated. Sparse matrix types are not affected.
- The `scipy.linalg` functions ``tri``, ``triu`` & ``tril`` are deprecated and
will be removed in SciPy 1.13. Users are recommended to use the NumPy
versions of these functions with identical names.
- The `scipy.signal` functions ``bspline``, ``quadratic`` & ``cubic`` are
deprecated and will be removed in SciPy 1.13. Users are recommended to use
`scipy.interpolate.BSpline` instead.
- The ``even`` keyword of `scipy.integrate.simpson` is deprecated and will be
removed in SciPy 1.13.0. Users should leave this as the default as this
gives improved accuracy compared to the other methods.
- Using ``exact=True`` when passing integers in a float array to ``factorial``
is deprecated and will be removed in SciPy 1.13.0.
- float128 and object dtypes are deprecated for `scipy.signal.medfilt` and
`scipy.signal.order_filter`
- The functions ``scipy.signal.{lsim2, impulse2, step2}`` had long been
deprecated in documentation only. They now raise a DeprecationWarning and
will be removed in SciPy 1.13.0.
- Importing window functions directly from `scipy.window` has been soft
deprecated since SciPy 1.1.0. They now raise a ``DeprecationWarning`` and
will be removed in SciPy 1.13.0. Users should instead import them from
`scipy.signal.window` or use the convenience function
`scipy.signal.get_window`.


Backwards incompatible changes
============================
- The default for the ``legacy`` keyword of `scipy.special.comb` has changed
from ``True`` to ``False``, as announced since its introduction.


Expired Deprecations
==================
There is an ongoing effort to follow through on long-standing deprecations.
The following previously deprecated features are affected:

- The ``n`` keyword has been removed from `scipy.stats.moment`.
- The ``alpha`` keyword has been removed from `scipy.stats.interval`.
- The misspelt ``gilbrat`` distribution has been removed (use
`scipy.stats.gibrat`).
- The deprecated spelling of the ``kulsinski`` distance metric has been
removed (use `scipy.spatial.distance.kulczynski1`).
- The ``vertices`` keyword of `scipy.spatial.Delauney.qhull` has been removed
(use simplices).
- The ``residual`` property of `scipy.sparse.csgraph.maximum_flow` has been
removed (use ``flow``).
- The ``extradoc`` keyword of `scipy.stats.rv_continuous`,
`scipy.stats.rv_discrete` and `scipy.stats.rv_sample` has been removed.
- The ``sym_pos`` keyword of `scipy.linalg.solve` has been removed.
- The `scipy.optimize.minimize` function now raises an error for ``x0`` with
``x0.ndim > 1``.
- In `scipy.stats.mode`, the default value of ``keepdims`` is now ``False``,
and support for non-numeric input has been removed.
- The function `scipy.signal.lsim` does not support non-uniform time steps
anymore.


Other changes
============
- Rewrote the source build docs and restructured the contributor guide.
- Improved support for cross-compiling with meson build system.
- MyST-NB notebook infrastructure has been added to our documentation.




Authors
=======

* h-vetinari (69)
* Oriol Abril-Pla (1) +
* Anton Akhmerov (13)
* Andrey Akinshin (1) +
* alice (1) +
* Oren Amsalem (1)
* Ross Barnowski (11)
* Christoph Baumgarten (2)
* Dawson Beatty (1) +
* Doron Behar (1) +
* Peter Bell (1)
* John Belmonte (1) +
* boeleman (1) +
* Jack Borchanian (1) +
* Matt Borland (3) +
* Jake Bowhay (40)
* Sienna Brent (1) +
* Matthew Brett (1)
* Evgeni Burovski (38)
* Matthias Bussonnier (2)
* Maria Cann (1) +
* Alfredo Carella (1) +
* CJ Carey (18)
* Hood Chatham (2)
* Anirudh Dagar (3)
* Alberto Defendi (1) +
* Pol del Aguila (1) +
* Hans Dembinski (1)
* Dennis (1) +
* Vinayak Dev (1) +
* Thomas Duvernay (1)
* DWesl (4)
* Stefan Endres (66)
* Evandro (1) +
* Tom Eversdijk (2) +
* Isuru Fernando (1)
* Franz Forstmayr (4)
* Joseph Fox-Rabinovitz (1)
* Stefano Frazzetto (1) +
* Neil Girdhar (1)
* Caden Gobat (1) +
* Ralf Gommers (146)
* GonVas (1) +
* Marco Gorelli (1)
* Brett Graham (2) +
* Matt Haberland (385)
* harshvardhan2707 (1) +
* Alex Herbert (1) +
* Guillaume Horel (1)
* Geert-Jan Huizing (1) +
* Jakob Jakobson (2)
* Julien Jerphanion (5)
* jyuv (2)
* Rajarshi Karmakar (1) +
* Ganesh Kathiresan (3) +
* Robert Kern (4)
* Andrew Knyazev (3)
* Sergey Koposov (1)
* Rishi Kulkarni (2) +
* Eric Larson (1)
* Zoufiné Lauer-Bare (2) +
* Antony Lee (3)
* Gregory R. Lee (8)
* Guillaume Lemaitre (1) +
* lilinjie (2) +
* Yannis Linardos (1) +
* Christian Lorentzen (5)
* Loïc Estève (1)
* Charlie Marsh (2) +
* Boris Martin (1) +
* Nicholas McKibben (10)
* Melissa Weber Mendonça (57)
* Michał Górny (1) +
* Jarrod Millman (2)
* Stefanie Molin (2) +
* Mark W. Mueller (1) +
* mustafacevik (1) +
* Takumasa N (1) +
* nboudrie (1)
* Andrew Nelson (111)
* Nico Schlömer (4)
* Lysandros Nikolaou (2) +
* Kyle Oman (1)
* OmarManzoor (2) +
* Simon Ott (1) +
* Geoffrey Oxberry (1) +
* Geoffrey M. Oxberry (2) +
* Sravya papaganti (1) +
* Tirth Patel (2)
* Ilhan Polat (32)
* Quentin Barthélemy (1)
* Matteo Raso (12) +
* Tyler Reddy (97)
* Lucas Roberts (1)
* Pamphile Roy (224)
* Jordan Rupprecht (1) +
* Atsushi Sakai (11)
* Omar Salman (7) +
* Leo Sandler (1) +
* Ujjwal Sarswat (3) +
* Saumya (1) +
* Daniel Schmitz (79)
* Henry Schreiner (2) +
* Dan Schult (3) +
* Eli Schwartz (6)
* Tomer Sery (2) +
* Scott Shambaugh (4) +
* Gagandeep Singh (1)
* Ethan Steinberg (6) +
* stepeos (2) +
* Albert Steppi (3)
* Strahinja Lukić (1)
* Kai Striega (4)
* suen-bit (1) +
* Tartopohm (2)
* Logan Thomas (2) +
* Jacopo Tissino (1) +
* Matus Valo (10) +
* Jacob Vanderplas (2)
* Christian Veenhuis (1) +
* Isaac Virshup (1)
* Stefan van der Walt (14)
* Warren Weckesser (63)
* windows-server-2003 (1)
* Levi John Wolf (3)
* Nobel Wong (1) +
* Benjamin Yeh (1) +
* Rory Yorke (1)
* Younes (2) +
* Zaikun ZHANG (1) +
* Alex Zverianskii (1) +

A total of 131 people contributed to this release.
People with a "+" by their names contributed a patch for the first time.
This list of names is automatically generated, and may not be fully complete.

1.10.1

compared to `1.10.0`.



Authors
=======
* Name (commits)
* alice (1) +
* Matt Borland (2) +
* Evgeni Burovski (2)
* CJ Carey (1)
* Ralf Gommers (9)
* Brett Graham (1) +
* Matt Haberland (5)
* Alex Herbert (1) +
* Ganesh Kathiresan (2) +
* Rishi Kulkarni (1) +
* Loïc Estève (1)
* Michał Górny (1) +
* Jarrod Millman (1)
* Andrew Nelson (4)
* Tyler Reddy (50)
* Pamphile Roy (2)
* Eli Schwartz (2)
* Tomer Sery (1) +
* Kai Striega (1)
* Jacopo Tissino (1) +
* windows-server-2003 (1)

A total of 21 people contributed to this release.
People with a "+" by their names contributed a patch for the first time.
This list of names is automatically generated, and may not be fully complete.
Links

Update zopfli from 0.2.1 to 0.2.2.

Changelog

0.2.2

* Added pyproject.toml to source distribution
* Published precompiled wheels for Python 3.11
Links

Update skia-pathops from 0.7.3 to 0.8.0.

Changelog

0.8.0

- Update embedded libskia to chrome/m113 branch
- Dropped support for Python 3.7 which reached end of life, we now require python 3.8 or greater.
- Added support for special TrueType-style closed contours without on-curve points in the PathPen and Path.draw interface (45, 66).

0.7.4

Support variable number of points in PathPen curveTo/qCurveTo methods, following fontTools BasePen protocol and UFO GLIF spec (63).
Links

Update ufoLib2 from 0.14.0 to 0.16.0.

Changelog

0.16.0

What's Changed
* Added `tempLib` property to Font, Layer and Glyph (like defcon's) by anthrotype in https://github.com/fonttools/ufoLib2/pull/283
* Reverted "Bring guideline invariants up to spec" PR https://github.com/fonttools/ufoLib2/pull/276

**Full Changelog**: https://github.com/fonttools/ufoLib2/compare/v0.15.0...v0.16.0

0.15.0

What's Changed
* raise appropriate error when extras not installed by anthrotype in https://github.com/fonttools/ufoLib2/pull/246
* Bring guideline invariants up to spec by madig in https://github.com/fonttools/ufoLib2/pull/276


**Full Changelog**: https://github.com/fonttools/ufoLib2/compare/v0.14.0...v0.15.0
Links

Update ufo2ft from 2.31.0 to 2.33.2.

Changelog

2.33.2

- Allow to reverseDirection=True even when convertCubics=False (770).

2.33.1

- Added ``convertCubics=True`` to compileInterpolatableTTFs/compileVariableTTF methods, to allow disabling cu2qu altogether (similar to the existing option that was already there for compileTTF for statics).
- OutlineTTFCompiler: ensure that only quadratic curves are present in TrueType glyphs if glyphDataFormat=0 was not explicitly set to 1 (769).

2.33.0

- Support ``public.openTypePostUnderlinePosition`` lib key meant to clarify ambiguous meaning of underline position in post vs CFF table (unified-font-object/ufo-spec217, 760).
- [instructionCompiler] Make logging less noisy (767).
- Added ``allQuadratic=True`` compile option; when False, tells cu2qu to keep mix of cubic and quadratic curves (whichever has fewer points) as per glyf v1 draft spec proposal (768, https://github.com/harfbuzz/boring-expansion-spec/blob/main/glyf1.md).

2.32.0

- Raise error when multiple glyphs claim the same Unicode codepoint. When expanding color layers to glyphs, ensure any codepoint is stripped to prevent unintentional clashes (739).
- Use ``fontTools.cu2qu`` instead of standalone ``cu2qu`` module, no changes, just one less dependency (756).
- Added compile option for static/variable TTF outputs to ``dropImpliedOnCurves`` to omit on-curve points that are halfway between two consecutive off-curve points, slightly reducing glyf table size with no visible differences (753).
- [constants] Updated Indic / USE script lists (755).
- Require fonttools >= 4.40.0

2.31.1

- [featureWriter.ast] Have iterClassDefinitions search not just top-level but inside feature and lookup blocks as well (732).
- Added ``autoUseMyMetrics=True`` compile option (for TrueType output only) to allow disabling the automatic setting of ``USE_MY_METRICS`` glyf component flags, which is not needed for fonts without hinted metrics (741).
- [kernFeatureWriter] Only use exported glyphs when generating mark filtering sets (740).
Links

Update pyobjc from 9.0 to 9.2.

Changelog

9.2

-----------

* :issue:`549`: Added warning ``objc.ObjCSuperWarning`` that is used
to warn about classes that use argument-less super without binding that
name to ``objc.super``.

The correct code pattern is:


.. sourcecode:: python3

  from Foundation import NSObject
  from objc import super


  class MyObject(NSObject):
      def init(self):
          self = super().init()
          if self is None:
              return None

          ...
          return self


* :issue:`549`: Document that ``objc.super`` must be used instead of
``builtin.super`` when calling superclass methods in a Cocoa subclass.

See `the documentation <(https://pyobjc.readthedocs.io/core/super.html>`_
for more details.

* :issue:`550`: Add minimal ``pyproject.toml`` to all subprojects

Recent versions of pip give a deprecation warning for projects without
a ``pyproject.toml``, and version 23.1 enabled the ``pyproject.toml``
backend by default. Add a minimal ``pyproject.toml`` to get a consistent
build regardless of the version of pip

* :issue:`551`: Fix crash in pyobjc-core when using Python 3.12a7.

* :issue:`449`: Added explicit tests for dealing with Objective-C categories
that are loaded while using classes from Python.

* :issue:`552`: Fix the version of macOS where the SafariServices framework is
present.

* :issue:`552`: Fixed some issues found by testing on a macOS 10.11 system

* Trying to implement a method with SIMD types as arguments or return value
will now give a more useful error when the bridge does not support the
signature.

* :issue:`554`: Fix incomplete metadata for ``CoreMediaIO.CMIOObjectSetPropertyData``

* Fix incorrect metadata for
``xpc.xpc_uuid_create``,
``xpc.xpc_dictionary_set_uuid`` ,
``xpc.xpc_array_set_uuid``,
``JavaScriptCore.JSObjectMakeDeferredPromise``,
``JavaScriptCore.JSValueIsEqual``,
``JavaScriptCore.JSValueIsInstanceOfConstructor``,
``JavaScriptCore.JSValueCreateJSONString``,
``JavaScriptCore.JSValueToNumber``,
``JavaScriptCore.JSValueToStringCopy``,
``JavaScriptCore.JSValueToObject``,
``Quartz.CGImageCreateWithJPEGDataProvider``,
``Quartz.CGImageCreateWithPNGDataProvider``,
``Quartz.CGImageMaskCreate``,
``Quartz.CVBufferCopyAttachment``,
``Quartz.CVMetalTextureCacheCreate``,
``Quartz.CVMetalTextureCacheCreateFromImage``,
``Quartz.CVOpenGLTextureCacheCreate``,
``CoreMedia.CMAudioClockCreate``,
``CoreMedia.CMAudioFormatDescriptionCreate``,
``CoreMedia.CMBlockBufferGetDataPointer``,
``CoreMedia.CMBlockBufferAccessDataBytes``,
``CoreMedia.CMBlockBufferGetDataPointer``,
``CoreMedia.CMAudioFormatDescriptionGetMostCompatibleFormat``,
``CoreMedia.CMAudioFormatDescriptionGetRichestDecodableFormat``,
``CoreMedia.CMSampleBufferCreateWithMakeDataReadyHandler``,
``CoreMedia.CMSampleBufferCreateForImageBufferWithMakeDataReadyHandler``,
``CFNetwork.CFNetServiceBrowserSearchForDomains``,
``CFNetwork.CFNetServiceBrowserStopSearch``,
``CFNetwork.CFNetServiceMonitorStop``,
``CFNetwork.CFNetServiceRegister``,
``CFNetwork.CFNetServiceResolve``,
``CoreText.CTFontCreateCopyWithSymbolicTraits``,
``CoreText.CTFontCreateCopyWithFamily``,
``CoreText.CTFontCreateCopyWithAttributes``,
``CoreMIDI.MIDISourceCreateWithProtocol``,
``CoreMIDI.MIDISourceCreate``,
``CoreMIDI.MIDISetupCreate``,
``CoreMIDI.MIDIDestinationCreate``,
``CoreMIDI.MIDIClientCreate``,
``CoreMIDI.MIDIClientCreateWithBlock``,
``CoreMIDI.MIDIOutputPortCreate``,
``CoreMIDI.MIDIObjectGetStringProperty``,
``CoreMIDI.MIDIObjectGetProperties``,
``CoreMIDI.MIDIObjectGetIntegerProperty``,
``CoreMIDI.MIDIObjectGetDictionaryProperty``,
``CoreMIDI.MIDIObjectGetDataProperty``,
``CoreMIDI.MIDIObjectFindByUniqueID``,
``CoreMIDI.MIDIDestinationCreateWithProtocol``,
``CoreMIDI.MIDIEndpointGetEntity``,
``CoreMIDI.MIDIEntityGetDevice``,
``CoreMIDI.MIDIEntityGetRefCons``,
``CoreMIDI.MIDIEntitySetRefCons``,
``DVDPlayback.DVDRegisterEventCallBack``,
``DiskArbitration.DADiskMountWithArguments``,
``GameController.NSDataFromGCExtendedGamepadSnapShotDataV100``,
``HealthKit.HKAppleWalkingSteadinessClassificationForQuantity``,
``IOSurface.IOSurfaceSetPurgeable``,
``Network.nw_ethernet_channel_send``,

* Removed ``Quartz.CGColorConversionInfoCreateFromListWithArguments``. This function
was already documented as unsupported, but was still present in the framework
wrapper.

* Removed ``Quartz.CVPixelBufferCreateWithPlanarBytes``. This function requires a
manual binding, but was still present with a generic (and non-working) binding.

* Removed ``CoreMedia.CMBufferQueueCreate``, ``CoreMedia.CMBufferQueueGetCallbacksForSampleBuffersSortedByOutputPTS``,
``CoreMedia.CMBufferQueueGetCallbacksForUnsortedSampleBuffers``, ``CoreMedia.CMVideoFormatDescriptionGetH264ParameterSetAtIndex``,
``CoreMedia.CMVideoFormatDescriptionGetHVECParameterSetAtIndex``,
These functions require a manual binding, but were still present with a generic (and non-working) binding.

* Explicitly exclude definitions from ``CMIOHardwarePlugIn.h`` from the CoreMediaIO
bindings.

* Added ``deref_result_pointer`` key to the metadata for a return value. Use this
when a callable returns a pointer to a single value (for example ``CMAudioFormatDescriptionGetMostCompatibleFormat``)

* Removed unsupported functions from the ApplicationServices bindings (not named individually
due to the size of the list). Also fixed annotations for other ApplicationServices bindings.

* Add manual binding for ``CFNetwork.CFNetServiceBrowserCreate``, ``CFNetwork.CFNetServiceSetClient``,
and ``CFNetwork.CFNetServiceMonitorCreate``.

* Fix incompatibility with Python 3.12 beta 1.

.. warning::

  Due to changes to the bytecode compiler the bridge will (incorrectly)
  deduce that a method does not return a value (``void`` return in Objective-C)
  when a method only contains ``return None`` statements and no return
  statements that return some other value (expressions or constants).

  That is the following method is implied to return ``id`` for Python 3.11 or
  earlier, but is implied to return ``void`` in Python 3.12.

  .. sourcecode:: python

      def mymethod(self):
          return None

9.1.1

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

* :issue:`548`: Fix unexpected error when using mix-in classes

9.1

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

* Fix handling ``python_method(native_selector)`` when assigning to a class
attribute. That is, the following was broken in 9.1b1:

.. sourcecode:: python

  import Foundation, objc

  NSArray.makeArray = objc.python_method(NSArray.arrayWithArray_)

* :issue:`535`: Reverted ome of the speedups in ``assertCallableMetadataIsSane``

A new sanity check required reverting some of the speedups in
``assertCallableMetadataIsSane``.

9.1b1

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

This is a fairly large larger update due to rewriting part of the core
logic in Python (where the previous version used C). This does result in
some minor semantic changes, but those should only affect edge cases and
not normal user code.

These changes were done because it simplifies the code base, and makes it
easier to evolve the code (which has already led to a number of easy-of-use
improvements as described below).

* :issue:`306`: The code that converts a Python callable into an ``objc.selector``
when creating an Objective-C class is now written in Python instead of
Objective-C.

Note that the interface that the C extension uses to invoke Python
code is not a public API and can change in minor releases.

The rewrite found a number of edge cases where the older implementation
in C was incorrect or inconsistent. Those problems have been fixed as
part of this effort (see below for details).

* The BadPrototypeError raised when a method is not compatible with number
of arguments expected by Objective-C now mentions the number of
arguments excluding the "self" argument, instead of including it.

* The new code will accept callables other than functions and bound
method as a possible source of ``objc.selector`` objects, this
can affect code storing a callable object (other than types) as
a class attribute.

Wrap these in an ``objc.python_method`` to avoid conversion.

* Added ``objc_objc_method`` that can be used to decorate functions
that must be converted to an ``objc.selector``. The decorator has
optional keyword arguments to affect the conversion.

* ``objc.python_method`` is now implemented in Python.

The ``callable`` attribute is deprecated, use ``__wrapped__`` instead
to access the wrapped callable.

The new implementation requires that the wrapped value is either
a callable or a classmethod and won't work with arbitrary values.

* Coroutines (generators, async method) are no longer wrapped in
an ``objc.selector`` by default.

* Using a callable that's not compatible with use a selector due
to having the wrong number of positional arguments or having
keyword-only arguments will now raise consistently during
class construction.

* objc.python_method is now implemewnted in Python. Due to the
reimplementation the ``callable`` attribute has been renamed
to the more standard ``__wrapped__`` attribute.

* For native selectors the ``signature`` attribute no longer
contains the raw signature, but a cleaned up copy.

* Added private function to look for an informal protocol related
to a selector name.

* Added private function to look registered metadata for a
selector name.

* PEP-8 compatible multi-word method names are no longer converted
to selectors, e.g.:

.. sourcecode:: python

 class MyObject(NSObject):
    def some_method(self, a, b):
        pass

In previous versions this required using the ``objc.python_method``
decorator.

* Method names containing double underscores are no longer converted
to selectors, e.g:

.. sourcecode:: python

 class MyObject(NSObject):
   def spam__(self, a, b):
       pass

   def spam__ham_(self, a, b, c):
       pass

In previous versions these were converted to, nonsensical,
selectors: ``spam::`` and ``spam::ham:``.

* Introduce a new optional subkey in ``__metadata__()``: ``full_signature``
contains the complete signature for a method.

* Setting dunder names in a class will no longer create a selector:

.. sourcecode:: python

  def __dir__(self):
      return []

  NSObject.__dir__ = __dir__

In PyObjC 9.0 or earlier this resulted in a new selector on
``NSObject``, in PyObjC 9.1 this results a new Python-only method.

This matches the behaviour of defining dunder methods in a class
definition.

* Wrapping a python_method in a classmethod now works:

.. sourcecode:: python

   class MyClass(NSObject):
       classmethod
       python_method
       def spam_spam(self):
           pass

* Method definitions with varargs are now accepted for selectors
when the number of arg

@pyup-bot
Copy link
Collaborator Author

pyup-bot commented Aug 7, 2023

Closing this in favor of #3249

@pyup-bot pyup-bot closed this Aug 7, 2023
@anthrotype anthrotype deleted the pyup-scheduled-update-2023-07-31 branch August 7, 2023 16:00
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