On Sat, Jun 26, 2021 at 4:20 AM Guido van Rossum <[email protected]> wrote: > > On Fri, Jun 25, 2021 at 8:22 AM Bluenix <[email protected]> wrote: >> >> I am not fully aware of how ssl.SSLContext is used, but adding __slots__ >> would prevent this. You would see an error similar to: AttributeError: >> 'MyClass' object has no attribute 'my_attribute' > > > That's a reasonable solution, except that it's not backwards compatible. It's > possible that there is code out there that for some reason adds private > attributes to an SSLContext instance, and using __slots__ would break such > usage. (They could perhaps fix their code by using a dummy subclass, but that > could well become a non-trivial change to their code, depending on where they > get their SSLContext instances.) > > So unless there's evidence that nobody does that, we're stuck with the status > quo. I'm adding Christian Heimes to the thread in case he has a hunch either > way. >
Another possible solution - although I'm not sure how practical this would be - would be to have __init__ accept only specific keyword arguments. You could do something like: ctx = ssl.SSLContext(ssl.PROTOCOL_TLS_CLIENT, minimum_version=ssl.PROTOCOL_TLSv1_1) and it would work, but if you misspell "minimum_version", it would error out. That's actually what I expected it to do, based on the signature; but it doesn't, it simply ignores the argument. Not actually sure what it does with kwargs. ChrisA _______________________________________________ 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/HBXVMJ5S665XGTEAKUHJTF452OJXVNBP/ Code of Conduct: http://python.org/psf/codeofconduct/
