diff --git a/.github/workflows/build_and_release.yml b/.github/workflows/build_and_release.yml
index 21c6d6a8bd..da691ed0b3 100644
--- a/.github/workflows/build_and_release.yml
+++ b/.github/workflows/build_and_release.yml
@@ -40,16 +40,21 @@ jobs:
restore-keys: |
${{ runner.os }}-node-
- - run: npm run install:all
+ - run: ./pw pdm install
- id: current-version
- run: echo ::set-output name=CURRENT_VERSION::$(node -p "require(\"./lerna.json\").version")
+ run: echo ::set-output name=CURRENT_VERSION::$(./pw pdm show --version)
- - if: github.ref == 'refs/heads/main'
+ - name: get currently published npm package version
+ if: github.ref == 'refs/heads/main'
run: echo ::set-output name=VERSION_INFO::$(npm view $(node -p "require(\"./package.json\").name")@=${{ steps.current-version.outputs.CURRENT_VERSION }})
id: version-was-changed
working-directory: ${{ env.NPM_PACKAGE_DIR }}
+ - name: set version for publishing
+ if: github.ref == 'refs/heads/main'
+ run: ./node_modules/.bin/lerna version ${{ steps.current-version.outputs.CURRENT_VERSION }} --yes --no-git-tag-version
+
- name: Build VSIX
working-directory: ${{ env.VSIX_DIR }}
run: |
diff --git a/docs/_sidebar.md b/docs/_sidebar.md
index 700c7feaab..b860ea431b 100644
--- a/docs/_sidebar.md
+++ b/docs/_sidebar.md
@@ -14,7 +14,7 @@
- [Execution Environments](configuration.md#execution-environment-options)
- [Sample pyrightconfig.json](configuration.md#sample-config-file)
- [Sample pyproject.toml](configuration.md#sample-pyprojecttoml-file)
- - [Diagnostic Rule Defaults](configuration.md#diagnostic-rule-defaults)
+ - [Diagnostic Settings Defaults](configuration.md#diagnostic-settings-defaults)
- [Locale Configuration](configuration.md#locale-configuration)
- [Language Server Settings](settings.md)
- [Command Line Interface](command-line.md)
diff --git a/docs/configuration.md b/docs/configuration.md
index 44fef59a41..c61d0e7da8 100644
--- a/docs/configuration.md
+++ b/docs/configuration.md
@@ -8,37 +8,37 @@ Relative paths specified within the config file are relative to the config file
## Main Configuration Options
-**include** [array of paths, optional]: Paths of directories or files that should be included. If no paths are specified, pyright defaults to the directory that contains the config file. Paths may contain wildcard characters ** (a directory or multiple levels of directories), * (a sequence of zero or more characters), or ? (a single character). If no include paths are specified, the root path for the workspace is assumed.
+- **include** [array of paths, optional]: Paths of directories or files that should be included. If no paths are specified, pyright defaults to the directory that contains the config file. Paths may contain wildcard characters ** (a directory or multiple levels of directories), * (a sequence of zero or more characters), or ? (a single character). If no include paths are specified, the root path for the workspace is assumed.
-**exclude** [array of paths, optional]: Paths of directories or files that should not be included. These override the includes directories and files, allowing specific subdirectories to be ignored. Note that files in the exclude paths may still be included in the analysis if they are referenced (imported) by source files that are not excluded. Paths may contain wildcard characters ** (a directory or multiple levels of directories), * (a sequence of zero or more characters), or ? (a single character). If no exclude paths are specified, Pyright automatically excludes the following: `**/node_modules`, `**/__pycache__`, `**/.*`. Pylance also excludes any virtual environment directories regardless of the exclude paths specified. For more detail on Python environment specification and discovery, refer to the [import resolution](import-resolution.md#configuring-your-python-environment) documentation.
+- **exclude** [array of paths, optional]: Paths of directories or files that should not be included. These override the includes directories and files, allowing specific subdirectories to be ignored. Note that files in the exclude paths may still be included in the analysis if they are referenced (imported) by source files that are not excluded. Paths may contain wildcard characters ** (a directory or multiple levels of directories), * (a sequence of zero or more characters), or ? (a single character). If no exclude paths are specified, Pyright automatically excludes the following: `**/node_modules`, `**/__pycache__`, `**/.*`. Pylance also excludes any virtual environment directories regardless of the exclude paths specified. For more detail on Python environment specification and discovery, refer to the [import resolution](import-resolution.md#configuring-your-python-environment) documentation.
-**ignore** [array of paths, optional]: Paths of directories or files whose diagnostic output (errors and warnings) should be suppressed even if they are an included file or within the transitive closure of an included file. Paths may contain wildcard characters ** (a directory or multiple levels of directories), * (a sequence of zero or more characters), or ? (a single character).
+- **ignore** [array of paths, optional]: Paths of directories or files whose diagnostic output (errors and warnings) should be suppressed even if they are an included file or within the transitive closure of an included file. Paths may contain wildcard characters ** (a directory or multiple levels of directories), * (a sequence of zero or more characters), or ? (a single character).
-**strict** [array of paths, optional]: Paths of directories or files that should use “strict” analysis if they are included. This is the same as manually adding a “# pyright: strict” comment. In strict mode, most type-checking rules are enabled. Refer to [this table](configuration.md#diagnostic-rule-defaults) for details about which rules are enabled in strict mode. Paths may contain wildcard characters ** (a directory or multiple levels of directories), * (a sequence of zero or more characters), or ? (a single character).
+- **strict** [array of paths, optional]: Paths of directories or files that should use “strict” analysis if they are included. This is the same as manually adding a “# pyright: strict” comment. In strict mode, most type-checking rules are enabled. Refer to [this table](configuration.md#diagnostic-rule-defaults) for details about which rules are enabled in strict mode. Paths may contain wildcard characters ** (a directory or multiple levels of directories), * (a sequence of zero or more characters), or ? (a single character).
-**defineConstant** [map of constants to values (boolean or string), optional]: Set of identifiers that should be assumed to contain a constant value wherever used within this program. For example, `{ "DEBUG": true }` indicates that pyright should assume that the identifier `DEBUG` will always be equal to `True`. If this identifier is used within a conditional expression (such as `if not DEBUG:`) pyright will use the indicated value to determine whether the guarded block is reachable or not. Member expressions that reference one of these constants (e.g. `my_module.DEBUG`) are also supported.
+- **defineConstant** [map of constants to values (boolean or string), optional]: Set of identifiers that should be assumed to contain a constant value wherever used within this program. For example, `{ "DEBUG": true }` indicates that pyright should assume that the identifier `DEBUG` will always be equal to `True`. If this identifier is used within a conditional expression (such as `if not DEBUG:`) pyright will use the indicated value to determine whether the guarded block is reachable or not. Member expressions that reference one of these constants (e.g. `my_module.DEBUG`) are also supported.
-**typeshedPath** [path, optional]: Path to a directory that contains typeshed type stub files. Pyright ships with a bundled copy of typeshed type stubs. If you want to use a different version of typeshed stubs, you can clone the [typeshed github repo](https://github.com/python/typeshed) to a local directory and reference the location with this path. This option is useful if you’re actively contributing updates to typeshed.
+- **typeshedPath** [path, optional]: Path to a directory that contains typeshed type stub files. Pyright ships with a bundled copy of typeshed type stubs. If you want to use a different version of typeshed stubs, you can clone the [typeshed github repo](https://github.com/python/typeshed) to a local directory and reference the location with this path. This option is useful if you’re actively contributing updates to typeshed.
-**stubPath** [path, optional]: Path to a directory that contains custom type stubs. Each package's type stub file(s) are expected to be in its own subdirectory. The default value of this setting is "./typings". (typingsPath is now deprecated)
+- **stubPath** [path, optional]: Path to a directory that contains custom type stubs. Each package's type stub file(s) are expected to be in its own subdirectory. The default value of this setting is "./typings". (typingsPath is now deprecated)
-**venvPath** [path, optional]: Path to a directory containing one or more subdirectories, each of which contains a virtual environment. When used in conjunction with a **venv** setting (see below), pyright will search for imports in the virtual environment’s site-packages directory rather than the paths specified by the default Python interpreter. If you are working on a project with other developers, it is best not to specify this setting in the config file, since this path will typically differ for each developer. Instead, it can be specified on the command line or in a per-user setting. For more details, refer to the [import resolution](import-resolution.md#configuring-your-python-environment) documentation.
+- **venvPath** [path, optional]: Path to a directory containing one or more subdirectories, each of which contains a virtual environment. When used in conjunction with a **venv** setting (see below), pyright will search for imports in the virtual environment’s site-packages directory rather than the paths specified by the default Python interpreter. If you are working on a project with other developers, it is best not to specify this setting in the config file, since this path will typically differ for each developer. Instead, it can be specified on the command line or in a per-user setting. For more details, refer to the [import resolution](import-resolution.md#configuring-your-python-environment) documentation.
-**venv** [string, optional]: Used in conjunction with the venvPath, specifies the virtual environment to use. For more details, refer to the [import resolution](import-resolution.md#configuring-your-python-environment) documentation.
+- **venv** [string, optional]: Used in conjunction with the venvPath, specifies the virtual environment to use. For more details, refer to the [import resolution](import-resolution.md#configuring-your-python-environment) documentation.
-**verboseOutput** [boolean]: Specifies whether output logs should be verbose. This is useful when diagnosing certain problems like import resolution issues.
+- **verboseOutput** [boolean]: Specifies whether output logs should be verbose. This is useful when diagnosing certain problems like import resolution issues.
-**extraPaths** [array of strings, optional]: Additional search paths that will be used when searching for modules imported by files.
+- **extraPaths** [array of strings, optional]: Additional search paths that will be used when searching for modules imported by files.
-**pythonVersion** [string, optional]: Specifies the version of Python that will be used to execute the source code. The version should be specified as a string in the format "M.m" where M is the major version and m is the minor (e.g. `"3.0"` or `"3.6"`). If a version is provided, pyright will generate errors if the source code makes use of language features that are not supported in that version. It will also tailor its use of type stub files, which conditionalizes type definitions based on the version. If no version is specified, pyright will use the version of the current python interpreter, if one is present.
+- **pythonVersion** [string, optional]: Specifies the version of Python that will be used to execute the source code. The version should be specified as a string in the format "M.m" where M is the major version and m is the minor (e.g. `"3.0"` or `"3.6"`). If a version is provided, pyright will generate errors if the source code makes use of language features that are not supported in that version. It will also tailor its use of type stub files, which conditionalizes type definitions based on the version. If no version is specified, pyright will use the version of the current python interpreter, if one is present.
-**pythonPlatform** [string, optional]: Specifies the target platform that will be used to execute the source code. Should be one of `"Windows"`, `"Darwin"`, `"Linux"`, or `"All"`. If specified, pyright will tailor its use of type stub files, which conditionalize type definitions based on the platform. If no platform is specified, pyright will use the current platform.
+- **pythonPlatform** [string, optional]: Specifies the target platform that will be used to execute the source code. Should be one of `"Windows"`, `"Darwin"`, `"Linux"`, or `"All"`. If specified, pyright will tailor its use of type stub files, which conditionalize type definitions based on the platform. If no platform is specified, pyright will use the current platform.
-**executionEnvironments** [array of objects, optional]: Specifies a list of execution environments (see [below](configuration.md#execution-environment-options)). Execution environments are searched from start to finish by comparing the path of a source file with the root path specified in the execution environment.
+- **executionEnvironments** [array of objects, optional]: Specifies a list of execution environments (see [below](configuration.md#execution-environment-options)). Execution environments are searched from start to finish by comparing the path of a source file with the root path specified in the execution environment.
-**typeCheckingMode** ["off", "basic", "standard", "strict", "all"]: Specifies the default rule set to use. Some rules can be overridden using additional configuration flags documented below. The default value for this setting is "all". If set to "off", all type-checking rules are disabled, but Python syntax and semantic errors are still reported.
+- **typeCheckingMode** ["off", "basic", "standard", "strict", "all"]: Specifies the default rule set to use. Some rules can be overridden using additional configuration flags documented below. The default value for this setting is "all". If set to "off", all type-checking rules are disabled, but Python syntax and semantic errors are still reported.
-**useLibraryCodeForTypes** [boolean]: Determines whether pyright reads, parses and analyzes library code to extract type information in the absence of type stub files. Type information will typically be incomplete. We recommend using type stubs where possible. The default value for this option is true.
+- **useLibraryCodeForTypes** [boolean]: Determines whether pyright reads, parses and analyzes library code to extract type information in the absence of type stub files. Type information will typically be incomplete. We recommend using type stubs where possible. The default value for this option is true.
## Type Check Diagnostics Settings
@@ -46,210 +46,210 @@ The following settings control pyright’s diagnostic output (warnings or errors
in basedpyright, all of these options are enabled by default, using the new `"all"` setting for `typeCheckingMode`. if you only want the rules enabled by default in regular pyright, you can set this option to `"standard"` or `"strict"`. see [this section in the README](../README.md#better-defaults) for more information.
- **strictListInference** [boolean]: When inferring the type of a list, use strict type assumptions. For example, the expression `[1, 'a', 3.4]` could be inferred to be of type `list[Any]` or `list[int | str | float]`. If this setting is true, it will use the latter (stricter) type.
+- **strictListInference** [boolean]: When inferring the type of a list, use strict type assumptions. For example, the expression `[1, 'a', 3.4]` could be inferred to be of type `list[Any]` or `list[int | str | float]`. If this setting is true, it will use the latter (stricter) type.
- **strictDictionaryInference** [boolean]: When inferring the type of a dictionary’s keys and values, use strict type assumptions. For example, the expression `{'a': 1, 'b': 'a'}` could be inferred to be of type `dict[str, Any]` or `dict[str, int | str]`. If this setting is true, it will use the latter (stricter) type.
+- **strictDictionaryInference** [boolean]: When inferring the type of a dictionary’s keys and values, use strict type assumptions. For example, the expression `{'a': 1, 'b': 'a'}` could be inferred to be of type `dict[str, Any]` or `dict[str, int | str]`. If this setting is true, it will use the latter (stricter) type.
- **strictSetInference** [boolean]: When inferring the type of a set, use strict type assumptions. For example, the expression `{1, 'a', 3.4}` could be inferred to be of type `set[Any]` or `set[int | str | float]`. If this setting is true, it will use the latter (stricter) type.
+- **strictSetInference** [boolean]: When inferring the type of a set, use strict type assumptions. For example, the expression `{1, 'a', 3.4}` could be inferred to be of type `set[Any]` or `set[int | str | float]`. If this setting is true, it will use the latter (stricter) type.
- **analyzeUnannotatedFunctions** [boolean]: Analyze and report errors for functions and methods that have no type annotations for input parameters or return types.
+- **analyzeUnannotatedFunctions** [boolean]: Analyze and report errors for functions and methods that have no type annotations for input parameters or return types.
- **strictParameterNoneValue** [boolean]: PEP 484 indicates that when a function parameter is assigned a default value of None, its type should implicitly be Optional even if the explicit type is not. When enabled, this rule requires that parameter type annotations use Optional explicitly in this case.
+- **strictParameterNoneValue** [boolean]: PEP 484 indicates that when a function parameter is assigned a default value of None, its type should implicitly be Optional even if the explicit type is not. When enabled, this rule requires that parameter type annotations use Optional explicitly in this case.
- **enableTypeIgnoreComments** [boolean]: PEP 484 defines support for "# type: ignore" comments. This switch enables or disables support for these comments.
+- **enableTypeIgnoreComments** [boolean]: PEP 484 defines support for "# type: ignore" comments. This switch enables or disables support for these comments.
- **deprecateTypingAliases** [boolean]: PEP 585 indicates that aliases to types in standard collections that were introduced solely to support generics are deprecated as of Python 3.9. This switch controls whether these are treated as deprecated. This applies only when pythonVersion is 3.9 or newer.
+- **deprecateTypingAliases** [boolean]: PEP 585 indicates that aliases to types in standard collections that were introduced solely to support generics are deprecated as of Python 3.9. This switch controls whether these are treated as deprecated. This applies only when pythonVersion is 3.9 or newer.
- **enableExperimentalFeatures** [boolean]: Enables a set of experimental (mostly undocumented) features that correspond to proposed or exploratory changes to the Python typing standard. These features will likely change or be removed, so they should not be used except for experimentation purposes.
+- **enableExperimentalFeatures** [boolean]: Enables a set of experimental (mostly undocumented) features that correspond to proposed or exploratory changes to the Python typing standard. These features will likely change or be removed, so they should not be used except for experimentation purposes.
- **disableBytesTypePromotions** [boolean]: Disables legacy behavior where `bytearray` and `memoryview` are considered subtypes of `bytes`. [PEP 688](https://peps.python.org/pep-0688/#no-special-meaning-for-bytes) deprecates this behavior, but this switch is provided to restore the older behavior.
+- **disableBytesTypePromotions** [boolean]: Disables legacy behavior where `bytearray` and `memoryview` are considered subtypes of `bytes`. [PEP 688](https://peps.python.org/pep-0688/#no-special-meaning-for-bytes) deprecates this behavior, but this switch is provided to restore the older behavior.
- **reportGeneralTypeIssues** [boolean or string, optional]: Generate or suppress diagnostics for general type inconsistencies, unsupported operations, argument/parameter mismatches, etc. This covers all of the basic type-checking rules not covered by other rules. It does not include syntax errors.
+- **reportGeneralTypeIssues** [boolean or string, optional]: Generate or suppress diagnostics for general type inconsistencies, unsupported operations, argument/parameter mismatches, etc. This covers all of the basic type-checking rules not covered by other rules. It does not include syntax errors.
- **reportPropertyTypeMismatch** [boolean or string, optional]: Generate or suppress diagnostics for properties where the type of the value passed to the setter is not assignable to the value returned by the getter. Such mismatches violate the intended use of properties, which are meant to act like variables.
+- **reportPropertyTypeMismatch** [boolean or string, optional]: Generate or suppress diagnostics for properties where the type of the value passed to the setter is not assignable to the value returned by the getter. Such mismatches violate the intended use of properties, which are meant to act like variables.
- **reportFunctionMemberAccess** [boolean or string, optional]: Generate or suppress diagnostics for non-standard member accesses for functions.
+- **reportFunctionMemberAccess** [boolean or string, optional]: Generate or suppress diagnostics for non-standard member accesses for functions.
- **reportMissingImports** [boolean or string, optional]: Generate or suppress diagnostics for imports that have no corresponding imported python file or type stub file.
+- **reportMissingImports** [boolean or string, optional]: Generate or suppress diagnostics for imports that have no corresponding imported python file or type stub file.
- **reportMissingModuleSource** [boolean or string, optional]: Generate or suppress diagnostics for imports that have no corresponding source file. This happens when a type stub is found, but the module source file was not found, indicating that the code may fail at runtime when using this execution environment. Type checking will be done using the type stub.
+- **reportMissingModuleSource** [boolean or string, optional]: Generate or suppress diagnostics for imports that have no corresponding source file. This happens when a type stub is found, but the module source file was not found, indicating that the code may fail at runtime when using this execution environment. Type checking will be done using the type stub.
- **reportInvalidTypeForm** [boolean or string, optional]: Generate or suppress diagnostics for type annotations that use invalid type expression forms or are semantically invalid.
+- **reportInvalidTypeForm** [boolean or string, optional]: Generate or suppress diagnostics for type annotations that use invalid type expression forms or are semantically invalid.
- **reportMissingTypeStubs** [boolean or string, optional]: Generate or suppress diagnostics for imports that have no corresponding type stub file (either a typeshed file or a custom type stub). The type checker requires type stubs to do its best job at analysis.
+- **reportMissingTypeStubs** [boolean or string, optional]: Generate or suppress diagnostics for imports that have no corresponding type stub file (either a typeshed file or a custom type stub). The type checker requires type stubs to do its best job at analysis.
- **reportImportCycles** [boolean or string, optional]: Generate or suppress diagnostics for cyclical import chains. These are not errors in Python, but they do slow down type analysis and often hint at architectural layering issues. Generally, they should be avoided.
+- **reportImportCycles** [boolean or string, optional]: Generate or suppress diagnostics for cyclical import chains. These are not errors in Python, but they do slow down type analysis and often hint at architectural layering issues. Generally, they should be avoided.
- **reportUnusedImport** [boolean or string, optional]: Generate or suppress diagnostics for an imported symbol that is not referenced within that file.
+- **reportUnusedImport** [boolean or string, optional]: Generate or suppress diagnostics for an imported symbol that is not referenced within that file.
- **reportUnusedClass** [boolean or string, optional]: Generate or suppress diagnostics for a class with a private name (starting with an underscore) that is not accessed.
+- **reportUnusedClass** [boolean or string, optional]: Generate or suppress diagnostics for a class with a private name (starting with an underscore) that is not accessed.
- **reportUnusedFunction** [boolean or string, optional]: Generate or suppress diagnostics for a function or method with a private name (starting with an underscore) that is not accessed.
+- **reportUnusedFunction** [boolean or string, optional]: Generate or suppress diagnostics for a function or method with a private name (starting with an underscore) that is not accessed.
- **reportUnusedVariable** [boolean or string, optional]: Generate or suppress diagnostics for a variable that is not accessed.
+- **reportUnusedVariable** [boolean or string, optional]: Generate or suppress diagnostics for a variable that is not accessed.
- **reportDuplicateImport** [boolean or string, optional]: Generate or suppress diagnostics for an imported symbol or module that is imported more than once.
+- **reportDuplicateImport** [boolean or string, optional]: Generate or suppress diagnostics for an imported symbol or module that is imported more than once.
- **reportWildcardImportFromLibrary** [boolean or string, optional]: Generate or suppress diagnostics for a wildcard import from an external library. The use of this language feature is highly discouraged and can result in bugs when the library is updated.
+- **reportWildcardImportFromLibrary** [boolean or string, optional]: Generate or suppress diagnostics for a wildcard import from an external library. The use of this language feature is highly discouraged and can result in bugs when the library is updated.
- **reportAbstractUsage** [boolean or string, optional]: Generate or suppress diagnostics for the attempted instantiate an abstract or protocol class or use of an abstract method.
+- **reportAbstractUsage** [boolean or string, optional]: Generate or suppress diagnostics for the attempted instantiate an abstract or protocol class or use of an abstract method.
- **reportArgumentType** [boolean or string, optional]: Generate or suppress diagnostics for argument type incompatibilities when evaluating a call expression.
+- **reportArgumentType** [boolean or string, optional]: Generate or suppress diagnostics for argument type incompatibilities when evaluating a call expression.
- **reportAssertTypeFailure** [boolean or string, optional]: Generate or suppress diagnostics for a type mismatch detected by the `typing.assert_type` call.
+- **reportAssertTypeFailure** [boolean or string, optional]: Generate or suppress diagnostics for a type mismatch detected by the `typing.assert_type` call.
- **reportAssignmentType** [boolean or string, optional]: Generate or suppress diagnostics for assignment type incompatibility.
+- **reportAssignmentType** [boolean or string, optional]: Generate or suppress diagnostics for assignment type incompatibility.
- **reportAttributeAccessIssue** [boolean or string, optional]: Generate or suppress diagnostics related to attribute accesses.
+- **reportAttributeAccessIssue** [boolean or string, optional]: Generate or suppress diagnostics related to attribute accesses.
- **reportCallIssue** [boolean or string, optional]: Generate or suppress diagnostics related to call expressions and arguments passed to a call target.
+- **reportCallIssue** [boolean or string, optional]: Generate or suppress diagnostics related to call expressions and arguments passed to a call target.
- **reportInconsistentOverload** [boolean or string, optional]: Generate or suppress diagnostics for an overloaded function that has overload signatures that are inconsistent with each other or with the implementation.
+- **reportInconsistentOverload** [boolean or string, optional]: Generate or suppress diagnostics for an overloaded function that has overload signatures that are inconsistent with each other or with the implementation.
- **reportIndexIssue** [boolean or string, optional]: Generate or suppress diagnostics related to index operations and expressions.
+- **reportIndexIssue** [boolean or string, optional]: Generate or suppress diagnostics related to index operations and expressions.
- **reportInvalidTypeArguments** [boolean or string, optional]: Generate or suppress diagnostics for invalid type argument usage.
+- **reportInvalidTypeArguments** [boolean or string, optional]: Generate or suppress diagnostics for invalid type argument usage.
- **reportNoOverloadImplementation** [boolean or string, optional]: Generate or suppress diagnostics for an overloaded function or method if the implementation is not provided.
+- **reportNoOverloadImplementation** [boolean or string, optional]: Generate or suppress diagnostics for an overloaded function or method if the implementation is not provided.
- **reportOperatorIssue** [boolean or string, optional]: Generate or suppress diagnostics related to the use of unary or binary operators (like `*` or `not`).
+- **reportOperatorIssue** [boolean or string, optional]: Generate or suppress diagnostics related to the use of unary or binary operators (like `*` or `not`).
- **reportOptionalSubscript** [boolean or string, optional]: Generate or suppress diagnostics for an attempt to subscript (index) a variable with an Optional type.
+- **reportOptionalSubscript** [boolean or string, optional]: Generate or suppress diagnostics for an attempt to subscript (index) a variable with an Optional type.
- **reportOptionalMemberAccess** [boolean or string, optional]: Generate or suppress diagnostics for an attempt to access a member of a variable with an Optional type.
+- **reportOptionalMemberAccess** [boolean or string, optional]: Generate or suppress diagnostics for an attempt to access a member of a variable with an Optional type.
- **reportOptionalCall** [boolean or string, optional]: Generate or suppress diagnostics for an attempt to call a variable with an Optional type.
+- **reportOptionalCall** [boolean or string, optional]: Generate or suppress diagnostics for an attempt to call a variable with an Optional type.
- **reportOptionalIterable** [boolean or string, optional]: Generate or suppress diagnostics for an attempt to use an Optional type as an iterable value (e.g. within a `for` statement).
+- **reportOptionalIterable** [boolean or string, optional]: Generate or suppress diagnostics for an attempt to use an Optional type as an iterable value (e.g. within a `for` statement).
- **reportOptionalContextManager** [boolean or string, optional]: Generate or suppress diagnostics for an attempt to use an Optional type as a context manager (as a parameter to a `with` statement).
+- **reportOptionalContextManager** [boolean or string, optional]: Generate or suppress diagnostics for an attempt to use an Optional type as a context manager (as a parameter to a `with` statement).
- **reportOptionalOperand** [boolean or string, optional]: Generate or suppress diagnostics for an attempt to use an Optional type as an operand to a unary operator (like `~` or `not`) or the left-hand operator of a binary operator (like `*`, `==`, `or`).
+- **reportOptionalOperand** [boolean or string, optional]: Generate or suppress diagnostics for an attempt to use an Optional type as an operand to a unary operator (like `~` or `not`) or the left-hand operator of a binary operator (like `*`, `==`, `or`).
- **reportRedeclaration** [boolean or string, optional]: Generate or suppress diagnostics for a symbol that has more than one type declaration.
+- **reportRedeclaration** [boolean or string, optional]: Generate or suppress diagnostics for a symbol that has more than one type declaration.
- **reportReturnType** [boolean or string, optional]: Generate or suppress diagnostics related to function return type compatibility.
+- **reportReturnType** [boolean or string, optional]: Generate or suppress diagnostics related to function return type compatibility.
- **reportTypedDictNotRequiredAccess** [boolean or string, optional]: Generate or suppress diagnostics for an attempt to access a non-required field within a TypedDict without first checking whether it is present.
+- **reportTypedDictNotRequiredAccess** [boolean or string, optional]: Generate or suppress diagnostics for an attempt to access a non-required field within a TypedDict without first checking whether it is present.
- **reportUntypedFunctionDecorator** [boolean or string, optional]: Generate or suppress diagnostics for function decorators that have no type annotations. These obscure the function type, defeating many type analysis features.
+- **reportUntypedFunctionDecorator** [boolean or string, optional]: Generate or suppress diagnostics for function decorators that have no type annotations. These obscure the function type, defeating many type analysis features.
- **reportUntypedClassDecorator** [boolean or string, optional]: Generate or suppress diagnostics for class decorators that have no type annotations. These obscure the class type, defeating many type analysis features.
+- **reportUntypedClassDecorator** [boolean or string, optional]: Generate or suppress diagnostics for class decorators that have no type annotations. These obscure the class type, defeating many type analysis features.
- **reportUntypedBaseClass** [boolean or string, optional]: Generate or suppress diagnostics for base classes whose type cannot be determined statically. These obscure the class type, defeating many type analysis features.
+- **reportUntypedBaseClass** [boolean or string, optional]: Generate or suppress diagnostics for base classes whose type cannot be determined statically. These obscure the class type, defeating many type analysis features.
- **reportUntypedNamedTuple** [boolean or string, optional]: Generate or suppress diagnostics when “namedtuple” is used rather than “NamedTuple”. The former contains no type information, whereas the latter does.
+- **reportUntypedNamedTuple** [boolean or string, optional]: Generate or suppress diagnostics when “namedtuple” is used rather than “NamedTuple”. The former contains no type information, whereas the latter does.
- **reportPrivateUsage** [boolean or string, optional]: Generate or suppress diagnostics for incorrect usage of private or protected variables or functions. Protected class members begin with a single underscore (“_”) and can be accessed only by subclasses. Private class members begin with a double underscore but do not end in a double underscore and can be accessed only within the declaring class. Variables and functions declared outside of a class are considered private if their names start with either a single or double underscore, and they cannot be accessed outside of the declaring module.
+- **reportPrivateUsage** [boolean or string, optional]: Generate or suppress diagnostics for incorrect usage of private or protected variables or functions. Protected class members begin with a single underscore (“_”) and can be accessed only by subclasses. Private class members begin with a double underscore but do not end in a double underscore and can be accessed only within the declaring class. Variables and functions declared outside of a class are considered private if their names start with either a single or double underscore, and they cannot be accessed outside of the declaring module.
- **reportTypeCommentUsage** [boolean or string, optional]: Prior to Python 3.5, the grammar did not support type annotations, so types needed to be specified using “type comments”. Python 3.5 eliminated the need for function type comments, and Python 3.6 eliminated the need for variable type comments. Future versions of Python will likely deprecate all support for type comments. If enabled, this check will flag any type comment usage unless it is required for compatibility with the specified language version.
+- **reportTypeCommentUsage** [boolean or string, optional]: Prior to Python 3.5, the grammar did not support type annotations, so types needed to be specified using “type comments”. Python 3.5 eliminated the need for function type comments, and Python 3.6 eliminated the need for variable type comments. Future versions of Python will likely deprecate all support for type comments. If enabled, this check will flag any type comment usage unless it is required for compatibility with the specified language version.
- **reportPrivateImportUsage** [boolean or string, optional]: Generate or suppress diagnostics for use of a symbol from a third party "py.typed" module that is not meant to be exported from that module.
+- **reportPrivateImportUsage** [boolean or string, optional]: Generate or suppress diagnostics for use of a symbol from a third party "py.typed" module that is not meant to be exported from that module.
- **reportConstantRedefinition** [boolean or string, optional]: Generate or suppress diagnostics for attempts to redefine variables whose names are all-caps with underscores and numerals.
+- **reportConstantRedefinition** [boolean or string, optional]: Generate or suppress diagnostics for attempts to redefine variables whose names are all-caps with underscores and numerals.
- **reportDeprecated** [boolean or string, optional]: Generate or suppress diagnostics for use of a class or function that has been marked as deprecated.
+- **reportDeprecated** [boolean or string, optional]: Generate or suppress diagnostics for use of a class or function that has been marked as deprecated.
- **reportIncompatibleMethodOverride** [boolean or string, optional]: Generate or suppress diagnostics for methods that override a method of the same name in a base class in an incompatible manner (wrong number of parameters, incompatible parameter types, or incompatible return type).
+- **reportIncompatibleMethodOverride** [boolean or string, optional]: Generate or suppress diagnostics for methods that override a method of the same name in a base class in an incompatible manner (wrong number of parameters, incompatible parameter types, or incompatible return type).
- **reportIncompatibleVariableOverride** [boolean or string, optional]: Generate or suppress diagnostics for class variable declarations that override a symbol of the same name in a base class with a type that is incompatible with the base class symbol type.
+- **reportIncompatibleVariableOverride** [boolean or string, optional]: Generate or suppress diagnostics for class variable declarations that override a symbol of the same name in a base class with a type that is incompatible with the base class symbol type.
- **reportInconsistentConstructor** [boolean or string, optional]: Generate or suppress diagnostics when an `__init__` method signature is inconsistent with a `__new__` signature.
+- **reportInconsistentConstructor** [boolean or string, optional]: Generate or suppress diagnostics when an `__init__` method signature is inconsistent with a `__new__` signature.
- **reportOverlappingOverload** [boolean or string, optional]: Generate or suppress diagnostics for function overloads that overlap in signature and obscure each other or have incompatible return types.
+- **reportOverlappingOverload** [boolean or string, optional]: Generate or suppress diagnostics for function overloads that overlap in signature and obscure each other or have incompatible return types.
- **reportPossiblyUnboundVariable** [boolean or string, optional]: Generate or suppress diagnostics for variables that are possibly unbound on some code paths.
+- **reportPossiblyUnboundVariable** [boolean or string, optional]: Generate or suppress diagnostics for variables that are possibly unbound on some code paths.
- **reportMissingSuperCall** [boolean or string, optional]: Generate or suppress diagnostics for `__init__`, `__init_subclass__`, `__enter__` and `__exit__` methods in a subclass that fail to call through to the same-named method on a base class.
+- **reportMissingSuperCall** [boolean or string, optional]: Generate or suppress diagnostics for `__init__`, `__init_subclass__`, `__enter__` and `__exit__` methods in a subclass that fail to call through to the same-named method on a base class.
- **reportUninitializedInstanceVariable** [boolean or string, optional]: Generate or suppress diagnostics for instance variables within a class that are not initialized or declared within the class body or the `__init__` method.
+- **reportUninitializedInstanceVariable** [boolean or string, optional]: Generate or suppress diagnostics for instance variables within a class that are not initialized or declared within the class body or the `__init__` method.
- **reportInvalidStringEscapeSequence** [boolean or string, optional]: Generate or suppress diagnostics for invalid escape sequences used within string literals. The Python specification indicates that such sequences will generate a syntax error in future versions.
+- **reportInvalidStringEscapeSequence** [boolean or string, optional]: Generate or suppress diagnostics for invalid escape sequences used within string literals. The Python specification indicates that such sequences will generate a syntax error in future versions.
- **reportUnknownParameterType** [boolean or string, optional]: Generate or suppress diagnostics for input or return parameters for functions or methods that have an unknown type.
+- **reportUnknownParameterType** [boolean or string, optional]: Generate or suppress diagnostics for input or return parameters for functions or methods that have an unknown type.
- **reportUnknownArgumentType** [boolean or string, optional]: Generate or suppress diagnostics for call arguments for functions or methods that have an unknown type.
+- **reportUnknownArgumentType** [boolean or string, optional]: Generate or suppress diagnostics for call arguments for functions or methods that have an unknown type.
- **reportUnknownLambdaType** [boolean or string, optional]: Generate or suppress diagnostics for input or return parameters for lambdas that have an unknown type.
+- **reportUnknownLambdaType** [boolean or string, optional]: Generate or suppress diagnostics for input or return parameters for lambdas that have an unknown type.
- **reportUnknownVariableType** [boolean or string, optional]: Generate or suppress diagnostics for variables that have an unknown type.
+- **reportUnknownVariableType** [boolean or string, optional]: Generate or suppress diagnostics for variables that have an unknown type.
- **reportUnknownMemberType** [boolean or string, optional]: Generate or suppress diagnostics for class or instance variables that have an unknown type.
+- **reportUnknownMemberType** [boolean or string, optional]: Generate or suppress diagnostics for class or instance variables that have an unknown type.
- **reportMissingParameterType** [boolean or string, optional]: Generate or suppress diagnostics for input parameters for functions or methods that are missing a type annotation. The `self` and `cls` parameters used within methods are exempt from this check.
+- **reportMissingParameterType** [boolean or string, optional]: Generate or suppress diagnostics for input parameters for functions or methods that are missing a type annotation. The `self` and `cls` parameters used within methods are exempt from this check.
- **reportMissingTypeArgument** [boolean or string, optional]: Generate or suppress diagnostics when a generic class is used without providing explicit or implicit type arguments.
+- **reportMissingTypeArgument** [boolean or string, optional]: Generate or suppress diagnostics when a generic class is used without providing explicit or implicit type arguments.
- **reportInvalidTypeVarUse** [boolean or string, optional]: Generate or suppress diagnostics when a TypeVar is used inappropriately (e.g. if a TypeVar appears only once) within a generic function signature.
+- **reportInvalidTypeVarUse** [boolean or string, optional]: Generate or suppress diagnostics when a TypeVar is used inappropriately (e.g. if a TypeVar appears only once) within a generic function signature.
- **reportCallInDefaultInitializer** [boolean or string, optional]: Generate or suppress diagnostics for function calls, list expressions, set expressions, or dictionary expressions within a default value initialization expression. Such calls can mask expensive operations that are performed at module initialization time.
+- **reportCallInDefaultInitializer** [boolean or string, optional]: Generate or suppress diagnostics for function calls, list expressions, set expressions, or dictionary expressions within a default value initialization expression. Such calls can mask expensive operations that are performed at module initialization time.
- **reportUnnecessaryIsInstance** [boolean or string, optional]: Generate or suppress diagnostics for `isinstance` or `issubclass` calls where the result is statically determined to be always true. Such calls are often indicative of a programming error.
+- **reportUnnecessaryIsInstance** [boolean or string, optional]: Generate or suppress diagnostics for `isinstance` or `issubclass` calls where the result is statically determined to be always true. Such calls are often indicative of a programming error.
- **reportUnnecessaryCast** [boolean or string, optional]: Generate or suppress diagnostics for `cast` calls that are statically determined to be unnecessary. Such calls are sometimes indicative of a programming error.
+- **reportUnnecessaryCast** [boolean or string, optional]: Generate or suppress diagnostics for `cast` calls that are statically determined to be unnecessary. Such calls are sometimes indicative of a programming error.
- **reportUnnecessaryComparison** [boolean or string, optional]: Generate or suppress diagnostics for `==` or `!=` comparisons or other conditional expressions that are statically determined to always evaluate to False or True. Such comparisons are sometimes indicative of a programming error.
+- **reportUnnecessaryComparison** [boolean or string, optional]: Generate or suppress diagnostics for `==` or `!=` comparisons or other conditional expressions that are statically determined to always evaluate to False or True. Such comparisons are sometimes indicative of a programming error.
- **reportUnnecessaryContains** [boolean or string, optional]: Generate or suppress diagnostics for `in` operations that are statically determined to always evaluate to False or True. Such operations are sometimes indicative of a programming error.
+- **reportUnnecessaryContains** [boolean or string, optional]: Generate or suppress diagnostics for `in` operations that are statically determined to always evaluate to False or True. Such operations are sometimes indicative of a programming error.
- **reportAssertAlwaysTrue** [boolean or string, optional]: Generate or suppress diagnostics for `assert` statement that will provably always assert. This can be indicative of a programming error.
+- **reportAssertAlwaysTrue** [boolean or string, optional]: Generate or suppress diagnostics for `assert` statement that will provably always assert. This can be indicative of a programming error.
- **reportSelfClsParameterName** [boolean or string, optional]: Generate or suppress diagnostics for a missing or misnamed “self” parameter in instance methods and “cls” parameter in class methods. Instance methods in metaclasses (classes that derive from “type”) are allowed to use “cls” for instance methods.
+- **reportSelfClsParameterName** [boolean or string, optional]: Generate or suppress diagnostics for a missing or misnamed “self” parameter in instance methods and “cls” parameter in class methods. Instance methods in metaclasses (classes that derive from “type”) are allowed to use “cls” for instance methods.
- **reportImplicitStringConcatenation** [boolean or string, optional]: Generate or suppress diagnostics for two or more string literals that follow each other, indicating an implicit concatenation. This is considered a bad practice and often masks bugs such as missing commas.
+- **reportImplicitStringConcatenation** [boolean or string, optional]: Generate or suppress diagnostics for two or more string literals that follow each other, indicating an implicit concatenation. This is considered a bad practice and often masks bugs such as missing commas.
- **reportUndefinedVariable** [boolean or string, optional]: Generate or suppress diagnostics for undefined variables.
+- **reportUndefinedVariable** [boolean or string, optional]: Generate or suppress diagnostics for undefined variables.
- **reportUnboundVariable** [boolean or string, optional]: Generate or suppress diagnostics for unbound variables.
+- **reportUnboundVariable** [boolean or string, optional]: Generate or suppress diagnostics for unbound variables.
- **reportUnhashable** [boolean or string, optional]: Generate or suppress diagnostics for the use of an unhashable object in a container that requires hashability.
+- **reportUnhashable** [boolean or string, optional]: Generate or suppress diagnostics for the use of an unhashable object in a container that requires hashability.
- **reportInvalidStubStatement** [boolean or string, optional]: Generate or suppress diagnostics for statements that are syntactically correct but have no purpose within a type stub file.
+- **reportInvalidStubStatement** [boolean or string, optional]: Generate or suppress diagnostics for statements that are syntactically correct but have no purpose within a type stub file.
- **reportIncompleteStub** [boolean or string, optional]: Generate or suppress diagnostics for a module-level `__getattr__` call in a type stub file, indicating that it is incomplete.
+- **reportIncompleteStub** [boolean or string, optional]: Generate or suppress diagnostics for a module-level `__getattr__` call in a type stub file, indicating that it is incomplete.
- **reportUnsupportedDunderAll** [boolean or string, optional]: Generate or suppress diagnostics for statements that define or manipulate `__all__` in a way that is not allowed by a static type checker, thus rendering the contents of `__all__` to be unknown or incorrect. Also reports names within the `__all__` list that are not present in the module namespace.
+- **reportUnsupportedDunderAll** [boolean or string, optional]: Generate or suppress diagnostics for statements that define or manipulate `__all__` in a way that is not allowed by a static type checker, thus rendering the contents of `__all__` to be unknown or incorrect. Also reports names within the `__all__` list that are not present in the module namespace.
- **reportUnusedCallResult** [boolean or string, optional]: Generate or suppress diagnostics for call statements whose return value is not used in any way and is not None.
+- **reportUnusedCallResult** [boolean or string, optional]: Generate or suppress diagnostics for call statements whose return value is not used in any way and is not None.
- **reportUnusedCoroutine** [boolean or string, optional]: Generate or suppress diagnostics for call statements whose return value is not used in any way and is a Coroutine. This identifies a common error where an `await` keyword is mistakenly omitted.
+- **reportUnusedCoroutine** [boolean or string, optional]: Generate or suppress diagnostics for call statements whose return value is not used in any way and is a Coroutine. This identifies a common error where an `await` keyword is mistakenly omitted.
- **reportUnusedExcept** [boolean or string, optional]: Generate or suppress diagnostics for an `except` clause that will never be reached.
+- **reportUnusedExcept** [boolean or string, optional]: Generate or suppress diagnostics for an `except` clause that will never be reached.
- **reportUnusedExpression** [boolean or string, optional]: Generate or suppress diagnostics for simple expressions whose results are not used in any way.
+- **reportUnusedExpression** [boolean or string, optional]: Generate or suppress diagnostics for simple expressions whose results are not used in any way.
- **reportUnnecessaryTypeIgnoreComment** [boolean or string, optional]: Generate or suppress diagnostics for a `# type: ignore` or `# pyright: ignore` comment that would have no effect if removed.
+- **reportUnnecessaryTypeIgnoreComment** [boolean or string, optional]: Generate or suppress diagnostics for a `# type: ignore` or `# pyright: ignore` comment that would have no effect if removed.
- **reportMatchNotExhaustive** [boolean or string, optional]: Generate or suppress diagnostics for a `match` statement that does not provide cases that exhaustively match against all potential types of the target expression.
+- **reportMatchNotExhaustive** [boolean or string, optional]: Generate or suppress diagnostics for a `match` statement that does not provide cases that exhaustively match against all potential types of the target expression.
- **reportImplicitOverride** [boolean or string, optional]: Generate or suppress diagnostics for overridden methods in a class that are missing an explicit `@override` decorator.
+- **reportImplicitOverride** [boolean or string, optional]: Generate or suppress diagnostics for overridden methods in a class that are missing an explicit `@override` decorator.
- **reportShadowedImports** [boolean or string, optional]: Generate or suppress diagnostics for files that are overriding a module in the stdlib.
+- **reportShadowedImports** [boolean or string, optional]: Generate or suppress diagnostics for files that are overriding a module in the stdlib.
## Based options
the following additional options are not available in regular pyright:
- **reportUnreachable** [boolean or string, optional]: Generate or suppress diagnostics for unreachable code.
+- **reportUnreachable** [boolean or string, optional]: Generate or suppress diagnostics for unreachable code.
- **reportAny** [boolean or string, optional]: Ban all usages of the `Any` type. this accounts for all scenarios not covered by the `reportUnknown*` rules (since "Unknown" isn't a real type, but a distinction pyright makes to disallow the `Any` type only in certain circumstances).
+- **reportAny** [boolean or string, optional]: Ban all usages of the `Any` type. this accounts for all scenarios not covered by the `reportUnknown*` rules (since "Unknown" isn't a real type, but a distinction pyright makes to disallow the `Any` type only in certain circumstances).
- **reportIgnoreCommentWithoutRule** [boolean or string, optional]: Enforce that all `# type:ignore`/`# pyright:ignore` comments specify a rule in brackets (eg. `# pyright:ignore[reportAny]`)
+- **reportIgnoreCommentWithoutRule** [boolean or string, optional]: Enforce that all `# type:ignore`/`# pyright:ignore` comments specify a rule in brackets (eg. `# pyright:ignore[reportAny]`)
- **reportAllPrivateImportUsage** [boolean or string, optional]: Generate or suppress diagnostics for use of a symbol from a local module that is not meant to be exported from that module. Like `reportPrivateImportUsage` but also checks imports from your own code.
+- **reportAllPrivateImportUsage** [boolean or string, optional]: Generate or suppress diagnostics for use of a symbol from a local module that is not meant to be exported from that module. Like `reportPrivateImportUsage` but also checks imports from your own code.
## Execution Environment Options
Pyright allows multiple “execution environments” to be defined for different portions of your source tree. For example, a subtree may be designed to run with different import search paths or a different version of the python interpreter than the rest of the source base.
The following settings can be specified for each execution environment.
-**root** [string, required]: Root path for the code that will execute within this execution environment.
+- **root** [string, required]: Root path for the code that will execute within this execution environment.
-**extraPaths** [array of strings, optional]: Additional search paths (in addition to the root path) that will be used when searching for modules imported by files within this execution environment. If specified, this overrides the default extraPaths setting when resolving imports for files within this execution environment. Note that each file’s execution environment mapping is independent, so if file A is in one execution environment and imports a second file B within a second execution environment, any imports from B will use the extraPaths in the second execution environment.
+- **extraPaths** [array of strings, optional]: Additional search paths (in addition to the root path) that will be used when searching for modules imported by files within this execution environment. If specified, this overrides the default extraPaths setting when resolving imports for files within this execution environment. Note that each file’s execution environment mapping is independent, so if file A is in one execution environment and imports a second file B within a second execution environment, any imports from B will use the extraPaths in the second execution environment.
-**pythonVersion** [string, optional]: The version of Python used for this execution environment. If not specified, the global `pythonVersion` setting is used instead.
+- **pythonVersion** [string, optional]: The version of Python used for this execution environment. If not specified, the global `pythonVersion` setting is used instead.
-**pythonPlatform** [string, optional]: Specifies the target platform that will be used for this execution environment. If not specified, the global `pythonPlatform` setting is used instead.
+- **pythonPlatform** [string, optional]: Specifies the target platform that will be used for this execution environment. If not specified, the global `pythonPlatform` setting is used instead.
## Sample Config File
@@ -346,102 +346,102 @@ Each diagnostic setting has a default that is dictated by the specified type che
The following table lists the default severity levels for each diagnostic rule within each type checking mode (`"off"`, `"basic"`, `"standard"`, `"strict"` and `"all"`).
-| Diagnostic Rule | Off | Basic | Standard | Strict | All |
-| :---------------------------------------- | :--------- | :--------- | :--------- | :--------- | :--------- |
-| analyzeUnannotatedFunctions | true | true | true | true | true |
-| strictParameterNoneValue | false | true | true | true | true |
-| enableTypeIgnoreComments | true | true | true | true | true |
-| disableBytesTypePromotions | false | false | false | true | true |
-| strictListInference | false | false | false | true | true |
-| strictDictionaryInference | false | false | false | true | true |
-| strictSetInference | false | false | false | true | true |
-| deprecateTypingAliases | false | false | false | false | true |
-| enableExperimentalFeatures | false | false | false | false | true |
-| reportMissingModuleSource | "none" | "warning" | "warning" | "warning" | "error" |
-| reportInvalidTypeForm | "none" | "error" | "error" | "error" | "error" |
-| reportMissingImports | "none" | "error" | "error" | "error" | "error" |
-| reportUndefinedVariable | "none" | "error" | "error" | "error" | "error" |
-| reportAssertAlwaysTrue | "none" | "warning" | "warning" | "error" | "error" |
-| reportInvalidStringEscapeSequence | "none" | "warning" | "warning" | "error" | "error" |
-| reportInvalidTypeVarUse | "none" | "warning" | "warning" | "error" | "error" |
-| reportMissingTypeStubs | "none" | "warning" | "warning" | "error" | "error" |
-| reportSelfClsParameterName | "none" | "warning" | "warning" | "error" | "error" |
-| reportUnsupportedDunderAll | "none" | "warning" | "warning" | "error" | "error" |
-| reportUnusedExpression | "none" | "warning" | "warning" | "error" | "error" |
-| reportWildcardImportFromLibrary | "none" | "warning" | "warning" | "error" | "error" |
-| reportAbstractUsage | "none" | "error" | "error" | "error" | "error" |
-| reportArgumentType | "none" | "error" | "error" | "error" | "error" |
-| reportAssertTypeFailure | "none" | "error" | "error" | "error" | "error" |
-| reportAssignmentType | "none" | "error" | "error" | "error" | "error" |
-| reportAttributeAccessIssue | "none" | "error" | "error" | "error" | "error" |
-| reportCallIssue | "none" | "error" | "error" | "error" | "error" |
-| reportGeneralTypeIssues | "none" | "error" | "error" | "error" | "error" |
-| reportInconsistentOverload | "none" | "error" | "error" | "error" | "error" |
-| reportIndexIssue | "none" | "error" | "error" | "error" | "error" |
-| reportInvalidTypeArguments | "none" | "error" | "error" | "error" | "error" |
-| reportNoOverloadImplementation | "none" | "error" | "error" | "error" | "error" |
-| reportOperatorIssue | "none" | "error" | "error" | "error" | "error" |
-| reportOptionalSubscript | "none" | "error" | "error" | "error" | "error" |
-| reportOptionalMemberAccess | "none" | "error" | "error" | "error" | "error" |
-| reportOptionalCall | "none" | "error" | "error" | "error" | "error" |
-| reportOptionalIterable | "none" | "error" | "error" | "error" | "error" |
-| reportOptionalContextManager | "none" | "error" | "error" | "error" | "error" |
-| reportOptionalOperand | "none" | "error" | "error" | "error" | "error" |
-| reportRedeclaration | "none" | "error" | "error" | "error" | "error" |
-| reportReturnType | "none" | "error" | "error" | "error" | "error" |
-| reportTypedDictNotRequiredAccess | "none" | "error" | "error" | "error" | "error" |
-| reportPrivateImportUsage | "none" | "error" | "error" | "error" | "error" |
-| reportUnboundVariable | "none" | "error" | "error" | "error" | "error" |
-| reportUnhashable | "none" | "error" | "error" | "error" | "error" |
-| reportUnusedCoroutine | "none" | "error" | "error" | "error" | "error" |
-| reportUnusedExcept | "none" | "error" | "error" | "error" | "error" |
-| reportFunctionMemberAccess | "none" | "none" | "error" | "error" | "error" |
-| reportIncompatibleMethodOverride | "none" | "none" | "error" | "error" | "error" |
-| reportIncompatibleVariableOverride | "none" | "none" | "error" | "error" | "error" |
-| reportOverlappingOverload | "none" | "none" | "error" | "error" | "error" |
-| reportPossiblyUnboundVariable | "none" | "none" | "error" | "error" | "error" |
-| reportConstantRedefinition | "none" | "none" | "none" | "error" | "error" |
-| reportDeprecated | "none" | "none" | "none" | "error" | "error" |
-| reportDuplicateImport | "none" | "none" | "none" | "error" | "error" |
-| reportIncompleteStub | "none" | "none" | "none" | "error" | "error" |
-| reportInconsistentConstructor | "none" | "none" | "none" | "error" | "error" |
-| reportInvalidStubStatement | "none" | "none" | "none" | "error" | "error" |
-| reportMatchNotExhaustive | "none" | "none" | "none" | "error" | "error" |
-| reportMissingParameterType | "none" | "none" | "none" | "error" | "error" |
-| reportMissingTypeArgument | "none" | "none" | "none" | "error" | "error" |
-| reportPrivateUsage | "none" | "none" | "none" | "error" | "error" |
-| reportTypeCommentUsage | "none" | "none" | "none" | "error" | "error" |
-| reportUnknownArgumentType | "none" | "none" | "none" | "error" | "error" |
-| reportUnknownLambdaType | "none" | "none" | "none" | "error" | "error" |
-| reportUnknownMemberType | "none" | "none" | "none" | "error" | "error" |
-| reportUnknownParameterType | "none" | "none" | "none" | "error" | "error" |
-| reportUnknownVariableType | "none" | "none" | "none" | "error" | "error" |
-| reportUnnecessaryCast | "none" | "none" | "none" | "error" | "error" |
-| reportUnnecessaryComparison | "none" | "none" | "none" | "error" | "error" |
-| reportUnnecessaryContains | "none" | "none" | "none" | "error" | "error" |
-| reportUnnecessaryIsInstance | "none" | "none" | "none" | "error" | "error" |
-| reportUnusedClass | "none" | "none" | "none" | "error" | "error" |
-| reportUnusedImport | "none" | "none" | "none" | "error" | "error" |
-| reportUnusedFunction | "none" | "none" | "none" | "error" | "error" |
-| reportUnusedVariable | "none" | "none" | "none" | "error" | "error" |
-| reportUntypedBaseClass | "none" | "none" | "none" | "error" | "error" |
-| reportUntypedClassDecorator | "none" | "none" | "none" | "error" | "error" |
-| reportUntypedFunctionDecorator | "none" | "none" | "none" | "error" | "error" |
-| reportUntypedNamedTuple | "none" | "none" | "none" | "error" | "error" |
-| reportCallInDefaultInitializer | "none" | "none" | "none" | "none" | "error" |
-| reportImplicitOverride | "none" | "none" | "none" | "none" | "error" |
-| reportImplicitStringConcatenation | "none" | "none" | "none" | "none" | "error" |
-| reportImportCycles | "none" | "none" | "none" | "none" | "error" |
-| reportMissingSuperCall | "none" | "none" | "none" | "none" | "error" |
-| reportPropertyTypeMismatch | "none" | "none" | "none" | "none" | "error" |
-| reportShadowedImports | "none" | "none" | "none" | "none" | "error" |
-| reportUninitializedInstanceVariable | "none" | "none" | "none" | "none" | "error" |
-| reportUnnecessaryTypeIgnoreComment | "none" | "none" | "none" | "none" | "error" |
-| reportUnusedCallResult | "none" | "none" | "none" | "none" | "error" |
-| reportUnreachable | "none" | "none" | "none" | "none" | "error" |
-| reportAny | "none" | "none" | "none" | "none" | "error" |
-| reportIgnoreCommentWithoutRule | "none" | "none" | "none" | "none" | "error" |
-| reportPrivateLocalImportUsage | "none" | "none" | "none" | "none" | "error" |
+| Diagnostic Rule | Off | Basic | Standard | Strict | All |
+|:-------------------------------------------| :--------- | :--------- | :--------- | :--------- | :--------- |
+| analyzeUnannotatedFunctions | true | true | true | true | true |
+| strictParameterNoneValue | false | true | true | true | true |
+| enableTypeIgnoreComments | true | true | true | true | true |
+| disableBytesTypePromotions | false | false | false | true | true |
+| strictListInference | false | false | false | true | true |
+| strictDictionaryInference | false | false | false | true | true |
+| strictSetInference | false | false | false | true | true |
+| deprecateTypingAliases | false | false | false | false | true |
+| enableExperimentalFeatures | false | false | false | false | true |
+| reportMissingModuleSource | "none" | "warning" | "warning" | "warning" | "error" |
+| reportInvalidTypeForm | "none" | "error" | "error" | "error" | "error" |
+| reportMissingImports | "none" | "error" | "error" | "error" | "error" |
+| reportUndefinedVariable | "none" | "error" | "error" | "error" | "error" |
+| reportAssertAlwaysTrue | "none" | "warning" | "warning" | "error" | "error" |
+| reportInvalidStringEscapeSequence | "none" | "warning" | "warning" | "error" | "error" |
+| reportInvalidTypeVarUse | "none" | "warning" | "warning" | "error" | "error" |
+| reportMissingTypeStubs | "none" | "warning" | "warning" | "error" | "error" |
+| reportSelfClsParameterName | "none" | "warning" | "warning" | "error" | "error" |
+| reportUnsupportedDunderAll | "none" | "warning" | "warning" | "error" | "error" |
+| reportUnusedExpression | "none" | "warning" | "warning" | "error" | "error" |
+| reportWildcardImportFromLibrary | "none" | "warning" | "warning" | "error" | "error" |
+| reportAbstractUsage | "none" | "error" | "error" | "error" | "error" |
+| reportArgumentType | "none" | "error" | "error" | "error" | "error" |
+| reportAssertTypeFailure | "none" | "error" | "error" | "error" | "error" |
+| reportAssignmentType | "none" | "error" | "error" | "error" | "error" |
+| reportAttributeAccessIssue | "none" | "error" | "error" | "error" | "error" |
+| reportCallIssue | "none" | "error" | "error" | "error" | "error" |
+| reportGeneralTypeIssues | "none" | "error" | "error" | "error" | "error" |
+| reportInconsistentOverload | "none" | "error" | "error" | "error" | "error" |
+| reportIndexIssue | "none" | "error" | "error" | "error" | "error" |
+| reportInvalidTypeArguments | "none" | "error" | "error" | "error" | "error" |
+| reportNoOverloadImplementation | "none" | "error" | "error" | "error" | "error" |
+| reportOperatorIssue | "none" | "error" | "error" | "error" | "error" |
+| reportOptionalSubscript | "none" | "error" | "error" | "error" | "error" |
+| reportOptionalMemberAccess | "none" | "error" | "error" | "error" | "error" |
+| reportOptionalCall | "none" | "error" | "error" | "error" | "error" |
+| reportOptionalIterable | "none" | "error" | "error" | "error" | "error" |
+| reportOptionalContextManager | "none" | "error" | "error" | "error" | "error" |
+| reportOptionalOperand | "none" | "error" | "error" | "error" | "error" |
+| reportRedeclaration | "none" | "error" | "error" | "error" | "error" |
+| reportReturnType | "none" | "error" | "error" | "error" | "error" |
+| reportTypedDictNotRequiredAccess | "none" | "error" | "error" | "error" | "error" |
+| reportPrivateImportUsage | "none" | "error" | "error" | "error" | "error" |
+| reportUnboundVariable | "none" | "error" | "error" | "error" | "error" |
+| reportUnhashable | "none" | "error" | "error" | "error" | "error" |
+| reportUnusedCoroutine | "none" | "error" | "error" | "error" | "error" |
+| reportUnusedExcept | "none" | "error" | "error" | "error" | "error" |
+| reportFunctionMemberAccess | "none" | "none" | "error" | "error" | "error" |
+| reportIncompatibleMethodOverride | "none" | "none" | "error" | "error" | "error" |
+| reportIncompatibleVariableOverride | "none" | "none" | "error" | "error" | "error" |
+| reportOverlappingOverload | "none" | "none" | "error" | "error" | "error" |
+| reportPossiblyUnboundVariable | "none" | "none" | "error" | "error" | "error" |
+| reportConstantRedefinition | "none" | "none" | "none" | "error" | "error" |
+| reportDeprecated | "none" | "none" | "none" | "error" | "error" |
+| reportDuplicateImport | "none" | "none" | "none" | "error" | "error" |
+| reportIncompleteStub | "none" | "none" | "none" | "error" | "error" |
+| reportInconsistentConstructor | "none" | "none" | "none" | "error" | "error" |
+| reportInvalidStubStatement | "none" | "none" | "none" | "error" | "error" |
+| reportMatchNotExhaustive | "none" | "none" | "none" | "error" | "error" |
+| reportMissingParameterType | "none" | "none" | "none" | "error" | "error" |
+| reportMissingTypeArgument | "none" | "none" | "none" | "error" | "error" |
+| reportPrivateUsage | "none" | "none" | "none" | "error" | "error" |
+| reportTypeCommentUsage | "none" | "none" | "none" | "error" | "error" |
+| reportUnknownArgumentType | "none" | "none" | "none" | "error" | "error" |
+| reportUnknownLambdaType | "none" | "none" | "none" | "error" | "error" |
+| reportUnknownMemberType | "none" | "none" | "none" | "error" | "error" |
+| reportUnknownParameterType | "none" | "none" | "none" | "error" | "error" |
+| reportUnknownVariableType | "none" | "none" | "none" | "error" | "error" |
+| reportUnnecessaryCast | "none" | "none" | "none" | "error" | "error" |
+| reportUnnecessaryComparison | "none" | "none" | "none" | "error" | "error" |
+| reportUnnecessaryContains | "none" | "none" | "none" | "error" | "error" |
+| reportUnnecessaryIsInstance | "none" | "none" | "none" | "error" | "error" |
+| reportUnusedClass | "none" | "none" | "none" | "error" | "error" |
+| reportUnusedImport | "none" | "none" | "none" | "error" | "error" |
+| reportUnusedFunction | "none" | "none" | "none" | "error" | "error" |
+| reportUnusedVariable | "none" | "none" | "none" | "error" | "error" |
+| reportUntypedBaseClass | "none" | "none" | "none" | "error" | "error" |
+| reportUntypedClassDecorator | "none" | "none" | "none" | "error" | "error" |
+| reportUntypedFunctionDecorator | "none" | "none" | "none" | "error" | "error" |
+| reportUntypedNamedTuple | "none" | "none" | "none" | "error" | "error" |
+| reportCallInDefaultInitializer | "none" | "none" | "none" | "none" | "error" |
+| reportImplicitOverride | "none" | "none" | "none" | "none" | "error" |
+| reportImplicitStringConcatenation | "none" | "none" | "none" | "none" | "error" |
+| reportImportCycles | "none" | "none" | "none" | "none" | "error" |
+| reportMissingSuperCall | "none" | "none" | "none" | "none" | "error" |
+| reportPropertyTypeMismatch | "none" | "none" | "none" | "none" | "error" |
+| reportShadowedImports | "none" | "none" | "none" | "none" | "error" |
+| reportUninitializedInstanceVariable | "none" | "none" | "none" | "none" | "error" |
+| reportUnnecessaryTypeIgnoreComment | "none" | "none" | "none" | "none" | "error" |
+| reportUnusedCallResult | "none" | "none" | "none" | "none" | "error" |
+| reportUnreachable | "none" | "none" | "none" | "none" | "error" |
+| reportAny | "none" | "none" | "none" | "none" | "error" |
+| reportIgnoreCommentWithoutRule | "none" | "none" | "none" | "none" | "error" |
+| reportPrivateLocalImportUsage | "none" | "none" | "none" | "none" | "error" |
## Locale Configuration
diff --git a/get_version.py b/get_version.py
index 1dd5b41d25..4616492a23 100644
--- a/get_version.py
+++ b/get_version.py
@@ -2,12 +2,11 @@
from json import loads
from pathlib import Path
-from typing import TypedDict, cast
-
-
-class LernaJson(TypedDict):
- version: str
+from typing import cast
def get_version() -> str:
- return cast(LernaJson, loads((Path(__file__).parent / "lerna.json").read_text()))["version"]
+ return cast(
+ str,
+ loads((Path(__file__).parent / "packages/pyright-internal/src/version.json").read_text()),
+ )
diff --git a/lerna.json b/lerna.json
index 0af7fd6f0d..e094975445 100644
--- a/lerna.json
+++ b/lerna.json
@@ -1,13 +1,13 @@
{
- "packages": [
- "packages/*"
- ],
- "version": "1.7.0",
- "command": {
- "version": {
- "push": false,
- "tagVersionPrefix": "v",
- "message": "basedpyright %s"
+ "packages": [
+ "packages/*"
+ ],
+ "version": "1.1.356",
+ "command": {
+ "version": {
+ "push": false,
+ "tagVersionPrefix": "",
+ "message": "Published %s"
+ }
}
- }
}
diff --git a/packages/pyright-internal/package-lock.json b/packages/pyright-internal/package-lock.json
index 732b792acf..27de8c021e 100644
--- a/packages/pyright-internal/package-lock.json
+++ b/packages/pyright-internal/package-lock.json
@@ -1,12 +1,12 @@
{
"name": "pyright-internal",
- "version": "1.7.0",
+ "version": "1.1.356",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "pyright-internal",
- "version": "1.7.0",
+ "version": "1.1.356",
"license": "MIT",
"dependencies": {
"@iarna/toml": "2.2.5",
diff --git a/packages/pyright-internal/package.json b/packages/pyright-internal/package.json
index 6f73cbf85b..5f00888d0c 100644
--- a/packages/pyright-internal/package.json
+++ b/packages/pyright-internal/package.json
@@ -2,7 +2,7 @@
"name": "pyright-internal",
"displayName": "pyright",
"description": "Type checker for the Python language",
- "version": "1.7.0",
+ "version": "1.1.356",
"license": "MIT",
"private": true,
"files": [
diff --git a/packages/pyright-internal/src/analyzer/checker.ts b/packages/pyright-internal/src/analyzer/checker.ts
index 63a0a743da..21ae77f3bb 100644
--- a/packages/pyright-internal/src/analyzer/checker.ts
+++ b/packages/pyright-internal/src/analyzer/checker.ts
@@ -6243,6 +6243,11 @@ export class Checker extends ParseTreeWalker {
return;
}
+ // If the base class is unknown, don't report a missing decorator.
+ if (isAnyOrUnknown(baseMember.classType)) {
+ return;
+ }
+
const funcNode = overrideFunction.details.declaration.node;
this._evaluator.addDiagnostic(
DiagnosticRule.reportImplicitOverride,
diff --git a/packages/pyright-internal/src/pyright.ts b/packages/pyright-internal/src/pyright.ts
index bc924d2091..e2ff6d4ef3 100644
--- a/packages/pyright-internal/src/pyright.ts
+++ b/packages/pyright-internal/src/pyright.ts
@@ -38,6 +38,7 @@ import { getFileSpec, tryStat } from './common/uri/uriUtils';
import { PyrightFileSystem } from './pyrightFileSystem';
import { Uri } from './common/uri/uri';
import { toolName } from './constants';
+import version from './version.json';
type SeverityLevel = 'error' | 'warning' | 'information';
@@ -545,7 +546,7 @@ function buildTypeCompletenessReport(
minSeverityLevel: SeverityLevel
): PyrightJsonResults {
const report: PyrightJsonResults = {
- version: getVersionString(),
+ version,
time: Date.now().toString(),
generalDiagnostics: [],
summary: {
@@ -796,14 +797,10 @@ function printUsage() {
);
}
-function getVersionString() {
- // eslint-disable-next-line @typescript-eslint/no-var-requires
- const version = require('../package.json').version;
- return version.toString();
-}
-
function printVersion(console: ConsoleInterface) {
- console.info(`${toolName} ${getVersionString()}`);
+ console.info(`${toolName} ${version}`);
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
+ console.info(`based on pyright ${require('../package.json').version}`);
}
function reportDiagnosticsAsJson(
@@ -813,7 +810,7 @@ function reportDiagnosticsAsJson(
timeInSec: number
): DiagnosticResult {
const report: PyrightJsonResults = {
- version: getVersionString(),
+ version,
time: Date.now().toString(),
generalDiagnostics: [],
summary: {
diff --git a/packages/pyright-internal/src/version.json b/packages/pyright-internal/src/version.json
new file mode 100644
index 0000000000..793e79a685
--- /dev/null
+++ b/packages/pyright-internal/src/version.json
@@ -0,0 +1 @@
+"1.7.0"
\ No newline at end of file
diff --git a/packages/pyright/package-lock.json b/packages/pyright/package-lock.json
index b322f9684f..08ad1e9aad 100644
--- a/packages/pyright/package-lock.json
+++ b/packages/pyright/package-lock.json
@@ -1,12 +1,12 @@
{
- "name": "basedpyright",
- "version": "1.7.0",
+ "name": "pyright",
+ "version": "1.1.356",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
- "name": "basedpyright",
- "version": "1.7.0",
+ "name": "pyright",
+ "version": "1.1.356",
"license": "MIT",
"bin": {
"pyright": "index.js",
diff --git a/packages/pyright/package.json b/packages/pyright/package.json
index 3c28444bd3..91b0eebc12 100644
--- a/packages/pyright/package.json
+++ b/packages/pyright/package.json
@@ -2,7 +2,7 @@
"name": "basedpyright",
"displayName": "basedpyright",
"description": "a pyright fork with various type checking improvements, improved vscode support and pylance features built into the language server",
- "version": "1.7.0",
+ "version": "1.1.356",
"license": "MIT",
"author": {
"name": "detachhead"
diff --git a/packages/vscode-pyright/package-lock.json b/packages/vscode-pyright/package-lock.json
index d84369857f..3ca7caa973 100644
--- a/packages/vscode-pyright/package-lock.json
+++ b/packages/vscode-pyright/package-lock.json
@@ -1,15 +1,14 @@
{
"name": "vscode-pyright",
- "version": "1.7.0",
+ "version": "1.1.356",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "vscode-pyright",
- "version": "1.7.0",
+ "version": "1.1.356",
"license": "MIT",
"dependencies": {
- "@vscode/python-extension": "^1.0.5",
"vscode-jsonrpc": "^9.0.0-next.2",
"vscode-languageclient": "^10.0.0-next.2",
"vscode-languageserver": "^10.0.0-next.2",
@@ -21,7 +20,6 @@
"copy-webpack-plugin": "^11.0.0",
"detect-indent": "^6.1.0",
"esbuild-loader": "^3.2.0",
- "ovsx": "^0.8.3",
"shx": "^0.3.4",
"ts-loader": "^9.5.1",
"typescript": "~5.2",
@@ -547,136 +545,6 @@
"integrity": "sha512-VSHV+VnpF8DEm8LNrn8OJ8VuUNcBzN3tMvKrNpbhhfuVjFm82+6v44AbDhLvVFgCzn6vs94EJNTp7w8S6+Q1Rw==",
"dev": true
},
- "node_modules/@vscode/python-extension": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/@vscode/python-extension/-/python-extension-1.0.5.tgz",
- "integrity": "sha512-uYhXUrL/gn92mfqhjAwH2+yGOpjloBxj9ekoL4BhUsKcyJMpEg6WlNf3S3si+5x9zlbHHe7FYQNjZEbz1ymI9Q==",
- "engines": {
- "node": ">=16.17.1",
- "vscode": "^1.78.0"
- }
- },
- "node_modules/@vscode/vsce": {
- "version": "2.24.0",
- "resolved": "https://registry.npmjs.org/@vscode/vsce/-/vsce-2.24.0.tgz",
- "integrity": "sha512-p6CIXpH5HXDqmUkgFXvIKTjZpZxy/uDx4d/UsfhS9vQUun43KDNUbYeZocyAHgqcJlPEurgArHz9te1PPiqPyA==",
- "dev": true,
- "dependencies": {
- "azure-devops-node-api": "^11.0.1",
- "chalk": "^2.4.2",
- "cheerio": "^1.0.0-rc.9",
- "commander": "^6.2.1",
- "glob": "^7.0.6",
- "hosted-git-info": "^4.0.2",
- "jsonc-parser": "^3.2.0",
- "leven": "^3.1.0",
- "markdown-it": "^12.3.2",
- "mime": "^1.3.4",
- "minimatch": "^3.0.3",
- "parse-semver": "^1.1.1",
- "read": "^1.0.7",
- "semver": "^7.5.2",
- "tmp": "^0.2.1",
- "typed-rest-client": "^1.8.4",
- "url-join": "^4.0.1",
- "xml2js": "^0.5.0",
- "yauzl": "^2.3.1",
- "yazl": "^2.2.2"
- },
- "bin": {
- "vsce": "vsce"
- },
- "engines": {
- "node": ">= 14"
- },
- "optionalDependencies": {
- "keytar": "^7.7.0"
- }
- },
- "node_modules/@vscode/vsce/node_modules/ansi-styles": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
- "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
- "dev": true,
- "dependencies": {
- "color-convert": "^1.9.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/@vscode/vsce/node_modules/chalk": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
- "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
- "dev": true,
- "dependencies": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/@vscode/vsce/node_modules/color-convert": {
- "version": "1.9.3",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
- "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
- "dev": true,
- "dependencies": {
- "color-name": "1.1.3"
- }
- },
- "node_modules/@vscode/vsce/node_modules/color-name": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
- "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
- "dev": true
- },
- "node_modules/@vscode/vsce/node_modules/commander": {
- "version": "6.2.1",
- "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz",
- "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==",
- "dev": true,
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/@vscode/vsce/node_modules/has-flag": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
- "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/@vscode/vsce/node_modules/supports-color": {
- "version": "5.5.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
- "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
- "dev": true,
- "dependencies": {
- "has-flag": "^3.0.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/@vscode/vsce/node_modules/xml2js": {
- "version": "0.5.0",
- "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.5.0.tgz",
- "integrity": "sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==",
- "dev": true,
- "dependencies": {
- "sax": ">=0.6.0",
- "xmlbuilder": "~11.0.0"
- },
- "engines": {
- "node": ">=4.0.0"
- }
- },
"node_modules/@webassemblyjs/ast": {
"version": "1.11.6",
"resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.6.tgz",
@@ -1235,12 +1103,6 @@
"node": ">=6.0"
}
},
- "node_modules/ci-info": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz",
- "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==",
- "dev": true
- },
"node_modules/clone-deep": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz",
@@ -1656,15 +1518,6 @@
"node": ">=6"
}
},
- "node_modules/escape-string-regexp": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
- "dev": true,
- "engines": {
- "node": ">=0.8.0"
- }
- },
"node_modules/eslint-scope": {
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz",
@@ -1805,26 +1658,6 @@
"node": ">=8"
}
},
- "node_modules/follow-redirects": {
- "version": "1.15.6",
- "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz",
- "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==",
- "dev": true,
- "funding": [
- {
- "type": "individual",
- "url": "https://github.com/sponsors/RubenVerborgh"
- }
- ],
- "engines": {
- "node": ">=4.0"
- },
- "peerDependenciesMeta": {
- "debug": {
- "optional": true
- }
- }
- },
"node_modules/fs-constants": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
@@ -1965,18 +1798,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/hosted-git-info": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz",
- "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==",
- "dev": true,
- "dependencies": {
- "lru-cache": "^6.0.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
"node_modules/htmlparser2": {
"version": "8.0.2",
"resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz",
@@ -2075,18 +1896,6 @@
"node": ">= 0.10"
}
},
- "node_modules/is-ci": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz",
- "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==",
- "dev": true,
- "dependencies": {
- "ci-info": "^2.0.0"
- },
- "bin": {
- "is-ci": "bin.js"
- }
- },
"node_modules/is-core-module": {
"version": "2.12.0",
"resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.0.tgz",
@@ -2197,12 +2006,6 @@
"node": ">=6"
}
},
- "node_modules/jsonc-parser": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.1.tgz",
- "integrity": "sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==",
- "dev": true
- },
"node_modules/keytar": {
"version": "7.9.0",
"resolved": "https://registry.npmjs.org/keytar/-/keytar-7.9.0.tgz",
@@ -2270,17 +2073,6 @@
"node": ">=8.9.0"
}
},
- "node_modules/lru-cache": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
- "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
- "dependencies": {
- "yallist": "^4.0.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
"node_modules/markdown-it": {
"version": "12.3.2",
"resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-12.3.2.tgz",
@@ -2475,36 +2267,6 @@
"wrappy": "1"
}
},
- "node_modules/ovsx": {
- "version": "0.8.4",
- "resolved": "https://registry.npmjs.org/ovsx/-/ovsx-0.8.4.tgz",
- "integrity": "sha512-RMtGSVNM4NWSF9uVWCUqaYiA7ID8Vqm/rSk2W37eYVrDLOI/3do2IRY7rQYkvJqb6sS6LAnALODBkD50tIM1kw==",
- "dev": true,
- "dependencies": {
- "@vscode/vsce": "^2.19.0",
- "commander": "^6.1.0",
- "follow-redirects": "^1.14.6",
- "is-ci": "^2.0.0",
- "leven": "^3.1.0",
- "semver": "^7.5.2",
- "tmp": "^0.2.1"
- },
- "bin": {
- "ovsx": "lib/ovsx"
- },
- "engines": {
- "node": ">= 14"
- }
- },
- "node_modules/ovsx/node_modules/commander": {
- "version": "6.2.1",
- "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz",
- "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==",
- "dev": true,
- "engines": {
- "node": ">= 6"
- }
- },
"node_modules/p-try": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
@@ -2904,6 +2666,21 @@
"node": ">=0.10.0"
}
},
+ "node_modules/rimraf": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
+ "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
+ "dev": true,
+ "dependencies": {
+ "glob": "^7.1.3"
+ },
+ "bin": {
+ "rimraf": "bin.js"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
"node_modules/run-parallel": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
@@ -3020,6 +2797,17 @@
"node": ">=10"
}
},
+ "node_modules/semver/node_modules/lru-cache": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
"node_modules/serialize-javascript": {
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz",
@@ -3331,15 +3119,6 @@
"integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
"dev": true
},
- "node_modules/tmp": {
- "version": "0.2.3",
- "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz",
- "integrity": "sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==",
- "dev": true,
- "engines": {
- "node": ">=14.14"
- }
- },
"node_modules/to-regex-range": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
@@ -3574,6 +3353,15 @@
"node": ">= 6"
}
},
+ "node_modules/vsce/node_modules/escape-string-regexp": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
"node_modules/vsce/node_modules/has-flag": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
@@ -3583,6 +3371,30 @@
"node": ">=4"
}
},
+ "node_modules/vsce/node_modules/hosted-git-info": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz",
+ "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==",
+ "dev": true,
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/vsce/node_modules/lru-cache": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "dev": true,
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
"node_modules/vsce/node_modules/semver": {
"version": "5.7.2",
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
@@ -3604,6 +3416,18 @@
"node": ">=4"
}
},
+ "node_modules/vsce/node_modules/tmp": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz",
+ "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==",
+ "dev": true,
+ "dependencies": {
+ "rimraf": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8.17.0"
+ }
+ },
"node_modules/vscode-jsonrpc": {
"version": "9.0.0-next.2",
"resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-9.0.0-next.2.tgz",
@@ -4209,108 +4033,6 @@
"integrity": "sha512-VSHV+VnpF8DEm8LNrn8OJ8VuUNcBzN3tMvKrNpbhhfuVjFm82+6v44AbDhLvVFgCzn6vs94EJNTp7w8S6+Q1Rw==",
"dev": true
},
- "@vscode/python-extension": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/@vscode/python-extension/-/python-extension-1.0.5.tgz",
- "integrity": "sha512-uYhXUrL/gn92mfqhjAwH2+yGOpjloBxj9ekoL4BhUsKcyJMpEg6WlNf3S3si+5x9zlbHHe7FYQNjZEbz1ymI9Q=="
- },
- "@vscode/vsce": {
- "version": "2.24.0",
- "resolved": "https://registry.npmjs.org/@vscode/vsce/-/vsce-2.24.0.tgz",
- "integrity": "sha512-p6CIXpH5HXDqmUkgFXvIKTjZpZxy/uDx4d/UsfhS9vQUun43KDNUbYeZocyAHgqcJlPEurgArHz9te1PPiqPyA==",
- "dev": true,
- "requires": {
- "azure-devops-node-api": "^11.0.1",
- "chalk": "^2.4.2",
- "cheerio": "^1.0.0-rc.9",
- "commander": "^6.2.1",
- "glob": "^7.0.6",
- "hosted-git-info": "^4.0.2",
- "jsonc-parser": "^3.2.0",
- "keytar": "^7.7.0",
- "leven": "^3.1.0",
- "markdown-it": "^12.3.2",
- "mime": "^1.3.4",
- "minimatch": "^3.0.3",
- "parse-semver": "^1.1.1",
- "read": "^1.0.7",
- "semver": "^7.5.2",
- "tmp": "^0.2.1",
- "typed-rest-client": "^1.8.4",
- "url-join": "^4.0.1",
- "xml2js": "^0.5.0",
- "yauzl": "^2.3.1",
- "yazl": "^2.2.2"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
- "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
- "dev": true,
- "requires": {
- "color-convert": "^1.9.0"
- }
- },
- "chalk": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
- "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
- "dev": true,
- "requires": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
- }
- },
- "color-convert": {
- "version": "1.9.3",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
- "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
- "dev": true,
- "requires": {
- "color-name": "1.1.3"
- }
- },
- "color-name": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
- "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
- "dev": true
- },
- "commander": {
- "version": "6.2.1",
- "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz",
- "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==",
- "dev": true
- },
- "has-flag": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
- "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
- "dev": true
- },
- "supports-color": {
- "version": "5.5.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
- "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
- "dev": true,
- "requires": {
- "has-flag": "^3.0.0"
- }
- },
- "xml2js": {
- "version": "0.5.0",
- "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.5.0.tgz",
- "integrity": "sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==",
- "dev": true,
- "requires": {
- "sax": ">=0.6.0",
- "xmlbuilder": "~11.0.0"
- }
- }
- }
- },
"@webassemblyjs/ast": {
"version": "1.11.6",
"resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.6.tgz",
@@ -4724,12 +4446,6 @@
"integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==",
"dev": true
},
- "ci-info": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz",
- "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==",
- "dev": true
- },
"clone-deep": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz",
@@ -5029,12 +4745,6 @@
"integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==",
"dev": true
},
- "escape-string-regexp": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
- "dev": true
- },
"eslint-scope": {
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz",
@@ -5149,12 +4859,6 @@
"to-regex-range": "^5.0.1"
}
},
- "follow-redirects": {
- "version": "1.15.6",
- "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz",
- "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==",
- "dev": true
- },
"fs-constants": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
@@ -5262,15 +4966,6 @@
"integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
"dev": true
},
- "hosted-git-info": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz",
- "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==",
- "dev": true,
- "requires": {
- "lru-cache": "^6.0.0"
- }
- },
"htmlparser2": {
"version": "8.0.2",
"resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz",
@@ -5333,15 +5028,6 @@
"integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==",
"dev": true
},
- "is-ci": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz",
- "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==",
- "dev": true,
- "requires": {
- "ci-info": "^2.0.0"
- }
- },
"is-core-module": {
"version": "2.12.0",
"resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.0.tgz",
@@ -5424,12 +5110,6 @@
"integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
"dev": true
},
- "jsonc-parser": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.1.tgz",
- "integrity": "sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==",
- "dev": true
- },
"keytar": {
"version": "7.9.0",
"resolved": "https://registry.npmjs.org/keytar/-/keytar-7.9.0.tgz",
@@ -5486,14 +5166,6 @@
"json5": "^2.1.2"
}
},
- "lru-cache": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
- "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
- "requires": {
- "yallist": "^4.0.0"
- }
- },
"markdown-it": {
"version": "12.3.2",
"resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-12.3.2.tgz",
@@ -5648,29 +5320,6 @@
"wrappy": "1"
}
},
- "ovsx": {
- "version": "0.8.4",
- "resolved": "https://registry.npmjs.org/ovsx/-/ovsx-0.8.4.tgz",
- "integrity": "sha512-RMtGSVNM4NWSF9uVWCUqaYiA7ID8Vqm/rSk2W37eYVrDLOI/3do2IRY7rQYkvJqb6sS6LAnALODBkD50tIM1kw==",
- "dev": true,
- "requires": {
- "@vscode/vsce": "^2.19.0",
- "commander": "^6.1.0",
- "follow-redirects": "^1.14.6",
- "is-ci": "^2.0.0",
- "leven": "^3.1.0",
- "semver": "^7.5.2",
- "tmp": "^0.2.1"
- },
- "dependencies": {
- "commander": {
- "version": "6.2.1",
- "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz",
- "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==",
- "dev": true
- }
- }
- },
"p-try": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
@@ -5964,6 +5613,15 @@
"integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
"dev": true
},
+ "rimraf": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
+ "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
+ "dev": true,
+ "requires": {
+ "glob": "^7.1.3"
+ }
+ },
"run-parallel": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
@@ -6032,6 +5690,16 @@
"integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
"requires": {
"lru-cache": "^6.0.0"
+ },
+ "dependencies": {
+ "lru-cache": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "requires": {
+ "yallist": "^4.0.0"
+ }
+ }
}
},
"serialize-javascript": {
@@ -6247,12 +5915,6 @@
}
}
},
- "tmp": {
- "version": "0.2.3",
- "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz",
- "integrity": "sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==",
- "dev": true
- },
"to-regex-range": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
@@ -6427,12 +6089,36 @@
"integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==",
"dev": true
},
+ "escape-string-regexp": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
+ "dev": true
+ },
"has-flag": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
"integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
"dev": true
},
+ "hosted-git-info": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz",
+ "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==",
+ "dev": true,
+ "requires": {
+ "lru-cache": "^6.0.0"
+ }
+ },
+ "lru-cache": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "dev": true,
+ "requires": {
+ "yallist": "^4.0.0"
+ }
+ },
"semver": {
"version": "5.7.2",
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
@@ -6447,6 +6133,15 @@
"requires": {
"has-flag": "^3.0.0"
}
+ },
+ "tmp": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz",
+ "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==",
+ "dev": true,
+ "requires": {
+ "rimraf": "^3.0.0"
+ }
}
}
},
diff --git a/packages/vscode-pyright/package.json b/packages/vscode-pyright/package.json
index b5c5aaf88a..cae871f5c3 100644
--- a/packages/vscode-pyright/package.json
+++ b/packages/vscode-pyright/package.json
@@ -2,7 +2,7 @@
"name": "vscode-pyright",
"displayName": "BasedPyright",
"description": "VS Code static type checking for Python (but based)",
- "version": "1.7.0",
+ "version": "1.1.356",
"private": true,
"license": "MIT",
"author": {
diff --git a/pdm.lock b/pdm.lock
index 35ab9fc038..037d6981ac 100644
--- a/pdm.lock
+++ b/pdm.lock
@@ -5,7 +5,7 @@
groups = ["default", "dev"]
strategy = ["cross_platform", "inherit_metadata"]
lock_version = "4.4.1"
-content_hash = "sha256:b54e5de2309b06990a20aa2e65d0214fed4936658f0fd43e9750dcd19b253878"
+content_hash = "sha256:1ee9d0c943b7b1b688bd1eab4b826b9606f7017c2b652414e6bfc9bbabf2a1c7"
[[package]]
name = "astroid"
@@ -44,6 +44,21 @@ files = [
{file = "dill-0.3.7.tar.gz", hash = "sha256:cc1c8b182eb3013e24bd475ff2e9295af86c1a38eb1aff128dac8962a9ce3c03"},
]
+[[package]]
+name = "importlib-metadata"
+version = "7.1.0"
+requires_python = ">=3.8"
+summary = "Read metadata from Python packages"
+groups = ["dev"]
+marker = "python_version < \"3.10\""
+dependencies = [
+ "zipp>=0.5",
+]
+files = [
+ {file = "importlib_metadata-7.1.0-py3-none-any.whl", hash = "sha256:30962b96c0c223483ed6cc7280e7f0199feb01a0e40cfae4d4450fc6fab1f570"},
+ {file = "importlib_metadata-7.1.0.tar.gz", hash = "sha256:b78938b926ee8d5f020fc4772d487045805a55ddbad2ecf21c6d60938dc7fcd2"},
+]
+
[[package]]
name = "isort"
version = "5.13.2"
@@ -82,6 +97,20 @@ files = [
{file = "nodejs_bin-18.4.0a4-py3-none-win_amd64.whl", hash = "sha256:cbd509218b4b17f75ee7841f9c21d5cacc1626d3b823a652a6627dbad18228ec"},
]
+[[package]]
+name = "pdm-backend"
+version = "2.1.8"
+requires_python = ">=3.7"
+summary = "The build backend used by PDM that supports latest packaging standards"
+groups = ["dev"]
+dependencies = [
+ "importlib-metadata>=3.6; python_version < \"3.10\"",
+]
+files = [
+ {file = "pdm_backend-2.1.8-py3-none-any.whl", hash = "sha256:fc69799e40817daf9bb9ce8f93ff650d59e093bf86fa3a5264b26a9ef579563d"},
+ {file = "pdm_backend-2.1.8.tar.gz", hash = "sha256:2487dfbd13f69d80fb4e6a08006a3ee68272833970813047dc5fcfacdfdc0151"},
+]
+
[[package]]
name = "platformdirs"
version = "4.1.0"
@@ -177,3 +206,15 @@ files = [
{file = "typing_extensions-4.9.0-py3-none-any.whl", hash = "sha256:af72aea155e91adfc61c3ae9e0e342dbc0cba726d6cba4b6c72c1f34e47291cd"},
{file = "typing_extensions-4.9.0.tar.gz", hash = "sha256:23478f88c37f27d76ac8aee6c905017a143b0b1b886c3c9f66bc2fd94f9f5783"},
]
+
+[[package]]
+name = "zipp"
+version = "3.18.1"
+requires_python = ">=3.8"
+summary = "Backport of pathlib-compatible object wrapper for zip files"
+groups = ["dev"]
+marker = "python_version < \"3.10\""
+files = [
+ {file = "zipp-3.18.1-py3-none-any.whl", hash = "sha256:206f5a15f2af3dbaee80769fb7dc6f249695e940acca08dfb2a4769fe61e538b"},
+ {file = "zipp-3.18.1.tar.gz", hash = "sha256:2884ed22e7d8961de1c9a05142eb69a247f120291bc0206a00a7642f09b5b715"},
+]
diff --git a/pdm_build.py b/pdm_build.py
index 029ac9bda8..8cdde5819d 100644
--- a/pdm_build.py
+++ b/pdm_build.py
@@ -1,37 +1,43 @@
from __future__ import annotations
+import os
from json import loads
from pathlib import Path
from shutil import copyfile, copytree
from typing import TYPE_CHECKING, TypedDict, cast
-# https://github.com/samwillis/nodejs-pypi/pull/23
+from nodejs import node
+
if TYPE_CHECKING:
- # https://github.com/astral-sh/ruff/issues/9528
+ # https://github.com/samwillis/nodejs-pypi/pull/23
from subprocess import run # noqa: S404
+
+ from pdm.backend.hooks import Context
else:
from nodejs.npm import run
-import os
-from nodejs import node
+
+# these are hook functions where all args are required regardless of whether or not they are used
+# ruff: noqa: ARG001
class PackageJson(TypedDict):
bin: dict[str, str]
-# ah yes, the classic "wrong path" moment!
-os.environ["PATH"] = os.pathsep.join([str(Path(node.__file__).parent), os.environ["PATH"]])
+def pdm_build_update_files(context: Context, files: dict[str, Path]):
+ # ah yes, the classic "wrong path" moment!
+ os.environ["PATH"] = os.pathsep.join([str(Path(node.__file__).parent), os.environ["PATH"]])
-if not Path("node_modules").exists():
- _ = run(["ci"], check=True)
-_ = run(["run", "build:cli:dev"], check=True)
+ if not Path("node_modules").exists():
+ _ = run(["ci"], check=True)
+ _ = run(["run", "build:cli:dev"], check=True)
-npm_package_dir = Path("packages/pyright")
-pypi_package_dir = Path("basedpyright")
+ npm_package_dir = Path("packages/pyright")
+ pypi_package_dir = Path("basedpyright")
-copytree(npm_package_dir / "dist", pypi_package_dir / "dist", dirs_exist_ok=True)
-for script_path in cast(PackageJson, loads((npm_package_dir / "package.json").read_text()))[
- "bin"
-].values():
- _ = copyfile(npm_package_dir / script_path, pypi_package_dir / script_path)
+ copytree(npm_package_dir / "dist", pypi_package_dir / "dist", dirs_exist_ok=True)
+ for script_path in cast(PackageJson, loads((npm_package_dir / "package.json").read_text()))[
+ "bin"
+ ].values():
+ _ = copyfile(npm_package_dir / script_path, pypi_package_dir / script_path)
diff --git a/pyproject.toml b/pyproject.toml
index 191e0e6ff1..9e279c7e9f 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -5,7 +5,11 @@ main = ["pdm==2.12.4"]
distribution = true
[tool.pdm.dev-dependencies]
-dev = ["pylint>=3.0.0a7", "ruff>=0.2.2"]
+dev = [
+ "pylint>=3.0.0a7",
+ "ruff>=0.2.2",
+ "pdm-backend>=2.1.8", # only used here for types in pdm_build.py
+]
[tool.pdm.version]
source = "call"