import curses
from screen import Screen
from multiprocessing import Process, Pool, cpu_count
import numpy as np

s = Screen()
np.random.seed(1234)

def worker(arr):
    return arr * 2 + 1

s.clear_screen()
s.refresh_screen()

s.add_str_to_scr("Start processing data...")
s.linebreak()
s.linebreak()
s.refresh_screen()
data_arr = np.random.rand(8, int(1e7))

with Pool(cpu_count()) as p:
    buffer = p.map(worker, [data_arr[row] for row in np.ndindex(data_arr.shape[0])])

s.add_str_to_scr("...finished processing:")
s.linebreak()
s.linebreak()
s.refresh_screen()
for row in buffer:
    s.add_str_to_scr(row[0:3])
    s.linebreak()
    s.refresh_screen()