blob: 789abc1f8468f85bb546c5348e662f0694ca52cb [file] [log] [blame]
"""Tests for singledispatch-method"""
# pylint: disable=missing-class-docstring, missing-function-docstring,too-few-public-methods
from functools import singledispatch
class Board1:
@singledispatch # [singledispatch-method]
def convert_position(self, position):
pass
@convert_position.register # [singledispatch-method]
def _(self, position: str) -> tuple:
position_a, position_b = position.split(",")
return (int(position_a), int(position_b))
@convert_position.register # [singledispatch-method]
def _(self, position: tuple) -> str:
return f"{position[0]},{position[1]}"
class Board2:
@singledispatch # [singledispatch-method]
@classmethod
def convert_position(cls, position):
pass
@convert_position.register # [singledispatch-method]
@classmethod
def _(cls, position: str) -> tuple:
position_a, position_b = position.split(",")
return (int(position_a), int(position_b))
@convert_position.register # [singledispatch-method]
@classmethod
def _(cls, position: tuple) -> str:
return f"{position[0]},{position[1]}"
class Board3:
@singledispatch # [singledispatch-method]
@staticmethod
def convert_position(position):
pass
@convert_position.register # [singledispatch-method]
@staticmethod
def _(position: str) -> tuple:
position_a, position_b = position.split(",")
return (int(position_a), int(position_b))
@convert_position.register # [singledispatch-method]
@staticmethod
def _(position: tuple) -> str:
return f"{position[0]},{position[1]}"
# Do not emit `singledispatch-method`:
@singledispatch
def convert_position(position):
print(position)
@convert_position.register
def _(position: str) -> tuple:
position_a, position_b = position.split(",")
return (int(position_a), int(position_b))
@convert_position.register
def _(position: tuple) -> str:
return f"{position[0]},{position[1]}"