dependabot[bot] opened a new pull request, #3906: URL: https://github.com/apache/iceberg-python/pull/3906
Bumps [huggingface-hub](https://github.com/huggingface/huggingface_hub) from 1.28.0 to 1.29.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/huggingface/huggingface_hub/releases">huggingface-hub's releases</a>.</em></p> <blockquote> <h2>[v1.29.0] Fix Xet downloads rate limits, bucket visibility updates, and security fixes</h2> <h2>⚡ Xet downloads no longer make one API call per file</h2> <p>Since v1.19.0, downloading a repository with <code>hf_xet</code> eagerly requested a xet read token for every single file, because each download group was built without cached connection info. On repos with many files this quickly added up — a 77k-file repo made ~1,500 Hub API calls per minute — and eventually hit the rate limiter, leaving <code>snapshot_download</code> appearing stalled for minutes before failing with a <code>429 Too Many Requests</code>. This release restores the Python-side connection info cache so the endpoint and token are reused across download groups, skipping the eager per-file token request entirely. Large downloads are both faster and far less likely to be rate-limited.</p> <ul> <li>[Xet] Cache connection info to avoid one token request per file by <a href="https://github.com/hanouticelina"><code>@hanouticelina</code></a> in <a href="https://redirect.github.com/huggingface/huggingface_hub/issues/4732">#4732</a></li> </ul> <h2>🪣 Change bucket visibility after creation</h2> <p>Bucket visibility used to be a create-time-only setting: once a bucket existed, there was no way to flip it between private and public. You can now update it with the new <code>HfApi.update_bucket_settings()</code> method (also exported as <code>update_bucket_settings</code>) or from the CLI with <code>hf buckets settings</code>, which takes either <code>--private</code> or <code>--public</code>.</p> <pre lang="py"><code>>>> from huggingface_hub import update_bucket_settings <h1>Make a bucket private</h1> <p>>>> update_bucket_settings("username/my-bucket", private=True)</p> <h1>Make it public again</h1> <p>>>> update_bucket_settings("username/my-bucket", private=False) </code></pre></p> <pre lang="bash"><code># Make a bucket private >>> hf buckets settings username/my-bucket --private ✓ Bucket settings updated bucket_id: username/my-bucket private: True # Make it public again >>> hf buckets settings username/my-bucket --public </code></pre> <p>📚 <strong>Documentation:</strong> <a href="https://huggingface.co/docs/huggingface_hub/main/en/guides/buckets">Buckets guide</a></p> <ul> <li>[Buckets] Add support for updating bucket visibility by <a href="https://github.com/hanouticelina"><code>@hanouticelina</code></a> in <a href="https://redirect.github.com/huggingface/huggingface_hub/issues/4715">#4715</a></li> </ul> <h2>🔒 Security fixes</h2> <p>Two security-relevant fixes land in this release. First, the path-traversal guard introduced earlier for CVE-2026-15717 is now extended to <code>hf buckets sync</code> / <code>sync_bucket()</code>: when downloading from a bucket, server-supplied file keys were joined straight onto the local destination without validation, so a malicious or compromised bucket could return anchored or traversing keys (<code>/etc/cron.d/evil</code>, <code>../../../../etc/passwd</code>, Windows drive-absolute or UNC paths) that escape the chosen directory and write arbitrary files. Remote paths are now validated the same way as in the original fix. Second, <code>load_state_dict_from_file</code> could fall back to pickle deserialization for a shard named exactly <code>.safetensors</code>: <code>Path.suffix</code> returns an empty string for extension-only filenames, so a file that passed sharded-checkpoint validation (which uses <code>str.endswith</code>) was still routed to <code>torch.load(weights _only=False)</code>. A shared <code>_is_safetensors()</code> helper now guarantees both code paths use the same matching semantics, so an index-declared "safetensors" checkpoint can never be loaded with pickle.</p> <ul> <li>[Buckets] Validate remote paths in bucket sync to prevent path traversal by <a href="https://github.com/hanouticelina"><code>@hanouticelina</code></a> in <a href="https://redirect.github.com/huggingface/huggingface_hub/issues/4731">#4731</a></li> <li>Fix extension-confusion fallback to pickle in load_state_dict_from_file (add <code>_is_safetensors</code>) by <a href="https://github.com/moon-bot-app"><code>@moon-bot-app</code></a>[bot] in <a href="https://redirect.github.com/huggingface/huggingface_hub/issues/4737">#4737</a></li> </ul> <h2>🤖 Inference</h2> <ul> <li>[Inference Providers] Send LoRA weights for fal-ai text-to-video by <a href="https://github.com/moon-bot-app"><code>@moon-bot-app</code></a>[bot] in <a href="https://redirect.github.com/huggingface/huggingface_hub/issues/4706">#4706</a></li> <li>Hint at <code>stream=True</code> when a non-streaming inference call fails with 504 by <a href="https://github.com/moon-bot-app"><code>@moon-bot-app</code></a>[bot] in <a href="https://redirect.github.com/huggingface/huggingface_hub/issues/4744">#4744</a></li> </ul> <h2>🖥️ CLI</h2> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/huggingface/huggingface_hub/commit/4237d95c603db491cb1070898c74c97e4d7c2582"><code>4237d95</code></a> Release: v1.29.0</li> <li><a href="https://github.com/huggingface/huggingface_hub/commit/dd44abc045c7cb774436f0efed5b640a84c74cda"><code>dd44abc</code></a> Release: v1.29.0.rc1</li> <li><a href="https://github.com/huggingface/huggingface_hub/commit/38d29a81f185cb29e0fdc972503c975f0e7b713d"><code>38d29a8</code></a> [Release] Refresh OpenCode model cache before validating RELEASE_NOTES_MODEL ...</li> <li><a href="https://github.com/huggingface/huggingface_hub/commit/b1bf950c9861148cd5a866b02e2dbf1f5ea4aaf3"><code>b1bf950</code></a> Release: v1.29.0.rc0</li> <li><a href="https://github.com/huggingface/huggingface_hub/commit/2e62777baa0cb418a2618372961fd7346c346dc6"><code>2e62777</code></a> [CI] Auto-close community PRs without a maintainer-scoped issue (<a href="https://redirect.github.com/huggingface/huggingface_hub/issues/4695">#4695</a>)</li> <li><a href="https://github.com/huggingface/huggingface_hub/commit/c5eb13cdc808aae4251054081271cdfd415fcce7"><code>c5eb13c</code></a> [CLI] Installer: point at shadowed newer Python on macOS (<a href="https://redirect.github.com/huggingface/huggingface_hub/issues/4758">#4758</a>)</li> <li><a href="https://github.com/huggingface/huggingface_hub/commit/585c075de9c432bb648033f9c5d188847d5174af"><code>585c075</code></a> [Buckets] Validate remote paths in bucket sync to prevent path traversal (<a href="https://redirect.github.com/huggingface/huggingface_hub/issues/4731">#4731</a>)</li> <li><a href="https://github.com/huggingface/huggingface_hub/commit/4dcfe7e9588248deefd977a2ab922516334bc2dd"><code>4dcfe7e</code></a> [CLI] Fix argument help rendering with click 8.5 (<a href="https://redirect.github.com/huggingface/huggingface_hub/issues/4759">#4759</a>)</li> <li><a href="https://github.com/huggingface/huggingface_hub/commit/2c60641c98afa344892600e6ba76e010959ed637"><code>2c60641</code></a> [Xet] Cache connection info to avoid one token request per file (<a href="https://redirect.github.com/huggingface/huggingface_hub/issues/4732">#4732</a>)</li> <li><a href="https://github.com/huggingface/huggingface_hub/commit/c6be77fb44d91f474da963e5ad6fce4801811027"><code>c6be77f</code></a> Hint at <code>stream=True</code> when a non-streaming inference call fails with 504 (<a href="https://redirect.github.com/huggingface/huggingface_hub/issues/4744">#4744</a>)</li> <li>Additional commits viewable in <a href="https://github.com/huggingface/huggingface_hub/compare/v1.28.0...v1.29.0">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
