The argument is the Stata code or absolute path to a .do file to execute.
-
If the argument ends in
.door.ado, call:stata_run(code=<argument>, is_file=True, echo=True, as_json=True)Otherwise call:
stata_run(code=<argument>, echo=True, as_json=True) -
If
successistrue, display thestdoutoutput. Note the output is truncated to 5,000 chars; if the response includes alog_path, offer to tail the full log with/stata-log <log_path>. -
If
successisfalse, display the error message andrccode. Suggest using/stata-lint <path>for syntax issues or/stata-help <command>for documentation. -
If the command produces graphs, note that
/stata-graphcan export them.
If using background mode (background=True): you may do other work or fire parallel tasks, but you MUST call stata_task_status(task_id=<id>, wait=True, timeout=<N>, tail_lines=<M>) for every task before returning to the user. Set timeout to match expected runtime; set tail_lines to how much output you want inline vs. reading separately via stata_read_log. Loop on timeout until status is 'done' or 'failed'.