Hello, I think that I was the main reviewer of the module on orthogonal_array, so I take part in responsability! But on the other hand I know the code quite well and can answer to some of the design decisions.
It is still largely possible to refactor the code, especially the functions that are available from the global namespace. And it can be done easily as it is just about modifying "design_catalog.py" which is rather independent from the coming tickets. For the internals, many constructions in combinatorial designs are recursive and complicated. So separating the existence from construction means do an exact copy of the code. The boolean answer is just intended to cut the actual construction (the object are rather big). So we can not live with two functions. On the other hand, this function can be hidden from the global namespace. Nevertheless, there is an intermediate solution which I proposed recently in #16347 comment:12. Let me repeat it here. Instead of returning an OA or a boolean we can write a function "orthogonal_array_construction(k, n)" whose specification would be "return a pair (f, args) such that f(*args) is an OA(k,n) or return None if Sage has no idea how to build it". That way, even the internal function would be clean. For the external, as Nathann already said, multiplying the namespace with designs.orthogonal_array(k, n) designs.orthogonal_array_existence(k, n) designs.orthogonal_array_maximum_size(n) looks ugly to me as there are many combinatorial designs on which you would have the same. It might also be gathered with no cost as designs.orthogonal_array.SOMETHING Perhaps better, I am not sure. All best, Vincent -- You received this message because you are subscribed to the Google Groups "sage-devel" group. To unsubscribe from this group and stop receiving emails from it, send an email to sage-devel+unsubscr...@googlegroups.com. To post to this group, send email to sage-devel@googlegroups.com. Visit this group at http://groups.google.com/group/sage-devel. For more options, visit https://groups.google.com/d/optout.