Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Environment variables do not reach quarto reliably when rendering #3

Open
GitHubGeniusOverlord opened this issue Apr 10, 2024 · 0 comments
Labels
bug Something isn't working

Comments

@GitHubGeniusOverlord
Copy link

GitHubGeniusOverlord commented Apr 10, 2024

Bug description

Setting environment variable (e.v.) from a python process. It is expected that the e.v. lives on in the subprocesses.
Calling quarto.render() from the python process:
The e.v. is not reliably transfered to the quarto process: It seems to be cached and not always therefore newest version of the e.v. is in use when rendering the quarto document.

Steps to reproduce

render_quarto.py

Here we set the environment variable and call the rendering of the quartofile.qmd

import os
import quarto
from pathlib import Path

env_var_1 = 'variable1'
# print the env_var to a textfile
with open("output.txt", "a") as text_file:
    print("The e.v. before quarto:", file=text_file)
    print(env_var_1, file=text_file)

# Set the environment variable
os.environ['env_var'] = env_var_1

# Render a quarto file in which the e.v. is called
quarto.render(Path(__file__).parent / "quartofile.qmd")

Then, we expect to see the e.v. being used in the quarto document, however, this does not happen reliably: Sometimes, it is an old version of the e.v.. This can be seen, by manipulation env_var_1 and giving it another content, like 'variable2' and then execute the python script again.

quartofile.qmd

import os
# print the env_var to a textfile
with open("output.txt", "a") as text_file:
    print("The e.v. during rendering quarto:", file=text_file)
    print(os.environ['env_var'], file=text_file)

Expected behavior

The environment variable should not be cached. Instead, every change should reliably reach the quarto file, as it is run as a subprocess of the starting python process.
After running four times, with the e.v. set to 'variable1' for the first run, then 'variable2' for the following ones:

Content of output.txt:

The e.v. during rendering quarto:
variable1
The e.v. during rendering quarto:
variable2
The e.v. during rendering quarto:
variable2
The e.v. during rendering quarto:
variable2

Actual behavior

The environment variable is at first set but then it seems like it is being cached and changes arenot reliably transfered. After waiting a while it seems like it is again being refreshed and changes again reach the quarto process.

Content of output.txt:

The e.v. during rendering quarto:
variable1
The e.v. during rendering quarto:
variable1
The e.v. during rendering quarto:
variable1
The e.v. during rendering quarto:
variable1

Your environment

quarto 1.4.553
IDE: Visual Studio Code
Python 3.11.1
System: Windows 11

Quarto check output

Quarto 1.4.553
[>] Checking versions of quarto binary dependencies...
Pandoc version 3.1.11: OK
Dart Sass version 1.69.5: OK
Deno version 1.37.2: OK
[>] Checking versions of quarto dependencies......OK
[>] Checking Quarto installation......OK
Version: 1.4.553
Path: C:\Users\seucker\AppData\Local\Programs\Quarto\bin
CodePage: 1252

[>] Checking tools....................OK
TinyTeX: v2024.01
Chromium: (not installed)

[>] Checking LaTeX....................OK
Using: TinyTex
Path: C:\Users\seucker\AppData\Roaming\TinyTeX\bin\windows
Version: 2023

[>] Checking basic markdown render....OK

[>] Checking Python 3 installation....OK
Version: 3.11.1
Path: c:/Users/seucker/Desktop/Projekte/MigrationAuswertung/.venv/Scripts/python.exe
Jupyter: 5.7.2
Kernels: python3

[>] Checking Jupyter engine render....OK

[>] Checking R installation...........(None)

  Unable to locate an installed version of R.
  Install R from https://cloud.r-project.org/
@GitHubGeniusOverlord GitHubGeniusOverlord added the bug Something isn't working label Apr 10, 2024
@cscheid cscheid transferred this issue from quarto-dev/quarto-cli Apr 10, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

1 participant