Releases: metaboulie/marimo-themes
v0.1.7
What's Changed
Improvements
- refactor(docstring): correct docstring for the git_ignore flag
New theme
-
feat(feature): Add a new theme gruvbox
-
Release/v0.1.6 by @metaboulie in #8
-
github(workflow): testing by @metaboulie in #9
Full Changelog: v0.1.6...v0.1.7
v0.1.6
v0.1.5
Release Note: motheme v0.1.5
New Features
Theme Management Enhancements
-
remove
Command:
Added a newremove
command to streamline theme file management:motheme remove <theme-one-name> <theme-two-name> ...
- Interactive Confirmation Prompt: Confirms deletions before proceeding.
- Non-Existent Theme Detection: Alerts users when attempting to remove missing themes.
- Multiple Theme Removal: Supports deletion of multiple themes in a single command.
- Safe Deletion Checks: Ensures no unintended file deletions.
-
create
Command:
Introduced acreate
command for duplicating existing themes to kickstart customizations:motheme create <ref-theme-name> <new-theme-name>
- Arguments: Accepts a reference theme and a new theme name.
- Validation: Ensures the reference theme exists and avoids overwriting existing themes.
- Theme Duplication: Creates a copy of the reference theme with the specified name.
- Quiet Mode: Optional
--quiet
flag for suppressing non-essential output. - Path Output: Prints the path to the newly created theme for easy reference.
Git-Ignore Integration
- Added
-i/--git-ignore
flag forapply
,clear
, andcurrent
commands, enhancing file operations with:motheme apply -r -i <theme-name> ./
- Git-Tracked File Handling: Uses
git ls-files
to respect.gitignore
rules. - Performance Optimizations: Caches results of
git ls-files
for repeated use. - Error Management: Gracefully handles errors from Git commands.
Improvements
- Updated internal helper functions (
expand_files
) to support git-ignore filtering.
What's Changed
- Release/v0.1.4 by @metaboulie in #4
Full Changelog: v0.1.4...v0.1.5
v0.1.4
What's Changed
Add -q/--quiet
flag to apply
, clear
, and current
commands to suppress output
when running in scripts or automated workflows. Implements quiet mode using a
context manager that redirects stdout to a null stream when enabled.
- Release/v0.1.3 by @metaboulie in #3
Full Changelog: v0.1.3...v0.1.4
Version 0.1.3
New Features
Theme Management
- Added
current
command to display themes applied to notebooks - Supports single file and recursive directory scanning
- Example usage:
motheme current notebook.py motheme current directory/ -r
Performance Improvements
- Implemented LRU caching for theme name extraction
- Added caching to
modify_app_line
function (up to 128 results) - Enhanced error reporting with detailed file name tracking
Code Architecture
App Block Parsing
- Introduced dedicated parser module for marimo.App declarations
- Created AppBlock dataclass with comprehensive parsing utilities
- Added support for single-line and multi-line declarations
- Implemented nested parentheses handling
Refactoring
- Consolidated file path expansion across theme operations
- Centralized App block parsing logic
- Extracted file validation into helper functions
- Unified file path handling and notebook validation
Bug Fixes
- Resolved UnboundLocalError in error handling by ensuring valid filename references
- Fixed tuple unpacking bug in CLI commands
Testing
- Added comprehensive unit tests for AppBlock parser
- Test coverage includes:
- Single and multi-line App declarations
- Nested parentheses scenarios
- Edge cases
- Content update operations
v0.1.2
Full Changelog: motheme...v0.1.2
simple CLI support
Now you can install marimo-themes
( or motheme
) through pip, get up-to-date custom themes and apply themes to your marimo notebooks.
pip install motheme
# Initialize themes
motheme update
# List available themes
motheme themes
# Apply a theme to specific files
motheme apply coldme notebook1.py notebook2.py
# Apply theme recursively
motheme apply -r coldme ./
What's Changed
- add Cli support by @metaboulie in #1
New Contributors
- @metaboulie made their first contribution in #1
Full Changelog: https://github.com/metaboulie/marimo-themes/commits/motheme