skilleter-thingy 0.0.60__tar.gz → 0.0.62__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.
- {skilleter_thingy-0.0.60/skilleter_thingy.egg-info → skilleter_thingy-0.0.62}/PKG-INFO +2 -2
- {skilleter_thingy-0.0.60 → skilleter_thingy-0.0.62}/pyproject.toml +2 -2
- {skilleter_thingy-0.0.60 → skilleter_thingy-0.0.62}/skilleter_thingy/readable.py +36 -7
- {skilleter_thingy-0.0.60 → skilleter_thingy-0.0.62}/skilleter_thingy/thingy/tidy.py +2 -2
- {skilleter_thingy-0.0.60 → skilleter_thingy-0.0.62/skilleter_thingy.egg-info}/PKG-INFO +2 -2
- {skilleter_thingy-0.0.60 → skilleter_thingy-0.0.62}/LICENSE +0 -0
- {skilleter_thingy-0.0.60 → skilleter_thingy-0.0.62}/README.md +0 -0
- {skilleter_thingy-0.0.60 → skilleter_thingy-0.0.62}/setup.cfg +0 -0
- {skilleter_thingy-0.0.60 → skilleter_thingy-0.0.62}/skilleter_thingy/__init__.py +0 -0
- {skilleter_thingy-0.0.60 → skilleter_thingy-0.0.62}/skilleter_thingy/addpath.py +0 -0
- {skilleter_thingy-0.0.60 → skilleter_thingy-0.0.62}/skilleter_thingy/borger.py +0 -0
- {skilleter_thingy-0.0.60 → skilleter_thingy-0.0.62}/skilleter_thingy/box.py +0 -0
- {skilleter_thingy-0.0.60 → skilleter_thingy-0.0.62}/skilleter_thingy/console_colours.py +0 -0
- {skilleter_thingy-0.0.60 → skilleter_thingy-0.0.62}/skilleter_thingy/diskspacecheck.py +0 -0
- {skilleter_thingy-0.0.60 → skilleter_thingy-0.0.62}/skilleter_thingy/docker_purge.py +0 -0
- {skilleter_thingy-0.0.60 → skilleter_thingy-0.0.62}/skilleter_thingy/ffind.py +0 -0
- {skilleter_thingy-0.0.60 → skilleter_thingy-0.0.62}/skilleter_thingy/ggit.py +0 -0
- {skilleter_thingy-0.0.60 → skilleter_thingy-0.0.62}/skilleter_thingy/ggrep.py +0 -0
- {skilleter_thingy-0.0.60 → skilleter_thingy-0.0.62}/skilleter_thingy/git_br.py +0 -0
- {skilleter_thingy-0.0.60 → skilleter_thingy-0.0.62}/skilleter_thingy/git_ca.py +0 -0
- {skilleter_thingy-0.0.60 → skilleter_thingy-0.0.62}/skilleter_thingy/git_cleanup.py +0 -0
- {skilleter_thingy-0.0.60 → skilleter_thingy-0.0.62}/skilleter_thingy/git_co.py +0 -0
- {skilleter_thingy-0.0.60 → skilleter_thingy-0.0.62}/skilleter_thingy/git_common.py +0 -0
- {skilleter_thingy-0.0.60 → skilleter_thingy-0.0.62}/skilleter_thingy/git_hold.py +0 -0
- {skilleter_thingy-0.0.60 → skilleter_thingy-0.0.62}/skilleter_thingy/git_mr.py +0 -0
- {skilleter_thingy-0.0.60 → skilleter_thingy-0.0.62}/skilleter_thingy/git_parent.py +0 -0
- {skilleter_thingy-0.0.60 → skilleter_thingy-0.0.62}/skilleter_thingy/git_review.py +0 -0
- {skilleter_thingy-0.0.60 → skilleter_thingy-0.0.62}/skilleter_thingy/git_update.py +0 -0
- {skilleter_thingy-0.0.60 → skilleter_thingy-0.0.62}/skilleter_thingy/git_wt.py +0 -0
- {skilleter_thingy-0.0.60 → skilleter_thingy-0.0.62}/skilleter_thingy/gitcmp_helper.py +0 -0
- {skilleter_thingy-0.0.60 → skilleter_thingy-0.0.62}/skilleter_thingy/gitprompt.py +0 -0
- {skilleter_thingy-0.0.60 → skilleter_thingy-0.0.62}/skilleter_thingy/gl.py +0 -0
- {skilleter_thingy-0.0.60 → skilleter_thingy-0.0.62}/skilleter_thingy/gphotosync.py +0 -0
- {skilleter_thingy-0.0.60 → skilleter_thingy-0.0.62}/skilleter_thingy/linecount.py +0 -0
- {skilleter_thingy-0.0.60 → skilleter_thingy-0.0.62}/skilleter_thingy/moviemover.py +0 -0
- {skilleter_thingy-0.0.60 → skilleter_thingy-0.0.62}/skilleter_thingy/photodupe.py +0 -0
- {skilleter_thingy-0.0.60 → skilleter_thingy-0.0.62}/skilleter_thingy/phototidier.py +0 -0
- {skilleter_thingy-0.0.60 → skilleter_thingy-0.0.62}/skilleter_thingy/py_audit.py +0 -0
- {skilleter_thingy-0.0.60 → skilleter_thingy-0.0.62}/skilleter_thingy/remdir.py +0 -0
- {skilleter_thingy-0.0.60 → skilleter_thingy-0.0.62}/skilleter_thingy/rmdupe.py +0 -0
- {skilleter_thingy-0.0.60 → skilleter_thingy-0.0.62}/skilleter_thingy/rpylint.py +0 -0
- {skilleter_thingy-0.0.60 → skilleter_thingy-0.0.62}/skilleter_thingy/splitpics.py +0 -0
- {skilleter_thingy-0.0.60 → skilleter_thingy-0.0.62}/skilleter_thingy/strreplace.py +0 -0
- {skilleter_thingy-0.0.60 → skilleter_thingy-0.0.62}/skilleter_thingy/sysmon.py +0 -0
- {skilleter_thingy-0.0.60 → skilleter_thingy-0.0.62}/skilleter_thingy/tfm.py +0 -0
- {skilleter_thingy-0.0.60 → skilleter_thingy-0.0.62}/skilleter_thingy/tfparse.py +0 -0
- {skilleter_thingy-0.0.60 → skilleter_thingy-0.0.62}/skilleter_thingy/thingy/__init__.py +0 -0
- {skilleter_thingy-0.0.60 → skilleter_thingy-0.0.62}/skilleter_thingy/thingy/colour.py +0 -0
- {skilleter_thingy-0.0.60 → skilleter_thingy-0.0.62}/skilleter_thingy/thingy/dc_curses.py +0 -0
- {skilleter_thingy-0.0.60 → skilleter_thingy-0.0.62}/skilleter_thingy/thingy/dc_defaults.py +0 -0
- {skilleter_thingy-0.0.60 → skilleter_thingy-0.0.62}/skilleter_thingy/thingy/dc_util.py +0 -0
- {skilleter_thingy-0.0.60 → skilleter_thingy-0.0.62}/skilleter_thingy/thingy/dircolors.py +0 -0
- {skilleter_thingy-0.0.60 → skilleter_thingy-0.0.62}/skilleter_thingy/thingy/docker.py +0 -0
- {skilleter_thingy-0.0.60 → skilleter_thingy-0.0.62}/skilleter_thingy/thingy/files.py +0 -0
- {skilleter_thingy-0.0.60 → skilleter_thingy-0.0.62}/skilleter_thingy/thingy/git.py +0 -0
- {skilleter_thingy-0.0.60 → skilleter_thingy-0.0.62}/skilleter_thingy/thingy/git2.py +0 -0
- {skilleter_thingy-0.0.60 → skilleter_thingy-0.0.62}/skilleter_thingy/thingy/gitlab.py +0 -0
- {skilleter_thingy-0.0.60 → skilleter_thingy-0.0.62}/skilleter_thingy/thingy/path.py +0 -0
- {skilleter_thingy-0.0.60 → skilleter_thingy-0.0.62}/skilleter_thingy/thingy/popup.py +0 -0
- {skilleter_thingy-0.0.60 → skilleter_thingy-0.0.62}/skilleter_thingy/thingy/process.py +0 -0
- {skilleter_thingy-0.0.60 → skilleter_thingy-0.0.62}/skilleter_thingy/thingy/run.py +0 -0
- {skilleter_thingy-0.0.60 → skilleter_thingy-0.0.62}/skilleter_thingy/thingy/tfm_pane.py +0 -0
- {skilleter_thingy-0.0.60 → skilleter_thingy-0.0.62}/skilleter_thingy/thingy/venv_template.py +0 -0
- {skilleter_thingy-0.0.60 → skilleter_thingy-0.0.62}/skilleter_thingy/trimpath.py +0 -0
- {skilleter_thingy-0.0.60 → skilleter_thingy-0.0.62}/skilleter_thingy/venv_create.py +0 -0
- {skilleter_thingy-0.0.60 → skilleter_thingy-0.0.62}/skilleter_thingy/window_rename.py +0 -0
- {skilleter_thingy-0.0.60 → skilleter_thingy-0.0.62}/skilleter_thingy/xchmod.py +0 -0
- {skilleter_thingy-0.0.60 → skilleter_thingy-0.0.62}/skilleter_thingy/yamlcheck.py +0 -0
- {skilleter_thingy-0.0.60 → skilleter_thingy-0.0.62}/skilleter_thingy.egg-info/SOURCES.txt +0 -0
- {skilleter_thingy-0.0.60 → skilleter_thingy-0.0.62}/skilleter_thingy.egg-info/dependency_links.txt +0 -0
- {skilleter_thingy-0.0.60 → skilleter_thingy-0.0.62}/skilleter_thingy.egg-info/entry_points.txt +0 -0
- {skilleter_thingy-0.0.60 → skilleter_thingy-0.0.62}/skilleter_thingy.egg-info/requires.txt +0 -0
- {skilleter_thingy-0.0.60 → skilleter_thingy-0.0.62}/skilleter_thingy.egg-info/top_level.txt +0 -0
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: skilleter_thingy
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.62
|
|
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
|
Classifier: Programming Language :: Python :: 3
|
|
8
8
|
Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
|
|
9
9
|
Classifier: Operating System :: OS Independent
|
|
10
|
-
Requires-Python: >=3.
|
|
10
|
+
Requires-Python: >=3.8
|
|
11
11
|
Description-Content-Type: text/markdown
|
|
12
12
|
License-File: LICENSE
|
|
13
13
|
Requires-Dist: imagehash
|
|
@@ -7,7 +7,7 @@ name = "skilleter_thingy"
|
|
|
7
7
|
|
|
8
8
|
# Version must be incremented to install updated Thingy
|
|
9
9
|
|
|
10
|
-
version = "0.0.
|
|
10
|
+
version = "0.0.62"
|
|
11
11
|
|
|
12
12
|
authors = [
|
|
13
13
|
{name="John Skilleter", email="john@skilleter.org.uk"},
|
|
@@ -17,7 +17,7 @@ description = "A collection of useful utilities, mainly aimed at making Git more
|
|
|
17
17
|
|
|
18
18
|
readme = "README.md"
|
|
19
19
|
|
|
20
|
-
requires-python = ">=3.
|
|
20
|
+
requires-python = ">=3.8"
|
|
21
21
|
|
|
22
22
|
classifiers = [
|
|
23
23
|
"Programming Language :: Python :: 3",
|
|
@@ -31,6 +31,7 @@ TF_IGNORE_MSG = 'Unless you have made equivalent changes to your configuration,
|
|
|
31
31
|
|
|
32
32
|
TF_REFRESHING_AND_READING = re.compile(r'.*: (?:Refreshing state\.\.\.|Reading\.\.\.|Still reading\.\.\.|Read complete after |Preparing import\.\.\.).*')
|
|
33
33
|
TF_FINDING_AND_INSTALLING = re.compile(r'- (?:Finding .*[.]{3}|Installing .*[.]{3}|Installed .*)')
|
|
34
|
+
TF_FETCHING_AND_INSTALLING = re.compile(r'(Fetching|Installing|Using) [-a-z0-9_]+ [0-9.]+')
|
|
34
35
|
|
|
35
36
|
TF_UNCHANGED_HIDDEN = re.compile(r' +# \(\d+ unchanged (?:attribute|block|element)s? hidden\)')
|
|
36
37
|
|
|
@@ -40,14 +41,22 @@ TF_HAS_CHANGED_END = re.compile(r' [}]')
|
|
|
40
41
|
TF_READ_DURING_APPLY = re.compile(r' +# [-a-z_.0-9\[\]]+ will be read during apply')
|
|
41
42
|
TF_READ_DURING_APPLY_END = re.compile(r' [}]')
|
|
42
43
|
|
|
44
|
+
TF_TAG_CHANGE_BLOCK_START = re.compile(r'^ +~ +tags(_all)? += +\{$')
|
|
45
|
+
TF_TAG_ENTRY_IGNORE = re.compile(r'^ +".*" += +".*"')
|
|
46
|
+
TF_TAG_CHANGE_BLOCK_END = re.compile(r'^ +}$')
|
|
47
|
+
|
|
43
48
|
TF_MISC_REGEX = \
|
|
44
49
|
[
|
|
45
|
-
{ 'regex': re.compile(r'(Read complete after) \d+s'), 'replace': r'\1 {SECONDS}'}
|
|
50
|
+
{ 'regex': re.compile(r'(Read complete after) \d+s'), 'replace': r'\1 {SECONDS}'},
|
|
51
|
+
{ 'regex': re.compile(r'"(.*:.*)"( = ".*")'), 'replace': r'\1\2'},
|
|
52
|
+
{ 'regex': re.compile(r'"(.*:.*)"( = \[$)'), 'replace': r'\1\2'},
|
|
53
|
+
{ 'regex': re.compile(r'^last "terraform apply":$'), 'replace':r'last "terraform apply" which may have affected this plan:'},
|
|
46
54
|
]
|
|
47
55
|
|
|
48
56
|
TF_IGNORE_LIST = [
|
|
49
57
|
{'start': TF_HAS_CHANGED, 'end': TF_HAS_CHANGED_END},
|
|
50
58
|
{'start': TF_READ_DURING_APPLY, 'end': TF_READ_DURING_APPLY_END},
|
|
59
|
+
{'start': re.compile('(Releasing|Acquiring) state lock. This may take a few moments\.+')},
|
|
51
60
|
]
|
|
52
61
|
|
|
53
62
|
################################################################################
|
|
@@ -140,6 +149,10 @@ def cleanfile(args, infile, outfile):
|
|
|
140
149
|
|
|
141
150
|
collection = []
|
|
142
151
|
|
|
152
|
+
# True if we are processing a tag block
|
|
153
|
+
|
|
154
|
+
in_tag_block = False
|
|
155
|
+
|
|
143
156
|
# Read, process and write stdin to stdout, converting appropriately
|
|
144
157
|
|
|
145
158
|
for data in infile:
|
|
@@ -194,22 +207,31 @@ def cleanfile(args, infile, outfile):
|
|
|
194
207
|
|
|
195
208
|
for ignore in TF_IGNORE_LIST:
|
|
196
209
|
if ignore['start'].fullmatch(clean):
|
|
197
|
-
|
|
210
|
+
if 'end' in ignore:
|
|
211
|
+
ignore_until = ignore['end']
|
|
212
|
+
|
|
213
|
+
logging.info('Found ignore start marker: "%s"', clean)
|
|
214
|
+
logging.info('Skipping until end marker: "%s"', ignore_until.pattern)
|
|
215
|
+
else:
|
|
216
|
+
clean = None
|
|
198
217
|
|
|
199
|
-
logging.info('Found ignore start marker: "%s"', clean)
|
|
200
|
-
logging.info('Skipping until end marker: "%s"', ignore_until.pattern)
|
|
201
218
|
break
|
|
202
219
|
else:
|
|
203
|
-
if
|
|
220
|
+
if TF_TAG_CHANGE_BLOCK_START.fullmatch(clean):
|
|
221
|
+
in_tag_block = True
|
|
222
|
+
|
|
223
|
+
elif TF_TAG_CHANGE_BLOCK_END.fullmatch(clean):
|
|
224
|
+
in_tag_block = False
|
|
225
|
+
|
|
226
|
+
elif TF_UNCHANGED_HIDDEN.fullmatch(clean):
|
|
204
227
|
clean = None
|
|
205
228
|
|
|
206
229
|
elif clean == TF_IGNORE_MSG:
|
|
207
230
|
clean = None
|
|
208
231
|
|
|
209
|
-
elif TF_REFRESHING_AND_READING.match(clean) or TF_FINDING_AND_INSTALLING.fullmatch(clean):
|
|
232
|
+
elif TF_REFRESHING_AND_READING.match(clean) or TF_FINDING_AND_INSTALLING.fullmatch(clean) or TF_FETCHING_AND_INSTALLING.fullmatch(clean):
|
|
210
233
|
# Collect a block of non-deterministically-ordered data
|
|
211
234
|
|
|
212
|
-
logging.info('Adding "%s" to collection', clean)
|
|
213
235
|
collection.append(clean)
|
|
214
236
|
clean = None
|
|
215
237
|
|
|
@@ -225,6 +247,9 @@ def cleanfile(args, infile, outfile):
|
|
|
225
247
|
|
|
226
248
|
collection = []
|
|
227
249
|
|
|
250
|
+
if in_tag_block and clean and TF_TAG_ENTRY_IGNORE.fullmatch(clean):
|
|
251
|
+
clean = None
|
|
252
|
+
|
|
228
253
|
# Write normal output, skipping >1 blank lines
|
|
229
254
|
|
|
230
255
|
if clean is not None and not ignore_until:
|
|
@@ -246,6 +271,10 @@ def cleanfile(args, infile, outfile):
|
|
|
246
271
|
print(f'INTERNAL ERROR: Code never found end of ignore-block marker "{ignore_until.pattern}" - either the Terraform output format has changed, or the log file is incomplete!')
|
|
247
272
|
sys.exit(2)
|
|
248
273
|
|
|
274
|
+
if in_tag_block:
|
|
275
|
+
print('INTERNAL ERROR: Code never found end of tag block marker - either the Terraform output format has changed, or the log file is incomplete!')
|
|
276
|
+
sys.exit(2)
|
|
277
|
+
|
|
249
278
|
################################################################################
|
|
250
279
|
|
|
251
280
|
def main():
|
|
@@ -58,8 +58,8 @@ RE_TIME = [
|
|
|
58
58
|
|
|
59
59
|
{'regex': re.compile(r'[0-9]([.][0-9]*)*\s*(second[s]?)'), 'replace': '{ELAPSED}'},
|
|
60
60
|
|
|
61
|
-
{'find':
|
|
62
|
-
{'
|
|
61
|
+
{'find': '\{DATE\} \{TIME\}', 'replace': '{DATE+TIME}'},
|
|
62
|
+
{'regex': re.compile(r'[0-9]{2}m [0-9]{2}s'), 'replace': '{TIME}'},
|
|
63
63
|
]
|
|
64
64
|
|
|
65
65
|
# SHA values
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: skilleter_thingy
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.62
|
|
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
|
Classifier: Programming Language :: Python :: 3
|
|
8
8
|
Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
|
|
9
9
|
Classifier: Operating System :: OS Independent
|
|
10
|
-
Requires-Python: >=3.
|
|
10
|
+
Requires-Python: >=3.8
|
|
11
11
|
Description-Content-Type: text/markdown
|
|
12
12
|
License-File: LICENSE
|
|
13
13
|
Requires-Dist: imagehash
|
|
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
|
|
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
|
{skilleter_thingy-0.0.60 → skilleter_thingy-0.0.62}/skilleter_thingy/thingy/venv_template.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{skilleter_thingy-0.0.60 → skilleter_thingy-0.0.62}/skilleter_thingy.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
{skilleter_thingy-0.0.60 → skilleter_thingy-0.0.62}/skilleter_thingy.egg-info/entry_points.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|