Perchun Pak

Results 73 comments of Perchun Pak

This will be a breaking change ```py >>> motd = "여보세요".encode("utf-8").decode("iso-8859-1") 'ì\x97¬ë³´ì\x84¸ì\x9a\x94' >>> motd = motd.encode("iso-8859-1").decode("utf-8") '여보세요' >>> motd.encode("iso-8859-1").decode("utf-8") Traceback (most recent call last): File "", line 1, in UnicodeEncodeError:...

Nevermind, this breaking change already made #192.

Can't actually find new working workaround after changes which was introduced in #192.

There is no `MCServer.status` actually, so the only place where I'm breaking LSP here is `MCServer.lookup`, which is exist only for `BedrockServer`, because `JavaServer` redef it. After some time, I...

I tried to visualize your idea... ![image](https://user-images.githubusercontent.com/68118654/185693444-4e356778-74aa-4eb8-994f-7cf22ddd0940.png) Yes it's not breaking LSP, but so hard and confusing... Or if remove useless last abstract classes: ![image](https://user-images.githubusercontent.com/68118654/185693679-9a079af4-5e2a-4785-a991-cd7147710525.png) Better, but still too confusing.

> *You made these in the first diagram images of both the first comment and this recent comment above.* In first this was for rewriting sync abcs, and in second...

`pyright` don't support overloads for abstract methods, it's just ignoring that it's abstract method and reporting `Overloaded implementation is not consistent with signature of overload 1`. Also I know that...

> What if things were split into sync and async submodules? Would that be any better or is added maintenance make it not a good option? In public API (`server.py`)...

How about do abstract classes with abstract _sync_ methods, but do not add them to `__all__` (this will not be a breaking change, because `MCStatus` also is not in `__all__`...

> Type checkers still won't like this No errors by `pyright` with: ```py from abc import ABC, abstractmethod class Base(ABC): @abstractmethod def redef_me(self): ... class Children(Base): async def redef_me(self): ......