Skip to content

Instantly share code, notes, and snippets.

@a-sk
Created November 14, 2018 08:40
Show Gist options
  • Save a-sk/7f3f97ab87ecf3dc36aeb37f744ab514 to your computer and use it in GitHub Desktop.
Save a-sk/7f3f97ab87ecf3dc36aeb37f744ab514 to your computer and use it in GitHub Desktop.
1,2c1
< import typing
< from collections import Iterable, OrderedDict, namedtuple
---
> from collections import OrderedDict, namedtuple
27c26
< changed: List[Optional[Node]] = []
---
> changed: List[str] = []
31,34c30,31
< changed.append(cut)
< changed_image_names = list(
< flatten(sorted([flatten_tree(tree) for tree in changed])))
< return uniq(changed_image_names + compact(changed_images))
---
> changed += flatten_tree(cut)
> return uniq(compact(changed) + changed_images)
80,90c77
< def flatten(seq: typing.Iterable):
< """Make nested lists flat again"""
< for el in seq:
< if isinstance(el, Iterable) and not isinstance(el, str):
< for sub in flatten(el):
< yield sub
< else:
< yield el
<
<
< def traverse(tree: Node, cb: Callable[[Node, int], None]) -> None:
---
> def traverse(tree: Node, cb: Callable[[Node], None]) -> None:
95c82
< def _traverse(tree, level=0):
---
> def _traverse(tree):
97,98c84,85
< cb(node, level + 1)
< _traverse(node, level + 1)
---
> cb(node)
> _traverse(node)
122c109
< def collect_name(node, level):
---
> def collect_name(node):
129,135d115
< def draw_tree(tree: Node):
< def _draw(node, level):
< print(f"{level} {level * ' '} {node.name}")
<
< traverse(tree, _draw)
<
<
174,181d153
< [["image1", "image7"], [
< 'image1', 'image7', 'image8', 'image2', 'image3', 'image4',
< 'image6'
< ]],
< [["image7", "image1"], [
< 'image1', 'image7', 'image8', 'image2', 'image3', 'image4',
< 'image6'
< ]],
183,185c155
< for idx, test_case in enumerate(test_cases):
< changed, answer = test_case
< print(f"Running test number {idx+1}")
---
> for changed, answer in test_cases:
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment