tasktree-manager 2.1.0__tar.gz → 2.3.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {tasktree_manager-2.1.0 → tasktree_manager-2.3.0}/CHANGELOG.md +15 -0
- {tasktree_manager-2.1.0 → tasktree_manager-2.3.0}/PKG-INFO +1 -1
- {tasktree_manager-2.1.0 → tasktree_manager-2.3.0}/README.md +16 -22
- {tasktree_manager-2.1.0 → tasktree_manager-2.3.0}/docs/configuration.md +43 -6
- {tasktree_manager-2.1.0 → tasktree_manager-2.3.0}/docs/user-guide.md +43 -6
- {tasktree_manager-2.1.0 → tasktree_manager-2.3.0}/pyproject.toml +1 -1
- tasktree_manager-2.3.0/tasktree_manager/_version.py +24 -0
- {tasktree_manager-2.1.0 → tasktree_manager-2.3.0}/tasktree_manager/app.py +395 -229
- {tasktree_manager-2.1.0 → tasktree_manager-2.3.0}/tasktree_manager/services/claude_hooks.py +14 -1
- {tasktree_manager-2.1.0 → tasktree_manager-2.3.0}/tasktree_manager/services/config.py +41 -43
- {tasktree_manager-2.1.0 → tasktree_manager-2.3.0}/tasktree_manager/services/git_ops.py +131 -70
- {tasktree_manager-2.1.0 → tasktree_manager-2.3.0}/tasktree_manager/services/models.py +10 -1
- {tasktree_manager-2.1.0 → tasktree_manager-2.3.0}/tasktree_manager/services/task_manager.py +34 -14
- {tasktree_manager-2.1.0 → tasktree_manager-2.3.0}/tasktree_manager/widgets/create_modal.py +29 -7
- {tasktree_manager-2.1.0 → tasktree_manager-2.3.0}/tasktree_manager/widgets/status_panel.py +23 -20
- {tasktree_manager-2.1.0 → tasktree_manager-2.3.0}/tasktree_manager/widgets/task_list.py +9 -3
- {tasktree_manager-2.1.0 → tasktree_manager-2.3.0}/tests/test_app.py +64 -1
- {tasktree_manager-2.1.0 → tasktree_manager-2.3.0}/tests/test_git_ops.py +142 -0
- tasktree_manager-2.1.0/tasktree_manager/_version.py +0 -34
- {tasktree_manager-2.1.0 → tasktree_manager-2.3.0}/.claude/skills/textual-tui/SKILL.md +0 -0
- {tasktree_manager-2.1.0 → tasktree_manager-2.3.0}/.claude/skills/textual-tui/assets/README.md +0 -0
- {tasktree_manager-2.1.0 → tasktree_manager-2.3.0}/.claude/skills/textual-tui/assets/dashboard_app.py +0 -0
- {tasktree_manager-2.1.0 → tasktree_manager-2.3.0}/.claude/skills/textual-tui/assets/data_viewer.py +0 -0
- {tasktree_manager-2.1.0 → tasktree_manager-2.3.0}/.claude/skills/textual-tui/assets/todo_app.py +0 -0
- {tasktree_manager-2.1.0 → tasktree_manager-2.3.0}/.claude/skills/textual-tui/assets/worker_demo.py +0 -0
- {tasktree_manager-2.1.0 → tasktree_manager-2.3.0}/.claude/skills/textual-tui/references/layouts.md +0 -0
- {tasktree_manager-2.1.0 → tasktree_manager-2.3.0}/.claude/skills/textual-tui/references/official-guides-index.md +0 -0
- {tasktree_manager-2.1.0 → tasktree_manager-2.3.0}/.claude/skills/textual-tui/references/styling.md +0 -0
- {tasktree_manager-2.1.0 → tasktree_manager-2.3.0}/.claude/skills/textual-tui/references/widgets.md +0 -0
- {tasktree_manager-2.1.0 → tasktree_manager-2.3.0}/.github/templates/CHANGELOG.md.j2 +0 -0
- {tasktree_manager-2.1.0 → tasktree_manager-2.3.0}/.github/workflows/ci.yml +0 -0
- {tasktree_manager-2.1.0 → tasktree_manager-2.3.0}/.github/workflows/release.yml +0 -0
- {tasktree_manager-2.1.0 → tasktree_manager-2.3.0}/.gitignore +0 -0
- {tasktree_manager-2.1.0 → tasktree_manager-2.3.0}/CONTRIBUTING.md +0 -0
- {tasktree_manager-2.1.0 → tasktree_manager-2.3.0}/LICENSE +0 -0
- {tasktree_manager-2.1.0 → tasktree_manager-2.3.0}/OPENSPEC.md +0 -0
- {tasktree_manager-2.1.0 → tasktree_manager-2.3.0}/ROADMAP.md +0 -0
- {tasktree_manager-2.1.0 → tasktree_manager-2.3.0}/docs/claude-code-integration-spec.md +0 -0
- {tasktree_manager-2.1.0 → tasktree_manager-2.3.0}/docs/installation.md +0 -0
- {tasktree_manager-2.1.0 → tasktree_manager-2.3.0}/docs/troubleshooting.md +0 -0
- {tasktree_manager-2.1.0 → tasktree_manager-2.3.0}/mise.toml +0 -0
- {tasktree_manager-2.1.0 → tasktree_manager-2.3.0}/scripts/bump_version.py +0 -0
- {tasktree_manager-2.1.0 → tasktree_manager-2.3.0}/tasktree_manager/__init__.py +0 -0
- {tasktree_manager-2.1.0 → tasktree_manager-2.3.0}/tasktree_manager/services/__init__.py +0 -0
- {tasktree_manager-2.1.0 → tasktree_manager-2.3.0}/tasktree_manager/widgets/__init__.py +0 -0
- {tasktree_manager-2.1.0 → tasktree_manager-2.3.0}/tasktree_manager/widgets/messages_panel.py +0 -0
- {tasktree_manager-2.1.0 → tasktree_manager-2.3.0}/tasktree_manager/widgets/setup_modal.py +0 -0
- {tasktree_manager-2.1.0 → tasktree_manager-2.3.0}/tasktree_manager/widgets/worktree_list.py +0 -0
- {tasktree_manager-2.1.0 → tasktree_manager-2.3.0}/tests/__init__.py +0 -0
- {tasktree_manager-2.1.0 → tasktree_manager-2.3.0}/tests/conftest.py +0 -0
- {tasktree_manager-2.1.0 → tasktree_manager-2.3.0}/tests/test_config.py +0 -0
- {tasktree_manager-2.1.0 → tasktree_manager-2.3.0}/tests/test_integration_git.py +0 -0
- {tasktree_manager-2.1.0 → tasktree_manager-2.3.0}/tests/test_memory.py +0 -0
- {tasktree_manager-2.1.0 → tasktree_manager-2.3.0}/tests/test_messages_panel.py +0 -0
- {tasktree_manager-2.1.0 → tasktree_manager-2.3.0}/tests/test_modals.py +0 -0
- {tasktree_manager-2.1.0 → tasktree_manager-2.3.0}/tests/test_setup_modal.py +0 -0
- {tasktree_manager-2.1.0 → tasktree_manager-2.3.0}/tests/test_status_panel.py +0 -0
- {tasktree_manager-2.1.0 → tasktree_manager-2.3.0}/tests/test_task_manager.py +0 -0
|
@@ -15,6 +15,21 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
15
15
|
- Git hooks support
|
|
16
16
|
- Custom task metadata
|
|
17
17
|
|
|
18
|
+
## [2.3.0] - 2026-06-10
|
|
19
|
+
|
|
20
|
+
### Added
|
|
21
|
+
- Add task cloning, worktree deletion, and non-blocking git ops (#4)
|
|
22
|
+
|
|
23
|
+
### Fixed
|
|
24
|
+
- Honor git timeout, real status codes, non-blocking delete (#5)
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
## [2.2.0] - 2026-03-06
|
|
28
|
+
|
|
29
|
+
### Added
|
|
30
|
+
- Add periodic auto-refresh for git status with selection preserv… (#3)
|
|
31
|
+
|
|
32
|
+
|
|
18
33
|
## [2.1.0] - 2026-02-10
|
|
19
34
|
|
|
20
35
|
### Added
|
|
@@ -19,26 +19,18 @@
|
|
|
19
19
|
- 🚀 **Fast & Responsive** - Parallel git operations with loading indicators
|
|
20
20
|
- 🔧 **Flexible Configuration** - TOML config file, custom keybindings, environment variables
|
|
21
21
|
|
|
22
|
-
##
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
│ Sync: ↑2 ↓1 │
|
|
35
|
-
│ │
|
|
36
|
-
│ M src/main.py │
|
|
37
|
-
│ ?? README.md │
|
|
38
|
-
│ M tests/test_app.py │
|
|
39
|
-
└──────────────────────────────────────────────────────────────────────────┘
|
|
40
|
-
n New task d Delete g Lazygit p Push r Refresh ? Help q Quit
|
|
41
|
-
```
|
|
22
|
+
## 📊 Status Indicators
|
|
23
|
+
|
|
24
|
+
| Indicator | Meaning |
|
|
25
|
+
|-----------|---------|
|
|
26
|
+
| `●` red | Uncommitted changes |
|
|
27
|
+
| `◆` blue | Has CLAUDE.md file |
|
|
28
|
+
| `⟳` magenta | Claude Code session running |
|
|
29
|
+
| `!` yellow | Claude Code session waiting for input |
|
|
30
|
+
| `✓` green | Clean worktree / Claude session ended |
|
|
31
|
+
| `✗ N` red | N files changed |
|
|
32
|
+
| `↑N` green | N commits ahead of remote |
|
|
33
|
+
| `↓N` yellow | N commits behind remote |
|
|
42
34
|
|
|
43
35
|
## 🚀 Quick Start
|
|
44
36
|
|
|
@@ -85,9 +77,11 @@ For detailed workflows and examples, see the [User Guide](docs/user-guide.md).
|
|
|
85
77
|
| `n` | New task | `g` | Open lazygit |
|
|
86
78
|
| `a` | Add repo | `e` | Open editor |
|
|
87
79
|
| `d` | Delete task | `o` | Open folder |
|
|
88
|
-
| `p` | Push all | `
|
|
80
|
+
| `p` | Push all | `P` | Pull all |
|
|
81
|
+
| `c` | Claude (resume) | `C` | Claude (new) |
|
|
89
82
|
| `r` | Refresh | `s` | Sort tasks |
|
|
90
|
-
| `S` | Group worktrees | `
|
|
83
|
+
| `S` | Group worktrees | `m` | Messages |
|
|
84
|
+
| `Enter` | Open shell | `Tab` | Next panel |
|
|
91
85
|
| `?` | Show help | `q` | Quit |
|
|
92
86
|
|
|
93
87
|
**Themes:** Press `Ctrl+P` to switch between 7 built-in themes (textual-dark, nord, gruvbox, tokyo-night, monokai, dracula, textual-light).
|
|
@@ -93,6 +93,11 @@ theme = "textual-dark"
|
|
|
93
93
|
# Default: false
|
|
94
94
|
show_hidden_files = false
|
|
95
95
|
|
|
96
|
+
# Auto-refresh interval in seconds (0 = disabled)
|
|
97
|
+
# Periodically refreshes git status in the background
|
|
98
|
+
# Default: 30
|
|
99
|
+
refresh_interval = 30
|
|
100
|
+
|
|
96
101
|
# ============================================================================
|
|
97
102
|
# Git Settings
|
|
98
103
|
# ============================================================================
|
|
@@ -160,6 +165,13 @@ push_all = "p" # Push all worktrees in current task
|
|
|
160
165
|
pull_all = "P" # Pull all worktrees in current task (shift+p)
|
|
161
166
|
refresh = "r" # Refresh git status
|
|
162
167
|
|
|
168
|
+
# Claude Code integration
|
|
169
|
+
open_claude_resume = "c" # Open Claude CLI (resume if a session exists, else new)
|
|
170
|
+
open_claude_gui_code = "C" # Open Claude desktop on Code page in task folder (shift+c)
|
|
171
|
+
|
|
172
|
+
# Messages panel
|
|
173
|
+
toggle_messages = "m" # Show/hide the activity messages panel
|
|
174
|
+
|
|
163
175
|
# Navigation
|
|
164
176
|
focus_next = "tab" # Switch to next panel
|
|
165
177
|
focus_previous = "shift+tab" # Switch to previous panel
|
|
@@ -224,10 +236,11 @@ tasks_dir = "/Volumes/FastSSD/worktrees"
|
|
|
224
236
|
|
|
225
237
|
## UI Settings
|
|
226
238
|
|
|
227
|
-
| Option | Type | Default | Environment Variable | Description
|
|
228
|
-
|
|
229
|
-
| `theme` | string | `textual-dark` | `TASKTREE_THEME` | Color theme for the interface
|
|
230
|
-
| `show_hidden_files` | boolean | `false` | - | Show hidden files in listings
|
|
239
|
+
| Option | Type | Default | Environment Variable | Description |
|
|
240
|
+
|--------------------|---------|-----------------|-----------------------|------------------------------------------|
|
|
241
|
+
| `theme` | string | `textual-dark` | `TASKTREE_THEME` | Color theme for the interface |
|
|
242
|
+
| `show_hidden_files` | boolean | `false` | - | Show hidden files in listings |
|
|
243
|
+
| `refresh_interval` | integer | `30` | - | Auto-refresh interval in seconds (0 = disabled) |
|
|
231
244
|
|
|
232
245
|
### `theme`
|
|
233
246
|
|
|
@@ -245,6 +258,20 @@ Available themes (press `Ctrl+P` in app to switch):
|
|
|
245
258
|
|
|
246
259
|
Currently unused (reserved for future file browser features).
|
|
247
260
|
|
|
261
|
+
### `refresh_interval`
|
|
262
|
+
|
|
263
|
+
Automatically refreshes git status for all tasks and worktrees in the background:
|
|
264
|
+
|
|
265
|
+
- Default: `30` (every 30 seconds)
|
|
266
|
+
- Set to `0` to disable auto-refresh
|
|
267
|
+
- Runs in a background thread — does not block the UI
|
|
268
|
+
- Preserves current task and worktree selection during refresh
|
|
269
|
+
|
|
270
|
+
```toml
|
|
271
|
+
[ui]
|
|
272
|
+
refresh_interval = 15 # Refresh every 15 seconds
|
|
273
|
+
```
|
|
274
|
+
|
|
248
275
|
## Git Settings
|
|
249
276
|
|
|
250
277
|
| Option | Type | Default | Environment Variable | Description |
|
|
@@ -267,7 +294,8 @@ Currently unused (reserved for future file browser features).
|
|
|
267
294
|
- Most users should use manual push (`p` key) for control
|
|
268
295
|
|
|
269
296
|
**`timeout`:**
|
|
270
|
-
- Timeout for git commands (
|
|
297
|
+
- Timeout for git commands that touch the network (fetch, push, pull) and worktree creation
|
|
298
|
+
- Local status queries use a fixed short timeout (5s) and are not affected
|
|
271
299
|
- Increase for slow networks or large repositories
|
|
272
300
|
- Set to `60` or higher for very large repos
|
|
273
301
|
|
|
@@ -390,7 +418,7 @@ blocklist = ["*"]
|
|
|
390
418
|
|
|
391
419
|
## Keybindings Reference
|
|
392
420
|
|
|
393
|
-
All
|
|
421
|
+
All 22 customizable keybindings with descriptions:
|
|
394
422
|
|
|
395
423
|
### Application Control
|
|
396
424
|
|
|
@@ -404,6 +432,7 @@ All 18 customizable keybindings with descriptions:
|
|
|
404
432
|
| Action | Default | Description | Customization Example |
|
|
405
433
|
|---------------|---------|----------------------------------------|----------------------------|
|
|
406
434
|
| `new_task` | `n` | Create a new task | `new_task = "ctrl+n"` |
|
|
435
|
+
| `clone_task` | `y` | Clone current task (same repos, new name) | `clone_task = "ctrl+y"` |
|
|
407
436
|
| `add_repo` | `a` | Add repository to current task | `add_repo = "ctrl+a"` |
|
|
408
437
|
| `delete_task` | `d` | Delete/finish current task | `delete_task = "delete"` |
|
|
409
438
|
|
|
@@ -419,6 +448,14 @@ All 18 customizable keybindings with descriptions:
|
|
|
419
448
|
| `pull_all` | `P` | Pull all worktrees in current task | `pull_all = "ctrl+shift+p"` |
|
|
420
449
|
| `refresh` | `r` | Refresh git status for all worktrees | `refresh = "F5"` |
|
|
421
450
|
|
|
451
|
+
### Claude Code Integration
|
|
452
|
+
|
|
453
|
+
| Action | Default | Description | Customization Example |
|
|
454
|
+
|-----------------------|---------|------------------------------------------------------|--------------------------------------|
|
|
455
|
+
| `open_claude_resume` | `c` | Open Claude CLI (resume if session exists, else new) | `open_claude_resume = "ctrl+c"` |
|
|
456
|
+
| `open_claude_gui_code`| `C` | Open Claude desktop on Code page in task folder | `open_claude_gui_code = "ctrl+shift+c"` |
|
|
457
|
+
| `toggle_messages` | `m` | Show/hide activity messages panel | `toggle_messages = "ctrl+m"` |
|
|
458
|
+
|
|
422
459
|
### Navigation
|
|
423
460
|
|
|
424
461
|
| Action | Default | Description | Customization Example |
|
|
@@ -177,7 +177,9 @@ Shows all your tasks:
|
|
|
177
177
|
|
|
178
178
|
- **Name**: Task identifier (e.g., `FEAT-123`)
|
|
179
179
|
- **Count**: Number of worktrees in parentheses (e.g., `(3)`)
|
|
180
|
-
- **Dirty indicator** `●`:
|
|
180
|
+
- **Dirty indicator** `●`: Red dot — task has uncommitted changes
|
|
181
|
+
- **CLAUDE.md indicator** `◆`: Blue diamond — task has a CLAUDE.md file
|
|
182
|
+
- **Claude session status**: `⟳` running (magenta), `!` waiting (yellow), `✓` ended (green)
|
|
181
183
|
- **Sort mode**: Press `s` to cycle through sort modes (name ↑/↓, date ↑/↓, dirty/clean first)
|
|
182
184
|
|
|
183
185
|
**Navigation:**
|
|
@@ -221,13 +223,24 @@ Shows detailed git status for the selected worktree:
|
|
|
221
223
|
|
|
222
224
|
### Visual Indicators
|
|
223
225
|
|
|
226
|
+
**Task & Worktree Status:**
|
|
227
|
+
|
|
224
228
|
| Indicator | Meaning |
|
|
225
229
|
|-----------|--------------------------------------------|
|
|
226
|
-
| `●` | Task has uncommitted changes
|
|
227
|
-
| `✗ N` | N files staged or modified
|
|
228
|
-
| `↑N` | N commits ahead of remote (unpushed)
|
|
229
|
-
| `↓N` | N commits behind remote (need to pull)
|
|
230
|
-
| `✓` | Clean worktree, in sync
|
|
230
|
+
| `●` | Task/worktree has uncommitted changes |
|
|
231
|
+
| `✗ N` | N files staged or modified |
|
|
232
|
+
| `↑N` | N commits ahead of remote (unpushed) |
|
|
233
|
+
| `↓N` | N commits behind remote (need to pull) |
|
|
234
|
+
| `✓` | Clean worktree, in sync |
|
|
235
|
+
|
|
236
|
+
**Claude Code Integration:**
|
|
237
|
+
|
|
238
|
+
| Indicator | Color | Meaning |
|
|
239
|
+
|-----------|---------|------------------------------------------|
|
|
240
|
+
| `◆` | Blue | Task/worktree has a CLAUDE.md file |
|
|
241
|
+
| `⟳` | Magenta | Claude Code session is running |
|
|
242
|
+
| `!` | Yellow | Claude Code session is waiting for input |
|
|
243
|
+
| `✓` | Green | Claude Code session has ended |
|
|
231
244
|
|
|
232
245
|
## Complete Keyboard Reference
|
|
233
246
|
|
|
@@ -272,6 +285,7 @@ All keybindings can be customized in [`config.toml`](configuration.md).
|
|
|
272
285
|
| Key | Action | Description |
|
|
273
286
|
|-----|------------------|-----------------------------------------------------------|
|
|
274
287
|
| `n` | New task | Create a new task with selected repositories |
|
|
288
|
+
| `y` | Clone task | Create a new task pre-populated with the current task's repos |
|
|
275
289
|
| `a` | Add repository | Add additional repositories to the current task |
|
|
276
290
|
| `d` | Delete/finish | Delete current task and remove worktrees |
|
|
277
291
|
|
|
@@ -283,6 +297,14 @@ All keybindings can be customized in [`config.toml`](configuration.md).
|
|
|
283
297
|
5. Select repos with `Space` (can select multiple)
|
|
284
298
|
6. Tab to "Create" button, press `Enter`
|
|
285
299
|
|
|
300
|
+
**Clone task workflow:**
|
|
301
|
+
Useful when you're spinning up several similar tasks that share the same set of repos.
|
|
302
|
+
|
|
303
|
+
1. Highlight the source task in the left panel
|
|
304
|
+
2. Press `y`
|
|
305
|
+
3. The modal opens with the source task's repos already selected — just enter a new task name
|
|
306
|
+
4. Adjust the repo selection or base branch if needed, then press `Enter`
|
|
307
|
+
|
|
286
308
|
**Task deletion workflow:**
|
|
287
309
|
1. Highlight task in left panel
|
|
288
310
|
2. Press `d`
|
|
@@ -318,12 +340,27 @@ All keybindings can be customized in [`config.toml`](configuration.md).
|
|
|
318
340
|
- When focused on task list: Opens the task folder (`~/tasks/TASK-NAME`)
|
|
319
341
|
- When focused on worktree list: Opens the selected worktree folder
|
|
320
342
|
|
|
343
|
+
### Claude Code Integration
|
|
344
|
+
|
|
345
|
+
| Key | Action | Description |
|
|
346
|
+
|---------|-------------------------|------------------------------------------------------------|
|
|
347
|
+
| `c` | Open Claude CLI | Resume the task's Claude Code session if one exists, otherwise start a new one |
|
|
348
|
+
| `C` | Open Claude desktop | Open the Claude desktop app on the Code page at the task folder |
|
|
349
|
+
|
|
350
|
+
**How it works:**
|
|
351
|
+
- `c` opens Claude Code CLI in a new Ghostty terminal tab at the task directory.
|
|
352
|
+
- If `~/.claude/projects/<task-folder>/` already has session transcripts, runs `claude -r` to pick from them; otherwise runs `claude` to start fresh.
|
|
353
|
+
- `C` opens the Claude desktop app via the `claude://code/new?folder=<task-folder>` URL scheme.
|
|
354
|
+
- The CLI variant (`c`) generates `CLAUDE.md` files with task/worktree context and installs hooks that report session status back to tasktree-manager.
|
|
355
|
+
- Session status (`⟳` running, `!` waiting, `✓` ended) appears next to the task name
|
|
356
|
+
|
|
321
357
|
### General
|
|
322
358
|
|
|
323
359
|
| Key | Action | Description |
|
|
324
360
|
|---------|-------------------------|----------------------------------------------|
|
|
325
361
|
| `Ctrl+P`| Open Command Palette | Switch themes and run commands |
|
|
326
362
|
| `o` | Open folder | Open current folder in new terminal tab |
|
|
363
|
+
| `m` | Toggle messages | Show/hide the activity messages panel |
|
|
327
364
|
| `?` | Show help | Display help modal with keybindings |
|
|
328
365
|
| `q` | Quit | Exit tasktree-manager |
|
|
329
366
|
|
|
@@ -70,7 +70,7 @@ version-file = "tasktree_manager/_version.py"
|
|
|
70
70
|
# Semantic Release Configuration
|
|
71
71
|
[tool.semantic_release]
|
|
72
72
|
version_toml = ["pyproject.toml:tool.semantic_release.version"]
|
|
73
|
-
version = "2.
|
|
73
|
+
version = "2.3.0"
|
|
74
74
|
tag_format = "v{version}"
|
|
75
75
|
branch = "main"
|
|
76
76
|
commit_message = "chore(release): {version} [skip ci]"
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# file generated by vcs-versioning
|
|
2
|
+
# don't change, don't track in version control
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
__all__ = [
|
|
6
|
+
"__version__",
|
|
7
|
+
"__version_tuple__",
|
|
8
|
+
"version",
|
|
9
|
+
"version_tuple",
|
|
10
|
+
"__commit_id__",
|
|
11
|
+
"commit_id",
|
|
12
|
+
]
|
|
13
|
+
|
|
14
|
+
version: str
|
|
15
|
+
__version__: str
|
|
16
|
+
__version_tuple__: tuple[int | str, ...]
|
|
17
|
+
version_tuple: tuple[int | str, ...]
|
|
18
|
+
commit_id: str | None
|
|
19
|
+
__commit_id__: str | None
|
|
20
|
+
|
|
21
|
+
__version__ = version = '2.3.0'
|
|
22
|
+
__version_tuple__ = version_tuple = (2, 3, 0)
|
|
23
|
+
|
|
24
|
+
__commit_id__ = commit_id = None
|