[FEA] Support `polars.Expr.str.find_many` in `cudf-polars`
- Dominant language
- C++
- Stars
- 9.8k
- Forks
- 1.1k
- Avg merge
- 3d 6m
- Merged PRs (30d)
- 278
Description
**Is your feature request related to a problem? Please describe.**
Today on `branch-25.08`, we lack support for [polars.Expr.str.find_many](https://docs.pola.rs/api/python/stable/reference/expressions/api/polars.Expr.str.find_many.html). Running the example from the docs yields:
```
import polars as pl
engine = pl.GPUEngine(raise_on_fail=True)
df = pl.DataFrame(
{
"values": ["discontent", "rhapsody"],
"patterns": [
["winter", "disco", "onte", "discontent"],
["rhap", "ody", "coalesce"],
],
}
).lazy()
df = df.select(pl.col("values").str.find_many("patterns"))
res = df.collect(engine=engine)
print(res)
```
```
NotImplementedError: find_many'
```
**Describe the solution you'd like**
I'd like the above code to be able to execute using the polars GPU backend. This API returns a list where the indices are the positons of the starting characters of all the found patterns. This seems to be a bit of a mix of `cudf::strings::findall` and `cudf::strings::find_re`, and is also blocked on being able to return a `list[str]` dtype.
**Describe alternatives you've considered**
N/A
**Additional context**
https://github.com/rapidsai/cudf/issues/16480
Contributor guide
Assessment
This issue has not been assessed yet.