diff --git a/.basedpyright/baseline.json b/.basedpyright/baseline.json index bc042efe..ca50752b 100644 --- a/.basedpyright/baseline.json +++ b/.basedpyright/baseline.json @@ -3597,46 +3597,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 23, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 23, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportCallInDefaultInitializer", - "range": { - "startColumn": 38, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 27, - "lineCount": 1 - } - }, { "code": "reportUnknownParameterType", "range": { @@ -3701,14 +3661,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 23, - "endColumn": 42, - "lineCount": 1 - } - }, { "code": "reportUnannotatedClassAttribute", "range": { @@ -4397,6 +4349,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 34, + "endColumn": 46, + "lineCount": 1 + } + }, { "code": "reportUnknownParameterType", "range": { @@ -6233,6 +6193,14 @@ } ], "./sumpy/derivative_taker.py": [ + { + "code": "reportMissingTypeStubs", + "range": { + "startColumn": 11, + "endColumn": 16, + "lineCount": 1 + } + }, { "code": "reportUnknownParameterType", "range": { @@ -7306,10 +7274,10 @@ } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 34, - "endColumn": 42, + "startColumn": 44, + "endColumn": 48, "lineCount": 1 } }, @@ -7577,6 +7545,14 @@ "lineCount": 1 } }, + { + "code": "reportOperatorIssue", + "range": { + "startColumn": 12, + "endColumn": 57, + "lineCount": 1 + } + }, { "code": "reportUnknownArgumentType", "range": { @@ -7601,54 +7577,6 @@ "lineCount": 1 } }, - { - "code": "reportAny", - "range": { - "startColumn": 26, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 20, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 8, - "endColumn": 20, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 22, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 22, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 12, - "endColumn": 17, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -7656,22 +7584,6 @@ "endColumn": 43, "lineCount": 1 } - }, - { - "code": "reportAny", - "range": { - "startColumn": 32, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 46, - "endColumn": 51, - "lineCount": 1 - } } ], "./sumpy/distributed.py": [ @@ -8461,14 +8373,6 @@ "lineCount": 1 } }, - { - "code": "reportAny", - "range": { - "startColumn": 24, - "endColumn": 75, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -8493,14 +8397,6 @@ "lineCount": 1 } }, - { - "code": "reportAny", - "range": { - "startColumn": 24, - "endColumn": 75, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -8525,14 +8421,6 @@ "lineCount": 1 } }, - { - "code": "reportAny", - "range": { - "startColumn": 24, - "endColumn": 75, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -9246,11 +9134,11 @@ } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 17, - "lineCount": 17 + "startColumn": 20, + "endColumn": 34, + "lineCount": 1 } }, { @@ -9285,6 +9173,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 44, + "endColumn": 63, + "lineCount": 2 + } + }, { "code": "reportUnknownMemberType", "range": { @@ -10022,10 +9918,10 @@ } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 32, - "endColumn": 39, + "startColumn": 15, + "endColumn": 31, "lineCount": 1 } }, @@ -10246,11 +10142,11 @@ } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 17, - "lineCount": 29 + "startColumn": 20, + "endColumn": 34, + "lineCount": 1 } }, { @@ -10301,6 +10197,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 44, + "endColumn": 63, + "lineCount": 2 + } + }, { "code": "reportUnknownMemberType", "range": { @@ -10814,11 +10718,11 @@ } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 17, - "lineCount": 14 + "startColumn": 20, + "endColumn": 34, + "lineCount": 1 } }, { @@ -10837,6 +10741,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 44, + "endColumn": 84, + "lineCount": 1 + } + }, { "code": "reportUnknownMemberType", "range": { @@ -11318,11 +11230,11 @@ } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 17, - "lineCount": 11 + "startColumn": 20, + "endColumn": 34, + "lineCount": 1 } }, { @@ -11341,6 +11253,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 44, + "endColumn": 84, + "lineCount": 1 + } + }, { "code": "reportUnknownMemberType", "range": { @@ -11782,11 +11702,11 @@ } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 17, - "lineCount": 12 + "startColumn": 20, + "endColumn": 34, + "lineCount": 1 } }, { @@ -11813,6 +11733,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 44, + "endColumn": 84, + "lineCount": 1 + } + }, { "code": "reportUnknownMemberType", "range": { @@ -12182,11 +12110,11 @@ } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 17, - "lineCount": 17 + "startColumn": 20, + "endColumn": 34, + "lineCount": 1 } }, { @@ -12229,6 +12157,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 44, + "endColumn": 84, + "lineCount": 1 + } + }, { "code": "reportUnknownMemberType", "range": { @@ -12550,11 +12486,11 @@ } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 17, - "lineCount": 16 + "startColumn": 20, + "endColumn": 34, + "lineCount": 1 } }, { @@ -12597,6 +12533,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 44, + "endColumn": 84, + "lineCount": 1 + } + }, { "code": "reportUnknownMemberType", "range": { @@ -12967,22 +12911,6 @@ "lineCount": 1 } }, - { - "code": "reportAny", - "range": { - "startColumn": 12, - "endColumn": 15, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 23, - "endColumn": 26, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -13136,34 +13064,10 @@ } }, { - "code": "reportAny", - "range": { - "startColumn": 12, - "endColumn": 18, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 12, - "endColumn": 21, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 24, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 22, + "startColumn": 38, + "endColumn": 76, "lineCount": 1 } }, @@ -13266,27 +13170,11 @@ { "code": "reportUnknownMemberType", "range": { - "startColumn": 31, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 31, - "endColumn": 61, + "startColumn": 20, + "endColumn": 34, "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 16, - "endColumn": 17, - "lineCount": 16 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -13562,27 +13450,11 @@ { "code": "reportUnknownMemberType", "range": { - "startColumn": 31, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 31, - "endColumn": 61, + "startColumn": 20, + "endColumn": 34, "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 16, - "endColumn": 17, - "lineCount": 17 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -13841,14 +13713,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 28, - "lineCount": 1 - } - }, { "code": "reportUnknownParameterType", "range": { @@ -15609,14 +15473,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 25, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -15721,14 +15577,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 17, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -20700,7 +20548,23 @@ { "code": "reportUnknownMemberType", "range": { - "startColumn": 11, + "startColumn": 4, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 12, "endColumn": 30, "lineCount": 1 } @@ -20709,31 +20573,119 @@ "code": "reportUnknownMemberType", "range": { "startColumn": 4, - "endColumn": 16, + "endColumn": 22, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 18, - "endColumn": 37, + "startColumn": 12, + "endColumn": 27, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 26, + "startColumn": 12, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 25, + "endColumn": 40, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 25, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 23, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 30, + "startColumn": 16, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 42, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 4, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 13, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 8, + "endColumn": 26, "lineCount": 1 } }, @@ -20765,7 +20717,7 @@ "code": "reportArgumentType", "range": { "startColumn": 25, - "endColumn": 40, + "endColumn": 42, "lineCount": 1 } }, @@ -20785,6 +20737,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 32, + "lineCount": 1 + } + }, { "code": "reportUnknownArgumentType", "range": { @@ -20794,155 +20754,11 @@ } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 24, - "endColumn": 20, - "lineCount": 14 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 11, - "endColumn": 30, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 4, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 13, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 4, - "endColumn": 22, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 33, - "lineCount": 1 - } - }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 25, - "endColumn": 42, - "lineCount": 1 - } - }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 25, - "endColumn": 36, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 23, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 42, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 24, - "endColumn": 20, - "lineCount": 14 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 28, - "lineCount": 1 + "startColumn": 16, + "endColumn": 28, + "lineCount": 1 } }, { @@ -23315,6 +23131,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 14, + "endColumn": 30, + "lineCount": 1 + } + }, { "code": "reportUnknownMemberType", "range": { @@ -23879,7 +23703,7 @@ "code": "reportUnknownMemberType", "range": { "startColumn": 16, - "endColumn": 28, + "endColumn": 32, "lineCount": 1 } }, @@ -23891,283 +23715,299 @@ "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 26, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 29, - "endColumn": 45, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 17, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 24, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 24, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 39, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 39, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 54, - "endColumn": 69, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 54, - "endColumn": 69, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 71, - "endColumn": 81, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 71, - "endColumn": 81, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 12, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 12, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 18, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 18, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 30, - "endColumn": 33, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 30, - "endColumn": 33, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 40, - "endColumn": 74, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 40, - "endColumn": 74, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 50, - "endColumn": 65, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 12, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 30, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 30, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 45, - "endColumn": 58, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 45, - "endColumn": 58, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 21, - "endColumn": 53, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 54, - "endColumn": 67, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 58, - "endColumn": 71, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 21, - "endColumn": 50, + "startColumn": 16, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 51, - "endColumn": 64, + "startColumn": 26, + "endColumn": 38, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 66, - "endColumn": 79, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 17, + "startColumn": 29, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 17, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 24, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 24, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 39, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 39, + "endColumn": 52, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 54, + "endColumn": 69, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 54, + "endColumn": 69, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 71, + "endColumn": 81, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 71, + "endColumn": 81, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 12, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 12, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 18, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 18, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 30, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 30, + "endColumn": 33, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 40, + "endColumn": 74, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 40, + "endColumn": 74, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 50, + "endColumn": 65, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 12, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 23, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 30, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 30, + "endColumn": 43, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 45, + "endColumn": 58, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 45, + "endColumn": 58, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 21, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 54, + "endColumn": 67, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 58, + "endColumn": 71, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 21, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 51, + "endColumn": 64, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 66, + "endColumn": 79, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 15, + "endColumn": 31, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 32, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 17, "lineCount": 1 } }, @@ -26091,6 +25931,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 15, + "endColumn": 31, + "lineCount": 1 + } + }, { "code": "reportUnknownMemberType", "range": { @@ -26915,14 +26763,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 11, - "endColumn": 30, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -27035,6 +26875,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 10, + "endColumn": 26, + "lineCount": 1 + } + }, { "code": "reportUnknownArgumentType", "range": { @@ -27229,14 +27077,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 24, - "endColumn": 52, - "lineCount": 1 - } - }, { "code": "reportAny", "range": { @@ -28349,6 +28189,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 20, + "endColumn": 67, + "lineCount": 3 + } + }, { "code": "reportUnknownMemberType", "range": { @@ -33882,34 +33730,34 @@ } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 32, + "startColumn": 19, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportReturnType", "range": { - "startColumn": 23, - "endColumn": 32, + "startColumn": 15, + "endColumn": 21, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportUnusedParameter", "range": { - "startColumn": 13, - "endColumn": 22, + "startColumn": 56, + "endColumn": 60, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportReturnType", "range": { - "startColumn": 8, - "endColumn": 12, + "startColumn": 15, + "endColumn": 19, "lineCount": 1 } }, @@ -33917,6225 +33765,529 @@ "code": "reportUnknownMemberType", "range": { "startColumn": 15, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 14, + "endColumn": 28, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportArgumentType", "range": { - "startColumn": 8, - "endColumn": 14, + "startColumn": 43, + "endColumn": 51, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportArgumentType", "range": { - "startColumn": 21, - "endColumn": 26, + "startColumn": 68, + "endColumn": 74, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportArgumentType", "range": { - "startColumn": 21, - "endColumn": 26, + "startColumn": 71, + "endColumn": 77, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportArgumentType", "range": { - "startColumn": 26, - "endColumn": 31, + "startColumn": 70, + "endColumn": 76, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportArgumentType", "range": { - "startColumn": 16, - "endColumn": 21, + "startColumn": 73, + "endColumn": 79, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportReturnType", "range": { - "startColumn": 8, - "endColumn": 14, + "startColumn": 15, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportArgumentType", "range": { - "startColumn": 21, - "endColumn": 26, + "startColumn": 73, + "endColumn": 79, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportReturnType", "range": { - "startColumn": 21, - "endColumn": 26, + "startColumn": 15, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportIncompatibleMethodOverride", + "code": "reportArgumentType", "range": { - "startColumn": 8, - "endColumn": 16, + "startColumn": 35, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 16, + "startColumn": 21, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUninitializedInstanceVariable", + "code": "reportMissingParameterType", "range": { - "startColumn": 4, - "endColumn": 15, + "startColumn": 26, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 14, + "startColumn": 33, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 14, + "startColumn": 40, + "endColumn": 52, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportMissingParameterType", "range": { - "startColumn": 21, - "endColumn": 26, + "startColumn": 59, + "endColumn": 72, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 21, + "startColumn": 23, "endColumn": 26, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 32, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 39, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", + "code": "reportMissingParameterType", "range": { - "startColumn": 50, - "endColumn": 71, + "startColumn": 28, + "endColumn": 33, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportMissingParameterType", "range": { - "startColumn": 8, - "endColumn": 14, + "startColumn": 35, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportMissingParameterType", "range": { - "startColumn": 21, - "endColumn": 26, + "startColumn": 42, + "endColumn": 54, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 21, - "endColumn": 26, + "startColumn": 61, + "endColumn": 74, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 19, - "endColumn": 30, + "startColumn": 20, + "endColumn": 35, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 31, - "endColumn": 36, + "startColumn": 22, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportImplicitOverride", + "code": "reportIndexIssue", "range": { - "startColumn": 8, - "endColumn": 16, + "startColumn": 20, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportIndexIssue", "range": { - "startColumn": 37, - "endColumn": 45, + "startColumn": 20, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportIndexIssue", "range": { - "startColumn": 37, - "endColumn": 45, + "startColumn": 20, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportIndexIssue", "range": { - "startColumn": 47, - "endColumn": 58, + "startColumn": 20, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportIndexIssue", "range": { - "startColumn": 47, - "endColumn": 58, + "startColumn": 20, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportIndexIssue", "range": { - "startColumn": 8, - "endColumn": 23, + "startColumn": 20, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportIndexIssue", "range": { - "startColumn": 8, - "endColumn": 23, + "startColumn": 20, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportCallIssue", "range": { - "startColumn": 27, - "endColumn": 32, + "startColumn": 20, + "endColumn": 74, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportArgumentType", "range": { - "startColumn": 27, - "endColumn": 32, + "startColumn": 20, + "endColumn": 74, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 47, - "endColumn": 52, + "startColumn": 20, + "endColumn": 74, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 28, + "startColumn": 21, + "endColumn": 36, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 28, + "startColumn": 51, + "endColumn": 66, "lineCount": 1 } }, { - "code": "reportUnknownLambdaType", + "code": "reportReturnType", "range": { - "startColumn": 22, - "endColumn": 26, + "startColumn": 19, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportUnknownLambdaType", + "code": "reportOperatorIssue", "range": { - "startColumn": 28, - "endColumn": 32, + "startColumn": 16, + "endColumn": 63, "lineCount": 1 } }, { - "code": "reportInvalidAbstractMethod", + "code": "reportOperatorIssue", "range": { - "startColumn": 8, - "endColumn": 22, + "startColumn": 42, + "endColumn": 63, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 13, + "startColumn": 26, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportOperatorIssue", "range": { - "startColumn": 20, - "endColumn": 24, + "startColumn": 16, + "endColumn": 63, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportOperatorIssue", "range": { - "startColumn": 20, - "endColumn": 24, + "startColumn": 41, + "endColumn": 63, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportReturnType", "range": { - "startColumn": 26, - "endColumn": 29, + "startColumn": 15, + "endColumn": 27, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 26, - "endColumn": 29, + "startColumn": 30, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportArgumentType", "range": { - "startColumn": 31, - "endColumn": 33, + "startColumn": 71, + "endColumn": 80, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportArgumentType", "range": { - "startColumn": 31, - "endColumn": 33, + "startColumn": 53, + "endColumn": 57, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 19, - "endColumn": 28, + "startColumn": 4, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 8, - "endColumn": 29, + "startColumn": 4, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 36, - "endColumn": 40, + "startColumn": 4, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 36, - "endColumn": 40, + "startColumn": 4, + "endColumn": 21, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 42, - "endColumn": 46, + "startColumn": 4, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 42, - "endColumn": 46, + "startColumn": 4, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 20, - "endColumn": 60, + "startColumn": 4, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnusedParameter", "range": { - "startColumn": 30, - "endColumn": 40, + "startColumn": 36, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 41, - "endColumn": 45, + "startColumn": 4, + "endColumn": 22, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 47, - "endColumn": 51, + "startColumn": 4, + "endColumn": 25, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 8, - "endColumn": 29, + "startColumn": 4, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 36, - "endColumn": 40, + "startColumn": 4, + "endColumn": 21, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 36, - "endColumn": 40, + "startColumn": 4, + "endColumn": 34, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 42, - "endColumn": 46, + "startColumn": 4, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 42, - "endColumn": 46, + "startColumn": 4, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnusedParameter", + "code": "reportAssignmentType", "range": { - "startColumn": 42, - "endColumn": 46, + "startColumn": 40, + "endColumn": 66, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 8, - "endColumn": 43, + "startColumn": 4, + "endColumn": 37, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportAssignmentType", "range": { - "startColumn": 50, - "endColumn": 59, + "startColumn": 40, + "endColumn": 66, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnannotatedClassAttribute", "range": { - "startColumn": 50, - "endColumn": 59, + "startColumn": 4, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportInvalidAbstractMethod", + "code": "reportAssignmentType", "range": { - "startColumn": 8, - "endColumn": 32, + "startColumn": 33, + "endColumn": 59, "lineCount": 1 } - }, + } + ], + "./sumpy/p2e.py": [ { - "code": "reportInvalidAbstractMethod", + "code": "reportIncompatibleMethodOverride", "range": { - "startColumn": 8, - "endColumn": 26, + "startColumn": 6, + "endColumn": 13, "lineCount": 1 } }, { - "code": "reportUnannotatedClassAttribute", + "code": "reportImplicitAbstractClass", "range": { - "startColumn": 4, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 23, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 23, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 28, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 28, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 40, - "endColumn": 60, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 40, - "endColumn": 60, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 12, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 12, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 30, - "endColumn": 33, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 33, - "lineCount": 1 - } - }, - { - "code": "reportAttributeAccessIssue", - "range": { - "startColumn": 13, - "endColumn": 30, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 30, - "lineCount": 1 - } - }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 22, - "lineCount": 1 - } - }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 22, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 22, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 29, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 29, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 50, - "endColumn": 65, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 27, - "endColumn": 42, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 15, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 43, - "endColumn": 58, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 16, - "endColumn": 41, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 30, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 37, - "endColumn": 45, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 37, - "endColumn": 45, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 47, - "endColumn": 58, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 47, - "endColumn": 58, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 17, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 35, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 35, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 41, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 41, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 49, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 49, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 35, - "endColumn": 54, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 35, - "endColumn": 60, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 55, - "endColumn": 59, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 62, - "endColumn": 66, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 68, - "endColumn": 74, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 76, - "endColumn": 79, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 18, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 23, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 23, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 17, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 35, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 35, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 41, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 41, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 49, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 49, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 38, - "endColumn": 57, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 38, - "endColumn": 63, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 58, - "endColumn": 62, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 65, - "endColumn": 69, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 71, - "endColumn": 77, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 79, - "endColumn": 82, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 18, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 23, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 23, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 54, - "endColumn": 57, - "lineCount": 1 - } - }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 17, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 35, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 35, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 41, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 41, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 49, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 49, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 37, - "endColumn": 56, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 37, - "endColumn": 62, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 57, - "endColumn": 61, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 64, - "endColumn": 68, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 70, - "endColumn": 76, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 16, - "endColumn": 19, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 18, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 23, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 23, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 28, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 12, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 30, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 37, - "endColumn": 45, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 37, - "endColumn": 45, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 47, - "endColumn": 58, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 47, - "endColumn": 58, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 35, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 17, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 35, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 35, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 41, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 41, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 49, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 49, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 40, - "endColumn": 59, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 40, - "endColumn": 65, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 60, - "endColumn": 64, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 67, - "endColumn": 71, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 73, - "endColumn": 79, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 81, - "endColumn": 84, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 18, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 23, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 23, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 28, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 54, - "endColumn": 57, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 30, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 37, - "endColumn": 45, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 37, - "endColumn": 45, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 47, - "endColumn": 58, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 47, - "endColumn": 58, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 35, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 17, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 35, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 35, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 41, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 41, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 49, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 49, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 40, - "endColumn": 59, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 40, - "endColumn": 65, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 60, - "endColumn": 64, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 67, - "endColumn": 71, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 73, - "endColumn": 79, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 81, - "endColumn": 84, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 18, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 21, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 21, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 26, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 26, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 33, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 33, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 40, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 59, - "endColumn": 72, - "lineCount": 1 - } - }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 39, - "endColumn": 54, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 23, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 23, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 28, - "endColumn": 33, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 28, - "endColumn": 33, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 35, - "endColumn": 40, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 35, - "endColumn": 40, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 42, - "endColumn": 54, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 61, - "endColumn": 74, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 25, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 18, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 18, - "lineCount": 1 - } - }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 18, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 30, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 37, - "endColumn": 45, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 37, - "endColumn": 45, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 47, - "endColumn": 58, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 47, - "endColumn": 58, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 22, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 60, - "endColumn": 66, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 60, - "endColumn": 66, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 22, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 60, - "endColumn": 66, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 60, - "endColumn": 66, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 17, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 21, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 21, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 26, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 26, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 33, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 33, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 40, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 59, - "endColumn": 72, - "lineCount": 1 - } - }, - { - "code": "reportInconsistentConstructor", - "range": { - "startColumn": 8, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 23, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 23, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 28, - "endColumn": 33, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 28, - "endColumn": 33, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 35, - "endColumn": 40, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 35, - "endColumn": 40, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 42, - "endColumn": 54, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 61, - "endColumn": 74, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 25, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 30, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 37, - "endColumn": 42, - "lineCount": 1 - } - }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 58, - "endColumn": 71, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 18, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 23, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 23, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 28, - "endColumn": 33, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 28, - "endColumn": 33, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 35, - "endColumn": 40, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 35, - "endColumn": 40, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 42, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 42, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 49, - "endColumn": 61, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 18, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 18, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 18, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 25, - "lineCount": 1 - } - }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 30, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 37, - "endColumn": 45, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 37, - "endColumn": 45, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 47, - "endColumn": 58, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 47, - "endColumn": 58, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 53, - "endColumn": 59, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 53, - "endColumn": 59, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 17, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 18, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 23, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 30, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 38, - "endColumn": 50, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 57, - "endColumn": 70, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 25, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 17, - "lineCount": 1 - } - }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 30, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 37, - "endColumn": 45, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 37, - "endColumn": 45, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 47, - "endColumn": 58, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 47, - "endColumn": 58, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 25, - "endColumn": 61, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 19, - "endColumn": 56, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 22, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 60, - "endColumn": 66, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 60, - "endColumn": 66, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 17, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 23, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 23, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 30, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 30, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 25, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 15, - "endColumn": 48, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 35, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 15, - "endColumn": 53, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 25, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 25, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 15, - "endColumn": 50, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 22, - "lineCount": 1 - } - }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 22, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 22, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 29, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 29, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 15, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 50, - "endColumn": 59, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 50, - "endColumn": 59, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 15, - "endColumn": 68, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 36, - "endColumn": 40, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 36, - "endColumn": 40, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 42, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 42, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 15, - "endColumn": 54, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 15, - "endColumn": 57, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 15, - "endColumn": 53, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 15, - "endColumn": 41, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 15, - "endColumn": 48, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 34, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 35, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 35, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 41, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 41, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 49, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 49, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 15, - "endColumn": 53, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 18, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 23, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 23, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 29, - "endColumn": 41, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 29, - "endColumn": 41, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 30, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 37, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 17, - "lineCount": 1 - } - }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 15, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 50, - "endColumn": 59, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 50, - "endColumn": 59, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 73, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 25, - "endColumn": 40, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 26, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 25, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 34, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 34, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 26, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 12, - "endColumn": 66, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 35, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 35, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 26, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 37, - "endColumn": 53, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 17, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 18, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 21, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 23, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 23, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 29, - "endColumn": 41, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 29, - "endColumn": 41, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 30, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 37, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 17, - "lineCount": 1 - } - }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 15, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 36, - "endColumn": 40, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 36, - "endColumn": 40, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 42, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 42, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 15, - "endColumn": 54, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 20, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 19, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 48, - "endColumn": 57, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 34, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 34, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 26, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 12, - "endColumn": 66, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 35, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 35, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 26, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 37, - "endColumn": 53, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 17, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 23, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 23, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 33, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 33, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 21, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 21, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 28, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 28, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 31, - "endColumn": 41, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 20, - "endColumn": 74, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 54, - "endColumn": 58, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 41, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 18, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 23, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 23, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 37, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 37, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 30, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 37, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 25, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 25, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 35, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 30, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 37, - "endColumn": 45, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 37, - "endColumn": 45, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 47, - "endColumn": 58, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 47, - "endColumn": 58, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 34, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 34, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 34, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 26, - "endColumn": 63, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 26, - "endColumn": 80, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 25, - "endColumn": 42, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 15, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 33, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 16, - "endColumn": 33, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 16, - "endColumn": 33, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 63, - "endColumn": 80, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 20, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 21, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 38, - "endColumn": 57, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 39, - "endColumn": 56, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 32, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 32, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 26, - "endColumn": 64, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 22, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 22, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 27, - "endColumn": 48, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 36, - "endColumn": 40, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 36, - "endColumn": 40, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 42, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 42, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 36, - "endColumn": 53, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 15, - "endColumn": 54, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 27, - "endColumn": 36, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 51, - "endColumn": 60, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 20, - "endColumn": 25, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 21, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 26, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 13, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 35, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 35, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 58, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 33, - "endColumn": 42, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 44, - "endColumn": 61, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 44, - "endColumn": 61, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 17, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 20, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 54, - "lineCount": 1 - } - }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 38, - "endColumn": 57, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 39, - "endColumn": 56, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 32, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 32, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 22, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 22, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 27, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 50, - "endColumn": 59, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 50, - "endColumn": 59, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 36, - "endColumn": 53, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 73, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 25, - "endColumn": 40, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 30, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 29, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 30, - "endColumn": 42, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 24, - "endColumn": 41, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 21, - "endColumn": 54, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 35, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 35, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 20, - "endColumn": 58, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 33, - "endColumn": 42, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 44, - "endColumn": 61, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 44, - "endColumn": 61, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 17, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 18, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 21, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 23, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 23, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 29, - "endColumn": 41, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 29, - "endColumn": 41, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 8, - "endColumn": 30, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 37, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 17, - "lineCount": 1 - } - }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 15, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 34, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 34, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 26, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 12, - "endColumn": 66, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 35, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 35, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 26, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 37, - "endColumn": 53, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 36, - "endColumn": 40, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 36, - "endColumn": 40, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 42, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 42, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 15, - "endColumn": 54, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 50, - "endColumn": 55, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 65, - "endColumn": 74, - "lineCount": 1 - } - }, - { - "code": "reportCallIssue", - "range": { - "startColumn": 19, - "endColumn": 67, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 38, - "endColumn": 62, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 26, - "endColumn": 64, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 22, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 22, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 27, - "endColumn": 48, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 17, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 8, - "endColumn": 11, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 18, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 18, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 12, - "endColumn": 18, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 35, - "endColumn": 55, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 35, - "endColumn": 55, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 66, - "endColumn": 72, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 19, - "endColumn": 33, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 12, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 15, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 22, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 22, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnusedParameter", - "range": { - "startColumn": 22, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 36, - "endColumn": 42, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 36, - "endColumn": 42, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 15, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 25, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 25, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 25, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 25, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 8, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 41, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 41, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 15, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 15, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 24, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 24, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 30, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 36, - "endColumn": 42, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 36, - "endColumn": 42, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 22, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 25, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 21, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 25, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 8, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 41, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 41, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 15, - "endColumn": 71, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 20, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 28, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 41, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 50, - "endColumn": 69, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 50, - "endColumn": 69, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 30, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 8, - "endColumn": 41, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 48, - "endColumn": 54, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 48, - "endColumn": 54, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 15, - "endColumn": 36, - "lineCount": 3 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 20, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 25, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 25, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 8, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 41, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 41, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 15, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 15, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 24, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 24, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 8, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 41, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 41, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 15, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 15, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 24, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 24, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 8, - "endColumn": 41, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 41, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 48, - "endColumn": 54, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 48, - "endColumn": 54, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 15, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 15, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 24, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 24, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 8, - "endColumn": 41, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 41, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 48, - "endColumn": 54, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 48, - "endColumn": 54, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 15, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 15, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 24, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 24, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 8, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 42, - "endColumn": 48, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 42, - "endColumn": 48, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 15, - "endColumn": 23, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 15, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 24, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 24, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 15, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 15, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 22, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 22, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 19, - "endColumn": 25, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 36, - "endColumn": 42, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 36, - "endColumn": 42, - "lineCount": 1 - } - }, - { - "code": "reportUnusedParameter", - "range": { - "startColumn": 36, - "endColumn": 42, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 22, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 25, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 21, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 8, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 41, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 41, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 15, - "endColumn": 48, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 19, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 28, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 28, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 4, - "endColumn": 30, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 4, - "endColumn": 22, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 23, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 23, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 20, - "endColumn": 31, - "lineCount": 1 - } - } - ], - "./sumpy/p2e.py": [ - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 6, - "endColumn": 13, - "lineCount": 1 - } - }, - { - "code": "reportImplicitAbstractClass", - "range": { - "startColumn": 6, - "endColumn": 13, + "startColumn": 6, + "endColumn": 13, "lineCount": 1 } }, @@ -40260,15 +34412,15 @@ } }, { - "code": "reportAny", + "code": "reportUnknownMemberType", "range": { - "startColumn": 46, - "endColumn": 67, + "startColumn": 50, + "endColumn": 66, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { "startColumn": 50, "endColumn": 66, @@ -40278,8 +34430,16 @@ { "code": "reportUnknownArgumentType", "range": { - "startColumn": 50, - "endColumn": 66, + "startColumn": 23, + "endColumn": 26, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 23, + "endColumn": 26, "lineCount": 1 } }, @@ -40404,10 +34564,10 @@ } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 22, + "startColumn": 16, + "endColumn": 61, "lineCount": 1 } }, @@ -40710,27 +34870,11 @@ { "code": "reportUnknownMemberType", "range": { - "startColumn": 31, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 31, - "endColumn": 61, + "startColumn": 20, + "endColumn": 34, "lineCount": 1 } }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 16, - "endColumn": 17, - "lineCount": 16 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -41038,24 +35182,8 @@ { "code": "reportUnknownMemberType", "range": { - "startColumn": 35, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 35, - "endColumn": 65, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 16, - "endColumn": 25, + "startColumn": 20, + "endColumn": 34, "lineCount": 1 } }, @@ -41390,18 +35518,18 @@ } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 26, + "startColumn": 47, + "endColumn": 50, "lineCount": 1 } }, { - "code": "reportAny", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 8, - "endColumn": 26, + "startColumn": 47, + "endColumn": 50, "lineCount": 1 } }, @@ -41486,7 +35614,7 @@ } }, { - "code": "reportUnknownParameterType", + "code": "reportImplicitOverride", "range": { "startColumn": 8, "endColumn": 21, @@ -41494,74 +35622,66 @@ } }, { - "code": "reportImplicitOverride", + "code": "reportUnknownParameterType", "range": { "startColumn": 8, - "endColumn": 21, + "endColumn": 40, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportCallIssue", "range": { - "startColumn": 16, - "endColumn": 65, - "lineCount": 1 + "startColumn": 23, + "endColumn": 33, + "lineCount": 3 } }, { - "code": "reportAttributeAccessIssue", + "code": "reportArgumentType", "range": { "startColumn": 28, - "endColumn": 65, + "endColumn": 55, "lineCount": 1 } }, { - "code": "reportUnknownParameterType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 8, - "endColumn": 40, + "startColumn": 24, + "endColumn": 48, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportCallIssue", "range": { "startColumn": 23, - "endColumn": 51, + "endColumn": 68, "lineCount": 1 } }, { "code": "reportArgumentType", "range": { - "startColumn": 50, - "endColumn": 54, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 24, - "endColumn": 48, + "startColumn": 53, + "endColumn": 61, "lineCount": 1 } }, { "code": "reportUnknownMemberType", "range": { - "startColumn": 23, - "endColumn": 52, + "startColumn": 12, + "endColumn": 24, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 24, + "startColumn": 25, + "endColumn": 33, "lineCount": 1 } }, @@ -41821,6 +35941,262 @@ "lineCount": 1 } }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 34, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 16, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 23, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 23, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 30, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 30, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 39, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 39, + "endColumn": 46, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 48, + "endColumn": 56, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 48, + "endColumn": 56, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 60, + "endColumn": 66, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 60, + "endColumn": 66, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 14, + "endColumn": 45, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 55, + "endColumn": 62, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 55, + "endColumn": 62, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 19, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 34, + "endColumn": 41, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 51, + "endColumn": 58, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 69, + "endColumn": 77, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 18, + "endColumn": 24, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 20, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 27, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 34, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 34, + "endColumn": 38, + "lineCount": 1 + } + }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 40, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportMissingParameterType", + "range": { + "startColumn": 40, + "endColumn": 50, + "lineCount": 1 + } + }, + { + "code": "reportIncompatibleMethodOverride", + "range": { + "startColumn": 8, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportImplicitOverride", + "range": { + "startColumn": 8, + "endColumn": 18, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 16, + "endColumn": 28, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 34, + "lineCount": 1 + } + }, { "code": "reportUnknownParameterType", "range": { @@ -41880,7 +36256,7 @@ { "code": "reportUnknownParameterType", "range": { - "startColumn": 48, + "startColumn": 50, "endColumn": 56, "lineCount": 1 } @@ -41888,27 +36264,11 @@ { "code": "reportMissingParameterType", "range": { - "startColumn": 48, + "startColumn": 50, "endColumn": 56, "lineCount": 1 } }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 60, - "endColumn": 66, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 60, - "endColumn": 66, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -41960,16 +36320,8 @@ { "code": "reportUnknownArgumentType", "range": { - "startColumn": 69, - "endColumn": 77, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 18, - "endColumn": 24, + "startColumn": 62, + "endColumn": 68, "lineCount": 1 } }, @@ -42061,214 +36413,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 23, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 23, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 30, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 30, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 39, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 39, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 50, - "endColumn": 56, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 50, - "endColumn": 56, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 14, - "endColumn": 45, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 55, - "endColumn": 62, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 55, - "endColumn": 62, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 19, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 34, - "endColumn": 41, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 51, - "endColumn": 58, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 62, - "endColumn": 68, - "lineCount": 1 - } - }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 20, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 20, - "lineCount": 1 - } - }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 34, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 34, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 40, - "endColumn": 50, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 40, - "endColumn": 50, - "lineCount": 1 - } - }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 18, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 18, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -42288,8 +36432,8 @@ { "code": "reportUnknownMemberType", "range": { - "startColumn": 16, - "endColumn": 28, + "startColumn": 20, + "endColumn": 34, "lineCount": 1 } }, @@ -42669,6 +36813,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 20, + "endColumn": 34, + "lineCount": 1 + } + }, { "code": "reportUnknownArgumentType", "range": { @@ -42677,6 +36829,14 @@ "lineCount": 8 } }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 28, + "lineCount": 1 + } + }, { "code": "reportIncompatibleMethodOverride", "range": { @@ -42853,6 +37013,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 44, + "endColumn": 47, + "lineCount": 1 + } + }, { "code": "reportUnknownMemberType", "range": { @@ -42861,6 +37029,22 @@ "lineCount": 1 } }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 50, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 48, + "endColumn": 51, + "lineCount": 1 + } + }, { "code": "reportUnknownMemberType", "range": { @@ -42869,6 +37053,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 42, + "endColumn": 45, + "lineCount": 1 + } + }, { "code": "reportUnknownArgumentType", "range": { @@ -42877,6 +37069,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 33, + "endColumn": 36, + "lineCount": 1 + } + }, { "code": "reportUnknownArgumentType", "range": { @@ -42885,6 +37085,30 @@ "lineCount": 1 } }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 33, + "endColumn": 36, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 32, + "endColumn": 35, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 33, + "endColumn": 36, + "lineCount": 1 + } + }, { "code": "reportUnknownArgumentType", "range": { @@ -42893,6 +37117,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 38, + "endColumn": 41, + "lineCount": 1 + } + }, { "code": "reportUnknownMemberType", "range": { @@ -42901,6 +37133,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 57, + "endColumn": 60, + "lineCount": 1 + } + }, { "code": "reportUnknownMemberType", "range": { @@ -42909,6 +37149,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 40, + "endColumn": 43, + "lineCount": 1 + } + }, { "code": "reportUnknownMemberType", "range": { @@ -42917,6 +37165,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 40, + "endColumn": 43, + "lineCount": 1 + } + }, { "code": "reportUnknownMemberType", "range": { @@ -42925,6 +37181,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 29, + "endColumn": 32, + "lineCount": 1 + } + }, { "code": "reportUnknownParameterType", "range": { @@ -43847,14 +38111,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 12, - "lineCount": 1 - } - }, { "code": "reportUnknownParameterType", "range": { @@ -43895,14 +38151,6 @@ "lineCount": 1 } }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 24, - "endColumn": 38, - "lineCount": 2 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -44385,14 +38633,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 21, - "lineCount": 1 - } - }, { "code": "reportImplicitOverride", "range": { @@ -44401,22 +38641,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 16, - "endColumn": 65, - "lineCount": 1 - } - }, - { - "code": "reportAttributeAccessIssue", - "range": { - "startColumn": 28, - "endColumn": 65, - "lineCount": 1 - } - }, { "code": "reportUnknownParameterType", "range": { @@ -44865,14 +39089,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 37, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -45098,10 +39314,10 @@ } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 21, + "startColumn": 20, + "endColumn": 34, "lineCount": 1 } }, @@ -45394,10 +39610,10 @@ } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 21, + "startColumn": 20, + "endColumn": 34, "lineCount": 1 } }, @@ -45682,10 +39898,10 @@ } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 12, - "endColumn": 21, + "startColumn": 20, + "endColumn": 34, "lineCount": 1 } }, @@ -46025,22 +40241,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 35, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 35, - "endColumn": 46, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -46065,14 +40265,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 35, - "endColumn": 54, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -46097,22 +40289,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 35, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 35, - "endColumn": 46, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -46137,14 +40313,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 35, - "endColumn": 54, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -47499,46 +41667,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 20, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 20, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 26, - "endColumn": 36, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 26, - "endColumn": 36, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 63, - "endColumn": 73, - "lineCount": 1 - } - }, { "code": "reportUnknownParameterType", "range": { @@ -48477,38 +42605,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 4, - "endColumn": 21, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 22, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 22, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 11, - "endColumn": 15, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -48821,334 +42917,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 28, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 28, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 40, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 40, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 7, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 29, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 36, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 36, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 51, - "endColumn": 76, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 51, - "endColumn": 76, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 4, - "endColumn": 20, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 21, - "endColumn": 33, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 21, - "endColumn": 33, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 19, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 44, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 18, - "endColumn": 33, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 39, - "endColumn": 59, - "lineCount": 1 - } - }, - { - "code": "reportUnknownLambdaType", - "range": { - "startColumn": 46, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 51, - "endColumn": 59, - "lineCount": 1 - } - }, - { - "code": "reportUnknownLambdaType", - "range": { - "startColumn": 51, - "endColumn": 59, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 4, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 28, - "endColumn": 40, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 28, - "endColumn": 40, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 19, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 36, - "endColumn": 55, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 44, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 18, - "endColumn": 33, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 39, - "endColumn": 59, - "lineCount": 1 - } - }, - { - "code": "reportUnknownLambdaType", - "range": { - "startColumn": 46, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 51, - "endColumn": 59, - "lineCount": 1 - } - }, - { - "code": "reportUnknownLambdaType", - "range": { - "startColumn": 51, - "endColumn": 59, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 4, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 27, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 27, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 25, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 54, - "endColumn": 66, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 4, - "endColumn": 33, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 34, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 34, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 12, - "endColumn": 25, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 61, - "endColumn": 73, - "lineCount": 1 - } - }, { "code": "reportUnannotatedClassAttribute", "range": { @@ -50661,6 +44429,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 10, + "endColumn": 24, + "lineCount": 1 + } + }, { "code": "reportMissingTypeStubs", "range": { @@ -50773,6 +44549,22 @@ "lineCount": 1 } }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 19, + "endColumn": 37, + "lineCount": 1 + } + }, + { + "code": "reportUnknownMemberType", + "range": { + "startColumn": 19, + "endColumn": 36, + "lineCount": 1 + } + }, { "code": "reportAny", "range": { @@ -50975,14 +44767,6 @@ "lineCount": 1 } }, - { - "code": "reportAny", - "range": { - "startColumn": 8, - "endColumn": 35, - "lineCount": 1 - } - }, { "code": "reportUnannotatedClassAttribute", "range": { @@ -51143,22 +44927,6 @@ "lineCount": 1 } }, - { - "code": "reportAny", - "range": { - "startColumn": 38, - "endColumn": 65, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 38, - "endColumn": 65, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -51199,14 +44967,6 @@ "lineCount": 1 } }, - { - "code": "reportAny", - "range": { - "startColumn": 38, - "endColumn": 65, - "lineCount": 1 - } - }, { "code": "reportUnknownParameterType", "range": { @@ -51239,22 +44999,6 @@ "lineCount": 1 } }, - { - "code": "reportAny", - "range": { - "startColumn": 38, - "endColumn": 65, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 38, - "endColumn": 65, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -51295,14 +45039,6 @@ "lineCount": 1 } }, - { - "code": "reportAny", - "range": { - "startColumn": 38, - "endColumn": 65, - "lineCount": 1 - } - }, { "code": "reportUnknownParameterType", "range": { @@ -51351,22 +45087,6 @@ "lineCount": 1 } }, - { - "code": "reportAny", - "range": { - "startColumn": 38, - "endColumn": 65, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 38, - "endColumn": 65, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -51391,22 +45111,6 @@ "lineCount": 1 } }, - { - "code": "reportAny", - "range": { - "startColumn": 38, - "endColumn": 65, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 38, - "endColumn": 65, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -51431,14 +45135,6 @@ "lineCount": 1 } }, - { - "code": "reportAny", - "range": { - "startColumn": 39, - "endColumn": 66, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -51479,14 +45175,6 @@ "lineCount": 1 } }, - { - "code": "reportAny", - "range": { - "startColumn": 39, - "endColumn": 66, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -51559,22 +45247,6 @@ "lineCount": 1 } }, - { - "code": "reportAny", - "range": { - "startColumn": 38, - "endColumn": 65, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 38, - "endColumn": 65, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -51599,14 +45271,6 @@ "lineCount": 1 } }, - { - "code": "reportAny", - "range": { - "startColumn": 38, - "endColumn": 65, - "lineCount": 1 - } - }, { "code": "reportUnknownParameterType", "range": { @@ -51655,22 +45319,6 @@ "lineCount": 1 } }, - { - "code": "reportAny", - "range": { - "startColumn": 38, - "endColumn": 65, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 38, - "endColumn": 65, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -51695,14 +45343,6 @@ "lineCount": 1 } }, - { - "code": "reportAny", - "range": { - "startColumn": 38, - "endColumn": 65, - "lineCount": 1 - } - }, { "code": "reportUnknownParameterType", "range": { @@ -51751,22 +45391,6 @@ "lineCount": 1 } }, - { - "code": "reportAny", - "range": { - "startColumn": 39, - "endColumn": 66, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 39, - "endColumn": 66, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -51783,14 +45407,6 @@ "lineCount": 1 } }, - { - "code": "reportAny", - "range": { - "startColumn": 39, - "endColumn": 66, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -51863,22 +45479,6 @@ "lineCount": 1 } }, - { - "code": "reportAny", - "range": { - "startColumn": 38, - "endColumn": 65, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 38, - "endColumn": 65, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -51903,14 +45503,6 @@ "lineCount": 1 } }, - { - "code": "reportAny", - "range": { - "startColumn": 38, - "endColumn": 65, - "lineCount": 1 - } - }, { "code": "reportUnknownParameterType", "range": { @@ -51959,22 +45551,6 @@ "lineCount": 1 } }, - { - "code": "reportAny", - "range": { - "startColumn": 38, - "endColumn": 65, - "lineCount": 1 - } - }, - { - "code": "reportAny", - "range": { - "startColumn": 38, - "endColumn": 65, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -51999,14 +45575,6 @@ "lineCount": 1 } }, - { - "code": "reportAny", - "range": { - "startColumn": 38, - "endColumn": 65, - "lineCount": 1 - } - }, { "code": "reportUnknownParameterType", "range": { @@ -52055,14 +45623,6 @@ "lineCount": 1 } }, - { - "code": "reportAny", - "range": { - "startColumn": 38, - "endColumn": 65, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -52079,14 +45639,6 @@ "lineCount": 1 } }, - { - "code": "reportAny", - "range": { - "startColumn": 38, - "endColumn": 65, - "lineCount": 1 - } - }, { "code": "reportUnknownParameterType", "range": { @@ -56571,24 +50123,6 @@ "lineCount": 1 } } - ], - "./test/test_misc.py": [ - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 12, - "endColumn": 30, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 26, - "lineCount": 1 - } - } ] } } \ No newline at end of file diff --git a/doc/conf.py b/doc/conf.py index 9ae15030..f54cc414 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -2,8 +2,7 @@ from urllib.request import urlopen -_conf_url = \ - "https://raw.githubusercontent.com/inducer/sphinxconfig/main/sphinxconfig.py" +_conf_url = "https://raw.githubusercontent.com/inducer/sphinxconfig/main/sphinxconfig.py" with urlopen(_conf_url) as _inf: exec(compile(_inf.read(), _conf_url, "exec"), globals()) @@ -28,3 +27,17 @@ nitpick_ignore_regex = [ ["py:class", r"symengine\.(.+)"], # :cry: ] + +sphinxconfig_missing_reference_aliases = { + # sympy + "sp.Matrix": "class:sympy.matrices.dense.DenseMatrix", + # pymbolic + "ArithmeticExpression": "obj:pymbolic.ArithmeticExpression", + "Expression": "obj:pymbolic.typing.Expression", + # sumpy + "ArithmeticExpr": "obj:sumpy.kernel.ArithmeticExpr", +} + + +def setup(app): + app.connect("missing-reference", process_autodoc_missing_reference) # noqa: F821 diff --git a/sumpy/codegen.py b/sumpy/codegen.py index 29abf02a..f903464e 100644 --- a/sumpy/codegen.py +++ b/sumpy/codegen.py @@ -549,7 +549,12 @@ def map_constant(self, expr, rec_self=None): class VectorComponentRewriter(CSECachingIdentityMapper, CallExternalRecMapper): """For names in name_whitelist, turn ``a3`` into ``a[3]``.""" - def __init__(self, name_whitelist=frozenset()): + name_whitelist: frozenset[str] + + def __init__(self, name_whitelist: frozenset[str] | None = None) -> None: + if name_whitelist is None: + name_whitelist = frozenset() + self.name_whitelist = name_whitelist def map_variable(self, expr, *args): diff --git a/sumpy/derivative_taker.py b/sumpy/derivative_taker.py index 926b0977..e7181c1e 100644 --- a/sumpy/derivative_taker.py +++ b/sumpy/derivative_taker.py @@ -39,7 +39,7 @@ """ import logging -from typing import Any +from typing import TYPE_CHECKING import numpy as np @@ -49,6 +49,9 @@ from sumpy.tools import add_mi, add_to_sac +if TYPE_CHECKING: + import sympy as sp + logger = logging.getLogger(__name__) @@ -341,7 +344,7 @@ def diff(self, mi, q=0): # {{{ DifferentiatedExprDerivativeTaker -DerivativeCoeffDict = dict[tuple[int, ...], Any] +DerivativeCoeffDict = dict[tuple[int, ...], int | float | complex | sym.Expr] @tag_dataclass @@ -387,8 +390,10 @@ def diff(self, mi, save_intermediate=lambda x: x): # {{{ Helper functions -def diff_derivative_coeff_dict(derivative_coeff_dict: DerivativeCoeffDict, - variable_idx, variables): +def diff_derivative_coeff_dict( + derivative_coeff_dict: DerivativeCoeffDict, + variable_idx: int, + variables: sp.Matrix) -> DerivativeCoeffDict: """Differentiate a derivative transformation dictionary given by *derivative_coeff_dict* using the variable given by **variable_idx** and return a new derivative transformation dictionary. @@ -397,15 +402,17 @@ def diff_derivative_coeff_dict(derivative_coeff_dict: DerivativeCoeffDict, new_derivative_coeff_dict: DerivativeCoeffDict = defaultdict(lambda: 0) for mi, coeff in derivative_coeff_dict.items(): - # In the case where we have x * u.diff(x), the result should - # be x.diff(x) + x * u.diff(x, x) + # In the case where we have x * u.diff(x), the result should be + # x.diff(x) + x * u.diff(x, x) # Calculate the first term by differentiating the coefficients new_coeff = sym.sympify(coeff).diff(variables[variable_idx]) new_derivative_coeff_dict[mi] += new_coeff + # Next calculate the second term by differentiating the derivatives new_mi = list(mi) new_mi[variable_idx] += 1 new_derivative_coeff_dict[tuple(new_mi)] += coeff + return {derivative: coeff for derivative, coeff in new_derivative_coeff_dict.items() if coeff != 0} diff --git a/sumpy/e2e.py b/sumpy/e2e.py index e6bedebf..4f5162f0 100644 --- a/sumpy/e2e.py +++ b/sumpy/e2e.py @@ -387,7 +387,7 @@ def get_inner_loopy_kernel(self, result_dtype): ncoeff_src = len(self.src_expansion) ncoeff_tgt = len(self.tgt_expansion) - domains = [] + domains: list[str] = [] insns = self.get_translation_loopy_insns(result_dtype) tgt_coeffs = pymbolic.var("tgt_coeffs") for i in range(ncoeff_tgt): diff --git a/sumpy/expansion/diff_op.py b/sumpy/expansion/diff_op.py index e3d9ad07..f2127a44 100644 --- a/sumpy/expansion/diff_op.py +++ b/sumpy/expansion/diff_op.py @@ -113,7 +113,7 @@ def order(self) -> int: deg = max(deg, max(sum(ident.mi) for ident in eq)) return deg - def __mul__(self, param: Number_ish) -> LinearPDESystemOperator: + def __mul__(self, param: Number_ish | sym.Expr) -> LinearPDESystemOperator: eqs: list[Mapping[DerivativeIdentifier, sp.Expr]] = [] for eq in self.eqs: deriv_ident_to_coeff = {} diff --git a/sumpy/kernel.py b/sumpy/kernel.py index f654eb2a..921ca958 100644 --- a/sumpy/kernel.py +++ b/sumpy/kernel.py @@ -23,11 +23,22 @@ THE SOFTWARE. """ -from abc import abstractmethod +from abc import ABC, abstractmethod from collections import defaultdict -from typing import TYPE_CHECKING, ClassVar +from dataclasses import dataclass +from typing import ( + TYPE_CHECKING, + ClassVar, + Generic, + Literal, + TypeAlias, + TypeVar, + cast, + overload, +) import numpy as np +from typing_extensions import override import loopy as lp import pymbolic.primitives as prim @@ -37,38 +48,67 @@ from pytools import memoize_method import sumpy.symbolic as sym +from sumpy.derivative_taker import ( + DerivativeCoeffDict, + DifferentiatedExprDerivativeTaker, + ExprDerivativeTaker, + diff_derivative_coeff_dict, +) from sumpy.symbolic import SpatialConstant, pymbolic_real_norm_2 if TYPE_CHECKING: + from collections.abc import Callable, Iterable, Sequence + import sympy as sp + from sumpy.assignment_collection import SymbolicAssignmentCollection from sumpy.expansion.diff_op import LinearPDESystemOperator - __doc__ = """ Kernel interface ---------------- -.. autoclass:: Kernel +.. autoclass:: ArithmeticExpr + .. autoclass:: KernelArgument +.. autoclass:: Kernel + :show-inheritance: Symbolic kernels ---------------- .. autoclass:: ExpressionKernel + :show-inheritance: + :members: mapper_method PDE kernels ----------- .. autoclass:: LaplaceKernel + :show-inheritance: + :members: mapper_method .. autoclass:: BiharmonicKernel + :show-inheritance: + :members: mapper_method .. autoclass:: HelmholtzKernel + :show-inheritance: + :members: mapper_method .. autoclass:: YukawaKernel + :show-inheritance: + :members: mapper_method .. autoclass:: StokesletKernel + :show-inheritance: + :members: mapper_method .. autoclass:: StressletKernel + :show-inheritance: + :members: mapper_method .. autoclass:: ElasticityKernel + :show-inheritance: + :members: mapper_method .. autoclass:: LineOfCompressionKernel + :show-inheritance: + :members: mapper_method Derivatives ----------- @@ -78,66 +118,83 @@ .. autoclass:: DerivativeBase .. autoclass:: AxisTargetDerivative + :show-inheritance: + :undoc-members: + :members: mapper_method,target_array_name .. autoclass:: AxisSourceDerivative + :show-inheritance: + :members: mapper_method +.. autoclass:: DirectionalDerivative + :show-inheritance: + :members: directional_kind .. autoclass:: DirectionalSourceDerivative + :show-inheritance: + :members: mapper_method,directional_kind .. autoclass:: DirectionalTargetDerivative + :show-inheritance: + :undoc-members: + :members: mapper_method,directional_kind,target_array_name Transforming kernels -------------------- +.. autoclass:: TargetPointMultiplier + :undoc-members: + :members: mapper_method,target_array_name + +.. autoclass:: ResultT + .. autoclass:: KernelMapper + :show-inheritance: .. autoclass:: KernelCombineMapper + :show-inheritance: .. autoclass:: KernelIdentityMapper + :show-inheritance: .. autoclass:: AxisSourceDerivativeRemover + :show-inheritance: .. autoclass:: AxisTargetDerivativeRemover + :show-inheritance: .. autoclass:: SourceDerivativeRemover + :show-inheritance: .. autoclass:: TargetDerivativeRemover -.. autoclass:: TargetPointMultiplier + :show-inheritance: +.. autoclass:: TargetTransformationRemover + :show-inheritance: .. autoclass:: DerivativeCounter + :show-inheritance: """ +ArithmeticExpr: TypeAlias = int | float | complex | sym.Basic + +@dataclass(frozen=True) class KernelArgument: """ - .. attribute:: loopy_arg - - A :class:`loopy.KernelArgument` instance describing the type, - name, and other features of this kernel argument when - passed to a generated piece of code. + .. autoattribute:: loopy_arg """ - def __init__(self, loopy_arg): - self.loopy_arg = loopy_arg + loopy_arg: lp.KernelArgument + """A :class:`loopy.KernelArgument` instance describing the type, name, and + other features of this kernel argument when passed to a generated piece of + code. + """ @property - def name(self): + def name(self) -> str: return self.loopy_arg.name - def __eq__(self, other): - if id(self) == id(other): - return True - if type(self) is not KernelArgument: - return NotImplemented - if type(other) is not KernelArgument: - return NotImplemented - return self.loopy_arg == other.loopy_arg - - def __ne__(self, other): - # Needed for python2 - return not self == other - - def __hash__(self): # pylint: disable=invalid-hash-returned - return (type(self), self.loopy_arg) - # {{{ basic kernel interface -class Kernel: +@dataclass(frozen=True) +class Kernel(ABC): """Basic kernel interface. - .. attribute:: is_complex_valued - .. attribute:: is_translation_invariant - .. attribute:: dim + .. autoattribute:: mapper_method + .. autoattribute:: is_translation_invariant + + .. autoattribute:: dim + .. autoproperty:: is_complex_valued .. automethod:: get_base_kernel .. automethod:: replace_base_kernel @@ -151,108 +208,108 @@ class Kernel: .. automethod:: get_source_args """ - if TYPE_CHECKING: - @property - def is_complex_valued(self) -> bool: - ... - dim: int - init_arg_names: ClassVar[tuple[str, ...]] - _hash_value: int - - def __init__(self, dim: int) -> None: - self.dim = dim - - # {{{ hashing/pickling/equality - - def __eq__(self, other): - if self is other: - return True - elif hash(self) != hash(other): - return False - else: - return (type(self) is type(other) - and self.__getinitargs__() == other.__getinitargs__()) - - def __ne__(self, other): - return not self.__eq__(other) - - def __hash__(self) -> int: - try: - return self._hash_value - except AttributeError: - self._hash_value = hash((type(self), *self.__getinitargs__())) - return self._hash_value - - def update_persistent_hash(self, key_hash, key_builder): - key_hash.update(type(self).__name__.encode("utf8")) - key_builder.rec(key_hash, self.__getinitargs__()) - - def __getinitargs__(self): - return (self.dim,) + """Dimension of the space the kernel is defined in.""" - def __getstate__(self): - return self.__getinitargs__() - - def __setstate__(self, state): - # Can't use trivial pickling: hash_value cache must stay unset - assert len(self.init_arg_names) == len(state) - self.__init__(*state) + # TODO: Allow kernels that are not translation invariant + is_translation_invariant: ClassVar[bool] = True + """A boolean flag indicating whether the kernel is translation invariant.""" + mapper_method: ClassVar[str] + """The name of the mapper method called for the kernel.""" - # }}} + @property + @abstractmethod + def is_complex_valued(self) -> bool: + """A boolean flag indicating whether this kernel is complex valued.""" def get_base_kernel(self) -> Kernel: - """Return the kernel being wrapped by this one, or else - *self*. + """ + :returns: the kernel being wrapped by this one, or else *self*. """ return self def replace_base_kernel(self, new_base_kernel: Kernel) -> Kernel: - """Return the base kernel being wrapped by this one, or else - *new_base_kernel*. + """ + :returns: the base kernel being wrapped by this one, or else + *new_base_kernel*. """ return new_base_kernel def prepare_loopy_kernel(self, loopy_knl: lp.TranslationUnit) -> lp.TranslationUnit: - """Apply some changes (such as registering function - manglers) to the kernel. Return the new kernel. + """Apply some changes (such as registering function manglers) to the kernel. + + :returns: a new :mod:`loopy` kernel with the applied changes. """ return loopy_knl - def get_code_transformer(self): - """Return a function to postprocess the :mod:`pymbolic` - expression generated from the result of - :meth:`get_expression` on the way to code generation. + def get_code_transformer(self) -> Callable[[Expression], Expression]: + """ + :returns: a function to postprocess the :mod:`pymbolic` expression + generated from the result of :meth:`get_expression` on the way to + code generation. """ return lambda expr: expr @abstractmethod - def get_expression(self, dist_vec: np.ndarray) -> sp.Expr: - r"""Return a :mod:`sympy` expression for the kernel.""" - ... + def get_expression(self, dist_vec: sp.Matrix) -> ArithmeticExpr: + """ + :returns: a :mod:`sympy` expression for the kernel. + """ - def _diff(self, expr, vec, mi): - """Take the derivative of an expression + @abstractmethod + def get_pde_as_diff_op(self) -> LinearPDESystemOperator: + r""" + :returns: the PDE for the kernel as a + :class:`sumpy.expansion.diff_op.LinearPDESystemOperator` object + :math:`\mathcal{L}`, where :math:`\mathcal{L}(u) = 0` is the PDE. """ + + def _diff(self, + expr: sym.Expr, + vec: sp.Matrix, + mi: tuple[int, ...]) -> sym.Expr: + """Take the derivative of an expression.""" for i in range(self.dim): if mi[i] == 0: continue expr = expr.diff(vec[i], mi[i]) + return expr - def postprocess_at_source(self, expr, avec): + @abstractmethod + def get_derivative_taker( + self, + dvec: sp.Matrix, + rscale: ArithmeticExpr, + sac: SymbolicAssignmentCollection, + ) -> ExprDerivativeTaker: + """ + :returns: an :class:`~sumpy.derivative_taker.ExprDerivativeTaker` instance + that supports taking derivatives of the base kernel with respect to + *dvec*. + """ + + @overload + def postprocess_at_source( + self, expr: sym.Expr, avec: sp.Matrix + ) -> sym.Expr: ... + + @overload + def postprocess_at_source( + self, expr: ExprDerivativeTaker, avec: sp.Matrix + ) -> DifferentiatedExprDerivativeTaker: ... + + def postprocess_at_source( + self, expr: sym.Expr | ExprDerivativeTaker, avec: sp.Matrix, + ) -> sym.Expr | DifferentiatedExprDerivativeTaker: """Transform a kernel evaluation or expansion expression in a place - where the vector a (something - source) is known. ("something" may be - an expansion center or a target.) + where the vector :math:`a` (something - source) is known. ("something" may be + an expansion center or a target) The typical use of this function is to apply source-variable derivatives to the kernel. """ - from sumpy.derivative_taker import ( - DifferentiatedExprDerivativeTaker, - ExprDerivativeTaker, - ) - expr_dict = {(0,)*self.dim: 1} + expr_dict: DerivativeCoeffDict = {(0,)*self.dim: 1} expr_dict = self.get_derivative_coeff_dict_at_source(expr_dict) if isinstance(expr, ExprDerivativeTaker): return DifferentiatedExprDerivativeTaker(expr, expr_dict) @@ -260,181 +317,163 @@ def postprocess_at_source(self, expr, avec): result = 0 for mi, coeff in expr_dict.items(): result += coeff * self._diff(expr, avec, mi) + return result - def postprocess_at_target(self, expr, bvec): + @overload + def postprocess_at_target( + self, expr: sym.Expr, bvec: sp.Matrix, + ) -> sym.Expr: ... + + @overload + def postprocess_at_target( + self, expr: ExprDerivativeTaker, bvec: sp.Matrix, + ) -> DifferentiatedExprDerivativeTaker: ... + + def postprocess_at_target( + self, expr: sym.Expr | ExprDerivativeTaker, bvec: sp.Matrix, + ) -> sym.Expr | DifferentiatedExprDerivativeTaker: """Transform a kernel evaluation or expansion expression in a place - where the vector b (target - something) is known. ("something" may be - an expansion center or a target.) + where the vector :math:`b` (target - something) is known. ("something" may + be an expansion center or a target.) The typical use of this function is to apply target-variable derivatives to the kernel. - - :arg expr: may be a :class:`sympy.core.expr.Expr` or a - :class:`sumpy.derivative_taker.DifferentiatedExprDerivativeTaker`. """ return expr - def get_derivative_coeff_dict_at_source(self, expr_dict): - r"""Get the derivative transformation of the expression at source - represented by the dictionary expr_dict which is mapping from multi-index - `mi` to coefficient `coeff`. - Expression represented by the dictionary `expr_dict` is - :math:`\sum_{mi} \frac{\partial^mi}{x^mi}G * coeff`. Returns an - expression of the same type. + def get_derivative_coeff_dict_at_source( + self, expr_dict: DerivativeCoeffDict, + ) -> DerivativeCoeffDict: + r"""Get the derivative transformation of the expression at the source. + + The transformation is represented by the *expr_dict* which maps from a + multi-index *mi* to a coefficient *coeff*. The Expression represented by + *expr_dict* is :math:`\sum_{mi} \frac{\partial^mi}{x^mi}G * coeff`. This function is meant to be overridden by child classes where necessary. """ return expr_dict @abstractmethod - def get_global_scaling_const(self): - r"""Return a global scaling constant of the kernel. + def get_global_scaling_const(self) -> ArithmeticExpr: + r"""A global scaling constant of the kernel. + Typically, this ensures that the kernel is scaled so that - :math:`\mathcal L(G)(x)=C\delta(x)` with a constant of 1, where - :math:`\mathcal L` is the PDE operator associated with the kernel. - Not to be confused with *rscale*, which keeps expansion - coefficients benignly scaled. + :math:`\mathcal{L}(G)(x) = C \delta(x)` with a constant of 1, where + :math:`\mathcal{L}` is the PDE operator associated with the kernel. Not + to be confused with *rscale*, which keeps expansion coefficients + benignly scaled. """ - ... - def get_args(self) -> list[KernelArgument]: - """Return list of :class:`KernelArgument` instances describing - extra arguments used by the kernel. + def get_args(self) -> Sequence[KernelArgument]: + """ + :returns: list of :class:`KernelArgument` instances describing extra + arguments used by the kernel. """ return [] - def get_source_args(self) -> list[KernelArgument]: - """Return list of :class:`KernelArgument` instances describing - extra arguments used by kernel in picking up contributions - from point sources. + def get_source_args(self) -> Sequence[KernelArgument]: + """ + :returns: list of :class:`KernelArgument` instances describing extra + arguments used by kernel in picking up contributions from point sources. """ return [] - @abstractmethod - def get_pde_as_diff_op(self) -> LinearPDESystemOperator: - ... - - # TODO: Allow kernels that are not translation invariant - is_translation_invariant = True - # }}} -class ExpressionKernel(Kernel): +@dataclass(frozen=True) +class ExpressionKernel(Kernel, ABC): r""" - .. attribute:: expression - - A :mod:`pymbolic` expression depending on - variables *d_1* through *d_N* where *N* equals *dim*. - (These variables match what is returned from - :func:`pymbolic.primitives.make_sym_vector` with - argument `"d"`.) Any variable that is not *d* or - a :class:`~sumpy.symbolic.SpatialConstant` will be - viewed as potentially spatially varying. - - .. attribute:: global_scaling_const - - A constant :mod:`pymbolic` expression for the - global scaling of the kernel. Typically, this ensures that - the kernel is scaled so that :math:`\mathcal L(G)(x)=C\delta(x)` - with a constant of 1, where :math:`\mathcal L` is the PDE - operator associated with the kernel. Not to be confused with - *rscale*, which keeps expansion coefficients benignly scaled. - - .. attribute:: is_complex_valued - - .. automethod:: __init__ - .. automethod:: get_expression + .. autoattribute:: expression + .. autoattribute:: global_scaling_const """ - init_arg_names: ClassVar[tuple[str, ...]] = ( - "dim", "expression", "global_scaling_const", "is_complex_valued") - - def __init__(self, dim, expression, global_scaling_const, - is_complex_valued): - # expression and global_scaling_const are pymbolic objects because - # those pickle cleanly. D'oh, sympy! + mapper_method: ClassVar[str] = "map_expression_kernel" - Kernel.__init__(self, dim) - - self.expression = expression - self.global_scaling_const = global_scaling_const - self.is_complex_valued = is_complex_valued + expression: Expression + """A :mod:`pymbolic` expression depending on variables *d_1* through *d_N* + where *N* equals *dim*. These variables match what is returned from + :func:`pymbolic.primitives.make_sym_vector` with argument `"d"`. Any + variable that is not *d* or a :class:`~sumpy.symbolic.SpatialConstant` will + be viewed as potentially spatially varying. + """ - def __getinitargs__(self): - return (self.dim, self.expression, self.global_scaling_const, - self.is_complex_valued) + global_scaling_const: Expression + r"""A constant :mod:`pymbolic` expression for the global scaling of the + kernel. Typically, this ensures that the kernel is scaled so that + :math:`\mathcal{L}(G)(x)=C\delta(x)` with a constant of 1, where + :math:`\mathcal{L}` is the PDE operator associated with the kernel. Not to + be confused with *rscale*, which keeps expansion coefficients benignly + scaled. + """ - def __repr__(self): + @override + def __str__(self) -> str: return f"ExprKnl{self.dim}D" - def get_expression(self, scaled_dist_vec): - """Return :attr:`expression` as a :class:`sumpy.symbolic.Basic`.""" - + @override + def get_expression(self, dist_vec: sp.Matrix) -> ArithmeticExpr: from sumpy.symbolic import PymbolicToSympyMapperWithSymbols expr = PymbolicToSympyMapperWithSymbols()(self.expression) - if self.dim != len(scaled_dist_vec): - raise ValueError("dist_vec length does not match expected dimension") + if self.dim != len(dist_vec): + raise ValueError( + "'dist_vec' length does not match expected dimension: " + f"kernel dim is '{self.dim}' and dist_vec has length '{len(dist_vec)}'") from sumpy.symbolic import Symbol expr = expr.xreplace({ Symbol(f"d{i}"): dist_vec_i - for i, dist_vec_i in enumerate(scaled_dist_vec) + for i, dist_vec_i in enumerate(dist_vec) }) return expr - def get_global_scaling_const(self): - """Return a global scaling of the kernel as a :class:`sumpy.symbolic.Basic`. - """ - + @override + def get_global_scaling_const(self) -> ArithmeticExpr: from sumpy.symbolic import PymbolicToSympyMapperWithSymbols - return PymbolicToSympyMapperWithSymbols()( - self.global_scaling_const) + return PymbolicToSympyMapperWithSymbols()(self.global_scaling_const) + + @override + def get_derivative_taker( + self, + dvec: sp.Matrix, + rscale: ArithmeticExpr, + sac: SymbolicAssignmentCollection, + ) -> ExprDerivativeTaker: + return ExprDerivativeTaker(self.get_expression(dvec), dvec, rscale, sac) - def update_persistent_hash(self, key_hash, key_builder): - key_hash.update(type(self).__name__.encode("utf8")) - for _, value in zip(self.init_arg_names, self.__getinitargs__(), strict=True): - key_builder.rec(key_hash, value) + @override + def get_pde_as_diff_op(self) -> LinearPDESystemOperator: + raise NotImplementedError - mapper_method = "map_expression_kernel" - def get_derivative_taker(self, dvec, rscale, sac): - """Return a :class:`sumpy.derivative_taker.ExprDerivativeTaker` instance - that supports taking derivatives of the base kernel with respect to dvec. - """ - from sumpy.derivative_taker import ExprDerivativeTaker - return ExprDerivativeTaker(self.get_expression(dvec), dvec, rscale, sac) +class OneKernel(ExpressionKernel): + def __init__(self, dim: int): + super().__init__( + dim=dim, + expression=1, + global_scaling_const=1, + ) - def get_pde_as_diff_op(self): - r""" - Returns the PDE for the kernel as a - :class:`sumpy.expansion.diff_op.LinearPDESystemOperator` object `L` - where `L(u) = 0` is the PDE. - """ - raise NotImplementedError + @property + @override + def is_complex_valued(self) -> bool: + return False -one_kernel_2d = ExpressionKernel( - dim=2, - expression=1, - global_scaling_const=1, - is_complex_valued=False) -one_kernel_3d = ExpressionKernel( - dim=3, - expression=1, - global_scaling_const=1, - is_complex_valued=False) +one_kernel_2d = OneKernel(2) +one_kernel_3d = OneKernel(3) # {{{ PDE kernels class LaplaceKernel(ExpressionKernel): - init_arg_names = ("dim",) + mapper_method: ClassVar[str] = "map_laplace_kernel" - def __init__(self, dim): + def __init__(self, dim: int) -> None: # See (Kress LIE, Thm 6.2) for scaling if dim == 2: r = pymbolic_real_norm_2(make_sym_vector("d", dim)) @@ -445,39 +484,40 @@ def __init__(self, dim): expr = 1/r scaling = 1/(4*var("pi")) else: - raise NotImplementedError("unsupported dimensionality") + raise NotImplementedError(f"unsupported dimension: '{dim}'") - super().__init__( - dim, - expression=expr, - global_scaling_const=scaling, - is_complex_valued=False) + super().__init__(dim, expression=expr, global_scaling_const=scaling) - def __getinitargs__(self): - return (self.dim,) + @property + @override + def is_complex_valued(self) -> bool: + return False - def __repr__(self): + @override + def __str__(self) -> str: return f"LapKnl{self.dim}D" - mapper_method = "map_laplace_kernel" - - def get_derivative_taker(self, dvec, rscale, sac): - """Return a :class:`sumpy.derivative_taker.ExprDerivativeTaker` instance - that supports taking derivatives of the base kernel with respect to dvec. - """ + @override + def get_derivative_taker( + self, + dvec: sp.Matrix, + rscale: ArithmeticExpr, + sac: SymbolicAssignmentCollection, + ) -> ExprDerivativeTaker: from sumpy.derivative_taker import LaplaceDerivativeTaker return LaplaceDerivativeTaker(self.get_expression(dvec), dvec, rscale, sac) - def get_pde_as_diff_op(self): + @override + def get_pde_as_diff_op(self) -> LinearPDESystemOperator: from sumpy.expansion.diff_op import laplacian, make_identity_diff_op w = make_identity_diff_op(self.dim) return laplacian(w) class BiharmonicKernel(ExpressionKernel): - init_arg_names = ("dim",) + mapper_method: ClassVar[str] = "map_biharmonic_kernel" - def __init__(self, dim): + def __init__(self, dim: int) -> None: r = pymbolic_real_norm_2(make_sym_vector("d", dim)) if dim == 2: # Ref: Farkas, Peter. Mathematical foundations for fast algorithms @@ -493,45 +533,55 @@ def __init__(self, dim): expr = r scaling = -1/(8*var("pi")) else: - raise RuntimeError("unsupported dimensionality") + raise NotImplementedError(f"unsupported dimension: '{dim}'") - super().__init__( - dim, - expression=expr, - global_scaling_const=scaling, - is_complex_valued=False) + super().__init__(dim, expression=expr, global_scaling_const=scaling) - def __getinitargs__(self): - return (self.dim,) + @property + @override + def is_complex_valued(self) -> bool: + return False - def __repr__(self): + @override + def __str__(self) -> str: return f"BiharmKnl{self.dim}D" - mapper_method = "map_biharmonic_kernel" - - def get_derivative_taker(self, dvec, rscale, sac): - """Return a :class:`sumpy.derivative_taker.ExprDerivativeTaker` instance - that supports taking derivatives of the base kernel with respect to dvec. - """ + @override + def get_derivative_taker( + self, + dvec: sp.Matrix, + rscale: ArithmeticExpr, + sac: SymbolicAssignmentCollection, + ) -> ExprDerivativeTaker: from sumpy.derivative_taker import RadialDerivativeTaker - return RadialDerivativeTaker(self.get_expression(dvec), dvec, rscale, - sac) + return RadialDerivativeTaker(self.get_expression(dvec), dvec, rscale, sac) - def get_pde_as_diff_op(self): + @override + def get_pde_as_diff_op(self) -> LinearPDESystemOperator: from sumpy.expansion.diff_op import laplacian, make_identity_diff_op w = make_identity_diff_op(self.dim) return laplacian(laplacian(w)) +@dataclass(frozen=True) class HelmholtzKernel(ExpressionKernel): - init_arg_names = ("dim", "helmholtz_k_name", "allow_evanescent") + """ + .. autoattribute:: helmholtz_k_name + .. autoattribute:: allow_evanescent + """ - def __init__(self, dim, helmholtz_k_name="k", - allow_evanescent=False): - """ - :arg helmholtz_k_name: The argument name to use for the Helmholtz - parameter when generating functions to evaluate this kernel. - """ + mapper_method: ClassVar[str] = "map_helmholtz_kernel" + + helmholtz_k_name: str + """The argument name to use for the Helmholtz parameter when generating + functions to evaluate this kernel. + """ + allow_evanescent: bool + + def __init__(self, + dim: int, + helmholtz_k_name: str = "k", + allow_evanescent: bool = False) -> None: k = SpatialConstant(helmholtz_k_name) # Guard against code using the old positional interface. @@ -546,50 +596,47 @@ def __init__(self, dim, helmholtz_k_name="k", expr = var("exp")(var("I")*k*r)/r scaling = 1/(4*var("pi")) else: - raise RuntimeError("unsupported dimensionality") - - super().__init__( - dim, - expression=expr, - global_scaling_const=scaling, - is_complex_valued=True) + raise NotImplementedError(f"unsupported dimension: '{dim}'") - self.helmholtz_k_name = helmholtz_k_name - self.allow_evanescent = allow_evanescent + super().__init__(dim, expression=expr, global_scaling_const=scaling) - def __getinitargs__(self): - return (self.dim, self.helmholtz_k_name, - self.allow_evanescent) + object.__setattr__(self, "helmholtz_k_name", helmholtz_k_name) + object.__setattr__(self, "allow_evanescent", allow_evanescent) - def update_persistent_hash(self, key_hash, key_builder): - key_hash.update(type(self).__name__.encode("utf8")) - key_builder.rec(key_hash, (self.dim, self.helmholtz_k_name, - self.allow_evanescent)) + @property + @override + def is_complex_valued(self) -> bool: + return True - def __repr__(self): + @override + def __str__(self) -> str: return f"HelmKnl{self.dim}D({self.helmholtz_k_name})" - def prepare_loopy_kernel(self, loopy_knl): + @override + def prepare_loopy_kernel(self, loopy_knl: lp.TranslationUnit) -> lp.TranslationUnit: from sumpy.codegen import register_bessel_callables return register_bessel_callables(loopy_knl) - def get_args(self): + @override + def get_args(self) -> Sequence[KernelArgument]: k_dtype = np.complex128 if self.allow_evanescent else np.float64 return [ KernelArgument( loopy_arg=lp.ValueArg(self.helmholtz_k_name, k_dtype), )] - mapper_method = "map_helmholtz_kernel" - - def get_derivative_taker(self, dvec, rscale, sac): - """Return a :class:`sumpy.derivative_taker.ExprDerivativeTaker` instance - that supports taking derivatives of the base kernel with respect to dvec. - """ + @override + def get_derivative_taker( + self, + dvec: sp.Matrix, + rscale: ArithmeticExpr, + sac: SymbolicAssignmentCollection, + ) -> ExprDerivativeTaker: from sumpy.derivative_taker import HelmholtzDerivativeTaker return HelmholtzDerivativeTaker(self.get_expression(dvec), dvec, rscale, sac) - def get_pde_as_diff_op(self): + @override + def get_pde_as_diff_op(self) -> LinearPDESystemOperator: from sumpy.expansion.diff_op import laplacian, make_identity_diff_op w = make_identity_diff_op(self.dim) @@ -597,14 +644,20 @@ def get_pde_as_diff_op(self): return (laplacian(w) + k**2 * w) +@dataclass(frozen=True) class YukawaKernel(ExpressionKernel): - init_arg_names = ("dim", "yukawa_lambda_name") + """ + .. autoattribute:: yukawa_lambda_name + """ - def __init__(self, dim, yukawa_lambda_name="lam"): - """ - :arg yukawa_lambda_name: The argument name to use for the Yukawa - parameter when generating functions to evaluate this kernel. - """ + mapper_method: ClassVar[str] = "map_yukawa_kernel" + + yukawa_lambda_name: str + """The argument name to use for the Yukawa parameter when generating + functions to evaluate this kernel. + """ + + def __init__(self, dim: int, yukawa_lambda_name: str = "lam") -> None: lam = SpatialConstant(yukawa_lambda_name) # NOTE: The Yukawa kernel is given by [1] @@ -632,75 +685,95 @@ def __init__(self, dim, yukawa_lambda_name="lam"): scaling = -1/(4 * var("pi")**2) else: - raise RuntimeError("unsupported dimensionality") + raise NotImplementedError(f"unsupported dimension: '{dim}'") - super().__init__( - dim, - expression=expr, - global_scaling_const=scaling, - is_complex_valued=True) + super().__init__(dim, expression=expr, global_scaling_const=scaling) + object.__setattr__(self, "yukawa_lambda_name", yukawa_lambda_name) - self.yukawa_lambda_name = yukawa_lambda_name - - def __getinitargs__(self): - return (self.dim, self.yukawa_lambda_name) - - def update_persistent_hash(self, key_hash, key_builder): - key_hash.update(type(self).__name__.encode("utf8")) - key_builder.rec(key_hash, (self.dim, self.yukawa_lambda_name)) + @property + @override + def is_complex_valued(self) -> bool: + # FIXME + return True - def __repr__(self): + @override + def __str__(self) -> str: return f"YukKnl{self.dim}D({self.yukawa_lambda_name})" - def prepare_loopy_kernel(self, loopy_knl): + @override + def prepare_loopy_kernel(self, loopy_knl: lp.TranslationUnit) -> lp.TranslationUnit: from sumpy.codegen import register_bessel_callables return register_bessel_callables(loopy_knl) - def get_args(self): + @override + def get_args(self) -> Sequence[KernelArgument]: return [ KernelArgument( loopy_arg=lp.ValueArg(self.yukawa_lambda_name, np.float64), )] - mapper_method = "map_yukawa_kernel" - - def get_derivative_taker(self, dvec, rscale, sac): - """Return a :class:`sumpy.derivative_taker.ExprDerivativeTaker` instance - that supports taking derivatives of the base kernel with respect to dvec. - """ + @override + def get_derivative_taker( + self, + dvec: sp.Matrix, + rscale: ArithmeticExpr, + sac: SymbolicAssignmentCollection, + ) -> ExprDerivativeTaker: from sumpy.derivative_taker import HelmholtzDerivativeTaker return HelmholtzDerivativeTaker(self.get_expression(dvec), dvec, rscale, sac) - def get_pde_as_diff_op(self): + @override + def get_pde_as_diff_op(self) -> LinearPDESystemOperator: from sumpy.expansion.diff_op import laplacian, make_identity_diff_op + w = make_identity_diff_op(self.dim) lam = sym.Symbol(self.yukawa_lambda_name) return (laplacian(w) - lam**2 * w) +@dataclass(frozen=True) class ElasticityKernel(ExpressionKernel): - init_arg_names = ("dim", "icomp", "jcomp", "viscosity_mu", "poisson_ratio") + """ + .. autoattribute:: icomp + .. autoattribute:: jcomp + .. autoattribute:: viscosity_mu + .. autoattribute:: poisson_ratio + """ + mapper_method: ClassVar[str] = "map_elasticity_kernel" + + icomp: int + """Component index for the kernel.""" + jcomp: int + """Component index for the kernel.""" - def __new__(cls, dim, icomp, jcomp, viscosity_mu="mu", poisson_ratio="nu"): + viscosity_mu: float | SpatialConstant + r"""The argument name to use for the dynamic viscosity :math:`\mu` when + generating functions to evaluate this kernel. Can also be a numeric value. + """ + poisson_ratio: float | SpatialConstant + r"""The argument name to use for Poisson's ratio :math:`\nu` when generating + functions to evaluate this kernel. Can also be a numeric value. + """ + + def __new__(cls, + dim: int, icomp: int, jcomp: int, + viscosity_mu: float | str | SpatialConstant = "mu", + poisson_ratio: float | str | SpatialConstant = "nu", + ) -> ElasticityKernel: if poisson_ratio == 0.5: - instance = super().__new__(StokesletKernel) + return super().__new__(StokesletKernel) else: - instance = super().__new__(cls) - return instance + return super().__new__(cls) - def __init__(self, dim, icomp, jcomp, viscosity_mu="mu", poisson_ratio="nu"): - r""" - :arg viscosity_mu: The argument name to use for - dynamic viscosity :math:`\mu` when generating functions to - evaluate this kernel. Can also be a numeric value. - :arg poisson_ratio: The argument name to use for - Poisson's ratio :math:`\nu` when generating functions to - evaluate this kernel. Can also be a numeric value. - """ + def __init__(self, + dim: int, icomp: int, jcomp: int, + viscosity_mu: float | str | SpatialConstant = "mu", + poisson_ratio: float | str | SpatialConstant = "nu") -> None: if isinstance(viscosity_mu, str): mu = SpatialConstant(viscosity_mu) else: mu = viscosity_mu + if isinstance(poisson_ratio, str): nu = SpatialConstant(poisson_ratio) else: @@ -729,82 +802,102 @@ def __init__(self, dim, icomp, jcomp, viscosity_mu="mu", poisson_ratio="nu"): scaling = -1/(16*var("pi")*(1 - nu)*mu) else: - raise RuntimeError("unsupported dimensionality") + raise NotImplementedError(f"unsupported dimension: '{dim}'") - self.viscosity_mu = mu - self.poisson_ratio = nu - self.icomp = icomp - self.jcomp = jcomp + super().__init__(dim, expression=expr, global_scaling_const=scaling) - super().__init__( - dim, - expression=expr, - global_scaling_const=scaling, - is_complex_valued=False) - - def __getinitargs__(self): - return (self.dim, self.icomp, self.jcomp, self.viscosity_mu, - self.poisson_ratio) + object.__setattr__(self, "icomp", icomp) + object.__setattr__(self, "jcomp", jcomp) + object.__setattr__(self, "viscosity_mu", mu) + object.__setattr__(self, "poisson_ratio", nu) - def __reduce__(self): - return (ElasticityKernel, self.__getinitargs__()) - - def update_persistent_hash(self, key_hash, key_builder): - key_hash.update(type(self).__name__.encode()) - key_builder.rec(key_hash, - (self.dim, self.icomp, self.jcomp)) - key_builder.rec(key_hash, self.viscosity_mu) - key_builder.rec(key_hash, self.poisson_ratio) + @property + @override + def is_complex_valued(self) -> bool: + return False - def __repr__(self): - return f"ElasticityKnl{self.dim}D_{self.icomp}{self.jcomp}" + @override + def __str__(self) -> str: + return ( + f"ElasticityKnl{self.dim}D_{self.icomp}{self.jcomp}" + f"({self.viscosity_mu}, {self.poisson_ratio})") @memoize_method - def get_args(self): + @override + def get_args(self) -> Sequence[KernelArgument]: from sumpy.tools import get_all_variables variables = get_all_variables(self.viscosity_mu) - res = [] + + args: list[KernelArgument] = [] for v in variables: - res.append(KernelArgument(loopy_arg=lp.ValueArg(v.name, np.float64))) - return res + self.get_source_args() + args.append(KernelArgument(loopy_arg=lp.ValueArg(v.name, np.float64))) + + return [*args, *self.get_source_args()] @memoize_method - def get_source_args(self): + @override + def get_source_args(self) -> Sequence[KernelArgument]: from sumpy.tools import get_all_variables variables = get_all_variables(self.poisson_ratio) - res = [] + + args: list[KernelArgument] = [] for v in variables: - res.append(KernelArgument(loopy_arg=lp.ValueArg(v.name, np.float64))) - return res + args.append(KernelArgument(loopy_arg=lp.ValueArg(v.name, np.float64))) - mapper_method = "map_elasticity_kernel" + return args - def get_pde_as_diff_op(self): + @override + def get_pde_as_diff_op(self) -> LinearPDESystemOperator: from sumpy.expansion.diff_op import laplacian, make_identity_diff_op + w = make_identity_diff_op(self.dim) return laplacian(laplacian(w)) class StokesletKernel(ElasticityKernel): - def __new__(cls, dim, icomp, jcomp, viscosity_mu="mu", poisson_ratio="0.5"): + """ + .. autoattribute:: icomp + .. autoattribute:: jcomp + .. autoattribute:: viscosity_mu + """ + + def __new__(cls, dim, icomp, jcomp, viscosity_mu="mu", poisson_ratio=0.5): return object.__new__(cls) def __init__(self, dim, icomp, jcomp, viscosity_mu="mu", poisson_ratio=0.5): super().__init__(dim, icomp, jcomp, viscosity_mu, poisson_ratio) - def __repr__(self): - return f"StokesletKnl{self.dim}D_{self.icomp}{self.jcomp}" + @override + def __str__(self) -> str: + return ( + f"StokesletKnl{self.dim}D_{self.icomp}{self.jcomp}" + f"({self.viscosity_mu}, {self.poisson_ratio})") +@dataclass(frozen=True) class StressletKernel(ExpressionKernel): - init_arg_names = ("dim", "icomp", "jcomp", "kcomp", "viscosity_mu") + """ + .. autoattribute:: icomp + .. autoattribute:: jcomp + .. autoattribute:: kcomp + .. autoattribute:: viscosity_mu + """ + mapper_method: ClassVar[str] = "map_stresslet_kernel" + + icomp: int + """Component index for the kernel.""" + jcomp: int + """Component index for the kernel.""" + kcomp: int + """Component index for the kernel.""" + viscosity_mu: float | SpatialConstant + r"""The argument name to use for the dynamic viscosity :math:`\mu` when + generating functions to evaluate this kernel. Can also be a numeric value. + """ - def __init__(self, dim, icomp, jcomp, kcomp, viscosity_mu="mu"): - r""" - :arg viscosity_mu: The argument name to use for - dynamic viscosity :math:`\mu` the then generating functions to - evaluate this kernel. - """ + def __init__(self, + dim: int, icomp: int, jcomp: int, kcomp: int, + viscosity_mu: float | str | SpatialConstant = "mu") -> None: # mu is unused but kept for consistency with the Stokeslet. if isinstance(viscosity_mu, str): mu = SpatialConstant(viscosity_mu) @@ -828,66 +921,79 @@ def __init__(self, dim, icomp, jcomp, kcomp, viscosity_mu="mu"): scaling = 3/(4*var("pi")) else: - raise RuntimeError("unsupported dimensionality") + raise NotImplementedError(f"unsupported dimension: '{dim}'") - self.icomp = icomp - self.jcomp = jcomp - self.kcomp = kcomp - self.viscosity_mu = mu + super().__init__(dim, expression=expr, global_scaling_const=scaling) - super().__init__( - dim, - expression=expr, - global_scaling_const=scaling, - is_complex_valued=False) + object.__setattr__(self, "icomp", icomp) + object.__setattr__(self, "jcomp", jcomp) + object.__setattr__(self, "kcomp", kcomp) + object.__setattr__(self, "viscosity_mu", mu) - def __getinitargs__(self): - return (self.dim, self.icomp, self.jcomp, self.kcomp, self.viscosity_mu) - - def update_persistent_hash(self, key_hash, key_builder): - key_hash.update(type(self).__name__.encode()) - key_builder.rec(key_hash, (self.dim, self.icomp, self.jcomp, self.kcomp)) - key_builder.rec(key_hash, self.viscosity_mu) + @property + @override + def is_complex_valued(self) -> bool: + return False - def __repr__(self): - return f"StressletKnl{self.dim}D_{self.icomp}{self.jcomp}{self.kcomp}" + @override + def __str__(self) -> str: + return ( + f"StressletKnl{self.dim}D_{self.icomp}{self.jcomp}{self.kcomp}" + f"({self.viscosity_mu})") @memoize_method - def get_args(self): + @override + def get_args(self) -> Sequence[KernelArgument]: from sumpy.tools import get_all_variables variables = get_all_variables(self.viscosity_mu) return [ KernelArgument(loopy_arg=lp.ValueArg(v.name, np.float64)) for v in variables] - mapper_method = "map_stresslet_kernel" - - def get_pde_as_diff_op(self): + @override + def get_pde_as_diff_op(self) -> LinearPDESystemOperator: from sumpy.expansion.diff_op import laplacian, make_identity_diff_op w = make_identity_diff_op(self.dim) return laplacian(laplacian(w)) +@dataclass(frozen=True) class LineOfCompressionKernel(ExpressionKernel): """A kernel for the line of compression or dilatation of constant strength - along the axis "axis" from zero to negative infinity. This is used for the - explicit solution to half-space Elasticity problem. See [1] for details. + along the axis "axis" from zero to negative infinity. - [1]: Mindlin, R.: Force at a Point in the Interior of a Semi-Infinite Solid - https://doi.org/10.1063/1.1745385 + This is used for the explicit solution to half-space Elasticity problem. + See [Mindlin1936]_ for details. + + .. [Mindlin1936] R. D. Mindlin (1936). + *Force at a Point in the Interior of a Semi-Infinite Solid*. + Physics. 7 (5): 195-202. + `doi:10.1063/1.1745385 `__. + + .. autoattribute:: axis + .. autoattribute:: viscosity_mu + .. autoattribute:: poisson_ratio """ - init_arg_names = ("dim", "axis", "viscosity_mu", "poisson_ratio") - def __init__(self, dim=3, axis=2, viscosity_mu="mu", poisson_ratio="nu"): - r""" - :arg axis: axis number defaulting to 2 for the z axis. - :arg viscosity_mu: The argument name to use for - dynamic viscosity :math:`\mu` when generating functions to - evaluate this kernel. Can also be a numeric value. - :arg poisson_ratio: The argument name to use for - Poisson's ratio :math:`\nu` when generating functions to - evaluate this kernel. Can also be a numeric value. - """ + mapper_method: ClassVar[str] = "map_line_of_compression_kernel" + + axis: int + """Axis number (defaulting to 2 for the z axis).""" + viscosity_mu: float | SpatialConstant + r"""The argument name to use for the dynamic viscosity :math:`\mu` when + generating functions to evaluate this kernel. Can also be a numeric value. + """ + poisson_ratio: float | SpatialConstant + r"""The argument name to use for Poisson's ratio :math:`\nu` when + generating functions to evaluate this kernel. Can also be a numeric value. + """ + + def __init__(self, + dim: int = 3, + axis: int = 2, + viscosity_mu: float | str | SpatialConstant = "mu", + poisson_ratio: float | str | SpatialConstant = "nu" + ) -> None: if isinstance(viscosity_mu, str): mu = SpatialConstant(viscosity_mu) else: @@ -904,43 +1010,39 @@ def __init__(self, dim=3, axis=2, viscosity_mu="mu", poisson_ratio="nu"): expr = d[axis] * var("log")(r + d[axis]) - r scaling = (1 - 2*nu)/(4*var("pi")*mu) else: - raise RuntimeError("unsupported dimensionality") + raise NotImplementedError(f"unsupported dimension: '{dim}'") - self.viscosity_mu = mu - self.poisson_ratio = nu - self.axis = axis + super().__init__(dim, expression=expr, global_scaling_const=scaling) - super().__init__( - dim, - expression=expr, - global_scaling_const=scaling, - is_complex_valued=False) - - def __getinitargs__(self): - return (self.dim, self.axis, self.viscosity_mu, self.poisson_ratio) + object.__setattr__(self, "axis", axis) + object.__setattr__(self, "viscosity_mu", mu) + object.__setattr__(self, "poisson_ratio", nu) - def update_persistent_hash(self, key_hash, key_builder): - key_hash.update(type(self).__name__.encode()) - key_builder.rec(key_hash, (self.dim, self.axis)) - key_builder.rec(key_hash, self.viscosity_mu) - key_builder.rec(key_hash, self.poisson_ratio) + @property + @override + def is_complex_valued(self) -> bool: + return False - def __repr__(self): + @override + def __str__(self) -> str: return f"LineOfCompressionKnl{self.dim}D_{self.axis}" @memoize_method - def get_args(self): + @override + def get_args(self) -> Sequence[KernelArgument]: from sumpy.tools import get_all_variables - variables = list(get_all_variables(self.viscosity_mu)) \ - + list(get_all_variables(self.poisson_ratio)) - res = [] + variables = [ + *get_all_variables(self.viscosity_mu), + *get_all_variables(self.poisson_ratio)] + + args: list[KernelArgument] = [] for v in variables: - res.append(KernelArgument(loopy_arg=lp.ValueArg(v.name, np.float64))) - return res + args.append(KernelArgument(loopy_arg=lp.ValueArg(v.name, np.float64))) - mapper_method = "map_line_of_compression_kernel" + return args - def get_pde_as_diff_op(self): + @override + def get_pde_as_diff_op(self) -> LinearPDESystemOperator: from sumpy.expansion.diff_op import laplacian, make_identity_diff_op w = make_identity_diff_op(self.dim) return laplacian(w) @@ -951,47 +1053,82 @@ def get_pde_as_diff_op(self): # {{{ a kernel defined as wrapping another one--e.g., derivatives -class KernelWrapper(Kernel): - def __init__(self, inner_kernel): +@dataclass(frozen=True) +class KernelWrapper(Kernel, ABC): + inner_kernel: Kernel + """The kernel that is being wrapped (to take a derivative of, etc.).""" + + def __init__(self, inner_kernel: Kernel) -> None: Kernel.__init__(self, inner_kernel.dim) - self.inner_kernel = inner_kernel + object.__setattr__(self, "inner_kernel", inner_kernel) + + @property + @override + def is_complex_valued(self) -> bool: + return self.inner_kernel.is_complex_valued - def get_base_kernel(self): + @override + def get_base_kernel(self) -> Kernel: return self.inner_kernel.get_base_kernel() - def prepare_loopy_kernel(self, loopy_knl): + @override + def prepare_loopy_kernel(self, loopy_knl: lp.TranslationUnit) -> lp.TranslationUnit: return self.inner_kernel.prepare_loopy_kernel(loopy_knl) - @property - def is_complex_valued(self): - return self.inner_kernel.is_complex_valued + @override + def get_expression(self, dist_vec: sp.Matrix) -> ArithmeticExpr: + return self.inner_kernel.get_expression(dist_vec) - def get_expression(self, scaled_dist_vec): - return self.inner_kernel.get_expression(scaled_dist_vec) - - def get_derivative_coeff_dict_at_source(self, expr_dict): + @override + def get_derivative_coeff_dict_at_source( + self, expr_dict: DerivativeCoeffDict, + ) -> DerivativeCoeffDict: return self.inner_kernel.get_derivative_coeff_dict_at_source(expr_dict) - def postprocess_at_target(self, expr, bvec): + @overload + def postprocess_at_target( + self, expr: sym.Expr, bvec: sp.Matrix, + ) -> sym.Expr: ... + + @overload + def postprocess_at_target( + self, expr: ExprDerivativeTaker, bvec: sp.Matrix, + ) -> DifferentiatedExprDerivativeTaker: ... + + @override + def postprocess_at_target( + self, expr: sym.Expr | ExprDerivativeTaker, bvec: sp.Matrix, + ) -> sym.Expr | DifferentiatedExprDerivativeTaker: return self.inner_kernel.postprocess_at_target(expr, bvec) - def get_global_scaling_const(self): + @override + def get_global_scaling_const(self) -> ArithmeticExpr: return self.inner_kernel.get_global_scaling_const() - def get_code_transformer(self): + @override + def get_code_transformer(self) -> Callable[[Expression], Expression]: return self.inner_kernel.get_code_transformer() - def get_args(self): + @override + def get_args(self) -> Sequence[KernelArgument]: return self.inner_kernel.get_args() - def get_source_args(self): + @override + def get_source_args(self) -> Sequence[KernelArgument]: return self.inner_kernel.get_source_args() - def replace_base_kernel(self, new_base_kernel): - raise NotImplementedError("replace_base_kernel is not implemented " - "for this wrapper.") - - def get_derivative_taker(self, dvec, rscale, sac): + @override + def replace_base_kernel(self, new_base_kernel: Kernel) -> Kernel: + raise NotImplementedError( + f"'replace_base_kernel' is not implemented for '{type(self).__name__}'") + + @override + def get_derivative_taker( + self, + dvec: sp.Matrix, + rscale: ArithmeticExpr, + sac: SymbolicAssignmentCollection, + ) -> ExprDerivativeTaker: return self.inner_kernel.get_derivative_taker(dvec, rscale, sac) # }}} @@ -999,27 +1136,49 @@ def get_derivative_taker(self, dvec, rscale, sac): # {{{ derivatives -class DerivativeBase(KernelWrapper): - pass +class DerivativeBase(KernelWrapper, ABC): + """Bases: :class:`Kernel` + + .. autoattribute:: inner_kernel + .. automethod:: replace_inner_kernel + """ + + @override + def get_pde_as_diff_op(self) -> LinearPDESystemOperator: + return self.inner_kernel.get_pde_as_diff_op() + + @abstractmethod + def replace_inner_kernel(self, new_inner_kernel: Kernel) -> Kernel: + """Replace the inner kernel of this wrapper. + + This is essentially the same as :meth:`Kernel.replace_base_kernel`, but it does + not recurse. + """ +@dataclass(frozen=True) class AxisSourceDerivative(DerivativeBase): - init_arg_names = ("axis", "inner_kernel") + """ + .. autoattribute:: axis + """ - def __init__(self, axis, inner_kernel): - KernelWrapper.__init__(self, inner_kernel) - self.axis = axis + mapper_method: ClassVar[str] = "map_axis_source_derivative" - def __getinitargs__(self): - return (self.axis, self.inner_kernel) + axis: int + """Direction axis for the source derivative.""" - def __str__(self): - return f"d/dy{self.axis} {self.inner_kernel}" + def __init__(self, axis: int, inner_kernel: Kernel) -> None: + super().__init__(inner_kernel) + object.__setattr__(self, "axis", axis) - def __repr__(self): - return f"AxisSourceDerivative({self.axis}, {self.inner_kernel!r})" + @override + def __str__(self) -> str: + return f"d/dy{self.axis} {self.inner_kernel}" - def get_derivative_coeff_dict_at_source(self, expr_dict): + @override + def get_derivative_coeff_dict_at_source( + self, expr_dict: DerivativeCoeffDict, + ) -> DerivativeCoeffDict: expr_dict = self.inner_kernel.get_derivative_coeff_dict_at_source( expr_dict) result = {} @@ -1029,78 +1188,97 @@ def get_derivative_coeff_dict_at_source(self, expr_dict): result[tuple(new_mi)] = -coeff return result - def replace_base_kernel(self, new_base_kernel): + @override + def replace_base_kernel(self, new_base_kernel: Kernel) -> Kernel: return type(self)(self.axis, self.inner_kernel.replace_base_kernel(new_base_kernel)) - def replace_inner_kernel(self, new_inner_kernel): + @override + def replace_inner_kernel(self, new_inner_kernel: Kernel) -> Kernel: return type(self)(self.axis, new_inner_kernel) - mapper_method = "map_axis_source_derivative" - +@dataclass(frozen=True) class AxisTargetDerivative(DerivativeBase): - init_arg_names = ("axis", "inner_kernel") - target_array_name = "targets" + """ + .. autoattribute:: axis + """ - def __init__(self, axis, inner_kernel): - KernelWrapper.__init__(self, inner_kernel) - self.axis = axis + mapper_method: ClassVar[str] = "map_axis_target_derivative" + target_array_name: ClassVar[str] = "targets" + + axis: int - def __getinitargs__(self): - return (self.axis, self.inner_kernel) + def __init__(self, axis: int, inner_kernel: Kernel) -> None: + super().__init__(inner_kernel) + object.__setattr__(self, "axis", axis) - def __str__(self): + @override + def __str__(self) -> str: return f"d/dx{self.axis} {self.inner_kernel}" - def __repr__(self): - return f"AxisTargetDerivative({self.axis}, {self.inner_kernel!r})" + @overload + def postprocess_at_target( + self, expr: sym.Expr, bvec: sp.Matrix, + ) -> sym.Expr: ... - def postprocess_at_target(self, expr, bvec): - from sumpy.derivative_taker import ( - DifferentiatedExprDerivativeTaker, - diff_derivative_coeff_dict, - ) - from sumpy.symbolic import make_sym_vector as make_sympy_vector + @overload + def postprocess_at_target( + self, expr: ExprDerivativeTaker, bvec: sp.Matrix, + ) -> DifferentiatedExprDerivativeTaker: ... - target_vec = make_sympy_vector(self.target_array_name, self.dim) + @override + def postprocess_at_target( + self, expr: sym.Expr | ExprDerivativeTaker, bvec: sp.Matrix, + ) -> sym.Expr | DifferentiatedExprDerivativeTaker: + target_vec = sym.make_sym_vector(self.target_array_name, self.dim) # bvec = tgt - ctr - expr = self.inner_kernel.postprocess_at_target(expr, bvec) - if isinstance(expr, DifferentiatedExprDerivativeTaker): - transformation = diff_derivative_coeff_dict(expr.derivative_coeff_dict, + inner_expr = self.inner_kernel.postprocess_at_target(expr, bvec) + if isinstance(inner_expr, DifferentiatedExprDerivativeTaker): + transformation = diff_derivative_coeff_dict( + inner_expr.derivative_coeff_dict, self.axis, target_vec) - return DifferentiatedExprDerivativeTaker(expr.taker, transformation) + return DifferentiatedExprDerivativeTaker(inner_expr.taker, transformation) else: # Since `bvec` and `tgt` are two different symbolic variables # need to differentiate by both to get the correct answer - return expr.diff(bvec[self.axis]) + expr.diff(target_vec[self.axis]) + return (inner_expr.diff(bvec[self.axis]) + + inner_expr.diff(target_vec[self.axis])) - def replace_base_kernel(self, new_base_kernel): + @override + def replace_base_kernel(self, new_base_kernel: Kernel) -> Kernel: return type(self)(self.axis, self.inner_kernel.replace_base_kernel(new_base_kernel)) - def replace_inner_kernel(self, new_inner_kernel): + @override + def replace_inner_kernel(self, new_inner_kernel: Kernel) -> Kernel: return type(self)(self.axis, new_inner_kernel) - mapper_method = "map_axis_target_derivative" - class _VectorIndexAdder(CSECachingMapperMixin[Expression, []], IdentityMapper[[]]): - def __init__(self, vec_name, additional_indices): + vec_name: str + additional_indices: tuple[Expression, ...] + + def __init__(self, + vec_name: str, + additional_indices: tuple[Expression, ...]) -> None: self.vec_name = vec_name self.additional_indices = additional_indices - def map_subscript(self, expr): + @override + def map_subscript(self, expr: prim.Subscript) -> Expression: from pymbolic.primitives import CommonSubexpression, cse_scope - if (expr.aggregate.name == self.vec_name - and isinstance(expr.index, int)): + name = getattr(expr.aggregate, "name", None) + + if name == self.vec_name and isinstance(expr.index, int): return CommonSubexpression( expr.aggregate[(expr.index, *self.additional_indices)], prefix=None, scope=cse_scope.EVALUATION) else: return IdentityMapper.map_subscript(self, expr) + @override def map_common_subexpression_uncached(self, expr: prim.CommonSubexpression) -> Expression: result = self.rec(expr.child) @@ -1111,88 +1289,101 @@ def map_common_subexpression_uncached(self, result, expr.prefix, expr.scope, **expr.get_extra_properties()) +@dataclass(frozen=True) class DirectionalDerivative(DerivativeBase): - directional_kind: ClassVar[str] - init_arg_names = ("inner_kernel", "dir_vec_name") + """ + .. autoattribute:: dir_vec_name + """ + directional_kind: ClassVar[Literal["src", "tgt"]] + """The kind of this directional derivative (can only be a source or target).""" + + dir_vec_name: str + """Name of the vector used for the direction.""" - def __init__(self, inner_kernel, dir_vec_name=None): + def __init__(self, inner_kernel: Kernel, dir_vec_name: str | None = None) -> None: if dir_vec_name is None: dir_vec_name = f"{self.directional_kind}_derivative_dir" KernelWrapper.__init__(self, inner_kernel) - self.dir_vec_name = dir_vec_name + object.__setattr__(self, "dir_vec_name", dir_vec_name) - def __getinitargs__(self): - return (self.inner_kernel, self.dir_vec_name) + @override + def __str__(self) -> str: + d = "y" if self.directional_kind == "src" else "x" + return fr"{self.dir_vec_name}·∇_{d} {self.inner_kernel}" - def update_persistent_hash(self, key_hash, key_builder): - key_hash.update(type(self).__name__.encode("utf8")) - key_builder.rec(key_hash, self.inner_kernel) - key_builder.rec(key_hash, self.dir_vec_name) - - def replace_base_kernel(self, new_base_kernel): - return type(self)(self.inner_kernel.replace_base_kernel(new_base_kernel), + @override + def replace_base_kernel(self, new_base_kernel: Kernel) -> Kernel: + return type(self)( + self.inner_kernel.replace_base_kernel(new_base_kernel), dir_vec_name=self.dir_vec_name) - def __str__(self): - return r"{}·∇_{} {}".format( - self.dir_vec_name, - "y" if self.directional_kind == "src" else "x", - self.inner_kernel) - - def __repr__(self): - return f"{type(self).__name__}({self.inner_kernel!r}, {self.dir_vec_name})" + @override + def replace_inner_kernel(self, new_inner_kernel: Kernel) -> Kernel: + return type(self)(new_inner_kernel, dir_vec_name=self.dir_vec_name) class DirectionalTargetDerivative(DirectionalDerivative): - directional_kind = "tgt" - target_array_name = "targets" + mapper_method: ClassVar[str] = "map_directional_target_derivative" + directional_kind: ClassVar[Literal["src", "tgt"]] = "tgt" + target_array_name: ClassVar[str] = "targets" - def get_code_transformer(self): + @override + def get_code_transformer(self) -> Callable[[Expression], Expression]: from sumpy.codegen import VectorComponentRewriter - vcr = VectorComponentRewriter([self.dir_vec_name]) - from pymbolic.primitives import Variable - via = _VectorIndexAdder(self.dir_vec_name, (Variable("itgt"),)) + vcr = VectorComponentRewriter(frozenset([self.dir_vec_name])) + via = _VectorIndexAdder(self.dir_vec_name, (prim.Variable("itgt"),)) inner_transform = self.inner_kernel.get_code_transformer() - def transform(expr): + def transform(expr: Expression) -> Expression: return via(vcr(inner_transform(expr))) return transform - def postprocess_at_target(self, expr, bvec): - from sumpy.derivative_taker import ( - DifferentiatedExprDerivativeTaker, - diff_derivative_coeff_dict, - ) - from sumpy.symbolic import make_sym_vector as make_sympy_vector - dir_vec = make_sympy_vector(self.dir_vec_name, self.dim) - target_vec = make_sympy_vector(self.target_array_name, self.dim) + @overload + def postprocess_at_target( + self, expr: sym.Expr, bvec: sp.Matrix, + ) -> sym.Expr: ... + + @overload + def postprocess_at_target( + self, expr: ExprDerivativeTaker, bvec: sp.Matrix, + ) -> DifferentiatedExprDerivativeTaker: ... - expr = self.inner_kernel.postprocess_at_target(expr, bvec) + @override + def postprocess_at_target( + self, expr: sym.Expr | ExprDerivativeTaker, bvec: sp.Matrix, + ) -> sym.Expr | DifferentiatedExprDerivativeTaker: + dir_vec = sym.make_sym_vector(self.dir_vec_name, self.dim) + target_vec = sym.make_sym_vector(self.target_array_name, self.dim) + + inner_expr = self.inner_kernel.postprocess_at_target(expr, bvec) # bvec = tgt - center - if not isinstance(expr, DifferentiatedExprDerivativeTaker): + if not isinstance(inner_expr, DifferentiatedExprDerivativeTaker): result = 0 for axis in range(self.dim): # Since `bvec` and `tgt` are two different symbolic variables # need to differentiate by both to get the correct answer - result += (expr.diff(bvec[axis]) + expr.diff(target_vec[axis])) \ - * dir_vec[axis] + result += ( + (inner_expr.diff(bvec[axis]) + inner_expr.diff(target_vec[axis])) + * dir_vec[axis]) + return result - new_transformation = defaultdict(lambda: 0) + new_transformation: DerivativeCoeffDict = defaultdict(lambda: 0) for axis in range(self.dim): axis_transformation = diff_derivative_coeff_dict( - expr.derivative_coeff_dict, axis, target_vec) + inner_expr.derivative_coeff_dict, axis, target_vec) for mi, coeff in axis_transformation.items(): new_transformation[mi] += coeff * dir_vec[axis] - return DifferentiatedExprDerivativeTaker(expr.taker, - dict(new_transformation)) + return DifferentiatedExprDerivativeTaker( + inner_expr.taker, dict(new_transformation)) - def get_args(self): + @override + def get_args(self) -> Sequence[KernelArgument]: return [ KernelArgument( loopy_arg=lp.GlobalArg( @@ -1205,29 +1396,32 @@ def get_args(self): *self.inner_kernel.get_args() ] - def prepare_loopy_kernel(self, loopy_knl): + @override + def prepare_loopy_kernel(self, loopy_knl: lp.TranslationUnit) -> lp.TranslationUnit: loopy_knl = self.inner_kernel.prepare_loopy_kernel(loopy_knl) return lp.tag_array_axes(loopy_knl, self.dir_vec_name, "sep,C") - mapper_method = "map_directional_target_derivative" - class DirectionalSourceDerivative(DirectionalDerivative): - directional_kind = "src" + mapper_method: ClassVar[str] = "map_directional_source_derivative" + directional_kind: ClassVar[Literal["src", "tgt"]] = "src" - def get_code_transformer(self): + @override + def get_code_transformer(self) -> Callable[[Expression], Expression]: inner = self.inner_kernel.get_code_transformer() from sumpy.codegen import VectorComponentRewriter - vcr = VectorComponentRewriter([self.dir_vec_name]) - from pymbolic.primitives import Variable - via = _VectorIndexAdder(self.dir_vec_name, (Variable("isrc"),)) + vcr = VectorComponentRewriter(frozenset([self.dir_vec_name])) + via = _VectorIndexAdder(self.dir_vec_name, (prim.Variable("isrc"),)) - def transform(expr): + def transform(expr: Expression) -> Expression: return via(vcr(inner(expr))) return transform - def get_derivative_coeff_dict_at_source(self, expr_dict): + @override + def get_derivative_coeff_dict_at_source( + self, expr_dict: DerivativeCoeffDict, + ) -> DerivativeCoeffDict: from sumpy.symbolic import make_sym_vector as make_sympy_vector dir_vec = make_sympy_vector(self.dir_vec_name, self.dim) @@ -1235,15 +1429,17 @@ def get_derivative_coeff_dict_at_source(self, expr_dict): expr_dict) # avec = center-src -> minus sign from chain rule - result = defaultdict(lambda: 0) + result: dict[tuple[int, ...], ArithmeticExpr] = defaultdict(lambda: 0) for mi, coeff in expr_dict.items(): for axis in range(self.dim): new_mi = list(mi) new_mi[axis] += 1 result[tuple(new_mi)] += -coeff * dir_vec[axis] - return result - def get_source_args(self): + return dict(result) + + @override + def get_source_args(self) -> Sequence[KernelArgument]: return [ KernelArgument( loopy_arg=lp.GlobalArg( @@ -1254,115 +1450,149 @@ def get_source_args(self): ), *self.inner_kernel.get_source_args()] - def prepare_loopy_kernel(self, loopy_knl): + @override + def prepare_loopy_kernel(self, loopy_knl: lp.TranslationUnit) -> lp.TranslationUnit: loopy_knl = self.inner_kernel.prepare_loopy_kernel(loopy_knl) return lp.tag_array_axes(loopy_knl, self.dir_vec_name, "sep,C") - mapper_method = "map_directional_source_derivative" - class TargetPointMultiplier(KernelWrapper): - """Wraps a kernel :math:`G(x, y)` and outputs :math:`x_j G(x, y)` + """Bases: :class:`Kernel` + + Wraps a kernel :math:`G(x, y)` and outputs :math:`x_j G(x, y)` where :math:`x, y` are targets and sources respectively. + + .. autoattribute:: axis """ - init_arg_names = ("axis", "inner_kernel") - target_array_name = "targets" + mapper_method: ClassVar[str] = "map_target_point_multiplier" + target_array_name: ClassVar[str] = "targets" + + axis: int + """Coordinate axis with which to multiply the kernel.""" - def __init__(self, axis, inner_kernel): + def __init__(self, axis: int, inner_kernel: Kernel) -> None: KernelWrapper.__init__(self, inner_kernel) self.axis = axis - def __getinitargs__(self): - return (self.axis, self.inner_kernel) - - def __str__(self): + @override + def __str__(self) -> str: return f"x{self.axis} {self.inner_kernel}" - def __repr__(self): - return f"TargetPointMultiplier({self.axis}, {self.inner_kernel!r})" + @overload + def postprocess_at_target( + self, expr: sym.Expr, bvec: sp.Matrix, + ) -> sym.Expr: ... - def replace_base_kernel(self, new_base_kernel): - return type(self)(self.axis, - self.inner_kernel.replace_base_kernel(new_base_kernel)) + @overload + def postprocess_at_target( + self, expr: ExprDerivativeTaker, bvec: sp.Matrix, + ) -> DifferentiatedExprDerivativeTaker: ... - def replace_inner_kernel(self, new_inner_kernel): - return type(self)(self.axis, new_inner_kernel) + @override + def postprocess_at_target( + self, expr: sym.Expr | ExprDerivativeTaker, bvec: sp.Matrix, + ) -> sym.Expr | DifferentiatedExprDerivativeTaker: + inner_expr = self.inner_kernel.postprocess_at_target(expr, bvec) + target_vec = sym.make_sym_vector(self.target_array_name, self.dim) - def postprocess_at_target(self, expr, avec): - from sumpy.derivative_taker import ( - DifferentiatedExprDerivativeTaker, - ExprDerivativeTaker, - ) - from sumpy.symbolic import make_sym_vector as make_sympy_vector + zeros = tuple([0]*self.dim) + mult = cast("sym.Symbol", target_vec[self.axis]) - expr = self.inner_kernel.postprocess_at_target(expr, avec) - target_vec = make_sympy_vector(self.target_array_name, self.dim) + if isinstance(inner_expr, DifferentiatedExprDerivativeTaker): + transform = { + mi: coeff * mult for mi, coeff in + inner_expr.derivative_coeff_dict.items()} - zeros = tuple([0]*self.dim) - mult = target_vec[self.axis] - - if isinstance(expr, DifferentiatedExprDerivativeTaker): - transform = {mi: coeff * mult for mi, coeff in - expr.derivative_coeff_dict.items()} - return DifferentiatedExprDerivativeTaker(expr.taker, transform) - elif isinstance(expr, ExprDerivativeTaker): - return DifferentiatedExprDerivativeTaker({zeros: mult}) + return DifferentiatedExprDerivativeTaker(inner_expr.taker, transform) + elif isinstance(inner_expr, ExprDerivativeTaker): + return DifferentiatedExprDerivativeTaker(expr, {zeros: mult}) else: - return mult * expr + return mult * inner_expr - def get_code_transformer(self): + @override + def get_code_transformer(self) -> Callable[[Expression], Expression]: from sumpy.codegen import VectorComponentRewriter - vcr = VectorComponentRewriter([self.target_array_name]) - from pymbolic.primitives import Variable - via = _VectorIndexAdder(self.target_array_name, (Variable("itgt"),)) + vcr = VectorComponentRewriter(frozenset([self.target_array_name])) + via = _VectorIndexAdder(self.target_array_name, (prim.Variable("itgt"),)) inner_transform = self.inner_kernel.get_code_transformer() - def transform(expr): + def transform(expr: Expression) -> Expression: return via(vcr(inner_transform(expr))) return transform - mapper_method = "map_target_point_multiplier" + @override + def get_pde_as_diff_op(self) -> LinearPDESystemOperator: + raise NotImplementedError("no PDE is known") + + @override + def replace_base_kernel(self, new_base_kernel: Kernel) -> Kernel: + return type(self)(self.axis, + self.inner_kernel.replace_base_kernel(new_base_kernel)) + + def replace_inner_kernel(self, new_inner_kernel: Kernel) -> Kernel: + return type(self)(self.axis, new_inner_kernel) # }}} # {{{ kernel mappers -class KernelMapper: - def rec(self, kernel): +ResultT = TypeVar("ResultT") + + +class KernelMapper(Generic[ResultT]): + """ + .. automethod:: __call__ + """ + def rec(self, kernel: Kernel) -> ResultT: try: - method = getattr(self, kernel.mapper_method) + method = cast( + "Callable[[Kernel], ResultT]", + getattr(self, kernel.mapper_method)) except AttributeError as err: raise RuntimeError(f"{type(self)} cannot handle {type(kernel)}") from err else: return method(kernel) - __call__ = rec + def __call__(self, kernel: Kernel) -> ResultT: + return self.rec(kernel) -class KernelCombineMapper(KernelMapper): - def combine(self, values): +class KernelCombineMapper(KernelMapper[ResultT], ABC): + """ + .. automethod:: combine + """ + + @abstractmethod + def combine(self, values: Iterable[ResultT]) -> ResultT: raise NotImplementedError - def map_difference_kernel(self, kernel): - return self.combine([ - self.rec(kernel.kernel_plus), - self.rec(kernel.kernel_minus)]) + def map_axis_target_derivative( + self, kernel: AxisTargetDerivative) -> ResultT: + return self.rec(kernel.inner_kernel) - def map_axis_target_derivative(self, kernel): + def map_axis_source_derivative( + self, kernel: AxisSourceDerivative) -> ResultT: return self.rec(kernel.inner_kernel) - map_directional_target_derivative = map_axis_target_derivative - map_directional_source_derivative = map_axis_target_derivative - map_axis_source_derivative = map_axis_target_derivative - map_target_point_multiplier = map_axis_target_derivative + def map_directional_target_derivative( + self, kernel: DirectionalTargetDerivative) -> ResultT: + return self.rec(kernel.inner_kernel) + def map_directional_source_derivative( + self, kernel: DirectionalSourceDerivative) -> ResultT: + return self.rec(kernel.inner_kernel) -class KernelIdentityMapper(KernelMapper): - def map_expression_kernel(self, kernel): + def map_target_point_multiplier( + self, kernel: TargetPointMultiplier) -> ResultT: + return self.rec(kernel.inner_kernel) + + +class KernelIdentityMapper(KernelMapper[Kernel]): + def map_expression_kernel(self, kernel: ExpressionKernel) -> Kernel: return kernel map_laplace_kernel = map_expression_kernel @@ -1373,53 +1603,79 @@ def map_expression_kernel(self, kernel): map_line_of_compression_kernel = map_expression_kernel map_stresslet_kernel = map_expression_kernel - def map_axis_target_derivative(self, kernel): + def map_axis_target_derivative(self, kernel: AxisTargetDerivative) -> Kernel: return type(kernel)(kernel.axis, self.rec(kernel.inner_kernel)) - map_axis_source_derivative = map_axis_target_derivative - map_target_point_multiplier = map_axis_target_derivative + def map_axis_source_derivative(self, kernel: AxisSourceDerivative) -> Kernel: + return type(kernel)(kernel.axis, self.rec(kernel.inner_kernel)) - def map_directional_target_derivative(self, kernel): - return type(kernel)( - self.rec(kernel.inner_kernel), - kernel.dir_vec_name) + def map_target_point_multiplier(self, kernel: TargetPointMultiplier) -> Kernel: + return type(kernel)(kernel.axis, self.rec(kernel.inner_kernel)) - map_directional_source_derivative = map_directional_target_derivative + def map_directional_target_derivative( + self, kernel: DirectionalTargetDerivative) -> Kernel: + return type(kernel)(self.rec(kernel.inner_kernel), + dir_vec_name=kernel.dir_vec_name) + + def map_directional_source_derivative( + self, kernel: DirectionalSourceDerivative) -> Kernel: + return type(kernel)(self.rec(kernel.inner_kernel), + dir_vec_name=kernel.dir_vec_name) class AxisSourceDerivativeRemover(KernelIdentityMapper): - def map_axis_source_derivative(self, kernel): + """Removes all axis source derivatives from the kernel.""" + + @override + def map_axis_source_derivative(self, kernel: AxisSourceDerivative) -> Kernel: return self.rec(kernel.inner_kernel) class AxisTargetDerivativeRemover(KernelIdentityMapper): - def map_axis_target_derivative(self, kernel): + """Removes all axis target derivatives from the kernel.""" + + @override + def map_axis_target_derivative(self, kernel: AxisTargetDerivative) -> Kernel: return self.rec(kernel.inner_kernel) class TargetDerivativeRemover(AxisTargetDerivativeRemover): - def map_directional_target_derivative(self, kernel): + """Removes all target derivatives from the kernel.""" + + @override + def map_directional_target_derivative( + self, kernel: DirectionalTargetDerivative) -> Kernel: return self.rec(kernel.inner_kernel) class SourceDerivativeRemover(AxisSourceDerivativeRemover): - def map_directional_source_derivative(self, kernel): + """Removes all source derivatives from the kernel.""" + + @override + def map_directional_source_derivative( + self, kernel: DirectionalSourceDerivative) -> Kernel: return self.rec(kernel.inner_kernel) class TargetTransformationRemover(TargetDerivativeRemover): - def map_target_point_multiplier(self, kernel): + """Removes all target transformations from the kernel.""" + + @override + def map_target_point_multiplier(self, kernel: TargetPointMultiplier) -> Kernel: return self.rec(kernel.inner_kernel) SourceTransformationRemover = SourceDerivativeRemover -class DerivativeCounter(KernelCombineMapper): - def combine(self, values): - return max(values) +class DerivativeCounter(KernelCombineMapper[int]): + """Counts the number of derivatives in the kernel.""" - def map_expression_kernel(self, kernel): + @override + def combine(self, values: Iterable[int]) -> int: + return sum(values) + + def map_expression_kernel(self, kernel: ExpressionKernel) -> int: return 0 map_laplace_kernel = map_expression_kernel @@ -1429,8 +1685,9 @@ def map_expression_kernel(self, kernel): map_line_of_compression_kernel = map_expression_kernel map_stresslet_kernel = map_expression_kernel - def map_axis_target_derivative(self, kernel): - return 1 + self.rec(kernel.inner_kernel) + @override + def map_axis_target_derivative(self, kernel: AxisTargetDerivative) -> int: + return self.combine([1, self.rec(kernel.inner_kernel)]) map_directional_target_derivative = map_axis_target_derivative map_directional_source_derivative = map_axis_target_derivative @@ -1439,24 +1696,4 @@ def map_axis_target_derivative(self, kernel): # }}} -def to_kernel_and_args(kernel_like): - if (isinstance(kernel_like, tuple) - and len(kernel_like) == 2 - and isinstance(kernel_like[0], Kernel)): - # already gone through to_kernel_and_args - return kernel_like - - if not isinstance(kernel_like, Kernel): - if kernel_like == 0: - return LaplaceKernel(None), {} - elif isinstance(kernel_like, str): - return HelmholtzKernel(None), {"k": var(kernel_like)} - else: - raise ValueError("Only Kernel instances, 0 (for Laplace) and " - "variable names (strings) " - "for the Helmholtz parameter are allowed as kernels.") - - return kernel_like, {} - - # vim: fdm=marker diff --git a/sumpy/symbolic.py b/sumpy/symbolic.py index 17aa4aa6..c3c7eaa2 100644 --- a/sumpy/symbolic.py +++ b/sumpy/symbolic.py @@ -110,6 +110,7 @@ def _find_symbolic_backend(): # Before adding a function here, make sure it's present in both modules. Add = sym.Add Basic = sym.Basic +Expr = sym.Expr Mul = sym.Mul Pow = sym.Pow exp = sym.exp @@ -253,7 +254,7 @@ def pymbolic_real_norm_2(x): return var("sqrt")(np.dot(x, x)) -def make_sym_vector(name, components): +def make_sym_vector(name: str, components: int) -> Matrix: return sym.Matrix([sym.Symbol(f"{name}{i}") for i in range(components)]) diff --git a/sumpy/tools.py b/sumpy/tools.py index 06f3072b..35baf405 100644 --- a/sumpy/tools.py +++ b/sumpy/tools.py @@ -34,7 +34,7 @@ from abc import ABC, abstractmethod from collections.abc import Hashable, Sequence from dataclasses import dataclass -from typing import TYPE_CHECKING, Any +from typing import TYPE_CHECKING, Any, TypeAlias import numpy as np @@ -54,8 +54,11 @@ import pyopencl import pyopencl as cl + from pymbolic.primitives import Variable + from pymbolic.typing import Expression - from sumpy.kernel import Kernel + from sumpy.expansion import ExpansionBase + from sumpy.kernel import Kernel, KernelArgument logger = logging.getLogger(__name__) @@ -95,6 +98,12 @@ .. autofunction:: reduced_row_echelon_form .. autofunction:: nullspace +.. class:: KernelLike + See below. + +.. autodata:: KernelLike + :no-index: + FFT --- @@ -125,6 +134,9 @@ """ +KernelLike: TypeAlias = "Kernel | ExpansionBase" + + # {{{ multi_index helpers def add_mi(mi1: Sequence[int], mi2: Sequence[int]) -> tuple[int, ...]: @@ -193,7 +205,7 @@ def map_variable(self, expr): self.vars.add(expr) -def get_all_variables(expr): +def get_all_variables(expr: Expression) -> set[Variable]: mapper = GatherAllVariables() mapper(expr) return mapper.vars @@ -246,15 +258,17 @@ def from_dev(ary): return obj_array.vectorize(from_dev, vec) -def _merge_kernel_arguments(dictionary, arg): +def _merge_kernel_arguments( + dictionary: dict[str, KernelArgument], + arg: KernelArgument): # Check for strict equality until there's a usecase if dictionary.setdefault(arg.name, arg) != arg: msg = "Merging two different kernel arguments {} and {} with the same name" - raise ValueError(msg.format(arg.loopy_arg, dictionary[arg].loopy_arg)) + raise ValueError(msg.format(arg.loopy_arg, dictionary[arg.name].loopy_arg)) -def gather_arguments(kernel_likes): - result = {} +def gather_arguments(kernel_likes: Sequence[KernelLike]): + result: dict[str, KernelArgument] = {} for knl in kernel_likes: for arg in knl.get_args(): _merge_kernel_arguments(result, arg) @@ -262,20 +276,20 @@ def gather_arguments(kernel_likes): return sorted(result.values(), key=lambda arg: arg.name) -def gather_source_arguments(kernel_likes): - result = {} +def gather_source_arguments(kernel_likes: Sequence[KernelLike]): + result: dict[str, KernelArgument] = {} for knl in kernel_likes: - for arg in knl.get_args() + knl.get_source_args(): + for arg in [*knl.get_args(), *knl.get_source_args()]: _merge_kernel_arguments(result, arg) return sorted(result.values(), key=lambda arg: arg.name) -def gather_loopy_arguments(kernel_likes): +def gather_loopy_arguments(kernel_likes: Sequence[KernelLike]): return [arg.loopy_arg for arg in gather_arguments(kernel_likes)] -def gather_loopy_source_arguments(kernel_likes): +def gather_loopy_source_arguments(kernel_likes: Sequence[KernelLike]): return [arg.loopy_arg for arg in gather_source_arguments(kernel_likes)] diff --git a/test/test_misc.py b/test/test_misc.py index df4d1331..2d1b073b 100644 --- a/test/test_misc.py +++ b/test/test_misc.py @@ -1,5 +1,7 @@ from __future__ import annotations +from typing_extensions import override + __copyright__ = "Copyright (C) 2017 Andreas Kloeckner" @@ -526,9 +528,14 @@ def test_elasticity_new(): def test_weird_kernel(pde): class MyKernel(ExpressionKernel): def __init__(self): - super().__init__(dim=2, expression=1, global_scaling_const=1, - is_complex_valued=False) + super().__init__(dim=2, expression=1, global_scaling_const=1) + + @property + @override + def is_complex_valued(self) -> bool: + return False + @override def get_pde_as_diff_op(self): return pde @@ -554,10 +561,15 @@ def get_pde_as_diff_op(self): class StorageIndexTestKernel(ExpressionKernel): def __init__(self, dim, max_mi): - super().__init__(dim=dim, expression=1, global_scaling_const=1, - is_complex_valued=False) + super().__init__(dim=dim, expression=1, global_scaling_const=1) self._max_mi = max_mi + @property + @override + def is_complex_valued(self) -> bool: + return False + + @override def get_pde_as_diff_op(self): w = make_identity_diff_op(self.dim) pde = diff(w, tuple(self._max_mi))