{ "errors": [ { "line": 94, "column": 5, "stop_line": 94, "stop_column": 31, "path": "src/documents/admin.py", "code": -2, "name": "missing-attribute", "description": "Object of class `FunctionType` has no attribute `short_description`", "concise_description": "Object of class `FunctionType` has no attribute `short_description`", "severity": "error" }, { "line": 244, "column": 27, "stop_line": 244, "stop_column": 35, "path": "src/documents/admin.py", "code": -2, "name": "unbound-name", "description": "`LogEntry` may be uninitialized", "concise_description": "`LogEntry` may be uninitialized", "severity": "error" }, { "line": 254, "column": 16, "stop_line": 254, "stop_column": 24, "path": "src/documents/barcodes.py", "code": -2, "name": "missing-import", "description": "Cannot find module `zxingcpp`\n Looked in these locations (from config in `/tank/users/trenton/projects/paperless/paperless-ngx/pyproject.toml`):\n Search path (from config file): [\"/tank/users/trenton/projects/paperless/paperless-ngx/src\"]\n Import root (inferred from project layout): \"/tank/users/trenton/projects/paperless/paperless-ngx/src\"\n Site package path queried from interpreter: [\"/tank/users/trenton/projects/paperless/paperless-ngx/.venv/lib/python3.14/site-packages\"]", "concise_description": "Cannot find module `zxingcpp`", "severity": "error" }, { "line": 310, "column": 38, "stop_line": 310, "stop_column": 51, "path": "src/documents/barcodes.py", "code": -2, "name": "missing-attribute", "description": "Object of class `Image` has no attribute `filename`", "concise_description": "Object of class `Image` has no attribute `filename`", "severity": "error" }, { "line": 260, "column": 16, "stop_line": 260, "stop_column": 23, "path": "src/documents/bulk_edit.py", "code": -2, "name": "bad-return", "description": "Returned type `Literal['ERROR']` is not assignable to declared return type `Literal['OK']`", "concise_description": "Returned type `Literal['ERROR']` is not assignable to declared return type `Literal['OK']`", "severity": "error" }, { "line": 274, "column": 9, "stop_line": 276, "stop_column": 60, "path": "src/documents/bulk_edit.py", "code": -2, "name": "bad-assignment", "description": "`dict_items[Unknown, Unknown] | list[tuple[int, None]]` is not assignable to variable `add_custom_fields` with type `dict[Unknown, Unknown] | list[int]`", "concise_description": "`dict_items[Unknown, Unknown] | list[tuple[int, None]]` is not assignable to variable `add_custom_fields` with type `dict[Unknown, Unknown] | list[int]`", "severity": "error" }, { "line": 280, "column": 32, "stop_line": 280, "stop_column": 40, "path": "src/documents/bulk_edit.py", "code": -2, "name": "not-iterable", "description": "Type `int` is not iterable", "concise_description": "Type `int` is not iterable", "severity": "error" }, { "line": 282, "column": 9, "stop_line": 282, "stop_column": 24, "path": "src/documents/bulk_edit.py", "code": -2, "name": "not-iterable", "description": "Type `int` is not iterable", "concise_description": "Type `int` is not iterable", "severity": "error" }, { "line": 288, "column": 21, "stop_line": 288, "stop_column": 43, "path": "src/documents/bulk_edit.py", "code": -2, "name": "bad-index", "description": "Cannot index into `dict[CustomField.FieldDataType, str]`\n Argument `str` is not assignable to parameter `key` with type `CustomField.FieldDataType` in function `dict.__getitem__`", "concise_description": "Cannot index into `dict[CustomField.FieldDataType, str]`", "severity": "error" }, { "line": 324, "column": 5, "stop_line": 327, "stop_column": 18, "path": "src/documents/bulk_edit.py", "code": -2, "name": "missing-attribute", "description": "Object of class `QuerySet` has no attribute `hard_delete`", "concise_description": "Object of class `QuerySet` has no attribute `hard_delete`", "severity": "error" }, { "line": 693, "column": 33, "stop_line": 693, "stop_column": 63, "path": "src/documents/bulk_edit.py", "code": -2, "name": "missing-argument", "description": "Missing argument `p` in function `pikepdf._core.PageList.remove`", "concise_description": "Missing argument `p` in function `pikepdf._core.PageList.remove`", "severity": "error" }, { "line": 990, "column": 13, "stop_line": 990, "stop_column": 64, "path": "src/documents/bulk_edit.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `append`", "concise_description": "Object of class `NoneType` has no attribute `append`", "severity": "error" }, { "line": 180, "column": 25, "stop_line": 180, "stop_column": 55, "path": "src/documents/caching.py", "code": -2, "name": "bad-argument-type", "description": "Argument `bytes | None` is not assignable to parameter `data` with type `Buffer` in function `binascii.hexlify`\n Protocol `Buffer` requires attribute `__buffer__`", "concise_description": "Argument `bytes | None` is not assignable to parameter `data` with type `Buffer` in function `binascii.hexlify`", "severity": "error" }, { "line": 144, "column": 40, "stop_line": 144, "stop_column": 66, "path": "src/documents/classifier.py", "code": -2, "name": "missing-module-attribute", "description": "Could not import `InconsistentVersionWarning` from `sklearn.exceptions`", "concise_description": "Could not import `InconsistentVersionWarning` from `sklearn.exceptions`", "severity": "error" }, { "line": 341, "column": 36, "stop_line": 343, "stop_column": 10, "path": "src/documents/classifier.py", "code": -2, "name": "bad-assignment", "description": "`ndarray | spmatrix` is not assignable to `ndarray`", "concise_description": "`ndarray | spmatrix` is not assignable to `ndarray`", "severity": "error" }, { "line": 348, "column": 44, "stop_line": 348, "stop_column": 48, "path": "src/documents/classifier.py", "code": -2, "name": "bad-assignment", "description": "`None` is not assignable to attribute `stop_words_` with type `set[Unknown]`", "concise_description": "`None` is not assignable to attribute `stop_words_` with type `set[Unknown]`", "severity": "error" }, { "line": 362, "column": 51, "stop_line": 364, "stop_column": 24, "path": "src/documents/classifier.py", "code": -2, "name": "missing-attribute", "description": "Object of class `spmatrix` has no attribute `ravel`", "concise_description": "Object of class `spmatrix` has no attribute `ravel`", "severity": "error" }, { "line": 367, "column": 42, "stop_line": 367, "stop_column": 88, "path": "src/documents/classifier.py", "code": -2, "name": "bad-assignment", "description": "`ndarray | spmatrix` is not assignable to variable `labels_tags_vectorized` with type `ndarray`", "concise_description": "`ndarray | spmatrix` is not assignable to variable `labels_tags_vectorized` with type `ndarray`", "severity": "error" }, { "line": 466, "column": 18, "stop_line": 466, "stop_column": 42, "path": "src/documents/classifier.py", "code": -2, "name": "not-iterable", "description": "`in` is not supported between `str` and `None`", "concise_description": "`in` is not supported between `str` and `None`", "severity": "error" }, { "line": 472, "column": 26, "stop_line": 472, "stop_column": 44, "path": "src/documents/classifier.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `stem`", "concise_description": "Object of class `NoneType` has no attribute `stem`", "severity": "error" }, { "line": 529, "column": 22, "stop_line": 529, "stop_column": 52, "path": "src/documents/classifier.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `transform`", "concise_description": "Object of class `NoneType` has no attribute `transform`", "severity": "error" }, { "line": 564, "column": 24, "stop_line": 564, "stop_column": 61, "path": "src/documents/classifier.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `inverse_transform`", "concise_description": "Object of class `NoneType` has no attribute `inverse_transform`", "severity": "error" }, { "line": 78, "column": 9, "stop_line": 78, "stop_column": 23, "path": "src/documents/consumer.py", "code": -2, "name": "not-iterable", "description": "Type `None` is not iterable", "concise_description": "Type `None` is not iterable", "severity": "error" }, { "line": 197, "column": 26, "stop_line": 197, "stop_column": 35, "path": "src/documents/consumer.py", "code": -2, "name": "bad-argument-count", "description": "Expected 0 positional arguments, got 5 in function `object.__init__`", "concise_description": "Expected 0 positional arguments, got 5 in function `object.__init__`", "severity": "error" }, { "line": 199, "column": 9, "stop_line": 199, "stop_column": 33, "path": "src/documents/consumer.py", "code": -2, "name": "missing-attribute", "description": "Object of class `ConsumerPluginMixin` has no attribute `renew_logging_group`", "concise_description": "Object of class `ConsumerPluginMixin` has no attribute `renew_logging_group`", "severity": "error" }, { "line": 201, "column": 25, "stop_line": 201, "stop_column": 38, "path": "src/documents/consumer.py", "code": -2, "name": "missing-attribute", "description": "Object of class `ConsumerPluginMixin` has no attribute `metadata`", "concise_description": "Object of class `ConsumerPluginMixin` has no attribute `metadata`", "severity": "error" }, { "line": 201, "column": 51, "stop_line": 201, "stop_column": 65, "path": "src/documents/consumer.py", "code": -2, "name": "missing-attribute", "description": "Object of class `ConsumerPluginMixin` has no attribute `input_doc`", "concise_description": "Object of class `ConsumerPluginMixin` has no attribute `input_doc`", "severity": "error" }, { "line": 211, "column": 9, "stop_line": 211, "stop_column": 24, "path": "src/documents/consumer.py", "code": -2, "name": "missing-attribute", "description": "Object of class `ConsumerPluginMixin` has no attribute `status_mgr`", "concise_description": "Object of class `ConsumerPluginMixin` has no attribute `status_mgr`", "severity": "error" }, { "line": 217, "column": 22, "stop_line": 217, "stop_column": 35, "path": "src/documents/consumer.py", "code": -2, "name": "missing-attribute", "description": "Object of class `ConsumerPluginMixin` has no attribute `metadata`", "concise_description": "Object of class `ConsumerPluginMixin` has no attribute `metadata`", "severity": "error" }, { "line": 217, "column": 48, "stop_line": 217, "stop_column": 61, "path": "src/documents/consumer.py", "code": -2, "name": "missing-attribute", "description": "Object of class `ConsumerPluginMixin` has no attribute `metadata`", "concise_description": "Object of class `ConsumerPluginMixin` has no attribute `metadata`", "severity": "error" }, { "line": 218, "column": 29, "stop_line": 218, "stop_column": 42, "path": "src/documents/consumer.py", "code": -2, "name": "missing-attribute", "description": "Object of class `ConsumerPluginMixin` has no attribute `metadata`", "concise_description": "Object of class `ConsumerPluginMixin` has no attribute `metadata`", "severity": "error" }, { "line": 219, "column": 16, "stop_line": 219, "stop_column": 29, "path": "src/documents/consumer.py", "code": -2, "name": "missing-attribute", "description": "Object of class `ConsumerPluginMixin` has no attribute `metadata`", "concise_description": "Object of class `ConsumerPluginMixin` has no attribute `metadata`", "severity": "error" }, { "line": 220, "column": 30, "stop_line": 220, "stop_column": 43, "path": "src/documents/consumer.py", "code": -2, "name": "missing-attribute", "description": "Object of class `ConsumerPluginMixin` has no attribute `metadata`", "concise_description": "Object of class `ConsumerPluginMixin` has no attribute `metadata`", "severity": "error" }, { "line": 221, "column": 16, "stop_line": 221, "stop_column": 29, "path": "src/documents/consumer.py", "code": -2, "name": "missing-attribute", "description": "Object of class `ConsumerPluginMixin` has no attribute `metadata`", "concise_description": "Object of class `ConsumerPluginMixin` has no attribute `metadata`", "severity": "error" }, { "line": 319, "column": 17, "stop_line": 319, "stop_column": 25, "path": "src/documents/consumer.py", "code": -2, "name": "bad-argument-type", "description": "Argument `LoggerAdapter[Logger]` is not assignable to parameter `logger` with type `Logger | None` in function `documents.utils.run_subprocess`", "concise_description": "Argument `LoggerAdapter[Logger]` is not assignable to parameter `logger` with type `Logger | None` in function `documents.utils.run_subprocess`", "severity": "error" }, { "line": 396, "column": 17, "stop_line": 396, "stop_column": 25, "path": "src/documents/consumer.py", "code": -2, "name": "bad-argument-type", "description": "Argument `LoggerAdapter[Logger]` is not assignable to parameter `logger` with type `Logger | None` in function `documents.utils.run_subprocess`", "concise_description": "Argument `LoggerAdapter[Logger]` is not assignable to parameter `logger` with type `Logger | None` in function `documents.utils.run_subprocess`", "severity": "error" }, { "line": 441, "column": 25, "stop_line": 445, "stop_column": 26, "path": "src/documents/consumer.py", "code": -2, "name": "bad-argument-type", "description": "Argument `list[Path | str]` is not assignable to parameter `arguments` with type `list[str]` in function `documents.utils.run_subprocess`", "concise_description": "Argument `list[Path | str]` is not assignable to parameter `arguments` with type `list[str]` in function `documents.utils.run_subprocess`", "severity": "error" }, { "line": 446, "column": 32, "stop_line": 446, "stop_column": 40, "path": "src/documents/consumer.py", "code": -2, "name": "bad-argument-type", "description": "Argument `LoggerAdapter[Logger]` is not assignable to parameter `logger` with type `Logger | None` in function `documents.utils.run_subprocess`", "concise_description": "Argument `LoggerAdapter[Logger]` is not assignable to parameter `logger` with type `Logger | None` in function `documents.utils.run_subprocess`", "severity": "error" }, { "line": 517, "column": 25, "stop_line": 517, "stop_column": 33, "path": "src/documents/consumer.py", "code": -2, "name": "bad-argument-type", "description": "Argument `LoggerAdapter[Logger]` is not assignable to parameter `log` with type `Logger | None` in function `should_produce_archive`", "concise_description": "Argument `LoggerAdapter[Logger]` is not assignable to parameter `log` with type `Logger | None` in function `should_produce_archive`", "severity": "error" }, { "line": 547, "column": 74, "stop_line": 547, "stop_column": 78, "path": "src/documents/consumer.py", "code": -2, "name": "bad-argument-type", "description": "Argument `str | None` is not assignable to parameter `content` with type `str` in function `documents.plugins.date_parsing.base.DateParserPluginBase.parse`", "concise_description": "Argument `str | None` is not assignable to parameter `content` with type `str` in function `documents.plugins.date_parsing.base.DateParserPluginBase.parse`", "severity": "error" }, { "line": 629, "column": 33, "stop_line": 629, "stop_column": 60, "path": "src/documents/consumer.py", "code": -2, "name": "missing-attribute", "description": "Object of class `Manager` has no attribute `log_create`", "concise_description": "Object of class `Manager` has no attribute `log_create`", "severity": "error" }, { "line": 644, "column": 38, "stop_line": 644, "stop_column": 42, "path": "src/documents/consumer.py", "code": -2, "name": "bad-argument-type", "description": "Argument `str | None` is not assignable to parameter `text` with type `str` in function `ConsumerPlugin._store`", "concise_description": "Argument `str | None` is not assignable to parameter `text` with type `str` in function `ConsumerPlugin._store`", "severity": "error" }, { "line": 711, "column": 62, "stop_line": 711, "stop_column": 83, "path": "src/documents/consumer.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Path | None` is not assignable to parameter `source_path` with type `Path` in function `documents.file_handling.create_source_path_directory`", "concise_description": "Argument `Path | None` is not assignable to parameter `source_path` with type `Path` in function `documents.file_handling.create_source_path_directory`", "severity": "error" }, { "line": 718, "column": 37, "stop_line": 718, "stop_column": 58, "path": "src/documents/consumer.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Path | None` is not assignable to parameter `path` with type `Path` in function `documents.utils.compute_checksum`", "concise_description": "Argument `Path | None` is not assignable to parameter `path` with type `Path` in function `documents.utils.compute_checksum`", "severity": "error" }, { "line": 802, "column": 13, "stop_line": 802, "stop_column": 31, "path": "src/documents/consumer.py", "code": -2, "name": "bad-argument-type", "description": "Argument `str | None` is not assignable to parameter `correspondent_name` with type `str` in function `documents.templating.workflows.parse_w_workflow_placeholders`", "concise_description": "Argument `str | None` is not assignable to parameter `correspondent_name` with type `str` in function `documents.templating.workflows.parse_w_workflow_placeholders`", "severity": "error" }, { "line": 803, "column": 13, "stop_line": 803, "stop_column": 26, "path": "src/documents/consumer.py", "code": -2, "name": "bad-argument-type", "description": "Argument `str | None` is not assignable to parameter `doc_type_name` with type `str` in function `documents.templating.workflows.parse_w_workflow_placeholders`", "concise_description": "Argument `str | None` is not assignable to parameter `doc_type_name` with type `str` in function `documents.templating.workflows.parse_w_workflow_placeholders`", "severity": "error" }, { "line": 804, "column": 13, "stop_line": 804, "stop_column": 27, "path": "src/documents/consumer.py", "code": -2, "name": "bad-argument-type", "description": "Argument `str | None` is not assignable to parameter `owner_username` with type `str` in function `documents.templating.workflows.parse_w_workflow_placeholders`", "concise_description": "Argument `str | None` is not assignable to parameter `owner_username` with type `str` in function `documents.templating.workflows.parse_w_workflow_placeholders`", "severity": "error" }, { "line": 926, "column": 31, "stop_line": 926, "stop_column": 46, "path": "src/documents/consumer.py", "code": -2, "name": "bad-argument-type", "description": "Argument `str` is not assignable to parameter `data_type` with type `CustomField.FieldDataType` in function `documents.models.CustomFieldInstance.get_value_field_name`", "concise_description": "Argument `str` is not assignable to parameter `data_type` with type `CustomField.FieldDataType` in function `documents.models.CustomFieldInstance.get_value_field_name`", "severity": "error" }, { "line": 998, "column": 21, "stop_line": 998, "stop_column": 36, "path": "src/documents/consumer.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `title`", "concise_description": "Object of class `NoneType` has no attribute `title`", "severity": "error" }, { "line": 999, "column": 24, "stop_line": 999, "stop_column": 51, "path": "src/documents/consumer.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `original_filename`", "concise_description": "Object of class `NoneType` has no attribute `original_filename`", "severity": "error" }, { "line": 1000, "column": 30, "stop_line": 1000, "stop_column": 48, "path": "src/documents/consumer.py", "code": -2, "name": "bad-argument-type", "description": "Argument `object | Unknown` is not assignable to parameter `*args` with type `PathLike[str] | str` in function `pathlib.Path.__new__`", "concise_description": "Argument `object | Unknown` is not assignable to parameter `*args` with type `PathLike[str] | str` in function `pathlib.Path.__new__`", "severity": "error" }, { "line": 1000, "column": 58, "stop_line": 1000, "stop_column": 76, "path": "src/documents/consumer.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `filename`", "concise_description": "Object of class `NoneType` has no attribute `filename`", "severity": "error" }, { "line": 1001, "column": 28, "stop_line": 1001, "stop_column": 40, "path": "src/documents/consumer.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `pk`", "concise_description": "Object of class `NoneType` has no attribute `pk`", "severity": "error" }, { "line": 1008, "column": 65, "stop_line": 1008, "stop_column": 77, "path": "src/documents/consumer.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `pk`", "concise_description": "Object of class `NoneType` has no attribute `pk`", "severity": "error" }, { "line": 1085, "column": 16, "stop_line": 1085, "stop_column": 51, "path": "src/documents/consumer.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `deleted_at`", "concise_description": "Object of class `NoneType` has no attribute `deleted_at`", "severity": "error" }, { "line": 31, "column": 13, "stop_line": 37, "stop_column": 14, "path": "src/documents/converters.py", "code": -2, "name": "bad-argument-type", "description": "Argument `list[Path | str]` is not assignable to parameter `arguments` with type `list[str]` in function `documents.utils.run_subprocess`", "concise_description": "Argument `list[Path | str]` is not assignable to parameter `arguments` with type `list[str]` in function `documents.utils.run_subprocess`", "severity": "error" }, { "line": 46, "column": 24, "stop_line": 46, "stop_column": 49, "path": "src/documents/converters.py", "code": -2, "name": "bad-argument-type", "description": "Argument `bytes | None` is not assignable to parameter `buffer` with type `Buffer` in function `_io.BufferedWriter.write`\n Protocol `Buffer` requires attribute `__buffer__`", "concise_description": "Argument `bytes | None` is not assignable to parameter `buffer` with type `Buffer` in function `_io.BufferedWriter.write`", "severity": "error" }, { "line": 115, "column": 13, "stop_line": 118, "stop_column": 26, "path": "src/documents/data_models.py", "code": -2, "name": "missing-attribute", "description": "Object of class `list` has no attribute `values_list`", "concise_description": "Object of class `list` has no attribute `values_list`", "severity": "error" }, { "line": 121, "column": 13, "stop_line": 124, "stop_column": 26, "path": "src/documents/data_models.py", "code": -2, "name": "missing-attribute", "description": "Object of class `list` has no attribute `values_list`", "concise_description": "Object of class `list` has no attribute `values_list`", "severity": "error" }, { "line": 137, "column": 26, "stop_line": 137, "stop_column": 43, "path": "src/documents/data_models.py", "code": -2, "name": "not-iterable", "description": "Type `Group` is not iterable", "concise_description": "Type `Group` is not iterable", "severity": "error" }, { "line": 138, "column": 35, "stop_line": 138, "stop_column": 59, "path": "src/documents/data_models.py", "code": -2, "name": "bad-index", "description": "Cannot index into `Group`\n Object of class `Group` has no attribute `__getitem__`", "concise_description": "Cannot index into `Group`", "severity": "error" }, { "line": 142, "column": 26, "stop_line": 142, "stop_column": 43, "path": "src/documents/data_models.py", "code": -2, "name": "not-iterable", "description": "Type `Group` is not iterable", "concise_description": "Type `Group` is not iterable", "severity": "error" }, { "line": 143, "column": 37, "stop_line": 143, "stop_column": 61, "path": "src/documents/data_models.py", "code": -2, "name": "bad-index", "description": "Cannot index into `Group`\n Object of class `Group` has no attribute `__getitem__`", "concise_description": "Cannot index into `Group`", "severity": "error" }, { "line": 172, "column": 22, "stop_line": 172, "stop_column": 65, "path": "src/documents/data_models.py", "code": -2, "name": "bad-assignment", "description": "`None` is not assignable to `str`", "concise_description": "`None` is not assignable to `str`", "severity": "error" }, { "line": 143, "column": 12, "stop_line": 143, "stop_column": 36, "path": "src/documents/file_handling.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `storage_path`", "concise_description": "Object of class `NoneType` has no attribute `storage_path`", "severity": "error" }, { "line": 144, "column": 31, "stop_line": 144, "stop_column": 60, "path": "src/documents/file_handling.py", "code": -2, "name": "missing-attribute", "description": "Object of class `object` has no attribute `path`", "concise_description": "Object of class `object` has no attribute `path`", "severity": "error" }, { "line": 157, "column": 53, "stop_line": 157, "stop_column": 64, "path": "src/documents/file_handling.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Document | None` is not assignable to parameter `document` with type `Document` in function `format_filename`", "concise_description": "Argument `Document | None` is not assignable to parameter `document` with type `Document` in function `format_filename`", "severity": "error" }, { "line": 181, "column": 16, "stop_line": 181, "stop_column": 30, "path": "src/documents/file_handling.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `pk`", "concise_description": "Object of class `NoneType` has no attribute `pk`", "severity": "error" }, { "line": 206, "column": 51, "stop_line": 206, "stop_column": 61, "path": "src/documents/filters.py", "code": -2, "name": "missing-attribute", "description": "Object of class `SharedByUser` has no attribute `model`", "concise_description": "Object of class `SharedByUser` has no attribute `model`", "severity": "error" }, { "line": 262, "column": 31, "stop_line": 262, "stop_column": 51, "path": "src/documents/filters.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `get`", "concise_description": "Object of class `NoneType` has no attribute `get`", "severity": "error" }, { "line": 294, "column": 25, "stop_line": 294, "stop_column": 66, "path": "src/documents/filters.py", "code": -2, "name": "unsupported-operation", "description": "`None` is not subscriptable", "concise_description": "`None` is not subscriptable", "severity": "error" }, { "line": 321, "column": 47, "stop_line": 321, "stop_column": 76, "path": "src/documents/filters.py", "code": -2, "name": "bad-argument-type", "description": "Argument `dict[Unknown | None, _APIExceptionInput]` is not assignable to parameter `detail` with type `ErrorDetail | Mapping[str, _APIExceptionInput] | Sequence[_APIExceptionInput] | _StrPromise | dict[str, _Detail] | list[_Detail] | str | None` in function `rest_framework.exceptions.APIException.__init__`", "concise_description": "Argument `dict[Unknown | None, _APIExceptionInput]` is not assignable to parameter `detail` with type `ErrorDetail | Mapping[str, _APIExceptionInput] | Sequence[_APIExceptionInput] | _StrPromise | dict[str, _Detail] | list[_Detail] | str | None` in function `rest_framework.exceptions.APIException.__init__`", "severity": "error" }, { "line": 330, "column": 5, "stop_line": 330, "stop_column": 26, "path": "src/documents/filters.py", "code": -2, "name": "missing-attribute", "description": "Object of class `FunctionType` has no attribute `__signature__`", "concise_description": "Object of class `FunctionType` has no attribute `__signature__`", "severity": "error" }, { "line": 635, "column": 26, "stop_line": 635, "stop_column": 49, "path": "src/documents/filters.py", "code": -2, "name": "missing-attribute", "description": "Object of class `ForeignObjectRel` has no attribute `deconstruct`", "concise_description": "Object of class `ForeignObjectRel` has no attribute `deconstruct`", "severity": "error" }, { "line": 638, "column": 17, "stop_line": 638, "stop_column": 28, "path": "src/documents/filters.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Field[Any, Any] | ForeignObjectRel` is not assignable to parameter `model_field` with type `Field[Unknown, Unknown]` in function `rest_framework.serializers.ModelSerializer.build_standard_field`", "concise_description": "Argument `Field[Any, Any] | ForeignObjectRel` is not assignable to parameter `model_field` with type `Field[Unknown, Unknown]` in function `rest_framework.serializers.ModelSerializer.build_standard_field`", "severity": "error" }, { "line": 695, "column": 18, "stop_line": 695, "stop_column": 41, "path": "src/documents/filters.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Any | None` is not assignable to parameter `iterable` with type `Iterable[Any]` in function `set.__init__`\n Protocol `Iterable` requires attribute `__iter__`", "concise_description": "Argument `Any | None` is not assignable to parameter `iterable` with type `Iterable[Any]` in function `set.__init__`", "severity": "error" }, { "line": 969, "column": 25, "stop_line": 969, "stop_column": 45, "path": "src/documents/filters.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `get`", "concise_description": "Object of class `NoneType` has no attribute `get`", "severity": "error" }, { "line": 13, "column": 31, "stop_line": 13, "stop_column": 48, "path": "src/documents/loggers.py", "code": -2, "name": "missing-attribute", "description": "Object of class `LoggingMixin` has no attribute `logging_name`", "concise_description": "Object of class `LoggingMixin` has no attribute `logging_name`", "severity": "error" }, { "line": 118, "column": 13, "stop_line": 118, "stop_column": 29, "path": "src/documents/management/commands/document_exporter.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `write`", "concise_description": "Object of class `NoneType` has no attribute `write`", "severity": "error" }, { "line": 121, "column": 9, "stop_line": 121, "stop_column": 25, "path": "src/documents/management/commands/document_exporter.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `write`", "concise_description": "Object of class `NoneType` has no attribute `write`", "severity": "error" }, { "line": 564, "column": 41, "stop_line": 564, "stop_column": 50, "path": "src/documents/management/commands/document_exporter.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Path | str` is not assignable to parameter `element` with type `str` in function `set.add`", "concise_description": "Argument `Path | str` is not assignable to parameter `element` with type `str` in function `set.add`", "severity": "error" }, { "line": 91, "column": 38, "stop_line": 91, "stop_column": 70, "path": "src/documents/management/commands/document_fuzzy_match.py", "code": -2, "name": "bad-argument-type", "description": "Argument `list[tuple[int, int] | tuple[int, ...]]` is not assignable to parameter `*s` with type `Iterable[tuple[int, int]]` in function `set.update`", "concise_description": "Argument `list[tuple[int, int] | tuple[int, ...]]` is not assignable to parameter `*s` with type `Iterable[tuple[int, int]]` in function `set.update`", "severity": "error" }, { "line": 238, "column": 14, "stop_line": 238, "stop_column": 18, "path": "src/documents/management/commands/document_importer.py", "code": -2, "name": "bad-override", "description": "Class member `Command.salt` overrides parent class `CryptMixin` in an inconsistent manner\n `Command.salt` has type `str | None`, which is not consistent with `str` in `CryptMixin.salt` (the type of read-write attributes cannot be changed)", "concise_description": "Class member `Command.salt` overrides parent class `CryptMixin` in an inconsistent manner", "severity": "error" }, { "line": 420, "column": 29, "stop_line": 420, "stop_column": 51, "path": "src/documents/management/commands/document_importer.py", "code": -2, "name": "unsupported-operation", "description": "`/` is not supported between `Path` and `None`\n Argument `None` is not assignable to parameter `key` with type `PathLike[str] | str` in function `pathlib.PurePath.__truediv__`", "concise_description": "`/` is not supported between `Path` and `None`", "severity": "error" }, { "line": 463, "column": 35, "stop_line": 463, "stop_column": 60, "path": "src/documents/management/commands/document_importer.py", "code": -2, "name": "unsupported-operation", "description": "`/` is not supported between `Path` and `None`\n Argument `None` is not assignable to parameter `key` with type `PathLike[str] | str` in function `pathlib.PurePath.__truediv__`", "concise_description": "`/` is not supported between `Path` and `None`", "severity": "error" }, { "line": 49, "column": 42, "stop_line": 49, "stop_column": 69, "path": "src/documents/matching.py", "code": -2, "name": "bad-argument-type", "description": "Argument `str | None` is not assignable to parameter `content` with type `str` in function `documents.classifier.DocumentClassifier.predict_correspondent`", "concise_description": "Argument `str | None` is not assignable to parameter `content` with type `str` in function `documents.classifier.DocumentClassifier.predict_correspondent`", "severity": "error" }, { "line": 81, "column": 42, "stop_line": 81, "stop_column": 69, "path": "src/documents/matching.py", "code": -2, "name": "bad-argument-type", "description": "Argument `str | None` is not assignable to parameter `content` with type `str` in function `documents.classifier.DocumentClassifier.predict_document_type`", "concise_description": "Argument `str | None` is not assignable to parameter `content` with type `str` in function `documents.classifier.DocumentClassifier.predict_document_type`", "severity": "error" }, { "line": 112, "column": 33, "stop_line": 112, "stop_column": 60, "path": "src/documents/matching.py", "code": -2, "name": "bad-argument-type", "description": "Argument `str | None` is not assignable to parameter `content` with type `str` in function `documents.classifier.DocumentClassifier.predict_tags`", "concise_description": "Argument `str | None` is not assignable to parameter `content` with type `str` in function `documents.classifier.DocumentClassifier.predict_tags`", "severity": "error" }, { "line": 139, "column": 41, "stop_line": 139, "stop_column": 68, "path": "src/documents/matching.py", "code": -2, "name": "bad-argument-type", "description": "Argument `str | None` is not assignable to parameter `content` with type `str` in function `documents.classifier.DocumentClassifier.predict_storage_path`", "concise_description": "Argument `str | None` is not assignable to parameter `content` with type `str` in function `documents.classifier.DocumentClassifier.predict_storage_path`", "severity": "error" }, { "line": 345, "column": 24, "stop_line": 348, "stop_column": 10, "path": "src/documents/matching.py", "code": -2, "name": "bad-specialization", "description": "`Path` is not assignable to upper bound `bytes | str` of type variable `AnyStr`", "concise_description": "`Path` is not assignable to upper bound `bytes | str` of type variable `AnyStr`", "severity": "error" }, { "line": 347, "column": 13, "stop_line": 347, "stop_column": 32, "path": "src/documents/matching.py", "code": -2, "name": "bad-argument-type", "description": "Argument `str` is not assignable to parameter `pat` with type `Path` in function `fnmatch.fnmatch`", "concise_description": "Argument `str` is not assignable to parameter `pat` with type `Path` in function `fnmatch.fnmatch`", "severity": "error" }, { "line": 356, "column": 12, "stop_line": 356, "stop_column": 37, "path": "src/documents/matching.py", "code": -2, "name": "bad-return", "description": "Returned type `tuple[bool, Literal[''] | tuple[str]]` is not assignable to declared return type `tuple[bool, str]`", "concise_description": "Returned type `tuple[bool, Literal[''] | tuple[str]]` is not assignable to declared return type `tuple[bool, str]`", "severity": "error" }, { "line": 370, "column": 9, "stop_line": 370, "stop_column": 16, "path": "src/documents/matching.py", "code": -2, "name": "bad-argument-type", "description": "Argument `WorkflowTrigger` is not assignable to parameter `matching_model` with type `MatchingModel` in function `matches`", "concise_description": "Argument `WorkflowTrigger` is not assignable to parameter `matching_model` with type `MatchingModel` in function `matches`", "severity": "error" }, { "line": 395, "column": 17, "stop_line": 395, "stop_column": 55, "path": "src/documents/matching.py", "code": -2, "name": "unsupported-operation", "description": "`&` is not supported between `None` and `set[Any]`\n Cannot find `__and__` or `__rand__`", "concise_description": "`&` is not supported between `None` and `set[Any]`", "severity": "error" }, { "line": 405, "column": 42, "stop_line": 405, "stop_column": 58, "path": "src/documents/matching.py", "code": -2, "name": "bad-argument-type", "description": "Argument `set[Any] | None` is not assignable to parameter `s` with type `Iterable[object]` in function `set.issubset`\n Protocol `Iterable` requires attribute `__iter__`", "concise_description": "Argument `set[Any] | None` is not assignable to parameter `s` with type `Iterable[object]` in function `set.issubset`", "severity": "error" }, { "line": 414, "column": 12, "stop_line": 414, "stop_column": 47, "path": "src/documents/matching.py", "code": -2, "name": "unsupported-operation", "description": "`&` is not supported between `None` and `set[Any]`\n Cannot find `__and__` or `__rand__`", "concise_description": "`&` is not supported between `None` and `set[Any]`", "severity": "error" }, { "line": 685, "column": 21, "stop_line": 685, "stop_column": 29, "path": "src/documents/matching.py", "code": -2, "name": "bad-argument-type", "description": "Argument `ConsumableDocument | Document` is not assignable to parameter `document` with type `ConsumableDocument` in function `consumable_document_matches_workflow`", "concise_description": "Argument `ConsumableDocument | Document` is not assignable to parameter `document` with type `ConsumableDocument` in function `consumable_document_matches_workflow`", "severity": "error" }, { "line": 694, "column": 21, "stop_line": 694, "stop_column": 29, "path": "src/documents/matching.py", "code": -2, "name": "bad-argument-type", "description": "Argument `ConsumableDocument | Document` is not assignable to parameter `document` with type `Document` in function `existing_document_matches_workflow`", "concise_description": "Argument `ConsumableDocument | Document` is not assignable to parameter `document` with type `Document` in function `existing_document_matches_workflow`", "severity": "error" }, { "line": 117, "column": 11, "stop_line": 117, "stop_column": 15, "path": "src/documents/models.py", "code": -2, "name": "inconsistent-inheritance", "description": "Field `ordering` has inconsistent types inherited from multiple base classes\n Inherited types include:\n `tuple[Literal['name']]` from `Meta`\n `list[str]` from `Meta`", "concise_description": "Field `ordering` has inconsistent types inherited from multiple base classes", "severity": "error" }, { "line": 451, "column": 21, "stop_line": 451, "stop_column": 38, "path": "src/documents/models.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Path | None` is not assignable to parameter `*args` with type `PathLike[str] | str` in function `pathlib.Path.__new__`", "concise_description": "Argument `Path | None` is not assignable to parameter `*args` with type `PathLike[str] | str` in function `pathlib.Path.__new__`", "severity": "error" }, { "line": 959, "column": 9, "stop_line": 959, "stop_column": 15, "path": "src/documents/models.py", "code": -2, "name": "bad-override", "description": "Class member `ShareLinkBundle.delete` overrides parent class `Model` in an inconsistent manner\n `ShareLinkBundle.delete` has type `(self: ShareLinkBundle, using: Unknown | None = None, *, keep_parents: bool | Unknown = False) -> tuple[int, dict[str, int]]`, which is not assignable to `(self: ShareLinkBundle, using: Any | None = None, keep_parents: bool = False) -> tuple[int, dict[str, int]]`, the type of `Model.delete`\n Signature mismatch:\n expected: def delete(self: ShareLinkBundle, using: Any | None = None, keep_parents: bool = False) -> tuple[int, dict[str, int]]: ...\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ parameters\n found: def delete(self: ShareLinkBundle, using: Unknown | None = None, *, keep_parents: bool | Unknown = False) -> tuple[int, dict...\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ parameters", "concise_description": "Class member `ShareLinkBundle.delete` overrides parent class `Model` in an inconsistent manner", "severity": "error" }, { "line": 1134, "column": 54, "stop_line": 1134, "stop_column": 74, "path": "src/documents/models.py", "code": -2, "name": "bad-argument-type", "description": "Argument `str` is not assignable to parameter `data_type` with type `CustomField.FieldDataType` in function `CustomFieldInstance.get_value_field_name`", "concise_description": "Argument `str` is not assignable to parameter `data_type` with type `CustomField.FieldDataType` in function `CustomFieldInstance.get_value_field_name`", "severity": "error" }, { "line": 1158, "column": 5, "stop_line": 1158, "stop_column": 13, "path": "src/documents/models.py", "code": -2, "name": "unbound-name", "description": "`auditlog` may be uninitialized", "concise_description": "`auditlog` may be uninitialized", "severity": "error" }, { "line": 146, "column": 28, "stop_line": 146, "stop_column": 31, "path": "src/documents/parsers.py", "code": -2, "name": "bad-argument-type", "description": "Argument `list[Path | str | Unknown]` is not assignable to parameter `arguments` with type `list[str]` in function `documents.utils.run_subprocess`", "concise_description": "Argument `list[Path | str | Unknown]` is not assignable to parameter `arguments` with type `list[str]` in function `documents.utils.run_subprocess`", "severity": "error" }, { "line": 123, "column": 42, "stop_line": 123, "stop_column": 64, "path": "src/documents/permissions.py", "code": -2, "name": "missing-attribute", "description": "Object of class `list` has no attribute `exists`", "concise_description": "Object of class `list` has no attribute `exists`", "severity": "error" }, { "line": 124, "column": 35, "stop_line": 124, "stop_column": 58, "path": "src/documents/permissions.py", "code": -2, "name": "missing-attribute", "description": "Object of class `list` has no attribute `exclude`", "concise_description": "Object of class `list` has no attribute `exclude`", "severity": "error" }, { "line": 125, "column": 16, "stop_line": 125, "stop_column": 38, "path": "src/documents/permissions.py", "code": -2, "name": "missing-attribute", "description": "Object of class `list` has no attribute `exists`", "concise_description": "Object of class `list` has no attribute `exists`", "severity": "error" }, { "line": 97, "column": 29, "stop_line": 97, "stop_column": 48, "path": "src/documents/plugins/helpers.py", "code": -2, "name": "bad-assignment", "description": "`BaseChannelLayer | None` is not assignable to attribute `_channel` with type `RedisPubSubChannelLayer | None`", "concise_description": "`BaseChannelLayer | None` is not assignable to attribute `_channel` with type `RedisPubSubChannelLayer | None`", "severity": "error" }, { "line": 23, "column": 26, "stop_line": 23, "stop_column": 33, "path": "src/documents/regex.py", "code": -2, "name": "missing-attribute", "description": "Object of class `error` has no attribute `msg`", "concise_description": "Object of class `error` has no attribute `msg`", "severity": "error" }, { "line": 167, "column": 24, "stop_line": 167, "stop_column": 51, "path": "src/documents/search/_backend.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `writer`", "concise_description": "Object of class `NoneType` has no attribute `writer`", "severity": "error" }, { "line": 173, "column": 17, "stop_line": 173, "stop_column": 36, "path": "src/documents/search/_backend.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `commit`", "concise_description": "Object of class `NoneType` has no attribute `commit`", "severity": "error" }, { "line": 174, "column": 17, "stop_line": 174, "stop_column": 44, "path": "src/documents/search/_backend.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `reload`", "concise_description": "Object of class `NoneType` has no attribute `reload`", "severity": "error" }, { "line": 203, "column": 9, "stop_line": 203, "stop_column": 34, "path": "src/documents/search/_backend.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `add_document`", "concise_description": "Object of class `NoneType` has no attribute `add_document`", "severity": "error" }, { "line": 213, "column": 9, "stop_line": 213, "stop_column": 47, "path": "src/documents/search/_backend.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `delete_documents_by_query`", "concise_description": "Object of class `NoneType` has no attribute `delete_documents_by_query`", "severity": "error" }, { "line": 215, "column": 17, "stop_line": 215, "stop_column": 38, "path": "src/documents/search/_backend.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Unknown | None` is not assignable to parameter `schema` with type `Schema` in function `tantivy.tantivy.Query.range_query`", "concise_description": "Argument `Unknown | None` is not assignable to parameter `schema` with type `Schema` in function `tantivy.tantivy.Query.range_query`", "severity": "error" }, { "line": 309, "column": 50, "stop_line": 309, "stop_column": 75, "path": "src/documents/search/_backend.py", "code": -2, "name": "bad-argument-type", "description": "Argument `int | None` is not assignable to parameter `value` with type `int` in function `tantivy.tantivy.Document.add_unsigned`", "concise_description": "Argument `int | None` is not assignable to parameter `value` with type `int` in function `tantivy.tantivy.Document.add_unsigned`", "severity": "error" }, { "line": 315, "column": 50, "stop_line": 315, "stop_column": 75, "path": "src/documents/search/_backend.py", "code": -2, "name": "bad-argument-type", "description": "Argument `int | None` is not assignable to parameter `value` with type `int` in function `tantivy.tantivy.Document.add_unsigned`", "concise_description": "Argument `int | None` is not assignable to parameter `value` with type `int` in function `tantivy.tantivy.Document.add_unsigned`", "severity": "error" }, { "line": 320, "column": 49, "stop_line": 320, "stop_column": 73, "path": "src/documents/search/_backend.py", "code": -2, "name": "bad-argument-type", "description": "Argument `int | None` is not assignable to parameter `value` with type `int` in function `tantivy.tantivy.Document.add_unsigned`", "concise_description": "Argument `int | None` is not assignable to parameter `value` with type `int` in function `tantivy.tantivy.Document.add_unsigned`", "severity": "error" }, { "line": 332, "column": 21, "stop_line": 332, "stop_column": 35, "path": "src/documents/search/_backend.py", "code": -2, "name": "missing-attribute", "description": "Object of class `Document` has no attribute `notes`", "concise_description": "Object of class `Document` has no attribute `notes`", "severity": "error" }, { "line": 338, "column": 20, "stop_line": 338, "stop_column": 42, "path": "src/documents/search/_backend.py", "code": -2, "name": "missing-attribute", "description": "Object of class `Document` has no attribute `custom_fields`", "concise_description": "Object of class `Document` has no attribute `custom_fields`", "severity": "error" }, { "line": 380, "column": 43, "stop_line": 380, "stop_column": 50, "path": "src/documents/search/_backend.py", "code": -2, "name": "missing-attribute", "description": "Object of class `str` has no attribute `pk`", "concise_description": "Object of class `str` has no attribute `pk`", "severity": "error" }, { "line": 467, "column": 50, "stop_line": 467, "stop_column": 61, "path": "src/documents/search/_backend.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Unknown | None` is not assignable to parameter `index` with type `Index` in function `documents.search._query.parse_simple_text_query`", "concise_description": "Argument `Unknown | None` is not assignable to parameter `index` with type `Index` in function `documents.search._query.parse_simple_text_query`", "severity": "error" }, { "line": 469, "column": 51, "stop_line": 469, "stop_column": 62, "path": "src/documents/search/_backend.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Unknown | None` is not assignable to parameter `index` with type `Index` in function `documents.search._query.parse_simple_title_query`", "concise_description": "Argument `Unknown | None` is not assignable to parameter `index` with type `Index` in function `documents.search._query.parse_simple_title_query`", "severity": "error" }, { "line": 471, "column": 43, "stop_line": 471, "stop_column": 54, "path": "src/documents/search/_backend.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Unknown | None` is not assignable to parameter `index` with type `Index` in function `documents.search._query.parse_user_query`", "concise_description": "Argument `Unknown | None` is not assignable to parameter `index` with type `Index` in function `documents.search._query.parse_user_query`", "severity": "error" }, { "line": 475, "column": 57, "stop_line": 475, "stop_column": 69, "path": "src/documents/search/_backend.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Unknown | None` is not assignable to parameter `schema` with type `Schema` in function `documents.search._query.build_permission_filter`", "concise_description": "Argument `Unknown | None` is not assignable to parameter `schema` with type `Schema` in function `documents.search._query.build_permission_filter`", "severity": "error" }, { "line": 485, "column": 20, "stop_line": 485, "stop_column": 40, "path": "src/documents/search/_backend.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `searcher`", "concise_description": "Object of class `NoneType` has no attribute `searcher`", "severity": "error" }, { "line": 552, "column": 29, "stop_line": 552, "stop_column": 41, "path": "src/documents/search/_backend.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Unknown | None` is not assignable to parameter `schema` with type `Schema` in function `tantivy.tantivy.SnippetGenerator.create`", "concise_description": "Argument `Unknown | None` is not assignable to parameter `schema` with type `Schema` in function `tantivy.tantivy.SnippetGenerator.create`", "severity": "error" }, { "line": 566, "column": 33, "stop_line": 566, "stop_column": 45, "path": "src/documents/search/_backend.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Unknown | None` is not assignable to parameter `schema` with type `Schema` in function `tantivy.tantivy.SnippetGenerator.create`", "concise_description": "Argument `Unknown | None` is not assignable to parameter `schema` with type `Schema` in function `tantivy.tantivy.SnippetGenerator.create`", "severity": "error" }, { "line": 617, "column": 20, "stop_line": 617, "stop_column": 40, "path": "src/documents/search/_backend.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `searcher`", "concise_description": "Object of class `NoneType` has no attribute `searcher`", "severity": "error" }, { "line": 621, "column": 37, "stop_line": 621, "stop_column": 54, "path": "src/documents/search/_backend.py", "code": -2, "name": "missing-attribute", "description": "Object of class `AbstractBaseUser` has no attribute `is_superuser`", "concise_description": "Object of class `AbstractBaseUser` has no attribute `is_superuser`", "severity": "error" }, { "line": 622, "column": 50, "stop_line": 622, "stop_column": 62, "path": "src/documents/search/_backend.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Unknown | None` is not assignable to parameter `schema` with type `Schema` in function `documents.search._query.build_permission_filter`", "concise_description": "Argument `Unknown | None` is not assignable to parameter `schema` with type `Schema` in function `documents.search._query.build_permission_filter`", "severity": "error" }, { "line": 671, "column": 20, "stop_line": 671, "stop_column": 40, "path": "src/documents/search/_backend.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `searcher`", "concise_description": "Object of class `NoneType` has no attribute `searcher`", "severity": "error" }, { "line": 675, "column": 13, "stop_line": 675, "stop_column": 25, "path": "src/documents/search/_backend.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Unknown | None` is not assignable to parameter `schema` with type `Schema` in function `tantivy.tantivy.Query.range_query`", "concise_description": "Argument `Unknown | None` is not assignable to parameter `schema` with type `Schema` in function `tantivy.tantivy.Query.range_query`", "severity": "error" }, { "line": 704, "column": 57, "stop_line": 704, "stop_column": 69, "path": "src/documents/search/_backend.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Unknown | None` is not assignable to parameter `schema` with type `Schema` in function `documents.search._query.build_permission_filter`", "concise_description": "Argument `Unknown | None` is not assignable to parameter `schema` with type `Schema` in function `documents.search._query.build_permission_filter`", "severity": "error" }, { "line": 132, "column": 9, "stop_line": 132, "stop_column": 17, "path": "src/documents/serialisers.py", "code": -2, "name": "bad-param-name-override", "description": "Class member `MatchingModelSerializer.validate` overrides parent class `ModelSerializer` in an inconsistent manner\n Got parameter name `data`, expected `attrs`", "concise_description": "Class member `MatchingModelSerializer.validate` overrides parent class `ModelSerializer` in an inconsistent manner", "severity": "error" }, { "line": 206, "column": 62, "stop_line": 208, "stop_column": 26, "path": "src/documents/serialisers.py", "code": -2, "name": "unsupported-operation", "description": "Cannot set item in `dict[str, QuerySet[User, User]]`\n Argument `QuerySet[Group, Group]` is not assignable to parameter `value` with type `QuerySet[User, User]` in function `dict.__setitem__`", "concise_description": "Cannot set item in `dict[str, QuerySet[User, User]]`", "severity": "error" }, { "line": 295, "column": 17, "stop_line": 299, "stop_column": 30, "path": "src/documents/serialisers.py", "code": -2, "name": "missing-attribute", "description": "Object of class `list` has no attribute `values_list`", "concise_description": "Object of class `list` has no attribute `values_list`", "severity": "error" }, { "line": 361, "column": 21, "stop_line": 361, "stop_column": 37, "path": "src/documents/serialisers.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `has_perm`", "concise_description": "Object of class `NoneType` has no attribute `has_perm`", "severity": "error" }, { "line": 473, "column": 9, "stop_line": 473, "stop_column": 26, "path": "src/documents/serialisers.py", "code": -2, "name": "bad-param-name-override", "description": "Class member `OwnedObjectListSerializer.to_representation` overrides parent class `ListSerializer` in an inconsistent manner\n Got parameter name `documents`, expected `data`", "concise_description": "Class member `OwnedObjectListSerializer.to_representation` overrides parent class `ListSerializer` in an inconsistent manner", "severity": "error" }, { "line": 474, "column": 9, "stop_line": 474, "stop_column": 27, "path": "src/documents/serialisers.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `context`", "concise_description": "Object of class `NoneType` has no attribute `context`", "severity": "error" }, { "line": 474, "column": 51, "stop_line": 474, "stop_column": 83, "path": "src/documents/serialisers.py", "code": -2, "name": "missing-attribute", "description": "Object of class `BaseSerializer` has no attribute `get_shared_object_pks`\nObject of class `Field` has no attribute `get_shared_object_pks`\nObject of class `NoneType` has no attribute `get_shared_object_pks`", "concise_description": "Object of class `BaseSerializer` has no attribute `get_shared_object_pks`\nObject of class `Field` has no attribute `get_shared_object_pks`\nObject of class `NoneType` has no attribute `get_shared_object_pks`", "severity": "error" }, { "line": 483, "column": 11, "stop_line": 483, "stop_column": 15, "path": "src/documents/serialisers.py", "code": -2, "name": "bad-override", "description": "Class member `CorrespondentSerializer.Meta` overrides parent class `MatchingModelSerializer` in an inconsistent manner\n `CorrespondentSerializer.Meta` has type `type[CorrespondentSerializer.Meta]`, which is not assignable to `type[ModelSerializer.Meta]`, the type of `MatchingModelSerializer.Meta`", "concise_description": "Class member `CorrespondentSerializer.Meta` overrides parent class `MatchingModelSerializer` in an inconsistent manner", "severity": "error" }, { "line": 483, "column": 11, "stop_line": 483, "stop_column": 15, "path": "src/documents/serialisers.py", "code": -2, "name": "bad-override", "description": "Class member `CorrespondentSerializer.Meta` overrides parent class `OwnedObjectSerializer` in an inconsistent manner\n `CorrespondentSerializer.Meta` has type `type[CorrespondentSerializer.Meta]`, which is not assignable to `type[ModelSerializer.Meta]`, the type of `OwnedObjectSerializer.Meta`", "concise_description": "Class member `CorrespondentSerializer.Meta` overrides parent class `OwnedObjectSerializer` in an inconsistent manner", "severity": "error" }, { "line": 502, "column": 11, "stop_line": 502, "stop_column": 15, "path": "src/documents/serialisers.py", "code": -2, "name": "bad-override", "description": "Class member `DocumentTypeSerializer.Meta` overrides parent class `MatchingModelSerializer` in an inconsistent manner\n `DocumentTypeSerializer.Meta` has type `type[DocumentTypeSerializer.Meta]`, which is not assignable to `type[ModelSerializer.Meta]`, the type of `MatchingModelSerializer.Meta`", "concise_description": "Class member `DocumentTypeSerializer.Meta` overrides parent class `MatchingModelSerializer` in an inconsistent manner", "severity": "error" }, { "line": 502, "column": 11, "stop_line": 502, "stop_column": 15, "path": "src/documents/serialisers.py", "code": -2, "name": "bad-override", "description": "Class member `DocumentTypeSerializer.Meta` overrides parent class `OwnedObjectSerializer` in an inconsistent manner\n `DocumentTypeSerializer.Meta` has type `type[DocumentTypeSerializer.Meta]`, which is not assignable to `type[ModelSerializer.Meta]`, the type of `OwnedObjectSerializer.Meta`", "concise_description": "Class member `DocumentTypeSerializer.Meta` overrides parent class `OwnedObjectSerializer` in an inconsistent manner", "severity": "error" }, { "line": 573, "column": 14, "stop_line": 578, "stop_column": 6, "path": "src/documents/serialisers.py", "code": -2, "name": "bad-assignment", "description": "`ManyRelatedField | RelatedField[@_, @_, Any]` is not assignable to attribute `parent` with type `BaseSerializer[Unknown]`", "concise_description": "`ManyRelatedField | RelatedField[@_, @_, Any]` is not assignable to attribute `parent` with type `BaseSerializer[Unknown]`", "severity": "error" }, { "line": 627, "column": 11, "stop_line": 627, "stop_column": 15, "path": "src/documents/serialisers.py", "code": -2, "name": "bad-override", "description": "Class member `TagSerializer.Meta` overrides parent class `MatchingModelSerializer` in an inconsistent manner\n `TagSerializer.Meta` has type `type[TagSerializer.Meta]`, which is not assignable to `type[ModelSerializer.Meta]`, the type of `MatchingModelSerializer.Meta`", "concise_description": "Class member `TagSerializer.Meta` overrides parent class `MatchingModelSerializer` in an inconsistent manner", "severity": "error" }, { "line": 627, "column": 11, "stop_line": 627, "stop_column": 15, "path": "src/documents/serialisers.py", "code": -2, "name": "bad-override", "description": "Class member `TagSerializer.Meta` overrides parent class `OwnedObjectSerializer` in an inconsistent manner\n `TagSerializer.Meta` has type `type[TagSerializer.Meta]`, which is not assignable to `type[ModelSerializer.Meta]`, the type of `OwnedObjectSerializer.Meta`", "concise_description": "Class member `TagSerializer.Meta` overrides parent class `OwnedObjectSerializer` in an inconsistent manner", "severity": "error" }, { "line": 654, "column": 9, "stop_line": 654, "stop_column": 17, "path": "src/documents/serialisers.py", "code": -2, "name": "bad-param-name-override", "description": "Class member `TagSerializer.validate` overrides parent class `MatchingModelSerializer` in an inconsistent manner\n Got parameter name `attrs`, expected `data`", "concise_description": "Class member `TagSerializer.validate` overrides parent class `MatchingModelSerializer` in an inconsistent manner", "severity": "error" }, { "line": 707, "column": 17, "stop_line": 707, "stop_column": 42, "path": "src/documents/serialisers.py", "code": -2, "name": "bad-argument-type", "description": "Argument `type[CustomField.FieldDataType]` is not assignable to parameter `choices` with type `Sequence[Any]` in function `rest_framework.fields.ChoiceField.__init__`", "concise_description": "Argument `type[CustomField.FieldDataType]` is not assignable to parameter `choices` with type `Sequence[Any]` in function `rest_framework.fields.ChoiceField.__init__`", "severity": "error" }, { "line": 713, "column": 11, "stop_line": 713, "stop_column": 15, "path": "src/documents/serialisers.py", "code": -2, "name": "bad-override", "description": "Class member `CustomFieldSerializer.Meta` overrides parent class `ModelSerializer` in an inconsistent manner\n `CustomFieldSerializer.Meta` has type `type[CustomFieldSerializer.Meta]`, which is not assignable to `type[ModelSerializer.Meta]`, the type of `ModelSerializer.Meta`", "concise_description": "Class member `CustomFieldSerializer.Meta` overrides parent class `ModelSerializer` in an inconsistent manner", "severity": "error" }, { "line": 792, "column": 28, "stop_line": 792, "stop_column": 39, "path": "src/documents/serialisers.py", "code": -2, "name": "bad-assignment", "description": "`Unknown | None` is not assignable to attribute `method_name` with type `str`", "concise_description": "`Unknown | None` is not assignable to attribute `method_name` with type `str`", "severity": "error" }, { "line": 830, "column": 13, "stop_line": 830, "stop_column": 35, "path": "src/documents/serialisers.py", "code": -2, "name": "bad-argument-type", "description": "Argument `str` is not assignable to parameter `data_type` with type `CustomField.FieldDataType` in function `documents.models.CustomFieldInstance.get_value_field_name`", "concise_description": "Argument `str` is not assignable to parameter `data_type` with type `CustomField.FieldDataType` in function `documents.models.CustomFieldInstance.get_value_field_name`", "severity": "error" }, { "line": 846, "column": 9, "stop_line": 846, "stop_column": 18, "path": "src/documents/serialisers.py", "code": -2, "name": "bad-param-name-override", "description": "Class member `CustomFieldInstanceSerializer.get_value` overrides parent class `ModelSerializer` in an inconsistent manner\n Got parameter name `obj`, expected `dictionary`", "concise_description": "Class member `CustomFieldInstanceSerializer.get_value` overrides parent class `ModelSerializer` in an inconsistent manner", "severity": "error" }, { "line": 849, "column": 9, "stop_line": 849, "stop_column": 17, "path": "src/documents/serialisers.py", "code": -2, "name": "bad-param-name-override", "description": "Class member `CustomFieldInstanceSerializer.validate` overrides parent class `ModelSerializer` in an inconsistent manner\n Got parameter name `data`, expected `attrs`", "concise_description": "Class member `CustomFieldInstanceSerializer.validate` overrides parent class `ModelSerializer` in an inconsistent manner", "severity": "error" }, { "line": 892, "column": 34, "stop_line": 892, "stop_column": 68, "path": "src/documents/serialisers.py", "code": -2, "name": "unsupported-operation", "description": "`None` is not subscriptable", "concise_description": "`None` is not subscriptable", "severity": "error" }, { "line": 917, "column": 11, "stop_line": 917, "stop_column": 15, "path": "src/documents/serialisers.py", "code": -2, "name": "bad-override", "description": "Class member `CustomFieldInstanceSerializer.Meta` overrides parent class `ModelSerializer` in an inconsistent manner\n `CustomFieldInstanceSerializer.Meta` has type `type[CustomFieldInstanceSerializer.Meta]`, which is not assignable to `type[ModelSerializer.Meta]`, the type of `ModelSerializer.Meta`", "concise_description": "Class member `CustomFieldInstanceSerializer.Meta` overrides parent class `ModelSerializer` in an inconsistent manner", "severity": "error" }, { "line": 927, "column": 11, "stop_line": 927, "stop_column": 15, "path": "src/documents/serialisers.py", "code": -2, "name": "bad-override", "description": "Class member `BasicUserSerializer.Meta` overrides parent class `ModelSerializer` in an inconsistent manner\n `BasicUserSerializer.Meta` has type `type[BasicUserSerializer.Meta]`, which is not assignable to `type[ModelSerializer.Meta]`, the type of `ModelSerializer.Meta`", "concise_description": "Class member `BasicUserSerializer.Meta` overrides parent class `ModelSerializer` in an inconsistent manner", "severity": "error" }, { "line": 935, "column": 11, "stop_line": 935, "stop_column": 15, "path": "src/documents/serialisers.py", "code": -2, "name": "bad-override", "description": "Class member `NotesSerializer.Meta` overrides parent class `ModelSerializer` in an inconsistent manner\n `NotesSerializer.Meta` has type `type[NotesSerializer.Meta]`, which is not assignable to `type[ModelSerializer.Meta]`, the type of `ModelSerializer.Meta`", "concise_description": "Class member `NotesSerializer.Meta` overrides parent class `ModelSerializer` in an inconsistent manner", "severity": "error" }, { "line": 1093, "column": 30, "stop_line": 1093, "stop_column": 55, "path": "src/documents/serialisers.py", "code": -2, "name": "unsupported-operation", "description": "`None` is not subscriptable", "concise_description": "`None` is not subscriptable", "severity": "error" }, { "line": 1137, "column": 12, "stop_line": 1137, "stop_column": 34, "path": "src/documents/serialisers.py", "code": -2, "name": "missing-attribute", "description": "Object of class `Document` has no attribute `custom_fields`", "concise_description": "Object of class `Document` has no attribute `custom_fields`", "severity": "error" }, { "line": 1141, "column": 42, "stop_line": 1141, "stop_column": 64, "path": "src/documents/serialisers.py", "code": -2, "name": "missing-attribute", "description": "Object of class `Document` has no attribute `custom_fields`", "concise_description": "Object of class `Document` has no attribute `custom_fields`", "severity": "error" }, { "line": 1224, "column": 11, "stop_line": 1224, "stop_column": 15, "path": "src/documents/serialisers.py", "code": -2, "name": "bad-override", "description": "Class member `DocumentSerializer.Meta` overrides parent class `OwnedObjectSerializer` in an inconsistent manner\n `DocumentSerializer.Meta` has type `type[DocumentSerializer.Meta]`, which is not assignable to `type[ModelSerializer.Meta]`, the type of `OwnedObjectSerializer.Meta`", "concise_description": "Class member `DocumentSerializer.Meta` overrides parent class `OwnedObjectSerializer` in an inconsistent manner", "severity": "error" }, { "line": 1224, "column": 11, "stop_line": 1224, "stop_column": 15, "path": "src/documents/serialisers.py", "code": -2, "name": "bad-override", "description": "Class member `DocumentSerializer.Meta` overrides parent class `NestedUpdateMixin` in an inconsistent manner\n `DocumentSerializer.Meta` has type `type[DocumentSerializer.Meta]`, which is not assignable to `type[ModelSerializer.Meta]`, the type of `NestedUpdateMixin.Meta`", "concise_description": "Class member `DocumentSerializer.Meta` overrides parent class `NestedUpdateMixin` in an inconsistent manner", "severity": "error" }, { "line": 1224, "column": 11, "stop_line": 1224, "stop_column": 15, "path": "src/documents/serialisers.py", "code": -2, "name": "bad-override", "description": "Class member `DocumentSerializer.Meta` overrides parent class `DynamicFieldsModelSerializer` in an inconsistent manner\n `DocumentSerializer.Meta` has type `type[DocumentSerializer.Meta]`, which is not assignable to `type[ModelSerializer.Meta]`, the type of `DynamicFieldsModelSerializer.Meta`", "concise_description": "Class member `DocumentSerializer.Meta` overrides parent class `DynamicFieldsModelSerializer` in an inconsistent manner", "severity": "error" }, { "line": 1260, "column": 9, "stop_line": 1260, "stop_column": 26, "path": "src/documents/serialisers.py", "code": -2, "name": "bad-param-name-override", "description": "Class member `SearchResultListSerializer.to_representation` overrides parent class `ListSerializer` in an inconsistent manner\n Got parameter name `hits`, expected `data`", "concise_description": "Class member `SearchResultListSerializer.to_representation` overrides parent class `ListSerializer` in an inconsistent manner", "severity": "error" }, { "line": 1263, "column": 21, "stop_line": 1263, "stop_column": 47, "path": "src/documents/serialisers.py", "code": -2, "name": "missing-attribute", "description": "Object of class `BaseSerializer` has no attribute `fetch_documents`\nObject of class `Field` has no attribute `fetch_documents`\nObject of class `NoneType` has no attribute `fetch_documents`", "concise_description": "Object of class `BaseSerializer` has no attribute `fetch_documents`\nObject of class `Field` has no attribute `fetch_documents`\nObject of class `NoneType` has no attribute `fetch_documents`", "severity": "error" }, { "line": 1264, "column": 9, "stop_line": 1264, "stop_column": 27, "path": "src/documents/serialisers.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `context`", "concise_description": "Object of class `NoneType` has no attribute `context`", "severity": "error" }, { "line": 1266, "column": 9, "stop_line": 1266, "stop_column": 27, "path": "src/documents/serialisers.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `context`", "concise_description": "Object of class `NoneType` has no attribute `context`", "severity": "error" }, { "line": 1266, "column": 51, "stop_line": 1266, "stop_column": 83, "path": "src/documents/serialisers.py", "code": -2, "name": "missing-attribute", "description": "Object of class `BaseSerializer` has no attribute `get_shared_object_pks`\nObject of class `Field` has no attribute `get_shared_object_pks`\nObject of class `NoneType` has no attribute `get_shared_object_pks`", "concise_description": "Object of class `BaseSerializer` has no attribute `get_shared_object_pks`\nObject of class `Field` has no attribute `get_shared_object_pks`\nObject of class `NoneType` has no attribute `get_shared_object_pks`", "severity": "error" }, { "line": 1291, "column": 9, "stop_line": 1291, "stop_column": 26, "path": "src/documents/serialisers.py", "code": -2, "name": "bad-param-name-override", "description": "Class member `SearchResultSerializer.to_representation` overrides parent class `DocumentSerializer` in an inconsistent manner\n Got parameter name `hit`, expected `instance`", "concise_description": "Class member `SearchResultSerializer.to_representation` overrides parent class `DocumentSerializer` in an inconsistent manner", "severity": "error" }, { "line": 1313, "column": 9, "stop_line": 1313, "stop_column": 30, "path": "src/documents/serialisers.py", "code": -2, "name": "bad-override", "description": "Class member `Meta.list_serializer_class` overrides parent class `Meta` in an inconsistent manner\n `Meta.list_serializer_class` has type `type[SearchResultListSerializer]`, which is not consistent with `type[OwnedObjectListSerializer]` in `Meta.list_serializer_class` (the type of read-write attributes cannot be changed)", "concise_description": "Class member `Meta.list_serializer_class` overrides parent class `Meta` in an inconsistent manner", "severity": "error" }, { "line": 1317, "column": 11, "stop_line": 1317, "stop_column": 15, "path": "src/documents/serialisers.py", "code": -2, "name": "bad-override", "description": "Class member `SavedViewFilterRuleSerializer.Meta` overrides parent class `ModelSerializer` in an inconsistent manner\n `SavedViewFilterRuleSerializer.Meta` has type `type[SavedViewFilterRuleSerializer.Meta]`, which is not assignable to `type[ModelSerializer.Meta]`, the type of `ModelSerializer.Meta`", "concise_description": "Class member `SavedViewFilterRuleSerializer.Meta` overrides parent class `ModelSerializer` in an inconsistent manner", "severity": "error" }, { "line": 1325, "column": 11, "stop_line": 1325, "stop_column": 15, "path": "src/documents/serialisers.py", "code": -2, "name": "bad-override", "description": "Class member `SavedViewSerializer.Meta` overrides parent class `OwnedObjectSerializer` in an inconsistent manner\n `SavedViewSerializer.Meta` has type `type[SavedViewSerializer.Meta]`, which is not assignable to `type[ModelSerializer.Meta]`, the type of `OwnedObjectSerializer.Meta`", "concise_description": "Class member `SavedViewSerializer.Meta` overrides parent class `OwnedObjectSerializer` in an inconsistent manner", "severity": "error" }, { "line": 1465, "column": 21, "stop_line": 1465, "stop_column": 62, "path": "src/documents/serialisers.py", "code": -2, "name": "unsupported-operation", "description": "`Literal[SavedView.DisplayFields.CUSTOM_FIELD]` is not subscriptable", "concise_description": "`Literal[SavedView.DisplayFields.CUSTOM_FIELD]` is not subscriptable", "severity": "error" }, { "line": 1467, "column": 36, "stop_line": 1467, "stop_column": 63, "path": "src/documents/serialisers.py", "code": -2, "name": "unsupported-operation", "description": "`None` is not subscriptable", "concise_description": "`None` is not subscriptable", "severity": "error" }, { "line": 2349, "column": 73, "stop_line": 2349, "stop_column": 80, "path": "src/documents/serialisers.py", "code": -2, "name": "unbound-name", "description": "`address` is uninitialized", "concise_description": "`address` is uninitialized", "severity": "error" }, { "line": 2362, "column": 11, "stop_line": 2362, "stop_column": 15, "path": "src/documents/serialisers.py", "code": -2, "name": "bad-override", "description": "Class member `StoragePathSerializer.Meta` overrides parent class `MatchingModelSerializer` in an inconsistent manner\n `StoragePathSerializer.Meta` has type `type[StoragePathSerializer.Meta]`, which is not assignable to `type[ModelSerializer.Meta]`, the type of `MatchingModelSerializer.Meta`", "concise_description": "Class member `StoragePathSerializer.Meta` overrides parent class `MatchingModelSerializer` in an inconsistent manner", "severity": "error" }, { "line": 2362, "column": 11, "stop_line": 2362, "stop_column": 15, "path": "src/documents/serialisers.py", "code": -2, "name": "bad-override", "description": "Class member `StoragePathSerializer.Meta` overrides parent class `OwnedObjectSerializer` in an inconsistent manner\n `StoragePathSerializer.Meta` has type `type[StoragePathSerializer.Meta]`, which is not assignable to `type[ModelSerializer.Meta]`, the type of `OwnedObjectSerializer.Meta`", "concise_description": "Class member `StoragePathSerializer.Meta` overrides parent class `OwnedObjectSerializer` in an inconsistent manner", "severity": "error" }, { "line": 2407, "column": 11, "stop_line": 2407, "stop_column": 15, "path": "src/documents/serialisers.py", "code": -2, "name": "bad-override", "description": "Class member `UiSettingsViewSerializer.Meta` overrides parent class `ModelSerializer` in an inconsistent manner\n `UiSettingsViewSerializer.Meta` has type `type[UiSettingsViewSerializer.Meta]`, which is not assignable to `type[ModelSerializer.Meta]`, the type of `ModelSerializer.Meta`", "concise_description": "Class member `UiSettingsViewSerializer.Meta` overrides parent class `ModelSerializer` in an inconsistent manner", "severity": "error" }, { "line": 2424, "column": 9, "stop_line": 2424, "stop_column": 15, "path": "src/documents/serialisers.py", "code": -2, "name": "bad-override", "description": "Class member `UiSettingsViewSerializer.create` overrides parent class `ModelSerializer` in an inconsistent manner\n `UiSettingsViewSerializer.create` has type `(self: UiSettingsViewSerializer, validated_data: Unknown) -> tuple[UiSettings, bool]`, which is not assignable to `(self: UiSettingsViewSerializer, validated_data: Any) -> UiSettings`, the type of `ModelSerializer.create`\n Signature mismatch:\n expected: def create(self: UiSettingsViewSerializer, validated_data: Any) -> UiSettings: ...\n ^^^ ^^^^^^^^^^ return type\n |\n parameters\n found: def create(self: UiSettingsViewSerializer, validated_data: Unknown) -> tuple[UiSettings, bool]: ...\n ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ return type\n |\n parameters", "concise_description": "Class member `UiSettingsViewSerializer.create` overrides parent class `ModelSerializer` in an inconsistent manner", "severity": "error" }, { "line": 2433, "column": 11, "stop_line": 2433, "stop_column": 15, "path": "src/documents/serialisers.py", "code": -2, "name": "bad-override", "description": "Class member `TasksViewSerializer.Meta` overrides parent class `OwnedObjectSerializer` in an inconsistent manner\n `TasksViewSerializer.Meta` has type `type[TasksViewSerializer.Meta]`, which is not assignable to `type[ModelSerializer.Meta]`, the type of `OwnedObjectSerializer.Meta`", "concise_description": "Class member `TasksViewSerializer.Meta` overrides parent class `OwnedObjectSerializer` in an inconsistent manner", "severity": "error" }, { "line": 2471, "column": 30, "stop_line": 2471, "stop_column": 57, "path": "src/documents/serialisers.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `group`", "concise_description": "Object of class `NoneType` has no attribute `group`", "severity": "error" }, { "line": 2522, "column": 11, "stop_line": 2522, "stop_column": 15, "path": "src/documents/serialisers.py", "code": -2, "name": "bad-override", "description": "Class member `ShareLinkSerializer.Meta` overrides parent class `OwnedObjectSerializer` in an inconsistent manner\n `ShareLinkSerializer.Meta` has type `type[ShareLinkSerializer.Meta]`, which is not assignable to `type[ModelSerializer.Meta]`, the type of `OwnedObjectSerializer.Meta`", "concise_description": "Class member `ShareLinkSerializer.Meta` overrides parent class `OwnedObjectSerializer` in an inconsistent manner", "severity": "error" }, { "line": 2567, "column": 11, "stop_line": 2567, "stop_column": 15, "path": "src/documents/serialisers.py", "code": -2, "name": "bad-override", "description": "Class member `ShareLinkBundleSerializer.Meta` overrides parent class `OwnedObjectSerializer` in an inconsistent manner\n `ShareLinkBundleSerializer.Meta` has type `type[ShareLinkBundleSerializer.Meta]`, which is not assignable to `type[ModelSerializer.Meta]`, the type of `OwnedObjectSerializer.Meta`", "concise_description": "Class member `ShareLinkBundleSerializer.Meta` overrides parent class `OwnedObjectSerializer` in an inconsistent manner", "severity": "error" }, { "line": 2780, "column": 11, "stop_line": 2780, "stop_column": 15, "path": "src/documents/serialisers.py", "code": -2, "name": "bad-override", "description": "Class member `WorkflowTriggerSerializer.Meta` overrides parent class `ModelSerializer` in an inconsistent manner\n `WorkflowTriggerSerializer.Meta` has type `type[WorkflowTriggerSerializer.Meta]`, which is not assignable to `type[ModelSerializer.Meta]`, the type of `ModelSerializer.Meta`", "concise_description": "Class member `WorkflowTriggerSerializer.Meta` overrides parent class `ModelSerializer` in an inconsistent manner", "severity": "error" }, { "line": 2876, "column": 11, "stop_line": 2876, "stop_column": 15, "path": "src/documents/serialisers.py", "code": -2, "name": "bad-override", "description": "Class member `WorkflowActionEmailSerializer.Meta` overrides parent class `ModelSerializer` in an inconsistent manner\n `WorkflowActionEmailSerializer.Meta` has type `type[WorkflowActionEmailSerializer.Meta]`, which is not assignable to `type[ModelSerializer.Meta]`, the type of `ModelSerializer.Meta`", "concise_description": "Class member `WorkflowActionEmailSerializer.Meta` overrides parent class `ModelSerializer` in an inconsistent manner", "severity": "error" }, { "line": 2896, "column": 11, "stop_line": 2896, "stop_column": 15, "path": "src/documents/serialisers.py", "code": -2, "name": "bad-override", "description": "Class member `WorkflowActionWebhookSerializer.Meta` overrides parent class `ModelSerializer` in an inconsistent manner\n `WorkflowActionWebhookSerializer.Meta` has type `type[WorkflowActionWebhookSerializer.Meta]`, which is not assignable to `type[ModelSerializer.Meta]`, the type of `ModelSerializer.Meta`", "concise_description": "Class member `WorkflowActionWebhookSerializer.Meta` overrides parent class `ModelSerializer` in an inconsistent manner", "severity": "error" }, { "line": 2919, "column": 11, "stop_line": 2919, "stop_column": 15, "path": "src/documents/serialisers.py", "code": -2, "name": "bad-override", "description": "Class member `WorkflowActionSerializer.Meta` overrides parent class `ModelSerializer` in an inconsistent manner\n `WorkflowActionSerializer.Meta` has type `type[WorkflowActionSerializer.Meta]`, which is not assignable to `type[ModelSerializer.Meta]`, the type of `ModelSerializer.Meta`", "concise_description": "Class member `WorkflowActionSerializer.Meta` overrides parent class `ModelSerializer` in an inconsistent manner", "severity": "error" }, { "line": 3038, "column": 11, "stop_line": 3038, "stop_column": 15, "path": "src/documents/serialisers.py", "code": -2, "name": "bad-override", "description": "Class member `WorkflowSerializer.Meta` overrides parent class `ModelSerializer` in an inconsistent manner\n `WorkflowSerializer.Meta` has type `type[WorkflowSerializer.Meta]`, which is not assignable to `type[ModelSerializer.Meta]`, the type of `ModelSerializer.Meta`", "concise_description": "Class member `WorkflowSerializer.Meta` overrides parent class `ModelSerializer` in an inconsistent manner", "severity": "error" }, { "line": 3220, "column": 16, "stop_line": 3220, "stop_column": 33, "path": "src/documents/serialisers.py", "code": -2, "name": "missing-attribute", "description": "Object of class `WorkflowTrigger` has no attribute `workflows`", "concise_description": "Object of class `WorkflowTrigger` has no attribute `workflows`", "severity": "error" }, { "line": 3224, "column": 16, "stop_line": 3224, "stop_column": 32, "path": "src/documents/serialisers.py", "code": -2, "name": "missing-attribute", "description": "Object of class `WorkflowAction` has no attribute `workflows`", "concise_description": "Object of class `WorkflowAction` has no attribute `workflows`", "severity": "error" }, { "line": 3239, "column": 52, "stop_line": 3239, "stop_column": 60, "path": "src/documents/serialisers.py", "code": -2, "name": "unbound-name", "description": "`triggers` may be uninitialized", "concise_description": "`triggers` may be uninitialized", "severity": "error" }, { "line": 3239, "column": 62, "stop_line": 3239, "stop_column": 69, "path": "src/documents/serialisers.py", "code": -2, "name": "unbound-name", "description": "`actions` may be uninitialized", "concise_description": "`actions` may be uninitialized", "severity": "error" }, { "line": 122, "column": 72, "stop_line": 122, "stop_column": 82, "path": "src/documents/signals/handlers.py", "code": -2, "name": "bad-argument-type", "description": "Argument `DocumentClassifier | None` is not assignable to parameter `classifier` with type `DocumentClassifier` in function `documents.matching.match_correspondents`", "concise_description": "Argument `DocumentClassifier | None` is not assignable to parameter `classifier` with type `DocumentClassifier` in function `documents.matching.match_correspondents`", "severity": "error" }, { "line": 183, "column": 72, "stop_line": 183, "stop_column": 82, "path": "src/documents/signals/handlers.py", "code": -2, "name": "bad-argument-type", "description": "Argument `DocumentClassifier | None` is not assignable to parameter `classifier` with type `DocumentClassifier` in function `documents.matching.match_document_types`", "concise_description": "Argument `DocumentClassifier | None` is not assignable to parameter `classifier` with type `DocumentClassifier` in function `documents.matching.match_document_types`", "severity": "error" }, { "line": 265, "column": 50, "stop_line": 265, "stop_column": 60, "path": "src/documents/signals/handlers.py", "code": -2, "name": "bad-argument-type", "description": "Argument `DocumentClassifier | None` is not assignable to parameter `classifier` with type `DocumentClassifier` in function `documents.matching.match_tags`", "concise_description": "Argument `DocumentClassifier | None` is not assignable to parameter `classifier` with type `DocumentClassifier` in function `documents.matching.match_tags`", "severity": "error" }, { "line": 309, "column": 70, "stop_line": 309, "stop_column": 80, "path": "src/documents/signals/handlers.py", "code": -2, "name": "bad-argument-type", "description": "Argument `DocumentClassifier | None` is not assignable to parameter `classifier` with type `DocumentClassifier` in function `documents.matching.match_storage_paths`", "concise_description": "Argument `DocumentClassifier | None` is not assignable to parameter `classifier` with type `DocumentClassifier` in function `documents.matching.match_storage_paths`", "severity": "error" }, { "line": 542, "column": 46, "stop_line": 542, "stop_column": 66, "path": "src/documents/signals/handlers.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Any | None` is not assignable to parameter `*args` with type `PathLike[str] | str` in function `pathlib.Path.__new__`", "concise_description": "Argument `Any | None` is not assignable to parameter `*args` with type `PathLike[str] | str` in function `pathlib.Path.__new__`", "severity": "error" }, { "line": 543, "column": 49, "stop_line": 543, "stop_column": 69, "path": "src/documents/signals/handlers.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Any | None` is not assignable to parameter `*args` with type `PathLike[str] | str` in function `pathlib.Path.__new__`", "concise_description": "Argument `Any | None` is not assignable to parameter `*args` with type `PathLike[str] | str` in function `pathlib.Path.__new__`", "severity": "error" }, { "line": 548, "column": 28, "stop_line": 548, "stop_column": 52, "path": "src/documents/signals/handlers.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `is_file`", "concise_description": "Object of class `NoneType` has no attribute `is_file`", "severity": "error" }, { "line": 574, "column": 43, "stop_line": 574, "stop_column": 60, "path": "src/documents/signals/handlers.py", "code": -2, "name": "bad-typed-dict-key", "description": "`str` is not assignable to TypedDict key `filename` with type `datetime`", "concise_description": "`str` is not assignable to TypedDict key `filename` with type `datetime`", "severity": "error" }, { "line": 576, "column": 51, "stop_line": 576, "stop_column": 76, "path": "src/documents/signals/handlers.py", "code": -2, "name": "bad-typed-dict-key", "description": "`Any | None` is not assignable to TypedDict key `archive_filename` with type `datetime`", "concise_description": "`Any | None` is not assignable to TypedDict key `archive_filename` with type `datetime`", "severity": "error" }, { "line": 595, "column": 21, "stop_line": 595, "stop_column": 37, "path": "src/documents/signals/handlers.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Path | None` is not assignable to parameter `old_path` with type `Path` in function `validate_move`", "concise_description": "Argument `Path | None` is not assignable to parameter `old_path` with type `Path` in function `validate_move`", "severity": "error" }, { "line": 596, "column": 21, "stop_line": 596, "stop_column": 42, "path": "src/documents/signals/handlers.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Path | None` is not assignable to parameter `new_path` with type `Path` in function `validate_move`", "concise_description": "Argument `Path | None` is not assignable to parameter `new_path` with type `Path` in function `validate_move`", "severity": "error" }, { "line": 599, "column": 46, "stop_line": 599, "stop_column": 67, "path": "src/documents/signals/handlers.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Path | None` is not assignable to parameter `source_path` with type `Path` in function `documents.file_handling.create_source_path_directory`", "concise_description": "Argument `Path | None` is not assignable to parameter `source_path` with type `Path` in function `documents.file_handling.create_source_path_directory`", "severity": "error" }, { "line": 600, "column": 28, "stop_line": 600, "stop_column": 69, "path": "src/documents/signals/handlers.py", "code": -2, "name": "bad-specialization", "description": "`Path | None` is not assignable to upper bound `PathLike[str] | str` of type variable `_StrPathT`", "concise_description": "`Path | None` is not assignable to upper bound `PathLike[str] | str` of type variable `_StrPathT`", "severity": "error" }, { "line": 600, "column": 29, "stop_line": 600, "stop_column": 45, "path": "src/documents/signals/handlers.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Path | None` is not assignable to parameter `src` with type `PathLike[str] | str` in function `shutil.move`", "concise_description": "Argument `Path | None` is not assignable to parameter `src` with type `PathLike[str] | str` in function `shutil.move`", "severity": "error" }, { "line": 620, "column": 20, "stop_line": 620, "stop_column": 33, "path": "src/documents/signals/handlers.py", "code": -2, "name": "unbound-name", "description": "`move_original` is uninitialized", "concise_description": "`move_original` is uninitialized", "severity": "error" }, { "line": 622, "column": 55, "stop_line": 622, "stop_column": 70, "path": "src/documents/signals/handlers.py", "code": -2, "name": "unbound-name", "description": "`old_source_path` is uninitialized", "concise_description": "`old_source_path` is uninitialized", "severity": "error" }, { "line": 624, "column": 20, "stop_line": 624, "stop_column": 32, "path": "src/documents/signals/handlers.py", "code": -2, "name": "unbound-name", "description": "`move_archive` is uninitialized", "concise_description": "`move_archive` is uninitialized", "severity": "error" }, { "line": 624, "column": 37, "stop_line": 624, "stop_column": 66, "path": "src/documents/signals/handlers.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `is_file`", "concise_description": "Object of class `NoneType` has no attribute `is_file`", "severity": "error" }, { "line": 626, "column": 32, "stop_line": 626, "stop_column": 73, "path": "src/documents/signals/handlers.py", "code": -2, "name": "bad-specialization", "description": "`Path | None` is not assignable to upper bound `PathLike[str] | str` of type variable `_StrPathT`", "concise_description": "`Path | None` is not assignable to upper bound `PathLike[str] | str` of type variable `_StrPathT`", "severity": "error" }, { "line": 626, "column": 33, "stop_line": 626, "stop_column": 54, "path": "src/documents/signals/handlers.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Path | None` is not assignable to parameter `src` with type `PathLike[str] | str` in function `shutil.move`", "concise_description": "Argument `Path | None` is not assignable to parameter `src` with type `PathLike[str] | str` in function `shutil.move`", "severity": "error" }, { "line": 626, "column": 56, "stop_line": 626, "stop_column": 72, "path": "src/documents/signals/handlers.py", "code": -2, "name": "unbound-name", "description": "`old_archive_path` is uninitialized", "concise_description": "`old_archive_path` is uninitialized", "severity": "error" }, { "line": 640, "column": 33, "stop_line": 640, "stop_column": 45, "path": "src/documents/signals/handlers.py", "code": -2, "name": "unbound-name", "description": "`old_filename` is uninitialized", "concise_description": "`old_filename` is uninitialized", "severity": "error" }, { "line": 641, "column": 41, "stop_line": 641, "stop_column": 61, "path": "src/documents/signals/handlers.py", "code": -2, "name": "unbound-name", "description": "`old_archive_filename` is uninitialized", "concise_description": "`old_archive_filename` is uninitialized", "severity": "error" }, { "line": 651, "column": 49, "stop_line": 651, "stop_column": 73, "path": "src/documents/signals/handlers.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `is_file`", "concise_description": "Object of class `NoneType` has no attribute `is_file`", "severity": "error" }, { "line": 653, "column": 22, "stop_line": 653, "stop_column": 38, "path": "src/documents/signals/handlers.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Path | None` is not assignable to parameter `*args` with type `PathLike[str] | str` in function `pathlib.Path.__new__`", "concise_description": "Argument `Path | None` is not assignable to parameter `*args` with type `PathLike[str] | str` in function `pathlib.Path.__new__`", "severity": "error" }, { "line": 680, "column": 23, "stop_line": 680, "stop_column": 50, "path": "src/documents/signals/handlers.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `get`", "concise_description": "Object of class `NoneType` has no attribute `get`", "severity": "error" }, { "line": 684, "column": 5, "stop_line": 684, "stop_column": 24, "path": "src/documents/signals/handlers.py", "code": -2, "name": "missing-attribute", "description": "Object of class `CustomField` has no attribute `fields`", "concise_description": "Object of class `CustomField` has no attribute `fields`", "severity": "error" }, { "line": 688, "column": 24, "stop_line": 688, "stop_column": 43, "path": "src/documents/signals/handlers.py", "code": -2, "name": "missing-attribute", "description": "Object of class `CustomField` has no attribute `fields`", "concise_description": "Object of class `CustomField` has no attribute `fields`", "severity": "error" }, { "line": 705, "column": 13, "stop_line": 705, "stop_column": 28, "path": "src/documents/signals/handlers.py", "code": -2, "name": "missing-attribute", "description": "Object of class `CustomField` has no attribute `fields`", "concise_description": "Object of class `CustomField` has no attribute `fields`", "severity": "error" }, { "line": 719, "column": 12, "stop_line": 719, "stop_column": 51, "path": "src/documents/signals/handlers.py", "code": -2, "name": "not-iterable", "description": "`in` is not supported between `str` and `None`", "concise_description": "`in` is not supported between `str` and `None`", "severity": "error" }, { "line": 723, "column": 13, "stop_line": 723, "stop_column": 39, "path": "src/documents/signals/handlers.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `remove`", "concise_description": "Object of class `NoneType` has no attribute `remove`", "severity": "error" }, { "line": 762, "column": 27, "stop_line": 762, "stop_column": 51, "path": "src/documents/signals/handlers.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `get`", "concise_description": "Object of class `NoneType` has no attribute `get`", "severity": "error" }, { "line": 782, "column": 17, "stop_line": 782, "stop_column": 52, "path": "src/documents/signals/handlers.py", "code": -2, "name": "unsupported-operation", "description": "Cannot set item in `None`\n Object of class `NoneType` has no attribute `__setitem__`", "concise_description": "Cannot set item in `None`", "severity": "error" }, { "line": 882, "column": 13, "stop_line": 882, "stop_column": 33, "path": "src/documents/signals/handlers.py", "code": -2, "name": "missing-attribute", "description": "Object of class `ConsumableDocument` has no attribute `source_path`", "concise_description": "Object of class `ConsumableDocument` has no attribute `source_path`", "severity": "error" }, { "line": 882, "column": 60, "stop_line": 882, "stop_column": 82, "path": "src/documents/signals/handlers.py", "code": -2, "name": "missing-attribute", "description": "Object of class `Document` has no attribute `original_file`", "concise_description": "Object of class `Document` has no attribute `original_file`", "severity": "error" }, { "line": 930, "column": 29, "stop_line": 930, "stop_column": 37, "path": "src/documents/signals/handlers.py", "code": -2, "name": "bad-argument-type", "description": "Argument `ConsumableDocument | Document` is not assignable to parameter `document` with type `Document` in function `documents.workflows.mutations.apply_assignment_to_document`", "concise_description": "Argument `ConsumableDocument | Document` is not assignable to parameter `document` with type `Document` in function `documents.workflows.mutations.apply_assignment_to_document`", "severity": "error" }, { "line": 931, "column": 29, "stop_line": 931, "stop_column": 40, "path": "src/documents/signals/handlers.py", "code": -2, "name": "unbound-name", "description": "`doc_tag_ids` may be uninitialized", "concise_description": "`doc_tag_ids` may be uninitialized", "severity": "error" }, { "line": 938, "column": 59, "stop_line": 938, "stop_column": 67, "path": "src/documents/signals/handlers.py", "code": -2, "name": "bad-argument-type", "description": "Argument `ConsumableDocument | Document` is not assignable to parameter `document` with type `Document` in function `documents.workflows.mutations.apply_removal_to_document`", "concise_description": "Argument `ConsumableDocument | Document` is not assignable to parameter `document` with type `Document` in function `documents.workflows.mutations.apply_removal_to_document`", "severity": "error" }, { "line": 938, "column": 69, "stop_line": 938, "stop_column": 80, "path": "src/documents/signals/handlers.py", "code": -2, "name": "unbound-name", "description": "`doc_tag_ids` may be uninitialized", "concise_description": "`doc_tag_ids` may be uninitialized", "severity": "error" }, { "line": 965, "column": 17, "stop_line": 965, "stop_column": 31, "path": "src/documents/signals/handlers.py", "code": -2, "name": "missing-attribute", "description": "Object of class `ConsumableDocument` has no attribute `title`", "concise_description": "Object of class `ConsumableDocument` has no attribute `title`", "severity": "error" }, { "line": 965, "column": 34, "stop_line": 965, "stop_column": 48, "path": "src/documents/signals/handlers.py", "code": -2, "name": "missing-attribute", "description": "Object of class `ConsumableDocument` has no attribute `title`", "concise_description": "Object of class `ConsumableDocument` has no attribute `title`", "severity": "error" }, { "line": 975, "column": 17, "stop_line": 975, "stop_column": 30, "path": "src/documents/signals/handlers.py", "code": -2, "name": "missing-attribute", "description": "Object of class `ConsumableDocument` has no attribute `save`", "concise_description": "Object of class `ConsumableDocument` has no attribute `save`", "severity": "error" }, { "line": 985, "column": 17, "stop_line": 985, "stop_column": 30, "path": "src/documents/signals/handlers.py", "code": -2, "name": "missing-attribute", "description": "Object of class `ConsumableDocument` has no attribute `tags`", "concise_description": "Object of class `ConsumableDocument` has no attribute `tags`", "severity": "error" }, { "line": 985, "column": 35, "stop_line": 985, "stop_column": 46, "path": "src/documents/signals/handlers.py", "code": -2, "name": "unbound-name", "description": "`doc_tag_ids` may be uninitialized", "concise_description": "`doc_tag_ids` may be uninitialized", "severity": "error" }, { "line": 1013, "column": 8, "stop_line": 1013, "stop_column": 29, "path": "src/documents/signals/handlers.py", "code": -2, "name": "not-iterable", "description": "`not in` is not supported between `Literal['task']` and `None`", "concise_description": "`not in` is not supported between `Literal['task']` and `None`", "severity": "error" }, { "line": 1013, "column": 33, "stop_line": 1013, "stop_column": 48, "path": "src/documents/signals/handlers.py", "code": -2, "name": "unsupported-operation", "description": "`None` is not subscriptable", "concise_description": "`None` is not subscriptable", "severity": "error" }, { "line": 1020, "column": 21, "stop_line": 1020, "stop_column": 28, "path": "src/documents/signals/handlers.py", "code": -2, "name": "unsupported-operation", "description": "`None` is not subscriptable", "concise_description": "`None` is not subscriptable", "severity": "error" }, { "line": 1028, "column": 21, "stop_line": 1028, "stop_column": 34, "path": "src/documents/signals/handlers.py", "code": -2, "name": "unsupported-operation", "description": "`None` is not subscriptable", "concise_description": "`None` is not subscriptable", "severity": "error" }, { "line": 1135, "column": 13, "stop_line": 1135, "stop_column": 28, "path": "src/documents/signals/handlers.py", "code": -2, "name": "missing-attribute", "description": "Object of class `BaseDatabaseWrapper` has no attribute `close_pool`", "concise_description": "Object of class `BaseDatabaseWrapper` has no attribute `close_pool`", "severity": "error" }, { "line": 191, "column": 21, "stop_line": 191, "stop_column": 36, "path": "src/documents/tasks.py", "code": -2, "name": "bad-argument-type", "description": "Argument `str | None` is not assignable to parameter `task_id` with type `str` in function `documents.plugins.base.ConsumeTaskPlugin.__init__`", "concise_description": "Argument `str | None` is not assignable to parameter `task_id` with type `str` in function `documents.plugins.base.ConsumeTaskPlugin.__init__`", "severity": "error" }, { "line": 228, "column": 16, "stop_line": 228, "stop_column": 19, "path": "src/documents/tasks.py", "code": -2, "name": "unbound-name", "description": "`msg` may be uninitialized", "concise_description": "`msg` may be uninitialized", "severity": "error" }, { "line": 331, "column": 49, "stop_line": 331, "stop_column": 74, "path": "src/documents/tasks.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Path | None` is not assignable to parameter `path` with type `Path` in function `documents.utils.compute_checksum`", "concise_description": "Argument `Path | None` is not assignable to parameter `path` with type `Path` in function `documents.utils.compute_checksum`", "severity": "error" }, { "line": 347, "column": 25, "stop_line": 347, "stop_column": 52, "path": "src/documents/tasks.py", "code": -2, "name": "missing-attribute", "description": "Object of class `Manager` has no attribute `log_create`", "concise_description": "Object of class `Manager` has no attribute `log_create`", "severity": "error" }, { "line": 371, "column": 25, "stop_line": 371, "stop_column": 52, "path": "src/documents/tasks.py", "code": -2, "name": "missing-attribute", "description": "Object of class `Manager` has no attribute `log_create`", "concise_description": "Object of class `Manager` has no attribute `log_create`", "severity": "error" }, { "line": 384, "column": 54, "stop_line": 384, "stop_column": 75, "path": "src/documents/tasks.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Path | None` is not assignable to parameter `source_path` with type `Path` in function `documents.file_handling.create_source_path_directory`", "concise_description": "Argument `Path | None` is not assignable to parameter `source_path` with type `Path` in function `documents.file_handling.create_source_path_directory`", "severity": "error" }, { "line": 385, "column": 36, "stop_line": 385, "stop_column": 86, "path": "src/documents/tasks.py", "code": -2, "name": "bad-specialization", "description": "`Path | None` is not assignable to upper bound `PathLike[str] | str` of type variable `_StrPathT`", "concise_description": "`Path | None` is not assignable to upper bound `PathLike[str] | str` of type variable `_StrPathT`", "severity": "error" }, { "line": 385, "column": 37, "stop_line": 385, "stop_column": 62, "path": "src/documents/tasks.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Path | None` is not assignable to parameter `src` with type `PathLike[str] | str` in function `shutil.move`", "concise_description": "Argument `Path | None` is not assignable to parameter `src` with type `PathLike[str] | str` in function `shutil.move`", "severity": "error" }, { "line": 562, "column": 33, "stop_line": 562, "stop_column": 61, "path": "src/documents/tasks.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `run_at`", "concise_description": "Object of class `NoneType` has no attribute `run_at`", "severity": "error" }, { "line": 309, "column": 17, "stop_line": 309, "stop_column": 66, "path": "src/documents/templating/filepath.py", "code": -2, "name": "unsupported-operation", "description": "`None` is not subscriptable", "concise_description": "`None` is not subscriptable", "severity": "error" }, { "line": 331, "column": 12, "stop_line": 331, "stop_column": 22, "path": "src/documents/templating/filepath.py", "code": -2, "name": "bad-return", "description": "Returned type `dict[str, dict[str, dict[str, str | Any | None]]]` is not assignable to declared return type `dict[str, dict[str, dict[str, str]]]`", "concise_description": "Returned type `dict[str, dict[str, dict[str, str | Any | None]]]` is not assignable to declared return type `dict[str, dict[str, dict[str, str]]]`", "severity": "error" }, { "line": 30, "column": 17, "stop_line": 30, "stop_column": 38, "path": "src/documents/templating/filters.py", "code": -2, "name": "bad-assignment", "description": "`datetime | None` is not assignable to variable `value` with type `date | datetime | str`", "concise_description": "`datetime | None` is not assignable to variable `value` with type `date | datetime | str`", "severity": "error" }, { "line": 47, "column": 17, "stop_line": 47, "stop_column": 34, "path": "src/documents/templating/filters.py", "code": -2, "name": "bad-assignment", "description": "`date | None` is not assignable to variable `value` with type `datetime | str`", "concise_description": "`date | None` is not assignable to variable `value` with type `datetime | str`", "severity": "error" }, { "line": 48, "column": 12, "stop_line": 48, "stop_column": 26, "path": "src/documents/templating/filters.py", "code": -2, "name": "missing-attribute", "description": "Object of class `str` has no attribute `strftime`", "concise_description": "Object of class `str` has no attribute `strftime`", "severity": "error" }, { "line": 109, "column": 12, "stop_line": 109, "stop_column": 16, "path": "src/documents/templating/workflows.py", "code": -2, "name": "bad-return", "description": "Returned type `None` is not assignable to declared return type `str`", "concise_description": "Returned type `None` is not assignable to declared return type `str`", "severity": "error" }, { "line": 135, "column": 12, "stop_line": 135, "stop_column": 41, "path": "src/documents/tests/conftest.py", "code": -2, "name": "missing-attribute", "description": "Object of class `Manager` has no attribute `create_user`", "concise_description": "Object of class `Manager` has no attribute `create_user`", "severity": "error" }, { "line": 19, "column": 11, "stop_line": 19, "stop_column": 15, "path": "src/documents/tests/factories.py", "code": -2, "name": "bad-override", "description": "Class member `CorrespondentFactory.Meta` overrides parent class `DjangoModelFactory` in an inconsistent manner\n `CorrespondentFactory.Meta` has type `type[CorrespondentFactory.Meta]`, which is not assignable to `type[DjangoModelFactory.Meta]`, the type of `DjangoModelFactory.Meta`", "concise_description": "Class member `CorrespondentFactory.Meta` overrides parent class `DjangoModelFactory` in an inconsistent manner", "severity": "error" }, { "line": 28, "column": 11, "stop_line": 28, "stop_column": 15, "path": "src/documents/tests/factories.py", "code": -2, "name": "bad-override", "description": "Class member `DocumentTypeFactory.Meta` overrides parent class `DjangoModelFactory` in an inconsistent manner\n `DocumentTypeFactory.Meta` has type `type[DocumentTypeFactory.Meta]`, which is not assignable to `type[DjangoModelFactory.Meta]`, the type of `DjangoModelFactory.Meta`", "concise_description": "Class member `DocumentTypeFactory.Meta` overrides parent class `DjangoModelFactory` in an inconsistent manner", "severity": "error" }, { "line": 37, "column": 11, "stop_line": 37, "stop_column": 15, "path": "src/documents/tests/factories.py", "code": -2, "name": "bad-override", "description": "Class member `TagFactory.Meta` overrides parent class `DjangoModelFactory` in an inconsistent manner\n `TagFactory.Meta` has type `type[TagFactory.Meta]`, which is not assignable to `type[DjangoModelFactory.Meta]`, the type of `DjangoModelFactory.Meta`", "concise_description": "Class member `TagFactory.Meta` overrides parent class `DjangoModelFactory` in an inconsistent manner", "severity": "error" }, { "line": 47, "column": 11, "stop_line": 47, "stop_column": 15, "path": "src/documents/tests/factories.py", "code": -2, "name": "bad-override", "description": "Class member `StoragePathFactory.Meta` overrides parent class `DjangoModelFactory` in an inconsistent manner\n `StoragePathFactory.Meta` has type `type[StoragePathFactory.Meta]`, which is not assignable to `type[DjangoModelFactory.Meta]`, the type of `DjangoModelFactory.Meta`", "concise_description": "Class member `StoragePathFactory.Meta` overrides parent class `DjangoModelFactory` in an inconsistent manner", "severity": "error" }, { "line": 59, "column": 11, "stop_line": 59, "stop_column": 15, "path": "src/documents/tests/factories.py", "code": -2, "name": "bad-override", "description": "Class member `DocumentFactory.Meta` overrides parent class `DjangoModelFactory` in an inconsistent manner\n `DocumentFactory.Meta` has type `type[DocumentFactory.Meta]`, which is not assignable to `type[DjangoModelFactory.Meta]`, the type of `DjangoModelFactory.Meta`", "concise_description": "Class member `DocumentFactory.Meta` overrides parent class `DjangoModelFactory` in an inconsistent manner", "severity": "error" }, { "line": 97, "column": 22, "stop_line": 97, "stop_column": 35, "path": "src/documents/tests/management/test_management_base_cmd.py", "code": -2, "name": "bad-assignment", "description": "`StringIO` is not assignable to attribute `stdout` with type `OutputWrapper`", "concise_description": "`StringIO` is not assignable to attribute `stdout` with type `OutputWrapper`", "severity": "error" }, { "line": 98, "column": 22, "stop_line": 98, "stop_column": 35, "path": "src/documents/tests/management/test_management_base_cmd.py", "code": -2, "name": "bad-assignment", "description": "`StringIO` is not assignable to attribute `stderr` with type `OutputWrapper`", "concise_description": "`StringIO` is not assignable to attribute `stderr` with type `OutputWrapper`", "severity": "error" }, { "line": 109, "column": 22, "stop_line": 109, "stop_column": 35, "path": "src/documents/tests/management/test_management_base_cmd.py", "code": -2, "name": "bad-assignment", "description": "`StringIO` is not assignable to attribute `stdout` with type `OutputWrapper`", "concise_description": "`StringIO` is not assignable to attribute `stdout` with type `OutputWrapper`", "severity": "error" }, { "line": 110, "column": 22, "stop_line": 110, "stop_column": 35, "path": "src/documents/tests/management/test_management_base_cmd.py", "code": -2, "name": "bad-assignment", "description": "`StringIO` is not assignable to attribute `stderr` with type `OutputWrapper`", "concise_description": "`StringIO` is not assignable to attribute `stderr` with type `OutputWrapper`", "severity": "error" }, { "line": 236, "column": 26, "stop_line": 236, "stop_column": 39, "path": "src/documents/tests/management/test_management_base_cmd.py", "code": -2, "name": "bad-assignment", "description": "`StringIO` is not assignable to attribute `stdout` with type `OutputWrapper`", "concise_description": "`StringIO` is not assignable to attribute `stdout` with type `OutputWrapper`", "severity": "error" }, { "line": 237, "column": 26, "stop_line": 237, "stop_column": 39, "path": "src/documents/tests/management/test_management_base_cmd.py", "code": -2, "name": "bad-assignment", "description": "`StringIO` is not assignable to attribute `stderr` with type `OutputWrapper`", "concise_description": "`StringIO` is not assignable to attribute `stderr` with type `OutputWrapper`", "severity": "error" }, { "line": 246, "column": 26, "stop_line": 246, "stop_column": 39, "path": "src/documents/tests/management/test_management_base_cmd.py", "code": -2, "name": "bad-assignment", "description": "`StringIO` is not assignable to attribute `stdout` with type `OutputWrapper`", "concise_description": "`StringIO` is not assignable to attribute `stdout` with type `OutputWrapper`", "severity": "error" }, { "line": 247, "column": 26, "stop_line": 247, "stop_column": 39, "path": "src/documents/tests/management/test_management_base_cmd.py", "code": -2, "name": "bad-assignment", "description": "`StringIO` is not assignable to attribute `stderr` with type `OutputWrapper`", "concise_description": "`StringIO` is not assignable to attribute `stderr` with type `OutputWrapper`", "severity": "error" }, { "line": 267, "column": 26, "stop_line": 267, "stop_column": 39, "path": "src/documents/tests/management/test_management_base_cmd.py", "code": -2, "name": "bad-assignment", "description": "`StringIO` is not assignable to attribute `stdout` with type `OutputWrapper`", "concise_description": "`StringIO` is not assignable to attribute `stdout` with type `OutputWrapper`", "severity": "error" }, { "line": 268, "column": 26, "stop_line": 268, "stop_column": 39, "path": "src/documents/tests/management/test_management_base_cmd.py", "code": -2, "name": "bad-assignment", "description": "`StringIO` is not assignable to attribute `stderr` with type `OutputWrapper`", "concise_description": "`StringIO` is not assignable to attribute `stderr` with type `OutputWrapper`", "severity": "error" }, { "line": 288, "column": 26, "stop_line": 288, "stop_column": 39, "path": "src/documents/tests/management/test_management_base_cmd.py", "code": -2, "name": "bad-assignment", "description": "`StringIO` is not assignable to attribute `stdout` with type `OutputWrapper`", "concise_description": "`StringIO` is not assignable to attribute `stdout` with type `OutputWrapper`", "severity": "error" }, { "line": 289, "column": 26, "stop_line": 289, "stop_column": 39, "path": "src/documents/tests/management/test_management_base_cmd.py", "code": -2, "name": "bad-assignment", "description": "`StringIO` is not assignable to attribute `stderr` with type `OutputWrapper`", "concise_description": "`StringIO` is not assignable to attribute `stderr` with type `OutputWrapper`", "severity": "error" }, { "line": 298, "column": 26, "stop_line": 298, "stop_column": 39, "path": "src/documents/tests/management/test_management_base_cmd.py", "code": -2, "name": "bad-assignment", "description": "`StringIO` is not assignable to attribute `stdout` with type `OutputWrapper`", "concise_description": "`StringIO` is not assignable to attribute `stdout` with type `OutputWrapper`", "severity": "error" }, { "line": 299, "column": 26, "stop_line": 299, "stop_column": 39, "path": "src/documents/tests/management/test_management_base_cmd.py", "code": -2, "name": "bad-assignment", "description": "`StringIO` is not assignable to attribute `stderr` with type `OutputWrapper`", "concise_description": "`StringIO` is not assignable to attribute `stderr` with type `OutputWrapper`", "severity": "error" }, { "line": 485, "column": 16, "stop_line": 485, "stop_column": 66, "path": "src/documents/tests/search/test_query.py", "code": -2, "name": "missing-attribute", "description": "Object of class `SearchResult` has no attribute `count`", "concise_description": "Object of class `SearchResult` has no attribute `count`", "severity": "error" }, { "line": 496, "column": 16, "stop_line": 496, "stop_column": 66, "path": "src/documents/tests/search/test_query.py", "code": -2, "name": "missing-attribute", "description": "Object of class `SearchResult` has no attribute `count`", "concise_description": "Object of class `SearchResult` has no attribute `count`", "severity": "error" }, { "line": 507, "column": 16, "stop_line": 507, "stop_column": 66, "path": "src/documents/tests/search/test_query.py", "code": -2, "name": "missing-attribute", "description": "Object of class `SearchResult` has no attribute `count`", "concise_description": "Object of class `SearchResult` has no attribute `count`", "severity": "error" }, { "line": 518, "column": 16, "stop_line": 518, "stop_column": 66, "path": "src/documents/tests/search/test_query.py", "code": -2, "name": "missing-attribute", "description": "Object of class `SearchResult` has no attribute `count`", "concise_description": "Object of class `SearchResult` has no attribute `count`", "severity": "error" }, { "line": 530, "column": 16, "stop_line": 530, "stop_column": 66, "path": "src/documents/tests/search/test_query.py", "code": -2, "name": "missing-attribute", "description": "Object of class `SearchResult` has no attribute `count`", "concise_description": "Object of class `SearchResult` has no attribute `count`", "severity": "error" }, { "line": 71, "column": 16, "stop_line": 71, "stop_column": 65, "path": "src/documents/tests/search/test_tokenizer.py", "code": -2, "name": "missing-attribute", "description": "Object of class `SearchResult` has no attribute `count`", "concise_description": "Object of class `SearchResult` has no attribute `count`", "severity": "error" }, { "line": 82, "column": 16, "stop_line": 82, "stop_column": 64, "path": "src/documents/tests/search/test_tokenizer.py", "code": -2, "name": "missing-attribute", "description": "Object of class `SearchResult` has no attribute `count`", "concise_description": "Object of class `SearchResult` has no attribute `count`", "severity": "error" }, { "line": 100, "column": 16, "stop_line": 100, "stop_column": 71, "path": "src/documents/tests/search/test_tokenizer.py", "code": -2, "name": "missing-attribute", "description": "Object of class `SearchResult` has no attribute `count`", "concise_description": "Object of class `SearchResult` has no attribute `count`", "severity": "error" }, { "line": 25, "column": 20, "stop_line": 25, "stop_column": 43, "path": "src/documents/tests/test_admin.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `searcher`", "concise_description": "Object of class `NoneType` has no attribute `searcher`", "severity": "error" }, { "line": 28, "column": 17, "stop_line": 28, "stop_column": 32, "path": "src/documents/tests/test_admin.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Unknown | None` is not assignable to parameter `schema` with type `Schema` in function `tantivy.tantivy.Query.range_query`", "concise_description": "Argument `Unknown | None` is not assignable to parameter `schema` with type `Schema` in function `tantivy.tantivy.Query.range_query`", "severity": "error" }, { "line": 55, "column": 26, "stop_line": 55, "stop_column": 65, "path": "src/documents/tests/test_admin.py", "code": -2, "name": "unsupported-operation", "description": "`None` is not subscriptable", "concise_description": "`None` is not subscriptable", "severity": "error" }, { "line": 126, "column": 26, "stop_line": 126, "stop_column": 38, "path": "src/documents/tests/test_admin.py", "code": -2, "name": "missing-attribute", "description": "Object of class `ModelForm` has no attribute `request`", "concise_description": "Object of class `ModelForm` has no attribute `request`", "severity": "error" }, { "line": 138, "column": 9, "stop_line": 138, "stop_column": 21, "path": "src/documents/tests/test_admin.py", "code": -2, "name": "missing-attribute", "description": "Object of class `ModelForm` has no attribute `request`", "concise_description": "Object of class `ModelForm` has no attribute `request`", "severity": "error" }, { "line": 146, "column": 9, "stop_line": 146, "stop_column": 21, "path": "src/documents/tests/test_admin.py", "code": -2, "name": "missing-attribute", "description": "Object of class `ModelForm` has no attribute `request`", "concise_description": "Object of class `ModelForm` has no attribute `request`", "severity": "error" }, { "line": 94, "column": 9, "stop_line": 94, "stop_column": 25, "path": "src/documents/tests/test_api_app_config.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `app_title`", "concise_description": "Object of class `NoneType` has no attribute `app_title`", "severity": "error" }, { "line": 95, "column": 9, "stop_line": 95, "stop_column": 24, "path": "src/documents/tests/test_api_app_config.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `app_logo`", "concise_description": "Object of class `NoneType` has no attribute `app_logo`", "severity": "error" }, { "line": 96, "column": 9, "stop_line": 96, "stop_column": 20, "path": "src/documents/tests/test_api_app_config.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `save`", "concise_description": "Object of class `NoneType` has no attribute `save`", "severity": "error" }, { "line": 101, "column": 30, "stop_line": 101, "stop_column": 46, "path": "src/documents/tests/test_api_app_config.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `app_title`", "concise_description": "Object of class `NoneType` has no attribute `app_title`", "severity": "error" }, { "line": 102, "column": 29, "stop_line": 102, "stop_column": 44, "path": "src/documents/tests/test_api_app_config.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `app_logo`", "concise_description": "Object of class `NoneType` has no attribute `app_logo`", "severity": "error" }, { "line": 128, "column": 26, "stop_line": 128, "stop_column": 58, "path": "src/documents/tests/test_api_app_config.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `color_conversion_strategy`", "concise_description": "Object of class `NoneType` has no attribute `color_conversion_strategy`", "severity": "error" }, { "line": 153, "column": 26, "stop_line": 153, "stop_column": 42, "path": "src/documents/tests/test_api_app_config.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `user_args`", "concise_description": "Object of class `NoneType` has no attribute `user_args`", "severity": "error" }, { "line": 154, "column": 26, "stop_line": 154, "stop_column": 41, "path": "src/documents/tests/test_api_app_config.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `language`", "concise_description": "Object of class `NoneType` has no attribute `language`", "severity": "error" }, { "line": 155, "column": 26, "stop_line": 155, "stop_column": 52, "path": "src/documents/tests/test_api_app_config.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `barcode_tag_mapping`", "concise_description": "Object of class `NoneType` has no attribute `barcode_tag_mapping`", "severity": "error" }, { "line": 190, "column": 20, "stop_line": 190, "stop_column": 35, "path": "src/documents/tests/test_api_app_config.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `app_logo`", "concise_description": "Object of class `NoneType` has no attribute `app_logo`", "severity": "error" }, { "line": 236, "column": 25, "stop_line": 236, "stop_column": 40, "path": "src/documents/tests/test_api_app_config.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `app_logo`", "concise_description": "Object of class `NoneType` has no attribute `app_logo`", "severity": "error" }, { "line": 271, "column": 25, "stop_line": 271, "stop_column": 40, "path": "src/documents/tests/test_api_app_config.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `app_logo`", "concise_description": "Object of class `NoneType` has no attribute `app_logo`", "severity": "error" }, { "line": 272, "column": 27, "stop_line": 272, "stop_column": 43, "path": "src/documents/tests/test_api_app_config.py", "code": -2, "name": "missing-attribute", "description": "Object of class `ImageFile` has no attribute `text`", "concise_description": "Object of class `ImageFile` has no attribute `text`", "severity": "error" }, { "line": 789, "column": 9, "stop_line": 789, "stop_column": 27, "path": "src/documents/tests/test_api_app_config.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `llm_api_key`", "concise_description": "Object of class `NoneType` has no attribute `llm_api_key`", "severity": "error" }, { "line": 790, "column": 9, "stop_line": 790, "stop_column": 20, "path": "src/documents/tests/test_api_app_config.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `save`", "concise_description": "Object of class `NoneType` has no attribute `save`", "severity": "error" }, { "line": 803, "column": 9, "stop_line": 803, "stop_column": 31, "path": "src/documents/tests/test_api_app_config.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `refresh_from_db`", "concise_description": "Object of class `NoneType` has no attribute `refresh_from_db`", "severity": "error" }, { "line": 804, "column": 26, "stop_line": 804, "stop_column": 44, "path": "src/documents/tests/test_api_app_config.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `llm_api_key`", "concise_description": "Object of class `NoneType` has no attribute `llm_api_key`", "severity": "error" }, { "line": 816, "column": 9, "stop_line": 816, "stop_column": 31, "path": "src/documents/tests/test_api_app_config.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `refresh_from_db`", "concise_description": "Object of class `NoneType` has no attribute `refresh_from_db`", "severity": "error" }, { "line": 829, "column": 9, "stop_line": 829, "stop_column": 26, "path": "src/documents/tests/test_api_app_config.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `ai_enabled`", "concise_description": "Object of class `NoneType` has no attribute `ai_enabled`", "severity": "error" }, { "line": 830, "column": 9, "stop_line": 830, "stop_column": 37, "path": "src/documents/tests/test_api_app_config.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `llm_embedding_backend`", "concise_description": "Object of class `NoneType` has no attribute `llm_embedding_backend`", "severity": "error" }, { "line": 831, "column": 9, "stop_line": 831, "stop_column": 20, "path": "src/documents/tests/test_api_app_config.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `save`", "concise_description": "Object of class `NoneType` has no attribute `save`", "severity": "error" }, { "line": 57, "column": 20, "stop_line": 57, "stop_column": 83, "path": "src/documents/tests/test_api_bulk_download.py", "code": -2, "name": "no-matching-overload", "description": "No matching overload found for function `shutil.copy` called with arguments: (Path, Path | None)\n Possible overloads:\n (src: StrPath, dst: _StrPathT, *, follow_symlinks: bool = True) -> str | _StrPathT [closest match]\n (src: BytesPath, dst: _BytesPathT, *, follow_symlinks: bool = True) -> bytes | _BytesPathT", "concise_description": "No matching overload found for function `shutil.copy` called with arguments: (Path, Path | None)", "severity": "error" }, { "line": 279, "column": 26, "stop_line": 279, "stop_column": 43, "path": "src/documents/tests/test_api_custom_fields.py", "code": -2, "name": "missing-attribute", "description": "Object of class `Document` has no attribute `custom_fields`", "concise_description": "Object of class `Document` has no attribute `custom_fields`", "severity": "error" }, { "line": 529, "column": 30, "stop_line": 529, "stop_column": 47, "path": "src/documents/tests/test_api_custom_fields.py", "code": -2, "name": "missing-attribute", "description": "Object of class `Document` has no attribute `custom_fields`", "concise_description": "Object of class `Document` has no attribute `custom_fields`", "severity": "error" }, { "line": 570, "column": 26, "stop_line": 570, "stop_column": 43, "path": "src/documents/tests/test_api_custom_fields.py", "code": -2, "name": "missing-attribute", "description": "Object of class `Document` has no attribute `custom_fields`", "concise_description": "Object of class `Document` has no attribute `custom_fields`", "severity": "error" }, { "line": 587, "column": 26, "stop_line": 587, "stop_column": 43, "path": "src/documents/tests/test_api_custom_fields.py", "code": -2, "name": "missing-attribute", "description": "Object of class `Document` has no attribute `custom_fields`", "concise_description": "Object of class `Document` has no attribute `custom_fields`", "severity": "error" }, { "line": 635, "column": 30, "stop_line": 635, "stop_column": 47, "path": "src/documents/tests/test_api_custom_fields.py", "code": -2, "name": "missing-attribute", "description": "Object of class `Document` has no attribute `custom_fields`", "concise_description": "Object of class `Document` has no attribute `custom_fields`", "severity": "error" }, { "line": 652, "column": 30, "stop_line": 652, "stop_column": 47, "path": "src/documents/tests/test_api_custom_fields.py", "code": -2, "name": "missing-attribute", "description": "Object of class `Document` has no attribute `custom_fields`", "concise_description": "Object of class `Document` has no attribute `custom_fields`", "severity": "error" }, { "line": 653, "column": 26, "stop_line": 653, "stop_column": 43, "path": "src/documents/tests/test_api_custom_fields.py", "code": -2, "name": "missing-attribute", "description": "Object of class `Document` has no attribute `custom_fields`", "concise_description": "Object of class `Document` has no attribute `custom_fields`", "severity": "error" }, { "line": 694, "column": 30, "stop_line": 694, "stop_column": 47, "path": "src/documents/tests/test_api_custom_fields.py", "code": -2, "name": "missing-attribute", "description": "Object of class `Document` has no attribute `custom_fields`", "concise_description": "Object of class `Document` has no attribute `custom_fields`", "severity": "error" }, { "line": 734, "column": 38, "stop_line": 734, "stop_column": 55, "path": "src/documents/tests/test_api_custom_fields.py", "code": -2, "name": "missing-attribute", "description": "Object of class `Document` has no attribute `custom_fields`", "concise_description": "Object of class `Document` has no attribute `custom_fields`", "severity": "error" }, { "line": 786, "column": 30, "stop_line": 786, "stop_column": 47, "path": "src/documents/tests/test_api_custom_fields.py", "code": -2, "name": "missing-attribute", "description": "Object of class `Document` has no attribute `custom_fields`", "concise_description": "Object of class `Document` has no attribute `custom_fields`", "severity": "error" }, { "line": 857, "column": 30, "stop_line": 857, "stop_column": 47, "path": "src/documents/tests/test_api_custom_fields.py", "code": -2, "name": "missing-attribute", "description": "Object of class `Document` has no attribute `custom_fields`", "concise_description": "Object of class `Document` has no attribute `custom_fields`", "severity": "error" }, { "line": 892, "column": 30, "stop_line": 892, "stop_column": 47, "path": "src/documents/tests/test_api_custom_fields.py", "code": -2, "name": "missing-attribute", "description": "Object of class `Document` has no attribute `custom_fields`", "concise_description": "Object of class `Document` has no attribute `custom_fields`", "severity": "error" }, { "line": 933, "column": 30, "stop_line": 933, "stop_column": 47, "path": "src/documents/tests/test_api_custom_fields.py", "code": -2, "name": "missing-attribute", "description": "Object of class `Document` has no attribute `custom_fields`", "concise_description": "Object of class `Document` has no attribute `custom_fields`", "severity": "error" }, { "line": 970, "column": 30, "stop_line": 970, "stop_column": 47, "path": "src/documents/tests/test_api_custom_fields.py", "code": -2, "name": "missing-attribute", "description": "Object of class `Document` has no attribute `custom_fields`", "concise_description": "Object of class `Document` has no attribute `custom_fields`", "severity": "error" }, { "line": 1065, "column": 26, "stop_line": 1065, "stop_column": 44, "path": "src/documents/tests/test_api_custom_fields.py", "code": -2, "name": "missing-attribute", "description": "Object of class `Document` has no attribute `custom_fields`", "concise_description": "Object of class `Document` has no attribute `custom_fields`", "severity": "error" }, { "line": 1066, "column": 26, "stop_line": 1066, "stop_column": 44, "path": "src/documents/tests/test_api_custom_fields.py", "code": -2, "name": "missing-attribute", "description": "Object of class `Document` has no attribute `custom_fields`", "concise_description": "Object of class `Document` has no attribute `custom_fields`", "severity": "error" }, { "line": 1067, "column": 26, "stop_line": 1067, "stop_column": 44, "path": "src/documents/tests/test_api_custom_fields.py", "code": -2, "name": "missing-attribute", "description": "Object of class `Document` has no attribute `custom_fields`", "concise_description": "Object of class `Document` has no attribute `custom_fields`", "severity": "error" }, { "line": 1084, "column": 26, "stop_line": 1084, "stop_column": 44, "path": "src/documents/tests/test_api_custom_fields.py", "code": -2, "name": "missing-attribute", "description": "Object of class `Document` has no attribute `custom_fields`", "concise_description": "Object of class `Document` has no attribute `custom_fields`", "severity": "error" }, { "line": 1101, "column": 26, "stop_line": 1101, "stop_column": 44, "path": "src/documents/tests/test_api_custom_fields.py", "code": -2, "name": "missing-attribute", "description": "Object of class `Document` has no attribute `custom_fields`", "concise_description": "Object of class `Document` has no attribute `custom_fields`", "severity": "error" }, { "line": 1102, "column": 26, "stop_line": 1102, "stop_column": 44, "path": "src/documents/tests/test_api_custom_fields.py", "code": -2, "name": "missing-attribute", "description": "Object of class `Document` has no attribute `custom_fields`", "concise_description": "Object of class `Document` has no attribute `custom_fields`", "severity": "error" }, { "line": 1103, "column": 26, "stop_line": 1103, "stop_column": 44, "path": "src/documents/tests/test_api_custom_fields.py", "code": -2, "name": "missing-attribute", "description": "Object of class `Document` has no attribute `custom_fields`", "concise_description": "Object of class `Document` has no attribute `custom_fields`", "severity": "error" }, { "line": 1115, "column": 26, "stop_line": 1115, "stop_column": 44, "path": "src/documents/tests/test_api_custom_fields.py", "code": -2, "name": "missing-attribute", "description": "Object of class `Document` has no attribute `custom_fields`", "concise_description": "Object of class `Document` has no attribute `custom_fields`", "severity": "error" }, { "line": 1116, "column": 26, "stop_line": 1116, "stop_column": 44, "path": "src/documents/tests/test_api_custom_fields.py", "code": -2, "name": "missing-attribute", "description": "Object of class `Document` has no attribute `custom_fields`", "concise_description": "Object of class `Document` has no attribute `custom_fields`", "severity": "error" }, { "line": 1117, "column": 26, "stop_line": 1117, "stop_column": 44, "path": "src/documents/tests/test_api_custom_fields.py", "code": -2, "name": "missing-attribute", "description": "Object of class `Document` has no attribute `custom_fields`", "concise_description": "Object of class `Document` has no attribute `custom_fields`", "severity": "error" }, { "line": 1142, "column": 26, "stop_line": 1142, "stop_column": 44, "path": "src/documents/tests/test_api_custom_fields.py", "code": -2, "name": "missing-attribute", "description": "Object of class `Document` has no attribute `custom_fields`", "concise_description": "Object of class `Document` has no attribute `custom_fields`", "severity": "error" }, { "line": 1236, "column": 13, "stop_line": 1236, "stop_column": 37, "path": "src/documents/tests/test_api_custom_fields.py", "code": -2, "name": "missing-attribute", "description": "Object of class `Document` has no attribute `custom_fields`", "concise_description": "Object of class `Document` has no attribute `custom_fields`", "severity": "error" }, { "line": 306, "column": 44, "stop_line": 306, "stop_column": 67, "path": "src/documents/tests/test_api_documents.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `originals_dir`", "concise_description": "Class `dirs` has no class attribute `originals_dir`", "severity": "error" }, { "line": 321, "column": 31, "stop_line": 321, "stop_column": 54, "path": "src/documents/tests/test_api_documents.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `thumbnail_dir`", "concise_description": "Class `dirs` has no class attribute `thumbnail_dir`", "severity": "error" }, { "line": 351, "column": 44, "stop_line": 351, "stop_column": 67, "path": "src/documents/tests/test_api_documents.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `originals_dir`", "concise_description": "Class `dirs` has no class attribute `originals_dir`", "severity": "error" }, { "line": 373, "column": 20, "stop_line": 373, "stop_column": 43, "path": "src/documents/tests/test_api_documents.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `thumbnail_dir`", "concise_description": "Class `dirs` has no class attribute `thumbnail_dir`", "severity": "error" }, { "line": 411, "column": 19, "stop_line": 411, "stop_column": 35, "path": "src/documents/tests/test_api_documents.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Path | None` is not assignable to parameter `*args` with type `PathLike[str] | str` in function `pathlib.Path.__new__`", "concise_description": "Argument `Path | None` is not assignable to parameter `*args` with type `PathLike[str] | str` in function `pathlib.Path.__new__`", "severity": "error" }, { "line": 453, "column": 19, "stop_line": 453, "stop_column": 35, "path": "src/documents/tests/test_api_documents.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Path | None` is not assignable to parameter `*args` with type `PathLike[str] | str` in function `pathlib.Path.__new__`", "concise_description": "Argument `Path | None` is not assignable to parameter `*args` with type `PathLike[str] | str` in function `pathlib.Path.__new__`", "severity": "error" }, { "line": 1435, "column": 13, "stop_line": 1435, "stop_column": 20, "path": "src/documents/tests/test_api_documents.py", "code": -2, "name": "bad-argument-type", "description": "Argument `bytes` is not assignable to parameter `data` with type `str` in function `rest_framework.test.APIClient.generic`", "concise_description": "Argument `bytes` is not assignable to parameter `data` with type `str` in function `rest_framework.test.APIClient.generic`", "severity": "error" }, { "line": 1713, "column": 31, "stop_line": 1713, "stop_column": 48, "path": "src/documents/tests/test_api_documents.py", "code": -2, "name": "bad-argument-type", "description": "Argument `list[int] | None` is not assignable to parameter `first` with type `Iterable[Any]` in function `unittest.case.TestCase.assertCountEqual`\n Protocol `Iterable` requires attribute `__iter__`", "concise_description": "Argument `list[int] | None` is not assignable to parameter `first` with type `Iterable[Any]` in function `unittest.case.TestCase.assertCountEqual`", "severity": "error" }, { "line": 1868, "column": 9, "stop_line": 1868, "stop_column": 25, "path": "src/documents/tests/test_api_documents.py", "code": -2, "name": "not-iterable", "description": "Type `None` is not iterable", "concise_description": "Type `None` is not iterable", "severity": "error" }, { "line": 2056, "column": 20, "stop_line": 2056, "stop_column": 52, "path": "src/documents/tests/test_api_documents.py", "code": -2, "name": "no-matching-overload", "description": "No matching overload found for function `shutil.copy` called with arguments: (Path, Path | None)\n Possible overloads:\n (src: StrPath, dst: _StrPathT, *, follow_symlinks: bool = True) -> str | _StrPathT [closest match]\n (src: BytesPath, dst: _BytesPathT, *, follow_symlinks: bool = True) -> bytes | _BytesPathT", "concise_description": "No matching overload found for function `shutil.copy` called with arguments: (Path, Path | None)", "severity": "error" }, { "line": 2549, "column": 31, "stop_line": 2549, "stop_column": 52, "path": "src/documents/tests/test_api_documents.py", "code": -2, "name": "missing-attribute", "description": "Object of class `User` has no attribute `ui_settings`", "concise_description": "Object of class `User` has no attribute `ui_settings`", "severity": "error" }, { "line": 2569, "column": 31, "stop_line": 2569, "stop_column": 52, "path": "src/documents/tests/test_api_documents.py", "code": -2, "name": "missing-attribute", "description": "Object of class `User` has no attribute `ui_settings`", "concise_description": "Object of class `User` has no attribute `ui_settings`", "severity": "error" }, { "line": 2587, "column": 26, "stop_line": 2587, "stop_column": 41, "path": "src/documents/tests/test_api_documents.py", "code": -2, "name": "missing-attribute", "description": "Object of class `SavedView` has no attribute `filter_rules`", "concise_description": "Object of class `SavedView` has no attribute `filter_rules`", "severity": "error" }, { "line": 2599, "column": 26, "stop_line": 2599, "stop_column": 41, "path": "src/documents/tests/test_api_documents.py", "code": -2, "name": "missing-attribute", "description": "Object of class `SavedView` has no attribute `filter_rules`", "concise_description": "Object of class `SavedView` has no attribute `filter_rules`", "severity": "error" }, { "line": 2607, "column": 26, "stop_line": 2607, "stop_column": 41, "path": "src/documents/tests/test_api_documents.py", "code": -2, "name": "missing-attribute", "description": "Object of class `SavedView` has no attribute `filter_rules`", "concise_description": "Object of class `SavedView` has no attribute `filter_rules`", "severity": "error" }, { "line": 2608, "column": 26, "stop_line": 2608, "stop_column": 41, "path": "src/documents/tests/test_api_documents.py", "code": -2, "name": "missing-attribute", "description": "Object of class `SavedView` has no attribute `filter_rules`", "concise_description": "Object of class `SavedView` has no attribute `filter_rules`", "severity": "error" }, { "line": 2616, "column": 26, "stop_line": 2616, "stop_column": 41, "path": "src/documents/tests/test_api_documents.py", "code": -2, "name": "missing-attribute", "description": "Object of class `SavedView` has no attribute `filter_rules`", "concise_description": "Object of class `SavedView` has no attribute `filter_rules`", "severity": "error" }, { "line": 2968, "column": 27, "stop_line": 2968, "stop_column": 39, "path": "src/documents/tests/test_api_documents.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `id`", "concise_description": "Object of class `NoneType` has no attribute `id`", "severity": "error" }, { "line": 2969, "column": 33, "stop_line": 2969, "stop_column": 51, "path": "src/documents/tests/test_api_documents.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `username`", "concise_description": "Object of class `NoneType` has no attribute `username`", "severity": "error" }, { "line": 2970, "column": 35, "stop_line": 2970, "stop_column": 55, "path": "src/documents/tests/test_api_documents.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `first_name`", "concise_description": "Object of class `NoneType` has no attribute `first_name`", "severity": "error" }, { "line": 2971, "column": 34, "stop_line": 2971, "stop_column": 53, "path": "src/documents/tests/test_api_documents.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `last_name`", "concise_description": "Object of class `NoneType` has no attribute `last_name`", "severity": "error" }, { "line": 3598, "column": 20, "stop_line": 3598, "stop_column": 52, "path": "src/documents/tests/test_api_documents.py", "code": -2, "name": "no-matching-overload", "description": "No matching overload found for function `shutil.copy` called with arguments: (Path, Path | None)\n Possible overloads:\n (src: StrPath, dst: _StrPathT, *, follow_symlinks: bool = True) -> str | _StrPathT [closest match]\n (src: BytesPath, dst: _BytesPathT, *, follow_symlinks: bool = True) -> bytes | _BytesPathT", "concise_description": "No matching overload found for function `shutil.copy` called with arguments: (Path, Path | None)", "severity": "error" }, { "line": 3938, "column": 23, "stop_line": 3938, "stop_column": 50, "path": "src/documents/tests/test_api_documents.py", "code": -2, "name": "bad-unpacking", "description": "Expected argument after ** to have `str` keys, got: dict[str, list[dict[str, str]]] | list[bool] | list[date] | list[float] | list[int] | list[str] | str in function `django.db.models.manager.Manager.create`", "concise_description": "Expected argument after ** to have `str` keys, got: dict[str, list[dict[str, str]]] | list[bool] | list[date] | list[float] | list[int] | list[str] | str in function `django.db.models.manager.Manager.create`", "severity": "error" }, { "line": 44, "column": 20, "stop_line": 47, "stop_column": 10, "path": "src/documents/tests/test_api_email.py", "code": -2, "name": "no-matching-overload", "description": "No matching overload found for function `shutil.copy` called with arguments: (Path, Path | None)\n Possible overloads:\n (src: StrPath, dst: _StrPathT, *, follow_symlinks: bool = True) -> str | _StrPathT [closest match]\n (src: BytesPath, dst: _BytesPathT, *, follow_symlinks: bool = True) -> bytes | _BytesPathT", "concise_description": "No matching overload found for function `shutil.copy` called with arguments: (Path, Path | None)", "severity": "error" }, { "line": 103, "column": 24, "stop_line": 103, "stop_column": 51, "path": "src/documents/tests/test_api_email.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `stat`", "concise_description": "Object of class `NoneType` has no attribute `stat`", "severity": "error" }, { "line": 25, "column": 16, "stop_line": 25, "stop_column": 44, "path": "src/documents/tests/test_api_filter_by_custom_fields.py", "code": -2, "name": "missing-attribute", "description": "Object of class `Document` has no attribute `custom_fields`", "concise_description": "Object of class `Document` has no attribute `custom_fields`", "severity": "error" }, { "line": 28, "column": 16, "stop_line": 28, "stop_column": 44, "path": "src/documents/tests/test_api_filter_by_custom_fields.py", "code": -2, "name": "missing-attribute", "description": "Object of class `Document` has no attribute `custom_fields`", "concise_description": "Object of class `Document` has no attribute `custom_fields`", "severity": "error" }, { "line": 222, "column": 26, "stop_line": 222, "stop_column": 36, "path": "src/documents/tests/test_api_permissions.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `owner`", "concise_description": "Object of class `NoneType` has no attribute `owner`", "severity": "error" }, { "line": 252, "column": 26, "stop_line": 252, "stop_column": 36, "path": "src/documents/tests/test_api_permissions.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `owner`", "concise_description": "Object of class `NoneType` has no attribute `owner`", "severity": "error" }, { "line": 299, "column": 55, "stop_line": 299, "stop_column": 59, "path": "src/documents/tests/test_api_permissions.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Tag | None` is not assignable to parameter `obj` with type `Model` in function `guardian.core.ObjectPermissionChecker.has_perm`", "concise_description": "Argument `Tag | None` is not assignable to parameter `obj` with type `Model` in function `guardian.core.ObjectPermissionChecker.has_perm`", "severity": "error" }, { "line": 300, "column": 53, "stop_line": 300, "stop_column": 57, "path": "src/documents/tests/test_api_permissions.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Tag | None` is not assignable to parameter `obj` with type `Model` in function `guardian.shortcuts.get_perms`", "concise_description": "Argument `Tag | None` is not assignable to parameter `obj` with type `Model` in function `guardian.shortcuts.get_perms`", "severity": "error" }, { "line": 344, "column": 26, "stop_line": 344, "stop_column": 36, "path": "src/documents/tests/test_api_permissions.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `owner`", "concise_description": "Object of class `NoneType` has no attribute `owner`", "severity": "error" }, { "line": 345, "column": 53, "stop_line": 345, "stop_column": 57, "path": "src/documents/tests/test_api_permissions.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Tag | None` is not assignable to parameter `obj` with type `Model` in function `guardian.shortcuts.get_perms`", "concise_description": "Argument `Tag | None` is not assignable to parameter `obj` with type `Model` in function `guardian.shortcuts.get_perms`", "severity": "error" }, { "line": 46, "column": 21, "stop_line": 46, "stop_column": 29, "path": "src/documents/tests/test_api_profile.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `name`", "concise_description": "Object of class `NoneType` has no attribute `name`", "severity": "error" }, { "line": 49, "column": 19, "stop_line": 49, "stop_column": 39, "path": "src/documents/tests/test_api_profile.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `provider_id`", "concise_description": "Object of class `NoneType` has no attribute `provider_id`", "severity": "error" }, { "line": 71, "column": 9, "stop_line": 71, "stop_column": 36, "path": "src/documents/tests/test_api_profile.py", "code": -2, "name": "missing-attribute", "description": "Object of class `User` has no attribute `socialaccount_set`", "concise_description": "Object of class `User` has no attribute `socialaccount_set`", "severity": "error" }, { "line": 279, "column": 41, "stop_line": 279, "stop_column": 51, "path": "src/documents/tests/test_api_profile.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `key`", "concise_description": "Object of class `NoneType` has no attribute `key`", "severity": "error" }, { "line": 382, "column": 29, "stop_line": 382, "stop_column": 56, "path": "src/documents/tests/test_api_profile.py", "code": -2, "name": "missing-attribute", "description": "Object of class `User` has no attribute `socialaccount_set`", "concise_description": "Object of class `User` has no attribute `socialaccount_set`", "severity": "error" }, { "line": 393, "column": 17, "stop_line": 393, "stop_column": 44, "path": "src/documents/tests/test_api_profile.py", "code": -2, "name": "missing-attribute", "description": "Object of class `User` has no attribute `socialaccount_set`", "concise_description": "Object of class `User` has no attribute `socialaccount_set`", "severity": "error" }, { "line": 83, "column": 23, "stop_line": 83, "stop_column": 49, "path": "src/documents/tests/test_api_uisettings.py", "code": -2, "name": "missing-attribute", "description": "Object of class `User` has no attribute `ui_settings`", "concise_description": "Object of class `User` has no attribute `ui_settings`", "severity": "error" }, { "line": 99, "column": 13, "stop_line": 99, "stop_column": 48, "path": "src/documents/tests/test_api_workflows.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `pk`", "concise_description": "Object of class `NoneType` has no attribute `pk`", "severity": "error" }, { "line": 243, "column": 17, "stop_line": 243, "stop_column": 40, "path": "src/documents/tests/test_api_workflows.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `filter_has_tags`", "concise_description": "Object of class `NoneType` has no attribute `filter_has_tags`", "severity": "error" }, { "line": 247, "column": 17, "stop_line": 247, "stop_column": 44, "path": "src/documents/tests/test_api_workflows.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `filter_has_all_tags`", "concise_description": "Object of class `NoneType` has no attribute `filter_has_all_tags`", "severity": "error" }, { "line": 251, "column": 17, "stop_line": 251, "stop_column": 44, "path": "src/documents/tests/test_api_workflows.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `filter_has_not_tags`", "concise_description": "Object of class `NoneType` has no attribute `filter_has_not_tags`", "severity": "error" }, { "line": 255, "column": 17, "stop_line": 255, "stop_column": 54, "path": "src/documents/tests/test_api_workflows.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `filter_has_any_correspondents`", "concise_description": "Object of class `NoneType` has no attribute `filter_has_any_correspondents`", "severity": "error" }, { "line": 259, "column": 17, "stop_line": 259, "stop_column": 54, "path": "src/documents/tests/test_api_workflows.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `filter_has_not_correspondents`", "concise_description": "Object of class `NoneType` has no attribute `filter_has_not_correspondents`", "severity": "error" }, { "line": 263, "column": 17, "stop_line": 263, "stop_column": 54, "path": "src/documents/tests/test_api_workflows.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `filter_has_any_document_types`", "concise_description": "Object of class `NoneType` has no attribute `filter_has_any_document_types`", "severity": "error" }, { "line": 267, "column": 17, "stop_line": 267, "stop_column": 54, "path": "src/documents/tests/test_api_workflows.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `filter_has_not_document_types`", "concise_description": "Object of class `NoneType` has no attribute `filter_has_not_document_types`", "severity": "error" }, { "line": 271, "column": 17, "stop_line": 271, "stop_column": 53, "path": "src/documents/tests/test_api_workflows.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `filter_has_any_storage_paths`", "concise_description": "Object of class `NoneType` has no attribute `filter_has_any_storage_paths`", "severity": "error" }, { "line": 275, "column": 17, "stop_line": 275, "stop_column": 53, "path": "src/documents/tests/test_api_workflows.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `filter_has_not_storage_paths`", "concise_description": "Object of class `NoneType` has no attribute `filter_has_not_storage_paths`", "severity": "error" }, { "line": 279, "column": 13, "stop_line": 279, "stop_column": 46, "path": "src/documents/tests/test_api_workflows.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `filter_custom_field_query`", "concise_description": "Object of class `NoneType` has no attribute `filter_custom_field_query`", "severity": "error" }, { "line": 462, "column": 26, "stop_line": 462, "stop_column": 67, "path": "src/documents/tests/test_api_workflows.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `filter_has_tags`", "concise_description": "Object of class `NoneType` has no attribute `filter_has_tags`", "severity": "error" }, { "line": 464, "column": 13, "stop_line": 464, "stop_column": 58, "path": "src/documents/tests/test_api_workflows.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `filter_has_all_tags`", "concise_description": "Object of class `NoneType` has no attribute `filter_has_all_tags`", "severity": "error" }, { "line": 468, "column": 13, "stop_line": 468, "stop_column": 58, "path": "src/documents/tests/test_api_workflows.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `filter_has_not_tags`", "concise_description": "Object of class `NoneType` has no attribute `filter_has_not_tags`", "severity": "error" }, { "line": 472, "column": 13, "stop_line": 472, "stop_column": 68, "path": "src/documents/tests/test_api_workflows.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `filter_has_any_correspondents`", "concise_description": "Object of class `NoneType` has no attribute `filter_has_any_correspondents`", "severity": "error" }, { "line": 476, "column": 13, "stop_line": 476, "stop_column": 68, "path": "src/documents/tests/test_api_workflows.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `filter_has_not_correspondents`", "concise_description": "Object of class `NoneType` has no attribute `filter_has_not_correspondents`", "severity": "error" }, { "line": 480, "column": 13, "stop_line": 480, "stop_column": 68, "path": "src/documents/tests/test_api_workflows.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `filter_has_any_document_types`", "concise_description": "Object of class `NoneType` has no attribute `filter_has_any_document_types`", "severity": "error" }, { "line": 484, "column": 13, "stop_line": 484, "stop_column": 68, "path": "src/documents/tests/test_api_workflows.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `filter_has_not_document_types`", "concise_description": "Object of class `NoneType` has no attribute `filter_has_not_document_types`", "severity": "error" }, { "line": 488, "column": 13, "stop_line": 488, "stop_column": 67, "path": "src/documents/tests/test_api_workflows.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `filter_has_any_storage_paths`", "concise_description": "Object of class `NoneType` has no attribute `filter_has_any_storage_paths`", "severity": "error" }, { "line": 492, "column": 13, "stop_line": 492, "stop_column": 67, "path": "src/documents/tests/test_api_workflows.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `filter_has_not_storage_paths`", "concise_description": "Object of class `NoneType` has no attribute `filter_has_not_storage_paths`", "severity": "error" }, { "line": 496, "column": 13, "stop_line": 496, "stop_column": 64, "path": "src/documents/tests/test_api_workflows.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `filter_custom_field_query`", "concise_description": "Object of class `NoneType` has no attribute `filter_custom_field_query`", "severity": "error" }, { "line": 499, "column": 26, "stop_line": 499, "stop_column": 63, "path": "src/documents/tests/test_api_workflows.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `assign_title`", "concise_description": "Object of class `NoneType` has no attribute `assign_title`", "severity": "error" }, { "line": 581, "column": 29, "stop_line": 581, "stop_column": 57, "path": "src/documents/tests/test_api_workflows.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `id`", "concise_description": "Object of class `NoneType` has no attribute `id`", "severity": "error" }, { "line": 583, "column": 29, "stop_line": 583, "stop_column": 56, "path": "src/documents/tests/test_api_workflows.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `id`", "concise_description": "Object of class `NoneType` has no attribute `id`", "severity": "error" }, { "line": 34, "column": 13, "stop_line": 34, "stop_column": 54, "path": "src/documents/tests/test_barcodes.py", "code": -2, "name": "bad-argument-type", "description": "Argument `DummyProgressManager` is not assignable to parameter `status_mgr` with type `ProgressManager` in function `documents.barcodes.BarcodePlugin.__init__`", "concise_description": "Argument `DummyProgressManager` is not assignable to parameter `status_mgr` with type `ProgressManager` in function `documents.barcodes.BarcodePlugin.__init__`", "severity": "error" }, { "line": 35, "column": 13, "stop_line": 35, "stop_column": 22, "path": "src/documents/tests/test_barcodes.py", "code": -2, "name": "missing-attribute", "description": "Object of class `GetReaderPluginMixin` has no attribute `dirs`", "concise_description": "Object of class `GetReaderPluginMixin` has no attribute `dirs`", "severity": "error" }, { "line": 588, "column": 9, "stop_line": 588, "stop_column": 36, "path": "src/documents/tests/test_barcodes.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `barcodes_enabled`", "concise_description": "Object of class `NoneType` has no attribute `barcodes_enabled`", "severity": "error" }, { "line": 589, "column": 9, "stop_line": 589, "stop_column": 34, "path": "src/documents/tests/test_barcodes.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `barcode_string`", "concise_description": "Object of class `NoneType` has no attribute `barcode_string`", "severity": "error" }, { "line": 590, "column": 9, "stop_line": 590, "stop_column": 24, "path": "src/documents/tests/test_barcodes.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `save`", "concise_description": "Object of class `NoneType` has no attribute `save`", "severity": "error" }, { "line": 621, "column": 21, "stop_line": 621, "stop_column": 42, "path": "src/documents/tests/test_barcodes.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `scratch_dir`", "concise_description": "Class `dirs` has no class attribute `scratch_dir`", "severity": "error" }, { "line": 657, "column": 5, "stop_line": 657, "stop_column": 20, "path": "src/documents/tests/test_barcodes.py", "code": -2, "name": "no-matching-overload", "description": "No matching overload found for function `contextlib.contextmanager` called with arguments: ((self: Self@TestAsnBarcode, filepath: Path) -> BarcodePlugin)\n Possible overloads:\n (func: (ParamSpec(_P)) -> Generator[_T_co, None, object]) -> (ParamSpec(_P)) -> _GeneratorContextManager[_T_co] [closest match]\n (func: (ParamSpec(_P)) -> Iterator[_T_co]) -> (ParamSpec(_P)) -> _GeneratorContextManager[_T_co]", "concise_description": "No matching overload found for function `contextlib.contextmanager` called with arguments: ((self: Self@TestAsnBarcode, filepath: Path) -> BarcodePlugin)", "severity": "error" }, { "line": 658, "column": 45, "stop_line": 658, "stop_column": 58, "path": "src/documents/tests/test_barcodes.py", "code": -2, "name": "bad-return", "description": "Generator function should return `Generator`", "concise_description": "Generator function should return `Generator`", "severity": "error" }, { "line": 662, "column": 13, "stop_line": 662, "stop_column": 54, "path": "src/documents/tests/test_barcodes.py", "code": -2, "name": "bad-argument-type", "description": "Argument `DummyProgressManager` is not assignable to parameter `status_mgr` with type `ProgressManager` in function `documents.barcodes.BarcodePlugin.__init__`", "concise_description": "Argument `DummyProgressManager` is not assignable to parameter `status_mgr` with type `ProgressManager` in function `documents.barcodes.BarcodePlugin.__init__`", "severity": "error" }, { "line": 663, "column": 13, "stop_line": 663, "stop_column": 34, "path": "src/documents/tests/test_barcodes.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `scratch_dir`", "concise_description": "Class `dirs` has no class attribute `scratch_dir`", "severity": "error" }, { "line": 775, "column": 30, "stop_line": 775, "stop_column": 60, "path": "src/documents/tests/test_barcodes.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `archive_serial_number`", "concise_description": "Object of class `NoneType` has no attribute `archive_serial_number`", "severity": "error" }, { "line": 815, "column": 5, "stop_line": 815, "stop_column": 20, "path": "src/documents/tests/test_barcodes.py", "code": -2, "name": "no-matching-overload", "description": "No matching overload found for function `contextlib.contextmanager` called with arguments: ((self: Self@TestTagBarcode, filepath: Path) -> BarcodePlugin)\n Possible overloads:\n (func: (ParamSpec(_P)) -> Generator[_T_co, None, object]) -> (ParamSpec(_P)) -> _GeneratorContextManager[_T_co] [closest match]\n (func: (ParamSpec(_P)) -> Iterator[_T_co]) -> (ParamSpec(_P)) -> _GeneratorContextManager[_T_co]", "concise_description": "No matching overload found for function `contextlib.contextmanager` called with arguments: ((self: Self@TestTagBarcode, filepath: Path) -> BarcodePlugin)", "severity": "error" }, { "line": 816, "column": 45, "stop_line": 816, "stop_column": 58, "path": "src/documents/tests/test_barcodes.py", "code": -2, "name": "bad-return", "description": "Generator function should return `Generator`", "concise_description": "Generator function should return `Generator`", "severity": "error" }, { "line": 820, "column": 13, "stop_line": 820, "stop_column": 54, "path": "src/documents/tests/test_barcodes.py", "code": -2, "name": "bad-argument-type", "description": "Argument `DummyProgressManager` is not assignable to parameter `status_mgr` with type `ProgressManager` in function `documents.barcodes.BarcodePlugin.__init__`", "concise_description": "Argument `DummyProgressManager` is not assignable to parameter `status_mgr` with type `ProgressManager` in function `documents.barcodes.BarcodePlugin.__init__`", "severity": "error" }, { "line": 821, "column": 13, "stop_line": 821, "stop_column": 34, "path": "src/documents/tests/test_barcodes.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `scratch_dir`", "concise_description": "Class `dirs` has no class attribute `scratch_dir`", "severity": "error" }, { "line": 1062, "column": 30, "stop_line": 1062, "stop_column": 52, "path": "src/documents/tests/test_barcodes.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `name`", "concise_description": "Object of class `NoneType` has no attribute `name`", "severity": "error" }, { "line": 1066, "column": 30, "stop_line": 1066, "stop_column": 52, "path": "src/documents/tests/test_barcodes.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `name`", "concise_description": "Object of class `NoneType` has no attribute `name`", "severity": "error" }, { "line": 73, "column": 13, "stop_line": 73, "stop_column": 23, "path": "src/documents/tests/test_bulk_edit.py", "code": -2, "name": "bad-argument-type", "description": "Argument `int` is not assignable to parameter `correspondent` with type `Correspondent` in function `documents.bulk_edit.set_correspondent`", "concise_description": "Argument `int` is not assignable to parameter `correspondent` with type `Correspondent` in function `documents.bulk_edit.set_correspondent`", "severity": "error" }, { "line": 82, "column": 81, "stop_line": 82, "stop_column": 85, "path": "src/documents/tests/test_bulk_edit.py", "code": -2, "name": "bad-argument-type", "description": "Argument `None` is not assignable to parameter `correspondent` with type `Correspondent` in function `documents.bulk_edit.set_correspondent`", "concise_description": "Argument `None` is not assignable to parameter `correspondent` with type `Correspondent` in function `documents.bulk_edit.set_correspondent`", "severity": "error" }, { "line": 92, "column": 13, "stop_line": 92, "stop_column": 24, "path": "src/documents/tests/test_bulk_edit.py", "code": -2, "name": "bad-argument-type", "description": "Argument `int` is not assignable to parameter `document_type` with type `DocumentType` in function `documents.bulk_edit.set_document_type`", "concise_description": "Argument `int` is not assignable to parameter `document_type` with type `DocumentType` in function `documents.bulk_edit.set_document_type`", "severity": "error" }, { "line": 101, "column": 81, "stop_line": 101, "stop_column": 85, "path": "src/documents/tests/test_bulk_edit.py", "code": -2, "name": "bad-argument-type", "description": "Argument `None` is not assignable to parameter `document_type` with type `DocumentType` in function `documents.bulk_edit.set_document_type`", "concise_description": "Argument `None` is not assignable to parameter `document_type` with type `DocumentType` in function `documents.bulk_edit.set_document_type`", "severity": "error" }, { "line": 120, "column": 13, "stop_line": 120, "stop_column": 24, "path": "src/documents/tests/test_bulk_edit.py", "code": -2, "name": "bad-argument-type", "description": "Argument `int` is not assignable to parameter `storage_path` with type `StoragePath` in function `documents.bulk_edit.set_storage_path`", "concise_description": "Argument `int` is not assignable to parameter `storage_path` with type `StoragePath` in function `documents.bulk_edit.set_storage_path`", "severity": "error" }, { "line": 144, "column": 13, "stop_line": 144, "stop_column": 24, "path": "src/documents/tests/test_bulk_edit.py", "code": -2, "name": "bad-argument-type", "description": "Argument `int` is not assignable to parameter `storage_path` with type `StoragePath` in function `documents.bulk_edit.set_storage_path`", "concise_description": "Argument `int` is not assignable to parameter `storage_path` with type `StoragePath` in function `documents.bulk_edit.set_storage_path`", "severity": "error" }, { "line": 151, "column": 13, "stop_line": 151, "stop_column": 17, "path": "src/documents/tests/test_bulk_edit.py", "code": -2, "name": "bad-argument-type", "description": "Argument `None` is not assignable to parameter `storage_path` with type `StoragePath` in function `documents.bulk_edit.set_storage_path`", "concise_description": "Argument `None` is not assignable to parameter `storage_path` with type `StoragePath` in function `documents.bulk_edit.set_storage_path`", "severity": "error" }, { "line": 242, "column": 13, "stop_line": 242, "stop_column": 36, "path": "src/documents/tests/test_bulk_edit.py", "code": -2, "name": "missing-attribute", "description": "Object of class `Document` has no attribute `custom_fields`", "concise_description": "Object of class `Document` has no attribute `custom_fields`", "severity": "error" }, { "line": 246, "column": 13, "stop_line": 246, "stop_column": 36, "path": "src/documents/tests/test_bulk_edit.py", "code": -2, "name": "missing-attribute", "description": "Object of class `Document` has no attribute `custom_fields`", "concise_description": "Object of class `Document` has no attribute `custom_fields`", "severity": "error" }, { "line": 302, "column": 13, "stop_line": 302, "stop_column": 36, "path": "src/documents/tests/test_bulk_edit.py", "code": -2, "name": "missing-attribute", "description": "Object of class `Document` has no attribute `custom_fields`", "concise_description": "Object of class `Document` has no attribute `custom_fields`", "severity": "error" }, { "line": 306, "column": 13, "stop_line": 306, "stop_column": 36, "path": "src/documents/tests/test_bulk_edit.py", "code": -2, "name": "missing-attribute", "description": "Object of class `Document` has no attribute `custom_fields`", "concise_description": "Object of class `Document` has no attribute `custom_fields`", "severity": "error" }, { "line": 310, "column": 13, "stop_line": 310, "stop_column": 36, "path": "src/documents/tests/test_bulk_edit.py", "code": -2, "name": "missing-attribute", "description": "Object of class `Document` has no attribute `custom_fields`", "concise_description": "Object of class `Document` has no attribute `custom_fields`", "severity": "error" }, { "line": 314, "column": 13, "stop_line": 314, "stop_column": 36, "path": "src/documents/tests/test_bulk_edit.py", "code": -2, "name": "missing-attribute", "description": "Object of class `Document` has no attribute `custom_fields`", "concise_description": "Object of class `Document` has no attribute `custom_fields`", "severity": "error" }, { "line": 318, "column": 13, "stop_line": 318, "stop_column": 36, "path": "src/documents/tests/test_bulk_edit.py", "code": -2, "name": "missing-attribute", "description": "Object of class `Document` has no attribute `custom_fields`", "concise_description": "Object of class `Document` has no attribute `custom_fields`", "severity": "error" }, { "line": 323, "column": 13, "stop_line": 323, "stop_column": 36, "path": "src/documents/tests/test_bulk_edit.py", "code": -2, "name": "missing-attribute", "description": "Object of class `Document` has no attribute `custom_fields`", "concise_description": "Object of class `Document` has no attribute `custom_fields`", "severity": "error" }, { "line": 339, "column": 13, "stop_line": 339, "stop_column": 36, "path": "src/documents/tests/test_bulk_edit.py", "code": -2, "name": "missing-attribute", "description": "Object of class `Document` has no attribute `custom_fields`", "concise_description": "Object of class `Document` has no attribute `custom_fields`", "severity": "error" }, { "line": 343, "column": 13, "stop_line": 343, "stop_column": 36, "path": "src/documents/tests/test_bulk_edit.py", "code": -2, "name": "missing-attribute", "description": "Object of class `Document` has no attribute `custom_fields`", "concise_description": "Object of class `Document` has no attribute `custom_fields`", "severity": "error" }, { "line": 367, "column": 13, "stop_line": 367, "stop_column": 36, "path": "src/documents/tests/test_bulk_edit.py", "code": -2, "name": "missing-attribute", "description": "Object of class `Document` has no attribute `custom_fields`", "concise_description": "Object of class `Document` has no attribute `custom_fields`", "severity": "error" }, { "line": 371, "column": 13, "stop_line": 371, "stop_column": 36, "path": "src/documents/tests/test_bulk_edit.py", "code": -2, "name": "missing-attribute", "description": "Object of class `Document` has no attribute `custom_fields`", "concise_description": "Object of class `Document` has no attribute `custom_fields`", "severity": "error" }, { "line": 462, "column": 48, "stop_line": 462, "stop_column": 50, "path": "src/documents/tests/test_bulk_edit.py", "code": -2, "name": "bad-argument-count", "description": "Missing positional argument `value` in function `list.count`", "concise_description": "Missing positional argument `value` in function `list.count`", "severity": "error" }, { "line": 468, "column": 26, "stop_line": 468, "stop_column": 49, "path": "src/documents/tests/test_bulk_edit.py", "code": -2, "name": "missing-attribute", "description": "Object of class `Group` has no attribute `count`\nObject of class `dict` has no attribute `count`", "concise_description": "Object of class `Group` has no attribute `count`\nObject of class `dict` has no attribute `count`", "severity": "error" }, { "line": 506, "column": 48, "stop_line": 506, "stop_column": 50, "path": "src/documents/tests/test_bulk_edit.py", "code": -2, "name": "bad-argument-count", "description": "Missing positional argument `value` in function `list.count`", "concise_description": "Missing positional argument `value` in function `list.count`", "severity": "error" }, { "line": 512, "column": 26, "stop_line": 512, "stop_column": 49, "path": "src/documents/tests/test_bulk_edit.py", "code": -2, "name": "missing-attribute", "description": "Object of class `Group` has no attribute `count`\nObject of class `dict` has no attribute `count`", "concise_description": "Object of class `Group` has no attribute `count`\nObject of class `dict` has no attribute `count`", "severity": "error" }, { "line": 527, "column": 19, "stop_line": 527, "stop_column": 40, "path": "src/documents/tests/test_bulk_edit.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `scratch_dir`", "concise_description": "Class `dirs` has no class attribute `scratch_dir`", "severity": "error" }, { "line": 536, "column": 27, "stop_line": 536, "stop_column": 48, "path": "src/documents/tests/test_bulk_edit.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `archive_dir`", "concise_description": "Class `dirs` has no class attribute `archive_dir`", "severity": "error" }, { "line": 545, "column": 19, "stop_line": 545, "stop_column": 40, "path": "src/documents/tests/test_bulk_edit.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `scratch_dir`", "concise_description": "Class `dirs` has no class attribute `scratch_dir`", "severity": "error" }, { "line": 554, "column": 27, "stop_line": 554, "stop_column": 48, "path": "src/documents/tests/test_bulk_edit.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `archive_dir`", "concise_description": "Class `dirs` has no class attribute `archive_dir`", "severity": "error" }, { "line": 563, "column": 19, "stop_line": 563, "stop_column": 40, "path": "src/documents/tests/test_bulk_edit.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `scratch_dir`", "concise_description": "Class `dirs` has no class attribute `scratch_dir`", "severity": "error" }, { "line": 596, "column": 19, "stop_line": 596, "stop_column": 40, "path": "src/documents/tests/test_bulk_edit.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `scratch_dir`", "concise_description": "Class `dirs` has no class attribute `scratch_dir`", "severity": "error" }, { "line": 601, "column": 27, "stop_line": 601, "stop_column": 48, "path": "src/documents/tests/test_bulk_edit.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `archive_dir`", "concise_description": "Class `dirs` has no class attribute `archive_dir`", "severity": "error" }, { "line": 670, "column": 24, "stop_line": 670, "stop_column": 45, "path": "src/documents/tests/test_bulk_edit.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `scratch_dir`", "concise_description": "Class `dirs` has no class attribute `scratch_dir`", "severity": "error" }, { "line": 907, "column": 24, "stop_line": 907, "stop_column": 45, "path": "src/documents/tests/test_bulk_edit.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `scratch_dir`", "concise_description": "Class `dirs` has no class attribute `scratch_dir`", "severity": "error" }, { "line": 1447, "column": 20, "stop_line": 1447, "stop_column": 41, "path": "src/documents/tests/test_bulk_edit.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `scratch_dir`", "concise_description": "Class `dirs` has no class attribute `scratch_dir`", "severity": "error" }, { "line": 1523, "column": 20, "stop_line": 1523, "stop_column": 41, "path": "src/documents/tests/test_bulk_edit.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `scratch_dir`", "concise_description": "Class `dirs` has no class attribute `scratch_dir`", "severity": "error" }, { "line": 1581, "column": 20, "stop_line": 1581, "stop_column": 41, "path": "src/documents/tests/test_bulk_edit.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `scratch_dir`", "concise_description": "Class `dirs` has no class attribute `scratch_dir`", "severity": "error" }, { "line": 206, "column": 18, "stop_line": 206, "stop_column": 67, "path": "src/documents/tests/test_classifier.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `classes_`", "concise_description": "Object of class `NoneType` has no attribute `classes_`", "severity": "error" }, { "line": 210, "column": 18, "stop_line": 210, "stop_column": 57, "path": "src/documents/tests/test_classifier.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `classes_`", "concise_description": "Object of class `NoneType` has no attribute `classes_`", "severity": "error" }, { "line": 230, "column": 23, "stop_line": 230, "stop_column": 64, "path": "src/documents/tests/test_classifier.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `transform`", "concise_description": "Object of class `NoneType` has no attribute `transform`", "severity": "error" }, { "line": 461, "column": 40, "stop_line": 461, "stop_column": 66, "path": "src/documents/tests/test_classifier.py", "code": -2, "name": "missing-module-attribute", "description": "Could not import `InconsistentVersionWarning` from `sklearn.exceptions`", "concise_description": "Could not import `InconsistentVersionWarning` from `sklearn.exceptions`", "severity": "error" }, { "line": 481, "column": 17, "stop_line": 481, "stop_column": 25, "path": "src/documents/tests/test_classifier.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `append`", "concise_description": "Object of class `NoneType` has no attribute `append`", "severity": "error" }, { "line": 104, "column": 16, "stop_line": 104, "stop_column": 27, "path": "src/documents/tests/test_consumer.py", "code": -2, "name": "bad-return", "description": "Returned type `Path | None` is not assignable to declared return type `Path`", "concise_description": "Returned type `Path | None` is not assignable to declared return type `Path`", "severity": "error" }, { "line": 209, "column": 15, "stop_line": 209, "stop_column": 36, "path": "src/documents/tests/test_consumer.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `scratch_dir`", "concise_description": "Class `dirs` has no class attribute `scratch_dir`", "severity": "error" }, { "line": 221, "column": 15, "stop_line": 221, "stop_column": 36, "path": "src/documents/tests/test_consumer.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `scratch_dir`", "concise_description": "Class `dirs` has no class attribute `scratch_dir`", "severity": "error" }, { "line": 229, "column": 15, "stop_line": 229, "stop_column": 36, "path": "src/documents/tests/test_consumer.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `scratch_dir`", "concise_description": "Class `dirs` has no class attribute `scratch_dir`", "severity": "error" }, { "line": 266, "column": 27, "stop_line": 266, "stop_column": 48, "path": "src/documents/tests/test_consumer.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Path | None` is not assignable to parameter `path` with type `PathLike[Unknown] | str` in function `documents.tests.utils.FileSystemAssertsMixin.assertIsFile`", "concise_description": "Argument `Path | None` is not assignable to parameter `path` with type `PathLike[Unknown] | str` in function `documents.tests.utils.FileSystemAssertsMixin.assertIsFile`", "severity": "error" }, { "line": 290, "column": 28, "stop_line": 290, "stop_column": 49, "path": "src/documents/tests/test_consumer.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `scratch_dir`", "concise_description": "Class `dirs` has no class attribute `scratch_dir`", "severity": "error" }, { "line": 353, "column": 26, "stop_line": 353, "stop_column": 51, "path": "src/documents/tests/test_consumer.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `id`", "concise_description": "Object of class `NoneType` has no attribute `id`", "severity": "error" }, { "line": 367, "column": 26, "stop_line": 367, "stop_column": 48, "path": "src/documents/tests/test_consumer.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `document_type`", "concise_description": "Object of class `NoneType` has no attribute `document_type`", "severity": "error" }, { "line": 381, "column": 26, "stop_line": 381, "stop_column": 47, "path": "src/documents/tests/test_consumer.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `storage_path`", "concise_description": "Object of class `NoneType` has no attribute `storage_path`", "severity": "error" }, { "line": 397, "column": 27, "stop_line": 397, "stop_column": 40, "path": "src/documents/tests/test_consumer.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `tags`", "concise_description": "Object of class `NoneType` has no attribute `tags`", "severity": "error" }, { "line": 398, "column": 30, "stop_line": 398, "stop_column": 43, "path": "src/documents/tests/test_consumer.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `tags`", "concise_description": "Object of class `NoneType` has no attribute `tags`", "severity": "error" }, { "line": 399, "column": 27, "stop_line": 399, "stop_column": 40, "path": "src/documents/tests/test_consumer.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `tags`", "concise_description": "Object of class `NoneType` has no attribute `tags`", "severity": "error" }, { "line": 424, "column": 56, "stop_line": 424, "stop_column": 78, "path": "src/documents/tests/test_consumer.py", "code": -2, "name": "missing-attribute", "description": "Object of class `Document` has no attribute `custom_fields`\nObject of class `NoneType` has no attribute `custom_fields`", "concise_description": "Object of class `Document` has no attribute `custom_fields`\nObject of class `NoneType` has no attribute `custom_fields`", "severity": "error" }, { "line": 429, "column": 26, "stop_line": 429, "stop_column": 48, "path": "src/documents/tests/test_consumer.py", "code": -2, "name": "missing-attribute", "description": "Object of class `Document` has no attribute `custom_fields`\nObject of class `NoneType` has no attribute `custom_fields`", "concise_description": "Object of class `Document` has no attribute `custom_fields`\nObject of class `NoneType` has no attribute `custom_fields`", "severity": "error" }, { "line": 431, "column": 13, "stop_line": 431, "stop_column": 35, "path": "src/documents/tests/test_consumer.py", "code": -2, "name": "missing-attribute", "description": "Object of class `Document` has no attribute `custom_fields`\nObject of class `NoneType` has no attribute `custom_fields`", "concise_description": "Object of class `Document` has no attribute `custom_fields`\nObject of class `NoneType` has no attribute `custom_fields`", "severity": "error" }, { "line": 445, "column": 26, "stop_line": 445, "stop_column": 56, "path": "src/documents/tests/test_consumer.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `archive_serial_number`", "concise_description": "Object of class `NoneType` has no attribute `archive_serial_number`", "severity": "error" }, { "line": 465, "column": 26, "stop_line": 465, "stop_column": 40, "path": "src/documents/tests/test_consumer.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `title`", "concise_description": "Object of class `NoneType` has no attribute `title`", "severity": "error" }, { "line": 479, "column": 26, "stop_line": 479, "stop_column": 40, "path": "src/documents/tests/test_consumer.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `owner`", "concise_description": "Object of class `NoneType` has no attribute `owner`", "severity": "error" }, { "line": 498, "column": 64, "stop_line": 498, "stop_column": 72, "path": "src/documents/tests/test_consumer.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Document | None` is not assignable to parameter `obj` with type `Model` in function `guardian.core.ObjectPermissionChecker.has_perm`", "concise_description": "Argument `Document | None` is not assignable to parameter `obj` with type `Model` in function `guardian.core.ObjectPermissionChecker.has_perm`", "severity": "error" }, { "line": 500, "column": 65, "stop_line": 500, "stop_column": 73, "path": "src/documents/tests/test_consumer.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Document | None` is not assignable to parameter `obj` with type `Model` in function `guardian.core.ObjectPermissionChecker.has_perm`", "concise_description": "Argument `Document | None` is not assignable to parameter `obj` with type `Model` in function `guardian.core.ObjectPermissionChecker.has_perm`", "severity": "error" }, { "line": 568, "column": 13, "stop_line": 568, "stop_column": 28, "path": "src/documents/tests/test_consumer.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `delete`", "concise_description": "Object of class `NoneType` has no attribute `delete`", "severity": "error" }, { "line": 649, "column": 26, "stop_line": 649, "stop_column": 40, "path": "src/documents/tests/test_consumer.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `title`", "concise_description": "Object of class `NoneType` has no attribute `title`", "severity": "error" }, { "line": 650, "column": 26, "stop_line": 650, "stop_column": 43, "path": "src/documents/tests/test_consumer.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `filename`", "concise_description": "Object of class `NoneType` has no attribute `filename`", "severity": "error" }, { "line": 651, "column": 26, "stop_line": 651, "stop_column": 51, "path": "src/documents/tests/test_consumer.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `archive_filename`", "concise_description": "Object of class `NoneType` has no attribute `archive_filename`", "severity": "error" }, { "line": 673, "column": 34, "stop_line": 673, "stop_column": 51, "path": "src/documents/tests/test_consumer.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Any | None` is not assignable to parameter `obj` with type `Sized` in function `len`\n Protocol `Sized` requires attribute `__len__`", "concise_description": "Argument `Any | None` is not assignable to parameter `obj` with type `Sized` in function `len`", "severity": "error" }, { "line": 675, "column": 17, "stop_line": 675, "stop_column": 42, "path": "src/documents/tests/test_consumer.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Any | None` is not assignable to parameter `obj` with type `Sized` in function `len`\n Protocol `Sized` requires attribute `__len__`", "concise_description": "Argument `Any | None` is not assignable to parameter `obj` with type `Sized` in function `len`", "severity": "error" }, { "line": 679, "column": 27, "stop_line": 679, "stop_column": 48, "path": "src/documents/tests/test_consumer.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Path | None` is not assignable to parameter `path` with type `PathLike[Unknown] | str` in function `documents.tests.utils.FileSystemAssertsMixin.assertIsFile`", "concise_description": "Argument `Path | None` is not assignable to parameter `path` with type `PathLike[Unknown] | str` in function `documents.tests.utils.FileSystemAssertsMixin.assertIsFile`", "severity": "error" }, { "line": 708, "column": 26, "stop_line": 708, "stop_column": 40, "path": "src/documents/tests/test_consumer.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `title`", "concise_description": "Object of class `NoneType` has no attribute `title`", "severity": "error" }, { "line": 710, "column": 27, "stop_line": 710, "stop_column": 47, "path": "src/documents/tests/test_consumer.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `source_path`", "concise_description": "Object of class `NoneType` has no attribute `source_path`", "severity": "error" }, { "line": 711, "column": 27, "stop_line": 711, "stop_column": 48, "path": "src/documents/tests/test_consumer.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `archive_path`", "concise_description": "Object of class `NoneType` has no attribute `archive_path`", "severity": "error" }, { "line": 773, "column": 13, "stop_line": 773, "stop_column": 34, "path": "src/documents/tests/test_consumer.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `scratch_dir`", "concise_description": "Class `dirs` has no class attribute `scratch_dir`", "severity": "error" }, { "line": 783, "column": 13, "stop_line": 783, "stop_column": 34, "path": "src/documents/tests/test_consumer.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `scratch_dir`", "concise_description": "Class `dirs` has no class attribute `scratch_dir`", "severity": "error" }, { "line": 835, "column": 13, "stop_line": 835, "stop_column": 34, "path": "src/documents/tests/test_consumer.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `scratch_dir`", "concise_description": "Class `dirs` has no class attribute `scratch_dir`", "severity": "error" }, { "line": 845, "column": 13, "stop_line": 845, "stop_column": 34, "path": "src/documents/tests/test_consumer.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `scratch_dir`", "concise_description": "Class `dirs` has no class attribute `scratch_dir`", "severity": "error" }, { "line": 888, "column": 17, "stop_line": 888, "stop_column": 38, "path": "src/documents/tests/test_consumer.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `scratch_dir`", "concise_description": "Class `dirs` has no class attribute `scratch_dir`", "severity": "error" }, { "line": 898, "column": 17, "stop_line": 898, "stop_column": 38, "path": "src/documents/tests/test_consumer.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `scratch_dir`", "concise_description": "Class `dirs` has no class attribute `scratch_dir`", "severity": "error" }, { "line": 944, "column": 26, "stop_line": 944, "stop_column": 48, "path": "src/documents/tests/test_consumer.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `correspondent`", "concise_description": "Object of class `NoneType` has no attribute `correspondent`", "severity": "error" }, { "line": 945, "column": 26, "stop_line": 945, "stop_column": 48, "path": "src/documents/tests/test_consumer.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `document_type`", "concise_description": "Object of class `NoneType` has no attribute `document_type`", "severity": "error" }, { "line": 946, "column": 27, "stop_line": 946, "stop_column": 40, "path": "src/documents/tests/test_consumer.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `tags`", "concise_description": "Object of class `NoneType` has no attribute `tags`", "severity": "error" }, { "line": 947, "column": 30, "stop_line": 947, "stop_column": 43, "path": "src/documents/tests/test_consumer.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `tags`", "concise_description": "Object of class `NoneType` has no attribute `tags`", "severity": "error" }, { "line": 990, "column": 9, "stop_line": 990, "stop_column": 24, "path": "src/documents/tests/test_consumer.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `delete`", "concise_description": "Object of class `NoneType` has no attribute `delete`", "severity": "error" }, { "line": 997, "column": 37, "stop_line": 997, "stop_column": 51, "path": "src/documents/tests/test_consumer.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `title`", "concise_description": "Object of class `NoneType` has no attribute `title`", "severity": "error" }, { "line": 997, "column": 56, "stop_line": 997, "stop_column": 67, "path": "src/documents/tests/test_consumer.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `pk`", "concise_description": "Object of class `NoneType` has no attribute `pk`", "severity": "error" }, { "line": 1066, "column": 26, "stop_line": 1066, "stop_column": 39, "path": "src/documents/tests/test_consumer.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `filename`", "concise_description": "Object of class `NoneType` has no attribute `filename`", "severity": "error" }, { "line": 1067, "column": 26, "stop_line": 1067, "stop_column": 47, "path": "src/documents/tests/test_consumer.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `archive_filename`", "concise_description": "Object of class `NoneType` has no attribute `archive_filename`", "severity": "error" }, { "line": 1069, "column": 26, "stop_line": 1069, "stop_column": 39, "path": "src/documents/tests/test_consumer.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `filename`", "concise_description": "Object of class `NoneType` has no attribute `filename`", "severity": "error" }, { "line": 1070, "column": 26, "stop_line": 1070, "stop_column": 47, "path": "src/documents/tests/test_consumer.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `archive_filename`", "concise_description": "Object of class `NoneType` has no attribute `archive_filename`", "severity": "error" }, { "line": 1072, "column": 26, "stop_line": 1072, "stop_column": 39, "path": "src/documents/tests/test_consumer.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `filename`", "concise_description": "Object of class `NoneType` has no attribute `filename`", "severity": "error" }, { "line": 1073, "column": 26, "stop_line": 1073, "stop_column": 47, "path": "src/documents/tests/test_consumer.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `archive_filename`", "concise_description": "Object of class `NoneType` has no attribute `archive_filename`", "severity": "error" }, { "line": 1169, "column": 15, "stop_line": 1169, "stop_column": 36, "path": "src/documents/tests/test_consumer.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `scratch_dir`", "concise_description": "Class `dirs` has no class attribute `scratch_dir`", "severity": "error" }, { "line": 1178, "column": 13, "stop_line": 1178, "stop_column": 29, "path": "src/documents/tests/test_consumer.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `created`", "concise_description": "Object of class `NoneType` has no attribute `created`", "severity": "error" }, { "line": 1199, "column": 15, "stop_line": 1199, "stop_column": 36, "path": "src/documents/tests/test_consumer.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `scratch_dir`", "concise_description": "Class `dirs` has no class attribute `scratch_dir`", "severity": "error" }, { "line": 1208, "column": 13, "stop_line": 1208, "stop_column": 29, "path": "src/documents/tests/test_consumer.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `created`", "concise_description": "Object of class `NoneType` has no attribute `created`", "severity": "error" }, { "line": 1229, "column": 15, "stop_line": 1229, "stop_column": 36, "path": "src/documents/tests/test_consumer.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `scratch_dir`", "concise_description": "Class `dirs` has no class attribute `scratch_dir`", "severity": "error" }, { "line": 1238, "column": 13, "stop_line": 1238, "stop_column": 29, "path": "src/documents/tests/test_consumer.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `created`", "concise_description": "Object of class `NoneType` has no attribute `created`", "severity": "error" }, { "line": 1261, "column": 15, "stop_line": 1261, "stop_column": 36, "path": "src/documents/tests/test_consumer.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `scratch_dir`", "concise_description": "Class `dirs` has no class attribute `scratch_dir`", "severity": "error" }, { "line": 1270, "column": 13, "stop_line": 1270, "stop_column": 29, "path": "src/documents/tests/test_consumer.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `created`", "concise_description": "Object of class `NoneType` has no attribute `created`", "severity": "error" }, { "line": 1285, "column": 26, "stop_line": 1285, "stop_column": 47, "path": "src/documents/tests/test_consumer.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `scratch_dir`", "concise_description": "Class `dirs` has no class attribute `scratch_dir`", "severity": "error" }, { "line": 1410, "column": 26, "stop_line": 1410, "stop_column": 47, "path": "src/documents/tests/test_consumer.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `scratch_dir`", "concise_description": "Class `dirs` has no class attribute `scratch_dir`", "severity": "error" }, { "line": 32, "column": 38, "stop_line": 32, "stop_column": 63, "path": "src/documents/tests/test_double_sided.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `consumption_dir`", "concise_description": "Class `dirs` has no class attribute `consumption_dir`", "severity": "error" }, { "line": 33, "column": 9, "stop_line": 33, "stop_column": 35, "path": "src/documents/tests/test_double_sided.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `double_sided_dir`", "concise_description": "Class `dirs` has no class attribute `double_sided_dir`", "severity": "error" }, { "line": 34, "column": 29, "stop_line": 34, "stop_column": 50, "path": "src/documents/tests/test_double_sided.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `scratch_dir`", "concise_description": "Class `dirs` has no class attribute `scratch_dir`", "severity": "error" }, { "line": 42, "column": 15, "stop_line": 42, "stop_column": 41, "path": "src/documents/tests/test_double_sided.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `double_sided_dir`", "concise_description": "Class `dirs` has no class attribute `double_sided_dir`", "severity": "error" }, { "line": 63, "column": 42, "stop_line": 63, "stop_column": 69, "path": "src/documents/tests/test_double_sided.py", "code": -2, "name": "bad-argument-type", "description": "Argument `tuple[float | Unknown, ...]` is not assignable to parameter `times` with type `tuple[float, float] | tuple[int, int] | None` in function `os.utime`", "concise_description": "Argument `tuple[float | Unknown, ...]` is not assignable to parameter `times` with type `tuple[float, float] | tuple[int, int] | None` in function `os.utime`", "severity": "error" }, { "line": 86, "column": 54, "stop_line": 86, "stop_column": 57, "path": "src/documents/tests/test_double_sided.py", "code": -2, "name": "bad-argument-type", "description": "Argument `str | None` is not assignable to parameter `container` with type `Container | Iterable[Any]` in function `unittest.case.TestCase.assertIn`", "concise_description": "Argument `str | None` is not assignable to parameter `container` with type `Container | Iterable[Any]` in function `unittest.case.TestCase.assertIn`", "severity": "error" }, { "line": 106, "column": 18, "stop_line": 106, "stop_column": 43, "path": "src/documents/tests/test_double_sided.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `consumption_dir`", "concise_description": "Class `dirs` has no class attribute `consumption_dir`", "severity": "error" }, { "line": 132, "column": 54, "stop_line": 132, "stop_column": 57, "path": "src/documents/tests/test_double_sided.py", "code": -2, "name": "bad-argument-type", "description": "Argument `str | None` is not assignable to parameter `container` with type `Container | Iterable[Any]` in function `unittest.case.TestCase.assertIn`", "concise_description": "Argument `str | None` is not assignable to parameter `container` with type `Container | Iterable[Any]` in function `unittest.case.TestCase.assertIn`", "severity": "error" }, { "line": 215, "column": 25, "stop_line": 215, "stop_column": 71, "path": "src/documents/tests/test_double_sided.py", "code": -2, "name": "bad-specialization", "description": "`str | None` is not assignable to upper bound `bytes | str` of type variable `AnyStr`", "concise_description": "`str | None` is not assignable to upper bound `bytes | str` of type variable `AnyStr`", "severity": "error" }, { "line": 240, "column": 21, "stop_line": 240, "stop_column": 46, "path": "src/documents/tests/test_double_sided.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `consumption_dir`", "concise_description": "Class `dirs` has no class attribute `consumption_dir`", "severity": "error" }, { "line": 255, "column": 25, "stop_line": 255, "stop_column": 71, "path": "src/documents/tests/test_double_sided.py", "code": -2, "name": "bad-specialization", "description": "`str | None` is not assignable to upper bound `bytes | str` of type variable `AnyStr`", "concise_description": "`str | None` is not assignable to upper bound `bytes | str` of type variable `AnyStr`", "severity": "error" }, { "line": 232, "column": 38, "stop_line": 232, "stop_column": 54, "path": "src/documents/tests/test_file_handling.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Path | None` is not assignable to parameter `source_path` with type `Path` in function `documents.file_handling.create_source_path_directory`", "concise_description": "Argument `Path | None` is not assignable to parameter `source_path` with type `Path` in function `documents.file_handling.create_source_path_directory`", "severity": "error" }, { "line": 233, "column": 9, "stop_line": 233, "stop_column": 37, "path": "src/documents/tests/test_file_handling.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `write_bytes`", "concise_description": "Object of class `NoneType` has no attribute `write_bytes`", "severity": "error" }, { "line": 250, "column": 27, "stop_line": 250, "stop_column": 43, "path": "src/documents/tests/test_file_handling.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Path | None` is not assignable to parameter `path` with type `PathLike[Unknown] | str` in function `documents.tests.utils.FileSystemAssertsMixin.assertIsFile`", "concise_description": "Argument `Path | None` is not assignable to parameter `path` with type `PathLike[Unknown] | str` in function `documents.tests.utils.FileSystemAssertsMixin.assertIsFile`", "severity": "error" }, { "line": 608, "column": 18, "stop_line": 608, "stop_column": 34, "path": "src/documents/tests/test_file_handling.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Path | None` is not assignable to parameter `*args` with type `PathLike[str] | str` in function `pathlib.Path.__new__`", "concise_description": "Argument `Path | None` is not assignable to parameter `*args` with type `PathLike[str] | str` in function `pathlib.Path.__new__`", "severity": "error" }, { "line": 691, "column": 27, "stop_line": 691, "stop_column": 43, "path": "src/documents/tests/test_file_handling.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Path | None` is not assignable to parameter `path` with type `PathLike[Unknown] | str` in function `documents.tests.utils.FileSystemAssertsMixin.assertIsFile`", "concise_description": "Argument `Path | None` is not assignable to parameter `path` with type `PathLike[Unknown] | str` in function `documents.tests.utils.FileSystemAssertsMixin.assertIsFile`", "severity": "error" }, { "line": 711, "column": 27, "stop_line": 711, "stop_column": 43, "path": "src/documents/tests/test_file_handling.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Path | None` is not assignable to parameter `path` with type `PathLike[Unknown] | str` in function `documents.tests.utils.FileSystemAssertsMixin.assertIsFile`", "concise_description": "Argument `Path | None` is not assignable to parameter `path` with type `PathLike[Unknown] | str` in function `documents.tests.utils.FileSystemAssertsMixin.assertIsFile`", "severity": "error" }, { "line": 738, "column": 30, "stop_line": 738, "stop_column": 46, "path": "src/documents/tests/test_file_handling.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Path | None` is not assignable to parameter `path` with type `PathLike[Unknown] | str` in function `documents.tests.utils.FileSystemAssertsMixin.assertIsNotFile`", "concise_description": "Argument `Path | None` is not assignable to parameter `path` with type `PathLike[Unknown] | str` in function `documents.tests.utils.FileSystemAssertsMixin.assertIsNotFile`", "severity": "error" }, { "line": 761, "column": 27, "stop_line": 761, "stop_column": 43, "path": "src/documents/tests/test_file_handling.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Path | None` is not assignable to parameter `path` with type `PathLike[Unknown] | str` in function `documents.tests.utils.FileSystemAssertsMixin.assertIsFile`", "concise_description": "Argument `Path | None` is not assignable to parameter `path` with type `PathLike[Unknown] | str` in function `documents.tests.utils.FileSystemAssertsMixin.assertIsFile`", "severity": "error" }, { "line": 785, "column": 27, "stop_line": 785, "stop_column": 43, "path": "src/documents/tests/test_file_handling.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Path | None` is not assignable to parameter `path` with type `PathLike[Unknown] | str` in function `documents.tests.utils.FileSystemAssertsMixin.assertIsFile`", "concise_description": "Argument `Path | None` is not assignable to parameter `path` with type `PathLike[Unknown] | str` in function `documents.tests.utils.FileSystemAssertsMixin.assertIsFile`", "severity": "error" }, { "line": 807, "column": 27, "stop_line": 807, "stop_column": 43, "path": "src/documents/tests/test_file_handling.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Path | None` is not assignable to parameter `path` with type `PathLike[Unknown] | str` in function `documents.tests.utils.FileSystemAssertsMixin.assertIsFile`", "concise_description": "Argument `Path | None` is not assignable to parameter `path` with type `PathLike[Unknown] | str` in function `documents.tests.utils.FileSystemAssertsMixin.assertIsFile`", "severity": "error" }, { "line": 838, "column": 27, "stop_line": 838, "stop_column": 43, "path": "src/documents/tests/test_file_handling.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Path | None` is not assignable to parameter `path` with type `PathLike[Unknown] | str` in function `documents.tests.utils.FileSystemAssertsMixin.assertIsFile`", "concise_description": "Argument `Path | None` is not assignable to parameter `path` with type `PathLike[Unknown] | str` in function `documents.tests.utils.FileSystemAssertsMixin.assertIsFile`", "severity": "error" }, { "line": 858, "column": 27, "stop_line": 858, "stop_column": 43, "path": "src/documents/tests/test_file_handling.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Path | None` is not assignable to parameter `path` with type `PathLike[Unknown] | str` in function `documents.tests.utils.FileSystemAssertsMixin.assertIsFile`", "concise_description": "Argument `Path | None` is not assignable to parameter `path` with type `PathLike[Unknown] | str` in function `documents.tests.utils.FileSystemAssertsMixin.assertIsFile`", "severity": "error" }, { "line": 889, "column": 27, "stop_line": 889, "stop_column": 43, "path": "src/documents/tests/test_file_handling.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Path | None` is not assignable to parameter `path` with type `PathLike[Unknown] | str` in function `documents.tests.utils.FileSystemAssertsMixin.assertIsFile`", "concise_description": "Argument `Path | None` is not assignable to parameter `path` with type `PathLike[Unknown] | str` in function `documents.tests.utils.FileSystemAssertsMixin.assertIsFile`", "severity": "error" }, { "line": 909, "column": 27, "stop_line": 909, "stop_column": 43, "path": "src/documents/tests/test_file_handling.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Path | None` is not assignable to parameter `path` with type `PathLike[Unknown] | str` in function `documents.tests.utils.FileSystemAssertsMixin.assertIsFile`", "concise_description": "Argument `Path | None` is not assignable to parameter `path` with type `PathLike[Unknown] | str` in function `documents.tests.utils.FileSystemAssertsMixin.assertIsFile`", "severity": "error" }, { "line": 917, "column": 30, "stop_line": 917, "stop_column": 46, "path": "src/documents/tests/test_file_handling.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Path | None` is not assignable to parameter `path` with type `PathLike[Unknown] | str` in function `documents.tests.utils.FileSystemAssertsMixin.assertIsNotFile`", "concise_description": "Argument `Path | None` is not assignable to parameter `path` with type `PathLike[Unknown] | str` in function `documents.tests.utils.FileSystemAssertsMixin.assertIsNotFile`", "severity": "error" }, { "line": 944, "column": 27, "stop_line": 944, "stop_column": 44, "path": "src/documents/tests/test_file_handling.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Path | None` is not assignable to parameter `path` with type `PathLike[Unknown] | str` in function `documents.tests.utils.FileSystemAssertsMixin.assertIsFile`", "concise_description": "Argument `Path | None` is not assignable to parameter `path` with type `PathLike[Unknown] | str` in function `documents.tests.utils.FileSystemAssertsMixin.assertIsFile`", "severity": "error" }, { "line": 951, "column": 27, "stop_line": 951, "stop_column": 44, "path": "src/documents/tests/test_file_handling.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Path | None` is not assignable to parameter `path` with type `PathLike[Unknown] | str` in function `documents.tests.utils.FileSystemAssertsMixin.assertIsFile`", "concise_description": "Argument `Path | None` is not assignable to parameter `path` with type `PathLike[Unknown] | str` in function `documents.tests.utils.FileSystemAssertsMixin.assertIsFile`", "severity": "error" }, { "line": 977, "column": 27, "stop_line": 977, "stop_column": 43, "path": "src/documents/tests/test_file_handling.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Path | None` is not assignable to parameter `path` with type `PathLike[Unknown] | str` in function `documents.tests.utils.FileSystemAssertsMixin.assertIsFile`", "concise_description": "Argument `Path | None` is not assignable to parameter `path` with type `PathLike[Unknown] | str` in function `documents.tests.utils.FileSystemAssertsMixin.assertIsFile`", "severity": "error" }, { "line": 1883, "column": 31, "stop_line": 1883, "stop_column": 48, "path": "src/documents/tests/test_file_handling.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Any | None` is not assignable to parameter `*args` with type `PathLike[str] | str` in function `pathlib.Path.__new__`", "concise_description": "Argument `Any | None` is not assignable to parameter `*args` with type `PathLike[str] | str` in function `pathlib.Path.__new__`", "severity": "error" }, { "line": 1906, "column": 31, "stop_line": 1906, "stop_column": 48, "path": "src/documents/tests/test_file_handling.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Any | None` is not assignable to parameter `*args` with type `PathLike[str] | str` in function `pathlib.Path.__new__`", "concise_description": "Argument `Any | None` is not assignable to parameter `*args` with type `PathLike[str] | str` in function `pathlib.Path.__new__`", "severity": "error" }, { "line": 1922, "column": 31, "stop_line": 1922, "stop_column": 48, "path": "src/documents/tests/test_file_handling.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Any | None` is not assignable to parameter `*args` with type `PathLike[str] | str` in function `pathlib.Path.__new__`", "concise_description": "Argument `Any | None` is not assignable to parameter `*args` with type `PathLike[str] | str` in function `pathlib.Path.__new__`", "severity": "error" }, { "line": 166, "column": 27, "stop_line": 166, "stop_column": 40, "path": "src/documents/tests/test_filters.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Literal[1698330605] | dict[Any, Any] | list[object] | None` is not assignable to parameter `value` with type `date | datetime | str` in function `documents.templating.filters.localize_date`", "concise_description": "Argument `Literal[1698330605] | dict[Any, Any] | list[object] | None` is not assignable to parameter `value` with type `date | datetime | str` in function `documents.templating.filters.localize_date`", "severity": "error" }, { "line": 45, "column": 39, "stop_line": 45, "stop_column": 62, "path": "src/documents/tests/test_management.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `originals_dir`", "concise_description": "Class `dirs` has no class attribute `originals_dir`", "severity": "error" }, { "line": 51, "column": 39, "stop_line": 51, "stop_column": 62, "path": "src/documents/tests/test_management.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `originals_dir`", "concise_description": "Class `dirs` has no class attribute `originals_dir`", "severity": "error" }, { "line": 59, "column": 27, "stop_line": 59, "stop_column": 43, "path": "src/documents/tests/test_management.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Path | None` is not assignable to parameter `path` with type `PathLike[Unknown] | str` in function `documents.tests.utils.FileSystemAssertsMixin.assertIsFile`", "concise_description": "Argument `Path | None` is not assignable to parameter `path` with type `PathLike[Unknown] | str` in function `documents.tests.utils.FileSystemAssertsMixin.assertIsFile`", "severity": "error" }, { "line": 95, "column": 39, "stop_line": 95, "stop_column": 62, "path": "src/documents/tests/test_management.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `originals_dir`", "concise_description": "Class `dirs` has no class attribute `originals_dir`", "severity": "error" }, { "line": 96, "column": 39, "stop_line": 96, "stop_column": 62, "path": "src/documents/tests/test_management.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `originals_dir`", "concise_description": "Class `dirs` has no class attribute `originals_dir`", "severity": "error" }, { "line": 190, "column": 14, "stop_line": 190, "stop_column": 30, "path": "src/documents/tests/test_management.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Path | None` is not assignable to parameter `*args` with type `PathLike[str] | str` in function `pathlib.Path.__new__`", "concise_description": "Argument `Path | None` is not assignable to parameter `*args` with type `PathLike[str] | str` in function `pathlib.Path.__new__`", "severity": "error" }, { "line": 200, "column": 30, "stop_line": 200, "stop_column": 46, "path": "src/documents/tests/test_management.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Path | None` is not assignable to parameter `path` with type `PathLike[Unknown] | str` in function `documents.tests.utils.FileSystemAssertsMixin.assertIsNotFile`", "concise_description": "Argument `Path | None` is not assignable to parameter `path` with type `PathLike[Unknown] | str` in function `documents.tests.utils.FileSystemAssertsMixin.assertIsNotFile`", "severity": "error" }, { "line": 202, "column": 27, "stop_line": 202, "stop_column": 44, "path": "src/documents/tests/test_management.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Path | None` is not assignable to parameter `path` with type `PathLike[Unknown] | str` in function `documents.tests.utils.FileSystemAssertsMixin.assertIsFile`", "concise_description": "Argument `Path | None` is not assignable to parameter `path` with type `PathLike[Unknown] | str` in function `documents.tests.utils.FileSystemAssertsMixin.assertIsFile`", "severity": "error" }, { "line": 63, "column": 24, "stop_line": 63, "stop_column": 52, "path": "src/documents/tests/test_management_exporter.py", "code": -2, "name": "missing-argument", "description": "Missing argument `ignore_errors` in function `unittest.case.TestCase.addCleanup`", "concise_description": "Missing argument `ignore_errors` in function `unittest.case.TestCase.addCleanup`", "severity": "error" }, { "line": 63, "column": 24, "stop_line": 63, "stop_column": 52, "path": "src/documents/tests/test_management_exporter.py", "code": -2, "name": "missing-argument", "description": "Missing argument `onerror` in function `unittest.case.TestCase.addCleanup`", "concise_description": "Missing argument `onerror` in function `unittest.case.TestCase.addCleanup`", "severity": "error" }, { "line": 188, "column": 22, "stop_line": 188, "stop_column": 27, "path": "src/documents/tests/test_management_exporter.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Path | str` is not assignable to parameter `command_name` with type `BaseCommand | str` in function `django.core.management.call_command`", "concise_description": "Argument `Path | str` is not assignable to parameter `command_name` with type `BaseCommand | str` in function `django.core.management.call_command`", "severity": "error" }, { "line": 196, "column": 28, "stop_line": 196, "stop_column": 47, "path": "src/documents/tests/test_management_exporter.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `media_dir`", "concise_description": "Class `dirs` has no class attribute `media_dir`", "severity": "error" }, { "line": 199, "column": 18, "stop_line": 199, "stop_column": 37, "path": "src/documents/tests/test_management_exporter.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `media_dir`", "concise_description": "Class `dirs` has no class attribute `media_dir`", "severity": "error" }, { "line": 303, "column": 28, "stop_line": 303, "stop_column": 47, "path": "src/documents/tests/test_management_exporter.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `media_dir`", "concise_description": "Class `dirs` has no class attribute `media_dir`", "severity": "error" }, { "line": 306, "column": 18, "stop_line": 306, "stop_column": 37, "path": "src/documents/tests/test_management_exporter.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `media_dir`", "concise_description": "Class `dirs` has no class attribute `media_dir`", "severity": "error" }, { "line": 315, "column": 28, "stop_line": 315, "stop_column": 47, "path": "src/documents/tests/test_management_exporter.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `media_dir`", "concise_description": "Class `dirs` has no class attribute `media_dir`", "severity": "error" }, { "line": 318, "column": 18, "stop_line": 318, "stop_column": 37, "path": "src/documents/tests/test_management_exporter.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `media_dir`", "concise_description": "Class `dirs` has no class attribute `media_dir`", "severity": "error" }, { "line": 417, "column": 28, "stop_line": 417, "stop_column": 47, "path": "src/documents/tests/test_management_exporter.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `media_dir`", "concise_description": "Class `dirs` has no class attribute `media_dir`", "severity": "error" }, { "line": 420, "column": 18, "stop_line": 420, "stop_column": 37, "path": "src/documents/tests/test_management_exporter.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `media_dir`", "concise_description": "Class `dirs` has no class attribute `media_dir`", "severity": "error" }, { "line": 456, "column": 28, "stop_line": 456, "stop_column": 47, "path": "src/documents/tests/test_management_exporter.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `media_dir`", "concise_description": "Class `dirs` has no class attribute `media_dir`", "severity": "error" }, { "line": 459, "column": 18, "stop_line": 459, "stop_column": 37, "path": "src/documents/tests/test_management_exporter.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `media_dir`", "concise_description": "Class `dirs` has no class attribute `media_dir`", "severity": "error" }, { "line": 486, "column": 28, "stop_line": 486, "stop_column": 47, "path": "src/documents/tests/test_management_exporter.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `media_dir`", "concise_description": "Class `dirs` has no class attribute `media_dir`", "severity": "error" }, { "line": 489, "column": 18, "stop_line": 489, "stop_column": 37, "path": "src/documents/tests/test_management_exporter.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `media_dir`", "concise_description": "Class `dirs` has no class attribute `media_dir`", "severity": "error" }, { "line": 521, "column": 28, "stop_line": 521, "stop_column": 47, "path": "src/documents/tests/test_management_exporter.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `media_dir`", "concise_description": "Class `dirs` has no class attribute `media_dir`", "severity": "error" }, { "line": 524, "column": 18, "stop_line": 524, "stop_column": 37, "path": "src/documents/tests/test_management_exporter.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `media_dir`", "concise_description": "Class `dirs` has no class attribute `media_dir`", "severity": "error" }, { "line": 546, "column": 24, "stop_line": 546, "stop_column": 47, "path": "src/documents/tests/test_management_exporter.py", "code": -2, "name": "missing-argument", "description": "Missing argument `ignore_errors` in function `unittest.case.TestCase.addCleanup`", "concise_description": "Missing argument `ignore_errors` in function `unittest.case.TestCase.addCleanup`", "severity": "error" }, { "line": 546, "column": 24, "stop_line": 546, "stop_column": 47, "path": "src/documents/tests/test_management_exporter.py", "code": -2, "name": "missing-argument", "description": "Missing argument `onerror` in function `unittest.case.TestCase.addCleanup`", "concise_description": "Missing argument `onerror` in function `unittest.case.TestCase.addCleanup`", "severity": "error" }, { "line": 566, "column": 28, "stop_line": 566, "stop_column": 47, "path": "src/documents/tests/test_management_exporter.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `media_dir`", "concise_description": "Class `dirs` has no class attribute `media_dir`", "severity": "error" }, { "line": 569, "column": 18, "stop_line": 569, "stop_column": 37, "path": "src/documents/tests/test_management_exporter.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `media_dir`", "concise_description": "Class `dirs` has no class attribute `media_dir`", "severity": "error" }, { "line": 574, "column": 22, "stop_line": 574, "stop_column": 27, "path": "src/documents/tests/test_management_exporter.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Path | str` is not assignable to parameter `command_name` with type `BaseCommand | str` in function `django.core.management.call_command`", "concise_description": "Argument `Path | str` is not assignable to parameter `command_name` with type `BaseCommand | str` in function `django.core.management.call_command`", "severity": "error" }, { "line": 598, "column": 28, "stop_line": 598, "stop_column": 47, "path": "src/documents/tests/test_management_exporter.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `media_dir`", "concise_description": "Class `dirs` has no class attribute `media_dir`", "severity": "error" }, { "line": 601, "column": 18, "stop_line": 601, "stop_column": 37, "path": "src/documents/tests/test_management_exporter.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `media_dir`", "concise_description": "Class `dirs` has no class attribute `media_dir`", "severity": "error" }, { "line": 609, "column": 26, "stop_line": 609, "stop_column": 31, "path": "src/documents/tests/test_management_exporter.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Path | str` is not assignable to parameter `command_name` with type `BaseCommand | str` in function `django.core.management.call_command`", "concise_description": "Argument `Path | str` is not assignable to parameter `command_name` with type `BaseCommand | str` in function `django.core.management.call_command`", "severity": "error" }, { "line": 637, "column": 28, "stop_line": 637, "stop_column": 47, "path": "src/documents/tests/test_management_exporter.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `media_dir`", "concise_description": "Class `dirs` has no class attribute `media_dir`", "severity": "error" }, { "line": 640, "column": 18, "stop_line": 640, "stop_column": 37, "path": "src/documents/tests/test_management_exporter.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `media_dir`", "concise_description": "Class `dirs` has no class attribute `media_dir`", "severity": "error" }, { "line": 654, "column": 22, "stop_line": 654, "stop_column": 27, "path": "src/documents/tests/test_management_exporter.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Path | str` is not assignable to parameter `command_name` with type `BaseCommand | str` in function `django.core.management.call_command`", "concise_description": "Argument `Path | str` is not assignable to parameter `command_name` with type `BaseCommand | str` in function `django.core.management.call_command`", "severity": "error" }, { "line": 735, "column": 28, "stop_line": 735, "stop_column": 47, "path": "src/documents/tests/test_management_exporter.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `media_dir`", "concise_description": "Class `dirs` has no class attribute `media_dir`", "severity": "error" }, { "line": 738, "column": 18, "stop_line": 738, "stop_column": 37, "path": "src/documents/tests/test_management_exporter.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `media_dir`", "concise_description": "Class `dirs` has no class attribute `media_dir`", "severity": "error" }, { "line": 781, "column": 28, "stop_line": 781, "stop_column": 47, "path": "src/documents/tests/test_management_exporter.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `media_dir`", "concise_description": "Class `dirs` has no class attribute `media_dir`", "severity": "error" }, { "line": 784, "column": 18, "stop_line": 784, "stop_column": 37, "path": "src/documents/tests/test_management_exporter.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `media_dir`", "concise_description": "Class `dirs` has no class attribute `media_dir`", "severity": "error" }, { "line": 829, "column": 28, "stop_line": 829, "stop_column": 47, "path": "src/documents/tests/test_management_exporter.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `media_dir`", "concise_description": "Class `dirs` has no class attribute `media_dir`", "severity": "error" }, { "line": 832, "column": 18, "stop_line": 832, "stop_column": 37, "path": "src/documents/tests/test_management_exporter.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `media_dir`", "concise_description": "Class `dirs` has no class attribute `media_dir`", "severity": "error" }, { "line": 865, "column": 28, "stop_line": 865, "stop_column": 47, "path": "src/documents/tests/test_management_exporter.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `media_dir`", "concise_description": "Class `dirs` has no class attribute `media_dir`", "severity": "error" }, { "line": 868, "column": 18, "stop_line": 868, "stop_column": 37, "path": "src/documents/tests/test_management_exporter.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `media_dir`", "concise_description": "Class `dirs` has no class attribute `media_dir`", "severity": "error" }, { "line": 895, "column": 28, "stop_line": 895, "stop_column": 47, "path": "src/documents/tests/test_management_exporter.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `media_dir`", "concise_description": "Class `dirs` has no class attribute `media_dir`", "severity": "error" }, { "line": 898, "column": 18, "stop_line": 898, "stop_column": 37, "path": "src/documents/tests/test_management_exporter.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `media_dir`", "concise_description": "Class `dirs` has no class attribute `media_dir`", "severity": "error" }, { "line": 925, "column": 28, "stop_line": 925, "stop_column": 47, "path": "src/documents/tests/test_management_exporter.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `media_dir`", "concise_description": "Class `dirs` has no class attribute `media_dir`", "severity": "error" }, { "line": 928, "column": 18, "stop_line": 928, "stop_column": 37, "path": "src/documents/tests/test_management_exporter.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `media_dir`", "concise_description": "Class `dirs` has no class attribute `media_dir`", "severity": "error" }, { "line": 965, "column": 28, "stop_line": 965, "stop_column": 47, "path": "src/documents/tests/test_management_exporter.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `media_dir`", "concise_description": "Class `dirs` has no class attribute `media_dir`", "severity": "error" }, { "line": 968, "column": 18, "stop_line": 968, "stop_column": 37, "path": "src/documents/tests/test_management_exporter.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `media_dir`", "concise_description": "Class `dirs` has no class attribute `media_dir`", "severity": "error" }, { "line": 988, "column": 28, "stop_line": 988, "stop_column": 47, "path": "src/documents/tests/test_management_exporter.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `media_dir`", "concise_description": "Class `dirs` has no class attribute `media_dir`", "severity": "error" }, { "line": 991, "column": 18, "stop_line": 991, "stop_column": 37, "path": "src/documents/tests/test_management_exporter.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `media_dir`", "concise_description": "Class `dirs` has no class attribute `media_dir`", "severity": "error" }, { "line": 1000, "column": 13, "stop_line": 1000, "stop_column": 54, "path": "src/documents/tests/test_management_exporter.py", "code": -2, "name": "missing-attribute", "description": "Object of class `QuerySet` has no attribute `hard_delete`", "concise_description": "Object of class `QuerySet` has no attribute `hard_delete`", "severity": "error" }, { "line": 1035, "column": 23, "stop_line": 1035, "stop_column": 42, "path": "src/documents/tests/test_management_exporter.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `media_dir`", "concise_description": "Class `dirs` has no class attribute `media_dir`", "severity": "error" }, { "line": 1038, "column": 13, "stop_line": 1038, "stop_column": 32, "path": "src/documents/tests/test_management_exporter.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `media_dir`", "concise_description": "Class `dirs` has no class attribute `media_dir`", "severity": "error" }, { "line": 1048, "column": 23, "stop_line": 1048, "stop_column": 42, "path": "src/documents/tests/test_management_exporter.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `media_dir`", "concise_description": "Class `dirs` has no class attribute `media_dir`", "severity": "error" }, { "line": 43, "column": 21, "stop_line": 43, "stop_column": 42, "path": "src/documents/tests/test_management_importer.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `scratch_dir`", "concise_description": "Class `dirs` has no class attribute `scratch_dir`", "severity": "error" }, { "line": 62, "column": 25, "stop_line": 62, "stop_column": 46, "path": "src/documents/tests/test_management_importer.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `scratch_dir`", "concise_description": "Class `dirs` has no class attribute `scratch_dir`", "severity": "error" }, { "line": 70, "column": 21, "stop_line": 70, "stop_column": 42, "path": "src/documents/tests/test_management_importer.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `scratch_dir`", "concise_description": "Class `dirs` has no class attribute `scratch_dir`", "severity": "error" }, { "line": 89, "column": 25, "stop_line": 89, "stop_column": 46, "path": "src/documents/tests/test_management_importer.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `scratch_dir`", "concise_description": "Class `dirs` has no class attribute `scratch_dir`", "severity": "error" }, { "line": 100, "column": 21, "stop_line": 100, "stop_column": 42, "path": "src/documents/tests/test_management_importer.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `scratch_dir`", "concise_description": "Class `dirs` has no class attribute `scratch_dir`", "severity": "error" }, { "line": 217, "column": 10, "stop_line": 217, "stop_column": 33, "path": "src/documents/tests/test_management_importer.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `originals_dir`", "concise_description": "Class `dirs` has no class attribute `originals_dir`", "severity": "error" }, { "line": 219, "column": 10, "stop_line": 219, "stop_column": 33, "path": "src/documents/tests/test_management_importer.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `originals_dir`", "concise_description": "Class `dirs` has no class attribute `originals_dir`", "severity": "error" }, { "line": 227, "column": 21, "stop_line": 227, "stop_column": 42, "path": "src/documents/tests/test_management_importer.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `scratch_dir`", "concise_description": "Class `dirs` has no class attribute `scratch_dir`", "severity": "error" }, { "line": 256, "column": 21, "stop_line": 256, "stop_column": 42, "path": "src/documents/tests/test_management_importer.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `scratch_dir`", "concise_description": "Class `dirs` has no class attribute `scratch_dir`", "severity": "error" }, { "line": 293, "column": 21, "stop_line": 293, "stop_column": 42, "path": "src/documents/tests/test_management_importer.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `scratch_dir`", "concise_description": "Class `dirs` has no class attribute `scratch_dir`", "severity": "error" }, { "line": 314, "column": 10, "stop_line": 314, "stop_column": 31, "path": "src/documents/tests/test_management_importer.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `scratch_dir`", "concise_description": "Class `dirs` has no class attribute `scratch_dir`", "severity": "error" }, { "line": 321, "column": 21, "stop_line": 321, "stop_column": 42, "path": "src/documents/tests/test_management_importer.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `scratch_dir`", "concise_description": "Class `dirs` has no class attribute `scratch_dir`", "severity": "error" }, { "line": 341, "column": 10, "stop_line": 341, "stop_column": 31, "path": "src/documents/tests/test_management_importer.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `scratch_dir`", "concise_description": "Class `dirs` has no class attribute `scratch_dir`", "severity": "error" }, { "line": 342, "column": 10, "stop_line": 342, "stop_column": 31, "path": "src/documents/tests/test_management_importer.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `scratch_dir`", "concise_description": "Class `dirs` has no class attribute `scratch_dir`", "severity": "error" }, { "line": 351, "column": 21, "stop_line": 351, "stop_column": 42, "path": "src/documents/tests/test_management_importer.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `scratch_dir`", "concise_description": "Class `dirs` has no class attribute `scratch_dir`", "severity": "error" }, { "line": 372, "column": 20, "stop_line": 372, "stop_column": 41, "path": "src/documents/tests/test_management_importer.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `scratch_dir`", "concise_description": "Class `dirs` has no class attribute `scratch_dir`", "severity": "error" }, { "line": 89, "column": 9, "stop_line": 89, "stop_column": 34, "path": "src/documents/tests/test_migration_sha256_checksums.py", "code": -2, "name": "missing-attribute", "description": "Object of class `TestMigrations` has no attribute `_fixture_teardown`", "concise_description": "Object of class `TestMigrations` has no attribute `_fixture_teardown`", "severity": "error" }, { "line": 25, "column": 30, "stop_line": 25, "stop_column": 74, "path": "src/documents/tests/test_models.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `correspondent`", "concise_description": "Object of class `NoneType` has no attribute `correspondent`", "severity": "error" }, { "line": 30, "column": 27, "stop_line": 30, "stop_column": 71, "path": "src/documents/tests/test_models.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `correspondent`", "concise_description": "Object of class `NoneType` has no attribute `correspondent`", "severity": "error" }, { "line": 38, "column": 17, "stop_line": 38, "stop_column": 73, "path": "src/documents/tests/test_parsers.py", "code": -2, "name": "not-callable", "description": "Expected a callable, got `None`", "concise_description": "Expected a callable, got `None`", "severity": "error" }, { "line": 62, "column": 17, "stop_line": 62, "stop_column": 73, "path": "src/documents/tests/test_parsers.py", "code": -2, "name": "not-callable", "description": "Expected a callable, got `None`", "concise_description": "Expected a callable, got `None`", "severity": "error" }, { "line": 96, "column": 21, "stop_line": 96, "stop_column": 77, "path": "src/documents/tests/test_parsers.py", "code": -2, "name": "not-callable", "description": "Expected a callable, got `None`", "concise_description": "Expected a callable, got `None`", "severity": "error" }, { "line": 133, "column": 14, "stop_line": 133, "stop_column": 37, "path": "src/documents/tests/test_sanity_check.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Path | None` is not assignable to parameter `*args` with type `PathLike[str] | str` in function `pathlib.Path.__new__`", "concise_description": "Argument `Path | None` is not assignable to parameter `*args` with type `PathLike[str] | str` in function `pathlib.Path.__new__`", "severity": "error" }, { "line": 152, "column": 24, "stop_line": 152, "stop_column": 47, "path": "src/documents/tests/test_sanity_check.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Path | None` is not assignable to parameter `*args` with type `PathLike[str] | str` in function `pathlib.Path.__new__`", "concise_description": "Argument `Path | None` is not assignable to parameter `*args` with type `PathLike[str] | str` in function `pathlib.Path.__new__`", "severity": "error" }, { "line": 165, "column": 14, "stop_line": 165, "stop_column": 37, "path": "src/documents/tests/test_sanity_check.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Path | None` is not assignable to parameter `*args` with type `PathLike[str] | str` in function `pathlib.Path.__new__`", "concise_description": "Argument `Path | None` is not assignable to parameter `*args` with type `PathLike[str] | str` in function `pathlib.Path.__new__`", "severity": "error" }, { "line": 258, "column": 16, "stop_line": 258, "stop_column": 55, "path": "src/documents/tests/test_sanity_check.py", "code": -2, "name": "not-iterable", "description": "`in` is not supported between `Literal['Check logs for details']` and `None`", "concise_description": "`in` is not supported between `Literal['Check logs for details']` and `None`", "severity": "error" }, { "line": 125, "column": 28, "stop_line": 125, "stop_column": 47, "path": "src/documents/tests/test_share_link_bundles.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `media_dir`", "concise_description": "Class `dirs` has no class attribute `media_dir`", "severity": "error" }, { "line": 139, "column": 28, "stop_line": 139, "stop_column": 54, "path": "src/documents/tests/test_share_link_bundles.py", "code": -2, "name": "missing-attribute", "description": "Object of class `_MonkeyPatchedResponse` has no attribute `streaming_content`", "concise_description": "Object of class `_MonkeyPatchedResponse` has no attribute `streaming_content`", "severity": "error" }, { "line": 200, "column": 29, "stop_line": 200, "stop_column": 48, "path": "src/documents/tests/test_share_link_bundles.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `media_dir`", "concise_description": "Class `dirs` has no class attribute `media_dir`", "severity": "error" }, { "line": 204, "column": 28, "stop_line": 204, "stop_column": 47, "path": "src/documents/tests/test_share_link_bundles.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `media_dir`", "concise_description": "Class `dirs` has no class attribute `media_dir`", "severity": "error" }, { "line": 434, "column": 30, "stop_line": 434, "stop_column": 49, "path": "src/documents/tests/test_share_link_bundles.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `media_dir`", "concise_description": "Class `dirs` has no class attribute `media_dir`", "severity": "error" }, { "line": 437, "column": 26, "stop_line": 437, "stop_column": 59, "path": "src/documents/tests/test_share_link_bundles.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `resolve`", "concise_description": "Object of class `NoneType` has no attribute `resolve`", "severity": "error" }, { "line": 96, "column": 23, "stop_line": 96, "stop_column": 35, "path": "src/documents/tests/test_tag_hierarchy.py", "code": -2, "name": "bad-argument-type", "description": "Argument `int` is not assignable to parameter `trigger_type` with type `WorkflowTrigger.WorkflowTriggerType` in function `documents.signals.handlers.run_workflows`", "concise_description": "Argument `int` is not assignable to parameter `trigger_type` with type `WorkflowTrigger.WorkflowTriggerType` in function `documents.signals.handlers.run_workflows`", "severity": "error" }, { "line": 109, "column": 23, "stop_line": 109, "stop_column": 35, "path": "src/documents/tests/test_tag_hierarchy.py", "code": -2, "name": "bad-argument-type", "description": "Argument `int` is not assignable to parameter `trigger_type` with type `WorkflowTrigger.WorkflowTriggerType` in function `documents.signals.handlers.run_workflows`", "concise_description": "Argument `int` is not assignable to parameter `trigger_type` with type `WorkflowTrigger.WorkflowTriggerType` in function `documents.signals.handlers.run_workflows`", "severity": "error" }, { "line": 27, "column": 20, "stop_line": 27, "stop_column": 56, "path": "src/documents/tests/test_task_signals.py", "code": -2, "name": "missing-attribute", "description": "Object of class `Manager` has no attribute `create_user`", "concise_description": "Object of class `Manager` has no attribute `create_user`", "severity": "error" }, { "line": 62, "column": 35, "stop_line": 62, "stop_column": 59, "path": "src/documents/tests/test_task_signals.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Literal['/consume/hello-999.pdf']` is not assignable to parameter `original_file` with type `Path` in function `documents.data_models.ConsumableDocument.__init__`", "concise_description": "Argument `Literal['/consume/hello-999.pdf']` is not assignable to parameter `original_file` with type `Path` in function `documents.data_models.ConsumableDocument.__init__`", "severity": "error" }, { "line": 106, "column": 35, "stop_line": 106, "stop_column": 58, "path": "src/documents/tests/test_task_signals.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Literal['/consume/hello-99.pdf']` is not assignable to parameter `original_file` with type `Path` in function `documents.data_models.ConsumableDocument.__init__`", "concise_description": "Argument `Literal['/consume/hello-99.pdf']` is not assignable to parameter `original_file` with type `Path` in function `documents.data_models.ConsumableDocument.__init__`", "severity": "error" }, { "line": 145, "column": 35, "stop_line": 145, "stop_column": 57, "path": "src/documents/tests/test_task_signals.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Literal['/consume/hello-9.pdf']` is not assignable to parameter `original_file` with type `Path` in function `documents.data_models.ConsumableDocument.__init__`", "concise_description": "Argument `Literal['/consume/hello-9.pdf']` is not assignable to parameter `original_file` with type `Path` in function `documents.data_models.ConsumableDocument.__init__`", "severity": "error" }, { "line": 187, "column": 35, "stop_line": 187, "stop_column": 57, "path": "src/documents/tests/test_task_signals.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Literal['/consume/hello-9.pdf']` is not assignable to parameter `original_file` with type `Path` in function `documents.data_models.ConsumableDocument.__init__`", "concise_description": "Argument `Literal['/consume/hello-9.pdf']` is not assignable to parameter `original_file` with type `Path` in function `documents.data_models.ConsumableDocument.__init__`", "severity": "error" }, { "line": 227, "column": 19, "stop_line": 227, "stop_column": 40, "path": "src/documents/tests/test_tasks.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `scratch_dir`", "concise_description": "Class `dirs` has no class attribute `scratch_dir`", "severity": "error" }, { "line": 236, "column": 27, "stop_line": 236, "stop_column": 48, "path": "src/documents/tests/test_tasks.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `archive_dir`", "concise_description": "Class `dirs` has no class attribute `archive_dir`", "severity": "error" }, { "line": 268, "column": 19, "stop_line": 268, "stop_column": 40, "path": "src/documents/tests/test_tasks.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `scratch_dir`", "concise_description": "Class `dirs` has no class attribute `scratch_dir`", "severity": "error" }, { "line": 346, "column": 55, "stop_line": 346, "stop_column": 66, "path": "src/documents/tests/test_tasks.py", "code": -2, "name": "bad-argument-type", "description": "Argument `str | None` is not assignable to parameter `container` with type `Container | Iterable[Any]` in function `unittest.case.TestCase.assertIn`", "concise_description": "Argument `str | None` is not assignable to parameter `container` with type `Container | Iterable[Any]` in function `unittest.case.TestCase.assertIn`", "severity": "error" }, { "line": 46, "column": 26, "stop_line": 46, "stop_column": 38, "path": "src/documents/tests/test_views.py", "code": -2, "name": "missing-attribute", "description": "Object of class `_MonkeyPatchedWSGIResponse` has no attribute `url`", "concise_description": "Object of class `_MonkeyPatchedWSGIResponse` has no attribute `url`", "severity": "error" }, { "line": 71, "column": 17, "stop_line": 71, "stop_column": 53, "path": "src/documents/tests/test_views.py", "code": -2, "name": "unsupported-operation", "description": "`None` is not subscriptable", "concise_description": "`None` is not subscriptable", "severity": "error" }, { "line": 75, "column": 17, "stop_line": 75, "stop_column": 52, "path": "src/documents/tests/test_views.py", "code": -2, "name": "unsupported-operation", "description": "`None` is not subscriptable", "concise_description": "`None` is not subscriptable", "severity": "error" }, { "line": 79, "column": 17, "stop_line": 79, "stop_column": 52, "path": "src/documents/tests/test_views.py", "code": -2, "name": "unsupported-operation", "description": "`None` is not subscriptable", "concise_description": "`None` is not subscriptable", "severity": "error" }, { "line": 83, "column": 17, "stop_line": 83, "stop_column": 54, "path": "src/documents/tests/test_views.py", "code": -2, "name": "unsupported-operation", "description": "`None` is not subscriptable", "concise_description": "`None` is not subscriptable", "severity": "error" }, { "line": 87, "column": 17, "stop_line": 87, "stop_column": 49, "path": "src/documents/tests/test_views.py", "code": -2, "name": "unsupported-operation", "description": "`None` is not subscriptable", "concise_description": "`None` is not subscriptable", "severity": "error" }, { "line": 102, "column": 9, "stop_line": 102, "stop_column": 24, "path": "src/documents/tests/test_views.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `app_logo`", "concise_description": "Object of class `NoneType` has no attribute `app_logo`", "severity": "error" }, { "line": 103, "column": 9, "stop_line": 103, "stop_column": 20, "path": "src/documents/tests/test_views.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `save`", "concise_description": "Object of class `NoneType` has no attribute `save`", "severity": "error" }, { "line": 108, "column": 26, "stop_line": 108, "stop_column": 41, "path": "src/documents/tests/test_views.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `app_logo`", "concise_description": "Object of class `NoneType` has no attribute `app_logo`", "severity": "error" }, { "line": 125, "column": 44, "stop_line": 125, "stop_column": 67, "path": "src/documents/tests/test_views.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `originals_dir`", "concise_description": "Class `dirs` has no class attribute `originals_dir`", "severity": "error" }, { "line": 164, "column": 9, "stop_line": 164, "stop_column": 24, "path": "src/documents/tests/test_views.py", "code": -2, "name": "missing-attribute", "description": "Object of class `_MonkeyPatchedWSGIResponse` has no attribute `render`", "concise_description": "Object of class `_MonkeyPatchedWSGIResponse` has no attribute `render`", "severity": "error" }, { "line": 173, "column": 9, "stop_line": 173, "stop_column": 24, "path": "src/documents/tests/test_views.py", "code": -2, "name": "missing-attribute", "description": "Object of class `_MonkeyPatchedWSGIResponse` has no attribute `render`", "concise_description": "Object of class `_MonkeyPatchedWSGIResponse` has no attribute `render`", "severity": "error" }, { "line": 374, "column": 13, "stop_line": 377, "stop_column": 26, "path": "src/documents/tests/test_views.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `suggestions`", "concise_description": "Object of class `NoneType` has no attribute `suggestions`", "severity": "error" }, { "line": 140, "column": 30, "stop_line": 140, "stop_column": 51, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `scratch_dir`", "concise_description": "Class `dirs` has no class attribute `scratch_dir`", "severity": "error" }, { "line": 176, "column": 13, "stop_line": 176, "stop_column": 34, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `scratch_dir`", "concise_description": "Class `dirs` has no class attribute `scratch_dir`", "severity": "error" }, { "line": 190, "column": 34, "stop_line": 190, "stop_column": 56, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `correspondent`", "concise_description": "Object of class `NoneType` has no attribute `correspondent`", "severity": "error" }, { "line": 191, "column": 34, "stop_line": 191, "stop_column": 56, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `document_type`", "concise_description": "Object of class `NoneType` has no attribute `document_type`", "severity": "error" }, { "line": 192, "column": 39, "stop_line": 192, "stop_column": 52, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `tags`", "concise_description": "Object of class `NoneType` has no attribute `tags`", "severity": "error" }, { "line": 193, "column": 34, "stop_line": 193, "stop_column": 55, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `storage_path`", "concise_description": "Object of class `NoneType` has no attribute `storage_path`", "severity": "error" }, { "line": 194, "column": 34, "stop_line": 194, "stop_column": 48, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `owner`", "concise_description": "Object of class `NoneType` has no attribute `owner`", "severity": "error" }, { "line": 198, "column": 29, "stop_line": 198, "stop_column": 37, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Document | None` is not assignable to parameter `obj` with type `Model` in function `guardian.shortcuts.get_users_with_perms`", "concise_description": "Argument `Document | None` is not assignable to parameter `obj` with type `Model` in function `guardian.shortcuts.get_users_with_perms`", "severity": "error" }, { "line": 206, "column": 25, "stop_line": 208, "stop_column": 26, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Group | dict[Unknown, Unknown]` is not assignable to parameter `iterable` with type `Iterable[@_]` in function `list.__init__`\n Protocol `Iterable` requires attribute `__iter__`", "concise_description": "Argument `Group | dict[Unknown, Unknown]` is not assignable to parameter `iterable` with type `Iterable[@_]` in function `list.__init__`", "severity": "error" }, { "line": 207, "column": 29, "stop_line": 207, "stop_column": 37, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Document | None` is not assignable to parameter `obj` with type `Model` in function `guardian.shortcuts.get_groups_with_perms`", "concise_description": "Argument `Document | None` is not assignable to parameter `obj` with type `Model` in function `guardian.shortcuts.get_groups_with_perms`", "severity": "error" }, { "line": 215, "column": 29, "stop_line": 215, "stop_column": 37, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Document | None` is not assignable to parameter `obj` with type `Model` in function `guardian.shortcuts.get_users_with_perms`", "concise_description": "Argument `Document | None` is not assignable to parameter `obj` with type `Model` in function `guardian.shortcuts.get_users_with_perms`", "severity": "error" }, { "line": 223, "column": 25, "stop_line": 225, "stop_column": 26, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Group | dict[Unknown, Unknown]` is not assignable to parameter `iterable` with type `Iterable[@_]` in function `list.__init__`\n Protocol `Iterable` requires attribute `__iter__`", "concise_description": "Argument `Group | dict[Unknown, Unknown]` is not assignable to parameter `iterable` with type `Iterable[@_]` in function `list.__init__`", "severity": "error" }, { "line": 224, "column": 29, "stop_line": 224, "stop_column": 37, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Document | None` is not assignable to parameter `obj` with type `Model` in function `guardian.shortcuts.get_groups_with_perms`", "concise_description": "Argument `Document | None` is not assignable to parameter `obj` with type `Model` in function `guardian.shortcuts.get_groups_with_perms`", "severity": "error" }, { "line": 230, "column": 21, "stop_line": 230, "stop_column": 35, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `title`", "concise_description": "Object of class `NoneType` has no attribute `title`", "severity": "error" }, { "line": 234, "column": 26, "stop_line": 234, "stop_column": 48, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "missing-attribute", "description": "Object of class `Document` has no attribute `custom_fields`\nObject of class `NoneType` has no attribute `custom_fields`", "concise_description": "Object of class `Document` has no attribute `custom_fields`\nObject of class `NoneType` has no attribute `custom_fields`", "severity": "error" }, { "line": 238, "column": 21, "stop_line": 238, "stop_column": 43, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "missing-attribute", "description": "Object of class `Document` has no attribute `custom_fields`\nObject of class `NoneType` has no attribute `custom_fields`", "concise_description": "Object of class `Document` has no attribute `custom_fields`\nObject of class `NoneType` has no attribute `custom_fields`", "severity": "error" }, { "line": 287, "column": 13, "stop_line": 287, "stop_column": 34, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `scratch_dir`", "concise_description": "Class `dirs` has no class attribute `scratch_dir`", "severity": "error" }, { "line": 301, "column": 34, "stop_line": 301, "stop_column": 56, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `correspondent`", "concise_description": "Object of class `NoneType` has no attribute `correspondent`", "severity": "error" }, { "line": 302, "column": 34, "stop_line": 302, "stop_column": 56, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `document_type`", "concise_description": "Object of class `NoneType` has no attribute `document_type`", "severity": "error" }, { "line": 303, "column": 39, "stop_line": 303, "stop_column": 52, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `tags`", "concise_description": "Object of class `NoneType` has no attribute `tags`", "severity": "error" }, { "line": 304, "column": 34, "stop_line": 304, "stop_column": 55, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `storage_path`", "concise_description": "Object of class `NoneType` has no attribute `storage_path`", "severity": "error" }, { "line": 305, "column": 34, "stop_line": 305, "stop_column": 48, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `owner`", "concise_description": "Object of class `NoneType` has no attribute `owner`", "severity": "error" }, { "line": 309, "column": 29, "stop_line": 309, "stop_column": 37, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Document | None` is not assignable to parameter `obj` with type `Model` in function `guardian.shortcuts.get_users_with_perms`", "concise_description": "Argument `Document | None` is not assignable to parameter `obj` with type `Model` in function `guardian.shortcuts.get_users_with_perms`", "severity": "error" }, { "line": 317, "column": 25, "stop_line": 319, "stop_column": 26, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Group | dict[Unknown, Unknown]` is not assignable to parameter `iterable` with type `Iterable[@_]` in function `list.__init__`\n Protocol `Iterable` requires attribute `__iter__`", "concise_description": "Argument `Group | dict[Unknown, Unknown]` is not assignable to parameter `iterable` with type `Iterable[@_]` in function `list.__init__`", "severity": "error" }, { "line": 318, "column": 29, "stop_line": 318, "stop_column": 37, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Document | None` is not assignable to parameter `obj` with type `Model` in function `guardian.shortcuts.get_groups_with_perms`", "concise_description": "Argument `Document | None` is not assignable to parameter `obj` with type `Model` in function `guardian.shortcuts.get_groups_with_perms`", "severity": "error" }, { "line": 326, "column": 29, "stop_line": 326, "stop_column": 37, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Document | None` is not assignable to parameter `obj` with type `Model` in function `guardian.shortcuts.get_users_with_perms`", "concise_description": "Argument `Document | None` is not assignable to parameter `obj` with type `Model` in function `guardian.shortcuts.get_users_with_perms`", "severity": "error" }, { "line": 334, "column": 25, "stop_line": 336, "stop_column": 26, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Group | dict[Unknown, Unknown]` is not assignable to parameter `iterable` with type `Iterable[@_]` in function `list.__init__`\n Protocol `Iterable` requires attribute `__iter__`", "concise_description": "Argument `Group | dict[Unknown, Unknown]` is not assignable to parameter `iterable` with type `Iterable[@_]` in function `list.__init__`", "severity": "error" }, { "line": 335, "column": 29, "stop_line": 335, "stop_column": 37, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Document | None` is not assignable to parameter `obj` with type `Model` in function `guardian.shortcuts.get_groups_with_perms`", "concise_description": "Argument `Document | None` is not assignable to parameter `obj` with type `Model` in function `guardian.shortcuts.get_groups_with_perms`", "severity": "error" }, { "line": 341, "column": 21, "stop_line": 341, "stop_column": 35, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `title`", "concise_description": "Object of class `NoneType` has no attribute `title`", "severity": "error" }, { "line": 361, "column": 30, "stop_line": 361, "stop_column": 51, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `scratch_dir`", "concise_description": "Class `dirs` has no class attribute `scratch_dir`", "severity": "error" }, { "line": 405, "column": 13, "stop_line": 405, "stop_column": 34, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `scratch_dir`", "concise_description": "Class `dirs` has no class attribute `scratch_dir`", "severity": "error" }, { "line": 419, "column": 34, "stop_line": 419, "stop_column": 56, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `document_type`", "concise_description": "Object of class `NoneType` has no attribute `document_type`", "severity": "error" }, { "line": 421, "column": 34, "stop_line": 421, "stop_column": 56, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `correspondent`", "concise_description": "Object of class `NoneType` has no attribute `correspondent`", "severity": "error" }, { "line": 422, "column": 34, "stop_line": 422, "stop_column": 55, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `storage_path`", "concise_description": "Object of class `NoneType` has no attribute `storage_path`", "severity": "error" }, { "line": 425, "column": 26, "stop_line": 425, "stop_column": 39, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `tags`", "concise_description": "Object of class `NoneType` has no attribute `tags`", "severity": "error" }, { "line": 431, "column": 29, "stop_line": 431, "stop_column": 37, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Document | None` is not assignable to parameter `obj` with type `Model` in function `guardian.shortcuts.get_users_with_perms`", "concise_description": "Argument `Document | None` is not assignable to parameter `obj` with type `Model` in function `guardian.shortcuts.get_users_with_perms`", "severity": "error" }, { "line": 456, "column": 29, "stop_line": 456, "stop_column": 50, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `scratch_dir`", "concise_description": "Class `dirs` has no class attribute `scratch_dir`", "severity": "error" }, { "line": 473, "column": 13, "stop_line": 473, "stop_column": 34, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `scratch_dir`", "concise_description": "Class `dirs` has no class attribute `scratch_dir`", "severity": "error" }, { "line": 486, "column": 34, "stop_line": 486, "stop_column": 48, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `title`", "concise_description": "Object of class `NoneType` has no attribute `title`", "severity": "error" }, { "line": 525, "column": 13, "stop_line": 525, "stop_column": 34, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `scratch_dir`", "concise_description": "Class `dirs` has no class attribute `scratch_dir`", "severity": "error" }, { "line": 538, "column": 35, "stop_line": 538, "stop_column": 57, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `correspondent`", "concise_description": "Object of class `NoneType` has no attribute `correspondent`", "severity": "error" }, { "line": 539, "column": 35, "stop_line": 539, "stop_column": 57, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `document_type`", "concise_description": "Object of class `NoneType` has no attribute `document_type`", "severity": "error" }, { "line": 540, "column": 34, "stop_line": 540, "stop_column": 47, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `tags`", "concise_description": "Object of class `NoneType` has no attribute `tags`", "severity": "error" }, { "line": 541, "column": 35, "stop_line": 541, "stop_column": 56, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `storage_path`", "concise_description": "Object of class `NoneType` has no attribute `storage_path`", "severity": "error" }, { "line": 542, "column": 35, "stop_line": 542, "stop_column": 49, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `owner`", "concise_description": "Object of class `NoneType` has no attribute `owner`", "severity": "error" }, { "line": 545, "column": 25, "stop_line": 545, "stop_column": 33, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Document | None` is not assignable to parameter `obj` with type `Model` in function `guardian.shortcuts.get_users_with_perms`", "concise_description": "Argument `Document | None` is not assignable to parameter `obj` with type `Model` in function `guardian.shortcuts.get_users_with_perms`", "severity": "error" }, { "line": 547, "column": 28, "stop_line": 547, "stop_column": 30, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "bad-argument-count", "description": "Missing positional argument `value` in function `list.count`", "concise_description": "Missing positional argument `value` in function `list.count`", "severity": "error" }, { "line": 550, "column": 34, "stop_line": 550, "stop_column": 71, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "missing-attribute", "description": "Object of class `Group` has no attribute `count`\nObject of class `dict` has no attribute `count`", "concise_description": "Object of class `Group` has no attribute `count`\nObject of class `dict` has no attribute `count`", "severity": "error" }, { "line": 550, "column": 56, "stop_line": 550, "stop_column": 64, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Document | None` is not assignable to parameter `obj` with type `Model` in function `guardian.shortcuts.get_groups_with_perms`", "concise_description": "Argument `Document | None` is not assignable to parameter `obj` with type `Model` in function `guardian.shortcuts.get_groups_with_perms`", "severity": "error" }, { "line": 553, "column": 25, "stop_line": 553, "stop_column": 33, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Document | None` is not assignable to parameter `obj` with type `Model` in function `guardian.shortcuts.get_users_with_perms`", "concise_description": "Argument `Document | None` is not assignable to parameter `obj` with type `Model` in function `guardian.shortcuts.get_users_with_perms`", "severity": "error" }, { "line": 555, "column": 28, "stop_line": 555, "stop_column": 30, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "bad-argument-count", "description": "Missing positional argument `value` in function `list.count`", "concise_description": "Missing positional argument `value` in function `list.count`", "severity": "error" }, { "line": 558, "column": 34, "stop_line": 558, "stop_column": 71, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "missing-attribute", "description": "Object of class `Group` has no attribute `count`\nObject of class `dict` has no attribute `count`", "concise_description": "Object of class `Group` has no attribute `count`\nObject of class `dict` has no attribute `count`", "severity": "error" }, { "line": 558, "column": 56, "stop_line": 558, "stop_column": 64, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Document | None` is not assignable to parameter `obj` with type `Model` in function `guardian.shortcuts.get_groups_with_perms`", "concise_description": "Argument `Document | None` is not assignable to parameter `obj` with type `Model` in function `guardian.shortcuts.get_groups_with_perms`", "severity": "error" }, { "line": 559, "column": 34, "stop_line": 559, "stop_column": 48, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `title`", "concise_description": "Object of class `NoneType` has no attribute `title`", "severity": "error" }, { "line": 563, "column": 45, "stop_line": 563, "stop_column": 59, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "missing-attribute", "description": "Object of class `str` has no attribute `name`", "concise_description": "Object of class `str` has no attribute `name`", "severity": "error" }, { "line": 599, "column": 13, "stop_line": 599, "stop_column": 34, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `scratch_dir`", "concise_description": "Class `dirs` has no class attribute `scratch_dir`", "severity": "error" }, { "line": 612, "column": 35, "stop_line": 612, "stop_column": 57, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `correspondent`", "concise_description": "Object of class `NoneType` has no attribute `correspondent`", "severity": "error" }, { "line": 613, "column": 35, "stop_line": 613, "stop_column": 57, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `document_type`", "concise_description": "Object of class `NoneType` has no attribute `document_type`", "severity": "error" }, { "line": 614, "column": 34, "stop_line": 614, "stop_column": 47, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `tags`", "concise_description": "Object of class `NoneType` has no attribute `tags`", "severity": "error" }, { "line": 615, "column": 35, "stop_line": 615, "stop_column": 56, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `storage_path`", "concise_description": "Object of class `NoneType` has no attribute `storage_path`", "severity": "error" }, { "line": 616, "column": 35, "stop_line": 616, "stop_column": 49, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `owner`", "concise_description": "Object of class `NoneType` has no attribute `owner`", "severity": "error" }, { "line": 619, "column": 25, "stop_line": 619, "stop_column": 33, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Document | None` is not assignable to parameter `obj` with type `Model` in function `guardian.shortcuts.get_users_with_perms`", "concise_description": "Argument `Document | None` is not assignable to parameter `obj` with type `Model` in function `guardian.shortcuts.get_users_with_perms`", "severity": "error" }, { "line": 621, "column": 28, "stop_line": 621, "stop_column": 30, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "bad-argument-count", "description": "Missing positional argument `value` in function `list.count`", "concise_description": "Missing positional argument `value` in function `list.count`", "severity": "error" }, { "line": 625, "column": 21, "stop_line": 627, "stop_column": 28, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "missing-attribute", "description": "Object of class `Group` has no attribute `count`\nObject of class `dict` has no attribute `count`", "concise_description": "Object of class `Group` has no attribute `count`\nObject of class `dict` has no attribute `count`", "severity": "error" }, { "line": 626, "column": 25, "stop_line": 626, "stop_column": 33, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Document | None` is not assignable to parameter `obj` with type `Model` in function `guardian.shortcuts.get_groups_with_perms`", "concise_description": "Argument `Document | None` is not assignable to parameter `obj` with type `Model` in function `guardian.shortcuts.get_groups_with_perms`", "severity": "error" }, { "line": 632, "column": 25, "stop_line": 632, "stop_column": 33, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Document | None` is not assignable to parameter `obj` with type `Model` in function `guardian.shortcuts.get_users_with_perms`", "concise_description": "Argument `Document | None` is not assignable to parameter `obj` with type `Model` in function `guardian.shortcuts.get_users_with_perms`", "severity": "error" }, { "line": 634, "column": 28, "stop_line": 634, "stop_column": 30, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "bad-argument-count", "description": "Missing positional argument `value` in function `list.count`", "concise_description": "Missing positional argument `value` in function `list.count`", "severity": "error" }, { "line": 638, "column": 21, "stop_line": 640, "stop_column": 28, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "missing-attribute", "description": "Object of class `Group` has no attribute `count`\nObject of class `dict` has no attribute `count`", "concise_description": "Object of class `Group` has no attribute `count`\nObject of class `dict` has no attribute `count`", "severity": "error" }, { "line": 639, "column": 25, "stop_line": 639, "stop_column": 33, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Document | None` is not assignable to parameter `obj` with type `Model` in function `guardian.shortcuts.get_groups_with_perms`", "concise_description": "Argument `Document | None` is not assignable to parameter `obj` with type `Model` in function `guardian.shortcuts.get_groups_with_perms`", "severity": "error" }, { "line": 643, "column": 34, "stop_line": 643, "stop_column": 48, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `title`", "concise_description": "Object of class `NoneType` has no attribute `title`", "severity": "error" }, { "line": 685, "column": 13, "stop_line": 685, "stop_column": 34, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `scratch_dir`", "concise_description": "Class `dirs` has no class attribute `scratch_dir`", "severity": "error" }, { "line": 699, "column": 35, "stop_line": 699, "stop_column": 57, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `correspondent`", "concise_description": "Object of class `NoneType` has no attribute `correspondent`", "severity": "error" }, { "line": 700, "column": 35, "stop_line": 700, "stop_column": 57, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `document_type`", "concise_description": "Object of class `NoneType` has no attribute `document_type`", "severity": "error" }, { "line": 701, "column": 34, "stop_line": 701, "stop_column": 47, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `tags`", "concise_description": "Object of class `NoneType` has no attribute `tags`", "severity": "error" }, { "line": 702, "column": 35, "stop_line": 702, "stop_column": 56, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `storage_path`", "concise_description": "Object of class `NoneType` has no attribute `storage_path`", "severity": "error" }, { "line": 703, "column": 35, "stop_line": 703, "stop_column": 49, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `owner`", "concise_description": "Object of class `NoneType` has no attribute `owner`", "severity": "error" }, { "line": 706, "column": 25, "stop_line": 706, "stop_column": 33, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Document | None` is not assignable to parameter `obj` with type `Model` in function `guardian.shortcuts.get_users_with_perms`", "concise_description": "Argument `Document | None` is not assignable to parameter `obj` with type `Model` in function `guardian.shortcuts.get_users_with_perms`", "severity": "error" }, { "line": 708, "column": 28, "stop_line": 708, "stop_column": 30, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "bad-argument-count", "description": "Missing positional argument `value` in function `list.count`", "concise_description": "Missing positional argument `value` in function `list.count`", "severity": "error" }, { "line": 712, "column": 21, "stop_line": 714, "stop_column": 28, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "missing-attribute", "description": "Object of class `Group` has no attribute `count`\nObject of class `dict` has no attribute `count`", "concise_description": "Object of class `Group` has no attribute `count`\nObject of class `dict` has no attribute `count`", "severity": "error" }, { "line": 713, "column": 25, "stop_line": 713, "stop_column": 33, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Document | None` is not assignable to parameter `obj` with type `Model` in function `guardian.shortcuts.get_groups_with_perms`", "concise_description": "Argument `Document | None` is not assignable to parameter `obj` with type `Model` in function `guardian.shortcuts.get_groups_with_perms`", "severity": "error" }, { "line": 719, "column": 25, "stop_line": 719, "stop_column": 33, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Document | None` is not assignable to parameter `obj` with type `Model` in function `guardian.shortcuts.get_users_with_perms`", "concise_description": "Argument `Document | None` is not assignable to parameter `obj` with type `Model` in function `guardian.shortcuts.get_users_with_perms`", "severity": "error" }, { "line": 721, "column": 28, "stop_line": 721, "stop_column": 30, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "bad-argument-count", "description": "Missing positional argument `value` in function `list.count`", "concise_description": "Missing positional argument `value` in function `list.count`", "severity": "error" }, { "line": 725, "column": 21, "stop_line": 727, "stop_column": 28, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "missing-attribute", "description": "Object of class `Group` has no attribute `count`\nObject of class `dict` has no attribute `count`", "concise_description": "Object of class `Group` has no attribute `count`\nObject of class `dict` has no attribute `count`", "severity": "error" }, { "line": 726, "column": 25, "stop_line": 726, "stop_column": 33, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Document | None` is not assignable to parameter `obj` with type `Model` in function `guardian.shortcuts.get_groups_with_perms`", "concise_description": "Argument `Document | None` is not assignable to parameter `obj` with type `Model` in function `guardian.shortcuts.get_groups_with_perms`", "severity": "error" }, { "line": 730, "column": 34, "stop_line": 730, "stop_column": 48, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `title`", "concise_description": "Object of class `NoneType` has no attribute `title`", "severity": "error" }, { "line": 770, "column": 13, "stop_line": 770, "stop_column": 34, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `scratch_dir`", "concise_description": "Class `dirs` has no class attribute `scratch_dir`", "severity": "error" }, { "line": 783, "column": 35, "stop_line": 783, "stop_column": 57, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `correspondent`", "concise_description": "Object of class `NoneType` has no attribute `correspondent`", "severity": "error" }, { "line": 784, "column": 35, "stop_line": 784, "stop_column": 57, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `document_type`", "concise_description": "Object of class `NoneType` has no attribute `document_type`", "severity": "error" }, { "line": 785, "column": 34, "stop_line": 785, "stop_column": 47, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `tags`", "concise_description": "Object of class `NoneType` has no attribute `tags`", "severity": "error" }, { "line": 786, "column": 35, "stop_line": 786, "stop_column": 56, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `storage_path`", "concise_description": "Object of class `NoneType` has no attribute `storage_path`", "severity": "error" }, { "line": 787, "column": 35, "stop_line": 787, "stop_column": 49, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `owner`", "concise_description": "Object of class `NoneType` has no attribute `owner`", "severity": "error" }, { "line": 790, "column": 25, "stop_line": 790, "stop_column": 33, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Document | None` is not assignable to parameter `obj` with type `Model` in function `guardian.shortcuts.get_users_with_perms`", "concise_description": "Argument `Document | None` is not assignable to parameter `obj` with type `Model` in function `guardian.shortcuts.get_users_with_perms`", "severity": "error" }, { "line": 792, "column": 28, "stop_line": 792, "stop_column": 30, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "bad-argument-count", "description": "Missing positional argument `value` in function `list.count`", "concise_description": "Missing positional argument `value` in function `list.count`", "severity": "error" }, { "line": 796, "column": 21, "stop_line": 798, "stop_column": 28, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "missing-attribute", "description": "Object of class `Group` has no attribute `count`\nObject of class `dict` has no attribute `count`", "concise_description": "Object of class `Group` has no attribute `count`\nObject of class `dict` has no attribute `count`", "severity": "error" }, { "line": 797, "column": 25, "stop_line": 797, "stop_column": 33, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Document | None` is not assignable to parameter `obj` with type `Model` in function `guardian.shortcuts.get_groups_with_perms`", "concise_description": "Argument `Document | None` is not assignable to parameter `obj` with type `Model` in function `guardian.shortcuts.get_groups_with_perms`", "severity": "error" }, { "line": 803, "column": 25, "stop_line": 803, "stop_column": 33, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Document | None` is not assignable to parameter `obj` with type `Model` in function `guardian.shortcuts.get_users_with_perms`", "concise_description": "Argument `Document | None` is not assignable to parameter `obj` with type `Model` in function `guardian.shortcuts.get_users_with_perms`", "severity": "error" }, { "line": 805, "column": 28, "stop_line": 805, "stop_column": 30, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "bad-argument-count", "description": "Missing positional argument `value` in function `list.count`", "concise_description": "Missing positional argument `value` in function `list.count`", "severity": "error" }, { "line": 809, "column": 21, "stop_line": 811, "stop_column": 28, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "missing-attribute", "description": "Object of class `Group` has no attribute `count`\nObject of class `dict` has no attribute `count`", "concise_description": "Object of class `Group` has no attribute `count`\nObject of class `dict` has no attribute `count`", "severity": "error" }, { "line": 810, "column": 25, "stop_line": 810, "stop_column": 33, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Document | None` is not assignable to parameter `obj` with type `Model` in function `guardian.shortcuts.get_groups_with_perms`", "concise_description": "Argument `Document | None` is not assignable to parameter `obj` with type `Model` in function `guardian.shortcuts.get_groups_with_perms`", "severity": "error" }, { "line": 814, "column": 34, "stop_line": 814, "stop_column": 48, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `title`", "concise_description": "Object of class `NoneType` has no attribute `title`", "severity": "error" }, { "line": 888, "column": 13, "stop_line": 888, "stop_column": 34, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `scratch_dir`", "concise_description": "Class `dirs` has no class attribute `scratch_dir`", "severity": "error" }, { "line": 902, "column": 26, "stop_line": 902, "stop_column": 48, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "missing-attribute", "description": "Object of class `Document` has no attribute `custom_fields`\nObject of class `NoneType` has no attribute `custom_fields`", "concise_description": "Object of class `Document` has no attribute `custom_fields`\nObject of class `NoneType` has no attribute `custom_fields`", "severity": "error" }, { "line": 963, "column": 31, "stop_line": 963, "stop_column": 43, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Any | None` is not assignable to parameter `*args` with type `PathLike[str] | str` in function `pathlib.Path.__new__`", "concise_description": "Argument `Any | None` is not assignable to parameter `*args` with type `PathLike[str] | str` in function `pathlib.Path.__new__`", "severity": "error" }, { "line": 1435, "column": 40, "stop_line": 1435, "stop_column": 46, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "bad-argument-type", "description": "Argument `str | None` is not assignable to parameter `container` with type `Container | Iterable[Any]` in function `unittest.case.TestCase.assertIn`", "concise_description": "Argument `str | None` is not assignable to parameter `container` with type `Container | Iterable[Any]` in function `unittest.case.TestCase.assertIn`", "severity": "error" }, { "line": 1451, "column": 35, "stop_line": 1451, "stop_column": 41, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "bad-argument-type", "description": "Argument `str | None` is not assignable to parameter `container` with type `Container | Iterable[Any]` in function `unittest.case.TestCase.assertIn`", "concise_description": "Argument `str | None` is not assignable to parameter `container` with type `Container | Iterable[Any]` in function `unittest.case.TestCase.assertIn`", "severity": "error" }, { "line": 1470, "column": 39, "stop_line": 1470, "stop_column": 45, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "bad-argument-type", "description": "Argument `str | None` is not assignable to parameter `container` with type `Container | Iterable[Any]` in function `unittest.case.TestCase.assertIn`", "concise_description": "Argument `str | None` is not assignable to parameter `container` with type `Container | Iterable[Any]` in function `unittest.case.TestCase.assertIn`", "severity": "error" }, { "line": 1935, "column": 26, "stop_line": 1935, "stop_column": 43, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "missing-attribute", "description": "Object of class `Document` has no attribute `custom_fields`", "concise_description": "Object of class `Document` has no attribute `custom_fields`", "severity": "error" }, { "line": 1960, "column": 13, "stop_line": 1960, "stop_column": 34, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `scratch_dir`", "concise_description": "Class `dirs` has no class attribute `scratch_dir`", "severity": "error" }, { "line": 1972, "column": 17, "stop_line": 1972, "stop_column": 31, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `title`", "concise_description": "Object of class `NoneType` has no attribute `title`", "severity": "error" }, { "line": 2018, "column": 26, "stop_line": 2018, "stop_column": 43, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "missing-attribute", "description": "Object of class `Document` has no attribute `custom_fields`", "concise_description": "Object of class `Document` has no attribute `custom_fields`", "severity": "error" }, { "line": 2067, "column": 38, "stop_line": 2070, "stop_column": 10, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "bad-assignment", "description": "`list[str] | Any` is not assignable to `QuerySet[Unknown]`", "concise_description": "`list[str] | Any` is not assignable to `QuerySet[Unknown]`", "severity": "error" }, { "line": 2071, "column": 40, "stop_line": 2074, "stop_column": 10, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "bad-assignment", "description": "`list[str] | Any` is not assignable to `QuerySet[Unknown]`", "concise_description": "`list[str] | Any` is not assignable to `QuerySet[Unknown]`", "severity": "error" }, { "line": 2082, "column": 33, "stop_line": 2082, "stop_column": 59, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "bad-assignment", "description": "`Group | dict[Unknown, Unknown]` is not assignable to `QuerySet[Unknown]`", "concise_description": "`Group | dict[Unknown, Unknown]` is not assignable to `QuerySet[Unknown]`", "severity": "error" }, { "line": 2845, "column": 26, "stop_line": 2845, "stop_column": 43, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "missing-attribute", "description": "Object of class `Document` has no attribute `custom_fields`", "concise_description": "Object of class `Document` has no attribute `custom_fields`", "severity": "error" }, { "line": 2848, "column": 33, "stop_line": 2848, "stop_column": 59, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "bad-assignment", "description": "`Group | dict[Unknown, Unknown]` is not assignable to `QuerySet[Unknown]`", "concise_description": "`Group | dict[Unknown, Unknown]` is not assignable to `QuerySet[Unknown]`", "severity": "error" }, { "line": 2916, "column": 26, "stop_line": 2916, "stop_column": 43, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "missing-attribute", "description": "Object of class `Document` has no attribute `custom_fields`", "concise_description": "Object of class `Document` has no attribute `custom_fields`", "severity": "error" }, { "line": 2919, "column": 33, "stop_line": 2919, "stop_column": 59, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "bad-assignment", "description": "`Group | dict[Unknown, Unknown]` is not assignable to `QuerySet[Unknown]`", "concise_description": "`Group | dict[Unknown, Unknown]` is not assignable to `QuerySet[Unknown]`", "severity": "error" }, { "line": 2983, "column": 13, "stop_line": 2983, "stop_column": 34, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `scratch_dir`", "concise_description": "Class `dirs` has no class attribute `scratch_dir`", "severity": "error" }, { "line": 2998, "column": 35, "stop_line": 2998, "stop_column": 57, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `correspondent`", "concise_description": "Object of class `NoneType` has no attribute `correspondent`", "severity": "error" }, { "line": 2999, "column": 35, "stop_line": 2999, "stop_column": 57, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `document_type`", "concise_description": "Object of class `NoneType` has no attribute `document_type`", "severity": "error" }, { "line": 3001, "column": 26, "stop_line": 3001, "stop_column": 39, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `tags`", "concise_description": "Object of class `NoneType` has no attribute `tags`", "severity": "error" }, { "line": 3004, "column": 35, "stop_line": 3004, "stop_column": 56, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `storage_path`", "concise_description": "Object of class `NoneType` has no attribute `storage_path`", "severity": "error" }, { "line": 3005, "column": 35, "stop_line": 3005, "stop_column": 49, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `owner`", "concise_description": "Object of class `NoneType` has no attribute `owner`", "severity": "error" }, { "line": 3009, "column": 29, "stop_line": 3009, "stop_column": 37, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Document | None` is not assignable to parameter `obj` with type `Model` in function `guardian.shortcuts.get_users_with_perms`", "concise_description": "Argument `Document | None` is not assignable to parameter `obj` with type `Model` in function `guardian.shortcuts.get_users_with_perms`", "severity": "error" }, { "line": 3017, "column": 25, "stop_line": 3019, "stop_column": 26, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Group | dict[Unknown, Unknown]` is not assignable to parameter `iterable` with type `Iterable[@_]` in function `list.__init__`\n Protocol `Iterable` requires attribute `__iter__`", "concise_description": "Argument `Group | dict[Unknown, Unknown]` is not assignable to parameter `iterable` with type `Iterable[@_]` in function `list.__init__`", "severity": "error" }, { "line": 3018, "column": 29, "stop_line": 3018, "stop_column": 37, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Document | None` is not assignable to parameter `obj` with type `Model` in function `guardian.shortcuts.get_groups_with_perms`", "concise_description": "Argument `Document | None` is not assignable to parameter `obj` with type `Model` in function `guardian.shortcuts.get_groups_with_perms`", "severity": "error" }, { "line": 3026, "column": 29, "stop_line": 3026, "stop_column": 37, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Document | None` is not assignable to parameter `obj` with type `Model` in function `guardian.shortcuts.get_users_with_perms`", "concise_description": "Argument `Document | None` is not assignable to parameter `obj` with type `Model` in function `guardian.shortcuts.get_users_with_perms`", "severity": "error" }, { "line": 3034, "column": 25, "stop_line": 3036, "stop_column": 26, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Group | dict[Unknown, Unknown]` is not assignable to parameter `iterable` with type `Iterable[@_]` in function `list.__init__`\n Protocol `Iterable` requires attribute `__iter__`", "concise_description": "Argument `Group | dict[Unknown, Unknown]` is not assignable to parameter `iterable` with type `Iterable[@_]` in function `list.__init__`", "severity": "error" }, { "line": 3035, "column": 29, "stop_line": 3035, "stop_column": 37, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Document | None` is not assignable to parameter `obj` with type `Model` in function `guardian.shortcuts.get_groups_with_perms`", "concise_description": "Argument `Document | None` is not assignable to parameter `obj` with type `Model` in function `guardian.shortcuts.get_groups_with_perms`", "severity": "error" }, { "line": 3041, "column": 21, "stop_line": 3041, "stop_column": 35, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `title`", "concise_description": "Object of class `NoneType` has no attribute `title`", "severity": "error" }, { "line": 3045, "column": 26, "stop_line": 3045, "stop_column": 48, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "missing-attribute", "description": "Object of class `Document` has no attribute `custom_fields`\nObject of class `NoneType` has no attribute `custom_fields`", "concise_description": "Object of class `Document` has no attribute `custom_fields`\nObject of class `NoneType` has no attribute `custom_fields`", "severity": "error" }, { "line": 3106, "column": 13, "stop_line": 3106, "stop_column": 34, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `scratch_dir`", "concise_description": "Class `dirs` has no class attribute `scratch_dir`", "severity": "error" }, { "line": 3119, "column": 35, "stop_line": 3119, "stop_column": 57, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `correspondent`", "concise_description": "Object of class `NoneType` has no attribute `correspondent`", "severity": "error" }, { "line": 3120, "column": 35, "stop_line": 3120, "stop_column": 57, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `document_type`", "concise_description": "Object of class `NoneType` has no attribute `document_type`", "severity": "error" }, { "line": 3121, "column": 34, "stop_line": 3121, "stop_column": 47, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `tags`", "concise_description": "Object of class `NoneType` has no attribute `tags`", "severity": "error" }, { "line": 3123, "column": 35, "stop_line": 3123, "stop_column": 56, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `storage_path`", "concise_description": "Object of class `NoneType` has no attribute `storage_path`", "severity": "error" }, { "line": 3124, "column": 35, "stop_line": 3124, "stop_column": 49, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `owner`", "concise_description": "Object of class `NoneType` has no attribute `owner`", "severity": "error" }, { "line": 3127, "column": 25, "stop_line": 3127, "stop_column": 33, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Document | None` is not assignable to parameter `obj` with type `Model` in function `guardian.shortcuts.get_users_with_perms`", "concise_description": "Argument `Document | None` is not assignable to parameter `obj` with type `Model` in function `guardian.shortcuts.get_users_with_perms`", "severity": "error" }, { "line": 3129, "column": 28, "stop_line": 3129, "stop_column": 30, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "bad-argument-count", "description": "Missing positional argument `value` in function `list.count`", "concise_description": "Missing positional argument `value` in function `list.count`", "severity": "error" }, { "line": 3133, "column": 21, "stop_line": 3135, "stop_column": 28, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "missing-attribute", "description": "Object of class `Group` has no attribute `count`\nObject of class `dict` has no attribute `count`", "concise_description": "Object of class `Group` has no attribute `count`\nObject of class `dict` has no attribute `count`", "severity": "error" }, { "line": 3134, "column": 25, "stop_line": 3134, "stop_column": 33, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Document | None` is not assignable to parameter `obj` with type `Model` in function `guardian.shortcuts.get_groups_with_perms`", "concise_description": "Argument `Document | None` is not assignable to parameter `obj` with type `Model` in function `guardian.shortcuts.get_groups_with_perms`", "severity": "error" }, { "line": 3140, "column": 25, "stop_line": 3140, "stop_column": 33, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Document | None` is not assignable to parameter `obj` with type `Model` in function `guardian.shortcuts.get_users_with_perms`", "concise_description": "Argument `Document | None` is not assignable to parameter `obj` with type `Model` in function `guardian.shortcuts.get_users_with_perms`", "severity": "error" }, { "line": 3142, "column": 28, "stop_line": 3142, "stop_column": 30, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "bad-argument-count", "description": "Missing positional argument `value` in function `list.count`", "concise_description": "Missing positional argument `value` in function `list.count`", "severity": "error" }, { "line": 3146, "column": 21, "stop_line": 3148, "stop_column": 28, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "missing-attribute", "description": "Object of class `Group` has no attribute `count`\nObject of class `dict` has no attribute `count`", "concise_description": "Object of class `Group` has no attribute `count`\nObject of class `dict` has no attribute `count`", "severity": "error" }, { "line": 3147, "column": 25, "stop_line": 3147, "stop_column": 33, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Document | None` is not assignable to parameter `obj` with type `Model` in function `guardian.shortcuts.get_groups_with_perms`", "concise_description": "Argument `Document | None` is not assignable to parameter `obj` with type `Model` in function `guardian.shortcuts.get_groups_with_perms`", "severity": "error" }, { "line": 3152, "column": 21, "stop_line": 3152, "stop_column": 43, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "missing-attribute", "description": "Object of class `Document` has no attribute `custom_fields`\nObject of class `NoneType` has no attribute `custom_fields`", "concise_description": "Object of class `Document` has no attribute `custom_fields`\nObject of class `NoneType` has no attribute `custom_fields`", "severity": "error" }, { "line": 3261, "column": 13, "stop_line": 3261, "stop_column": 34, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `scratch_dir`", "concise_description": "Class `dirs` has no class attribute `scratch_dir`", "severity": "error" }, { "line": 3273, "column": 27, "stop_line": 3273, "stop_column": 44, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "bad-argument-type", "description": "Argument `str | Unknown` is not assignable to parameter `original_file` with type `Path` in function `documents.data_models.ConsumableDocument.__init__`", "concise_description": "Argument `str | Unknown` is not assignable to parameter `original_file` with type `Path` in function `documents.data_models.ConsumableDocument.__init__`", "severity": "error" }, { "line": 3361, "column": 13, "stop_line": 3361, "stop_column": 34, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `scratch_dir`", "concise_description": "Class `dirs` has no class attribute `scratch_dir`", "severity": "error" }, { "line": 3399, "column": 13, "stop_line": 3399, "stop_column": 34, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `scratch_dir`", "concise_description": "Class `dirs` has no class attribute `scratch_dir`", "severity": "error" }, { "line": 3619, "column": 13, "stop_line": 3619, "stop_column": 34, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `scratch_dir`", "concise_description": "Class `dirs` has no class attribute `scratch_dir`", "severity": "error" }, { "line": 3739, "column": 13, "stop_line": 3739, "stop_column": 34, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `scratch_dir`", "concise_description": "Class `dirs` has no class attribute `scratch_dir`", "severity": "error" }, { "line": 3868, "column": 23, "stop_line": 3868, "stop_column": 27, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "bad-argument-type", "description": "Argument `None` is not assignable to parameter `files` with type `dict[Unknown, Unknown]` in function `celery.app.task.Task.__call__`", "concise_description": "Argument `None` is not assignable to parameter `files` with type `dict[Unknown, Unknown]` in function `celery.app.task.Task.__call__`", "severity": "error" }, { "line": 3886, "column": 23, "stop_line": 3886, "stop_column": 27, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "bad-argument-type", "description": "Argument `None` is not assignable to parameter `files` with type `dict[Unknown, Unknown]` in function `celery.app.task.Task.__call__`", "concise_description": "Argument `None` is not assignable to parameter `files` with type `dict[Unknown, Unknown]` in function `celery.app.task.Task.__call__`", "severity": "error" }, { "line": 3911, "column": 27, "stop_line": 3911, "stop_column": 31, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "bad-argument-type", "description": "Argument `None` is not assignable to parameter `files` with type `dict[Unknown, Unknown]` in function `celery.app.task.Task.__call__`", "concise_description": "Argument `None` is not assignable to parameter `files` with type `dict[Unknown, Unknown]` in function `celery.app.task.Task.__call__`", "severity": "error" }, { "line": 3959, "column": 13, "stop_line": 3959, "stop_column": 34, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `scratch_dir`", "concise_description": "Class `dirs` has no class attribute `scratch_dir`", "severity": "error" }, { "line": 4008, "column": 23, "stop_line": 4008, "stop_column": 35, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "bad-argument-type", "description": "Argument `int` is not assignable to parameter `trigger_type` with type `WorkflowTrigger.WorkflowTriggerType` in function `documents.signals.handlers.run_workflows`", "concise_description": "Argument `int` is not assignable to parameter `trigger_type` with type `WorkflowTrigger.WorkflowTriggerType` in function `documents.signals.handlers.run_workflows`", "severity": "error" }, { "line": 4057, "column": 23, "stop_line": 4057, "stop_column": 35, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "bad-argument-type", "description": "Argument `int` is not assignable to parameter `trigger_type` with type `WorkflowTrigger.WorkflowTriggerType` in function `documents.signals.handlers.run_workflows`", "concise_description": "Argument `int` is not assignable to parameter `trigger_type` with type `WorkflowTrigger.WorkflowTriggerType` in function `documents.signals.handlers.run_workflows`", "severity": "error" }, { "line": 4089, "column": 23, "stop_line": 4089, "stop_column": 35, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "bad-argument-type", "description": "Argument `int` is not assignable to parameter `trigger_type` with type `WorkflowTrigger.WorkflowTriggerType` in function `documents.signals.handlers.run_workflows`", "concise_description": "Argument `int` is not assignable to parameter `trigger_type` with type `WorkflowTrigger.WorkflowTriggerType` in function `documents.signals.handlers.run_workflows`", "severity": "error" }, { "line": 4302, "column": 13, "stop_line": 4302, "stop_column": 34, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `scratch_dir`", "concise_description": "Class `dirs` has no class attribute `scratch_dir`", "severity": "error" }, { "line": 4494, "column": 13, "stop_line": 4494, "stop_column": 34, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `scratch_dir`", "concise_description": "Class `dirs` has no class attribute `scratch_dir`", "severity": "error" }, { "line": 4558, "column": 13, "stop_line": 4558, "stop_column": 34, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `scratch_dir`", "concise_description": "Class `dirs` has no class attribute `scratch_dir`", "severity": "error" }, { "line": 4607, "column": 19, "stop_line": 4607, "stop_column": 23, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "bad-argument-type", "description": "Argument `None` is not assignable to parameter `files` with type `dict[Unknown, Unknown]` in function `celery.app.task.Task.__call__`", "concise_description": "Argument `None` is not assignable to parameter `files` with type `dict[Unknown, Unknown]` in function `celery.app.task.Task.__call__`", "severity": "error" }, { "line": 4610, "column": 16, "stop_line": 4610, "stop_column": 48, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `headers`", "concise_description": "Object of class `NoneType` has no attribute `headers`", "severity": "error" }, { "line": 4620, "column": 19, "stop_line": 4620, "stop_column": 23, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "bad-argument-type", "description": "Argument `None` is not assignable to parameter `files` with type `dict[Unknown, Unknown]` in function `celery.app.task.Task.__call__`", "concise_description": "Argument `None` is not assignable to parameter `files` with type `dict[Unknown, Unknown]` in function `celery.app.task.Task.__call__`", "severity": "error" }, { "line": 4623, "column": 16, "stop_line": 4623, "stop_column": 48, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `headers`", "concise_description": "Object of class `NoneType` has no attribute `headers`", "severity": "error" }, { "line": 4660, "column": 23, "stop_line": 4660, "stop_column": 27, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "bad-argument-type", "description": "Argument `None` is not assignable to parameter `files` with type `dict[Unknown, Unknown]` in function `celery.app.task.Task.__call__`", "concise_description": "Argument `None` is not assignable to parameter `files` with type `dict[Unknown, Unknown]` in function `celery.app.task.Task.__call__`", "severity": "error" }, { "line": 4669, "column": 23, "stop_line": 4669, "stop_column": 27, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "bad-argument-type", "description": "Argument `None` is not assignable to parameter `files` with type `dict[Unknown, Unknown]` in function `celery.app.task.Task.__call__`", "concise_description": "Argument `None` is not assignable to parameter `files` with type `dict[Unknown, Unknown]` in function `celery.app.task.Task.__call__`", "severity": "error" }, { "line": 4688, "column": 23, "stop_line": 4688, "stop_column": 27, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "bad-argument-type", "description": "Argument `None` is not assignable to parameter `files` with type `dict[Unknown, Unknown]` in function `celery.app.task.Task.__call__`", "concise_description": "Argument `None` is not assignable to parameter `files` with type `dict[Unknown, Unknown]` in function `celery.app.task.Task.__call__`", "severity": "error" }, { "line": 4715, "column": 23, "stop_line": 4715, "stop_column": 27, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "bad-argument-type", "description": "Argument `None` is not assignable to parameter `files` with type `dict[Unknown, Unknown]` in function `celery.app.task.Task.__call__`", "concise_description": "Argument `None` is not assignable to parameter `files` with type `dict[Unknown, Unknown]` in function `celery.app.task.Task.__call__`", "severity": "error" }, { "line": 4739, "column": 19, "stop_line": 4739, "stop_column": 23, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "bad-argument-type", "description": "Argument `None` is not assignable to parameter `files` with type `dict[Unknown, Unknown]` in function `celery.app.task.Task.__call__`", "concise_description": "Argument `None` is not assignable to parameter `files` with type `dict[Unknown, Unknown]` in function `celery.app.task.Task.__call__`", "severity": "error" }, { "line": 4744, "column": 16, "stop_line": 4744, "stop_column": 23, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `url`", "concise_description": "Object of class `NoneType` has no attribute `url`", "severity": "error" }, { "line": 4745, "column": 16, "stop_line": 4745, "stop_column": 27, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `headers`", "concise_description": "Object of class `NoneType` has no attribute `headers`", "severity": "error" }, { "line": 4769, "column": 23, "stop_line": 4769, "stop_column": 27, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "bad-argument-type", "description": "Argument `None` is not assignable to parameter `files` with type `dict[Unknown, Unknown]` in function `celery.app.task.Task.__call__`", "concise_description": "Argument `None` is not assignable to parameter `files` with type `dict[Unknown, Unknown]` in function `celery.app.task.Task.__call__`", "severity": "error" }, { "line": 4795, "column": 19, "stop_line": 4795, "stop_column": 23, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "bad-argument-type", "description": "Argument `None` is not assignable to parameter `files` with type `dict[Unknown, Unknown]` in function `celery.app.task.Task.__call__`", "concise_description": "Argument `None` is not assignable to parameter `files` with type `dict[Unknown, Unknown]` in function `celery.app.task.Task.__call__`", "severity": "error" }, { "line": 4800, "column": 16, "stop_line": 4800, "stop_column": 27, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `headers`", "concise_description": "Object of class `NoneType` has no attribute `headers`", "severity": "error" }, { "line": 4801, "column": 35, "stop_line": 4801, "stop_column": 46, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `headers`", "concise_description": "Object of class `NoneType` has no attribute `headers`", "severity": "error" }, { "line": 5037, "column": 20, "stop_line": 5037, "stop_column": 34, "path": "src/documents/tests/test_workflows.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `title`", "concise_description": "Object of class `NoneType` has no attribute `title`", "severity": "error" }, { "line": 34, "column": 23, "stop_line": 34, "stop_column": 29, "path": "src/documents/tests/utils.py", "code": -2, "name": "invalid-argument", "description": "Expected string literal \"dirs\"", "concise_description": "Expected string literal \"dirs\"", "severity": "error" }, { "line": 41, "column": 22, "stop_line": 41, "stop_column": 35, "path": "src/documents/tests/utils.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `data_dir`", "concise_description": "Class `dirs` has no class attribute `data_dir`", "severity": "error" }, { "line": 42, "column": 26, "stop_line": 42, "stop_column": 40, "path": "src/documents/tests/utils.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `media_dir`", "concise_description": "Class `dirs` has no class attribute `media_dir`", "severity": "error" }, { "line": 43, "column": 26, "stop_line": 43, "stop_column": 40, "path": "src/documents/tests/utils.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `media_dir`", "concise_description": "Class `dirs` has no class attribute `media_dir`", "severity": "error" }, { "line": 44, "column": 24, "stop_line": 44, "stop_column": 38, "path": "src/documents/tests/utils.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `media_dir`", "concise_description": "Class `dirs` has no class attribute `media_dir`", "severity": "error" }, { "line": 45, "column": 24, "stop_line": 45, "stop_column": 37, "path": "src/documents/tests/utils.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `data_dir`", "concise_description": "Class `dirs` has no class attribute `data_dir`", "severity": "error" }, { "line": 47, "column": 5, "stop_line": 47, "stop_column": 19, "path": "src/documents/tests/utils.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `index_dir`", "concise_description": "Class `dirs` has no class attribute `index_dir`", "severity": "error" }, { "line": 48, "column": 5, "stop_line": 48, "stop_column": 23, "path": "src/documents/tests/utils.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `originals_dir`", "concise_description": "Class `dirs` has no class attribute `originals_dir`", "severity": "error" }, { "line": 49, "column": 5, "stop_line": 49, "stop_column": 23, "path": "src/documents/tests/utils.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `thumbnail_dir`", "concise_description": "Class `dirs` has no class attribute `thumbnail_dir`", "severity": "error" }, { "line": 50, "column": 5, "stop_line": 50, "stop_column": 21, "path": "src/documents/tests/utils.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `archive_dir`", "concise_description": "Class `dirs` has no class attribute `archive_dir`", "severity": "error" }, { "line": 51, "column": 5, "stop_line": 51, "stop_column": 21, "path": "src/documents/tests/utils.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `logging_dir`", "concise_description": "Class `dirs` has no class attribute `logging_dir`", "severity": "error" }, { "line": 54, "column": 18, "stop_line": 54, "stop_column": 31, "path": "src/documents/tests/utils.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `data_dir`", "concise_description": "Class `dirs` has no class attribute `data_dir`", "severity": "error" }, { "line": 55, "column": 21, "stop_line": 55, "stop_column": 37, "path": "src/documents/tests/utils.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `scratch_dir`", "concise_description": "Class `dirs` has no class attribute `scratch_dir`", "severity": "error" }, { "line": 56, "column": 20, "stop_line": 56, "stop_column": 34, "path": "src/documents/tests/utils.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `media_dir`", "concise_description": "Class `dirs` has no class attribute `media_dir`", "severity": "error" }, { "line": 57, "column": 23, "stop_line": 57, "stop_column": 41, "path": "src/documents/tests/utils.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `originals_dir`", "concise_description": "Class `dirs` has no class attribute `originals_dir`", "severity": "error" }, { "line": 58, "column": 23, "stop_line": 58, "stop_column": 41, "path": "src/documents/tests/utils.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `thumbnail_dir`", "concise_description": "Class `dirs` has no class attribute `thumbnail_dir`", "severity": "error" }, { "line": 59, "column": 21, "stop_line": 59, "stop_column": 37, "path": "src/documents/tests/utils.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `archive_dir`", "concise_description": "Class `dirs` has no class attribute `archive_dir`", "severity": "error" }, { "line": 60, "column": 25, "stop_line": 60, "stop_column": 45, "path": "src/documents/tests/utils.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `consumption_dir`", "concise_description": "Class `dirs` has no class attribute `consumption_dir`", "severity": "error" }, { "line": 61, "column": 21, "stop_line": 61, "stop_column": 37, "path": "src/documents/tests/utils.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `logging_dir`", "concise_description": "Class `dirs` has no class attribute `logging_dir`", "severity": "error" }, { "line": 62, "column": 19, "stop_line": 62, "stop_column": 33, "path": "src/documents/tests/utils.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `index_dir`", "concise_description": "Class `dirs` has no class attribute `index_dir`", "severity": "error" }, { "line": 63, "column": 21, "stop_line": 63, "stop_column": 36, "path": "src/documents/tests/utils.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `static_dir`", "concise_description": "Class `dirs` has no class attribute `static_dir`", "severity": "error" }, { "line": 64, "column": 20, "stop_line": 64, "stop_column": 33, "path": "src/documents/tests/utils.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `data_dir`", "concise_description": "Class `dirs` has no class attribute `data_dir`", "severity": "error" }, { "line": 65, "column": 20, "stop_line": 65, "stop_column": 34, "path": "src/documents/tests/utils.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `media_dir`", "concise_description": "Class `dirs` has no class attribute `media_dir`", "severity": "error" }, { "line": 67, "column": 5, "stop_line": 67, "stop_column": 27, "path": "src/documents/tests/utils.py", "code": -2, "name": "missing-attribute", "description": "Class `dirs` has no class attribute `settings_override`", "concise_description": "Class `dirs` has no class attribute `settings_override`", "severity": "error" }, { "line": 164, "column": 9, "stop_line": 164, "stop_column": 22, "path": "src/documents/tests/utils.py", "code": -2, "name": "missing-attribute", "description": "Object of class `object` has no attribute `setUp`", "concise_description": "Object of class `object` has no attribute `setUp`", "severity": "error" }, { "line": 169, "column": 9, "stop_line": 169, "stop_column": 25, "path": "src/documents/tests/utils.py", "code": -2, "name": "missing-attribute", "description": "Object of class `object` has no attribute `tearDown`", "concise_description": "Object of class `object` has no attribute `tearDown`", "severity": "error" }, { "line": 180, "column": 9, "stop_line": 180, "stop_column": 24, "path": "src/documents/tests/utils.py", "code": -2, "name": "missing-attribute", "description": "Object of class `FileSystemAssertsMixin` has no attribute `assertTrue`", "concise_description": "Object of class `FileSystemAssertsMixin` has no attribute `assertTrue`", "severity": "error" }, { "line": 183, "column": 9, "stop_line": 183, "stop_column": 25, "path": "src/documents/tests/utils.py", "code": -2, "name": "missing-attribute", "description": "Object of class `FileSystemAssertsMixin` has no attribute `assertFalse`", "concise_description": "Object of class `FileSystemAssertsMixin` has no attribute `assertFalse`", "severity": "error" }, { "line": 186, "column": 9, "stop_line": 186, "stop_column": 24, "path": "src/documents/tests/utils.py", "code": -2, "name": "missing-attribute", "description": "Object of class `FileSystemAssertsMixin` has no attribute `assertTrue`", "concise_description": "Object of class `FileSystemAssertsMixin` has no attribute `assertTrue`", "severity": "error" }, { "line": 189, "column": 9, "stop_line": 189, "stop_column": 25, "path": "src/documents/tests/utils.py", "code": -2, "name": "missing-attribute", "description": "Object of class `FileSystemAssertsMixin` has no attribute `assertFalse`", "concise_description": "Object of class `FileSystemAssertsMixin` has no attribute `assertFalse`", "severity": "error" }, { "line": 203, "column": 9, "stop_line": 203, "stop_column": 25, "path": "src/documents/tests/utils.py", "code": -2, "name": "missing-attribute", "description": "Object of class `FileSystemAssertsMixin` has no attribute `assertEqual`", "concise_description": "Object of class `FileSystemAssertsMixin` has no attribute `assertEqual`", "severity": "error" }, { "line": 207, "column": 9, "stop_line": 207, "stop_column": 24, "path": "src/documents/tests/utils.py", "code": -2, "name": "missing-attribute", "description": "Object of class `FileSystemAssertsMixin` has no attribute `assertTrue`", "concise_description": "Object of class `FileSystemAssertsMixin` has no attribute `assertTrue`", "severity": "error" }, { "line": 209, "column": 9, "stop_line": 209, "stop_column": 25, "path": "src/documents/tests/utils.py", "code": -2, "name": "missing-attribute", "description": "Object of class `FileSystemAssertsMixin` has no attribute `assertEqual`", "concise_description": "Object of class `FileSystemAssertsMixin` has no attribute `assertEqual`", "severity": "error" }, { "line": 227, "column": 9, "stop_line": 227, "stop_column": 22, "path": "src/documents/tests/utils.py", "code": -2, "name": "missing-attribute", "description": "Object of class `object` has no attribute `setUp`", "concise_description": "Object of class `object` has no attribute `setUp`", "severity": "error" }, { "line": 230, "column": 9, "stop_line": 230, "stop_column": 25, "path": "src/documents/tests/utils.py", "code": -2, "name": "missing-attribute", "description": "Object of class `object` has no attribute `tearDown`", "concise_description": "Object of class `object` has no attribute `tearDown`", "severity": "error" }, { "line": 243, "column": 9, "stop_line": 243, "stop_column": 22, "path": "src/documents/tests/utils.py", "code": -2, "name": "missing-attribute", "description": "Object of class `object` has no attribute `setUp`", "concise_description": "Object of class `object` has no attribute `setUp`", "severity": "error" }, { "line": 246, "column": 9, "stop_line": 246, "stop_column": 25, "path": "src/documents/tests/utils.py", "code": -2, "name": "missing-attribute", "description": "Object of class `object` has no attribute `tearDown`", "concise_description": "Object of class `object` has no attribute `tearDown`", "severity": "error" }, { "line": 296, "column": 16, "stop_line": 296, "stop_column": 74, "path": "src/documents/tests/utils.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `name`", "concise_description": "Object of class `NoneType` has no attribute `name`", "severity": "error" }, { "line": 377, "column": 13, "stop_line": 377, "stop_column": 22, "path": "src/documents/tests/utils.py", "code": -2, "name": "missing-attribute", "description": "Object of class `GetConsumerMixin` has no attribute `dirs`", "concise_description": "Object of class `GetConsumerMixin` has no attribute `dirs`", "severity": "error" }, { "line": 385, "column": 13, "stop_line": 385, "stop_column": 22, "path": "src/documents/tests/utils.py", "code": -2, "name": "missing-attribute", "description": "Object of class `GetConsumerMixin` has no attribute `dirs`", "concise_description": "Object of class `GetConsumerMixin` has no attribute `dirs`", "severity": "error" }, { "line": 393, "column": 13, "stop_line": 393, "stop_column": 22, "path": "src/documents/tests/utils.py", "code": -2, "name": "missing-attribute", "description": "Object of class `GetConsumerMixin` has no attribute `dirs`", "concise_description": "Object of class `GetConsumerMixin` has no attribute `dirs`", "severity": "error" }, { "line": 86, "column": 34, "stop_line": 86, "stop_column": 45, "path": "src/documents/utils.py", "code": -2, "name": "bad-assignment", "description": "`float | int | None` is not assignable to attribute `MAX_IMAGE_PIXELS` with type `int | None`", "concise_description": "`float | int | None` is not assignable to attribute `MAX_IMAGE_PIXELS` with type `int | None`", "severity": "error" }, { "line": 277, "column": 31, "stop_line": 277, "stop_column": 57, "path": "src/documents/views.py", "code": -2, "name": "missing-attribute", "description": "Object of class `AbstractBaseUser` has no attribute `username`", "concise_description": "Object of class `AbstractBaseUser` has no attribute `username`", "severity": "error" }, { "line": 278, "column": 32, "stop_line": 278, "stop_column": 63, "path": "src/documents/views.py", "code": -2, "name": "missing-attribute", "description": "Object of class `AbstractBaseUser` has no attribute `get_full_name`\nObject of class `AnonymousUser` has no attribute `get_full_name`", "concise_description": "Object of class `AbstractBaseUser` has no attribute `get_full_name`\nObject of class `AnonymousUser` has no attribute `get_full_name`", "severity": "error" }, { "line": 333, "column": 17, "stop_line": 333, "stop_column": 30, "path": "src/documents/views.py", "code": -2, "name": "missing-attribute", "description": "Object of class `BulkPermissionMixin` has no attribute `queryset`", "concise_description": "Object of class `BulkPermissionMixin` has no attribute `queryset`", "severity": "error" }, { "line": 365, "column": 19, "stop_line": 365, "stop_column": 49, "path": "src/documents/views.py", "code": -2, "name": "missing-attribute", "description": "Object of class `object` has no attribute `get_serializer_context`", "concise_description": "Object of class `object` has no attribute `get_serializer_context`", "severity": "error" }, { "line": 368, "column": 21, "stop_line": 368, "stop_column": 33, "path": "src/documents/views.py", "code": -2, "name": "missing-attribute", "description": "Object of class `BulkPermissionMixin` has no attribute `request`", "concise_description": "Object of class `BulkPermissionMixin` has no attribute `request`", "severity": "error" }, { "line": 383, "column": 24, "stop_line": 383, "stop_column": 44, "path": "src/documents/views.py", "code": -2, "name": "missing-attribute", "description": "Object of class `BulkPermissionMixin` has no attribute `filter_queryset`", "concise_description": "Object of class `BulkPermissionMixin` has no attribute `filter_queryset`", "severity": "error" }, { "line": 383, "column": 45, "stop_line": 383, "stop_column": 62, "path": "src/documents/views.py", "code": -2, "name": "missing-attribute", "description": "Object of class `BulkPermissionMixin` has no attribute `get_queryset`", "concise_description": "Object of class `BulkPermissionMixin` has no attribute `get_queryset`", "severity": "error" }, { "line": 385, "column": 22, "stop_line": 385, "stop_column": 35, "path": "src/documents/views.py", "code": -2, "name": "missing-attribute", "description": "Object of class `BulkPermissionMixin` has no attribute `queryset`", "concise_description": "Object of class `BulkPermissionMixin` has no attribute `queryset`", "severity": "error" }, { "line": 487, "column": 29, "stop_line": 487, "stop_column": 51, "path": "src/documents/views.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `annotate`", "concise_description": "Object of class `NoneType` has no attribute `annotate`", "severity": "error" }, { "line": 493, "column": 25, "stop_line": 493, "stop_column": 47, "path": "src/documents/views.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `annotate`", "concise_description": "Object of class `NoneType` has no attribute `annotate`", "severity": "error" }, { "line": 557, "column": 13, "stop_line": 557, "stop_column": 65, "path": "src/documents/views.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `append`", "concise_description": "Object of class `NoneType` has no attribute `append`", "severity": "error" }, { "line": 887, "column": 48, "stop_line": 887, "stop_column": 64, "path": "src/documents/views.py", "code": -2, "name": "missing-attribute", "description": "Object of class `Correspondent` has no attribute `document_count`", "concise_description": "Object of class `Correspondent` has no attribute `document_count`", "severity": "error" }, { "line": 890, "column": 48, "stop_line": 890, "stop_column": 64, "path": "src/documents/views.py", "code": -2, "name": "missing-attribute", "description": "Object of class `Tag` has no attribute `document_count`", "concise_description": "Object of class `Tag` has no attribute `document_count`", "severity": "error" }, { "line": 893, "column": 48, "stop_line": 893, "stop_column": 64, "path": "src/documents/views.py", "code": -2, "name": "missing-attribute", "description": "Object of class `DocumentType` has no attribute `document_count`", "concise_description": "Object of class `DocumentType` has no attribute `document_count`", "severity": "error" }, { "line": 896, "column": 48, "stop_line": 896, "stop_column": 64, "path": "src/documents/views.py", "code": -2, "name": "missing-attribute", "description": "Object of class `StoragePath` has no attribute `document_count`", "concise_description": "Object of class `StoragePath` has no attribute `document_count`", "severity": "error" }, { "line": 899, "column": 48, "stop_line": 899, "stop_column": 64, "path": "src/documents/views.py", "code": -2, "name": "missing-attribute", "description": "Object of class `CustomField` has no attribute `document_count`", "concise_description": "Object of class `CustomField` has no attribute `document_count`", "severity": "error" }, { "line": 1069, "column": 9, "stop_line": 1069, "stop_column": 16, "path": "src/documents/views.py", "code": -2, "name": "bad-override", "description": "Class member `DocumentViewSet.destroy` overrides parent class `DestroyModelMixin` in an inconsistent manner\n `DocumentViewSet.destroy` has type `(self: DocumentViewSet, request: Unknown, *args: Unknown, **kwargs: Unknown) -> HttpResponseBadRequest | Response`, which is not assignable to `(self: DocumentViewSet, request: Request, *args: Any, **kwargs: Any) -> Response`, the type of `DestroyModelMixin.destroy`\n Signature mismatch:\n ...umentViewSet, request: Request, *args: Any, **kwargs: Any) -> Response: ...\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^ return type\n |\n parameters\n ...umentViewSet, request: Unknown, *args: Unknown, **kwargs: Unknown) -> HttpResponseBadRequest | Response: ...\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ return type\n |\n parameters", "concise_description": "Class member `DocumentViewSet.destroy` overrides parent class `DestroyModelMixin` in an inconsistent manner", "severity": "error" }, { "line": 1223, "column": 37, "stop_line": 1223, "stop_column": 54, "path": "src/documents/views.py", "code": -2, "name": "bad-argument-type", "description": "Argument `list[MetadataEntry] | list[Unknown] | None` is not assignable to parameter `original_metadata` with type `list[Unknown]` in function `documents.caching.set_metadata_cache`", "concise_description": "Argument `list[MetadataEntry] | list[Unknown] | None` is not assignable to parameter `original_metadata` with type `list[Unknown]` in function `documents.caching.set_metadata_cache`", "severity": "error" }, { "line": 1334, "column": 45, "stop_line": 1334, "stop_column": 57, "path": "src/documents/views.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Any | None` is not assignable to parameter `filename` with type `str` in function `documents.plugins.date_parsing.base.DateParserPluginBase.parse`", "concise_description": "Argument `Any | None` is not assignable to parameter `filename` with type `str` in function `documents.plugins.date_parsing.base.DateParserPluginBase.parse`", "severity": "error" }, { "line": 1347, "column": 61, "stop_line": 1347, "stop_column": 71, "path": "src/documents/views.py", "code": -2, "name": "bad-argument-type", "description": "Argument `DocumentClassifier | None` is not assignable to parameter `classifier` with type `DocumentClassifier` in function `documents.matching.match_correspondents`", "concise_description": "Argument `DocumentClassifier | None` is not assignable to parameter `classifier` with type `DocumentClassifier` in function `documents.matching.match_correspondents`", "severity": "error" }, { "line": 1349, "column": 56, "stop_line": 1349, "stop_column": 66, "path": "src/documents/views.py", "code": -2, "name": "bad-argument-type", "description": "Argument `DocumentClassifier | None` is not assignable to parameter `classifier` with type `DocumentClassifier` in function `documents.matching.match_tags`", "concise_description": "Argument `DocumentClassifier | None` is not assignable to parameter `classifier` with type `DocumentClassifier` in function `documents.matching.match_tags`", "severity": "error" }, { "line": 1351, "column": 63, "stop_line": 1351, "stop_column": 73, "path": "src/documents/views.py", "code": -2, "name": "bad-argument-type", "description": "Argument `DocumentClassifier | None` is not assignable to parameter `classifier` with type `DocumentClassifier` in function `documents.matching.match_document_types`", "concise_description": "Argument `DocumentClassifier | None` is not assignable to parameter `classifier` with type `DocumentClassifier` in function `documents.matching.match_document_types`", "severity": "error" }, { "line": 1354, "column": 62, "stop_line": 1354, "stop_column": 72, "path": "src/documents/views.py", "code": -2, "name": "bad-argument-type", "description": "Argument `DocumentClassifier | None` is not assignable to parameter `classifier` with type `DocumentClassifier` in function `documents.matching.match_storage_paths`", "concise_description": "Argument `DocumentClassifier | None` is not assignable to parameter `classifier` with type `DocumentClassifier` in function `documents.matching.match_storage_paths`", "severity": "error" }, { "line": 1468, "column": 21, "stop_line": 1468, "stop_column": 48, "path": "src/documents/views.py", "code": -2, "name": "missing-attribute", "description": "Object of class `Manager` has no attribute `log_create`", "concise_description": "Object of class `Manager` has no attribute `log_create`", "severity": "error" }, { "line": 1503, "column": 17, "stop_line": 1503, "stop_column": 44, "path": "src/documents/views.py", "code": -2, "name": "missing-attribute", "description": "Object of class `Manager` has no attribute `log_create`", "concise_description": "Object of class `Manager` has no attribute `log_create`", "severity": "error" }, { "line": 1530, "column": 5, "stop_line": 1530, "stop_column": 62, "path": "src/documents/views.py", "code": -2, "name": "bad-specialization", "description": "`(self: Self@DocumentViewSet, request: Unknown, pk: Unknown | None = None) -> HttpResponseForbidden | Response | None` is not assignable to upper bound `(...) -> HttpResponseBase` of type variable `_View`", "concise_description": "`(self: Self@DocumentViewSet, request: Unknown, pk: Unknown | None = None) -> HttpResponseForbidden | Response | None` is not assignable to upper bound `(...) -> HttpResponseBase` of type variable `_View`", "severity": "error" }, { "line": 1587, "column": 26, "stop_line": 1587, "stop_column": 57, "path": "src/documents/views.py", "code": -2, "name": "missing-attribute", "description": "Object of class `Manager` has no attribute `get_for_object`", "concise_description": "Object of class `Manager` has no attribute `get_for_object`", "severity": "error" }, { "line": 1593, "column": 22, "stop_line": 1593, "stop_column": 54, "path": "src/documents/views.py", "code": -2, "name": "missing-attribute", "description": "Object of class `Manager` has no attribute `get_for_objects`", "concise_description": "Object of class `Manager` has no attribute `get_for_objects`", "severity": "error" }, { "line": 1594, "column": 13, "stop_line": 1594, "stop_column": 30, "path": "src/documents/views.py", "code": -2, "name": "missing-attribute", "description": "Object of class `Document` has no attribute `custom_fields`", "concise_description": "Object of class `Document` has no attribute `custom_fields`", "severity": "error" }, { "line": 1632, "column": 36, "stop_line": 1632, "stop_column": 64, "path": "src/documents/views.py", "code": -2, "name": "missing-argument", "description": "Missing argument `request` in function `DocumentViewSet.email_documents`", "concise_description": "Missing argument `request` in function `DocumentViewSet.email_documents`", "severity": "error" }, { "line": 1672, "column": 30, "stop_line": 1672, "stop_column": 45, "path": "src/documents/views.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Path | None` is not assignable to parameter `path` with type `Path` in function `documents.mail.EmailAttachment.__init__`", "concise_description": "Argument `Path | None` is not assignable to parameter `path` with type `Path` in function `documents.mail.EmailAttachment.__init__`", "severity": "error" }, { "line": 1841, "column": 13, "stop_line": 1841, "stop_column": 40, "path": "src/documents/views.py", "code": -2, "name": "missing-attribute", "description": "Object of class `Manager` has no attribute `log_create`", "concise_description": "Object of class `Manager` has no attribute `log_create`", "severity": "error" }, { "line": 1920, "column": 13, "stop_line": 1920, "stop_column": 40, "path": "src/documents/views.py", "code": -2, "name": "missing-attribute", "description": "Object of class `Manager` has no attribute `log_create`", "concise_description": "Object of class `Manager` has no attribute `log_create`", "severity": "error" }, { "line": 1996, "column": 70, "stop_line": 1996, "stop_column": 79, "path": "src/documents/views.py", "code": -2, "name": "bad-argument-type", "description": "Argument `QuerySet[Unknown] | list[Document]` is not assignable to parameter `documents` with type `list[Document]` in function `paperless_ai.chat.stream_chat_with_documents`", "concise_description": "Argument `QuerySet[Unknown] | list[Document]` is not assignable to parameter `documents` with type `list[Document]` in function `paperless_ai.chat.stream_chat_with_documents`", "severity": "error" }, { "line": 2065, "column": 9, "stop_line": 2065, "stop_column": 13, "path": "src/documents/views.py", "code": -2, "name": "bad-override", "description": "Class member `UnifiedSearchViewSet.list` overrides parent class `DocumentViewSet` in an inconsistent manner\n `UnifiedSearchViewSet.list` has type `(self: UnifiedSearchViewSet, request: Unknown, *args: Unknown, **kwargs: Unknown) -> HttpResponseBadRequest | HttpResponseForbidden | Response`, which is not assignable to `(self: UnifiedSearchViewSet, request: Unknown, *args: Unknown, **kwargs: Unknown) -> Response`, the type of `DocumentViewSet.list`\n Signature mismatch:\n ...s: Unknown, **kwargs: Unknown) -> Response: ...\n ^ return type\n ...s: Unknown, **kwargs: Unknown) -> HttpResponseBadRequest | HttpResponseForbidden | Response: ...\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ return type", "concise_description": "Class member `UnifiedSearchViewSet.list` overrides parent class `DocumentViewSet` in an inconsistent manner", "severity": "error" }, { "line": 2157, "column": 43, "stop_line": 2157, "stop_column": 45, "path": "src/documents/views.py", "code": -2, "name": "bad-argument-type", "description": "Argument `TantivyRelevanceList` is not assignable to parameter `queryset` with type `QuerySet[Any, @_]` in function `rest_framework.generics.GenericAPIView.paginate_queryset`", "concise_description": "Argument `TantivyRelevanceList` is not assignable to parameter `queryset` with type `QuerySet[Any, @_]` in function `rest_framework.generics.GenericAPIView.paginate_queryset`", "severity": "error" }, { "line": 2199, "column": 25, "stop_line": 2199, "stop_column": 36, "path": "src/documents/views.py", "code": -2, "name": "unsupported-operation", "description": "`+` is not supported between `None` and `Literal[1]`\n Argument `None` is not assignable to parameter `value` with type `int` in function `int.__radd__`", "concise_description": "`+` is not supported between `None` and `Literal[1]`", "severity": "error" }, { "line": 2427, "column": 18, "stop_line": 2427, "stop_column": 35, "path": "src/documents/views.py", "code": -2, "name": "bad-argument-type", "description": "Argument `AbstractBaseUser | AnonymousUser` is not assignable to parameter `user` with type `User` in function `DocumentSelectionMixin._resolve_document_ids`", "concise_description": "Argument `AbstractBaseUser | AnonymousUser` is not assignable to parameter `user` with type `User` in function `DocumentSelectionMixin._resolve_document_ids`", "severity": "error" }, { "line": 2441, "column": 18, "stop_line": 2441, "stop_column": 22, "path": "src/documents/views.py", "code": -2, "name": "bad-argument-type", "description": "Argument `AbstractBaseUser | AnonymousUser` is not assignable to parameter `user` with type `User` in function `DocumentOperationPermissionMixin._has_document_permissions`", "concise_description": "Argument `AbstractBaseUser | AnonymousUser` is not assignable to parameter `user` with type `User` in function `DocumentOperationPermissionMixin._has_document_permissions`", "severity": "error" }, { "line": 2523, "column": 18, "stop_line": 2523, "stop_column": 22, "path": "src/documents/views.py", "code": -2, "name": "bad-argument-type", "description": "Argument `AbstractBaseUser | AnonymousUser` is not assignable to parameter `user` with type `User` in function `DocumentSelectionMixin._resolve_document_ids`", "concise_description": "Argument `AbstractBaseUser | AnonymousUser` is not assignable to parameter `user` with type `User` in function `DocumentSelectionMixin._resolve_document_ids`", "severity": "error" }, { "line": 2529, "column": 18, "stop_line": 2529, "stop_column": 22, "path": "src/documents/views.py", "code": -2, "name": "bad-argument-type", "description": "Argument `AbstractBaseUser | AnonymousUser` is not assignable to parameter `user` with type `User` in function `DocumentOperationPermissionMixin._has_document_permissions`", "concise_description": "Argument `AbstractBaseUser | AnonymousUser` is not assignable to parameter `user` with type `User` in function `DocumentOperationPermissionMixin._has_document_permissions`", "severity": "error" }, { "line": 2558, "column": 33, "stop_line": 2558, "stop_column": 46, "path": "src/documents/views.py", "code": -2, "name": "unbound-name", "description": "`old_documents` may be uninitialized", "concise_description": "`old_documents` may be uninitialized", "severity": "error" }, { "line": 2568, "column": 21, "stop_line": 2568, "stop_column": 48, "path": "src/documents/views.py", "code": -2, "name": "missing-attribute", "description": "Object of class `Manager` has no attribute `log_create`", "concise_description": "Object of class `Manager` has no attribute `log_create`", "severity": "error" }, { "line": 2943, "column": 52, "stop_line": 2943, "stop_column": 68, "path": "src/documents/views.py", "code": -2, "name": "missing-attribute", "description": "Object of class `Correspondent` has no attribute `document_count`", "concise_description": "Object of class `Correspondent` has no attribute `document_count`", "severity": "error" }, { "line": 2947, "column": 52, "stop_line": 2947, "stop_column": 68, "path": "src/documents/views.py", "code": -2, "name": "missing-attribute", "description": "Object of class `Tag` has no attribute `document_count`", "concise_description": "Object of class `Tag` has no attribute `document_count`", "severity": "error" }, { "line": 2950, "column": 52, "stop_line": 2950, "stop_column": 68, "path": "src/documents/views.py", "code": -2, "name": "missing-attribute", "description": "Object of class `DocumentType` has no attribute `document_count`", "concise_description": "Object of class `DocumentType` has no attribute `document_count`", "severity": "error" }, { "line": 2953, "column": 52, "stop_line": 2953, "stop_column": 68, "path": "src/documents/views.py", "code": -2, "name": "missing-attribute", "description": "Object of class `StoragePath` has no attribute `document_count`", "concise_description": "Object of class `StoragePath` has no attribute `document_count`", "severity": "error" }, { "line": 2957, "column": 52, "stop_line": 2957, "stop_column": 68, "path": "src/documents/views.py", "code": -2, "name": "missing-attribute", "description": "Object of class `CustomField` has no attribute `document_count`", "concise_description": "Object of class `CustomField` has no attribute `document_count`", "severity": "error" }, { "line": 3010, "column": 65, "stop_line": 3010, "stop_column": 69, "path": "src/documents/views.py", "code": -2, "name": "bad-argument-type", "description": "Argument `AbstractBaseUser | AnonymousUser | None` is not assignable to parameter `user` with type `AbstractBaseUser | None` in function `documents.search._backend.TantivyBackend.autocomplete`", "concise_description": "Argument `AbstractBaseUser | AnonymousUser | None` is not assignable to parameter `user` with type `AbstractBaseUser | None` in function `documents.search._backend.TantivyBackend.autocomplete`", "severity": "error" }, { "line": 3730, "column": 32, "stop_line": 3730, "stop_column": 43, "path": "src/documents/views.py", "code": -2, "name": "bad-argument-type", "description": "Unpacked keyword argument `bool | Unknown` is not assignable to parameter `iter_wrapper` with type `(Iterable[Document]) -> Iterable[Document]` in function `celery.app.task.Task.__call__`", "concise_description": "Unpacked keyword argument `bool | Unknown` is not assignable to parameter `iter_wrapper` with type `(Iterable[Document]) -> Iterable[Document]` in function `celery.app.task.Task.__call__`", "severity": "error" }, { "line": 3730, "column": 32, "stop_line": 3730, "stop_column": 43, "path": "src/documents/views.py", "code": -2, "name": "bad-argument-type", "description": "Unpacked keyword argument `bool | Unknown` is not assignable to parameter `status_callback` with type `((str) -> None) | None` in function `celery.app.task.Task.__call__`", "concise_description": "Unpacked keyword argument `bool | Unknown` is not assignable to parameter `status_callback` with type `((str) -> None) | None` in function `celery.app.task.Task.__call__`", "severity": "error" }, { "line": 4022, "column": 24, "stop_line": 4022, "stop_column": 51, "path": "src/documents/views.py", "code": -2, "name": "missing-attribute", "description": "Object of class `BaseSerializer` has no attribute `get_object_class`", "concise_description": "Object of class `BaseSerializer` has no attribute `get_object_class`", "severity": "error" }, { "line": 4041, "column": 17, "stop_line": 4041, "stop_column": 21, "path": "src/documents/views.py", "code": -2, "name": "bad-argument-type", "description": "Argument `AbstractBaseUser | AnonymousUser` is not assignable to parameter `user` with type `User | None` in function `documents.permissions.get_objects_for_user_owner_aware`", "concise_description": "Argument `AbstractBaseUser | AnonymousUser` is not assignable to parameter `user` with type `User | None` in function `documents.permissions.get_objects_for_user_owner_aware`", "severity": "error" }, { "line": 4066, "column": 16, "stop_line": 4066, "stop_column": 33, "path": "src/documents/views.py", "code": -2, "name": "missing-attribute", "description": "Object of class `AbstractBaseUser` has no attribute `is_superuser`", "concise_description": "Object of class `AbstractBaseUser` has no attribute `is_superuser`", "severity": "error" }, { "line": 4068, "column": 25, "stop_line": 4068, "stop_column": 38, "path": "src/documents/views.py", "code": -2, "name": "missing-attribute", "description": "Object of class `AbstractBaseUser` has no attribute `has_perm`", "concise_description": "Object of class `AbstractBaseUser` has no attribute `has_perm`", "severity": "error" }, { "line": 4123, "column": 9, "stop_line": 4123, "stop_column": 23, "path": "src/documents/views.py", "code": -2, "name": "bad-override", "description": "Class member `WorkflowTriggerViewSet.partial_update` overrides parent class `ModelViewSet` in an inconsistent manner\n `WorkflowTriggerViewSet.partial_update` has type `(self: WorkflowTriggerViewSet, request: Unknown, *args: Unknown, **kwargs: Unknown) -> HttpResponseBadRequest | Response`, which is not assignable to `(self: WorkflowTriggerViewSet, request: Request, *args: Any, **kwargs: Any) -> Response`, the type of `ModelViewSet.partial_update`\n Signature mismatch:\n ...iggerViewSet, request: Request, *args: Any, **kwargs: Any) -> Response: ...\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^ return type\n |\n parameters\n ...iggerViewSet, request: Unknown, *args: Unknown, **kwargs: Unknown) -> HttpResponseBadRequest | Response: ...\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ return type\n |\n parameters", "concise_description": "Class member `WorkflowTriggerViewSet.partial_update` overrides parent class `ModelViewSet` in an inconsistent manner", "severity": "error" }, { "line": 4148, "column": 9, "stop_line": 4148, "stop_column": 23, "path": "src/documents/views.py", "code": -2, "name": "bad-override", "description": "Class member `WorkflowActionViewSet.partial_update` overrides parent class `ModelViewSet` in an inconsistent manner\n `WorkflowActionViewSet.partial_update` has type `(self: WorkflowActionViewSet, request: Unknown, *args: Unknown, **kwargs: Unknown) -> HttpResponseBadRequest | Response`, which is not assignable to `(self: WorkflowActionViewSet, request: Request, *args: Any, **kwargs: Any) -> Response`, the type of `ModelViewSet.partial_update`\n Signature mismatch:\n ...ctionViewSet, request: Request, *args: Any, **kwargs: Any) -> Response: ...\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^ return type\n |\n parameters\n ...ctionViewSet, request: Unknown, *args: Unknown, **kwargs: Unknown) -> HttpResponseBadRequest | Response: ...\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ return type\n |\n parameters", "concise_description": "Class member `WorkflowActionViewSet.partial_update` overrides parent class `ModelViewSet` in an inconsistent manner", "severity": "error" }, { "line": 4324, "column": 36, "stop_line": 4324, "stop_column": 52, "path": "src/documents/views.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `keys`", "concise_description": "Object of class `NoneType` has no attribute `keys`", "severity": "error" }, { "line": 4325, "column": 33, "stop_line": 4325, "stop_column": 56, "path": "src/documents/views.py", "code": -2, "name": "unsupported-operation", "description": "`None` is not subscriptable", "concise_description": "`None` is not subscriptable", "severity": "error" }, { "line": 4446, "column": 40, "stop_line": 4446, "stop_column": 54, "path": "src/documents/views.py", "code": -2, "name": "unbound-name", "description": "`all_migrations` may be uninitialized", "concise_description": "`all_migrations` may be uninitialized", "severity": "error" }, { "line": 4454, "column": 38, "stop_line": 4454, "stop_column": 51, "path": "src/documents/views.py", "code": -2, "name": "unbound-name", "description": "`celery_active` may be uninitialized", "concise_description": "`celery_active` may be uninitialized", "severity": "error" }, { "line": 4523, "column": 16, "stop_line": 4523, "stop_column": 31, "path": "src/documents/views.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `app_logo`", "concise_description": "Object of class `NoneType` has no attribute `app_logo`", "severity": "error" }, { "line": 38, "column": 22, "stop_line": 38, "stop_column": 36, "path": "src/documents/workflows/actions.py", "code": -2, "name": "missing-attribute", "description": "Object of class `ConsumableDocument` has no attribute `title`", "concise_description": "Object of class `ConsumableDocument` has no attribute `title`", "severity": "error" }, { "line": 39, "column": 80, "stop_line": 39, "stop_column": 91, "path": "src/documents/workflows/actions.py", "code": -2, "name": "missing-attribute", "description": "Object of class `ConsumableDocument` has no attribute `pk`", "concise_description": "Object of class `ConsumableDocument` has no attribute `pk`", "severity": "error" }, { "line": 40, "column": 30, "stop_line": 40, "stop_column": 57, "path": "src/documents/workflows/actions.py", "code": -2, "name": "missing-attribute", "description": "Object of class `object` has no attribute `name`", "concise_description": "Object of class `object` has no attribute `name`", "severity": "error" }, { "line": 41, "column": 16, "stop_line": 41, "stop_column": 38, "path": "src/documents/workflows/actions.py", "code": -2, "name": "missing-attribute", "description": "Object of class `ConsumableDocument` has no attribute `correspondent`", "concise_description": "Object of class `ConsumableDocument` has no attribute `correspondent`", "severity": "error" }, { "line": 43, "column": 30, "stop_line": 43, "stop_column": 57, "path": "src/documents/workflows/actions.py", "code": -2, "name": "missing-attribute", "description": "Object of class `object` has no attribute `name`", "concise_description": "Object of class `object` has no attribute `name`", "severity": "error" }, { "line": 44, "column": 16, "stop_line": 44, "stop_column": 38, "path": "src/documents/workflows/actions.py", "code": -2, "name": "missing-attribute", "description": "Object of class `ConsumableDocument` has no attribute `document_type`", "concise_description": "Object of class `ConsumableDocument` has no attribute `document_type`", "severity": "error" }, { "line": 46, "column": 31, "stop_line": 46, "stop_column": 54, "path": "src/documents/workflows/actions.py", "code": -2, "name": "missing-attribute", "description": "Object of class `object` has no attribute `username`", "concise_description": "Object of class `object` has no attribute `username`", "severity": "error" }, { "line": 46, "column": 58, "stop_line": 46, "stop_column": 72, "path": "src/documents/workflows/actions.py", "code": -2, "name": "missing-attribute", "description": "Object of class `ConsumableDocument` has no attribute `owner`", "concise_description": "Object of class `ConsumableDocument` has no attribute `owner`", "severity": "error" }, { "line": 47, "column": 25, "stop_line": 47, "stop_column": 51, "path": "src/documents/workflows/actions.py", "code": -2, "name": "missing-attribute", "description": "Object of class `ConsumableDocument` has no attribute `original_filename`", "concise_description": "Object of class `ConsumableDocument` has no attribute `original_filename`", "severity": "error" }, { "line": 48, "column": 33, "stop_line": 48, "stop_column": 50, "path": "src/documents/workflows/actions.py", "code": -2, "name": "missing-attribute", "description": "Object of class `ConsumableDocument` has no attribute `filename`", "concise_description": "Object of class `ConsumableDocument` has no attribute `filename`", "severity": "error" }, { "line": 49, "column": 41, "stop_line": 49, "stop_column": 55, "path": "src/documents/workflows/actions.py", "code": -2, "name": "missing-attribute", "description": "Object of class `ConsumableDocument` has no attribute `added`", "concise_description": "Object of class `ConsumableDocument` has no attribute `added`", "severity": "error" }, { "line": 50, "column": 24, "stop_line": 50, "stop_column": 40, "path": "src/documents/workflows/actions.py", "code": -2, "name": "missing-attribute", "description": "Object of class `ConsumableDocument` has no attribute `created`", "concise_description": "Object of class `ConsumableDocument` has no attribute `created`", "severity": "error" }, { "line": 51, "column": 19, "stop_line": 51, "stop_column": 30, "path": "src/documents/workflows/actions.py", "code": -2, "name": "missing-attribute", "description": "Object of class `ConsumableDocument` has no attribute `pk`", "concise_description": "Object of class `ConsumableDocument` has no attribute `pk`", "severity": "error" }, { "line": 70, "column": 42, "stop_line": 70, "stop_column": 64, "path": "src/documents/workflows/actions.py", "code": -2, "name": "missing-attribute", "description": "Object of class `Document` has no attribute `original_file`", "concise_description": "Object of class `Document` has no attribute `original_file`", "severity": "error" }, { "line": 108, "column": 13, "stop_line": 108, "stop_column": 33, "path": "src/documents/workflows/actions.py", "code": -2, "name": "bad-argument-type", "description": "Argument `object | str` is not assignable to parameter `text` with type `str` in function `documents.templating.workflows.parse_w_workflow_placeholders`", "concise_description": "Argument `object | str` is not assignable to parameter `text` with type `str` in function `documents.templating.workflows.parse_w_workflow_placeholders`", "severity": "error" }, { "line": 120, "column": 12, "stop_line": 120, "stop_column": 32, "path": "src/documents/workflows/actions.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `subject`", "concise_description": "Object of class `NoneType` has no attribute `subject`", "severity": "error" }, { "line": 125, "column": 13, "stop_line": 125, "stop_column": 30, "path": "src/documents/workflows/actions.py", "code": -2, "name": "bad-argument-type", "description": "Argument `object | str` is not assignable to parameter `text` with type `str` in function `documents.templating.workflows.parse_w_workflow_placeholders`", "concise_description": "Argument `object | str` is not assignable to parameter `text` with type `str` in function `documents.templating.workflows.parse_w_workflow_placeholders`", "severity": "error" }, { "line": 137, "column": 12, "stop_line": 137, "stop_column": 29, "path": "src/documents/workflows/actions.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `body`", "concise_description": "Object of class `NoneType` has no attribute `body`", "severity": "error" }, { "line": 143, "column": 12, "stop_line": 143, "stop_column": 41, "path": "src/documents/workflows/actions.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `include_document`", "concise_description": "Object of class `NoneType` has no attribute `include_document`", "severity": "error" }, { "line": 176, "column": 16, "stop_line": 176, "stop_column": 31, "path": "src/documents/workflows/actions.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `to`", "concise_description": "Object of class `NoneType` has no attribute `to`", "severity": "error" }, { "line": 180, "column": 59, "stop_line": 180, "stop_column": 74, "path": "src/documents/workflows/actions.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `to`", "concise_description": "Object of class `NoneType` has no attribute `to`", "severity": "error" }, { "line": 199, "column": 12, "stop_line": 199, "stop_column": 37, "path": "src/documents/workflows/actions.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `use_params`", "concise_description": "Object of class `NoneType` has no attribute `use_params`", "severity": "error" }, { "line": 200, "column": 16, "stop_line": 200, "stop_column": 37, "path": "src/documents/workflows/actions.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `params`", "concise_description": "Object of class `NoneType` has no attribute `params`", "severity": "error" }, { "line": 202, "column": 39, "stop_line": 202, "stop_column": 66, "path": "src/documents/workflows/actions.py", "code": -2, "name": "missing-attribute", "description": "Object of class `object` has no attribute `items`", "concise_description": "Object of class `object` has no attribute `items`", "severity": "error" }, { "line": 221, "column": 14, "stop_line": 221, "stop_column": 33, "path": "src/documents/workflows/actions.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `body`", "concise_description": "Object of class `NoneType` has no attribute `body`", "severity": "error" }, { "line": 223, "column": 17, "stop_line": 223, "stop_column": 36, "path": "src/documents/workflows/actions.py", "code": -2, "name": "bad-argument-type", "description": "Argument `object | str` is not assignable to parameter `text` with type `str` in function `documents.templating.workflows.parse_w_workflow_placeholders`", "concise_description": "Argument `object | str` is not assignable to parameter `text` with type `str` in function `documents.templating.workflows.parse_w_workflow_placeholders`", "severity": "error" }, { "line": 236, "column": 12, "stop_line": 236, "stop_column": 34, "path": "src/documents/workflows/actions.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `headers`", "concise_description": "Object of class `NoneType` has no attribute `headers`", "severity": "error" }, { "line": 238, "column": 55, "stop_line": 238, "stop_column": 83, "path": "src/documents/workflows/actions.py", "code": -2, "name": "missing-attribute", "description": "Object of class `object` has no attribute `items`", "concise_description": "Object of class `object` has no attribute `items`", "severity": "error" }, { "line": 245, "column": 12, "stop_line": 245, "stop_column": 43, "path": "src/documents/workflows/actions.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `include_document`", "concise_description": "Object of class `NoneType` has no attribute `include_document`", "severity": "error" }, { "line": 257, "column": 17, "stop_line": 257, "stop_column": 35, "path": "src/documents/workflows/actions.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `url`", "concise_description": "Object of class `NoneType` has no attribute `url`", "severity": "error" }, { "line": 260, "column": 19, "stop_line": 260, "stop_column": 24, "path": "src/documents/workflows/actions.py", "code": -2, "name": "bad-argument-type", "description": "Argument `dict[str, tuple[str, bytes, str]] | None` is not assignable to parameter `files` with type `dict[Unknown, Unknown]` in function `celery.app.task.Task.delay`", "concise_description": "Argument `dict[str, tuple[str, bytes, str]] | None` is not assignable to parameter `files` with type `dict[Unknown, Unknown]` in function `celery.app.task.Task.delay`", "severity": "error" }, { "line": 261, "column": 21, "stop_line": 261, "stop_column": 43, "path": "src/documents/workflows/actions.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `as_json`", "concise_description": "Object of class `NoneType` has no attribute `as_json`", "severity": "error" }, { "line": 264, "column": 27, "stop_line": 264, "stop_column": 45, "path": "src/documents/workflows/actions.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `url`", "concise_description": "Object of class `NoneType` has no attribute `url`", "severity": "error" }, { "line": 300, "column": 43, "stop_line": 300, "stop_column": 65, "path": "src/documents/workflows/actions.py", "code": -2, "name": "bad-assignment", "description": "`Unknown | None` is not assignable to `Document`", "concise_description": "`Unknown | None` is not assignable to `Document`", "severity": "error" }, { "line": 27, "column": 8, "stop_line": 27, "stop_column": 30, "path": "src/documents/workflows/mutations.py", "code": -2, "name": "missing-attribute", "description": "Object of class `WorkflowAction` has no attribute `has_assign_tags`", "concise_description": "Object of class `WorkflowAction` has no attribute `has_assign_tags`", "severity": "error" }, { "line": 70, "column": 13, "stop_line": 70, "stop_column": 41, "path": "src/documents/workflows/mutations.py", "code": -2, "name": "missing-attribute", "description": "Object of class `WorkflowAction` has no attribute `has_assign_view_users`", "concise_description": "Object of class `WorkflowAction` has no attribute `has_assign_view_users`", "severity": "error" }, { "line": 71, "column": 13, "stop_line": 71, "stop_column": 42, "path": "src/documents/workflows/mutations.py", "code": -2, "name": "missing-attribute", "description": "Object of class `WorkflowAction` has no attribute `has_assign_view_groups`", "concise_description": "Object of class `WorkflowAction` has no attribute `has_assign_view_groups`", "severity": "error" }, { "line": 72, "column": 13, "stop_line": 72, "stop_column": 43, "path": "src/documents/workflows/mutations.py", "code": -2, "name": "missing-attribute", "description": "Object of class `WorkflowAction` has no attribute `has_assign_change_users`", "concise_description": "Object of class `WorkflowAction` has no attribute `has_assign_change_users`", "severity": "error" }, { "line": 73, "column": 13, "stop_line": 73, "stop_column": 44, "path": "src/documents/workflows/mutations.py", "code": -2, "name": "missing-attribute", "description": "Object of class `WorkflowAction` has no attribute `has_assign_change_groups`", "concise_description": "Object of class `WorkflowAction` has no attribute `has_assign_change_groups`", "severity": "error" }, { "line": 92, "column": 8, "stop_line": 92, "stop_column": 39, "path": "src/documents/workflows/mutations.py", "code": -2, "name": "missing-attribute", "description": "Object of class `WorkflowAction` has no attribute `has_assign_custom_fields`", "concise_description": "Object of class `WorkflowAction` has no attribute `has_assign_custom_fields`", "severity": "error" }, { "line": 95, "column": 27, "stop_line": 95, "stop_column": 42, "path": "src/documents/workflows/mutations.py", "code": -2, "name": "bad-argument-type", "description": "Argument `str` is not assignable to parameter `data_type` with type `CustomField.FieldDataType` in function `documents.models.CustomFieldInstance.get_value_field_name`", "concise_description": "Argument `str` is not assignable to parameter `data_type` with type `CustomField.FieldDataType` in function `documents.models.CustomFieldInstance.get_value_field_name`", "severity": "error" }, { "line": 98, "column": 35, "stop_line": 98, "stop_column": 73, "path": "src/documents/workflows/mutations.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `get`", "concise_description": "Object of class `NoneType` has no attribute `get`", "severity": "error" }, { "line": 128, "column": 8, "stop_line": 128, "stop_column": 30, "path": "src/documents/workflows/mutations.py", "code": -2, "name": "missing-attribute", "description": "Object of class `WorkflowAction` has no attribute `has_assign_tags`", "concise_description": "Object of class `WorkflowAction` has no attribute `has_assign_tags`", "severity": "error" }, { "line": 155, "column": 13, "stop_line": 155, "stop_column": 41, "path": "src/documents/workflows/mutations.py", "code": -2, "name": "missing-attribute", "description": "Object of class `WorkflowAction` has no attribute `has_assign_view_users`", "concise_description": "Object of class `WorkflowAction` has no attribute `has_assign_view_users`", "severity": "error" }, { "line": 156, "column": 13, "stop_line": 156, "stop_column": 42, "path": "src/documents/workflows/mutations.py", "code": -2, "name": "missing-attribute", "description": "Object of class `WorkflowAction` has no attribute `has_assign_view_groups`", "concise_description": "Object of class `WorkflowAction` has no attribute `has_assign_view_groups`", "severity": "error" }, { "line": 157, "column": 13, "stop_line": 157, "stop_column": 43, "path": "src/documents/workflows/mutations.py", "code": -2, "name": "missing-attribute", "description": "Object of class `WorkflowAction` has no attribute `has_assign_change_users`", "concise_description": "Object of class `WorkflowAction` has no attribute `has_assign_change_users`", "severity": "error" }, { "line": 158, "column": 13, "stop_line": 158, "stop_column": 44, "path": "src/documents/workflows/mutations.py", "code": -2, "name": "missing-attribute", "description": "Object of class `WorkflowAction` has no attribute `has_assign_change_groups`", "concise_description": "Object of class `WorkflowAction` has no attribute `has_assign_change_groups`", "severity": "error" }, { "line": 186, "column": 8, "stop_line": 186, "stop_column": 39, "path": "src/documents/workflows/mutations.py", "code": -2, "name": "missing-attribute", "description": "Object of class `WorkflowAction` has no attribute `has_assign_custom_fields`", "concise_description": "Object of class `WorkflowAction` has no attribute `has_assign_custom_fields`", "severity": "error" }, { "line": 191, "column": 27, "stop_line": 191, "stop_column": 65, "path": "src/documents/workflows/mutations.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `get`", "concise_description": "Object of class `NoneType` has no attribute `get`", "severity": "error" }, { "line": 257, "column": 13, "stop_line": 257, "stop_column": 41, "path": "src/documents/workflows/mutations.py", "code": -2, "name": "missing-attribute", "description": "Object of class `WorkflowAction` has no attribute `has_remove_view_users`", "concise_description": "Object of class `WorkflowAction` has no attribute `has_remove_view_users`", "severity": "error" }, { "line": 258, "column": 13, "stop_line": 258, "stop_column": 42, "path": "src/documents/workflows/mutations.py", "code": -2, "name": "missing-attribute", "description": "Object of class `WorkflowAction` has no attribute `has_remove_view_groups`", "concise_description": "Object of class `WorkflowAction` has no attribute `has_remove_view_groups`", "severity": "error" }, { "line": 259, "column": 13, "stop_line": 259, "stop_column": 43, "path": "src/documents/workflows/mutations.py", "code": -2, "name": "missing-attribute", "description": "Object of class `WorkflowAction` has no attribute `has_remove_change_users`", "concise_description": "Object of class `WorkflowAction` has no attribute `has_remove_change_users`", "severity": "error" }, { "line": 260, "column": 13, "stop_line": 260, "stop_column": 44, "path": "src/documents/workflows/mutations.py", "code": -2, "name": "missing-attribute", "description": "Object of class `WorkflowAction` has no attribute `has_remove_change_groups`", "concise_description": "Object of class `WorkflowAction` has no attribute `has_remove_change_groups`", "severity": "error" }, { "line": 273, "column": 9, "stop_line": 273, "stop_column": 74, "path": "src/documents/workflows/mutations.py", "code": -2, "name": "missing-attribute", "description": "Object of class `QuerySet` has no attribute `hard_delete`", "concise_description": "Object of class `QuerySet` has no attribute `hard_delete`", "severity": "error" }, { "line": 274, "column": 10, "stop_line": 274, "stop_column": 41, "path": "src/documents/workflows/mutations.py", "code": -2, "name": "missing-attribute", "description": "Object of class `WorkflowAction` has no attribute `has_remove_custom_fields`", "concise_description": "Object of class `WorkflowAction` has no attribute `has_remove_custom_fields`", "severity": "error" }, { "line": 275, "column": 9, "stop_line": 278, "stop_column": 22, "path": "src/documents/workflows/mutations.py", "code": -2, "name": "missing-attribute", "description": "Object of class `QuerySet` has no attribute `hard_delete`", "concise_description": "Object of class `QuerySet` has no attribute `hard_delete`", "severity": "error" }, { "line": 331, "column": 13, "stop_line": 331, "stop_column": 41, "path": "src/documents/workflows/mutations.py", "code": -2, "name": "missing-attribute", "description": "Object of class `WorkflowAction` has no attribute `has_remove_view_users`", "concise_description": "Object of class `WorkflowAction` has no attribute `has_remove_view_users`", "severity": "error" }, { "line": 332, "column": 13, "stop_line": 332, "stop_column": 42, "path": "src/documents/workflows/mutations.py", "code": -2, "name": "missing-attribute", "description": "Object of class `WorkflowAction` has no attribute `has_remove_view_groups`", "concise_description": "Object of class `WorkflowAction` has no attribute `has_remove_view_groups`", "severity": "error" }, { "line": 333, "column": 13, "stop_line": 333, "stop_column": 43, "path": "src/documents/workflows/mutations.py", "code": -2, "name": "missing-attribute", "description": "Object of class `WorkflowAction` has no attribute `has_remove_change_users`", "concise_description": "Object of class `WorkflowAction` has no attribute `has_remove_change_users`", "severity": "error" }, { "line": 334, "column": 13, "stop_line": 334, "stop_column": 44, "path": "src/documents/workflows/mutations.py", "code": -2, "name": "missing-attribute", "description": "Object of class `WorkflowAction` has no attribute `has_remove_change_groups`", "concise_description": "Object of class `WorkflowAction` has no attribute `has_remove_change_groups`", "severity": "error" }, { "line": 356, "column": 10, "stop_line": 356, "stop_column": 41, "path": "src/documents/workflows/mutations.py", "code": -2, "name": "missing-attribute", "description": "Object of class `WorkflowAction` has no attribute `has_remove_custom_fields`", "concise_description": "Object of class `WorkflowAction` has no attribute `has_remove_custom_fields`", "severity": "error" }, { "line": 23, "column": 9, "stop_line": 23, "stop_column": 27, "path": "src/paperless/adapter.py", "code": -2, "name": "bad-override", "description": "Class member `CustomAccountAdapter.is_open_for_signup` overrides parent class `DefaultAccountAdapter` in an inconsistent manner\n `CustomAccountAdapter.is_open_for_signup` has type `(self: CustomAccountAdapter, request: Unknown) -> bool | Any`, which is not assignable to `(self: CustomAccountAdapter, request: Unknown) -> Literal[True]`, the type of `DefaultAccountAdapter.is_open_for_signup`\n Signature mismatch:\n expected: def is_open_for_signup(self: CustomAccountAdapter, request: Unknown) -> Literal[True]: ...\n ^^^^^^^^^^^^^ return type\n found: def is_open_for_signup(self: CustomAccountAdapter, request: Unknown) -> bool | Any: ...\n ^^^^^^^^^^ return type", "concise_description": "Class member `CustomAccountAdapter.is_open_for_signup` overrides parent class `DefaultAccountAdapter` in an inconsistent manner", "severity": "error" }, { "line": 58, "column": 26, "stop_line": 58, "stop_column": 50, "path": "src/paperless/adapter.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `get_host`", "concise_description": "Object of class `NoneType` has no attribute `get_host`", "severity": "error" }, { "line": 63, "column": 31, "stop_line": 63, "stop_column": 55, "path": "src/paperless/adapter.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `get_host`", "concise_description": "Object of class `NoneType` has no attribute `get_host`", "severity": "error" }, { "line": 109, "column": 9, "stop_line": 109, "stop_column": 27, "path": "src/paperless/adapter.py", "code": -2, "name": "bad-override", "description": "Class member `CustomSocialAccountAdapter.is_open_for_signup` overrides parent class `DefaultSocialAccountAdapter` in an inconsistent manner\n `CustomSocialAccountAdapter.is_open_for_signup` has type `(self: CustomSocialAccountAdapter, request: Unknown, sociallogin: Unknown) -> bool | Any`, which is not assignable to `(self: CustomSocialAccountAdapter, request: Unknown, sociallogin: Unknown) -> Literal[True]`, the type of `DefaultSocialAccountAdapter.is_open_for_signup`\n Signature mismatch:\n expected: def is_open_for_signup(self: CustomSocialAccountAdapter, request: Unknown, sociallogin: Unknown) -> Literal[True]: ...\n ^^^^^^^^^^^^^ return type\n found: def is_open_for_signup(self: CustomSocialAccountAdapter, request: Unknown, sociallogin: Unknown) -> bool | Any: ...\n ^^^^^^^^^^ return type", "concise_description": "Class member `CustomSocialAccountAdapter.is_open_for_signup` overrides parent class `DefaultSocialAccountAdapter` in an inconsistent manner", "severity": "error" }, { "line": 30, "column": 24, "stop_line": 30, "stop_column": 40, "path": "src/paperless/admin.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `get`", "concise_description": "Object of class `NoneType` has no attribute `get`", "severity": "error" }, { "line": 33, "column": 17, "stop_line": 33, "stop_column": 29, "path": "src/paperless/admin.py", "code": -2, "name": "missing-attribute", "description": "Object of class `PaperlessUserForm` has no attribute `request`", "concise_description": "Object of class `PaperlessUserForm` has no attribute `request`", "severity": "error" }, { "line": 48, "column": 9, "stop_line": 48, "stop_column": 21, "path": "src/paperless/admin.py", "code": -2, "name": "bad-argument-count", "description": "Missing positional argument `value` in function `object.__setattr__`", "concise_description": "Missing positional argument `value` in function `object.__setattr__`", "severity": "error" }, { "line": 48, "column": 9, "stop_line": 48, "stop_column": 21, "path": "src/paperless/admin.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Literal['request']` is not assignable to parameter `self` with type `ModelForm[Unknown]` in function `object.__setattr__`", "concise_description": "Argument `Literal['request']` is not assignable to parameter `self` with type `ModelForm[Unknown]` in function `object.__setattr__`", "severity": "error" }, { "line": 65, "column": 20, "stop_line": 65, "stop_column": 46, "path": "src/paperless/auth.py", "code": -2, "name": "bad-return", "description": "Returned type `Awaitable[HttpResponseBase] | HttpResponseBase` is not assignable to declared return type `None`", "concise_description": "Returned type `Awaitable[HttpResponseBase] | HttpResponseBase` is not assignable to declared return type `None`", "severity": "error" }, { "line": 66, "column": 16, "stop_line": 66, "stop_column": 41, "path": "src/paperless/auth.py", "code": -2, "name": "bad-return", "description": "Returned type `Awaitable[HttpResponseBase] | HttpResponseBase` is not assignable to declared return type `None`", "concise_description": "Returned type `Awaitable[HttpResponseBase] | HttpResponseBase` is not assignable to declared return type `None`", "severity": "error" }, { "line": 51, "column": 5, "stop_line": 51, "stop_column": 24, "path": "src/paperless/celery.py", "code": -2, "name": "bad-argument-type", "description": "Argument `(obj: object) -> bytes` is not assignable to parameter `encoder` with type `((Any) -> str) | None` in function `kombu.serialization.register`", "concise_description": "Argument `(obj: object) -> bytes` is not assignable to parameter `encoder` with type `((Any) -> str) | None` in function `kombu.serialization.register`", "severity": "error" }, { "line": 52, "column": 5, "stop_line": 52, "stop_column": 24, "path": "src/paperless/celery.py", "code": -2, "name": "bad-argument-type", "description": "Argument `(payload: bytes) -> object` is not assignable to parameter `decoder` with type `((str) -> Any) | None` in function `kombu.serialization.register`", "concise_description": "Argument `(payload: bytes) -> object` is not assignable to parameter `decoder` with type `((str) -> Any) | None` in function `kombu.serialization.register`", "severity": "error" }, { "line": 93, "column": 12, "stop_line": 93, "stop_column": 26, "path": "src/paperless/checks.py", "code": -2, "name": "bad-return", "description": "Returned type `list[Warning]` is not assignable to declared return type `list[Error]`", "concise_description": "Returned type `list[Warning]` is not assignable to declared return type `list[Error]`", "severity": "error" }, { "line": 179, "column": 9, "stop_line": 181, "stop_column": 40, "path": "src/paperless/checks.py", "code": -2, "name": "bad-return", "description": "Returned type `list[Error]` is not assignable to declared return type `list[Error | Warning]`", "concise_description": "Returned type `list[Error]` is not assignable to declared return type `list[Error | Warning]`", "severity": "error" }, { "line": 198, "column": 12, "stop_line": 198, "stop_column": 18, "path": "src/paperless/checks.py", "code": -2, "name": "bad-return", "description": "Returned type `list[Warning]` is not assignable to declared return type `list[Error]`", "concise_description": "Returned type `list[Warning]` is not assignable to declared return type `list[Error]`", "severity": "error" }, { "line": 347, "column": 26, "stop_line": 350, "stop_column": 6, "path": "src/paperless/checks.py", "code": -2, "name": "no-matching-overload", "description": "No matching overload found for function `subprocess.run` called with arguments: (list[str | None], capture_output=Literal[True])\n Possible overloads:\n (args: _CMD, bufsize: int = -1, executable: PathLike[bytes] | PathLike[str] | bytes | str | None = None, stdin: _FILE = None, stdout: _FILE = None, stderr: _FILE = None, preexec_fn: (() -> object) | None = None, close_fds: bool = True, shell: bool = False, cwd: PathLike[bytes] | PathLike[str] | bytes | str | None = None, env: Mapping[bytes, StrOrBytesPath] | Mapping[str, StrOrBytesPath] | None = None, universal_newlines: bool | None = None, startupinfo: Any = None, creationflags: int = 0, restore_signals: bool = True, start_new_session: bool = False, pass_fds: Collection[int] = ..., *, capture_output: bool = False, check: bool = False, encoding: str | None = None, errors: str | None = None, input: str | None = None, text: Literal[True], timeout: float | None = None, user: int | str | None = None, group: int | str | None = None, extra_groups: Iterable[int | str] | None = None, umask: int = -1, pipesize: int = -1, process_group: int | None = None) -> CompletedProcess[str]\n (args: _CMD, bufsize: int = -1, executable: PathLike[bytes] | PathLike[str] | bytes | str | None = None, stdin: _FILE = None, stdout: _FILE = None, stderr: _FILE = None, preexec_fn: (() -> object) | None = None, close_fds: bool = True, shell: bool = False, cwd: PathLike[bytes] | PathLike[str] | bytes | str | None = None, env: Mapping[bytes, StrOrBytesPath] | Mapping[str, StrOrBytesPath] | None = None, universal_newlines: bool | None = None, startupinfo: Any = None, creationflags: int = 0, restore_signals: bool = True, start_new_session: bool = False, pass_fds: Collection[int] = ..., *, capture_output: bool = False, check: bool = False, encoding: str, errors: str | None = None, input: str | None = None, text: bool | None = None, timeout: float | None = None, user: int | str | None = None, group: int | str | None = None, extra_groups: Iterable[int | str] | None = None, umask: int = -1, pipesize: int = -1, process_group: int | None = None) -> CompletedProcess[str]\n (args: _CMD, bufsize: int = -1, executable: PathLike[bytes] | PathLike[str] | bytes | str | None = None, stdin: _FILE = None, stdout: _FILE = None, stderr: _FILE = None, preexec_fn: (() -> object) | None = None, close_fds: bool = True, shell: bool = False, cwd: PathLike[bytes] | PathLike[str] | bytes | str | None = None, env: Mapping[bytes, StrOrBytesPath] | Mapping[str, StrOrBytesPath] | None = None, universal_newlines: bool | None = None, startupinfo: Any = None, creationflags: int = 0, restore_signals: bool = True, start_new_session: bool = False, pass_fds: Collection[int] = ..., *, capture_output: bool = False, check: bool = False, encoding: str | None = None, errors: str, input: str | None = None, text: bool | None = None, timeout: float | None = None, user: int | str | None = None, group: int | str | None = None, extra_groups: Iterable[int | str] | None = None, umask: int = -1, pipesize: int = -1, process_group: int | None = None) -> CompletedProcess[str]\n (args: _CMD, bufsize: int = -1, executable: PathLike[bytes] | PathLike[str] | bytes | str | None = None, stdin: _FILE = None, stdout: _FILE = None, stderr: _FILE = None, preexec_fn: (() -> object) | None = None, close_fds: bool = True, shell: bool = False, cwd: PathLike[bytes] | PathLike[str] | bytes | str | None = None, env: Mapping[bytes, StrOrBytesPath] | Mapping[str, StrOrBytesPath] | None = None, *, universal_newlines: Literal[True], startupinfo: Any = None, creationflags: int = 0, restore_signals: bool = True, start_new_session: bool = False, pass_fds: Collection[int] = ..., capture_output: bool = False, check: bool = False, encoding: str | None = None, errors: str | None = None, input: str | None = None, text: bool | None = None, timeout: float | None = None, user: int | str | None = None, group: int | str | None = None, extra_groups: Iterable[int | str] | None = None, umask: int = -1, pipesize: int = -1, process_group: int | None = None) -> CompletedProcess[str]\n (args: _CMD, bufsize: int = -1, executable: PathLike[bytes] | PathLike[str] | bytes | str | None = None, stdin: _FILE = None, stdout: _FILE = None, stderr: _FILE = None, preexec_fn: (() -> object) | None = None, close_fds: bool = True, shell: bool = False, cwd: PathLike[bytes] | PathLike[str] | bytes | str | None = None, env: Mapping[bytes, StrOrBytesPath] | Mapping[str, StrOrBytesPath] | None = None, universal_newlines: Literal[False] | None = None, startupinfo: Any = None, creationflags: int = 0, restore_signals: bool = True, start_new_session: bool = False, pass_fds: Collection[int] = ..., *, capture_output: bool = False, check: bool = False, encoding: None = None, errors: None = None, input: Buffer | None = None, text: Literal[False] | None = None, timeout: float | None = None, user: int | str | None = None, group: int | str | None = None, extra_groups: Iterable[int | str] | None = None, umask: int = -1, pipesize: int = -1, process_group: int | None = None) -> CompletedProcess[bytes] [closest match]\n (args: _CMD, bufsize: int = -1, executable: PathLike[bytes] | PathLike[str] | bytes | str | None = None, stdin: _FILE = None, stdout: _FILE = None, stderr: _FILE = None, preexec_fn: (() -> object) | None = None, close_fds: bool = True, shell: bool = False, cwd: PathLike[bytes] | PathLike[str] | bytes | str | None = None, env: Mapping[bytes, StrOrBytesPath] | Mapping[str, StrOrBytesPath] | None = None, universal_newlines: bool | None = None, startupinfo: Any = None, creationflags: int = 0, restore_signals: bool = True, start_new_session: bool = False, pass_fds: Collection[int] = ..., *, capture_output: bool = False, check: bool = False, encoding: str | None = None, errors: str | None = None, input: Buffer | str | None = None, text: bool | None = None, timeout: float | None = None, user: int | str | None = None, group: int | str | None = None, extra_groups: Iterable[int | str] | None = None, umask: int = -1, pipesize: int = -1, process_group: int | None = None) -> CompletedProcess[Any]", "concise_description": "No matching overload found for function `subprocess.run` called with arguments: (list[str | None], capture_output=Literal[True])", "severity": "error" }, { "line": 369, "column": 16, "stop_line": 369, "stop_column": 20, "path": "src/paperless/checks.py", "code": -2, "name": "bad-return", "description": "Returned type `list[Warning]` is not assignable to declared return type `list[Error]`", "concise_description": "Returned type `list[Warning]` is not assignable to declared return type `list[Error]`", "severity": "error" }, { "line": 381, "column": 21, "stop_line": 385, "stop_column": 22, "path": "src/paperless/checks.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Error` is not assignable to parameter `object` with type `Warning` in function `list.append`", "concise_description": "Argument `Error` is not assignable to parameter `object` with type `Warning` in function `list.append`", "severity": "error" }, { "line": 388, "column": 12, "stop_line": 388, "stop_column": 16, "path": "src/paperless/checks.py", "code": -2, "name": "bad-return", "description": "Returned type `list[Warning]` is not assignable to declared return type `list[Error]`", "concise_description": "Returned type `list[Warning]` is not assignable to declared return type `list[Error]`", "severity": "error" }, { "line": 27, "column": 16, "stop_line": 27, "stop_column": 26, "path": "src/paperless/config.py", "code": -2, "name": "bad-return", "description": "Returned type `ApplicationConfiguration | None` is not assignable to declared return type `ApplicationConfiguration`", "concise_description": "Returned type `ApplicationConfiguration | None` is not assignable to declared return type `ApplicationConfiguration`", "severity": "error" }, { "line": 41, "column": 28, "stop_line": 41, "stop_column": 78, "path": "src/paperless/config.py", "code": -2, "name": "bad-assignment", "description": "`str | Any` is not assignable to attribute `output_type` with type `OutputTypeChoices`", "concise_description": "`str | Any` is not assignable to attribute `output_type` with type `OutputTypeChoices`", "severity": "error" }, { "line": 73, "column": 21, "stop_line": 73, "stop_column": 57, "path": "src/paperless/config.py", "code": -2, "name": "bad-assignment", "description": "`str | Any` is not assignable to attribute `mode` with type `ModeChoices`", "concise_description": "`str | Any` is not assignable to attribute `mode` with type `ModeChoices`", "severity": "error" }, { "line": 75, "column": 13, "stop_line": 75, "stop_column": 83, "path": "src/paperless/config.py", "code": -2, "name": "bad-assignment", "description": "`str | Any` is not assignable to attribute `archive_file_generation` with type `ArchiveFileGenerationChoices`", "concise_description": "`str | Any` is not assignable to attribute `archive_file_generation` with type `ArchiveFileGenerationChoices`", "severity": "error" }, { "line": 78, "column": 22, "stop_line": 78, "stop_column": 68, "path": "src/paperless/config.py", "code": -2, "name": "bad-assignment", "description": "`str | Any` is not assignable to attribute `clean` with type `CleanChoices`", "concise_description": "`str | Any` is not assignable to attribute `clean` with type `CleanChoices`", "severity": "error" }, { "line": 94, "column": 13, "stop_line": 95, "stop_column": 54, "path": "src/paperless/config.py", "code": -2, "name": "bad-assignment", "description": "`str | Any` is not assignable to attribute `color_conversion_strategy` with type `ColorConvertChoices`", "concise_description": "`str | Any` is not assignable to attribute `color_conversion_strategy` with type `ColorConvertChoices`", "severity": "error" }, { "line": 181, "column": 26, "stop_line": 181, "stop_column": 54, "path": "src/paperless/config.py", "code": -2, "name": "bad-assignment", "description": "`str | None` is not assignable to attribute `app_title` with type `str`", "concise_description": "`str | None` is not assignable to attribute `app_title` with type `str`", "severity": "error" }, { "line": 182, "column": 25, "stop_line": 182, "stop_column": 81, "path": "src/paperless/config.py", "code": -2, "name": "bad-assignment", "description": "`Unknown | None` is not assignable to attribute `app_logo` with type `str`", "concise_description": "`Unknown | None` is not assignable to attribute `app_logo` with type `str`", "severity": "error" }, { "line": 31, "column": 12, "stop_line": 31, "stop_column": 29, "path": "src/paperless/consumers.py", "code": -2, "name": "missing-attribute", "description": "Object of class `AbstractBaseUser` has no attribute `is_superuser`", "concise_description": "Object of class `AbstractBaseUser` has no attribute `is_superuser`", "severity": "error" }, { "line": 34, "column": 22, "stop_line": 34, "stop_column": 33, "path": "src/paperless/consumers.py", "code": -2, "name": "missing-attribute", "description": "Object of class `AbstractBaseUser` has no attribute `groups`", "concise_description": "Object of class `AbstractBaseUser` has no attribute `groups`", "severity": "error" }, { "line": 49, "column": 35, "stop_line": 49, "stop_column": 48, "path": "src/paperless/consumers.py", "code": -2, "name": "bad-argument-type", "description": "Argument `ProgressUpdateData` is not assignable to parameter `data` with type `PermissionsData` in function `StatusConsumer._can_view`\n Field `owner_id` is `NotRequired` and read-write in `PermissionsData`, so it cannot be required in `ProgressUpdateData`", "concise_description": "Argument `ProgressUpdateData` is not assignable to parameter `data` with type `PermissionsData` in function `StatusConsumer._can_view`", "severity": "error" }, { "line": 61, "column": 35, "stop_line": 61, "stop_column": 48, "path": "src/paperless/consumers.py", "code": -2, "name": "bad-argument-type", "description": "Argument `DocumentUpdatedData` is not assignable to parameter `data` with type `PermissionsData` in function `StatusConsumer._can_view`\n Field `owner_id` is `NotRequired` and read-write in `PermissionsData`, so it cannot be required in `DocumentUpdatedData`", "concise_description": "Argument `DocumentUpdatedData` is not assignable to parameter `data` with type `PermissionsData` in function `StatusConsumer._can_view`", "severity": "error" }, { "line": 31, "column": 12, "stop_line": 31, "stop_column": 15, "path": "src/paperless/network.py", "code": -2, "name": "bad-return", "description": "Returned type `list[int | str]` is not assignable to declared return type `list[str]`", "concise_description": "Returned type `list[int | str]` is not assignable to declared return type `list[str]`", "severity": "error" }, { "line": 404, "column": 17, "stop_line": 404, "stop_column": 70, "path": "src/paperless/parsers/tesseract.py", "code": -2, "name": "bad-argument-type", "description": "Argument `bytes | None` is not assignable to parameter `data` with type `Buffer` in function `pathlib.Path.write_bytes`\n Protocol `Buffer` requires attribute `__buffer__`", "concise_description": "Argument `bytes | None` is not assignable to parameter `data` with type `Buffer` in function `pathlib.Path.write_bytes`", "severity": "error" }, { "line": 61, "column": 38, "stop_line": 61, "stop_column": 56, "path": "src/paperless/parsers/utils.py", "code": -2, "name": "no-matching-overload", "description": "No matching overload found for function `pikepdf._core.Object.get` called with arguments: (Literal['/Marked'], Literal[False])\n Possible overloads:\n (key: Name | int | str, default: T | None = ...) -> Object | T | None [closest match]\n (path: _NamePath, default: T | None = ...) -> Object | T | None", "concise_description": "No matching overload found for function `pikepdf._core.Object.get` called with arguments: (Literal['/Marked'], Literal[False])", "severity": "error" }, { "line": 39, "column": 16, "stop_line": 39, "stop_column": 29, "path": "src/paperless/serialisers.py", "code": -2, "name": "missing-attribute", "description": "Object of class `PasswordValidationMixin` has no attribute `instance`", "concise_description": "Object of class `PasswordValidationMixin` has no attribute `instance`", "severity": "error" }, { "line": 92, "column": 11, "stop_line": 92, "stop_column": 15, "path": "src/paperless/serialisers.py", "code": -2, "name": "bad-override", "description": "Class member `UserSerializer.Meta` overrides parent class `ModelSerializer` in an inconsistent manner\n `UserSerializer.Meta` has type `type[UserSerializer.Meta]`, which is not assignable to `type[ModelSerializer.Meta]`, the type of `ModelSerializer.Meta`", "concise_description": "Class member `UserSerializer.Meta` overrides parent class `ModelSerializer` in an inconsistent manner", "severity": "error" }, { "line": 152, "column": 11, "stop_line": 152, "stop_column": 15, "path": "src/paperless/serialisers.py", "code": -2, "name": "bad-override", "description": "Class member `GroupSerializer.Meta` overrides parent class `ModelSerializer` in an inconsistent manner\n `GroupSerializer.Meta` has type `type[GroupSerializer.Meta]`, which is not assignable to `type[ModelSerializer.Meta]`, the type of `ModelSerializer.Meta`", "concise_description": "Class member `GroupSerializer.Meta` overrides parent class `ModelSerializer` in an inconsistent manner", "severity": "error" }, { "line": 164, "column": 11, "stop_line": 164, "stop_column": 15, "path": "src/paperless/serialisers.py", "code": -2, "name": "bad-override", "description": "Class member `SocialAccountSerializer.Meta` overrides parent class `ModelSerializer` in an inconsistent manner\n `SocialAccountSerializer.Meta` has type `type[SocialAccountSerializer.Meta]`, which is not assignable to `type[ModelSerializer.Meta]`, the type of `ModelSerializer.Meta`", "concise_description": "Class member `SocialAccountSerializer.Meta` overrides parent class `ModelSerializer` in an inconsistent manner", "severity": "error" }, { "line": 198, "column": 11, "stop_line": 198, "stop_column": 15, "path": "src/paperless/serialisers.py", "code": -2, "name": "bad-override", "description": "Class member `ProfileSerializer.Meta` overrides parent class `ModelSerializer` in an inconsistent manner\n `ProfileSerializer.Meta` has type `type[ProfileSerializer.Meta]`, which is not assignable to `type[ModelSerializer.Meta]`, the type of `ModelSerializer.Meta`", "concise_description": "Class member `ProfileSerializer.Meta` overrides parent class `ModelSerializer` in an inconsistent manner", "severity": "error" }, { "line": 222, "column": 9, "stop_line": 222, "stop_column": 23, "path": "src/paperless/serialisers.py", "code": -2, "name": "bad-override", "description": "Class member `ApplicationConfigurationSerializer.run_validation` overrides parent class `ModelSerializer` in an inconsistent manner\n `ApplicationConfigurationSerializer.run_validation` has type `(self: ApplicationConfigurationSerializer, data: Unknown) -> Any`, which is not assignable to `(self: ApplicationConfigurationSerializer, data: Any = ...) -> Any`, the type of `ModelSerializer.run_validation`\n Signature mismatch:\n expected: def run_validation(self: ApplicationConfigurationSerializer, data: Any = ...) -> Any: ...\n ^^^^^^^^^ parameters\n found: def run_validation(self: ApplicationConfigurationSerializer, data: Unknown) -> Any: ...\n ^^^^^^^ parameters", "concise_description": "Class member `ApplicationConfigurationSerializer.run_validation` overrides parent class `ModelSerializer` in an inconsistent manner", "severity": "error" }, { "line": 251, "column": 28, "stop_line": 251, "stop_column": 43, "path": "src/paperless/serialisers.py", "code": -2, "name": "missing-attribute", "description": "Object of class `UploadedFile` has no attribute `field_name`", "concise_description": "Object of class `UploadedFile` has no attribute `field_name`", "severity": "error" }, { "line": 294, "column": 11, "stop_line": 294, "stop_column": 15, "path": "src/paperless/serialisers.py", "code": -2, "name": "bad-override", "description": "Class member `ApplicationConfigurationSerializer.Meta` overrides parent class `ModelSerializer` in an inconsistent manner\n `ApplicationConfigurationSerializer.Meta` has type `type[ApplicationConfigurationSerializer.Meta]`, which is not assignable to `type[ModelSerializer.Meta]`, the type of `ModelSerializer.Meta`", "concise_description": "Class member `ApplicationConfigurationSerializer.Meta` overrides parent class `ModelSerializer` in an inconsistent manner", "severity": "error" }, { "line": 278, "column": 43, "stop_line": 283, "stop_column": 6, "path": "src/paperless/settings/__init__.py", "code": -2, "name": "bad-typed-dict-key", "description": "`dict[str, int | list[str] | str]` is not assignable to TypedDict key `CONFIG` with type `str`", "concise_description": "`dict[str, int | list[str] | str]` is not assignable to TypedDict key `CONFIG` with type `str`", "severity": "error" }, { "line": 449, "column": 30, "stop_line": 449, "stop_column": 52, "path": "src/paperless/settings/__init__.py", "code": -2, "name": "bad-argument-type", "description": "Argument `str | None` is not assignable to parameter `object` with type `str` in function `list.append`", "concise_description": "Argument `str | None` is not assignable to parameter `object` with type `str` in function `list.append`", "severity": "error" }, { "line": 1015, "column": 39, "stop_line": 1015, "stop_column": 74, "path": "src/paperless/settings/__init__.py", "code": -2, "name": "bad-argument-type", "description": "Argument `str | None` is not assignable to parameter `env_ignore` with type `str` in function `paperless.settings.custom.parse_ignore_dates`", "concise_description": "Argument `str | None` is not assignable to parameter `env_ignore` with type `str` in function `paperless.settings.custom.parse_ignore_dates`", "severity": "error" }, { "line": 171, "column": 27, "stop_line": 171, "stop_column": 42, "path": "src/paperless/settings/custom.py", "code": -2, "name": "bad-argument-type", "description": "Argument `dict[str, float] | str` is not assignable to parameter `key` with type `str` in function `os.getenv`", "concise_description": "Argument `dict[str, float] | str` is not assignable to parameter `key` with type `str` in function `os.getenv`", "severity": "error" }, { "line": 179, "column": 52, "stop_line": 179, "stop_column": 63, "path": "src/paperless/settings/custom.py", "code": -2, "name": "missing-attribute", "description": "Object of class `dict` has no attribute `split`", "concise_description": "Object of class `dict` has no attribute `split`", "severity": "error" }, { "line": 771, "column": 12, "stop_line": 771, "stop_column": 24, "path": "src/paperless/tests/parsers/conftest.py", "code": -2, "name": "bad-return", "description": "Returned type `(**django_settings_overrides: Unknown) -> _GeneratorContextManager[RasterisedDocumentParser]` is not assignable to declared return type `(...) -> Generator[RasterisedDocumentParser]`\n Protocol `Generator` requires attribute `__next__`", "concise_description": "Returned type `(**django_settings_overrides: Unknown) -> _GeneratorContextManager[RasterisedDocumentParser]` is not assignable to declared return type `(...) -> Generator[RasterisedDocumentParser]`", "severity": "error" }, { "line": 168, "column": 45, "stop_line": 168, "stop_column": 49, "path": "src/paperless/tests/parsers/test_mail_parser.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Literal['na']` is not assignable to parameter `document_path` with type `Path` in function `paperless.parsers.mail.MailDocumentParser.extract_metadata`", "concise_description": "Argument `Literal['na']` is not assignable to parameter `document_path` with type `Path` in function `paperless.parsers.mail.MailDocumentParser.extract_metadata`", "severity": "error" }, { "line": 372, "column": 47, "stop_line": 372, "stop_column": 75, "path": "src/paperless/tests/parsers/test_mail_parser.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `url`", "concise_description": "Object of class `NoneType` has no attribute `url`", "severity": "error" }, { "line": 727, "column": 20, "stop_line": 727, "stop_column": 31, "path": "src/paperless/tests/parsers/test_mail_parser.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `url`", "concise_description": "Object of class `NoneType` has no attribute `url`", "severity": "error" }, { "line": 25, "column": 23, "stop_line": 36, "stop_column": 10, "path": "src/paperless/tests/parsers/test_mail_parser_live.py", "code": -2, "name": "no-matching-overload", "description": "No matching overload found for function `subprocess.run` called with arguments: (list[str | None], check=Literal[True])\n Possible overloads:\n (args: _CMD, bufsize: int = -1, executable: PathLike[bytes] | PathLike[str] | bytes | str | None = None, stdin: _FILE = None, stdout: _FILE = None, stderr: _FILE = None, preexec_fn: (() -> object) | None = None, close_fds: bool = True, shell: bool = False, cwd: PathLike[bytes] | PathLike[str] | bytes | str | None = None, env: Mapping[bytes, StrOrBytesPath] | Mapping[str, StrOrBytesPath] | None = None, universal_newlines: bool | None = None, startupinfo: Any = None, creationflags: int = 0, restore_signals: bool = True, start_new_session: bool = False, pass_fds: Collection[int] = ..., *, capture_output: bool = False, check: bool = False, encoding: str | None = None, errors: str | None = None, input: str | None = None, text: Literal[True], timeout: float | None = None, user: int | str | None = None, group: int | str | None = None, extra_groups: Iterable[int | str] | None = None, umask: int = -1, pipesize: int = -1, process_group: int | None = None) -> CompletedProcess[str]\n (args: _CMD, bufsize: int = -1, executable: PathLike[bytes] | PathLike[str] | bytes | str | None = None, stdin: _FILE = None, stdout: _FILE = None, stderr: _FILE = None, preexec_fn: (() -> object) | None = None, close_fds: bool = True, shell: bool = False, cwd: PathLike[bytes] | PathLike[str] | bytes | str | None = None, env: Mapping[bytes, StrOrBytesPath] | Mapping[str, StrOrBytesPath] | None = None, universal_newlines: bool | None = None, startupinfo: Any = None, creationflags: int = 0, restore_signals: bool = True, start_new_session: bool = False, pass_fds: Collection[int] = ..., *, capture_output: bool = False, check: bool = False, encoding: str, errors: str | None = None, input: str | None = None, text: bool | None = None, timeout: float | None = None, user: int | str | None = None, group: int | str | None = None, extra_groups: Iterable[int | str] | None = None, umask: int = -1, pipesize: int = -1, process_group: int | None = None) -> CompletedProcess[str]\n (args: _CMD, bufsize: int = -1, executable: PathLike[bytes] | PathLike[str] | bytes | str | None = None, stdin: _FILE = None, stdout: _FILE = None, stderr: _FILE = None, preexec_fn: (() -> object) | None = None, close_fds: bool = True, shell: bool = False, cwd: PathLike[bytes] | PathLike[str] | bytes | str | None = None, env: Mapping[bytes, StrOrBytesPath] | Mapping[str, StrOrBytesPath] | None = None, universal_newlines: bool | None = None, startupinfo: Any = None, creationflags: int = 0, restore_signals: bool = True, start_new_session: bool = False, pass_fds: Collection[int] = ..., *, capture_output: bool = False, check: bool = False, encoding: str | None = None, errors: str, input: str | None = None, text: bool | None = None, timeout: float | None = None, user: int | str | None = None, group: int | str | None = None, extra_groups: Iterable[int | str] | None = None, umask: int = -1, pipesize: int = -1, process_group: int | None = None) -> CompletedProcess[str]\n (args: _CMD, bufsize: int = -1, executable: PathLike[bytes] | PathLike[str] | bytes | str | None = None, stdin: _FILE = None, stdout: _FILE = None, stderr: _FILE = None, preexec_fn: (() -> object) | None = None, close_fds: bool = True, shell: bool = False, cwd: PathLike[bytes] | PathLike[str] | bytes | str | None = None, env: Mapping[bytes, StrOrBytesPath] | Mapping[str, StrOrBytesPath] | None = None, *, universal_newlines: Literal[True], startupinfo: Any = None, creationflags: int = 0, restore_signals: bool = True, start_new_session: bool = False, pass_fds: Collection[int] = ..., capture_output: bool = False, check: bool = False, encoding: str | None = None, errors: str | None = None, input: str | None = None, text: bool | None = None, timeout: float | None = None, user: int | str | None = None, group: int | str | None = None, extra_groups: Iterable[int | str] | None = None, umask: int = -1, pipesize: int = -1, process_group: int | None = None) -> CompletedProcess[str]\n (args: _CMD, bufsize: int = -1, executable: PathLike[bytes] | PathLike[str] | bytes | str | None = None, stdin: _FILE = None, stdout: _FILE = None, stderr: _FILE = None, preexec_fn: (() -> object) | None = None, close_fds: bool = True, shell: bool = False, cwd: PathLike[bytes] | PathLike[str] | bytes | str | None = None, env: Mapping[bytes, StrOrBytesPath] | Mapping[str, StrOrBytesPath] | None = None, universal_newlines: Literal[False] | None = None, startupinfo: Any = None, creationflags: int = 0, restore_signals: bool = True, start_new_session: bool = False, pass_fds: Collection[int] = ..., *, capture_output: bool = False, check: bool = False, encoding: None = None, errors: None = None, input: Buffer | None = None, text: Literal[False] | None = None, timeout: float | None = None, user: int | str | None = None, group: int | str | None = None, extra_groups: Iterable[int | str] | None = None, umask: int = -1, pipesize: int = -1, process_group: int | None = None) -> CompletedProcess[bytes] [closest match]\n (args: _CMD, bufsize: int = -1, executable: PathLike[bytes] | PathLike[str] | bytes | str | None = None, stdin: _FILE = None, stdout: _FILE = None, stderr: _FILE = None, preexec_fn: (() -> object) | None = None, close_fds: bool = True, shell: bool = False, cwd: PathLike[bytes] | PathLike[str] | bytes | str | None = None, env: Mapping[bytes, StrOrBytesPath] | Mapping[str, StrOrBytesPath] | None = None, universal_newlines: bool | None = None, startupinfo: Any = None, creationflags: int = 0, restore_signals: bool = True, start_new_session: bool = False, pass_fds: Collection[int] = ..., *, capture_output: bool = False, check: bool = False, encoding: str | None = None, errors: str | None = None, input: Buffer | str | None = None, text: bool | None = None, timeout: float | None = None, user: int | str | None = None, group: int | str | None = None, extra_groups: Iterable[int | str] | None = None, umask: int = -1, pipesize: int = -1, process_group: int | None = None) -> CompletedProcess[Any]", "concise_description": "No matching overload found for function `subprocess.run` called with arguments: (list[str | None], check=Literal[True])", "severity": "error" }, { "line": 264, "column": 37, "stop_line": 264, "stop_column": 49, "path": "src/paperless/tests/parsers/test_mail_parser_live.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Path | None` is not assignable to parameter `pdf_path` with type `Path` in function `extract_text`", "concise_description": "Argument `Path | None` is not assignable to parameter `pdf_path` with type `Path` in function `extract_text`", "severity": "error" }, { "line": 75, "column": 42, "stop_line": 75, "stop_column": 48, "path": "src/paperless/tests/parsers/test_parse_modes.py", "code": -2, "name": "bad-assignment", "description": "`Literal['auto']` is not assignable to attribute `mode` with type `ModeChoices`", "concise_description": "`Literal['auto']` is not assignable to attribute `mode` with type `ModeChoices`", "severity": "error" }, { "line": 109, "column": 42, "stop_line": 109, "stop_column": 48, "path": "src/paperless/tests/parsers/test_parse_modes.py", "code": -2, "name": "bad-assignment", "description": "`Literal['auto']` is not assignable to attribute `mode` with type `ModeChoices`", "concise_description": "`Literal['auto']` is not assignable to attribute `mode` with type `ModeChoices`", "severity": "error" }, { "line": 161, "column": 42, "stop_line": 161, "stop_column": 48, "path": "src/paperless/tests/parsers/test_parse_modes.py", "code": -2, "name": "bad-assignment", "description": "`Literal['auto']` is not assignable to attribute `mode` with type `ModeChoices`", "concise_description": "`Literal['auto']` is not assignable to attribute `mode` with type `ModeChoices`", "severity": "error" }, { "line": 203, "column": 42, "stop_line": 203, "stop_column": 48, "path": "src/paperless/tests/parsers/test_parse_modes.py", "code": -2, "name": "bad-assignment", "description": "`Literal['auto']` is not assignable to attribute `mode` with type `ModeChoices`", "concise_description": "`Literal['auto']` is not assignable to attribute `mode` with type `ModeChoices`", "severity": "error" }, { "line": 246, "column": 42, "stop_line": 246, "stop_column": 47, "path": "src/paperless/tests/parsers/test_parse_modes.py", "code": -2, "name": "bad-assignment", "description": "`Literal['off']` is not assignable to attribute `mode` with type `ModeChoices`", "concise_description": "`Literal['off']` is not assignable to attribute `mode` with type `ModeChoices`", "severity": "error" }, { "line": 286, "column": 42, "stop_line": 286, "stop_column": 47, "path": "src/paperless/tests/parsers/test_parse_modes.py", "code": -2, "name": "bad-assignment", "description": "`Literal['off']` is not assignable to attribute `mode` with type `ModeChoices`", "concise_description": "`Literal['off']` is not assignable to attribute `mode` with type `ModeChoices`", "severity": "error" }, { "line": 326, "column": 42, "stop_line": 326, "stop_column": 47, "path": "src/paperless/tests/parsers/test_parse_modes.py", "code": -2, "name": "bad-assignment", "description": "`Literal['off']` is not assignable to attribute `mode` with type `ModeChoices`", "concise_description": "`Literal['off']` is not assignable to attribute `mode` with type `ModeChoices`", "severity": "error" }, { "line": 358, "column": 42, "stop_line": 358, "stop_column": 47, "path": "src/paperless/tests/parsers/test_parse_modes.py", "code": -2, "name": "bad-assignment", "description": "`Literal['off']` is not assignable to attribute `mode` with type `ModeChoices`", "concise_description": "`Literal['off']` is not assignable to attribute `mode` with type `ModeChoices`", "severity": "error" }, { "line": 399, "column": 42, "stop_line": 399, "stop_column": 46, "path": "src/paperless/tests/parsers/test_parse_modes.py", "code": -2, "name": "bad-assignment", "description": "`str` is not assignable to attribute `mode` with type `ModeChoices`", "concise_description": "`str` is not assignable to attribute `mode` with type `ModeChoices`", "severity": "error" }, { "line": 432, "column": 42, "stop_line": 432, "stop_column": 48, "path": "src/paperless/tests/parsers/test_parse_modes.py", "code": -2, "name": "bad-assignment", "description": "`Literal['auto']` is not assignable to attribute `mode` with type `ModeChoices`", "concise_description": "`Literal['auto']` is not assignable to attribute `mode` with type `ModeChoices`", "severity": "error" }, { "line": 77, "column": 34, "stop_line": 77, "stop_column": 36, "path": "src/paperless/tests/parsers/test_remote_parser.py", "code": -2, "name": "bad-argument-count", "description": "Expected 1 more positional argument", "concise_description": "Expected 1 more positional argument", "severity": "error" }, { "line": 28, "column": 24, "stop_line": 28, "stop_column": 35, "path": "src/paperless/tests/parsers/test_tesseract_custom_settings.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Literal['input.pdf']` is not assignable to parameter `input_file` with type `Path` in function `paperless.parsers.tesseract.RasterisedDocumentParser.construct_ocrmypdf_parameters`", "concise_description": "Argument `Literal['input.pdf']` is not assignable to parameter `input_file` with type `Path` in function `paperless.parsers.tesseract.RasterisedDocumentParser.construct_ocrmypdf_parameters`", "severity": "error" }, { "line": 29, "column": 25, "stop_line": 29, "stop_column": 37, "path": "src/paperless/tests/parsers/test_tesseract_custom_settings.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Literal['output.pdf']` is not assignable to parameter `output_file` with type `Path` in function `paperless.parsers.tesseract.RasterisedDocumentParser.construct_ocrmypdf_parameters`", "concise_description": "Argument `Literal['output.pdf']` is not assignable to parameter `output_file` with type `Path` in function `paperless.parsers.tesseract.RasterisedDocumentParser.construct_ocrmypdf_parameters`", "severity": "error" }, { "line": 30, "column": 26, "stop_line": 30, "stop_column": 39, "path": "src/paperless/tests/parsers/test_tesseract_custom_settings.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Literal['sidecar.txt']` is not assignable to parameter `sidecar_file` with type `Path` in function `paperless.parsers.tesseract.RasterisedDocumentParser.construct_ocrmypdf_parameters`", "concise_description": "Argument `Literal['sidecar.txt']` is not assignable to parameter `sidecar_file` with type `Path` in function `paperless.parsers.tesseract.RasterisedDocumentParser.construct_ocrmypdf_parameters`", "severity": "error" }, { "line": 47, "column": 13, "stop_line": 47, "stop_column": 27, "path": "src/paperless/tests/parsers/test_tesseract_custom_settings.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `pages`", "concise_description": "Object of class `NoneType` has no attribute `pages`", "severity": "error" }, { "line": 48, "column": 13, "stop_line": 48, "stop_column": 26, "path": "src/paperless/tests/parsers/test_tesseract_custom_settings.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `save`", "concise_description": "Object of class `NoneType` has no attribute `save`", "severity": "error" }, { "line": 65, "column": 13, "stop_line": 65, "stop_column": 30, "path": "src/paperless/tests/parsers/test_tesseract_custom_settings.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `language`", "concise_description": "Object of class `NoneType` has no attribute `language`", "severity": "error" }, { "line": 66, "column": 13, "stop_line": 66, "stop_column": 26, "path": "src/paperless/tests/parsers/test_tesseract_custom_settings.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `save`", "concise_description": "Object of class `NoneType` has no attribute `save`", "severity": "error" }, { "line": 83, "column": 13, "stop_line": 83, "stop_column": 33, "path": "src/paperless/tests/parsers/test_tesseract_custom_settings.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `output_type`", "concise_description": "Object of class `NoneType` has no attribute `output_type`", "severity": "error" }, { "line": 84, "column": 13, "stop_line": 84, "stop_column": 26, "path": "src/paperless/tests/parsers/test_tesseract_custom_settings.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `save`", "concise_description": "Object of class `NoneType` has no attribute `save`", "severity": "error" }, { "line": 103, "column": 13, "stop_line": 103, "stop_column": 26, "path": "src/paperless/tests/parsers/test_tesseract_custom_settings.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `mode`", "concise_description": "Object of class `NoneType` has no attribute `mode`", "severity": "error" }, { "line": 104, "column": 13, "stop_line": 104, "stop_column": 26, "path": "src/paperless/tests/parsers/test_tesseract_custom_settings.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `save`", "concise_description": "Object of class `NoneType` has no attribute `save`", "severity": "error" }, { "line": 107, "column": 28, "stop_line": 107, "stop_column": 39, "path": "src/paperless/tests/parsers/test_tesseract_custom_settings.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Literal['input.pdf']` is not assignable to parameter `input_file` with type `Path` in function `paperless.parsers.tesseract.RasterisedDocumentParser.construct_ocrmypdf_parameters`", "concise_description": "Argument `Literal['input.pdf']` is not assignable to parameter `input_file` with type `Path` in function `paperless.parsers.tesseract.RasterisedDocumentParser.construct_ocrmypdf_parameters`", "severity": "error" }, { "line": 108, "column": 29, "stop_line": 108, "stop_column": 41, "path": "src/paperless/tests/parsers/test_tesseract_custom_settings.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Literal['output.pdf']` is not assignable to parameter `output_file` with type `Path` in function `paperless.parsers.tesseract.RasterisedDocumentParser.construct_ocrmypdf_parameters`", "concise_description": "Argument `Literal['output.pdf']` is not assignable to parameter `output_file` with type `Path` in function `paperless.parsers.tesseract.RasterisedDocumentParser.construct_ocrmypdf_parameters`", "severity": "error" }, { "line": 109, "column": 30, "stop_line": 109, "stop_column": 43, "path": "src/paperless/tests/parsers/test_tesseract_custom_settings.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Literal['sidecar.txt']` is not assignable to parameter `sidecar_file` with type `Path` in function `paperless.parsers.tesseract.RasterisedDocumentParser.construct_ocrmypdf_parameters`", "concise_description": "Argument `Literal['sidecar.txt']` is not assignable to parameter `sidecar_file` with type `Path` in function `paperless.parsers.tesseract.RasterisedDocumentParser.construct_ocrmypdf_parameters`", "severity": "error" }, { "line": 121, "column": 13, "stop_line": 121, "stop_column": 26, "path": "src/paperless/tests/parsers/test_tesseract_custom_settings.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `mode`", "concise_description": "Object of class `NoneType` has no attribute `mode`", "severity": "error" }, { "line": 122, "column": 13, "stop_line": 122, "stop_column": 26, "path": "src/paperless/tests/parsers/test_tesseract_custom_settings.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `save`", "concise_description": "Object of class `NoneType` has no attribute `save`", "severity": "error" }, { "line": 141, "column": 13, "stop_line": 141, "stop_column": 35, "path": "src/paperless/tests/parsers/test_tesseract_custom_settings.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `unpaper_clean`", "concise_description": "Object of class `NoneType` has no attribute `unpaper_clean`", "severity": "error" }, { "line": 142, "column": 13, "stop_line": 142, "stop_column": 26, "path": "src/paperless/tests/parsers/test_tesseract_custom_settings.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `save`", "concise_description": "Object of class `NoneType` has no attribute `save`", "severity": "error" }, { "line": 150, "column": 13, "stop_line": 150, "stop_column": 35, "path": "src/paperless/tests/parsers/test_tesseract_custom_settings.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `unpaper_clean`", "concise_description": "Object of class `NoneType` has no attribute `unpaper_clean`", "severity": "error" }, { "line": 151, "column": 13, "stop_line": 151, "stop_column": 26, "path": "src/paperless/tests/parsers/test_tesseract_custom_settings.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `save`", "concise_description": "Object of class `NoneType` has no attribute `save`", "severity": "error" }, { "line": 169, "column": 13, "stop_line": 169, "stop_column": 28, "path": "src/paperless/tests/parsers/test_tesseract_custom_settings.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `deskew`", "concise_description": "Object of class `NoneType` has no attribute `deskew`", "severity": "error" }, { "line": 170, "column": 13, "stop_line": 170, "stop_column": 26, "path": "src/paperless/tests/parsers/test_tesseract_custom_settings.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `save`", "concise_description": "Object of class `NoneType` has no attribute `save`", "severity": "error" }, { "line": 208, "column": 13, "stop_line": 208, "stop_column": 38, "path": "src/paperless/tests/parsers/test_tesseract_custom_settings.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `max_image_pixels`", "concise_description": "Object of class `NoneType` has no attribute `max_image_pixels`", "severity": "error" }, { "line": 209, "column": 13, "stop_line": 209, "stop_column": 26, "path": "src/paperless/tests/parsers/test_tesseract_custom_settings.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `save`", "concise_description": "Object of class `NoneType` has no attribute `save`", "severity": "error" }, { "line": 226, "column": 13, "stop_line": 226, "stop_column": 47, "path": "src/paperless/tests/parsers/test_tesseract_custom_settings.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `color_conversion_strategy`", "concise_description": "Object of class `NoneType` has no attribute `color_conversion_strategy`", "severity": "error" }, { "line": 227, "column": 13, "stop_line": 227, "stop_column": 26, "path": "src/paperless/tests/parsers/test_tesseract_custom_settings.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `save`", "concise_description": "Object of class `NoneType` has no attribute `save`", "severity": "error" }, { "line": 249, "column": 13, "stop_line": 249, "stop_column": 31, "path": "src/paperless/tests/parsers/test_tesseract_custom_settings.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `user_args`", "concise_description": "Object of class `NoneType` has no attribute `user_args`", "severity": "error" }, { "line": 250, "column": 13, "stop_line": 250, "stop_column": 26, "path": "src/paperless/tests/parsers/test_tesseract_custom_settings.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `save`", "concise_description": "Object of class `NoneType` has no attribute `save`", "severity": "error" }, { "line": 278, "column": 38, "stop_line": 278, "stop_column": 75, "path": "src/paperless/tests/parsers/test_tesseract_parser.py", "code": -2, "name": "bad-argument-type", "description": "Argument `str` is not assignable to parameter `image` with type `Path` in function `paperless.parsers.tesseract.RasterisedDocumentParser.get_dpi`", "concise_description": "Argument `str` is not assignable to parameter `image` with type `Path` in function `paperless.parsers.tesseract.RasterisedDocumentParser.get_dpi`", "severity": "error" }, { "line": 289, "column": 17, "stop_line": 289, "stop_column": 65, "path": "src/paperless/tests/parsers/test_tesseract_parser.py", "code": -2, "name": "bad-argument-type", "description": "Argument `str` is not assignable to parameter `image` with type `Path` in function `paperless.parsers.tesseract.RasterisedDocumentParser.calculate_a4_dpi`", "concise_description": "Argument `str` is not assignable to parameter `image` with type `Path` in function `paperless.parsers.tesseract.RasterisedDocumentParser.calculate_a4_dpi`", "severity": "error" }, { "line": 391, "column": 13, "stop_line": 391, "stop_column": 46, "path": "src/paperless/tests/parsers/test_tesseract_parser.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `lower`", "concise_description": "Object of class `NoneType` has no attribute `lower`", "severity": "error" }, { "line": 407, "column": 13, "stop_line": 407, "stop_column": 40, "path": "src/paperless/tests/parsers/test_tesseract_parser.py", "code": -2, "name": "bad-argument-type", "description": "Argument `str | None` is not assignable to parameter `content` with type `str` in function `assert_ordered_substrings`", "concise_description": "Argument `str | None` is not assignable to parameter `content` with type `str` in function `assert_ordered_substrings`", "severity": "error" }, { "line": 416, "column": 42, "stop_line": 416, "stop_column": 48, "path": "src/paperless/tests/parsers/test_tesseract_parser.py", "code": -2, "name": "bad-assignment", "description": "`Literal['redo']` is not assignable to attribute `mode` with type `ModeChoices`", "concise_description": "`Literal['redo']` is not assignable to attribute `mode` with type `ModeChoices`", "severity": "error" }, { "line": 424, "column": 13, "stop_line": 424, "stop_column": 40, "path": "src/paperless/tests/parsers/test_tesseract_parser.py", "code": -2, "name": "bad-argument-type", "description": "Argument `str | None` is not assignable to parameter `content` with type `str` in function `assert_ordered_substrings`", "concise_description": "Argument `str | None` is not assignable to parameter `content` with type `str` in function `assert_ordered_substrings`", "severity": "error" }, { "line": 433, "column": 42, "stop_line": 433, "stop_column": 49, "path": "src/paperless/tests/parsers/test_tesseract_parser.py", "code": -2, "name": "bad-assignment", "description": "`Literal['force']` is not assignable to attribute `mode` with type `ModeChoices`", "concise_description": "`Literal['force']` is not assignable to attribute `mode` with type `ModeChoices`", "severity": "error" }, { "line": 439, "column": 13, "stop_line": 439, "stop_column": 40, "path": "src/paperless/tests/parsers/test_tesseract_parser.py", "code": -2, "name": "bad-argument-type", "description": "Argument `str | None` is not assignable to parameter `content` with type `str` in function `assert_ordered_substrings`", "concise_description": "Argument `str | None` is not assignable to parameter `content` with type `str` in function `assert_ordered_substrings`", "severity": "error" }, { "line": 448, "column": 42, "stop_line": 448, "stop_column": 48, "path": "src/paperless/tests/parsers/test_tesseract_parser.py", "code": -2, "name": "bad-assignment", "description": "`Literal['auto']` is not assignable to attribute `mode` with type `ModeChoices`", "concise_description": "`Literal['auto']` is not assignable to attribute `mode` with type `ModeChoices`", "severity": "error" }, { "line": 452, "column": 13, "stop_line": 452, "stop_column": 40, "path": "src/paperless/tests/parsers/test_tesseract_parser.py", "code": -2, "name": "bad-argument-type", "description": "Argument `str | None` is not assignable to parameter `content` with type `str` in function `assert_ordered_substrings`", "concise_description": "Argument `str | None` is not assignable to parameter `content` with type `str` in function `assert_ordered_substrings`", "severity": "error" }, { "line": 464, "column": 42, "stop_line": 464, "stop_column": 48, "path": "src/paperless/tests/parsers/test_tesseract_parser.py", "code": -2, "name": "bad-assignment", "description": "`Literal['auto']` is not assignable to attribute `mode` with type `ModeChoices`", "concise_description": "`Literal['auto']` is not assignable to attribute `mode` with type `ModeChoices`", "severity": "error" }, { "line": 504, "column": 13, "stop_line": 504, "stop_column": 40, "path": "src/paperless/tests/parsers/test_tesseract_parser.py", "code": -2, "name": "bad-argument-type", "description": "Argument `str | None` is not assignable to parameter `content` with type `str` in function `assert_ordered_substrings`", "concise_description": "Argument `str | None` is not assignable to parameter `content` with type `str` in function `assert_ordered_substrings`", "severity": "error" }, { "line": 520, "column": 13, "stop_line": 520, "stop_column": 40, "path": "src/paperless/tests/parsers/test_tesseract_parser.py", "code": -2, "name": "bad-argument-type", "description": "Argument `str | None` is not assignable to parameter `content` with type `str` in function `assert_ordered_substrings`", "concise_description": "Argument `str | None` is not assignable to parameter `content` with type `str` in function `assert_ordered_substrings`", "severity": "error" }, { "line": 533, "column": 46, "stop_line": 533, "stop_column": 79, "path": "src/paperless/tests/parsers/test_tesseract_parser.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `lower`", "concise_description": "Object of class `NoneType` has no attribute `lower`", "severity": "error" }, { "line": 567, "column": 13, "stop_line": 567, "stop_column": 46, "path": "src/paperless/tests/parsers/test_tesseract_parser.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `lower`", "concise_description": "Object of class `NoneType` has no attribute `lower`", "severity": "error" }, { "line": 586, "column": 42, "stop_line": 586, "stop_column": 46, "path": "src/paperless/tests/parsers/test_tesseract_parser.py", "code": -2, "name": "bad-assignment", "description": "`str` is not assignable to attribute `mode` with type `ModeChoices`", "concise_description": "`str` is not assignable to attribute `mode` with type `ModeChoices`", "severity": "error" }, { "line": 593, "column": 13, "stop_line": 593, "stop_column": 46, "path": "src/paperless/tests/parsers/test_tesseract_parser.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `lower`", "concise_description": "Object of class `NoneType` has no attribute `lower`", "severity": "error" }, { "line": 602, "column": 42, "stop_line": 602, "stop_column": 48, "path": "src/paperless/tests/parsers/test_tesseract_parser.py", "code": -2, "name": "bad-assignment", "description": "`Literal['auto']` is not assignable to attribute `mode` with type `ModeChoices`", "concise_description": "`Literal['auto']` is not assignable to attribute `mode` with type `ModeChoices`", "severity": "error" }, { "line": 609, "column": 13, "stop_line": 609, "stop_column": 46, "path": "src/paperless/tests/parsers/test_tesseract_parser.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `lower`", "concise_description": "Object of class `NoneType` has no attribute `lower`", "severity": "error" }, { "line": 629, "column": 42, "stop_line": 629, "stop_column": 48, "path": "src/paperless/tests/parsers/test_tesseract_parser.py", "code": -2, "name": "bad-assignment", "description": "`Literal['redo']` is not assignable to attribute `mode` with type `ModeChoices`", "concise_description": "`Literal['redo']` is not assignable to attribute `mode` with type `ModeChoices`", "severity": "error" }, { "line": 635, "column": 16, "stop_line": 635, "stop_column": 49, "path": "src/paperless/tests/parsers/test_tesseract_parser.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `lower`", "concise_description": "Object of class `NoneType` has no attribute `lower`", "severity": "error" }, { "line": 655, "column": 42, "stop_line": 655, "stop_column": 49, "path": "src/paperless/tests/parsers/test_tesseract_parser.py", "code": -2, "name": "bad-assignment", "description": "`Literal['force']` is not assignable to attribute `mode` with type `ModeChoices`", "concise_description": "`Literal['force']` is not assignable to attribute `mode` with type `ModeChoices`", "severity": "error" }, { "line": 661, "column": 16, "stop_line": 661, "stop_column": 49, "path": "src/paperless/tests/parsers/test_tesseract_parser.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `lower`", "concise_description": "Object of class `NoneType` has no attribute `lower`", "severity": "error" }, { "line": 685, "column": 13, "stop_line": 685, "stop_column": 46, "path": "src/paperless/tests/parsers/test_tesseract_parser.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `lower`", "concise_description": "Object of class `NoneType` has no attribute `lower`", "severity": "error" }, { "line": 708, "column": 13, "stop_line": 708, "stop_column": 46, "path": "src/paperless/tests/parsers/test_tesseract_parser.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `lower`", "concise_description": "Object of class `NoneType` has no attribute `lower`", "severity": "error" }, { "line": 731, "column": 13, "stop_line": 731, "stop_column": 46, "path": "src/paperless/tests/parsers/test_tesseract_parser.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `lower`", "concise_description": "Object of class `NoneType` has no attribute `lower`", "severity": "error" }, { "line": 757, "column": 42, "stop_line": 757, "stop_column": 48, "path": "src/paperless/tests/parsers/test_tesseract_parser.py", "code": -2, "name": "bad-assignment", "description": "`Literal['auto']` is not assignable to attribute `mode` with type `ModeChoices`", "concise_description": "`Literal['auto']` is not assignable to attribute `mode` with type `ModeChoices`", "severity": "error" }, { "line": 765, "column": 13, "stop_line": 765, "stop_column": 46, "path": "src/paperless/tests/parsers/test_tesseract_parser.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `lower`", "concise_description": "Object of class `NoneType` has no attribute `lower`", "severity": "error" }, { "line": 783, "column": 42, "stop_line": 783, "stop_column": 48, "path": "src/paperless/tests/parsers/test_tesseract_parser.py", "code": -2, "name": "bad-assignment", "description": "`Literal['auto']` is not assignable to attribute `mode` with type `ModeChoices`", "concise_description": "`Literal['auto']` is not assignable to attribute `mode` with type `ModeChoices`", "severity": "error" }, { "line": 790, "column": 13, "stop_line": 790, "stop_column": 46, "path": "src/paperless/tests/parsers/test_tesseract_parser.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `lower`", "concise_description": "Object of class `NoneType` has no attribute `lower`", "severity": "error" }, { "line": 841, "column": 42, "stop_line": 841, "stop_column": 48, "path": "src/paperless/tests/parsers/test_tesseract_parser.py", "code": -2, "name": "bad-assignment", "description": "`Literal['auto']` is not assignable to attribute `mode` with type `ModeChoices`", "concise_description": "`Literal['auto']` is not assignable to attribute `mode` with type `ModeChoices`", "severity": "error" }, { "line": 847, "column": 16, "stop_line": 847, "stop_column": 49, "path": "src/paperless/tests/parsers/test_tesseract_parser.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `lower`", "concise_description": "Object of class `NoneType` has no attribute `lower`", "severity": "error" }, { "line": 871, "column": 42, "stop_line": 871, "stop_column": 48, "path": "src/paperless/tests/parsers/test_tesseract_parser.py", "code": -2, "name": "bad-assignment", "description": "`Literal['auto']` is not assignable to attribute `mode` with type `ModeChoices`", "concise_description": "`Literal['auto']` is not assignable to attribute `mode` with type `ModeChoices`", "severity": "error" }, { "line": 898, "column": 42, "stop_line": 898, "stop_column": 48, "path": "src/paperless/tests/parsers/test_tesseract_parser.py", "code": -2, "name": "bad-assignment", "description": "`Literal['auto']` is not assignable to attribute `mode` with type `ModeChoices`", "concise_description": "`Literal['auto']` is not assignable to attribute `mode` with type `ModeChoices`", "severity": "error" }, { "line": 928, "column": 42, "stop_line": 928, "stop_column": 48, "path": "src/paperless/tests/parsers/test_tesseract_parser.py", "code": -2, "name": "bad-assignment", "description": "`Literal['auto']` is not assignable to attribute `mode` with type `ModeChoices`", "concise_description": "`Literal['auto']` is not assignable to attribute `mode` with type `ModeChoices`", "severity": "error" }, { "line": 936, "column": 13, "stop_line": 936, "stop_column": 46, "path": "src/paperless/tests/parsers/test_tesseract_parser.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `lower`", "concise_description": "Object of class `NoneType` has no attribute `lower`", "severity": "error" }, { "line": 956, "column": 42, "stop_line": 956, "stop_column": 48, "path": "src/paperless/tests/parsers/test_tesseract_parser.py", "code": -2, "name": "bad-assignment", "description": "`Literal['redo']` is not assignable to attribute `mode` with type `ModeChoices`", "concise_description": "`Literal['redo']` is not assignable to attribute `mode` with type `ModeChoices`", "severity": "error" }, { "line": 964, "column": 13, "stop_line": 964, "stop_column": 46, "path": "src/paperless/tests/parsers/test_tesseract_parser.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `lower`", "concise_description": "Object of class `NoneType` has no attribute `lower`", "severity": "error" }, { "line": 992, "column": 42, "stop_line": 992, "stop_column": 48, "path": "src/paperless/tests/parsers/test_tesseract_parser.py", "code": -2, "name": "bad-assignment", "description": "`Literal['auto']` is not assignable to attribute `mode` with type `ModeChoices`", "concise_description": "`Literal['auto']` is not assignable to attribute `mode` with type `ModeChoices`", "severity": "error" }, { "line": 1000, "column": 13, "stop_line": 1000, "stop_column": 46, "path": "src/paperless/tests/parsers/test_tesseract_parser.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `lower`", "concise_description": "Object of class `NoneType` has no attribute `lower`", "severity": "error" }, { "line": 1016, "column": 42, "stop_line": 1016, "stop_column": 48, "path": "src/paperless/tests/parsers/test_tesseract_parser.py", "code": -2, "name": "bad-assignment", "description": "`Literal['auto']` is not assignable to attribute `mode` with type `ModeChoices`", "concise_description": "`Literal['auto']` is not assignable to attribute `mode` with type `ModeChoices`", "severity": "error" }, { "line": 1020, "column": 13, "stop_line": 1020, "stop_column": 40, "path": "src/paperless/tests/parsers/test_tesseract_parser.py", "code": -2, "name": "bad-argument-type", "description": "Argument `str | None` is not assignable to parameter `content` with type `str` in function `assert_ordered_substrings`", "concise_description": "Argument `str | None` is not assignable to parameter `content` with type `str` in function `assert_ordered_substrings`", "severity": "error" }, { "line": 1055, "column": 42, "stop_line": 1055, "stop_column": 47, "path": "src/paperless/tests/parsers/test_tesseract_parser.py", "code": -2, "name": "bad-assignment", "description": "`Literal['off']` is not assignable to attribute `mode` with type `ModeChoices`", "concise_description": "`Literal['off']` is not assignable to attribute `mode` with type `ModeChoices`", "severity": "error" }, { "line": 1062, "column": 53, "stop_line": 1062, "stop_column": 80, "path": "src/paperless/tests/parsers/test_tesseract_parser.py", "code": -2, "name": "bad-argument-type", "description": "Argument `str | None` is not assignable to parameter `unistr` with type `str` in function `unicodedata.normalize`", "concise_description": "Argument `str | None` is not assignable to parameter `unistr` with type `str` in function `unicodedata.normalize`", "severity": "error" }, { "line": 1087, "column": 14, "stop_line": 1087, "stop_column": 37, "path": "src/paperless/tests/parsers/test_tesseract_parser.py", "code": -2, "name": "bad-context-manager", "description": "Cannot use `Generator[RasterisedDocumentParser]` as a context manager\n Object of class `Generator` has no attribute `__enter__`\n Did you mean `__iter__`?", "concise_description": "Cannot use `Generator[RasterisedDocumentParser]` as a context manager", "severity": "error" }, { "line": 1087, "column": 14, "stop_line": 1087, "stop_column": 37, "path": "src/paperless/tests/parsers/test_tesseract_parser.py", "code": -2, "name": "bad-context-manager", "description": "Cannot use `Generator[RasterisedDocumentParser]` as a context manager\n Object of class `Generator` has no attribute `__exit__`\n Did you mean `__next__`?", "concise_description": "Cannot use `Generator[RasterisedDocumentParser]` as a context manager", "severity": "error" }, { "line": 1114, "column": 14, "stop_line": 1114, "stop_column": 56, "path": "src/paperless/tests/parsers/test_tesseract_parser.py", "code": -2, "name": "bad-context-manager", "description": "Cannot use `Generator[RasterisedDocumentParser]` as a context manager\n Object of class `Generator` has no attribute `__enter__`\n Did you mean `__iter__`?", "concise_description": "Cannot use `Generator[RasterisedDocumentParser]` as a context manager", "severity": "error" }, { "line": 1114, "column": 14, "stop_line": 1114, "stop_column": 56, "path": "src/paperless/tests/parsers/test_tesseract_parser.py", "code": -2, "name": "bad-context-manager", "description": "Cannot use `Generator[RasterisedDocumentParser]` as a context manager\n Object of class `Generator` has no attribute `__exit__`\n Did you mean `__next__`?", "concise_description": "Cannot use `Generator[RasterisedDocumentParser]` as a context manager", "severity": "error" }, { "line": 1123, "column": 14, "stop_line": 1123, "stop_column": 77, "path": "src/paperless/tests/parsers/test_tesseract_parser.py", "code": -2, "name": "bad-context-manager", "description": "Cannot use `Generator[RasterisedDocumentParser]` as a context manager\n Object of class `Generator` has no attribute `__enter__`\n Did you mean `__iter__`?", "concise_description": "Cannot use `Generator[RasterisedDocumentParser]` as a context manager", "severity": "error" }, { "line": 1123, "column": 14, "stop_line": 1123, "stop_column": 77, "path": "src/paperless/tests/parsers/test_tesseract_parser.py", "code": -2, "name": "bad-context-manager", "description": "Cannot use `Generator[RasterisedDocumentParser]` as a context manager\n Object of class `Generator` has no attribute `__exit__`\n Did you mean `__next__`?", "concise_description": "Cannot use `Generator[RasterisedDocumentParser]` as a context manager", "severity": "error" }, { "line": 1132, "column": 14, "stop_line": 1132, "stop_column": 77, "path": "src/paperless/tests/parsers/test_tesseract_parser.py", "code": -2, "name": "bad-context-manager", "description": "Cannot use `Generator[RasterisedDocumentParser]` as a context manager\n Object of class `Generator` has no attribute `__enter__`\n Did you mean `__iter__`?", "concise_description": "Cannot use `Generator[RasterisedDocumentParser]` as a context manager", "severity": "error" }, { "line": 1132, "column": 14, "stop_line": 1132, "stop_column": 77, "path": "src/paperless/tests/parsers/test_tesseract_parser.py", "code": -2, "name": "bad-context-manager", "description": "Cannot use `Generator[RasterisedDocumentParser]` as a context manager\n Object of class `Generator` has no attribute `__exit__`\n Did you mean `__next__`?", "concise_description": "Cannot use `Generator[RasterisedDocumentParser]` as a context manager", "severity": "error" }, { "line": 1153, "column": 14, "stop_line": 1153, "stop_column": 77, "path": "src/paperless/tests/parsers/test_tesseract_parser.py", "code": -2, "name": "bad-context-manager", "description": "Cannot use `Generator[RasterisedDocumentParser]` as a context manager\n Object of class `Generator` has no attribute `__enter__`\n Did you mean `__iter__`?", "concise_description": "Cannot use `Generator[RasterisedDocumentParser]` as a context manager", "severity": "error" }, { "line": 1153, "column": 14, "stop_line": 1153, "stop_column": 77, "path": "src/paperless/tests/parsers/test_tesseract_parser.py", "code": -2, "name": "bad-context-manager", "description": "Cannot use `Generator[RasterisedDocumentParser]` as a context manager\n Object of class `Generator` has no attribute `__exit__`\n Did you mean `__next__`?", "concise_description": "Cannot use `Generator[RasterisedDocumentParser]` as a context manager", "severity": "error" }, { "line": 1161, "column": 14, "stop_line": 1161, "stop_column": 69, "path": "src/paperless/tests/parsers/test_tesseract_parser.py", "code": -2, "name": "bad-context-manager", "description": "Cannot use `Generator[RasterisedDocumentParser]` as a context manager\n Object of class `Generator` has no attribute `__enter__`\n Did you mean `__iter__`?", "concise_description": "Cannot use `Generator[RasterisedDocumentParser]` as a context manager", "severity": "error" }, { "line": 1161, "column": 14, "stop_line": 1161, "stop_column": 69, "path": "src/paperless/tests/parsers/test_tesseract_parser.py", "code": -2, "name": "bad-context-manager", "description": "Cannot use `Generator[RasterisedDocumentParser]` as a context manager\n Object of class `Generator` has no attribute `__exit__`\n Did you mean `__next__`?", "concise_description": "Cannot use `Generator[RasterisedDocumentParser]` as a context manager", "severity": "error" }, { "line": 1170, "column": 14, "stop_line": 1170, "stop_column": 70, "path": "src/paperless/tests/parsers/test_tesseract_parser.py", "code": -2, "name": "bad-context-manager", "description": "Cannot use `Generator[RasterisedDocumentParser]` as a context manager\n Object of class `Generator` has no attribute `__enter__`\n Did you mean `__iter__`?", "concise_description": "Cannot use `Generator[RasterisedDocumentParser]` as a context manager", "severity": "error" }, { "line": 1170, "column": 14, "stop_line": 1170, "stop_column": 70, "path": "src/paperless/tests/parsers/test_tesseract_parser.py", "code": -2, "name": "bad-context-manager", "description": "Cannot use `Generator[RasterisedDocumentParser]` as a context manager\n Object of class `Generator` has no attribute `__exit__`\n Did you mean `__next__`?", "concise_description": "Cannot use `Generator[RasterisedDocumentParser]` as a context manager", "severity": "error" }, { "line": 1199, "column": 45, "stop_line": 1199, "stop_column": 78, "path": "src/paperless/tests/parsers/test_tesseract_parser.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `lower`", "concise_description": "Object of class `NoneType` has no attribute `lower`", "severity": "error" }, { "line": 1208, "column": 27, "stop_line": 1208, "stop_column": 60, "path": "src/paperless/tests/parsers/test_tesseract_parser.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `lower`", "concise_description": "Object of class `NoneType` has no attribute `lower`", "severity": "error" }, { "line": 1218, "column": 45, "stop_line": 1218, "stop_column": 78, "path": "src/paperless/tests/parsers/test_tesseract_parser.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `lower`", "concise_description": "Object of class `NoneType` has no attribute `lower`", "severity": "error" }, { "line": 1230, "column": 13, "stop_line": 1230, "stop_column": 46, "path": "src/paperless/tests/parsers/test_tesseract_parser.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `lower`", "concise_description": "Object of class `NoneType` has no attribute `lower`", "severity": "error" }, { "line": 115, "column": 19, "stop_line": 115, "stop_column": 49, "path": "src/paperless/tests/parsers/test_tika_parser.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Path | None` is not assignable to parameter `*args` with type `PathLike[str] | str` in function `pathlib.Path.__new__`", "concise_description": "Argument `Path | None` is not assignable to parameter `*args` with type `PathLike[str] | str` in function `pathlib.Path.__new__`", "severity": "error" }, { "line": 25, "column": 16, "stop_line": 25, "stop_column": 30, "path": "src/paperless/tests/test_celery.py", "code": -2, "name": "bad-index", "description": "Cannot index into `object`\n Object of class `object` has no attribute `__getitem__`", "concise_description": "Cannot index into `object`", "severity": "error" }, { "line": 26, "column": 16, "stop_line": 26, "stop_column": 30, "path": "src/paperless/tests/test_celery.py", "code": -2, "name": "bad-index", "description": "Cannot index into `object`\n Object of class `object` has no attribute `__getitem__`", "concise_description": "Cannot index into `object`", "severity": "error" }, { "line": 296, "column": 16, "stop_line": 296, "stop_column": 39, "path": "src/paperless/tests/test_checks.py", "code": -2, "name": "not-iterable", "description": "`in` is not supported between `str` and `None`", "concise_description": "`in` is not supported between `str` and `None`", "severity": "error" }, { "line": 297, "column": 16, "stop_line": 297, "stop_column": 45, "path": "src/paperless/tests/test_checks.py", "code": -2, "name": "not-iterable", "description": "`in` is not supported between `str` and `None`", "concise_description": "`in` is not supported between `str` and `None`", "severity": "error" }, { "line": 315, "column": 29, "stop_line": 315, "stop_column": 53, "path": "src/paperless/tests/test_checks.py", "code": -2, "name": "no-matching-overload", "description": "No matching overload found for function `str.join` called with arguments: (Generator[str | None])\n Possible overloads:\n (iterable: Iterable[LiteralString], /) -> LiteralString [closest match]\n (iterable: Iterable[str], /) -> str", "concise_description": "No matching overload found for function `str.join` called with arguments: (Generator[str | None])", "severity": "error" }, { "line": 345, "column": 16, "stop_line": 345, "stop_column": 56, "path": "src/paperless/tests/test_checks.py", "code": -2, "name": "not-iterable", "description": "`in` is not supported between `Literal['PAPERLESS_DB_TIMEOUT']` and `None`", "concise_description": "`in` is not supported between `Literal['PAPERLESS_DB_TIMEOUT']` and `None`", "severity": "error" }, { "line": 348, "column": 20, "stop_line": 348, "stop_column": 50, "path": "src/paperless/tests/test_checks.py", "code": -2, "name": "not-iterable", "description": "`not in` is not supported between `str` and `None`", "concise_description": "`not in` is not supported between `str` and `None`", "severity": "error" }, { "line": 376, "column": 16, "stop_line": 376, "stop_column": 56, "path": "src/paperless/tests/test_checks.py", "code": -2, "name": "not-iterable", "description": "`in` is not supported between `Literal['PAPERLESS_DB_OPTIONS']` and `None`", "concise_description": "`in` is not supported between `Literal['PAPERLESS_DB_OPTIONS']` and `None`", "severity": "error" }, { "line": 599, "column": 16, "stop_line": 599, "stop_column": 44, "path": "src/paperless/tests/test_checks.py", "code": -2, "name": "not-iterable", "description": "`in` is not supported between `Literal['v2.20.10']` and `None`", "concise_description": "`in` is not supported between `Literal['v2.20.10']` and `None`", "severity": "error" }, { "line": 328, "column": 35, "stop_line": 328, "stop_column": 49, "path": "src/paperless/tests/test_registry.py", "code": -2, "name": "bad-argument-type", "description": "Argument `type[TestParserRegistryGetParserForFile.test_highest_score_wins.LowScoreParser]` is not assignable to parameter `parser_class` with type `type[ParserProtocol]` in function `paperless.parsers.registry.ParserRegistry.register_builtin`\n Protocol `ParserProtocol` requires attribute `can_produce_archive`", "concise_description": "Argument `type[TestParserRegistryGetParserForFile.test_highest_score_wins.LowScoreParser]` is not assignable to parameter `parser_class` with type `type[ParserProtocol]` in function `paperless.parsers.registry.ParserRegistry.register_builtin`", "severity": "error" }, { "line": 329, "column": 35, "stop_line": 329, "stop_column": 50, "path": "src/paperless/tests/test_registry.py", "code": -2, "name": "bad-argument-type", "description": "Argument `type[TestParserRegistryGetParserForFile.test_highest_score_wins.HighScoreParser]` is not assignable to parameter `parser_class` with type `type[ParserProtocol]` in function `paperless.parsers.registry.ParserRegistry.register_builtin`\n Protocol `ParserProtocol` requires attribute `can_produce_archive`", "concise_description": "Argument `type[TestParserRegistryGetParserForFile.test_highest_score_wins.HighScoreParser]` is not assignable to parameter `parser_class` with type `type[ParserProtocol]` in function `paperless.parsers.registry.ParserRegistry.register_builtin`", "severity": "error" }, { "line": 355, "column": 35, "stop_line": 355, "stop_column": 50, "path": "src/paperless/tests/test_registry.py", "code": -2, "name": "bad-argument-type", "description": "Argument `type[TestParserRegistryGetParserForFile.test_parser_returning_none_score_is_skipped.DecliningParser]` is not assignable to parameter `parser_class` with type `type[ParserProtocol]` in function `paperless.parsers.registry.ParserRegistry.register_builtin`\n Protocol `ParserProtocol` requires attribute `can_produce_archive`", "concise_description": "Argument `type[TestParserRegistryGetParserForFile.test_parser_returning_none_score_is_skipped.DecliningParser]` is not assignable to parameter `parser_class` with type `type[ParserProtocol]` in function `paperless.parsers.registry.ParserRegistry.register_builtin`", "severity": "error" }, { "line": 381, "column": 35, "stop_line": 381, "stop_column": 49, "path": "src/paperless/tests/test_registry.py", "code": -2, "name": "bad-argument-type", "description": "Argument `type[TestParserRegistryGetParserForFile.test_all_parsers_decline_returns_none.AlwaysDeclines]` is not assignable to parameter `parser_class` with type `type[ParserProtocol]` in function `paperless.parsers.registry.ParserRegistry.register_builtin`\n Protocol `ParserProtocol` requires attribute `can_produce_archive`", "concise_description": "Argument `type[TestParserRegistryGetParserForFile.test_all_parsers_decline_returns_none.AlwaysDeclines]` is not assignable to parameter `parser_class` with type `type[ParserProtocol]` in function `paperless.parsers.registry.ParserRegistry.register_builtin`", "severity": "error" }, { "line": 382, "column": 35, "stop_line": 382, "stop_column": 49, "path": "src/paperless/tests/test_registry.py", "code": -2, "name": "bad-argument-type", "description": "Argument `type[TestParserRegistryGetParserForFile.test_all_parsers_decline_returns_none.AlwaysDeclines]` is not assignable to parameter `object` with type `type[ParserProtocol]` in function `list.append`\n Protocol `ParserProtocol` requires attribute `can_produce_archive`", "concise_description": "Argument `type[TestParserRegistryGetParserForFile.test_all_parsers_decline_returns_none.AlwaysDeclines]` is not assignable to parameter `object` with type `type[ParserProtocol]` in function `list.append`", "severity": "error" }, { "line": 423, "column": 35, "stop_line": 423, "stop_column": 48, "path": "src/paperless/tests/test_registry.py", "code": -2, "name": "bad-argument-type", "description": "Argument `type[TestParserRegistryGetParserForFile.test_external_parser_beats_builtin_same_score.BuiltinParser]` is not assignable to parameter `parser_class` with type `type[ParserProtocol]` in function `paperless.parsers.registry.ParserRegistry.register_builtin`\n Protocol `ParserProtocol` requires attribute `can_produce_archive`", "concise_description": "Argument `type[TestParserRegistryGetParserForFile.test_external_parser_beats_builtin_same_score.BuiltinParser]` is not assignable to parameter `parser_class` with type `type[ParserProtocol]` in function `paperless.parsers.registry.ParserRegistry.register_builtin`", "severity": "error" }, { "line": 424, "column": 35, "stop_line": 424, "stop_column": 49, "path": "src/paperless/tests/test_registry.py", "code": -2, "name": "bad-argument-type", "description": "Argument `type[TestParserRegistryGetParserForFile.test_external_parser_beats_builtin_same_score.ExternalParser]` is not assignable to parameter `object` with type `type[ParserProtocol]` in function `list.append`\n Protocol `ParserProtocol` requires attribute `can_produce_archive`", "concise_description": "Argument `type[TestParserRegistryGetParserForFile.test_external_parser_beats_builtin_same_score.ExternalParser]` is not assignable to parameter `object` with type `type[ParserProtocol]` in function `list.append`", "severity": "error" }, { "line": 465, "column": 35, "stop_line": 465, "stop_column": 51, "path": "src/paperless/tests/test_registry.py", "code": -2, "name": "bad-argument-type", "description": "Argument `type[TestParserRegistryGetParserForFile.test_builtin_wins_when_external_declines.AcceptingBuiltin]` is not assignable to parameter `parser_class` with type `type[ParserProtocol]` in function `paperless.parsers.registry.ParserRegistry.register_builtin`\n Protocol `ParserProtocol` requires attribute `can_produce_archive`", "concise_description": "Argument `type[TestParserRegistryGetParserForFile.test_builtin_wins_when_external_declines.AcceptingBuiltin]` is not assignable to parameter `parser_class` with type `type[ParserProtocol]` in function `paperless.parsers.registry.ParserRegistry.register_builtin`", "severity": "error" }, { "line": 466, "column": 35, "stop_line": 466, "stop_column": 52, "path": "src/paperless/tests/test_registry.py", "code": -2, "name": "bad-argument-type", "description": "Argument `type[TestParserRegistryGetParserForFile.test_builtin_wins_when_external_declines.DecliningExternal]` is not assignable to parameter `object` with type `type[ParserProtocol]` in function `list.append`\n Protocol `ParserProtocol` requires attribute `can_produce_archive`", "concise_description": "Argument `type[TestParserRegistryGetParserForFile.test_builtin_wins_when_external_declines.DecliningExternal]` is not assignable to parameter `object` with type `type[ParserProtocol]` in function `list.append`", "severity": "error" }, { "line": 694, "column": 35, "stop_line": 694, "stop_column": 44, "path": "src/paperless/tests/test_registry.py", "code": -2, "name": "bad-argument-type", "description": "Argument `type[TestLogSummary.test_log_summary_with_external_parsers.ExtParser]` is not assignable to parameter `object` with type `type[ParserProtocol]` in function `list.append`\n Protocol `ParserProtocol` requires attribute `can_produce_archive`", "concise_description": "Argument `type[TestLogSummary.test_log_summary_with_external_parsers.ExtParser]` is not assignable to parameter `object` with type `type[ParserProtocol]` in function `list.append`", "severity": "error" }, { "line": 294, "column": 23, "stop_line": 294, "stop_column": 47, "path": "src/paperless/tests/test_signals.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `get`", "concise_description": "Object of class `NoneType` has no attribute `get`", "severity": "error" }, { "line": 301, "column": 23, "stop_line": 301, "stop_column": 47, "path": "src/paperless/tests/test_signals.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `get`", "concise_description": "Object of class `NoneType` has no attribute `get`", "severity": "error" }, { "line": 21, "column": 21, "stop_line": 21, "stop_column": 47, "path": "src/paperless/tests/test_views.py", "code": -2, "name": "missing-attribute", "description": "Object of class `_MonkeyPatchedWSGIResponse` has no attribute `streaming_content`", "concise_description": "Object of class `_MonkeyPatchedWSGIResponse` has no attribute `streaming_content`", "severity": "error" }, { "line": 407, "column": 9, "stop_line": 407, "stop_column": 49, "path": "src/paperless/urls.py", "code": -2, "name": "no-matching-overload", "description": "No matching overload found for function `django.urls.conf.path` called with arguments: (Literal['ws/status/'], _ASGIApplicationProtocol)\n Possible overloads:\n (route: _StrOrPromise, view: (...) -> HttpResponseBase, kwargs: dict[str, Any] | None = None, name: str | None = None) -> URLPattern [closest match]\n (route: _StrOrPromise, view: (...) -> Coroutine[Any, Any, HttpResponseBase], kwargs: dict[str, Any] | None = None, name: str | None = None) -> URLPattern\n (route: _StrOrPromise, view: tuple[Sequence[URLPattern | URLResolver], str | None, str | None], kwargs: dict[str, Any] | None = None, name: str | None = None) -> URLResolver\n (route: _StrOrPromise, view: Sequence[URLResolver | str], kwargs: dict[str, Any] | None = None, name: str | None = None) -> URLResolver", "concise_description": "No matching overload found for function `django.urls.conf.path` called with arguments: (Literal['ws/status/'], _ASGIApplicationProtocol)", "severity": "error" }, { "line": 199, "column": 20, "stop_line": 199, "stop_column": 60, "path": "src/paperless/validators.py", "code": -2, "name": "missing-attribute", "description": "Object of class `EllipsisType` has no attribute `lower`", "concise_description": "Object of class `EllipsisType` has no attribute `lower`", "severity": "error" }, { "line": 199, "column": 32, "stop_line": 199, "stop_column": 43, "path": "src/paperless/validators.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Ellipsis | Unknown` is not assignable to parameter `text_or_uri_element` with type `_Element | bytes | str | None` in function `lxml.etree.QName.__init__`", "concise_description": "Argument `Ellipsis | Unknown` is not assignable to parameter `text_or_uri_element` with type `_Element | bytes | str | None` in function `lxml.etree.QName.__init__`", "severity": "error" }, { "line": 205, "column": 38, "stop_line": 205, "stop_column": 58, "path": "src/paperless/validators.py", "code": -2, "name": "no-matching-overload", "description": "No matching overload found for function `str.join` called with arguments: (Iterator[_AnyStr] | Unknown)\n Possible overloads:\n (iterable: Iterable[LiteralString], /) -> LiteralString [closest match]\n (iterable: Iterable[str], /) -> str", "concise_description": "No matching overload found for function `str.join` called with arguments: (Iterator[_AnyStr] | Unknown)", "severity": "error" }, { "line": 214, "column": 38, "stop_line": 214, "stop_column": 58, "path": "src/paperless/validators.py", "code": -2, "name": "missing-attribute", "description": "Object of class `EllipsisType` has no attribute `items`", "concise_description": "Object of class `EllipsisType` has no attribute `items`", "severity": "error" }, { "line": 76, "column": 23, "stop_line": 76, "stop_column": 42, "path": "src/paperless/views.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `paginator`", "concise_description": "Object of class `NoneType` has no attribute `paginator`", "severity": "error" }, { "line": 91, "column": 17, "stop_line": 91, "stop_column": 36, "path": "src/paperless/views.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `paginator`", "concise_description": "Object of class `NoneType` has no attribute `paginator`", "severity": "error" }, { "line": 94, "column": 16, "stop_line": 94, "stop_column": 35, "path": "src/paperless/views.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `paginator`", "concise_description": "Object of class `NoneType` has no attribute `paginator`", "severity": "error" }, { "line": 143, "column": 9, "stop_line": 143, "stop_column": 15, "path": "src/paperless/views.py", "code": -2, "name": "bad-override", "description": "Class member `UserViewSet.create` overrides parent class `ModelViewSet` in an inconsistent manner\n `UserViewSet.create` has type `(self: UserViewSet, request: Unknown, *args: Unknown, **kwargs: Unknown) -> HttpResponseForbidden | Response`, which is not assignable to `(self: UserViewSet, request: Request, *args: Any, **kwargs: Any) -> Response`, the type of `ModelViewSet.create`\n Signature mismatch:\n expected: def create(self: UserViewSet, request: Request, *args: Any, **kwargs: Any) -> Response: ...\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^ return type\n |\n parameters\n found: def create(self: UserViewSet, request: Unknown, *args: Unknown, **kwargs: Unknown) -> HttpResponseForbidden | Response: ...\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ return type\n |\n parameters", "concise_description": "Class member `UserViewSet.create` overrides parent class `ModelViewSet` in an inconsistent manner", "severity": "error" }, { "line": 162, "column": 9, "stop_line": 162, "stop_column": 15, "path": "src/paperless/views.py", "code": -2, "name": "bad-override", "description": "Class member `UserViewSet.update` overrides parent class `ModelViewSet` in an inconsistent manner\n `UserViewSet.update` has type `(self: UserViewSet, request: Unknown, *args: Unknown, **kwargs: Unknown) -> HttpResponseForbidden | Response`, which is not assignable to `(self: UserViewSet, request: Request, *args: Any, **kwargs: Any) -> Response`, the type of `ModelViewSet.update`\n Signature mismatch:\n expected: def update(self: UserViewSet, request: Request, *args: Any, **kwargs: Any) -> Response: ...\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^ return type\n |\n parameters\n found: def update(self: UserViewSet, request: Unknown, *args: Unknown, **kwargs: Unknown) -> HttpResponseForbidden | Response: ...\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ return type\n |\n parameters", "concise_description": "Class member `UserViewSet.update` overrides parent class `ModelViewSet` in an inconsistent manner", "severity": "error" }, { "line": 254, "column": 13, "stop_line": 254, "stop_column": 30, "path": "src/paperless/views.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `set_password`", "concise_description": "Object of class `NoneType` has no attribute `set_password`", "severity": "error" }, { "line": 255, "column": 13, "stop_line": 255, "stop_column": 22, "path": "src/paperless/views.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `save`", "concise_description": "Object of class `NoneType` has no attribute `save`", "severity": "error" }, { "line": 259, "column": 9, "stop_line": 259, "stop_column": 18, "path": "src/paperless/views.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `save`", "concise_description": "Object of class `NoneType` has no attribute `save`", "severity": "error" }, { "line": 336, "column": 38, "stop_line": 336, "stop_column": 75, "path": "src/paperless/views.py", "code": -2, "name": "bad-assignment", "description": "`Authenticator | None` is not assignable to `Authenticator`", "concise_description": "`Authenticator | None` is not assignable to `Authenticator`", "severity": "error" }, { "line": 338, "column": 34, "stop_line": 338, "stop_column": 65, "path": "src/paperless/views.py", "code": -2, "name": "missing-attribute", "description": "Object of class `TOTP` has no attribute `get_unused_codes`\nObject of class `WebAuthn` has no attribute `get_unused_codes`", "concise_description": "Object of class `TOTP` has no attribute `get_unused_codes`\nObject of class `WebAuthn` has no attribute `get_unused_codes`", "severity": "error" }, { "line": 416, "column": 13, "stop_line": 416, "stop_column": 36, "path": "src/paperless/views.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `ai_enabled`", "concise_description": "Object of class `NoneType` has no attribute `ai_enabled`", "severity": "error" }, { "line": 416, "column": 41, "stop_line": 416, "stop_column": 75, "path": "src/paperless/views.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `llm_embedding_backend`", "concise_description": "Object of class `NoneType` has no attribute `llm_embedding_backend`", "severity": "error" }, { "line": 465, "column": 23, "stop_line": 465, "stop_column": 45, "path": "src/paperless/views.py", "code": -2, "name": "missing-attribute", "description": "Object of class `AbstractBaseUser` has no attribute `socialaccount_set`\nObject of class `AnonymousUser` has no attribute `socialaccount_set`", "concise_description": "Object of class `AbstractBaseUser` has no attribute `socialaccount_set`\nObject of class `AnonymousUser` has no attribute `socialaccount_set`", "severity": "error" }, { "line": 102, "column": 30, "stop_line": 102, "stop_column": 36, "path": "src/paperless_ai/ai_classifier.py", "code": -2, "name": "bad-argument-type", "description": "Argument `str` is not assignable to parameter `raw` with type `dict[Unknown, Unknown]` in function `parse_ai_response`", "concise_description": "Argument `str` is not assignable to parameter `raw` with type `dict[Unknown, Unknown]` in function `parse_ai_response`", "severity": "error" }, { "line": 102, "column": 18, "stop_line": 102, "stop_column": 46, "path": "src/paperless_ai/chat.py", "code": -2, "name": "missing-attribute", "description": "Object of class `Response` has no attribute `response_gen`", "concise_description": "Object of class `Response` has no attribute `response_gen`", "severity": "error" }, { "line": 79, "column": 16, "stop_line": 79, "stop_column": 35, "path": "src/paperless_ai/client.py", "code": -2, "name": "bad-return", "description": "Returned type `dict[str, Any]` is not assignable to declared return type `str`", "concise_description": "Returned type `dict[str, Any]` is not assignable to declared return type `str`", "severity": "error" }, { "line": 97, "column": 21, "stop_line": 97, "stop_column": 38, "path": "src/paperless_ai/embedding.py", "code": -2, "name": "missing-attribute", "description": "Object of class `Document` has no attribute `custom_fields`", "concise_description": "Object of class `Document` has no attribute `custom_fields`", "severity": "error" }, { "line": 259, "column": 46, "stop_line": 259, "stop_column": 51, "path": "src/paperless_ai/indexing.py", "code": -2, "name": "bad-argument-type", "description": "Argument `BaseIndex[Unknown] | VectorStoreIndex` is not assignable to parameter `index` with type `VectorStoreIndex` in function `remove_document_docstore_nodes`", "concise_description": "Argument `BaseIndex[Unknown] | VectorStoreIndex` is not assignable to parameter `index` with type `VectorStoreIndex` in function `remove_document_docstore_nodes`", "severity": "error" }, { "line": 272, "column": 46, "stop_line": 272, "stop_column": 51, "path": "src/paperless_ai/indexing.py", "code": -2, "name": "bad-argument-type", "description": "Argument `BaseIndex[Unknown] | VectorStoreIndex` is not assignable to parameter `index` with type `VectorStoreIndex` in function `remove_document_docstore_nodes`", "concise_description": "Argument `BaseIndex[Unknown] | VectorStoreIndex` is not assignable to parameter `index` with type `VectorStoreIndex` in function `remove_document_docstore_nodes`", "severity": "error" }, { "line": 329, "column": 15, "stop_line": 329, "stop_column": 20, "path": "src/paperless_ai/indexing.py", "code": -2, "name": "bad-argument-type", "description": "Argument `BaseIndex[Unknown] | VectorStoreIndex` is not assignable to parameter `index` with type `VectorStoreIndex` in function `llama_index.core.indices.vector_store.retrievers.retriever.VectorIndexRetriever.__init__`", "concise_description": "Argument `BaseIndex[Unknown] | VectorStoreIndex` is not assignable to parameter `index` with type `VectorStoreIndex` in function `llama_index.core.indices.vector_store.retrievers.retriever.VectorIndexRetriever.__init__`", "severity": "error" }, { "line": 41, "column": 9, "stop_line": 41, "stop_column": 30, "path": "src/paperless_ai/tests/test_ai_indexing.py", "code": -2, "name": "bad-override", "description": "Class member `FakeEmbedding._aget_query_embedding` overrides parent class `BaseEmbedding` in an inconsistent manner\n `FakeEmbedding._aget_query_embedding` has type `(self: FakeEmbedding, query: str) -> list[float]`, which is not assignable to `(self: FakeEmbedding, query: str) -> Coroutine[Unknown, Unknown, list[float]]`, the type of `BaseEmbedding._aget_query_embedding`\n Signature mismatch:\n expected: def _aget_query_embedding(self: FakeEmbedding, query: str) -> Coroutine[Unknown, Unknown, list[float]]: ...\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ return type\n found: def _aget_query_embedding(self: FakeEmbedding, query: str) -> list[float]: ...\n ^^^^^^^^^^ return type", "concise_description": "Class member `FakeEmbedding._aget_query_embedding` overrides parent class `BaseEmbedding` in an inconsistent manner", "severity": "error" }, { "line": 107, "column": 12, "stop_line": 107, "stop_column": 27, "path": "src/paperless_ai/tests/test_client.py", "code": -2, "name": "bad-index", "description": "Cannot index into `str`\n No matching overload found for function `str.__getitem__` called with arguments: (Literal['title'])\n Possible overloads:\n (key: SupportsIndex | slice[SupportsIndex | None, SupportsIndex | None, SupportsIndex | Unknown | None], /) -> LiteralString\n (key: SupportsIndex | slice[SupportsIndex | None, SupportsIndex | None, SupportsIndex | Unknown | None], /) -> str [closest match]", "concise_description": "Cannot index into `str`", "severity": "error" }, { "line": 38, "column": 49, "stop_line": 38, "stop_column": 53, "path": "src/paperless_ai/tests/test_matching.py", "code": -2, "name": "bad-argument-type", "description": "Argument `None` is not assignable to parameter `user` with type `User` in function `paperless_ai.matching.match_tags_by_name`", "concise_description": "Argument `None` is not assignable to parameter `user` with type `User` in function `paperless_ai.matching.match_tags_by_name`", "severity": "error" }, { "line": 46, "column": 59, "stop_line": 46, "stop_column": 63, "path": "src/paperless_ai/tests/test_matching.py", "code": -2, "name": "bad-argument-type", "description": "Argument `None` is not assignable to parameter `user` with type `User` in function `paperless_ai.matching.match_correspondents_by_name`", "concise_description": "Argument `None` is not assignable to parameter `user` with type `User` in function `paperless_ai.matching.match_correspondents_by_name`", "severity": "error" }, { "line": 54, "column": 59, "stop_line": 54, "stop_column": 63, "path": "src/paperless_ai/tests/test_matching.py", "code": -2, "name": "bad-argument-type", "description": "Argument `None` is not assignable to parameter `user` with type `User` in function `paperless_ai.matching.match_document_types_by_name`", "concise_description": "Argument `None` is not assignable to parameter `user` with type `User` in function `paperless_ai.matching.match_document_types_by_name`", "severity": "error" }, { "line": 62, "column": 58, "stop_line": 62, "stop_column": 62, "path": "src/paperless_ai/tests/test_matching.py", "code": -2, "name": "bad-argument-type", "description": "Argument `None` is not assignable to parameter `user` with type `User` in function `paperless_ai.matching.match_storage_paths_by_name`", "concise_description": "Argument `None` is not assignable to parameter `user` with type `User` in function `paperless_ai.matching.match_storage_paths_by_name`", "severity": "error" }, { "line": 76, "column": 37, "stop_line": 76, "stop_column": 42, "path": "src/paperless_ai/tests/test_matching.py", "code": -2, "name": "bad-argument-type", "description": "Argument `list[str | None]` is not assignable to parameter `names` with type `list[str]` in function `paperless_ai.matching.match_tags_by_name`", "concise_description": "Argument `list[str | None]` is not assignable to parameter `names` with type `list[str]` in function `paperless_ai.matching.match_tags_by_name`", "severity": "error" }, { "line": 76, "column": 49, "stop_line": 76, "stop_column": 53, "path": "src/paperless_ai/tests/test_matching.py", "code": -2, "name": "bad-argument-type", "description": "Argument `None` is not assignable to parameter `user` with type `User` in function `paperless_ai.matching.match_tags_by_name`", "concise_description": "Argument `None` is not assignable to parameter `user` with type `User` in function `paperless_ai.matching.match_tags_by_name`", "severity": "error" }, { "line": 83, "column": 49, "stop_line": 83, "stop_column": 53, "path": "src/paperless_ai/tests/test_matching.py", "code": -2, "name": "bad-argument-type", "description": "Argument `None` is not assignable to parameter `user` with type `User` in function `paperless_ai.matching.match_tags_by_name`", "concise_description": "Argument `None` is not assignable to parameter `user` with type `User` in function `paperless_ai.matching.match_tags_by_name`", "severity": "error" }, { "line": 167, "column": 26, "stop_line": 167, "stop_column": 30, "path": "src/paperless_mail/mail.py", "code": -2, "name": "bad-assignment", "description": "`None` is not assignable to attribute `color` with type `str`", "concise_description": "`None` is not assignable to attribute `color` with type `str`", "severity": "error" }, { "line": 184, "column": 64, "stop_line": 184, "stop_column": 76, "path": "src/paperless_mail/mail.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Unknown | None` is not assignable to parameter `*args` with type `str` in function `imaplib.IMAP4.uid`", "concise_description": "Argument `Unknown | None` is not assignable to parameter `*args` with type `str` in function `imaplib.IMAP4.uid`", "severity": "error" }, { "line": 196, "column": 33, "stop_line": 196, "stop_column": 70, "path": "src/paperless_mail/mail.py", "code": -2, "name": "bad-argument-type", "description": "Argument `list[str] | list[Unknown] | None` is not assignable to parameter `flag_set` with type `Iterable[str] | str` in function `imap_tools.mailbox.BaseMailBox.flag`", "concise_description": "Argument `list[str] | list[Unknown] | None` is not assignable to parameter `flag_set` with type `Iterable[str] | str` in function `imap_tools.mailbox.BaseMailBox.flag`", "severity": "error" }, { "line": 274, "column": 53, "stop_line": 274, "stop_column": 74, "path": "src/paperless_mail/mail.py", "code": -2, "name": "bad-argument-type", "description": "Argument `str | None` is not assignable to parameter `parameter` with type `str` in function `BaseMailAction.post_consume`", "concise_description": "Argument `str | None` is not assignable to parameter `parameter` with type `str` in function `BaseMailAction.post_consume`", "severity": "error" }, { "line": 375, "column": 13, "stop_line": 375, "stop_column": 34, "path": "src/paperless_mail/mail.py", "code": -2, "name": "bad-argument-type", "description": "Argument `str | None` is not assignable to parameter `parameter` with type `str` in function `TagMailAction.__init__`", "concise_description": "Argument `str | None` is not assignable to parameter `parameter` with type `str` in function `TagMailAction.__init__`", "severity": "error" }, { "line": 392, "column": 30, "stop_line": 392, "stop_column": 46, "path": "src/paperless_mail/mail.py", "code": -2, "name": "unsupported-operation", "description": "Cannot set item in `dict[str, date]`\n Argument `str` is not assignable to parameter `value` with type `date` in function `dict.__setitem__`", "concise_description": "Cannot set item in `dict[str, date]`", "severity": "error" }, { "line": 394, "column": 27, "stop_line": 394, "stop_column": 41, "path": "src/paperless_mail/mail.py", "code": -2, "name": "unsupported-operation", "description": "Cannot set item in `dict[str, date]`\n Argument `str` is not assignable to parameter `value` with type `date` in function `dict.__setitem__`", "concise_description": "Cannot set item in `dict[str, date]`", "severity": "error" }, { "line": 396, "column": 32, "stop_line": 396, "stop_column": 51, "path": "src/paperless_mail/mail.py", "code": -2, "name": "unsupported-operation", "description": "Cannot set item in `dict[str, date]`\n Argument `str` is not assignable to parameter `value` with type `date` in function `dict.__setitem__`", "concise_description": "Cannot set item in `dict[str, date]`", "severity": "error" }, { "line": 398, "column": 29, "stop_line": 398, "stop_column": 45, "path": "src/paperless_mail/mail.py", "code": -2, "name": "unsupported-operation", "description": "Cannot set item in `dict[str, date]`\n Argument `str` is not assignable to parameter `value` with type `date` in function `dict.__setitem__`", "concise_description": "Cannot set item in `dict[str, date]`", "severity": "error" }, { "line": 406, "column": 38, "stop_line": 406, "stop_column": 49, "path": "src/paperless_mail/mail.py", "code": -2, "name": "bad-argument-type", "description": "Unpacked keyword argument `date` is not assignable to parameter `answered` with type `bool | None` in function `imap_tools.query.LogicOperator.__init__`", "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `answered` with type `bool | None` in function `imap_tools.query.LogicOperator.__init__`", "severity": "error" }, { "line": 406, "column": 38, "stop_line": 406, "stop_column": 49, "path": "src/paperless_mail/mail.py", "code": -2, "name": "bad-argument-type", "description": "Unpacked keyword argument `date` is not assignable to parameter `seen` with type `bool | None` in function `imap_tools.query.LogicOperator.__init__`", "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `seen` with type `bool | None` in function `imap_tools.query.LogicOperator.__init__`", "severity": "error" }, { "line": 406, "column": 38, "stop_line": 406, "stop_column": 49, "path": "src/paperless_mail/mail.py", "code": -2, "name": "bad-argument-type", "description": "Unpacked keyword argument `date` is not assignable to parameter `flagged` with type `bool | None` in function `imap_tools.query.LogicOperator.__init__`", "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `flagged` with type `bool | None` in function `imap_tools.query.LogicOperator.__init__`", "severity": "error" }, { "line": 406, "column": 38, "stop_line": 406, "stop_column": 49, "path": "src/paperless_mail/mail.py", "code": -2, "name": "bad-argument-type", "description": "Unpacked keyword argument `date` is not assignable to parameter `draft` with type `bool | None` in function `imap_tools.query.LogicOperator.__init__`", "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `draft` with type `bool | None` in function `imap_tools.query.LogicOperator.__init__`", "severity": "error" }, { "line": 406, "column": 38, "stop_line": 406, "stop_column": 49, "path": "src/paperless_mail/mail.py", "code": -2, "name": "bad-argument-type", "description": "Unpacked keyword argument `date` is not assignable to parameter `deleted` with type `bool | None` in function `imap_tools.query.LogicOperator.__init__`", "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `deleted` with type `bool | None` in function `imap_tools.query.LogicOperator.__init__`", "severity": "error" }, { "line": 406, "column": 38, "stop_line": 406, "stop_column": 49, "path": "src/paperless_mail/mail.py", "code": -2, "name": "bad-argument-type", "description": "Unpacked keyword argument `date` is not assignable to parameter `keyword` with type `list[str] | str | None` in function `imap_tools.query.LogicOperator.__init__`", "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `keyword` with type `list[str] | str | None` in function `imap_tools.query.LogicOperator.__init__`", "severity": "error" }, { "line": 406, "column": 38, "stop_line": 406, "stop_column": 49, "path": "src/paperless_mail/mail.py", "code": -2, "name": "bad-argument-type", "description": "Unpacked keyword argument `date` is not assignable to parameter `no_keyword` with type `list[str] | str | None` in function `imap_tools.query.LogicOperator.__init__`", "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `no_keyword` with type `list[str] | str | None` in function `imap_tools.query.LogicOperator.__init__`", "severity": "error" }, { "line": 406, "column": 38, "stop_line": 406, "stop_column": 49, "path": "src/paperless_mail/mail.py", "code": -2, "name": "bad-argument-type", "description": "Unpacked keyword argument `date` is not assignable to parameter `from_` with type `list[str] | str | None` in function `imap_tools.query.LogicOperator.__init__`", "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `from_` with type `list[str] | str | None` in function `imap_tools.query.LogicOperator.__init__`", "severity": "error" }, { "line": 406, "column": 38, "stop_line": 406, "stop_column": 49, "path": "src/paperless_mail/mail.py", "code": -2, "name": "bad-argument-type", "description": "Unpacked keyword argument `date` is not assignable to parameter `to` with type `list[str] | str | None` in function `imap_tools.query.LogicOperator.__init__`", "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `to` with type `list[str] | str | None` in function `imap_tools.query.LogicOperator.__init__`", "severity": "error" }, { "line": 406, "column": 38, "stop_line": 406, "stop_column": 49, "path": "src/paperless_mail/mail.py", "code": -2, "name": "bad-argument-type", "description": "Unpacked keyword argument `date` is not assignable to parameter `subject` with type `list[str] | str | None` in function `imap_tools.query.LogicOperator.__init__`", "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `subject` with type `list[str] | str | None` in function `imap_tools.query.LogicOperator.__init__`", "severity": "error" }, { "line": 406, "column": 38, "stop_line": 406, "stop_column": 49, "path": "src/paperless_mail/mail.py", "code": -2, "name": "bad-argument-type", "description": "Unpacked keyword argument `date` is not assignable to parameter `body` with type `list[str] | str | None` in function `imap_tools.query.LogicOperator.__init__`", "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `body` with type `list[str] | str | None` in function `imap_tools.query.LogicOperator.__init__`", "severity": "error" }, { "line": 406, "column": 38, "stop_line": 406, "stop_column": 49, "path": "src/paperless_mail/mail.py", "code": -2, "name": "bad-argument-type", "description": "Unpacked keyword argument `date` is not assignable to parameter `text` with type `list[str] | str | None` in function `imap_tools.query.LogicOperator.__init__`", "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `text` with type `list[str] | str | None` in function `imap_tools.query.LogicOperator.__init__`", "severity": "error" }, { "line": 406, "column": 38, "stop_line": 406, "stop_column": 49, "path": "src/paperless_mail/mail.py", "code": -2, "name": "bad-argument-type", "description": "Unpacked keyword argument `date` is not assignable to parameter `bcc` with type `list[str] | str | None` in function `imap_tools.query.LogicOperator.__init__`", "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `bcc` with type `list[str] | str | None` in function `imap_tools.query.LogicOperator.__init__`", "severity": "error" }, { "line": 406, "column": 38, "stop_line": 406, "stop_column": 49, "path": "src/paperless_mail/mail.py", "code": -2, "name": "bad-argument-type", "description": "Unpacked keyword argument `date` is not assignable to parameter `cc` with type `list[str] | str | None` in function `imap_tools.query.LogicOperator.__init__`", "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `cc` with type `list[str] | str | None` in function `imap_tools.query.LogicOperator.__init__`", "severity": "error" }, { "line": 406, "column": 38, "stop_line": 406, "stop_column": 49, "path": "src/paperless_mail/mail.py", "code": -2, "name": "bad-argument-type", "description": "Unpacked keyword argument `date` is not assignable to parameter `size_gt` with type `int | None` in function `imap_tools.query.LogicOperator.__init__`", "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `size_gt` with type `int | None` in function `imap_tools.query.LogicOperator.__init__`", "severity": "error" }, { "line": 406, "column": 38, "stop_line": 406, "stop_column": 49, "path": "src/paperless_mail/mail.py", "code": -2, "name": "bad-argument-type", "description": "Unpacked keyword argument `date` is not assignable to parameter `size_lt` with type `int | None` in function `imap_tools.query.LogicOperator.__init__`", "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `size_lt` with type `int | None` in function `imap_tools.query.LogicOperator.__init__`", "severity": "error" }, { "line": 406, "column": 38, "stop_line": 406, "stop_column": 49, "path": "src/paperless_mail/mail.py", "code": -2, "name": "bad-argument-type", "description": "Unpacked keyword argument `date` is not assignable to parameter `new` with type `bool | None` in function `imap_tools.query.LogicOperator.__init__`", "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `new` with type `bool | None` in function `imap_tools.query.LogicOperator.__init__`", "severity": "error" }, { "line": 406, "column": 38, "stop_line": 406, "stop_column": 49, "path": "src/paperless_mail/mail.py", "code": -2, "name": "bad-argument-type", "description": "Unpacked keyword argument `date` is not assignable to parameter `old` with type `bool | None` in function `imap_tools.query.LogicOperator.__init__`", "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `old` with type `bool | None` in function `imap_tools.query.LogicOperator.__init__`", "severity": "error" }, { "line": 406, "column": 38, "stop_line": 406, "stop_column": 49, "path": "src/paperless_mail/mail.py", "code": -2, "name": "bad-argument-type", "description": "Unpacked keyword argument `date` is not assignable to parameter `recent` with type `bool | None` in function `imap_tools.query.LogicOperator.__init__`", "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `recent` with type `bool | None` in function `imap_tools.query.LogicOperator.__init__`", "severity": "error" }, { "line": 406, "column": 38, "stop_line": 406, "stop_column": 49, "path": "src/paperless_mail/mail.py", "code": -2, "name": "bad-argument-type", "description": "Unpacked keyword argument `date` is not assignable to parameter `all` with type `bool | None` in function `imap_tools.query.LogicOperator.__init__`", "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `all` with type `bool | None` in function `imap_tools.query.LogicOperator.__init__`", "severity": "error" }, { "line": 406, "column": 38, "stop_line": 406, "stop_column": 49, "path": "src/paperless_mail/mail.py", "code": -2, "name": "bad-argument-type", "description": "Unpacked keyword argument `date` is not assignable to parameter `uid` with type `Iterable[str] | UidRange | str | None` in function `imap_tools.query.LogicOperator.__init__`", "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `uid` with type `Iterable[str] | UidRange | str | None` in function `imap_tools.query.LogicOperator.__init__`", "severity": "error" }, { "line": 406, "column": 38, "stop_line": 406, "stop_column": 49, "path": "src/paperless_mail/mail.py", "code": -2, "name": "bad-argument-type", "description": "Unpacked keyword argument `date` is not assignable to parameter `header` with type `Header | list[Header] | None` in function `imap_tools.query.LogicOperator.__init__`", "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `header` with type `Header | list[Header] | None` in function `imap_tools.query.LogicOperator.__init__`", "severity": "error" }, { "line": 406, "column": 38, "stop_line": 406, "stop_column": 49, "path": "src/paperless_mail/mail.py", "code": -2, "name": "bad-argument-type", "description": "Unpacked keyword argument `date` is not assignable to parameter `gmail_label` with type `list[str] | str | None` in function `imap_tools.query.LogicOperator.__init__`", "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `gmail_label` with type `list[str] | str | None` in function `imap_tools.query.LogicOperator.__init__`", "severity": "error" }, { "line": 410, "column": 32, "stop_line": 410, "stop_column": 43, "path": "src/paperless_mail/mail.py", "code": -2, "name": "bad-argument-type", "description": "Unpacked keyword argument `date` is not assignable to parameter `answered` with type `bool | None` in function `imap_tools.query.LogicOperator.__init__`", "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `answered` with type `bool | None` in function `imap_tools.query.LogicOperator.__init__`", "severity": "error" }, { "line": 410, "column": 32, "stop_line": 410, "stop_column": 43, "path": "src/paperless_mail/mail.py", "code": -2, "name": "bad-argument-type", "description": "Unpacked keyword argument `date` is not assignable to parameter `seen` with type `bool | None` in function `imap_tools.query.LogicOperator.__init__`", "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `seen` with type `bool | None` in function `imap_tools.query.LogicOperator.__init__`", "severity": "error" }, { "line": 410, "column": 32, "stop_line": 410, "stop_column": 43, "path": "src/paperless_mail/mail.py", "code": -2, "name": "bad-argument-type", "description": "Unpacked keyword argument `date` is not assignable to parameter `flagged` with type `bool | None` in function `imap_tools.query.LogicOperator.__init__`", "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `flagged` with type `bool | None` in function `imap_tools.query.LogicOperator.__init__`", "severity": "error" }, { "line": 410, "column": 32, "stop_line": 410, "stop_column": 43, "path": "src/paperless_mail/mail.py", "code": -2, "name": "bad-argument-type", "description": "Unpacked keyword argument `date` is not assignable to parameter `draft` with type `bool | None` in function `imap_tools.query.LogicOperator.__init__`", "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `draft` with type `bool | None` in function `imap_tools.query.LogicOperator.__init__`", "severity": "error" }, { "line": 410, "column": 32, "stop_line": 410, "stop_column": 43, "path": "src/paperless_mail/mail.py", "code": -2, "name": "bad-argument-type", "description": "Unpacked keyword argument `date` is not assignable to parameter `deleted` with type `bool | None` in function `imap_tools.query.LogicOperator.__init__`", "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `deleted` with type `bool | None` in function `imap_tools.query.LogicOperator.__init__`", "severity": "error" }, { "line": 410, "column": 32, "stop_line": 410, "stop_column": 43, "path": "src/paperless_mail/mail.py", "code": -2, "name": "bad-argument-type", "description": "Unpacked keyword argument `date` is not assignable to parameter `keyword` with type `list[str] | str | None` in function `imap_tools.query.LogicOperator.__init__`", "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `keyword` with type `list[str] | str | None` in function `imap_tools.query.LogicOperator.__init__`", "severity": "error" }, { "line": 410, "column": 32, "stop_line": 410, "stop_column": 43, "path": "src/paperless_mail/mail.py", "code": -2, "name": "bad-argument-type", "description": "Unpacked keyword argument `date` is not assignable to parameter `no_keyword` with type `list[str] | str | None` in function `imap_tools.query.LogicOperator.__init__`", "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `no_keyword` with type `list[str] | str | None` in function `imap_tools.query.LogicOperator.__init__`", "severity": "error" }, { "line": 410, "column": 32, "stop_line": 410, "stop_column": 43, "path": "src/paperless_mail/mail.py", "code": -2, "name": "bad-argument-type", "description": "Unpacked keyword argument `date` is not assignable to parameter `from_` with type `list[str] | str | None` in function `imap_tools.query.LogicOperator.__init__`", "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `from_` with type `list[str] | str | None` in function `imap_tools.query.LogicOperator.__init__`", "severity": "error" }, { "line": 410, "column": 32, "stop_line": 410, "stop_column": 43, "path": "src/paperless_mail/mail.py", "code": -2, "name": "bad-argument-type", "description": "Unpacked keyword argument `date` is not assignable to parameter `to` with type `list[str] | str | None` in function `imap_tools.query.LogicOperator.__init__`", "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `to` with type `list[str] | str | None` in function `imap_tools.query.LogicOperator.__init__`", "severity": "error" }, { "line": 410, "column": 32, "stop_line": 410, "stop_column": 43, "path": "src/paperless_mail/mail.py", "code": -2, "name": "bad-argument-type", "description": "Unpacked keyword argument `date` is not assignable to parameter `subject` with type `list[str] | str | None` in function `imap_tools.query.LogicOperator.__init__`", "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `subject` with type `list[str] | str | None` in function `imap_tools.query.LogicOperator.__init__`", "severity": "error" }, { "line": 410, "column": 32, "stop_line": 410, "stop_column": 43, "path": "src/paperless_mail/mail.py", "code": -2, "name": "bad-argument-type", "description": "Unpacked keyword argument `date` is not assignable to parameter `body` with type `list[str] | str | None` in function `imap_tools.query.LogicOperator.__init__`", "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `body` with type `list[str] | str | None` in function `imap_tools.query.LogicOperator.__init__`", "severity": "error" }, { "line": 410, "column": 32, "stop_line": 410, "stop_column": 43, "path": "src/paperless_mail/mail.py", "code": -2, "name": "bad-argument-type", "description": "Unpacked keyword argument `date` is not assignable to parameter `text` with type `list[str] | str | None` in function `imap_tools.query.LogicOperator.__init__`", "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `text` with type `list[str] | str | None` in function `imap_tools.query.LogicOperator.__init__`", "severity": "error" }, { "line": 410, "column": 32, "stop_line": 410, "stop_column": 43, "path": "src/paperless_mail/mail.py", "code": -2, "name": "bad-argument-type", "description": "Unpacked keyword argument `date` is not assignable to parameter `bcc` with type `list[str] | str | None` in function `imap_tools.query.LogicOperator.__init__`", "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `bcc` with type `list[str] | str | None` in function `imap_tools.query.LogicOperator.__init__`", "severity": "error" }, { "line": 410, "column": 32, "stop_line": 410, "stop_column": 43, "path": "src/paperless_mail/mail.py", "code": -2, "name": "bad-argument-type", "description": "Unpacked keyword argument `date` is not assignable to parameter `cc` with type `list[str] | str | None` in function `imap_tools.query.LogicOperator.__init__`", "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `cc` with type `list[str] | str | None` in function `imap_tools.query.LogicOperator.__init__`", "severity": "error" }, { "line": 410, "column": 32, "stop_line": 410, "stop_column": 43, "path": "src/paperless_mail/mail.py", "code": -2, "name": "bad-argument-type", "description": "Unpacked keyword argument `date` is not assignable to parameter `size_gt` with type `int | None` in function `imap_tools.query.LogicOperator.__init__`", "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `size_gt` with type `int | None` in function `imap_tools.query.LogicOperator.__init__`", "severity": "error" }, { "line": 410, "column": 32, "stop_line": 410, "stop_column": 43, "path": "src/paperless_mail/mail.py", "code": -2, "name": "bad-argument-type", "description": "Unpacked keyword argument `date` is not assignable to parameter `size_lt` with type `int | None` in function `imap_tools.query.LogicOperator.__init__`", "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `size_lt` with type `int | None` in function `imap_tools.query.LogicOperator.__init__`", "severity": "error" }, { "line": 410, "column": 32, "stop_line": 410, "stop_column": 43, "path": "src/paperless_mail/mail.py", "code": -2, "name": "bad-argument-type", "description": "Unpacked keyword argument `date` is not assignable to parameter `new` with type `bool | None` in function `imap_tools.query.LogicOperator.__init__`", "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `new` with type `bool | None` in function `imap_tools.query.LogicOperator.__init__`", "severity": "error" }, { "line": 410, "column": 32, "stop_line": 410, "stop_column": 43, "path": "src/paperless_mail/mail.py", "code": -2, "name": "bad-argument-type", "description": "Unpacked keyword argument `date` is not assignable to parameter `old` with type `bool | None` in function `imap_tools.query.LogicOperator.__init__`", "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `old` with type `bool | None` in function `imap_tools.query.LogicOperator.__init__`", "severity": "error" }, { "line": 410, "column": 32, "stop_line": 410, "stop_column": 43, "path": "src/paperless_mail/mail.py", "code": -2, "name": "bad-argument-type", "description": "Unpacked keyword argument `date` is not assignable to parameter `recent` with type `bool | None` in function `imap_tools.query.LogicOperator.__init__`", "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `recent` with type `bool | None` in function `imap_tools.query.LogicOperator.__init__`", "severity": "error" }, { "line": 410, "column": 32, "stop_line": 410, "stop_column": 43, "path": "src/paperless_mail/mail.py", "code": -2, "name": "bad-argument-type", "description": "Unpacked keyword argument `date` is not assignable to parameter `all` with type `bool | None` in function `imap_tools.query.LogicOperator.__init__`", "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `all` with type `bool | None` in function `imap_tools.query.LogicOperator.__init__`", "severity": "error" }, { "line": 410, "column": 32, "stop_line": 410, "stop_column": 43, "path": "src/paperless_mail/mail.py", "code": -2, "name": "bad-argument-type", "description": "Unpacked keyword argument `date` is not assignable to parameter `uid` with type `Iterable[str] | UidRange | str | None` in function `imap_tools.query.LogicOperator.__init__`", "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `uid` with type `Iterable[str] | UidRange | str | None` in function `imap_tools.query.LogicOperator.__init__`", "severity": "error" }, { "line": 410, "column": 32, "stop_line": 410, "stop_column": 43, "path": "src/paperless_mail/mail.py", "code": -2, "name": "bad-argument-type", "description": "Unpacked keyword argument `date` is not assignable to parameter `header` with type `Header | list[Header] | None` in function `imap_tools.query.LogicOperator.__init__`", "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `header` with type `Header | list[Header] | None` in function `imap_tools.query.LogicOperator.__init__`", "severity": "error" }, { "line": 410, "column": 32, "stop_line": 410, "stop_column": 43, "path": "src/paperless_mail/mail.py", "code": -2, "name": "bad-argument-type", "description": "Unpacked keyword argument `date` is not assignable to parameter `gmail_label` with type `list[str] | str | None` in function `imap_tools.query.LogicOperator.__init__`", "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `gmail_label` with type `list[str] | str | None` in function `imap_tools.query.LogicOperator.__init__`", "severity": "error" }, { "line": 436, "column": 12, "stop_line": 436, "stop_column": 19, "path": "src/paperless_mail/mail.py", "code": -2, "name": "bad-return", "description": "Returned type `MailBox | MailBoxStartTls | MailBoxUnencrypted` is not assignable to declared return type `MailBox`", "concise_description": "Returned type `MailBox | MailBoxStartTls | MailBoxUnencrypted` is not assignable to declared return type `MailBox`", "severity": "error" }, { "line": 575, "column": 54, "stop_line": 575, "stop_column": 67, "path": "src/paperless_mail/mail.py", "code": -2, "name": "missing-attribute", "description": "Object of class `MailAccount` has no attribute `rules`", "concise_description": "Object of class `MailAccount` has no attribute `rules`", "severity": "error" }, { "line": 578, "column": 29, "stop_line": 578, "stop_column": 42, "path": "src/paperless_mail/mail.py", "code": -2, "name": "missing-attribute", "description": "Object of class `MailAccount` has no attribute `rules`", "concise_description": "Object of class `MailAccount` has no attribute `rules`", "severity": "error" }, { "line": 624, "column": 31, "stop_line": 624, "stop_column": 52, "path": "src/paperless_mail/mail.py", "code": -2, "name": "bad-argument-type", "description": "Argument `str | None` is not assignable to parameter `object` with type `str` in function `list.insert`", "concise_description": "Argument `str | None` is not assignable to parameter `object` with type `str` in function `list.insert`", "severity": "error" }, { "line": 631, "column": 44, "stop_line": 631, "stop_column": 50, "path": "src/paperless_mail/mail.py", "code": -2, "name": "unbound-name", "description": "`folder` is uninitialized", "concise_description": "`folder` is uninitialized", "severity": "error" }, { "line": 960, "column": 40, "stop_line": 960, "stop_column": 60, "path": "src/paperless_mail/mail.py", "code": -2, "name": "missing-attribute", "description": "Object of class `Message` has no attribute `_headers`", "concise_description": "Object of class `Message` has no attribute `_headers`", "severity": "error" }, { "line": 964, "column": 32, "stop_line": 964, "stop_column": 52, "path": "src/paperless_mail/mail.py", "code": -2, "name": "missing-attribute", "description": "Object of class `Message` has no attribute `_headers`", "concise_description": "Object of class `Message` has no attribute `_headers`", "severity": "error" }, { "line": 965, "column": 32, "stop_line": 965, "stop_column": 52, "path": "src/paperless_mail/mail.py", "code": -2, "name": "missing-attribute", "description": "Object of class `Message` has no attribute `_headers`", "concise_description": "Object of class `Message` has no attribute `_headers`", "severity": "error" }, { "line": 966, "column": 17, "stop_line": 966, "stop_column": 37, "path": "src/paperless_mail/mail.py", "code": -2, "name": "missing-attribute", "description": "Object of class `Message` has no attribute `_headers`", "concise_description": "Object of class `Message` has no attribute `_headers`", "severity": "error" }, { "line": 980, "column": 27, "stop_line": 980, "stop_column": 40, "path": "src/paperless_mail/mail.py", "code": -2, "name": "bad-argument-type", "description": "Argument `str` is not assignable to parameter `original_file` with type `Path` in function `documents.data_models.ConsumableDocument.__init__`", "concise_description": "Argument `str` is not assignable to parameter `original_file` with type `Path` in function `documents.data_models.ConsumableDocument.__init__`", "severity": "error" }, { "line": 97, "column": 39, "stop_line": 97, "stop_column": 60, "path": "src/paperless_mail/oauth.py", "code": -2, "name": "bad-argument-type", "description": "Argument `str | None` is not assignable to parameter `refresh_token` with type `str` in function `httpx_oauth.oauth2.BaseOAuth2.refresh_token`", "concise_description": "Argument `str | None` is not assignable to parameter `refresh_token` with type `str` in function `httpx_oauth.oauth2.BaseOAuth2.refresh_token`", "severity": "error" }, { "line": 103, "column": 39, "stop_line": 103, "stop_column": 60, "path": "src/paperless_mail/oauth.py", "code": -2, "name": "bad-argument-type", "description": "Argument `str | None` is not assignable to parameter `refresh_token` with type `str` in function `httpx_oauth.oauth2.BaseOAuth2.refresh_token`", "concise_description": "Argument `str | None` is not assignable to parameter `refresh_token` with type `str` in function `httpx_oauth.oauth2.BaseOAuth2.refresh_token`", "severity": "error" }, { "line": 106, "column": 35, "stop_line": 106, "stop_column": 41, "path": "src/paperless_mail/oauth.py", "code": -2, "name": "unbound-name", "description": "`result` may be uninitialized", "concise_description": "`result` may be uninitialized", "severity": "error" }, { "line": 73, "column": 71, "stop_line": 73, "stop_column": 99, "path": "src/paperless_mail/preprocessor.py", "code": -2, "name": "missing-attribute", "description": "Object of class `Crypt` has no attribute `stderr`", "concise_description": "Object of class `Crypt` has no attribute `stderr`", "severity": "error" }, { "line": 30, "column": 11, "stop_line": 30, "stop_column": 15, "path": "src/paperless_mail/serialisers.py", "code": -2, "name": "bad-override", "description": "Class member `MailAccountSerializer.Meta` overrides parent class `OwnedObjectSerializer` in an inconsistent manner\n `MailAccountSerializer.Meta` has type `type[MailAccountSerializer.Meta]`, which is not assignable to `type[ModelSerializer.Meta]`, the type of `OwnedObjectSerializer.Meta`", "concise_description": "Class member `MailAccountSerializer.Meta` overrides parent class `OwnedObjectSerializer` in an inconsistent manner", "severity": "error" }, { "line": 77, "column": 11, "stop_line": 77, "stop_column": 15, "path": "src/paperless_mail/serialisers.py", "code": -2, "name": "bad-override", "description": "Class member `MailRuleSerializer.Meta` overrides parent class `OwnedObjectSerializer` in an inconsistent manner\n `MailRuleSerializer.Meta` has type `type[MailRuleSerializer.Meta]`, which is not assignable to `type[ModelSerializer.Meta]`, the type of `OwnedObjectSerializer.Meta`", "concise_description": "Class member `MailRuleSerializer.Meta` overrides parent class `OwnedObjectSerializer` in an inconsistent manner", "severity": "error" }, { "line": 153, "column": 11, "stop_line": 153, "stop_column": 15, "path": "src/paperless_mail/serialisers.py", "code": -2, "name": "bad-override", "description": "Class member `ProcessedMailSerializer.Meta` overrides parent class `OwnedObjectSerializer` in an inconsistent manner\n `ProcessedMailSerializer.Meta` has type `type[ProcessedMailSerializer.Meta]`, which is not assignable to `type[ModelSerializer.Meta]`, the type of `OwnedObjectSerializer.Meta`", "concise_description": "Class member `ProcessedMailSerializer.Meta` overrides parent class `OwnedObjectSerializer` in an inconsistent manner", "severity": "error" }, { "line": 57, "column": 44, "stop_line": 57, "stop_column": 48, "path": "src/paperless_mail/tests/test_mail.py", "code": -2, "name": "bad-argument-type", "description": "Argument `None` is not assignable to parameter `command_result` with type `tuple[Unknown, ...]` in function `imap_tools.errors.UnexpectedCommandStatusError.__init__`", "concise_description": "Argument `None` is not assignable to parameter `command_result` with type `tuple[Unknown, ...]` in function `imap_tools.errors.UnexpectedCommandStatusError.__init__`", "severity": "error" }, { "line": 76, "column": 37, "stop_line": 76, "stop_column": 42, "path": "src/paperless_mail/tests/test_mail.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Literal['BAD']` is not assignable to parameter `command_result` with type `tuple[Unknown, ...]` in function `imap_tools.errors.UnexpectedCommandStatusError.__init__`", "concise_description": "Argument `Literal['BAD']` is not assignable to parameter `command_result` with type `tuple[Unknown, ...]` in function `imap_tools.errors.UnexpectedCommandStatusError.__init__`", "severity": "error" }, { "line": 119, "column": 37, "stop_line": 119, "stop_column": 42, "path": "src/paperless_mail/tests/test_mail.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Literal['BAD']` is not assignable to parameter `command_result` with type `tuple[Unknown, ...]` in function `imap_tools.errors.UnexpectedCommandStatusError.__init__`", "concise_description": "Argument `Literal['BAD']` is not assignable to parameter `command_result` with type `tuple[Unknown, ...]` in function `imap_tools.errors.UnexpectedCommandStatusError.__init__`", "severity": "error" }, { "line": 124, "column": 37, "stop_line": 124, "stop_column": 42, "path": "src/paperless_mail/tests/test_mail.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Literal['BAD']` is not assignable to parameter `command_result` with type `tuple[Unknown, ...]` in function `imap_tools.errors.UnexpectedCommandStatusError.__init__`", "concise_description": "Argument `Literal['BAD']` is not assignable to parameter `command_result` with type `tuple[Unknown, ...]` in function `imap_tools.errors.UnexpectedCommandStatusError.__init__`", "severity": "error" }, { "line": 128, "column": 37, "stop_line": 128, "stop_column": 42, "path": "src/paperless_mail/tests/test_mail.py", "code": -2, "name": "bad-argument-type", "description": "Argument `Literal['BAD']` is not assignable to parameter `command_result` with type `tuple[Unknown, ...]` in function `imap_tools.errors.UnexpectedCommandStatusError.__init__`", "concise_description": "Argument `Literal['BAD']` is not assignable to parameter `command_result` with type `tuple[Unknown, ...]` in function `imap_tools.errors.UnexpectedCommandStatusError.__init__`", "severity": "error" }, { "line": 174, "column": 25, "stop_line": 174, "stop_column": 40, "path": "src/paperless_mail/tests/test_mail.py", "code": -2, "name": "missing-attribute", "description": "Object of class `MailMessage` has no attribute `flagged`", "concise_description": "Object of class `MailMessage` has no attribute `flagged`", "severity": "error" }, { "line": 176, "column": 25, "stop_line": 176, "stop_column": 37, "path": "src/paperless_mail/tests/test_mail.py", "code": -2, "name": "missing-attribute", "description": "Object of class `MailMessage` has no attribute `seen`", "concise_description": "Object of class `MailMessage` has no attribute `seen`", "severity": "error" }, { "line": 262, "column": 9, "stop_line": 262, "stop_column": 22, "path": "src/paperless_mail/tests/test_mail.py", "code": -2, "name": "missing-attribute", "description": "Object of class `MailMessage` has no attribute `seen`", "concise_description": "Object of class `MailMessage` has no attribute `seen`", "severity": "error" }, { "line": 263, "column": 9, "stop_line": 263, "stop_column": 25, "path": "src/paperless_mail/tests/test_mail.py", "code": -2, "name": "missing-attribute", "description": "Object of class `MailMessage` has no attribute `flagged`", "concise_description": "Object of class `MailMessage` has no attribute `flagged`", "severity": "error" }, { "line": 421, "column": 30, "stop_line": 421, "stop_column": 43, "path": "src/paperless_mail/tests/test_mail.py", "code": -2, "name": "invalid-argument", "description": "Expected string literal \"message\"", "concise_description": "Expected string literal \"message\"", "severity": "error" }, { "line": 428, "column": 31, "stop_line": 428, "stop_column": 44, "path": "src/paperless_mail/tests/test_mail.py", "code": -2, "name": "invalid-argument", "description": "Expected string literal \"message2\"", "concise_description": "Expected string literal \"message2\"", "severity": "error" }, { "line": 435, "column": 58, "stop_line": 435, "stop_column": 72, "path": "src/paperless_mail/tests/test_mail.py", "code": -2, "name": "missing-attribute", "description": "Class `message2` has no class attribute `from_`", "concise_description": "Class `message2` has no class attribute `from_`", "severity": "error" }, { "line": 444, "column": 54, "stop_line": 444, "stop_column": 61, "path": "src/paperless_mail/tests/test_mail.py", "code": -2, "name": "bad-argument-type", "description": "Argument `type[TestMail.test_get_correspondent.message]` is not assignable to parameter `message` with type `MailMessage` in function `paperless_mail.mail.MailAccountHandler._get_correspondent`", "concise_description": "Argument `type[TestMail.test_get_correspondent.message]` is not assignable to parameter `message` with type `MailMessage` in function `paperless_mail.mail.MailAccountHandler._get_correspondent`", "severity": "error" }, { "line": 450, "column": 40, "stop_line": 450, "stop_column": 47, "path": "src/paperless_mail/tests/test_mail.py", "code": -2, "name": "bad-argument-type", "description": "Argument `type[TestMail.test_get_correspondent.message]` is not assignable to parameter `message` with type `MailMessage` in function `paperless_mail.mail.MailAccountHandler._get_correspondent`", "concise_description": "Argument `type[TestMail.test_get_correspondent.message]` is not assignable to parameter `message` with type `MailMessage` in function `paperless_mail.mail.MailAccountHandler._get_correspondent`", "severity": "error" }, { "line": 455, "column": 40, "stop_line": 455, "stop_column": 48, "path": "src/paperless_mail/tests/test_mail.py", "code": -2, "name": "bad-argument-type", "description": "Argument `type[TestMail.test_get_correspondent.message2]` is not assignable to parameter `message` with type `MailMessage` in function `paperless_mail.mail.MailAccountHandler._get_correspondent`", "concise_description": "Argument `type[TestMail.test_get_correspondent.message2]` is not assignable to parameter `message` with type `MailMessage` in function `paperless_mail.mail.MailAccountHandler._get_correspondent`", "severity": "error" }, { "line": 464, "column": 40, "stop_line": 464, "stop_column": 47, "path": "src/paperless_mail/tests/test_mail.py", "code": -2, "name": "bad-argument-type", "description": "Argument `type[TestMail.test_get_correspondent.message]` is not assignable to parameter `message` with type `MailMessage` in function `paperless_mail.mail.MailAccountHandler._get_correspondent`", "concise_description": "Argument `type[TestMail.test_get_correspondent.message]` is not assignable to parameter `message` with type `MailMessage` in function `paperless_mail.mail.MailAccountHandler._get_correspondent`", "severity": "error" }, { "line": 467, "column": 40, "stop_line": 467, "stop_column": 48, "path": "src/paperless_mail/tests/test_mail.py", "code": -2, "name": "bad-argument-type", "description": "Argument `type[TestMail.test_get_correspondent.message2]` is not assignable to parameter `message` with type `MailMessage` in function `paperless_mail.mail.MailAccountHandler._get_correspondent`", "concise_description": "Argument `type[TestMail.test_get_correspondent.message2]` is not assignable to parameter `message` with type `MailMessage` in function `paperless_mail.mail.MailAccountHandler._get_correspondent`", "severity": "error" }, { "line": 476, "column": 40, "stop_line": 476, "stop_column": 47, "path": "src/paperless_mail/tests/test_mail.py", "code": -2, "name": "bad-argument-type", "description": "Argument `type[TestMail.test_get_correspondent.message]` is not assignable to parameter `message` with type `MailMessage` in function `paperless_mail.mail.MailAccountHandler._get_correspondent`", "concise_description": "Argument `type[TestMail.test_get_correspondent.message]` is not assignable to parameter `message` with type `MailMessage` in function `paperless_mail.mail.MailAccountHandler._get_correspondent`", "severity": "error" }, { "line": 480, "column": 30, "stop_line": 480, "stop_column": 43, "path": "src/paperless_mail/tests/test_mail.py", "code": -2, "name": "invalid-argument", "description": "Expected string literal \"message\"", "concise_description": "Expected string literal \"message\"", "severity": "error" }, { "line": 482, "column": 26, "stop_line": 482, "stop_column": 38, "path": "src/paperless_mail/tests/test_mail.py", "code": -2, "name": "invalid-argument", "description": "Expected string literal \"att\"", "concise_description": "Expected string literal \"att\"", "severity": "error" }, { "line": 491, "column": 45, "stop_line": 491, "stop_column": 52, "path": "src/paperless_mail/tests/test_mail.py", "code": -2, "name": "bad-argument-type", "description": "Argument `type[TestMail.test_get_title.message]` is not assignable to parameter `message` with type `MailMessage` in function `paperless_mail.mail.MailAccountHandler._get_title`", "concise_description": "Argument `type[TestMail.test_get_title.message]` is not assignable to parameter `message` with type `MailMessage` in function `paperless_mail.mail.MailAccountHandler._get_title`", "severity": "error" }, { "line": 491, "column": 54, "stop_line": 491, "stop_column": 57, "path": "src/paperless_mail/tests/test_mail.py", "code": -2, "name": "bad-argument-type", "description": "Argument `type[TestMail.test_get_title.att]` is not assignable to parameter `att` with type `MailAttachment` in function `paperless_mail.mail.MailAccountHandler._get_title`", "concise_description": "Argument `type[TestMail.test_get_title.att]` is not assignable to parameter `att` with type `MailAttachment` in function `paperless_mail.mail.MailAccountHandler._get_title`", "severity": "error" }, { "line": 496, "column": 45, "stop_line": 496, "stop_column": 52, "path": "src/paperless_mail/tests/test_mail.py", "code": -2, "name": "bad-argument-type", "description": "Argument `type[TestMail.test_get_title.message]` is not assignable to parameter `message` with type `MailMessage` in function `paperless_mail.mail.MailAccountHandler._get_title`", "concise_description": "Argument `type[TestMail.test_get_title.message]` is not assignable to parameter `message` with type `MailMessage` in function `paperless_mail.mail.MailAccountHandler._get_title`", "severity": "error" }, { "line": 496, "column": 54, "stop_line": 496, "stop_column": 57, "path": "src/paperless_mail/tests/test_mail.py", "code": -2, "name": "bad-argument-type", "description": "Argument `type[TestMail.test_get_title.att]` is not assignable to parameter `att` with type `MailAttachment` in function `paperless_mail.mail.MailAccountHandler._get_title`", "concise_description": "Argument `type[TestMail.test_get_title.att]` is not assignable to parameter `att` with type `MailAttachment` in function `paperless_mail.mail.MailAccountHandler._get_title`", "severity": "error" }, { "line": 501, "column": 45, "stop_line": 501, "stop_column": 52, "path": "src/paperless_mail/tests/test_mail.py", "code": -2, "name": "bad-argument-type", "description": "Argument `type[TestMail.test_get_title.message]` is not assignable to parameter `message` with type `MailMessage` in function `paperless_mail.mail.MailAccountHandler._get_title`", "concise_description": "Argument `type[TestMail.test_get_title.message]` is not assignable to parameter `message` with type `MailMessage` in function `paperless_mail.mail.MailAccountHandler._get_title`", "severity": "error" }, { "line": 501, "column": 54, "stop_line": 501, "stop_column": 57, "path": "src/paperless_mail/tests/test_mail.py", "code": -2, "name": "bad-argument-type", "description": "Argument `type[TestMail.test_get_title.att]` is not assignable to parameter `att` with type `MailAttachment` in function `paperless_mail.mail.MailAccountHandler._get_title`", "concise_description": "Argument `type[TestMail.test_get_title.att]` is not assignable to parameter `att` with type `MailAttachment` in function `paperless_mail.mail.MailAccountHandler._get_title`", "severity": "error" }, { "line": 533, "column": 30, "stop_line": 533, "stop_column": 43, "path": "src/paperless_mail/tests/test_mail.py", "code": -2, "name": "invalid-argument", "description": "Expected string literal \"message\"", "concise_description": "Expected string literal \"message\"", "severity": "error" }, { "line": 1246, "column": 9, "stop_line": 1246, "stop_column": 50, "path": "src/paperless_mail/tests/test_mail.py", "code": -2, "name": "missing-attribute", "description": "Object of class `BogusFolderManager` has no attribute `list`", "concise_description": "Object of class `BogusFolderManager` has no attribute `list`", "severity": "error" }, { "line": 1252, "column": 9, "stop_line": 1252, "stop_column": 50, "path": "src/paperless_mail/tests/test_mail.py", "code": -2, "name": "missing-attribute", "description": "Object of class `BogusFolderManager` has no attribute `list`", "concise_description": "Object of class `BogusFolderManager` has no attribute `list`", "severity": "error" }, { "line": 1279, "column": 9, "stop_line": 1279, "stop_column": 50, "path": "src/paperless_mail/tests/test_mail.py", "code": -2, "name": "missing-attribute", "description": "Object of class `BogusFolderManager` has no attribute `list`", "concise_description": "Object of class `BogusFolderManager` has no attribute `list`", "severity": "error" }, { "line": 1285, "column": 9, "stop_line": 1285, "stop_column": 50, "path": "src/paperless_mail/tests/test_mail.py", "code": -2, "name": "missing-attribute", "description": "Object of class `BogusFolderManager` has no attribute `list`", "concise_description": "Object of class `BogusFolderManager` has no attribute `list`", "severity": "error" }, { "line": 1347, "column": 13, "stop_line": 1351, "stop_column": 14, "path": "src/paperless_mail/tests/test_mail.py", "code": -2, "name": "bad-argument-type", "description": "Argument `list[list[dict[str, int]]]` is not assignable to parameter `expected_call_args` with type `list[list[dict[str, str]]]` in function `MailMocker.assert_queue_consumption_tasks_call_args`", "concise_description": "Argument `list[list[dict[str, int]]]` is not assignable to parameter `expected_call_args` with type `list[list[dict[str, str]]]` in function `MailMocker.assert_queue_consumption_tasks_call_args`", "severity": "error" }, { "line": 1366, "column": 13, "stop_line": 1370, "stop_column": 14, "path": "src/paperless_mail/tests/test_mail.py", "code": -2, "name": "bad-argument-type", "description": "Argument `list[list[dict[str, None]]]` is not assignable to parameter `expected_call_args` with type `list[list[dict[str, str]]]` in function `MailMocker.assert_queue_consumption_tasks_call_args`", "concise_description": "Argument `list[list[dict[str, None]]]` is not assignable to parameter `expected_call_args` with type `list[list[dict[str, str]]]` in function `MailMocker.assert_queue_consumption_tasks_call_args`", "severity": "error" }, { "line": 1661, "column": 41, "stop_line": 1661, "stop_column": 61, "path": "src/paperless_mail/tests/test_mail.py", "code": -2, "name": "bad-argument-type", "description": "Argument `str | None` is not assignable to parameter `container` with type `Container | Iterable[Any]` in function `unittest.case.TestCase.assertIn`", "concise_description": "Argument `str | None` is not assignable to parameter `container` with type `Container | Iterable[Any]` in function `unittest.case.TestCase.assertIn`", "severity": "error" }, { "line": 2070, "column": 26, "stop_line": 2070, "stop_column": 35, "path": "src/paperless_mail/tests/test_mail.py", "code": -2, "name": "missing-attribute", "description": "Object of class `NoneType` has no attribute `name`", "concise_description": "Object of class `NoneType` has no attribute `name`", "severity": "error" }, { "line": 134, "column": 42, "stop_line": 134, "stop_column": 54, "path": "src/paperless_mail/tests/test_mail_oauth.py", "code": -2, "name": "missing-attribute", "description": "Object of class `_MonkeyPatchedWSGIResponse` has no attribute `url`", "concise_description": "Object of class `_MonkeyPatchedWSGIResponse` has no attribute `url`", "severity": "error" }, { "line": 145, "column": 42, "stop_line": 145, "stop_column": 54, "path": "src/paperless_mail/tests/test_mail_oauth.py", "code": -2, "name": "missing-attribute", "description": "Object of class `_MonkeyPatchedWSGIResponse` has no attribute `url`", "concise_description": "Object of class `_MonkeyPatchedWSGIResponse` has no attribute `url`", "severity": "error" }, { "line": 177, "column": 46, "stop_line": 177, "stop_column": 58, "path": "src/paperless_mail/tests/test_mail_oauth.py", "code": -2, "name": "missing-attribute", "description": "Object of class `_MonkeyPatchedWSGIResponse` has no attribute `url`", "concise_description": "Object of class `_MonkeyPatchedWSGIResponse` has no attribute `url`", "severity": "error" }, { "line": 187, "column": 46, "stop_line": 187, "stop_column": 58, "path": "src/paperless_mail/tests/test_mail_oauth.py", "code": -2, "name": "missing-attribute", "description": "Object of class `_MonkeyPatchedWSGIResponse` has no attribute `url`", "concise_description": "Object of class `_MonkeyPatchedWSGIResponse` has no attribute `url`", "severity": "error" }, { "line": 70, "column": 9, "stop_line": 70, "stop_column": 30, "path": "src/paperless_mail/tests/test_preprocessor.py", "code": -2, "name": "missing-attribute", "description": "Object of class `Message` has no attribute `_headers`", "concise_description": "Object of class `Message` has no attribute `_headers`", "severity": "error" }, { "line": 72, "column": 27, "stop_line": 72, "stop_column": 48, "path": "src/paperless_mail/tests/test_preprocessor.py", "code": -2, "name": "missing-attribute", "description": "Object of class `Message` has no attribute `_headers`", "concise_description": "Object of class `Message` has no attribute `_headers`", "severity": "error" }, { "line": 85, "column": 51, "stop_line": 85, "stop_column": 72, "path": "src/paperless_mail/tests/test_preprocessor.py", "code": -2, "name": "missing-attribute", "description": "Object of class `Crypt` has no attribute `stderr`", "concise_description": "Object of class `Crypt` has no attribute `stderr`", "severity": "error" }, { "line": 100, "column": 36, "stop_line": 100, "stop_column": 66, "path": "src/paperless_mail/tests/test_preprocessor.py", "code": -2, "name": "missing-attribute", "description": "Object of class `str` has no attribute `decode`\n Did you mean `encode`?", "concise_description": "Object of class `str` has no attribute `decode`", "severity": "error" }, { "line": 268, "column": 28, "stop_line": 268, "stop_column": 34, "path": "src/paperless_mail/views.py", "code": -2, "name": "unbound-name", "description": "`result` may be uninitialized", "concise_description": "`result` may be uninitialized", "severity": "error" }, { "line": 274, "column": 29, "stop_line": 274, "stop_column": 40, "path": "src/paperless_mail/views.py", "code": -2, "name": "unbound-name", "description": "`imap_server` may be uninitialized", "concise_description": "`imap_server` may be uninitialized", "severity": "error" }, { "line": 278, "column": 26, "stop_line": 278, "stop_column": 34, "path": "src/paperless_mail/views.py", "code": -2, "name": "unbound-name", "description": "`defaults` may be uninitialized", "concise_description": "`defaults` may be uninitialized", "severity": "error" } ] }