Skip to content

Commit 0bb9ca3

Browse files
committed
Add finish hook to listeners.
This hook provides the counter-point for setup and provides a place to finalize analysis and possibly store the results externally.
1 parent 5e8f7fd commit 0bb9ca3

File tree

3 files changed

+16
-4
lines changed

3 files changed

+16
-4
lines changed

sc2reader/listeners/apm.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,5 +22,8 @@ def __call__(self, event, replay):
2222
# Count up the APS, APM
2323
minute = event.second/60.0
2424
player.aps[event.second] += 1
25-
player.apm[int(minutes)] += 1
26-
player.avg_apm = sum(player.apm.values())/minutes
25+
player.apm[int(minute)] += 1
26+
27+
def finish(self, replay):
28+
for player in replay.players:
29+
player.avg_apm = sum(player.apm.values())/len(player.apm.keys())

sc2reader/listeners/utils.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,14 @@ class ListenerBase(object):
44
def __init__(self):
55
self.logger = log_utils.get_logger(self.__class__)
66

7+
def setup(self, replay):
8+
pass
9+
710
def accepts(self, event):
811
return true
912

10-
def setup(self, replay):
11-
pass
13+
def __call__(self, event, replay):
14+
raise NotImplementedError()
15+
16+
def finish(self, replay):
17+
pass

sc2reader/resources.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -363,6 +363,9 @@ def start(self):
363363
if listener.accepts(event):
364364
listener(event, self)
365365

366+
for listener in self.listeners:
367+
listener.finish(self)
368+
366369

367370
class Map(Resource):
368371
url_template = 'http://{0}.depot.battle.net:1119/{1}.s2ma'

0 commit comments

Comments
 (0)