Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/check.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -154,7 +154,7 @@ jobs:
# A PR must add a docs/changelog/<pr>.<type>.rst fragment; automated dependency and pre-commit bumps are exempt, as
# is anything labeled skip news, for changes no user of the library can observe.
if: >-
github.event_name == 'pull_request' && !contains(fromJSON('["dependabot[bot]", "pre-commit-ci[bot]"]'), github.actor) && !contains(github.event.pull_request.labels.*.name, 'skip news')
github.event_name == 'pull_request' && !contains(fromJSON('["dependabot[bot]", "pre-commit-ci[bot]"]'), github.event.pull_request.user.login) && !contains(github.event.pull_request.labels.*.name, 'skip news')
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
Expand Down
10 changes: 5 additions & 5 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -15,15 +15,15 @@ repos:
- id: codespell
additional_dependencies: ["tomli>=2.4"]
- repo: https://github.com/tox-dev/tox-toml-fmt
rev: "v1.9.3"
rev: "v1.10.0"
hooks:
- id: tox-toml-fmt
- repo: https://github.com/tox-dev/pyproject-fmt
rev: "v2.28.1"
rev: "v2.29.0"
hooks:
- id: pyproject-fmt
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: "v0.16.4"
rev: "v0.16.5"
hooks:
- id: ruff-format
- id: ruff-check
Expand All @@ -43,13 +43,13 @@ repos:
- mdformat-gfm>=1
- mdformat-ruff>=0.1.3
- repo: https://github.com/LilSpazJoekp/docstrfmt
rev: v2.2.0
rev: v2.2.1
hooks:
- id: docstrfmt
args: ["-l", "120"]
additional_dependencies: ["sphinx>=9.1"]
- repo: https://github.com/zizmorcore/zizmor-pre-commit
rev: v1.29.0
rev: v1.30.0
hooks:
- id: zizmor
- repo: meta
Expand Down
15 changes: 8 additions & 7 deletions docs/changelog.rst
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@

.. towncrier release notes start

********************
*********************
4.11.5 (2026-08-27)
********************
*********************

- Give :func:`~platformdirs.user_preference_dir` and :func:`~platformdirs.user_preference_path` the same arguments as
:func:`~platformdirs.user_config_dir`. Added without arguments in :pr:`491`, they could only return the unscoped base
Expand All @@ -17,12 +17,13 @@
:func:`~platformdirs.site_data_path`. On Unix and macOS it passed the whole ``$XDG_DATA_DIRS`` list to
:class:`~pathlib.Path`, giving one unusable path such as ``/first/applications:/second/applications``. :pr:`532`
- Give :func:`~platformdirs.user_applications_dir`, :func:`~platformdirs.user_applications_path`,
:func:`~platformdirs.site_applications_dir` and :func:`~platformdirs.site_applications_path` the app arguments. Android
scopes both applications directories to the app, so without them the functions could only return the unscoped base
directory there. On the two site functions they are keyword-only, keeping ``multipath`` first positional as it has been
since 4.9.0; the two user functions take their boolean options keyword-only. :pr:`534`
:func:`~platformdirs.site_applications_dir` and :func:`~platformdirs.site_applications_path` the app arguments.
Android scopes both applications directories to the app, so without them the functions could only return the unscoped
base directory there. On the two site functions they are keyword-only, keeping ``multipath`` first positional as it
has been since 4.9.0; the two user functions take their boolean options keyword-only. :pr:`534`
- Correct the ordering note on the iterator methods. ``use_site_for_root`` drops the user directory entirely, so the
iterators are documented as yielding the most specific directory first rather than always yielding the user one. :pr:`533`
iterators are documented as yielding the most specific directory first rather than always yielding the user one.
:pr:`533`

*********************
4.11.4 (2026-08-24)
Expand Down
17 changes: 9 additions & 8 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -133,14 +133,15 @@ lint.ignore = [
"S104", # Possible binding to all interfaces
]
lint.per-file-ignores."tests/**/*.py" = [
"D", # don't care about documentation in tests
"FBT", # don't care about booleans as positional arguments in tests
"INP001", # no implicit namespace
"PLC2701", # Private name import
"PLR0917", # Too many positional arguments
"PLR2004", # Magic value used in comparison, consider replacing with a constant variable
"S101", # asserts allowed in tests
"S603", # `subprocess` call: check for execution of untrusted input
"D", # don't care about documentation in tests
"FBT", # don't care about booleans as positional arguments in tests
"INP001", # no implicit namespace
"PLC2701", # Private name import
"PLR0917", # Too many positional arguments
"PLR2004", # Magic value used in comparison, consider replacing with a constant variable
"pytest-fixture-autouse", # shared setup fixtures are meant to apply to every test
"S101", # asserts allowed in tests
"S603", # `subprocess` call: check for execution of untrusted input
]
lint.isort = { known-first-party = [
"platformdirs",
Expand Down