@zzzen/pyright-internal 1.2.0-dev.20240107 → 1.2.0-dev.20240114

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (202) hide show
  1. package/dist/analyzer/checker.d.ts +2 -0
  2. package/dist/analyzer/checker.js +64 -14
  3. package/dist/analyzer/checker.js.map +1 -1
  4. package/dist/analyzer/codeFlowEngine.js +2 -2
  5. package/dist/analyzer/codeFlowEngine.js.map +1 -1
  6. package/dist/analyzer/constraintSolver.js +6 -0
  7. package/dist/analyzer/constraintSolver.js.map +1 -1
  8. package/dist/analyzer/dataClasses.js +2 -2
  9. package/dist/analyzer/dataClasses.js.map +1 -1
  10. package/dist/analyzer/decorators.js +9 -9
  11. package/dist/analyzer/decorators.js.map +1 -1
  12. package/dist/analyzer/importResolver.d.ts +2 -2
  13. package/dist/analyzer/importResolver.js +93 -24
  14. package/dist/analyzer/importResolver.js.map +1 -1
  15. package/dist/analyzer/operations.js +4 -3
  16. package/dist/analyzer/operations.js.map +1 -1
  17. package/dist/analyzer/parseTreeUtils.js +37 -0
  18. package/dist/analyzer/parseTreeUtils.js.map +1 -1
  19. package/dist/analyzer/patternMatching.js +4 -4
  20. package/dist/analyzer/patternMatching.js.map +1 -1
  21. package/dist/analyzer/program.js +1 -1
  22. package/dist/analyzer/program.js.map +1 -1
  23. package/dist/analyzer/protocols.js +27 -20
  24. package/dist/analyzer/protocols.js.map +1 -1
  25. package/dist/analyzer/service.d.ts +1 -1
  26. package/dist/analyzer/service.js +7 -6
  27. package/dist/analyzer/service.js.map +1 -1
  28. package/dist/analyzer/sourceFile.d.ts +2 -2
  29. package/dist/analyzer/sourceFile.js +5 -5
  30. package/dist/analyzer/sourceFile.js.map +1 -1
  31. package/dist/analyzer/sourceFileInfoUtils.js +1 -1
  32. package/dist/analyzer/sourceFileInfoUtils.js.map +1 -1
  33. package/dist/analyzer/typeEvaluator.js +228 -133
  34. package/dist/analyzer/typeEvaluator.js.map +1 -1
  35. package/dist/analyzer/typeEvaluatorTypes.d.ts +4 -3
  36. package/dist/analyzer/typeEvaluatorTypes.js +2 -4
  37. package/dist/analyzer/typeEvaluatorTypes.js.map +1 -1
  38. package/dist/analyzer/typeGuards.js +14 -9
  39. package/dist/analyzer/typeGuards.js.map +1 -1
  40. package/dist/analyzer/typeUtils.d.ts +2 -1
  41. package/dist/analyzer/typeUtils.js +13 -0
  42. package/dist/analyzer/typeUtils.js.map +1 -1
  43. package/dist/analyzer/types.d.ts +9 -5
  44. package/dist/analyzer/types.js +38 -23
  45. package/dist/analyzer/types.js.map +1 -1
  46. package/dist/backgroundAnalysisBase.d.ts +12 -11
  47. package/dist/backgroundAnalysisBase.js +60 -64
  48. package/dist/backgroundAnalysisBase.js.map +1 -1
  49. package/dist/backgroundThreadBase.d.ts +6 -5
  50. package/dist/backgroundThreadBase.js +63 -60
  51. package/dist/backgroundThreadBase.js.map +1 -1
  52. package/dist/commands/quickActionCommand.js +1 -1
  53. package/dist/commands/quickActionCommand.js.map +1 -1
  54. package/dist/common/cancellationUtils.d.ts +6 -3
  55. package/dist/common/cancellationUtils.js +29 -5
  56. package/dist/common/cancellationUtils.js.map +1 -1
  57. package/dist/common/commandUtils.d.ts +2 -0
  58. package/dist/common/commandUtils.js +24 -0
  59. package/dist/common/commandUtils.js.map +1 -0
  60. package/dist/common/extensibility.d.ts +7 -6
  61. package/dist/common/extensibility.js.map +1 -1
  62. package/dist/common/fileBasedCancellationUtils.js +19 -13
  63. package/dist/common/fileBasedCancellationUtils.js.map +1 -1
  64. package/dist/common/fullAccessHost.d.ts +1 -1
  65. package/dist/common/fullAccessHost.js +2 -2
  66. package/dist/common/fullAccessHost.js.map +1 -1
  67. package/dist/common/host.d.ts +2 -2
  68. package/dist/common/host.js.map +1 -1
  69. package/dist/common/realFileSystem.js +8 -8
  70. package/dist/common/realFileSystem.js.map +1 -1
  71. package/dist/common/serviceProvider.js +8 -1
  72. package/dist/common/serviceProvider.js.map +1 -1
  73. package/dist/common/uri/baseUri.d.ts +4 -1
  74. package/dist/common/uri/baseUri.js +7 -1
  75. package/dist/common/uri/baseUri.js.map +1 -1
  76. package/dist/common/uri/emptyUri.d.ts +3 -0
  77. package/dist/common/uri/emptyUri.js +9 -0
  78. package/dist/common/uri/emptyUri.js.map +1 -1
  79. package/dist/common/uri/fileUri.d.ts +2 -0
  80. package/dist/common/uri/fileUri.js +6 -0
  81. package/dist/common/uri/fileUri.js.map +1 -1
  82. package/dist/common/uri/memoization.js +1 -1
  83. package/dist/common/uri/memoization.js.map +1 -1
  84. package/dist/common/uri/uri.d.ts +4 -1
  85. package/dist/common/uri/uri.js +5 -2
  86. package/dist/common/uri/uri.js.map +1 -1
  87. package/dist/common/uri/uriUtils.d.ts +2 -0
  88. package/dist/common/uri/uriUtils.js +18 -1
  89. package/dist/common/uri/uriUtils.js.map +1 -1
  90. package/dist/common/uri/webUri.d.ts +2 -0
  91. package/dist/common/uri/webUri.js +7 -1
  92. package/dist/common/uri/webUri.js.map +1 -1
  93. package/dist/common/workspaceEditUtils.d.ts +6 -5
  94. package/dist/common/workspaceEditUtils.js +18 -17
  95. package/dist/common/workspaceEditUtils.js.map +1 -1
  96. package/dist/languageServerBase.d.ts +1 -0
  97. package/dist/languageServerBase.js +28 -25
  98. package/dist/languageServerBase.js.map +1 -1
  99. package/dist/languageService/analyzerServiceExecutor.d.ts +1 -2
  100. package/dist/languageService/analyzerServiceExecutor.js +6 -5
  101. package/dist/languageService/analyzerServiceExecutor.js.map +1 -1
  102. package/dist/languageService/autoImporter.js +3 -3
  103. package/dist/languageService/autoImporter.js.map +1 -1
  104. package/dist/languageService/callHierarchyProvider.js +9 -7
  105. package/dist/languageService/callHierarchyProvider.js.map +1 -1
  106. package/dist/languageService/codeActionProvider.js +3 -2
  107. package/dist/languageService/codeActionProvider.js.map +1 -1
  108. package/dist/languageService/completionProvider.d.ts +2 -4
  109. package/dist/languageService/completionProvider.js +14 -18
  110. package/dist/languageService/completionProvider.js.map +1 -1
  111. package/dist/languageService/documentSymbolProvider.js +5 -4
  112. package/dist/languageService/documentSymbolProvider.js.map +1 -1
  113. package/dist/languageService/navigationUtils.js +2 -1
  114. package/dist/languageService/navigationUtils.js.map +1 -1
  115. package/dist/languageService/renameProvider.js +2 -2
  116. package/dist/languageService/renameProvider.js.map +1 -1
  117. package/dist/languageService/workspaceSymbolProvider.js +2 -1
  118. package/dist/languageService/workspaceSymbolProvider.js.map +1 -1
  119. package/dist/localization/localize.d.ts +5 -4
  120. package/dist/localization/localize.js +3 -2
  121. package/dist/localization/localize.js.map +1 -1
  122. package/dist/localization/package.nls.cs.json +19 -4
  123. package/dist/localization/package.nls.de.json +19 -4
  124. package/dist/localization/package.nls.en-us.json +3 -2
  125. package/dist/localization/package.nls.es.json +19 -4
  126. package/dist/localization/package.nls.fr.json +18 -3
  127. package/dist/localization/package.nls.it.json +19 -4
  128. package/dist/localization/package.nls.ja.json +19 -4
  129. package/dist/localization/package.nls.ko.json +19 -4
  130. package/dist/localization/package.nls.pl.json +19 -4
  131. package/dist/localization/package.nls.pt-br.json +19 -4
  132. package/dist/localization/package.nls.qps-ploc.json +19 -4
  133. package/dist/localization/package.nls.ru.json +18 -3
  134. package/dist/localization/package.nls.tr.json +19 -4
  135. package/dist/localization/package.nls.zh-cn.json +19 -4
  136. package/dist/localization/package.nls.zh-tw.json +19 -4
  137. package/dist/parser/parser.d.ts +0 -3
  138. package/dist/parser/parser.js.map +1 -1
  139. package/dist/parser/tokenizer.d.ts +2 -4
  140. package/dist/parser/tokenizer.js +5 -6
  141. package/dist/parser/tokenizer.js.map +1 -1
  142. package/dist/parser/tokenizerTypes.d.ts +2 -2
  143. package/dist/parser/tokenizerTypes.js.map +1 -1
  144. package/dist/pyright.js +3 -3
  145. package/dist/pyright.js.map +1 -1
  146. package/dist/tests/chainedSourceFiles.test.js +8 -8
  147. package/dist/tests/chainedSourceFiles.test.js.map +1 -1
  148. package/dist/tests/completions.test.js +3 -3
  149. package/dist/tests/completions.test.js.map +1 -1
  150. package/dist/tests/config.test.js +10 -2
  151. package/dist/tests/config.test.js.map +1 -1
  152. package/dist/tests/filesystem.test.js +4 -4
  153. package/dist/tests/filesystem.test.js.map +1 -1
  154. package/dist/tests/fourSlashParser.test.js +22 -8
  155. package/dist/tests/fourSlashParser.test.js.map +1 -1
  156. package/dist/tests/fourslash/rename.multipleDecl.fourslash.d.ts +1 -1
  157. package/dist/tests/harness/fourslash/fourSlashParser.js +4 -0
  158. package/dist/tests/harness/fourslash/fourSlashParser.js.map +1 -1
  159. package/dist/tests/harness/fourslash/fourSlashTypes.d.ts +3 -0
  160. package/dist/tests/harness/fourslash/fourSlashTypes.js.map +1 -1
  161. package/dist/tests/harness/fourslash/testState.d.ts +13 -0
  162. package/dist/tests/harness/fourslash/testState.js +13 -8
  163. package/dist/tests/harness/fourslash/testState.js.map +1 -1
  164. package/dist/tests/harness/vfs/factory.d.ts +1 -1
  165. package/dist/tests/harness/vfs/factory.js +4 -4
  166. package/dist/tests/harness/vfs/factory.js.map +1 -1
  167. package/dist/tests/importStatementUtils.test.js +1 -1
  168. package/dist/tests/importStatementUtils.test.js.map +1 -1
  169. package/dist/tests/ipythonMode.test.js +11 -12
  170. package/dist/tests/ipythonMode.test.js.map +1 -1
  171. package/dist/tests/serialization.test.d.ts +2 -0
  172. package/dist/tests/serialization.test.js +88 -0
  173. package/dist/tests/serialization.test.js.map +1 -0
  174. package/dist/tests/service.test.js +1 -1
  175. package/dist/tests/service.test.js.map +1 -1
  176. package/dist/tests/signatureHelp.test.js +2 -3
  177. package/dist/tests/signatureHelp.test.js.map +1 -1
  178. package/dist/tests/sourceFile.test.js +3 -3
  179. package/dist/tests/sourceFile.test.js.map +1 -1
  180. package/dist/tests/sourceMapperUtils.test.js +2 -2
  181. package/dist/tests/sourceMapperUtils.test.js.map +1 -1
  182. package/dist/tests/testState.test.js +1 -1
  183. package/dist/tests/testState.test.js.map +1 -1
  184. package/dist/tests/testStateUtils.js +2 -2
  185. package/dist/tests/testStateUtils.js.map +1 -1
  186. package/dist/tests/textEditUtil.test.js +1 -2
  187. package/dist/tests/textEditUtil.test.js.map +1 -1
  188. package/dist/tests/typeEvaluator1.test.js +12 -0
  189. package/dist/tests/typeEvaluator1.test.js.map +1 -1
  190. package/dist/tests/typeEvaluator2.test.js +6 -6
  191. package/dist/tests/typeEvaluator2.test.js.map +1 -1
  192. package/dist/tests/typeEvaluator3.test.js +6 -0
  193. package/dist/tests/typeEvaluator3.test.js.map +1 -1
  194. package/dist/tests/typeEvaluator4.test.js +4 -4
  195. package/dist/tests/typeEvaluator4.test.js.map +1 -1
  196. package/dist/tests/uri.test.js +30 -7
  197. package/dist/tests/uri.test.js.map +1 -1
  198. package/dist/tests/workspaceEditUtils.test.js +8 -8
  199. package/dist/tests/workspaceEditUtils.test.js.map +1 -1
  200. package/dist/workspaceFactory.js +1 -1
  201. package/dist/workspaceFactory.js.map +1 -1
  202. package/package.json +2 -1
@@ -42,11 +42,11 @@ function getFunctionInfoFromDecorators(evaluator, node, isInClass) {
42
42
  // Some stub files (e.g. builtins.pyi) rely on forward declarations of decorators.
43
43
  let evaluatorFlags = fileInfo.isStubFile ? 4 /* EvaluatorFlags.AllowForwardReferences */ : 0 /* EvaluatorFlags.None */;
44
44
  if (decoratorNode.expression.nodeType !== 9 /* ParseNodeType.Call */) {
45
- evaluatorFlags |= 16777218 /* EvaluatorFlags.CallBaseDefaults */;
45
+ evaluatorFlags |= 2 /* EvaluatorFlags.CallBaseDefaults */;
46
46
  }
47
47
  else {
48
48
  if (decoratorNode.expression.nodeType === 9 /* ParseNodeType.Call */) {
49
- const decoratorCallType = evaluator.getTypeOfExpression(decoratorNode.expression.leftExpression, evaluatorFlags | 16777218 /* EvaluatorFlags.CallBaseDefaults */).type;
49
+ const decoratorCallType = evaluator.getTypeOfExpression(decoratorNode.expression.leftExpression, evaluatorFlags | 2 /* EvaluatorFlags.CallBaseDefaults */).type;
50
50
  if ((0, typeUtils_1.isBuiltInDeprecatedType)(decoratorCallType)) {
51
51
  deprecationMessage = getCustomDeprecationMessage(decoratorNode);
52
52
  }
@@ -99,7 +99,7 @@ function applyFunctionDecorator(evaluator, inputFunctionType, undecoratedType, d
99
99
  // Some stub files (e.g. builtins.pyi) rely on forward declarations of decorators.
100
100
  let evaluatorFlags = fileInfo.isStubFile ? 4 /* EvaluatorFlags.AllowForwardReferences */ : 0 /* EvaluatorFlags.None */;
101
101
  if (decoratorNode.expression.nodeType !== 9 /* ParseNodeType.Call */) {
102
- evaluatorFlags |= 16777218 /* EvaluatorFlags.CallBaseDefaults */;
102
+ evaluatorFlags |= 2 /* EvaluatorFlags.CallBaseDefaults */;
103
103
  }
104
104
  const decoratorTypeResult = evaluator.getTypeOfExpression(decoratorNode.expression, evaluatorFlags);
105
105
  const decoratorType = decoratorTypeResult.type;
@@ -114,7 +114,7 @@ function applyFunctionDecorator(evaluator, inputFunctionType, undecoratedType, d
114
114
  }
115
115
  }
116
116
  if (decoratorNode.expression.nodeType === 9 /* ParseNodeType.Call */) {
117
- const decoratorCallType = evaluator.getTypeOfExpression(decoratorNode.expression.leftExpression, evaluatorFlags | 16777218 /* EvaluatorFlags.CallBaseDefaults */).type;
117
+ const decoratorCallType = evaluator.getTypeOfExpression(decoratorNode.expression.leftExpression, evaluatorFlags | 2 /* EvaluatorFlags.CallBaseDefaults */).type;
118
118
  if ((0, types_1.isFunction)(decoratorCallType)) {
119
119
  if (decoratorCallType.details.name === '__dataclass_transform__' ||
120
120
  decoratorCallType.details.builtInName === 'dataclass_transform') {
@@ -138,7 +138,7 @@ function applyFunctionDecorator(evaluator, inputFunctionType, undecoratedType, d
138
138
  }
139
139
  // Handle property setters and deleters.
140
140
  if (decoratorNode.expression.nodeType === 35 /* ParseNodeType.MemberAccess */) {
141
- const baseType = evaluator.getTypeOfExpression(decoratorNode.expression.leftExpression, evaluatorFlags | 16777218 /* EvaluatorFlags.MemberAccessBaseDefaults */).type;
141
+ const baseType = evaluator.getTypeOfExpression(decoratorNode.expression.leftExpression, evaluatorFlags | 2 /* EvaluatorFlags.MemberAccessBaseDefaults */).type;
142
142
  if ((0, typeUtils_1.isProperty)(baseType)) {
143
143
  const memberName = decoratorNode.expression.memberName.value;
144
144
  if (memberName === 'setter') {
@@ -222,11 +222,11 @@ function applyClassDecorator(evaluator, inputClassType, originalClassType, decor
222
222
  const fileInfo = (0, analyzerNodeInfo_1.getFileInfo)(decoratorNode);
223
223
  let flags = fileInfo.isStubFile ? 4 /* EvaluatorFlags.AllowForwardReferences */ : 0 /* EvaluatorFlags.None */;
224
224
  if (decoratorNode.expression.nodeType !== 9 /* ParseNodeType.Call */) {
225
- flags |= 16777218 /* EvaluatorFlags.CallBaseDefaults */;
225
+ flags |= 2 /* EvaluatorFlags.CallBaseDefaults */;
226
226
  }
227
227
  const decoratorType = evaluator.getTypeOfExpression(decoratorNode.expression, flags).type;
228
228
  if (decoratorNode.expression.nodeType === 9 /* ParseNodeType.Call */) {
229
- const decoratorCallType = evaluator.getTypeOfExpression(decoratorNode.expression.leftExpression, flags | 16777218 /* EvaluatorFlags.CallBaseDefaults */).type;
229
+ const decoratorCallType = evaluator.getTypeOfExpression(decoratorNode.expression.leftExpression, flags | 2 /* EvaluatorFlags.CallBaseDefaults */).type;
230
230
  if ((0, types_1.isFunction)(decoratorCallType)) {
231
231
  if (decoratorCallType.details.name === '__dataclass_transform__' ||
232
232
  decoratorCallType.details.builtInName === 'dataclass_transform') {
@@ -270,7 +270,7 @@ function applyClassDecorator(evaluator, inputClassType, originalClassType, decor
270
270
  let callNode;
271
271
  if (decoratorNode.expression.nodeType === 9 /* ParseNodeType.Call */) {
272
272
  callNode = decoratorNode.expression;
273
- const decoratorCallType = evaluator.getTypeOfExpression(callNode.leftExpression, flags | 16777218 /* EvaluatorFlags.CallBaseDefaults */).type;
273
+ const decoratorCallType = evaluator.getTypeOfExpression(callNode.leftExpression, flags | 2 /* EvaluatorFlags.CallBaseDefaults */).type;
274
274
  dataclassBehaviors = (0, dataClasses_1.getDataclassDecoratorBehaviors)(decoratorCallType);
275
275
  }
276
276
  else {
@@ -290,7 +290,7 @@ function getTypeOfDecorator(evaluator, node, functionOrClassType) {
290
290
  // Evaluate the type of the decorator expression.
291
291
  let flags = (0, analyzerNodeInfo_1.getFileInfo)(node).isStubFile ? 4 /* EvaluatorFlags.AllowForwardReferences */ : 0 /* EvaluatorFlags.None */;
292
292
  if (node.expression.nodeType !== 9 /* ParseNodeType.Call */) {
293
- flags |= 16777218 /* EvaluatorFlags.CallBaseDefaults */;
293
+ flags |= 2 /* EvaluatorFlags.CallBaseDefaults */;
294
294
  }
295
295
  const decoratorTypeResult = evaluator.getTypeOfExpression(node.expression, flags);
296
296
  // Special-case the combination of a classmethod decorator applied
@@ -1 +1 @@
1
- {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../../src/analyzer/decorators.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../../src/analyzer/decorators.ts"],"names":[],"mappings":"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"}
@@ -37,7 +37,7 @@ export declare class ImportResolver {
37
37
  private _cachedModuleNameResults;
38
38
  private _cachedTypeshedRoot;
39
39
  private _cachedTypeshedStdLibPath;
40
- private _cachedTypeshedStdLibModuleVersions;
40
+ private _cachedTypeshedStdLibModuleVersionInfo;
41
41
  private _cachedTypeshedThirdPartyPath;
42
42
  private _cachedTypeshedThirdPartyPackagePaths;
43
43
  private _cachedTypeshedThirdPartyPackageRoots;
@@ -65,7 +65,7 @@ export declare class ImportResolver {
65
65
  getImportRoots(execEnv: ExecutionEnvironment, forLogging?: boolean): Uri[];
66
66
  ensurePartialStubPackages(execEnv: ExecutionEnvironment): boolean;
67
67
  getPythonSearchPaths(importFailureInfo: string[]): Uri[];
68
- getTypeshedStdlibExcludeList(customTypeshedPath: Uri, pythonVersion: PythonVersion): Uri[];
68
+ getTypeshedStdlibExcludeList(customTypeshedPath: Uri, pythonVersion: PythonVersion, pythonPlatform: string | undefined): Uri[];
69
69
  protected readdirEntriesCached(uri: Uri): Dirent[];
70
70
  protected resolveImportInternal(sourceFileUri: Uri, execEnv: ExecutionEnvironment, moduleDescriptor: ImportedModuleDescriptor): ImportResult;
71
71
  protected fileExistsCached(uri: Uri): boolean;
@@ -245,7 +245,7 @@ class ImportResolver {
245
245
  }
246
246
  getTypeshedStdLibPath(execEnv) {
247
247
  const unused = [];
248
- return this._getStdlibTypeshedPath(this._configOptions.typeshedPath, execEnv.pythonVersion, unused);
248
+ return this._getStdlibTypeshedPath(this._configOptions.typeshedPath, execEnv.pythonVersion, execEnv.pythonPlatform, unused);
249
249
  }
250
250
  getTypeshedThirdPartyPath(execEnv) {
251
251
  const unused = [];
@@ -260,7 +260,7 @@ class ImportResolver {
260
260
  getImportRoots(execEnv, forLogging = false) {
261
261
  const importFailureInfo = [];
262
262
  const roots = [];
263
- const stdTypeshed = this._getStdlibTypeshedPath(this._configOptions.typeshedPath, execEnv.pythonVersion, importFailureInfo);
263
+ const stdTypeshed = this._getStdlibTypeshedPath(this._configOptions.typeshedPath, execEnv.pythonVersion, execEnv.pythonPlatform, importFailureInfo);
264
264
  if (stdTypeshed) {
265
265
  roots.push(stdTypeshed);
266
266
  }
@@ -335,18 +335,38 @@ class ImportResolver {
335
335
  importFailureInfo.push(...this._cachedPythonSearchPaths.failureInfo);
336
336
  return this._cachedPythonSearchPaths.paths;
337
337
  }
338
- getTypeshedStdlibExcludeList(customTypeshedPath, pythonVersion) {
338
+ getTypeshedStdlibExcludeList(customTypeshedPath, pythonVersion, pythonPlatform) {
339
339
  const unused = [];
340
- const typeshedStdlibPath = this._getStdlibTypeshedPath(customTypeshedPath, pythonVersion, unused);
340
+ const typeshedStdlibPath = this._getStdlibTypeshedPath(customTypeshedPath, pythonVersion, pythonPlatform, unused);
341
341
  const excludes = [];
342
342
  if (!typeshedStdlibPath) {
343
343
  return excludes;
344
344
  }
345
- if (!this._cachedTypeshedStdLibModuleVersions) {
346
- this._cachedTypeshedStdLibModuleVersions = this._readTypeshedStdLibVersions(customTypeshedPath, []);
347
- }
348
- this._cachedTypeshedStdLibModuleVersions.forEach((versionRange, moduleName) => {
349
- if (versionRange.max !== undefined && pythonVersion > versionRange.max) {
345
+ if (!this._cachedTypeshedStdLibModuleVersionInfo) {
346
+ this._cachedTypeshedStdLibModuleVersionInfo = this._readTypeshedStdLibVersions(customTypeshedPath, []);
347
+ }
348
+ this._cachedTypeshedStdLibModuleVersionInfo.forEach((versionInfo, moduleName) => {
349
+ let shouldExcludeModule = false;
350
+ if (versionInfo.max !== undefined && pythonVersion > versionInfo.max) {
351
+ shouldExcludeModule = true;
352
+ }
353
+ if (pythonPlatform !== undefined) {
354
+ const pythonPlatformLower = pythonPlatform.toLowerCase();
355
+ // If there are supported platforms listed, and we are not using one
356
+ // of those supported platforms, exclude it.
357
+ if (versionInfo.supportedPlatforms) {
358
+ if (versionInfo.supportedPlatforms.every((p) => p.toLowerCase() !== pythonPlatformLower)) {
359
+ shouldExcludeModule = true;
360
+ }
361
+ }
362
+ // If there are unsupported platforms listed, see if we're using one of them.
363
+ if (versionInfo.unsupportedPlatforms) {
364
+ if (versionInfo.unsupportedPlatforms.some((p) => p.toLowerCase() === pythonPlatformLower)) {
365
+ shouldExcludeModule = true;
366
+ }
367
+ }
368
+ }
369
+ if (shouldExcludeModule) {
350
370
  // Add excludes for both the ".pyi" file and the directory that contains it
351
371
  // (in case it's using a "__init__.pyi" file).
352
372
  const moduleDirPath = typeshedStdlibPath.combinePaths(...moduleName.split('.'));
@@ -713,7 +733,7 @@ class ImportResolver {
713
733
  // declare types with the same (local) name.
714
734
  let moduleNameWithInvalidCharacters;
715
735
  // Is this a stdlib typeshed path?
716
- const stdLibTypeshedPath = this._getStdlibTypeshedPath(this._configOptions.typeshedPath, execEnv.pythonVersion, importFailureInfo);
736
+ const stdLibTypeshedPath = this._getStdlibTypeshedPath(this._configOptions.typeshedPath, execEnv.pythonVersion, execEnv.pythonPlatform, importFailureInfo);
717
737
  if (stdLibTypeshedPath) {
718
738
  moduleName = this.getModuleNameFromPath(stdLibTypeshedPath, fileUri);
719
739
  if (moduleName) {
@@ -722,7 +742,7 @@ class ImportResolver {
722
742
  nameParts: moduleName.split('.'),
723
743
  importedSymbols: undefined,
724
744
  };
725
- if (this._isStdlibTypeshedStubValidForVersion(moduleDescriptor, this._configOptions.typeshedPath, execEnv.pythonVersion, [])) {
745
+ if (this._isStdlibTypeshedStubValidForVersion(moduleDescriptor, this._configOptions.typeshedPath, execEnv.pythonVersion, execEnv.pythonPlatform, [])) {
726
746
  return {
727
747
  moduleName,
728
748
  importType,
@@ -1272,7 +1292,7 @@ class ImportResolver {
1272
1292
  importFailureInfo.push(`Looking for typeshed ${isStdLib ? PythonPathUtils.stdLibFolderName : PythonPathUtils.thirdPartyFolderName} path`);
1273
1293
  let typeshedPaths;
1274
1294
  if (isStdLib) {
1275
- const path = this._getStdlibTypeshedPath(this._configOptions.typeshedPath, execEnv.pythonVersion, importFailureInfo, moduleDescriptor);
1295
+ const path = this._getStdlibTypeshedPath(this._configOptions.typeshedPath, execEnv.pythonVersion, execEnv.pythonPlatform, importFailureInfo, moduleDescriptor);
1276
1296
  if (path) {
1277
1297
  typeshedPaths = [path];
1278
1298
  }
@@ -1364,7 +1384,7 @@ class ImportResolver {
1364
1384
  const importFailureInfo = [];
1365
1385
  let typeshedPaths;
1366
1386
  if (isStdLib) {
1367
- const path = this._getStdlibTypeshedPath(this._configOptions.typeshedPath, execEnv.pythonVersion, importFailureInfo, moduleDescriptor);
1387
+ const path = this._getStdlibTypeshedPath(this._configOptions.typeshedPath, execEnv.pythonVersion, execEnv.pythonPlatform, importFailureInfo, moduleDescriptor);
1368
1388
  if (path) {
1369
1389
  typeshedPaths = [path];
1370
1390
  }
@@ -1390,11 +1410,11 @@ class ImportResolver {
1390
1410
  // Returns the directory for a module within the stdlib typeshed directory.
1391
1411
  // If moduleDescriptor is provided, it is filtered based on the VERSIONS
1392
1412
  // file in the typeshed stubs.
1393
- _getStdlibTypeshedPath(customTypeshedPath, pythonVersion, importFailureInfo, moduleDescriptor) {
1413
+ _getStdlibTypeshedPath(customTypeshedPath, pythonVersion, pythonPlatform, importFailureInfo, moduleDescriptor) {
1394
1414
  const subdirectory = this._getTypeshedSubdirectory(/* isStdLib */ true, customTypeshedPath, importFailureInfo);
1395
1415
  if (subdirectory &&
1396
1416
  moduleDescriptor &&
1397
- !this._isStdlibTypeshedStubValidForVersion(moduleDescriptor, customTypeshedPath, pythonVersion, importFailureInfo)) {
1417
+ !this._isStdlibTypeshedStubValidForVersion(moduleDescriptor, customTypeshedPath, pythonVersion, pythonPlatform, importFailureInfo)) {
1398
1418
  return undefined;
1399
1419
  }
1400
1420
  return subdirectory;
@@ -1402,22 +1422,35 @@ class ImportResolver {
1402
1422
  _getThirdPartyTypeshedPath(customTypeshedPath, importFailureInfo) {
1403
1423
  return this._getTypeshedSubdirectory(/* isStdLib */ false, customTypeshedPath, importFailureInfo);
1404
1424
  }
1405
- _isStdlibTypeshedStubValidForVersion(moduleDescriptor, customTypeshedPath, pythonVersion, importFailureInfo) {
1406
- if (!this._cachedTypeshedStdLibModuleVersions) {
1407
- this._cachedTypeshedStdLibModuleVersions = this._readTypeshedStdLibVersions(customTypeshedPath, importFailureInfo);
1425
+ _isStdlibTypeshedStubValidForVersion(moduleDescriptor, customTypeshedPath, pythonVersion, pythonPlatform, importFailureInfo) {
1426
+ if (!this._cachedTypeshedStdLibModuleVersionInfo) {
1427
+ this._cachedTypeshedStdLibModuleVersionInfo = this._readTypeshedStdLibVersions(customTypeshedPath, importFailureInfo);
1408
1428
  }
1409
1429
  // Loop through the name parts to make sure the module and submodules
1410
1430
  // referenced in the import statement are valid for this version of Python.
1411
1431
  for (let namePartCount = 1; namePartCount <= moduleDescriptor.nameParts.length; namePartCount++) {
1412
1432
  const namePartsToConsider = moduleDescriptor.nameParts.slice(0, namePartCount);
1413
- const versionRange = this._cachedTypeshedStdLibModuleVersions.get(namePartsToConsider.join('.'));
1414
- if (versionRange) {
1415
- if (pythonVersion < versionRange.min) {
1433
+ const versionInfo = this._cachedTypeshedStdLibModuleVersionInfo.get(namePartsToConsider.join('.'));
1434
+ if (versionInfo) {
1435
+ if (pythonVersion < versionInfo.min) {
1416
1436
  return false;
1417
1437
  }
1418
- if (versionRange.max !== undefined && pythonVersion > versionRange.max) {
1438
+ if (versionInfo.max !== undefined && pythonVersion > versionInfo.max) {
1419
1439
  return false;
1420
1440
  }
1441
+ if (pythonPlatform !== undefined) {
1442
+ const pythonPlatformLower = pythonPlatform.toLowerCase();
1443
+ if (versionInfo.supportedPlatforms) {
1444
+ if (versionInfo.supportedPlatforms.every((p) => p.toLowerCase() !== pythonPlatformLower)) {
1445
+ return false;
1446
+ }
1447
+ }
1448
+ if (versionInfo.unsupportedPlatforms) {
1449
+ if (versionInfo.unsupportedPlatforms.some((p) => p.toLowerCase() === pythonPlatformLower)) {
1450
+ return false;
1451
+ }
1452
+ }
1453
+ }
1421
1454
  }
1422
1455
  }
1423
1456
  return true;
@@ -1435,7 +1468,10 @@ class ImportResolver {
1435
1468
  const fileContents = this.fileSystem.readFileSync(versionsFilePath, 'utf8');
1436
1469
  fileContents.split(/\r?\n/).forEach((line) => {
1437
1470
  const commentSplit = line.split('#');
1438
- const colonSplit = commentSplit[0].split(':');
1471
+ // Platform-specific information can be specified after a semicolon.
1472
+ const semicolonSplit = commentSplit[0].split(';').map((s) => s.trim());
1473
+ // Version information is found after a colon.
1474
+ const colonSplit = semicolonSplit[0].split(':');
1439
1475
  if (colonSplit.length !== 2) {
1440
1476
  return;
1441
1477
  }
@@ -1460,7 +1496,40 @@ class ImportResolver {
1460
1496
  if (versionSplit.length > 1) {
1461
1497
  maxVersion = (0, pythonVersion_1.versionFromString)(versionSplit[1].trim());
1462
1498
  }
1463
- versionRangeMap.set(moduleName, { min: minVersion, max: maxVersion });
1499
+ // A semicolon can be followed by a semicolon-delimited list of other
1500
+ // exclusions. The "platform" exclusion is a comma delimited list platforms
1501
+ // that are supported or not supported.
1502
+ let supportedPlatforms;
1503
+ let unsupportedPlatforms;
1504
+ const platformsHeader = 'platforms=';
1505
+ let platformExclusions = semicolonSplit.slice(1).find((s) => s.startsWith(platformsHeader));
1506
+ if (platformExclusions) {
1507
+ platformExclusions = platformExclusions.trim().substring(platformsHeader.length);
1508
+ const commaSplit = platformExclusions.split(',');
1509
+ for (let platform of commaSplit) {
1510
+ platform = platform.trim();
1511
+ let isUnsupported = false;
1512
+ // Remove the '!' from the start if it's an exclusion.
1513
+ if (platform.startsWith('!')) {
1514
+ isUnsupported = true;
1515
+ platform = platform.substring(1);
1516
+ }
1517
+ if (isUnsupported) {
1518
+ unsupportedPlatforms = unsupportedPlatforms !== null && unsupportedPlatforms !== void 0 ? unsupportedPlatforms : [];
1519
+ unsupportedPlatforms.push(platform);
1520
+ }
1521
+ else {
1522
+ supportedPlatforms = supportedPlatforms !== null && supportedPlatforms !== void 0 ? supportedPlatforms : [];
1523
+ supportedPlatforms.push(platform);
1524
+ }
1525
+ }
1526
+ }
1527
+ versionRangeMap.set(moduleName, {
1528
+ min: minVersion,
1529
+ max: maxVersion,
1530
+ supportedPlatforms,
1531
+ unsupportedPlatforms,
1532
+ });
1464
1533
  });
1465
1534
  }
1466
1535
  else {