From 66a63d3f6b150ef5d59b9bfbfc1b5c4154bec497 Mon Sep 17 00:00:00 2001 From: LU Jialin Date: Thu, 7 Nov 2024 22:20:11 -0800 Subject: [PATCH 1/2] print the grid in terminal, modified based on PR #2 --- arckit/vis.py | 44 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 43 insertions(+), 1 deletion(-) diff --git a/arckit/vis.py b/arckit/vis.py index 1c3d622..798be69 100644 --- a/arckit/vis.py +++ b/arckit/vis.py @@ -1,6 +1,7 @@ import drawsvg import numpy as np import io +import rich cmap = [ '#252525', # black @@ -262,4 +263,45 @@ def output_drawing(d: drawsvg.Drawing, filename: str, context=None): import cairosvg cairosvg.svg2pdf(bytestring=buffer.getvalue(), write_to=filename) else: - raise ValueError(f'Unknown file extension for {filename}') \ No newline at end of file + raise ValueError(f'Unknown file extension for {filename}') + +def print_grid(grid: np.ndarray): + """ + Print a grid to the terminal using rich library + + Parameters + ---------- + grid : np.ndarray + the standard grid format for Task + """ + CELL_WIDTH = 2 + + def get_color(color_str): + color_str = color_str.strip('#') + return rich.color.Color.from_rgb(*bytes.fromhex(color_str)) + + # Translate 'cmap' to rich style with respective color as background + rich_scmap = { + i: rich.style.Style(bgcolor=get_color(color)) + for i, color in enumerate(cmap) + } + + # Create and populate rich table + table = rich.table.Table.grid(expand=False) + + height, width = grid.shape + + # Add columns + for x in range(width): + table.add_column() + table.columns[x]._cells = [''] * height + + table.rows = [rich.table.Row()] * height + + # Populate cells + for y in range(height): + for x in range(width): + color_idx = grid[y, x] + table.columns[x]._cells[y] = rich.text.Text(' ' * CELL_WIDTH, style=rich_scmap[color_idx]) + + rich.print(table) \ No newline at end of file From dd7912bc48db8a9734a9e0b9b07877f4b92a988f Mon Sep 17 00:00:00 2001 From: LU Jialin Date: Mon, 11 Nov 2024 14:47:40 -0800 Subject: [PATCH 2/2] update example in README --- README.md | 15 +++++++++++++++ images/arc_terminal_print_grid_example.png | Bin 0 -> 59504 bytes 2 files changed, 15 insertions(+) create mode 100644 images/arc_terminal_print_grid_example.png diff --git a/README.md b/README.md index de175c7..2980a27 100644 --- a/README.md +++ b/README.md @@ -114,6 +114,21 @@ When drawing tasks, arckit will intelligently resize all of the grids such that ![Example of arckit output](./images/arcsave_example.png) +Alternatively, the `print_grid` function outputs a grid directly to the terminal without creating any files. Note that it takes a numpy array as input, which is the standard grid format for a *Task*. + +```python +>>> task = train_set[0] # Get the first task +>>> for i, (input_array, output_array) in enumerate(task.train): # Loop through the training examples +>>> print(f"Training Example {i+1}") +>>> print("Input:") +>>> vis.print_grid(input_array) +>>> print("Output:") +>>> vis.print_grid(output_array) +>>> print() +``` + +![Example of print grid in terminal](./images/arc_terminal_print_grid_example.png) + ## 💻 Command-line tools `arcshow` draws a visualisation of a specific task straight to the console: diff --git a/images/arc_terminal_print_grid_example.png b/images/arc_terminal_print_grid_example.png new file mode 100644 index 0000000000000000000000000000000000000000..eea54c7f1e67c2fa2384c7acd0a41816903ee9e2 GIT binary patch literal 59504 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