Blizzard / s2protocol

Python library to decode StarCraft II replay protocols
MIT License
622 stars 111 forks source link

s2_cli.py doesn't print game, message, or tracker events when using Python 3 #96

Open mikeuehara opened 5 years ago

mikeuehara commented 5 years ago

I've been having issues with the s2_cli.py script in Python 3.7. The game, message, and tracker events for a replay get printed just fine in Python 2.7, but never in Python 3.7.

After some debugging, I think I've narrowed it down to how the built-in map() function has changed between Python 2 and Python 3. map() returns a list in Python 2, but it returns an iterator in Python 3. So:

map(process_event, protocol.decode_replay_game_events(contents))

calls process_event on each event in Python 2, but does nothing in Python 3 until you start stepping through the iterator.

I fixed this issue in my local copy, but I haven't really used github much so I'll look into making a pull request.

NoviceYin commented 5 years ago

same here, so I coded it...