Skip to content

Bump platformdirs from 4.13.5 to 4.14.0 - #14251

Open
dependabot[bot] wants to merge 1 commit into
masterfrom
dependabot/pip/platformdirs-4.14.0
Open

dependabot[bot] wants to merge 1 commit into
masterfrom
dependabot/pip/platformdirs-4.14.0

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Nov 2, 2026

Copy link
Copy Markdown
Contributor

Bumps platformdirs from 4.13.5 to 4.14.0.

Release notes

Sourced from platformdirs's releases.

4.14.0

Features

  • Accept a keyword-only ensure_exists in the module-level media directory functions, such as user_documents_path, to create a directory set through XDG_*_DIR or user-dirs.dirs (#656) by @​darrenhuai and @​gaborbernat.

Bug fixes

  • Return the media and fonts directories under root's home for root with use_site_for_root, ignoring the invoking user's XDG_*_DIR, user-dirs.dirs and XDG_DATA_HOME, and create no inherited media directory under ensure_exists (#661) by @​gaborbernat.
  • Raise ValueError from site_data_dir and site_config_dir under multipath=True when appname or version contains os.pathsep, rather than returning a string that splits into a directory outside the site base (#662) by @​gaborbernat.
  • Parse an unquoted user-dirs.dirs value with a long run of blanks in linear time, rather than in time quadratic in the run's length on every Unix media directory lookup (#663) by @​gaborbernat.
  • Treat a relative HOME as unset on Unix, macOS and iOS, taking the home from the password database or raising RuntimeError, rather than resolving user directories against the working directory (#664) by @​gaborbernat.
  • Refuse a symlink as XDG_RUNTIME_DIR in user_runtime_dir when the value ends with / or /., which made the check follow the link (#665) by @​gaborbernat.
  • Redirect user_*_dir calls with use_site_for_root=True when the effective uid is 0, so a setuid-root process gets the site directories, and name and check the runtime directory by the effective uid (#666) by @​gaborbernat.
  • Apply the XDG_RUNTIME_DIR check of the Unix user_runtime_dir to the macOS one, so it no longer uses a directory that is a symlink, owned by another user or not mode 0700 (#667) by @​gaborbernat.
  • Reject an XDG_RUNTIME_DIR below a parent that another user can replace, such as their own entry in /tmp, instead of creating the runtime directory through it (#668) by @​gaborbernat.
  • Stop accepting a Unix runtime directory that another user creates between the owner check and its use: ensure_exists and place_runtime_file create it before checking it, and find_runtime_file checks it again after a hit (#669) by @​gaborbernat.
  • Raise PermissionError on macOS when ensure_exists would create the site cache through a /Library/Caches/$appname that is a symlink, not a directory, or owned by a user other than root and the current one (#670) by @​gaborbernat.
  • With ensure_exists, raise FileExistsError when a configured media directory such as user_documents_dir is a regular file or a symlink to one, instead of returning the file's path. Dangling symlinks are still returned unchanged (#672) by @​rupayon123 and @​gaborbernat.

New Contributors

PyPI release

Full Changelog

4.13.7

Bug fixes

  • Fall back to the default media directories when user-dirs.dirs exists but cannot be read, rather than raising PermissionError or IsADirectoryError (#632) by @​Debasishhh and @​gaborbernat.
  • Resolve the Windows Projects directory from USERPROFILE when HOME is empty, rather than raising RuntimeError (#635) by @​pabszero and @​gaborbernat.
  • Resolve $HOME entries in user-dirs.dirs to /Documents instead of //Documents when the home directory is / (#636) by @​darrenhuai and @​gaborbernat.
  • Print the error and keep listing directories in python -m platformdirs when the home directory is unknown, rather than stopping with RuntimeError (#638) by @​tongwentao and @​gaborbernat.
  • Raise FileNotFoundError from the place_*_file methods when the user directory is on a missing Windows drive or network share, rather than recursing until RecursionError (#639) by @​nk-batman21 and @​gaborbernat.
  • Search the directories of a subclass's overridden iter_*_paths method in find_*_file and find_*_files, rather than the base class ones (#640) by @​KennyMcSimpson and @​gaborbernat.
  • Keep isolated_dirs paths under a relative root after the working directory changes, and yield the root as an absolute path (#643) by @​0x5t4l1n and @​gaborbernat.
  • Ignore Windows folder overrides with a UNC path missing its server or share name, such as \\server, instead of treating the application name as the share (#647) by @​RedCat888 and @​gaborbernat.

Documentation

  • Remove the literal /opt/homebrew from a macOS source comment. Homebrew replaces it with a placeholder when bottling on Apple Silicon but not on Linux, so formulae that bundle platformdirs could not share one bottle across both (#644) by @​Moisan and @​gaborbernat.

... (truncated)

Changelog

Sourced from platformdirs's changelog.

########### Changelog ###########

.. towncrier-draft-entries:: Unreleased

.. towncrier release notes start

.. _release-4-14-3:


4.14.3 (2026-11-01)


.. _release-4-14-3-fixed:

Fixed

  • Preserve trailing whitespace in absolute XDG directory values instead of resolving a different directory (:pr:679) by :user:mikegit123git and :user:gaborbernat.

.. _release-4-14-2:


4.14.2 (2026-10-31)


.. _release-4-14-2-fixed:

Fixed

  • Deduplicate equivalent XDG directory spellings across string and path iterators and file searches (:pr:677) by :user:AlvaroBalbin and :user:gaborbernat.

.. _release-4-14-1:


4.14.1 (2026-10-30)


.. _release-4-14-1-fixed:

Fixed

  • Fall back to the real user ID on platforms without an effective user ID, restoring imports and Unix directory lookups on Pyodide (:pr:676) by :user:mayankdhingra02.

... (truncated)

Commits
  • c40ff0b release 4.14.0
  • 18620ed 🐛 fix(unix): check XDG_RUNTIME_DIR parents (#668)
  • 3a5e7d0 🐛 fix(api): raise when a media dir is a file (#672)
  • 790ff18 🐛 fix(unix): decide root redirect by effective uid (#666)
  • 7753a02 🔒 fix(macos): refuse planted site cache entries (#670)
  • 9f5ff8a 🐛 fix(macos): pass missing_ok to runtime dir check (#674)
  • 3ee973f 🐛 fix(unix): ignore inherited media vars for root (#661)
  • a94826e 🐛 fix(unix): parse user-dirs blank runs in linear time (#663)
  • 3b4cf5f 🐛 fix(unix): reject runtime dir symlink with trailing / (#665)
  • f5b537b 🐛 fix(dirs): treat a relative HOME as unset (#664)
  • Additional commits viewable in compare view

Dependabot compatibility score

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 commands and options

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)

Bumps [platformdirs](https://github.com/tox-dev/platformdirs) from 4.13.5 to 4.14.0.
- [Release notes](https://github.com/tox-dev/platformdirs/releases)
- [Changelog](https://github.com/tox-dev/platformdirs/blob/main/docs/changelog.rst)
- [Commits](tox-dev/platformdirs@4.13.5...4.14.0)

---
updated-dependencies:
- dependency-name: platformdirs
  dependency-version: 4.14.0
  dependency-type: indirect
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added the dependencies Pull requests that update a dependency file label Nov 2, 2026
@github-actions
github-actions Bot enabled auto-merge (squash) November 2, 2026 10:51
@codecov

codecov Bot commented Nov 2, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 99.11%. Comparing base (a2c6c92) to head (2872d15).
✅ All tests successful. No failed tests found.

Additional details and impacted files
@@           Coverage Diff           @@
##           master   #14251   +/-   ##
=======================================
  Coverage   99.11%   99.11%           
=======================================
  Files         135      135           
  Lines       53438    53438           
  Branches     2723     2723           
=======================================
  Hits        52966    52966           
  Misses        358      358           
  Partials      114      114           
Flag Coverage Δ
Autobahn 21.67% <ø> (ø)
CI-GHA 99.05% <ø> (ø)
OS-Linux 98.69% <ø> (ø)
OS-Windows 97.48% <ø> (ø)
OS-macOS 98.34% <ø> (-0.01%) ⬇️
Py-3.11 98.28% <ø> (-0.01%) ⬇️
Py-3.12 98.37% <ø> (-0.01%) ⬇️
Py-3.13 98.37% <ø> (+<0.01%) ⬆️
Py-3.14 98.39% <ø> (-0.01%) ⬇️
Py-3.15 98.39% <ø> (-0.01%) ⬇️
Py-3.15t 98.24% <ø> (+<0.01%) ⬆️
Py-pypy-3.12 96.96% <ø> (+<0.01%) ⬆️
VM-macos-latest 98.34% <ø> (-0.01%) ⬇️
VM-ubuntu-latest 98.69% <ø> (ø)
VM-windows-latest 97.48% <ø> (ø)
cython-coverage 83.81% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

This branch has not been deployed

No deployments
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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants