Skip to content

Commit

Permalink
fixes #221
Browse files Browse the repository at this point in the history
  • Loading branch information
jph00 committed Nov 24, 2020
1 parent f2561da commit 98fc6a2
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 10 deletions.
2 changes: 1 addition & 1 deletion fastcore/_nbdev.py
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@
"cycle": "02_foundation.ipynb",
"zip_cycle": "02_foundation.ipynb",
"sorted_ex": "01_basics.ipynb",
"negate_func": "01_basics.ipynb",
"not_": "01_basics.ipynb",
"argwhere": "01_basics.ipynb",
"filter_ex": "01_basics.ipynb",
"renumerate": "01_basics.ipynb",
Expand Down
8 changes: 4 additions & 4 deletions fastcore/basics.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
'anno_ret', 'argnames', 'with_cast', 'store_attr', 'attrdict', 'properties', 'camel2snake', 'snake2camel',
'class2attr', 'getattrs', 'hasattrs', 'setattrs', 'try_attrs', 'ShowPrint', 'Int', 'Str', 'Float',
'detuplify', 'replicate', 'setify', 'merge', 'range_of', 'groupby', 'last_index', 'filter_dict',
'filter_keys', 'filter_values', 'cycle', 'zip_cycle', 'sorted_ex', 'negate_func', 'argwhere', 'filter_ex',
'filter_keys', 'filter_values', 'cycle', 'zip_cycle', 'sorted_ex', 'not_', 'argwhere', 'filter_ex',
'range_of', 'renumerate', 'first', 'nested_attr', 'nested_idx', 'val2idx', 'uniqueify', 'num_methods',
'rnum_methods', 'inum_methods', 'fastuple', 'arg0', 'arg1', 'arg2', 'arg3', 'arg4', 'bind', 'map_ex',
'compose', 'maps', 'partialler', 'instantiate', 'using_attr', 'Self', 'Self', 'copy_func', 'patch_to',
Expand Down Expand Up @@ -451,7 +451,7 @@ def sorted_ex(iterable, key=None, reverse=False):
return sorted(iterable, key=k, reverse=reverse)

# Cell
def negate_func(f):
def not_(f):
"Create new function that negates result of `f`"
def _f(*args, **kwargs): return not f(*args, **kwargs)
return _f
Expand All @@ -460,15 +460,15 @@ def _f(*args, **kwargs): return not f(*args, **kwargs)
def argwhere(iterable, f, negate=False, **kwargs):
"Like `filter_ex`, but return indices for matching items"
if kwargs: f = partial(f,**kwargs)
if negate: f = negate_func(f)
if negate: f = not_(f)
return [i for i,o in enumerate(iterable) if f(o)]

# Cell
def filter_ex(iterable, f=noop, negate=False, gen=False, **kwargs):
"Like `filter`, but passing `kwargs` to `f`, defaulting `f` to `noop`, and adding `negate` and `gen`"
if f is None: f = lambda _: True
if kwargs: f = partial(f,**kwargs)
if negate: f = negate_func(f)
if negate: f = not_(f)
res = filter(f, iterable)
if gen: return res
return list(res)
Expand Down
10 changes: 5 additions & 5 deletions nbs/01_basics.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -2608,7 +2608,7 @@
"outputs": [],
"source": [
"#export\n",
"def negate_func(f):\n",
"def not_(f):\n",
" \"Create new function that negates result of `f`\"\n",
" def _f(*args, **kwargs): return not f(*args, **kwargs)\n",
" return _f"
Expand All @@ -2622,8 +2622,8 @@
"source": [
"def f(a): return a>0\n",
"test_eq(f(1),True)\n",
"test_eq(negate_func(f)(1),False)\n",
"test_eq(negate_func(f)(a=-1),True)"
"test_eq(not_(f)(1),False)\n",
"test_eq(not_(f)(a=-1),True)"
]
},
{
Expand All @@ -2636,7 +2636,7 @@
"def argwhere(iterable, f, negate=False, **kwargs):\n",
" \"Like `filter_ex`, but return indices for matching items\"\n",
" if kwargs: f = partial(f,**kwargs)\n",
" if negate: f = negate_func(f)\n",
" if negate: f = not_(f)\n",
" return [i for i,o in enumerate(iterable) if f(o)]"
]
},
Expand All @@ -2651,7 +2651,7 @@
" \"Like `filter`, but passing `kwargs` to `f`, defaulting `f` to `noop`, and adding `negate` and `gen`\"\n",
" if f is None: f = lambda _: True\n",
" if kwargs: f = partial(f,**kwargs)\n",
" if negate: f = negate_func(f)\n",
" if negate: f = not_(f)\n",
" res = filter(f, iterable)\n",
" if gen: return res\n",
" return list(res)"
Expand Down

0 comments on commit 98fc6a2

Please sign in to comment.