diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index 4d3a579..6f6415e 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -17,7 +17,7 @@ jobs: - name: Setup Python uses: actions/setup-python@v4 with: - python-version: "3.10" + python-version: "3.11" - name: Install dependencies run: | @@ -25,7 +25,7 @@ jobs: pipenv install --dev - name: Check formatting - run: pipenv run black --target-version=py310 . + run: pipenv run black --target-version=py311 . - name: Check types run: pipenv run mypy rps rps-sim.py diff --git a/Pipfile b/Pipfile index 82d3192..e8543e8 100644 --- a/Pipfile +++ b/Pipfile @@ -22,7 +22,7 @@ mypy-extensions = "*" mypy = "*" [requires] -python_version = "3.10" +python_version = "3.11" [pipenv] allow_prereleases = true diff --git a/Pipfile.lock b/Pipfile.lock index a1e9c47..c6a571f 100644 --- a/Pipfile.lock +++ b/Pipfile.lock @@ -1,11 +1,11 @@ { "_meta": { "hash": { - "sha256": "1dd7436d3bb287d8b187a5c5c9765431941777c6ccc27ed25fc9e24f85acec92" + "sha256": "ff976821a4ddf289f12ce9454de3296400039a0b4a89ba832daa1d79161f6e22" }, "pipfile-spec": 6, "requires": { - "python_version": "3.10" + "python_version": "3.11" }, "sources": [ { @@ -18,11 +18,11 @@ "default": { "click": { "hashes": [ - "sha256:48ee849951919527a045bfe3bf7baa8a959c423134e1a5b98c05c20ba75a1cbd", - "sha256:fa244bb30b3b5ee2cae3da8f55c9e5e0c0e86093306301fb418eb9dc40fbded5" + "sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28", + "sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de" ], "index": "pypi", - "version": "==8.1.6" + "version": "==8.1.7" }, "colorama": { "hashes": [ @@ -120,11 +120,11 @@ }, "click": { "hashes": [ - "sha256:48ee849951919527a045bfe3bf7baa8a959c423134e1a5b98c05c20ba75a1cbd", - "sha256:fa244bb30b3b5ee2cae3da8f55c9e5e0c0e86093306301fb418eb9dc40fbded5" + "sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28", + "sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de" ], "index": "pypi", - "version": "==8.1.6" + "version": "==8.1.7" }, "colorama": { "hashes": [ @@ -136,11 +136,11 @@ }, "exceptiongroup": { "hashes": [ - "sha256:12c3e887d6485d16943a309616de20ae5582633e0a2eda17f4e10fd61c1e8af5", - "sha256:e346e69d186172ca7cf029c8c1d16235aa0e04035e5750b4b95039e65204328f" + "sha256:097acd85d473d75af5bb98e41b61ff7fe35efe6675e4f9370ec6ec5126d160e9", + "sha256:343280667a4585d195ca1cf9cef84a4e178c4b6cf2274caef9859782b567d5e3" ], "markers": "python_version < '3.11'", - "version": "==1.1.2" + "version": "==1.1.3" }, "iniconfig": { "hashes": [ @@ -152,31 +152,36 @@ }, "mypy": { "hashes": [ - "sha256:1fe816e26e676c1311b9e04fd576543b873576d39439f7c24c8e5c7728391ecf", - "sha256:2c9d570f53908cbea326ad8f96028a673b814d9dca7515bf71d95fa662c3eb6f", - "sha256:35b13335c6c46a386577a51f3d38b2b5d14aa619e9633bb756bd77205e4bd09f", - "sha256:372fd97293ed0076d52695849f59acbbb8461c4ab447858cdaeaf734a396d823", - "sha256:42170e68adb1603ccdc55a30068f72bcfcde2ce650188e4c1b2a93018b826735", - "sha256:69b32d0dedd211b80f1b7435644e1ef83033a2af2ac65adcdc87c38db68a86be", - "sha256:725b57a19b7408ef66a0fd9db59b5d3e528922250fb56e50bded27fea9ff28f0", - "sha256:769ddb6bfe55c2bd9c7d6d7020885a5ea14289619db7ee650e06b1ef0852c6f4", - "sha256:79c520aa24f21852206b5ff2cf746dc13020113aa73fa55af504635a96e62718", - "sha256:84cf9f7d8a8a22bb6a36444480f4cbf089c917a4179fbf7eea003ea931944a7f", - "sha256:9166186c498170e1ff478a7f540846b2169243feb95bc228d39a67a1a450cdc6", - "sha256:a2500ad063413bc873ae102cf655bf49889e0763b260a3a7cf544a0cbbf7e70a", - "sha256:a551ed0fc02455fe2c1fb0145160df8336b90ab80224739627b15ebe2b45e9dc", - "sha256:ad3109bec37cc33654de8db30fe8ff3a1bb57ea65144167d68185e6dced9868d", - "sha256:b4ea3a0241cb005b0ccdbd318fb99619b21ae51bcf1660b95fc22e0e7d3ba4a1", - "sha256:c36011320e452eb30bec38b9fd3ba20569dc9545d7d4540d967f3ea1fab9c374", - "sha256:c8a7444d6fcac7e2585b10abb91ad900a576da7af8f5cffffbff6065d9115813", - "sha256:cbf18f8db7e5f060d61c91e334d3b96d6bb624ddc9ee8a1cde407b737acbca2c", - "sha256:d145b81a8214687cfc1f85c03663a5bbe736777410e5580e54d526e7e904f564", - "sha256:eec5c927aa4b3e8b4781840f1550079969926d0a22ce38075f6cfcf4b13e3eb4", - "sha256:f3460f34b3839b9bc84ee3ed65076eb827cd99ed13ed08d723f9083cada4a212", - "sha256:f3940cf5845b2512b3ab95463198b0cdf87975dfd17fdcc6ce9709a9abe09e69" - ], - "index": "pypi", - "version": "==1.5.0" + "sha256:159aa9acb16086b79bbb0016145034a1a05360626046a929f84579ce1666b315", + "sha256:258b22210a4a258ccd077426c7a181d789d1121aca6db73a83f79372f5569ae0", + "sha256:26f71b535dfc158a71264e6dc805a9f8d2e60b67215ca0bfa26e2e1aa4d4d373", + "sha256:26fb32e4d4afa205b24bf645eddfbb36a1e17e995c5c99d6d00edb24b693406a", + "sha256:2fc3a600f749b1008cc75e02b6fb3d4db8dbcca2d733030fe7a3b3502902f161", + "sha256:32cb59609b0534f0bd67faebb6e022fe534bdb0e2ecab4290d683d248be1b275", + "sha256:330857f9507c24de5c5724235e66858f8364a0693894342485e543f5b07c8693", + "sha256:361da43c4f5a96173220eb53340ace68cda81845cd88218f8862dfb0adc8cddb", + "sha256:4a465ea2ca12804d5b34bb056be3a29dc47aea5973b892d0417c6a10a40b2d65", + "sha256:51cb1323064b1099e177098cb939eab2da42fea5d818d40113957ec954fc85f4", + "sha256:57b10c56016adce71fba6bc6e9fd45d8083f74361f629390c556738565af8eeb", + "sha256:596fae69f2bfcb7305808c75c00f81fe2829b6236eadda536f00610ac5ec2243", + "sha256:5d627124700b92b6bbaa99f27cbe615c8ea7b3402960f6372ea7d65faf376c14", + "sha256:6ac9c21bfe7bc9f7f1b6fae441746e6a106e48fc9de530dea29e8cd37a2c0cc4", + "sha256:82cb6193de9bbb3844bab4c7cf80e6227d5225cc7625b068a06d005d861ad5f1", + "sha256:8f772942d372c8cbac575be99f9cc9d9fb3bd95c8bc2de6c01411e2c84ebca8a", + "sha256:9fece120dbb041771a63eb95e4896791386fe287fefb2837258925b8326d6160", + "sha256:a156e6390944c265eb56afa67c74c0636f10283429171018446b732f1a05af25", + "sha256:a9ec1f695f0c25986e6f7f8778e5ce61659063268836a38c951200c57479cc12", + "sha256:abed92d9c8f08643c7d831300b739562b0a6c9fcb028d211134fc9ab20ccad5d", + "sha256:b031b9601f1060bf1281feab89697324726ba0c0bae9d7cd7ab4b690940f0b92", + "sha256:c543214ffdd422623e9fedd0869166c2f16affe4ba37463975043ef7d2ea8770", + "sha256:d28ddc3e3dfeab553e743e532fb95b4e6afad51d4706dd22f28e1e5e664828d2", + "sha256:f33592ddf9655a4894aef22d134de7393e95fcbdc2d15c1ab65828eee5c66c70", + "sha256:f6b0e77db9ff4fda74de7df13f30016a0a663928d669c9f2c057048ba44f09bb", + "sha256:f757063a83970d67c444f6e01d9550a7402322af3557ce7630d3c957386fa8f5", + "sha256:ff0cedc84184115202475bbb46dd99f8dcb87fe24d5d0ddfc0fe6b8575c88d2f" + ], + "index": "pypi", + "version": "==1.5.1" }, "mypy-extensions": { "hashes": [ diff --git a/rps-sim.py b/rps-sim.py index 5faebdc..d2a89fb 100644 --- a/rps-sim.py +++ b/rps-sim.py @@ -5,9 +5,13 @@ from rps.game import play_games - @click.command -@click.option("--games", default=3, type=click.IntRange(min=1, max=1000), help="Number of games to play") +@click.option( + "--games", + default=3, + type=click.IntRange(min=1, max=1000), + help="Number of games to play", +) @click.option("--p1-name", default="Player 1", help="Name of first player") @click.option("--p2-name", default="Player 2", help="Name of second player") def simple_sim(games: int, p1_name: str, p2_name: str) -> None: @@ -22,5 +26,5 @@ def simple_sim(games: int, p1_name: str, p2_name: str) -> None: print("Simulation finished.") -if __name__ == '__main__': - simple_sim() \ No newline at end of file +if __name__ == "__main__": + simple_sim() diff --git a/rps/game.py b/rps/game.py index 7899698..d0a7962 100644 --- a/rps/game.py +++ b/rps/game.py @@ -1,13 +1,16 @@ from .player import Player from .play import PlayResult + def play_game(firstPlayer: Player, secondPlayer: Player) -> PlayResult: firstPlay = firstPlayer.play() secondPlay = secondPlayer.play() return firstPlay.match(secondPlay) -def play_games(firstPlayer: Player, secondPlayer: Player, times: int) -> list[PlayResult]: +def play_games( + firstPlayer: Player, secondPlayer: Player, times: int +) -> list[PlayResult]: results = [] for _ in range(times): results.append(play_game(firstPlayer, secondPlayer)) diff --git a/rps/player.py b/rps/player.py index f20ed59..925cb2f 100644 --- a/rps/player.py +++ b/rps/player.py @@ -17,5 +17,5 @@ def __init__(self, play_strategy: PlaySelectionStrategy, name: str = "Bot Player self.__strategy = play_strategy self.name = name - def play(self) -> Play: + def play(self) -> Play: return self.__strategy.play()