Skip to content

Commit ae84117

Browse files
committed
format: make the code follow pep8 rules
1 parent 751d9c6 commit ae84117

File tree

6 files changed

+107
-48
lines changed

6 files changed

+107
-48
lines changed

hooklib.py

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,16 @@
1-
"""Hook helpers library
1+
"""Hook helpers library
22
3-
You can use this library to make it easier to write hooks that work with multiple
4-
source control system (git, svn, hg ...).
3+
You can use this library to make it easier to write hooks
4+
that work with multiple source control system (git, svn, hg ...).
55
It currently only works for git.
66
See https://github.com/charignon/hooklib for examples"""
77
import threading
88
import sys
99
from Queue import Queue
10-
from hooklib_input import inputparser
10+
from hooklib_input import inputparser
1111

12-
def runhooks(phase, hooks, parallel = False):
12+
13+
def runhooks(phase, hooks, parallel=False):
1314
if parallel:
1415
runner = parallelhookrunner(phase)
1516
else:
@@ -23,6 +24,7 @@ def runhooks(phase, hooks, parallel = False):
2324
if not ret:
2425
sys.exit(1)
2526

27+
2628
class hooklog(object):
2729
"""Collect logs from running hooks"""
2830
def __init__(self):
@@ -43,6 +45,7 @@ def aggregate(logs):
4345
ret.msgs = msgs
4446
return ret
4547

48+
4649
class hookrunner(object):
4750
def __init__(self, phase=None, phases=None):
4851
self.runlist = []
@@ -65,9 +68,10 @@ def evaluate(self):
6568

6669
if not hookpass:
6770
success = False
68-
71+
6972
return success
7073

74+
7175
class parallelhookrunner(hookrunner):
7276
def evaluateone(self, hook):
7377
log = hooklog()
@@ -84,7 +88,7 @@ def evaluate(self):
8488
for t in threads:
8589
t.join()
8690
res, logs = [], []
87-
91+
8892
for h in range(len(self.runlist)):
8993
r, l = self.resultqueue.get()
9094
res.append(r)
@@ -93,7 +97,7 @@ def evaluate(self):
9397
self.log = hooklog.aggregate(logs)
9498
return all(res)
9599

96-
100+
97101
class basehook(object):
98-
"""A basehook is called for each rev that goes through, once with the revdata"""
102+
"""A basehook to be subclassed by user implemented hooks"""
99103
pass

hooklib_git.py

Lines changed: 36 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,35 @@
11
"""Package containing all the input parsers specific to git
2-
Their implementation match what is described at https://git-scm.com/docs/githooks"""
2+
3+
Their implementation match what is described at
4+
https://git-scm.com/docs/githooks"""
35

46
from mercurial import util
57
import hooklib_input
68
import sys
79
import os
810

11+
912
class basegitinputparser(object):
1013
def scm(self):
1114
return 'git'
1215

16+
1317
class gitinforesolver(object):
1418
def __init__(self):
1519
self.reporoot = None
1620
if 'GIT_DIR' in os.environ:
17-
self.reporoot = os.path.dirname(os.path.abspath(os.environ["GIT_DIR"]))
21+
gitdir = os.environ["GIT_DIR"]
22+
self.reporoot = os.path.dirname(os.path.abspath(gitdir))
1823
else:
19-
self.reporoot = util.popen4("git rev-parse --show-toplevel")[1].read().strip()
24+
self.reporoot = util.popen4("git rev-parse --show-toplevel")[1]\
25+
.read()\
26+
.strip()
2027

2128
self._revs = None
2229

2330
def commitmessagefor(self, rev):
24-
return util.popen4("git cat-file commit %s | sed '1,/^$/d'" % rev)[1].read().strip()
31+
return util.popen4("git cat-file commit %s | sed '1,/^$/d'" % rev)[1]\
32+
.read().strip()
2533

2634
@property
2735
def head(self):
@@ -31,15 +39,18 @@ def head(self):
3139
def revs(self):
3240
if self._revs:
3341
return self._revs
34-
raw = util.popen4('git rev-list %s..%s' %(self.old, self.new))[1].read().strip()
42+
raw = util.popen4('git rev-list %s..%s' % (self.old, self.new))[1]\
43+
.read()\
44+
.strip()
3545
if raw != '':
3646
return raw.split("\n")
3747
else:
3848
return []
39-
49+
4050
def setrevs(self, revs):
4151
self._revs = revs
4252

53+
4354
class gitpostupdateinputparser(basegitinputparser):
4455
"""Input parser for the 'post-update' phase
4556
@@ -53,6 +64,7 @@ def parse(self):
5364
resolver.setrevs(revs)
5465
return resolver
5566

67+
5668
class gitupdateinputparser(basegitinputparser):
5769
"""Input parser for the 'update' phase
5870
@@ -70,6 +82,7 @@ def parse(self):
7082
resolver.new = new
7183
return resolver
7284

85+
7386
class gitprecommitinputparser(basegitinputparser):
7487
"""Input parser for the 'pre-commit' phase
7588
@@ -80,6 +93,7 @@ def parse(self):
8093
resolver = gitinforesolver()
8194
return resolver
8295

96+
8397
class gitpreapplypatchinputparser(basegitinputparser):
8498
"""Input parser for the 'pre-applypatch' phase
8599
@@ -90,6 +104,7 @@ def parse(self):
90104
resolver = gitinforesolver()
91105
return resolver
92106

107+
93108
class gitpostapplypatchinputparser(basegitinputparser):
94109
"""Input parser for the 'post-applypatch' phase
95110
@@ -100,6 +115,7 @@ def parse(self):
100115
resolver = gitinforesolver()
101116
return resolver
102117

118+
103119
class gitpostcommitinputparser(basegitinputparser):
104120
"""Input parser for the 'post-commit' phase
105121
@@ -110,6 +126,7 @@ def parse(self):
110126
resolver = gitinforesolver()
111127
return resolver
112128

129+
113130
class gitpreautogcinputparser(basegitinputparser):
114131
"""input parser for the 'pre-autogc' phase
115132
@@ -120,6 +137,7 @@ def parse(self):
120137
resolver = gitinforesolver()
121138
return resolver
122139

140+
123141
class gitreceiveinputparser(basegitinputparser):
124142
def parse(self):
125143
resolver = gitinforesolver()
@@ -128,6 +146,7 @@ def parse(self):
128146
resolver.receivedrevs = revs
129147
return resolver
130148

149+
131150
class gitpostreceiveinputparser(gitreceiveinputparser):
132151
"""input parser for the 'post-receive' phase
133152
@@ -138,6 +157,7 @@ class gitpostreceiveinputparser(gitreceiveinputparser):
138157
- head (str) => sha1 of HEAD"""
139158
pass
140159

160+
141161
class gitprereceiveinputparser(gitreceiveinputparser):
142162
"""input parser for the 'pre-receive' phase
143163
@@ -148,6 +168,7 @@ class gitprereceiveinputparser(gitreceiveinputparser):
148168
- head (str) => sha1 of HEAD"""
149169
pass
150170

171+
151172
class gitprepushinputparser(basegitinputparser):
152173
"""input parser for the 'pre-push' phase
153174
@@ -163,6 +184,7 @@ def parse(self):
163184
resolver.revstobepushed = revs
164185
return resolver
165186

187+
166188
class gitapplypatchmsginputparser(basegitinputparser):
167189
"""input parser for the 'applypatch-msg' phase
168190
@@ -176,6 +198,7 @@ def parse(self):
176198
resolver.messagefile = messagefile
177199
return resolver
178200

201+
179202
class gitprerebaseinputparser(basegitinputparser):
180203
"""input parser for the 'pre-rebase' phase
181204
@@ -195,6 +218,7 @@ def parse(self):
195218
resolver.rebased = rebased
196219
return resolver
197220

221+
198222
class gitcommitmsginputparser(basegitinputparser):
199223
"""input parser for the 'commit-msg' phase
200224
@@ -208,25 +232,27 @@ def parse(self):
208232
resolver.messagefile = messagefile
209233
return resolver
210234

235+
211236
class gitpreparecommitmsginputparser(basegitinputparser):
212237
"""input parser for the 'prepare-commit-msg' phase
213238
214239
available fields:
215240
- reporoot (str) => root of the repo
216241
- messagefile (str) => filename of the file containing the commit message
217-
- mode (str) => could be one of (None, 'message', 'template', 'merge', 'squash', 'commit')
218-
- sha (str) => could be a sha1 or None, relevant only when mode is 'commit'
242+
- mode (str) => could be one of
243+
(None, 'message', 'template', 'merge', 'squash', 'commit')
244+
- sha (str) => a sha1 or None, not None only when mode == 'commit'
219245
- head (str) => sha1 of HEAD"""
220246
def parse(self):
247+
allowedmodes = ('message', 'template', 'merge', 'squash', 'commit')
221248
messagefile = sys.argv[1]
222249
mode = None
223250
sha = None
224251
if len(sys.argv) > 2:
225252
mode = sys.argv[2]
226253
if len(sys.argv) > 3:
227254
sha = sys.argv[3]
228-
if (mode is not None and
229-
mode not in ('message', 'template', 'merge', 'squash', 'commit')):
255+
if mode is not None and mode not in allowedmodes:
230256
raise ValueError('Invalid Second Argument: mode')
231257
if mode != 'commit' and sha is not None:
232258
raise ValueError('Invalid Third Argument')
@@ -237,4 +263,3 @@ def parse(self):
237263
resolver.mode = mode
238264
resolver.sha = sha
239265
return resolver
240-

hooklib_hg.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,17 @@
11
from mercurial import util
22
import os
33

4+
45
class basehginputparser(object):
56
def scm(self):
67
return 'hg'
78

9+
810
class hginforesolver(basehginputparser):
911
def commitmessagefor(self, rev):
1012
return util.popen4("hg log -r %s -T {desc}" % rev)[1].read()
1113

14+
1215
class hgupdateinputparser(basehginputparser):
1316
def parse(self):
1417
rev = os.environ['HG_NODE']

0 commit comments

Comments
 (0)