public static Task <int?> GetPlotDeviceNumAsync(this IRExpressionEvaluator evaluation, Guid deviceId) { Debug.Assert(deviceId != Guid.Empty); return(evaluation.EvaluateAsync <int?>(Invariant($"rtvs:::graphics.ide.getdevicenum({deviceId.ToString().ToRStringLiteral()})"), REvaluationKind.Normal)); }
public static async Task <Guid> GetActivePlotDeviceAsync(this IRExpressionEvaluator evaluation) { var id = await evaluation.EvaluateAsync <string>("rtvs:::graphics.ide.getactivedeviceid()", REvaluationKind.Normal); return(id != null?Guid.Parse(id) : Guid.Empty); }
public static Task <bool> FileExistsAsync(this IRExpressionEvaluator evaluation, string path, CancellationToken cancellationToken = default(CancellationToken)) => evaluation.EvaluateAsync <bool>(Invariant($"file.exists({path.ToRPath().ToRStringLiteral()})"), REvaluationKind.Normal, cancellationToken);
/// <summary> /// Like <see cref="EvaluateAsync{T}(IRExpressionEvaluator, string, REvaluationKind, CancellationToken)"/>, but takes a /// <see cref="FormattableString"/> for the expression, and uses <see cref="CultureInfo.InvariantCulture"/> to format it. /// </summary> public static Task <T> EvaluateAsync <T>(this IRExpressionEvaluator evaluator, FormattableString expression, REvaluationKind kind, CancellationToken cancellationToken = default(CancellationToken)) => evaluator.EvaluateAsync <T>(Invariant(expression), kind, cancellationToken);
public static Task <JArray> AvailablePackagesAsync(this IRExpressionEvaluator evaluation) { var script = @"rtvs:::packages.available()"; return(evaluation.EvaluateAsync <JArray>(script, REvaluationKind.Reentrant)); }
public static Task <string> NormalizePathAsync(this IRExpressionEvaluator evaluation, string path, CancellationToken cancellationToken = default(CancellationToken)) => evaluation.EvaluateAsync <string>(Invariant($"normalizePath({path.ToRPath().ToRStringLiteral()})"), REvaluationKind.Normal, cancellationToken);
public static async Task <string> GetWorkingDirectoryAsync(this IRExpressionEvaluator evaluation) { var result = await evaluation.EvaluateAsync <string>("getwd()", REvaluationKind.Normal); return(result.Replace('/', '\\')); }
public static Task <JArray> InstalledPackagesFunctionsAsync(this IRExpressionEvaluator evaluation, REvaluationKind kind = REvaluationKind.Normal, CancellationToken cancellationToken = default(CancellationToken)) { var script = "rtvs:::packages.installed.functions()"; return(evaluation.EvaluateAsync <JArray>(script, kind, cancellationToken)); }
public static Task <ulong> ExportPlotToBitmapAsync(this IRExpressionEvaluator evaluation, Guid deviceId, Guid plotId, string deviceName, int widthInPixels, int heightInPixels, int resolution) { var script = Invariant($"rtvs:::export_to_image({deviceId.ToString().ToRStringLiteral()}, {plotId.ToString().ToRStringLiteral()}, {deviceName}, {widthInPixels}, {heightInPixels}, {resolution})"); return(evaluation.EvaluateAsync <ulong>(script, REvaluationKind.Normal)); }
public static Task <ulong> ExportPlotToMetafileAsync(this IRExpressionEvaluator evaluation, Guid deviceId, Guid plotId, double widthInInches, double heightInInches, int resolution) { var script = Invariant($"rtvs:::export_to_image({deviceId.ToString().ToRStringLiteral()}, {plotId.ToString().ToRStringLiteral()}, win.metafile, {widthInInches}, {heightInInches}, {resolution})"); return(evaluation.EvaluateAsync <ulong>(script, REvaluationKind.Normal)); }
public static Task <string[]> LibraryPathsAsync(this IRExpressionEvaluator evaluation, CancellationToken cancellationToken = default(CancellationToken)) { var script = @"rtvs:::packages.libpaths()"; return(evaluation.EvaluateAsync <string[]>(script, REvaluationKind.Normal, cancellationToken)); }
public static Task <JArray> LoadedPackagesAsync(this IRExpressionEvaluator evaluation, CancellationToken cancellationToken = default(CancellationToken)) { var script = @"rtvs:::packages.loaded()"; return(evaluation.EvaluateAsync <JArray>(script, REvaluationKind.Normal, cancellationToken)); }
public static Task <ulong> ExportToPdfAsync(this IRExpressionEvaluator evaluation, Guid deviceId, Guid plotId, string outputFilePath, double widthInInches, double heightInInches) { var script = Invariant($"rtvs:::export_to_pdf({deviceId.ToString().ToRStringLiteral()}, {plotId.ToString().ToRStringLiteral()}, {widthInInches}, {heightInInches})"); return(evaluation.EvaluateAsync <ulong>(script, REvaluationKind.Normal)); }
public static async Task <string> GetRUserDirectoryAsync(this IRExpressionEvaluator evaluation, CancellationToken cancellationToken = default(CancellationToken)) { var result = await evaluation.EvaluateAsync <string>("Sys.getenv('R_USER')", REvaluationKind.Normal, cancellationToken); return(result.Replace('/', '\\')); }
private static Task <ulong> ExportToDefaultPdfAsync(this IRExpressionEvaluator evaluation, Guid deviceId, Guid plotId, string pdfDevice, string paper, double inchWidth, double inchHeight) { string script = Invariant($"rtvs:::export_to_pdf({deviceId.ToString().ToRStringLiteral()}, {plotId.ToString().ToRStringLiteral()}, {pdfDevice}, {inchWidth}, {inchHeight}, {paper.ToRStringLiteral()})"); return(evaluation.EvaluateAsync <ulong>(script, REvaluationKind.Normal)); }
public static Task <JArray> InstalledPackagesAsync(this IRExpressionEvaluator evaluation) { var script = "rtvs:::packages.installed()"; return(evaluation.EvaluateAsync <JArray>(script, REvaluationKind.Normal)); }
public static Task <string> GetRSessionPlatformAsync(this IRExpressionEvaluator evaluation, CancellationToken cancellationToken = default(CancellationToken)) { var script = Invariant($".Platform$OS.type"); return(evaluation.EvaluateAsync <string>(script, REvaluationKind.Normal, cancellationToken)); }
public static Task <JArray> PackageAllFunctionsNamesAsync(this IRExpressionEvaluator evaluation, string packageName, REvaluationKind kind = REvaluationKind.Normal, CancellationToken cancellationToken = default(CancellationToken)) { var script = Invariant($"rtvs:::package.all.functions.names({packageName.ToRStringLiteral()})"); return(evaluation.EvaluateAsync <JArray>(script, kind, cancellationToken)); }
public static Task <bool> QueryReloadAutosaveAsync(this IRExpressionEvaluator evaluation) => evaluation.EvaluateAsync <bool>($"rtvs:::query_reload_autosave()", REvaluationKind.Reentrant);
private async Task InstallPackageAsync(IRExpressionEvaluator eval, string packageName, string libPath) { var code = $"install.packages(\"{packageName}\", verbose=FALSE, quiet=TRUE)"; var evalResult = await eval.EvaluateAsync(code, REvaluationKind.Normal); WaitForPackageInstalled(libPath, packageName); }
public static Task <REvaluationResult> EvaluateAsync(this IRExpressionEvaluator evaluator, FormattableString expression, REvaluationKind kind, CancellationToken cancellationToken = default(CancellationToken)) { return(evaluator.EvaluateAsync(Invariant(expression), kind, cancellationToken)); }