Skip to main content

No project description provided

Project description


Bonsai: A Minimalist Directory Tree CLI Tool & Python Library

Overview

Bonsai is a command-line interface (CLI) tool and Python library designed for working with directory structures in a clear, compact, and visual way. It allows users to generate directory trees, save them as JSON files, load them from JSON, and compute relative paths between directories. The name "Bonsai" reflects the tool's ability to take something complex, like a filesystem, and represent it in an organized and elegant manner.

Features

  • Visualize Directory Trees: Generate and display the structure of directories with optional details like file permissions and file sizes.

  • Export to JSON: Save the directory tree structure as a JSON file for later use or sharing.

  • Load from JSON: Load a directory tree from a JSON file and visualize it.

  • Python API: Compute the relative path between two directories.

  • Relative Paths: Import Bonsai as a Python library for programmatic directory tree manipulation.

Installation

  1. Clone the repository:
git clone https://github.com/abhi-pixel1/bonsai.git
  1. Install the tool using pip:
pip install .

CLI Usage

The Bonsai CLI includes the following commands:

  1. tree

Generates and displays the directory tree for a given directory.

Syntax:

bonsai tree [DIRECTORY_PATH] [OPTIONS]

Arguments:

  • DIRECTORY_PATH: The directory for which the tree should be generated (required).

Options:

  • -p, --show-permissions: Include file permissions in the tree output.

  • -s, --show-size: Include file sizes in the tree output.

Example:

bonsai tree ./my_directory -p -s
  1. save-tree

Saves the directory tree structure of a given directory to a JSON file.

Syntax:

bonsai save-tree [DIRECTORY_PATH] [OUTPUT_FILE]

Arguments:

  • DIRECTORY_PATH: The directory for which the tree should be saved (required).
  • OUTPUT_FILE: The file where the JSON output should be saved. Must have a .json extension.

Example:

bonsai save-tree ./my_directory tree.json
  1. jtree

Loads a directory tree structure from a JSON file and displays it.

Syntax:

bonsai jtree [JSON_FILE] [OPTIONS]

Arguments:

  • JSON_FILE: Path to the JSON file containing the directory tree structure (required).

Options:

  • -p, --show-permissions: Include file permissions in the tree output.
  • -s,--show-size: Include file sizes in the tree output.

Example:

bonsai jtree tree.json -p -s
  1. relative

Calculates and displays the relative path between two directories.

Syntax:

bonsai relative [DESTINATION_PATH] [BASE_PATH]

Arguments:

  • DESTINATION_PATH: The target directory.
  • BASE_PATH: The starting directory.

Example:

bonsai relative ./my_directory ./another_directory

Python API Usage

Bonsai can also be used as a Python library to generate and visualize directory trees programmatically.

Importing Bonsai

from bonsai import generate_directory_tree, visualize_tree

Generating a Directory Tree

from bonsai import generate_directory_tree

tree = generate_directory_tree("./my_directory")
print(tree)

Visualizing a Directory Tree

from bonsai import visualize_tree

print(visualize_tree(tree, show_permissions=True, show_size=True))

Contributers:

Contributors

License

This project is licensed under the MIT License. See the LICENSE file for details.

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

bonzai-0.1.0.tar.gz (6.0 kB view details)

Uploaded Source

Built Distribution

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

bonzai-0.1.0-py3-none-any.whl (7.4 kB view details)

Uploaded Python 3

File details

Details for the file bonzai-0.1.0.tar.gz.

File metadata

  • Download URL: bonzai-0.1.0.tar.gz
  • Upload date:
  • Size: 6.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.0.1 CPython/3.13.1 Windows/11

File hashes

Hashes for bonzai-0.1.0.tar.gz
Algorithm Hash digest
SHA256 8f9aa6e8a5b94daf774fd61763c56f63a23cf4c63f67f4b162ecf85d4d31adfe
MD5 f426aea54b13b3f615b7f24623f1856e
BLAKE2b-256 ad07f65961dc3f609adc0d7f7bd19ffaef581d38e47b834edb5cdda0c553b645

See more details on using hashes here.

File details

Details for the file bonzai-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: bonzai-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 7.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.0.1 CPython/3.13.1 Windows/11

File hashes

Hashes for bonzai-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 66532b22547a0e7cb16d01a75bf307a8b1710a535932588b5e3016343c2ee766
MD5 9cc12e827cace878f2a62e1b410af8fa
BLAKE2b-256 4f4b7783ea3a1dd73480b807ee4fbe81e355ca5dcd8d1c52c4ed46bb6bfbe20b

See more details on using hashes here.

Supported by

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