-
-
Notifications
You must be signed in to change notification settings - Fork 107
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
use fchmod #214
use fchmod #214
Conversation
cc @jahrules |
The docs claim that as of python 3.3 fchmod and chmod are equivalent. But if using fchmod resolves some issue, it shouldn't be a problem. https://docs.python.org/3/library/os.html?highlight=fchmod#os.fchmod |
Note that (if this PR is correct) the CI failure is spurious. https://results.pre-commit.ci/run/github/17098256/1679850526.TbItmJeCQ3eodvVdUw9VBw |
you just need to add fchmod to the whitelist and it will pass. |
Done! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Let's add a test if they are not equivalent.
@jfennick have you confirmed that this change fixes your issue? |
Could you be more specific? I'm not sure what kind of a test you're looking for. |
Yes, this PR fixes the issue on my machine. Have you tried running my minimal reproducible example? |
|
A test that would replicate this issue in the CI and shows that this fix fixes it. Generally, you commit first to the test and then to the solution. |
If this is a pypy issue, how come to our CI did not catch it? Also, if this is a pypy bug why are we fixing it in this codebase and not within pypy? Also, did you submit and link a pypy bug report? I'll not accept PRs that are fixing upstream issues without a very good reason. |
I highly suspect that this is down the the OS or filesystem being used. I don't know enough about how the os module interacts with the OS functions to know which is more likely. @jfennick can you share what OS/filesystem you're using? |
The only reason I can think of that it's failing on my machine and not the CI is that I'm on macos Ventura 13.2.1 and the CI has macos 12. My filesystem is the default Apple Filesystem APFS. |
While I don't see any issue with using What is the Pypy version? It should be 7.x.x something.
Considering Pypy is "Python in Python", perhaps this is an old Pypy version, and a compatibility bug in pypy? |
Should be the latest and greatest:
|
Strange. Also, it turns out that that error message is not what you would expect from Python < 3.3 either.
|
Very strange indeed:
|
I think you got a Pypy bug there... one way or the other...
I also tried your minimal reproducible example (albeit, in a Docker container), and could not reproduce the error. |
Here's the relevant section from my os.py
I'm not exactly sure what's going on here, but it sounds like the story around os.chmod isn't so simple. There's a lot of macos 10.3 specific logic here, so maybe they forgot to add similar logic for chmod. Anyhow, I think the point of this PR is that why are we even giving pypy, etc the chance to mess this up? At this particular call site we 100% know for sure |
Setup on an actual Mac. I was able to replicate the error.
|
I'd like to notify the right people of their bug before we accept a temporary workaround on our side. So I'm holding this PR until we figure out how is this a problem and fill.in a bug issue there. Because per the official documentation this should work. |
Excellent, sounds good to me. I can work off my fork in the meantime. |
I think I tracked down part of the issue. The official Python docs say that Pypy, on the other hand, says the ability use a file descriptor "may be unavailable" https://foss.heptapod.net/pypy/pypy/-/blob/59ace91749d15ffc3b60510ae727de51e21f2728/pypy/module/posix/interp_posix.py#L1183-L1199
With the normal Pypy for MacOS, I note that the Python build information is So I guess an issue needs to be raised with Pypy that their I suspect the build server didn't catch it because it may be using micromamba, not the full distribution but I'm not sure. |
I don't think we use mamba to provision Python. It uses the GitHub action. Can someone fill in an issue to pypy and link it? |
This issue applies to the version of pypy as installed in Anaconda on macOS according to the official installation instructions: The native pypy build for MacOS seems unaffected. https://www.pypy.org/posts/2022/11/pypy-and-conda-forge.html
|
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [filelock](https://github.com/tox-dev/py-filelock) | `3.0.12` -> `3.12.2` | [![age](https://badges.renovateapi.com/packages/pypi/filelock/3.12.2/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/pypi/filelock/3.12.2/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/pypi/filelock/3.12.2/compatibility-slim/3.0.12)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/pypi/filelock/3.12.2/confidence-slim/3.0.12)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>tox-dev/py-filelock (filelock)</summary> ### [`v3.12.2`](https://github.com/tox-dev/py-filelock/releases/tag/3.12.2) [Compare Source](https://github.com/tox-dev/py-filelock/compare/3.12.1...3.12.2) #### What's Changed - Restore 'if TYPE_CHECKING' syntax for FileLock definition by [@​dlax](https://github.com/dlax) in [https://github.com/tox-dev/py-filelock/pull/245](https://github.com/tox-dev/py-filelock/pull/245) #### New Contributors - [@​dlax](https://github.com/dlax) made their first contribution in [https://github.com/tox-dev/py-filelock/pull/245](https://github.com/tox-dev/py-filelock/pull/245) **Full Changelog**: tox-dev/filelock@3.12.1...3.12.2 ### [`v3.12.1`](https://github.com/tox-dev/py-filelock/releases/tag/3.12.1) [Compare Source](https://github.com/tox-dev/py-filelock/compare/3.12.0...3.12.1) ##### What's Changed - Add trusted-publish by [@​gaborbernat](https://github.com/gaborbernat) in [https://github.com/tox-dev/py-filelock/pull/236](https://github.com/tox-dev/py-filelock/pull/236) - Add 3.12 support by [@​gaborbernat](https://github.com/gaborbernat) in [https://github.com/tox-dev/py-filelock/pull/237](https://github.com/tox-dev/py-filelock/pull/237) - Bump pypa/gh-action-pypi-publish from 1.8.5 to 1.8.6 by [@​dependabot](https://github.com/dependabot) in [https://github.com/tox-dev/py-filelock/pull/239](https://github.com/tox-dev/py-filelock/pull/239) - git ls-files -z -- .github/workflows/check.yml | xargs -0 sed -i 's|3.12.0-alpha.7|3.12.0-beta.1|g' by [@​gaborbernat](https://github.com/gaborbernat) in [https://github.com/tox-dev/py-filelock/pull/243](https://github.com/tox-dev/py-filelock/pull/243) - Use ruff by [@​gaborbernat](https://github.com/gaborbernat) in [https://github.com/tox-dev/py-filelock/pull/244](https://github.com/tox-dev/py-filelock/pull/244) - Fix test_bad_lock_file for other OSes by [@​TheMatt2](https://github.com/TheMatt2) in [https://github.com/tox-dev/py-filelock/pull/242](https://github.com/tox-dev/py-filelock/pull/242) **Full Changelog**: tox-dev/filelock@3.12.0...3.12.1 ### [`v3.12.0`](https://github.com/tox-dev/py-filelock/releases/tag/3.12.0) [Compare Source](https://github.com/tox-dev/py-filelock/compare/3.11.0...3.12.0) #### What's Changed - Fix: [#​225](https://github.com/tox-dev/py-filelock/issues/225) :Get rid of warning about inability to link to \_thread.\_local. by [@​csm10495](https://github.com/csm10495) in [https://github.com/tox-dev/py-filelock/pull/226](https://github.com/tox-dev/py-filelock/pull/226) - Bump deps and tools by [@​gaborbernat](https://github.com/gaborbernat) in [https://github.com/tox-dev/py-filelock/pull/228](https://github.com/tox-dev/py-filelock/pull/228) - Add umask check to tests so umask 002 is valid by [@​TheMatt2](https://github.com/TheMatt2) in [https://github.com/tox-dev/py-filelock/pull/227](https://github.com/tox-dev/py-filelock/pull/227) - Fix lock hang on Windows by [@​TheMatt2](https://github.com/TheMatt2) in [https://github.com/tox-dev/py-filelock/pull/231](https://github.com/tox-dev/py-filelock/pull/231) - Conditionally disable/enable thread-local lock behavior. by [@​csm10495](https://github.com/csm10495) in [https://github.com/tox-dev/py-filelock/pull/232](https://github.com/tox-dev/py-filelock/pull/232) **Full Changelog**: tox-dev/filelock@3.11.0...3.12.0 ### [`v3.11.0`](https://github.com/tox-dev/py-filelock/releases/tag/3.11.0) [Compare Source](https://github.com/tox-dev/py-filelock/compare/3.10.7...3.11.0) #### What's Changed - Bump pypa/gh-action-pypi-publish from 1.8.3 to 1.8.5 by [@​dependabot](https://github.com/dependabot) in [https://github.com/tox-dev/py-filelock/pull/218](https://github.com/tox-dev/py-filelock/pull/218) - Fix [#​220](https://github.com/tox-dev/py-filelock/issues/220): Allow filelock test thread to catch any exceptions by [@​TheMatt2](https://github.com/TheMatt2) in [https://github.com/tox-dev/py-filelock/pull/221](https://github.com/tox-dev/py-filelock/pull/221) - Bump deps and tools by [@​gaborbernat](https://github.com/gaborbernat) in [https://github.com/tox-dev/py-filelock/pull/222](https://github.com/tox-dev/py-filelock/pull/222) - Run more pypy versions in CI but without coverage by [@​gaborbernat](https://github.com/gaborbernat) in [https://github.com/tox-dev/py-filelock/pull/224](https://github.com/tox-dev/py-filelock/pull/224) - Make the lock a thread local variable by [@​csm10495](https://github.com/csm10495) in [https://github.com/tox-dev/py-filelock/pull/219](https://github.com/tox-dev/py-filelock/pull/219) #### New Contributors - [@​csm10495](https://github.com/csm10495) made their first contribution in [https://github.com/tox-dev/py-filelock/pull/219](https://github.com/tox-dev/py-filelock/pull/219) **Full Changelog**: tox-dev/filelock@3.10.7...3.11.0 ### [`v3.10.7`](https://github.com/tox-dev/py-filelock/releases/tag/3.10.7) [Compare Source](https://github.com/tox-dev/py-filelock/compare/3.10.6...3.10.7) #### What's Changed - use fchmod by [@​jfennick](https://github.com/jfennick) in [https://github.com/tox-dev/py-filelock/pull/214](https://github.com/tox-dev/py-filelock/pull/214) #### New Contributors - [@​jfennick](https://github.com/jfennick) made their first contribution in [https://github.com/tox-dev/py-filelock/pull/214](https://github.com/tox-dev/py-filelock/pull/214) **Full Changelog**: tox-dev/filelock@3.10.6...3.10.7 ### [`v3.10.6`](https://github.com/tox-dev/py-filelock/releases/tag/3.10.6) [Compare Source](https://github.com/tox-dev/py-filelock/compare/3.10.5...3.10.6) #### What's Changed - Bugfix/147 by [@​jahrules](https://github.com/jahrules) in [https://github.com/tox-dev/py-filelock/pull/213](https://github.com/tox-dev/py-filelock/pull/213) **Full Changelog**: tox-dev/filelock@3.10.5...3.10.6 ### [`v3.10.5`](https://github.com/tox-dev/py-filelock/releases/tag/3.10.5) [Compare Source](https://github.com/tox-dev/py-filelock/compare/3.10.4...3.10.5) #### What's Changed - proposed fix for issue [#​67](https://github.com/tox-dev/py-filelock/issues/67) by [@​jahrules](https://github.com/jahrules) in [https://github.com/tox-dev/py-filelock/pull/212](https://github.com/tox-dev/py-filelock/pull/212) **Full Changelog**: tox-dev/filelock@3.10.4...3.10.5 ### [`v3.10.4`](https://github.com/tox-dev/py-filelock/releases/tag/3.10.4) [Compare Source](https://github.com/tox-dev/py-filelock/compare/3.10.3...3.10.4) #### What's Changed - updated os.open to preserve mode by [@​jahrules](https://github.com/jahrules) in [https://github.com/tox-dev/py-filelock/pull/211](https://github.com/tox-dev/py-filelock/pull/211) **Full Changelog**: tox-dev/filelock@3.10.3...3.10.4 ### [`v3.10.3`](https://github.com/tox-dev/py-filelock/releases/tag/3.10.3) [Compare Source](https://github.com/tox-dev/py-filelock/compare/3.10.2...3.10.3) #### What's Changed - Bump pypa/gh-action-pypi-publish from 1.8.1 to 1.8.3 by [@​dependabot](https://github.com/dependabot) in [https://github.com/tox-dev/py-filelock/pull/207](https://github.com/tox-dev/py-filelock/pull/207) - bug fix by [@​jahrules](https://github.com/jahrules) in [https://github.com/tox-dev/py-filelock/pull/209](https://github.com/tox-dev/py-filelock/pull/209) **Full Changelog**: tox-dev/filelock@3.10.2...3.10.3 ### [`v3.10.2`](https://github.com/tox-dev/py-filelock/releases/tag/3.10.2) [Compare Source](https://github.com/tox-dev/py-filelock/compare/3.10.1...3.10.2) #### What's Changed - changed from os.umask to os.chmod by [@​jahrules](https://github.com/jahrules) in [https://github.com/tox-dev/py-filelock/pull/206](https://github.com/tox-dev/py-filelock/pull/206) **Full Changelog**: tox-dev/filelock@3.10.1...3.10.2 ### [`v3.10.1`](https://github.com/tox-dev/py-filelock/releases/tag/3.10.1) [Compare Source](https://github.com/tox-dev/py-filelock/compare/3.10.0...3.10.1) #### What's Changed - Bump pypa/gh-action-pypi-publish from 1.7.1 to 1.8.1 by [@​dependabot](https://github.com/dependabot) in [https://github.com/tox-dev/py-filelock/pull/200](https://github.com/tox-dev/py-filelock/pull/200) - Bump deps and tools by [@​gaborbernat](https://github.com/gaborbernat) in [https://github.com/tox-dev/py-filelock/pull/201](https://github.com/tox-dev/py-filelock/pull/201) - Properly pickle of Timeout objects + test cases by [@​TheMatt2](https://github.com/TheMatt2) in [https://github.com/tox-dev/py-filelock/pull/203](https://github.com/tox-dev/py-filelock/pull/203) #### New Contributors - [@​TheMatt2](https://github.com/TheMatt2) made their first contribution in [https://github.com/tox-dev/py-filelock/pull/203](https://github.com/tox-dev/py-filelock/pull/203) **Full Changelog**: tox-dev/filelock@3.10.0...3.10.1 ### [`v3.10.0`](https://github.com/tox-dev/py-filelock/releases/tag/3.10.0) [Compare Source](https://github.com/tox-dev/py-filelock/compare/3.9.1...3.10.0) #### What's Changed - added multiuser support and associated tests by [@​jahrules](https://github.com/jahrules) in [https://github.com/tox-dev/py-filelock/pull/192](https://github.com/tox-dev/py-filelock/pull/192) #### New Contributors - [@​jahrules](https://github.com/jahrules) made their first contribution in [https://github.com/tox-dev/py-filelock/pull/192](https://github.com/tox-dev/py-filelock/pull/192) **Full Changelog**: tox-dev/filelock@3.9.1...3.10.0 ### [`v3.9.1`](https://github.com/tox-dev/py-filelock/releases/tag/3.9.1) [Compare Source](https://github.com/tox-dev/py-filelock/compare/3.9.0...3.9.1) #### What's Changed - \[pre-commit.ci] pre-commit autoupdate by [@​pre-commit-ci](https://github.com/pre-commit-ci) in [https://github.com/tox-dev/py-filelock/pull/188](https://github.com/tox-dev/py-filelock/pull/188) - Bump deps and tools by [@​gaborbernat](https://github.com/gaborbernat) in [https://github.com/tox-dev/py-filelock/pull/193](https://github.com/tox-dev/py-filelock/pull/193) - Bump deps and tools by [@​gaborbernat](https://github.com/gaborbernat) in [https://github.com/tox-dev/py-filelock/pull/197](https://github.com/tox-dev/py-filelock/pull/197) - Bump pypa/gh-action-pypi-publish from 1.6.4 to 1.7.1 by [@​dependabot](https://github.com/dependabot) in [https://github.com/tox-dev/py-filelock/pull/198](https://github.com/tox-dev/py-filelock/pull/198) - use time.perf_counter instead of time.monotonic by [@​zpz](https://github.com/zpz) in [https://github.com/tox-dev/py-filelock/pull/194](https://github.com/tox-dev/py-filelock/pull/194) #### New Contributors - [@​zpz](https://github.com/zpz) made their first contribution in [https://github.com/tox-dev/py-filelock/pull/194](https://github.com/tox-dev/py-filelock/pull/194) **Full Changelog**: tox-dev/filelock@3.9.0...3.9.1 ### [`v3.9.0`](https://github.com/tox-dev/py-filelock/releases/tag/3.9.0) [Compare Source](https://github.com/tox-dev/py-filelock/compare/3.8.2...3.9.0) #### What's Changed - Move to hatchling build backend by [@​gaborbernat](https://github.com/gaborbernat) in [https://github.com/tox-dev/py-filelock/pull/185](https://github.com/tox-dev/py-filelock/pull/185) **Full Changelog**: tox-dev/filelock@3.8.2...3.9.0 ### [`v3.8.2`](https://github.com/tox-dev/py-filelock/releases/tag/3.8.2) [Compare Source](https://github.com/tox-dev/py-filelock/compare/3.8.1...3.8.2) #### What's Changed - Bump pypa/gh-action-pypi-publish from 1.5.1 to 1.6.1 by [@​dependabot](https://github.com/dependabot) in [https://github.com/tox-dev/py-filelock/pull/178](https://github.com/tox-dev/py-filelock/pull/178) - Update the license classifier to "Unlicense" by [@​jond01](https://github.com/jond01) in [https://github.com/tox-dev/py-filelock/pull/180](https://github.com/tox-dev/py-filelock/pull/180) #### New Contributors - [@​jond01](https://github.com/jond01) made their first contribution in [https://github.com/tox-dev/py-filelock/pull/180](https://github.com/tox-dev/py-filelock/pull/180) **Full Changelog**: tox-dev/filelock@3.8.1...3.8.2 ### [`v3.8.1`](https://github.com/tox-dev/py-filelock/releases/tag/3.8.1) [Compare Source](https://github.com/tox-dev/py-filelock/compare/3.8.0...3.8.1) #### What's Changed - \[pre-commit.ci] pre-commit autoupdate by [@​pre-commit-ci](https://github.com/pre-commit-ci) in [https://github.com/tox-dev/py-filelock/pull/166](https://github.com/tox-dev/py-filelock/pull/166) - link to flufl.lock by [@​dholth](https://github.com/dholth) in [https://github.com/tox-dev/py-filelock/pull/167](https://github.com/tox-dev/py-filelock/pull/167) - \[pre-commit.ci] pre-commit autoupdate by [@​pre-commit-ci](https://github.com/pre-commit-ci) in [https://github.com/tox-dev/py-filelock/pull/168](https://github.com/tox-dev/py-filelock/pull/168) - \[pre-commit.ci] pre-commit autoupdate by [@​pre-commit-ci](https://github.com/pre-commit-ci) in [https://github.com/tox-dev/py-filelock/pull/169](https://github.com/tox-dev/py-filelock/pull/169) - \[pre-commit.ci] pre-commit autoupdate by [@​pre-commit-ci](https://github.com/pre-commit-ci) in [https://github.com/tox-dev/py-filelock/pull/170](https://github.com/tox-dev/py-filelock/pull/170) - fix BaseFileLock.timeout's getter/setter being obscured by itself by [@​dearfl](https://github.com/dearfl) in [https://github.com/tox-dev/py-filelock/pull/172](https://github.com/tox-dev/py-filelock/pull/172) - Fix mypy fails understanding FileLock by [@​gaborbernat](https://github.com/gaborbernat) in [https://github.com/tox-dev/py-filelock/pull/177](https://github.com/tox-dev/py-filelock/pull/177) #### New Contributors - [@​dholth](https://github.com/dholth) made their first contribution in [https://github.com/tox-dev/py-filelock/pull/167](https://github.com/tox-dev/py-filelock/pull/167) - [@​dearfl](https://github.com/dearfl) made their first contribution in [https://github.com/tox-dev/py-filelock/pull/172](https://github.com/tox-dev/py-filelock/pull/172) **Full Changelog**: tox-dev/filelock@3.8.0...3.8.1 ### [`v3.8.0`](https://github.com/tox-dev/py-filelock/releases/tag/3.8.0) [Compare Source](https://github.com/tox-dev/py-filelock/compare/3.7.1...3.8.0) #### What's Changed - \[pre-commit.ci] pre-commit autoupdate by [@​pre-commit-ci](https://github.com/pre-commit-ci) in [https://github.com/tox-dev/py-filelock/pull/149](https://github.com/tox-dev/py-filelock/pull/149) - Bump actions/upload-artifact from 2 to 3 by [@​dependabot](https://github.com/dependabot) in [https://github.com/tox-dev/py-filelock/pull/154](https://github.com/tox-dev/py-filelock/pull/154) - Bump actions/download-artifact from 2 to 3 by [@​dependabot](https://github.com/dependabot) in [https://github.com/tox-dev/py-filelock/pull/152](https://github.com/tox-dev/py-filelock/pull/152) - Bump pre-commit/action from 2.0.3 to 3.0.0 by [@​dependabot](https://github.com/dependabot) in [https://github.com/tox-dev/py-filelock/pull/151](https://github.com/tox-dev/py-filelock/pull/151) - Bump actions/checkout from 2 to 3 by [@​dependabot](https://github.com/dependabot) in [https://github.com/tox-dev/py-filelock/pull/153](https://github.com/tox-dev/py-filelock/pull/153) - Bump actions/setup-python from 2 to 4 by [@​dependabot](https://github.com/dependabot) in [https://github.com/tox-dev/py-filelock/pull/150](https://github.com/tox-dev/py-filelock/pull/150) - Add timeout unit to docstrings by [@​jnordberg](https://github.com/jnordberg) in [https://github.com/tox-dev/py-filelock/pull/148](https://github.com/tox-dev/py-filelock/pull/148) - Unify badges style by [@​DeadNews](https://github.com/DeadNews) in [https://github.com/tox-dev/py-filelock/pull/155](https://github.com/tox-dev/py-filelock/pull/155) - \[pre-commit.ci] pre-commit autoupdate by [@​pre-commit-ci](https://github.com/pre-commit-ci) in [https://github.com/tox-dev/py-filelock/pull/156](https://github.com/tox-dev/py-filelock/pull/156) - \[pre-commit.ci] pre-commit autoupdate by [@​pre-commit-ci](https://github.com/pre-commit-ci) in [https://github.com/tox-dev/py-filelock/pull/157](https://github.com/tox-dev/py-filelock/pull/157) - Check 3.11 support by [@​gaborbernat](https://github.com/gaborbernat) in [https://github.com/tox-dev/py-filelock/pull/158](https://github.com/tox-dev/py-filelock/pull/158) - \[pre-commit.ci] pre-commit autoupdate by [@​pre-commit-ci](https://github.com/pre-commit-ci) in [https://github.com/tox-dev/py-filelock/pull/159](https://github.com/tox-dev/py-filelock/pull/159) - Bump dependencies by [@​gaborbernat](https://github.com/gaborbernat) in [https://github.com/tox-dev/py-filelock/pull/160](https://github.com/tox-dev/py-filelock/pull/160) - \[pre-commit.ci] pre-commit autoupdate by [@​pre-commit-ci](https://github.com/pre-commit-ci) in [https://github.com/tox-dev/py-filelock/pull/162](https://github.com/tox-dev/py-filelock/pull/162) #### New Contributors - [@​dependabot](https://github.com/dependabot) made their first contribution in [https://github.com/tox-dev/py-filelock/pull/154](https://github.com/tox-dev/py-filelock/pull/154) - [@​jnordberg](https://github.com/jnordberg) made their first contribution in [https://github.com/tox-dev/py-filelock/pull/148](https://github.com/tox-dev/py-filelock/pull/148) - [@​DeadNews](https://github.com/DeadNews) made their first contribution in [https://github.com/tox-dev/py-filelock/pull/155](https://github.com/tox-dev/py-filelock/pull/155) **Full Changelog**: tox-dev/filelock@3.7.1...3.8.0 ### [`v3.7.1`](https://github.com/tox-dev/py-filelock/compare/3.7.0...3.7.1) [Compare Source](https://github.com/tox-dev/py-filelock/compare/3.7.0...3.7.1) ### [`v3.7.0`](https://github.com/tox-dev/py-filelock/compare/3.6.0...3.7.0) [Compare Source](https://github.com/tox-dev/py-filelock/compare/3.6.0...3.7.0) ### [`v3.6.0`](https://github.com/tox-dev/py-filelock/compare/3.5.1...3.6.0) [Compare Source](https://github.com/tox-dev/py-filelock/compare/3.5.1...3.6.0) ### [`v3.5.1`](https://github.com/tox-dev/py-filelock/compare/3.5.0...3.5.1) [Compare Source](https://github.com/tox-dev/py-filelock/compare/3.5.0...3.5.1) ### [`v3.5.0`](https://github.com/tox-dev/py-filelock/compare/3.4.2...3.5.0) [Compare Source](https://github.com/tox-dev/py-filelock/compare/3.4.2...3.5.0) ### [`v3.4.2`](https://github.com/tox-dev/py-filelock/releases/tag/3.4.2): Drop Python 3.6 support [Compare Source](https://github.com/tox-dev/py-filelock/compare/3.4.1...3.4.2) ### [`v3.4.1`](https://github.com/tox-dev/py-filelock/releases/tag/3.4.1): Add stacklevel to deprecation warnings for argument name change [Compare Source](https://github.com/tox-dev/py-filelock/compare/3.4.0...3.4.1) ### [`v3.4.0`](https://github.com/tox-dev/py-filelock/compare/3.3.2...3.4.0) [Compare Source](https://github.com/tox-dev/py-filelock/compare/3.3.2...3.4.0) ### [`v3.3.2`](https://github.com/tox-dev/py-filelock/compare/3.3.1...3.3.2) [Compare Source](https://github.com/tox-dev/py-filelock/compare/3.3.1...3.3.2) ### [`v3.3.1`](https://github.com/tox-dev/py-filelock/releases/tag/3.3.1): Keep filelock logger as not set [Compare Source](https://github.com/tox-dev/py-filelock/compare/3.3.0...3.3.1) ### [`v3.3.0`](https://github.com/tox-dev/py-filelock/releases/tag/3.3.0): Drop python 2.7+3.5 support and add type annotations [Compare Source](https://github.com/tox-dev/py-filelock/compare/3.2.1...3.3.0) ### [`v3.2.1`](https://github.com/tox-dev/py-filelock/releases/tag/3.2.1): New documentation and enable logging of our logger on debug level [Compare Source](https://github.com/tox-dev/py-filelock/compare/3.2.0...3.2.1) ### [`v3.2.0`](https://github.com/tox-dev/py-filelock/releases/tag/3.2.0) [Compare Source](https://github.com/tox-dev/py-filelock/compare/3.1.0...3.2.0) 1. [#​96](https://github.com/tox-dev/py-filelock/issues/96) - Raise when trying to acquire in R/O or missing folder 2. [#​95](https://github.com/tox-dev/py-filelock/issues/95) - Move log from info to debug ### [`v3.1.0`](https://github.com/tox-dev/py-filelock/releases/tag/3.1.0): Move from module file to package [Compare Source](https://github.com/tox-dev/py-filelock/compare/v3.0.12...3.1.0) </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/matfax/mutapath). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi41LjMiLCJ1cGRhdGVkSW5WZXIiOiIzNi41LjMiLCJ0YXJnZXRCcmFuY2giOiJtYWluIn0=--> Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
I'm getting a TypeError when py-filelock calls os.chmod(). The problem occurs when using pypy3.9, but not python3.11 I'm running into this in the context of trying to install pre-commit, but the problem appears to be in py-filelock.
https://docs.python.org/3/library/os.html#os.chmod
Although the documentation claims that os.chmod accepts both a path-like object as well as an integer file descriptor, it does not seem to work here. However, in this case we 100% know we have a file descriptor, so directly calling os.fchmod should always work.