Skip to content
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

Scheduled monthly dependency update for January #272

Closed
wants to merge 82 commits into from

Conversation

pyup-bot
Copy link
Collaborator

@pyup-bot pyup-bot commented Jan 1, 2024

Update beautifulsoup4 from 4.8.0 to 4.12.2.

Changelog

4.11.1

This release was done to ensure that the unit tests are packaged along
with the released source. There are no functionality changes in this
release, but there are a few other packaging changes:

* The Japanese and Korean translations of the documentation are included.
* The changelog is now packaged as CHANGELOG, and the license file is
packaged as LICENSE. NEWS.txt and COPYING.txt are still present,
but may be removed in the future.
* TODO.txt is no longer packaged, since a TODO is not relevant for released
code.

4.11.0

* Ported unit tests to use pytest.

* Added special string classes, RubyParenthesisString and RubyTextString,
to make it possible to treat ruby text specially in get_text() calls.
[bug=1941980]

* It's now possible to customize the way output is indented by
providing a value for the 'indent' argument to the Formatter
constructor. The 'indent' argument works very similarly to the
argument of the same name in the Python standard library's
json.dump() function. [bug=1955497]

* If the charset-normalizer Python module
(https://pypi.org/project/charset-normalizer/) is installed, Beautiful
Soup will use it to detect the character sets of incoming documents.
This is also the module used by newer versions of the Requests library.
For the sake of backwards compatibility, chardet and cchardet both take
precedence if installed. [bug=1955346]

* Added a workaround for an lxml bug
(https://bugs.launchpad.net/lxml/+bug/1948551) that causes
problems when parsing a Unicode string beginning with BYTE ORDER MARK.
[bug=1947768]

* Issue a warning when an HTML parser is used to parse a document that
looks like XML but not XHTML. [bug=1939121]

* Do a better job of keeping track of namespaces as an XML document is
parsed, so that CSS selectors that use namespaces will do the right
thing more often. [bug=1946243]

* Some time ago, the misleadingly named "text" argument to find-type
methods was renamed to the more accurate "string." But this supposed
"renaming" didn't make it into important places like the method
signatures or the docstrings. That's corrected in this
version. "text" still works, but will give a DeprecationWarning.
[bug=1947038]

* Fixed a crash when pickling a BeautifulSoup object that has no
tree builder. [bug=1934003]

* Fixed a crash when overriding multi_valued_attributes and using the
html5lib parser. [bug=1948488]

* Standardized the wording of the MarkupResemblesLocatorWarning
warnings to omit untrusted input and make the warnings less
judgmental about what you ought to be doing. [bug=1955450]

* Removed support for the iconv_codec library, which doesn't seem
to exist anymore and was never put up on PyPI. (The closest
replacement on PyPI, iconv_codecs, is GPL-licensed, so we can't use
it--it's also quite old.)

4.10.0

* This is the first release of Beautiful Soup to only support Python
3. I dropped Python 2 support to maintain support for newer versions
(58 and up) of setuptools. See:
https://github.com/pypa/setuptools/issues/2769 [bug=1942919]

* The behavior of methods like .get_text() and .strings now differs
depending on the type of tag. The change is visible with HTML tags
like <script>, <style>, and <template>. Starting in 4.9.0, methods
like get_text() returned no results on such tags, because the
contents of those tags are not considered 'text' within the document
as a whole.

But a user who calls script.get_text() is working from a different
definition of 'text' than a user who calls div.get_text()--otherwise
there would be no need to call script.get_text() at all. In 4.10.0,
the contents of (e.g.) a <script> tag are considered 'text' during a
get_text() call on the tag itself, but not considered 'text' during
a get_text() call on the tag's parent.

Because of this change, calling get_text() on each child of a tag
may now return a different result than calling get_text() on the tag
itself. That's because different tags now have different
understandings of what counts as 'text'. [bug=1906226] [bug=1868861]

* NavigableString and its subclasses now implement the get_text()
method, as well as the properties .strings and
.stripped_strings. These methods will either return the string
itself, or nothing, so the only reason to use this is when iterating
over a list of mixed Tag and NavigableString objects. [bug=1904309]

* The 'html5' formatter now treats attributes whose values are the
empty string as HTML boolean attributes. Previously (and in other
formatters), an attribute value must be set as None to be treated as
a boolean attribute. In a future release, I plan to also give this
behavior to the 'html' formatter. Patch by Isaac Muse. [bug=1915424]

* The 'replace_with()' method now takes a variable number of arguments,
and can be used to replace a single element with a sequence of elements.
Patch by Bill Chandos. [rev=605]

* Corrected output when the namespace prefix associated with a
namespaced attribute is the empty string, as opposed to
None. [bug=1915583]

* Performance improvement when processing tags that speeds up overall
tree construction by 2%. Patch by Morotti. [bug=1899358]

* Corrected the use of special string container classes in cases when a
single tag may contain strings with different containers; such as
the <template> tag, which may contain both TemplateString objects
and Comment objects. [bug=1913406]

* The html.parser tree builder can now handle named entities
found in the HTML5 spec in much the same way that the html5lib
tree builder does. Note that the lxml HTML tree builder doesn't handle
named entities this way. [bug=1924908]

* Added a second way to pass specify encodings to UnicodeDammit and
EncodingDetector, based on the order of precedence defined in the
HTML5 spec, starting at:
https://html.spec.whatwg.org/multipage/parsing.html#parsing-with-a-known-character-encoding

Encodings in 'known_definite_encodings' are tried first, then
byte-order-mark sniffing is run, then encodings in 'user_encodings'
are tried. The old argument, 'override_encodings', is now a
deprecated alias for 'known_definite_encodings'.

This changes the default behavior of the html.parser and lxml tree
builders, in a way that may slightly improve encoding
detection but will probably have no effect. [bug=1889014]

* Improve the warning issued when a directory name (as opposed to
the name of a regular file) is passed as markup into the BeautifulSoup
constructor. [bug=1913628]

4.9.3

* Implemented a significant performance optimization to the process of
searching the parse tree. Patch by Morotti. [bug=1898212]

4.9.2

* Fixed a bug that caused too many tags to be popped from the tag
stack during tree building, when encountering a closing tag that had
no matching opening tag. [bug=1880420]

* Fixed a bug that inconsistently moved elements over when passing
a Tag, rather than a list, into Tag.extend(). [bug=1885710]

* Specify the soupsieve dependency in a way that complies with
PEP 508. Patch by Mike Nerone. [bug=1893696]

* Change the signatures for BeautifulSoup.insert_before and insert_after
(which are not implemented) to match PageElement.insert_before and
insert_after, quieting warnings in some IDEs. [bug=1897120]

4.9.1

* Added a keyword argument 'on_duplicate_attribute' to the
BeautifulSoupHTMLParser constructor (used by the html.parser tree
builder) which lets you customize the handling of markup that
contains the same attribute more than once, as in:
<a href="url1" href="url2"> [bug=1878209]

* Added a distinct subclass, GuessedAtParserWarning, for the warning
issued when BeautifulSoup is instantiated without a parser being
specified. [bug=1873787]

* Added a distinct subclass, MarkupResemblesLocatorWarning, for the
warning issued when BeautifulSoup is instantiated with 'markup' that
actually seems to be a URL or the path to a file on
disk. [bug=1873787]

* The new NavigableString subclasses (Stylesheet, Script, and
TemplateString) can now be imported directly from the bs4 package.

* If you encode a document with a Python-specific encoding like
'unicode_escape', that encoding is no longer mentioned in the final
XML or HTML document. Instead, encoding information is omitted or
left blank. [bug=1874955]

* Fixed test failures when run against soupselect 2.0. Patch by Tomáš
Chvátal. [bug=1872279]

4.9.0

* Added PageElement.decomposed, a new property which lets you
check whether you've already called decompose() on a Tag or
NavigableString.

* Embedded CSS and Javascript is now stored in distinct Stylesheet and
Script tags, which are ignored by methods like get_text() since most
people don't consider this sort of content to be 'text'. This
feature is not supported by the html5lib treebuilder. [bug=1868861]

* Added a Russian translation by 'authoress' to the repository.

* Fixed an unhandled exception when formatting a Tag that had been
decomposed.[bug=1857767]

* Fixed a bug that happened when passing a Unicode filename containing
non-ASCII characters as markup into Beautiful Soup, on a system that
allows Unicode filenames. [bug=1866717]

* Added a performance optimization to PageElement.extract(). Patch by
Arthur Darcet.

4.8.2

* Added Python docstrings to all public methods of the most commonly
used classes.

* Added a Chinese translation by Deron Wang and a Brazilian Portuguese
translation by Cezar Peixeiro to the repository.

* Fixed two deprecation warnings. Patches by Colin
Watson and Nicholas Neumann. [bug=1847592] [bug=1855301]

* The html.parser tree builder now correctly handles DOCTYPEs that are
not uppercase. [bug=1848401]

* PageElement.select() now returns a ResultSet rather than a regular
list, making it consistent with methods like find_all().

4.8.1

* When the html.parser or html5lib parsers are in use, Beautiful Soup
will, by default, record the position in the original document where
each tag was encountered. This includes line number (Tag.sourceline)
and position within a line (Tag.sourcepos).  Based on code by Chris
Mayo. [bug=1742921]

* When instantiating a BeautifulSoup object, it's now possible to
provide a dictionary ('element_classes') of the classes you'd like to be
instantiated instead of Tag, NavigableString, etc.

* Fixed the definition of the default XML namespace when using
lxml 4.4. Patch by Isaac Muse. [bug=1840141]

* Fixed a crash when pretty-printing tags that were not created
during initial parsing. [bug=1838903]

* Copying a Tag preserves information that was originally obtained from
the TreeBuilder used to build the original Tag. [bug=1838903]

* Raise an explanatory exception when the underlying parser
completely rejects the incoming markup. [bug=1838877]

* Avoid a crash when trying to detect the declared encoding of a
Unicode document. [bug=1838877]

* Avoid a crash when unpickling certain parse trees generated
using html5lib on Python 3. [bug=1843545]
Links

Update contourpy from 1.0.6 to 1.2.0.

Changelog

1.2.0

ContourPy 1.2.0 is a significant release with a number of new features. There is a new format for contour lines called `LineType.ChunkCombinedNan` that is designed to work directly with Bokeh and HoloViews. There are also new functions for manipulating contour lines and filled contours (`convert_filled`, `convert_lines`, `dechunk_filled` and `dechunk_lines`).

Calling `ContourGenerator.filled()` with two identical levels now raises a `ValueError` whereas previously it gave different results depending on algorithm `name`.

This release supports Python 3.9 to 3.12, and is the first release to ship musllinux aarch64 wheels.

Enhancements:

- Support strings as well as enums in renderer functions (284)
- Add new functions `dechunk_filled` and `dechunk_lines` (290)
- Add new functions `convert_filled` and `convert_lines` (291, 293, 294, 312, 313)
- Add new `LineType.ChunkCombinedNan` (296, 301, 308)
- Raise if call `filled()` with `lower_level==upper_level` (317)

Code improvements:

- Code quality improvements (282, 310)
- Improvements to array checking functions (298)
- Better use of dtypes and casting when calling numpy functions (300, 306, 308, 314)
- Update type annotations for Matplotlib 3.8 (303)
- Extra validation when dechunking and converting contour lines and filled contours (316)

Documentation improvements:

- Use `versionadded` sphinx directive (285)
- Remove threaded experimental warnings (297)
- Extract benchmark ratios when generating benchmark plots (302)
- Document new functions and conversion to Shapely geometries (318)

Build, testing and CI improvements:

- Add new CI run using NumPy nightly wheels (280)
- Test contour levels that are `+/-np.inf` (283)
- Improved PyPy CI (287, 307)
- Use better names for enums when reporting parametrised tests (292)
- Improved mpl debug renderer tests (295)
- Support musllinux aarch64 (305)
- Run test suite in parallel (311)
- Miscellaneous build and CI improvements (279, 281, 288, 315, 319)

1.1.1

This release adds support for CPython 3.12 and reinstates the release of Windows 32-bit wheels following NumPy's intention to continue doing so. There is a new keyword argument `webdriver` to the `BokehRenderer` save functions to reuse the same Selenium WebDriver instance across multiple calls.

This release supports Python 3.8 to 3.12.

Thanks to new contributor shadchin and existing contributors eli-schwartz and ianthomas23.

Enhancements:

- Add `webdriver` kwarg to Bokeh export functions (261)
- Add `--driver-path` pytest option to specify chrome driver path (264)

Code improvements:

- Sync constant name with C++ code (258)
- Improved validation in internal chunk functions (266)

Documentation improvements:

- Exclude prompts when using sphinx copybutton (269)

Build system and CI improvements:

- Support CPython 3.12 (254, 272)
- Reinstate Windows 32-bit testing and wheels (274, 275)
- Update build and CI dependencies (256, 257, 259)
- Don't require `ninja` to come from PyPI (260)
- Re-enable bokeh tests in CI (263)
- Add tests for saving to PNG and SVG using Matplotlib and Bokeh renderers (267)
- Pin numpy to less than 2.0 (268)
- Remove `ninja` build requirements (270)

1.1.1rc1

Changelog will be updated with the full release which will happen before the end of September.

1.1.0

This release features a change in the build system from `distutils`, which is scheduled for removal in Python 3.12, to `meson` and `meson-python`. It includes the building of wheels for ppc64le and s390x (on x86_64 only) and removes building of all 32-bit wheels and macOS universal2 wheels.

This release supports Python 3.8 to 3.11.

Thanks to new contributor eli-schwartz.

Build system improvements:

* New meson build system (183, 226, 232, 249, 250)
* Drop building universal2 wheels (225)
* Add build_config to store and show build configuration info (227)
* Build ppc64le and s390x wheels (246)

Code improvements:

* Rearrange functions alphabetically (219)
* Remove unused mpl2005 and mpl2014 code (234, 237)
* Improve mpl2014 chunk count error handling (238)

Documentation improvements:

* Improve API docs (220, 221, 222)
* Update benchmarks (233)
* Add meson-specific build docs (245)
* Add simpler README for PyPI (247)

CI improvements:

* Replace flake8 with ruff (211)
* Building and testing on cirrus CI (213)
* Run mypy in CI (230)
* Set up code coverage in CI (235, 236, 183)
* New internal API, codebase and debug renderer tests (239, 241, 244)
* Use correct version of chromium for Bokeh image tests (243)
* Add tests for musllinux (on x86_64), ppc64le and s390x (246)

1.0.7

This release adds type annotations and moves project metadata to pyproject.toml (PEP 621). Documentation now uses the Sphinx Furo theme, supporting dark and light modes. There are no functional changes.

Type annotations:

* Add type annotations (199, 200, 201, 202)
* Complete mypy configuration (206)

Documentation improvements:

* Support dark mode (185, 188)
* Use sphinx copy button (189)
* Add conda monthly download badges to README (192)
* Furo sphinx theme (195)

Code improvements:

* Improved if statement (186)
* Test nonfinite z and decreasing zlevel for filled (190)
* Add abstract base class Renderer (198)
* Replace mpl scatter call with plot instead (203)
* Use absolute imports (204)
* Minor improvement to get_boundary_start_point (205)

Build system and CI improvements:

* Switch from setup.cfg to pyproject.toml (181)
* Add git pre-commit (191)
* Test improvements (193, 194, 197)
* CI improvements (179, 180, 184)
Links

Update cycler from 0.11.0 to 0.12.1.

Changelog

0.12.1

This is the second release of Cycler 0.12.

This fixes the previous release not shipping the `py.typed` file.

0.12.0

This is the first release of Cycler 0.12.

The major new feature in this release is the addition of type hints.
Furthermore, the minimum supported version of Python is now 3.8.

0.12.0rc1

This is the first release candidate for Cycler 0.12.0.

The major new feature in this release is the addition of type hints.
Furthermore, the minimum supported version of Python is now 3.8.
Links

Update eppy from 0.5.60 to 0.5.63.

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

Links

Update fonttools from 4.38.0 to 4.47.0.

Changelog

4.47.0

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

- [varLib.models] New API for VariationModel: ``getMasterScalars`` and
``interpolateFromValuesAndScalars``.
- [varLib.interpolatable] Various bugfixes and rendering improvements. In particular,
add a Summary page in the front, and an Index and Table-of-Contents in the back.
Change the page size to Letter.
- [Docs/designspaceLib] Defined a new ``public.fontInfo`` lib key, not used anywhere yet (3358).

4.46.0

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

- [featureVars] Allow to register the same set of substitution rules to multiple features.
The ``addFeatureVariations`` function can now take a list of featureTags; similarly, the
lib key 'com.github.fonttools.varLib.featureVarsFeatureTag' can now take a
comma-separateed string of feature tags (e.g. "salt,ss01") instead of a single tag (3360).
- [featureVars] Don't overwrite GSUB FeatureVariations, but append new records to it
for features which are not already there. But raise ``VarLibError`` if the feature tag
already has feature variations associated with it (3363).
- [varLib] Added ``addGSUBFeatureVariations`` function to add GSUB Feature Variations
to an existing variable font from rules defined in a DesignSpace document (3362).
- [varLib.interpolatable] Various bugfixes and rendering improvements. In particular,
a new test for "underweight" glyphs. The new test reports quite a few false-positives
though. Please send feedback.

4.45.1

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

- [varLib.interpolatable] Various bugfixes and improvements, better reporting, reduced
false positives.
- [ttGlyphSet] Added option to not recalculate glyf bounds (3348).

4.45.0

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

- [varLib.interpolatable] Vastly improved algorithms. Also available now is ``--pdf``
and ``--html`` options to generate a PDF or HTML report of the interpolation issues.
The PDF/HTML report showcases the problematic masters, the interpolated broken
glyph, as well as the proposed fixed version.

4.44.3

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

- [subset] Only prune codepage ranges for OS/2.version >= 1, ignore otherwise (3334).
- [instancer] Ensure hhea vertical metrics stay in sync with OS/2 ones after instancing
MVAR table containing 'hasc', 'hdsc' or 'hlgp' tags (3297).

4.44.2

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

- [glyf] Have ``Glyph.recalcBounds`` skip empty components (base glyph with no contours)
when computing the bounding box of composite glyphs. This simply restores the existing
behavior before some changes were introduced in fonttools 4.44.0 (3333).

4.44.1

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

- [feaLib] Ensure variable mark anchors are deep-copied while building since they
get modified in-place and later reused (3330).
- [OS/2|subset] Added method to ``recalcCodePageRanges`` to OS/2 table class; added
``--prune-codepage-ranges`` to `fonttools subset` command (3328, 2607).

4.44.0

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

- [instancer] Recalc OS/2 AvgCharWidth after instancing if default changes (3317).
- [otlLib] Make ClassDefBuilder class order match varLib.merger's, i.e. large
classes first, then glyph lexicographic order (3321, 3324).
- [instancer] Allow not specifying any of min:default:max values and let be filled
up with fvar's values (3322, 3323).
- [instancer] When running --update-name-table ignore axes that have no STAT axis
values (3318, 3319).
- [Debg] When dumping to ttx, write the embedded JSON as multi-line string with
indentation (92cbfee0d).
- [varStore] Handle > 65535 items per encoding by splitting VarData subtable (3310).
- [subset] Handle null-offsets in MarkLigPos subtables.
- [subset] Keep East Asian spacing fatures vhal, halt, chws, vchw by default (3305).
- [instancer.solver] Fixed case where axisDef < lower and upper < axisMax (3304).
- [glyf] Speed up compilation, mostly around ``recalcBounds`` (3301).
- [varLib.interpolatable] Speed it up when working on variable fonts, plus various
micro-optimizations (3300).
- Require unicodedata2 >= 15.1.0 when installed with 'unicode' extra, contains UCD 15.1.

4.43.1

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

- [EBDT] Fixed TypeError exception in `_reverseBytes` method triggered when dumping
some bitmap fonts with `ttx -z bitwise` option (3162).
- [v/hhea] Fixed UnboundLocalError exception in ``recalc`` method when no vmtx or hmtx
tables are present (3290).
- [bezierTools] Fixed incorrectly typed cython local variable leading to TypeError when
calling ``calcQuadraticArcLength`` (3288).
- [feaLib/otlLib] Better error message when building Coverage table with missing glyph (3286).

4.43.0

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

- [subset] Set up lxml ``XMLParser(resolve_entities=False)`` when parsing OT-SVG documents
to prevent XML External Entity (XXE) attacks (9f61271dc):
https://codeql.github.com/codeql-query-help/python/py-xxe/
- [varLib.iup] Added workaround for a Cython bug in ``iup_delta_optimize`` that was
leading to IUP tolerance being incorrectly initialised, resulting in sub-optimal deltas
(60126435d, cython/cython5732).
- [varLib] Added new command-line entry point ``fonttools varLib.avar`` to add an
``avar`` table to an existing VF from axes mappings in a .designspace file (0a3360e52).
- [instancer] Fixed bug whereby no longer used variation regions were not correctly pruned
after VarData optimization (3268).
- Added support for Python 3.12 (3283).

4.42.1

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

- [t1Lib] Fixed several Type 1 issues (3238, 3240).
- [otBase/packer] Allow sharing tables reached by different offset sizes (3241, 3236).
- [varLib/merger] Fix Cursive attachment merging error when all anchors are NULL (3248, 3247).
- [ttLib] Fixed warning when calling ``addMultilingualName`` and ``ttFont`` parameter was not
passed on to ``findMultilingualName`` (3253).

4.42.0

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

- [varLib] Use sentinel value 0xFFFF to mark a glyph advance in hmtx/vmtx as non
participating, allowing sparse masters to contain glyphs for variation purposes other
than {H,V}VAR (3235).
- [varLib/cff] Treat empty glyphs in non-default masters as missing, thus not participating
in CFF2 delta computation, similarly to how varLib already treats them for gvar (3234).
- Added varLib.avarPlanner script to deduce 'correct' avar v1 axis mappings based on
glyph average weights (3223).

4.41.1

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

- [subset] Fixed perf regression in v4.41.0 by making ``NameRecordVisitor`` only visit
tables that do contain nameID references (3213, 3214).
- [varLib.instancer] Support instancing fonts containing null ConditionSet offsets in
FeatureVariationRecords (3211, 3212).
- [statisticsPen] Report font glyph-average weight/width and font-wide slant.
- [fontBuilder] Fixed head.created date incorrectly set to 0 instead of the current
timestamp, regression introduced in v4.40.0 (3210).
- [varLib.merger] Support sparse ``CursivePos`` masters (3209).

4.41.0

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

- [fontBuilder] Fixed bug in setupOS2 with default panose attribute incorrectly being
set to a dict instead of a Panose object (3201).
- [name] Added method to ``removeUnusedNameRecords`` in the user range (3185).
- [varLib.instancer] Fixed issue with L4 instancing (moving default) (3179).
- [cffLib] Use latin1 so we can roundtrip non-ASCII in {Full,Font,Family}Name (3202).
- [designspaceLib] Mark <source name="..."> as optional in docs (as it is in the code).
- [glyf-1] Fixed drawPoints() bug whereby last cubic segment becomes quadratic (3189, 3190).
- [fontBuilder] Propagate the 'hidden' flag to the fvar Axis instance (3184).
- [fontBuilder] Update setupAvar() to also support avar 2, fixing ``_add_avar()`` call
site (3183).
- Added new ``voltLib.voltToFea`` submodule (originally Tiro Typeworks' "Volto") for
converting VOLT OpenType Layout sources to FEA format (3164).

4.40.0

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

- Published native binary wheels to PyPI for all the python minor versions and platform
and architectures currently supported that would benefit from this. They will include
precompiled Cython-accelerated modules (e.g. cu2qu) without requiring to compile them
from source. The pure-python wheel and source distribution will continue to be
published as always (pip will automatically chose them when no binary wheel is
available for the given platform, e.g. pypy). Use ``pip install --no-binary=fonttools fonttools``
to expliclity request pip to install from the pure-python source.
- [designspaceLib|varLib] Add initial support for specifying axis mappings and build
``avar2`` table from those (3123).
- [feaLib] Support variable ligature caret position (3130).
- [varLib|glyf] Added option to --drop-implied-oncurves; test for impliable oncurve
points either before or after rounding (3146, 3147, 3155, 3156).
- [TTGlyphPointPen] Don't error with empty contours, simply ignore them (3145).
- [sfnt] Fixed str vs bytes remnant of py3 transition in code dealing with de/compiling
WOFF metadata (3129).
- [instancer-solver] Fixed bug when moving default instance with sparse masters (3139, 3140).
- [feaLib] Simplify variable scalars that don’t vary (3132).
- [pens] Added filter pen that explicitly emits closing line when lastPt != movePt (3100).
- [varStore] Improve optimize algorithm and better document the algorithm (3124, 3127).
Added ``quantization`` option (3126).
- Added CI workflow config file for building native binary wheels (3121).
- [fontBuilder] Added glyphDataFormat=0 option; raise error when glyphs contain cubic
outlines but glyphDataFormat was not explicitly set to 1 (3113, 3119).
- [subset] Prune emptied GDEF.MarkGlyphSetsDef and remap indices; ensure GDEF is
subsetted before GSUB and GPOS (3114, 3118).
- [xmlReader] Fixed issue whereby DSIG table data was incorrectly parsed (3115, 2614).
- [varLib/merger] Fixed merging of SinglePos with pos=0 (3111, 3112).
- [feaLib] Demote "Feature has not been defined" error to a warning when building aalt
and referenced feature is empty (3110).
- [feaLib] Dedupe multiple substitutions with classes (3105).

4.39.4

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

- [varLib.interpolatable] Allow for sparse masters (3075)
- [merge] Handle differing default/nominalWidthX in CFF (3070)
- [ttLib] Add missing main.py file to ttLib package (3088)
- [ttx] Fix missing composite instructions in XML (3092)
- [ttx] Fix split tables option to work on filenames containing '%' (3096)
- [featureVars] Process lookups for features other than rvrn last (3099)
- [feaLib] support multiple substitution with classes (3103)

4.39.3

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

- [sbix] Fixed TypeError when compiling empty glyphs whose imageData is None, regression
was introduced in v4.39 (3059).
- [ttFont] Fixed AttributeError on python <= 3.10 when opening a TTFont from a tempfile
SpooledTemporaryFile, seekable method only added on python 3.11 (3052).

4.39.2

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

- [varLib] Fixed regression introduced in 4.39.1 whereby an incomplete 'STAT' table
would be built even though a DesignSpace v5 did contain 'STAT' definitions (3045, 3046).

4.39.1

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

- [avar2] Added experimental support for reading/writing avar version 2 as specified in
this draft proposal: https://github.com/harfbuzz/boring-expansion-spec/blob/main/avar2.md
- [glifLib] Wrap underlying XML library exceptions with GlifLibError when parsing GLIFs,
and also print the name and path of the glyph that fails to be parsed (3042).
- [feaLib] Consult avar for normalizing user-space values in ConditionSets and in
VariableScalars (3042, 3043).
- [ttProgram] Handle string input to Program.fromAssembly() (3038).
- [otlLib] Added a config option to emit GPOS 7 lookups, currently disabled by default
because of a macOS bug (3034).
- [COLRv1] Added method to automatically compute ClipBoxes (3027).
- [ttFont] Fixed getGlyphID to raise KeyError on missing glyphs instead of returning
None. The regression was introduced in v4.27.0 (3032).
- [sbix] Fixed UnboundLocalError: cannot access local variable 'rawdata' (3031).
- [varLib] When building VF, do not overwrite a pre-existing ``STAT`` table that was built
with feaLib from FEA feature file. Also, added support for building multiple VFs
defined in Designspace v5 from ``fonttools varLib`` script (3024).
- [mtiLib] Only add ``Debg`` table with lookup names when ``FONTTOOLS_LOOKUP_DEBUGGING``
env variable is set (3023).

4.39.0

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

- [mtiLib] Optionally add `Debg` debug info for MTI feature builds (3018).
- [ttx] Support reading input file from standard input using special `-` character,
similar to existing `-o -` option to write output to standard output (3020).
- [cython] Prevent ``cython.compiled`` raise AttributeError if cython not installed
properly (3017).
- [OS/2] Guard against ZeroDivisionError when calculating xAvgCharWidth in the unlikely
scenario no glyph has non-zero advance (3015).
- [subset] Recompute xAvgCharWidth independently of --no-prune-unicode-ranges,
previously the two options were involuntarily bundled together (3012).
- [fontBuilder] Add ``debug`` parameter to addOpenTypeFeatures method to add source
debugging information to the font in the ``Debg`` private table (3008).
- [name] Make NameRecord `__lt__` comparison not fail on Unicode encoding errors (3006).
- [featureVars] Fixed bug in ``overlayBox`` (3003, 3005).
- [glyf] Added experimental support for cubic bezier curves in TrueType glyf table, as
outlined in glyf v1 proposal (2988):
https://github.com/harfbuzz/boring-expansion-spec/blob/main/glyf1-cubicOutlines.md
- Added new qu2cu module and related qu2cuPen, the reverse of cu2qu for converting
TrueType quadratic splines to cubic bezier curves (2993).
- [glyf] Added experimental support for reading and writing Variable Composites/Components
as defined in glyf v1 spec proposal (2958):
https://github.com/harfbuzz/boring-expansion-spec/blob/main/glyf1-varComposites.md.
- [pens]: Added `addVarComponent` method to pen protocols' base classes, which pens can implement
to handle varcomponents (by default they get decomposed) (2958).
- [misc.transform] Added DecomposedTransform class which implements an affine transformation
with separate translate, rotation, scale, skew, and transformation-center components (2598)
- [sbix] Ensure Glyph.referenceGlyphName is set; fixes error after dumping and
re-compiling sbix table with 'dupe' glyphs (2984).
- [feaLib] Be cleverer when merging chained single substitutions into same lookup
when they are specified using the inline notation (2150, 2974).
- [instancer] Clamp user-inputted axis ranges to those of fvar (2959).
- [otBase/subset] Define ``__getstate__`` for BaseTable so that a copied/pickled 'lazy'
object gets its own OTTableReader to read from; incidentally fixes a bug while
subsetting COLRv1 table containing ClipBoxes on python 3.11 (2965, 2968).
- [sbix] Handle glyphs with "dupe" graphic type on compile correctly (2963).
- [glyf] ``endPointsOfContours`` field should be unsigned! Kudos to behdad for
spotting one of the oldest bugs in FT. Probably nobody has ever dared to make
glyphs with more than 32767 points... (2957).
- [feaLib] Fixed handling of ``ignore`` statements with unmarked glyphs to match
makeotf behavior, which assumes the first glyph is marked (2950).
- Reformatted code with ``black`` and enforce new code style via CI check (2925).
- [feaLib] Sort name table entries following OT spec prescribed order in the builder (2927).
- [cu2quPen] Add Cu2QuMultiPen that converts multiple outlines at a time in
interpolation compatible way; its methods take a list of tuples arguments
that would normally be passed to individual segment pens, and at the end it
dispatches the converted outlines to each pen (2912).
- [reverseContourPen/ttGlyphPen] Add outputImpliedClosingLine option (2913, 2914,
2921, 2922, 2995).
- [gvar] Avoid expanding all glyphs unnecessarily upon compile (2918).
- [scaleUpem] Fixed bug whereby CFF2 vsindex was scaled; it should not (2893, 2894).
- [designspaceLib] Add DS.getAxisByTag and refactor getAxis (2891).
- [unicodedata] map Zmth<->math in ot_tag_{to,from}_script (1737, 2889).
- [woff2] Support encoding/decoding OVERLAP_SIMPLE glyf flags (2576, 2884).
- [instancer] Update OS/2 class and post.italicAngle when default moved (L4)
- Dropped support for Python 3.7 which reached EOL, fontTools requires 3.8+.
- [instancer] Fixed instantiateFeatureVariations logic when a rule range becomes
default-applicable (2737, 2880).
- [ttLib] Add main to ttFont and ttCollection that just decompile and re-compile the
input font (2869).
- [featureVars] Insert 'rvrn' lookup at the beginning of LookupList, to work around bug
in Apple implementation of 'rvrn' feature which the spec says it should be processed
early whereas on macOS 10.15 it follows lookup order (2140, 2867).
- [instancer/mutator] Remove 'DSIG' table if present.
- [svgPathPen] Don't close path in endPath(), assume open unless closePath() (2089, 2865).
Links

Update future from 0.18.2 to 0.18.3.

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

Links

Update kiwisolver from 1.4.4 to 1.4.5.

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

Links

Update lxml from 4.9.1 to 5.0.0.

Changelog

5.0.0

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

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

* Character escaping in ``C14N2`` serialisation now uses a single pass over the text
instead of searching for each unescaped character separately.

* Early support for Python 3.13a2 was added.

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

* LP1976304: The ``Element.addnext()`` method previously inserted the new element
before existing tail text.  The tail text of both sibling elements now stays on
the respective elements.

* LP1980767, GH379: ``TreeBuilder.close()`` could fail with a ``TypeError`` after
parsing incorrect input.  Original patch by Enrico Minack.

* ``Element.itertext(with_tail=False)`` returned the tail text of comments and
processing instructions, despite the explicit option.

* GH370: A crash with recent libxml2 2.11.x versions was resolved.
Patch by Michael Schlenker.

* A compile problem with recent libxml2 2.12.x versions was resolved.

* The internal exception handling in C callbacks was improved for Cython 3.0.

* The exception declarations of ``xmlInputReadCallback``, ``xmlInputCloseCallback``,
``xmlOutputWriteCallback`` and ``xmlOutputCloseCallback`` in ``tree.pxd`` were
corrected to prevent running Python code or calling into the C-API with a live
exception set.

* GH385: The long deprecated ``unittest.m̀akeSuite()`` function is no longer used.
Patch by Miro Hrončok.

* LP1522052: A file-system specific test is now optional and should no longer fail
on systems that don't support it.

* GH392: Some tests were adapted for libxml2 2.13.
Patch by Nick Wellnhofer.

* Contains all fixes from lxml 4.9.4.

Other changes
-------------

* LP1742885: lxml no longer expands external entities (XXE) by default to prevent
the security risk of loading arbitrary files and URLs.  If this feature is needed,
it can be enabled in a backwards compatible way by using a parser with the option
``resolve_entities=True``.  The new default is ``resolve_entities='internal'``.

* With libxml2 2.10.4 and later (as provided by the lxml 5.0 binary wheels),
parsing HTML tags with "prefixes" no longer builds a namespace dictionary
in ``nsmap`` but considers the ``prefix:name`` string the actual tag name.
With older libxml2 versions, since 2.9.11, the prefix was removed.  Before
that, the prefix was parsed as XML prefix.

lxml 5.0 does not try to hide this difference but now changes the ElementPath
implementation to let ``element.find("part1:part2")`` search for the tag
``part1:part2`` in documents parsed as HTML, instead of looking only for ``part2``.

* LP2024343: The validation of the schema file itself is now optional in the
ISO-Schematron implementation.  This was done because some lxml distributions
discard the RNG validation schema file due to licensing issues.  The validation
can now always be disabled with ``Schematron(..., validate_schema=False)``.
It is enabled by default if available and disabled otherwise.  The module
constant ``lxml.isoschematron.schematron_schema_valid_supported`` can be used
to detect whether schema file validation is available.

* Some redundant and long deprecated methods were removed:
``parser.setElementClassLookup()``,
``xslt_transform.apply()``,
``xpath.evaluate()``.

* Some incorrect declarations were removed from ``python.pxd``. In general, this file
should not be used by external Cython code. Use the C-API declarations provided by
Cython itself instead.

* Binary wheels use the library versions libxml2 2.12.3 and libxslt 1.1.39.

* Built with Cython 3.0.7, updated to follow recent changes in Cython 3.1-dev.

4.9.4

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

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

* LP2046398: Inserting/replacing an ancestor into a node's children could loop indefinitely.

* LP1980767, GH379: ``TreeBuilder.close()`` could fail with a ``TypeError`` after
parsing incorrect input.  Original patch by Enrico Minack.

* LP1522052: A file-system specific test is now optional and should no longer fail
on systems that don't support it.

Other changes
-------------

* Wheels include zlib 1.3, libxml2 2.10.3 and libxslt 1.1.39
(zlib 1.2.12, libxml2 2.10.3 and libxslt 1.1.37 on Windows).

* Built with Cython 0.29.37.

4.9.3

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

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

* LP2008911: ``lxml.objectify`` accepted non-decimal numbers like ``²²²`` as integers.

* A memory leak in ``lxml.html.clean`` was resolved by switching to Cython 0.29.34+.

* GH348: URL checking in the HTML cleaner was improved.
Patch by Tim McCormack.

* GH371, GH373: Some regex strings were changed to raw strings to fix Python warnings.
Patches by Jakub Wilk and Anthony Sottile.

Other changes
-------------

* Wheels include zlib 1.2.13, libxml2 2.10.3 and libxslt 1.1.38
(zlib 1.2.12, libxml2 2.10.3 and libxslt 1.1.37 on Windows).

* Built with Cython 0.29.36 to adapt to changes in Python 3.12.

4.9.2

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

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

* CVE-2022-2309: A Bug in libxml2 2.9.1[0-4] could let namespace declarations
from a failed parser run leak into later parser runs.  This bug was worked around
in lxml and resolved in libxml2 2.10.0.
https://gitlab.gnome.org/GNOME/libxml2/-/issues/378

Other changes
-------------

* LP1981760: ``Element.attrib`` now registers as ``collections.abc.MutableMapping``.

* lxml now has a static build setup for macOS on ARM64 machines (not used for building wheels).
Patch by Quentin Leffray.
Links

Update matplotlib from 3.6.2 to 3.8.2.

Changelog

3.8.2

This is the second bugfix release of the 3.8 series.

Highlights of this release include:
- Fix a segfault in the MacOS backend when running on Python 3.12
- Fix Contour labeling manual positions selecting incorrect contours.
- Various documentation improvements

3.8.1

This is the first bugfix release of the 3.8.x series.


This release contains several bug fixes and adjustments:


- Bump setuptools required version because of setuptools_scm v8
- Update ``find_nearest_contour`` and revert contour deprecations
- ``allsegs`` and ``allkinds`` return individual segments
- Restore default behavior of hexbin mincnt with C provided
- Try/except import of Axes3D
- Ensure valid path mangling for ContourLabeler
- BLD: Remove development dependencies from sdists
- FIX 2-tuple of colors in to_rgba_array
- Fix issue with non-string labels and legend
- Fix issue with locale comma when not using math text
- Various type hinting improvements
- Various documentation improvements
- Improvements to the MacOS backend

3.7.4

This is the fourth bugfix release of the 3.7.x series.

This release contains one bug-fix:

- Fix a segmentation fault when resizing on Python 3.12 and macOS 14

3.7.3

This is the third bugfix release of the 3.7.x series.

This release contains several bug-fixes and adjustments:

* Add Python 3.12 wheels
* Update the license for the bundled colorbrewer colormap data
* Fix Cairo backend when using cairocffi
* Fix axes_grid1 inset axes with `bbox_inches=tight`
* Fix bugs in `Path3DCollection` / `Poly3DCollection` constructors
* Fix setting array labelcolor on Tick
* Improve compatibility with latest NumPy
* Stop warning when calling `tight_layout` multiple times

3.7.2

This is the second bugfix release of the 3.7.x series.

This release contains several bug-fixes and adjustments:

* Avoid modifying input masks in `pcolor`/`pcolormesh`
* Fix 3D set_aspect error cases
* Fix IPython's `%pylab` mode detection
* Fix `Figure.get_constrained_layout_pads()`
* Fix `Legend.set_draggable()` with `update="bbox"`
* Fix `TransformedBbox.{,full_}contains`
* Fix clipping of `bar_label` text
* Fix colorbar size when saving with explicit `bbox_inches`
* Fix errors when an input is entirely NaN
* Fix leaks of exception tracebacks and `LayoutGrid` objects
* Fix non-interpolated imshow in PDF export
* Fix palettized image optimization in PDF export
* Fix pgf tests with TeXLive 2022
* Fix removal of `Axes` that contain widgets that are grabbing the mouse
* Fix removal of draggable artists
* Fix subslice optimization for long, fully nan lines
* Fix tight layout if Figure has an existing layout manager
* Fix window extent of AnnotationBbox before first draw
* Fix wspace and hspace in subfigures
* Improve Qt compatibility
* Improve compatibility with Python 3.12
* Prevent under the hood downcasting of values in `xcorr`
* Remove some NumPy function overrides from `pylab`
* Remove warning with symlog scales on mouseover

3.7.1

This is the first bugfix release of the 3.7.x series.

This release contains several bug-fixes and adjustments:

* Ensure Qhull license is included in binary wheels
* Fix application of rcParams on Axes labels
* Fix compatibility with Pandas datetime unit converter
* Fix compatibility with latest GTK4
* Fix import of styles with relative path
* Fix Lasso unresponsiveness when clicking and immediately releasing
* Fix pickling of draggable legends
* Fix RangeSlider.set_val when new value is outside existing value
* Fix size of Tk spacers when changing display DPI
* Fix wrapped text in constrained layout
* Improve compatibility with third-party backends
* Improve error if animation save path does not exist

3.6.3

This is the third bugfix release of the 3.6.x series.

This release contains several bug-fixes and adjustments:

* Fix Artist removal from `axes_grid1` Axes classes
* Fix `inset_locator` in subfigures
* Fix `scatter` on masked arrays with units
* Fix colorbar ticks with log norm contours
* Fix deprecation warnings in GTK4 backend
* Fix using relative paths in `HTMLWriter`
* Improve failure message from rcParams string validation for tuple inputs
* Improve performance of QtAgg backends
* No longer modify `pil_kwargs` argument to `imsave` and `savefig`
Links

Update munch from 2.5.0 to 4.0.0.

Changelog

4.0.0

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

* Remove six dependency

3.0.0

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

* Fix munchify for tuples of lists  
* Require Python >=3.6 and upgrade syntax - thanks EwoutH
* Update __init__.py  to work with non standard version - thanks mboisson
* Allow importing even when VERSION read fails - thanks mdornseif and dangillet
* Add imports to README  
* replace pkg_resources with importlib.metadata - thanks dhellmann  
* Added RecursiveMunch object - thanks GuillaumeRochette
Links

Update numpy from 1.23.4 to 1.26.2.

Changelog

1.26.1

discovered after the 1.26.0 release. In addition, it adds new
functionality for detecting BLAS and LAPACK when building from source.
Highlights are:

-   Improved detection of BLAS and LAPACK libraries for meson builds
-   Pickle compatibility with the upcoming NumPy 2.0.

The 1.26.release series is the last planned minor release series before
NumPy 2.0. The Python versions supported by this release are 3.9-3.12.

Build system changes

Improved BLAS/LAPACK detection and control

Auto-detection for a number of BLAS and LAPACK is now implemented for
Meson. By default, the build system will try to detect MKL, Accelerate
(on macOS \>=13.3), OpenBLAS, FlexiBLAS, BLIS and reference BLAS/LAPACK.
Support for MKL was significantly improved, and support for FlexiBLAS
was added.

New command-line flags are available to further control the selection of
the BLAS and LAPACK libraries to build against.

To select a specific library, use the config-settings interface via
`pip` or `pypa/build`. E.g., to select `libblas`/`liblapack`, use:

 $ pip install numpy -Csetup-args=-Dblas=blas -Csetup-args=-Dlapack=lapack
 $  OR
 $ python -m build . -Csetup-args=-Dblas=blas -Csetup-args=-Dlapack=lapack

This works not only for the libraries named above, but for any library
that Meson is able to detect with the given name through `pkg-config` or
CMake.

Besides `-Dblas` and `-Dlapack`, a number of other new flags are
available to control BLAS/LAPACK selection and behavior:

-   `-Dblas-order` and `-Dlapack-order`: a list of library names to
 search for in order, overriding the default search order.
-   `-Duse-ilp64`: if set to `true`, use ILP64 (64-bit integer) BLAS and
 LAPACK. Note that with this release, ILP64 support has been extended
 to include MKL and FlexiBLAS. OpenBLAS and Accelerate were supported
 in previous releases.
-   `-Dallow-noblas`: if set to `true`, allow NumPy to build with its
 internal (very slow) fallback routines instead of linking against an
 external BLAS/LAPACK library. *The default for this flag may be
 changed to \`\`true\`\` in a future 1.26.x release, however for
 1.26.1 we\'d prefer to keep it as \`\`false\`\` because if failures
 to detect an installed library are happening, we\'d like a bug
 report for that, so we can quickly assess whether the new
 auto-detection machinery needs further improvements.*
-   `-Dmkl-threading`: to select the threading layer for MKL. There are
 four options: `seq`, `iomp`, `gomp` and `tbb`. The default is
 `auto`, which selects from those four as appropriate given the
 version of MKL selected.
-   `-Dblas-symbol-suffix`: manually select the symbol suffix to use for
 the library - should only be needed for linking against libraries
 built in a non-standard way.

New features

`numpy._core` submodule stubs

`numpy._core` submodule stubs were added to provide compatibility with
pickled arrays created using NumPy 2.0 when running Numpy 1.26.

Contributors

A total of 13 people contributed to this release. People with a \"+\" by
their names contributed a patch for the first time.

-   Andrew Nelson
-   Anton Prosekin +
-   Charles Harris
-   Chongyun Lee +
-   Ivan A. Melnikov +
-   Jake Lishman +
-   Mahder Gebremedhin +
-   Mateusz Sokół
-   Matti Picus
-   Munira Alduraibi +
-   Ralf Gommers
-   Rohit Goswami
-   Sayed Adel

Pull requests merged

A total of 20 pull requests were merged for this release.

-   [24742](https://github.com/numpy/numpy/pull/24742): MAINT: Update cibuildwheel version
-   [24748](https://github.com/numpy/numpy/pull/24748): MAINT: fix version string in wheels built with setup.py
-   [24771](https://github.com/numpy/numpy/pull/24771): BLD, BUG: Fix build failure for host flags e.g. `-march=native`\...
-   [24773](https://github.com/numpy/numpy/pull/24773): DOC: Updated the f2py docs to remove a note on -fimplicit-none
-   [24776](https://github.com/numpy/numpy/pull/24776): BUG: Fix SIMD f32 trunc test on s390x when baseline is none
-   [24785](https://github.com/numpy/numpy/pull/24785): BLD: add libquadmath to licences and other tweaks (#24753)
-   [24786](https://github.com/numpy/numpy/pull/24786): MAINT: Activate `use-compute-credits` for Cirrus.
-   [24803](https://github.com/numpy/numpy/pull/24803): BLD: updated vendored-meson/meson for mips64 fix
-   [24804](https://github.com/numpy/numpy/pull/24804): MAINT: fix licence path win
-   [24813](https://github.com/numpy/numpy/pull/24813): BUG: Fix order of Windows OS detection macros.
-   [24831](https://github.com/numpy/numpy/pull/24831): BUG, SIMD: use scalar cmul on bad Apple clang x86_64 (#24828)
-   [24840](https://github.com/numpy/numpy/pull/24840): BUG: Fix DATA statements for f2py
-   [24870](https://github.com/numpy/numpy/pull/24870): API: Add `NumpyUnpickler` for backporting
-   [24872](https://github.com/numpy/numpy/pull/24872): MAINT: Xfail test failing on PyPy.
-   [24879](https://github.com/numpy/numpy/pull/24879): BLD: fix math func feature checks, fix FreeBSD build, add CI\...
-   [24899](https://github.com/numpy/numpy/pull/24899): ENH: meson: implement BLAS/LAPACK auto-detection and many CI\...
-   [24902](https://github.com/numpy/numpy/pull/24902): DOC: add a 1.26.1 release notes section for BLAS/LAPACK build\...
-   [24906](https://github.com/numpy/numpy/pull/24906): MAINT: Backport `numpy._core` stubs. Remove `NumpyUnpickler`
-   [24911](https://github.com/numpy/numpy/pull/24911): MAINT: Bump pypa/cibuildwheel from 2.16.1 to 2.16.2
-   [24912](https://github.com/numpy/numpy/pull/24912): BUG: loongarch doesn\'t use REAL(10)

Checksums

MD5

 bda38de1a047dd9fdddae16c0d9fb358  numpy-1.26.1-cp310-cp310-macosx_10_9_x86_64.whl
 196d2e39047da64ab28e177760c95461  numpy-1.26.1-cp310-cp310-macosx_11_0_arm64.whl
 9d25010a7bf50e624d2fed742790afbd  numpy-1.26.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
 9b22fa3d030807f0708007d9c0659f65  numpy-1.26.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
 eea626b8b930acb4b32302a9e95714f5  numpy-1.26.1-cp310-cp310-musllinux_1_1_x86_64.whl
 3c40ef068f50d2ac2913c5b9fa1233fa  numpy-1.26.1-cp310-cp310-win32.whl
 315c251d2f284af25761a37ce6dd4d10  numpy-1.26.1-cp310-cp310-win_amd64.whl
 ebdd5046937df50e9f54a6d38c5775dd  numpy-1.26.1-cp311-cp311-macosx_10_9_x86_64.whl
 682f9beebe8547f205d6cdc8ff96a984  numpy-1.26.1-cp311-cp311-macosx_11_0_arm64.whl
 e86da9b6040ea88b3835c4d8f8578658  numpy-1.26.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
 ebcb6cf7f64454215e29d8a89829c8e1  numpy-1.26.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
 a8c89e13dc9a63712104e2fb06fb63a6  numpy-1.26.1-cp311-cp311-musllinux_1_1_x86_64.whl
 339795930404988dbc664ff4cc72b399  numpy-1.26.1-cp311-cp311-win32.whl
 4ef5e1bdd7726c19615843f5ac72e618  numpy-1.26.1-cp311-cp311-win_amd64.whl
 3aad6bc72db50e9cc88aa5813e8f35bd  numpy-1.26.1-cp312-cp312-macosx_10_9_x86_64.whl
 fd62f65ae7798dbda9a3f7af7aa5c8db  numpy-1.26.1-cp312-cp312-macosx_11_0_arm64.whl
 104d939e080f1baf0a56aed1de0e79e3  numpy-1.26.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
 c44b56c96097f910bbec1420abcf3db5  numpy-1.26.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
 1dce230368ae5fc47dd0fe8de8ff771d  numpy-1.26.1-cp312-cp312-musllinux_1_1_x86_64.whl
 d93338e7d60e1d294ca326450e99806b  numpy-1.26.1-cp312-cp312-win32.whl
 a1832f46521335c1ee4c56dbf12e600b  numpy-1.26.1-cp312-cp312-win_amd64.whl
 946fbb0b6caca9258985495532d3f9ab  numpy-1.26.1-cp39-cp39-macosx_10_9_x86_64.whl
 78c2ab13d395d67d90bcd6583a6f61a8  numpy-1.26.1-cp39-cp39-macosx_11_0_arm64.whl
 0a9d80d8b646abf4ffe51fff3e075d10  numpy-1.26.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
 0229ba8145d4f58500873b540a55d60e  numpy-1.26.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
 9179fc57c03260374c86e18867c24463  numpy-1.26.1-cp39-cp39-musllinux_1_1_x86_64.whl
 246a3103fdbe5d891d7a8aee28875a26  numpy-1.26.1-cp39-cp39-win32.whl
 4589dcb7f754fade6ea3946416bee638  numpy-1.26.1-cp39-cp39-win_amd64.whl
 3af340d5487a6c045f00fe5eb889957c  numpy-1.26.1-pp39-pypy39_pp73-macosx_10_9_x86_64.whl
 28aece4f1ceb92ec463aa353d4a91c8b  numpy-1.26.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
 bbd0461a1e31017b05509e9971b3478e  numpy-1.26.1-pp39-pypy39_pp73-win_amd64.whl
 2d770f4c281d405b690c4bcb3dbe99e2  numpy-1.26.1.tar.gz

SHA256

 82e871307a6331b5f09efda3c22e03c095d957f04bf6bc1804f30048d0e5e7af  numpy-1.26.1-cp310-cp310-macosx_10_9_x86_64.whl
 cdd9ec98f0063d93baeb01aad472a1a0840dee302842a2746a7a8e92968f9575  numpy-1.26.1-cp310-cp310-macosx_11_0_arm64.whl
 d78f269e0c4fd365fc2992c00353e4530d274ba68f15e968d8bc3c69ce5f5244  numpy-1.26.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
 8ab9163ca8aeb7fd32fe93866490654d2f7dda4e61bc6297bf72ce07fdc02f67  numpy-1.26.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
 78ca54b2f9daffa5f323f34cdf21e1d9779a54073f0018a3094ab907938331a2  numpy-1.26.1-cp310-cp310-musllinux_1_1_x86_64.whl
 d1cfc92db6af1fd37a7bb58e55c8383b4aa1ba23d012bdbba26b4bcca45ac297  numpy-1.26.1-cp310-cp310-win32.whl
 d2984cb6caaf05294b8466966627e80bf6c7afd273279077679cb010acb0e5ab  numpy-1.26.1-cp310-cp310-win_amd64.whl
 cd7837b2b734ca72959a1caf3309457a318c934abef7a43a14bb984e574bbb9a  numpy-1.26.1-cp311-cp311-macosx_10_9_x86_64.whl
 1c59c046c31a43310ad0199d6299e59f57a289e22f0f36951ced1c9eac3665b9  numpy-1.26.1-cp311-cp311-macosx_11_0_arm64.whl
 d58e8c51a7cf43090d124d5073bc29ab2755822181fcad978b12e144e5e5a4b3  numpy-1.26.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
 6081aed64714a18c72b168a9276095ef9155dd7888b9e74b5987808f0dd0a974  numpy-1.26.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
 97e5d6a9f0702c2863aaabf19f0d1b6c2628fbe476438ce0b5ce06e83085064c  numpy-1.26.1-cp311-cp311-musllinux_1_1_x86_64.whl
 b9d45d1dbb9de84894cc50efece5b09939752a2d75aab3a8b0cef6f3a35ecd6b  numpy-1.26.1-cp311-cp311-win32.whl
 3649d566e2fc067597125428db15d60eb42a4e0897fc48d28cb75dc2e0454e53  numpy-1.26.1-cp311-cp311-win_amd64.whl
 1d1bd82d539607951cac963388534da3b7ea0e18b149a53cf883d8f699178c0f  numpy-1.26.1-cp312-cp312-macosx_10_9_x86_64.whl
 afd5ced4e5a96dac6725daeb5242a35494243f2239244fad10a90ce58b071d24  numpy-1.26.1-cp312-cp312-macosx_11_0_arm64.whl
 a03fb25610ef560a6201ff06df4f8105292ba56e7cdd196ea350d123fc32e24e  numpy-1.26.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
 dcfaf015b79d1f9f9c9fd0731a907407dc3e45769262d657d754c3a028586124  numpy-1.26.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
 e509cbc488c735b43b5ffea175235cec24bbc57b227ef1acc691725beb230d1c  numpy-1.26.1-cp312-cp312-musllinux_1_1_x86_64.whl
 af22f3d8e228d84d1c0c44c1fbdeb80f97a15a0abe4f080960393a00db733b66  numpy-1.26.1-cp312-cp312-win32.whl
 9f42284ebf91bdf32fafac29d29d4c07e5e9d1af862ea73686581773ef9e73a7  numpy-1.26.1-cp312-cp312-win_amd64.whl
 bb894accfd16b867d8643fc2ba6c8617c78ba2828051e9a69511644ce86ce83e  numpy-1.26.1-cp39-cp39-macosx_10_9_x86_64.whl
 e44ccb93f30c75dfc0c3aa3ce38f33486a75ec9abadabd4e59f114994a9c4617  numpy-1.26.1-cp39-cp39-macosx_11_0_arm64.whl
 9696aa2e35cc41e398a6d42d147cf326f8f9d81befcb399bc1ed7ffea339b64e  numpy-1.26.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
 a5b411040beead47a228bde3b2241100454a6abde9df139ed087bd73fc0a4908  numpy-1.26.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
 1e11668d6f756ca5ef534b5be8653d16c5352cbb210a5c2a79ff288e937010d5  numpy-1.26.1-cp39-cp39-musllinux_1_1_x86_64.whl
 d1d2c6b7dd618c41e202c59c1413ef9b2c8e8a15f5039e344af64195459e3104  numpy-1.26.1-cp39-cp39-win32.whl
 59227c981d43425ca5e5c01094d59eb14e8772ce6975d4b2fc1e106a833d5ae2  numpy-1.26.1-cp39-cp39-win_amd64.whl
 06934e1a22c54636a059215d6da99e23286424f316fddd979f5071093b648668  numpy-1.26.1-pp39-pypy39_pp73-macosx_10_9_x86_64.whl
 76ff661a867d9272cd2a99eed002470f46dbe0943a5ffd140f49be84f68ffc42  numpy-1.26.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
 6965888d65d2848e8768824ca8288db0a81263c1efccec881cb35a0d805fcd2f  numpy-1.26.1-pp39-pypy39_pp73-win_amd64.whl
 c8c6c72d4a9f831f328efb1312642a1cafafaa88981d9ab76368d50d07d93cbe  numpy-1.26.1.tar.gz

1.26.0

The NumPy 1.26.0 release is a continuation of the 1.25.x release cycle
with the addition of Python 3.12.0 support. Python 3.12 dropped
distutils, consequently supporting it required finding a replacement for
the setup.py/distutils based build system NumPy was using. We have
chosen to use the Meson build system instead, and this is the first
NumPy release supporting it. This is also the first release that
supports Cython 3.0 in addition to retaining 0.29.X compatibility.
Supporting those two upgrades was a large project, over 100 files have
been touched in this release. The changelog doesn\'t capture the full
extent of the work, special thanks to Ralf Gommers, Sayed Adel, Stéfan
van der Walt, and Matti Picus who did much of the work in the main
development branch.

The highlights of this release are:

-   Python 3.12.0 support.
-   Cython 3.0.0 compatibility.
-   Use of the Meson build system
-   Updated SIMD support

The Python versions supported in this release are 3.9-3.12.

Build system changes

In this release, NumPy has switched to Meson as the build system and
meson-python as the build backend. Installing NumPy or building a wheel
can be done with standard tools like `pip` and `pypa/build`. The
following are supported:

-   Regular installs: `pip install numpy` or (in a cloned repo)
 `pip install .`
-   Building a wheel: `python -m build` (preferred), or `pip wheel .`
-   Editable installs: `pip install -e . --no-build-isolation`
-   Development builds through the custom CLI implemented with
 [spin](https://github.com/scientific-python/spin): `spin build`.

All the regular `pip` and `pypa/build` flags (e.g.,
`--no-build-isolation`) should work as expected.

NumPy-specific build customization

Many of the NumPy-specific ways of customizing builds have changed. The
`NPY_*` environment variables which control BLAS/LAPACK, SIMD,
threading, and other such options are no longer supported, nor is a
`site.cfg` file to select BLAS and LAPACK. Instead, there are
command-line flags that can be passed to the build via `pip`/`build`\'s
config-settings interface. These flags are all listed in the
`meson_options.txt` file in the root of the repo. Detailed documented
will be available before the final 1.26.0 release; for now please see
[the SciPy \"building from source\"docs](http://scipy.github.io/devdocs/building/index.html) since most
build customization works in an almost identical way in SciPy as it does
in NumPy.

Build dependencies

While the runtime dependencies of NumPy have not changed, the build
dependencies have. Because we temporarily vendor Meson and meson-python,
there are several new dependencies - please see the `[build-system]`
section of `pyproject.to

@pyup-bot
Copy link
Collaborator Author

pyup-bot commented Feb 1, 2024

Closing this in favor of #273

@pyup-bot pyup-bot closed this Feb 1, 2024
@jamiebull1 jamiebull1 deleted the pyup-scheduled-update-2024-01-01 branch February 1, 2024 16:37
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