Skip to content

Commit 9dbdf46

Browse files
committed
fixes #618
1 parent 70046b9 commit 9dbdf46

File tree

3 files changed

+21
-13
lines changed

3 files changed

+21
-13
lines changed

fastcore/_modidx.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,7 @@
9494
'fastcore.basics._mk_op': ('basics.html#_mk_op', 'fastcore/basics.py'),
9595
'fastcore.basics._nested_idx': ('basics.html#_nested_idx', 'fastcore/basics.py'),
9696
'fastcore.basics._oper': ('basics.html#_oper', 'fastcore/basics.py'),
97+
'fastcore.basics._risinstance': ('basics.html#_risinstance', 'fastcore/basics.py'),
9798
'fastcore.basics._store_attr': ('basics.html#_store_attr', 'fastcore/basics.py'),
9899
'fastcore.basics._typeerr': ('basics.html#_typeerr', 'fastcore/basics.py'),
99100
'fastcore.basics._using_attr': ('basics.html#_using_attr', 'fastcore/basics.py'),

fastcore/basics.py

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -159,14 +159,17 @@ def exec_local(code, var_name):
159159
return loc[var_name]
160160

161161
# %% ../nbs/01_basics.ipynb
162-
def risinstance(types, obj=None):
163-
"Curried `isinstance` but with args reversed"
164-
types = tuplify(types)
165-
if obj is None: return partial(risinstance,types)
162+
def _risinstance(types, obj):
166163
if any(isinstance(t,str) for t in types):
167164
return any(t.__name__ in types for t in type(obj).__mro__)
168165
return isinstance(obj, types)
169166

167+
def risinstance(types, obj=None):
168+
"Curried `isinstance` but with args reversed"
169+
types = tuplify(types)
170+
if obj is None: return partial(_risinstance,types)
171+
return _risinstance(types, obj)
172+
170173
# %% ../nbs/01_basics.ipynb
171174
def ver2tuple(v:str)->tuple:
172175
return tuple(int(o or 0) for o in re.search(r'(\d+)(?:\.(\d+))?(?:\.(\d+))?', v).groups())

nbs/01_basics.ipynb

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -594,7 +594,7 @@
594594
"text/markdown": [
595595
"---\n",
596596
"\n",
597-
"[source](https://github.com/fastai/fastcore/blob/master/fastcore/basics.py#L104){target=\"_blank\" style=\"float:right; font-size:smaller\"}\n",
597+
"[source](https://github.com/fastai/fastcore/blob/master/fastcore/basics.py#L105){target=\"_blank\" style=\"float:right; font-size:smaller\"}\n",
598598
"\n",
599599
"### get_class\n",
600600
"\n",
@@ -606,7 +606,7 @@
606606
"text/plain": [
607607
"---\n",
608608
"\n",
609-
"[source](https://github.com/fastai/fastcore/blob/master/fastcore/basics.py#L104){target=\"_blank\" style=\"float:right; font-size:smaller\"}\n",
609+
"[source](https://github.com/fastai/fastcore/blob/master/fastcore/basics.py#L105){target=\"_blank\" style=\"float:right; font-size:smaller\"}\n",
610610
"\n",
611611
"### get_class\n",
612612
"\n",
@@ -784,7 +784,7 @@
784784
"text/markdown": [
785785
"---\n",
786786
"\n",
787-
"[source](https://github.com/fastai/fastcore/blob/master/fastcore/basics.py#L148){target=\"_blank\" style=\"float:right; font-size:smaller\"}\n",
787+
"[source](https://github.com/fastai/fastcore/blob/master/fastcore/basics.py#L149){target=\"_blank\" style=\"float:right; font-size:smaller\"}\n",
788788
"\n",
789789
"#### ignore_exceptions\n",
790790
"\n",
@@ -795,7 +795,7 @@
795795
"text/plain": [
796796
"---\n",
797797
"\n",
798-
"[source](https://github.com/fastai/fastcore/blob/master/fastcore/basics.py#L148){target=\"_blank\" style=\"float:right; font-size:smaller\"}\n",
798+
"[source](https://github.com/fastai/fastcore/blob/master/fastcore/basics.py#L149){target=\"_blank\" style=\"float:right; font-size:smaller\"}\n",
799799
"\n",
800800
"#### ignore_exceptions\n",
801801
"\n",
@@ -854,13 +854,16 @@
854854
"outputs": [],
855855
"source": [
856856
"#|export\n",
857+
"def _risinstance(types, obj):\n",
858+
" if any(isinstance(t,str) for t in types):\n",
859+
" return any(t.__name__ in types for t in type(obj).__mro__)\n",
860+
" return isinstance(obj, types)\n",
861+
"\n",
857862
"def risinstance(types, obj=None):\n",
858863
" \"Curried `isinstance` but with args reversed\"\n",
859864
" types = tuplify(types)\n",
860-
" if obj is None: return partial(risinstance,types)\n",
861-
" if any(isinstance(t,str) for t in types):\n",
862-
" return any(t.__name__ in types for t in type(obj).__mro__)\n",
863-
" return isinstance(obj, types)"
865+
" if obj is None: return partial(_risinstance,types)\n",
866+
" return _risinstance(types, obj)"
864867
]
865868
},
866869
{
@@ -871,7 +874,8 @@
871874
"source": [
872875
"assert risinstance(int, 1)\n",
873876
"assert not risinstance(str, 0)\n",
874-
"assert risinstance(int)(1)"
877+
"assert risinstance(int)(1)\n",
878+
"assert not risinstance(int)(None)"
875879
]
876880
},
877881
{

0 commit comments

Comments
 (0)