""" Manipulate Datafiles =================== This snippet loads a datafile and modifies its contents Download Input files * :download:`dipole_2d.data <../../../../../examples/input_files/dipole_2d.data>` """ # %% # Setting up # ---------- # Load Datafile into RoxieInputBuilder object # import pathlib import tempfile from roxieapi.input.builder import RoxieInputBuilder folder = pathlib.Path("../input_files").absolute() datafile = "dipole_2d.data" rib = RoxieInputBuilder.from_datafile(folder / datafile) # %% # Change flags and metadata # ------------- rib.comment = "Python modified datafile" rib.flags["LDEBUG"] = True rib.flags["LFORCE2D"] = True rib.flags # %% # Check defined Blocks # -------------------- rib.block # %% # Update alpha angle of block no 4 # Dataframe index 3 corresponds to Block no 4 rib.block.loc[3, "alpha"] = 23.2 rib.block # %% # Generate new datafile # --------------------- tmp_dir = pathlib.Path(tempfile.gettempdir()) tmp_file = tmp_dir / "temp.data" rib.build(str(tmp_file)) with open(tmp_file, "r") as f: print(f.read()) # %%