From ab6a6ab91c53a4204518b9881fa3e8639891aec3 Mon Sep 17 00:00:00 2001 From: Roxane Date: Thu, 26 Sep 2019 15:39:44 +0200 Subject: [PATCH 1/3] pep8 --- netorcai/message.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/netorcai/message.py b/netorcai/message.py index 8e1d053..5dbf194 100644 --- a/netorcai/message.py +++ b/netorcai/message.py @@ -2,6 +2,7 @@ """Parsing module of the netorcai client library.""" from netorcai.version import metaprotocol_version + class PlayerInfo: def __init__(self, o): self.player_id = o["player_id"] @@ -9,24 +10,28 @@ def __init__(self, o): self.remote_address = o["remote_address"] self.is_connected = o["is_connected"] + def parse_players_info(array): players_infos = list() for element in array: players_infos.append(PlayerInfo(element)) return players_infos + class PlayerActions: def __init__(self, o): self.player_id = o["player_id"] self.turn_number = o["turn_number"] self.actions = o["actions"] + def parse_players_actions(array): players_actions = list() for element in array: players_actions.append(PlayerActions(element)) return players_actions + class LoginAckMessage: def __init__(self, o): self.metaprotocol_version = o["metaprotocol_version"] @@ -34,6 +39,7 @@ def __init__(self, o): print("Warning: netorcai uses version '{}' while netorcai-client-python uses '{}'".format( self.metaprotocol_version, metaprotocol_version())) + class GameStartsMessage: def __init__(self, o): self.player_id = o["player_id"] @@ -45,23 +51,27 @@ def __init__(self, o): self.players_info = parse_players_info(o["players_info"]) self.initial_game_state = o["initial_game_state"] + class GameEndsMessage: def __init__(self, o): self.winner_player_id = o["winner_player_id"] self.game_state = o["game_state"] + class TurnMessage: def __init__(self, o): self.turn_number = o["turn_number"] self.players_info = parse_players_info(o["players_info"]) self.game_state = o["game_state"] + class DoInitMessage: def __init__(self, o): self.nb_players = o["nb_players"] self.nb_special_players = o["nb_special_players"] self.nb_turns_max = o["nb_turns_max"] + class DoTurnMessage: def __init__(self, o): self.player_actions = parse_players_actions(o["player_actions"]) From 3c2e35fd5915dacf1fff9b39deac3f279d2bf539 Mon Sep 17 00:00:00 2001 From: Roxane Date: Thu, 26 Sep 2019 15:46:06 +0200 Subject: [PATCH 2/3] make list parsage more pythonic --- netorcai/message.py | 20 +++----------------- tests/test_message.py | 27 --------------------------- 2 files changed, 3 insertions(+), 44 deletions(-) diff --git a/netorcai/message.py b/netorcai/message.py index 5dbf194..12b827d 100644 --- a/netorcai/message.py +++ b/netorcai/message.py @@ -11,13 +11,6 @@ def __init__(self, o): self.is_connected = o["is_connected"] -def parse_players_info(array): - players_infos = list() - for element in array: - players_infos.append(PlayerInfo(element)) - return players_infos - - class PlayerActions: def __init__(self, o): self.player_id = o["player_id"] @@ -25,13 +18,6 @@ def __init__(self, o): self.actions = o["actions"] -def parse_players_actions(array): - players_actions = list() - for element in array: - players_actions.append(PlayerActions(element)) - return players_actions - - class LoginAckMessage: def __init__(self, o): self.metaprotocol_version = o["metaprotocol_version"] @@ -48,7 +34,7 @@ def __init__(self, o): self.nb_turns_max = o["nb_turns_max"] self.ms_before_first_turn = o["milliseconds_before_first_turn"] self.ms_between_turns = o["milliseconds_between_turns"] - self.players_info = parse_players_info(o["players_info"]) + self.players_info = [PlayerInfo(info) for info in o["players_info"]] self.initial_game_state = o["initial_game_state"] @@ -61,7 +47,7 @@ def __init__(self, o): class TurnMessage: def __init__(self, o): self.turn_number = o["turn_number"] - self.players_info = parse_players_info(o["players_info"]) + self.players_info = [PlayerInfo(info) for info in o["players_info"]] self.game_state = o["game_state"] @@ -74,4 +60,4 @@ def __init__(self, o): class DoTurnMessage: def __init__(self, o): - self.player_actions = parse_players_actions(o["player_actions"]) + self.player_actions = [PlayerActions(action) for action in o["player_actions"]] diff --git a/tests/test_message.py b/tests/test_message.py index dbac17d..7aca1b6 100644 --- a/tests/test_message.py +++ b/tests/test_message.py @@ -16,33 +16,6 @@ def test_player_info(): assert pinfo.remote_address == "127.0.0.1:59840" assert pinfo.is_connected == True -def test_parse_players_info(): - s = '''[ - { - "player_id": 0, - "nickname": "jugador", - "remote_address": "127.0.0.1:59840", - "is_connected": true - }, - { - "player_id": 1, - "nickname": "bot", - "remote_address": "127.0.0.1:59842", - "is_connected": false - } - ]''' - - pinfos = parse_players_info(json.loads(s)) - assert len(pinfos) == 2 - assert pinfos[0].player_id == 0 - assert pinfos[0].nickname == "jugador" - assert pinfos[0].remote_address == "127.0.0.1:59840" - assert pinfos[0].is_connected == True - - assert pinfos[1].player_id == 1 - assert pinfos[1].nickname == "bot" - assert pinfos[1].remote_address == "127.0.0.1:59842" - assert pinfos[1].is_connected == False def test_game_starts(): s = '''{ From eeeeacfd3ab6440a383d437399a90bc463c85a97 Mon Sep 17 00:00:00 2001 From: Roxane Date: Thu, 26 Sep 2019 15:53:49 +0200 Subject: [PATCH 3/3] add __repr__ for all message types --- netorcai/message.py | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/netorcai/message.py b/netorcai/message.py index 12b827d..cafba44 100644 --- a/netorcai/message.py +++ b/netorcai/message.py @@ -10,6 +10,9 @@ def __init__(self, o): self.remote_address = o["remote_address"] self.is_connected = o["is_connected"] + def __repr__(self): + return "" % (self.nickname, self.player_id) + class PlayerActions: def __init__(self, o): @@ -17,6 +20,9 @@ def __init__(self, o): self.turn_number = o["turn_number"] self.actions = o["actions"] + def __repr__(self): + return "" % self.__dict__ + class LoginAckMessage: def __init__(self, o): @@ -25,6 +31,9 @@ def __init__(self, o): print("Warning: netorcai uses version '{}' while netorcai-client-python uses '{}'".format( self.metaprotocol_version, metaprotocol_version())) + def __repr__(self): + return "" % self.__dict__ + class GameStartsMessage: def __init__(self, o): @@ -37,12 +46,19 @@ def __init__(self, o): self.players_info = [PlayerInfo(info) for info in o["players_info"]] self.initial_game_state = o["initial_game_state"] + def __repr__(self): + return "" % ( + self.nb_players, self.nb_special_players, self.nb_turns_max) + class GameEndsMessage: def __init__(self, o): self.winner_player_id = o["winner_player_id"] self.game_state = o["game_state"] + def __repr__(self): + return "" % self.winner_player_id + class TurnMessage: def __init__(self, o): @@ -50,6 +66,9 @@ def __init__(self, o): self.players_info = [PlayerInfo(info) for info in o["players_info"]] self.game_state = o["game_state"] + def __repr__(self): + return "" % self.turn_number + class DoInitMessage: def __init__(self, o): @@ -57,7 +76,14 @@ def __init__(self, o): self.nb_special_players = o["nb_special_players"] self.nb_turns_max = o["nb_turns_max"] + def __repr__(self): + return "" % ( + self.nb_players, self.nb_special_players, self.nb_turns_max) + class DoTurnMessage: def __init__(self, o): self.player_actions = [PlayerActions(action) for action in o["player_actions"]] + + def __repr__(self): + return "" % self.__dict__