# Avoiding isinstance for checking for instance of tuple class

**URL:** <https://numba.discourse.group/t/avoiding-isinstance-for-checking-for-instance-of-tuple-class/720>\
**Category:** Community Support\
**Created:** [May 13, 2021, 4:47pm UTC](https://numba.discourse.group/t/avoiding-isinstance-for-checking-for-instance-of-tuple-class/720 "2021-05-13T16:47:55Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![sbushmanov](https://yyz2.discourse-cdn.com/free1/user_avatar/numba.discourse.group/sbushmanov/32/321_2.png) [@sbushmanov](https://numba.discourse.group/u/sbushmanov)\
**Post date:** [May 13, 2021, 4:47pm UTC](https://numba.discourse.group/t/avoiding-isinstance-for-checking-for-instance-of-tuple-class/720/1 "2021-05-13T16:47:55Z")

</div>

What could be a way to avoid `isinstance` in the following code, targeting to parse arbitrary logic consisting of (1) conditions, (2) `and_` or `or_` strings, (3) and nested tuples thereof like:

```
t = ["a","and_",("b",'or_','a'),'and_',('a','and_','b'),'or_','c']

# @njit
def _eval(d):
    while len(d) > 1:
        X = {"a": True, "b": False, "c": True}
        a, b, c = d[:3]
        d = d[3:]
        v1 = X[a] if a in X else (_eval(a) if isinstance(a, tuple) else a)
        v2 = X[c] if c in X else (_eval(c) if isinstance(c, tuple) else c)
        d = [v1 & v2 if b == "and_" else v1 | v2] + list(d)
    return d[0]
# True

```

Thanks!

---

<div class="post-metadata">

**Author:** ![luk-f-a](https://yyz2.discourse-cdn.com/free1/user_avatar/numba.discourse.group/luk-f-a/32/56_2.png) [@luk-f-a](https://numba.discourse.group/u/luk-f-a)\
**Post date:** [May 13, 2021, 9:07pm UTC](https://numba.discourse.group/t/avoiding-isinstance-for-checking-for-instance-of-tuple-class/720/2 "2021-05-13T21:07:42Z")

</div>

hi! doing different things when receiving different types is something that `generated_jit` can do for you: [Flexible specializations with @generated\_jit — Numba 0.54.0.dev0+529.gd0ca288f2.dirty-py3.7-linux-x86\_64.egg documentation](https://numba.readthedocs.io/en/latest/user/generated-jit.html)

Luk
