Workspace Factory CLI for initializing standard workspace folders in /workspaces/ and generating an introspective WorkspaceManager class in /src/.
Project description
mulch — Workspace Factory CLI
mulch is a lightweight CLI 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
WorkspaceManagerclass, dictated bymulch-scaffold.jsonand protected bymanager.lock. - The hidden
.mulchfolder is leveraged for configuration. - In
--stealthmode, 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
--hereflag enables basic scaffolding for directory-only generation, no code included. - The default workspace folder name is the date, if the
--nameflag is not provided.
Installation
pipx (recommended)
pipx install mulch
Install Mulch as a right-click item in the context menu:
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-scaffold.json file, and edit the directory scaffold before running 'mulch init'.
mulch seed --edit
# Stealth mode, best for shared directories (`--stealth`)
mulch init --stealth
mulch workspace --name bioreactor-1-team-analysis --here
# Standard mode, best for Python developers
mulch init
mulch workspace --name API01toAPI05
# User mode, for everyone (`--here`)
mulch workspace --name SummerPhotos2025 --here
Folder Stucture Options, using mulch init
| 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 init --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.
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mulch-0.2.13.tar.gz.
File metadata
- Download URL: mulch-0.2.13.tar.gz
- Upload date:
- Size: 21.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7315d6f264ef538eacff41cc44f56385f819bde0a47d273fec31a880328a78de
|
|
| MD5 |
a328e70a357064cb2010966c766a200b
|
|
| BLAKE2b-256 |
8ee63f1f9260f48035eb2294570076e67d7e004975f61549f648bf5bb98eae75
|
File details
Details for the file mulch-0.2.13-py3-none-any.whl.
File metadata
- Download URL: mulch-0.2.13-py3-none-any.whl
- Upload date:
- Size: 32.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7a485b879427bf05b394a4e6d34ceec81d1ef2f3ada4213ea62bc94a51f4fec0
|
|
| MD5 |
9a82554e616cb4023e697d645075434a
|
|
| BLAKE2b-256 |
b12c8358137d63f333fdce7fae30c3689c9fff788c63e52091a4c8f10016ca9b
|