Changelog¶
pyfuse 3.5.0 (2026-05-13)¶
Filesystems may now define a
pollmethod to support theepollandselectsystem calls.The
FileHandleTandInodeTtypes are no longer declared as NewTypes but are now simply aliases for int. This should make it easier to write type annotations.Future releases of pyfuse will be signed with signify rather than GPG. The public key to verify the signature of a the next version will always be included in the previous versions, so this version already ships the public key that will be used to sign the next versions,
signify/pyfuse-3.5.pubfor any bugfix releases andsignify/pyfuse-next.pubfor the next minor (or major) release.
pyfuse 3.4.2 (2026-01-06)¶
Removed the
pyfuse3_asynciomodule. This has been renamed topyfuse3.asynciofor quite some time.Fixed a test failure in test_examples.py
Many internal changes, modernizing build process and adding more type annotations.
Release 3.4.1 (2025-12-22)¶
Cythonized with latest Cython 3.2.3.
CI: also test on Python 3.14, on Ubuntu 24.04.
asyncio:
use .run and .get_running_loop, #106.
replace deprecated Future() with create_future; fix lazy trio.Lock init.
use SPDX license identifier, #107
fix LICENSE text: LGPL v2.1, #102
Release 3.4.0 (2024-08-28)¶
Cythonized with latest Cython 3.0.11 to support Python 3.13.
CI: also test python 3.13, run mypy.
Move
_pyfuse3topyfuse3._pyfuse3and add a compatibility wrapper for the old name.Move
pyfuse3_asynciotopyfuse3.asyncioand add a compatibility wrapper for the old name.Add
bytessubclassXAttrNameTas the type of extended attribute names.Various fixes to type annotations.
Add
py.typedmarker to enable external use of type annotations.
Release 3.3.0 (2023-08-06)¶
Note: This is the first pyfuse3 release compatible with Cython 3.0.0 release. Cython 0.29.x is also still supported.
Cythonized with latest Cython 3.0.0.
Drop Python 3.6 and 3.7 support and testing, #71.
CI: also test python 3.12. test on cython 0.29 and cython 3.0.
Tell Cython that callbacks may raise exceptions, #80.
Fix lookup in examples/hello.py, similar to #16.
Misc. CI, testing, build and sphinx related fixes.
Release 3.2.3 (2023-05-09)¶
cythonize with latest Cython 0.29.34 (brings Python 3.12 support)
add a minimal pyproject.toml, require setuptools
tests: fix integer overflow on 32-bit arches, fixes #47
test: Use shutil.which() instead of external which(1) program
setup.py: catch more generic OSError when searching Cython, fixes #63
setup.py: require Cython >= 0.29
fix basedir computation in setup.py (fix pip install -e .)
use sphinx < 6.0 due to compatibility issues with more recent versions
Release 3.2.2 (2022-09-28)¶
remove support for python 3.5 (broken, out of support by python devs)
cythonize with latest Cython 0.29.x (brings Python 3.11 support)
use github actions for CI, remove travis-ci
update README: minimal maintenance, not developed
update setup.py with tested python versions
examples/tmpfs.py: work around strange kernel behaviour (calling SETATTR after UNLINK of a (not open) file): respond with ENOENT instead of crashing.
Release 3.2.1 (2021-09-17)¶
Add type annotations
Passing a XATTR_CREATE or XATTR_REPLACE to
setxattris now working correctly.
Release 3.2.0 (2020-12-30)¶
Fix long-standing rounding error in file date handling when the nanosecond part of file dates were > 999999500.
There is a new
pyfuse3.terminate()function to gracefully end the main loop.
Release 3.1.1 (2020-10-06)¶
No source changes. Regenerated Cython files with Cython 0.29.21 for Python 3.9 compatibility.
Release 3.1.0 (2020-05-31)¶
Made compatible with newest Trio module.
Release 3.0.0 (2020-05-08)¶
Release 2.0.0¶
Release 1.3.1 (2019-07-17)¶
Fixed a bug in the
hello_asyncio.pyexample.
Release 1.3 (2019-06-02)¶
Fixed a bug in the
tmpfs.pyandpassthroughfs.pyexample file systems (so rename operations no longer fail).
Release 1.2 (2018-12-22)¶
Clarified that
invalidate_inodemay block in some circumstances.Added support for using the asyncio module instead of Trio.
Release 1.1 (2018-11-02)¶
Fixed
examples/passthroughfs.py- was not handling readdir() correctly.invalidate_entry_asyncnow accepts an additional ignore_enoent parameter. When this is set, no errors are logged if the kernel is not actually aware of the entry that should have been removed.
Release 1.0 (2018-10-08)¶
Added a new
syncfsfunction.
Release 0.9 (2018-09-27)¶
First release
pyfuse3 was forked from python-llfuse - thanks for all the work!
If you need compatibility with Python 2.x or libfuse 2.x, you may want to take a look at python-llfuse instead.