Skip to main content

Pythonic Typer CLI for bootstrapping standard and templated workspaces and projects. Generate introspective sourcecode workspace_manager.py Path quarterback. Controlled per-directory scaffolds using the mulch.toml file. Stealth options available for directories shared between dev and non-dev team members.

Project description

mulch — Workspace Factory CLI

mulch is a lightweight CLI bootstrapper and right-click context menu tool. Use mulch to empower your file system. There with multiple use cases for enhanced directory scaffolding, both as an individual and in a shared drive with a team. Developers will enjoy quickly standing up Python projects, and end-users will enjoy right-clicking in the file browser to set up file organization the same way every time, customizable to each directory.


Features

  • Benefit from introspective directory getters and file getters in the WorkspaceManager class, dictated by mulch.toml and protected by manager.lock.
  • The hidden .mulch folder is leveraged for configuration.
  • In --stealth mode, code can be stashed in .mulch, so that workplace directories shared with non-technical co-workers can be crisp while providing space to write localized analysis scripts.
  • Easily installable and runnable via pipx
  • Enforces a separation of source code and workspace files.
  • The --here flag enables basic scaffolding for directory-only generation, no code included.
  • The default workspace folder name is the date, if the --name flag is not provided.
  • The mulch-context CLI command is registered with the system, as per tool.poetry.scripts, mulch-context = "mulch.scripts.install.install_context:app"

Installation

pipx (recommended)

pipx install mulch
mulch-context # or `mulch context`

git clone

git clone https://github.com/city-of-memphis/mulch.git
cd mulch
poetry install
poetry build
pipx install dist/mulch-*-py3-none-any.whl

The git source code includes .reg files which can be leveraged to register right-click commands with your context menu, to enjoy the full power of mulch in your file browser as a user-facing power tool.

Usage

# Set up a new directory, where you anticipate to organizing multiple projects
mkdir equipment-monitoring 
cd equipment-monitoring

# Generated a fresh .mulch\mulch.toml file, and edit the directory scaffold before running 'mulch src'.
mulch seed --edit

# Stealth mode, best for shared directories (`--stealth`)
mulch src --stealth
mulch workspace --name bioreactor-1-team-analysis --here 

# Standard mode, best for Python developers
mulch src 
mulch workspace --name API01toAPI05  

# User mode, for everyone (`--here`)
mulch workspace --name SummerPhotos2025 --here 

# Mimick new folder default naming convention, to invite the user to edit the workspace directory name manually
mulch workspace --pattern new --here # This is the installed context menu behavior, via `mulch-context`

# Use a date as a default new workspace naming convention, for low-friction useful naming. This matches my Obsidian templated date convention. 
# This is the default if the `--pattern` flag is not used explicitly and if an explicit name is not provided with the `--name` flag.
mulch workspace --pattern date --here 
mulch workspace --here # This does the same thing, as of 0.2.19.

Folder Stucture Options, using mulch src

Flag Workspace Location Source Location Goal
(none) workspaces/<name>/ src/<proj>/ Normal development use
--here ./<name>/ (none) Clean, user-facing
--stealth ./<name>/ .mulch/src/<proj>/ Play nice with shared dirs

I am really excited about mulch src --stealth for mixed use directories. Business and engineering users can organize projects in a shared drive like SharePoint, while a dev can run custom analysis scripts catered to each type of project.

mulch context versus mulch-context

These do the same thing. mulch-context is an independant CLI tool to register mulch workspace behavior to the context menu. mulch context is a command in the mulch CLI, which also calls the app() function in install_context.py.

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mulch-0.2.28.tar.gz (42.5 kB view details)

Uploaded Source

Built Distribution

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

mulch-0.2.28-py3-none-any.whl (53.9 kB view details)

Uploaded Python 3

File details

Details for the file mulch-0.2.28.tar.gz.

File metadata

  • Download URL: mulch-0.2.28.tar.gz
  • Upload date:
  • Size: 42.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.13

File hashes

Hashes for mulch-0.2.28.tar.gz
Algorithm Hash digest
SHA256 615112d29f8a9fc6e8b5f8f651d8b4bbfbb2b5b25cb7d65c01fe6fd20b8d5149
MD5 1b981795f95350fb83cc2c9045af6a54
BLAKE2b-256 f372e134006e55905d0ab95059206f4ee729c0e7b61878d98e6830e7d2964ae9

See more details on using hashes here.

File details

Details for the file mulch-0.2.28-py3-none-any.whl.

File metadata

  • Download URL: mulch-0.2.28-py3-none-any.whl
  • Upload date:
  • Size: 53.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.13

File hashes

Hashes for mulch-0.2.28-py3-none-any.whl
Algorithm Hash digest
SHA256 c10b739f8847dd34cfb6820de2df0b4615bae55e8d739c5b104d7293b397baa2
MD5 10cee9ce696f77d04889127528dc00ba
BLAKE2b-256 adcca12b1b7bf89f82efe33f4f4d49d0f71b3ebb8d9cce8798d0d6bc31acedc1

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