Hello!

Let's say slice is multidimensional now - how to interpret it?

I excpect these to work:

   - m[0, 3] - get one element from matrix
   - m[0:2, 0:2] - get four elements from matrix, iterate over them (I have
   actually an rtree if it doesn't make sense to you)

But it won't, because if m[0, 3] returns something, then m[0:2, 0:2] cannot
yield anymore. Ofcourse I could return an iterator, but this would not be so
simple.

So, maybe we need these:

   - __isslice__(key) - return true, false
   - __getitem__(key) - return a value
   - __getslice__(key) - yield a lots of values

So that if isslice returns true, getslice will be called. Would be much more
beauty! Right now it's ugly. I love Python, but I also love n-dimensional
spaces and those are ugly in Python - last time I did Matrix multiplication
I could not implement m[0, 3] (stupid errors), could not m[0j + 3], could
not use tuple. Now I was happy that it's implemented and just ran into
another problem that I have to choose, if getter returns one or many :)
Ofcourse I could return list or other iterable, but I want to be able to do
it with three-liner, because the rest of my code mostly consists of those.
Except the few masterfunctions, which do some complex manipulations with
data.

I also need to implement things like that, which also return true for
__isslice__:
m[Circle(0, 0, 10)] - for RTree, any shape object implementing getExtent and
doesOverlap can be used as slice index.

Because I do complex map transformations and all this trivial stuff must be
*hidden*!

Tambet
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to