On Wed, Jun 24, 2020 at 7:40 AM Ethan Furman <et...@stoneleaf.us> wrote:

> Okay, I took Paul Moore's advice and went looking in existing code for
> some examples, and came across the following:
>
>      if isinstance(v, int):
>          # v is an offset
>      elif isinstance(v, str):
>          # v is a docstring
>      elif isinstance(v, tuple) and len(v) in (2, 3) and isinstance(v[0],
> baseinteger) and isinstance(v[1], (basestring, NoneType)):
>          # v is an offset, a docstring, and (maybe) a default
>      elif isinstance(v, tuple) and len(v) in (1, 2) and isinstance(v[0],
> (basestring, NoneType)):
>          # v is a docstring and (maybe) a default
>
> That seems like it would be a perfect match (hah) for the new syntax, but
> I am not confident in my efforts.
>
> This is what I started with:
>
>      match v:  # goal here is to turn v into an (offset, docstring,
> default value)
>          case int:
>              v = v, None, None
>          case str:
>              v = None, v, None
>          case (str, ):
>              # how to combine with above case?
>              v = None, v[0], None
>          case (int, str):
>              v += (None, )
>          case (int, str, default):
>              pass
>          case (str, default):
>              v = None, v[0], v[1]
>
> Which got me to here:
>
>      match v:  # goal here is to turn v into an (offset, docstring,
> default value)
>          case int(offset):
>              v = offset, None, None
>          case str(doc) | (str(doc), ):
>              v = None, doc, None
>          case (int(offset), str(doc)):
>              v = offset, doc, None
>          case (int(offset), str(doc), default):
>              # already correct
>              pass
>          case (str(doc), default):
>              v = None, doc, default
>
> Is this correct?
>

Yes.

Side note: I would much rather read "case str(doc) or (str(doc), )" instead
> of a |.
>

Duly noted, we'll come back to this.

-- 
--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/>
_______________________________________________
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/EZQT5VWCOT56HCYG5YAUDD46LMYPLVGZ/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to