include $(TOPDIR)/rules.mk
PKG_NAME:=python-pyfuse3
-PKG_VERSION:=3.4.1
+PKG_VERSION:=3.4.2
PKG_RELEASE:=1
PYPI_NAME:=pyfuse3
-PKG_HASH:=602f9c5f944bcdbd5e7f526c0e7f44af41970abedabc72d94ac16563e1b49209
+PKG_HASH:=0a59031969c4ba51a5ec1b67f3c5c24f641a6a3f8119a86edad56debcb9084d9
PKG_LICENSE:=LGPL-2.0-or-later
PKG_LICENSE_FILES:=LICENSE
PKG_MAINTAINER:=Julien Malik <julien.malik@paraiso.me>
+PKG_BUILD_DEPENDS:=python-cython/host
+
include ../pypi.mk
include $(INCLUDE_DIR)/package.mk
include ../python3-package.mk
DEPENDS:= \
+python3-light \
+python3-asyncio \
+ +python3-urllib \
+python3-logging \
+python3-trio \
+libfuse3
--- /dev/null
+#!/bin/sh
+
+[ "$1" = python3-pyfuse3 ] || exit 0
+
+python3 - << 'EOF'
+import pyfuse3
+
+# Verify key attributes are accessible
+assert hasattr(pyfuse3, "Operations")
+assert hasattr(pyfuse3, "EntryAttributes")
+assert hasattr(pyfuse3, "FUSEError")
+assert hasattr(pyfuse3, "ROOT_INODE")
+assert pyfuse3.ROOT_INODE == 1
+
+# Verify EntryAttributes can be instantiated
+attrs = pyfuse3.EntryAttributes()
+assert attrs is not None
+
+# Verify FUSEError can be raised
+import errno
+try:
+ raise pyfuse3.FUSEError(errno.ENOENT)
+except pyfuse3.FUSEError as e:
+ assert e.errno == errno.ENOENT
+
+from pyfuse3 import Operations, EntryAttributes, FUSEError, FileInfo, StatvfsData
+
+# Verify key constants
+assert isinstance(pyfuse3.ROOT_INODE, int), "ROOT_INODE should be an int"
+
+# Verify exception hierarchy
+assert issubclass(FUSEError, Exception)
+e = FUSEError(2) # ENOENT
+assert e.errno == 2
+
+# Verify EntryAttributes can be instantiated and fields set
+attr = EntryAttributes()
+attr.st_ino = 1
+attr.st_size = 0
+attr.st_mode = 0o755 | 0o040000 # S_IFDIR
+assert attr.st_ino == 1
+
+# Verify a minimal Operations subclass can be defined
+class MinimalFS(Operations):
+ pass
+
+fs = MinimalFS()
+assert isinstance(fs, Operations)
+
+print("python3-pyfuse3 OK")
+EOF