diff --git a/packages/pyright-internal/package.json b/packages/pyright-internal/package.json index 6ef8e546a..51b1f2e3b 100644 --- a/packages/pyright-internal/package.json +++ b/packages/pyright-internal/package.json @@ -15,7 +15,7 @@ "test:coverage": "jest --forceExit --reporters=jest-junit --reporters=default --coverage --coverageReporters=cobertura --coverageReporters=html --coverageReporters=json" }, "dependencies": { - "@iarna/toml": "2.2.5", + "smol-toml": "^1.6.1", "@yarnpkg/fslib": "2.10.1", "@yarnpkg/libzip": "2.2.4", "chalk": "^4.1.2", diff --git a/packages/pyright-internal/src/analyzer/service.ts b/packages/pyright-internal/src/analyzer/service.ts index 5c2c4a83f..69204ef52 100644 --- a/packages/pyright-internal/src/analyzer/service.ts +++ b/packages/pyright-internal/src/analyzer/service.ts @@ -8,7 +8,7 @@ * Python files. */ -import * as TOML from '@iarna/toml'; +import * as TOML from 'smol-toml'; import * as JSONC from 'jsonc-parser'; import { AbstractCancellationTokenSource, @@ -1072,9 +1072,9 @@ export class AnalyzerService { private _parsePyprojectTomlFile(pyprojectPath: string): object | undefined { return this._attemptParseFile(pyprojectPath, (fileContents, attemptCount) => { try { - const configObj = TOML.parse(fileContents); - if (configObj && configObj.tool && (configObj.tool as TOML.JsonMap).pyright) { - return (configObj.tool as TOML.JsonMap).pyright as object; + const configObj = TOML.parse(fileContents) as Record; + if (configObj && configObj.tool && configObj.tool.pyright) { + return configObj.tool.pyright as object; } } catch (e: any) { this._console.error(`Pyproject file parse attempt ${attemptCount} error: ${JSON.stringify(e)}`); diff --git a/packages/pyright-scip/package.json b/packages/pyright-scip/package.json index 441e1cc92..5a513f680 100644 --- a/packages/pyright-scip/package.json +++ b/packages/pyright-scip/package.json @@ -46,7 +46,7 @@ "webpack-cli": "^4.9.1" }, "dependencies": { - "@iarna/toml": "^2.2.5", + "smol-toml": "^1.6.1", "command-exists": "^1.2.9", "commander": "^9.2.0", "diff": "^5.0.0", diff --git a/packages/pyright-scip/src/config.ts b/packages/pyright-scip/src/config.ts index 342f67c09..58b5d74cb 100644 --- a/packages/pyright-scip/src/config.ts +++ b/packages/pyright-scip/src/config.ts @@ -1,4 +1,4 @@ -import * as TOML from '@iarna/toml'; +import * as TOML from 'smol-toml'; import * as JSONC from 'jsonc-parser'; import { findPythonSearchPaths, getTypeShedFallbackPath } from 'pyright-internal/analyzer/pythonPathUtils'; @@ -427,14 +427,14 @@ export class ScipPyrightConfig { return this._attemptParseFile(pyprojectPath, (fileContents, attemptCount) => { try { // First, try and load tool.scip section - const configObj = TOML.parse(fileContents); - if (configObj && configObj.tool && (configObj.tool as TOML.JsonMap).scip) { - return (configObj.tool as TOML.JsonMap).scip as object; + const configObj = TOML.parse(fileContents) as Record; + if (configObj && configObj.tool && configObj.tool.scip) { + return configObj.tool.scip as object; } // Fall back to tool.pyright section - if (configObj && configObj.tool && (configObj.tool as TOML.JsonMap).pyright) { - return (configObj.tool as TOML.JsonMap).pyright as object; + if (configObj && configObj.tool && configObj.tool.pyright) { + return configObj.tool.pyright as object; } } catch (e: any) { this._console.error(`Pyproject file parse attempt ${attemptCount} error: ${JSON.stringify(e)}`); diff --git a/packages/pyright-scip/src/indexer.ts b/packages/pyright-scip/src/indexer.ts index 09350c651..426a72763 100644 --- a/packages/pyright-scip/src/indexer.ts +++ b/packages/pyright-scip/src/indexer.ts @@ -1,6 +1,6 @@ import * as child_process from 'child_process'; import * as path from 'path'; -import * as TOML from '@iarna/toml'; +import * as TOML from 'smol-toml'; import { Event } from 'vscode-languageserver/lib/common/api'; import { Program } from 'pyright-internal/analyzer/program'; @@ -39,18 +39,18 @@ export class Indexer { try { const pyprojectTomlContents = getPyprojectTomlContents(); if (pyprojectTomlContents) { - const tomlMap = TOML.parse(pyprojectTomlContents); + const tomlMap = TOML.parse(pyprojectTomlContents) as Record; // See: https://packaging.python.org/en/latest/specifications/declaring-project-metadata/#specification - let project = tomlMap['project'] as TOML.JsonMap | undefined; + let project = tomlMap['project']; if (project) { name = project['name']; version = project['version']; } if (!name || !version) { // See: https://python-poetry.org/docs/pyproject/ - let tool = tomlMap['tool'] as TOML.JsonMap | undefined; + let tool = tomlMap['tool']; if (tool) { - let toolPoetry = tool['poetry'] as TOML.JsonMap | undefined; + let toolPoetry = tool['poetry']; if (toolPoetry) { name = name ?? toolPoetry['name']; version = version ?? toolPoetry['version'];