Exemple #1
0
 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));
 }
Exemple #2
0
        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);
Exemple #4
0
 /// <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);
Exemple #5
0
        public static Task <JArray> AvailablePackagesAsync(this IRExpressionEvaluator evaluation)
        {
            var script = @"rtvs:::packages.available()";

            return(evaluation.EvaluateAsync <JArray>(script, REvaluationKind.Reentrant));
        }
Exemple #6
0
 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('/', '\\'));
        }
Exemple #8
0
        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));
        }
Exemple #13
0
        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));
        }
Exemple #14
0
        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));
        }
Exemple #16
0
        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));
        }
Exemple #18
0
        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);
 }
Exemple #21
0
 public static Task <REvaluationResult> EvaluateAsync(this IRExpressionEvaluator evaluator, FormattableString expression, REvaluationKind kind, CancellationToken cancellationToken = default(CancellationToken))
 {
     return(evaluator.EvaluateAsync(Invariant(expression), kind, cancellationToken));
 }