Skip to content

Commit 6028e0b

Browse files
committed
send environment to jupyter, add tests
1 parent bc77de7 commit 6028e0b

File tree

8 files changed

+56
-12
lines changed

8 files changed

+56
-12
lines changed

src/resources/jupyter/notebook.py

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,24 @@
11
# pyright: reportMissingImports=false
22

3-
import os
4-
import re
3+
import asyncio
54
import atexit
5+
import base64
6+
import copy
67
import glob
7-
import sys
88
import json
9+
import os
910
import pprint
10-
import copy
11-
import base64
12-
11+
import re
12+
import sys
1313
from pathlib import Path
1414

15-
from yaml import safe_load as parse_string
16-
from yaml import safe_dump
17-
18-
from log import trace
1915
import nbformat
20-
from nbclient import NotebookClient
2116
from jupyter_client import KernelManager
2217
from jupyter_core_utils_vendor import run_sync
23-
import asyncio
18+
from log import trace
19+
from nbclient import NotebookClient
20+
from yaml import safe_dump
21+
from yaml import safe_load as parse_string
2422

2523
# optional import of papermill for params support
2624
try:
@@ -129,6 +127,8 @@ def set_env_vars(options):
129127
else:
130128
os.environ["QUARTO_FIG_DPI"] = str(options["fig_dpi"])
131129
os.environ["QUARTO_FIG_FORMAT"] = options["fig_format"]
130+
for key, value in options.get("env", {}).items():
131+
os.environ[key] = value
132132

133133

134134
def retrieve_nb_from_cache(nb, status, input, **kwargs):
@@ -201,6 +201,7 @@ def notebook_execute(options, status):
201201
quiet = quarto_kernel_setup_options["quiet"]
202202
resource_dir = quarto_kernel_setup_options["resource_dir"]
203203
eval = quarto_kernel_setup_options["eval"]
204+
quarto_kernel_setup_options["env"] = options.get("env", {})
204205

205206
# set environment variables
206207
set_env_vars(quarto_kernel_setup_options)
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
---
2+
format: html
3+
_quarto:
4+
tests:
5+
html:
6+
ensureFileRegexMatches:
7+
- ["julia.qmd"]
8+
- []
9+
engine: julia
10+
---
11+
12+
```{julia}
13+
ENV["QUARTO_DOCUMENT_FILE"]
14+
```
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
---
2+
format: html
3+
_quarto:
4+
tests:
5+
html:
6+
ensureFileRegexMatches:
7+
- ["jupyter.qmd"]
8+
- []
9+
---
10+
11+
```{python}
12+
import os
13+
14+
print(os.environ.get("QUARTO_DOCUMENT_FILE", ""))
15+
print("Hello, world")
16+
```
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
---
2+
format: html
3+
_quarto:
4+
tests:
5+
html:
6+
ensureFileRegexMatches:
7+
- ["knitr.qmd"]
8+
- []
9+
---
10+
11+
```{r}
12+
print(Sys.getenv("QUARTO_DOCUMENT_FILE"))
13+
```

0 commit comments

Comments
 (0)