Vedran Čačić added the comment:

About drama: I don't know how to approach the problem. I tell you about various 
concerns of mine, you seem to agree, and still you do exactly what I was 
warning you about. It could be that you just consider me a boring nag, but then 
saying so would be more useful than this situation.

---

Yes, you solved some problems I did have, and it's great, but still many of 
them remain. This thing is inherently complicated. You are trying to construct 
a discrete Boolean algebra, but without any guarantee of atoms. Imagine if the 
language was different:

    class MySets(DiscreteSets):
        a = {0, 1}
        b = {2}
        c = {1, 2}

You'd naturally view {0}, {1} and {2} as atoms, of different "sort" than {0,1} 
and such. That's what's missing here: a clear distinction between atoms and 
"molecules". It could be that the intended usage is for atoms to _always_ be 
constructed with auto(), and for molecules to be constructed from previous 
atoms, but then the documentation ought to say so.

So far, the only thing you say is "then it is on them to do it correctly", but 
you never really tell what "correctly" means. I understand your desire not to 
hard forbid anything, but the docs should tell how your class is _intended_ to 
be used, _AND_ the class should make every reasonable effort to preserve what 
it can of its behavior even in the face of not-quite-intended usage. Look at 
Raymond's collections.Counter's treatment of non-integer values for example.

BTW I'm not aware of any stdlib object whose repr raises ValueError. It surely 
makes debugging a lot harder.

----------

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue23591>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to