Skip to main content

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.

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

If you're not sure about the file name format, learn more about wheel file names.

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

Uploaded Python 2Python 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.

Release history Release notifications | RSS feed

This release

1.1.2 This release

2 files

1.1.1

2 files

1.1.0

2 files

1.0.0

2 files

0.1.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page