""" Run Roxie as a service ====================== This snippet runs roxie from a running roxie-webservice. This requires roxie running from a docker-container with Rest Services activated (see [Roxie docker documentation](https://roxie.docs.cern.ch/run_roxie/roxie_docker.html)) or manually started using the roxie-rest-api package. Download Input files * :download:`dipole_2d.data <../../../../../examples/input_files/dipole_2d.data>` * :download:`roxie.cadata <../../../../../examples/input_files/roxie.cadata>` """ # %% # Executing roxie # ---------- # Set up paths, datafile and execute Roxie as a process # import pathlib import tempfile from roxieapi.tool_adapter.RoxieToolAdapter import RestRoxieToolAdapter datafile = pathlib.Path("../input_files/dipole_2d.data").absolute() runner = RestRoxieToolAdapter( service_url="http://localhost:8080", input_files=[datafile], ) result = runner.run() print(f"Run executed with return code {result}") # %% # Check output and errors # ------------- print(runner.output) # %% # List Artefacts and download xml output # --------------------------- print(runner.get_artefact_list()) with tempfile.TemporaryDirectory() as tmp_folder_name: tmp_folder_path = pathlib.Path(tmp_folder_name) print(tmp_folder_path) print(tmp_folder_path.is_dir()) runner.download_artefacts(tmp_folder_path, "*.xml") for file in tmp_folder_path.iterdir(): print(f"Downloaded file: {file.name}") # %%