<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Sat, Dec 30, 2017 at 8:50 PM, Franklin? Lee <span dir="ltr"><<a href="mailto:leewangzhong+python@gmail.com" target="_blank">leewangzhong+python@gmail.com</a>></span> wrote:<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Paddy might want something like this:<br>
- For existing APIs which take int or IntFlag flags, allow them to<br>
also take a set (or perhaps any collection) of flags.<br>
- In new APIs, take sets of Enum flags, and don't make them IntFlag.<br>
- Documentation should show preference toward using sets of Enum<br>
flags. Tutorials should pass sets.</blockquote></div><div class="gmail_extra"><br></div>I'm not keen on this recommendation. An argument that takes a Set[Foo] would mean that in order to specify:</div><div class="gmail_extra">- no flags: you'd have to pass set() -- you can't use {} since that's an empty dict, not an empty set</div><div class="gmail_extra">- one flag: you'd have to pass {Foo.BAR} rather than just Foo.BAR</div><div class="gmail_extra">- two flags: you'd have to pass {Foo.BAR, Foo.BAZ} rather than Foo.BAR | Foo.BAZ</div><div class="gmail_extra"><br></div><div class="gmail_extra">I think for each of these the proposal would be strictly worse than the current convention.<br clear="all"><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature">--Guido van Rossum (<a href="http://python.org/~guido" target="_blank">python.org/~guido</a>)</div>
</div></div>