Perhaps maybe
could go to much shallower lengths than Haskell-esque pymaybe
? Consider something like this:
def maybe(nullable, *args):
"""A 'readable pseudo-code' implementation of null-coalescing operator (??)."""
for j in (i for i in [nullable, *args] if i is not None):
return j
Now we’re comparing:
data = data if data is not None else info if info is not None else []
files = [] if files is None else files
headers = {} if headers is None else headers
to
data = maybe(data, info, [])
files = maybe(files, [])
headers = maybe(headers, {})