diff --git a/example/bot_vs_ai.py b/example/bot_vs_ai.py index 66f2367..2dcc1a6 100644 --- a/example/bot_vs_ai.py +++ b/example/bot_vs_ai.py @@ -2,12 +2,13 @@ import os +from s2clientprotocol.common_pb2 import Race + from pycraft2.bot import BotInterface from pycraft2.main import run_local_match from pycraft2.map import Map from pycraft2.match import Match from pycraft2.player import CreatePlayer -from pycraft2.s2clientprotocol.common_pb2 import Race EXAMPLE_MAPS_DIR = os.path.dirname(os.path.realpath(__file__)) + "/maps" diff --git a/example/bot_vs_bot.py b/example/bot_vs_bot.py index d63e77d..a1acd72 100644 --- a/example/bot_vs_bot.py +++ b/example/bot_vs_bot.py @@ -2,12 +2,13 @@ import os +from s2clientprotocol.common_pb2 import Race + from pycraft2.bot import BotInterface from pycraft2.main import run_local_match from pycraft2.map import Map from pycraft2.match import Match from pycraft2.player import CreatePlayer -from pycraft2.s2clientprotocol.common_pb2 import Race EXAMPLE_MAPS_DIR = os.path.dirname(os.path.realpath(__file__)) + "/maps" diff --git a/pycraft2/controller.py b/pycraft2/controller.py index 3e93be2..e8549d7 100644 --- a/pycraft2/controller.py +++ b/pycraft2/controller.py @@ -14,17 +14,13 @@ from typing import Optional import structlog +from s2clientprotocol.sc2api_pb2 import PlayerResult, ResponseObservation, Status from pycraft2.client import GameClient from pycraft2.match import Match, MatchResult from pycraft2.message import ResponseMessage from pycraft2.player import Bot from pycraft2.port import MatchPortConfig -from pycraft2.s2clientprotocol.sc2api_pb2 import ( - PlayerResult, - ResponseObservation, - Status, -) from pycraft2.transport import Messenger LOGGER = structlog.get_logger(__name__) diff --git a/pycraft2/main.py b/pycraft2/main.py index b4f85d8..b8f8e31 100644 --- a/pycraft2/main.py +++ b/pycraft2/main.py @@ -10,12 +10,13 @@ import asyncio from typing import Optional +from s2clientprotocol.common_pb2 import Race + from pycraft2.bot import BotInterface from pycraft2.ladder import LadderArg, LadderRunner from pycraft2.match import Match from pycraft2.player import CreatePlayer, PlayerClientConfiguration from pycraft2.runner import LocalRunner -from pycraft2.s2clientprotocol.common_pb2 import Race def run_local_match(match_config: Match) -> None: diff --git a/pycraft2/match.py b/pycraft2/match.py index 4e9043a..4f8d696 100644 --- a/pycraft2/match.py +++ b/pycraft2/match.py @@ -7,9 +7,10 @@ """ from dataclasses import dataclass +from s2clientprotocol.sc2api_pb2 import Result + from pycraft2.map import Map from pycraft2.player import Player -from pycraft2.s2clientprotocol.sc2api_pb2 import Result @dataclass(frozen=True, slots=True) diff --git a/pycraft2/message.py b/pycraft2/message.py index cb3a205..e99aa2a 100644 --- a/pycraft2/message.py +++ b/pycraft2/message.py @@ -31,9 +31,8 @@ from dataclasses import InitVar, dataclass, field from typing import Any, Optional -from pycraft2.map import Map -from pycraft2.s2clientprotocol.common_pb2 import Race -from pycraft2.s2clientprotocol.sc2api_pb2 import ( +from s2clientprotocol.common_pb2 import Race +from s2clientprotocol.sc2api_pb2 import ( AIBuild, Difficulty, InterfaceOptions, @@ -54,6 +53,8 @@ Status, ) +from pycraft2.map import Map + @dataclass(slots=True) class _ProtocolMessage(ABC): diff --git a/pycraft2/player.py b/pycraft2/player.py index 95b7f89..6bd3f43 100644 --- a/pycraft2/player.py +++ b/pycraft2/player.py @@ -23,10 +23,10 @@ # pycraft2.util.unused_port_generator because of dataclass limitations for default # arguments and generators. from portpicker import pick_unused_port # pyright: ignore +from s2clientprotocol.common_pb2 import Race +from s2clientprotocol.sc2api_pb2 import AIBuild, Difficulty, PlayerType from pycraft2.bot import BotInterface -from pycraft2.s2clientprotocol.common_pb2 import Race -from pycraft2.s2clientprotocol.sc2api_pb2 import AIBuild, Difficulty, PlayerType LOGGER = structlog.get_logger(__name__) diff --git a/pycraft2/transport.py b/pycraft2/transport.py index c6ced34..282993f 100644 --- a/pycraft2/transport.py +++ b/pycraft2/transport.py @@ -9,6 +9,7 @@ from typing import Optional import structlog +from s2clientprotocol.sc2api_pb2 import Status from pycraft2.match import Match from pycraft2.message import ( @@ -28,7 +29,6 @@ ) from pycraft2.player import Bot, Computer, Player from pycraft2.port import MatchPortConfig -from pycraft2.s2clientprotocol.sc2api_pb2 import Status from pycraft2.websocket import Websocket LOGGER = structlog.get_logger(__name__) diff --git a/requirements/base.in b/requirements/base.in index 9cf84e3..e34271f 100644 --- a/requirements/base.in +++ b/requirements/base.in @@ -3,3 +3,4 @@ backoff structlog protobuf<4 portpicker +s2clientprotocol diff --git a/requirements/base.txt b/requirements/base.txt index 68ee294..4774998 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -2,7 +2,7 @@ # This file is autogenerated by pip-compile with Python 3.10 # by the following command: # -# pip-compile --allow-unsafe --config=pyproject.toml --resolver=backtracking requirements/base.in +# pip-compile --allow-unsafe --config=pyproject.toml requirements/base.in # aiohttp==3.8.4 # via -r requirements/base.in @@ -29,9 +29,13 @@ multidict==6.0.4 portpicker==1.5.2 # via -r requirements/base.in protobuf==3.20.3 - # via -r requirements/base.in + # via + # -r requirements/base.in + # s2clientprotocol psutil==5.9.5 # via portpicker +s2clientprotocol==5.0.11.90136.0 + # via -r requirements/base.in structlog==23.1.0 # via -r requirements/base.in yarl==1.9.2 diff --git a/requirements/dev.in b/requirements/dev.in index 4c00ef4..3602e83 100644 --- a/requirements/dev.in +++ b/requirements/dev.in @@ -8,3 +8,4 @@ pyright ruff sphinx sphinx-rtd-theme +types-s2clientprotocol diff --git a/requirements/dev.txt b/requirements/dev.txt index 69b3476..fcbc391 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -2,7 +2,7 @@ # This file is autogenerated by pip-compile with Python 3.10 # by the following command: # -# pip-compile --allow-unsafe --config=pyproject.toml --resolver=backtracking requirements/dev.in +# pip-compile --allow-unsafe --config=pyproject.toml requirements/dev.in # alabaster==0.7.13 # via sphinx @@ -93,7 +93,11 @@ tomli==2.0.1 # -c requirements/test.txt # black types-protobuf==4.23.0.1 - # via mypy-protobuf + # via + # mypy-protobuf + # types-s2clientprotocol +types-s2clientprotocol==5.0.0.1 + # via -r requirements/dev.in urllib3==2.0.3 # via requests diff --git a/requirements/test.txt b/requirements/test.txt index 452f524..cedda7e 100644 --- a/requirements/test.txt +++ b/requirements/test.txt @@ -2,7 +2,7 @@ # This file is autogenerated by pip-compile with Python 3.10 # by the following command: # -# pip-compile --allow-unsafe --config=pyproject.toml --resolver=backtracking requirements/test.in +# pip-compile --allow-unsafe --config=pyproject.toml requirements/test.in # cachetools==5.3.1 # via tox diff --git a/test/test_e2e.py b/test/test_e2e.py index d3df74d..2c17b83 100644 --- a/test/test_e2e.py +++ b/test/test_e2e.py @@ -7,12 +7,13 @@ import os +from s2clientprotocol.common_pb2 import Race + from pycraft2.bot import BotInterface from pycraft2.main import run_local_match from pycraft2.map import Map from pycraft2.match import Match from pycraft2.player import CreatePlayer -from pycraft2.s2clientprotocol.common_pb2 import Race EXAMPLE_MAPS_DIR = os.path.dirname(os.path.realpath(__file__)) + "/maps" diff --git a/test/test_player.py b/test/test_player.py index ad66859..72688b8 100644 --- a/test/test_player.py +++ b/test/test_player.py @@ -3,11 +3,11 @@ from typing import Optional import pytest +from s2clientprotocol.common_pb2 import Race +from s2clientprotocol.sc2api_pb2 import AIBuild, Difficulty, PlayerType from pycraft2.bot import BotInterface from pycraft2.player import Bot, Computer, CreatePlayer, PlayerClientConfiguration -from pycraft2.s2clientprotocol.common_pb2 import Race -from pycraft2.s2clientprotocol.sc2api_pb2 import AIBuild, Difficulty, PlayerType class _MockBot(BotInterface):