Skip to main content

TreeFuse creates a FUSE filesystem from a treelib.Tree

Project description

TreeFuse

https://img.shields.io/pypi/v/treefuse.svg Travis (.com) Documentation Status

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.

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

treefuse-1.1.2.tar.gz (23.5 kB view details)

Uploaded Source

Built Distribution

treefuse-1.1.2-py2.py3-none-any.whl (8.9 kB view details)

Uploaded Python 2 Python 3

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

Hashes for treefuse-1.1.2.tar.gz
Algorithm Hash digest
SHA256 92be5082172bab19b9abec962e936071d9e3452bc932bce2827520d53ade4b46
MD5 82e15326ad758c6b0e181f0afc1c125f
BLAKE2b-256 a4f1a234b161cc0487f9865bd00a6bb1ec7bc04da001210baeb29822b2f58d5f

See more details on using hashes here.

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

Hashes for treefuse-1.1.2-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 a8635dd3c4ac4e83ecf8e4a98a8ace45eeb8e54ccceb5924018b8e5d6c718b8f
MD5 ec8d248906caf84748fdd8e6b035eddf
BLAKE2b-256 514c5cc57466481ccf160ebbb3cb6c6d99b98a8288c3d95e7770baa233bc6a62

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page