gitbolt 0.0.0.dev9__tar.gz → 0.0.0.dev11__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.
- {gitbolt-0.0.0.dev9 → gitbolt-0.0.0.dev11}/PKG-INFO +22 -2
- {gitbolt-0.0.0.dev9 → gitbolt-0.0.0.dev11}/README.md +19 -0
- {gitbolt-0.0.0.dev9 → gitbolt-0.0.0.dev11}/pyproject.toml +4 -3
- {gitbolt-0.0.0.dev9 → gitbolt-0.0.0.dev11}/src/gitbolt/git_subprocess/impl/simple.py +87 -9
- {gitbolt-0.0.0.dev9 → gitbolt-0.0.0.dev11}/src/gitbolt.egg-info/PKG-INFO +22 -2
- gitbolt-0.0.0.dev11/src/gitbolt.egg-info/requires.txt +8 -0
- gitbolt-0.0.0.dev9/src/gitbolt.egg-info/requires.txt +0 -7
- {gitbolt-0.0.0.dev9 → gitbolt-0.0.0.dev11}/LICENSE +0 -0
- {gitbolt-0.0.0.dev9 → gitbolt-0.0.0.dev11}/setup.cfg +0 -0
- {gitbolt-0.0.0.dev9 → gitbolt-0.0.0.dev11}/src/gitbolt/__init__.py +0 -0
- {gitbolt-0.0.0.dev9 → gitbolt-0.0.0.dev11}/src/gitbolt/_internal_init.py +0 -0
- {gitbolt-0.0.0.dev9 → gitbolt-0.0.0.dev11}/src/gitbolt/add.py +0 -0
- {gitbolt-0.0.0.dev9 → gitbolt-0.0.0.dev11}/src/gitbolt/base.py +0 -0
- {gitbolt-0.0.0.dev9 → gitbolt-0.0.0.dev11}/src/gitbolt/constants.py +0 -0
- {gitbolt-0.0.0.dev9 → gitbolt-0.0.0.dev11}/src/gitbolt/exceptions.py +0 -0
- {gitbolt-0.0.0.dev9 → gitbolt-0.0.0.dev11}/src/gitbolt/git_subprocess/__init__.py +0 -0
- {gitbolt-0.0.0.dev9 → gitbolt-0.0.0.dev11}/src/gitbolt/git_subprocess/_internal_init.py +0 -0
- {gitbolt-0.0.0.dev9 → gitbolt-0.0.0.dev11}/src/gitbolt/git_subprocess/add.py +0 -0
- {gitbolt-0.0.0.dev9 → gitbolt-0.0.0.dev11}/src/gitbolt/git_subprocess/base.py +0 -0
- {gitbolt-0.0.0.dev9 → gitbolt-0.0.0.dev11}/src/gitbolt/git_subprocess/constants.py +0 -0
- {gitbolt-0.0.0.dev9 → gitbolt-0.0.0.dev11}/src/gitbolt/git_subprocess/exceptions.py +0 -0
- {gitbolt-0.0.0.dev9 → gitbolt-0.0.0.dev11}/src/gitbolt/git_subprocess/impl/__init__.py +0 -0
- {gitbolt-0.0.0.dev9 → gitbolt-0.0.0.dev11}/src/gitbolt/git_subprocess/ls_tree.py +0 -0
- {gitbolt-0.0.0.dev9 → gitbolt-0.0.0.dev11}/src/gitbolt/git_subprocess/runner/__init__.py +0 -0
- {gitbolt-0.0.0.dev9 → gitbolt-0.0.0.dev11}/src/gitbolt/git_subprocess/runner/base.py +0 -0
- {gitbolt-0.0.0.dev9 → gitbolt-0.0.0.dev11}/src/gitbolt/git_subprocess/runner/simple_impl.py +0 -0
- {gitbolt-0.0.0.dev9 → gitbolt-0.0.0.dev11}/src/gitbolt/git_subprocess/utils.py +0 -0
- {gitbolt-0.0.0.dev9 → gitbolt-0.0.0.dev11}/src/gitbolt/ls_tree.py +0 -0
- {gitbolt-0.0.0.dev9 → gitbolt-0.0.0.dev11}/src/gitbolt/models.py +0 -0
- {gitbolt-0.0.0.dev9 → gitbolt-0.0.0.dev11}/src/gitbolt/py.typed +0 -0
- {gitbolt-0.0.0.dev9 → gitbolt-0.0.0.dev11}/src/gitbolt/pytest_plugin.py +0 -0
- {gitbolt-0.0.0.dev9 → gitbolt-0.0.0.dev11}/src/gitbolt/utils.py +0 -0
- {gitbolt-0.0.0.dev9 → gitbolt-0.0.0.dev11}/src/gitbolt.egg-info/SOURCES.txt +0 -0
- {gitbolt-0.0.0.dev9 → gitbolt-0.0.0.dev11}/src/gitbolt.egg-info/dependency_links.txt +0 -0
- {gitbolt-0.0.0.dev9 → gitbolt-0.0.0.dev11}/src/gitbolt.egg-info/entry_points.txt +0 -0
- {gitbolt-0.0.0.dev9 → gitbolt-0.0.0.dev11}/src/gitbolt.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: gitbolt
|
|
3
|
-
Version: 0.0.0.
|
|
3
|
+
Version: 0.0.0.dev11
|
|
4
4
|
Summary: Fast, flexible and type-safe Git commands in Python.
|
|
5
5
|
Author-email: Suhas Krishna Srivastava <suhas.srivastava@vaastav.tech>
|
|
6
6
|
Maintainer-email: Suhas Krishna Srivastava <suhas.srivastava@vaastav.tech>
|
|
@@ -26,7 +26,8 @@ Classifier: Typing :: Typed
|
|
|
26
26
|
Requires-Python: >=3.12
|
|
27
27
|
Description-Content-Type: text/markdown
|
|
28
28
|
License-File: LICENSE
|
|
29
|
-
Requires-Dist: vt-err-hndlr>=0.0.
|
|
29
|
+
Requires-Dist: vt-err-hndlr>=0.0.0dev5
|
|
30
|
+
Requires-Dist: vt-commons>=0.0.1.dev9
|
|
30
31
|
Provides-Extra: pygit2
|
|
31
32
|
Requires-Dist: pygit2; extra == "pygit2"
|
|
32
33
|
Provides-Extra: test
|
|
@@ -63,6 +64,7 @@ Dynamic: license-file
|
|
|
63
64
|
* 🧪 **Terminal Functions:** Git subcommands are terminal functions.
|
|
64
65
|
* 🧼 **Idiomatic Python:** Write commands in idiomatic Python at compile-time and be confident they’ll execute smoothly at runtime.
|
|
65
66
|
* 🎀 **Add-ons:** Special features provided to ease programming with git. These can be added if required.
|
|
67
|
+
* 💻 **CLI-cmd:** Take commands from cli and run in `gitbolt`.
|
|
66
68
|
|
|
67
69
|
---
|
|
68
70
|
|
|
@@ -339,6 +341,24 @@ git.subcmd_unchecked.run(['--version']) # run the version option for git.
|
|
|
339
341
|
git.subcmd_unchecked.run(['version']) # run the version subcommand.
|
|
340
342
|
```
|
|
341
343
|
|
|
344
|
+
#### 💻 Run commands received from CLI
|
|
345
|
+
|
|
346
|
+
Introduced in `0.0.0dev11` is the ability to take commands from CLI and run it inside `gitbolt`.
|
|
347
|
+
|
|
348
|
+
While making a system it may be required to run cli commands as received from cli using gitbolt. An obvious example
|
|
349
|
+
would be to make a system that receives CLI commands and does certain modifications/additions inside `gitbolt` before
|
|
350
|
+
actually running them. An example:
|
|
351
|
+
|
|
352
|
+
```python
|
|
353
|
+
from gitbolt.git_subprocess.impl.simple import CLISimpleGitCommand
|
|
354
|
+
|
|
355
|
+
opts = ["--no-pager", "--namespace", "n1"] # options received from outside your program.
|
|
356
|
+
envs = dict(GIT_AUTHOR_NAME="ss") # env-vars received form outside your program.
|
|
357
|
+
git = CLISimpleGitCommand(opts=opts, envs=envs)
|
|
358
|
+
|
|
359
|
+
# these can later be overridden
|
|
360
|
+
git = git.git_opts_override(namespace="n2")
|
|
361
|
+
```
|
|
342
362
|
|
|
343
363
|
---
|
|
344
364
|
|
|
@@ -28,6 +28,7 @@
|
|
|
28
28
|
* 🧪 **Terminal Functions:** Git subcommands are terminal functions.
|
|
29
29
|
* 🧼 **Idiomatic Python:** Write commands in idiomatic Python at compile-time and be confident they’ll execute smoothly at runtime.
|
|
30
30
|
* 🎀 **Add-ons:** Special features provided to ease programming with git. These can be added if required.
|
|
31
|
+
* 💻 **CLI-cmd:** Take commands from cli and run in `gitbolt`.
|
|
31
32
|
|
|
32
33
|
---
|
|
33
34
|
|
|
@@ -304,6 +305,24 @@ git.subcmd_unchecked.run(['--version']) # run the version option for git.
|
|
|
304
305
|
git.subcmd_unchecked.run(['version']) # run the version subcommand.
|
|
305
306
|
```
|
|
306
307
|
|
|
308
|
+
#### 💻 Run commands received from CLI
|
|
309
|
+
|
|
310
|
+
Introduced in `0.0.0dev11` is the ability to take commands from CLI and run it inside `gitbolt`.
|
|
311
|
+
|
|
312
|
+
While making a system it may be required to run cli commands as received from cli using gitbolt. An obvious example
|
|
313
|
+
would be to make a system that receives CLI commands and does certain modifications/additions inside `gitbolt` before
|
|
314
|
+
actually running them. An example:
|
|
315
|
+
|
|
316
|
+
```python
|
|
317
|
+
from gitbolt.git_subprocess.impl.simple import CLISimpleGitCommand
|
|
318
|
+
|
|
319
|
+
opts = ["--no-pager", "--namespace", "n1"] # options received from outside your program.
|
|
320
|
+
envs = dict(GIT_AUTHOR_NAME="ss") # env-vars received form outside your program.
|
|
321
|
+
git = CLISimpleGitCommand(opts=opts, envs=envs)
|
|
322
|
+
|
|
323
|
+
# these can later be overridden
|
|
324
|
+
git = git.git_opts_override(namespace="n2")
|
|
325
|
+
```
|
|
307
326
|
|
|
308
327
|
---
|
|
309
328
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "gitbolt"
|
|
3
|
-
version = "0.0.
|
|
3
|
+
version = "0.0.0dev11"
|
|
4
4
|
description = "Fast, flexible and type-safe Git commands in Python."
|
|
5
5
|
requires-python = ">=3.12"
|
|
6
6
|
readme = "README.md"
|
|
@@ -36,7 +36,8 @@ classifiers = [
|
|
|
36
36
|
"Typing :: Typed"
|
|
37
37
|
]
|
|
38
38
|
dependencies = [
|
|
39
|
-
"vt-err-hndlr >= 0.0.
|
|
39
|
+
"vt-err-hndlr >= 0.0.0dev5",
|
|
40
|
+
"vt-commons >= 0.0.1.dev9",
|
|
40
41
|
]
|
|
41
42
|
|
|
42
43
|
[project.optional-dependencies]
|
|
@@ -48,7 +49,7 @@ test = ['pytest']
|
|
|
48
49
|
# btw, this error doesn't show in the latest developer version. So, this error will go away with 1.17.0 relase
|
|
49
50
|
dev = ["mypy==1.15.0", "ruff"]
|
|
50
51
|
doc = ['sphinx', 'sphinx-argparse']
|
|
51
|
-
test = ["pytest", 'pytest-cov']
|
|
52
|
+
test = ["pytest", 'pytest-cov', "pytest-xdist"]
|
|
52
53
|
multitest = ['tox']
|
|
53
54
|
|
|
54
55
|
|
|
@@ -168,7 +168,9 @@ class SimpleGitCommand(GitCommand, RootDirOp):
|
|
|
168
168
|
self._version_subcmd = version_subcmd or VersionCommandImpl(self)
|
|
169
169
|
self._ls_tree = ls_tree_subcmd or LsTreeCommandImpl(self.root_dir, self)
|
|
170
170
|
self._add_subcmd = add_subcmd or AddCommandImpl(self.root_dir, self)
|
|
171
|
-
self._subcmd_unchecked = subcmd_unchecked or UncheckedSubcmdImpl(
|
|
171
|
+
self._subcmd_unchecked = subcmd_unchecked or UncheckedSubcmdImpl(
|
|
172
|
+
self.root_dir, self
|
|
173
|
+
)
|
|
172
174
|
|
|
173
175
|
@override
|
|
174
176
|
@property
|
|
@@ -194,9 +196,21 @@ class SimpleGitCommand(GitCommand, RootDirOp):
|
|
|
194
196
|
return add_subcmd
|
|
195
197
|
|
|
196
198
|
@override
|
|
197
|
-
def clone(self) ->
|
|
199
|
+
def clone(self) -> SimpleGitCommand:
|
|
198
200
|
# region obtain class instance
|
|
199
|
-
cloned =
|
|
201
|
+
cloned = self._subclass_clone()
|
|
202
|
+
# endregion
|
|
203
|
+
# region clone protected members
|
|
204
|
+
cloned._main_cmd_opts = self._main_cmd_opts
|
|
205
|
+
cloned._env_vars = self._env_vars
|
|
206
|
+
# endregion
|
|
207
|
+
return cloned
|
|
208
|
+
|
|
209
|
+
def _subclass_clone(self) -> SimpleGitCommand:
|
|
210
|
+
"""
|
|
211
|
+
:returns: clone as defined by the subclass.
|
|
212
|
+
"""
|
|
213
|
+
return SimpleGitCommand(
|
|
200
214
|
self.root_dir,
|
|
201
215
|
self.runner,
|
|
202
216
|
version_subcmd=self.version_subcmd,
|
|
@@ -204,12 +218,6 @@ class SimpleGitCommand(GitCommand, RootDirOp):
|
|
|
204
218
|
add_subcmd=self.add_subcmd,
|
|
205
219
|
subcmd_unchecked=self.subcmd_unchecked,
|
|
206
220
|
)
|
|
207
|
-
# endregion
|
|
208
|
-
# region clone protected members
|
|
209
|
-
cloned._main_cmd_opts = self._main_cmd_opts
|
|
210
|
-
cloned._env_vars = self._env_vars
|
|
211
|
-
# endregion
|
|
212
|
-
return cloned
|
|
213
221
|
|
|
214
222
|
@override
|
|
215
223
|
@property
|
|
@@ -221,3 +229,73 @@ class SimpleGitCommand(GitCommand, RootDirOp):
|
|
|
221
229
|
subcmd_unchecked = self._subcmd_unchecked.clone()
|
|
222
230
|
subcmd_unchecked._set_underlying_git(self)
|
|
223
231
|
return subcmd_unchecked
|
|
232
|
+
|
|
233
|
+
|
|
234
|
+
class CLISimpleGitCommand(SimpleGitCommand):
|
|
235
|
+
"""
|
|
236
|
+
A simple git command that can run using CLI params.
|
|
237
|
+
"""
|
|
238
|
+
|
|
239
|
+
def __init__(
|
|
240
|
+
self,
|
|
241
|
+
git_root_dir: Path = Path.cwd(),
|
|
242
|
+
runner: GitCommandRunner = SimpleGitCR(),
|
|
243
|
+
*,
|
|
244
|
+
opts: list[str] | None = None,
|
|
245
|
+
envs: dict[str, str] | None = None,
|
|
246
|
+
prefer_cli: bool = False,
|
|
247
|
+
version_subcmd: VersionCommand | None = None,
|
|
248
|
+
ls_tree_subcmd: LsTreeCommand | None = None,
|
|
249
|
+
add_subcmd: AddCommand | None = None,
|
|
250
|
+
subcmd_unchecked: UncheckedSubcmd | None = None,
|
|
251
|
+
):
|
|
252
|
+
"""
|
|
253
|
+
:param opts: main git cli options.
|
|
254
|
+
:param envs: main git cli env vars.
|
|
255
|
+
:param prefer_cli: cli opts and envs will be given priority over programmatically set opts and envs. Setting
|
|
256
|
+
this param to ``True`` will make cli opts and envs appear later in the opts and envs strings which will
|
|
257
|
+
make them override previously programmatically set opts and envs.
|
|
258
|
+
"""
|
|
259
|
+
super().__init__(
|
|
260
|
+
git_root_dir,
|
|
261
|
+
runner,
|
|
262
|
+
version_subcmd=version_subcmd,
|
|
263
|
+
ls_tree_subcmd=ls_tree_subcmd,
|
|
264
|
+
add_subcmd=add_subcmd,
|
|
265
|
+
subcmd_unchecked=subcmd_unchecked,
|
|
266
|
+
)
|
|
267
|
+
self._main_cmd_cli_opts = opts
|
|
268
|
+
self._cmd_cli_envs = envs
|
|
269
|
+
self.prefer_cli = prefer_cli
|
|
270
|
+
|
|
271
|
+
@override
|
|
272
|
+
def build_main_cmd_args(self) -> list[str]:
|
|
273
|
+
if self._main_cmd_cli_opts:
|
|
274
|
+
if self.prefer_cli:
|
|
275
|
+
return super().build_main_cmd_args() + self._main_cmd_cli_opts
|
|
276
|
+
else:
|
|
277
|
+
return self._main_cmd_cli_opts + super().build_main_cmd_args()
|
|
278
|
+
return super().build_main_cmd_args()
|
|
279
|
+
|
|
280
|
+
@override
|
|
281
|
+
def build_git_envs(self) -> dict[str, str]:
|
|
282
|
+
if self._cmd_cli_envs:
|
|
283
|
+
if self.prefer_cli:
|
|
284
|
+
return super().build_git_envs() | self._cmd_cli_envs
|
|
285
|
+
else:
|
|
286
|
+
return self._cmd_cli_envs | super().build_git_envs()
|
|
287
|
+
return super().build_git_envs()
|
|
288
|
+
|
|
289
|
+
@override
|
|
290
|
+
def _subclass_clone(self) -> CLISimpleGitCommand:
|
|
291
|
+
return CLISimpleGitCommand(
|
|
292
|
+
self.root_dir,
|
|
293
|
+
self.runner,
|
|
294
|
+
opts=self._main_cmd_cli_opts,
|
|
295
|
+
envs=self._cmd_cli_envs,
|
|
296
|
+
prefer_cli=self.prefer_cli,
|
|
297
|
+
version_subcmd=self.version_subcmd,
|
|
298
|
+
ls_tree_subcmd=self.ls_tree_subcmd,
|
|
299
|
+
add_subcmd=self.add_subcmd,
|
|
300
|
+
subcmd_unchecked=self.subcmd_unchecked,
|
|
301
|
+
)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: gitbolt
|
|
3
|
-
Version: 0.0.0.
|
|
3
|
+
Version: 0.0.0.dev11
|
|
4
4
|
Summary: Fast, flexible and type-safe Git commands in Python.
|
|
5
5
|
Author-email: Suhas Krishna Srivastava <suhas.srivastava@vaastav.tech>
|
|
6
6
|
Maintainer-email: Suhas Krishna Srivastava <suhas.srivastava@vaastav.tech>
|
|
@@ -26,7 +26,8 @@ Classifier: Typing :: Typed
|
|
|
26
26
|
Requires-Python: >=3.12
|
|
27
27
|
Description-Content-Type: text/markdown
|
|
28
28
|
License-File: LICENSE
|
|
29
|
-
Requires-Dist: vt-err-hndlr>=0.0.
|
|
29
|
+
Requires-Dist: vt-err-hndlr>=0.0.0dev5
|
|
30
|
+
Requires-Dist: vt-commons>=0.0.1.dev9
|
|
30
31
|
Provides-Extra: pygit2
|
|
31
32
|
Requires-Dist: pygit2; extra == "pygit2"
|
|
32
33
|
Provides-Extra: test
|
|
@@ -63,6 +64,7 @@ Dynamic: license-file
|
|
|
63
64
|
* 🧪 **Terminal Functions:** Git subcommands are terminal functions.
|
|
64
65
|
* 🧼 **Idiomatic Python:** Write commands in idiomatic Python at compile-time and be confident they’ll execute smoothly at runtime.
|
|
65
66
|
* 🎀 **Add-ons:** Special features provided to ease programming with git. These can be added if required.
|
|
67
|
+
* 💻 **CLI-cmd:** Take commands from cli and run in `gitbolt`.
|
|
66
68
|
|
|
67
69
|
---
|
|
68
70
|
|
|
@@ -339,6 +341,24 @@ git.subcmd_unchecked.run(['--version']) # run the version option for git.
|
|
|
339
341
|
git.subcmd_unchecked.run(['version']) # run the version subcommand.
|
|
340
342
|
```
|
|
341
343
|
|
|
344
|
+
#### 💻 Run commands received from CLI
|
|
345
|
+
|
|
346
|
+
Introduced in `0.0.0dev11` is the ability to take commands from CLI and run it inside `gitbolt`.
|
|
347
|
+
|
|
348
|
+
While making a system it may be required to run cli commands as received from cli using gitbolt. An obvious example
|
|
349
|
+
would be to make a system that receives CLI commands and does certain modifications/additions inside `gitbolt` before
|
|
350
|
+
actually running them. An example:
|
|
351
|
+
|
|
352
|
+
```python
|
|
353
|
+
from gitbolt.git_subprocess.impl.simple import CLISimpleGitCommand
|
|
354
|
+
|
|
355
|
+
opts = ["--no-pager", "--namespace", "n1"] # options received from outside your program.
|
|
356
|
+
envs = dict(GIT_AUTHOR_NAME="ss") # env-vars received form outside your program.
|
|
357
|
+
git = CLISimpleGitCommand(opts=opts, envs=envs)
|
|
358
|
+
|
|
359
|
+
# these can later be overridden
|
|
360
|
+
git = git.git_opts_override(namespace="n2")
|
|
361
|
+
```
|
|
342
362
|
|
|
343
363
|
---
|
|
344
364
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|