Okay, then Chris Barker’s explanation applies. On Sat, Jun 26, 2021 at 16:35 Daniel Walker <nickel...@gmail.com> wrote:
> I wasn't looking at the type stub but cmd.py itself. It has > > PROMPT = '(Cmd) ' > ... > > class Cmd: > prompt = PROMPT > ... > > On Sat, Jun 26, 2021 at 6:04 PM Guido van Rossum <gu...@python.org> wrote: > >> On Sat, Jun 26, 2021 at 9:25 AM Daniel Walker <nickel...@gmail.com> >> wrote: >> >>> I was recently using the cmd module for a project where my CLI >>> could connect to and interact with another host. I implemented prompt in >>> such a way that it would show the IP address when connected. I.e., >>> >>> class MyCmd(cmd.Cmd): >>> ... >>> >>> @property >>> def prompt(self) -> str: >>> if self.remote_host.connected(): >>> return f'> ({self.remote_host.ip}) ' >>> else: >>> return '> ' >>> >>> This worked perfectly fine... until I ran mypy. mypy complained >>> because, in cmd.Cmd, prompt is a class attribute. >>> >>> Looking at cmd.py, this seems like an odd design choice as all of the >>> references to cmd are through the instance (i.e., self.prompt). >>> >> >> You misread the typeshed stub. Where you see these lines in cmd.pyi >> >> class Cmd: >> prompt: str >> identchars: str >> ruler: str >> ... >> >> those are all instance attribute declarations. >> >> I think that you're running into a different mypy bug, which is that you >> can't override a plain attribute with a property in a subclass. >> >> I think there's already a bug for that in the mypy tracker, but I can't >> find it right now. >> >> -- >> --Guido van Rossum (python.org/~guido) >> *Pronouns: he/him **(why is my pronoun here?)* >> <http://feministing.com/2015/02/03/how-using-they-as-a-singular-pronoun-can-change-the-world/> >> > -- --Guido (mobile)
_______________________________________________ Python-Dev mailing list -- python-dev@python.org To unsubscribe send an email to python-dev-le...@python.org https://mail.python.org/mailman3/lists/python-dev.python.org/ Message archived at https://mail.python.org/archives/list/python-dev@python.org/message/JONOXZ5VFY3AFCOGN6UF5AUHASINRVXA/ Code of Conduct: http://python.org/psf/codeofconduct/