Thank you On Sat, Jun 26, 2021 at 8:10 PM Guido van Rossum <gu...@python.org> wrote:
> 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/K5QNGOF4WOYL6NN2KKDLBGFQKN5THXNJ/ Code of Conduct: http://python.org/psf/codeofconduct/