UNPKG

molstar

Version:

A comprehensive macromolecular library.

106 lines 5.29 kB
"use strict"; /** * Copyright (c) 2018 mol* contributors, licensed under MIT, See LICENSE file for more info. * * @author David Sehnal <david.sehnal@gmail.com> */ Object.defineProperty(exports, "__esModule", { value: true }); exports.runLocal = void 0; var tslib_1 = require("tslib"); var linear_algebra_1 = require("../../../mol-math/linear-algebra"); var console_logger_1 = require("../../../mol-util/console-logger"); var now_1 = require("../../../mol-util/now"); var performance_monitor_1 = require("../../../mol-util/performance-monitor"); var writer_1 = require("../utils/writer"); var jobs_1 = require("./jobs"); var query_1 = require("./query"); var structure_wrapper_1 = require("./structure-wrapper"); function runLocal(input) { return (0, tslib_1.__awaiter)(this, void 0, void 0, function () { var _i, input_1, job_1, binary, started, job, key, progress, e_1; return (0, tslib_1.__generator)(this, function (_a) { switch (_a.label) { case 0: if (!input.length) { console_logger_1.ConsoleLogger.error('Local', 'No input'); return [2 /*return*/]; } for (_i = 0, input_1 = input; _i < input_1.length; _i++) { job_1 = input_1[_i]; binary = /\.bcif/.test(job_1.output); jobs_1.JobManager.add({ entries: job_1.queries.map(function (q) { var _a; return (0, jobs_1.JobEntry)({ entryId: q.input, queryName: q.query, queryParams: q.params || {}, modelNums: q.modelNums, transform: (_a = q.transform) !== null && _a !== void 0 ? _a : linear_algebra_1.Mat4.identity(), copyAllCategories: !!q.copyAllCategories }); }), writer: job_1.asTarGz ? new writer_1.TarballFileResultWriter(job_1.output, job_1.gzipLevel) : new writer_1.FileResultWriter(job_1.output), options: { outputFilename: job_1.output, binary: binary, tarball: job_1.asTarGz } }); } jobs_1.JobManager.sort(); started = (0, now_1.now)(); job = jobs_1.JobManager.getNext(); key = job.entries[0].key; progress = 0; _a.label = 1; case 1: if (!job) return [3 /*break*/, 6]; _a.label = 2; case 2: _a.trys.push([2, 4, , 5]); return [4 /*yield*/, (0, query_1.resolveJob)(job)]; case 3: _a.sent(); job.writer.end(); console_logger_1.ConsoleLogger.logId(job.id, 'Query', 'Written.'); if (job.entries.length > 0) structure_wrapper_1.StructureCache.expireAll(); if (jobs_1.JobManager.hasNext()) { job = jobs_1.JobManager.getNext(); if (key !== job.entries[0].key) structure_wrapper_1.StructureCache.expire(key); key = job.entries[0].key; } else { return [3 /*break*/, 6]; } return [3 /*break*/, 5]; case 4: e_1 = _a.sent(); console_logger_1.ConsoleLogger.errorId(job.id, e_1); if (jobs_1.JobManager.hasNext()) { job = jobs_1.JobManager.getNext(); if (key !== job.entries[0].key) structure_wrapper_1.StructureCache.expire(key); key = job.entries[0].key; } else { return [3 /*break*/, 6]; } return [3 /*break*/, 5]; case 5: console_logger_1.ConsoleLogger.log('Progress', "[" + ++progress + "/" + input.length + "] after " + performance_monitor_1.PerformanceMonitor.format((0, now_1.now)() - started) + "."); return [3 /*break*/, 1]; case 6: console_logger_1.ConsoleLogger.log('Progress', "Done in " + performance_monitor_1.PerformanceMonitor.format((0, now_1.now)() - started) + "."); structure_wrapper_1.StructureCache.expireAll(); return [2 /*return*/]; } }); }); } exports.runLocal = runLocal; //# sourceMappingURL=api-local.js.map