Numpy syntax comes to mind. The extra commas often aren’t valid pure Python but are required for some operations on numpy arrays. I don’t know how this works under the hood, but expect it’s a state machine under the numpy ndarray looking for the extra commas and such.
i.e. some_array[0:5,0] which isn’t valid pure Python notation.
Extra commas are "valid in pure python" in the following sense that I can demonstrate.
Open ipython3
In [3]: class Test:
...: def __getitem__(self, index):
...: print(index)
...:
In [4]: Test()[1, 2, 1:3, ..., :]
(1, 2, slice(1, 3, None), Ellipsis, slice(None, None, None))
It's valid and we get the complicated tuple of integers, slices, ellipsis etc as printed.
Numpy has existed for a long time. Its needs have been taken care of in upstream Python, to a big extent, and other libraries can use the same features.
Interesting! Neither myself nor my coworkers could get the snippet I posted working outside the context of an ndarray, so I had speculated at that time that it there was something else going on under the hood.
You seem to have a much better grasp of Python than us, would you mind posting an example where the snipped I posted successfully accesses data from an array in pure Python? That way I can not only take the L, but correct the record and learn something in the process.
This program is quick & lazy but it uses a 1D python list and pretends it's a 2D list. It implements 2D slicing, giving you a square subset just like ndarray. It doesn't intend to be all correct or nice or useful.
i.e. some_array[0:5,0] which isn’t valid pure Python notation.