Skip to content

chore(deps):(deps): bump the uv group across 1 directory with 56 updates - #6398

Merged
daggerstuff merged 1 commit into
stagingfrom
dependabot/uv/uv-2155560171
Oct 26, 2026
Merged

daggerstuff merged 1 commit into
stagingfrom
dependabot/uv/uv-2155560171

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Oct 26, 2026

Copy link
Copy Markdown
Contributor

Bumps the uv group with 56 updates in the / directory:

Package From To
pandas 2.3.3 3.1.0
numpy 2.5.3 2.5.4
fairlearn 0.14.0 0.15.0
shap 0.49.1 0.54.1
nltk 3.10.3 3.10.4
python-dotenv 1.2.3 1.2.4
chardet 5.2.0 7.7.0
pyarrow 24.0.0 26.0.0
wandb 0.30.0 0.31.0
datasets 5.0.1 5.1.0
sentence-transformers 6.1.0 6.2.0
huggingface-hub 1.33.0 2.2.0
transformers 5.18.0 5.20.2
torch 2.14.0 2.14.1
sentry-sdk 2.71.0 2.73.0
openai 3.22.1 3.37.0
authlib 1.8.0 1.9.1
flask-socketio 5.6.1 5.7.0
neo4j 6.3.1 6.4.1
fastmcp 3.4.10 4.1.3
starlette 1.7.0 1.9.0
fonttools 4.66.1 4.67.0
aiohttp 3.14.4 3.14.5
kaggle 2.2.4 2.2.5
boto3 1.43.105 1.43.118
google-api-python-client 2.200.0 2.201.0
google-auth-httplib2 0.4.3 0.4.4
rich 14.3.4 15.0.0
ngcsdk 4.36.6 4.37.0
onnx 1.23.1 1.23.2
fastapi 0.141.1 0.161.1
ray 2.58.0 2.59.0
pydantic 2.13.5 2.14.1
google-genai 2.25.0 2.33.0
lancedb 0.39.0 0.40.0
kernels 0.17.1 0.17.2
peft 0.21.1 0.21.2
lightning-sdk 2026.10.1 2026.10.13
modal 1.6.1 1.6.2
gradient-adk 0.2.12 0.2.13
semgrep 1.79.0 1.182.1
selenium 4.49.0 4.51.0
anthropic 1.9.0 2.1.0
ruff 0.16.9 0.17.2
fireworks-ai 1.2.22 1.2.30
pytest-mock 3.16.0 3.17.0
coverage 7.16.2 7.17.0
types-requests 2.33.0.20260906 2.33.0.20261006
hypothesis 6.168.3 6.170.8
mypy 2.3.1 2.4.0
pip-audit 2.9.0 2.10.1
asyncpg 0.31.0 0.32.0
setuptools 84.1.0 84.2.1
pgvector 0.5.0 0.5.1
pymupdf 1.28.2 2.0
typer 0.27.2 0.27.3

Updates pandas from 2.3.3 to 3.1.0

Release notes

Sourced from pandas's releases.

pandas 3.1.0

We are pleased to announce the release of pandas 3.1.0. This release includes some new features, bug fixes, and performance improvements. We recommend that all users upgrade to this version.

Highlights include:

See the detailed release notes for a list of all the changes.

The release can be installed from PyPI:

python -m pip install --upgrade pandas

Or from conda-forge

conda install -c conda-forge pandas

Please report any issues with the release on the pandas issue tracker.

Thanks to all the contributors who made this release possible.

pandas 3.1.0rc0

We are pleased to announce a release candidate for pandas 3.1.0.

See the whatsnew for a list of all the changes.

The release can be installed from PyPI:

python -m pip install --upgrade --pre pandas==3.1.0rc0

Or from conda-forge

conda install -c conda-forge/label/pandas_rc pandas==3.1.0rc0

Please report any issues with the release candidate on the pandas issue tracker.

Thanks to all the contributors who made this release possible.

pandas 3.0.6

We are pleased to announce the release of pandas 3.0.6. This is a patch release in the 3.0.x series and includes some regression fixes and bug fixes. We recommend that all users of the 3.0.x series upgrade to this version. This is also the first release to support Python 3.15.

See the full whatsnew for a list of all the changes.

Pandas 3.0 supports Python 3.11 and higher. The release can be installed from PyPI:

python -m pip install --upgrade pandas==3.0.*

... (truncated)

Commits
  • c6f4676 RLS: 3.1.0
  • dd69475 Backport PR #71468 on branch 3.1.x (DOC: 3.1 whatsnew: add some structure to ...
  • 4ccc19a Backport PR #71465 on branch 3.1.x (DOC: update announce (contributor listing...
  • 24dae63 [backport 3.1.x] DOC: cleanup 3.1.0 whatsnew (#71408) (#71466)
  • 8519ca6 [backport 3.1.x] CI: temporary pin dateutil to <3 (#71461) (#71464)
  • 2126193 Backport PR #71387 on branch 3.1.x (BUG: fix string regex operations with $ e...
  • 4700f5d Backport PR #71442 on branch 3.1.x (BUG: parallel read_csv raising released m...
  • 08efb14 Backport PR #71456 on branch 3.1.x (TST: Fix test_reduce_array until reduct...
  • ee8dcb7 Backport PR #71429 on branch 3.1.x (DOC: add dedicated 3.1 whatsnew section f...
  • d93e32c Backport PR #71383 on branch 3.1.x (BUG: fix string regex operations with Pyt...
  • Additional commits viewable in compare view

Updates numpy from 2.5.3 to 2.5.4

Release notes

Sourced from numpy's releases.

v2.5.4 (Oct 10, 2026)

NumPy 2.5.4 Release Notes

Released on 2026-10-10.

NumPy 2.5.4 is a patch release that fixes bugs discovered after the 2.5.3 release. Highlights are:

  • Many typing fixes and improvements,
  • A workaround for the MSVC 19.51 bug, see below.

This release supports Python versions 3.12-3.15.

Improvements

  • numpy.linalg.svd and numpy.linalg.lstsq now raise for inputs containing infinities instead of returning garbage results.

  • Fixed hangs in numpy.linalg.svd and numpy.linalg.lstsq for certain inputs containing infinities for recent versions of some LAPACK implementations.

  • numpy.linalg.cond now handles non-finite inputs more consistently.

(gh-32593)

StringDType hashing with NaN sentinels

StringDType instances with equivalent floating-point NaN sentinels now have equal hashes. Previously, distinct NaN objects could produce equal dtype instances with different hashes, causing dictionary lookups and set deduplication to fail.

(gh-32563)

Changes

MaskedArray resets a fill_value that cannot be represented in a new dtype

A fill_value copied from a source array is now reset to the default fill_value for the new dtype when it cannot be represented in that dtype. Previously the copied value could be stale: ufuncs that change dtype left the result holding a fill_value typed for the old dtype, which raised a TypeError only when something later validated it (such as .view()), and a floating point fill_value that overflows an integer dtype was kept as an out-of-range value together with a RuntimeWarning. Both now fall back to the default, including when a masked array is passed to MaskedArray with a different dtype. A fill_value given explicitly by the user is still validated and raises as before. This can now raise a ComplexWarning if the fill_value is complex and the new dtype is real.

... (truncated)

Commits
  • a3d0ef1 Merge pull request #32969 from charris/prepare-2.5.4
  • 087b536 MAINT: Make OpenBLAS version check use 2.5.x branch.
  • 91acd87 REL: Prepare for the NumPy 2.5.4 release.
  • 9cc555b Merge pull request #32956 from charris/backport-typing-1
  • e04b972 TYP: dtype[void].names: allow setting with list (#32943)
  • d929969 TYP: timedelta64: datetime.timedelta construction isn't deprecated (#...
  • 839467f TYP: ma.getmaskarray: accept array-likes (#32934)
  • 64b721b TYP: polynomial: accept scalar coef in the poly constructors (#32931)
  • 06b7ad2 TYP: void: accept any dtype: str in constructor calls (#32928)
  • c7bcd2c TYP: place: widen mask (#32926)
  • Additional commits viewable in compare view

Updates fairlearn from 0.14.0 to 0.15.0

Release notes

Sourced from fairlearn's releases.

v0.15.0

Summary

This release adds ROC curves by sensitive group, automatic plotting of bootstrap confidence intervals, and output feature names for fairlearn.preprocessing.CorrelationRemover. It fixes incorrect fairness results for weighted single-sample groups, centering of multiple sensitive features, and reuse of reductions constraints across fits.

Compatibility changes: Python 3.11 or newer and scikit-learn 1.6.0 or newer are now required, and Python 3.14 is supported. The bank marketing and credit card dataset loaders now use the authoritative UCI column names; code selecting columns by the previous OpenML names needs updating. fairlearn.metrics.MetricFrame now rejects missing sensitive or control feature values, and fairlearn.preprocessing.CorrelationRemover rejects reordered or renamed columns in named transform inputs. The fitted reductions constraint is now available as constraints_, while the user-supplied constraints object remains unmodified.

New features

  • Added fairlearn.metrics.plot_roc_curve_by_group to plot ROC curves disaggregated by sensitive feature, together with the overall curve and a chance-level baseline. The corresponding AUC scores can be obtained with fairlearn.metrics.MetricFrame and sklearn.metrics.roc_auc_score: #869 by kstohr and Roman Lutz.
  • When bootstrap confidence intervals are available on a fairlearn.metrics.MetricFrame, fairlearn.metrics.plot_metric_frame now auto-detects them from fairlearn.metrics.MetricFrame.by_group_ci when the conf_intervals argument is not supplied: #1674 by Dresden.
  • Added get_feature_names_out to fairlearn.preprocessing.CorrelationRemover, so it can be used with set_output and reports its output feature names in pipelines and ColumnTransformer: #1745 by Raashish Aggarwal.

Bug fixes

  • fairlearn.preprocessing.CorrelationRemover rejects reordered or renamed columns in named transform inputs instead of silently applying the fitted sensitive-column positions to different features: #1739 by nawaaaaaAaar.

  • fairlearn.metrics.MetricFrame now raises a ValueError when a sensitive or control feature contains missing values, naming the offending feature. Previously a missing value was silently dropped from fairlearn.metrics.MetricFrame.by_group while still counting towards fairlearn.metrics.MetricFrame.overall, and a feature passed as a list instead of a pandas.Series turned the missing value into a category named 'nan': #1698 by Edward Yi.

  • Fixed AssertionError: data can be loaded only once raised when a fairlearn.reductions.Moment instance is passed as constraints to more than one call of ExponentiatedGradient.fit or GridSearch.fit, or shared between estimators. The fitted estimators now deep-copy the user-supplied constraints before loading data, leave the original object unmodified, and expose the loaded copy as the fitted attribute constraints_: #1632 by BALOGUN DAVID TAIWO.

  • Calling Moment.load_data more than once on the same instance now raises a ValueError instead of an AssertionError: #1705 by SpiliosDimakopoulos.

  • Fixed fetch_diabetes_hospital so that as_frame=False returns numpy arrays instead of raising. The data is now always fetched as a pandas DataFrame internally and converted to numpy when needed. The skipped tests and the obsolete test_fetch_diabetes_hospital_as_ndarray_raises_value_error test were removed: #1636 by Richard Ogundele.

  • BackendEngine used to read X.shape[1] without checking how many dimensions X had, so passing data with more than two dimensions (for example an array of images) would silently build a predictor model with the wrong input size instead of failing. It now raises a ValueError up front when X is not two-dimensional: #1671 by Arnav.

  • Fixed FloatTransformer.transform and FloatTransformer.inverse_transform so that they raise NotFittedError instead of AttributeError when called before fit: #1709 by SpiliosDimakopoulos.

  • Fixed fairlearn.metrics.plot_roc_curve_by_group so that rows with missing sensitive feature values are included in the overall curve but omitted from per-group curves, instead of raising a ValueError: #1713 by SpiliosDimakopoulos.

  • Already-fitted adversarial estimators now enforce the same two-dimensional input requirement in predict and partial_fit, including when input validation is skipped: #1711 by Roman Lutz.

  • Fixed fairlearn.preprocessing.CorrelationRemover so that each sensitive feature is centered by its own mean. With more than one sensitive feature, fit used a single mean over all sensitive columns, so the transformed features stayed correlated with the sensitive features whenever those columns had different means (for example several one-hot encoded groups). sensitive_mean_ now holds one mean per sensitive feature: #1732 by breken-ai.

  • fairlearn.metrics.MetricFrame now accepts NumPy integers (for example np.int64) for n_boot and random_state. Previously they raised a ValueError: #1737 by Arthur031221.

  • Fixed fairlearn.metrics.selection_rate returning a one-element array instead of a scalar when sample_weight is passed for a single sample. In a weighted fairlearn.metrics.MetricFrame this happens for any group with one member, and fairlearn.metrics.demographic_parity_difference and fairlearn.metrics.demographic_parity_ratio then reported 0 and 1 (no disparity) regardless of the actual selection rates: #1734 by breken-ai.

Documentation

  • Removed stale deprecation notices in docstrings for changes that completed in v0.10 (ThresholdOptimizer.predict_method default, InterpolatedThresholder.predict_method default, and MetricFrame constructor positional-argument deprecation).

Other improvements

  • Tightened the internal projection of Lagrange multipliers for difference-based reductions constraints by removing the redundant per-event group-membership component while preserving the classifier-dependent Lagrangian term: #1714 by quinnarnold.
  • Behavior change. fairlearn.datasets.fetch_bank_marketing and fairlearn.datasets.fetch_credit_card now report the authoritative UCI column names (age, job, ... and LIMIT_BAL, SEX, ...) instead of passing through the placeholder names carried by the underlying OpenML records (V1 ... V16 and x1 ... x23), so a sensitive feature can be selected by its documented name. The names are applied consistently to feature_names, the data and frame DataFrame columns, and the return_X_y=True result; categorical metadata keys in non-frame Bunches are remapped to match. Each returned Bunch has its own feature_names list, so modifying it does not affect other results or later loads. Code that selects columns by the previous OpenML names will need updating; positional access, OpenML data IDs, targets, arrays, and dtypes are unchanged. The loaders now raise a ValueError rather than relabelling if a record's column count ever stops matching: #1728 by breken-ai.
  • Preserved multi-column sensitive feature data in fairlearn.postprocessing.ThresholdOptimizer data reformatting helpers: #1679 by BALOGUN-DAVID.
  • Replaced the PyTorch adversarial engine's hard-coded activation string checks with a lookup table and added support for Tanh, GELU, ELU, and SELU activation strings. Activation strings are now matched case-insensitively on both the PyTorch and TensorFlow backends (the TensorFlow backend previously failed on capitalized strings such as Sigmoid): #1665 by Aryan.
  • Added support for Python 3.14: #1649 by Roman Lutz.
  • Bumped the minimum sphinx version from 7.3.7 to 8.3.0 (and bumped sphinx-prompt from 1.8.0 to 1.9.0 and sphinx-autodoc-typehints from 2.0.1 to 3.5.2 in the minimum-version pins for compatibility) so the documentation build picks up newer sphinx theme and extension improvements.
  • Modernized internal type annotations to PEP 585 / PEP 604 syntax (list[T], tuple[T, ...], T | U) where the imports from typing were no longer necessary.
  • Removed support for Python 3.10. The minimum supported Python version is now 3.11: #1653 by Roman Lutz.
  • Raised the minimum supported scikit-learn version to 1.6.0 and removed the fairlearn.utils._fixes compatibility shim, which existed to bridge the scikit-learn 1.5 ↔ 1.6 API change (validate_data import location, force_all_finite → ensure_all_finite rename, and the wrapped parametrize_with_checks). Internal callers now import directly from sklearn.utils.validation and sklearn.utils.estimator_checks. Also added a second set of pytest-mpl baseline snapshots under test/unit/plot_snapshots_mpl310/ for matplotlib==3.10.x, alongside the matplotlib>=3.11 snapshots, since the two render-engine versions produce noticeably different output: #1654 by Roman Lutz.
  • Moved package metadata and runtime dependencies from setup.py and requirements.txt into pyproject.toml. Builds continue to use setuptools and the version in fairlearn/__init__.py: #1629 by Christian Heimes.
  • Removed dead # noqa comments throughout fairlearn/ whose suppressed rule codes are not enabled in the project's ruff configuration, plus the invalid # noqa : G003 (extra space) typo variants.
  • Worked around a pytest.PytestRemovedIn10Warning collection failure on pytest>=9 by adding a thin parametrize_with_checks wrapper in test/_sklearn_compat.py that materializes the generator returned by sklearn.utils.estimator_checks.parametrize_with_checks into a list before handing it to pytest.mark.parametrize: #1666 by Roman Lutz.
  • Removed the fairlearn.utils._compatibility shim, which only existed to bridge the OneHotEncoder(sparse=...) → sparse_output=... rename completed in scikit-learn 1.4. No longer needed now that the minimum supported scikit-learn is ≥ 1.6: #1664 by Roman Lutz.
  • Enabled the pydocstyle (D) ruff rule set with the numpy convention. Added docstrings where missing for public APIs and per-file ignores for tests, examples, and scripts.

... (truncated)

Commits
  • 771c282 FIX Validate release distribution metadata before wheel tests (#1759)
  • 77aa312 FIX Pass expected release wheel version between jobs (#1756)
  • 7af5642 FIX Test release wheel with stable dependencies (#1753)
  • 4b9af53 REL Set version to 0.15.0 (#1752)
  • 842fd25 DOC Prepare v0.15.0 release notes (#1749)
  • 6913bf1 FIX: Accept NumPy integers for n_boot and random_state in MetricFrame (#1737)
  • 9e2a784 DOC: add missing Raises sections to equalized_odds_difference and equalized_o...
  • 043fe26 ENH: add get_feature_names_out to CorrelationRemover (#1745)
  • 05df804 FIX: Validate named CorrelationRemover transform columns (#1739)
  • c09260c FIX: return a scalar from weighted selection_rate on a single sample (#1734)
  • Additional commits viewable in compare view

Updates shap from 0.49.1 to 0.54.1

Release notes

Sourced from shap's releases.

0.54.1

SHAP v0.54.1

Highlights

CUDA acceleration with shap-cuda

GPU support now lives in the separate shap-cuda package, providing the CUDA-accelerated backend for shap.GPUTreeExplainer. The GPU wheel workflow builds CUDA-enabled wheels and tests them on AWS GPU runners before publishing. By @​CloseChoice in shap/shap#5140.

The GPU TreeExplainer notebook has also been refreshed by @​RAMitchell in shap/shap#5220.

What's Changed

Enhancements

  • shap.plots.violin now accepts an ax argument and returns the axes, making it easier to customize plots and compose subplots. By @​adt-kmr in shap/shap#5218.

Maintenance

Documentation

New Contributors

Full Changelog: shap/shap@v0.53.0...v0.54.1

Full Changelog: shap/shap@v0.53.0...v0.54.1

0.53.0

Highlights

What's Changed

... (truncated)

Commits
  • 4f8a9c9 CI: fix versioning for releases
  • 7d48b30 ENH: add shap-cuda package and distribute via CI (#5140)
  • a7766a4 Fix typos and update deprecated API in LinearExplainer correlation notebook (...
  • 62c0ca8 DOCS: fix typos in comments, docstring and error message (#5213)
  • c11040e DOCS: Fix typos in "An introduction to explainable AI" notebook (#5225)
  • c61c426 Remove unused global-path-dependent Tree SHAP code (#5223)
  • 1b92ea0 DOCS: Refresh GPU TreeExplainer notebook (#5220)
  • 69b04e2 ENH: accept and return ax in shap.plots.violin (#5218)
  • 7072995 MAINT: Bump actions/cache from 4.3.0 to 6.1.0 (#5193)
  • 833fcab add new bundle
  • Additional commits viewable in compare view

Updates nltk from 3.10.3 to 3.10.4

Release notes

Sourced from nltk's releases.

v3.10.4

Version 3.10.4 2026-10-20

This release routes every file path, archive, download, URL fetch and external program through one sandbox that keeps reads and writes inside the trusted data directories, refuses path traversal, symlink escapes and decompression bombs, blocks requests to internal network addresses, and runs Java and other third-party tools only from trusted absolute locations with validated options and input. Pickled models now load through a restricted unpickler, XML and JSON parsing are hardened, and regular expressions, recursion and slow algorithms in the tokenizers, parsers, stemmers and corpus readers are bounded against denial-of-service input. Text that NLTK writes to the terminal, to CSV files, to the WordNet browser and to third-party tool input is sanitized against injection.

Security changes you may notice

Every refusal below raises with a message that starts with "Security Violation" and names the check, so a failure is easy to search for (PR #3877).

  • Data directories (nltk.pathsec, nltk.data): corpora, models and every other resource are read and written only inside the directories listed in nltk.data.path. A path that leaves a data root, a symlink that points out of one, and a NUL byte or encoded traversal in a resource name are refused. A data root, or a directory on the way to a resource, that another account can write to is skipped with a warning naming the directory and the remedy. Keep private data in a private directory and add it to nltk.data.path; /tmp is not a data root. Model save and load methods (perceptron, maxent, named-entity chunker, Weka, crf, hunpos, Stanford) accept destinations inside a data root only (PR #3797, #3753, #3850, #3761, #3755, #3759, #3760, #3763, #3806, #3807, #3808, #3809, #3813, #3814, #3815, #3848, #3851, #3852, #3853, #3863, #3871, #3888, #3945, #3961, #3969, #3981)
  • Downloader: downloaded package archives stay private to the installing account (0600). An install another account must read is extracted: a download made as root or outside the installing account's home extracts on its own, and nltk.download(..., extract=True) / python -m nltk.downloader --extract (or --no-extract) decide explicitly. This also unpacks the packages the index leaves zipped (wordnet, omw-1.4 ...); the extracted files are readable by every account and are found before the archive. find() names an archive it cannot read and says how to extract it instead of reporting it "not found". The downloader installs only into directories no other account can write to, treats an archive another account owns or can write to as stale and downloads it afresh, extracts only from an archive no other account could have changed since its checksum was verified, bounds the size of what it fetches, and refuses index entries and archive members that would write outside the package directory (PR #3929, #3804, #3850, #3778)
  • Pickles: nltk.data.load(..., format="pickle") reconstructs plain data only; a pickle that names any class or function is refused. Model loaders that need classes use an explicit allowlist of audited globals, so a gadget such as os.system can never be reconstructed from a model file. chat80 shelve values load the same way (PR #3794, #3754, #3757, #3802, #3817, #3823, #3824)
  • XML, JSON and YAML: nltk.xmlsec refuses any document that declares an entity or references an external one (billion-laughs, external-entity and DTD attacks) and bounds the tree depth, and every corpus XML view, the downloader index, Toolbox and internals parse through it. JSON resources load with a depth and size bound; YAML (the markdown corpus front matter and nltk.data.load(..., format="yaml")) loads through a bounded safe loader. Oversized or too deeply nested input raises ValueError naming the limit (PR #3754, #3805, #3828, #3933, #3972, #3974)
  • Regular expressions (nltk.redos): every regular expression NLTK compiles, including one you pass to RegexpTokenizer, RegexpStemmer, RegexpParser, re_show, TokenSearcher.findall, tgrep, nltk.help tag-set lookups and the concordance and nemo GUIs, now goes through nltk.redos on the regex engine. A pattern longer than 100,000 characters, nested more than 100 deep, with more than 1,000 capturing groups or an excessive repetition product is refused with nltk.redos.error, a subclass of re.error; a match that runs longer than nltk.redos.DEFAULT_TIMEOUT (5 seconds) raises TimeoutError instead of hanging. Patterns keep re syntax; match objects are the regex engine's (PR #3825, #3829, #3830, #3831, #3832, #3833, #3834, #3835, #3836, #3837, #3838, #3839, #3840, #3841, #3842, #3843, #3844, #3845, #3846, #3796, #3801, #3906, #3907, #3908, #3910)
  • Regular expressions made linear: the leading-run and re-anchoring patterns that a timeout cannot catch were rewritten or bounded in the word, Treebank, blankline, TextTiling, toktok and syllable tokenizers, the readline of corpus streams, the CoNLL SRL, TIMIT, senseval, pl196x, NKJP, Alpino, YCOE, IEER, ACE, VerbNet, reviews and Lin readers, relextract, the valuation parser, the CCG lexicon parser, dependency grammars and chomsky_normal_form, each verified on the real corpus (PR #3947, #3934, #3932, #3938, #3935, #3933, #3869, #3944, #3911, #3909, #3953, #3895)
  • Size, depth and time bounds: trees deeper than nltk.tree.MAX_TREE_DEPTH (500), WordNet and other relation walks deeper than nltk.util.MAX_RECURSION_DEPTH (500), tgrep deeper than 50, Toolbox deeper than 500, dependency graphs deeper than 200, are refused with ValueError naming the limit rather than exhausting the stack, and the stemmers, distance metrics, skipgrams, parsers and grammar transforms run in linear or bounded time with identical output for legitimate input. chart_parse stops after nltk.parse.chart.DEFAULT_MAX_TIME (5 seconds of wall-clock, needed only for feature grammars; max_time=None disables it). Tree.repr no longer recurses, so a deep accepted tree prints (PR #3827, #3885, #3895, #3767, #3784, #3917, #3958, #3960, #3977)
  • External tools and Java: a tool binary is resolved from an absolute path or a trusted search path only, never from the current directory; the binary, its directory and the model and data files handed to it must not be writable by another account (symlinked and multi-call executables such as a packaged Graphviz dot are supported). java() accepts a main class as the first argument only (no -jar, @​argfile or .java source file), validates its options against an allowlist, and loads jars only from a data root unless NLTK_ALLOW_UNSAFE_JARS=1 opts out with a warning. CoreNLP server options are allowlisted. Stanford, Malt, Senna, hunpos, Prover9, megam, TADM, Weka and crf wrappers validate their paths and the text they pipe to the tool against line and argument injection (PR #3772, #3771, #3975, #3743, #3782, #3788, #3768, #3798, #3887, #3858, #3950, #3951, #3812, #3816, #3868, #3894, #3941, #3850, #3925)
  • Network: the downloader, nltk.data.load of a URL and the CHILDES reader fetch through pathsec.urlopen, which refuses addresses that are not globally routable (loopback, private, link-local and multicast, including tunnelled and obfuscated forms), pins the validated address for the connection, allows file:// with a local authority only, and refuses a proxied fetch unless NLTK_ALLOW_PROXIED_URLOPEN=1 (or nltk.pathsec.ALLOW_PROXIED_FETCH = True) asserts the proxy is trusted. The CoreNLP client talks to its local server with requests and is not affected (PR #3847, #3810, #3750, #3850)
  • Terminal, CSV, DOT and HTML output: every print in the library goes through nltk.termsec.safe_print, which renders control characters, escape sequences and unbalanced bidi overrides from corpus text as visible \xNN escapes instead of letting them reach the terminal. The CSV files the twitter and sentiment helpers write neutralise formula-leading and control-sequence cells, AlignedSent DOT labels are escaped, the WordNet browser escapes corpus text, and nltk.data.load's verbose output no longer prints the full resource URL (PR #3914, #3915, #3937, #3946, #3931, #3930, #3856, #3902)
  • Corpus stores and encodings: the PanLex Lite and chat80 sqlite stores open read-only on a pinned descriptor with their schema screened and a statement step budget, chat80 shelves are read by a key manifest, Toolbox SFM markers are sanitised, and a resource encoding that is not a text codec (bz2_codec and friends) is refused (PR #3961, #3964, #3959, #3888, #3800, #3962)
  • Package contents: the wheel no longer ships nltk.test.unit (the attack harnesses, advisory probes and their fixtures), so pip install nltk is about half the size and import nltk.test.unit works from a source checkout or the sdist only. The doctests under nltk.test still ship (PR #3954)

Security test and CI infrastructure

Other changes

  • Added RTL language syntactic tree visualization support (PR #3472)
  • Fix #3394: Ensure punkt_tab is downloaded when punkt is requested (PR #3505)
  • Show README.md as the PyPI long description (PR #3746)
  • Add stopwords.words("english-extended") (PR #3747)
  • Krippendorff's alpha: treat placeholder labels as missing data (#2865, #2732) (PR #3752)
  • Fix shared defaults in chat80 Concept (PR #3773)
  • Fix Java wrappers decoding str output from java() (universal_newlines) (PR #3777)
  • Prevent IndexError in Hungarian stemmer on empty string (PR #3785)
  • Isolate MTE tag filters per view (PR #3792)
  • Fix newline in ellipsis tokens in TweetTokenizer (PR #3819)
  • Isolate default WordNet reference relations (PR #3872)
  • Fix resolution paths that cancel distinct literals (PR #3878)
  • Fix UTF-8 text preprocessing in NKJP corpus reader (PR #3879)
  • Remove shadowed FeatStruct._walk stub and preserve its docstring (PR #3893)
  • Count all increasing pairs in RIBES kendall_tau (PR #3900)
  • Fix the TweetTokenizer ZWJ emoji pattern capturing adjacent whitespace (PR #3913)
  • Surface the CoreNLP server's reason for a non-2xx answer (PR #3942)
  • Omit unaligned (NULL target) pairs from Alignment strings, so IBM model output prints (PR #3967)
  • Fix DependencyGraph cycle detection, which returned False on every parsed graph (PR #3978)
  • Show, range and draw an alignment with an unaligned pair on every surface (PR #3987)

Thanks to the following contributors to 3.10.4: Zhewen Tan, Yanhaoxi, Yazan Balawneh (Cystack.ps),

Description has been truncated

---
updated-dependencies:
- dependency-name: pandas
  dependency-version: 3.1.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: uv
- dependency-name: numpy
  dependency-version: 2.5.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: uv
- dependency-name: fairlearn
  dependency-version: 0.15.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: uv
- dependency-name: shap
  dependency-version: 0.54.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: uv
- dependency-name: nltk
  dependency-version: 3.10.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: uv
- dependency-name: python-dotenv
  dependency-version: 1.2.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: uv
- dependency-name: chardet
  dependency-version: 7.7.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: uv
- dependency-name: pyarrow
  dependency-version: 26.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: uv
- dependency-name: wandb
  dependency-version: 0.31.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: uv
- dependency-name: datasets
  dependency-version: 5.1.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: uv
- dependency-name: sentence-transformers
  dependency-version: 6.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: uv
- dependency-name: huggingface-hub
  dependency-version: 2.2.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: uv
- dependency-name: transformers
  dependency-version: 5.20.2
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: uv
- dependency-name: torch
  dependency-version: 2.14.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: uv
- dependency-name: sentry-sdk
  dependency-version: 2.73.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: uv
- dependency-name: openai
  dependency-version: 3.37.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: uv
- dependency-name: authlib
  dependency-version: 1.9.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: uv
- dependency-name: flask-socketio
  dependency-version: 5.7.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: uv
- dependency-name: neo4j
  dependency-version: 6.4.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: uv
- dependency-name: fastmcp
  dependency-version: 4.1.3
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: uv
- dependency-name: starlette
  dependency-version: 1.9.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: uv
- dependency-name: fonttools
  dependency-version: 4.67.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: uv
- dependency-name: aiohttp
  dependency-version: 3.14.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: uv
- dependency-name: kaggle
  dependency-version: 2.2.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: uv
- dependency-name: boto3
  dependency-version: 1.43.118
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: uv
- dependency-name: google-api-python-client
  dependency-version: 2.201.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: uv
- dependency-name: google-auth-httplib2
  dependency-version: 0.4.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: uv
- dependency-name: rich
  dependency-version: 15.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: uv
- dependency-name: ngcsdk
  dependency-version: 4.37.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: uv
- dependency-name: onnx
  dependency-version: 1.23.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: uv
- dependency-name: fastapi
  dependency-version: 0.161.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: uv
- dependency-name: ray
  dependency-version: 2.59.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: uv
- dependency-name: pydantic
  dependency-version: 2.14.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: uv
- dependency-name: google-genai
  dependency-version: 2.33.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: uv
- dependency-name: lancedb
  dependency-version: 0.40.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: uv
- dependency-name: kernels
  dependency-version: 0.17.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: uv
- dependency-name: peft
  dependency-version: 0.21.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: uv
- dependency-name: lightning-sdk
  dependency-version: 2026.10.13
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: uv
- dependency-name: modal
  dependency-version: 1.6.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: uv
- dependency-name: gradient-adk
  dependency-version: 0.2.13
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: uv
- dependency-name: semgrep
  dependency-version: 1.182.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: uv
- dependency-name: selenium
  dependency-version: 4.51.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: uv
- dependency-name: anthropic
  dependency-version: 2.1.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: uv
- dependency-name: ruff
  dependency-version: 0.17.2
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: uv
- dependency-name: fireworks-ai
  dependency-version: 1.2.30
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: uv
- dependency-name: pytest-mock
  dependency-version: 3.17.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: uv
- dependency-name: coverage
  dependency-version: 7.17.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: uv
- dependency-name: types-requests
  dependency-version: 2.33.0.20261006
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: uv
- dependency-name: hypothesis
  dependency-version: 6.170.8
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: uv
- dependency-name: mypy
  dependency-version: 2.4.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: uv
- dependency-name: pip-audit
  dependency-version: 2.10.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: uv
- dependency-name: asyncpg
  dependency-version: 0.32.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: uv
- dependency-name: setuptools
  dependency-version: 84.2.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: uv
- dependency-name: pgvector
  dependency-version: 0.5.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: uv
- dependency-name: pymupdf
  dependency-version: '2.0'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: uv
- dependency-name: typer
  dependency-version: 0.27.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: uv
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot
dependabot Bot requested a review from daggerstuff as a code owner October 26, 2026 08:12
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file python Pull requests that update python code labels Oct 26, 2026
@vercel

vercel Bot commented Oct 26, 2026 •

Copy link
Copy Markdown
Contributor

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
Project Deployment Actions Updated
pixelated Ignored Ignored Preview Oct 26, 2026 8:12am UTC

Request Review

@dependabot dependabot Bot added the uv Python uv dependency updates label Oct 26, 2026
@github-actions

Copy link
Copy Markdown

px Advisor Review

Risk: unknown

No summary available

No findings.

@daggerstuff
daggerstuff merged commit dd0bad5 into staging Oct 26, 2026
30 of 32 checks passed
@daggerstuff
daggerstuff deleted the dependabot/uv/uv-2155560171 branch October 26, 2026 10:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file python Pull requests that update python code uv Python uv dependency updates

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant