Closed jpivarski closed 1 week ago
I think it's just always been an oversight.
ak.argcombinations
and ak.combinations
were ported over from the Awkward 1 C++ in #1307, and ak.argcombinations
has the axis >= 0
restriction there, while ak.combinations
doesn't. ak.argcombinations
was written in terms of ak.combinations
and ak.localindex
, as it is now.ak.argchoose
and ak.choose
(the old names) were orinally written in Awkward 1 in #160, and ak.argchoose
has the axis >= 0
restriction there, while ak.choose
doesn't. ak.argchoose
was written in terms of ak.combinations
and localindex
, as it is now.argchoose
and choose
didn't have an axis
argument in Awkward 0. (choose
was written in terms of argchoose
, by applying the argchoose
result as an integer slice, so that's different.)When I was adding axis
arguments to everything in the Awkward 0 → 1 transition, I must have thought, "There's no way this is well-defined (or implementable) if it has an axis
argument" for argchoose
but then had a different thought in choose
. I probably never looked at them side by side like this. It is not the case that they originally both had the restriction and it was lifted from choose
. So, it's not a maintenance inconsistency; it's a development inconsistency.
@jpivarski looks good to me! I wonder: do you know why this was forbidden in the first place?