grove-wt 0.5.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.
Files changed (56) hide show
  1. grove_wt-0.5.0/PKG-INFO +79 -0
  2. grove_wt-0.5.0/README.md +53 -0
  3. grove_wt-0.5.0/pyproject.toml +47 -0
  4. grove_wt-0.5.0/setup.cfg +4 -0
  5. grove_wt-0.5.0/src/grove/__init__.py +11 -0
  6. grove_wt-0.5.0/src/grove/__main__.py +6 -0
  7. grove_wt-0.5.0/src/grove/cli/__init__.py +1 -0
  8. grove_wt-0.5.0/src/grove/cli/main.py +1305 -0
  9. grove_wt-0.5.0/src/grove/cli/output.py +101 -0
  10. grove_wt-0.5.0/src/grove/core/__init__.py +1 -0
  11. grove_wt-0.5.0/src/grove/core/blockedit.py +179 -0
  12. grove_wt-0.5.0/src/grove/core/compare.py +96 -0
  13. grove_wt-0.5.0/src/grove/core/config.py +269 -0
  14. grove_wt-0.5.0/src/grove/core/create.py +104 -0
  15. grove_wt-0.5.0/src/grove/core/doctor.py +197 -0
  16. grove_wt-0.5.0/src/grove/core/errors.py +27 -0
  17. grove_wt-0.5.0/src/grove/core/gitidentity.py +171 -0
  18. grove_wt-0.5.0/src/grove/core/gitrunner.py +81 -0
  19. grove_wt-0.5.0/src/grove/core/model.py +122 -0
  20. grove_wt-0.5.0/src/grove/core/naming.py +70 -0
  21. grove_wt-0.5.0/src/grove/core/ops.py +109 -0
  22. grove_wt-0.5.0/src/grove/core/patch.py +77 -0
  23. grove_wt-0.5.0/src/grove/core/platform.py +144 -0
  24. grove_wt-0.5.0/src/grove/core/publish.py +122 -0
  25. grove_wt-0.5.0/src/grove/core/remove.py +143 -0
  26. grove_wt-0.5.0/src/grove/core/repo.py +33 -0
  27. grove_wt-0.5.0/src/grove/core/setup.py +90 -0
  28. grove_wt-0.5.0/src/grove/core/sshalias.py +67 -0
  29. grove_wt-0.5.0/src/grove/core/sshcheck.py +230 -0
  30. grove_wt-0.5.0/src/grove/core/sshdoctor.py +189 -0
  31. grove_wt-0.5.0/src/grove/core/sshprov.py +335 -0
  32. grove_wt-0.5.0/src/grove/core/sync.py +50 -0
  33. grove_wt-0.5.0/src/grove/core/track.py +94 -0
  34. grove_wt-0.5.0/src/grove/mcp/__init__.py +5 -0
  35. grove_wt-0.5.0/src/grove/mcp/__main__.py +6 -0
  36. grove_wt-0.5.0/src/grove/mcp/_ops.py +508 -0
  37. grove_wt-0.5.0/src/grove/mcp/server.py +265 -0
  38. grove_wt-0.5.0/src/grove_wt.egg-info/PKG-INFO +79 -0
  39. grove_wt-0.5.0/src/grove_wt.egg-info/SOURCES.txt +54 -0
  40. grove_wt-0.5.0/src/grove_wt.egg-info/dependency_links.txt +1 -0
  41. grove_wt-0.5.0/src/grove_wt.egg-info/entry_points.txt +3 -0
  42. grove_wt-0.5.0/src/grove_wt.egg-info/requires.txt +6 -0
  43. grove_wt-0.5.0/src/grove_wt.egg-info/top_level.txt +1 -0
  44. grove_wt-0.5.0/tests/test_blockedit.py +85 -0
  45. grove_wt-0.5.0/tests/test_compare.py +19 -0
  46. grove_wt-0.5.0/tests/test_config.py +56 -0
  47. grove_wt-0.5.0/tests/test_integration.py +198 -0
  48. grove_wt-0.5.0/tests/test_mcp_ops.py +145 -0
  49. grove_wt-0.5.0/tests/test_mcp_schema.py +53 -0
  50. grove_wt-0.5.0/tests/test_naming.py +56 -0
  51. grove_wt-0.5.0/tests/test_platform.py +61 -0
  52. grove_wt-0.5.0/tests/test_ssh_cli.py +64 -0
  53. grove_wt-0.5.0/tests/test_sshalias.py +30 -0
  54. grove_wt-0.5.0/tests/test_sshdoctor.py +120 -0
  55. grove_wt-0.5.0/tests/test_sshprov.py +125 -0
  56. grove_wt-0.5.0/tests/test_sshprov_add.py +128 -0
@@ -0,0 +1,79 @@
1
+ Metadata-Version: 2.4
2
+ Name: grove-wt
3
+ Version: 0.5.0
4
+ Summary: Manage git worktrees with a consistent convention and structure (gwt command)
5
+ Author: Victor Ney
6
+ License: GPL-3.0-or-later
7
+ Project-URL: Homepage, https://github.com/N3Y70R/grove
8
+ Project-URL: Repository, https://github.com/N3Y70R/grove
9
+ Project-URL: Documentation, https://github.com/N3Y70R/grove/tree/main/docs
10
+ Keywords: git,worktree,cli,git-worktree,branches
11
+ Classifier: Development Status :: 3 - Alpha
12
+ Classifier: Environment :: Console
13
+ Classifier: Intended Audience :: Developers
14
+ Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
15
+ Classifier: Operating System :: OS Independent
16
+ Classifier: Programming Language :: Python :: 3
17
+ Classifier: Programming Language :: Python :: 3.11
18
+ Classifier: Programming Language :: Python :: 3.12
19
+ Classifier: Topic :: Software Development :: Version Control :: Git
20
+ Requires-Python: >=3.11
21
+ Description-Content-Type: text/markdown
22
+ Provides-Extra: test
23
+ Requires-Dist: pytest>=7; extra == "test"
24
+ Provides-Extra: mcp
25
+ Requires-Dist: mcp>=1.2; extra == "mcp"
26
+
27
+ # grove — Python implementation
28
+
29
+ Reference implementation of **grove** (the `gwt` command). Standard library only; requires **Python 3.11+** (uses `tomllib`).
30
+
31
+ To learn how to use the tool, see the shared documentation in [`../docs/`](../docs/); for the design, see [`../spec/specification.md`](../spec/specification.md). This README covers only what's specific to the Python implementation.
32
+
33
+ ## Installation
34
+
35
+ The PyPI/distribution name is **`grove-wt`** (the name `grove` was taken); the
36
+ imported package and commands are still `grove`, `gwt` and `grove-mcp`.
37
+
38
+ With [pipx](https://pipx.pypa.io/) (recommended):
39
+
40
+ ```
41
+ # from PyPI
42
+ pipx install grove-wt # or: grove-wt[mcp] for the MCP server
43
+
44
+ # from the repo folder
45
+ pipx install ./python
46
+
47
+ # from git, pointing at the subdirectory
48
+ pipx install "grove-wt[mcp] @ git+https://github.com/N3Y70R/grove.git#subdirectory=python"
49
+ ```
50
+
51
+ Verify with `gwt --version`. Update with `pipx upgrade grove-wt`. Full guide
52
+ (other systems, updating, troubleshooting) in [`../docs/INSTALL.md`](../docs/INSTALL.md).
53
+
54
+ Development (editable):
55
+
56
+ ```
57
+ cd python
58
+ python3 -m venv .venv && source .venv/bin/activate
59
+ pip install -e .
60
+ ```
61
+
62
+ ## Building the wheel
63
+
64
+ ```
65
+ cd python
66
+ python3 -m pip install --upgrade build
67
+ python3 -m build --wheel # produces dist/grove-<version>-py3-none-any.whl
68
+ ```
69
+
70
+ The wheel is universal (`py3-none-any`): it works on Windows, macOS and Linux.
71
+
72
+ ## Architecture
73
+
74
+ - `src/grove/core/`: reusable logic (convention, validations, git). Designed so a future MCP facade can import it directly.
75
+ - `src/grove/cli/`: command-line facade (argparse + presentation).
76
+
77
+ ## Version
78
+
79
+ The version lives in `pyproject.toml`. Releases tagged `python/vX.Y.Z`.
@@ -0,0 +1,53 @@
1
+ # grove — Python implementation
2
+
3
+ Reference implementation of **grove** (the `gwt` command). Standard library only; requires **Python 3.11+** (uses `tomllib`).
4
+
5
+ To learn how to use the tool, see the shared documentation in [`../docs/`](../docs/); for the design, see [`../spec/specification.md`](../spec/specification.md). This README covers only what's specific to the Python implementation.
6
+
7
+ ## Installation
8
+
9
+ The PyPI/distribution name is **`grove-wt`** (the name `grove` was taken); the
10
+ imported package and commands are still `grove`, `gwt` and `grove-mcp`.
11
+
12
+ With [pipx](https://pipx.pypa.io/) (recommended):
13
+
14
+ ```
15
+ # from PyPI
16
+ pipx install grove-wt # or: grove-wt[mcp] for the MCP server
17
+
18
+ # from the repo folder
19
+ pipx install ./python
20
+
21
+ # from git, pointing at the subdirectory
22
+ pipx install "grove-wt[mcp] @ git+https://github.com/N3Y70R/grove.git#subdirectory=python"
23
+ ```
24
+
25
+ Verify with `gwt --version`. Update with `pipx upgrade grove-wt`. Full guide
26
+ (other systems, updating, troubleshooting) in [`../docs/INSTALL.md`](../docs/INSTALL.md).
27
+
28
+ Development (editable):
29
+
30
+ ```
31
+ cd python
32
+ python3 -m venv .venv && source .venv/bin/activate
33
+ pip install -e .
34
+ ```
35
+
36
+ ## Building the wheel
37
+
38
+ ```
39
+ cd python
40
+ python3 -m pip install --upgrade build
41
+ python3 -m build --wheel # produces dist/grove-<version>-py3-none-any.whl
42
+ ```
43
+
44
+ The wheel is universal (`py3-none-any`): it works on Windows, macOS and Linux.
45
+
46
+ ## Architecture
47
+
48
+ - `src/grove/core/`: reusable logic (convention, validations, git). Designed so a future MCP facade can import it directly.
49
+ - `src/grove/cli/`: command-line facade (argparse + presentation).
50
+
51
+ ## Version
52
+
53
+ The version lives in `pyproject.toml`. Releases tagged `python/vX.Y.Z`.
@@ -0,0 +1,47 @@
1
+ [build-system]
2
+ requires = ["setuptools>=61"]
3
+ build-backend = "setuptools.build_meta"
4
+
5
+ [project]
6
+ # Distribution name on PyPI ("grove" was already taken). The imported package is
7
+ # still `grove` and the commands are still `gwt` and `grove-mcp`.
8
+ name = "grove-wt"
9
+ version = "0.5.0"
10
+ description = "Manage git worktrees with a consistent convention and structure (gwt command)"
11
+ readme = "README.md"
12
+ requires-python = ">=3.11"
13
+ license = { text = "GPL-3.0-or-later" }
14
+ authors = [{ name = "Victor Ney" }]
15
+ keywords = ["git", "worktree", "cli", "git-worktree", "branches"]
16
+ dependencies = [] # standard library only
17
+ classifiers = [
18
+ "Development Status :: 3 - Alpha",
19
+ "Environment :: Console",
20
+ "Intended Audience :: Developers",
21
+ "License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)",
22
+ "Operating System :: OS Independent",
23
+ "Programming Language :: Python :: 3",
24
+ "Programming Language :: Python :: 3.11",
25
+ "Programming Language :: Python :: 3.12",
26
+ "Topic :: Software Development :: Version Control :: Git",
27
+ ]
28
+
29
+ [project.optional-dependencies]
30
+ test = ["pytest>=7"]
31
+ mcp = ["mcp>=1.2"]
32
+
33
+ [project.urls]
34
+ Homepage = "https://github.com/N3Y70R/grove"
35
+ Repository = "https://github.com/N3Y70R/grove"
36
+ Documentation = "https://github.com/N3Y70R/grove/tree/main/docs"
37
+
38
+ [project.scripts]
39
+ gwt = "grove.cli.main:main"
40
+ grove-mcp = "grove.mcp.server:main"
41
+
42
+ [tool.setuptools.packages.find]
43
+ where = ["src"]
44
+
45
+ [tool.pytest.ini_options]
46
+ testpaths = ["tests"]
47
+ pythonpath = ["src"]
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -0,0 +1,11 @@
1
+ """grove: git worktree management with a consistent convention.
2
+
3
+ Command: gwt
4
+
5
+ Structure:
6
+ grove.core -> reusable logic (shared by the facades)
7
+ grove.cli -> command-line facade (gwt)
8
+ grove.mcp -> MCP server facade (grove-mcp)
9
+ """
10
+
11
+ __version__ = "0.5.0"
@@ -0,0 +1,6 @@
1
+ import sys
2
+
3
+ from .cli.main import main
4
+
5
+ if __name__ == "__main__":
6
+ sys.exit(main())
@@ -0,0 +1 @@
1
+ """Command-line facade of wt."""