Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature request: str <--> ndindex conversion #196

Open
bersbersbers opened this issue Oct 17, 2024 · 1 comment
Open

Feature request: str <--> ndindex conversion #196

bersbersbers opened this issue Oct 17, 2024 · 1 comment

Comments

@bersbersbers
Copy link

bersbersbers commented Oct 17, 2024

ndindex looks super useful. What I love is the way to abstract from the actual index type, thus being able to use integer- and slice-based indexing using the same data type. I had previously struggled in my code to convert integers i to clice(i, i+1), but that was quite confusing when printing that representation back to the user...

Speaking of the user, I have an app where they enter indices in text, and I convert their input into a slice (or Slice/Integer, soon) and use it for some computation. It would be super useful to have a function that converts strings such as 5 or :5:3 into ndindex objects, and also to print ndindex objects back into such canonical string representation.

Given an array a and user input s as above, I would expect

eval(f"a[{s}]") == a[ndindex[s]]

if that makes sense.

Also, str(ndindex[s]) (or ndindex[s].foo()) should return pretty much its input, except for canonicalization.

@asmeurer
Copy link
Member

There's some work in progress for this idea at #86. It needs some cleanup, but I think it should be doable and is definitely in scope.

I also agree that there should be a way to print indices in a way that uses direct Python syntax like 2:3 instead of Slice(2, 3).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants