From 91b722f44133d67627ab86d8178d49e9c0af280c Mon Sep 17 00:00:00 2001 From: shirshasa Date: Wed, 1 Sep 2021 16:12:10 +0300 Subject: [PATCH] epub converter: update data_objects.py --- src/data_objects.py | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/src/data_objects.py b/src/data_objects.py index abcbde0..ebb62d5 100644 --- a/src/data_objects.py +++ b/src/data_objects.py @@ -39,13 +39,17 @@ class NavPoint: These are data structures which form mapping to livecarta json structure. """ -atom = lambda x: not isinstance(x, list) -nil = lambda x: not x -car = lambda x: x[0] -cdr = lambda x: x[1:] -cons = lambda x, y: x + y -flatten = lambda x: [x] if atom(x) else x if nil(x) else cons(*map(flatten, [car(x), cdr(x)])) +def flatten(x): + """ magic function from stackoverflow for list flattening """ + atom = lambda i: not isinstance(i, list) + nil = lambda i: not i + car = lambda i: i[0] + cdr = lambda i: i[1:] + cons = lambda i, y: i + y + + res = [x] if atom(x) else x if nil(x) else cons(*map(flatten, [car(x), cdr(x)])) + return res class ChapterItem: