<div align="center">
# wt - Git Worktree Manager
**The ultimate git worktree manager with a beautiful TUI and modern CLI**
[](https://www.python.org/downloads/)
[](https://pypi.org/project/wt/)
[](https://opensource.org/licenses/MIT)
[](https://github.com/astral-sh/ruff)
[](http://mypy-lang.org/)
[](https://pytest.org/)
[Features](#features) •
[Installation](#installation) •
[Quick Start](#quick-start) •
[CLI Reference](#cli-reference) •
[TUI](#tui) •
[Configuration](#configuration) •
[Contributing](#contributing)
</div>
---
## Overview
`pywt` is a modern, powerful, and user-friendly git worktree manager that simplifies working with multiple git worktrees. Whether you're juggling multiple features, reviewing PRs, or maintaining several branches simultaneously, `pywt` makes it effortless with both a beautiful terminal user interface (TUI) and a comprehensive command-line interface (CLI).
### Why wt?
- **Intuitive TUI**: Navigate and manage worktrees with an interactive, keyboard-driven interface
- **Powerful CLI**: Complete control from the command line with rich output
- **Fast & Reliable**: Built with async operations and comprehensive error handling
- **Type-Safe**: Fully typed with Pydantic models and mypy strict mode
- **Configurable**: Flexible configuration system with sensible defaults
- **Modern Python**: Built with Python 3.12+ and modern best practices
---
## Features
### Core Functionality
- **Create Worktrees**: Easily create new worktrees from existing or new branches
- **List & Filter**: View all worktrees with rich formatting and filtering options
- **Delete & Cleanup**: Remove worktrees with automatic branch cleanup
- **Switch & Navigate**: Quickly switch between worktrees
- **Lock & Unlock**: Protect worktrees from accidental deletion
- **Prune & Repair**: Clean up stale worktrees and repair broken references
### User Experience
- **Interactive TUI**: Beautiful Textual-based interface with keyboard shortcuts
- **Rich CLI Output**: Colorful tables, emoji, and formatted output via Rich
- **Smart Defaults**: Sensible configuration with zero setup required
- **Batch Operations**: Perform operations on multiple worktrees simultaneously
- **Auto-Setup**: Run custom commands after creating worktrees (e.g., `npm install`)
- **Git Integration**: Deep integration with git for maximum reliability
### Developer Features
- **Type Safety**: Full type coverage with Pydantic and mypy
- **Error Handling**: Comprehensive exception system with clear error messages
- **Testing**: High test coverage with pytest and async support
- **Documentation**: Clear docstrings and usage examples
- **Performance**: Parallel operations and intelligent caching
- **Cross-Platform**: Works on Linux, macOS, and Windows
---
## Installation
### Using pip
```bash
pip install pywt
```
### Using pipx (Recommended)
[pipx](https://pipx.pypa.io/) installs the package in an isolated environment:
```bash
pipx install pywt
```
### Using uv (Fastest)
[uv](https://github.com/astral-sh/uv) is the fastest Python package installer:
```bash
uv tool install pywt
```
### From Source
```bash
git clone https://github.com/ajcasagrande/pywt.git
cd pywt
pip install -e ".[dev]"
```
### Verify Installation
```bash
wt --version
# Output: wt version 1.0.0
```
---
## Quick Start
### CLI Quick Start
#### List all worktrees
```bash
# Simple list
wt list
# With detailed information
wt list --verbose
# Filter by branch pattern
wt list --filter "feature/*"
```
#### Create a new worktree
```bash
# Create from existing branch
wt create feature/new-api
# Create with new branch from main
wt create feature/new-ui --new-branch --from main
# Create in specific directory
wt create hotfix/bug-123 --path ../worktrees/hotfix-123
```
#### Delete a worktree
```bash
# Delete with confirmation
wt delete feature/old-feature
# Force delete without confirmation
wt delete feature/old-feature --force
# Keep the branch when deleting
wt delete feature/old-feature --keep-branch
```
#### Switch to a worktree
```bash
# Switch and cd to worktree
wt switch feature/new-api
# Just print the path (for scripting)
wt switch feature/new-api --print-only
```
### TUI Quick Start
Launch the interactive TUI:
```bash
wt tui
```
Or simply:
```bash
wt
```
#### TUI Keyboard Shortcuts
| Key | Action |
|-----|--------|
| `↑` / `↓` | Navigate worktrees |
| `Enter` | Switch to selected worktree |
| `n` | Create new worktree |
| `d` | Delete selected worktree |
| `l` | Toggle lock on worktree |
| `r` | Refresh worktree list |
| `f` | Open filter dialog |
| `/` | Search worktrees |
| `?` | Show help dialog |
| `q` | Quit |

*The beautiful wt TUI in action*
---
## CLI Reference
### Global Options
```bash
wt [OPTIONS] COMMAND [ARGS]...
```
**Options:**
- `--version`: Show version and exit
- `--help`: Show help message and exit
- `--config PATH`: Use custom config file
- `--no-color`: Disable colored output
- `--verbose`: Enable verbose output
- `--quiet`: Suppress non-error output
### Commands
#### `wt list` - List worktrees
List all git worktrees in the repository.
```bash
wt list [OPTIONS]
```
**Options:**
- `--filter PATTERN`: Filter worktrees by branch name pattern
- `--sort-by FIELD`: Sort by field (path, branch, updated)
- `--reverse`: Reverse sort order
- `--format FORMAT`: Output format (table, json, csv)
- `--verbose, -v`: Show detailed information
**Examples:**
```bash
# List all worktrees
wt list
# Show only feature branches
wt list --filter "feature/*"
# Output as JSON
wt list --format json
# Sort by last updated
wt list --sort-by updated
```
#### `wt create` - Create worktree
Create a new git worktree.
```bash
wt create BRANCH [OPTIONS]
```
**Arguments:**
- `BRANCH`: Branch name for the worktree
**Options:**
- `--path PATH`: Custom path for the worktree
- `--new-branch, -b`: Create a new branch
- `--from REF`: Base branch or commit (default: configured base_branch)
- `--track REMOTE`: Track a remote branch
- `--no-setup`: Skip running setup command
- `--force, -f`: Force creation (overwrite existing)
- `--detach`: Create with detached HEAD
**Examples:**
```bash
# Create from existing branch
wt create feature/login
# Create new branch from main
wt create feature/new-feature -b --from main
# Create in specific location
wt create hotfix/bug --path ../worktrees/urgent-fix
# Create and track remote branch
wt create feature/api --track origin/feature/api
```
#### `wt delete` - Delete worktree
Delete an existing git worktree.
```bash
wt delete BRANCH [OPTIONS]
```
**Arguments:**
- `BRANCH`: Branch name or worktree path
**Options:**
- `--force, -f`: Force deletion without confirmation
- `--keep-branch`: Keep the branch after deleting worktree
- `--cleanup`: Also clean up remote-tracking branches
**Examples:**
```bash
# Delete with confirmation
wt delete feature/old-feature
# Force delete without prompt
wt delete feature/old-feature --force
# Delete but keep the branch
wt delete feature/old-feature --keep-branch
```
#### `wt switch` - Switch worktree
Switch to a different worktree (changes directory).
```bash
wt switch BRANCH [OPTIONS]
```
**Arguments:**
- `BRANCH`: Branch name or worktree path
**Options:**
- `--create, -c`: Create worktree if it doesn't exist
- `--print-only, -p`: Only print the path without switching
**Examples:**
```bash
# Switch to worktree
wt switch feature/api
# Print path for scripting (use with cd $(wt switch -p feature/api))
wt switch --print-only feature/api
# Switch and create if needed
wt switch feature/new-feature --create
```
#### `wt lock` - Lock worktree
Lock a worktree to prevent deletion.
```bash
wt lock BRANCH [OPTIONS]
```
**Arguments:**
- `BRANCH`: Branch name or worktree path
**Options:**
- `--reason TEXT`: Reason for locking
**Examples:**
```bash
# Lock a worktree
wt lock feature/important
# Lock with reason
wt lock main --reason "Production branch - do not delete"
```
#### `wt unlock` - Unlock worktree
Unlock a previously locked worktree.
```bash
wt unlock BRANCH
```
**Arguments:**
- `BRANCH`: Branch name or worktree path
**Examples:**
```bash
wt unlock feature/important
```
#### `wt prune` - Prune worktrees
Remove stale worktree references.
```bash
wt prune [OPTIONS]
```
**Options:**
- `--dry-run, -n`: Show what would be pruned without doing it
- `--verbose, -v`: Show detailed information
**Examples:**
```bash
# Preview what will be pruned
wt prune --dry-run
# Actually prune stale worktrees
wt prune
```
#### `wt repair` - Repair worktrees
Repair administrative files in worktrees.
```bash
wt repair [PATH]
```
**Arguments:**
- `PATH`: Path to worktree to repair (default: current directory)
**Examples:**
```bash
# Repair current worktree
wt repair
# Repair specific worktree
wt repair ../worktrees/feature-branch
```
#### `wt info` - Show information
Display detailed information about the current or specified worktree.
```bash
wt info [BRANCH] [OPTIONS]
```
**Arguments:**
- `BRANCH`: Branch name or worktree path (default: current)
**Options:**
- `--format FORMAT`: Output format (text, json, yaml)
**Examples:**
```bash
# Show info for current worktree
wt info
# Show info for specific worktree as JSON
wt info feature/api --format json
```
#### `wt tui` - Launch TUI
Launch the interactive terminal user interface.
```bash
wt tui [OPTIONS]
```
**Options:**
- `--theme THEME`: Color theme (dark, light, auto)
**Examples:**
```bash
# Launch TUI
wt tui
# Launch with light theme
wt tui --theme light
```
---
## TUI
The TUI provides an intuitive, keyboard-driven interface for managing worktrees.
### Features
- **Real-time Updates**: Automatically refreshes worktree status
- **Keyboard Navigation**: Full keyboard control with vim-style keys
- **Visual Indicators**: Color-coded status, emoji, and icons
- **Search & Filter**: Quickly find worktrees with fuzzy search
- **Batch Operations**: Select multiple worktrees for bulk actions
- **Context Help**: Built-in help system with keyboard shortcuts
### Screenshots
#### Main View

*The main TUI view showing all worktrees with status indicators*
#### Create Dialog

*Interactive dialog for creating new worktrees*
#### Filter View

*Filtering worktrees by branch pattern*
---
## Configuration
`wt` uses a hierarchical configuration system with support for global and repository-specific settings.
### Configuration Files
Configuration is loaded from the following locations (in order of precedence):
1. `$REPO_ROOT/.wt.toml` - Repository-specific config
2. `$XDG_CONFIG_HOME/wt/config.toml` - User config (Linux/macOS)
3. `~/.config/wt/config.toml` - User config (fallback)
4. `%APPDATA%/wt/config.toml` - User config (Windows)
### Configuration Format
Configuration uses TOML format:
```toml
# .wt.toml or ~/.config/wt/config.toml
[global]
# Default base branch for new worktrees
base_branch = "main"
# Command to run after creating a worktree
setup_command = "npm install && npm run build"
# Default remote name
remote_name = "origin"
# Maximum concurrent operations
max_concurrent = 4
# Automatically fetch from remote before operations
auto_fetch = true
# Clean up branches when deleting worktrees
cleanup_on_delete = true
# Default directory for new worktrees (relative to repo root)
worktree_dir = "../worktrees"
[ui]
# Enable colored output in CLI
colors = true
# Show emoji in output
show_emoji = true
# Rich table style (rounded, simple, heavy, etc.)
table_style = "rounded"
# Use pager for long output
pager = true
# Use compact display mode
compact = false
[performance]
# Enable caching of git operations
cache_enabled = true
# Cache TTL in seconds (0 = no expiration)
cache_ttl = 300
# Enable parallel git operations
parallel_operations = true
[logging]
# Logging level (DEBUG, INFO, WARNING, ERROR, CRITICAL)
level = "INFO"
# Log file path (null = no file logging)
file = null
# Log format string
format = "%(asctime)s - %(name)s - %(levelname)s - %(message)s"
[git]
# Default prefix for new branches (e.g., 'feature/')
default_branch_prefix = ""
# Path to git commit message template
commit_template = null
# Sign commits with GPG
gpg_sign = false
# Default pull strategy (merge, rebase, ff-only)
pull_strategy = "merge"
```
### Environment Variables
Configuration can also be set via environment variables:
```bash
# Override base branch
export WT_GLOBAL_BASE_BRANCH="develop"
# Disable colors
export WT_UI_COLORS="false"
# Set log level
export WT_LOGGING_LEVEL="DEBUG"
```
Environment variable format: `WT_<SECTION>_<KEY>` (all uppercase)
### Example Configurations
#### Minimal Setup
```toml
[global]
base_branch = "main"
```
#### Frontend Developer
```toml
[global]
base_branch = "develop"
setup_command = "npm ci && npm run build"
worktree_dir = "../wt"
[ui]
show_emoji = true
table_style = "rounded"
```
#### Enterprise Setup
```toml
[global]
base_branch = "main"
remote_name = "origin"
auto_fetch = true
cleanup_on_delete = false
max_concurrent = 8
[git]
gpg_sign = true
pull_strategy = "rebase"
[logging]
level = "INFO"
file = "~/.local/share/wt/wt.log"
[performance]
cache_enabled = true
cache_ttl = 600
parallel_operations = true
```
---
## Development
### Setup Development Environment
1. **Clone the repository**
```bash
git clone https://github.com/yourusername/wt.git
cd wt
```
2. **Create virtual environment**
```bash
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
```
3. **Install development dependencies**
```bash
pip install -e ".[dev]"
```
4. **Install pre-commit hooks**
```bash
pre-commit install
```
### Development Workflow
#### Running Tests
```bash
# Run all tests
pytest
# Run with coverage
pytest --cov=wt --cov-report=html
# Run specific test file
pytest tests/test_repository.py
# Run with verbose output
pytest -v
# Run only unit tests
pytest -m unit
# Run only integration tests
pytest -m integration
```
#### Code Quality
```bash
# Format code with ruff
ruff format .
# Lint code
ruff check .
# Fix auto-fixable issues
ruff check --fix .
# Type check with mypy
mypy src/wt
# Run all checks
ruff check . && ruff format --check . && mypy src/wt
```
#### Building Documentation
```bash
# Build HTML documentation
cd docs
make html
# View documentation
open _build/html/index.html
```
#### Building Package
```bash
# Build source and wheel distributions
python -m build
# Install locally
pip install dist/wt-*.whl
```
### Project Structure
```
wt/
├── src/
│ └── wt/
│ ├── __init__.py # Package initialization
│ ├── cli/ # CLI implementation
│ │ ├── __init__.py
│ │ ├── main.py # Main CLI entry point
│ │ └── commands/ # CLI command modules
│ ├── tui/ # TUI implementation
│ │ ├── __init__.py
│ │ ├── app.py # Main TUI application
│ │ └── widgets/ # Custom TUI widgets
│ ├── core/ # Core functionality
│ │ ├── __init__.py
│ │ ├── models.py # Pydantic models
│ │ ├── exceptions.py # Exception classes
│ │ └── repository.py # Git repository operations
│ └── config/ # Configuration management
│ ├── __init__.py
│ ├── settings.py # Settings models
│ └── loader.py # Config file loader
├── tests/ # Test suite
│ ├── unit/ # Unit tests
│ ├── integration/ # Integration tests
│ └── fixtures/ # Test fixtures
├── docs/ # Documentation
│ ├── images/ # Screenshots and diagrams
│ └── examples/ # Example configurations
├── pyproject.toml # Project metadata and config
├── README.md # This file
└── LICENSE # MIT License
```
### Technologies Used
- **CLI Framework**: [cyclopts](https://github.com/BrianPugh/cyclopts) - Modern CLI framework
- **TUI Framework**: [Textual](https://textual.textualize.io/) - TUI framework for Python
- **Rich Output**: [Rich](https://rich.readthedocs.io/) - Beautiful terminal formatting
- **Data Validation**: [Pydantic](https://docs.pydantic.dev/) - Data validation and settings
- **Testing**: [pytest](https://pytest.org/) - Testing framework
- **Linting**: [Ruff](https://github.com/astral-sh/ruff) - Fast Python linter
- **Type Checking**: [mypy](http://mypy-lang.org/) - Static type checker
---
## Contributing
Contributions are welcome! Please follow these guidelines:
### How to Contribute
1. **Fork the repository**
Click the "Fork" button on GitHub.
2. **Clone your fork**
```bash
git clone https://github.com/yourusername/wt.git
cd wt
```
3. **Create a feature branch**
```bash
git checkout -b feature/amazing-feature
```
4. **Make your changes**
- Write code following the project style
- Add tests for new functionality
- Update documentation as needed
5. **Run tests and checks**
```bash
# Run tests
pytest
# Run linting
ruff check .
# Run type checking
mypy src/wt
# Run formatting
ruff format .
```
6. **Commit your changes**
```bash
git add .
git commit -m "feat: add amazing feature"
```
Follow [Conventional Commits](https://www.conventionalcommits.org/) format:
- `feat:` - New feature
- `fix:` - Bug fix
- `docs:` - Documentation changes
- `test:` - Test changes
- `refactor:` - Code refactoring
- `style:` - Code style changes
- `chore:` - Maintenance tasks
7. **Push to your fork**
```bash
git push origin feature/amazing-feature
```
8. **Open a Pull Request**
Go to the original repository and click "New Pull Request".
### Code Style
- Follow [PEP 8](https://pep8.org/) style guide
- Use type hints for all functions and methods
- Write docstrings for all public APIs (Google style)
- Keep functions small and focused
- Maintain high test coverage (>90%)
### Testing Guidelines
- Write unit tests for all new code
- Include integration tests for complex features
- Use meaningful test names that describe what is being tested
- Mock external dependencies in unit tests
- Ensure all tests pass before submitting PR
### Documentation
- Update README.md for user-facing changes
- Add docstrings to all public functions and classes
- Include examples in docstrings
- Update CLI help text for command changes
### Getting Help
- Open an [issue](https://github.com/yourusername/wt/issues) for bug reports
- Use [discussions](https://github.com/yourusername/wt/discussions) for questions
- Check existing issues before creating new ones
- Provide minimal reproducible examples for bugs
---
## Roadmap
### Version 1.x
- [x] Core worktree management (create, delete, list)
- [x] Beautiful TUI with Textual
- [x] Rich CLI output
- [x] Configuration system
- [x] Comprehensive test suite
- [ ] Shell completions (bash, zsh, fish)
- [ ] Git hooks integration
- [ ] Worktree templates
### Version 2.x
- [ ] Remote worktree support
- [ ] Worktree groups and tagging
- [ ] Advanced filtering and search
- [ ] Worktree snapshots and backup
- [ ] Integration with popular tools (VS Code, JetBrains)
- [ ] Performance optimizations
- [ ] Plugin system
---
## FAQ
### Why use worktrees instead of branches?
Git worktrees allow you to have multiple branches checked out simultaneously in different directories. This is useful for:
- Working on multiple features in parallel
- Reviewing PRs without stashing changes
- Running different versions side-by-side
- Comparing code across branches
### Can I use wt with existing worktrees?
Yes! `wt` detects and manages all worktrees in your repository, whether created with `wt` or `git worktree`.
### Does wt modify my git configuration?
No, `wt` uses standard git commands and doesn't modify your git configuration. All worktrees are created using `git worktree` under the hood.
### What's the difference between CLI and TUI?
- **CLI**: Command-line interface for scripting and automation
- **TUI**: Interactive terminal UI for visual management
Both provide the same functionality, choose based on your preference.
### How do I uninstall wt?
```bash
pip uninstall wt
# or
pipx uninstall wt
# or
uv tool uninstall wt
```
### Where are configuration files stored?
- Linux/macOS: `~/.config/wt/config.toml`
- Windows: `%APPDATA%/wt/config.toml`
- Repository-specific: `$REPO_ROOT/.wt.toml`
---
## License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
```
MIT License
Copyright (c) 2024 Anthony
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
```
---
## Acknowledgments
- Built with [Textual](https://textual.textualize.io/) by [Textualize](https://www.textualize.io/)
- CLI powered by [cyclopts](https://github.com/BrianPugh/cyclopts)
- Beautiful output via [Rich](https://rich.readthedocs.io/)
- Inspired by the git worktree workflow
---
## Support
If you find `wt` useful, please:
- Star the repository on GitHub
- Share it with other developers
- Report bugs and request features
- Contribute code or documentation
---
## Links
- **Homepage**: https://github.com/yourusername/wt
- **Documentation**: https://wt.readthedocs.io
- **PyPI**: https://pypi.org/project/wt/
- **Issues**: https://github.com/yourusername/wt/issues
- **Discussions**: https://github.com/yourusername/wt/discussions
---
<div align="center">
**Made with ❤️ by developers, for developers**
</div>
Raw data
{
"_id": null,
"home_page": null,
"name": "python-wt",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.12",
"maintainer_email": null,
"keywords": "cli, developer-tools, git, tui, worktree",
"author": "Anthony Casagrande",
"author_email": null,
"download_url": "https://files.pythonhosted.org/packages/f7/5f/19699a22ef3685a5c9a0aab5480c21c29c52ba6d172e29d963a7269c7ccb/python_wt-0.1.0.tar.gz",
"platform": null,
"description": "<div align=\"center\">\n\n# wt - Git Worktree Manager\n\n**The ultimate git worktree manager with a beautiful TUI and modern CLI**\n\n[](https://www.python.org/downloads/)\n[](https://pypi.org/project/wt/)\n[](https://opensource.org/licenses/MIT)\n[](https://github.com/astral-sh/ruff)\n[](http://mypy-lang.org/)\n[](https://pytest.org/)\n\n[Features](#features) \u2022\n[Installation](#installation) \u2022\n[Quick Start](#quick-start) \u2022\n[CLI Reference](#cli-reference) \u2022\n[TUI](#tui) \u2022\n[Configuration](#configuration) \u2022\n[Contributing](#contributing)\n\n</div>\n\n---\n\n## Overview\n\n`pywt` is a modern, powerful, and user-friendly git worktree manager that simplifies working with multiple git worktrees. Whether you're juggling multiple features, reviewing PRs, or maintaining several branches simultaneously, `pywt` makes it effortless with both a beautiful terminal user interface (TUI) and a comprehensive command-line interface (CLI).\n\n### Why wt?\n\n- **Intuitive TUI**: Navigate and manage worktrees with an interactive, keyboard-driven interface\n- **Powerful CLI**: Complete control from the command line with rich output\n- **Fast & Reliable**: Built with async operations and comprehensive error handling\n- **Type-Safe**: Fully typed with Pydantic models and mypy strict mode\n- **Configurable**: Flexible configuration system with sensible defaults\n- **Modern Python**: Built with Python 3.12+ and modern best practices\n\n---\n\n## Features\n\n### Core Functionality\n\n- **Create Worktrees**: Easily create new worktrees from existing or new branches\n- **List & Filter**: View all worktrees with rich formatting and filtering options\n- **Delete & Cleanup**: Remove worktrees with automatic branch cleanup\n- **Switch & Navigate**: Quickly switch between worktrees\n- **Lock & Unlock**: Protect worktrees from accidental deletion\n- **Prune & Repair**: Clean up stale worktrees and repair broken references\n\n### User Experience\n\n- **Interactive TUI**: Beautiful Textual-based interface with keyboard shortcuts\n- **Rich CLI Output**: Colorful tables, emoji, and formatted output via Rich\n- **Smart Defaults**: Sensible configuration with zero setup required\n- **Batch Operations**: Perform operations on multiple worktrees simultaneously\n- **Auto-Setup**: Run custom commands after creating worktrees (e.g., `npm install`)\n- **Git Integration**: Deep integration with git for maximum reliability\n\n### Developer Features\n\n- **Type Safety**: Full type coverage with Pydantic and mypy\n- **Error Handling**: Comprehensive exception system with clear error messages\n- **Testing**: High test coverage with pytest and async support\n- **Documentation**: Clear docstrings and usage examples\n- **Performance**: Parallel operations and intelligent caching\n- **Cross-Platform**: Works on Linux, macOS, and Windows\n\n---\n\n## Installation\n\n### Using pip\n\n```bash\npip install pywt\n```\n\n### Using pipx (Recommended)\n\n[pipx](https://pipx.pypa.io/) installs the package in an isolated environment:\n\n```bash\npipx install pywt\n```\n\n### Using uv (Fastest)\n\n[uv](https://github.com/astral-sh/uv) is the fastest Python package installer:\n\n```bash\nuv tool install pywt\n```\n\n### From Source\n\n```bash\ngit clone https://github.com/ajcasagrande/pywt.git\ncd pywt\npip install -e \".[dev]\"\n```\n\n### Verify Installation\n\n```bash\nwt --version\n# Output: wt version 1.0.0\n```\n\n---\n\n## Quick Start\n\n### CLI Quick Start\n\n#### List all worktrees\n\n```bash\n# Simple list\nwt list\n\n# With detailed information\nwt list --verbose\n\n# Filter by branch pattern\nwt list --filter \"feature/*\"\n```\n\n#### Create a new worktree\n\n```bash\n# Create from existing branch\nwt create feature/new-api\n\n# Create with new branch from main\nwt create feature/new-ui --new-branch --from main\n\n# Create in specific directory\nwt create hotfix/bug-123 --path ../worktrees/hotfix-123\n```\n\n#### Delete a worktree\n\n```bash\n# Delete with confirmation\nwt delete feature/old-feature\n\n# Force delete without confirmation\nwt delete feature/old-feature --force\n\n# Keep the branch when deleting\nwt delete feature/old-feature --keep-branch\n```\n\n#### Switch to a worktree\n\n```bash\n# Switch and cd to worktree\nwt switch feature/new-api\n\n# Just print the path (for scripting)\nwt switch feature/new-api --print-only\n```\n\n### TUI Quick Start\n\nLaunch the interactive TUI:\n\n```bash\nwt tui\n```\n\nOr simply:\n\n```bash\nwt\n```\n\n#### TUI Keyboard Shortcuts\n\n| Key | Action |\n|-----|--------|\n| `\u2191` / `\u2193` | Navigate worktrees |\n| `Enter` | Switch to selected worktree |\n| `n` | Create new worktree |\n| `d` | Delete selected worktree |\n| `l` | Toggle lock on worktree |\n| `r` | Refresh worktree list |\n| `f` | Open filter dialog |\n| `/` | Search worktrees |\n| `?` | Show help dialog |\n| `q` | Quit |\n\n\n*The beautiful wt TUI in action*\n\n---\n\n## CLI Reference\n\n### Global Options\n\n```bash\nwt [OPTIONS] COMMAND [ARGS]...\n```\n\n**Options:**\n- `--version`: Show version and exit\n- `--help`: Show help message and exit\n- `--config PATH`: Use custom config file\n- `--no-color`: Disable colored output\n- `--verbose`: Enable verbose output\n- `--quiet`: Suppress non-error output\n\n### Commands\n\n#### `wt list` - List worktrees\n\nList all git worktrees in the repository.\n\n```bash\nwt list [OPTIONS]\n```\n\n**Options:**\n- `--filter PATTERN`: Filter worktrees by branch name pattern\n- `--sort-by FIELD`: Sort by field (path, branch, updated)\n- `--reverse`: Reverse sort order\n- `--format FORMAT`: Output format (table, json, csv)\n- `--verbose, -v`: Show detailed information\n\n**Examples:**\n\n```bash\n# List all worktrees\nwt list\n\n# Show only feature branches\nwt list --filter \"feature/*\"\n\n# Output as JSON\nwt list --format json\n\n# Sort by last updated\nwt list --sort-by updated\n```\n\n#### `wt create` - Create worktree\n\nCreate a new git worktree.\n\n```bash\nwt create BRANCH [OPTIONS]\n```\n\n**Arguments:**\n- `BRANCH`: Branch name for the worktree\n\n**Options:**\n- `--path PATH`: Custom path for the worktree\n- `--new-branch, -b`: Create a new branch\n- `--from REF`: Base branch or commit (default: configured base_branch)\n- `--track REMOTE`: Track a remote branch\n- `--no-setup`: Skip running setup command\n- `--force, -f`: Force creation (overwrite existing)\n- `--detach`: Create with detached HEAD\n\n**Examples:**\n\n```bash\n# Create from existing branch\nwt create feature/login\n\n# Create new branch from main\nwt create feature/new-feature -b --from main\n\n# Create in specific location\nwt create hotfix/bug --path ../worktrees/urgent-fix\n\n# Create and track remote branch\nwt create feature/api --track origin/feature/api\n```\n\n#### `wt delete` - Delete worktree\n\nDelete an existing git worktree.\n\n```bash\nwt delete BRANCH [OPTIONS]\n```\n\n**Arguments:**\n- `BRANCH`: Branch name or worktree path\n\n**Options:**\n- `--force, -f`: Force deletion without confirmation\n- `--keep-branch`: Keep the branch after deleting worktree\n- `--cleanup`: Also clean up remote-tracking branches\n\n**Examples:**\n\n```bash\n# Delete with confirmation\nwt delete feature/old-feature\n\n# Force delete without prompt\nwt delete feature/old-feature --force\n\n# Delete but keep the branch\nwt delete feature/old-feature --keep-branch\n```\n\n#### `wt switch` - Switch worktree\n\nSwitch to a different worktree (changes directory).\n\n```bash\nwt switch BRANCH [OPTIONS]\n```\n\n**Arguments:**\n- `BRANCH`: Branch name or worktree path\n\n**Options:**\n- `--create, -c`: Create worktree if it doesn't exist\n- `--print-only, -p`: Only print the path without switching\n\n**Examples:**\n\n```bash\n# Switch to worktree\nwt switch feature/api\n\n# Print path for scripting (use with cd $(wt switch -p feature/api))\nwt switch --print-only feature/api\n\n# Switch and create if needed\nwt switch feature/new-feature --create\n```\n\n#### `wt lock` - Lock worktree\n\nLock a worktree to prevent deletion.\n\n```bash\nwt lock BRANCH [OPTIONS]\n```\n\n**Arguments:**\n- `BRANCH`: Branch name or worktree path\n\n**Options:**\n- `--reason TEXT`: Reason for locking\n\n**Examples:**\n\n```bash\n# Lock a worktree\nwt lock feature/important\n\n# Lock with reason\nwt lock main --reason \"Production branch - do not delete\"\n```\n\n#### `wt unlock` - Unlock worktree\n\nUnlock a previously locked worktree.\n\n```bash\nwt unlock BRANCH\n```\n\n**Arguments:**\n- `BRANCH`: Branch name or worktree path\n\n**Examples:**\n\n```bash\nwt unlock feature/important\n```\n\n#### `wt prune` - Prune worktrees\n\nRemove stale worktree references.\n\n```bash\nwt prune [OPTIONS]\n```\n\n**Options:**\n- `--dry-run, -n`: Show what would be pruned without doing it\n- `--verbose, -v`: Show detailed information\n\n**Examples:**\n\n```bash\n# Preview what will be pruned\nwt prune --dry-run\n\n# Actually prune stale worktrees\nwt prune\n```\n\n#### `wt repair` - Repair worktrees\n\nRepair administrative files in worktrees.\n\n```bash\nwt repair [PATH]\n```\n\n**Arguments:**\n- `PATH`: Path to worktree to repair (default: current directory)\n\n**Examples:**\n\n```bash\n# Repair current worktree\nwt repair\n\n# Repair specific worktree\nwt repair ../worktrees/feature-branch\n```\n\n#### `wt info` - Show information\n\nDisplay detailed information about the current or specified worktree.\n\n```bash\nwt info [BRANCH] [OPTIONS]\n```\n\n**Arguments:**\n- `BRANCH`: Branch name or worktree path (default: current)\n\n**Options:**\n- `--format FORMAT`: Output format (text, json, yaml)\n\n**Examples:**\n\n```bash\n# Show info for current worktree\nwt info\n\n# Show info for specific worktree as JSON\nwt info feature/api --format json\n```\n\n#### `wt tui` - Launch TUI\n\nLaunch the interactive terminal user interface.\n\n```bash\nwt tui [OPTIONS]\n```\n\n**Options:**\n- `--theme THEME`: Color theme (dark, light, auto)\n\n**Examples:**\n\n```bash\n# Launch TUI\nwt tui\n\n# Launch with light theme\nwt tui --theme light\n```\n\n---\n\n## TUI\n\nThe TUI provides an intuitive, keyboard-driven interface for managing worktrees.\n\n### Features\n\n- **Real-time Updates**: Automatically refreshes worktree status\n- **Keyboard Navigation**: Full keyboard control with vim-style keys\n- **Visual Indicators**: Color-coded status, emoji, and icons\n- **Search & Filter**: Quickly find worktrees with fuzzy search\n- **Batch Operations**: Select multiple worktrees for bulk actions\n- **Context Help**: Built-in help system with keyboard shortcuts\n\n### Screenshots\n\n#### Main View\n\n\n*The main TUI view showing all worktrees with status indicators*\n\n#### Create Dialog\n\n\n*Interactive dialog for creating new worktrees*\n\n#### Filter View\n\n\n*Filtering worktrees by branch pattern*\n\n---\n\n## Configuration\n\n`wt` uses a hierarchical configuration system with support for global and repository-specific settings.\n\n### Configuration Files\n\nConfiguration is loaded from the following locations (in order of precedence):\n\n1. `$REPO_ROOT/.wt.toml` - Repository-specific config\n2. `$XDG_CONFIG_HOME/wt/config.toml` - User config (Linux/macOS)\n3. `~/.config/wt/config.toml` - User config (fallback)\n4. `%APPDATA%/wt/config.toml` - User config (Windows)\n\n### Configuration Format\n\nConfiguration uses TOML format:\n\n```toml\n# .wt.toml or ~/.config/wt/config.toml\n\n[global]\n# Default base branch for new worktrees\nbase_branch = \"main\"\n\n# Command to run after creating a worktree\nsetup_command = \"npm install && npm run build\"\n\n# Default remote name\nremote_name = \"origin\"\n\n# Maximum concurrent operations\nmax_concurrent = 4\n\n# Automatically fetch from remote before operations\nauto_fetch = true\n\n# Clean up branches when deleting worktrees\ncleanup_on_delete = true\n\n# Default directory for new worktrees (relative to repo root)\nworktree_dir = \"../worktrees\"\n\n[ui]\n# Enable colored output in CLI\ncolors = true\n\n# Show emoji in output\nshow_emoji = true\n\n# Rich table style (rounded, simple, heavy, etc.)\ntable_style = \"rounded\"\n\n# Use pager for long output\npager = true\n\n# Use compact display mode\ncompact = false\n\n[performance]\n# Enable caching of git operations\ncache_enabled = true\n\n# Cache TTL in seconds (0 = no expiration)\ncache_ttl = 300\n\n# Enable parallel git operations\nparallel_operations = true\n\n[logging]\n# Logging level (DEBUG, INFO, WARNING, ERROR, CRITICAL)\nlevel = \"INFO\"\n\n# Log file path (null = no file logging)\nfile = null\n\n# Log format string\nformat = \"%(asctime)s - %(name)s - %(levelname)s - %(message)s\"\n\n[git]\n# Default prefix for new branches (e.g., 'feature/')\ndefault_branch_prefix = \"\"\n\n# Path to git commit message template\ncommit_template = null\n\n# Sign commits with GPG\ngpg_sign = false\n\n# Default pull strategy (merge, rebase, ff-only)\npull_strategy = \"merge\"\n```\n\n### Environment Variables\n\nConfiguration can also be set via environment variables:\n\n```bash\n# Override base branch\nexport WT_GLOBAL_BASE_BRANCH=\"develop\"\n\n# Disable colors\nexport WT_UI_COLORS=\"false\"\n\n# Set log level\nexport WT_LOGGING_LEVEL=\"DEBUG\"\n```\n\nEnvironment variable format: `WT_<SECTION>_<KEY>` (all uppercase)\n\n### Example Configurations\n\n#### Minimal Setup\n\n```toml\n[global]\nbase_branch = \"main\"\n```\n\n#### Frontend Developer\n\n```toml\n[global]\nbase_branch = \"develop\"\nsetup_command = \"npm ci && npm run build\"\nworktree_dir = \"../wt\"\n\n[ui]\nshow_emoji = true\ntable_style = \"rounded\"\n```\n\n#### Enterprise Setup\n\n```toml\n[global]\nbase_branch = \"main\"\nremote_name = \"origin\"\nauto_fetch = true\ncleanup_on_delete = false\nmax_concurrent = 8\n\n[git]\ngpg_sign = true\npull_strategy = \"rebase\"\n\n[logging]\nlevel = \"INFO\"\nfile = \"~/.local/share/wt/wt.log\"\n\n[performance]\ncache_enabled = true\ncache_ttl = 600\nparallel_operations = true\n```\n\n---\n\n## Development\n\n### Setup Development Environment\n\n1. **Clone the repository**\n\n ```bash\n git clone https://github.com/yourusername/wt.git\n cd wt\n ```\n\n2. **Create virtual environment**\n\n ```bash\n python -m venv .venv\n source .venv/bin/activate # On Windows: .venv\\Scripts\\activate\n ```\n\n3. **Install development dependencies**\n\n ```bash\n pip install -e \".[dev]\"\n ```\n\n4. **Install pre-commit hooks**\n\n ```bash\n pre-commit install\n ```\n\n### Development Workflow\n\n#### Running Tests\n\n```bash\n# Run all tests\npytest\n\n# Run with coverage\npytest --cov=wt --cov-report=html\n\n# Run specific test file\npytest tests/test_repository.py\n\n# Run with verbose output\npytest -v\n\n# Run only unit tests\npytest -m unit\n\n# Run only integration tests\npytest -m integration\n```\n\n#### Code Quality\n\n```bash\n# Format code with ruff\nruff format .\n\n# Lint code\nruff check .\n\n# Fix auto-fixable issues\nruff check --fix .\n\n# Type check with mypy\nmypy src/wt\n\n# Run all checks\nruff check . && ruff format --check . && mypy src/wt\n```\n\n#### Building Documentation\n\n```bash\n# Build HTML documentation\ncd docs\nmake html\n\n# View documentation\nopen _build/html/index.html\n```\n\n#### Building Package\n\n```bash\n# Build source and wheel distributions\npython -m build\n\n# Install locally\npip install dist/wt-*.whl\n```\n\n### Project Structure\n\n```\nwt/\n\u251c\u2500\u2500 src/\n\u2502 \u2514\u2500\u2500 wt/\n\u2502 \u251c\u2500\u2500 __init__.py # Package initialization\n\u2502 \u251c\u2500\u2500 cli/ # CLI implementation\n\u2502 \u2502 \u251c\u2500\u2500 __init__.py\n\u2502 \u2502 \u251c\u2500\u2500 main.py # Main CLI entry point\n\u2502 \u2502 \u2514\u2500\u2500 commands/ # CLI command modules\n\u2502 \u251c\u2500\u2500 tui/ # TUI implementation\n\u2502 \u2502 \u251c\u2500\u2500 __init__.py\n\u2502 \u2502 \u251c\u2500\u2500 app.py # Main TUI application\n\u2502 \u2502 \u2514\u2500\u2500 widgets/ # Custom TUI widgets\n\u2502 \u251c\u2500\u2500 core/ # Core functionality\n\u2502 \u2502 \u251c\u2500\u2500 __init__.py\n\u2502 \u2502 \u251c\u2500\u2500 models.py # Pydantic models\n\u2502 \u2502 \u251c\u2500\u2500 exceptions.py # Exception classes\n\u2502 \u2502 \u2514\u2500\u2500 repository.py # Git repository operations\n\u2502 \u2514\u2500\u2500 config/ # Configuration management\n\u2502 \u251c\u2500\u2500 __init__.py\n\u2502 \u251c\u2500\u2500 settings.py # Settings models\n\u2502 \u2514\u2500\u2500 loader.py # Config file loader\n\u251c\u2500\u2500 tests/ # Test suite\n\u2502 \u251c\u2500\u2500 unit/ # Unit tests\n\u2502 \u251c\u2500\u2500 integration/ # Integration tests\n\u2502 \u2514\u2500\u2500 fixtures/ # Test fixtures\n\u251c\u2500\u2500 docs/ # Documentation\n\u2502 \u251c\u2500\u2500 images/ # Screenshots and diagrams\n\u2502 \u2514\u2500\u2500 examples/ # Example configurations\n\u251c\u2500\u2500 pyproject.toml # Project metadata and config\n\u251c\u2500\u2500 README.md # This file\n\u2514\u2500\u2500 LICENSE # MIT License\n```\n\n### Technologies Used\n\n- **CLI Framework**: [cyclopts](https://github.com/BrianPugh/cyclopts) - Modern CLI framework\n- **TUI Framework**: [Textual](https://textual.textualize.io/) - TUI framework for Python\n- **Rich Output**: [Rich](https://rich.readthedocs.io/) - Beautiful terminal formatting\n- **Data Validation**: [Pydantic](https://docs.pydantic.dev/) - Data validation and settings\n- **Testing**: [pytest](https://pytest.org/) - Testing framework\n- **Linting**: [Ruff](https://github.com/astral-sh/ruff) - Fast Python linter\n- **Type Checking**: [mypy](http://mypy-lang.org/) - Static type checker\n\n---\n\n## Contributing\n\nContributions are welcome! Please follow these guidelines:\n\n### How to Contribute\n\n1. **Fork the repository**\n\n Click the \"Fork\" button on GitHub.\n\n2. **Clone your fork**\n\n ```bash\n git clone https://github.com/yourusername/wt.git\n cd wt\n ```\n\n3. **Create a feature branch**\n\n ```bash\n git checkout -b feature/amazing-feature\n ```\n\n4. **Make your changes**\n\n - Write code following the project style\n - Add tests for new functionality\n - Update documentation as needed\n\n5. **Run tests and checks**\n\n ```bash\n # Run tests\n pytest\n\n # Run linting\n ruff check .\n\n # Run type checking\n mypy src/wt\n\n # Run formatting\n ruff format .\n ```\n\n6. **Commit your changes**\n\n ```bash\n git add .\n git commit -m \"feat: add amazing feature\"\n ```\n\n Follow [Conventional Commits](https://www.conventionalcommits.org/) format:\n - `feat:` - New feature\n - `fix:` - Bug fix\n - `docs:` - Documentation changes\n - `test:` - Test changes\n - `refactor:` - Code refactoring\n - `style:` - Code style changes\n - `chore:` - Maintenance tasks\n\n7. **Push to your fork**\n\n ```bash\n git push origin feature/amazing-feature\n ```\n\n8. **Open a Pull Request**\n\n Go to the original repository and click \"New Pull Request\".\n\n### Code Style\n\n- Follow [PEP 8](https://pep8.org/) style guide\n- Use type hints for all functions and methods\n- Write docstrings for all public APIs (Google style)\n- Keep functions small and focused\n- Maintain high test coverage (>90%)\n\n### Testing Guidelines\n\n- Write unit tests for all new code\n- Include integration tests for complex features\n- Use meaningful test names that describe what is being tested\n- Mock external dependencies in unit tests\n- Ensure all tests pass before submitting PR\n\n### Documentation\n\n- Update README.md for user-facing changes\n- Add docstrings to all public functions and classes\n- Include examples in docstrings\n- Update CLI help text for command changes\n\n### Getting Help\n\n- Open an [issue](https://github.com/yourusername/wt/issues) for bug reports\n- Use [discussions](https://github.com/yourusername/wt/discussions) for questions\n- Check existing issues before creating new ones\n- Provide minimal reproducible examples for bugs\n\n---\n\n## Roadmap\n\n### Version 1.x\n\n- [x] Core worktree management (create, delete, list)\n- [x] Beautiful TUI with Textual\n- [x] Rich CLI output\n- [x] Configuration system\n- [x] Comprehensive test suite\n- [ ] Shell completions (bash, zsh, fish)\n- [ ] Git hooks integration\n- [ ] Worktree templates\n\n### Version 2.x\n\n- [ ] Remote worktree support\n- [ ] Worktree groups and tagging\n- [ ] Advanced filtering and search\n- [ ] Worktree snapshots and backup\n- [ ] Integration with popular tools (VS Code, JetBrains)\n- [ ] Performance optimizations\n- [ ] Plugin system\n\n---\n\n## FAQ\n\n### Why use worktrees instead of branches?\n\nGit worktrees allow you to have multiple branches checked out simultaneously in different directories. This is useful for:\n- Working on multiple features in parallel\n- Reviewing PRs without stashing changes\n- Running different versions side-by-side\n- Comparing code across branches\n\n### Can I use wt with existing worktrees?\n\nYes! `wt` detects and manages all worktrees in your repository, whether created with `wt` or `git worktree`.\n\n### Does wt modify my git configuration?\n\nNo, `wt` uses standard git commands and doesn't modify your git configuration. All worktrees are created using `git worktree` under the hood.\n\n### What's the difference between CLI and TUI?\n\n- **CLI**: Command-line interface for scripting and automation\n- **TUI**: Interactive terminal UI for visual management\n\nBoth provide the same functionality, choose based on your preference.\n\n### How do I uninstall wt?\n\n```bash\npip uninstall wt\n# or\npipx uninstall wt\n# or\nuv tool uninstall wt\n```\n\n### Where are configuration files stored?\n\n- Linux/macOS: `~/.config/wt/config.toml`\n- Windows: `%APPDATA%/wt/config.toml`\n- Repository-specific: `$REPO_ROOT/.wt.toml`\n\n---\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n```\nMIT License\n\nCopyright (c) 2024 Anthony\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n```\n\n---\n\n## Acknowledgments\n\n- Built with [Textual](https://textual.textualize.io/) by [Textualize](https://www.textualize.io/)\n- CLI powered by [cyclopts](https://github.com/BrianPugh/cyclopts)\n- Beautiful output via [Rich](https://rich.readthedocs.io/)\n- Inspired by the git worktree workflow\n\n---\n\n## Support\n\nIf you find `wt` useful, please:\n\n- Star the repository on GitHub\n- Share it with other developers\n- Report bugs and request features\n- Contribute code or documentation\n\n---\n\n## Links\n\n- **Homepage**: https://github.com/yourusername/wt\n- **Documentation**: https://wt.readthedocs.io\n- **PyPI**: https://pypi.org/project/wt/\n- **Issues**: https://github.com/yourusername/wt/issues\n- **Discussions**: https://github.com/yourusername/wt/discussions\n\n---\n\n<div align=\"center\">\n\n**Made with \u2764\ufe0f by developers, for developers**\n\n</div>\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "The ultimate git worktree manager with beautiful TUI and modern CLI",
"version": "0.1.0",
"project_urls": {
"Documentation": "https://pywt.readthedocs.io",
"Homepage": "https://github.com/ajcasagrande/pywt",
"Issues": "https://github.com/ajcasagrande/pywt/issues",
"Repository": "https://github.com/ajcasagrande/pywt"
},
"split_keywords": [
"cli",
" developer-tools",
" git",
" tui",
" worktree"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "aea01e31f8342b98523ec4e071aa85908dcd4e10fe4ee7c008ded480ec798e5a",
"md5": "fd81c0a54b4fddb4578ea38dd5c0b952",
"sha256": "74065bf75e6bb549544ab462a119f731757f967480bdd18994f7977f193e21f2"
},
"downloads": -1,
"filename": "python_wt-0.1.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "fd81c0a54b4fddb4578ea38dd5c0b952",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.12",
"size": 46845,
"upload_time": "2025-10-14T00:37:12",
"upload_time_iso_8601": "2025-10-14T00:37:12.221193Z",
"url": "https://files.pythonhosted.org/packages/ae/a0/1e31f8342b98523ec4e071aa85908dcd4e10fe4ee7c008ded480ec798e5a/python_wt-0.1.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "f75f19699a22ef3685a5c9a0aab5480c21c29c52ba6d172e29d963a7269c7ccb",
"md5": "74b6616b52978dfb3e112eb89c0025ac",
"sha256": "b8f67305be9225e9f6e24634ba8a7ea72cebcb8b708a094cc71f12da25b7a570"
},
"downloads": -1,
"filename": "python_wt-0.1.0.tar.gz",
"has_sig": false,
"md5_digest": "74b6616b52978dfb3e112eb89c0025ac",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.12",
"size": 41221,
"upload_time": "2025-10-14T00:37:53",
"upload_time_iso_8601": "2025-10-14T00:37:53.967237Z",
"url": "https://files.pythonhosted.org/packages/f7/5f/19699a22ef3685a5c9a0aab5480c21c29c52ba6d172e29d963a7269c7ccb/python_wt-0.1.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-10-14 00:37:53",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "ajcasagrande",
"github_project": "pywt",
"github_not_found": true,
"lcname": "python-wt"
}