Cell-level caching

Đang mở
#992 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

Chưa có ai nhận issue này.

Đánh giá

Độ khó
5/5
Thời gian dự kiến
Hơn một tuần
Mức phù hợp với người mới
25/100
Loại issue
Tính năng
Độ rõ ràng
Cần làm rõ
Mức độ hoạt động
Đình trệ
Công nghệ
jupyter, jupyter-notebook, python
Lĩnh vực
backend

Hướng nghiên cứu

Bắt đầu bằng việc xem xét đường dẫn thực thi notebook của ipykernel và cách tiếp cận akernel được đề cập, bao gồm việc sử dụng mô-đun ast của Python để so sánh đầu vào và đầu ra của các ô đã được lưu trong bộ nhớ đệm. So sánh thiết kế đó với mô hình lưu vào bộ nhớ đệm của knitr và làm rõ việc lưu vào bộ nhớ đệm nên phục vụ Quarto và JupyterBook như thế nào. Để được xem là hoàn thành, cần có một thiết kế lưu vào bộ nhớ đệm ở cấp ô cho ipykernel đã được thống nhất, bao gồm thời điểm có thể bỏ qua việc thực thi và cách xác lập tính hợp lệ.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

Often we want to visualize the content of the notebook for example as an HTML and also recompute it to check its validity. This ensures that the notebook is runnable and also shows the desired output. However, running a notebook is very time-consuming. It would be great if we had some cell-level cache that would speed up repeated executing of the notebook.

@davidbrochart in his project akernel (asynchronous kernel) solved a similar issue. He approached it by parsing inputs and outputs of the cached cell using ast module. He could then skip the execution of the particular time-consuming cell, if the outputs were cached and the inputs hasn't changed from the previous execution. I hope I didn't misinterpret it. @davidbrochart please comment on any of my mistake.
An inspiration could also be taken from knitr from R, who has this implementation available.

Could we get something like this for ipykernel? Many popular projects would benefit from this improvement, such as Quarto or JupyterBook.

Ngôn ngữ chính
Python
Star
734
Fork
411
Merge trung bình
1 ngày 2 giờ
Pull request đã merge (30 ngày)
9

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của ipython/ipykernel

Tất cả issue của ipython/ipykernel

Issue tương tự

Thêm issue về Python

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.