TreeFuse creates a FUSE filesystem from a treelib.Tree
Project description
TreeFuse
TreeFuse is a library for building FUSE filesystem CLIs from treelib Tree objects.
It wraps python-fuse to provide a CLI entrypoint (treefuse_main) which takes a tree parameter and uses that to construct a directory tree and generate file content within the FUSE filesystem.
Free software: GNU General Public License v3
Documentation: https://treefuse.readthedocs.io.
Example Program
Executing this program:
import treelib from treefuse import treefuse_main tree = treelib.Tree() root = tree.create_node("root") dir1 = tree.create_node("dir1", parent=root) tree.create_node("dirchild", parent=dir1, data=b"dirchild content\n") tree.create_node("rootchild", parent=root, data=b"rootchild content\n") treefuse_main(tree)
With a target directory (e.g. python3 example.py mnt) will mount a filesystem matching the given tree:
$ tree mnt mnt ├── dir1 │ └── dirchild └── rootchild 1 directory, 2 files $ cat mnt/rootchild rootchild content $ cat mnt/dir1/dirchild dirchild content
See Examples for more examples.
Roadmap
Abstract the interface so that sources other than treelib can be implemented
Provide a mechanism for library consumers to populate filesystem contents asynchronously
Credits
This package was created with Cookiecutter and the audreyr/cookiecutter-pypackage project template.
This library was written during a hack week at my employer, DigitalOcean.
History
1.1.2 (2021-07-30)
Fix up one missed 3.6 reference.
1.1.1 (2021-07-30)
Make drop of support for Python 3.6 official.
1.1.0 (2021-07-30)
Substantial refactor to introduce the internal infrastructure for non-treelib TreeFuseProvider classes.
1.0.0 (2021-07-28)
Add documentation.
Implement support for providing non-default stat values for nodes (via treefuse.TreeFuseStat).
Replace temporary ENOENT error returns with more appropriate codes.
Fix default usage string.
0.1.0 (2021-07-27)
First release on PyPI.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file treefuse-1.1.2.tar.gz
.
File metadata
- Download URL: treefuse-1.1.2.tar.gz
- Upload date:
- Size: 23.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.14.0 pkginfo/1.7.1 requests/2.26.0 setuptools/44.0.0 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.8.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 92be5082172bab19b9abec962e936071d9e3452bc932bce2827520d53ade4b46 |
|
MD5 | 82e15326ad758c6b0e181f0afc1c125f |
|
BLAKE2b-256 | a4f1a234b161cc0487f9865bd00a6bb1ec7bc04da001210baeb29822b2f58d5f |
File details
Details for the file treefuse-1.1.2-py2.py3-none-any.whl
.
File metadata
- Download URL: treefuse-1.1.2-py2.py3-none-any.whl
- Upload date:
- Size: 8.9 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.14.0 pkginfo/1.7.1 requests/2.26.0 setuptools/44.0.0 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.8.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a8635dd3c4ac4e83ecf8e4a98a8ace45eeb8e54ccceb5924018b8e5d6c718b8f |
|
MD5 | ec8d248906caf84748fdd8e6b035eddf |
|
BLAKE2b-256 | 514c5cc57466481ccf160ebbb3cb6c6d99b98a8288c3d95e7770baa233bc6a62 |