sync moved to modules
This commit is contained in:
1 parent
1dda6ce8cc
commit
13b761a81e
50 files changed
No files matched your search
@@ -0,0 +1,45 @@
|
||||
import os
|
||||
from functools import reduce
|
||||
|
||||
|
||||
def constant(value):
|
||||
return lambda _: value
|
||||
|
||||
|
||||
def combine(items):
|
||||
if len(items) == 0:
|
||||
return []
|
||||
|
||||
return reduce(
|
||||
lambda total, i: total + i,
|
||||
items
|
||||
)
|
||||
|
||||
|
||||
def compose(*fns):
|
||||
return lambda i: reduce(
|
||||
lambda out, fn: fn(out),
|
||||
fns, i
|
||||
)
|
||||
|
||||
|
||||
first = lambda i: i[0] if len(i) > 0 else None
|
||||
|
||||
|
||||
def swap_ext(extension: str):
|
||||
return lambda i: os.path.splitext(i)[0] + extension
|
||||
|
||||
|
||||
def map_cases(param, cases):
|
||||
for predicate, fn in cases:
|
||||
if predicate(param):
|
||||
return fn(param)
|
||||
return param
|
||||
|
||||
|
||||
def until(condition_fn, iter_fn, items, default_value=None):
|
||||
for i in items:
|
||||
result = iter_fn(i)
|
||||
if condition_fn(result):
|
||||
return result
|
||||
return default_value
|
||||
Reference in new issue
Block a user