jupyterlab-lsp icon indicating copy to clipboard operation
jupyterlab-lsp copied to clipboard

Unable to set pyright settings through overrides.json5

Open divyansshhh opened this issue 1 year ago • 2 comments
trafficstars

Description

I am trying to set "python.analysis.diagnosticSeverityOverrides.reportMissingImports": "none" in my pyright lsp config through overrides.json but this setting doesn't show up in the settings editor.

Reproduce

  1. Add the following in the overrides.json5 -
{
"@jupyter-lsp/jupyterlab-lsp:plugin": {
    language_servers: {
      pyright: {
        priority: 200,
        serverSettings: {
          "python.analysis.extraPaths": ["/prod/tools/base/lib/python"],
           "python.analysis.diagnosticSeverityOverrides.reportMissingImports": "none",
          pyright: {
            plugins: {
              pycodestyle: {
                enabled: false,
              },
              pydocstyle: {
                enabled: false,
              },
              pyflakes: {
                enabled: false,
              },
              flake8: {
                enabled: false,
              },
            },
          },
        },
      },
    },
  },
}
  1. Check the Language Servers settings page on JupyterLab after launching lab.
  2. This setting gets overridden somehow.
  3. The following dialog is display - image

The pyright section in the JSON settings editor also seems to have the same setting in multiple places (this is what it looks like for me) -

"pyright": {
            "priority": 200,
            "serverSettings": {
                "python.analysis.autoImportCompletions": true,
                "python.analysis.autoSearchPaths": true,
                "python.analysis.extraPaths": [
                    "/prod/tools/base/lib/python"
                ],
                "python.analysis.stubPath": "typings",
                "python.analysis.diagnosticMode": "openFilesOnly",
                "python.analysis.diagnosticSeverityOverrides": {
                    "reportGeneralTypeIssues": "error",
                    "reportPropertyTypeMismatch": "none",
                    "reportFunctionMemberAccess": "none",
                    "reportMissingImports": "error",
                    "reportMissingModuleSource": "warning",
                    "reportMissingTypeStubs": "none",
                    "reportImportCycles": "none",
                    "reportUnusedImport": "none",
                    "reportUnusedClass": "none",
                    "reportUnusedFunction": "none",
                    "reportUnusedVariable": "none",
                    "reportDuplicateImport": "none",
                    "reportWildcardImportFromLibrary": "warning",
                    "reportOptionalSubscript": "error",
                    "reportOptionalMemberAccess": "error",
                    "reportOptionalCall": "error",
                    "reportOptionalIterable": "error",
                    "reportOptionalContextManager": "error",
                    "reportOptionalOperand": "error",
                    "reportTypedDictNotRequiredAccess": "error",
                    "reportUntypedFunctionDecorator": "none",
                    "reportUntypedClassDecorator": "none",
                    "reportUntypedBaseClass": "none",
                    "reportUntypedNamedTuple": "none",
                    "reportPrivateUsage": "none",
                    "reportTypeCommentUsage": "none",
                    "reportPrivateImportUsage": "error",
                    "reportConstantRedefinition": "none",
                    "reportDeprecated": "none",
                    "reportIncompatibleMethodOverride": "none",
                    "reportIncompatibleVariableOverride": "none",
                    "reportInconsistentConstructor": "none",
                    "reportOverlappingOverload": "none",
                    "reportMissingSuperCall": "none",
                    "reportUninitializedInstanceVariable": "none",
                    "reportInvalidStringEscapeSequence": "warning",
                    "reportUnknownParameterType": "none",
                    "reportUnknownArgumentType": "none",
                    "reportUnknownLambdaType": "none",
                    "reportUnknownVariableType": "none",
                    "reportUnknownMemberType": "none",
                    "reportMissingParameterType": "none",
                    "reportMissingTypeArgument": "none",
                    "reportInvalidTypeVarUse": "warning",
                    "reportCallInDefaultInitializer": "none",
                    "reportUnnecessaryIsInstance": "none",
                    "reportUnnecessaryCast": "none",
                    "reportUnnecessaryComparison": "none",
                    "reportUnnecessaryContains": "none",
                    "reportAssertAlwaysTrue": "warning",
                    "reportSelfClsParameterName": "warning",
                    "reportImplicitStringConcatenation": "none",
                    "reportInvalidStubStatement": "none",
                    "reportIncompleteStub": "none",
                    "reportUndefinedVariable": "error",
                    "reportUnboundVariable": "error",
                    "reportUnsupportedDunderAll": "warning",
                    "reportUnusedCallResult": "none",
                    "reportUnusedCoroutine": "error",
                    "reportUnusedExpression": "warning",
                    "reportUnnecessaryTypeIgnoreComment": "none",
                    "reportMatchNotExhaustive": "none",
                    "reportShadowedImports": "none",
                    "reportImplicitOverride": "none"
                },
                "python.analysis.logLevel": "Information",
                "python.analysis.typeCheckingMode": "basic",
                "python.analysis.typeshedPaths": [],
                "python.analysis.useLibraryCodeForTypes": true,
                "pyright.disableLanguageServices": false,
                "pyright.disableOrganizeImports": false,
                "python.pythonPath": "python",
                "python.venvPath": "",
                "python.analysis.diagnosticSeverityOverrides.reportMissingImports": "none",
                "python.analysis.diagnosticSeverityOverrides.reportGeneralTypeIssues": "error",
                "python.analysis.diagnosticSeverityOverrides.reportPropertyTypeMismatch": "none",
                "python.analysis.diagnosticSeverityOverrides.reportFunctionMemberAccess": "none",
                "python.analysis.diagnosticSeverityOverrides.reportMissingModuleSource": "warning",
                "python.analysis.diagnosticSeverityOverrides.reportMissingTypeStubs": "none",
                "python.analysis.diagnosticSeverityOverrides.reportImportCycles": "none",
                "python.analysis.diagnosticSeverityOverrides.reportUnusedImport": "none",
                "python.analysis.diagnosticSeverityOverrides.reportUnusedClass": "none",
                "python.analysis.diagnosticSeverityOverrides.reportUnusedFunction": "none",
                "python.analysis.diagnosticSeverityOverrides.reportUnusedVariable": "none",
                "python.analysis.diagnosticSeverityOverrides.reportDuplicateImport": "none",
                "python.analysis.diagnosticSeverityOverrides.reportWildcardImportFromLibrary": "warning",
                "python.analysis.diagnosticSeverityOverrides.reportOptionalSubscript": "error",
                "python.analysis.diagnosticSeverityOverrides.reportOptionalMemberAccess": "error",
                "python.analysis.diagnosticSeverityOverrides.reportOptionalCall": "error",
                "python.analysis.diagnosticSeverityOverrides.reportOptionalIterable": "error",
                "python.analysis.diagnosticSeverityOverrides.reportOptionalContextManager": "error",
                "python.analysis.diagnosticSeverityOverrides.reportOptionalOperand": "error",
                "python.analysis.diagnosticSeverityOverrides.reportTypedDictNotRequiredAccess": "error",
                "python.analysis.diagnosticSeverityOverrides.reportUntypedFunctionDecorator": "none",
                "python.analysis.diagnosticSeverityOverrides.reportUntypedClassDecorator": "none",
                "python.analysis.diagnosticSeverityOverrides.reportUntypedBaseClass": "none",
                "python.analysis.diagnosticSeverityOverrides.reportUntypedNamedTuple": "none",
                "python.analysis.diagnosticSeverityOverrides.reportPrivateUsage": "none",
                "python.analysis.diagnosticSeverityOverrides.reportTypeCommentUsage": "none",
                "python.analysis.diagnosticSeverityOverrides.reportPrivateImportUsage": "error",
                "python.analysis.diagnosticSeverityOverrides.reportConstantRedefinition": "none",
                "python.analysis.diagnosticSeverityOverrides.reportDeprecated": "none",
                "python.analysis.diagnosticSeverityOverrides.reportIncompatibleMethodOverride": "none",
                "python.analysis.diagnosticSeverityOverrides.reportIncompatibleVariableOverride": "none",
                "python.analysis.diagnosticSeverityOverrides.reportInconsistentConstructor": "none",
                "python.analysis.diagnosticSeverityOverrides.reportOverlappingOverload": "none",
                "python.analysis.diagnosticSeverityOverrides.reportMissingSuperCall": "none",
                "python.analysis.diagnosticSeverityOverrides.reportUninitializedInstanceVariable": "none",
                "python.analysis.diagnosticSeverityOverrides.reportInvalidStringEscapeSequence": "warning",
                "python.analysis.diagnosticSeverityOverrides.reportUnknownParameterType": "none",
                "python.analysis.diagnosticSeverityOverrides.reportUnknownArgumentType": "none",
                "python.analysis.diagnosticSeverityOverrides.reportUnknownLambdaType": "none",
                "python.analysis.diagnosticSeverityOverrides.reportUnknownVariableType": "none",
                "python.analysis.diagnosticSeverityOverrides.reportUnknownMemberType": "none",
                "python.analysis.diagnosticSeverityOverrides.reportMissingParameterType": "none",
                "python.analysis.diagnosticSeverityOverrides.reportMissingTypeArgument": "none",
                "python.analysis.diagnosticSeverityOverrides.reportInvalidTypeVarUse": "warning",
                "python.analysis.diagnosticSeverityOverrides.reportCallInDefaultInitializer": "none",
                "python.analysis.diagnosticSeverityOverrides.reportUnnecessaryIsInstance": "none",
                "python.analysis.diagnosticSeverityOverrides.reportUnnecessaryCast": "none",
                "python.analysis.diagnosticSeverityOverrides.reportUnnecessaryComparison": "none",
                "python.analysis.diagnosticSeverityOverrides.reportUnnecessaryContains": "none",
                "python.analysis.diagnosticSeverityOverrides.reportAssertAlwaysTrue": "warning",
                "python.analysis.diagnosticSeverityOverrides.reportSelfClsParameterName": "warning",
                "python.analysis.diagnosticSeverityOverrides.reportImplicitStringConcatenation": "none",
                "python.analysis.diagnosticSeverityOverrides.reportInvalidStubStatement": "none",
                "python.analysis.diagnosticSeverityOverrides.reportIncompleteStub": "none",
                "python.analysis.diagnosticSeverityOverrides.reportUndefinedVariable": "error",
                "python.analysis.diagnosticSeverityOverrides.reportUnboundVariable": "error",
                "python.analysis.diagnosticSeverityOverrides.reportUnsupportedDunderAll": "warning",
                "python.analysis.diagnosticSeverityOverrides.reportUnusedCallResult": "none",
                "python.analysis.diagnosticSeverityOverrides.reportUnusedCoroutine": "error",
                "python.analysis.diagnosticSeverityOverrides.reportUnusedExpression": "warning",
                "python.analysis.diagnosticSeverityOverrides.reportUnnecessaryTypeIgnoreComment": "none",
                "python.analysis.diagnosticSeverityOverrides.reportMatchNotExhaustive": "none",
                "python.analysis.diagnosticSeverityOverrides.reportShadowedImports": "none",
                "python.analysis.diagnosticSeverityOverrides.reportImplicitOverride": "none"
            },
            "configuration": {
                "python.analysis.autoImportCompletions": true,
                "python.analysis.autoSearchPaths": true,
                "python.analysis.extraPaths": [
                    "/prod/tools/base/lib/python"
                ],
                "python.analysis.stubPath": "typings",
                "python.analysis.diagnosticMode": "openFilesOnly",
                "python.analysis.diagnosticSeverityOverrides.reportMissingImports": "none",
                "python.analysis.logLevel": "Information",
                "python.analysis.typeCheckingMode": "basic",
                "python.analysis.typeshedPaths": [],
                "python.analysis.useLibraryCodeForTypes": true,
                "pyright.disableLanguageServices": false,
                "pyright.disableOrganizeImports": false,
                "python.pythonPath": "python",
                "python.venvPath": "",
                "python.analysis.diagnosticSeverityOverrides.reportGeneralTypeIssues": "error",
                "python.analysis.diagnosticSeverityOverrides.reportPropertyTypeMismatch": "none",
                "python.analysis.diagnosticSeverityOverrides.reportFunctionMemberAccess": "none",
                "python.analysis.diagnosticSeverityOverrides.reportMissingModuleSource": "warning",
                "python.analysis.diagnosticSeverityOverrides.reportMissingTypeStubs": "none",
                "python.analysis.diagnosticSeverityOverrides.reportImportCycles": "none",
                "python.analysis.diagnosticSeverityOverrides.reportUnusedImport": "none",
                "python.analysis.diagnosticSeverityOverrides.reportUnusedClass": "none",
                "python.analysis.diagnosticSeverityOverrides.reportUnusedFunction": "none",
                "python.analysis.diagnosticSeverityOverrides.reportUnusedVariable": "none",
                "python.analysis.diagnosticSeverityOverrides.reportDuplicateImport": "none",
                "python.analysis.diagnosticSeverityOverrides.reportWildcardImportFromLibrary": "warning",
                "python.analysis.diagnosticSeverityOverrides.reportOptionalSubscript": "error",
                "python.analysis.diagnosticSeverityOverrides.reportOptionalMemberAccess": "error",
                "python.analysis.diagnosticSeverityOverrides.reportOptionalCall": "error",
                "python.analysis.diagnosticSeverityOverrides.reportOptionalIterable": "error",
                "python.analysis.diagnosticSeverityOverrides.reportOptionalContextManager": "error",
                "python.analysis.diagnosticSeverityOverrides.reportOptionalOperand": "error",
                "python.analysis.diagnosticSeverityOverrides.reportTypedDictNotRequiredAccess": "error",
                "python.analysis.diagnosticSeverityOverrides.reportUntypedFunctionDecorator": "none",
                "python.analysis.diagnosticSeverityOverrides.reportUntypedClassDecorator": "none",
                "python.analysis.diagnosticSeverityOverrides.reportUntypedBaseClass": "none",
                "python.analysis.diagnosticSeverityOverrides.reportUntypedNamedTuple": "none",
                "python.analysis.diagnosticSeverityOverrides.reportPrivateUsage": "none",
                "python.analysis.diagnosticSeverityOverrides.reportTypeCommentUsage": "none",
                "python.analysis.diagnosticSeverityOverrides.reportPrivateImportUsage": "error",
                "python.analysis.diagnosticSeverityOverrides.reportConstantRedefinition": "none",
                "python.analysis.diagnosticSeverityOverrides.reportDeprecated": "none",
                "python.analysis.diagnosticSeverityOverrides.reportIncompatibleMethodOverride": "none",
                "python.analysis.diagnosticSeverityOverrides.reportIncompatibleVariableOverride": "none",
                "python.analysis.diagnosticSeverityOverrides.reportInconsistentConstructor": "none",
                "python.analysis.diagnosticSeverityOverrides.reportOverlappingOverload": "none",
                "python.analysis.diagnosticSeverityOverrides.reportMissingSuperCall": "none",
                "python.analysis.diagnosticSeverityOverrides.reportUninitializedInstanceVariable": "none",
                "python.analysis.diagnosticSeverityOverrides.reportInvalidStringEscapeSequence": "warning",
                "python.analysis.diagnosticSeverityOverrides.reportUnknownParameterType": "none",
                "python.analysis.diagnosticSeverityOverrides.reportUnknownArgumentType": "none",
                "python.analysis.diagnosticSeverityOverrides.reportUnknownLambdaType": "none",
                "python.analysis.diagnosticSeverityOverrides.reportUnknownVariableType": "none",
                "python.analysis.diagnosticSeverityOverrides.reportUnknownMemberType": "none",
                "python.analysis.diagnosticSeverityOverrides.reportMissingParameterType": "none",
                "python.analysis.diagnosticSeverityOverrides.reportMissingTypeArgument": "none",
                "python.analysis.diagnosticSeverityOverrides.reportInvalidTypeVarUse": "warning",
                "python.analysis.diagnosticSeverityOverrides.reportCallInDefaultInitializer": "none",
                "python.analysis.diagnosticSeverityOverrides.reportUnnecessaryIsInstance": "none",
                "python.analysis.diagnosticSeverityOverrides.reportUnnecessaryCast": "none",
                "python.analysis.diagnosticSeverityOverrides.reportUnnecessaryComparison": "none",
                "python.analysis.diagnosticSeverityOverrides.reportUnnecessaryContains": "none",
                "python.analysis.diagnosticSeverityOverrides.reportAssertAlwaysTrue": "warning",
                "python.analysis.diagnosticSeverityOverrides.reportSelfClsParameterName": "warning",
                "python.analysis.diagnosticSeverityOverrides.reportImplicitStringConcatenation": "none",
                "python.analysis.diagnosticSeverityOverrides.reportInvalidStubStatement": "none",
                "python.analysis.diagnosticSeverityOverrides.reportIncompleteStub": "none",
                "python.analysis.diagnosticSeverityOverrides.reportUndefinedVariable": "error",
                "python.analysis.diagnosticSeverityOverrides.reportUnboundVariable": "error",
                "python.analysis.diagnosticSeverityOverrides.reportUnsupportedDunderAll": "warning",
                "python.analysis.diagnosticSeverityOverrides.reportUnusedCallResult": "none",
                "python.analysis.diagnosticSeverityOverrides.reportUnusedCoroutine": "error",
                "python.analysis.diagnosticSeverityOverrides.reportUnusedExpression": "warning",
                "python.analysis.diagnosticSeverityOverrides.reportUnnecessaryTypeIgnoreComment": "none",
                "python.analysis.diagnosticSeverityOverrides.reportMatchNotExhaustive": "none",
                "python.analysis.diagnosticSeverityOverrides.reportShadowedImports": "none",
                "python.analysis.diagnosticSeverityOverrides.reportImplicitOverride": "none"
            },
            "rank": 200
        },

Context

  • JupyterLab: v4.1.0rc1
  • jupyterlab-lsp: v5.0.2
  • jupyter-lsp: v2.2.2

divyansshhh avatar Feb 05 '24 14:02 divyansshhh

The default settings come from three places:

  1. Defaults of the language server
  2. Overrides set by workspace_configuration in jupyter_server_config.py or similar (see here for an example)
  3. Overrides set via overrides.json

Additionally all of these settings can be set using dotted or nested conventions.

The error dialog that you see is saying that after combining the language server defaults and the two overrides there is both a dotted and nested convention. I will try to reproduce the issue to assess what place this is coming from; does changing the overrides.json5 to use the nested convention (like below) help?

{
"@jupyter-lsp/jupyterlab-lsp:plugin": {
    language_servers: {
      pyright: {
        priority: 200,
        serverSettings: {
          "python.analysis.extraPaths": ["/prod/tools/base/lib/python"],
          python: {
            analysis: {
              diagnosticSeverityOverrides: {
                reportMissingImports: "none"
              },
            },
          },
        },
      },
    },
  },
}

krassowski avatar Feb 05 '24 17:02 krassowski

That doesn't help either, this was resovled to -

Settings
 "pyright": {
            "priority": 200,
            "serverSettings": {
                "python.analysis.autoImportCompletions": true,
                "python.analysis.autoSearchPaths": true,
                "python.analysis.extraPaths": [
                    "/prod/tools/base/lib/python"
                ],
                "python.analysis.stubPath": "typings",
                "python.analysis.diagnosticMode": "openFilesOnly",
                "python.analysis.diagnosticSeverityOverrides": {
                    "reportGeneralTypeIssues": "error",
                    "reportPropertyTypeMismatch": "none",
                    "reportFunctionMemberAccess": "none",
                    "reportMissingImports": "error",
                    "reportMissingModuleSource": "warning",
                    "reportMissingTypeStubs": "none",
                    "reportImportCycles": "none",
                    "reportUnusedImport": "none",
                    "reportUnusedClass": "none",
                    "reportUnusedFunction": "none",
                    "reportUnusedVariable": "none",
                    "reportDuplicateImport": "none",
                    "reportWildcardImportFromLibrary": "warning",
                    "reportOptionalSubscript": "error",
                    "reportOptionalMemberAccess": "error",
                    "reportOptionalCall": "error",
                    "reportOptionalIterable": "error",
                    "reportOptionalContextManager": "error",
                    "reportOptionalOperand": "error",
                    "reportTypedDictNotRequiredAccess": "error",
                    "reportUntypedFunctionDecorator": "none",
                    "reportUntypedClassDecorator": "none",
                    "reportUntypedBaseClass": "none",
                    "reportUntypedNamedTuple": "none",
                    "reportPrivateUsage": "none",
                    "reportTypeCommentUsage": "none",
                    "reportPrivateImportUsage": "error",
                    "reportConstantRedefinition": "none",
                    "reportDeprecated": "none",
                    "reportIncompatibleMethodOverride": "none",
                    "reportIncompatibleVariableOverride": "none",
                    "reportInconsistentConstructor": "none",
                    "reportOverlappingOverload": "none",
                    "reportMissingSuperCall": "none",
                    "reportUninitializedInstanceVariable": "none",
                    "reportInvalidStringEscapeSequence": "warning",
                    "reportUnknownParameterType": "none",
                    "reportUnknownArgumentType": "none",
                    "reportUnknownLambdaType": "none",
                    "reportUnknownVariableType": "none",
                    "reportUnknownMemberType": "none",
                    "reportMissingParameterType": "none",
                    "reportMissingTypeArgument": "none",
                    "reportInvalidTypeVarUse": "warning",
                    "reportCallInDefaultInitializer": "none",
                    "reportUnnecessaryIsInstance": "none",
                    "reportUnnecessaryCast": "none",
                    "reportUnnecessaryComparison": "none",
                    "reportUnnecessaryContains": "none",
                    "reportAssertAlwaysTrue": "warning",
                    "reportSelfClsParameterName": "warning",
                    "reportImplicitStringConcatenation": "none",
                    "reportInvalidStubStatement": "none",
                    "reportIncompleteStub": "none",
                    "reportUndefinedVariable": "error",
                    "reportUnboundVariable": "error",
                    "reportUnsupportedDunderAll": "warning",
                    "reportUnusedCallResult": "none",
                    "reportUnusedCoroutine": "error",
                    "reportUnusedExpression": "warning",
                    "reportUnnecessaryTypeIgnoreComment": "none",
                    "reportMatchNotExhaustive": "none",
                    "reportShadowedImports": "none",
                    "reportImplicitOverride": "none"
                },
                "python.analysis.logLevel": "Information",
                "python.analysis.typeCheckingMode": "basic",
                "python.analysis.typeshedPaths": [],
                "python.analysis.useLibraryCodeForTypes": true,
                "pyright.disableLanguageServices": false,
                "pyright.disableOrganizeImports": false,
                "python.pythonPath": "python",
                "python.venvPath": ""
            },
            "configuration": {
                "python.analysis.autoImportCompletions": true,
                "python.analysis.autoSearchPaths": true,
                "python.analysis.extraPaths": [
                    "/prod/tools/base/lib/python"
                ],
                "python.analysis.stubPath": "typings",
                "python.analysis.diagnosticMode": "openFilesOnly",
                "python.analysis.logLevel": "Information",
                "python.analysis.typeCheckingMode": "basic",
                "python.analysis.typeshedPaths": [],
                "python.analysis.useLibraryCodeForTypes": true,
                "pyright.disableLanguageServices": false,
                "pyright.disableOrganizeImports": false,
                "python.pythonPath": "python",
                "python.venvPath": ""
            },
            "rank": 200
        },

divyansshhh avatar Feb 05 '24 17:02 divyansshhh