skilleter-thingy 0.2.9__tar.gz → 0.2.11__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.

Potentially problematic release.


This version of skilleter-thingy might be problematic. Click here for more details.

Files changed (64) hide show
  1. {skilleter_thingy-0.2.9 → skilleter_thingy-0.2.11}/PKG-INFO +1 -1
  2. {skilleter_thingy-0.2.9 → skilleter_thingy-0.2.11}/pyproject.toml +1 -1
  3. {skilleter_thingy-0.2.9 → skilleter_thingy-0.2.11}/skilleter_thingy/gitprompt.py +36 -26
  4. {skilleter_thingy-0.2.9 → skilleter_thingy-0.2.11}/skilleter_thingy.egg-info/PKG-INFO +1 -1
  5. {skilleter_thingy-0.2.9 → skilleter_thingy-0.2.11}/LICENSE +0 -0
  6. {skilleter_thingy-0.2.9 → skilleter_thingy-0.2.11}/README.md +0 -0
  7. {skilleter_thingy-0.2.9 → skilleter_thingy-0.2.11}/setup.cfg +0 -0
  8. {skilleter_thingy-0.2.9 → skilleter_thingy-0.2.11}/skilleter_thingy/__init__.py +0 -0
  9. {skilleter_thingy-0.2.9 → skilleter_thingy-0.2.11}/skilleter_thingy/addpath.py +0 -0
  10. {skilleter_thingy-0.2.9 → skilleter_thingy-0.2.11}/skilleter_thingy/console_colours.py +0 -0
  11. {skilleter_thingy-0.2.9 → skilleter_thingy-0.2.11}/skilleter_thingy/docker_purge.py +0 -0
  12. {skilleter_thingy-0.2.9 → skilleter_thingy-0.2.11}/skilleter_thingy/ffind.py +0 -0
  13. {skilleter_thingy-0.2.9 → skilleter_thingy-0.2.11}/skilleter_thingy/ggit.py +0 -0
  14. {skilleter_thingy-0.2.9 → skilleter_thingy-0.2.11}/skilleter_thingy/ggrep.py +0 -0
  15. {skilleter_thingy-0.2.9 → skilleter_thingy-0.2.11}/skilleter_thingy/git_br.py +0 -0
  16. {skilleter_thingy-0.2.9 → skilleter_thingy-0.2.11}/skilleter_thingy/git_ca.py +0 -0
  17. {skilleter_thingy-0.2.9 → skilleter_thingy-0.2.11}/skilleter_thingy/git_cleanup.py +0 -0
  18. {skilleter_thingy-0.2.9 → skilleter_thingy-0.2.11}/skilleter_thingy/git_co.py +0 -0
  19. {skilleter_thingy-0.2.9 → skilleter_thingy-0.2.11}/skilleter_thingy/git_common.py +0 -0
  20. {skilleter_thingy-0.2.9 → skilleter_thingy-0.2.11}/skilleter_thingy/git_hold.py +0 -0
  21. {skilleter_thingy-0.2.9 → skilleter_thingy-0.2.11}/skilleter_thingy/git_mr.py +0 -0
  22. {skilleter_thingy-0.2.9 → skilleter_thingy-0.2.11}/skilleter_thingy/git_parent.py +0 -0
  23. {skilleter_thingy-0.2.9 → skilleter_thingy-0.2.11}/skilleter_thingy/git_retag.py +0 -0
  24. {skilleter_thingy-0.2.9 → skilleter_thingy-0.2.11}/skilleter_thingy/git_review.py +0 -0
  25. {skilleter_thingy-0.2.9 → skilleter_thingy-0.2.11}/skilleter_thingy/git_update.py +0 -0
  26. {skilleter_thingy-0.2.9 → skilleter_thingy-0.2.11}/skilleter_thingy/git_wt.py +0 -0
  27. {skilleter_thingy-0.2.9 → skilleter_thingy-0.2.11}/skilleter_thingy/gitcmp_helper.py +0 -0
  28. {skilleter_thingy-0.2.9 → skilleter_thingy-0.2.11}/skilleter_thingy/gl.py +0 -0
  29. {skilleter_thingy-0.2.9 → skilleter_thingy-0.2.11}/skilleter_thingy/linecount.py +0 -0
  30. {skilleter_thingy-0.2.9 → skilleter_thingy-0.2.11}/skilleter_thingy/multigit.py +0 -0
  31. {skilleter_thingy-0.2.9 → skilleter_thingy-0.2.11}/skilleter_thingy/py_audit.py +0 -0
  32. {skilleter_thingy-0.2.9 → skilleter_thingy-0.2.11}/skilleter_thingy/readable.py +0 -0
  33. {skilleter_thingy-0.2.9 → skilleter_thingy-0.2.11}/skilleter_thingy/remdir.py +0 -0
  34. {skilleter_thingy-0.2.9 → skilleter_thingy-0.2.11}/skilleter_thingy/rmdupe.py +0 -0
  35. {skilleter_thingy-0.2.9 → skilleter_thingy-0.2.11}/skilleter_thingy/rpylint.py +0 -0
  36. {skilleter_thingy-0.2.9 → skilleter_thingy-0.2.11}/skilleter_thingy/strreplace.py +0 -0
  37. {skilleter_thingy-0.2.9 → skilleter_thingy-0.2.11}/skilleter_thingy/tfm.py +0 -0
  38. {skilleter_thingy-0.2.9 → skilleter_thingy-0.2.11}/skilleter_thingy/tfparse.py +0 -0
  39. {skilleter_thingy-0.2.9 → skilleter_thingy-0.2.11}/skilleter_thingy/thingy/__init__.py +0 -0
  40. {skilleter_thingy-0.2.9 → skilleter_thingy-0.2.11}/skilleter_thingy/thingy/colour.py +0 -0
  41. {skilleter_thingy-0.2.9 → skilleter_thingy-0.2.11}/skilleter_thingy/thingy/dc_curses.py +0 -0
  42. {skilleter_thingy-0.2.9 → skilleter_thingy-0.2.11}/skilleter_thingy/thingy/dc_defaults.py +0 -0
  43. {skilleter_thingy-0.2.9 → skilleter_thingy-0.2.11}/skilleter_thingy/thingy/dc_util.py +0 -0
  44. {skilleter_thingy-0.2.9 → skilleter_thingy-0.2.11}/skilleter_thingy/thingy/dircolors.py +0 -0
  45. {skilleter_thingy-0.2.9 → skilleter_thingy-0.2.11}/skilleter_thingy/thingy/docker.py +0 -0
  46. {skilleter_thingy-0.2.9 → skilleter_thingy-0.2.11}/skilleter_thingy/thingy/files.py +0 -0
  47. {skilleter_thingy-0.2.9 → skilleter_thingy-0.2.11}/skilleter_thingy/thingy/git.py +0 -0
  48. {skilleter_thingy-0.2.9 → skilleter_thingy-0.2.11}/skilleter_thingy/thingy/gitlab.py +0 -0
  49. {skilleter_thingy-0.2.9 → skilleter_thingy-0.2.11}/skilleter_thingy/thingy/path.py +0 -0
  50. {skilleter_thingy-0.2.9 → skilleter_thingy-0.2.11}/skilleter_thingy/thingy/popup.py +0 -0
  51. {skilleter_thingy-0.2.9 → skilleter_thingy-0.2.11}/skilleter_thingy/thingy/process.py +0 -0
  52. {skilleter_thingy-0.2.9 → skilleter_thingy-0.2.11}/skilleter_thingy/thingy/run.py +0 -0
  53. {skilleter_thingy-0.2.9 → skilleter_thingy-0.2.11}/skilleter_thingy/thingy/tfm_pane.py +0 -0
  54. {skilleter_thingy-0.2.9 → skilleter_thingy-0.2.11}/skilleter_thingy/thingy/tidy.py +0 -0
  55. {skilleter_thingy-0.2.9 → skilleter_thingy-0.2.11}/skilleter_thingy/thingy/venv_template.py +0 -0
  56. {skilleter_thingy-0.2.9 → skilleter_thingy-0.2.11}/skilleter_thingy/trimpath.py +0 -0
  57. {skilleter_thingy-0.2.9 → skilleter_thingy-0.2.11}/skilleter_thingy/venv_create.py +0 -0
  58. {skilleter_thingy-0.2.9 → skilleter_thingy-0.2.11}/skilleter_thingy/xchmod.py +0 -0
  59. {skilleter_thingy-0.2.9 → skilleter_thingy-0.2.11}/skilleter_thingy/yamlcheck.py +0 -0
  60. {skilleter_thingy-0.2.9 → skilleter_thingy-0.2.11}/skilleter_thingy.egg-info/SOURCES.txt +0 -0
  61. {skilleter_thingy-0.2.9 → skilleter_thingy-0.2.11}/skilleter_thingy.egg-info/dependency_links.txt +0 -0
  62. {skilleter_thingy-0.2.9 → skilleter_thingy-0.2.11}/skilleter_thingy.egg-info/entry_points.txt +0 -0
  63. {skilleter_thingy-0.2.9 → skilleter_thingy-0.2.11}/skilleter_thingy.egg-info/requires.txt +0 -0
  64. {skilleter_thingy-0.2.9 → skilleter_thingy-0.2.11}/skilleter_thingy.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: skilleter_thingy
3
- Version: 0.2.9
3
+ Version: 0.2.11
4
4
  Summary: A collection of useful utilities, mainly aimed at making Git more friendly
5
5
  Author-email: John Skilleter <john@skilleter.org.uk>
6
6
  Project-URL: Home, https://skilleter.org.uk
@@ -7,7 +7,7 @@ name = "skilleter_thingy"
7
7
 
8
8
  # Version must be incremented to install updated Thingy
9
9
 
10
- version = "0.2.9"
10
+ version = "0.2.11"
11
11
 
12
12
  authors = [
13
13
  {name="John Skilleter", email="john@skilleter.org.uk"},
@@ -74,33 +74,37 @@ MAX_BRANCH_NAME_LENGTH = int(os.environ.get('COLUMNS', 96)) / 3
74
74
 
75
75
  ################################################################################
76
76
 
77
- def write_colour_prompt(gitstate: dict):
78
- """ Output the colour for the prompt, according to the current state of the
77
+ def colour_prompt(gitstate: dict):
78
+ """ Return the colour for the prompt, according to the current state of the
79
79
  working tree. """
80
80
 
81
- colour.write('[NORMAL]', newline=False)
81
+ output = []
82
+
83
+ output.append('[NORMAL]')
82
84
 
83
85
  if gitstate['modified'] or gitstate['deleted']:
84
- colour.write('[REVERSE][RED]', newline=False)
86
+ output.append('[REVERSE][RED]')
85
87
 
86
88
  elif gitstate['added'] or gitstate['copied'] or gitstate['renamed']:
87
- colour.write('[REVERSE][YELLOW]', newline=False)
89
+ output.append('[REVERSE][YELLOW]')
88
90
 
89
91
  elif gitstate['unmerged']:
90
- colour.write('[REVERSE][MAGENTA]', newline=False)
92
+ output.append('[REVERSE][MAGENTA]')
91
93
 
92
94
  elif gitstate['untracked']:
93
- colour.write('[REVERSE][CYAN]', newline=False)
95
+ output.append('[REVERSE][CYAN]')
94
96
 
95
97
  elif gitstate['merging'] or gitstate['bisecting'] or gitstate['rebasing']:
96
- colour.write('[REVERSE][BLACK]', newline=False)
98
+ output.append('[REVERSE][BLACK]')
97
99
 
98
100
  else:
99
- colour.write('[REVERSE][GREEN]', newline=False)
101
+ output.append('[REVERSE][GREEN]')
102
+
103
+ return output
100
104
 
101
105
  ################################################################################
102
106
 
103
- def write_prompt_prefix(gitstate: dict):
107
+ def prompt_prefix(gitstate: dict):
104
108
  """ Build a prompt prefix containing the type and number
105
109
  of changes in the repo. """
106
110
 
@@ -172,15 +176,14 @@ def write_prompt_prefix(gitstate: dict):
172
176
  elif gitstate['merging']:
173
177
  prefix.append('(merging)')
174
178
 
175
- if prefix:
176
- sys.stdout.write(' {%s}' % ' '.join(prefix))
177
-
178
179
  project = git.project(short=True)
179
180
 
180
181
  if project:
181
- sys.stdout.write(f' {project}: {branch} ')
182
- else:
183
- sys.stdout.write(f' {branch} ')
182
+ prefix.append(project)
183
+
184
+ prefix.append(branch)
185
+
186
+ return ' '.join(prefix)
184
187
 
185
188
  ################################################################################
186
189
 
@@ -188,17 +191,19 @@ def git_status(colour_output: str, prompt_output: str):
188
191
  """ Catalogue the current state of the working tree then call the function
189
192
  to either output a suitable colour or the prompt text or both """
190
193
 
194
+ output = []
195
+
191
196
  # Get the working tree, just return if there's an error
192
197
 
193
198
  try:
194
199
  working_tree = git.working_tree()
195
200
  except git.GitError:
196
- return
201
+ return None
197
202
 
198
203
  # Return if we are not in a working tree
199
204
 
200
205
  if not working_tree:
201
- return
206
+ return None
202
207
 
203
208
  # gitstate contains counters for numbers of modified (etc.) elements in the tree and flags to indicate
204
209
  # whether we're currently in a merge/rebase/bisect state.
@@ -212,16 +217,16 @@ def git_status(colour_output: str, prompt_output: str):
212
217
  gitstate['rebasing'] = git.rebasing()
213
218
  gitstate['bisecting'] = git.bisecting()
214
219
 
215
- status = git.status()
220
+ status = git.status(untracked=True)
216
221
  except git.GitError as exc:
217
222
  # Major failure of gitness - report the error and quit
218
223
 
224
+ msg = exc.msg.split('\n')[0]
225
+
219
226
  if colour_output:
220
- colour.write('[WHITE][BRED]', newline=False)
221
- else:
222
- colour.write(' ERROR: %s ' % exc.msg.split('\n')[0], newline=False)
227
+ return f'[WHITE][BRED] {msg}'
223
228
 
224
- return
229
+ return f' ERROR: {msg} '
225
230
 
226
231
  # Count the number of files in each state
227
232
 
@@ -237,10 +242,12 @@ def git_status(colour_output: str, prompt_output: str):
237
242
  # Set the output colour or output the prompt prefix
238
243
 
239
244
  if colour_output:
240
- write_colour_prompt(gitstate)
245
+ output += colour_prompt(gitstate)
241
246
 
242
247
  if prompt_output or not colour_output:
243
- write_prompt_prefix(gitstate)
248
+ output.append(prompt_prefix(gitstate))
249
+
250
+ return ''.join(output)
244
251
 
245
252
  ################################################################################
246
253
 
@@ -253,7 +260,10 @@ def main():
253
260
 
254
261
  args = parser.parse_args()
255
262
 
256
- git_status(args.colour, args.prompt)
263
+ output = git_status(args.colour, args.prompt)
264
+
265
+ if output:
266
+ colour.write(f' {output} ', newline=False)
257
267
 
258
268
  ################################################################################
259
269
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: skilleter_thingy
3
- Version: 0.2.9
3
+ Version: 0.2.11
4
4
  Summary: A collection of useful utilities, mainly aimed at making Git more friendly
5
5
  Author-email: John Skilleter <john@skilleter.org.uk>
6
6
  Project-URL: Home, https://skilleter.org.uk