If you're proposing something like this, then I think it would be
compatible:
class Hmm:
#
this: int
that: float
#
pos: PosOnly
#
these: str
those: str
#
key: KWOnly
#
some: list
On Thu, 2021-03-11 at 14:06 -0800, Ethan Furman wrote:
> On 3/11/21 10:50 AM, Paul Bryan wrote:
> > On Thu, 2021-03-11 at 10:45 -0800, Ethan Furman wrote:
> > > On 3/10/21 9:47 PM, Eric V. Smith wrote:
> > >
> > > > I'm not sure of the best way to achieve this. Using flags to
> > > > field()
> > > > doesn't sound awesome, but could be made to work. Or maybe
> > > > special
> > > > field names or types? I'm not crazy about that, but using
> > > > special
> > > > types would let you do something like:
> > > >
> > > > @dataclasses.dataclass
> > > > class Point:
> > > > x: int = 0
> > > > _: dataclasses.KEYWORD_ONLY
> > > > y: int
> > > > z: int
> > > > t: int = 0
> > >
> > > Maybe something like this?
> > >
> > > class Hmm:
> > > #
> > > this: int
> > > that: float
> > > #
> > > pos: '/'
> > > #
> > > these: str
> > > those: str
> > > #
> > > key: '*'
> > > #
> > > some: list
> > >
> > > >>> Hmm.__dict__['__annotations__']
> > > {
> > > 'this': <class 'int'>,
> > > 'that': <class 'float'>,
> > > 'pos': '/',
> > > 'these': <class 'str'>,
> > > 'those': <class 'str'>,
> > > 'key': '*',
> > > 'some': <class 'list'>,
> > > }
> > >
> > > The name of 'pos' and 'key' can be convention, since the actual
> > > name
> > > is irrelevant. They do have to be unique, though. ;-)
> >
> > It's current convention (and is used by typing module and static
> > type
> > checkers) that string annotations evaluate to valid Python types.
>
> So make '/' and '*' be imports from dataclasses:
>
> from dataclasses import dataclass, PosOnly, KWOnly
>
> --
> ~Ethan~
> _______________________________________________
> Python-ideas mailing list -- [email protected]
> To unsubscribe send an email to [email protected]
> https://mail.python.org/mailman3/lists/python-ideas.python.org/
> Message archived at
> https://mail.python.org/archives/list/[email protected]/message/6L4W5OB23FBWZ7EZYDNCYSGT2CUAKYSX/
> Code of Conduct: http://python.org/psf/codeofconduct/
_______________________________________________
Python-ideas mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at
https://mail.python.org/archives/list/[email protected]/message/VPSE34Z35XOXGFJMGTMLWDAMF7JKJYOJ/
Code of Conduct: http://python.org/psf/codeofconduct/