Jupyter 커널 실행
Quarto는 nbclient와 몇 가지 추가 옵션을 사용해 Jupyter 노트북을 실행하며, 이를 통해 Quarto 고유 기능을 지원합니다. python 및 julia 커널에는 이러한 기능이 기본으로 구현되어 있습니다.
또한 Quarto 1.5부터는 아래 기능을 지원하도록 임의의 Jupyter 커널을 직접 구성할 수 있습니다.
설정 셀과 정리 셀
Quarto 노트북과 문서가 전역 옵션을 Jupyter 커널과 공유할 수 있도록, Quarto는 특별한 setup 셀과 cleanup 셀을 사용합니다.
python, julia 커널에서는 다음 파일이 설정/정리 셀로 정의됩니다.
Adding support to a Jupyter kernel
커널이 Quarto 컨텍스트를 이해하며 실행되도록 하려면, kernelspec 디렉터리에 다음 파일을 추가해 지원 여부를 알려야 합니다.
quarto_setup_cell: nbclient가 Quarto 노트북/문서를 실행하기 전에 수행할 설정 셀 소스 코드입니다. Quarto는 이 파일의 내용을source로 하는 셀을 생성합니다.quarto_cleanup_cell: 정리 셀 소스 코드로, 실행 종료 시 수행됩니다.
맞춤형 커널을 개발하는 이들이 위 기능을 쉽게 구현하도록 Jupyter echo_kernel 포크를 제공합니다. 이 예제 커널은 사용자 정의 커널 구현 기본을 보여 주며, 포크에는 설정 셀 기능이 추가되어 있습니다. 자세한 내용은 소스 저장소를 참고하세요.
Quarto 문서 옵션
Jupyter 커널은 셀 실행 방식에 영향을 주는 여러 Quarto 옵션에 접근할 수 있습니다.
현재 지원되는 옵션은 다음과 같습니다.
format: 문서를 생성할 출력 포맷params: 파라미터 실행에 사용할 파라미터 값allow_errors:true이면 셀에서 오류가 발생해도 커널이 실행을 중단하지 않도록 요청fig_width: 원하는 그림 폭(인치)fig_height: 원하는 그림 높이(인치)fig_format: 그림 출력 형식(png,jpg등)fig_dpi: 그림 해상도(DPI)cache:true이면 Jupyter 캐시 사용
Quarto는 실행 중 Jupyter Comms를 통해 커널에 옵션을 전달합니다. 구체적으로 quarto_kernel_setup이라는 타깃 이름으로 comm을 열고, 초기 메시지의 options 키에 위 옵션을 담습니다.
맞춤형 커널을 개발하는 이들이 위 기능을 쉽게 구현하도록 Jupyter echo_kernel 포크를 제공합니다. 이 예제 커널은 사용자 정의 커널 구현 기본을 보여 주며, 포크에는 설정 셀 기능이 추가되어 있습니다. 자세한 내용은 소스 저장소를 참고하세요.
데몬 실행
Quarto는 기본적으로 julia, python 커널에 대해 데몬 실행을 지원합니다. 자세한 내용은 Julia, Python 문서를 참고하세요.
Jupyter 커널에 데몬 지원 추가
임의의 Jupyter 커널도 데몬 실행을 지원한다고 표시할 수 있습니다. kernelspec 디렉터리에 quarto_setup_cell 파일을 제공해 설정 셀을 실행할 수 있도록 하고, 설정 셀 출력의 메타데이터로 데몬 지원 여부를 알려야 합니다. 사용 가능한 메타데이터는 다음과 같습니다.
daemonize: Quarto 설정 셀 실행 결과가true이면 Quarto가 해당 커널을 지속적으로 유지합니다. 데몬 관련 옵션은 위 문서와 동일합니다.restart_kernel:true이면 Quarto가 커널을 강제로 재시작합니다. 커널 설정이 변경되어 동일한 프로세스에서 계속 실행할 수 없을 때 사용합니다.
맞춤형 커널을 개발하는 이들이 위 기능을 쉽게 구현하도록 Jupyter echo_kernel 포크를 제공합니다. 이 예제 커널은 사용자 정의 커널 구현 기본을 보여 주며, 포크에는 설정 셀 기능이 추가되어 있습니다. 자세한 내용은 소스 저장소를 참고하세요.