@@ -41,8 +41,10 @@ dependencies = [
4141]
4242
4343[project .optional-dependencies ]
44- llfuse = [" llfuse >= 1.3.8" ]
45- pyfuse3 = [" pyfuse3 >= 3.1.1" ]
44+ llfuse = [" llfuse >= 1.3.8" ] # fuse 2, low-level
45+ pyfuse3 = [" pyfuse3 >= 3.1.1" ] # fuse 3, low-level, async
46+ mfusepy = [" mfusepy >= 3.1.0, <4.0.0" ] # fuse 2+3, high-level
47+ mfusepym = [" mfusepy @ git+https://github.com/mxmlnkn/mfusepy.git@master" ]
4648nofuse = []
4749s3 = [" borgstore[s3] ~= 0.3.0" ]
4850sftp = [" borgstore[sftp] ~= 0.3.0" ]
@@ -166,7 +168,7 @@ ignore_missing_imports = true
166168requires = [" tox>=4.19" , " pkgconfig" , " cython" , " wheel" , " setuptools_scm" ]
167169# Important: when adding/removing Python versions here,
168170# also update the section "Test environments with different FUSE implementations" accordingly.
169- env_list = [" py{310,311,312,313,314}-{none,fuse2,fuse3 }" , " docs" , " ruff" , " mypy" , " bandit" ]
171+ env_list = [" py{310,311,312,313,314}-{none,llfuse,pyfuse3,mfusepy }" , " docs" , " ruff" , " mypy" , " bandit" ]
170172
171173[tool .tox .env_run_base ]
172174package = " editable-legacy" # without this it does not find setup_docs when running under fakeroot
@@ -180,54 +182,74 @@ pass_env = ["*"] # needed by tox4, so env vars are visible for building borg
180182# Test environments with different FUSE implementations
181183[tool .tox .env .py310-none ]
182184
183- [tool .tox .env .py310-fuse2 ]
185+ [tool .tox .env .py310-llfuse ]
184186set_env = {BORG_FUSE_IMPL = " llfuse" }
185187extras = [" llfuse" , " sftp" , " s3" ]
186188
187- [tool .tox .env .py310-fuse3 ]
189+ [tool .tox .env .py310-pyfuse3 ]
188190set_env = {BORG_FUSE_IMPL = " pyfuse3" }
189191extras = [" pyfuse3" , " sftp" , " s3" ]
190192
193+ [tool .tox .env .py310-mfusepy ]
194+ set_env = {BORG_FUSE_IMPL = " mfusepy" }
195+ extras = [" mfusepy" , " sftp" , " s3" ]
196+
191197[tool .tox .env .py311-none ]
192198
193- [tool .tox .env .py311-fuse2 ]
199+ [tool .tox .env .py311-llfuse ]
194200set_env = {BORG_FUSE_IMPL = " llfuse" }
195201extras = [" llfuse" , " sftp" , " s3" ]
196202
197- [tool .tox .env .py311-fuse3 ]
203+ [tool .tox .env .py311-pyfuse3 ]
198204set_env = {BORG_FUSE_IMPL = " pyfuse3" }
199205extras = [" pyfuse3" , " sftp" , " s3" ]
200206
207+ [tool .tox .env .py311-mfusepy ]
208+ set_env = {BORG_FUSE_IMPL = " mfusepy" }
209+ extras = [" mfusepy" , " sftp" , " s3" ]
210+
201211[tool .tox .env .py312-none ]
202212
203- [tool .tox .env .py312-fuse2 ]
213+ [tool .tox .env .py312-llfuse ]
204214set_env = {BORG_FUSE_IMPL = " llfuse" }
205215extras = [" llfuse" , " sftp" , " s3" ]
206216
207- [tool .tox .env .py312-fuse3 ]
217+ [tool .tox .env .py312-pyfuse3 ]
208218set_env = {BORG_FUSE_IMPL = " pyfuse3" }
209219extras = [" pyfuse3" , " sftp" , " s3" ]
210220
221+ [tool .tox .env .py312-mfusepy ]
222+ set_env = {BORG_FUSE_IMPL = " mfusepy" }
223+ extras = [" mfusepy" , " sftp" , " s3" ]
224+
211225[tool .tox .env .py313-none ]
212226
213- [tool .tox .env .py313-fuse2 ]
227+ [tool .tox .env .py313-llfuse ]
214228set_env = {BORG_FUSE_IMPL = " llfuse" }
215229extras = [" llfuse" , " sftp" , " s3" ]
216230
217- [tool .tox .env .py313-fuse3 ]
231+ [tool .tox .env .py313-pyfuse3 ]
218232set_env = {BORG_FUSE_IMPL = " pyfuse3" }
219233extras = [" pyfuse3" , " sftp" , " s3" ]
220234
235+ [tool .tox .env .py313-mfusepy ]
236+ set_env = {BORG_FUSE_IMPL = " mfusepy" }
237+ extras = [" mfusepy" , " sftp" , " s3" ]
238+
221239[tool .tox .env .py314-none ]
222240
223- [tool .tox .env .py314-fuse2 ]
241+ [tool .tox .env .py314-llfuse ]
224242set_env = {BORG_FUSE_IMPL = " llfuse" }
225243extras = [" llfuse" , " sftp" , " s3" ]
226244
227- [tool .tox .env .py314-fuse3 ]
245+ [tool .tox .env .py314-pyfuse3 ]
228246set_env = {BORG_FUSE_IMPL = " pyfuse3" }
229247extras = [" pyfuse3" , " sftp" , " s3" ]
230248
249+ [tool .tox .env .py314-mfusepy ]
250+ set_env = {BORG_FUSE_IMPL = " mfusepy" }
251+ extras = [" mfusepy" , " sftp" , " s3" ]
252+
231253[tool .tox .env .ruff ]
232254skip_install = true
233255deps = [" ruff" ]
0 commit comments