From b835eb8de7a05963c6d083d9aa7569338c348053 Mon Sep 17 00:00:00 2001 From: Alexander Rose <alexander.rose@weirdbyte.de> Date: Sun, 12 Sep 2021 13:39:00 -0700 Subject: [PATCH] update packages --- package-lock.json | Bin 1104676 -> 950223 bytes package.json | 84 +++++++++--------- src/cli/chem-comp-dict/create-ions.ts | 10 +-- src/cli/chem-comp-dict/create-table.ts | 16 ++-- src/cli/cif2bcif/index.ts | 12 +-- src/cli/cifschema/index.ts | 38 ++++---- src/cli/lipid-params/index.ts | 10 +-- src/cli/structure-info/model.ts | 28 +++--- src/cli/structure-info/volume.ts | 8 +- src/extensions/rcsb/graphql/codegen.yml | 19 ++-- src/perf-tests/mol-script.ts | 2 +- src/servers/model/config.ts | 55 ++++++------ src/servers/model/preprocess.ts | 4 +- src/servers/model/preprocess/master.ts | 22 ++--- src/servers/model/preprocess/parallel.ts | 2 +- .../model/properties/providers/pdbe.ts | 4 +- src/servers/model/utils/fetch-props-pdbe.ts | 10 +-- src/servers/model/utils/fetch-retry.ts | 9 +- src/servers/plugin-state/config.ts | 12 +-- src/servers/volume/config.ts | 54 +++++------ src/servers/volume/pack.ts | 22 ++--- 21 files changed, 211 insertions(+), 210 deletions(-) diff --git a/package-lock.json b/package-lock.json index e4144a016c1a7ebdb30a33ef67553d6cf351de40..a182e4106aefca0f6398e10d764ad3072ddcab85 100644 GIT binary patch delta 52843 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�d6@Syv8!upI~Qw9ew7{eo;eW5=zW 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 XtX6p#=3%6s#$(aC_5BCcEb;#Ub4d#s delta 101275 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μ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 diff --git a/package.json b/package.json index a6d47ae62..c0338722f 100644 --- a/package.json +++ b/package.json @@ -88,54 +88,54 @@ ], "license": "MIT", "devDependencies": { - "@graphql-codegen/add": "^2.0.2", - "@graphql-codegen/cli": "^1.19.4", - "@graphql-codegen/time": "^2.0.2", - "@graphql-codegen/typescript": "^1.19.0", - "@graphql-codegen/typescript-graphql-files-modules": "^1.18.1", - "@graphql-codegen/typescript-graphql-request": "^2.0.3", - "@graphql-codegen/typescript-operations": "^1.17.12", - "@types/cors": "^2.8.8", - "@typescript-eslint/eslint-plugin": "^4.9.1", - "@typescript-eslint/parser": "^4.9.1", + "@graphql-codegen/add": "^3.1.0", + "@graphql-codegen/cli": "^2.2.0", + "@graphql-codegen/time": "^3.1.0", + "@graphql-codegen/typescript": "^2.2.2", + "@graphql-codegen/typescript-graphql-files-modules": "^2.1.0", + "@graphql-codegen/typescript-graphql-request": "^4.1.4", + "@graphql-codegen/typescript-operations": "^2.1.4", + "@types/cors": "^2.8.12", + "@typescript-eslint/eslint-plugin": "^4.31.0", + "@typescript-eslint/parser": "^4.31.0", "benchmark": "^2.1.4", - "concurrently": "^5.3.0", - "cpx2": "^3.0.0", + "concurrently": "^6.2.1", + "cpx2": "^3.0.2", "crypto-browserify": "^3.12.0", - "css-loader": "^5.0.1", - "eslint": "^7.15.0", + "css-loader": "^6.2.0", + "eslint": "^7.32.0", "extra-watch-webpack-plugin": "^1.0.3", "file-loader": "^6.2.0", - "fs-extra": "^9.0.1", - "graphql": "^15.4.0", - "http-server": "^0.12.3", - "jest": "^26.6.3", - "mini-css-extract-plugin": "^1.3.2", - "node-sass": "^6.0.0", + "fs-extra": "^10.0.0", + "graphql": "^15.5.3", + "http-server": "^13.0.1", + "jest": "^27.1.1", + "mini-css-extract-plugin": "^2.3.0", + "node-sass": "^6.0.1", "path-browserify": "^1.0.1", "raw-loader": "^4.0.2", - "sass-loader": "^11.1.1", - "simple-git": "^2.25.0", + "sass-loader": "^12.1.0", + "simple-git": "^2.45.1", "stream-browserify": "^3.0.0", - "style-loader": "^2.0.0", - "ts-jest": "^26.4.4", - "typescript": "^4.4.2", - "webpack": "^5.37.1", - "webpack-cli": "^4.7.0", + "style-loader": "^3.2.1", + "ts-jest": "^27.0.5", + "typescript": "^4.4.3", + "webpack": "^5.52.1", + "webpack-cli": "^4.8.0", "webpack-version-file-plugin": "^0.4.0" }, "dependencies": { - "@types/argparse": "^1.0.38", - "@types/benchmark": "^2.1.0", - "@types/compression": "1.7.0", - "@types/express": "^4.17.9", - "@types/jest": "^26.0.18", - "@types/node": "^14.14.11", - "@types/node-fetch": "^2.5.7", - "@types/react": "^17.0.0", - "@types/react-dom": "^17.0.0", - "@types/swagger-ui-dist": "3.30.0", - "argparse": "^1.0.10", + "@types/argparse": "^2.0.10", + "@types/benchmark": "^2.1.1", + "@types/compression": "1.7.2", + "@types/express": "^4.17.13", + "@types/jest": "^27.0.1", + "@types/node": "^16.9.1", + "@types/node-fetch": "^2.5.12", + "@types/react": "^17.0.20", + "@types/react-dom": "^17.0.9", + "@types/swagger-ui-dist": "3.30.1", + "argparse": "^2.0.1", "body-parser": "^1.19.0", "compression": "^1.7.4", "cors": "^2.8.5", @@ -143,13 +143,13 @@ "h264-mp4-encoder": "^1.0.12", "immer": "^9.0.6", "immutable": "^3.8.2", - "node-fetch": "^2.6.1", + "node-fetch": "^2.6.2", "react": "^17.0.2", "react-dom": "^17.0.2", "rxjs": "^7.3.0", - "swagger-ui-dist": "^3.37.2", + "swagger-ui-dist": "^3.52.1", "tslib": "^2.3.1", - "util.promisify": "^1.0.1", - "xhr2": "^0.2.0" + "util.promisify": "^1.1.1", + "xhr2": "^0.2.1" } } diff --git a/src/cli/chem-comp-dict/create-ions.ts b/src/cli/chem-comp-dict/create-ions.ts index d2c5a27f0..2c0ed76b4 100644 --- a/src/cli/chem-comp-dict/create-ions.ts +++ b/src/cli/chem-comp-dict/create-ions.ts @@ -54,20 +54,20 @@ async function run(out: string, forceDownload = false) { } const parser = new argparse.ArgumentParser({ - addHelp: true, + add_help: true, description: 'Extract and save IonNames from CCD.' }); -parser.addArgument('out', { +parser.add_argument('out', { help: 'Generated file output path.' }); -parser.addArgument([ '--forceDownload', '-f' ], { - action: 'storeTrue', +parser.add_argument('--forceDownload', '-f', { + action: 'store_true', help: 'Force download of CCD and PVCD.' }); interface Args { out: string, forceDownload?: boolean, } -const args: Args = parser.parseArgs(); +const args: Args = parser.parse_args(); run(args.out, args.forceDownload); diff --git a/src/cli/chem-comp-dict/create-table.ts b/src/cli/chem-comp-dict/create-table.ts index f20af5933..03da1a3ee 100644 --- a/src/cli/chem-comp-dict/create-table.ts +++ b/src/cli/chem-comp-dict/create-table.ts @@ -265,21 +265,21 @@ const CCB_TABLE_NAME = 'CHEM_COMP_BONDS'; const CCA_TABLE_NAME = 'CHEM_COMP_ATOMS'; const parser = new argparse.ArgumentParser({ - addHelp: true, + add_help: true, description: 'Create a cif file with one big table of all chem_comp_bond entries from the CCD and PVCD.' }); -parser.addArgument('out', { +parser.add_argument('out', { help: 'Generated file output path.' }); -parser.addArgument([ '--forceDownload', '-f' ], { - action: 'storeTrue', +parser.add_argument('--forceDownload', '-f', { + action: 'store_true', help: 'Force download of CCD and PVCD.' }); -parser.addArgument([ '--binary', '-b' ], { - action: 'storeTrue', +parser.add_argument('--binary', '-b', { + action: 'store_true', help: 'Output as BinaryCIF.' }); -parser.addArgument(['--ccaOut', '-a'], { +parser.add_argument('--ccaOut', '-a', { help: 'Optional generated file output path for chem_comp_atom data.', required: false }); @@ -289,6 +289,6 @@ interface Args { binary?: boolean, ccaOut?: string } -const args: Args = parser.parseArgs(); +const args: Args = parser.parse_args(); run(args.out, args.binary, args.forceDownload, args.ccaOut); diff --git a/src/cli/cif2bcif/index.ts b/src/cli/cif2bcif/index.ts index bcf5dbab2..5dcd39af5 100644 --- a/src/cli/cif2bcif/index.ts +++ b/src/cli/cif2bcif/index.ts @@ -37,20 +37,20 @@ function run(args: Args) { } const parser = new argparse.ArgumentParser({ - addHelp: true, + add_help: true, description: 'Convert any CIF file to a BCIF file' }); -parser.addArgument([ 'src' ], { +parser.add_argument('src', { help: 'Source CIF path' }); -parser.addArgument([ 'out' ], { +parser.add_argument('out', { help: 'Output BCIF path' }); -parser.addArgument([ '-c', '--config' ], { +parser.add_argument('-c', '--config', { help: 'Optional encoding strategy/precision config path', required: false }); -parser.addArgument([ '-f', '--filter' ], { +parser.add_argument('-f', '--filter', { help: 'Optional filter whitelist/blacklist path', required: false }); @@ -61,7 +61,7 @@ interface Args { config?: string filter?: string } -const args: Args = parser.parseArgs(); +const args: Args = parser.parse_args(); if (args) { run(args); diff --git a/src/cli/cifschema/index.ts b/src/cli/cifschema/index.ts index d3846e7a3..bfcdf04f7 100644 --- a/src/cli/cifschema/index.ts +++ b/src/cli/cifschema/index.ts @@ -178,44 +178,44 @@ const CIF_CORE_ATTR_PATH = `${DIC_DIR}/templ_attr.cif`; const CIF_CORE_ATTR_URL = 'https://raw.githubusercontent.com/COMCIFS/cif_core/master/templ_attr.cif'; const parser = new argparse.ArgumentParser({ - addHelp: true, + add_help: true, description: 'Create schema from mmcif dictionary (v50 plus IHM and entity_branch extensions, downloaded from wwPDB)' }); -parser.addArgument([ '--preset', '-p' ], { - defaultValue: '', +parser.add_argument('--preset', '-p', { + default: '', choices: ['', 'mmCIF', 'CCD', 'BIRD', 'CifCore'], help: 'Preset name' }); -parser.addArgument([ '--name', '-n' ], { - defaultValue: '', +parser.add_argument('--name', '-n', { + default: '', help: 'Schema name' }); -parser.addArgument([ '--out', '-o' ], { +parser.add_argument('--out', '-o', { help: 'Generated schema output path, if not given printed to stdout' }); -parser.addArgument([ '--targetFormat', '-tf' ], { - defaultValue: 'typescript-molstar', +parser.add_argument('--targetFormat', '-tf', { + default: 'typescript-molstar', choices: ['typescript-molstar', 'json-internal'], help: 'Target format' }); -parser.addArgument([ '--dicPath', '-d' ], { - defaultValue: '', +parser.add_argument('--dicPath', '-d', { + default: '', help: 'Path to dictionary' }); -parser.addArgument([ '--fieldNamesPath', '-fn' ], { - defaultValue: '', +parser.add_argument('--fieldNamesPath', '-fn', { + default: '', help: 'Field names to include' }); -parser.addArgument([ '--forceDicDownload', '-f' ], { - action: 'storeTrue', +parser.add_argument('--forceDicDownload', '-f', { + action: 'store_true', help: 'Force download of dictionaries' }); -parser.addArgument([ '--moldataImportPath', '-mip' ], { - defaultValue: 'molstar/lib/mol-data', +parser.add_argument('--moldataImportPath', '-mip', { + default: 'molstar/lib/mol-data', help: 'mol-data import path (for typescript target only)' }); -parser.addArgument([ '--addAliases', '-aa' ], { - action: 'storeTrue', +parser.add_argument('--addAliases', '-aa', { + action: 'store_true', help: 'Add field name/path aliases' }); interface Args { @@ -230,7 +230,7 @@ interface Args { moldataImportPath: string addAliases: boolean } -const args: Args = parser.parseArgs(); +const args: Args = parser.parse_args(); const FORCE_DIC_DOWNLOAD = args.forceDicDownload; diff --git a/src/cli/lipid-params/index.ts b/src/cli/lipid-params/index.ts index d0895a12e..ee1bf4ad5 100644 --- a/src/cli/lipid-params/index.ts +++ b/src/cli/lipid-params/index.ts @@ -70,21 +70,21 @@ export const LipidNames = new Set(${lipidNames.replace(/"/g, "'").replace(/,/g, } const parser = new argparse.ArgumentParser({ - addHelp: true, + add_help: true, description: 'Create lipid params (from martini lipids itp)' }); -parser.addArgument([ '--out', '-o' ], { +parser.add_argument('--out', '-o', { help: 'Generated lipid params output path, if not given printed to stdout' }); -parser.addArgument([ '--forceDownload', '-f' ], { - action: 'storeTrue', +parser.add_argument('--forceDownload', '-f', { + action: 'store_true', help: 'Force download of martini lipids itp' }); interface Args { out: string forceDownload: boolean } -const args: Args = parser.parseArgs(); +const args: Args = parser.parse_args(); const FORCE_DOWNLOAD = args.forceDownload; diff --git a/src/cli/structure-info/model.ts b/src/cli/structure-info/model.ts index c909b9d91..d42c67187 100644 --- a/src/cli/structure-info/model.ts +++ b/src/cli/structure-info/model.ts @@ -230,21 +230,21 @@ async function runFile(filename: string, args: Args) { } const parser = new argparse.ArgumentParser({ - addHelp: true, + add_help: true, description: 'Print info about a structure, mainly to test and showcase the mol-model module' }); -parser.addArgument(['--download', '-d'], { help: 'Pdb entry id' }); -parser.addArgument(['--file', '-f'], { help: 'filename' }); - -parser.addArgument(['--models'], { help: 'print models info', action: 'storeTrue' }); -parser.addArgument(['--seq'], { help: 'print sequence', action: 'storeTrue' }); -parser.addArgument(['--units'], { help: 'print units', action: 'storeTrue' }); -parser.addArgument(['--sym'], { help: 'print symmetry', action: 'storeTrue' }); -parser.addArgument(['--rings'], { help: 'print rings', action: 'storeTrue' }); -parser.addArgument(['--intraBonds'], { help: 'print intra unit bonds', action: 'storeTrue' }); -parser.addArgument(['--interBonds'], { help: 'print inter unit bonds', action: 'storeTrue' }); -parser.addArgument(['--mod'], { help: 'print modified residues', action: 'storeTrue' }); -parser.addArgument(['--sec'], { help: 'print secoundary structure', action: 'storeTrue' }); +parser.add_argument('--download', '-d', { help: 'Pdb entry id' }); +parser.add_argument('--file', '-f', { help: 'filename' }); + +parser.add_argument('--models', { help: 'print models info', action: 'store_true' }); +parser.add_argument('--seq', { help: 'print sequence', action: 'store_true' }); +parser.add_argument('--units', { help: 'print units', action: 'store_true' }); +parser.add_argument('--sym', { help: 'print symmetry', action: 'store_true' }); +parser.add_argument('--rings', { help: 'print rings', action: 'store_true' }); +parser.add_argument('--intraBonds', { help: 'print intra unit bonds', action: 'store_true' }); +parser.add_argument('--interBonds', { help: 'print inter unit bonds', action: 'store_true' }); +parser.add_argument('--mod', { help: 'print modified residues', action: 'store_true' }); +parser.add_argument('--sec', { help: 'print secoundary structure', action: 'store_true' }); interface Args { download?: string, file?: string, @@ -260,7 +260,7 @@ interface Args { mod?: boolean, sec?: boolean, } -const args: Args = parser.parseArgs(); +const args: Args = parser.parse_args(); if (args.download) runDL(args.download, args); else if (args.file) runFile(args.file, args); diff --git a/src/cli/structure-info/volume.ts b/src/cli/structure-info/volume.ts index 27b13ba0e..4e3ad62cd 100644 --- a/src/cli/structure-info/volume.ts +++ b/src/cli/structure-info/volume.ts @@ -75,13 +75,13 @@ async function run(url: string, meshFilename: string) { } const parser = new argparse.ArgumentParser({ - addHelp: true, + add_help: true, description: 'Info about VolumeData from mol-model module' }); -parser.addArgument([ '--emdb', '-e' ], { +parser.add_argument('--emdb', '-e', { help: 'EMDB id, for example 8116', }); -parser.addArgument([ '--mesh' ], { +parser.add_argument('--mesh', { help: 'Mesh filename', required: true }); @@ -89,6 +89,6 @@ interface Args { emdb?: string, mesh: string } -const args: Args = parser.parseArgs(); +const args: Args = parser.parse_args(); run(`https://ds.litemol.org/em/emd-${args.emdb}/cell?detail=4`, args.mesh); \ No newline at end of file diff --git a/src/extensions/rcsb/graphql/codegen.yml b/src/extensions/rcsb/graphql/codegen.yml index a6d7ebd17..d5d458bde 100644 --- a/src/extensions/rcsb/graphql/codegen.yml +++ b/src/extensions/rcsb/graphql/codegen.yml @@ -1,12 +1,13 @@ schema: https://data.rcsb.org/graphql documents: './src/extensions/rcsb/graphql/symmetry.gql.ts' generates: - './src/extensions/rcsb/graphql/types.ts': - plugins: - - add: '/* eslint-disable */' - - time - - typescript - - typescript-operations - config: - immutableTypes: true - skipTypename: true \ No newline at end of file + './src/extensions/rcsb/graphql/types.ts': + plugins: + - add: + content: '/* eslint-disable */' + - time + - typescript + - typescript-operations + config: + immutableTypes: true + skipTypename: true \ No newline at end of file diff --git a/src/perf-tests/mol-script.ts b/src/perf-tests/mol-script.ts index 4231f8bda..32e9cff78 100644 --- a/src/perf-tests/mol-script.ts +++ b/src/perf-tests/mol-script.ts @@ -68,7 +68,7 @@ export async function testQ() { const { structure } = await getModelsAndStructure(frame); const model = structure.models[0]; - const rawData = await fetch(`https://www.ebi.ac.uk/pdbe/api/validation/residuewise_outlier_summary/entry/${model.entryId.toLowerCase()}`, { timeout: 1500 }); + const rawData = await fetch(`https://www.ebi.ac.uk/pdbe/api/validation/residuewise_outlier_summary/entry/${model.entryId.toLowerCase()}`); const data = StructureQualityReport.fromJson(model, await rawData.json()); StructureQualityReportProvider.set(model, { serverUrl: '' }, data); diff --git a/src/servers/model/config.ts b/src/servers/model/config.ts index 7de256395..0cfd9d6b4 100644 --- a/src/servers/model/config.ts +++ b/src/servers/model/config.ts @@ -117,65 +117,65 @@ export let mapSourceAndIdToFilename: (source: string, id: string) => [string, Mo }; function addServerArgs(parser: argparse.ArgumentParser) { - parser.addArgument([ '--apiPrefix' ], { - defaultValue: DefaultModelServerConfig.apiPrefix, + parser.add_argument('--apiPrefix', { + default: DefaultModelServerConfig.apiPrefix, metavar: 'PREFIX', help: `Specify the prefix of the API, i.e. <host>/<apiPrefix>/<API queries>` }); - parser.addArgument([ '--defaultPort' ], { - defaultValue: DefaultModelServerConfig.defaultPort, + parser.add_argument('--defaultPort', { + default: DefaultModelServerConfig.defaultPort, metavar: 'PORT', type: 'int', help: `Specify the port the server is running on` }); - parser.addArgument([ '--cacheMaxSizeInBytes' ], { - defaultValue: DefaultModelServerConfig.cacheMaxSizeInBytes, + parser.add_argument('--cacheMaxSizeInBytes', { + default: DefaultModelServerConfig.cacheMaxSizeInBytes, metavar: 'CACHE_SIZE', type: 'int', help: `0 for off.` }); - parser.addArgument([ '--cacheEntryTimeoutMs' ], { - defaultValue: DefaultModelServerConfig.cacheEntryTimeoutMs, + parser.add_argument('--cacheEntryTimeoutMs', { + default: DefaultModelServerConfig.cacheEntryTimeoutMs, metavar: 'CACHE_TIMEOUT', type: 'int', help: `Specify in ms how long to keep entries in cache.` }); - parser.addArgument([ '--requestTimeoutMs' ], { - defaultValue: DefaultModelServerConfig.requestTimeoutMs, + parser.add_argument('--requestTimeoutMs', { + default: DefaultModelServerConfig.requestTimeoutMs, metavar: 'REQUEST_TIMEOUT', type: 'int', help: `The maximum number of ms the server spends on a request.` }); - parser.addArgument([ '--queryTimeoutMs' ], { - defaultValue: DefaultModelServerConfig.queryTimeoutMs, + parser.add_argument('--queryTimeoutMs', { + default: DefaultModelServerConfig.queryTimeoutMs, metavar: 'QUERY_TIMEOUT', type: 'int', help: `The maximum time the server dedicates to executing a query in ms.\nDoes not include the time it takes to read and export the data.` }); - parser.addArgument([ '--shutdownTimeoutMinutes' ], { - defaultValue: DefaultModelServerConfig.shutdownTimeoutMinutes, + parser.add_argument('--shutdownTimeoutMinutes', { + default: DefaultModelServerConfig.shutdownTimeoutMinutes, metavar: 'TIME', type: 'int', help: `0 for off, server will shut down after this amount of minutes.` }); - parser.addArgument([ '--shutdownTimeoutVarianceMinutes' ], { - defaultValue: DefaultModelServerConfig.shutdownTimeoutVarianceMinutes, + parser.add_argument('--shutdownTimeoutVarianceMinutes', { + default: DefaultModelServerConfig.shutdownTimeoutVarianceMinutes, metavar: 'VARIANCE', type: 'int', help: `modifies the shutdown timer by +/- timeoutVarianceMinutes (to avoid multiple instances shutting at the same time)` }); - parser.addArgument([ '--maxQueryManyQueries' ], { - defaultValue: DefaultModelServerConfig.maxQueryManyQueries, + parser.add_argument('--maxQueryManyQueries', { + default: DefaultModelServerConfig.maxQueryManyQueries, metavar: 'QUERY_MANY_LIMIT', type: 'int', help: `maximum number of queries allowed by the query-many at a time` }); - parser.addArgument([ '--defaultSource' ], { - defaultValue: DefaultModelServerConfig.defaultSource, + parser.add_argument('--defaultSource', { + default: DefaultModelServerConfig.defaultSource, metavar: 'DEFAULT_SOURCE', help: `modifies which 'sourceMap' source to use by default` }); - parser.addArgument([ '--sourceMap' ], { + parser.add_argument('--sourceMap', { nargs: 2, action: 'append', metavar: ['SOURCE', 'PATH'] as any, @@ -188,7 +188,7 @@ function addServerArgs(parser: argparse.ArgumentParser) { `Supported formats: ${ModelServerFetchFormats.join(', ')}` ].join('\n'), }); - parser.addArgument([ '--sourceMapUrl' ], { + parser.add_argument('--sourceMapUrl', { nargs: 3, action: 'append', metavar: ['SOURCE', 'PATH', 'SOURCE_MAP_FORMAT'] as any, @@ -224,15 +224,15 @@ interface ServerJsonConfig { } function addJsonConfigArgs(parser: argparse.ArgumentParser) { - parser.addArgument(['--cfg'], { + parser.add_argument('--cfg', { help: [ 'JSON config file path', 'If a property is not specified, cmd line param/OS variable/default value are used.' ].join('\n'), required: false }); - parser.addArgument(['--printCfg'], { help: 'Print current config for validation and exit.', required: false, nargs: 0 }); - parser.addArgument(['--cfgTemplate'], { help: 'Prints default JSON config template to be modified and exits.', required: false, nargs: 0 }); + parser.add_argument('--printCfg', { help: 'Print current config for validation and exit.', required: false, nargs: 0 }); + parser.add_argument('--cfgTemplate', { help: 'Prints default JSON config template to be modified and exits.', required: false, nargs: 0 }); } function setConfig(config: ModelServerConfig) { @@ -260,13 +260,12 @@ function validateConfigAndSetupSourceMap() { function parseConfigArguments() { const parser = new argparse.ArgumentParser({ - version: VERSION, - addHelp: true, + add_help: true, description: `ModelServer ${VERSION}, (c) 2018-2020, Mol* contributors` }); addJsonConfigArgs(parser); addServerArgs(parser); - return parser.parseArgs() as ModelServerConfig & ServerJsonConfig; + return parser.parse_args() as ModelServerConfig & ServerJsonConfig; } export function configureServer() { diff --git a/src/servers/model/preprocess.ts b/src/servers/model/preprocess.ts index 6da907e4a..9a4b4efd9 100644 --- a/src/servers/model/preprocess.ts +++ b/src/servers/model/preprocess.ts @@ -5,10 +5,10 @@ * @author David Sehnal <david.sehnal@gmail.com> */ -import * as cluster from 'cluster'; +import cluster from 'cluster'; import { runChild } from './preprocess/parallel'; -if (cluster.isMaster) { +if (cluster.isPrimary) { require('./preprocess/master'); } else { runChild(); diff --git a/src/servers/model/preprocess/master.ts b/src/servers/model/preprocess/master.ts index 687b9fe41..d16875bd7 100644 --- a/src/servers/model/preprocess/master.ts +++ b/src/servers/model/preprocess/master.ts @@ -29,18 +29,18 @@ function description() { } const cmdParser = new argparse.ArgumentParser({ - addHelp: true, + add_help: true, description: description() }); -cmdParser.addArgument(['--input', '-i'], { help: 'Input filename', required: false }); -cmdParser.addArgument(['--outCIF', '-oc'], { help: 'Output CIF filename', required: false }); -cmdParser.addArgument(['--outBCIF', '-ob'], { help: 'Output BinaryCIF filename', required: false }); +cmdParser.add_argument('--input', '-i', { help: 'Input filename', required: false }); +cmdParser.add_argument('--outCIF', '-oc', { help: 'Output CIF filename', required: false }); +cmdParser.add_argument('--outBCIF', '-ob', { help: 'Output BinaryCIF filename', required: false }); // TODO: add back? cmdParser.addArgument(['--bulk', '-b'], { help: 'Bulk JSON ({ numProcesses?: number, entries: { source: string, cif?: string, bcif?: string }[] })', required: false }); -cmdParser.addArgument(['--cfg', '-c'], { help: 'Config file path', required: false }); -cmdParser.addArgument(['--folderIn', '-fin'], { help: 'Convert folder', required: false }); -cmdParser.addArgument(['--folderOutCIF', '-foc'], { help: 'Convert folder text output', required: false }); -cmdParser.addArgument(['--folderOutBCIF', '-fob'], { help: 'Convert folder binary output', required: false }); -cmdParser.addArgument(['--folderNumProcesses', '-fp'], { help: 'Convert folder num processes', required: false }); +cmdParser.add_argument('--cfg', '-c', { help: 'Config file path', required: false }); +cmdParser.add_argument('--folderIn', '-fin', { help: 'Convert folder', required: false }); +cmdParser.add_argument('--folderOutCIF', '-foc', { help: 'Convert folder text output', required: false }); +cmdParser.add_argument('--folderOutBCIF', '-fob', { help: 'Convert folder binary output', required: false }); +cmdParser.add_argument('--folderNumProcesses', '-fp', { help: 'Convert folder num processes', required: false }); interface CmdArgs { // bulk?: string, @@ -61,10 +61,10 @@ export interface PreprocessConfig { customProperties?: ModelPropertyProviderConfig | string } -const cmdArgs = cmdParser.parseArgs() as CmdArgs; +const cmdArgs = cmdParser.parse_args() as CmdArgs; if (Object.keys(cmdArgs).filter(k => (cmdArgs as any)[k] !== null).length === 0 || typeof cmdArgs.help !== 'undefined') { - cmdParser.printHelp(); + cmdParser.print_help(); process.exit(0); } diff --git a/src/servers/model/preprocess/parallel.ts b/src/servers/model/preprocess/parallel.ts index 399e06c92..e20e665b7 100644 --- a/src/servers/model/preprocess/parallel.ts +++ b/src/servers/model/preprocess/parallel.ts @@ -5,7 +5,7 @@ */ import * as path from 'path'; -import * as cluster from 'cluster'; +import cluster from 'cluster'; import { now } from '../../../mol-util/now'; import { PerformanceMonitor } from '../../../mol-util/performance-monitor'; import { preprocessFile } from './preprocess'; diff --git a/src/servers/model/properties/providers/pdbe.ts b/src/servers/model/properties/providers/pdbe.ts index 09f818bf3..adaf0a7ff 100644 --- a/src/servers/model/properties/providers/pdbe.ts +++ b/src/servers/model/properties/providers/pdbe.ts @@ -77,12 +77,12 @@ function apiQueryProvider(urlPrefix: string, cache: any) { const rawData = await fetchRetry(`${urlPrefix}/${model.entryId.toLowerCase()}`, 1500, 5); // TODO: is this ok? if (rawData.status !== 200) return { }; - const json = (await rawData.json())[model.entryId.toLowerCase()] || { }; + const json = ((await rawData.json()) as any)[model.entryId.toLowerCase()] || { }; cache[cacheKey] = json; return json; } catch (e) { // TODO: handle better - ConsoleLogger.warn('Props', `Count not retrieve prop @${`${urlPrefix}/${model.entryId.toLowerCase()}`}`); + ConsoleLogger.warn('Props', `Could not retrieve prop @${`${urlPrefix}/${model.entryId.toLowerCase()}`}`); return { }; } }; diff --git a/src/servers/model/utils/fetch-props-pdbe.ts b/src/servers/model/utils/fetch-props-pdbe.ts index a08094e07..2da080450 100644 --- a/src/servers/model/utils/fetch-props-pdbe.ts +++ b/src/servers/model/utils/fetch-props-pdbe.ts @@ -13,19 +13,19 @@ import { now } from '../../../mol-util/now'; import { PerformanceMonitor } from '../../../mol-util/performance-monitor'; const cmdParser = new argparse.ArgumentParser({ - addHelp: true, + add_help: true, description: 'Download JSON data from PDBe API' }); -cmdParser.addArgument(['--in'], { help: 'Input folder', required: true }); -cmdParser.addArgument(['--out'], { help: 'Output folder', required: true }); +cmdParser.add_argument('--in', { help: 'Input folder', required: true }); +cmdParser.add_argument('--out', { help: 'Output folder', required: true }); interface CmdArgs { in: string, out: string } -const cmdArgs = cmdParser.parseArgs() as CmdArgs; +const cmdArgs = cmdParser.parse_args() as CmdArgs; function getPDBid(name: string) { let idx = name.indexOf('_'); @@ -73,7 +73,7 @@ async function process() { for (let ee of e.entries) { const query = await fetch(`https://www.ebi.ac.uk/pdbe/api/validation/residuewise_outlier_summary/entry/${ee}`); try { - if (query.status === 200) data[ee] = (await query.json())[ee] || { }; + if (query.status === 200) data[ee] = ((await query.json()) as any)[ee] || { }; else console.error(ee, query.status); } catch (e) { console.error(ee, '' + e); diff --git a/src/servers/model/utils/fetch-retry.ts b/src/servers/model/utils/fetch-retry.ts index 4ce146bb6..9ba80b112 100644 --- a/src/servers/model/utils/fetch-retry.ts +++ b/src/servers/model/utils/fetch-retry.ts @@ -17,15 +17,16 @@ function isRetriableNetworkError(error: any) { } export async function fetchRetry(url: string, timeout: number, retryCount: number, onRetry?: () => void): Promise<Response> { - const result = await retryIf(() => fetch(url, { timeout }), { - retryThenIf: r => r.status === 408 /** timeout */ || r.status === 429 /** too mant requests */ || (r.status >= 500 && r.status < 600), + const controller = new AbortController(); + const id = setTimeout(() => controller.abort(), timeout); + const result = await retryIf(() => fetch(url, { signal: controller.signal }), { + retryThenIf: r => r.status === 408 /** timeout */ || r.status === 429 /** too many requests */ || (r.status >= 500 && r.status < 600), // TODO test retryCatchIf retryCatchIf: e => isRetriableNetworkError(e), onRetry, retryCount }); + clearTimeout(id); return result; - // if (result.status >= 200 && result.status < 300) return result; - // throw new Error(result.statusText); } diff --git a/src/servers/plugin-state/config.ts b/src/servers/plugin-state/config.ts index 38ecd7667..e89dbefbf 100644 --- a/src/servers/plugin-state/config.ts +++ b/src/servers/plugin-state/config.ts @@ -15,14 +15,14 @@ export interface Config { export function getConfig() { const cmdParser = new argparse.ArgumentParser({ - addHelp: true + add_help: true }); - cmdParser.addArgument(['--working-folder'], { help: 'Working forlder path.', required: true }); - cmdParser.addArgument(['--port'], { help: 'Server port. Altenatively use ENV variable PORT.', type: 'int', required: false }); - cmdParser.addArgument(['--api-prefix'], { help: 'Server API prefix.', defaultValue: '', required: false }); - cmdParser.addArgument(['--max-states'], { help: 'Maxinum number of states that could be saved.', defaultValue: 40, type: 'int', required: false }); + cmdParser.add_argument('--working-folder', { help: 'Working forlder path.', required: true }); + cmdParser.add_argument('--port', { help: 'Server port. Altenatively use ENV variable PORT.', type: 'int', required: false }); + cmdParser.add_argument('--api-prefix', { help: 'Server API prefix.', default: '', required: false }); + cmdParser.add_argument('--max-states', { help: 'Maxinum number of states that could be saved.', default: 40, type: 'int', required: false }); - const config = cmdParser.parseArgs() as Config; + const config = cmdParser.parse_args() as Config; if (!config.port) config.port = process.env.port || 1339; return config; } diff --git a/src/servers/volume/config.ts b/src/servers/volume/config.ts index b1ac9db61..53d247d72 100644 --- a/src/servers/volume/config.ts +++ b/src/servers/volume/config.ts @@ -7,7 +7,7 @@ import * as argparse from 'argparse'; import { ObjectKeys } from '../../mol-util/type-helpers'; -import { VOLUME_SERVER_HEADER, VOLUME_SERVER_VERSION } from './server/version'; +import { VOLUME_SERVER_HEADER } from './server/version'; import * as fs from 'fs'; const DefaultServerConfig = { @@ -19,22 +19,22 @@ const DefaultServerConfig = { }; function addLimitsArgs(parser: argparse.ArgumentParser) { - parser.addArgument([ '--maxRequestBlockCount' ], { - defaultValue: DefaultLimitsConfig.maxRequestBlockCount, + parser.add_argument('--maxRequestBlockCount', { + default: DefaultLimitsConfig.maxRequestBlockCount, metavar: 'COUNT', help: `Maximum number of blocks that could be read in 1 query. This is somewhat tied to the maxOutputSizeInVoxelCountByPrecisionLevel in that the <maximum number of voxel> = maxRequestBlockCount * <block size>^3. The default block size is 96 which corresponds to 28,311,552 voxels with 32 max blocks.` }); - parser.addArgument([ '--maxFractionalBoxVolume' ], { - defaultValue: DefaultLimitsConfig.maxFractionalBoxVolume, + parser.add_argument('--maxFractionalBoxVolume', { + default: DefaultLimitsConfig.maxFractionalBoxVolume, metavar: 'VOLUME', help: `The maximum fractional volume of the query box (to prevent queries that are too big).` }); - parser.addArgument([ '--maxOutputSizeInVoxelCountByPrecisionLevel' ], { + parser.add_argument('--maxOutputSizeInVoxelCountByPrecisionLevel', { nargs: '+', - defaultValue: DefaultLimitsConfig.maxOutputSizeInVoxelCountByPrecisionLevel, + default: DefaultLimitsConfig.maxOutputSizeInVoxelCountByPrecisionLevel, metavar: 'LEVEL', help: `What is the (approximate) maximum desired size in voxel count by precision level Rule of thumb: <response gzipped size> in [<voxel count> / 8, <voxel count> / 4]. @@ -43,31 +43,31 @@ The maximum number of voxels is tied to maxRequestBlockCount.` } function addServerArgs(parser: argparse.ArgumentParser) { - parser.addArgument([ '--apiPrefix' ], { - defaultValue: DefaultServerConfig.apiPrefix, + parser.add_argument('--apiPrefix', { + default: DefaultServerConfig.apiPrefix, metavar: 'PREFIX', help: `Specify the prefix of the API, i.e. <host>/<apiPrefix>/<API queries>` }); - parser.addArgument([ '--defaultPort' ], { - defaultValue: DefaultServerConfig.defaultPort, + parser.add_argument('--defaultPort', { + default: DefaultServerConfig.defaultPort, metavar: 'PORT', type: 'int', help: `Specify the port the server is running on` }); - parser.addArgument([ '--shutdownTimeoutMinutes' ], { - defaultValue: DefaultServerConfig.shutdownTimeoutMinutes, + parser.add_argument('--shutdownTimeoutMinutes', { + default: DefaultServerConfig.shutdownTimeoutMinutes, metavar: 'TIME', type: 'int', help: `0 for off, server will shut down after this amount of minutes.` }); - parser.addArgument([ '--shutdownTimeoutVarianceMinutes' ], { - defaultValue: DefaultServerConfig.shutdownTimeoutVarianceMinutes, + parser.add_argument('--shutdownTimeoutVarianceMinutes', { + default: DefaultServerConfig.shutdownTimeoutVarianceMinutes, metavar: 'VARIANCE', type: 'int', help: `modifies the shutdown timer by +/- timeoutVarianceMinutes (to avoid multiple instances shutting at the same time)` }); - parser.addArgument([ '--idMap' ], { + parser.add_argument('--idMap', { nargs: 2, action: 'append', metavar: ['TYPE', 'PATH'] as any, @@ -84,15 +84,15 @@ function addServerArgs(parser: argparse.ArgumentParser) { } function addJsonConfigArgs(parser: argparse.ArgumentParser) { - parser.addArgument(['--cfg'], { + parser.add_argument('--cfg', { help: [ 'JSON config file path', 'If a property is not specified, cmd line param/OS variable/default value are used.' ].join('\n'), required: false }); - parser.addArgument(['--printCfg'], { help: 'Print current config for validation and exit.', required: false, nargs: 0 }); - parser.addArgument(['--cfgTemplate'], { help: 'Prints default JSON config template to be modified and exits.', required: false, nargs: 0 }); + parser.add_argument('--printCfg', { help: 'Print current config for validation and exit.', required: false, nargs: 0 }); + parser.add_argument('--cfgTemplate', { help: 'Prints default JSON config template to be modified and exits.', required: false, nargs: 0 }); } export interface ServerJsonConfig { @@ -156,14 +156,14 @@ const ServerConfigTemplate: FullServerConfig = { export function configureServer() { const parser = new argparse.ArgumentParser({ - version: VOLUME_SERVER_VERSION, - addHelp: true, + // version: VOLUME_SERVER_VERSION, + add_help: true, description: VOLUME_SERVER_HEADER }); addJsonConfigArgs(parser); addServerArgs(parser); addLimitsArgs(parser); - const config = parser.parseArgs() as FullServerConfig & ServerJsonConfig; + const config = parser.parse_args() as FullServerConfig & ServerJsonConfig; if (config.cfgTemplate !== null) { console.log(JSON.stringify(ServerConfigTemplate, null, 2)); @@ -192,16 +192,16 @@ export function configureServer() { export function configureLocal() { const parser = new argparse.ArgumentParser({ - version: VOLUME_SERVER_VERSION, - addHelp: true, + // version: VOLUME_SERVER_VERSION, + add_help: true, description: VOLUME_SERVER_HEADER }); - parser.addArgument(['--jobs'], { help: `Path to a JSON file with job specification.`, required: false }); - parser.addArgument(['--jobsTemplate'], { help: 'Print example template for jobs.json and exit.', required: false, nargs: 0 });; + parser.add_argument('--jobs', { help: `Path to a JSON file with job specification.`, required: false }); + parser.add_argument('--jobsTemplate', { help: 'Print example template for jobs.json and exit.', required: false, nargs: 0 });; addJsonConfigArgs(parser); addLimitsArgs(parser); - const config = parser.parseArgs() as LimitsConfig & ServerJsonConfig; + const config = parser.parse_args() as LimitsConfig & ServerJsonConfig; if (config.cfgTemplate !== null) { console.log(JSON.stringify(DefaultLimitsConfig, null, 2)); diff --git a/src/servers/volume/pack.ts b/src/servers/volume/pack.ts index f77a930dd..343bb772e 100644 --- a/src/servers/volume/pack.ts +++ b/src/servers/volume/pack.ts @@ -63,31 +63,31 @@ interface EmArgs extends GeneralArgs { type Args = XrayArgs | EmArgs const parser = new argparse.ArgumentParser({ - addHelp: true, + add_help: true, description: `VolumeServer Packer ${VERSION}, (c) 2018-2019, Mol* contributors` }); -const subparsers = parser.addSubparsers({ +const subparsers = parser.add_subparsers({ title: 'Packing modes', dest: 'mode' }); function addGeneralArgs(parser: argparse.ArgumentParser) { - parser.addArgument(['output'], { help: `Output path.` }); - parser.addArgument(['--blockSizeInMB'], { defaultValue: 96, help: `Maximum block size.`, metavar: 'SIZE' }); - parser.addArgument(['--format'], { defaultValue: 'ccp4', help: `Input file format.` }); + parser.add_argument('output', { help: `Output path.` }); + parser.add_argument('--blockSizeInMB', { default: 96, help: `Maximum block size.`, metavar: 'SIZE' }); + parser.add_argument('--format', { default: 'ccp4', help: `Input file format.` }); } -const xrayParser = subparsers.addParser('xray', { addHelp: true }); -xrayParser.addArgument(['input2fofc'], { help: `Path to 2fofc file.`, metavar: '2FOFC' }); -xrayParser.addArgument(['inputFofc'], { help: `Path to fofc file.`, metavar: 'FOFC' }); +const xrayParser = subparsers.add_parser('xray', { add_help: true }); +xrayParser.add_argument('input2fofc', { help: `Path to 2fofc file.`, metavar: '2FOFC' }); +xrayParser.add_argument('inputFofc', { help: `Path to fofc file.`, metavar: 'FOFC' }); addGeneralArgs(xrayParser); -const emParser = subparsers.addParser('em', { addHelp: true }); -emParser.addArgument(['inputEm'], { help: `Path to EM density file.`, metavar: 'EM' }); +const emParser = subparsers.add_parser('em', { add_help: true }); +emParser.add_argument('inputEm', { help: `Path to EM density file.`, metavar: 'EM' }); addGeneralArgs(emParser); -const args: Args = parser.parseArgs(); +const args: Args = parser.parse_args(); const config = getConfig(args); pack(config.input, config.blockSizeInMB, config.isPeriodic, config.outputFilename, config.format); -- GitLab