Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 601a1a2

Browse files
Merge pull request #105 from ThomasWaldmann/misc-updates
release 1.5.2
2 parents 490e21b + 55ade6c commit 601a1a2

File tree

11 files changed

+38
-17
lines changed

11 files changed

+38
-17
lines changed

.github/workflows/test.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,13 @@ jobs:
1111
strategy:
1212
fail-fast: false
1313
matrix:
14-
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12", "3.13", "3.14-dev"]
14+
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12", "3.13", "3.14"]
1515
cython-version: ["0.29", "3"]
1616
os: [ubuntu-24.04]
1717
exclude:
1818
- python-version: "3.13"
1919
cython-version: "0.29"
20-
- python-version: "3.14-dev"
20+
- python-version: "3.14"
2121
cython-version: "0.29"
2222

2323
steps:

Changes.rst

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,21 @@
66

77
**WARNING**: Python-LLFUSE is no longer actively developed.
88

9+
Release 1.5.2 (2025-12-22)
10+
==========================
11+
12+
- Support and test on Python 3.14 also.
13+
- CI: test on Ubuntu 24.04
14+
- Cythonized using Cython 3.2.3.
15+
- setup.py:
16+
17+
- use SPDX license metadata (the old style was deprecated),
18+
also require setuptools >= 78.1.1, #104
19+
- remove tests_require (not supported anymore)
20+
- get rid of sphinx build warnings, #56
21+
- README: link to mfusepy project
22+
23+
924
Release 1.5.1 (2024-08-31)
1025
==========================
1126

README.rst

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ The Python-LLFUSE Module
1414
Python-LLFUSE is no longer actively developed and just receiving
1515
community-contributed maintenance to keep it alive for some time.
1616

17+
A good alternative for some use cases might be `mfusepy <https://github.com/mxmlnkn/mfusepy>`_.
18+
1719
Python-LLFUSE is a set of Python bindings for the low level FUSE_
1820
API. It requires at least FUSE 2.8.0 and supports both Python 2.x and
1921
3.x. Like FUSE itself, Python-LLFUSE is developed for Linux systems,

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
[build-system]
2-
requires = ["setuptools"]
2+
requires = ["setuptools >= 78.1.1"]
33
build-backend = "setuptools.build_meta"

rst/conf.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,14 +52,14 @@
5252

5353
# General information about the project.
5454
project = 'Python-LLFUSE'
55-
copyright = '2010-2024, Nikolaus Rath'
55+
copyright = '2010-2025, Nikolaus Rath'
5656

5757
# The version info for the project you're documenting, acts as replacement for
5858
# |version| and |release|, also used in various other places throughout the
5959
# built documents.
6060
#
6161
# The short X.Y version.
62-
version = '1.5.1'
62+
version = '1.5.2'
6363
# The full version, including alpha/beta/rc tags.
6464
release = version + ''
6565

setup.cfg

Whitespace-only changes.

setup.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@
4747
warnings.simplefilter('default')
4848

4949

50-
LLFUSE_VERSION = '1.5.1'
50+
LLFUSE_VERSION = '1.5.2'
5151

5252
def main():
5353

@@ -105,7 +105,8 @@ def main():
105105
author='Nikolaus Rath',
106106
author_email='[email protected]',
107107
url='https://github.com/python-llfuse/python-llfuse/',
108-
license='LGPL',
108+
license='LGPL-2.0-or-later',
109+
license_files=['LICENSE'],
109110
classifiers=['Development Status :: 4 - Beta',
110111
'Intended Audience :: Developers',
111112
'Programming Language :: Python',
@@ -119,7 +120,6 @@ def main():
119120
'Programming Language :: Python :: 3.14',
120121
'Topic :: Software Development :: Libraries :: Python Modules',
121122
'Topic :: System :: Filesystems',
122-
'License :: OSI Approved :: GNU Library or Lesser General Public License (LGPL)',
123123
'Operating System :: POSIX :: Linux',
124124
'Operating System :: MacOS :: MacOS X',
125125
'Operating System :: POSIX :: BSD :: FreeBSD'],
@@ -128,7 +128,6 @@ def main():
128128
package_dir={'': 'src'},
129129
packages=setuptools.find_packages('src'),
130130
python_requires='>=3.8',
131-
tests_require=['pytest >= 3.4.0'],
132131
provides=['llfuse'],
133132
ext_modules=[Extension('llfuse', c_sources,
134133
extra_compile_args=compile_args,

src/darwin_compat.c

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,11 @@
1010
#include <errno.h>
1111
#include <sys/types.h>
1212

13+
static void _unlock_mutex(void *mutex)
14+
{
15+
pthread_mutex_unlock((pthread_mutex_t *)mutex);
16+
}
17+
1318
/*
1419
* Semaphore implementation based on:
1520
*
@@ -152,7 +157,7 @@ darwin_sem_timedwait(darwin_sem_t *sem, const struct timespec *abs_timeout)
152157
return -1;
153158
}
154159

155-
pthread_cleanup_push((void(*)(void*))&pthread_mutex_unlock,
160+
pthread_cleanup_push(&_unlock_mutex,
156161
&sem->__data.local.count_lock);
157162

158163
pthread_mutex_lock(&sem->__data.local.count_lock);
@@ -213,7 +218,7 @@ darwin_sem_wait(darwin_sem_t *sem)
213218
/* Must be volatile or will be clobbered by longjmp */
214219
volatile int res = 0;
215220

216-
pthread_cleanup_push((void(*)(void*))&pthread_mutex_unlock,
221+
pthread_cleanup_push(&_unlock_mutex,
217222
&sem->__data.local.count_lock);
218223

219224
pthread_mutex_lock(&sem->__data.local.count_lock);

src/fuse_api.pxi

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -272,7 +272,7 @@ def main(workers=None, handle_signals=True):
272272
and the function to return. *SIGINT* (Ctrl-C) will thus *not* result in
273273
a `KeyboardInterrupt` exception while this function is runnning.
274274
Note setting *handle_signals* to `False` means you must handle the signals
275-
by yourself and call `stop` to make the `main` returns.
275+
by yourself and call ``stop`` to make the `main` returns.
276276
277277
When the function returns because the file system has received an unmount
278278
request it will return `None`. If it returns because it has received a

src/misc.pxi

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -199,16 +199,16 @@ cdef class Lock:
199199
def yield_(self, count=1):
200200
'''Yield global lock to a different thread
201201
202-
A call to `~Lock.yield_` is roughly similar to::
202+
A call to ``~Lock.yield_`` is roughly similar to::
203203
204204
for i in range(count):
205205
if no_threads_waiting_for(lock):
206206
break
207207
lock.release()
208208
lock.acquire()
209209
210-
However, when using `~Lock.yield_` it is guaranteed that the lock will
211-
actually be passed to a different thread (the above pseude-code may
210+
However, when using ``~Lock.yield_`` it is guaranteed that the lock will
211+
actually be passed to a different thread (the above pseudocode may
212212
result in the same thread re-acquiring the lock *count* times).
213213
'''
214214

0 commit comments

Comments
 (0)