Skip to main content

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 WorkspaceManager class, dictated by mulch-scaffold.json 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.

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 --name bioreactor-1-team-analysis --stealth 

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

# User mode, for everyone (`--here`)
mulch init --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
--bare workspaces/<name>/ (none) New workspace, no src impact
--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

mulch-0.2.9.tar.gz (19.9 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.9-py3-none-any.whl (27.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: mulch-0.2.9.tar.gz
  • Upload date:
  • Size: 19.9 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.9.tar.gz
Algorithm Hash digest
SHA256 5d954c66c80feb78890eb4d350b9c93f5ecbdbe7b906b7d0455733a3e8687ea1
MD5 9558952054d4561f05548c3544c1a8ab
BLAKE2b-256 b02a6e4ac6f2dc66840d6a74a44d0a3844654ea0937a361d8a87a7b38a11efca

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mulch-0.2.9-py3-none-any.whl
  • Upload date:
  • Size: 27.7 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.9-py3-none-any.whl
Algorithm Hash digest
SHA256 bcf890e13b47e2a7bbe93d743934f8bbc7b8a11c0624a84508beea12d98e3676
MD5 4608ced76a2891f0243e45c8d06c42dc
BLAKE2b-256 4411738992590b0dd2f0c2e7803fc873abd1a21b1e9bbb45c8f663bf322fbc6a

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