-
Notifications
You must be signed in to change notification settings - Fork 25
Description
Currently, .view() returns two very different dtypes; "plain" dtypes / simple arrays in the case of simple storages, and structured types / View arrays in the case of accumulator storages. This makes it impossible to ducktype on the view. How about if it always returns a structured dtype? That is, a new View (SimpleView, for example) would be added:
@fields("value")
class SimpleView(View):
...This way, if you want the histogram value, h.view().value works on simple storages too now, and therefore all storages that have the concept of value provide a .value. A single-field structured dtype is identical in memory to a simple dtype.
If you wanted to provide a simple output array of values, a .values() or .value()` method could be added to histogram (see the various cross-library protocol discussions). Or, you could require this as part of the Protocol (not as ideal for other libraries, but possible).
TLDR, values = h.view() is replaced by values = h.view().value, so now that works across all storage types.
@HDembinski, thoughts?