I would have thought that a simple tuple of types would be more appropriate
than using integer flags, since that means that isinstance can be used on
the individual elements. Ideally there’d be a typing.Intersection[TraitA,
TraitB] for this kind of thing.
​

On Sat, 17 Mar 2018 at 15:10 Thomas Caswell <tcasw...@gmail.com> wrote:

> Yes, meant IntFlag :sheep:
>
> On Sat, Mar 17, 2018 at 6:02 PM Hameer Abbasi <einstein.edi...@gmail.com>
> wrote:
>
>>
>> It would be nice if there was an IntEnum [1] that was taken is an input
>> to `np.asarrayish` and `np.isarrayish` to require a combination of the
>> groups of attributes/methods/semantics.
>>
>>
>> Don’t you mean IntFlag
>> <https://docs.python.org/3/library/enum.html#intflag>? I like Marten’s
>> idea of “grouping together” related functionality via ABCs and implementing
>> different parts via ABCs (for example, in pydata/sparse we use
>> NDArrayOperatorsMixin for exactly this), but I believe that separate ABCs
>> should be provided for different parts of the interface.
>>
>> Then we can either:
>>
>>    1. Check with isinstance for the ABCs, or
>>    2. Check with hasattr.
>>
>> I like the IntFlag idea most (it seems to be designed for use-cases like
>> these), but a string-based (np.aspyarray(x,
>> functionality=‘arithmetic|reductions')) or list-based (np.aspyarray(x,
>> functionality=[‘arithmetic’, ‘reductions’]) is also fine.
>>
>> It might help to have some sort of a “dry-run” interface that (given a
>> run of code) figures out which parts you need.
>>
>> _______________________________________________
>> NumPy-Discussion mailing list
>> NumPy-Discussion@python.org
>> https://mail.python.org/mailman/listinfo/numpy-discussion
>>
> _______________________________________________
> NumPy-Discussion mailing list
> NumPy-Discussion@python.org
> https://mail.python.org/mailman/listinfo/numpy-discussion
>
_______________________________________________
NumPy-Discussion mailing list
NumPy-Discussion@python.org
https://mail.python.org/mailman/listinfo/numpy-discussion

Reply via email to