From 196ade25716f201c5f50e78ca178bbbc0e361ae5 Mon Sep 17 00:00:00 2001 From: Matt Wozniski Date: Wed, 7 Feb 2024 21:00:20 -0500 Subject: [PATCH 1/4] tree: Fix highlighting for low numbered lines There were two different problems here: - When fetching lines from the file, we could choose a negative start index for the first line to display from the list of lines, resulting in no lines being shown. - When highlighting a line close to the start of the file, we failed to offset the highlighted line by the number of context lines we would have shown but couldn't because we ran out of lines. Signed-off-by: Matt Wozniski --- news/544.bugfix.rst | 1 + src/memray/reporters/tree.py | 10 ++++++---- 2 files changed, 7 insertions(+), 4 deletions(-) create mode 100644 news/544.bugfix.rst diff --git a/news/544.bugfix.rst b/news/544.bugfix.rst new file mode 100644 index 0000000000..ec3d6c684e --- /dev/null +++ b/news/544.bugfix.rst @@ -0,0 +1 @@ +Fix a bug where the tree reporter would fail to populate the code pane with relevant lines if the line where the allocation occurred was too near the start of the file. diff --git a/src/memray/reporters/tree.py b/src/memray/reporters/tree.py index 09e5b23214..e16469f979 100644 --- a/src/memray/reporters/tree.py +++ b/src/memray/reporters/tree.py @@ -101,10 +101,10 @@ async def update_text_area(self) -> None: _, file, line = self.frame.location delta = text.size.height // 2 - lines = linecache.getlines(file)[line - delta : line + delta] + lines = linecache.getlines(file)[max(line - delta, 0) : line + delta] text.text = "\n".join(tuple(line.rstrip() for line in lines)) - text.select_line((delta - 1)) + text.select_line(line - 1 if delta >= line else delta - 1) text.show_line_numbers = False def _get_content_by_label_id(self) -> Dict[str, str]: @@ -170,14 +170,16 @@ def compose(self) -> ComposeResult: if self.frame.location is not None: _, file, line = self.frame.location - lines = linecache.getlines(file)[line - delta : line + delta] + lines = linecache.getlines(file)[max(line - delta, 0) : line + delta] + selected_line = line - 1 if delta >= line else delta - 1 else: lines = [] + selected_line = 0 text = TextArea( "\n".join(lines), language="python", theme="dracula", id="textarea" ) - text.select_line(delta + 1) + text.select_line(selected_line) text.show_line_numbers = False text.can_focus = False text.cursor_blink = False From 0cf12ab8c337d015e307f9a7299ab9ba422f1f8b Mon Sep 17 00:00:00 2001 From: Matt Wozniski Date: Wed, 7 Feb 2024 21:15:38 -0500 Subject: [PATCH 2/4] tree: Don't call linecache for the root node After fixing the bug where an empty list would be returned if there were not enough lines before the cursor line in the file, another bug was revealed by the test suite: we've been calling `linecache.getlines()` even for the root node. That's only noticeable in the test suite because we mock the return value from that function. In a real run of the tree reporter, we call `linecache.getlines()` with an empty string as the file name, and it always returns an empty list in that case. Still, better to fix this to recognize the root node and not attempt to fetch lines for it at all. Signed-off-by: Matt Wozniski --- src/memray/reporters/tree.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/memray/reporters/tree.py b/src/memray/reporters/tree.py index e16469f979..8ba9232cf2 100644 --- a/src/memray/reporters/tree.py +++ b/src/memray/reporters/tree.py @@ -95,7 +95,7 @@ async def update_text_area(self) -> None: text = self.query_one("#textarea", TextArea) - if self.frame.location is None: + if self.frame.location is None or self.frame.location == ROOT_NODE: text.clear() return @@ -166,15 +166,16 @@ def watch_frame(self) -> None: def compose(self) -> ComposeResult: if self.frame is None: return + delta = 3 - if self.frame.location is not None: + if self.frame.location is None or self.frame.location == ROOT_NODE: + lines = [] + selected_line = 0 + else: _, file, line = self.frame.location lines = linecache.getlines(file)[max(line - delta, 0) : line + delta] selected_line = line - 1 if delta >= line else delta - 1 - else: - lines = [] - selected_line = 0 text = TextArea( "\n".join(lines), language="python", theme="dracula", id="textarea" From d6f05d1dc52389559fcd168290df747ce488f8b5 Mon Sep 17 00:00:00 2001 From: Matt Wozniski Date: Wed, 7 Feb 2024 21:22:36 -0500 Subject: [PATCH 3/4] tests: Update tree reporter snapshots This accounts for both the two bugs fixed in the previous two commits, as well as a change in Textual 0.49: the cursor is no longer shown for unfocusable `TextArea` widgets. Signed-off-by: Matt Wozniski --- .../__snapshots__/test_tree_reporter.ambr | 3279 ++++++++--------- 1 file changed, 1634 insertions(+), 1645 deletions(-) diff --git a/tests/unit/__snapshots__/test_tree_reporter.ambr b/tests/unit/__snapshots__/test_tree_reporter.ambr index 1f0557c570..7d65e1276d 100644 --- a/tests/unit/__snapshots__/test_tree_reporter.ambr +++ b/tests/unit/__snapshots__/test_tree_reporter.ambr @@ -22,497 +22,496 @@ font-weight: 700; } - .terminal-2604852872-matrix { + .terminal-3958809376-matrix { font-family: Fira Code, monospace; font-size: 20px; line-height: 24.4px; font-variant-east-asian: full-width; } - .terminal-2604852872-title { + .terminal-3958809376-title { font-size: 18px; font-weight: bold; font-family: arial; } - .terminal-2604852872-r1 { fill: #e2e3e3 } - .terminal-2604852872-r2 { fill: #211505;font-weight: bold } - .terminal-2604852872-r3 { fill: #141414 } - .terminal-2604852872-r4 { fill: #c5c8c6 } - .terminal-2604852872-r5 { fill: #fea62b;font-weight: bold } - .terminal-2604852872-r6 { fill: #cd5c5c } - .terminal-2604852872-r7 { fill: #e2e3e3;font-weight: bold } - .terminal-2604852872-r8 { fill: #4c707e } - .terminal-2604852872-r9 { fill: #f8f8f2 } - .terminal-2604852872-r10 { fill: #282a36 } - .terminal-2604852872-r11 { fill: #cf5e57 } - .terminal-2604852872-r12 { fill: #d26052 } - .terminal-2604852872-r13 { fill: #d4634e } - .terminal-2604852872-r14 { fill: #d76549 } - .terminal-2604852872-r15 { fill: #d96845 } - .terminal-2604852872-r16 { fill: #dc6a40 } - .terminal-2604852872-r17 { fill: #de6c3b } - .terminal-2604852872-r18 { fill: #e16f37 } - .terminal-2604852872-r19 { fill: #e37132 } - .terminal-2604852872-r20 { fill: #e6742e } - .terminal-2604852872-r21 { fill: #e87629 } - .terminal-2604852872-r22 { fill: #eb7824 } - .terminal-2604852872-r23 { fill: #ed7b20 } - .terminal-2604852872-r24 { fill: #f07d1b } - .terminal-2604852872-r25 { fill: #f28016 } - .terminal-2604852872-r26 { fill: #f58212 } - .terminal-2604852872-r27 { fill: #f7840d } - .terminal-2604852872-r28 { fill: #fa8709 } - .terminal-2604852872-r29 { fill: #fc8904 } - .terminal-2604852872-r30 { fill: #ff8c00 } - .terminal-2604852872-r31 { fill: #fc8d02 } - .terminal-2604852872-r32 { fill: #fb8e03 } - .terminal-2604852872-r33 { fill: #f98f04 } - .terminal-2604852872-r34 { fill: #f79006 } - .terminal-2604852872-r35 { fill: #f59208 } - .terminal-2604852872-r36 { fill: #f39309 } - .terminal-2604852872-r37 { fill: #f1940b } - .terminal-2604852872-r38 { fill: #ef950c } - .terminal-2604852872-r39 { fill: #ed960e } - .terminal-2604852872-r40 { fill: #ec9810 } - .terminal-2604852872-r41 { fill: #e59a11 } - .terminal-2604852872-r42 { fill: #de9c12 } - .terminal-2604852872-r43 { fill: #d79e14 } - .terminal-2604852872-r44 { fill: #d0a015 } - .terminal-2604852872-r45 { fill: #c9a217 } - .terminal-2604852872-r46 { fill: #c2a418 } - .terminal-2604852872-r47 { fill: #bba619 } - .terminal-2604852872-r48 { fill: #b4a81b } - .terminal-2604852872-r49 { fill: #adaa1c } - .terminal-2604852872-r50 { fill: #a6ac1e } - .terminal-2604852872-r51 { fill: #9fae1f } - .terminal-2604852872-r52 { fill: #98b020 } - .terminal-2604852872-r53 { fill: #91b222 } - .terminal-2604852872-r54 { fill: #8ab423 } - .terminal-2604852872-r55 { fill: #83b625 } - .terminal-2604852872-r56 { fill: #7cb826 } - .terminal-2604852872-r57 { fill: #75ba27 } - .terminal-2604852872-r58 { fill: #6ebc29 } - .terminal-2604852872-r59 { fill: #e1e1e1 } - .terminal-2604852872-r60 { fill: #67be2a } - .terminal-2604852872-r61 { fill: #e4e5e6 } - .terminal-2604852872-r62 { fill: #dde8f3;font-weight: bold } - .terminal-2604852872-r63 { fill: #ddedf9 } + .terminal-3958809376-r1 { fill: #e2e3e3 } + .terminal-3958809376-r2 { fill: #211505;font-weight: bold } + .terminal-3958809376-r3 { fill: #141414 } + .terminal-3958809376-r4 { fill: #c5c8c6 } + .terminal-3958809376-r5 { fill: #fea62b;font-weight: bold } + .terminal-3958809376-r6 { fill: #cd5c5c } + .terminal-3958809376-r7 { fill: #e2e3e3;font-weight: bold } + .terminal-3958809376-r8 { fill: #4c707e } + .terminal-3958809376-r9 { fill: #f8f8f2 } + .terminal-3958809376-r10 { fill: #cf5e57 } + .terminal-3958809376-r11 { fill: #d26052 } + .terminal-3958809376-r12 { fill: #d4634e } + .terminal-3958809376-r13 { fill: #d76549 } + .terminal-3958809376-r14 { fill: #d96845 } + .terminal-3958809376-r15 { fill: #dc6a40 } + .terminal-3958809376-r16 { fill: #de6c3b } + .terminal-3958809376-r17 { fill: #e16f37 } + .terminal-3958809376-r18 { fill: #e37132 } + .terminal-3958809376-r19 { fill: #e6742e } + .terminal-3958809376-r20 { fill: #e87629 } + .terminal-3958809376-r21 { fill: #eb7824 } + .terminal-3958809376-r22 { fill: #ed7b20 } + .terminal-3958809376-r23 { fill: #f07d1b } + .terminal-3958809376-r24 { fill: #f28016 } + .terminal-3958809376-r25 { fill: #f58212 } + .terminal-3958809376-r26 { fill: #f7840d } + .terminal-3958809376-r27 { fill: #fa8709 } + .terminal-3958809376-r28 { fill: #fc8904 } + .terminal-3958809376-r29 { fill: #ff8c00 } + .terminal-3958809376-r30 { fill: #fc8d02 } + .terminal-3958809376-r31 { fill: #fb8e03 } + .terminal-3958809376-r32 { fill: #f98f04 } + .terminal-3958809376-r33 { fill: #f79006 } + .terminal-3958809376-r34 { fill: #f59208 } + .terminal-3958809376-r35 { fill: #f39309 } + .terminal-3958809376-r36 { fill: #f1940b } + .terminal-3958809376-r37 { fill: #ef950c } + .terminal-3958809376-r38 { fill: #ed960e } + .terminal-3958809376-r39 { fill: #ec9810 } + .terminal-3958809376-r40 { fill: #e59a11 } + .terminal-3958809376-r41 { fill: #de9c12 } + .terminal-3958809376-r42 { fill: #d79e14 } + .terminal-3958809376-r43 { fill: #d0a015 } + .terminal-3958809376-r44 { fill: #c9a217 } + .terminal-3958809376-r45 { fill: #c2a418 } + .terminal-3958809376-r46 { fill: #bba619 } + .terminal-3958809376-r47 { fill: #b4a81b } + .terminal-3958809376-r48 { fill: #adaa1c } + .terminal-3958809376-r49 { fill: #a6ac1e } + .terminal-3958809376-r50 { fill: #9fae1f } + .terminal-3958809376-r51 { fill: #98b020 } + .terminal-3958809376-r52 { fill: #91b222 } + .terminal-3958809376-r53 { fill: #8ab423 } + .terminal-3958809376-r54 { fill: #83b625 } + .terminal-3958809376-r55 { fill: #7cb826 } + .terminal-3958809376-r56 { fill: #75ba27 } + .terminal-3958809376-r57 { fill: #6ebc29 } + .terminal-3958809376-r58 { fill: #e1e1e1 } + .terminal-3958809376-r59 { fill: #67be2a } + .terminal-3958809376-r60 { fill: #e4e5e6 } + .terminal-3958809376-r61 { fill: #dde8f3;font-weight: bold } + .terminal-3958809376-r62 { fill: #ddedf9 } - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - TreeApp + TreeApp - - - - โ–ผ ๐Ÿ“‚ 3.174KB (100.00 %) <ROOT>โ–ˆโ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–ˆ - โ”—โ”โ” โ–ผ ๐Ÿ“‚ 3.174KB (100.00 %) func1fun1.py:1โ–ˆโ–ˆ - โ”—โ”โ” โ–ผ ๐Ÿ“‚ 3.110KB (98.00 %) func2fun2.py:2โ–ˆโ–ˆ - โ”—โ”โ” โ–ผ ๐Ÿ“‚ 3.047KB (96.00 %) func3fun3.py:3โ–ˆโ–ˆ - โ”—โ”โ” โ–ผ ๐Ÿ“‚ 2.983KB (94.00 %) func4fun4.py:4โ–ˆโ–ˆ - โ”—โ”โ” โ–ผ ๐Ÿ“‚ 2.920KB (92.00 %) func5fun5.py:5โ–ˆโ–ˆ - โ”—โ”โ” โ–ผ ๐Ÿ“‚ 2.856KB (90.00 %) func6fun6.py:6โ–ˆโ–ˆ - โ”—โ”โ” โ–ผ ๐Ÿ“‚ 2.793KB (88.00 %) func7fun7.py:7โ–ˆโ–ˆ - โ”—โ”โ” โ–ผ ๐Ÿ“‚ 2.729KB (86.00 %) func8fun8.py:8โ–ˆโ–ˆ - โ”—โ”โ” โ–ผ ๐Ÿ“‚ 2.666KB (84.00 %) func9fun9.py:9โ–ˆโ–ˆ - โ”—โ”โ” โ–ผ ๐Ÿ“‚ 2.603KB (82.00 %) func10fun10.py:10โ–ˆโ–ˆ - โ”—โ”โ” โ–ผ ๐Ÿ“‚ 2.539KB (80.00 %) func11fun11.py:11โ–ˆโ–ˆ - โ”—โ”โ” โ–ผ ๐Ÿ“‚ 2.476KB (78.00 %) func12fun12.py:12โ–ˆโ–ˆ - โ”—โ”โ” โ–ผ ๐Ÿ“‚ 2.412KB (76.00 %) func13fun13.py:13โ–ˆโ–ˆ - โ”—โ”โ” โ–ผ ๐Ÿ“‚ 2.349KB (74.00 %) func14fun14.py:14โ–ˆโ–ˆ - โ”—โ”โ” โ–ผ ๐Ÿ“‚ 2.285KB (72.00 %) func15fun15.py:15โ–ˆโ–ˆ - โ”—โ”โ” โ–ผ ๐Ÿ“‚ 2.222KB (70.00 %) func16fun16.py:16โ–ˆโ–ˆ - โ”—โ”โ” โ–ผ ๐Ÿ“‚ 2.158KB (68.00 %) func17fun17.py:17โ–ˆโ–ˆ - โ”—โ”โ” โ–ผ ๐Ÿ“‚ 2.095KB (66.00 %) func18fun18.py:18โ–ˆโ–ˆ - โ”—โ”โ” โ–ผ ๐Ÿ“‚ 2.031KB (64.00 %) func19fun19.py:19โ–ˆโ–ˆ - โ”—โ”โ” โ–ผ ๐Ÿ“‚ 1.968KB (62.00 %) func20fun20.py:20โ–ˆโ–ˆ - โ”—โ”โ” โ–ผ ๐Ÿ“‚ 1.904KB (60.00 %) func21fun21.py:21โ–ˆโ–ˆ - โ”—โ”โ” โ–ผ ๐Ÿ“‚ 1.841KB (58.00 %) func22fun22.py:22โ–ˆโ–ˆ - โ”—โ”โ” โ–ผ ๐Ÿ“‚ 1.777KB (56.00 %) func23fun23.py:23โ–ˆโ–ˆ - โ”—โ”โ” โ–ผ ๐Ÿ“‚ 1.714KB (54.00 %) func24fun24.py:24โ–ˆโ–ˆ - โ”—โ”โ” โ–ผ ๐Ÿ“‚ 1.650KB (52.00 %) func25fun25.py:25โ–ˆโ–ˆ - โ”—โ”โ” โ–ผ ๐Ÿ“‚ 1.587KB (50.00 %) func26fun26.py:26โ–ˆโ–ˆ - โ”—โ”โ” โ–ผ ๐Ÿ“‚ 1.523KB (48.00 %) func27fun27.py:27โ–ˆโ–ˆ - โ”—โ”โ” โ–ผ ๐Ÿ“‚ 1.460KB (46.00 %) func28fun28.py:28โ–ˆโ–ˆ - โ”—โ”โ” โ–ผ ๐Ÿ“‚ 1.396KB (44.00 %) func29fun29.py:29โ–ˆโ–ˆ - โ”—โ”โ” โ–ผ ๐Ÿ“‚ 1.333KB (42.00 %) func30fun30.py:30โ–ˆโ–ˆ - โ”—โ”โ” โ–ผ ๐Ÿ“‚ 1.270KB (40.00 %) func31fun31.py:31โ–ˆโ–ˆ - โ”—โ”โ” โ–ผ ๐Ÿ“‚ 1.206KB (38.00 %) func32fun32.py:32โ–ˆโ–ˆ - โ”—โ”โ” โ–ผ ๐Ÿ“‚ 1.143KB (36.00 %) func33fun33.py:33โ–ˆโ–ˆ - โ”—โ”โ” โ–ผ ๐Ÿ“‚ 1.079KB (34.00 %) func34fun34.py:34โ–ˆโ–ˆ - โ”—โ”โ” โ–ผ ๐Ÿ“‚ 1.016KB (32.00 %) func35fun35.py:35โ–ˆโ–ˆ - โ”—โ”โ” โ–ผ ๐Ÿ“‚ 975.000B (30.00 %) func36fun36.py:36โ–ˆโ–ˆ - โ”—โ”โ” โ–ผ ๐Ÿ“‚ 910.000B (28.00 %) func37fun37.py:37โ–ˆโ–ˆ - โ”—โ”โ” โ–ผ ๐Ÿ“‚ 845.000B (26.00 %) func38fun38.py:38โ–ˆโ–ˆ - โ”—โ”โ” โ–ผ ๐Ÿ“‚ 780.000B (24.00 %) func39fun39.py:39โ–ˆโ–ˆ - โ”—โ”โ” โ–ผ ๐Ÿ“‚ 715.000B (22.00 %) func40fun40.py:40โ–ˆโ–ˆ - โ”—โ”โ” โ–ผ ๐Ÿ“‚ 650.000B (20.00 %) func41fun41.py:41โ–ˆโ–ˆ - โ”—โ”โ” โ–ผ ๐Ÿ“‚ 585.000B (18.00 %) func42fun42.py:42โ–ˆโ–ˆ - โ”—โ”โ” โ–ผ ๐Ÿ“‚ 520.000B (16.00 %) func43fun43.py:43โ–ˆโ–ˆ - โ”—โ”โ” โ–ผ ๐Ÿ“‚ 455.000B (14.00 %) func44fun44.py:44โ–ˆโ–ˆ - โ”—โ”โ” โ–ผ ๐Ÿ“‚ 390.000B (12.00 %) func45fun45.py:45โ–ˆโ–ˆ - โ”—โ”โ” โ–ผ ๐Ÿ“‚ 325.000B (10.00 %) func46fun46.py:46โ–ˆโ–ˆ - โ”—โ”โ” โ–ผ ๐Ÿ“‚ 260.000B (8.00 %) func47fun47.py:47โ–ˆโ–ˆ - โ”—โ”โ” โ–ผ ๐Ÿ“‚ 195.000B (6.00 %) func48fun48.py:48โ–ˆโ–ˆ - โ”—โ”โ” โ–ผ ๐Ÿ“‚ 130.000B (4.00 %) func49fun49.py:49โ–ˆโ–ˆ - โ”—โ”โ” ๐Ÿ“„ 65.000B (2.00 %) func50fun50.py:50โ–ˆโ–ˆ - โ–ˆ๐Ÿ’พ Allocations: 50โ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆ๐Ÿ“ฆ Size: 3.174KBโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–ˆ -  Q  Quit the app  I  Hide import system  U  Show uninteresting  E  Expand linear group  + + + + โ–ผ ๐Ÿ“‚ 3.174KB (100.00 %) <ROOT>โ–ˆโ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–ˆ + โ”—โ”โ” โ–ผ ๐Ÿ“‚ 3.174KB (100.00 %) func1fun1.py:1โ–ˆโ–ˆ + โ”—โ”โ” โ–ผ ๐Ÿ“‚ 3.110KB (98.00 %) func2fun2.py:2โ–ˆโ–ˆ + โ”—โ”โ” โ–ผ ๐Ÿ“‚ 3.047KB (96.00 %) func3fun3.py:3โ–ˆโ–ˆ + โ”—โ”โ” โ–ผ ๐Ÿ“‚ 2.983KB (94.00 %) func4fun4.py:4โ–ˆโ–ˆ + โ”—โ”โ” โ–ผ ๐Ÿ“‚ 2.920KB (92.00 %) func5fun5.py:5โ–ˆโ–ˆ + โ”—โ”โ” โ–ผ ๐Ÿ“‚ 2.856KB (90.00 %) func6fun6.py:6โ–ˆโ–ˆ + โ”—โ”โ” โ–ผ ๐Ÿ“‚ 2.793KB (88.00 %) func7fun7.py:7โ–ˆโ–ˆ + โ”—โ”โ” โ–ผ ๐Ÿ“‚ 2.729KB (86.00 %) func8fun8.py:8โ–ˆโ–ˆ + โ”—โ”โ” โ–ผ ๐Ÿ“‚ 2.666KB (84.00 %) func9fun9.py:9โ–ˆโ–ˆ + โ”—โ”โ” โ–ผ ๐Ÿ“‚ 2.603KB (82.00 %) func10fun10.py:10โ–ˆโ–ˆ + โ”—โ”โ” โ–ผ ๐Ÿ“‚ 2.539KB (80.00 %) func11fun11.py:11โ–ˆโ–ˆ + โ”—โ”โ” โ–ผ ๐Ÿ“‚ 2.476KB (78.00 %) func12fun12.py:12โ–ˆโ–ˆ + โ”—โ”โ” โ–ผ ๐Ÿ“‚ 2.412KB (76.00 %) func13fun13.py:13โ–ˆโ–ˆ + โ”—โ”โ” โ–ผ ๐Ÿ“‚ 2.349KB (74.00 %) func14fun14.py:14โ–ˆโ–ˆ + โ”—โ”โ” โ–ผ ๐Ÿ“‚ 2.285KB (72.00 %) func15fun15.py:15โ–ˆโ–ˆ + โ”—โ”โ” โ–ผ ๐Ÿ“‚ 2.222KB (70.00 %) func16fun16.py:16โ–ˆโ–ˆ + โ”—โ”โ” โ–ผ ๐Ÿ“‚ 2.158KB (68.00 %) func17fun17.py:17โ–ˆโ–ˆ + โ”—โ”โ” โ–ผ ๐Ÿ“‚ 2.095KB (66.00 %) func18fun18.py:18โ–ˆโ–ˆ + โ”—โ”โ” โ–ผ ๐Ÿ“‚ 2.031KB (64.00 %) func19fun19.py:19โ–ˆโ–ˆ + โ”—โ”โ” โ–ผ ๐Ÿ“‚ 1.968KB (62.00 %) func20fun20.py:20โ–ˆโ–ˆ + โ”—โ”โ” โ–ผ ๐Ÿ“‚ 1.904KB (60.00 %) func21fun21.py:21โ–ˆโ–ˆ + โ”—โ”โ” โ–ผ ๐Ÿ“‚ 1.841KB (58.00 %) func22fun22.py:22โ–ˆโ–ˆ + โ”—โ”โ” โ–ผ ๐Ÿ“‚ 1.777KB (56.00 %) func23fun23.py:23โ–ˆโ–ˆ + โ”—โ”โ” โ–ผ ๐Ÿ“‚ 1.714KB (54.00 %) func24fun24.py:24โ–ˆโ–ˆ + โ”—โ”โ” โ–ผ ๐Ÿ“‚ 1.650KB (52.00 %) func25fun25.py:25โ–ˆโ–ˆ + โ”—โ”โ” โ–ผ ๐Ÿ“‚ 1.587KB (50.00 %) func26fun26.py:26โ–ˆโ–ˆ + โ”—โ”โ” โ–ผ ๐Ÿ“‚ 1.523KB (48.00 %) func27fun27.py:27โ–ˆโ–ˆ + โ”—โ”โ” โ–ผ ๐Ÿ“‚ 1.460KB (46.00 %) func28fun28.py:28โ–ˆโ–ˆ + โ”—โ”โ” โ–ผ ๐Ÿ“‚ 1.396KB (44.00 %) func29fun29.py:29โ–ˆโ–ˆ + โ”—โ”โ” โ–ผ ๐Ÿ“‚ 1.333KB (42.00 %) func30fun30.py:30โ–ˆโ–ˆ + โ”—โ”โ” โ–ผ ๐Ÿ“‚ 1.270KB (40.00 %) func31fun31.py:31โ–ˆโ–ˆ + โ”—โ”โ” โ–ผ ๐Ÿ“‚ 1.206KB (38.00 %) func32fun32.py:32โ–ˆโ–ˆ + โ”—โ”โ” โ–ผ ๐Ÿ“‚ 1.143KB (36.00 %) func33fun33.py:33โ–ˆโ–ˆ + โ”—โ”โ” โ–ผ ๐Ÿ“‚ 1.079KB (34.00 %) func34fun34.py:34โ–ˆโ–ˆ + โ”—โ”โ” โ–ผ ๐Ÿ“‚ 1.016KB (32.00 %) func35fun35.py:35โ–ˆโ–ˆ + โ”—โ”โ” โ–ผ ๐Ÿ“‚ 975.000B (30.00 %) func36fun36.py:36โ–ˆโ–ˆ + โ”—โ”โ” โ–ผ ๐Ÿ“‚ 910.000B (28.00 %) func37fun37.py:37โ–ˆโ–ˆ + โ”—โ”โ” โ–ผ ๐Ÿ“‚ 845.000B (26.00 %) func38fun38.py:38โ–ˆโ–ˆ + โ”—โ”โ” โ–ผ ๐Ÿ“‚ 780.000B (24.00 %) func39fun39.py:39โ–ˆโ–ˆ + โ”—โ”โ” โ–ผ ๐Ÿ“‚ 715.000B (22.00 %) func40fun40.py:40โ–ˆโ–ˆ + โ”—โ”โ” โ–ผ ๐Ÿ“‚ 650.000B (20.00 %) func41fun41.py:41โ–ˆโ–ˆ + โ”—โ”โ” โ–ผ ๐Ÿ“‚ 585.000B (18.00 %) func42fun42.py:42โ–ˆโ–ˆ + โ”—โ”โ” โ–ผ ๐Ÿ“‚ 520.000B (16.00 %) func43fun43.py:43โ–ˆโ–ˆ + โ”—โ”โ” โ–ผ ๐Ÿ“‚ 455.000B (14.00 %) func44fun44.py:44โ–ˆโ–ˆ + โ”—โ”โ” โ–ผ ๐Ÿ“‚ 390.000B (12.00 %) func45fun45.py:45โ–ˆโ–ˆ + โ”—โ”โ” โ–ผ ๐Ÿ“‚ 325.000B (10.00 %) func46fun46.py:46โ–ˆโ–ˆ + โ”—โ”โ” โ–ผ ๐Ÿ“‚ 260.000B (8.00 %) func47fun47.py:47โ–ˆโ–ˆ + โ”—โ”โ” โ–ผ ๐Ÿ“‚ 195.000B (6.00 %) func48fun48.py:48โ–ˆโ–ˆ + โ”—โ”โ” โ–ผ ๐Ÿ“‚ 130.000B (4.00 %) func49fun49.py:49โ–ˆโ–ˆ + โ”—โ”โ” ๐Ÿ“„ 65.000B (2.00 %) func50fun50.py:50โ–ˆโ–ˆ + โ–ˆ๐Ÿ’พ Allocations: 50โ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆ๐Ÿ“ฆ Size: 3.174KBโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–ˆ +  Q  Quit the app  I  Hide import system  U  Show uninteresting  E  Expand linear group  @@ -542,288 +541,287 @@ font-weight: 700; } - .terminal-473713979-matrix { + .terminal-1504971219-matrix { font-family: Fira Code, monospace; font-size: 20px; line-height: 24.4px; font-variant-east-asian: full-width; } - .terminal-473713979-title { + .terminal-1504971219-title { font-size: 18px; font-weight: bold; font-family: arial; } - .terminal-473713979-r1 { fill: #e2e3e3 } - .terminal-473713979-r2 { fill: #211505;font-weight: bold } - .terminal-473713979-r3 { fill: #141414 } - .terminal-473713979-r4 { fill: #c5c8c6 } - .terminal-473713979-r5 { fill: #fea62b;font-weight: bold } - .terminal-473713979-r6 { fill: #cd5c5c } - .terminal-473713979-r7 { fill: #e2e3e3;font-weight: bold } - .terminal-473713979-r8 { fill: #4c707e } - .terminal-473713979-r9 { fill: #f8f8f2 } - .terminal-473713979-r10 { fill: #282a36 } - .terminal-473713979-r11 { fill: #e1e1e1 } - .terminal-473713979-r12 { fill: #e4e5e6 } - .terminal-473713979-r13 { fill: #dde8f3;font-weight: bold } - .terminal-473713979-r14 { fill: #ddedf9 } + .terminal-1504971219-r1 { fill: #e2e3e3 } + .terminal-1504971219-r2 { fill: #211505;font-weight: bold } + .terminal-1504971219-r3 { fill: #141414 } + .terminal-1504971219-r4 { fill: #c5c8c6 } + .terminal-1504971219-r5 { fill: #fea62b;font-weight: bold } + .terminal-1504971219-r6 { fill: #cd5c5c } + .terminal-1504971219-r7 { fill: #e2e3e3;font-weight: bold } + .terminal-1504971219-r8 { fill: #4c707e } + .terminal-1504971219-r9 { fill: #f8f8f2 } + .terminal-1504971219-r10 { fill: #e1e1e1 } + .terminal-1504971219-r11 { fill: #e4e5e6 } + .terminal-1504971219-r12 { fill: #dde8f3;font-weight: bold } + .terminal-1504971219-r13 { fill: #ddedf9 } - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - TreeApp + TreeApp - - - - โ–ผ ๐Ÿ“‚ 1.000KB (100.00 %) <ROOT>โ–ˆโ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–ˆ - โ”—โ”โ” โ–ผ ๐Ÿ“‚ 1.000KB (100.00 %) grandparentfun.py:4โ–ˆโ–ˆ - โ”—โ”โ” โ–ผ ๐Ÿ“‚ 1.000KB (100.00 %) parentfun.py:8โ–ˆโ–ˆ - โ”—โ”โ” ๐Ÿ“„ 1.000KB (100.00 %) mefun.py:12โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆ๐Ÿ’พ Allocations: 1โ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆ๐Ÿ“ฆ Size: 1.000KBโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–ˆ -  Q  Quit the app  I  Hide import system  U  Show uninteresting  E  Expand linear group  + + + + โ–ผ ๐Ÿ“‚ 1.000KB (100.00 %) <ROOT>โ–ˆโ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–ˆ + โ”—โ”โ” โ–ผ ๐Ÿ“‚ 1.000KB (100.00 %) grandparentfun.py:4โ–ˆโ–ˆ + โ”—โ”โ” โ–ผ ๐Ÿ“‚ 1.000KB (100.00 %) parentfun.py:8โ–ˆโ–ˆ + โ”—โ”โ” ๐Ÿ“„ 1.000KB (100.00 %) mefun.py:12โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆ๐Ÿ’พ Allocations: 1โ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆ๐Ÿ“ฆ Size: 1.000KBโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–ˆ +  Q  Quit the app  I  Hide import system  U  Show uninteresting  E  Expand linear group  @@ -853,290 +851,289 @@ font-weight: 700; } - .terminal-2672910379-matrix { + .terminal-1598497252-matrix { font-family: Fira Code, monospace; font-size: 20px; line-height: 24.4px; font-variant-east-asian: full-width; } - .terminal-2672910379-title { + .terminal-1598497252-title { font-size: 18px; font-weight: bold; font-family: arial; } - .terminal-2672910379-r1 { fill: #e2e3e3 } - .terminal-2672910379-r2 { fill: #cd5c5c } - .terminal-2672910379-r3 { fill: #e2e3e3;font-weight: bold } - .terminal-2672910379-r4 { fill: #141414 } - .terminal-2672910379-r5 { fill: #c5c8c6 } - .terminal-2672910379-r6 { fill: #008139 } - .terminal-2672910379-r7 { fill: #4c707e } - .terminal-2672910379-r8 { fill: #f8f8f2 } - .terminal-2672910379-r9 { fill: #282a36 } - .terminal-2672910379-r10 { fill: #211505;font-weight: bold } - .terminal-2672910379-r11 { fill: #794f14;font-weight: bold } - .terminal-2672910379-r12 { fill: #23568b } - .terminal-2672910379-r13 { fill: #e1e1e1 } - .terminal-2672910379-r14 { fill: #e4e5e6 } - .terminal-2672910379-r15 { fill: #dde8f3;font-weight: bold } - .terminal-2672910379-r16 { fill: #ddedf9 } + .terminal-1598497252-r1 { fill: #e2e3e3 } + .terminal-1598497252-r2 { fill: #cd5c5c } + .terminal-1598497252-r3 { fill: #e2e3e3;font-weight: bold } + .terminal-1598497252-r4 { fill: #141414 } + .terminal-1598497252-r5 { fill: #c5c8c6 } + .terminal-1598497252-r6 { fill: #008139 } + .terminal-1598497252-r7 { fill: #4c707e } + .terminal-1598497252-r8 { fill: #f8f8f2 } + .terminal-1598497252-r9 { fill: #211505;font-weight: bold } + .terminal-1598497252-r10 { fill: #794f14;font-weight: bold } + .terminal-1598497252-r11 { fill: #23568b } + .terminal-1598497252-r12 { fill: #e1e1e1 } + .terminal-1598497252-r13 { fill: #e4e5e6 } + .terminal-1598497252-r14 { fill: #dde8f3;font-weight: bold } + .terminal-1598497252-r15 { fill: #ddedf9 } - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - TreeApp + TreeApp - - - - โ–ผ ๐Ÿ“‚ 1.000KB (100.00 %) <ROOT>โ–ˆโ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–ˆ - โ””โ”€โ”€ โ–ผ ๐Ÿ“‚ 1.000KB (100.00 %) grandparentfun.py:4โ–ˆ       yield prime                         โ–ˆ - โ””โ”€โ”€ โ–ผ ๐Ÿ“‚ 1.000KB (100.00 %) parentfun.py:8โ–ˆ        numbers = filter(lambda x, prime=priโ–ˆ - โ””โ”€โ”€ ๐Ÿ“„ 1.000KB (100.00 %) mefun.py:12โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–Œโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆ๐Ÿงญ Function: meโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆ๐Ÿงญ Location: fun.py:12โ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆ๐Ÿ’พ Allocations: 1โ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆ๐Ÿ“ฆ Size: 1.000KBโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆ๐Ÿงต Thread: 0x1โ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–ˆ -  Q  Quit the app  I  Hide import system  U  Show uninteresting  E  Expand linear group  + + + + โ–ผ ๐Ÿ“‚ 1.000KB (100.00 %) <ROOT>โ–ˆโ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–ˆ + โ””โ”€โ”€ โ–ผ ๐Ÿ“‚ 1.000KB (100.00 %) grandparentfun.py:4โ–ˆimport itertools                            โ–ˆ + โ””โ”€โ”€ โ–ผ ๐Ÿ“‚ 1.000KB (100.00 %) parentfun.py:8โ–ˆdef generate_primes(): โ–ˆ + โ””โ”€โ”€ ๐Ÿ“„ 1.000KB (100.00 %) mefun.py:12โ–ˆ    numbers = itertools.count(2) โ–ˆ + โ–ˆ    while True: โ–ˆ + โ–ˆ        prime = next(numbers) โ–ˆ + โ–ˆ        yield prime โ–ˆ + โ–ˆ        numbers = filter(lambda x, prime=priโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–Œโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆ๐Ÿงญ Function: meโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆ๐Ÿงญ Location: fun.py:12โ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆ๐Ÿ’พ Allocations: 1โ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆ๐Ÿ“ฆ Size: 1.000KBโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆ๐Ÿงต Thread: 0x1โ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–ˆ +  Q  Quit the app  I  Hide import system  U  Show uninteresting  E  Expand linear group  @@ -1166,291 +1163,290 @@ font-weight: 700; } - .terminal-4035773514-matrix { + .terminal-2014980104-matrix { font-family: Fira Code, monospace; font-size: 20px; line-height: 24.4px; font-variant-east-asian: full-width; } - .terminal-4035773514-title { + .terminal-2014980104-title { font-size: 18px; font-weight: bold; font-family: arial; } - .terminal-4035773514-r1 { fill: #e2e3e3 } - .terminal-4035773514-r2 { fill: #cd5c5c } - .terminal-4035773514-r3 { fill: #e2e3e3;font-weight: bold } - .terminal-4035773514-r4 { fill: #141414 } - .terminal-4035773514-r5 { fill: #c5c8c6 } - .terminal-4035773514-r6 { fill: #008139 } - .terminal-4035773514-r7 { fill: #4c707e } - .terminal-4035773514-r8 { fill: #f8f8f2 } - .terminal-4035773514-r9 { fill: #282a36 } - .terminal-4035773514-r10 { fill: #211505;font-weight: bold } - .terminal-4035773514-r11 { fill: #794f14;font-weight: bold } - .terminal-4035773514-r12 { fill: #fea62b;font-weight: bold } - .terminal-4035773514-r13 { fill: #23568b } - .terminal-4035773514-r14 { fill: #e1e1e1 } - .terminal-4035773514-r15 { fill: #e4e5e6 } - .terminal-4035773514-r16 { fill: #dde8f3;font-weight: bold } - .terminal-4035773514-r17 { fill: #ddedf9 } + .terminal-2014980104-r1 { fill: #e2e3e3 } + .terminal-2014980104-r2 { fill: #cd5c5c } + .terminal-2014980104-r3 { fill: #e2e3e3;font-weight: bold } + .terminal-2014980104-r4 { fill: #141414 } + .terminal-2014980104-r5 { fill: #c5c8c6 } + .terminal-2014980104-r6 { fill: #008139 } + .terminal-2014980104-r7 { fill: #4c707e } + .terminal-2014980104-r8 { fill: #f8f8f2 } + .terminal-2014980104-r9 { fill: #211505;font-weight: bold } + .terminal-2014980104-r10 { fill: #794f14;font-weight: bold } + .terminal-2014980104-r11 { fill: #fea62b;font-weight: bold } + .terminal-2014980104-r12 { fill: #23568b } + .terminal-2014980104-r13 { fill: #e1e1e1 } + .terminal-2014980104-r14 { fill: #e4e5e6 } + .terminal-2014980104-r15 { fill: #dde8f3;font-weight: bold } + .terminal-2014980104-r16 { fill: #ddedf9 } - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - TreeApp + TreeApp - - - - โ–ผ ๐Ÿ“‚ 1.000KB (100.00 %) <ROOT>โ–ˆโ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–ˆ - โ””โ”€โ”€ โ–ผ ๐Ÿ“‚ 1.000KB (100.00 %) grandparentfun.py:4โ–ˆdef generate_primes():                      โ–ˆ - โ””โ”€โ”€ โ–ผ ๐Ÿ“‚ 1.000KB (100.00 %) parentfun.py:8โ–ˆ    numbers = itertools.count(2) โ–ˆ - โ”—โ”โ” ๐Ÿ“„ 1.000KB (100.00 %) mefun.py:12โ–ˆ    while True: โ–ˆ - โ–ˆ        prime = next(numbers) โ–ˆ - โ–ˆ        yield prime โ–ˆ - โ–ˆ        numbers = filter(lambda x, prime=priโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–Œโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆ๐Ÿงญ Function: parentโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆ๐Ÿงญ Location: fun.py:8โ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆ๐Ÿ’พ Allocations: 1โ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆ๐Ÿ“ฆ Size: 1.000KBโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆ๐Ÿงต Thread: 0x1โ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–ˆ -  Q  Quit the app  I  Hide import system  U  Show uninteresting  E  Expand linear group  + + + + โ–ผ ๐Ÿ“‚ 1.000KB (100.00 %) <ROOT>โ–ˆโ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–ˆ + โ””โ”€โ”€ โ–ผ ๐Ÿ“‚ 1.000KB (100.00 %) grandparentfun.py:4โ–ˆimport itertools                            โ–ˆ + โ””โ”€โ”€ โ–ผ ๐Ÿ“‚ 1.000KB (100.00 %) parentfun.py:8โ–ˆdef generate_primes(): โ–ˆ + โ”—โ”โ” ๐Ÿ“„ 1.000KB (100.00 %) mefun.py:12โ–ˆ    numbers = itertools.count(2) โ–ˆ + โ–ˆ    while True: โ–ˆ + โ–ˆ        prime = next(numbers) โ–ˆ + โ–ˆ        yield prime โ–ˆ + โ–ˆ        numbers = filter(lambda x, prime=priโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–Œโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆ๐Ÿงญ Function: parentโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆ๐Ÿงญ Location: fun.py:8โ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆ๐Ÿ’พ Allocations: 1โ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆ๐Ÿ“ฆ Size: 1.000KBโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆ๐Ÿงต Thread: 0x1โ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–ˆ +  Q  Quit the app  I  Hide import system  U  Show uninteresting  E  Expand linear group  @@ -1480,209 +1476,208 @@ font-weight: 700; } - .terminal-274347137-matrix { + .terminal-3177967882-matrix { font-family: Fira Code, monospace; font-size: 20px; line-height: 24.4px; font-variant-east-asian: full-width; } - .terminal-274347137-title { + .terminal-3177967882-title { font-size: 18px; font-weight: bold; font-family: arial; } - .terminal-274347137-r1 { fill: #e2e3e3 } - .terminal-274347137-r2 { fill: #cd5c5c } - .terminal-274347137-r3 { fill: #e2e3e3;font-weight: bold } - .terminal-274347137-r4 { fill: #141414 } - .terminal-274347137-r5 { fill: #c5c8c6 } - .terminal-274347137-r6 { fill: #008139 } - .terminal-274347137-r7 { fill: #61c12c } - .terminal-274347137-r8 { fill: #4c707e } - .terminal-274347137-r9 { fill: #f8f8f2 } - .terminal-274347137-r10 { fill: #282a36 } - .terminal-274347137-r11 { fill: #211505;font-weight: bold } - .terminal-274347137-r12 { fill: #e1e1e1 } - .terminal-274347137-r13 { fill: #e4e5e6 } - .terminal-274347137-r14 { fill: #dde8f3;font-weight: bold } - .terminal-274347137-r15 { fill: #ddedf9 } + .terminal-3177967882-r1 { fill: #e2e3e3 } + .terminal-3177967882-r2 { fill: #cd5c5c } + .terminal-3177967882-r3 { fill: #e2e3e3;font-weight: bold } + .terminal-3177967882-r4 { fill: #141414 } + .terminal-3177967882-r5 { fill: #c5c8c6 } + .terminal-3177967882-r6 { fill: #008139 } + .terminal-3177967882-r7 { fill: #61c12c } + .terminal-3177967882-r8 { fill: #4c707e } + .terminal-3177967882-r9 { fill: #f8f8f2 } + .terminal-3177967882-r10 { fill: #211505;font-weight: bold } + .terminal-3177967882-r11 { fill: #e1e1e1 } + .terminal-3177967882-r12 { fill: #e4e5e6 } + .terminal-3177967882-r13 { fill: #dde8f3;font-weight: bold } + .terminal-3177967882-r14 { fill: #ddedf9 } - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - TreeApp + TreeApp - - - - โ–ผ ๐Ÿ“‚ 487.793MB (100.00 %) <ROOT>โ–ˆโ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–ˆ - โ”œโ”€โ”€ ๐Ÿ“„ 999.000KB (0.20 %) function_999fun.py:12โ–ˆโ–ˆ - โ”œโ”€โ”€ ๐Ÿ“„ 998.000KB (0.20 %) function_998fun.py:12โ–ˆโ–ˆ - โ”œโ”€โ”€ ๐Ÿ“„ 997.000KB (0.20 %) function_997fun.py:12โ–ˆโ–ˆ - โ”œโ”€โ”€ ๐Ÿ“„ 996.000KB (0.20 %) function_996fun.py:12โ–ˆโ–ˆ - โ”œโ”€โ”€ ๐Ÿ“„ 995.000KB (0.20 %) function_995fun.py:12โ–ˆโ–ˆ - โ”œโ”€โ”€ ๐Ÿ“„ 994.000KB (0.20 %) function_994fun.py:12โ–ˆโ–ˆ - โ”œโ”€โ”€ ๐Ÿ“„ 993.000KB (0.20 %) function_993fun.py:12โ–ˆโ–ˆ - โ”œโ”€โ”€ ๐Ÿ“„ 992.000KB (0.20 %) function_992fun.py:12โ–ˆโ–ˆ - โ”œโ”€โ”€ ๐Ÿ“„ 991.000KB (0.20 %) function_991fun.py:12โ–ˆโ–ˆ - โ”œโ”€โ”€ ๐Ÿ“„ 990.000KB (0.20 %) function_990fun.py:12โ–ˆโ–ˆ - โ””โ”€โ”€ โ“ 478.081MB (98.01 %) 990 allocations from 990 locations below the configured thresholdโ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆOnly the top 10 allocation locations are shown in the tree. Allocationโ–ˆ - โ–ˆlocations which individually contributed too little to meet the โ–ˆ - โ–ˆthreshold are summarized here.โ–ˆ - โ–ˆโ–ˆ - โ–ˆYou can adjust this threshold to include more allocation locations by โ–ˆ - โ–ˆrerunning this reporter with a larger --biggest-allocs value.โ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆ๐Ÿ’พ Allocations: 990โ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆ๐Ÿ“ฆ Size: 478.081MBโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–ˆ -  Q  Quit the app  I  Hide import system  U  Show uninteresting  E  Expand linear group  + + + + โ–ผ ๐Ÿ“‚ 487.793MB (100.00 %) <ROOT>โ–ˆโ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–ˆ + โ”œโ”€โ”€ ๐Ÿ“„ 999.000KB (0.20 %) function_999fun.py:12โ–ˆโ–ˆ + โ”œโ”€โ”€ ๐Ÿ“„ 998.000KB (0.20 %) function_998fun.py:12โ–ˆโ–ˆ + โ”œโ”€โ”€ ๐Ÿ“„ 997.000KB (0.20 %) function_997fun.py:12โ–ˆโ–ˆ + โ”œโ”€โ”€ ๐Ÿ“„ 996.000KB (0.20 %) function_996fun.py:12โ–ˆโ–ˆ + โ”œโ”€โ”€ ๐Ÿ“„ 995.000KB (0.20 %) function_995fun.py:12โ–ˆโ–ˆ + โ”œโ”€โ”€ ๐Ÿ“„ 994.000KB (0.20 %) function_994fun.py:12โ–ˆโ–ˆ + โ”œโ”€โ”€ ๐Ÿ“„ 993.000KB (0.20 %) function_993fun.py:12โ–ˆโ–ˆ + โ”œโ”€โ”€ ๐Ÿ“„ 992.000KB (0.20 %) function_992fun.py:12โ–ˆโ–ˆ + โ”œโ”€โ”€ ๐Ÿ“„ 991.000KB (0.20 %) function_991fun.py:12โ–ˆโ–ˆ + โ”œโ”€โ”€ ๐Ÿ“„ 990.000KB (0.20 %) function_990fun.py:12โ–ˆโ–ˆ + โ””โ”€โ”€ โ“ 478.081MB (98.01 %) 990 allocations from 990 locations below the configured thresholdโ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆOnly the top 10 allocation locations are shown in the tree. Allocationโ–ˆ + โ–ˆlocations which individually contributed too little to meet the โ–ˆ + โ–ˆthreshold are summarized here.โ–ˆ + โ–ˆโ–ˆ + โ–ˆYou can adjust this threshold to include more allocation locations by โ–ˆ + โ–ˆrerunning this reporter with a larger --biggest-allocs value.โ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆ๐Ÿ’พ Allocations: 990โ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆ๐Ÿ“ฆ Size: 478.081MBโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–ˆ +  Q  Quit the app  I  Hide import system  U  Show uninteresting  E  Expand linear group  @@ -1712,288 +1707,287 @@ font-weight: 700; } - .terminal-1380535601-matrix { + .terminal-302123465-matrix { font-family: Fira Code, monospace; font-size: 20px; line-height: 24.4px; font-variant-east-asian: full-width; } - .terminal-1380535601-title { + .terminal-302123465-title { font-size: 18px; font-weight: bold; font-family: arial; } - .terminal-1380535601-r1 { fill: #e2e3e3 } - .terminal-1380535601-r2 { fill: #211505;font-weight: bold } - .terminal-1380535601-r3 { fill: #141414 } - .terminal-1380535601-r4 { fill: #c5c8c6 } - .terminal-1380535601-r5 { fill: #fea62b;font-weight: bold } - .terminal-1380535601-r6 { fill: #d96845 } - .terminal-1380535601-r7 { fill: #e2e3e3;font-weight: bold } - .terminal-1380535601-r8 { fill: #4c707e } - .terminal-1380535601-r9 { fill: #f8f8f2 } - .terminal-1380535601-r10 { fill: #282a36 } - .terminal-1380535601-r11 { fill: #e1e1e1 } - .terminal-1380535601-r12 { fill: #e4e5e6 } - .terminal-1380535601-r13 { fill: #dde8f3;font-weight: bold } - .terminal-1380535601-r14 { fill: #ddedf9 } + .terminal-302123465-r1 { fill: #e2e3e3 } + .terminal-302123465-r2 { fill: #211505;font-weight: bold } + .terminal-302123465-r3 { fill: #141414 } + .terminal-302123465-r4 { fill: #c5c8c6 } + .terminal-302123465-r5 { fill: #fea62b;font-weight: bold } + .terminal-302123465-r6 { fill: #d96845 } + .terminal-302123465-r7 { fill: #e2e3e3;font-weight: bold } + .terminal-302123465-r8 { fill: #4c707e } + .terminal-302123465-r9 { fill: #f8f8f2 } + .terminal-302123465-r10 { fill: #e1e1e1 } + .terminal-302123465-r11 { fill: #e4e5e6 } + .terminal-302123465-r12 { fill: #dde8f3;font-weight: bold } + .terminal-302123465-r13 { fill: #ddedf9 } - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - TreeApp + TreeApp - - - - โ–ผ ๐Ÿ“‚ 11.000KB (100.00 %) <ROOT>โ–ˆโ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–ˆ - โ”—โ”โ” โ–ผ ๐Ÿ“‚ 10.000KB (90.91 %) grandparent2fun2.py:4โ–ˆโ–ˆ - โ”—โ”โ” โ–ผ ๐Ÿ“‚ 10.000KB (90.91 %) parent2fun2.py:8โ–ˆโ–ˆ - โ”—โ”โ” ๐Ÿ“„ 10.000KB (90.91 %) me2fun2.py:12โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆ๐Ÿ’พ Allocations: 2โ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆ๐Ÿ“ฆ Size: 11.000KBโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–ˆ -  Q  Quit the app  I  Show import system  U  Show uninteresting  E  Expand linear group  + + + + โ–ผ ๐Ÿ“‚ 11.000KB (100.00 %) <ROOT>โ–ˆโ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–ˆ + โ”—โ”โ” โ–ผ ๐Ÿ“‚ 10.000KB (90.91 %) grandparent2fun2.py:4โ–ˆโ–ˆ + โ”—โ”โ” โ–ผ ๐Ÿ“‚ 10.000KB (90.91 %) parent2fun2.py:8โ–ˆโ–ˆ + โ”—โ”โ” ๐Ÿ“„ 10.000KB (90.91 %) me2fun2.py:12โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆ๐Ÿ’พ Allocations: 2โ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆ๐Ÿ“ฆ Size: 11.000KBโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–ˆ +  Q  Quit the app  I  Show import system  U  Show uninteresting  E  Expand linear group  @@ -2023,290 +2017,289 @@ font-weight: 700; } - .terminal-3547620932-matrix { + .terminal-3855902295-matrix { font-family: Fira Code, monospace; font-size: 20px; line-height: 24.4px; font-variant-east-asian: full-width; } - .terminal-3547620932-title { + .terminal-3855902295-title { font-size: 18px; font-weight: bold; font-family: arial; } - .terminal-3547620932-r1 { fill: #e2e3e3 } - .terminal-3547620932-r2 { fill: #cd5c5c } - .terminal-3547620932-r3 { fill: #e2e3e3;font-weight: bold } - .terminal-3547620932-r4 { fill: #141414 } - .terminal-3547620932-r5 { fill: #c5c8c6 } - .terminal-3547620932-r6 { fill: #008139 } - .terminal-3547620932-r7 { fill: #4c707e } - .terminal-3547620932-r8 { fill: #f8f8f2 } - .terminal-3547620932-r9 { fill: #282a36 } - .terminal-3547620932-r10 { fill: #211505;font-weight: bold } - .terminal-3547620932-r11 { fill: #794f14;font-weight: bold } - .terminal-3547620932-r12 { fill: #23568b } - .terminal-3547620932-r13 { fill: #e1e1e1 } - .terminal-3547620932-r14 { fill: #e4e5e6 } - .terminal-3547620932-r15 { fill: #dde8f3;font-weight: bold } - .terminal-3547620932-r16 { fill: #ddedf9 } + .terminal-3855902295-r1 { fill: #e2e3e3 } + .terminal-3855902295-r2 { fill: #cd5c5c } + .terminal-3855902295-r3 { fill: #e2e3e3;font-weight: bold } + .terminal-3855902295-r4 { fill: #141414 } + .terminal-3855902295-r5 { fill: #c5c8c6 } + .terminal-3855902295-r6 { fill: #008139 } + .terminal-3855902295-r7 { fill: #4c707e } + .terminal-3855902295-r8 { fill: #f8f8f2 } + .terminal-3855902295-r9 { fill: #211505;font-weight: bold } + .terminal-3855902295-r10 { fill: #794f14;font-weight: bold } + .terminal-3855902295-r11 { fill: #23568b } + .terminal-3855902295-r12 { fill: #e1e1e1 } + .terminal-3855902295-r13 { fill: #e4e5e6 } + .terminal-3855902295-r14 { fill: #dde8f3;font-weight: bold } + .terminal-3855902295-r15 { fill: #ddedf9 } - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - TreeApp + TreeApp - - - - โ–ผ ๐Ÿ“‚ 1.000KB (100.00 %) <ROOT>โ–ˆโ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–ˆ - โ””โ”€โ”€ โ–ผ ๐Ÿ“‚ 1.000KB (100.00 %) grandparent2fun2.py:4โ–ˆimport itertools                            โ–ˆ - โ””โ”€โ”€ โ–ผ ๐Ÿ“‚ 1.000KB (100.00 %) parent2fun2.py:8โ–ˆdef generate_primes(): โ–ˆ - โ””โ”€โ”€ ๐Ÿ“„ 1.000KB (100.00 %) me2func2.py:4โ–ˆ    numbers = itertools.count(2) โ–ˆ - โ–ˆ    while True: โ–ˆ - โ–ˆ        prime = next(numbers) โ–ˆ - โ–ˆ        yield prime โ–ˆ - โ–ˆ        numbers = filter(lambda x, prime=priโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–Œโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆ๐Ÿงญ Function: me2โ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆ๐Ÿงญ Location: func2.py:4โ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆ๐Ÿ’พ Allocations: 1โ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆ๐Ÿ“ฆ Size: 1.000KBโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆ๐Ÿงต Thread: 0x1โ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–ˆ -  Q  Quit the app  I  Hide import system  U  Show uninteresting  E  Expand linear group  + + + + โ–ผ ๐Ÿ“‚ 1.000KB (100.00 %) <ROOT>โ–ˆโ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–ˆ + โ””โ”€โ”€ โ–ผ ๐Ÿ“‚ 1.000KB (100.00 %) grandparent2fun2.py:4โ–ˆimport itertools โ–ˆ + โ””โ”€โ”€ โ–ผ ๐Ÿ“‚ 1.000KB (100.00 %) parent2fun2.py:8โ–ˆdef generate_primes(): โ–ˆ + โ””โ”€โ”€ ๐Ÿ“„ 1.000KB (100.00 %) me2func2.py:4โ–ˆ    numbers = itertools.count(2) โ–ˆ + โ–ˆ    while True:โ–ˆ + โ–ˆ        prime = next(numbers) โ–ˆ + โ–ˆ        yield prime โ–ˆ + โ–ˆ        numbers = filter(lambda x, prime=priโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–Œโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆ๐Ÿงญ Function: me2โ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆ๐Ÿงญ Location: func2.py:4โ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆ๐Ÿ’พ Allocations: 1โ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆ๐Ÿ“ฆ Size: 1.000KBโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆ๐Ÿงต Thread: 0x1โ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–ˆ +  Q  Quit the app  I  Hide import system  U  Show uninteresting  E  Expand linear group  @@ -2336,289 +2329,288 @@ font-weight: 700; } - .terminal-1197763187-matrix { + .terminal-2081957643-matrix { font-family: Fira Code, monospace; font-size: 20px; line-height: 24.4px; font-variant-east-asian: full-width; } - .terminal-1197763187-title { + .terminal-2081957643-title { font-size: 18px; font-weight: bold; font-family: arial; } - .terminal-1197763187-r1 { fill: #e2e3e3 } - .terminal-1197763187-r2 { fill: #211505;font-weight: bold } - .terminal-1197763187-r3 { fill: #141414 } - .terminal-1197763187-r4 { fill: #c5c8c6 } - .terminal-1197763187-r5 { fill: #fea62b;font-weight: bold } - .terminal-1197763187-r6 { fill: #d96845 } - .terminal-1197763187-r7 { fill: #e2e3e3;font-weight: bold } - .terminal-1197763187-r8 { fill: #4c707e } - .terminal-1197763187-r9 { fill: #f8f8f2 } - .terminal-1197763187-r10 { fill: #282a36 } - .terminal-1197763187-r11 { fill: #80b725 } - .terminal-1197763187-r12 { fill: #e1e1e1 } - .terminal-1197763187-r13 { fill: #e4e5e6 } - .terminal-1197763187-r14 { fill: #dde8f3;font-weight: bold } - .terminal-1197763187-r15 { fill: #ddedf9 } + .terminal-2081957643-r1 { fill: #e2e3e3 } + .terminal-2081957643-r2 { fill: #211505;font-weight: bold } + .terminal-2081957643-r3 { fill: #141414 } + .terminal-2081957643-r4 { fill: #c5c8c6 } + .terminal-2081957643-r5 { fill: #fea62b;font-weight: bold } + .terminal-2081957643-r6 { fill: #d96845 } + .terminal-2081957643-r7 { fill: #e2e3e3;font-weight: bold } + .terminal-2081957643-r8 { fill: #4c707e } + .terminal-2081957643-r9 { fill: #f8f8f2 } + .terminal-2081957643-r10 { fill: #80b725 } + .terminal-2081957643-r11 { fill: #e1e1e1 } + .terminal-2081957643-r12 { fill: #e4e5e6 } + .terminal-2081957643-r13 { fill: #dde8f3;font-weight: bold } + .terminal-2081957643-r14 { fill: #ddedf9 } - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - TreeApp + TreeApp - - - - โ–ผ ๐Ÿ“‚ 11.000KB (100.00 %) <ROOT>โ–ˆโ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–ˆ - โ”ฃโ”โ” โ–ผ ๐Ÿ“‚ 10.000KB (90.91 %) grandparent2fun2.py:4โ–ˆโ–ˆ - โ”ƒ   โ”—โ”โ” โ–ผ ๐Ÿ“‚ 10.000KB (90.91 %) parent2fun2.py:8โ–ˆโ–ˆ - โ”ƒ   โ”—โ”โ” ๐Ÿ“„ 10.000KB (90.91 %) me2fun2.py:12โ–ˆโ–ˆ - โ”—โ”โ” โ–ถ ๐Ÿ“‚ 1.000KB (9.09 %) erunpy.py:5โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆ๐Ÿ’พ Allocations: 2โ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆ๐Ÿ“ฆ Size: 11.000KBโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–ˆ -  Q  Quit the app  I  Hide import system  U  Hide uninteresting  E  Expand linear group  + + + + โ–ผ ๐Ÿ“‚ 11.000KB (100.00 %) <ROOT>โ–ˆโ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–ˆ + โ”ฃโ”โ” โ–ผ ๐Ÿ“‚ 10.000KB (90.91 %) grandparent2fun2.py:4โ–ˆโ–ˆ + โ”ƒ   โ”—โ”โ” โ–ผ ๐Ÿ“‚ 10.000KB (90.91 %) parent2fun2.py:8โ–ˆโ–ˆ + โ”ƒ   โ”—โ”โ” ๐Ÿ“„ 10.000KB (90.91 %) me2fun2.py:12โ–ˆโ–ˆ + โ”—โ”โ” โ–ถ ๐Ÿ“‚ 1.000KB (9.09 %) erunpy.py:5โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆ๐Ÿ’พ Allocations: 2โ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆ๐Ÿ“ฆ Size: 11.000KBโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–ˆ +  Q  Quit the app  I  Hide import system  U  Hide uninteresting  E  Expand linear group  @@ -2648,289 +2640,288 @@ font-weight: 700; } - .terminal-381050088-matrix { + .terminal-2862619008-matrix { font-family: Fira Code, monospace; font-size: 20px; line-height: 24.4px; font-variant-east-asian: full-width; } - .terminal-381050088-title { + .terminal-2862619008-title { font-size: 18px; font-weight: bold; font-family: arial; } - .terminal-381050088-r1 { fill: #e2e3e3 } - .terminal-381050088-r2 { fill: #211505;font-weight: bold } - .terminal-381050088-r3 { fill: #141414 } - .terminal-381050088-r4 { fill: #c5c8c6 } - .terminal-381050088-r5 { fill: #fea62b;font-weight: bold } - .terminal-381050088-r6 { fill: #d96845 } - .terminal-381050088-r7 { fill: #e2e3e3;font-weight: bold } - .terminal-381050088-r8 { fill: #4c707e } - .terminal-381050088-r9 { fill: #f8f8f2 } - .terminal-381050088-r10 { fill: #282a36 } - .terminal-381050088-r11 { fill: #80b725 } - .terminal-381050088-r12 { fill: #e1e1e1 } - .terminal-381050088-r13 { fill: #e4e5e6 } - .terminal-381050088-r14 { fill: #dde8f3;font-weight: bold } - .terminal-381050088-r15 { fill: #ddedf9 } + .terminal-2862619008-r1 { fill: #e2e3e3 } + .terminal-2862619008-r2 { fill: #211505;font-weight: bold } + .terminal-2862619008-r3 { fill: #141414 } + .terminal-2862619008-r4 { fill: #c5c8c6 } + .terminal-2862619008-r5 { fill: #fea62b;font-weight: bold } + .terminal-2862619008-r6 { fill: #d96845 } + .terminal-2862619008-r7 { fill: #e2e3e3;font-weight: bold } + .terminal-2862619008-r8 { fill: #4c707e } + .terminal-2862619008-r9 { fill: #f8f8f2 } + .terminal-2862619008-r10 { fill: #80b725 } + .terminal-2862619008-r11 { fill: #e1e1e1 } + .terminal-2862619008-r12 { fill: #e4e5e6 } + .terminal-2862619008-r13 { fill: #dde8f3;font-weight: bold } + .terminal-2862619008-r14 { fill: #ddedf9 } - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - TreeApp + TreeApp - - - - โ–ผ ๐Ÿ“‚ 11.000KB (100.00 %) <ROOT>โ–ˆโ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–ˆ - โ”ฃโ”โ” โ–ผ ๐Ÿ“‚ 10.000KB (90.91 %) crunpy.py:5โ–ˆโ–ˆ - โ”ƒ   โ”—โ”โ” โ–ผ ๐Ÿ“‚ 10.000KB (90.91 %) brunpy.py:2โ–ˆโ–ˆ - โ”ƒ   โ”—โ”โ” โ–ผ ๐Ÿ“‚ 10.000KB (90.91 %) arunpy.py:1โ–ˆโ–ˆ - โ”ƒ   โ”—โ”โ” ๐Ÿ“„ 10.000KB (90.91 %) Asome other frame:4โ–ˆโ–ˆ - โ”—โ”โ” โ–ถ ๐Ÿ“‚ 1.000KB (9.09 %) grandparent2fun2.py:4โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆ๐Ÿ’พ Allocations: 2โ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆ๐Ÿ“ฆ Size: 11.000KBโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–ˆ -  Q  Quit the app  I  Show import system  U  Hide uninteresting  E  Expand linear group  + + + + โ–ผ ๐Ÿ“‚ 11.000KB (100.00 %) <ROOT>โ–ˆโ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–ˆ + โ”ฃโ”โ” โ–ผ ๐Ÿ“‚ 10.000KB (90.91 %) crunpy.py:5โ–ˆโ–ˆ + โ”ƒ   โ”—โ”โ” โ–ผ ๐Ÿ“‚ 10.000KB (90.91 %) brunpy.py:2โ–ˆโ–ˆ + โ”ƒ   โ”—โ”โ” โ–ผ ๐Ÿ“‚ 10.000KB (90.91 %) arunpy.py:1โ–ˆโ–ˆ + โ”ƒ   โ”—โ”โ” ๐Ÿ“„ 10.000KB (90.91 %) Asome other frame:4โ–ˆโ–ˆ + โ”—โ”โ” โ–ถ ๐Ÿ“‚ 1.000KB (9.09 %) grandparent2fun2.py:4โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆ๐Ÿ’พ Allocations: 2โ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆ๐Ÿ“ฆ Size: 11.000KBโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–ˆ +  Q  Quit the app  I  Show import system  U  Hide uninteresting  E  Expand linear group  @@ -2960,289 +2951,288 @@ font-weight: 700; } - .terminal-3837750485-matrix { + .terminal-427960685-matrix { font-family: Fira Code, monospace; font-size: 20px; line-height: 24.4px; font-variant-east-asian: full-width; } - .terminal-3837750485-title { + .terminal-427960685-title { font-size: 18px; font-weight: bold; font-family: arial; } - .terminal-3837750485-r1 { fill: #e2e3e3 } - .terminal-3837750485-r2 { fill: #211505;font-weight: bold } - .terminal-3837750485-r3 { fill: #141414 } - .terminal-3837750485-r4 { fill: #c5c8c6 } - .terminal-3837750485-r5 { fill: #fea62b;font-weight: bold } - .terminal-3837750485-r6 { fill: #d96845 } - .terminal-3837750485-r7 { fill: #e2e3e3;font-weight: bold } - .terminal-3837750485-r8 { fill: #4c707e } - .terminal-3837750485-r9 { fill: #f8f8f2 } - .terminal-3837750485-r10 { fill: #282a36 } - .terminal-3837750485-r11 { fill: #80b725 } - .terminal-3837750485-r12 { fill: #e1e1e1 } - .terminal-3837750485-r13 { fill: #e4e5e6 } - .terminal-3837750485-r14 { fill: #dde8f3;font-weight: bold } - .terminal-3837750485-r15 { fill: #ddedf9 } + .terminal-427960685-r1 { fill: #e2e3e3 } + .terminal-427960685-r2 { fill: #211505;font-weight: bold } + .terminal-427960685-r3 { fill: #141414 } + .terminal-427960685-r4 { fill: #c5c8c6 } + .terminal-427960685-r5 { fill: #fea62b;font-weight: bold } + .terminal-427960685-r6 { fill: #d96845 } + .terminal-427960685-r7 { fill: #e2e3e3;font-weight: bold } + .terminal-427960685-r8 { fill: #4c707e } + .terminal-427960685-r9 { fill: #f8f8f2 } + .terminal-427960685-r10 { fill: #80b725 } + .terminal-427960685-r11 { fill: #e1e1e1 } + .terminal-427960685-r12 { fill: #e4e5e6 } + .terminal-427960685-r13 { fill: #dde8f3;font-weight: bold } + .terminal-427960685-r14 { fill: #ddedf9 } - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - TreeApp + TreeApp - - - - โ–ผ ๐Ÿ“‚ 11.000KB (100.00 %) <ROOT>โ–ˆโ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–ˆ - โ”ฃโ”โ” โ–ผ ๐Ÿ“‚ 10.000KB (90.91 %) grandparent2fun2.py:4โ–ˆโ–ˆ - โ”ƒ   โ”—โ”โ” โ–ผ ๐Ÿ“‚ 10.000KB (90.91 %) parent2fun2.py:8โ–ˆโ–ˆ - โ”ƒ   โ”—โ”โ” ๐Ÿ“„ 10.000KB (90.91 %) me2fun2.py:12โ–ˆโ–ˆ - โ”—โ”โ” โ–ถ ๐Ÿ“‚ 1.000KB (9.09 %) grandparentfun.py:4โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆ๐Ÿ’พ Allocations: 2โ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆ๐Ÿ“ฆ Size: 11.000KBโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–ˆ -  Q  Quit the app  I  Hide import system  U  Show uninteresting  E  Expand linear group  + + + + โ–ผ ๐Ÿ“‚ 11.000KB (100.00 %) <ROOT>โ–ˆโ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–ˆ + โ”ฃโ”โ” โ–ผ ๐Ÿ“‚ 10.000KB (90.91 %) grandparent2fun2.py:4โ–ˆโ–ˆ + โ”ƒ   โ”—โ”โ” โ–ผ ๐Ÿ“‚ 10.000KB (90.91 %) parent2fun2.py:8โ–ˆโ–ˆ + โ”ƒ   โ”—โ”โ” ๐Ÿ“„ 10.000KB (90.91 %) me2fun2.py:12โ–ˆโ–ˆ + โ”—โ”โ” โ–ถ ๐Ÿ“‚ 1.000KB (9.09 %) grandparentfun.py:4โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆ๐Ÿ’พ Allocations: 2โ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆ๐Ÿ“ฆ Size: 11.000KBโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–ˆ +  Q  Quit the app  I  Hide import system  U  Show uninteresting  E  Expand linear group  @@ -3272,293 +3262,292 @@ font-weight: 700; } - .terminal-3900064492-matrix { + .terminal-1227113215-matrix { font-family: Fira Code, monospace; font-size: 20px; line-height: 24.4px; font-variant-east-asian: full-width; } - .terminal-3900064492-title { + .terminal-1227113215-title { font-size: 18px; font-weight: bold; font-family: arial; } - .terminal-3900064492-r1 { fill: #e2e3e3 } - .terminal-3900064492-r2 { fill: #cd5c5c } - .terminal-3900064492-r3 { fill: #e2e3e3;font-weight: bold } - .terminal-3900064492-r4 { fill: #141414 } - .terminal-3900064492-r5 { fill: #c5c8c6 } - .terminal-3900064492-r6 { fill: #008139 } - .terminal-3900064492-r7 { fill: #d96845 } - .terminal-3900064492-r8 { fill: #4c707e } - .terminal-3900064492-r9 { fill: #f8f8f2 } - .terminal-3900064492-r10 { fill: #282a36 } - .terminal-3900064492-r11 { fill: #211505;font-weight: bold } - .terminal-3900064492-r12 { fill: #794f14;font-weight: bold } - .terminal-3900064492-r13 { fill: #fea62b;font-weight: bold } - .terminal-3900064492-r14 { fill: #80b725 } - .terminal-3900064492-r15 { fill: #23568b } - .terminal-3900064492-r16 { fill: #e1e1e1 } - .terminal-3900064492-r17 { fill: #e4e5e6 } - .terminal-3900064492-r18 { fill: #dde8f3;font-weight: bold } - .terminal-3900064492-r19 { fill: #ddedf9 } + .terminal-1227113215-r1 { fill: #e2e3e3 } + .terminal-1227113215-r2 { fill: #cd5c5c } + .terminal-1227113215-r3 { fill: #e2e3e3;font-weight: bold } + .terminal-1227113215-r4 { fill: #141414 } + .terminal-1227113215-r5 { fill: #c5c8c6 } + .terminal-1227113215-r6 { fill: #008139 } + .terminal-1227113215-r7 { fill: #d96845 } + .terminal-1227113215-r8 { fill: #4c707e } + .terminal-1227113215-r9 { fill: #f8f8f2 } + .terminal-1227113215-r10 { fill: #211505;font-weight: bold } + .terminal-1227113215-r11 { fill: #794f14;font-weight: bold } + .terminal-1227113215-r12 { fill: #fea62b;font-weight: bold } + .terminal-1227113215-r13 { fill: #80b725 } + .terminal-1227113215-r14 { fill: #23568b } + .terminal-1227113215-r15 { fill: #e1e1e1 } + .terminal-1227113215-r16 { fill: #e4e5e6 } + .terminal-1227113215-r17 { fill: #dde8f3;font-weight: bold } + .terminal-1227113215-r18 { fill: #ddedf9 } - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - TreeApp + TreeApp - - - - โ–ผ ๐Ÿ“‚ 11.000KB (100.00 %) <ROOT>โ–ˆโ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–ˆ - โ”œโ”€โ”€ โ–ผ ๐Ÿ“‚ 10.000KB (90.91 %) grandparent2fun2.py:4โ–ˆimport itertools                            โ–ˆ - โ”‚   โ””โ”€โ”€ โ–ผ ๐Ÿ“‚ 10.000KB (90.91 %) parent2fun2.py:8โ–ˆdef generate_primes(): โ–ˆ - โ”‚   โ””โ”€โ”€ ๐Ÿ“„ 10.000KB (90.91 %) me2fun2.py:12โ–ˆ    numbers = itertools.count(2) โ–ˆ - โ””โ”€โ”€ โ–ผ ๐Ÿ“‚ 1.000KB (9.09 %) efun.py:5โ–ˆ    while True: โ–ˆ - โ”—โ”โ” โ–ผ ๐Ÿ“‚ 1.000KB (9.09 %) dfun.py:4โ–ˆ        prime = next(numbers) โ–ˆ - โ”—โ”โ” โ–ผ ๐Ÿ“‚ 1.000KB (9.09 %) cfun.py:3โ–ˆ        yield prime โ–ˆ - โ”—โ”โ” โ–ผ ๐Ÿ“‚ 1.000KB (9.09 %) bfun.py:2โ–ˆ        numbers = filter(lambda x, prime=priโ–ˆ - โ”—โ”โ” ๐Ÿ“„ 1.000KB (9.09 %) afun.py:1โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–Œโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆ๐Ÿงญ Function: eโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆ๐Ÿงญ Location: fun.py:5โ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆ๐Ÿ’พ Allocations: 1โ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆ๐Ÿ“ฆ Size: 1.000KBโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆ๐Ÿงต Thread: 0x1โ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–ˆ - โ–ˆโ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–ˆ -  Q  Quit the app  I  Hide import system  U  Show uninteresting  E  Expand linear group  + + + + โ–ผ ๐Ÿ“‚ 11.000KB (100.00 %) <ROOT>โ–ˆโ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–€โ–ˆ + โ”œโ”€โ”€ โ–ผ ๐Ÿ“‚ 10.000KB (90.91 %) grandparent2fun2.py:4โ–ˆimport itertools โ–ˆ + โ”‚   โ””โ”€โ”€ โ–ผ ๐Ÿ“‚ 10.000KB (90.91 %) parent2fun2.py:8โ–ˆdef generate_primes(): โ–ˆ + โ”‚   โ””โ”€โ”€ ๐Ÿ“„ 10.000KB (90.91 %) me2fun2.py:12โ–ˆ    numbers = itertools.count(2) โ–ˆ + โ””โ”€โ”€ โ–ผ ๐Ÿ“‚ 1.000KB (9.09 %) efun.py:5โ–ˆ    while True: โ–ˆ + โ”—โ”โ” โ–ผ ๐Ÿ“‚ 1.000KB (9.09 %) dfun.py:4โ–ˆ        prime = next(numbers)โ–ˆ + โ”—โ”โ” โ–ผ ๐Ÿ“‚ 1.000KB (9.09 %) cfun.py:3โ–ˆ        yield prime โ–ˆ + โ”—โ”โ” โ–ผ ๐Ÿ“‚ 1.000KB (9.09 %) bfun.py:2โ–ˆ        numbers = filter(lambda x, prime=priโ–ˆ + โ”—โ”โ” ๐Ÿ“„ 1.000KB (9.09 %) afun.py:1โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–Œโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆ๐Ÿงญ Function: eโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆ๐Ÿงญ Location: fun.py:5โ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆ๐Ÿ’พ Allocations: 1โ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆ๐Ÿ“ฆ Size: 1.000KBโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆ๐Ÿงต Thread: 0x1โ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–ˆ + โ–ˆโ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–ˆ +  Q  Quit the app  I  Hide import system  U  Show uninteresting  E  Expand linear group  From fec7d8c874c48a990b219f8d2d298549ed014338 Mon Sep 17 00:00:00 2001 From: Matt Wozniski Date: Fri, 2 Feb 2024 14:46:50 -0500 Subject: [PATCH 4/4] tests: Skip some more snapshot tests on Python 3.7 The latest versions of Textual only support Python 3.8 and higher, so differences from the snapshot are expected when running Python 3.7. Signed-off-by: Matt Wozniski --- tests/unit/test_tree_reporter.py | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/tests/unit/test_tree_reporter.py b/tests/unit/test_tree_reporter.py index bb772b56c4..030436e1de 100644 --- a/tests/unit/test_tree_reporter.py +++ b/tests/unit/test_tree_reporter.py @@ -1561,6 +1561,10 @@ def compare_impl( class TestTUILooks: + @pytest.mark.skipif( + sys.version_info < (3, 8), + reason="This test requires Textual 0.49 or higher, which doesn't support 3.7", + ) def test_basic(self, compare): # GIVEN code = dedent( @@ -1633,6 +1637,10 @@ def generate_primes(): getlines.return_value = code.splitlines() assert compare(peak_allocations, press=[*["down"] * 2]) + @pytest.mark.skipif( + sys.version_info < (3, 8), + reason="This test requires Textual 0.49 or higher, which doesn't support 3.7", + ) def test_basic_node_selected_leaf(self, compare): # GIVEN code = dedent( @@ -1667,6 +1675,10 @@ def generate_primes(): getlines.return_value = code.splitlines() assert compare(peak_allocations, press=[*["down"] * 3]) + @pytest.mark.skipif( + sys.version_info < (3, 8), + reason="This test requires Textual 0.49 or higher, which doesn't support 3.7", + ) def test_two_chains(self, compare): # GIVEN code = dedent( @@ -1767,6 +1779,10 @@ def generate_primes(): getlines.return_value = code.splitlines() assert compare(peak_allocations, press=[*["down"] * 4, "e"]) + @pytest.mark.skipif( + sys.version_info < (3, 8), + reason="This test requires Textual 0.49 or higher, which doesn't support 3.7", + ) def test_hide_import_system(self, compare): # GIVEN code = dedent( @@ -1817,6 +1833,10 @@ def generate_primes(): getlines.return_value = code.splitlines() assert compare(peak_allocations, press=["i"]) + @pytest.mark.skipif( + sys.version_info < (3, 8), + reason="This test requires Textual 0.49 or higher, which doesn't support 3.7", + ) def test_show_uninteresting(self, compare): # GIVEN code = dedent( @@ -1867,6 +1887,10 @@ def generate_primes(): getlines.return_value = code.splitlines() assert compare(peak_allocations, press=["u"]) + @pytest.mark.skipif( + sys.version_info < (3, 8), + reason="This test requires Textual 0.49 or higher, which doesn't support 3.7", + ) def test_show_uninteresting_and_hide_import_system(self, compare): # GIVEN code = dedent( @@ -1955,6 +1979,10 @@ def generate_primes(): getlines.return_value = code.splitlines() assert compare(peak_allocations, press=[*["down"] * 3]) + @pytest.mark.skipif( + sys.version_info < (3, 8), + reason="This test requires Textual 0.49 or higher, which doesn't support 3.7", + ) def test_allocations_of_different_sizes(self, compare): # GIVEN peak_allocations = [ @@ -1975,6 +2003,10 @@ def test_allocations_of_different_sizes(self, compare): getlines.return_value = [] assert compare(peak_allocations, press=[], terminal_size=(350, 100)) + @pytest.mark.skipif( + sys.version_info < (3, 8), + reason="This test requires Textual 0.49 or higher, which doesn't support 3.7", + ) def test_biggest_allocations(self, compare): # GIVEN peak_allocations = [