converter() now takes a second argument which defaults to int that is used as a default factory for the underlying defaultdict
path_to_tree() has the same change.
These are kept for backward compatibility but not documented anymore. Commutation don’t work. Refactoring is needed.
Can’t find how to overload ! atree. __not__ is not behaving the way I want. I cannot write a ^ b = ( a & (!b) ) | ( (!a) & b )
Their will be an inconsistency in the logical operation notation because of this pecular side of OO programming as considered right by python specifications.
Planning on using rand / ror / rnot / rxor in the meaning of recursive ... operations.
I should change all methods naming according to this. Least surprise principle they said :( it is pretty surprising to me that operator overloading cannot be done when all is object... and that it work 99% of the time.
Too much of a headache write now I postpone thinking
or behaviour mixes its behaviour with union and or, and and with intersection and logical and. As a dramatic result : xor does not give the same results as not xand. So I will decide either to standardize a three value boolean algebrae where
which would be equivalent to state None = False but python says :
>>> None == False
False
>>> None is False
False
or
or
We have a problem inherent with python not being able to tell if two functions shares same code and context. func1 == func2 is synonym they are in t
So set operations will fail in case you use functions.