From e50bcc2efb6f51cdef173fc1f5a1380f4c3bfdb4 Mon Sep 17 00:00:00 2001 From: Trenton H <797416+stumpylog@users.noreply.github.com> Date: Mon, 28 Sep 2026 11:32:05 -0700 Subject: [PATCH] Chore: Updates typing baseline files (#14295) * Chore: Refresh the mypy and pyrefly baselines * Chore: Type factory calls as the model they build for mypy factory-boy leaves Factory() unannotated, so mypy took UserFactory() to be a factory instance rather than a User. A shared TypedModelFactory base declares the call as returning the model for type checking only. * Refresh again after rebase --- .mypy-baseline.txt | 1162 +- .pyrefly-baseline.json | 17745 ++++++----------------- src/paperless_mail/tests/factories.py | 8 +- src/paperless_testing/factories.py | 22 +- src/paperless_testing/typed_factory.py | 20 + uv.lock | 294 +- 6 files changed, 5741 insertions(+), 13510 deletions(-) create mode 100644 src/paperless_testing/typed_factory.py diff --git a/.mypy-baseline.txt b/.mypy-baseline.txt index 53cd76c5a..ef9043fd8 100644 --- a/.mypy-baseline.txt +++ b/.mypy-baseline.txt @@ -19,31 +19,34 @@ src/documents/admin.py:0: error: Skipping analyzing "auditlog.admin": module is src/documents/admin.py:0: error: Skipping analyzing "auditlog.models": module is installed, but missing library stubs or py.typed marker [import-untyped] src/documents/admin.py:0: error: Skipping analyzing "treenode.admin": module is installed, but missing library stubs or py.typed marker [import-untyped] src/documents/barcodes.py:0: error: "Image" has no attribute "filename" [attr-defined] -src/documents/barcodes.py:0: error: Cannot find implementation or library stub for module named "zxingcpp" [import-not-found] -src/documents/barcodes.py:0: error: Library stubs not installed for "regex" [import-untyped] src/documents/bulk_download.py:0: error: Return type "None" of "add_document" incompatible with return type "Never" in supertype "BulkArchiveStrategy" [override] src/documents/bulk_download.py:0: error: Return type "None" of "add_document" incompatible with return type "Never" in supertype "BulkArchiveStrategy" [override] src/documents/bulk_download.py:0: error: Return type "None" of "add_document" incompatible with return type "Never" in supertype "BulkArchiveStrategy" [override] src/documents/bulk_edit.py:0: error: "int" object is not iterable [misc] src/documents/bulk_edit.py:0: error: "int" object is not iterable [misc] +src/documents/bulk_edit.py:0: error: Argument "args" to "apply_async" of "Task" has incompatible type "list[int]"; expected "tuple[Any, ...] | None" [arg-type] +src/documents/bulk_edit.py:0: error: Cannot determine type of "field_id" [has-type] +src/documents/bulk_edit.py:0: error: Cannot determine type of "field_id" [has-type] +src/documents/bulk_edit.py:0: error: Cannot determine type of "value" [has-type] +src/documents/bulk_edit.py:0: error: Cannot determine type of "value" [has-type] +src/documents/bulk_edit.py:0: error: Cannot determine type of "value" [has-type] src/documents/bulk_edit.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/documents/bulk_edit.py:0: error: Incompatible return value type (got "Literal['ERROR']", expected "Literal['OK']") [return-value] src/documents/bulk_edit.py:0: error: Incompatible type for lookup 'id': (got "Correspondent", expected "str | int") [misc] src/documents/bulk_edit.py:0: error: Incompatible type for lookup 'id': (got "DocumentType", expected "str | int") [misc] src/documents/bulk_edit.py:0: error: Incompatible type for lookup 'id': (got "StoragePath", expected "str | int") [misc] -src/documents/bulk_edit.py:0: error: Incompatible types in assignment (expression has type "dict_items[Any, Any] | list[int]", variable has type "list[int] | dict[Any, Any]") [assignment] +src/documents/bulk_edit.py:0: error: Incompatible types in assignment (expression has type "int | None", target has type "datetime") [assignment] src/documents/bulk_edit.py:0: error: Invalid index type "str" for "dict[FieldDataType, str]"; expected type "FieldDataType" [index] +src/documents/bulk_edit.py:0: error: List comprehension has incompatible type List[tuple[int, Any]]; expected List[int] [misc] src/documents/bulk_edit.py:0: error: List comprehension has incompatible type List[tuple[int, None]]; expected List[int] [misc] src/documents/bulk_edit.py:0: error: Missing named argument "p" for "remove" of "PageList" [call-arg] src/documents/bulk_edit.py:0: error: Missing type arguments for generic type "dict" [type-arg] src/documents/bulk_edit.py:0: error: Missing type arguments for generic type "dict" [type-arg] src/documents/bulk_edit.py:0: error: Need type annotation for "to_create" (hint: "to_create: list[] = ...") [var-annotated] +src/documents/bulk_edit.py:0: error: Skipping analyzing "auditlog.models": module is installed, but missing library stubs or py.typed marker [import-untyped] +src/documents/bulk_edit.py:0: error: Unexpected keyword argument "transaction_id" for "delete" of "QuerySet" [call-arg] src/documents/caching.py:0: error: Argument 1 to "hexlify" has incompatible type "bytes | None"; expected "Buffer" [arg-type] src/documents/caching.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/caching.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/documents/caching.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/documents/caching.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/documents/caching.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/caching.py:0: error: Missing type arguments for generic type "dict" [type-arg] src/documents/caching.py:0: error: Missing type arguments for generic type "dict" [type-arg] src/documents/caching.py:0: error: Missing type arguments for generic type "dict" [type-arg] @@ -51,9 +54,11 @@ src/documents/caching.py:0: error: Missing type arguments for generic type "list src/documents/caching.py:0: error: Missing type arguments for generic type "list" [type-arg] src/documents/caching.py:0: error: Missing type arguments for generic type "list" [type-arg] src/documents/caching.py:0: error: Missing type arguments for generic type "list" [type-arg] -src/documents/caching.py:0: error: Need type annotation for "_data" [var-annotated] src/documents/checks.py:0: error: Function is missing a type annotation [no-untyped-def] src/documents/checks.py:0: error: Function is missing a type annotation [no-untyped-def] +src/documents/classifier.py:0: error: "MLPClassifier" has no attribute "_best_coefs" [attr-defined] +src/documents/classifier.py:0: error: "MLPClassifier" has no attribute "_best_intercepts" [attr-defined] +src/documents/classifier.py:0: error: "MLPClassifier" has no attribute "_optimizer" [attr-defined] src/documents/classifier.py:0: error: "None" has no attribute "fit" [attr-defined] src/documents/classifier.py:0: error: "None" has no attribute "fit" [attr-defined] src/documents/classifier.py:0: error: "None" has no attribute "fit" [attr-defined] @@ -61,15 +66,15 @@ src/documents/classifier.py:0: error: "None" has no attribute "fit" [attr-defin src/documents/classifier.py:0: error: "None" has no attribute "fit_transform" [attr-defined] src/documents/classifier.py:0: error: "None" has no attribute "fit_transform" [attr-defined] src/documents/classifier.py:0: error: "None" has no attribute "fit_transform" [attr-defined] -src/documents/classifier.py:0: error: "None" has no attribute "stem" [attr-defined] src/documents/classifier.py:0: error: "None" has no attribute "stop_words_" [attr-defined] src/documents/classifier.py:0: error: "None" has no attribute "transform" [attr-defined] +src/documents/classifier.py:0: error: "None" has no attribute "transform" [attr-defined] +src/documents/classifier.py:0: error: Argument 1 to "_strip_training_state" of "DocumentClassifier" has incompatible type "None"; expected "MLPClassifier" [arg-type] +src/documents/classifier.py:0: error: Argument 1 to "_strip_training_state" of "DocumentClassifier" has incompatible type "None"; expected "MLPClassifier" [arg-type] +src/documents/classifier.py:0: error: Argument 1 to "_strip_training_state" of "DocumentClassifier" has incompatible type "None"; expected "MLPClassifier" [arg-type] +src/documents/classifier.py:0: error: Argument 1 to "_strip_training_state" of "DocumentClassifier" has incompatible type "None"; expected "MLPClassifier" [arg-type] src/documents/classifier.py:0: error: Function is missing a return type annotation [no-untyped-def] src/documents/classifier.py:0: error: Function is missing a return type annotation [no-untyped-def] -src/documents/classifier.py:0: error: Function is missing a return type annotation [no-untyped-def] -src/documents/classifier.py:0: error: Function is missing a return type annotation [no-untyped-def] -src/documents/classifier.py:0: error: Function is missing a return type annotation [no-untyped-def] -src/documents/classifier.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/classifier.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/classifier.py:0: error: Incompatible types in assignment (expression has type "CountVectorizer", variable has type "None") [assignment] src/documents/classifier.py:0: error: Incompatible types in assignment (expression has type "LabelBinarizer", variable has type "None") [assignment] @@ -82,15 +87,11 @@ src/documents/classifier.py:0: error: Incompatible types in assignment (expressi src/documents/classifier.py:0: error: Incompatible types in assignment (expression has type "None", variable has type "DocumentClassifier") [assignment] src/documents/classifier.py:0: error: Incompatible types in assignment (expression has type "None", variable has type "DocumentClassifier") [assignment] src/documents/classifier.py:0: error: Incompatible types in assignment (expression has type "None", variable has type "DocumentClassifier") [assignment] -src/documents/classifier.py:0: error: Incompatible types in assignment (expression has type "frozenset[Any]", variable has type "None") [assignment] src/documents/classifier.py:0: error: Incompatible types in assignment (expression has type "str", variable has type "None") [assignment] +src/documents/classifier.py:0: error: Item "None" of "str | None" has no attribute "encode" [union-attr] src/documents/classifier.py:0: error: List comprehension has incompatible type List[int]; expected List[list[int]] [misc] src/documents/classifier.py:0: error: Module "sklearn.exceptions" has no attribute "InconsistentVersionWarning" [attr-defined] -src/documents/classifier.py:0: error: Skipping analyzing "nltk": module is installed, but missing library stubs or py.typed marker [import-untyped] -src/documents/classifier.py:0: error: Skipping analyzing "nltk.corpus": module is installed, but missing library stubs or py.typed marker [import-untyped] -src/documents/classifier.py:0: error: Skipping analyzing "nltk.stem": module is installed, but missing library stubs or py.typed marker [import-untyped] -src/documents/classifier.py:0: error: Skipping analyzing "nltk.tokenize": module is installed, but missing library stubs or py.typed marker [import-untyped] -src/documents/classifier.py:0: error: Unsupported right operand type for in ("None") [operator] +src/documents/classifier.py:0: error: Unsupported operand types for >= ("datetime" and "None") [operator] src/documents/conditionals.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/conditionals.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/conditionals.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] @@ -113,7 +114,7 @@ src/documents/consumer.py:0: error: Argument "logger" to "run_subprocess" has in src/documents/consumer.py:0: error: Argument "text" to "_store" of "ConsumerPlugin" has incompatible type "str | Any | None"; expected "str" [arg-type] src/documents/consumer.py:0: error: Argument 1 to "compute_checksum" has incompatible type "Path | None"; expected "Path" [arg-type] src/documents/consumer.py:0: error: Argument 1 to "create_source_path_directory" has incompatible type "Path | None"; expected "Path" [arg-type] -src/documents/consumer.py:0: error: Argument 2 to "parse" of "DateParserPluginBase" has incompatible type "str | Any | None"; expected "str" [arg-type] +src/documents/consumer.py:0: error: Argument 1 to "validate_path_in_root" has incompatible type "Path | None"; expected "Path" [arg-type] src/documents/consumer.py:0: error: Argument 2 to "parse_w_workflow_placeholders" has incompatible type "str | None"; expected "str" [arg-type] src/documents/consumer.py:0: error: Argument 3 to "parse_w_workflow_placeholders" has incompatible type "str | None"; expected "str" [arg-type] src/documents/consumer.py:0: error: Argument 3 to "run_subprocess" has incompatible type "LoggerAdapter[Logger]"; expected "Logger | None" [arg-type] @@ -147,6 +148,18 @@ src/documents/data_models.py:0: error: Item "list[str]" of "Any | list[str]" has src/documents/data_models.py:0: error: Missing type arguments for generic type "dict" [type-arg] src/documents/data_models.py:0: error: Value of type "Group | dict[Any, Any]" is not indexable [index] src/documents/data_models.py:0: error: Value of type "Group | dict[Any, Any]" is not indexable [index] +src/documents/export/sinks.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/export/sinks.py:0: error: Missing type arguments for generic type "AbstractContextManager" [type-arg] +src/documents/export/sinks.py:0: error: Missing type arguments for generic type "dict" [type-arg] +src/documents/export/sinks.py:0: error: Missing type arguments for generic type "dict" [type-arg] +src/documents/export/sinks.py:0: error: Missing type arguments for generic type "dict" [type-arg] +src/documents/export/sinks.py:0: error: Missing type arguments for generic type "dict" [type-arg] +src/documents/export/sinks.py:0: error: Missing type arguments for generic type "dict" [type-arg] +src/documents/export/sinks.py:0: error: Missing type arguments for generic type "dict" [type-arg] +src/documents/export/sinks.py:0: error: Missing type arguments for generic type "list" [type-arg] +src/documents/export/sinks.py:0: error: Missing type arguments for generic type "list" [type-arg] +src/documents/export/sinks.py:0: error: Missing type arguments for generic type "list" [type-arg] +src/documents/export/sinks.py:0: error: Missing type arguments for generic type "list" [type-arg] src/documents/file_handling.py:0: error: Argument 1 to "format_filename" has incompatible type "Document | None"; expected "Document" [arg-type] src/documents/file_handling.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/file_handling.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] @@ -181,6 +194,8 @@ src/documents/filters.py:0: error: Function is missing a type annotation [no-un src/documents/filters.py:0: error: Function is missing a type annotation [no-untyped-def] src/documents/filters.py:0: error: Function is missing a type annotation [no-untyped-def] src/documents/filters.py:0: error: Function is missing a type annotation [no-untyped-def] +src/documents/filters.py:0: error: Function is missing a type annotation [no-untyped-def] +src/documents/filters.py:0: error: Function is missing a type annotation [no-untyped-def] src/documents/filters.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/filters.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/filters.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] @@ -197,7 +212,7 @@ src/documents/filters.py:0: error: Incompatible types in assignment (expression src/documents/filters.py:0: error: Incompatible types in assignment (expression has type "ListField", variable has type "BooleanField | None") [assignment] src/documents/filters.py:0: error: Incompatible types in assignment (expression has type "MonetaryAmountField", variable has type "BooleanField | None") [assignment] src/documents/filters.py:0: error: Incompatible types in assignment (expression has type "SelectField", variable has type "BooleanField | None") [assignment] -src/documents/filters.py:0: error: Incompatible types in assignment (expression has type "Sum", variable has type "Subquery | None") [assignment] +src/documents/filters.py:0: error: Incompatible types in assignment (expression has type "Sum", variable has type "Subquery[Field[Any, Any]] | None") [assignment] src/documents/filters.py:0: error: Incompatible types in assignment (expression has type "str | None", variable has type "list[str]") [assignment] src/documents/filters.py:0: error: Item "None" of "Any | None" has no attribute "get" [union-attr] src/documents/filters.py:0: error: Item "None" of "Any | None" has no attribute "get" [union-attr] @@ -206,14 +221,11 @@ src/documents/filters.py:0: error: Missing type arguments for generic type "Call src/documents/filters.py:0: error: Missing type arguments for generic type "Field" [type-arg] src/documents/filters.py:0: error: Need type annotation for "_annotations" (hint: "_annotations: dict[, ] = ...") [var-annotated] src/documents/filters.py:0: error: Need type annotation for "_model_serializer" [var-annotated] -src/documents/filters.py:0: error: Skipping analyzing "rest_framework_guardian.filters": module is installed, but missing library stubs or py.typed marker [import-untyped] src/documents/filters.py:0: error: Value of type "Any | None" is not indexable [index] src/documents/loggers.py:0: error: "LoggingMixin" has no attribute "logging_name" [attr-defined] src/documents/mail.py:0: error: Incompatible types in assignment (expression has type "Message[str, str]", variable has type "bytes") [assignment] src/documents/management/commands/convert_mariadb_uuid.py:0: error: Function is missing a type annotation [no-untyped-def] src/documents/management/commands/convert_mariadb_uuid.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/documents/management/commands/convert_mariadb_uuid.py:0: error: Need type annotation for "new_field" [var-annotated] -src/documents/management/commands/convert_mariadb_uuid.py:0: error: Need type annotation for "old_field" [var-annotated] src/documents/management/commands/document_archiver.py:0: error: Function is missing a type annotation [no-untyped-def] src/documents/management/commands/document_archiver.py:0: error: Function is missing a type annotation [no-untyped-def] src/documents/management/commands/document_consumer.py:0: error: "str" has no attribute "is_file" [attr-defined] @@ -222,14 +234,9 @@ src/documents/management/commands/document_consumer.py:0: error: Function is mis src/documents/management/commands/document_consumer.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/management/commands/document_consumer.py:0: error: Incompatible types in assignment (expression has type "Path", variable has type "str") [assignment] src/documents/management/commands/document_create_classifier.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/documents/management/commands/document_exporter.py:0: error: "None" has no attribute "write" [attr-defined] -src/documents/management/commands/document_exporter.py:0: error: "None" has no attribute "write" [attr-defined] -src/documents/management/commands/document_exporter.py:0: error: "None" has no attribute "write" [attr-defined] src/documents/management/commands/document_exporter.py:0: error: Argument 1 to "add" of "set" has incompatible type "Path"; expected "str" [arg-type] src/documents/management/commands/document_exporter.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/management/commands/document_exporter.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/documents/management/commands/document_exporter.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/documents/management/commands/document_exporter.py:0: error: Incompatible types in assignment (expression has type "TextIOWrapper[_WrappedBuffer]", variable has type "None") [assignment] src/documents/management/commands/document_exporter.py:0: error: Incompatible types in assignment (expression has type "str", variable has type "Path") [assignment] src/documents/management/commands/document_exporter.py:0: error: Missing type arguments for generic type "dict" [type-arg] src/documents/management/commands/document_exporter.py:0: error: Missing type arguments for generic type "dict" [type-arg] @@ -238,9 +245,6 @@ src/documents/management/commands/document_exporter.py:0: error: Missing type ar src/documents/management/commands/document_exporter.py:0: error: Missing type arguments for generic type "dict" [type-arg] src/documents/management/commands/document_exporter.py:0: error: Missing type arguments for generic type "dict" [type-arg] src/documents/management/commands/document_exporter.py:0: error: Missing type arguments for generic type "dict" [type-arg] -src/documents/management/commands/document_exporter.py:0: error: Missing type arguments for generic type "dict" [type-arg] -src/documents/management/commands/document_exporter.py:0: error: Missing type arguments for generic type "dict" [type-arg] -src/documents/management/commands/document_exporter.py:0: error: Missing type arguments for generic type "dict" [type-arg] src/documents/management/commands/document_exporter.py:0: error: Skipping analyzing "allauth.mfa.models": module is installed, but missing library stubs or py.typed marker [import-untyped] src/documents/management/commands/document_exporter.py:0: error: Skipping analyzing "allauth.socialaccount.models": module is installed, but missing library stubs or py.typed marker [import-untyped] src/documents/management/commands/document_exporter.py:0: error: Skipping analyzing "auditlog.models": module is installed, but missing library stubs or py.typed marker [import-untyped] @@ -260,6 +264,10 @@ src/documents/management/commands/document_importer.py:0: error: Missing type ar src/documents/management/commands/document_importer.py:0: error: Missing type arguments for generic type "dict" [type-arg] src/documents/management/commands/document_importer.py:0: error: Missing type arguments for generic type "dict" [type-arg] src/documents/management/commands/document_importer.py:0: error: Missing type arguments for generic type "dict" [type-arg] +src/documents/management/commands/document_importer.py:0: error: Missing type arguments for generic type "dict" [type-arg] +src/documents/management/commands/document_importer.py:0: error: Missing type arguments for generic type "dict" [type-arg] +src/documents/management/commands/document_importer.py:0: error: Missing type arguments for generic type "dict" [type-arg] +src/documents/management/commands/document_importer.py:0: error: Missing type arguments for generic type "dict" [type-arg] src/documents/management/commands/document_importer.py:0: error: Need type annotation for "manifest_paths" (hint: "manifest_paths: list[] = ...") [var-annotated] src/documents/management/commands/document_importer.py:0: error: Skipping analyzing "auditlog.registry": module is installed, but missing library stubs or py.typed marker [import-untyped] src/documents/management/commands/document_importer.py:0: error: Skipping analyzing "ijson": module is installed, but missing library stubs or py.typed marker [import-untyped] @@ -292,13 +300,8 @@ src/documents/matching.py:0: error: Function is missing a type annotation for on src/documents/matching.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/matching.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/matching.py:0: error: Incompatible types in assignment (expression has type "str | None", variable has type "str") [assignment] -src/documents/matching.py:0: error: Incompatible types in assignment (expression has type "tuple[str]", variable has type "str") [assignment] -src/documents/matching.py:0: error: Incompatible types in assignment (expression has type "tuple[str]", variable has type "str") [assignment] -src/documents/matching.py:0: error: Incompatible types in assignment (expression has type "tuple[str]", variable has type "str") [assignment] -src/documents/matching.py:0: error: Incompatible types in assignment (expression has type "tuple[str]", variable has type "str") [assignment] src/documents/matching.py:0: error: Unsupported left operand type for & ("None") [operator] src/documents/matching.py:0: error: Unsupported left operand type for & ("None") [operator] -src/documents/matching.py:0: error: Value of type variable "AnyStr" of "fnmatch" cannot be "object" [type-var] src/documents/migrations/0001_squashed.py:0: error: Skipping analyzing "multiselectfield": module is installed, but missing library stubs or py.typed marker [import-untyped] src/documents/migrations/0001_squashed.py:0: error: Skipping analyzing "multiselectfield.db": module is installed, but missing library stubs or py.typed marker [import-untyped] src/documents/migrations/0001_squashed.py:0: error: Skipping analyzing "multiselectfield.db.fields": module is installed, but missing library stubs or py.typed marker [import-untyped] @@ -340,37 +343,13 @@ src/documents/models.py:0: error: Function is missing a type annotation [no-unt src/documents/models.py:0: error: Function is missing a type annotation [no-untyped-def] src/documents/models.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/models.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/documents/models.py:0: error: Need type annotation for "created" [var-annotated] -src/documents/models.py:0: error: Need type annotation for "created" [var-annotated] -src/documents/models.py:0: error: Need type annotation for "created" [var-annotated] -src/documents/models.py:0: error: Need type annotation for "document" [var-annotated] -src/documents/models.py:0: error: Need type annotation for "document" [var-annotated] -src/documents/models.py:0: error: Need type annotation for "document" [var-annotated] -src/documents/models.py:0: error: Need type annotation for "document" [var-annotated] -src/documents/models.py:0: error: Need type annotation for "expiration" [var-annotated] -src/documents/models.py:0: error: Need type annotation for "field" [var-annotated] -src/documents/models.py:0: error: Need type annotation for "file_version" [var-annotated] -src/documents/models.py:0: error: Need type annotation for "note" [var-annotated] -src/documents/models.py:0: error: Need type annotation for "owner" [var-annotated] -src/documents/models.py:0: error: Need type annotation for "run_at" [var-annotated] -src/documents/models.py:0: error: Need type annotation for "slug" [var-annotated] -src/documents/models.py:0: error: Need type annotation for "type" [var-annotated] -src/documents/models.py:0: error: Need type annotation for "user" [var-annotated] -src/documents/models.py:0: error: Need type annotation for "value_bool" [var-annotated] -src/documents/models.py:0: error: Need type annotation for "value_date" [var-annotated] -src/documents/models.py:0: error: Need type annotation for "value_float" [var-annotated] -src/documents/models.py:0: error: Need type annotation for "value_int" [var-annotated] -src/documents/models.py:0: error: Need type annotation for "value_long_text" [var-annotated] -src/documents/models.py:0: error: Need type annotation for "value_monetary" [var-annotated] -src/documents/models.py:0: error: Need type annotation for "value_select" [var-annotated] -src/documents/models.py:0: error: Need type annotation for "value_text" [var-annotated] -src/documents/models.py:0: error: Need type annotation for "value_url" [var-annotated] -src/documents/models.py:0: error: Need type annotation for "workflow" [var-annotated] src/documents/models.py:0: error: Signature of "delete" incompatible with supertype "django.db.models.base.Model" [override] src/documents/models.py:0: error: Skipping analyzing "auditlog.registry": module is installed, but missing library stubs or py.typed marker [import-untyped] src/documents/models.py:0: error: Skipping analyzing "django_softdelete.models": module is installed, but missing library stubs or py.typed marker [import-untyped] src/documents/models.py:0: error: Skipping analyzing "multiselectfield": module is installed, but missing library stubs or py.typed marker [import-untyped] src/documents/models.py:0: error: Skipping analyzing "treenode.models": module is installed, but missing library stubs or py.typed marker [import-untyped] +src/documents/models.py:0: error: Unexpected keyword argument "transaction_id" for "delete" of "Model" [call-arg] +src/documents/models.py:0: error: Unexpected keyword argument "transaction_id" for "delete" of "QuerySet" [call-arg] src/documents/parsers.py:0: error: Function is missing a return type annotation [no-untyped-def] src/documents/parsers.py:0: error: Function is missing a return type annotation [no-untyped-def] src/documents/parsers.py:0: error: Function is missing a return type annotation [no-untyped-def] @@ -383,7 +362,9 @@ src/documents/parsers.py:0: error: Function is missing a type annotation for one src/documents/parsers.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/parsers.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/parsers.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/documents/permissions.py:0: error: Function is missing a type annotation [no-untyped-def] +src/documents/permissions.py:0: error: "type[Model]" has no attribute "global_objects" [attr-defined] +src/documents/permissions.py:0: error: "type[Model]" has no attribute "objects" [attr-defined] +src/documents/permissions.py:0: error: Function is missing a return type annotation [no-untyped-def] src/documents/permissions.py:0: error: Function is missing a type annotation [no-untyped-def] src/documents/permissions.py:0: error: Function is missing a type annotation [no-untyped-def] src/documents/permissions.py:0: error: Function is missing a type annotation [no-untyped-def] @@ -392,74 +373,55 @@ src/documents/permissions.py:0: error: Function is missing a type annotation [n src/documents/permissions.py:0: error: Function is missing a type annotation [no-untyped-def] src/documents/permissions.py:0: error: Function is missing a type annotation [no-untyped-def] src/documents/permissions.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/permissions.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/permissions.py:0: error: Item "list[str]" of "Any | list[str] | QuerySet[User, User]" has no attribute "exclude" [union-attr] src/documents/permissions.py:0: error: Item "list[str]" of "Any | list[str] | QuerySet[User, User]" has no attribute "exists" [union-attr] src/documents/permissions.py:0: error: Item "list[str]" of "Any | list[str] | QuerySet[User, User]" has no attribute "exists" [union-attr] +src/documents/permissions.py:0: error: Missing type arguments for generic type "QuerySet" [type-arg] src/documents/permissions.py:0: error: Missing type arguments for generic type "dict" [type-arg] -src/documents/plugins/date_parsing/regex_parser.py:0: error: Library stubs not installed for "regex" [import-untyped] +src/documents/permissions.py:0: error: Missing type arguments for generic type "dict" [type-arg] +src/documents/permissions.py:0: error: Missing type arguments for generic type "list" [type-arg] +src/documents/permissions.py:0: error: Type argument "int" of "QuerySet" must be a subtype of "Model" [type-var] +src/documents/permissions.py:0: error: Type argument "int" of "QuerySet" must be a subtype of "Model" [type-var] src/documents/plugins/helpers.py:0: error: Skipping analyzing "channels_redis.pubsub": module is installed, but missing library stubs or py.typed marker [import-untyped] +src/documents/regex.py:0: error: "error" has no attribute "msg" [attr-defined] src/documents/regex.py:0: error: Function is missing a return type annotation [no-untyped-def] src/documents/regex.py:0: error: Function is missing a return type annotation [no-untyped-def] src/documents/regex.py:0: error: Function is missing a return type annotation [no-untyped-def] -src/documents/regex.py:0: error: Library stubs not installed for "regex" [import-untyped] +src/documents/regex.py:0: error: Missing type arguments for generic type "Pattern" [type-arg] src/documents/sanity_checker.py:0: error: Unused "type: ignore" comment [unused-ignore] src/documents/schema.py:0: error: Function is missing a type annotation [no-untyped-def] src/documents/schema.py:0: error: Function is missing a type annotation [no-untyped-def] src/documents/schema.py:0: error: Function is missing a type annotation [no-untyped-def] -src/documents/search/_backend.py:0: error: "AbstractBaseUser" has no attribute "is_superuser" [attr-defined] src/documents/search/_backend.py:0: error: "None" has no attribute "acquire" [attr-defined] -src/documents/search/_backend.py:0: error: "None" has no attribute "add_document" [attr-defined] -src/documents/search/_backend.py:0: error: "None" has no attribute "commit" [attr-defined] -src/documents/search/_backend.py:0: error: "None" has no attribute "delete_documents_by_query" [attr-defined] -src/documents/search/_backend.py:0: error: "None" has no attribute "parse_query" [attr-defined] -src/documents/search/_backend.py:0: error: "None" has no attribute "reload" [attr-defined] -src/documents/search/_backend.py:0: error: "None" has no attribute "schema" [attr-defined] -src/documents/search/_backend.py:0: error: "None" has no attribute "searcher" [attr-defined] -src/documents/search/_backend.py:0: error: "None" has no attribute "searcher" [attr-defined] -src/documents/search/_backend.py:0: error: "None" has no attribute "searcher" [attr-defined] -src/documents/search/_backend.py:0: error: "None" has no attribute "searcher" [attr-defined] -src/documents/search/_backend.py:0: error: "None" has no attribute "writer" [attr-defined] -src/documents/search/_backend.py:0: error: Argument 1 to "build_permission_filter" has incompatible type "None"; expected "Schema" [arg-type] -src/documents/search/_backend.py:0: error: Argument 1 to "build_permission_filter" has incompatible type "None"; expected "Schema" [arg-type] -src/documents/search/_backend.py:0: error: Argument 1 to "parse_simple_text_highlight_query" has incompatible type "None"; expected "Index" [arg-type] -src/documents/search/_backend.py:0: error: Argument 1 to "parse_simple_text_query" has incompatible type "None"; expected "Index" [arg-type] -src/documents/search/_backend.py:0: error: Argument 1 to "parse_simple_title_query" has incompatible type "None"; expected "Index" [arg-type] -src/documents/search/_backend.py:0: error: Argument 1 to "parse_user_query" has incompatible type "None"; expected "Index" [arg-type] -src/documents/search/_backend.py:0: error: Argument 1 to "range_query" of "Query" has incompatible type "None"; expected "Schema" [arg-type] -src/documents/search/_backend.py:0: error: Argument 1 to "range_query" of "Query" has incompatible type "None"; expected "Schema" [arg-type] -src/documents/search/_backend.py:0: error: Argument 1 to "range_query" of "Query" has incompatible type "None"; expected "Schema" [arg-type] -src/documents/search/_backend.py:0: error: Argument 1 to "regex_query" of "Query" has incompatible type "None"; expected "Schema" [arg-type] -src/documents/search/_backend.py:0: error: Argument 1 to "register_tokenizers" has incompatible type "None"; expected "Index" [arg-type] -src/documents/search/_backend.py:0: error: Argument 1 to "term_query" of "Query" has incompatible type "None"; expected "Schema" [arg-type] -src/documents/search/_backend.py:0: error: Argument 2 to "add_unsigned" of "Document" has incompatible type "int | None"; expected "int" [arg-type] -src/documents/search/_backend.py:0: error: Argument 2 to "add_unsigned" of "Document" has incompatible type "int | None"; expected "int" [arg-type] -src/documents/search/_backend.py:0: error: Argument 2 to "add_unsigned" of "Document" has incompatible type "int | None"; expected "int" [arg-type] -src/documents/search/_backend.py:0: error: Argument 3 to "create" of "SnippetGenerator" has incompatible type "None"; expected "Schema" [arg-type] -src/documents/search/_backend.py:0: error: Argument 3 to "create" of "SnippetGenerator" has incompatible type "None"; expected "Schema" [arg-type] +src/documents/search/_backend.py:0: error: Argument "args" to "apply_async" of "Task" has incompatible type "list[int]"; expected "tuple[Any, ...] | None" [arg-type] +src/documents/search/_backend.py:0: error: Argument "args" to "apply_async" of "Task" has incompatible type "list[int]"; expected "tuple[Any, ...] | None" [arg-type] +src/documents/search/_backend.py:0: error: Function is missing a type annotation [no-untyped-def] src/documents/search/_backend.py:0: error: Function is missing a type annotation [no-untyped-def] -src/documents/search/_backend.py:0: error: Incompatible types in assignment (expression has type "Index", variable has type "None") [assignment] -src/documents/search/_backend.py:0: error: Incompatible types in assignment (expression has type "Index", variable has type "None") [assignment] -src/documents/search/_backend.py:0: error: Incompatible types in assignment (expression has type "Index", variable has type "None") [assignment] -src/documents/search/_backend.py:0: error: Incompatible types in assignment (expression has type "Schema", variable has type "None") [assignment] src/documents/search/_backend.py:0: error: Incompatible types in assignment (expression has type "SoftFileLock", variable has type "None") [assignment] -src/documents/search/_backend.py:0: error: Item "str" of "Any | str" has no attribute "pk" [union-attr] -src/documents/search/_backend.py:0: error: Library stubs not installed for "regex" [import-untyped] -src/documents/search/_backend.py:0: error: List comprehension has incompatible type List[tuple[Any, Any]]; expected List[tuple[Any]] [misc] -src/documents/search/_backend.py:0: error: List comprehension has incompatible type List[tuple[Any, Any]]; expected List[tuple[Any]] [misc] +src/documents/search/_backend.py:0: error: List comprehension has incompatible type List[tuple[DocAddress, Any]]; expected List[tuple[DocAddress]] [misc] +src/documents/search/_backend.py:0: error: List comprehension has incompatible type List[tuple[DocAddress, Any]]; expected List[tuple[DocAddress]] [misc] +src/documents/search/_backend.py:0: error: Return type "Iterator[tuple[Document, ViewerGrant]]" of "__iter__" incompatible with return type "Iterator[Document]" in supertype "documents.utils.QuerySetStream" [override] src/documents/search/_backend.py:0: error: Tuple index out of range [misc] src/documents/search/_backend.py:0: error: Tuple index out of range [misc] src/documents/search/_backend.py:0: error: Tuple index out of range [misc] -src/documents/search/_query.py:0: error: Argument 3 to "regex_phrase_query" of "Query" has incompatible type "list[str]"; expected "list[str | tuple[int, str]]" [arg-type] -src/documents/search/_query.py:0: error: Library stubs not installed for "regex" [import-untyped] +src/documents/search/_query.py:0: error: Argument "field" to "Fuzzy" has incompatible type "FieldRef | None"; expected "FieldRef" [arg-type] +src/documents/search/_query.py:0: error: Argument 3 to "Term" has incompatible type "**dict[str, int | None]"; expected "bool" [arg-type] +src/documents/search/_query.py:0: error: Argument 3 to "Term" has incompatible type "**dict[str, int | None]"; expected "bool" [arg-type] +src/documents/search/_query.py:0: error: Unexpected keyword argument "children" for "Node" [call-arg] +src/documents/search/_schema.py:0: error: Redundant cast to "Path" [redundant-cast] +src/documents/search/_schema.py:0: error: Unexpected keyword argument "fast" for "add_json_field" of "SchemaBuilder" [call-arg] +src/documents/serialisers.py:0: error: "type[_MT?]" has no attribute "_meta" [attr-defined] src/documents/serialisers.py:0: error: "type[_MT?]" has no attribute "objects" [attr-defined] src/documents/serialisers.py:0: error: "type[_MT?]" has no attribute "objects" [attr-defined] src/documents/serialisers.py:0: error: "type[_MT?]" has no attribute "objects" [attr-defined] src/documents/serialisers.py:0: error: Argument "choices" to "ChoiceField" has incompatible type "type[FieldDataType]"; expected "Sequence[Any]" [arg-type] src/documents/serialisers.py:0: error: Argument "default" to "MultipleChoiceField" has incompatible type "set[DocumentSource]"; expected "set[str | int] | set[str] | set[int] | Callable[[], set[str | int] | set[str] | set[int]] | _Empty | None" [arg-type] -src/documents/serialisers.py:0: error: Argument 1 of "get_value" is incompatible with supertype "rest_framework.fields.Field"; supertype defines the argument type as "Mapping[Any, Any]" [override] +src/documents/serialisers.py:0: error: Argument 1 of "get_value" is incompatible with supertype "rest_framework.fields.Field"; supertype defines the argument type as "Mapping[str, Any]" [override] src/documents/serialisers.py:0: error: Argument 1 of "update" is incompatible with supertype "rest_framework.serializers.BaseSerializer"; supertype defines the argument type as "dict[str, Any]" [override] +src/documents/serialisers.py:0: error: Argument 1 to "__get__" of "BaseManager" has incompatible type "PrimaryKeyRelatedField[Any]"; expected "Options[Any] | None" [arg-type] src/documents/serialisers.py:0: error: Argument 1 to "get_value_field_name" of "CustomFieldInstance" has incompatible type "str"; expected "FieldDataType" [arg-type] -src/documents/serialisers.py:0: error: Argument 1 to "int" has incompatible type "Any | Collection[str]"; expected "str | Buffer | SupportsInt | SupportsIndex | SupportsTrunc" [arg-type] +src/documents/serialisers.py:0: error: Argument 1 to "int" has incompatible type "Any | Collection[str]"; expected "str | Buffer | SupportsInt | SupportsIndex" [arg-type] src/documents/serialisers.py:0: error: Argument 1 to "list" has incompatible type "QuerySet[Document, TypedDict({'id': int, 'title': str, 'deleted_at': datetime | None})]"; expected "Iterable[dict[str, Any]]" [arg-type] src/documents/serialisers.py:0: error: Expected iterable as variadic argument [misc] src/documents/serialisers.py:0: error: Function is missing a return type annotation [no-untyped-def] @@ -536,6 +498,15 @@ src/documents/serialisers.py:0: error: Function is missing a type annotation [n src/documents/serialisers.py:0: error: Function is missing a type annotation [no-untyped-def] src/documents/serialisers.py:0: error: Function is missing a type annotation [no-untyped-def] src/documents/serialisers.py:0: error: Function is missing a type annotation [no-untyped-def] +src/documents/serialisers.py:0: error: Function is missing a type annotation [no-untyped-def] +src/documents/serialisers.py:0: error: Function is missing a type annotation [no-untyped-def] +src/documents/serialisers.py:0: error: Function is missing a type annotation [no-untyped-def] +src/documents/serialisers.py:0: error: Function is missing a type annotation [no-untyped-def] +src/documents/serialisers.py:0: error: Function is missing a type annotation [no-untyped-def] +src/documents/serialisers.py:0: error: Function is missing a type annotation [no-untyped-def] +src/documents/serialisers.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/serialisers.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/serialisers.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/serialisers.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/serialisers.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/serialisers.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] @@ -575,7 +546,6 @@ src/documents/serialisers.py:0: error: Function is missing a type annotation for src/documents/serialisers.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/serialisers.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/serialisers.py:0: error: Incompatible types in assignment (expression has type "PrimaryKeyRelatedField[Tag]", base class "Field" defined the type as "BaseSerializer[Any]") [assignment] -src/documents/serialisers.py:0: error: Incompatible types in assignment (expression has type "QuerySet[Any, Any]", variable has type "UnknownQuerySet[Document, Document]") [assignment] src/documents/serialisers.py:0: error: Incompatible types in assignment (expression has type "Sequence[str] | tuple[Lower]", variable has type "Sequence[str] | None") [assignment] src/documents/serialisers.py:0: error: Incompatible types in assignment (expression has type "WorkflowActionWebhookSerializer", variable has type "WorkflowActionEmailSerializer") [assignment] src/documents/serialisers.py:0: error: Incompatible types in assignment (expression has type "type[Correspondent]", variable has type "type[Tag] | None") [assignment] @@ -594,24 +564,29 @@ src/documents/serialisers.py:0: error: Item "None" of "Field[Any, Any, Any, Any] src/documents/serialisers.py:0: error: Item "None" of "Field[Any, Any, Any, Any] | None" has no attribute "fetch_documents" [union-attr] src/documents/serialisers.py:0: error: Item "None" of "Field[Any, Any, Any, Any] | None" has no attribute "get_shared_object_pks" [union-attr] src/documents/serialisers.py:0: error: Item "None" of "Field[Any, Any, Any, Any] | None" has no attribute "get_shared_object_pks" [union-attr] -src/documents/serialisers.py:0: error: Item "None" of "ObjectPermissionChecker | None" has no attribute "has_perm" [union-attr] src/documents/serialisers.py:0: error: Item "list[str]" of "Any | list[str]" has no attribute "values_list" [union-attr] src/documents/serialisers.py:0: error: Missing type arguments for generic type "Field" [type-arg] src/documents/serialisers.py:0: error: Missing type arguments for generic type "Iterable" [type-arg] src/documents/serialisers.py:0: error: Missing type arguments for generic type "dict" [type-arg] src/documents/serialisers.py:0: error: Missing type arguments for generic type "dict" [type-arg] +src/documents/serialisers.py:0: error: Missing type arguments for generic type "dict" [type-arg] src/documents/serialisers.py:0: error: Need type annotation for "document" [var-annotated] src/documents/serialisers.py:0: error: Need type annotation for "documents" [var-annotated] src/documents/serialisers.py:0: error: Need type annotation for "permissions_dict" [var-annotated] -src/documents/serialisers.py:0: error: Need type annotation for "with_perms" [var-annotated] src/documents/serialisers.py:0: error: No overload variant of "get" of "dict" matches argument types "str", "str" [call-overload] src/documents/serialisers.py:0: error: No overload variant of "get" of "dict" matches argument types "str", "str" [call-overload] src/documents/serialisers.py:0: error: No overload variant of "get" of "dict" matches argument types "str", "str" [call-overload] src/documents/serialisers.py:0: error: Skipping analyzing "auditlog.context": module is installed, but missing library stubs or py.typed marker [import-untyped] +src/documents/serialisers.py:0: error: Unsupported target for indexed assignment ("Mapping[str, Any] | Any") [index] +src/documents/serialisers.py:0: error: Unsupported target for indexed assignment ("Mapping[str, Any] | Any") [index] +src/documents/serialisers.py:0: error: Unsupported target for indexed assignment ("Mapping[str, Any] | Any") [index] +src/documents/serialisers.py:0: error: Unsupported target for indexed assignment ("Mapping[str, Any]") [index] src/documents/serialisers.py:0: error: Value of type "Any | None" is not indexable [index] src/documents/serialisers.py:0: error: Value of type "Any | None" is not indexable [index] src/documents/serialisers.py:0: error: Value of type "Match[str] | None" is not indexable [index] src/documents/signals/handlers.py:0: error: "BaseDatabaseWrapper" has no attribute "close_pool" [attr-defined] +src/documents/signals/handlers.py:0: error: "BaseDatabaseWrapper" has no attribute "close_pool" [attr-defined] +src/documents/signals/handlers.py:0: error: "Task[[int, int], Any]" has no attribute "delay_on_commit" [attr-defined] src/documents/signals/handlers.py:0: error: Argument 1 to "Path" has incompatible type "Any | None"; expected "str | PathLike[str]" [arg-type] src/documents/signals/handlers.py:0: error: Argument 1 to "Path" has incompatible type "Any | None"; expected "str | PathLike[str]" [arg-type] src/documents/signals/handlers.py:0: error: Argument 1 to "Path" has incompatible type "Path | Any | None"; expected "str | PathLike[str]" [arg-type] @@ -645,9 +620,11 @@ src/documents/signals/handlers.py:0: error: Function is missing a type annotatio src/documents/signals/handlers.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/signals/handlers.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/signals/handlers.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/signals/handlers.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/signals/handlers.py:0: error: Incompatible types in assignment (expression has type "Any | None", target has type "datetime") [assignment] src/documents/signals/handlers.py:0: error: Incompatible types in assignment (expression has type "str", target has type "datetime") [assignment] src/documents/signals/handlers.py:0: error: Incompatible types in assignment (expression has type "tuple[Any, Any, Any]", variable has type "tuple[Any, Any]") [assignment] +src/documents/signals/handlers.py:0: error: Item "ConsumableDocument" of "Document | ConsumableDocument" has no attribute "pk" [union-attr] src/documents/signals/handlers.py:0: error: Item "ConsumableDocument" of "Document | ConsumableDocument" has no attribute "save" [union-attr] src/documents/signals/handlers.py:0: error: Item "ConsumableDocument" of "Document | ConsumableDocument" has no attribute "source_path" [union-attr] src/documents/signals/handlers.py:0: error: Item "ConsumableDocument" of "Document | ConsumableDocument" has no attribute "title" [union-attr] @@ -679,6 +656,9 @@ src/documents/tasks.py:0: error: Function is missing a type annotation for one o src/documents/tasks.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tasks.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tasks.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tasks.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tasks.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tasks.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tasks.py:0: error: Incompatible return value type (got "str | None", expected "ConsumeFileSuccessResult | ConsumeFileStoppedResult | ConsumeFileDuplicateResult | None") [return-value] src/documents/tasks.py:0: error: Incompatible types in assignment (expression has type "Path", variable has type "str") [assignment] src/documents/tasks.py:0: error: Incompatible types in assignment (expression has type "QuerySet[Document, Document]", variable has type "UnknownQuerySet[Document, Document]") [assignment] @@ -700,16 +680,6 @@ src/documents/templating/filters.py:0: error: Incompatible types in assignment ( src/documents/templating/filters.py:0: error: Item "str" of "str | datetime" has no attribute "strftime" [union-attr] src/documents/templating/utils.py:0: error: Function is missing a type annotation [no-untyped-def] src/documents/templating/workflows.py:0: error: Incompatible return value type (got "None", expected "str") [return-value] -src/documents/tests/conftest.py:0: error: "type[UserModelT?]" has no attribute "objects" [attr-defined] -src/documents/tests/conftest.py:0: error: Function is missing a return type annotation [no-untyped-def] -src/documents/tests/conftest.py:0: error: Function is missing a return type annotation [no-untyped-def] -src/documents/tests/conftest.py:0: error: Function is missing a return type annotation [no-untyped-def] -src/documents/tests/conftest.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/documents/tests/conftest.py:0: error: Incompatible return value type (got "DocumentFactory", expected "Document") [return-value] -src/documents/tests/conftest.py:0: error: Variable "documents.tests.conftest.UserModelT" is not valid as a type [valid-type] -src/documents/tests/conftest.py:0: error: Variable "documents.tests.conftest.UserModelT" is not valid as a type [valid-type] -src/documents/tests/conftest.py:0: error: Variable "documents.tests.conftest.UserModelT" is not valid as a type [valid-type] -src/documents/tests/conftest.py:0: error: Variable "documents.tests.conftest.UserModelT" is not valid as a type [valid-type] src/documents/tests/management/test_management_base_cmd.py:0: error: Function is missing a return type annotation [no-untyped-def] src/documents/tests/management/test_management_base_cmd.py:0: error: Function is missing a return type annotation [no-untyped-def] src/documents/tests/management/test_management_base_cmd.py:0: error: Function is missing a return type annotation [no-untyped-def] @@ -744,40 +714,81 @@ src/documents/tests/management/test_management_base_cmd.py:0: error: Missing typ src/documents/tests/management/test_management_base_cmd.py:0: error: Need type annotation for "result" [var-annotated] src/documents/tests/management/test_management_base_cmd.py:0: error: Need type annotation for "result" (hint: "result: list[] = ...") [var-annotated] src/documents/tests/management/test_management_base_cmd.py:0: error: Need type annotation for "results" [var-annotated] -src/documents/tests/management/test_management_sanity_checker.py:0: error: "DocumentFactory" has no attribute "source_path"; maybe "storage_path"? [attr-defined] -src/documents/tests/management/test_management_sanity_checker.py:0: error: "DocumentFactory" has no attribute "thumbnail_path" [attr-defined] +src/documents/tests/search/test_acceptance.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/search/test_acceptance.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tests/search/test_backend.py:0: error: Function is missing a return type annotation [no-untyped-def] src/documents/tests/search/test_backend.py:0: error: Function is missing a type annotation [no-untyped-def] src/documents/tests/search/test_backend.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tests/search/test_backend.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/documents/tests/search/test_backend.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/documents/tests/search/test_backend.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/search/test_cjk_clause.py:0: error: Argument 1 to "_build_cjk_query" has incompatible type "None"; expected "Index" [arg-type] +src/documents/tests/search/test_cjk_clause.py:0: error: Argument 1 to "_parse_cjk_text" has incompatible type "_RaisingIndex"; expected "Index" [arg-type] +src/documents/tests/search/test_cjk_clause.py:0: error: Module "pytest_django.fixtures" has no attribute "SettingsWrapper" [attr-defined] +src/documents/tests/search/test_cjk_emit_registry.py:0: error: "None" not callable [misc] +src/documents/tests/search/test_cjk_emit_registry.py:0: error: "SearchResult" has no attribute "count" [attr-defined] +src/documents/tests/search/test_cjk_leaf_rewrite.py:0: error: "None" not callable [misc] +src/documents/tests/search/test_cjk_widening.py:0: error: Module "pytest_django.fixtures" has no attribute "SettingsWrapper" [attr-defined] +src/documents/tests/search/test_date_keyword_timezone.py:0: error: Module "pytest_django.fixtures" has no attribute "SettingsWrapper" [attr-defined] +src/documents/tests/search/test_fuzzy_scoring.py:0: error: Module "pytest_django.fixtures" has no attribute "SettingsWrapper" [attr-defined] +src/documents/tests/search/test_fuzzy_widening.py:0: error: Argument 1 has incompatible type "*tuple[object, ...]"; expected "Node" [arg-type] +src/documents/tests/search/test_fuzzy_widening.py:0: error: Argument 2 has incompatible type "**dict[str, object]"; expected "Callable[[Term | Phrase], Node] | None" [arg-type] +src/documents/tests/search/test_fuzzy_widening.py:0: error: Argument 2 has incompatible type "**dict[str, object]"; expected "FieldRegistry" [arg-type] +src/documents/tests/search/test_fuzzy_widening.py:0: error: Argument 2 has incompatible type "**dict[str, object]"; expected "Index" [arg-type] +src/documents/tests/search/test_fuzzy_widening.py:0: error: Argument 2 has incompatible type "**dict[str, object]"; expected "Node" [arg-type] +src/documents/tests/search/test_fuzzy_widening.py:0: error: Module "pytest_django.fixtures" has no attribute "SettingsWrapper" [attr-defined] src/documents/tests/search/test_migration_fulltext_query_field_prefixes.py:0: error: Function is missing a return type annotation [no-untyped-def] src/documents/tests/search/test_migration_fulltext_query_field_prefixes.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/documents/tests/search/test_migration_fulltext_query_field_prefixes.py:0: error: Incompatible types in assignment (expression has type "str", base class "TestMigrations" defined the type as "None") [assignment] -src/documents/tests/search/test_migration_fulltext_query_field_prefixes.py:0: error: Incompatible types in assignment (expression has type "str", base class "TestMigrations" defined the type as "None") [assignment] +src/documents/tests/search/test_negated_leaf_ids.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/search/test_permission_field_isolation.py:0: error: Argument 1 to "grant_object" has incompatible type "Group | None"; expected "User | Group" [arg-type] src/documents/tests/search/test_query.py:0: error: "SearchResult" has no attribute "count" [attr-defined] src/documents/tests/search/test_query.py:0: error: "SearchResult" has no attribute "count" [attr-defined] src/documents/tests/search/test_query.py:0: error: "SearchResult" has no attribute "count" [attr-defined] src/documents/tests/search/test_query.py:0: error: "SearchResult" has no attribute "count" [attr-defined] src/documents/tests/search/test_query.py:0: error: "SearchResult" has no attribute "count" [attr-defined] +src/documents/tests/search/test_query.py:0: error: "SearchResult" has no attribute "count" [attr-defined] +src/documents/tests/search/test_query.py:0: error: Argument 2 to "build_permission_filter" has incompatible type "AbstractBaseUser"; expected "AbstractUser" [arg-type] +src/documents/tests/search/test_query.py:0: error: Argument 2 to "build_permission_filter" has incompatible type "AbstractBaseUser"; expected "AbstractUser" [arg-type] +src/documents/tests/search/test_query.py:0: error: Argument 2 to "build_permission_filter" has incompatible type "AbstractBaseUser"; expected "AbstractUser" [arg-type] +src/documents/tests/search/test_query.py:0: error: Argument 2 to "build_permission_filter" has incompatible type "AbstractBaseUser"; expected "AbstractUser" [arg-type] +src/documents/tests/search/test_query.py:0: error: Argument 2 to "build_permission_filter" has incompatible type "AbstractBaseUser"; expected "AbstractUser" [arg-type] +src/documents/tests/search/test_query.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tests/search/test_query.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tests/search/test_query.py:0: error: Unexpected attribute "pk" for model "AbstractBaseUser" [misc] src/documents/tests/search/test_query.py:0: error: Unexpected attribute "pk" for model "AbstractBaseUser" [misc] src/documents/tests/search/test_query.py:0: error: Unexpected attribute "pk" for model "AbstractBaseUser" [misc] src/documents/tests/search/test_query.py:0: error: Unexpected attribute "pk" for model "AbstractBaseUser" [misc] src/documents/tests/search/test_query.py:0: error: Unexpected attribute "pk" for model "AbstractBaseUser" [misc] +src/documents/tests/search/test_schema.py:0: error: Invalid index type "str" for "str"; expected type "SupportsIndex | slice[SupportsIndex | None, SupportsIndex | None, SupportsIndex | None]" [index] +src/documents/tests/search/test_schema.py:0: error: Missing type arguments for generic type "dict" [type-arg] +src/documents/tests/search/test_schema.py:0: error: Value expression in dictionary comprehension has incompatible type "str | Any"; expected type "dict[Any, Any]" [misc] +src/documents/tests/search/test_schema_fingerprint.py:0: error: Argument 1 to "update" of "MutableMapping" has incompatible type "dict[str, object]"; expected "SupportsKeysAndGetItem[str, str | int | None]" [arg-type] +src/documents/tests/search/test_schema_fingerprint.py:0: error: Incompatible return value type (got "str | Any", expected "list[dict[Any, Any]]") [return-value] +src/documents/tests/search/test_schema_fingerprint.py:0: error: Invalid index type "str" for "str"; expected type "SupportsIndex | slice[SupportsIndex | None, SupportsIndex | None, SupportsIndex | None]" [index] +src/documents/tests/search/test_schema_fingerprint.py:0: error: Missing type arguments for generic type "dict" [type-arg] +src/documents/tests/search/test_schema_fingerprint.py:0: error: Module "pytest_django.fixtures" has no attribute "SettingsWrapper" [attr-defined] src/documents/tests/search/test_tokenizer.py:0: error: "SearchResult" has no attribute "count" [attr-defined] src/documents/tests/search/test_tokenizer.py:0: error: "SearchResult" has no attribute "count" [attr-defined] src/documents/tests/search/test_tokenizer.py:0: error: "SearchResult" has no attribute "count" [attr-defined] -src/documents/tests/test_admin.py:0: error: "None" has no attribute "searcher" [attr-defined] +src/documents/tests/search/test_tokenizer.py:0: error: "SearchResult" has no attribute "count" [attr-defined] +src/documents/tests/search/test_widen_leaf.py:0: error: Argument "child" to "Boosted" has incompatible type "Node | None"; expected "Node" [arg-type] +src/documents/tests/search/test_widen_leaf.py:0: error: Argument "children" to "Or" has incompatible type "tuple[Term, Node | None]"; expected "tuple[Node, ...]" [arg-type] +src/documents/tests/search/test_widen_leaf.py:0: error: Argument "children" to "Or" has incompatible type "tuple[Term, Node | None]"; expected "tuple[Node, ...]" [arg-type] +src/documents/tests/search/test_widen_leaf.py:0: error: Argument "children" to "Or" has incompatible type "tuple[Term, Node | None]"; expected "tuple[Node, ...]" [arg-type] src/documents/tests/test_admin.py:0: error: "PaperlessUserForm" has no attribute "request" [attr-defined] src/documents/tests/test_admin.py:0: error: "PaperlessUserForm" has no attribute "request" [attr-defined] -src/documents/tests/test_admin.py:0: error: Argument 1 to "range_query" of "Query" has incompatible type "None"; expected "Schema" [arg-type] src/documents/tests/test_admin.py:0: error: Function is missing a type annotation [no-untyped-def] src/documents/tests/test_admin.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/documents/tests/test_admin.py:0: error: Module "django.utils.timezone" does not explicitly export attribute "datetime" [attr-defined] src/documents/tests/test_api_app_config.py:0: error: "ImageFile" has no attribute "text" [attr-defined] +src/documents/tests/test_api_app_config.py:0: error: Argument 1 to "read_streaming_response" has incompatible type "_MonkeyPatchedResponse"; expected "StreamingHttpResponse" [arg-type] +src/documents/tests/test_api_app_config.py:0: error: List item 0 has incompatible type "tuple[str, dict[str, int], bytes]"; expected "tuple[str, int | list[int] | str, bytes]" [list-item] +src/documents/tests/test_api_app_config.py:0: error: List item 1 has incompatible type "tuple[str, dict[str, None], bytes]"; expected "tuple[str, int | list[int] | str, bytes]" [list-item] +src/documents/tests/test_api_bulk_download.py:0: error: Argument 1 to "read_streaming_response" has incompatible type "_MonkeyPatchedResponse"; expected "StreamingHttpResponse" [arg-type] +src/documents/tests/test_api_bulk_download.py:0: error: Argument 1 to "read_streaming_response" has incompatible type "_MonkeyPatchedResponse"; expected "StreamingHttpResponse" [arg-type] +src/documents/tests/test_api_bulk_download.py:0: error: Argument 1 to "read_streaming_response" has incompatible type "_MonkeyPatchedResponse"; expected "StreamingHttpResponse" [arg-type] +src/documents/tests/test_api_bulk_download.py:0: error: Argument 1 to "read_streaming_response" has incompatible type "_MonkeyPatchedResponse"; expected "StreamingHttpResponse" [arg-type] +src/documents/tests/test_api_bulk_download.py:0: error: Argument 1 to "read_streaming_response" has incompatible type "_MonkeyPatchedResponse"; expected "StreamingHttpResponse" [arg-type] +src/documents/tests/test_api_bulk_download.py:0: error: Argument 1 to "read_streaming_response" has incompatible type "_MonkeyPatchedResponse"; expected "StreamingHttpResponse" [arg-type] +src/documents/tests/test_api_bulk_download.py:0: error: Argument 1 to "read_streaming_response" has incompatible type "_MonkeyPatchedResponse"; expected "StreamingHttpResponse" [arg-type] +src/documents/tests/test_api_bulk_download.py:0: error: Argument 1 to "read_streaming_response" has incompatible type "_MonkeyPatchedResponse"; expected "StreamingHttpResponse" [arg-type] src/documents/tests/test_api_bulk_download.py:0: error: Value of type variable "_StrPathT" of "copy" cannot be "Path | None" [type-var] src/documents/tests/test_api_bulk_edit.py:0: error: "type[MatchingModel]" has no attribute "objects" [attr-defined] src/documents/tests/test_api_bulk_edit.py:0: error: "type[MatchingModel]" has no attribute "objects" [attr-defined] @@ -816,13 +827,49 @@ src/documents/tests/test_api_bulk_edit.py:0: error: Function is missing a type a src/documents/tests/test_api_bulk_edit.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tests/test_api_bulk_edit.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tests/test_api_bulk_edit.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_api_bulk_edit.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_api_bulk_edit.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_api_bulk_edit.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_api_bulk_edit.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_api_bulk_edit.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_api_bulk_edit.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_api_bulk_edit.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_api_bulk_edit.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_api_bulk_edit.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_api_bulk_edit.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_api_bulk_edit.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_api_bulk_edit.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_api_bulk_edit.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_api_bulk_edit.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_api_bulk_edit.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_api_bulk_edit.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_api_bulk_edit.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_api_bulk_edit.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_api_bulk_edit.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_api_bulk_edit.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tests/test_api_bulk_edit.py:0: error: Skipping analyzing "auditlog.models": module is installed, but missing library stubs or py.typed marker [import-untyped] +src/documents/tests/test_api_chat.py:0: error: "_MonkeyPatchedResponse" has no attribute "streaming_content" [attr-defined] src/documents/tests/test_api_custom_fields.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_api_document_versions.py:0: error: Argument 1 to "read_streaming_response" has incompatible type "_MonkeyPatchedResponse"; expected "StreamingHttpResponse" [arg-type] +src/documents/tests/test_api_document_versions.py:0: error: Argument 1 to "read_streaming_response" has incompatible type "_MonkeyPatchedResponse"; expected "StreamingHttpResponse" [arg-type] +src/documents/tests/test_api_document_versions.py:0: error: Argument 1 to "read_streaming_response" has incompatible type "_MonkeyPatchedResponse"; expected "StreamingHttpResponse" [arg-type] +src/documents/tests/test_api_document_versions.py:0: error: Argument 1 to "read_streaming_response" has incompatible type "_MonkeyPatchedResponse"; expected "StreamingHttpResponse" [arg-type] +src/documents/tests/test_api_document_versions.py:0: error: Argument 1 to "read_streaming_response" has incompatible type "_MonkeyPatchedResponse"; expected "StreamingHttpResponse" [arg-type] src/documents/tests/test_api_documents.py:0: error: "None" object is not iterable [misc] src/documents/tests/test_api_documents.py:0: error: "object" has no attribute "get" [attr-defined] src/documents/tests/test_api_documents.py:0: error: Argument 1 to "Path" has incompatible type "Path | None"; expected "str | PathLike[str]" [arg-type] src/documents/tests/test_api_documents.py:0: error: Argument 1 to "Path" has incompatible type "Path | None"; expected "str | PathLike[str]" [arg-type] src/documents/tests/test_api_documents.py:0: error: Argument 1 to "assertCountEqual" of "TestCase" has incompatible type "list[int] | None"; expected "Iterable[Any]" [arg-type] +src/documents/tests/test_api_documents.py:0: error: Argument 1 to "read_streaming_response" has incompatible type "_MonkeyPatchedResponse"; expected "StreamingHttpResponse" [arg-type] +src/documents/tests/test_api_documents.py:0: error: Argument 1 to "read_streaming_response" has incompatible type "_MonkeyPatchedResponse"; expected "StreamingHttpResponse" [arg-type] +src/documents/tests/test_api_documents.py:0: error: Argument 1 to "read_streaming_response" has incompatible type "_MonkeyPatchedResponse"; expected "StreamingHttpResponse" [arg-type] +src/documents/tests/test_api_documents.py:0: error: Argument 1 to "read_streaming_response" has incompatible type "_MonkeyPatchedResponse"; expected "StreamingHttpResponse" [arg-type] +src/documents/tests/test_api_documents.py:0: error: Argument 1 to "read_streaming_response" has incompatible type "_MonkeyPatchedResponse"; expected "StreamingHttpResponse" [arg-type] +src/documents/tests/test_api_documents.py:0: error: Argument 1 to "read_streaming_response" has incompatible type "_MonkeyPatchedResponse"; expected "StreamingHttpResponse" [arg-type] +src/documents/tests/test_api_documents.py:0: error: Argument 1 to "read_streaming_response" has incompatible type "_MonkeyPatchedResponse"; expected "StreamingHttpResponse" [arg-type] +src/documents/tests/test_api_documents.py:0: error: Argument 1 to "read_streaming_response" has incompatible type "_MonkeyPatchedResponse"; expected "StreamingHttpResponse" [arg-type] +src/documents/tests/test_api_documents.py:0: error: Argument 1 to "read_streaming_response" has incompatible type "_MonkeyPatchedResponse"; expected "StreamingHttpResponse" [arg-type] +src/documents/tests/test_api_documents.py:0: error: Argument 1 to "read_streaming_response" has incompatible type "_MonkeyPatchedResponse"; expected "StreamingHttpResponse" [arg-type] src/documents/tests/test_api_documents.py:0: error: Argument 2 to "assertNotIn" of "TestCase" has incompatible type "str | None"; expected "Iterable[Any] | Container[Any]" [arg-type] src/documents/tests/test_api_documents.py:0: error: Argument 2 to "assertNotIn" of "TestCase" has incompatible type "str | None"; expected "Iterable[Any] | Container[Any]" [arg-type] src/documents/tests/test_api_documents.py:0: error: Argument 3 to "generic" of "APIClient" has incompatible type "bytes"; expected "str" [arg-type] @@ -830,6 +877,7 @@ src/documents/tests/test_api_documents.py:0: error: Function is missing a type a src/documents/tests/test_api_documents.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tests/test_api_documents.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tests/test_api_documents.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_api_documents.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tests/test_api_documents.py:0: error: Item "None" of "SavedViewFilterRule | None" has no attribute "value" [union-attr] src/documents/tests/test_api_documents.py:0: error: Value of type "Any | None" is not indexable [index] src/documents/tests/test_api_documents.py:0: error: Value of type "Any | None" is not indexable [index] @@ -851,6 +899,9 @@ src/documents/tests/test_api_filter_by_custom_fields.py:0: error: Missing type a src/documents/tests/test_api_filter_by_custom_fields.py:0: error: Need type annotation for "documents" (hint: "documents: list[] = ...") [var-annotated] src/documents/tests/test_api_objects.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tests/test_api_objects.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_api_objects.py:0: error: Item "Group" of "Group | dict[Any, Any]" has no attribute "count" [union-attr] +src/documents/tests/test_api_objects.py:0: error: Item "dict[Any, Any]" of "Group | dict[Any, Any]" has no attribute "count" [union-attr] +src/documents/tests/test_api_objects.py:0: error: Too few arguments for "count" of "list" [call-arg] src/documents/tests/test_api_permissions.py:0: error: Argument 2 to "get_perms" has incompatible type "Tag | None"; expected "Model" [arg-type] src/documents/tests/test_api_permissions.py:0: error: Argument 2 to "get_perms" has incompatible type "Tag | None"; expected "Model" [arg-type] src/documents/tests/test_api_permissions.py:0: error: Argument 2 to "has_perm" of "ObjectPermissionChecker" has incompatible type "Tag | None"; expected "Model" [arg-type] @@ -861,6 +912,7 @@ src/documents/tests/test_api_permissions.py:0: error: Item "None" of "Tag | None src/documents/tests/test_api_permissions.py:0: error: Item "None" of "Tag | None" has no attribute "owner" [union-attr] src/documents/tests/test_api_permissions.py:0: error: Skipping analyzing "allauth.mfa.models": module is installed, but missing library stubs or py.typed marker [import-untyped] src/documents/tests/test_api_permissions.py:0: error: Skipping analyzing "allauth.mfa.totp.internal": module is installed, but missing library stubs or py.typed marker [import-untyped] +src/documents/tests/test_api_post_document_nfc.py:0: error: Function is missing a return type annotation [no-untyped-def] src/documents/tests/test_api_profile.py:0: error: "User" has no attribute "socialaccount_set"; maybe "mailaccount_set"? [attr-defined] src/documents/tests/test_api_profile.py:0: error: "User" has no attribute "socialaccount_set"; maybe "mailaccount_set"? [attr-defined] src/documents/tests/test_api_profile.py:0: error: "User" has no attribute "socialaccount_set"; maybe "mailaccount_set"? [attr-defined] @@ -898,10 +950,17 @@ src/documents/tests/test_api_schema.py:0: error: Value of type "SchemaGenerator" src/documents/tests/test_api_schema.py:0: error: Value of type "SchemaGenerator" is not indexable [index] src/documents/tests/test_api_schema.py:0: error: Value of type "SchemaGenerator" is not indexable [index] src/documents/tests/test_api_schema.py:0: error: Value of type "SchemaGenerator" is not indexable [index] +src/documents/tests/test_api_schema.py:0: error: Value of type "SchemaGenerator" is not indexable [index] +src/documents/tests/test_api_schema.py:0: error: Value of type "SchemaGenerator" is not indexable [index] +src/documents/tests/test_api_schema.py:0: error: Value of type "SchemaGenerator" is not indexable [index] +src/documents/tests/test_api_schema.py:0: error: Value of type "SchemaGenerator" is not indexable [index] +src/documents/tests/test_api_schema.py:0: error: Value of type "SchemaGenerator" is not indexable [index] +src/documents/tests/test_api_schema.py:0: error: Value of type "SchemaGenerator" is not indexable [index] src/documents/tests/test_api_search.py:0: error: Function is missing a type annotation [no-untyped-def] src/documents/tests/test_api_search.py:0: error: Function is missing a type annotation [no-untyped-def] src/documents/tests/test_api_search.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tests/test_api_search.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_api_search.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tests/test_api_search.py:0: error: Need type annotation for "seen_ids" (hint: "seen_ids: list[] = ...") [var-annotated] src/documents/tests/test_api_search.py:0: error: Unsupported left operand type for < ("None") [operator] src/documents/tests/test_api_search.py:0: error: Unsupported operand types for < ("int" and "None") [operator] @@ -912,30 +971,25 @@ src/documents/tests/test_api_status.py:0: error: Function is missing a type anno src/documents/tests/test_api_status.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tests/test_api_status.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tests/test_api_status.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/documents/tests/test_api_tasks.py:0: error: "DocumentFactory" has no attribute "pk" [attr-defined] -src/documents/tests/test_api_tasks.py:0: error: "DocumentFactory" has no attribute "pk" [attr-defined] -src/documents/tests/test_api_tasks.py:0: error: "DocumentFactory" has no attribute "pk" [attr-defined] -src/documents/tests/test_api_tasks.py:0: error: "DocumentFactory" has no attribute "pk" [attr-defined] -src/documents/tests/test_api_tasks.py:0: error: "DocumentFactory" has no attribute "pk" [attr-defined] -src/documents/tests/test_api_tasks.py:0: error: "DocumentFactory" has no attribute "pk" [attr-defined] -src/documents/tests/test_api_tasks.py:0: error: "PaperlessTaskFactory" has no attribute "id" [attr-defined] -src/documents/tests/test_api_tasks.py:0: error: "PaperlessTaskFactory" has no attribute "id" [attr-defined] -src/documents/tests/test_api_tasks.py:0: error: "PaperlessTaskFactory" has no attribute "id" [attr-defined] -src/documents/tests/test_api_tasks.py:0: error: "PaperlessTaskFactory" has no attribute "id" [attr-defined] -src/documents/tests/test_api_tasks.py:0: error: "PaperlessTaskFactory" has no attribute "pk" [attr-defined] -src/documents/tests/test_api_tasks.py:0: error: Argument 2 to "get" of "APIClient" has incompatible type "dict[str, Faker]"; expected "Mapping[str, str | bytes | float | Iterable[str | bytes | float]] | Iterable[tuple[str, str | bytes | float | Iterable[str | bytes | float]]] | None" [arg-type] -src/documents/tests/test_api_tasks.py:0: error: Argument 3 to "assign_perm" has incompatible type "DocumentFactory"; expected "Model | None" [arg-type] +src/documents/tests/test_api_status.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_api_status.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_api_status.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_api_status.py:0: error: Need type annotation for "ping_response" [var-annotated] src/documents/tests/test_api_tasks.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tests/test_api_tasks.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tests/test_api_uisettings.py:0: error: Argument 1 to "assertDictEqual" of "TestCase" has incompatible type "Any | None"; expected "Mapping[Any, object]" [arg-type] +src/documents/tests/test_api_workflows.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/documents/tests/test_api_workflows.py:0: error: Function is missing a type annotation [no-untyped-def] +src/documents/tests/test_api_workflows.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tests/test_api_workflows.py:0: error: Item "None" of "Correspondent | None" has no attribute "pk" [union-attr] +src/documents/tests/test_api_workflows.py:0: error: Item "None" of "WorkflowAction | None" has no attribute "ai_create_missing" [union-attr] +src/documents/tests/test_api_workflows.py:0: error: Item "None" of "WorkflowAction | None" has no attribute "ai_overwrite_existing" [union-attr] +src/documents/tests/test_api_workflows.py:0: error: Item "None" of "WorkflowAction | None" has no attribute "ai_suggestion_fields" [union-attr] +src/documents/tests/test_api_workflows.py:0: error: Missing type arguments for generic type "dict" [type-arg] src/documents/tests/test_barcodes.py:0: error: "GetReaderPluginMixin" has no attribute "dirs" [attr-defined] src/documents/tests/test_barcodes.py:0: error: Argument 1 to "contextmanager" has incompatible type "Callable[[TestAsnBarcode, Path], BarcodePlugin]"; expected "Callable[[TestAsnBarcode, Path], Iterator[Never]]" [arg-type] src/documents/tests/test_barcodes.py:0: error: Argument 1 to "contextmanager" has incompatible type "Callable[[TestTagBarcode, Path], BarcodePlugin]"; expected "Callable[[TestTagBarcode, Path], Iterator[Never]]" [arg-type] src/documents/tests/test_barcodes.py:0: error: Argument 1 to "get_reader" of "GetReaderPluginMixin" has incompatible type "str"; expected "Path" [arg-type] -src/documents/tests/test_barcodes.py:0: error: Argument 3 to "BarcodePlugin" has incompatible type "DummyProgressManager"; expected "ProgressManager" [arg-type] -src/documents/tests/test_barcodes.py:0: error: Argument 3 to "BarcodePlugin" has incompatible type "DummyProgressManager"; expected "ProgressManager" [arg-type] -src/documents/tests/test_barcodes.py:0: error: Argument 3 to "BarcodePlugin" has incompatible type "DummyProgressManager"; expected "ProgressManager" [arg-type] src/documents/tests/test_barcodes.py:0: error: Incompatible types in assignment (expression has type "Path", variable has type "str") [assignment] src/documents/tests/test_barcodes.py:0: error: Need type annotation for "reader" [var-annotated] src/documents/tests/test_barcodes.py:0: error: Need type annotation for "reader" [var-annotated] @@ -963,6 +1017,7 @@ src/documents/tests/test_bulk_edit.py:0: error: Argument 2 to "set_storage_path" src/documents/tests/test_bulk_edit.py:0: error: Argument 2 to "set_storage_path" has incompatible type "int"; expected "StoragePath" [arg-type] src/documents/tests/test_bulk_edit.py:0: error: Argument 2 to "set_storage_path" has incompatible type "int"; expected "StoragePath" [arg-type] src/documents/tests/test_bulk_edit.py:0: error: Function is missing a type annotation [no-untyped-def] +src/documents/tests/test_bulk_edit.py:0: error: Function is missing a type annotation [no-untyped-def] src/documents/tests/test_bulk_edit.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tests/test_bulk_edit.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tests/test_bulk_edit.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] @@ -993,20 +1048,29 @@ src/documents/tests/test_bulk_edit.py:0: error: Function is missing a type annot src/documents/tests/test_bulk_edit.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tests/test_bulk_edit.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tests/test_bulk_edit.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_bulk_edit.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_bulk_edit.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_bulk_edit.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_bulk_edit.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_bulk_edit.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_bulk_edit.py:0: error: Item "Group" of "Group | dict[Any, Any]" has no attribute "count" [union-attr] src/documents/tests/test_bulk_edit.py:0: error: Item "Group" of "Group | dict[Any, Any]" has no attribute "count" [union-attr] src/documents/tests/test_bulk_edit.py:0: error: Item "Group" of "Group | dict[Any, Any]" has no attribute "count" [union-attr] src/documents/tests/test_bulk_edit.py:0: error: Item "dict[Any, Any]" of "Group | dict[Any, Any]" has no attribute "count" [union-attr] src/documents/tests/test_bulk_edit.py:0: error: Item "dict[Any, Any]" of "Group | dict[Any, Any]" has no attribute "count" [union-attr] +src/documents/tests/test_bulk_edit.py:0: error: Item "dict[Any, Any]" of "Group | dict[Any, Any]" has no attribute "count" [union-attr] +src/documents/tests/test_bulk_edit.py:0: error: Too few arguments for "count" of "list" [call-arg] src/documents/tests/test_bulk_edit.py:0: error: Too few arguments for "count" of "list" [call-arg] src/documents/tests/test_bulk_edit.py:0: error: Too few arguments for "count" of "list" [call-arg] -src/documents/tests/test_caching.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tests/test_classifier.py:0: error: "None" has no attribute "classes_" [attr-defined] src/documents/tests/test_classifier.py:0: error: "None" has no attribute "classes_" [attr-defined] +src/documents/tests/test_classifier.py:0: error: "None" has no attribute "classes_" [attr-defined] +src/documents/tests/test_classifier.py:0: error: "None" has no attribute "transform" [attr-defined] +src/documents/tests/test_classifier.py:0: error: "None" has no attribute "transform" [attr-defined] src/documents/tests/test_classifier.py:0: error: "None" has no attribute "transform" [attr-defined] src/documents/tests/test_classifier.py:0: error: Cannot assign to a method [method-assign] src/documents/tests/test_classifier.py:0: error: Cannot assign to a method [method-assign] src/documents/tests/test_classifier.py:0: error: Cannot assign to a method [method-assign] -src/documents/tests/test_classifier.py:0: error: Function is missing a return type annotation [no-untyped-def] src/documents/tests/test_classifier.py:0: error: Function is missing a type annotation [no-untyped-def] src/documents/tests/test_classifier.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tests/test_classifier.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] @@ -1014,6 +1078,8 @@ src/documents/tests/test_classifier.py:0: error: Function is missing a type anno src/documents/tests/test_classifier.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tests/test_classifier.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tests/test_classifier.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_classifier.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_classifier.py:0: error: Incompatible types in assignment (expression has type "Mock", variable has type "None") [assignment] src/documents/tests/test_classifier.py:0: error: Invalid base class "real_catch_warnings" [misc] src/documents/tests/test_classifier.py:0: error: Module "sklearn.exceptions" has no attribute "InconsistentVersionWarning" [attr-defined] src/documents/tests/test_classifier.py:0: error: Variable "real_catch_warnings" is not valid as a type [valid-type] @@ -1071,12 +1137,30 @@ src/documents/tests/test_consumer.py:0: error: Item "None" of "DocumentType | No src/documents/tests/test_consumer.py:0: error: Item "None" of "StoragePath | None" has no attribute "id" [union-attr] src/documents/tests/test_consumer.py:0: error: Missing type arguments for generic type "dict" [type-arg] src/documents/tests/test_consumer.py:0: error: Missing type arguments for generic type "list" [type-arg] +src/documents/tests/test_consumer.py:0: error: TypedDict "DocumentUpdatedData" has no key "current_progress" [typeddict-item] +src/documents/tests/test_consumer.py:0: error: TypedDict "DocumentUpdatedData" has no key "current_progress" [typeddict-item] +src/documents/tests/test_consumer.py:0: error: TypedDict "DocumentUpdatedData" has no key "max_progress" [typeddict-item] +src/documents/tests/test_consumer.py:0: error: TypedDict "DocumentUpdatedData" has no key "max_progress" [typeddict-item] +src/documents/tests/test_consumer.py:0: error: TypedDict "DocumentUpdatedData" has no key "status" [typeddict-item] +src/documents/tests/test_consumer.py:0: error: TypedDict "DocumentUpdatedData" has no key "status" [typeddict-item] +src/documents/tests/test_consumer.py:0: error: TypedDict "DocumentsDeletedData" has no key "current_progress" [typeddict-item] +src/documents/tests/test_consumer.py:0: error: TypedDict "DocumentsDeletedData" has no key "current_progress" [typeddict-item] +src/documents/tests/test_consumer.py:0: error: TypedDict "DocumentsDeletedData" has no key "max_progress" [typeddict-item] +src/documents/tests/test_consumer.py:0: error: TypedDict "DocumentsDeletedData" has no key "max_progress" [typeddict-item] +src/documents/tests/test_consumer.py:0: error: TypedDict "DocumentsDeletedData" has no key "status" [typeddict-item] +src/documents/tests/test_consumer.py:0: error: TypedDict "DocumentsDeletedData" has no key "status" [typeddict-item] +src/documents/tests/test_consumer.py:0: error: Unused "type: ignore" comment [unused-ignore] +src/documents/tests/test_consumer.py:0: error: Unused "type: ignore" comment [unused-ignore] +src/documents/tests/test_consumer.py:0: error: Unused "type: ignore" comment [unused-ignore] +src/documents/tests/test_consumer.py:0: error: Unused "type: ignore" comment [unused-ignore] +src/documents/tests/test_consumer.py:0: error: Unused "type: ignore" comment [unused-ignore] +src/documents/tests/test_consumer.py:0: error: Unused "type: ignore" comment [unused-ignore] src/documents/tests/test_consumer_archive.py:0: error: Function is missing a type annotation [no-untyped-def] src/documents/tests/test_consumer_archive.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tests/test_consumer_archive.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tests/test_consumer_archive.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/documents/tests/test_consumer_archive.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/documents/tests/test_consumer_archive.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_document_list_effective_content_annotation.py:0: error: Incompatible types in assignment (expression has type "SimpleNamespace", variable has type "Request") [assignment] +src/documents/tests/test_document_list_effective_content_annotation.py:0: error: Incompatible types in assignment (expression has type "SimpleNamespace", variable has type "Request") [assignment] src/documents/tests/test_double_sided.py:0: error: Function is missing a return type annotation [no-untyped-def] src/documents/tests/test_double_sided.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tests/test_double_sided.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] @@ -1114,6 +1198,15 @@ src/documents/tests/test_file_handling.py:0: error: Function is missing a type a src/documents/tests/test_file_handling.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tests/test_file_handling.py:0: error: Item "None" of "Path | None" has no attribute "write_bytes" [union-attr] src/documents/tests/test_file_handling.py:0: error: Skipping analyzing "auditlog.context": module is installed, but missing library stubs or py.typed marker [import-untyped] +src/documents/tests/test_filepath_nfc.py:0: error: Function is missing a type annotation [no-untyped-def] +src/documents/tests/test_filepath_nfc.py:0: error: Function is missing a type annotation [no-untyped-def] +src/documents/tests/test_filepath_nfc.py:0: error: Function is missing a type annotation [no-untyped-def] +src/documents/tests/test_filepath_nfc.py:0: error: Function is missing a type annotation [no-untyped-def] +src/documents/tests/test_filepath_nfc.py:0: error: Function is missing a type annotation [no-untyped-def] +src/documents/tests/test_filepath_nfc.py:0: error: Function is missing a type annotation [no-untyped-def] +src/documents/tests/test_filepath_nfc.py:0: error: Function is missing a type annotation [no-untyped-def] +src/documents/tests/test_filepath_nfc.py:0: error: Function is missing a type annotation [no-untyped-def] +src/documents/tests/test_filepath_nfc.py:0: error: Function is missing a type annotation [no-untyped-def] src/documents/tests/test_filters.py:0: error: Argument 1 to "localize_date" has incompatible type "list[object] | dict[Any, Any] | Literal[1698330605] | None"; expected "date | datetime | str" [arg-type] src/documents/tests/test_management.py:0: error: Argument 1 to "Path" has incompatible type "Path | None"; expected "str | PathLike[str]" [arg-type] src/documents/tests/test_management.py:0: error: Argument 1 to "assertIsFile" of "FileSystemAssertsMixin" has incompatible type "Path | None"; expected "PathLike[str] | str" [arg-type] @@ -1135,56 +1228,104 @@ src/documents/tests/test_management_exporter.py:0: error: Item "None" of "MailAc src/documents/tests/test_management_exporter.py:0: error: Item "None" of "Path | None" has no attribute "read_bytes" [union-attr] src/documents/tests/test_management_exporter.py:0: error: Skipping analyzing "allauth.socialaccount.models": module is installed, but missing library stubs or py.typed marker [import-untyped] src/documents/tests/test_management_fuzzy.py:0: error: Function is missing a type annotation [no-untyped-def] -src/documents/tests/test_management_retagger.py:0: error: "DocumentFactory" has no attribute "refresh_from_db" [attr-defined] -src/documents/tests/test_management_retagger.py:0: error: "DocumentFactory" has no attribute "refresh_from_db" [attr-defined] -src/documents/tests/test_management_retagger.py:0: error: "DocumentFactory" has no attribute "refresh_from_db" [attr-defined] -src/documents/tests/test_management_retagger.py:0: error: "DocumentFactory" has no attribute "tags" [attr-defined] -src/documents/tests/test_management_retagger.py:0: error: "DocumentFactory" has no attribute "tags" [attr-defined] +src/documents/tests/test_management_importer.py:0: error: "Model" has no attribute "correspondent_id" [attr-defined] +src/documents/tests/test_management_importer.py:0: error: "Model" has no attribute "correspondent_id" [attr-defined] +src/documents/tests/test_management_importer.py:0: error: "Model" has no attribute "name" [attr-defined] +src/documents/tests/test_management_importer.py:0: error: Item "None" of "Tag | None" has no attribute "name" [union-attr] +src/documents/tests/test_management_importer.py:0: error: Item "None" of "Tag | None" has no attribute "name" [union-attr] src/documents/tests/test_management_retagger.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tests/test_management_retagger.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tests/test_management_retagger.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tests/test_management_retagger.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/documents/tests/test_management_retagger.py:0: error: Incompatible return value type (got "tuple[CorrespondentFactory, CorrespondentFactory]", expected "tuple[Correspondent, Correspondent]") [return-value] -src/documents/tests/test_management_retagger.py:0: error: Incompatible return value type (got "tuple[DocumentFactory, DocumentFactory, DocumentFactory, DocumentFactory]", expected "tuple[Document, Document, Document, Document]") [return-value] -src/documents/tests/test_management_retagger.py:0: error: Incompatible return value type (got "tuple[DocumentTypeFactory, DocumentTypeFactory]", expected "tuple[DocumentType, DocumentType]") [return-value] -src/documents/tests/test_management_retagger.py:0: error: Incompatible return value type (got "tuple[StoragePathFactory, StoragePathFactory, StoragePathFactory]", expected "tuple[StoragePath, StoragePath, StoragePath]") [return-value] -src/documents/tests/test_management_retagger.py:0: error: Incompatible return value type (got "tuple[TagFactory, TagFactory, TagFactory, TagFactory, TagFactory]", expected "tuple[Tag, Tag, Tag, Tag, Tag]") [return-value] src/documents/tests/test_management_superuser.py:0: error: Function is missing a type annotation [no-untyped-def] -src/documents/tests/test_migration_saved_view_visibility.py:0: error: Cannot determine type of "apps" [has-type] -src/documents/tests/test_migration_saved_view_visibility.py:0: error: Cannot determine type of "apps" [has-type] +src/documents/tests/test_matchables.py:0: error: Missing type arguments for generic type "DjangoModelFactory" [type-arg] +src/documents/tests/test_matchables.py:0: error: Missing type arguments for generic type "DjangoModelFactory" [type-arg] +src/documents/tests/test_matchables.py:0: error: Missing type arguments for generic type "DjangoModelFactory" [type-arg] +src/documents/tests/test_matchables.py:0: error: Missing type arguments for generic type "DjangoModelFactory" [type-arg] +src/documents/tests/test_matchables.py:0: error: Missing type arguments for generic type "DjangoModelFactory" [type-arg] +src/documents/tests/test_matchables.py:0: error: Missing type arguments for generic type "DjangoModelFactory" [type-arg] +src/documents/tests/test_matchables.py:0: error: Missing type arguments for generic type "DjangoModelFactory" [type-arg] +src/documents/tests/test_matchables.py:0: error: Missing type arguments for generic type "DjangoModelFactory" [type-arg] +src/documents/tests/test_matchables.py:0: error: Missing type arguments for generic type "DjangoModelFactory" [type-arg] +src/documents/tests/test_matchables.py:0: error: Missing type arguments for generic type "DjangoModelFactory" [type-arg] +src/documents/tests/test_matchables.py:0: error: Missing type arguments for generic type "DjangoModelFactory" [type-arg] +src/documents/tests/test_matchables.py:0: error: Missing type arguments for generic type "DjangoModelFactory" [type-arg] +src/documents/tests/test_matchables.py:0: error: Missing type arguments for generic type "DjangoModelFactory" [type-arg] +src/documents/tests/test_merge_documents_as_versions.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_merge_documents_as_versions.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_merge_documents_as_versions.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_merge_documents_as_versions.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_merge_documents_as_versions.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_merge_documents_as_versions.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_merge_documents_as_versions.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_merge_documents_as_versions.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_merge_documents_as_versions.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_merge_documents_as_versions.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_merge_documents_as_versions.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_merge_documents_as_versions.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_merge_documents_as_versions.py:0: error: Skipping analyzing "auditlog.models": module is installed, but missing library stubs or py.typed marker [import-untyped] src/documents/tests/test_migration_saved_view_visibility.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tests/test_migration_saved_view_visibility.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/documents/tests/test_migration_saved_view_visibility.py:0: error: Incompatible types in assignment (expression has type "str", base class "TestMigrations" defined the type as "None") [assignment] -src/documents/tests/test_migration_saved_view_visibility.py:0: error: Incompatible types in assignment (expression has type "str", base class "TestMigrations" defined the type as "None") [assignment] -src/documents/tests/test_migration_saved_view_visibility.py:0: error: Incompatible types in assignment (expression has type "str", base class "TestMigrations" defined the type as "None") [assignment] -src/documents/tests/test_migration_saved_view_visibility.py:0: error: Incompatible types in assignment (expression has type "str", base class "TestMigrations" defined the type as "None") [assignment] src/documents/tests/test_migration_sha256_checksums.py:0: error: "_fixture_teardown" undefined in superclass [misc] -src/documents/tests/test_migration_sha256_checksums.py:0: error: Cannot determine type of "apps" [has-type] -src/documents/tests/test_migration_sha256_checksums.py:0: error: Cannot determine type of "apps" [has-type] -src/documents/tests/test_migration_sha256_checksums.py:0: error: Cannot determine type of "apps" [has-type] -src/documents/tests/test_migration_sha256_checksums.py:0: error: Cannot determine type of "apps" [has-type] -src/documents/tests/test_migration_sha256_checksums.py:0: error: Cannot determine type of "apps" [has-type] src/documents/tests/test_migration_sha256_checksums.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/documents/tests/test_migration_sha256_checksums.py:0: error: Incompatible types in assignment (expression has type "str", base class "TestMigrations" defined the type as "None") [assignment] -src/documents/tests/test_migration_sha256_checksums.py:0: error: Incompatible types in assignment (expression has type "str", base class "TestMigrations" defined the type as "None") [assignment] src/documents/tests/test_migration_share_link_bundle.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tests/test_migration_share_link_bundle.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/documents/tests/test_migration_share_link_bundle.py:0: error: Incompatible types in assignment (expression has type "str", base class "TestMigrations" defined the type as "None") [assignment] -src/documents/tests/test_migration_share_link_bundle.py:0: error: Incompatible types in assignment (expression has type "str", base class "TestMigrations" defined the type as "None") [assignment] -src/documents/tests/test_migration_share_link_bundle.py:0: error: Incompatible types in assignment (expression has type "str", base class "TestMigrations" defined the type as "None") [assignment] -src/documents/tests/test_migration_share_link_bundle.py:0: error: Incompatible types in assignment (expression has type "str", base class "TestMigrations" defined the type as "None") [assignment] src/documents/tests/test_models.py:0: error: Item "None" of "Document | None" has no attribute "correspondent" [union-attr] src/documents/tests/test_models.py:0: error: Item "None" of "Document | None" has no attribute "correspondent" [union-attr] src/documents/tests/test_parsers.py:0: error: "None" not callable [misc] src/documents/tests/test_parsers.py:0: error: "None" not callable [misc] src/documents/tests/test_parsers.py:0: error: "None" not callable [misc] +src/documents/tests/test_permission_filtering_security.py:0: error: Argument "classifier" to "match_correspondents" has incompatible type "None"; expected "DocumentClassifier" [arg-type] +src/documents/tests/test_permission_filtering_security.py:0: error: Argument "classifier" to "match_document_types" has incompatible type "None"; expected "DocumentClassifier" [arg-type] +src/documents/tests/test_permission_filtering_security.py:0: error: Argument "classifier" to "match_storage_paths" has incompatible type "None"; expected "DocumentClassifier" [arg-type] +src/documents/tests/test_permission_filtering_security.py:0: error: Argument "classifier" to "match_tags" has incompatible type "None"; expected "DocumentClassifier" [arg-type] +src/documents/tests/test_permission_filtering_security.py:0: error: Argument 1 to "permitted_document_ids" has incompatible type "AnonymousUser"; expected "User | None" [arg-type] +src/documents/tests/test_permission_filtering_security.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/documents/tests/test_permission_filtering_security.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/documents/tests/test_permission_filtering_security.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/documents/tests/test_permission_filtering_security.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/documents/tests/test_permission_filtering_security.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/documents/tests/test_permission_filtering_security.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/documents/tests/test_permission_filtering_security.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/documents/tests/test_permission_filtering_security.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/documents/tests/test_permission_filtering_security.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/documents/tests/test_permission_filtering_security.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/documents/tests/test_permission_filtering_security.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/documents/tests/test_permission_filtering_security.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/documents/tests/test_permission_filtering_security.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/documents/tests/test_permission_filtering_security.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/documents/tests/test_permission_filtering_security.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/documents/tests/test_permission_filtering_security.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/documents/tests/test_permission_filtering_security.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/documents/tests/test_permission_filtering_security.py:0: error: Function is missing a type annotation [no-untyped-def] +src/documents/tests/test_permission_filtering_security.py:0: error: Function is missing a type annotation [no-untyped-def] +src/documents/tests/test_permission_filtering_security.py:0: error: Function is missing a type annotation [no-untyped-def] +src/documents/tests/test_permission_filtering_security.py:0: error: Function is missing a type annotation [no-untyped-def] +src/documents/tests/test_permission_filtering_security.py:0: error: Function is missing a type annotation [no-untyped-def] +src/documents/tests/test_permission_filtering_security.py:0: error: Function is missing a type annotation [no-untyped-def] +src/documents/tests/test_permission_filtering_security.py:0: error: Function is missing a type annotation [no-untyped-def] +src/documents/tests/test_permission_filtering_security.py:0: error: Function is missing a type annotation [no-untyped-def] +src/documents/tests/test_permission_filtering_security.py:0: error: Function is missing a type annotation [no-untyped-def] +src/documents/tests/test_permission_filtering_security.py:0: error: Function is missing a type annotation [no-untyped-def] +src/documents/tests/test_permission_filtering_security.py:0: error: Function is missing a type annotation [no-untyped-def] +src/documents/tests/test_permission_filtering_security.py:0: error: Function is missing a type annotation [no-untyped-def] +src/documents/tests/test_permission_filtering_security.py:0: error: Function is missing a type annotation [no-untyped-def] +src/documents/tests/test_permission_filtering_security.py:0: error: Function is missing a type annotation [no-untyped-def] +src/documents/tests/test_permission_filtering_security.py:0: error: Function is missing a type annotation [no-untyped-def] +src/documents/tests/test_permission_filtering_security.py:0: error: Function is missing a type annotation [no-untyped-def] +src/documents/tests/test_permission_filtering_security.py:0: error: Function is missing a type annotation [no-untyped-def] +src/documents/tests/test_permission_filtering_security.py:0: error: Missing type arguments for generic type "dict" [type-arg] +src/documents/tests/test_permitted_objects_filter.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/documents/tests/test_permitted_objects_filter.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/documents/tests/test_permitted_objects_filter.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/documents/tests/test_permitted_objects_filter.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/documents/tests/test_permitted_objects_filter.py:0: error: Function is missing a return type annotation [no-untyped-def] src/documents/tests/test_regex.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tests/test_regex.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tests/test_regex.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tests/test_regex.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tests/test_regex.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tests/test_regex.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/documents/tests/test_regex.py:0: error: Library stubs not installed for "regex" [import-untyped] src/documents/tests/test_sanity_check.py:0: error: Argument 1 to "Path" has incompatible type "Path | None"; expected "str | PathLike[str]" [arg-type] src/documents/tests/test_sanity_check.py:0: error: Argument 1 to "Path" has incompatible type "Path | None"; expected "str | PathLike[str]" [arg-type] src/documents/tests/test_sanity_check.py:0: error: Argument 1 to "Path" has incompatible type "Path | None"; expected "str | PathLike[str]" [arg-type] @@ -1192,37 +1333,29 @@ src/documents/tests/test_share_link_bundles.py:0: error: "_MonkeyPatchedResponse src/documents/tests/test_share_link_bundles.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tests/test_share_link_bundles.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tests/test_share_link_bundles.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/documents/tests/test_share_link_bundles.py:0: error: Item "None" of "Path | None" has no attribute "resolve" [union-attr] +src/documents/tests/test_share_link_bundles.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tests/test_tag_hierarchy.py:0: error: Argument 1 to "run_workflows" has incompatible type "int"; expected "WorkflowTriggerType" [arg-type] src/documents/tests/test_tag_hierarchy.py:0: error: Argument 1 to "run_workflows" has incompatible type "int"; expected "WorkflowTriggerType" [arg-type] src/documents/tests/test_tag_hierarchy.py:0: error: Argument 2 to "get" of "APIClient" has incompatible type "dict[str, object]"; expected "Mapping[str, str | bytes | float | Iterable[str | bytes | float]] | Iterable[tuple[str, str | bytes | float | Iterable[str | bytes | float]]] | None" [arg-type] src/documents/tests/test_tag_hierarchy.py:0: error: Need type annotation for "context" (hint: "context: dict[, ] = ...") [var-annotated] -src/documents/tests/test_task_signals.py:0: error: "PaperlessTaskFactory" has no attribute "date_done" [attr-defined] -src/documents/tests/test_task_signals.py:0: error: "PaperlessTaskFactory" has no attribute "date_done" [attr-defined] -src/documents/tests/test_task_signals.py:0: error: "PaperlessTaskFactory" has no attribute "date_started" [attr-defined] -src/documents/tests/test_task_signals.py:0: error: "PaperlessTaskFactory" has no attribute "duration_seconds" [attr-defined] -src/documents/tests/test_task_signals.py:0: error: "PaperlessTaskFactory" has no attribute "refresh_from_db" [attr-defined] -src/documents/tests/test_task_signals.py:0: error: "PaperlessTaskFactory" has no attribute "refresh_from_db" [attr-defined] -src/documents/tests/test_task_signals.py:0: error: "PaperlessTaskFactory" has no attribute "refresh_from_db" [attr-defined] -src/documents/tests/test_task_signals.py:0: error: "PaperlessTaskFactory" has no attribute "refresh_from_db" [attr-defined] -src/documents/tests/test_task_signals.py:0: error: "PaperlessTaskFactory" has no attribute "refresh_from_db" [attr-defined] -src/documents/tests/test_task_signals.py:0: error: "PaperlessTaskFactory" has no attribute "wait_time_seconds" [attr-defined] src/documents/tests/test_task_signals.py:0: error: Function is missing a return type annotation [no-untyped-def] -src/documents/tests/test_task_signals.py:0: error: Function is missing a type annotation [no-untyped-def] +src/documents/tests/test_task_signals.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/documents/tests/test_task_signals.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_task_signals.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tests/test_task_signals.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tests/test_task_signals.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tests/test_task_signals.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tests/test_task_signals.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/documents/tests/test_task_signals.py:0: error: Incompatible return value type (got "PaperlessTaskFactory", expected "PaperlessTask") [return-value] src/documents/tests/test_task_signals.py:0: error: Missing type arguments for generic type "dict" [type-arg] src/documents/tests/test_task_signals.py:0: error: Missing type arguments for generic type "dict" [type-arg] src/documents/tests/test_task_signals.py:0: error: Missing type arguments for generic type "tuple" [type-arg] src/documents/tests/test_task_signals.py:0: error: Module "django.utils.timezone" does not explicitly export attribute "timedelta" [attr-defined] src/documents/tests/test_task_signals.py:0: error: Module "django.utils.timezone" does not explicitly export attribute "timedelta" [attr-defined] -src/documents/tests/test_task_signals.py:0: error: Unsupported right operand type for in ("None") [operator] -src/documents/tests/test_task_signals.py:0: error: Value of type "None" is not indexable [index] -src/documents/tests/test_task_signals.py:0: error: Value of type "None" is not indexable [index] -src/documents/tests/test_task_signals.py:0: error: Value of type "None" is not indexable [index] +src/documents/tests/test_task_signals.py:0: error: Unsupported right operand type for in ("Any | None") [operator] +src/documents/tests/test_task_signals.py:0: error: Value of type "Any | None" is not indexable [index] +src/documents/tests/test_task_signals.py:0: error: Value of type "Any | None" is not indexable [index] +src/documents/tests/test_task_signals.py:0: error: Value of type "Any | None" is not indexable [index] +src/documents/tests/test_tasks.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tests/test_tasks.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tests/test_tasks.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tests/test_tasks.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] @@ -1231,6 +1364,22 @@ src/documents/tests/test_tasks.py:0: error: Function is missing a type annotatio src/documents/tests/test_views.py:0: error: "_MonkeyPatchedWSGIResponse" has no attribute "render" [attr-defined] src/documents/tests/test_views.py:0: error: "_MonkeyPatchedWSGIResponse" has no attribute "render" [attr-defined] src/documents/tests/test_views.py:0: error: "_MonkeyPatchedWSGIResponse" has no attribute "url" [attr-defined] +src/documents/tests/test_views.py:0: error: Argument 1 to "read_streaming_response" has incompatible type "_MonkeyPatchedWSGIResponse"; expected "StreamingHttpResponse" [arg-type] +src/documents/tests/test_views.py:0: error: Argument 1 to "read_streaming_response" has incompatible type "_MonkeyPatchedWSGIResponse"; expected "StreamingHttpResponse" [arg-type] +src/documents/tests/test_views.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_views.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_views.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_views.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_views.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_views.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_views.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_views.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_views.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_views.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_views.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_views.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_views.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_views.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tests/test_views.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tests/test_views.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tests/test_views.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] @@ -1240,7 +1389,8 @@ src/documents/tests/test_views.py:0: error: Item "None" of "ApplicationConfigura src/documents/tests/test_views.py:0: error: Item "None" of "ApplicationConfiguration | None" has no attribute "app_logo" [union-attr] src/documents/tests/test_views.py:0: error: Item "None" of "ApplicationConfiguration | None" has no attribute "save" [union-attr] src/documents/tests/test_views.py:0: error: Item "None" of "SuggestionCacheData | None" has no attribute "suggestions" [union-attr] -src/documents/tests/test_views.py:0: error: Value of type "dict[str, Any] | None" is not indexable [index] +src/documents/tests/test_views.py:0: error: Item "None" of "SuggestionCacheData | None" has no attribute "suggestions" [union-attr] +src/documents/tests/test_views.py:0: error: Item "None" of "SuggestionCacheData | None" has no attribute "suggestions" [union-attr] src/documents/tests/test_views.py:0: error: Value of type "dict[str, Any] | None" is not indexable [index] src/documents/tests/test_views.py:0: error: Value of type "dict[str, Any] | None" is not indexable [index] src/documents/tests/test_views.py:0: error: Value of type "dict[str, Any] | None" is not indexable [index] @@ -1257,21 +1407,23 @@ src/documents/tests/test_workflows.py:0: error: Argument "files" to "__call__" o src/documents/tests/test_workflows.py:0: error: Argument "files" to "__call__" of "Task" has incompatible type "None"; expected "dict[Any, Any]" [arg-type] src/documents/tests/test_workflows.py:0: error: Argument "files" to "__call__" of "Task" has incompatible type "None"; expected "dict[Any, Any]" [arg-type] src/documents/tests/test_workflows.py:0: error: Argument "files" to "__call__" of "Task" has incompatible type "None"; expected "dict[Any, Any]" [arg-type] -src/documents/tests/test_workflows.py:0: error: Argument "original_file" to "ConsumableDocument" has incompatible type "Any | str"; expected "Path" [arg-type] -src/documents/tests/test_workflows.py:0: error: Argument "original_file" to "ConsumableDocument" has incompatible type "Any | str"; expected "Path" [arg-type] -src/documents/tests/test_workflows.py:0: error: Argument "original_file" to "ConsumableDocument" has incompatible type "Any | str"; expected "Path" [arg-type] -src/documents/tests/test_workflows.py:0: error: Argument "original_file" to "ConsumableDocument" has incompatible type "Any | str"; expected "Path" [arg-type] -src/documents/tests/test_workflows.py:0: error: Argument "original_file" to "ConsumableDocument" has incompatible type "Any | str"; expected "Path" [arg-type] -src/documents/tests/test_workflows.py:0: error: Argument "original_file" to "ConsumableDocument" has incompatible type "Any | str"; expected "Path" [arg-type] -src/documents/tests/test_workflows.py:0: error: Argument "original_file" to "ConsumableDocument" has incompatible type "Any | str"; expected "Path" [arg-type] -src/documents/tests/test_workflows.py:0: error: Argument "original_file" to "ConsumableDocument" has incompatible type "Any | str"; expected "Path" [arg-type] -src/documents/tests/test_workflows.py:0: error: Argument "original_file" to "ConsumableDocument" has incompatible type "Any | str"; expected "Path" [arg-type] -src/documents/tests/test_workflows.py:0: error: Argument "original_file" to "ConsumableDocument" has incompatible type "Any | str"; expected "Path" [arg-type] -src/documents/tests/test_workflows.py:0: error: Argument "original_file" to "ConsumableDocument" has incompatible type "Any | str"; expected "Path" [arg-type] -src/documents/tests/test_workflows.py:0: error: Argument "original_file" to "ConsumableDocument" has incompatible type "Any | str"; expected "Path" [arg-type] -src/documents/tests/test_workflows.py:0: error: Argument "original_file" to "ConsumableDocument" has incompatible type "Any | str"; expected "Path" [arg-type] -src/documents/tests/test_workflows.py:0: error: Argument "original_file" to "ConsumableDocument" has incompatible type "Any | str"; expected "Path" [arg-type] -src/documents/tests/test_workflows.py:0: error: Argument "original_file" to "ConsumableDocument" has incompatible type "Any | str"; expected "Path" [arg-type] +src/documents/tests/test_workflows.py:0: error: Argument "original_file" to "ConsumableDocument" has incompatible type "Path | str"; expected "Path" [arg-type] +src/documents/tests/test_workflows.py:0: error: Argument "original_file" to "ConsumableDocument" has incompatible type "Path | str"; expected "Path" [arg-type] +src/documents/tests/test_workflows.py:0: error: Argument "original_file" to "ConsumableDocument" has incompatible type "Path | str"; expected "Path" [arg-type] +src/documents/tests/test_workflows.py:0: error: Argument "original_file" to "ConsumableDocument" has incompatible type "Path | str"; expected "Path" [arg-type] +src/documents/tests/test_workflows.py:0: error: Argument "original_file" to "ConsumableDocument" has incompatible type "Path | str"; expected "Path" [arg-type] +src/documents/tests/test_workflows.py:0: error: Argument "original_file" to "ConsumableDocument" has incompatible type "Path | str"; expected "Path" [arg-type] +src/documents/tests/test_workflows.py:0: error: Argument "original_file" to "ConsumableDocument" has incompatible type "Path | str"; expected "Path" [arg-type] +src/documents/tests/test_workflows.py:0: error: Argument "original_file" to "ConsumableDocument" has incompatible type "Path | str"; expected "Path" [arg-type] +src/documents/tests/test_workflows.py:0: error: Argument "original_file" to "ConsumableDocument" has incompatible type "Path | str"; expected "Path" [arg-type] +src/documents/tests/test_workflows.py:0: error: Argument "original_file" to "ConsumableDocument" has incompatible type "Path | str"; expected "Path" [arg-type] +src/documents/tests/test_workflows.py:0: error: Argument "original_file" to "ConsumableDocument" has incompatible type "Path | str"; expected "Path" [arg-type] +src/documents/tests/test_workflows.py:0: error: Argument "original_file" to "ConsumableDocument" has incompatible type "Path | str"; expected "Path" [arg-type] +src/documents/tests/test_workflows.py:0: error: Argument "original_file" to "ConsumableDocument" has incompatible type "Path | str"; expected "Path" [arg-type] +src/documents/tests/test_workflows.py:0: error: Argument "original_file" to "ConsumableDocument" has incompatible type "Path | str"; expected "Path" [arg-type] +src/documents/tests/test_workflows.py:0: error: Argument "original_file" to "ConsumableDocument" has incompatible type "Path | str"; expected "Path" [arg-type] +src/documents/tests/test_workflows.py:0: error: Argument "original_file" to "ConsumableDocument" has incompatible type "Path | str"; expected "Path" [arg-type] +src/documents/tests/test_workflows.py:0: error: Argument "original_file" to "ConsumableDocument" has incompatible type "Path | str"; expected "Path" [arg-type] src/documents/tests/test_workflows.py:0: error: Argument "original_file" to "ConsumableDocument" has incompatible type "Path | str"; expected "Path" [arg-type] src/documents/tests/test_workflows.py:0: error: Argument 1 to "Path" has incompatible type "Any | None"; expected "str | PathLike[str]" [arg-type] src/documents/tests/test_workflows.py:0: error: Argument 1 to "list" has incompatible type "Group | dict[Any, Any]"; expected "Iterable[Any]" [arg-type] @@ -1283,6 +1435,8 @@ src/documents/tests/test_workflows.py:0: error: Argument 1 to "list" has incompa src/documents/tests/test_workflows.py:0: error: Argument 1 to "run_workflows" has incompatible type "int"; expected "WorkflowTriggerType" [arg-type] src/documents/tests/test_workflows.py:0: error: Argument 1 to "run_workflows" has incompatible type "int"; expected "WorkflowTriggerType" [arg-type] src/documents/tests/test_workflows.py:0: error: Argument 1 to "run_workflows" has incompatible type "int"; expected "WorkflowTriggerType" [arg-type] +src/documents/tests/test_workflows.py:0: error: Argument 1 to "run_workflows" has incompatible type "int"; expected "WorkflowTriggerType" [arg-type] +src/documents/tests/test_workflows.py:0: error: Argument 1 to "run_workflows" has incompatible type "int"; expected "WorkflowTriggerType" [arg-type] src/documents/tests/test_workflows.py:0: error: Argument 2 to "assertIn" of "TestCase" has incompatible type "str | None"; expected "Iterable[Any] | Container[Any]" [arg-type] src/documents/tests/test_workflows.py:0: error: Argument 2 to "assertIn" of "TestCase" has incompatible type "str | None"; expected "Iterable[Any] | Container[Any]" [arg-type] src/documents/tests/test_workflows.py:0: error: Argument 2 to "assertIn" of "TestCase" has incompatible type "str | None"; expected "Iterable[Any] | Container[Any]" [arg-type] @@ -1312,6 +1466,13 @@ src/documents/tests/test_workflows.py:0: error: Function is missing a type annot src/documents/tests/test_workflows.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tests/test_workflows.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tests/test_workflows.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_workflows.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_workflows.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_workflows.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_workflows.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_workflows.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_workflows.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_workflows.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tests/test_workflows.py:0: error: Incompatible types in assignment (expression has type "Any | list[str]", variable has type "QuerySet[Any, Any]") [assignment] src/documents/tests/test_workflows.py:0: error: Incompatible types in assignment (expression has type "Any | list[str]", variable has type "QuerySet[Any, Any]") [assignment] src/documents/tests/test_workflows.py:0: error: Incompatible types in assignment (expression has type "Group | dict[Any, Any]", variable has type "QuerySet[Any, Any]") [assignment] @@ -1322,13 +1483,20 @@ src/documents/tests/test_workflows.py:0: error: Incompatible types in assignment src/documents/tests/test_workflows.py:0: error: Incompatible types in assignment (expression has type "Group | dict[Any, Any]", variable has type "QuerySet[Any, Any]") [assignment] src/documents/tests/test_workflows.py:0: error: Incompatible types in assignment (expression has type "Group | dict[Any, Any]", variable has type "QuerySet[Any, Any]") [assignment] src/documents/tests/test_workflows.py:0: error: Incompatible types in assignment (expression has type "Group | dict[Any, Any]", variable has type "QuerySet[Any, Any]") [assignment] +src/documents/tests/test_workflows.py:0: error: Item "None" of "Correspondent | None" has no attribute "name" [union-attr] +src/documents/tests/test_workflows.py:0: error: Item "None" of "Correspondent | None" has no attribute "name" [union-attr] +src/documents/tests/test_workflows.py:0: error: Item "None" of "Correspondent | None" has no attribute "owner" [union-attr] +src/documents/tests/test_workflows.py:0: error: Item "None" of "DocumentType | None" has no attribute "name" [union-attr] +src/documents/tests/test_workflows.py:0: error: Item "None" of "DocumentType | None" has no attribute "name" [union-attr] +src/documents/tests/test_workflows.py:0: error: Item "None" of "DocumentType | None" has no attribute "name" [union-attr] +src/documents/tests/test_workflows.py:0: error: Item "None" of "DocumentType | None" has no attribute "owner" [union-attr] src/documents/tests/test_workflows.py:0: error: Item "None" of "Request | None" has no attribute "headers" [union-attr] src/documents/tests/test_workflows.py:0: error: Item "None" of "Request | None" has no attribute "headers" [union-attr] src/documents/tests/test_workflows.py:0: error: Item "None" of "Request | None" has no attribute "headers" [union-attr] src/documents/tests/test_workflows.py:0: error: Item "None" of "Request | None" has no attribute "headers" [union-attr] src/documents/tests/test_workflows.py:0: error: Item "None" of "Request | None" has no attribute "headers" [union-attr] src/documents/tests/test_workflows.py:0: error: Item "None" of "Request | None" has no attribute "url" [union-attr] -src/documents/tests/test_workflows.py:0: error: Item "str" of "Any | str" has no attribute "name" [union-attr] +src/documents/tests/test_workflows.py:0: error: Item "str" of "Path | str" has no attribute "name" [union-attr] src/documents/tests/test_workflows.py:0: error: Name "group_perms" already defined on line 0 [no-redef] src/documents/tests/test_workflows.py:0: error: Name "group_perms" already defined on line 0 [no-redef] src/documents/tests/test_workflows.py:0: error: Name "group_perms" already defined on line 0 [no-redef] @@ -1344,82 +1512,27 @@ src/documents/tests/test_workflows.py:0: error: Too few arguments for "count" of src/documents/tests/test_workflows.py:0: error: Too few arguments for "count" of "list" [call-arg] src/documents/tests/test_workflows.py:0: error: Too few arguments for "count" of "list" [call-arg] src/documents/tests/test_workflows.py:0: error: Too few arguments for "count" of "list" [call-arg] -src/documents/tests/utils.py:0: error: "FileSystemAssertsMixin" has no attribute "assertEqual"; maybe "assertFilesEqual"? [attr-defined] -src/documents/tests/utils.py:0: error: "FileSystemAssertsMixin" has no attribute "assertEqual"; maybe "assertFilesEqual"? [attr-defined] -src/documents/tests/utils.py:0: error: "FileSystemAssertsMixin" has no attribute "assertFalse"; maybe "assertIsFile"? [attr-defined] -src/documents/tests/utils.py:0: error: "FileSystemAssertsMixin" has no attribute "assertFalse"; maybe "assertIsFile"? [attr-defined] -src/documents/tests/utils.py:0: error: "FileSystemAssertsMixin" has no attribute "assertTrue" [attr-defined] -src/documents/tests/utils.py:0: error: "FileSystemAssertsMixin" has no attribute "assertTrue" [attr-defined] -src/documents/tests/utils.py:0: error: "FileSystemAssertsMixin" has no attribute "assertTrue" [attr-defined] src/documents/tests/utils.py:0: error: "GetConsumerMixin" has no attribute "dirs" [attr-defined] src/documents/tests/utils.py:0: error: "GetConsumerMixin" has no attribute "dirs" [attr-defined] src/documents/tests/utils.py:0: error: "GetConsumerMixin" has no attribute "dirs" [attr-defined] src/documents/tests/utils.py:0: error: "setUp" undefined in superclass [misc] -src/documents/tests/utils.py:0: error: "setUp" undefined in superclass [misc] -src/documents/tests/utils.py:0: error: "setUp" undefined in superclass [misc] src/documents/tests/utils.py:0: error: "tearDown" undefined in superclass [misc] -src/documents/tests/utils.py:0: error: "tearDown" undefined in superclass [misc] -src/documents/tests/utils.py:0: error: "tearDown" undefined in superclass [misc] -src/documents/tests/utils.py:0: error: "type[dirs@34]" has no attribute "archive_dir" [attr-defined] -src/documents/tests/utils.py:0: error: "type[dirs@34]" has no attribute "archive_dir" [attr-defined] -src/documents/tests/utils.py:0: error: "type[dirs@34]" has no attribute "archive_dir" [attr-defined] -src/documents/tests/utils.py:0: error: "type[dirs@34]" has no attribute "consumption_dir" [attr-defined] -src/documents/tests/utils.py:0: error: "type[dirs@34]" has no attribute "consumption_dir" [attr-defined] -src/documents/tests/utils.py:0: error: "type[dirs@34]" has no attribute "data_dir" [attr-defined] -src/documents/tests/utils.py:0: error: "type[dirs@34]" has no attribute "data_dir" [attr-defined] -src/documents/tests/utils.py:0: error: "type[dirs@34]" has no attribute "data_dir" [attr-defined] -src/documents/tests/utils.py:0: error: "type[dirs@34]" has no attribute "data_dir" [attr-defined] -src/documents/tests/utils.py:0: error: "type[dirs@34]" has no attribute "data_dir" [attr-defined] -src/documents/tests/utils.py:0: error: "type[dirs@34]" has no attribute "index_dir" [attr-defined] -src/documents/tests/utils.py:0: error: "type[dirs@34]" has no attribute "index_dir" [attr-defined] -src/documents/tests/utils.py:0: error: "type[dirs@34]" has no attribute "index_dir" [attr-defined] -src/documents/tests/utils.py:0: error: "type[dirs@34]" has no attribute "logging_dir" [attr-defined] -src/documents/tests/utils.py:0: error: "type[dirs@34]" has no attribute "logging_dir" [attr-defined] -src/documents/tests/utils.py:0: error: "type[dirs@34]" has no attribute "logging_dir" [attr-defined] -src/documents/tests/utils.py:0: error: "type[dirs@34]" has no attribute "media_dir" [attr-defined] -src/documents/tests/utils.py:0: error: "type[dirs@34]" has no attribute "media_dir" [attr-defined] -src/documents/tests/utils.py:0: error: "type[dirs@34]" has no attribute "media_dir" [attr-defined] -src/documents/tests/utils.py:0: error: "type[dirs@34]" has no attribute "media_dir" [attr-defined] -src/documents/tests/utils.py:0: error: "type[dirs@34]" has no attribute "media_dir" [attr-defined] -src/documents/tests/utils.py:0: error: "type[dirs@34]" has no attribute "media_dir" [attr-defined] -src/documents/tests/utils.py:0: error: "type[dirs@34]" has no attribute "originals_dir" [attr-defined] -src/documents/tests/utils.py:0: error: "type[dirs@34]" has no attribute "originals_dir" [attr-defined] -src/documents/tests/utils.py:0: error: "type[dirs@34]" has no attribute "originals_dir" [attr-defined] -src/documents/tests/utils.py:0: error: "type[dirs@34]" has no attribute "scratch_dir" [attr-defined] -src/documents/tests/utils.py:0: error: "type[dirs@34]" has no attribute "scratch_dir" [attr-defined] -src/documents/tests/utils.py:0: error: "type[dirs@34]" has no attribute "settings_override" [attr-defined] -src/documents/tests/utils.py:0: error: "type[dirs@34]" has no attribute "settings_override" [attr-defined] -src/documents/tests/utils.py:0: error: "type[dirs@34]" has no attribute "static_dir" [attr-defined] -src/documents/tests/utils.py:0: error: "type[dirs@34]" has no attribute "static_dir" [attr-defined] -src/documents/tests/utils.py:0: error: "type[dirs@34]" has no attribute "thumbnail_dir" [attr-defined] -src/documents/tests/utils.py:0: error: "type[dirs@34]" has no attribute "thumbnail_dir" [attr-defined] -src/documents/tests/utils.py:0: error: "type[dirs@34]" has no attribute "thumbnail_dir" [attr-defined] -src/documents/tests/utils.py:0: error: Cannot determine type of "apps" [has-type] -src/documents/tests/utils.py:0: error: First argument to namedtuple() should be "dirs", not "Dirs" [name-match] -src/documents/tests/utils.py:0: error: Function is missing a return type annotation [no-untyped-def] -src/documents/tests/utils.py:0: error: Function is missing a return type annotation [no-untyped-def] -src/documents/tests/utils.py:0: error: Function is missing a return type annotation [no-untyped-def] -src/documents/tests/utils.py:0: error: Function is missing a type annotation [no-untyped-def] -src/documents/tests/utils.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/documents/tests/utils.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/documents/tests/utils.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/documents/tests/utils.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/documents/tests/utils.py:0: error: Item "None" of "AppConfig | None" has no attribute "name" [union-attr] -src/documents/tests/utils.py:0: error: Missing type arguments for generic type "Callable" [type-arg] -src/documents/tests/utils.py:0: error: Missing type arguments for generic type "list" [type-arg] -src/documents/tests/utils.py:0: error: Missing type arguments for generic type "tuple" [type-arg] -src/documents/tests/utils.py:0: error: Need type annotation for "payloads" (hint: "payloads: list[] = ...") [var-annotated] +src/documents/tests/utils.py:0: error: Unused "type: ignore" comment [unused-ignore] +src/documents/tests/utils.py:0: error: Unused "type: ignore" comment [unused-ignore] +src/documents/tests/utils.py:0: error: Unused "type: ignore" comment [unused-ignore] src/documents/utils.py:0: error: Incompatible types in assignment (expression has type "None", variable has type "float | int") [assignment] src/documents/utils.py:0: error: Incompatible types in assignment (expression has type "float | int", variable has type "int | None") [assignment] src/documents/utils.py:0: error: Missing type arguments for generic type "CompletedProcess" [type-arg] src/documents/validators.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/versioning.py:0: error: Missing type arguments for generic type "Prefetch" [type-arg] src/documents/views.py:0: error: "BulkPermissionMixin" has no attribute "filter_queryset" [attr-defined] src/documents/views.py:0: error: "BulkPermissionMixin" has no attribute "get_queryset" [attr-defined] src/documents/views.py:0: error: "BulkPermissionMixin" has no attribute "queryset" [attr-defined] src/documents/views.py:0: error: "BulkPermissionMixin" has no attribute "queryset" [attr-defined] -src/documents/views.py:0: error: "BulkPermissionMixin" has no attribute "request" [attr-defined] +src/documents/views.py:0: error: "Sequence[_SupportsHasPermission]" has no attribute "append" [attr-defined] src/documents/views.py:0: error: "get_serializer_context" undefined in superclass [misc] src/documents/views.py:0: error: "object" has no attribute "apply_async" [attr-defined] +src/documents/views.py:0: error: "type[DocumentFilterSet]" has no attribute "declared_filters" [attr-defined] src/documents/views.py:0: error: "type[Model]" has no attribute "objects" [attr-defined] src/documents/views.py:0: error: Argument "filename" to "FileResponse" has incompatible type "str | Any | None"; expected "str" [arg-type] src/documents/views.py:0: error: Argument "path" to "EmailAttachment" has incompatible type "Path | None"; expected "Path" [arg-type] @@ -1427,16 +1540,18 @@ src/documents/views.py:0: error: Argument "user" to "_has_document_permissions" src/documents/views.py:0: error: Argument "user" to "_has_document_permissions" of "DocumentOperationPermissionMixin" has incompatible type "User | AnonymousUser"; expected "User" [arg-type] src/documents/views.py:0: error: Argument "user" to "_resolve_document_ids" of "DocumentSelectionMixin" has incompatible type "User | AnonymousUser"; expected "User" [arg-type] src/documents/views.py:0: error: Argument "user" to "_resolve_document_ids" of "DocumentSelectionMixin" has incompatible type "User | AnonymousUser"; expected "User" [arg-type] -src/documents/views.py:0: error: Argument 1 to "TaskSummarySerializer" has incompatible type "QuerySet[PaperlessTask@AnnotatedWith[TypedDict({'total_count': int, 'pending_count': int, 'success_count': int, 'failure_count': int, 'avg_duration_seconds': Any, 'avg_wait_time_seconds': Any, 'last_run': Any, 'last_success': Any, 'last_failure': Any})], dict[str, Any]]"; expected "dict[str, Any] | None" [arg-type] -src/documents/views.py:0: error: Argument 1 to "get_objects_for_user_owner_aware" has incompatible type "User | AnonymousUser"; expected "User | None" [arg-type] -src/documents/views.py:0: error: Argument 1 to "int" has incompatible type "Any | Collection[str]"; expected "str | Buffer | SupportsInt | SupportsIndex | SupportsTrunc" [arg-type] -src/documents/views.py:0: error: Argument 1 to "int" has incompatible type "Any | Collection[str]"; expected "str | Buffer | SupportsInt | SupportsIndex | SupportsTrunc" [arg-type] -src/documents/views.py:0: error: Argument 1 to "paginate_queryset" of "GenericAPIView" has incompatible type "TantivyRelevanceList"; expected "QuerySet[Any, Any]" [arg-type] +src/documents/views.py:0: error: Argument 1 to "TaskSummarySerializer" has incompatible type "QuerySet[PaperlessTask@AnnotatedWith[TypedDict({'total_count': int, 'pending_count': int, 'success_count': int, 'failure_count': int, 'avg_duration_seconds': Any, 'avg_wait_time_seconds': Any, 'last_run': Any, 'last_success': Any, 'last_failure': Any})], TypedDict({'task_type': str, 'total_count': Any, 'pending_count': Any, 'success_count': Any, 'failure_count': Any, 'avg_duration_seconds': Any, 'avg_wait_time_seconds': Any, 'last_run': Any, 'last_success': Any, 'last_failure': Any})]"; expected "dict[str, Any] | None" [arg-type] +src/documents/views.py:0: error: Argument 1 to "int" has incompatible type "Any | Collection[str]"; expected "str | Buffer | SupportsInt | SupportsIndex" [arg-type] +src/documents/views.py:0: error: Argument 1 to "int" has incompatible type "Any | Collection[str]"; expected "str | Buffer | SupportsInt | SupportsIndex" [arg-type] +src/documents/views.py:0: error: Argument 1 to "paginate_queryset" of "GenericAPIView" has incompatible type "TantivyRelevanceList"; expected "QuerySet[Any, _MT_co] | Sequence[_MT_co]" [arg-type] +src/documents/views.py:0: error: Argument 1 to "permitted_document_ids" has incompatible type "User | AnonymousUser"; expected "User | None" [arg-type] +src/documents/views.py:0: error: Argument 1 to "permitted_object_ids" has incompatible type "User | AnonymousUser"; expected "User | None" [arg-type] src/documents/views.py:0: error: Argument 2 to "match_correspondents" has incompatible type "DocumentClassifier | None"; expected "DocumentClassifier" [arg-type] src/documents/views.py:0: error: Argument 2 to "match_document_types" has incompatible type "DocumentClassifier | None"; expected "DocumentClassifier" [arg-type] src/documents/views.py:0: error: Argument 2 to "match_storage_paths" has incompatible type "DocumentClassifier | None"; expected "DocumentClassifier" [arg-type] src/documents/views.py:0: error: Argument 2 to "match_tags" has incompatible type "DocumentClassifier | None"; expected "DocumentClassifier" [arg-type] -src/documents/views.py:0: error: Argument 3 to "autocomplete" of "TantivyBackend" has incompatible type "User | AnonymousUser | None"; expected "AbstractBaseUser | None" [arg-type] +src/documents/views.py:0: error: Argument 3 to "autocomplete" of "TantivyBackend" has incompatible type "User | AnonymousUser | None"; expected "AbstractUser | None" [arg-type] +src/documents/views.py:0: error: Dict entry 0 has incompatible type "str": "bool"; expected "str": "str" [dict-item] src/documents/views.py:0: error: Function is missing a return type annotation [no-untyped-def] src/documents/views.py:0: error: Function is missing a return type annotation [no-untyped-def] src/documents/views.py:0: error: Function is missing a return type annotation [no-untyped-def] @@ -1452,6 +1567,15 @@ src/documents/views.py:0: error: Function is missing a return type annotation [ src/documents/views.py:0: error: Function is missing a return type annotation [no-untyped-def] src/documents/views.py:0: error: Function is missing a return type annotation [no-untyped-def] src/documents/views.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/documents/views.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/documents/views.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/documents/views.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/documents/views.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/documents/views.py:0: error: Function is missing a type annotation [no-untyped-def] +src/documents/views.py:0: error: Function is missing a type annotation [no-untyped-def] +src/documents/views.py:0: error: Function is missing a type annotation [no-untyped-def] +src/documents/views.py:0: error: Function is missing a type annotation [no-untyped-def] +src/documents/views.py:0: error: Function is missing a type annotation [no-untyped-def] src/documents/views.py:0: error: Function is missing a type annotation [no-untyped-def] src/documents/views.py:0: error: Function is missing a type annotation [no-untyped-def] src/documents/views.py:0: error: Function is missing a type annotation [no-untyped-def] @@ -1522,8 +1646,8 @@ src/documents/views.py:0: error: Function is missing a type annotation for one o src/documents/views.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/views.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/views.py:0: error: Incompatible types in assignment (expression has type "Any | None", variable has type "dict[Any, Any]") [assignment] -src/documents/views.py:0: error: Incompatible types in assignment (expression has type "QuerySet[Any, Any]", variable has type "list[Any]") [assignment] -src/documents/views.py:0: error: Incompatible types in assignment (expression has type "QuerySet[Any, Any]", variable has type "list[Document]") [assignment] +src/documents/views.py:0: error: Incompatible types in assignment (expression has type "ClassificationSuggestions", variable has type "dict[Any, Any]") [assignment] +src/documents/views.py:0: error: Incompatible types in assignment (expression has type "QuerySet[Document, Document]", variable has type "list[Any]") [assignment] src/documents/views.py:0: error: Incompatible types in assignment (expression has type "bool", target has type "dict[str, str]") [assignment] src/documents/views.py:0: error: Incompatible types in assignment (expression has type "bool", target has type "dict[str, str]") [assignment] src/documents/views.py:0: error: Incompatible types in assignment (expression has type "bool", target has type "dict[str, str]") [assignment] @@ -1535,7 +1659,7 @@ src/documents/views.py:0: error: Incompatible types in assignment (expression ha src/documents/views.py:0: error: Incompatible types in assignment (expression has type "str", target has type "dict[str, str]") [assignment] src/documents/views.py:0: error: Incompatible types in assignment (expression has type "str", target has type "dict[str, str]") [assignment] src/documents/views.py:0: error: Incompatible types in assignment (expression has type "str", target has type "dict[str, str]") [assignment] -src/documents/views.py:0: error: Incompatible types in assignment (expression has type "tuple[type[IsAuthenticated]]", variable has type "tuple[type[IsAuthenticated], type[PaperlessObjectPermissions]]") [assignment] +src/documents/views.py:0: error: Incompatible types in assignment (expression has type "tuple[type[IsAuthenticated], type[ViewDocumentsPermissions]]", variable has type "tuple[type[IsAuthenticated], type[PaperlessObjectPermissions]]") [assignment] src/documents/views.py:0: error: Incompatible types in assignment (expression has type "type[ArchiveOnlyStrategy]", variable has type "type[OriginalAndArchiveStrategy]") [assignment] src/documents/views.py:0: error: Incompatible types in assignment (expression has type "type[DocumentSerializer]", variable has type "type[TrashSerializer]") [assignment] src/documents/views.py:0: error: Incompatible types in assignment (expression has type "type[OriginalsOnlyStrategy]", variable has type "type[OriginalAndArchiveStrategy]") [assignment] @@ -1547,19 +1671,22 @@ src/documents/views.py:0: error: Item "None" of "Any | None" has no attribute "g src/documents/views.py:0: error: Item "None" of "ApplicationConfiguration | None" has no attribute "app_logo" [union-attr] src/documents/views.py:0: error: Item "None" of "BasePagination | None" has no attribute "get_page_size" [union-attr] src/documents/views.py:0: error: Item "None" of "BasePagination | None" has no attribute "page_size" [union-attr] -src/documents/views.py:0: error: Item "None" of "dict[str, _PingReply] | None" has no attribute "keys" [union-attr] src/documents/views.py:0: error: Missing positional argument "request" in call to "email_documents" [call-arg] src/documents/views.py:0: error: Missing type arguments for generic type "GenericViewSet" [type-arg] src/documents/views.py:0: error: Missing type arguments for generic type "list" [type-arg] +src/documents/views.py:0: error: Missing type arguments for generic type "list" [type-arg] +src/documents/views.py:0: error: Missing type arguments for generic type "list" [type-arg] +src/documents/views.py:0: error: Missing type arguments for generic type "list" [type-arg] src/documents/views.py:0: error: Need type annotation for "authentication_classes" (hint: "authentication_classes: list[] = ...") [var-annotated] src/documents/views.py:0: error: Need type annotation for "children_map" (hint: "children_map: dict[, ] = ...") [var-annotated] src/documents/views.py:0: error: Need type annotation for "doc" [var-annotated] +src/documents/views.py:0: error: Need type annotation for "doc" [var-annotated] src/documents/views.py:0: error: Need type annotation for "docs" (hint: "docs: list[] = ...") [var-annotated] src/documents/views.py:0: error: Need type annotation for "permission_classes" (hint: "permission_classes: list[] = ...") [var-annotated] src/documents/views.py:0: error: Need type annotation for "ui_settings" (hint: "ui_settings: dict[, ] = ...") [var-annotated] +src/documents/views.py:0: error: No overload variant of "prefetch_related" of "QuerySet" matches argument type "list[object]" [call-overload] src/documents/views.py:0: error: Skipping analyzing "auditlog.models": module is installed, but missing library stubs or py.typed marker [import-untyped] src/documents/views.py:0: error: Skipping analyzing "langdetect": module is installed, but missing library stubs or py.typed marker [import-untyped] -src/documents/views.py:0: error: TypedDict key must be a string literal; expected one of ("pk", "correspondent", "document_type", "storage_path", "tags", ...) [literal-required] src/documents/views.py:0: error: Unsupported operand types for + ("None" and "int") [operator] src/documents/views.py:0: error: Value of type "Iterable[Any]" is not indexable [index] src/documents/views.py:0: error: Value of type "Iterable[Any]" is not indexable [index] @@ -1572,7 +1699,6 @@ src/documents/views.py:0: error: Value of type "Iterable[CustomField]" is not in src/documents/views.py:0: error: Value of type "Iterable[Group]" is not indexable [index] src/documents/views.py:0: error: Value of type "Iterable[User]" is not indexable [index] src/documents/views.py:0: error: Value of type "Iterable[Workflow]" is not indexable [index] -src/documents/views.py:0: error: Value of type "dict[str, _PingReply] | None" is not indexable [index] src/documents/workflows/actions.py:0: error: Function is missing a return type annotation [no-untyped-def] src/documents/workflows/actions.py:0: error: Function is missing a type annotation [no-untyped-def] src/documents/workflows/actions.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] @@ -1613,6 +1739,8 @@ src/documents/workflows/actions.py:0: error: Item "None" of "WorkflowActionWebho src/documents/workflows/actions.py:0: error: Missing type arguments for generic type "dict" [type-arg] src/documents/workflows/actions.py:0: error: Missing type arguments for generic type "dict" [type-arg] src/documents/workflows/actions.py:0: error: Missing type arguments for generic type "dict" [type-arg] +src/documents/workflows/ai.py:0: error: "type[ObjT]" has no attribute "objects" [attr-defined] +src/documents/workflows/ai.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/workflows/mutations.py:0: error: "WorkflowAction" has no attribute "has_assign_change_groups"; maybe "assign_change_groups"? [attr-defined] src/documents/workflows/mutations.py:0: error: "WorkflowAction" has no attribute "has_assign_change_groups"; maybe "assign_change_groups"? [attr-defined] src/documents/workflows/mutations.py:0: error: "WorkflowAction" has no attribute "has_assign_change_users"; maybe "assign_change_users"? [attr-defined] @@ -1654,7 +1782,6 @@ src/documents/workflows/webhooks.py:0: error: Argument 1 to "post" of "Client" h src/documents/workflows/webhooks.py:0: error: Argument 1 to "post" of "Client" has incompatible type "**dict[str, str | dict[Any, Any] | None]"; expected "float | tuple[float | None, float | None, float | None, float | None] | Timeout | None | UseClientDefault" [arg-type] src/documents/workflows/webhooks.py:0: error: Argument 1 to "post" of "Client" has incompatible type "**dict[str, str | dict[Any, Any] | None]"; expected "tuple[str | bytes, str | bytes] | Callable[[Request], Request] | Auth | UseClientDefault" [arg-type] src/documents/workflows/webhooks.py:0: error: Function is missing a return type annotation [no-untyped-def] -src/documents/workflows/webhooks.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/workflows/webhooks.py:0: error: Missing type arguments for generic type "dict" [type-arg] src/documents/workflows/webhooks.py:0: error: Missing type arguments for generic type "dict" [type-arg] src/documents/workflows/webhooks.py:0: error: Missing type arguments for generic type "dict" [type-arg] @@ -1690,7 +1817,7 @@ src/paperless/auth.py:0: error: No return value expected [return-value] src/paperless/auth.py:0: error: Return type "None" of "__call__" incompatible with return type "HttpResponseBase | Awaitable[HttpResponseBase]" in supertype "django.contrib.auth.middleware.RemoteUserMiddleware" [override] src/paperless/auth.py:0: error: Skipping analyzing "allauth.mfa.adapter": module is installed, but missing library stubs or py.typed marker [import-untyped] src/paperless/celery.py:0: error: Argument 2 to "register" has incompatible type "Callable[[object], bytes]"; expected "Callable[[Any], str] | None" [arg-type] -src/paperless/celery.py:0: error: Argument 3 to "register" has incompatible type "Callable[[bytes], object]"; expected "Callable[[str], Any] | None" [arg-type] +src/paperless/celery.py:0: error: Argument 3 to "register" has incompatible type "Callable[[bytes], Any]"; expected "Callable[[str], Any] | None" [arg-type] src/paperless/celery.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/paperless/checks.py:0: error: Argument 1 to "append" of "list" has incompatible type "Error"; expected "Warning" [arg-type] src/paperless/checks.py:0: error: Argument 2 to "path_check" has incompatible type "Path | None"; expected "Path" [arg-type] @@ -1712,16 +1839,21 @@ src/paperless/config.py:0: error: Incompatible types in assignment (expression h src/paperless/config.py:0: error: Incompatible types in assignment (expression has type "str | None", variable has type "str") [assignment] src/paperless/config.py:0: error: Incompatible types in assignment (expression has type "str | None", variable has type "str") [assignment] src/paperless/config.py:0: error: Incompatible types in assignment (expression has type "str | None", variable has type "str") [assignment] +src/paperless/config.py:0: error: Incompatible types in assignment (expression has type "str | None", variable has type "str") [assignment] +src/paperless/config.py:0: error: Incompatible types in assignment (expression has type "str | None", variable has type "str") [assignment] +src/paperless/config.py:0: error: Incompatible types in assignment (expression has type "str | None", variable has type "str") [assignment] src/paperless/config.py:0: error: Incompatible types in assignment (expression has type "str", variable has type "ArchiveFileGenerationChoices") [assignment] src/paperless/config.py:0: error: Incompatible types in assignment (expression has type "str", variable has type "CleanChoices") [assignment] src/paperless/config.py:0: error: Incompatible types in assignment (expression has type "str", variable has type "ColorConvertChoices") [assignment] src/paperless/config.py:0: error: Incompatible types in assignment (expression has type "str", variable has type "ModeChoices") [assignment] src/paperless/config.py:0: error: Incompatible types in assignment (expression has type "str", variable has type "OutputTypeChoices") [assignment] +src/paperless/config.py:0: error: Incompatible types in assignment (expression has type "str", variable has type "RemoteOCRMode") [assignment] src/paperless/consumers.py:0: error: Argument 1 to "_can_view" of "StatusConsumer" has incompatible type "DocumentUpdatedData"; expected "PermissionsData" [arg-type] src/paperless/consumers.py:0: error: Argument 1 to "_can_view" of "StatusConsumer" has incompatible type "ProgressUpdateData"; expected "PermissionsData" [arg-type] src/paperless/consumers.py:0: error: Item "AbstractBaseUser" of "AbstractBaseUser | AnonymousUser" has no attribute "groups" [union-attr] src/paperless/consumers.py:0: error: Item "AbstractBaseUser" of "AbstractBaseUser | AnonymousUser" has no attribute "id" [union-attr] src/paperless/consumers.py:0: error: Item "AbstractBaseUser" of "AbstractBaseUser | AnonymousUser" has no attribute "is_superuser" [union-attr] +src/paperless/consumers.py:0: error: Missing type arguments for generic type "Task" [type-arg] src/paperless/consumers.py:0: error: Unsupported operand types for in ("Any | None" and "list[int]") [operator] src/paperless/db_cache.py:0: error: Function is missing a type annotation [no-untyped-def] src/paperless/db_cache.py:0: error: Function is missing a type annotation [no-untyped-def] @@ -1729,24 +1861,37 @@ src/paperless/db_cache.py:0: error: Skipping analyzing "cachalot.api": module is src/paperless/db_cache.py:0: error: Skipping analyzing "cachalot.utils": module is installed, but missing library stubs or py.typed marker [import-untyped] src/paperless/middleware.py:0: error: Function is missing a type annotation [no-untyped-def] src/paperless/middleware.py:0: error: Function is missing a type annotation [no-untyped-def] +src/paperless/middleware.py:0: error: Function is missing a type annotation [no-untyped-def] +src/paperless/middleware.py:0: error: Skipping analyzing "compression_middleware.middleware": module is installed, but missing library stubs or py.typed marker [import-untyped] src/paperless/middleware.py:0: error: Value of type "Collection[str]" is not indexable [index] src/paperless/migrations/0001_initial.py:0: error: Function is missing a type annotation [no-untyped-def] +src/paperless/migrations/0007_optimize_integer_field_sizes.py:0: error: Function is missing a type annotation [no-untyped-def] src/paperless/migrations/0008_replace_skip_archive_file.py:0: error: Function is missing a type annotation [no-untyped-def] +src/paperless/migrations/0016_alter_applicationconfiguration_ai_enabled.py:0: error: Function is missing a type annotation [no-untyped-def] src/paperless/models.py:0: error: Function is missing a type annotation [no-untyped-def] +src/paperless/network.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless/network.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless/network.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless/network.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/paperless/network.py:0: error: Incompatible return value type (got "list[str | int]", expected "list[str]") [return-value] +src/paperless/parsers/remote.py:0: error: Incompatible types in assignment (expression has type "BufferedWriter[_BufferedWriterStream]", variable has type "BufferedReader[_BufferedReaderStream]") [assignment] +src/paperless/parsers/remote.py:0: error: Missing type arguments for generic type "PipelineRequest" [type-arg] src/paperless/parsers/tesseract.py:0: error: Missing type arguments for generic type "dict" [type-arg] src/paperless/parsers/tesseract.py:0: error: Skipping analyzing "img2pdf": module is installed, but missing library stubs or py.typed marker [import-untyped] -src/paperless/parsers/utils.py:0: error: No overload variant of "get" of "Object" matches argument types "str", "bool" [call-overload] src/paperless/serialisers.py:0: error: "PasswordValidationMixin" has no attribute "instance" [attr-defined] -src/paperless/serialisers.py:0: error: "UploadedFile" has no attribute "field_name" [attr-defined] +src/paperless/serialisers.py:0: error: "UploadedFile[Any]" has no attribute "field_name" [attr-defined] src/paperless/serialisers.py:0: error: Function is missing a return type annotation [no-untyped-def] src/paperless/serialisers.py:0: error: Function is missing a type annotation [no-untyped-def] src/paperless/serialisers.py:0: error: Function is missing a type annotation [no-untyped-def] src/paperless/serialisers.py:0: error: Function is missing a type annotation [no-untyped-def] src/paperless/serialisers.py:0: error: Function is missing a type annotation [no-untyped-def] src/paperless/serialisers.py:0: error: Function is missing a type annotation [no-untyped-def] +src/paperless/serialisers.py:0: error: Function is missing a type annotation [no-untyped-def] +src/paperless/serialisers.py:0: error: Function is missing a type annotation [no-untyped-def] src/paperless/serialisers.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/paperless/serialisers.py:0: error: Item "None" of "str | None" has no attribute "replace" [union-attr] +src/paperless/serialisers.py:0: error: Missing type arguments for generic type "UploadedFile" [type-arg] +src/paperless/serialisers.py:0: error: Missing type arguments for generic type "UploadedFile" [type-arg] src/paperless/serialisers.py:0: error: Need type annotation for "auth_token" [var-annotated] src/paperless/serialisers.py:0: error: Signature of "run_validation" incompatible with supertype "rest_framework.fields.Field" [override] src/paperless/serialisers.py:0: error: Skipping analyzing "allauth.mfa.adapter": module is installed, but missing library stubs or py.typed marker [import-untyped] @@ -1760,11 +1905,9 @@ src/paperless/settings/__init__.py:0: error: Argument 1 to "parse_ignore_dates" src/paperless/settings/__init__.py:0: error: Function is missing a return type annotation [no-untyped-def] src/paperless/settings/__init__.py:0: error: Function is missing a return type annotation [no-untyped-def] src/paperless/settings/__init__.py:0: error: Function is missing a return type annotation [no-untyped-def] -src/paperless/settings/__init__.py:0: error: Function is missing a type annotation [no-untyped-def] src/paperless/settings/__init__.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/paperless/settings/__init__.py:0: error: Incompatible types in assignment (expression has type "bool", variable has type "str") [assignment] src/paperless/settings/__init__.py:0: error: Incompatible types in assignment (expression has type "dict[str, object]", target has type "str") [assignment] -src/paperless/settings/__init__.py:0: error: Skipping analyzing "compression_middleware.middleware": module is installed, but missing library stubs or py.typed marker [import-untyped] src/paperless/settings/custom.py:0: error: Missing type arguments for generic type "dict" [type-arg] src/paperless/settings/custom.py:0: error: No overload variant of "getenv" matches argument types "Collection[str]", "Collection[str]" [call-overload] src/paperless/settings/custom.py:0: error: Unpacked dict entry 0 has incompatible type "Collection[str]"; expected "SupportsKeysAndGetItem[str, dict[str, str]]" [dict-item] @@ -1774,6 +1917,7 @@ src/paperless/settings/parsers.py:0: error: Missing type arguments for generic t src/paperless/settings/parsers.py:0: error: Missing type arguments for generic type "dict" [type-arg] src/paperless/signals.py:0: error: Function is missing a type annotation [no-untyped-def] src/paperless/signals.py:0: error: Function is missing a type annotation [no-untyped-def] +src/paperless/signed_pickle.py:0: error: Item "None" of "str | None" has no attribute "encode" [union-attr] src/paperless/tests/parsers/conftest.py:0: error: Function is missing a type annotation [no-untyped-def] src/paperless/tests/parsers/conftest.py:0: error: Incompatible return value type (got "def _make_parser(**django_settings_overrides: Any) -> _GeneratorContextManager[Any, None, None]", expected "Callable[..., Generator[RasterisedDocumentParser, None, None]]") [return-value] src/paperless/tests/parsers/test_convert_image_to_pdfa.py:0: error: Skipping analyzing "img2pdf": module is installed, but missing library stubs or py.typed marker [import-untyped] @@ -1810,13 +1954,6 @@ src/paperless/tests/parsers/test_tesseract_parser.py:0: error: "Generator[Raster src/paperless/tests/parsers/test_tesseract_parser.py:0: error: "Generator[RasterisedDocumentParser, None, None]" has no attribute "__exit__"; maybe "__next__"? [attr-defined] src/paperless/tests/parsers/test_tesseract_parser.py:0: error: "Generator[RasterisedDocumentParser, None, None]" has no attribute "__exit__"; maybe "__next__"? [attr-defined] src/paperless/tests/parsers/test_tesseract_parser.py:0: error: "Generator[RasterisedDocumentParser, None, None]" has no attribute "__exit__"; maybe "__next__"? [attr-defined] -src/paperless/tests/parsers/test_tesseract_parser.py:0: error: Argument 1 to "assert_ordered_substrings" has incompatible type "str | None"; expected "str" [arg-type] -src/paperless/tests/parsers/test_tesseract_parser.py:0: error: Argument 1 to "assert_ordered_substrings" has incompatible type "str | None"; expected "str" [arg-type] -src/paperless/tests/parsers/test_tesseract_parser.py:0: error: Argument 1 to "assert_ordered_substrings" has incompatible type "str | None"; expected "str" [arg-type] -src/paperless/tests/parsers/test_tesseract_parser.py:0: error: Argument 1 to "assert_ordered_substrings" has incompatible type "str | None"; expected "str" [arg-type] -src/paperless/tests/parsers/test_tesseract_parser.py:0: error: Argument 1 to "assert_ordered_substrings" has incompatible type "str | None"; expected "str" [arg-type] -src/paperless/tests/parsers/test_tesseract_parser.py:0: error: Argument 1 to "assert_ordered_substrings" has incompatible type "str | None"; expected "str" [arg-type] -src/paperless/tests/parsers/test_tesseract_parser.py:0: error: Argument 1 to "assert_ordered_substrings" has incompatible type "str | None"; expected "str" [arg-type] src/paperless/tests/parsers/test_tesseract_parser.py:0: error: Argument 1 to "calculate_a4_dpi" of "RasterisedDocumentParser" has incompatible type "str"; expected "Path" [arg-type] src/paperless/tests/parsers/test_tesseract_parser.py:0: error: Argument 1 to "get_dpi" of "RasterisedDocumentParser" has incompatible type "str"; expected "Path" [arg-type] src/paperless/tests/parsers/test_tesseract_parser.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] @@ -1851,14 +1988,27 @@ src/paperless/tests/settings/test_environment_parsers.py:0: error: Function is m src/paperless/tests/settings/test_environment_parsers.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/paperless/tests/settings/test_environment_parsers.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/paperless/tests/settings/test_environment_parsers.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless/tests/settings/test_remote_user.py:0: error: Unsupported target for indexed assignment ("Collection[str]") [index] +src/paperless/tests/settings/test_settings.py:0: error: Function is missing a type annotation [no-untyped-def] +src/paperless/tests/settings/test_settings.py:0: error: Function is missing a type annotation [no-untyped-def] src/paperless/tests/test_adapter.py:0: error: Cannot assign to a method [method-assign] src/paperless/tests/test_adapter.py:0: error: Cannot assign to a method [method-assign] src/paperless/tests/test_adapter.py:0: error: Cannot assign to a method [method-assign] src/paperless/tests/test_adapter.py:0: error: Skipping analyzing "allauth.account.adapter": module is installed, but missing library stubs or py.typed marker [import-untyped] src/paperless/tests/test_adapter.py:0: error: Skipping analyzing "allauth.core": module is installed, but missing library stubs or py.typed marker [import-untyped] src/paperless/tests/test_adapter.py:0: error: Skipping analyzing "allauth.socialaccount.adapter": module is installed, but missing library stubs or py.typed marker [import-untyped] -src/paperless/tests/test_celery.py:0: error: Value of type "object" is not indexable [index] -src/paperless/tests/test_celery.py:0: error: Value of type "object" is not indexable [index] +src/paperless/tests/test_admin_auth.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/paperless/tests/test_admin_auth.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/paperless/tests/test_admin_auth.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/paperless/tests/test_admin_auth.py:0: error: Skipping analyzing "allauth.mfa": module is installed, but missing library stubs or py.typed marker [import-untyped] +src/paperless/tests/test_admin_auth.py:0: error: Skipping analyzing "allauth.mfa.totp.internal": module is installed, but missing library stubs or py.typed marker [import-untyped] +src/paperless/tests/test_api_auth.py:0: error: "Callable[..., Any]" has no attribute "view_class" [attr-defined] +src/paperless/tests/test_api_auth.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/paperless/tests/test_api_auth.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/paperless/tests/test_api_auth.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/paperless/tests/test_api_auth.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/paperless/tests/test_auth_middleware.py:0: error: Argument 1 to "AutoLoginMiddleware" has incompatible type "Callable[[Any], None]"; expected "_AnyGetResponseCallable" [arg-type] +src/paperless/tests/test_auth_middleware.py:0: error: Function is missing a type annotation [no-untyped-def] src/paperless/tests/test_checks.py:0: error: Generator has incompatible item type "str | None"; expected "str" [misc] src/paperless/tests/test_checks.py:0: error: Unsupported right operand type for in ("str | None") [operator] src/paperless/tests/test_checks.py:0: error: Unsupported right operand type for in ("str | None") [operator] @@ -1866,13 +2016,16 @@ src/paperless/tests/test_checks.py:0: error: Unsupported right operand type for src/paperless/tests/test_checks.py:0: error: Unsupported right operand type for in ("str | None") [operator] src/paperless/tests/test_checks.py:0: error: Unsupported right operand type for in ("str | None") [operator] src/paperless/tests/test_checks.py:0: error: Unsupported right operand type for in ("str | None") [operator] +src/paperless/tests/test_compression_middleware.py:0: error: Function is missing a return type annotation [no-untyped-def] src/paperless/tests/test_logging.py:0: error: Function is missing a return type annotation [no-untyped-def] src/paperless/tests/test_logging.py:0: error: Function is missing a return type annotation [no-untyped-def] -src/paperless/tests/test_migration_replace_skip_archive_file.py:0: error: Cannot determine type of "apps" [has-type] src/paperless/tests/test_migration_replace_skip_archive_file.py:0: error: Function is missing a type annotation [no-untyped-def] src/paperless/tests/test_migration_replace_skip_archive_file.py:0: error: Function is missing a type annotation [no-untyped-def] -src/paperless/tests/test_migration_replace_skip_archive_file.py:0: error: Incompatible types in assignment (expression has type "str", base class "TestMigrations" defined the type as "None") [assignment] -src/paperless/tests/test_migration_replace_skip_archive_file.py:0: error: Incompatible types in assignment (expression has type "str", base class "TestMigrations" defined the type as "None") [assignment] +src/paperless/tests/test_network.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/paperless/tests/test_network.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/paperless/tests/test_network.py:0: error: Function is missing a type annotation [no-untyped-def] +src/paperless/tests/test_network.py:0: error: Function is missing a type annotation [no-untyped-def] +src/paperless/tests/test_network.py:0: error: Function is missing a type annotation [no-untyped-def] src/paperless/tests/test_ocr_config.py:0: error: Function is missing a type annotation [no-untyped-def] src/paperless/tests/test_ocr_config.py:0: error: Function is missing a type annotation [no-untyped-def] src/paperless/tests/test_ocr_config.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] @@ -1903,6 +2056,8 @@ src/paperless/tests/test_registry.py:0: error: Function is missing a return type src/paperless/tests/test_registry.py:0: error: Function is missing a return type annotation [no-untyped-def] src/paperless/tests/test_registry.py:0: error: Function is missing a return type annotation [no-untyped-def] src/paperless/tests/test_registry.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/paperless/tests/test_registry.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/paperless/tests/test_registry.py:0: error: Function is missing a type annotation [no-untyped-def] src/paperless/tests/test_registry.py:0: error: Function is missing a type annotation [no-untyped-def] src/paperless/tests/test_registry.py:0: error: Function is missing a type annotation [no-untyped-def] src/paperless/tests/test_registry.py:0: error: Function is missing a type annotation [no-untyped-def] @@ -1917,18 +2072,30 @@ src/paperless/tests/test_registry.py:0: error: Function is missing a type annota src/paperless/tests/test_registry.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/paperless/tests/test_registry.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/paperless/tests/test_registry.py:0: error: Missing type arguments for generic type "list" [type-arg] +src/paperless/tests/test_remote_ocr_config.py:0: error: Function is missing a type annotation [no-untyped-def] +src/paperless/tests/test_remote_ocr_config.py:0: error: Function is missing a type annotation [no-untyped-def] +src/paperless/tests/test_remote_ocr_config.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless/tests/test_remote_ocr_config.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless/tests/test_remote_ocr_config.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless/tests/test_remote_ocr_config.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless/tests/test_remote_ocr_config.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless/tests/test_remote_ocr_config.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/paperless/tests/test_signals.py:0: error: Item "None" of "Any | None" has no attribute "get" [union-attr] src/paperless/tests/test_signals.py:0: error: Item "None" of "Any | None" has no attribute "get" [union-attr] src/paperless/tests/test_utils.py:0: error: Function is missing a type annotation [no-untyped-def] src/paperless/tests/test_views.py:0: error: "_MonkeyPatchedWSGIResponse" has no attribute "streaming_content" [attr-defined] src/paperless/urls.py:0: error: Argument 2 to "path" has incompatible type "_ASGIApplicationProtocol"; expected "Callable[..., HttpResponseBase]" [arg-type] +src/paperless/urls.py:0: error: Cannot assign to a method [method-assign] src/paperless/urls.py:0: error: Skipping analyzing "allauth.account": module is installed, but missing library stubs or py.typed marker [import-untyped] +src/paperless/urls.py:0: error: Skipping analyzing "allauth.account.decorators": module is installed, but missing library stubs or py.typed marker [import-untyped] src/paperless/urls.py:0: error: Skipping analyzing "allauth.mfa.base": module is installed, but missing library stubs or py.typed marker [import-untyped] src/paperless/urls.py:0: error: Skipping analyzing "allauth.socialaccount": module is installed, but missing library stubs or py.typed marker [import-untyped] src/paperless/urls.py:0: error: Skipping analyzing "allauth.urls": module is installed, but missing library stubs or py.typed marker [import-untyped] src/paperless/validators.py:0: error: Argument 1 to "join" of "str" has incompatible type "Iterator[str | bytes] | Any"; expected "Iterable[str]" [arg-type] src/paperless/validators.py:0: error: Incompatible types in assignment (expression has type "str | bytes", variable has type "str") [assignment] -src/paperless/views.py:0: error: Argument 1 to "int" has incompatible type "Any | Collection[str]"; expected "str | Buffer | SupportsInt | SupportsIndex | SupportsTrunc" [arg-type] +src/paperless/validators.py:0: error: Missing type arguments for generic type "UploadedFile" [type-arg] +src/paperless/validators.py:0: error: Missing type arguments for generic type "UploadedFile" [type-arg] +src/paperless/views.py:0: error: Argument 1 to "int" has incompatible type "Any | Collection[str]"; expected "str | Buffer | SupportsInt | SupportsIndex" [arg-type] src/paperless/views.py:0: error: Function is missing a return type annotation [no-untyped-def] src/paperless/views.py:0: error: Function is missing a return type annotation [no-untyped-def] src/paperless/views.py:0: error: Function is missing a type annotation [no-untyped-def] @@ -1947,12 +2114,16 @@ src/paperless/views.py:0: error: Function is missing a type annotation [no-unty src/paperless/views.py:0: error: Function is missing a type annotation [no-untyped-def] src/paperless/views.py:0: error: Function is missing a type annotation [no-untyped-def] src/paperless/views.py:0: error: Function is missing a type annotation [no-untyped-def] +src/paperless/views.py:0: error: Function is missing a type annotation [no-untyped-def] src/paperless/views.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/paperless/views.py:0: error: Incompatible type for "user" of "Token" (got "User | AnonymousUser", expected "User | Combinable") [misc] src/paperless/views.py:0: error: Incompatible type for lookup 'user': (got "User | AnonymousUser", expected "User | int | None") [misc] src/paperless/views.py:0: error: Item "AnonymousUser" of "User | AnonymousUser" has no attribute "socialaccount_set" [union-attr] -src/paperless/views.py:0: error: Item "None" of "ApplicationConfiguration | None" has no attribute "ai_enabled" [union-attr] +src/paperless/views.py:0: error: Item "None" of "ApplicationConfiguration | None" has no attribute "llm_context_size" [union-attr] src/paperless/views.py:0: error: Item "None" of "ApplicationConfiguration | None" has no attribute "llm_embedding_backend" [union-attr] +src/paperless/views.py:0: error: Item "None" of "ApplicationConfiguration | None" has no attribute "llm_embedding_chunk_size" [union-attr] +src/paperless/views.py:0: error: Item "None" of "ApplicationConfiguration | None" has no attribute "llm_embedding_endpoint" [union-attr] +src/paperless/views.py:0: error: Item "None" of "ApplicationConfiguration | None" has no attribute "llm_embedding_model" [union-attr] src/paperless/views.py:0: error: Item "None" of "Page[Any] | None" has no attribute "paginator" [union-attr] src/paperless/views.py:0: error: Item "None" of "Page[Any] | None" has no attribute "paginator" [union-attr] src/paperless/views.py:0: error: Item "None" of "Page[Any] | None" has no attribute "paginator" [union-attr] @@ -1969,18 +2140,34 @@ src/paperless/views.py:0: error: Skipping analyzing "allauth.mfa.recovery_codes. src/paperless/views.py:0: error: Skipping analyzing "allauth.mfa.totp.internal": module is installed, but missing library stubs or py.typed marker [import-untyped] src/paperless/views.py:0: error: Skipping analyzing "allauth.socialaccount.adapter": module is installed, but missing library stubs or py.typed marker [import-untyped] src/paperless/views.py:0: error: Skipping analyzing "allauth.socialaccount.models": module is installed, but missing library stubs or py.typed marker [import-untyped] -src/paperless_ai/ai_classifier.py:0: error: Argument 1 to "parse_ai_response" has incompatible type "str"; expected "dict[Any, Any]" [arg-type] +src/paperless_ai/ai_classifier.py:0: error: Argument 1 to "parse_ai_response" has incompatible type "ClassificationSuggestions"; expected "dict[Any, Any]" [arg-type] +src/paperless_ai/ai_classifier.py:0: error: Argument 1 to "parse_ai_response" has incompatible type "ClassificationSuggestions"; expected "dict[Any, Any]" [arg-type] +src/paperless_ai/ai_classifier.py:0: error: Incompatible types in assignment (expression has type "Any | None", variable has type "str") [assignment] src/paperless_ai/ai_classifier.py:0: error: Missing type arguments for generic type "dict" [type-arg] src/paperless_ai/ai_classifier.py:0: error: Missing type arguments for generic type "dict" [type-arg] +src/paperless_ai/ai_classifier.py:0: error: TypedDict key must be a string literal; expected one of ("correspondents", "dates", "document_types", "storage_paths", "tags", ...) [literal-required] +src/paperless_ai/ai_classifier.py:0: error: TypedDict key must be a string literal; expected one of ("correspondents", "dates", "document_types", "storage_paths", "tags", ...) [literal-required] +src/paperless_ai/ai_classifier.py:0: error: TypedDict key must be a string literal; expected one of ("correspondents", "dates", "document_types", "storage_paths", "tags", ...) [literal-required] +src/paperless_ai/base_model.py:0: error: Invalid index type "str | None" for "dict[str, FieldInfo]"; expected type "str" [index] +src/paperless_ai/chat.py:0: error: Dict entry 1 has incompatible type "str": "str | Any | None"; expected "str": "int | str" [dict-item] +src/paperless_ai/chat.py:0: error: Function is missing a return type annotation [no-untyped-def] src/paperless_ai/chat.py:0: error: Function is missing a return type annotation [no-untyped-def] src/paperless_ai/chat.py:0: error: Item "AsyncGenerator[str, None]" of "Any | Generator[str, None, None] | AsyncGenerator[str, None]" has no attribute "__iter__" (not iterable) [union-attr] src/paperless_ai/chat.py:0: error: Item "Response" of "Response | StreamingResponse | AsyncStreamingResponse | PydanticResponse" has no attribute "response_gen" [union-attr] -src/paperless_ai/client.py:0: error: Incompatible return value type (got "dict[str, Any]", expected "str") [return-value] +src/paperless_ai/chat.py:0: error: Missing type arguments for generic type "list" [type-arg] src/paperless_ai/client.py:0: error: Incompatible types in assignment (expression has type "str | None", variable has type "str") [assignment] -src/paperless_ai/indexing.py:0: error: Argument "persist_dir" to "from_defaults" of "StorageContext" has incompatible type "Path"; expected "str | None" [arg-type] -src/paperless_ai/indexing.py:0: error: Argument 1 to "from_persist_dir" of "FaissVectorStore" has incompatible type "Path"; expected "str" [arg-type] -src/paperless_ai/indexing.py:0: error: Argument 1 to "from_persist_dir" of "SimpleDocumentStore" has incompatible type "Path"; expected "str" [arg-type] -src/paperless_ai/indexing.py:0: error: Argument 1 to "from_persist_dir" of "SimpleIndexStore" has incompatible type "Path"; expected "str" [arg-type] +src/paperless_ai/client.py:0: error: Skipping analyzing "llama_index.llms.ollama": module is installed, but missing library stubs or py.typed marker [import-untyped] +src/paperless_ai/client.py:0: error: Skipping analyzing "llama_index.llms.openai_like": module is installed, but missing library stubs or py.typed marker [import-untyped] +src/paperless_ai/db.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/paperless_ai/embedding.py:0: error: No overload variant of "get" of "dict" matches argument type "str" [call-overload] +src/paperless_ai/embedding.py:0: error: Skipping analyzing "llama_index.embeddings.huggingface": module is installed, but missing library stubs or py.typed marker [import-untyped] +src/paperless_ai/embedding.py:0: error: Skipping analyzing "llama_index.embeddings.ollama": module is installed, but missing library stubs or py.typed marker [import-untyped] +src/paperless_ai/embedding.py:0: error: Skipping analyzing "llama_index.embeddings.openai_like": module is installed, but missing library stubs or py.typed marker [import-untyped] +src/paperless_ai/indexing.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/paperless_ai/indexing.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/paperless_ai/indexing.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/paperless_ai/indexing.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/paperless_ai/indexing.py:0: error: Function is missing a return type annotation [no-untyped-def] src/paperless_ai/indexing.py:0: error: Function is missing a return type annotation [no-untyped-def] src/paperless_ai/indexing.py:0: error: Function is missing a return type annotation [no-untyped-def] src/paperless_ai/indexing.py:0: error: Function is missing a return type annotation [no-untyped-def] @@ -1988,12 +2175,25 @@ src/paperless_ai/indexing.py:0: error: Function is missing a return type annotat src/paperless_ai/indexing.py:0: error: Function is missing a type annotation [no-untyped-def] src/paperless_ai/indexing.py:0: error: Function is missing a type annotation [no-untyped-def] src/paperless_ai/indexing.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/paperless_ai/indexing.py:0: error: Skipping analyzing "faiss": module is installed, but missing library stubs or py.typed marker [import-untyped] -src/paperless_ai/matching.py:0: error: Function is missing a return type annotation [no-untyped-def] -src/paperless_ai/matching.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_ai/indexing.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_ai/indexing.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_ai/matching.py:0: error: "type[ModelT]" has no attribute "objects" [attr-defined] +src/paperless_ai/matching.py:0: error: "type[ModelT]" has no attribute "objects" [attr-defined] src/paperless_ai/matching.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/paperless_ai/matching.py:0: error: Missing type arguments for generic type "list" [type-arg] -src/paperless_ai/tests/conftest.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/paperless_ai/taxonomy.py:0: error: "object" has no attribute "__iter__"; maybe "__dir__" or "__str__"? (not iterable) [attr-defined] +src/paperless_ai/taxonomy.py:0: error: "type[Model]" has no attribute "objects" [attr-defined] +src/paperless_ai/tests/conftest.py:0: error: Incompatible return value type (got "FakeEmbedding", expected "MagicMock | AsyncMock | NonCallableMagicMock") [return-value] +src/paperless_ai/tests/test_ai_classifier.py:0: error: Argument "candidates" to "build_prompt_without_rag" has incompatible type "dict[str, list[Any]]"; expected "TaxonomyCandidates | None" [arg-type] +src/paperless_ai/tests/test_ai_classifier.py:0: error: Argument "candidates" to "build_prompt_without_rag" has incompatible type "dict[str, list[dict[str, object]]]"; expected "TaxonomyCandidates | None" [arg-type] +src/paperless_ai/tests/test_ai_classifier.py:0: error: Argument 1 to "build_localization_prompt" has incompatible type "dict[str, Collection[str]]"; expected "ClassificationSuggestions" [arg-type] +src/paperless_ai/tests/test_ai_classifier.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/paperless_ai/tests/test_ai_classifier.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/paperless_ai/tests/test_ai_classifier.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/paperless_ai/tests/test_ai_classifier.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/paperless_ai/tests/test_ai_classifier.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/paperless_ai/tests/test_ai_classifier.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/paperless_ai/tests/test_ai_classifier.py:0: error: Function is missing a return type annotation [no-untyped-def] src/paperless_ai/tests/test_ai_classifier.py:0: error: Function is missing a return type annotation [no-untyped-def] src/paperless_ai/tests/test_ai_classifier.py:0: error: Function is missing a return type annotation [no-untyped-def] src/paperless_ai/tests/test_ai_classifier.py:0: error: Function is missing a type annotation [no-untyped-def] @@ -2003,25 +2203,34 @@ src/paperless_ai/tests/test_ai_classifier.py:0: error: Function is missing a typ src/paperless_ai/tests/test_ai_classifier.py:0: error: Function is missing a type annotation [no-untyped-def] src/paperless_ai/tests/test_ai_classifier.py:0: error: Function is missing a type annotation [no-untyped-def] src/paperless_ai/tests/test_ai_classifier.py:0: error: Function is missing a type annotation [no-untyped-def] -src/paperless_ai/tests/test_ai_indexing.py:0: error: Function is missing a return type annotation [no-untyped-def] -src/paperless_ai/tests/test_ai_indexing.py:0: error: Function is missing a type annotation [no-untyped-def] -src/paperless_ai/tests/test_ai_indexing.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/paperless_ai/tests/test_ai_indexing.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/paperless_ai/tests/test_ai_indexing.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/paperless_ai/tests/test_ai_indexing.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/paperless_ai/tests/test_ai_indexing.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/paperless_ai/tests/test_ai_indexing.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/paperless_ai/tests/test_ai_indexing.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/paperless_ai/tests/test_ai_indexing.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/paperless_ai/tests/test_ai_indexing.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/paperless_ai/tests/test_ai_indexing.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/paperless_ai/tests/test_ai_indexing.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/paperless_ai/tests/test_ai_indexing.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/paperless_ai/tests/test_ai_indexing.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/paperless_ai/tests/test_ai_indexing.py:0: error: Return type "list[float]" of "_aget_query_embedding" incompatible with return type "Coroutine[Any, Any, list[float]]" in supertype "llama_index.core.base.embeddings.base.BaseEmbedding" [override] -src/paperless_ai/tests/test_chat.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/paperless_ai/tests/test_ai_classifier.py:0: error: Function is missing a type annotation [no-untyped-def] +src/paperless_ai/tests/test_ai_classifier.py:0: error: Function is missing a type annotation [no-untyped-def] +src/paperless_ai/tests/test_ai_classifier.py:0: error: Need type annotation for "empty_candidates" [var-annotated] +src/paperless_ai/tests/test_base_model.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/paperless_ai/tests/test_base_model.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/paperless_ai/tests/test_base_model.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/paperless_ai/tests/test_base_model.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/paperless_ai/tests/test_base_model.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/paperless_ai/tests/test_base_model.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/paperless_ai/tests/test_base_model.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/paperless_ai/tests/test_base_model.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/paperless_ai/tests/test_base_model.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/paperless_ai/tests/test_base_model.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/paperless_ai/tests/test_base_model.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/paperless_ai/tests/test_base_model.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/paperless_ai/tests/test_base_model.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/paperless_ai/tests/test_base_model.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/paperless_ai/tests/test_base_model.py:0: error: Function is missing a return type annotation [no-untyped-def] src/paperless_ai/tests/test_chat.py:0: error: Function is missing a return type annotation [no-untyped-def] src/paperless_ai/tests/test_chat.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/paperless_ai/tests/test_chat.py:0: error: Function is missing a type annotation [no-untyped-def] +src/paperless_ai/tests/test_chat.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_ai/tests/test_chat.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_ai/tests/test_chat.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_ai/tests/test_chat.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_ai/tests/test_chat.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_ai/tests/test_chat.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_ai/tests/test_chat.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/paperless_ai/tests/test_chat.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/paperless_ai/tests/test_chat.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/paperless_ai/tests/test_client.py:0: error: Function is missing a return type annotation [no-untyped-def] @@ -2033,7 +2242,14 @@ src/paperless_ai/tests/test_client.py:0: error: Function is missing a type annot src/paperless_ai/tests/test_client.py:0: error: Function is missing a type annotation [no-untyped-def] src/paperless_ai/tests/test_client.py:0: error: Function is missing a type annotation [no-untyped-def] src/paperless_ai/tests/test_client.py:0: error: Function is missing a type annotation [no-untyped-def] -src/paperless_ai/tests/test_client.py:0: error: Invalid index type "str" for "str"; expected type "SupportsIndex | slice[SupportsIndex | None, SupportsIndex | None, SupportsIndex | None]" [index] +src/paperless_ai/tests/test_client.py:0: error: Function is missing a type annotation [no-untyped-def] +src/paperless_ai/tests/test_client.py:0: error: Function is missing a type annotation [no-untyped-def] +src/paperless_ai/tests/test_client.py:0: error: Function is missing a type annotation [no-untyped-def] +src/paperless_ai/tests/test_client.py:0: error: Function is missing a type annotation [no-untyped-def] +src/paperless_ai/tests/test_client.py:0: error: Function is missing a type annotation [no-untyped-def] +src/paperless_ai/tests/test_client.py:0: error: Function is missing a type annotation [no-untyped-def] +src/paperless_ai/tests/test_embedding.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/paperless_ai/tests/test_embedding.py:0: error: Function is missing a return type annotation [no-untyped-def] src/paperless_ai/tests/test_embedding.py:0: error: Function is missing a return type annotation [no-untyped-def] src/paperless_ai/tests/test_embedding.py:0: error: Function is missing a return type annotation [no-untyped-def] src/paperless_ai/tests/test_embedding.py:0: error: Function is missing a type annotation [no-untyped-def] @@ -2045,25 +2261,75 @@ src/paperless_ai/tests/test_embedding.py:0: error: Function is missing a type an src/paperless_ai/tests/test_embedding.py:0: error: Function is missing a type annotation [no-untyped-def] src/paperless_ai/tests/test_embedding.py:0: error: Function is missing a type annotation [no-untyped-def] src/paperless_ai/tests/test_embedding.py:0: error: Function is missing a type annotation [no-untyped-def] -src/paperless_ai/tests/test_matching.py:0: error: Argument "user" to "match_correspondents_by_name" has incompatible type "None"; expected "User" [arg-type] -src/paperless_ai/tests/test_matching.py:0: error: Argument "user" to "match_document_types_by_name" has incompatible type "None"; expected "User" [arg-type] -src/paperless_ai/tests/test_matching.py:0: error: Argument "user" to "match_storage_paths_by_name" has incompatible type "None"; expected "User" [arg-type] -src/paperless_ai/tests/test_matching.py:0: error: Argument "user" to "match_tags_by_name" has incompatible type "None"; expected "User" [arg-type] -src/paperless_ai/tests/test_matching.py:0: error: Argument "user" to "match_tags_by_name" has incompatible type "None"; expected "User" [arg-type] -src/paperless_ai/tests/test_matching.py:0: error: Argument "user" to "match_tags_by_name" has incompatible type "None"; expected "User" [arg-type] +src/paperless_ai/tests/test_embedding.py:0: error: Function is missing a type annotation [no-untyped-def] +src/paperless_ai/tests/test_embedding.py:0: error: Function is missing a type annotation [no-untyped-def] +src/paperless_ai/tests/test_embedding.py:0: error: Function is missing a type annotation [no-untyped-def] +src/paperless_ai/tests/test_embedding.py:0: error: Function is missing a type annotation [no-untyped-def] +src/paperless_ai/tests/test_embedding.py:0: error: Function is missing a type annotation [no-untyped-def] src/paperless_ai/tests/test_matching.py:0: error: Argument 1 to "match_tags_by_name" has incompatible type "list[str | None]"; expected "list[str]" [arg-type] -src/paperless_ai/tests/test_matching.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/paperless_ai/tests/test_matching.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/paperless_ai/tests/test_matching.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/paperless_ai/tests/test_matching.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/paperless_ai/tests/test_matching.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/paperless_ai/tests/test_matching.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_ai/tests/test_matching.py:0: error: Missing type arguments for generic type "DjangoModelFactory" [type-arg] +src/paperless_ai/tests/test_matching.py:0: error: Missing type arguments for generic type "list" [type-arg] +src/paperless_ai/tests/test_vector_store.py:0: error: Argument 2 to "_query" has incompatible type "list[float] | None"; expected "list[float]" [arg-type] +src/paperless_ai/tests/test_vector_store.py:0: error: Argument 2 to "make_node" has incompatible type "str"; expected "int" [arg-type] +src/paperless_ai/tests/test_vector_store.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/paperless_ai/tests/test_vector_store.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/paperless_ai/tests/test_vector_store.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/paperless_ai/tests/test_vector_store.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/paperless_ai/tests/test_vector_store.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/paperless_ai/tests/test_vector_store.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_ai/tests/test_vector_store.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_ai/tests/test_vector_store.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_ai/tests/test_vector_store.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_ai/tests/test_vector_store.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_ai/tests/test_vector_store.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_ai/tests/test_vector_store.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_ai/tests/test_vector_store.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_ai/tests/test_vector_store.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_ai/tests/test_vector_store.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_ai/tests/test_vector_store.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_ai/tests/test_vector_store.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_ai/tests/test_vector_store.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_ai/tests/test_vector_store.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_ai/tests/test_vector_store.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_ai/tests/test_vector_store.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_ai/tests/test_vector_store.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_ai/tests/test_vector_store.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_ai/tests/test_vector_store.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_ai/tests/test_vector_store.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_ai/tests/test_vector_store.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_ai/tests/test_vector_store.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_ai/tests/test_vector_store.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_ai/tests/test_vector_store.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_ai/tests/test_vector_store.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_ai/tests/test_vector_store.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_ai/tests/test_vector_store.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_ai/tests/test_vector_store.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_ai/tests/test_vector_store.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_ai/tests/test_vector_store.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_ai/tests/test_vector_store.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_ai/tests/test_vector_store.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_ai/tests/test_vector_store.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_ai/tests/test_vector_store.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_ai/tests/test_vector_store.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_ai/tests/test_vector_store.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_ai/tests/test_vector_store.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_ai/tests/test_vector_store.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_ai/tests/test_vector_store.py:0: error: Skipping analyzing "sqlite_vec": module is installed, but missing library stubs or py.typed marker [import-untyped] +src/paperless_ai/vector_store.py:0: error: Argument 1 to "int" has incompatible type "int | float | str | list[str] | list[float] | list[int] | None"; expected "str | Buffer | SupportsInt | SupportsIndex" [arg-type] +src/paperless_ai/vector_store.py:0: error: Argument 1 to "int" has incompatible type "int | float | str | list[str] | list[float] | list[int] | None"; expected "str | Buffer | SupportsInt | SupportsIndex" [arg-type] +src/paperless_ai/vector_store.py:0: error: Argument 1 to "int" has incompatible type "str | Any | None"; expected "str | Buffer | SupportsInt | SupportsIndex" [arg-type] +src/paperless_ai/vector_store.py:0: error: Skipping analyzing "sqlite_vec": module is installed, but missing library stubs or py.typed marker [import-untyped] +src/paperless_ai/vector_store.py:0: error: Unexpected keyword argument "flat_metadata" for "__init__" of "BasePydanticVectorStore" [call-arg] src/paperless_mail/admin.py:0: error: Missing type arguments for generic type "ModelAdmin" [type-arg] src/paperless_mail/admin.py:0: error: Missing type arguments for generic type "ModelForm" [type-arg] src/paperless_mail/mail.py:0: error: "Message[str, str]" has no attribute "_headers"; maybe "add_header"? [attr-defined] src/paperless_mail/mail.py:0: error: "Message[str, str]" has no attribute "_headers"; maybe "add_header"? [attr-defined] src/paperless_mail/mail.py:0: error: "Message[str, str]" has no attribute "_headers"; maybe "add_header"? [attr-defined] src/paperless_mail/mail.py:0: error: "Message[str, str]" has no attribute "_headers"; maybe "add_header"? [attr-defined] +src/paperless_mail/mail.py:0: error: "PinnedClientMixin" has no attribute "_host" [attr-defined] +src/paperless_mail/mail.py:0: error: "PinnedClientMixin" has no attribute "_port" [attr-defined] +src/paperless_mail/mail.py:0: error: "PinnedClientMixin" has no attribute "_timeout" [attr-defined] +src/paperless_mail/mail.py:0: error: "_create_socket" undefined in superclass [misc] src/paperless_mail/mail.py:0: error: Argument "original_file" to "ConsumableDocument" has incompatible type "str"; expected "Path" [arg-type] src/paperless_mail/mail.py:0: error: Argument 1 to "TagMailAction" has incompatible type "str | None"; expected "str" [arg-type] src/paperless_mail/mail.py:0: error: Argument 2 to "AND" has incompatible type "**dict[str, date]"; expected "Header | list[Header] | None" [arg-type] @@ -2089,6 +2355,8 @@ src/paperless_mail/mail.py:0: error: Function is missing a return type annotatio src/paperless_mail/mail.py:0: error: Function is missing a return type annotation [no-untyped-def] src/paperless_mail/mail.py:0: error: Function is missing a return type annotation [no-untyped-def] src/paperless_mail/mail.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/paperless_mail/mail.py:0: error: Function is missing a type annotation [no-untyped-def] +src/paperless_mail/mail.py:0: error: Function is missing a type annotation [no-untyped-def] src/paperless_mail/mail.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/paperless_mail/mail.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/paperless_mail/mail.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] @@ -2096,11 +2364,13 @@ src/paperless_mail/mail.py:0: error: Function is missing a type annotation for o src/paperless_mail/mail.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/paperless_mail/mail.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/paperless_mail/mail.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/paperless_mail/mail.py:0: error: Incompatible return value type (got "MailBoxUnencrypted", expected "MailBox") [return-value] -src/paperless_mail/mail.py:0: error: Incompatible type for "uid" of "ProcessedMail" (got "str | None", expected "str | int | Combinable") [misc] -src/paperless_mail/mail.py:0: error: Incompatible types in assignment (expression has type "MailBox", variable has type "MailBoxUnencrypted") [assignment] -src/paperless_mail/mail.py:0: error: Incompatible types in assignment (expression has type "MailBoxStartTls", variable has type "MailBoxUnencrypted") [assignment] +src/paperless_mail/mail.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_mail/mail.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_mail/mail.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_mail/mail.py:0: error: Incompatible return value type (got "PinnedMailBoxUnencrypted", expected "MailBox") [return-value] src/paperless_mail/mail.py:0: error: Incompatible types in assignment (expression has type "None", variable has type "str") [assignment] +src/paperless_mail/mail.py:0: error: Incompatible types in assignment (expression has type "PinnedMailBox", variable has type "PinnedMailBoxUnencrypted") [assignment] +src/paperless_mail/mail.py:0: error: Incompatible types in assignment (expression has type "PinnedMailBoxStartTls", variable has type "PinnedMailBoxUnencrypted") [assignment] src/paperless_mail/mail.py:0: error: Incompatible types in assignment (expression has type "str", target has type "date") [assignment] src/paperless_mail/mail.py:0: error: Incompatible types in assignment (expression has type "str", target has type "date") [assignment] src/paperless_mail/mail.py:0: error: Incompatible types in assignment (expression has type "str", target has type "date") [assignment] @@ -2108,6 +2378,8 @@ src/paperless_mail/mail.py:0: error: Incompatible types in assignment (expressio src/paperless_mail/mail.py:0: error: Missing type arguments for generic type "dict" [type-arg] src/paperless_mail/mail.py:0: error: Missing type arguments for generic type "list" [type-arg] src/paperless_mail/management/commands/mail_fetcher.py:0: error: Function is missing a type annotation [no-untyped-def] +src/paperless_mail/migrations/0002_optimize_integer_field_sizes.py:0: error: Function is missing a type annotation [no-untyped-def] +src/paperless_mail/migrations/0002_optimize_integer_field_sizes.py:0: error: Function is missing a type annotation [no-untyped-def] src/paperless_mail/models.py:0: error: Function is missing a type annotation [no-untyped-def] src/paperless_mail/models.py:0: error: Function is missing a type annotation [no-untyped-def] src/paperless_mail/oauth.py:0: error: Argument "refresh_token" to "refresh_token" of "BaseOAuth2" has incompatible type "str | None"; expected "str" [arg-type] @@ -2131,105 +2403,78 @@ src/paperless_mail/serialisers.py:0: error: Function is missing a type annotatio src/paperless_mail/serialisers.py:0: error: Function is missing a type annotation [no-untyped-def] src/paperless_mail/serialisers.py:0: error: Function is missing a type annotation [no-untyped-def] src/paperless_mail/serialisers.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/paperless_mail/tests/conftest.py:0: error: "MailAccountFactory" has no attribute "delete" [attr-defined] -src/paperless_mail/tests/conftest.py:0: error: Incompatible types in "yield" (actual type "MailAccountFactory", expected type "MailAccount") [misc] -src/paperless_mail/tests/test_api.py:0: error: "CorrespondentFactory" has no attribute "pk" [attr-defined] -src/paperless_mail/tests/test_api.py:0: error: "DocumentTypeFactory" has no attribute "pk" [attr-defined] -src/paperless_mail/tests/test_api.py:0: error: "MailAccountFactory" has no attribute "pk" [attr-defined] -src/paperless_mail/tests/test_api.py:0: error: "MailAccountFactory" has no attribute "pk" [attr-defined] -src/paperless_mail/tests/test_api.py:0: error: "MailAccountFactory" has no attribute "pk" [attr-defined] -src/paperless_mail/tests/test_api.py:0: error: "MailAccountFactory" has no attribute "pk" [attr-defined] -src/paperless_mail/tests/test_api.py:0: error: "MailAccountFactory" has no attribute "pk" [attr-defined] -src/paperless_mail/tests/test_api.py:0: error: "MailAccountFactory" has no attribute "pk" [attr-defined] -src/paperless_mail/tests/test_api.py:0: error: "MailAccountFactory" has no attribute "pk" [attr-defined] -src/paperless_mail/tests/test_api.py:0: error: "MailAccountFactory" has no attribute "pk" [attr-defined] -src/paperless_mail/tests/test_api.py:0: error: "MailAccountFactory" has no attribute "pk" [attr-defined] -src/paperless_mail/tests/test_api.py:0: error: "MailAccountFactory" has no attribute "pk" [attr-defined] -src/paperless_mail/tests/test_api.py:0: error: "MailAccountFactory" has no attribute "pk" [attr-defined] -src/paperless_mail/tests/test_api.py:0: error: "MailAccountFactory" has no attribute "pk" [attr-defined] -src/paperless_mail/tests/test_api.py:0: error: "MailAccountFactory" has no attribute "pk" [attr-defined] -src/paperless_mail/tests/test_api.py:0: error: "MailRuleFactory" has no attribute "filter_attachment_filename_include" [attr-defined] -src/paperless_mail/tests/test_api.py:0: error: "MailRuleFactory" has no attribute "filter_body" [attr-defined] -src/paperless_mail/tests/test_api.py:0: error: "MailRuleFactory" has no attribute "filter_from" [attr-defined] -src/paperless_mail/tests/test_api.py:0: error: "MailRuleFactory" has no attribute "filter_subject" [attr-defined] -src/paperless_mail/tests/test_api.py:0: error: "MailRuleFactory" has no attribute "filter_to" [attr-defined] -src/paperless_mail/tests/test_api.py:0: error: "MailRuleFactory" has no attribute "pk" [attr-defined] -src/paperless_mail/tests/test_api.py:0: error: "MailRuleFactory" has no attribute "pk" [attr-defined] -src/paperless_mail/tests/test_api.py:0: error: "MailRuleFactory" has no attribute "pk" [attr-defined] -src/paperless_mail/tests/test_api.py:0: error: "MailRuleFactory" has no attribute "pk" [attr-defined] -src/paperless_mail/tests/test_api.py:0: error: "MailRuleFactory" has no attribute "pk" [attr-defined] -src/paperless_mail/tests/test_api.py:0: error: "MailRuleFactory" has no attribute "refresh_from_db" [attr-defined] -src/paperless_mail/tests/test_api.py:0: error: "ProcessedMailFactory" has no attribute "id"; maybe "uid"? [attr-defined] -src/paperless_mail/tests/test_api.py:0: error: "ProcessedMailFactory" has no attribute "id"; maybe "uid"? [attr-defined] -src/paperless_mail/tests/test_api.py:0: error: "ProcessedMailFactory" has no attribute "id"; maybe "uid"? [attr-defined] -src/paperless_mail/tests/test_api.py:0: error: "ProcessedMailFactory" has no attribute "id"; maybe "uid"? [attr-defined] -src/paperless_mail/tests/test_api.py:0: error: "ProcessedMailFactory" has no attribute "id"; maybe "uid"? [attr-defined] -src/paperless_mail/tests/test_api.py:0: error: "ProcessedMailFactory" has no attribute "id"; maybe "uid"? [attr-defined] -src/paperless_mail/tests/test_api.py:0: error: "ProcessedMailFactory" has no attribute "id"; maybe "uid"? [attr-defined] -src/paperless_mail/tests/test_api.py:0: error: "ProcessedMailFactory" has no attribute "id"; maybe "uid"? [attr-defined] -src/paperless_mail/tests/test_api.py:0: error: "ProcessedMailFactory" has no attribute "id"; maybe "uid"? [attr-defined] -src/paperless_mail/tests/test_api.py:0: error: "ProcessedMailFactory" has no attribute "id"; maybe "uid"? [attr-defined] -src/paperless_mail/tests/test_api.py:0: error: "TagFactory" has no attribute "pk" [attr-defined] -src/paperless_mail/tests/test_api.py:0: error: Argument 3 to "assign_perm" has incompatible type "MailAccountFactory"; expected "Model | None" [arg-type] -src/paperless_mail/tests/test_api.py:0: error: Argument 3 to "assign_perm" has incompatible type "MailAccountFactory"; expected "Model | None" [arg-type] -src/paperless_mail/tests/test_api.py:0: error: Argument 3 to "assign_perm" has incompatible type "MailRuleFactory"; expected "Model | None" [arg-type] -src/paperless_mail/tests/test_api.py:0: error: Argument 3 to "assign_perm" has incompatible type "ProcessedMailFactory"; expected "Model | None" [arg-type] -src/paperless_mail/tests/test_api.py:0: error: Argument 3 to "assign_perm" has incompatible type "ProcessedMailFactory"; expected "Model | None" [arg-type] +src/paperless_mail/tasks.py:0: error: Missing type arguments for generic type "Task" [type-arg] +src/paperless_mail/tests/helpers.py:0: error: "MailMessage" has no attribute "flagged" [attr-defined] +src/paperless_mail/tests/helpers.py:0: error: "MailMessage" has no attribute "seen" [attr-defined] +src/paperless_mail/tests/helpers.py:0: error: Argument 1 to "MailboxFolderSelectError" has incompatible type "None"; expected "tuple[Any, ...]" [arg-type] +src/paperless_mail/tests/helpers.py:0: error: Argument 1 to "MailboxLoginError" has incompatible type "str"; expected "tuple[Any, ...]" [arg-type] +src/paperless_mail/tests/helpers.py:0: error: Argument 1 to "MailboxLoginError" has incompatible type "str"; expected "tuple[Any, ...]" [arg-type] +src/paperless_mail/tests/helpers.py:0: error: Argument 1 to "MailboxLoginError" has incompatible type "str"; expected "tuple[Any, ...]" [arg-type] +src/paperless_mail/tests/helpers.py:0: error: Argument 1 to "MailboxLoginError" has incompatible type "str"; expected "tuple[Any, ...]" [arg-type] +src/paperless_mail/tests/helpers.py:0: error: Argument 1 to "filter" has incompatible type "Callable[[Any], bool]"; expected "Callable[[MailMessage], TypeGuard[Never]]" [arg-type] +src/paperless_mail/tests/helpers.py:0: error: Argument 1 to "filter" has incompatible type "Callable[[Any], bool]"; expected "Callable[[MailMessage], TypeGuard[Never]]" [arg-type] +src/paperless_mail/tests/helpers.py:0: error: Function is missing a type annotation [no-untyped-def] +src/paperless_mail/tests/helpers.py:0: error: Function is missing a type annotation [no-untyped-def] +src/paperless_mail/tests/helpers.py:0: error: Function is missing a type annotation [no-untyped-def] +src/paperless_mail/tests/helpers.py:0: error: Function is missing a type annotation [no-untyped-def] +src/paperless_mail/tests/helpers.py:0: error: Function is missing a type annotation [no-untyped-def] +src/paperless_mail/tests/helpers.py:0: error: Function is missing a type annotation [no-untyped-def] +src/paperless_mail/tests/helpers.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_mail/tests/helpers.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_mail/tests/helpers.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_mail/tests/helpers.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_mail/tests/helpers.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_mail/tests/helpers.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_mail/tests/helpers.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_mail/tests/helpers.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_mail/tests/helpers.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_mail/tests/helpers.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_mail/tests/helpers.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_mail/tests/helpers.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_mail/tests/helpers.py:0: error: Incompatible types in assignment (expression has type "filter[MailMessage]", variable has type "list[MailMessage]") [assignment] +src/paperless_mail/tests/helpers.py:0: error: Incompatible types in assignment (expression has type "filter[MailMessage]", variable has type "list[MailMessage]") [assignment] +src/paperless_mail/tests/helpers.py:0: error: Incompatible types in assignment (expression has type "filter[MailMessage]", variable has type "list[MailMessage]") [assignment] +src/paperless_mail/tests/helpers.py:0: error: Incompatible types in assignment (expression has type "filter[MailMessage]", variable has type "list[MailMessage]") [assignment] +src/paperless_mail/tests/helpers.py:0: error: Incompatible types in assignment (expression has type "filter[MailMessage]", variable has type "list[MailMessage]") [assignment] +src/paperless_mail/tests/helpers.py:0: error: Incompatible types in assignment (expression has type "filter[MailMessage]", variable has type "list[MailMessage]") [assignment] +src/paperless_mail/tests/helpers.py:0: error: Incompatible types in assignment (expression has type "filter[MailMessage]", variable has type "list[MailMessage]") [assignment] +src/paperless_mail/tests/helpers.py:0: error: Incompatible types in assignment (expression has type "filter[Never]", variable has type "list[MailMessage]") [assignment] +src/paperless_mail/tests/helpers.py:0: error: Incompatible types in assignment (expression has type "filter[Never]", variable has type "list[MailMessage]") [assignment] +src/paperless_mail/tests/helpers.py:0: error: Missing type arguments for generic type "AbstractContextManager" [type-arg] src/paperless_mail/tests/test_mail.py:0: error: "BogusFolderManager" has no attribute "list" [attr-defined] src/paperless_mail/tests/test_mail.py:0: error: "BogusFolderManager" has no attribute "list" [attr-defined] src/paperless_mail/tests/test_mail.py:0: error: "BogusFolderManager" has no attribute "list" [attr-defined] src/paperless_mail/tests/test_mail.py:0: error: "BogusFolderManager" has no attribute "list" [attr-defined] -src/paperless_mail/tests/test_mail.py:0: error: "CorrespondentFactory" has no attribute "id" [attr-defined] -src/paperless_mail/tests/test_mail.py:0: error: "CorrespondentFactory" has no attribute "id" [attr-defined] -src/paperless_mail/tests/test_mail.py:0: error: "MailAccountFactory" has no attribute "pk" [attr-defined] -src/paperless_mail/tests/test_mail.py:0: error: "MailAccountFactory" has no attribute "pk" [attr-defined] -src/paperless_mail/tests/test_mail.py:0: error: "MailMessage" has no attribute "flagged" [attr-defined] -src/paperless_mail/tests/test_mail.py:0: error: "MailMessage" has no attribute "flagged" [attr-defined] src/paperless_mail/tests/test_mail.py:0: error: "MailMessage" has no attribute "seen" [attr-defined] -src/paperless_mail/tests/test_mail.py:0: error: "MailMessage" has no attribute "seen" [attr-defined] -src/paperless_mail/tests/test_mail.py:0: error: "MailRuleFactory" has no attribute "action_parameter" [attr-defined] -src/paperless_mail/tests/test_mail.py:0: error: "MailRuleFactory" has no attribute "pk" [attr-defined] -src/paperless_mail/tests/test_mail.py:0: error: "MailRuleFactory" has no attribute "pk" [attr-defined] -src/paperless_mail/tests/test_mail.py:0: error: "type[att@486]" has no attribute "filename" [attr-defined] -src/paperless_mail/tests/test_mail.py:0: error: "type[message2@432]" has no attribute "from_" [attr-defined] -src/paperless_mail/tests/test_mail.py:0: error: "type[message2@432]" has no attribute "from_" [attr-defined] -src/paperless_mail/tests/test_mail.py:0: error: "type[message2@432]" has no attribute "from_values" [attr-defined] -src/paperless_mail/tests/test_mail.py:0: error: "type[message@425]" has no attribute "from_" [attr-defined] -src/paperless_mail/tests/test_mail.py:0: error: "type[message@425]" has no attribute "from_values" [attr-defined] -src/paperless_mail/tests/test_mail.py:0: error: "type[message@484]" has no attribute "subject" [attr-defined] -src/paperless_mail/tests/test_mail.py:0: error: "type[message@537]" has no attribute "attachments" [attr-defined] +src/paperless_mail/tests/test_mail.py:0: error: "type[att]" has no attribute "filename" [attr-defined] +src/paperless_mail/tests/test_mail.py:0: error: "type[message2]" has no attribute "from_" [attr-defined] +src/paperless_mail/tests/test_mail.py:0: error: "type[message2]" has no attribute "from_" [attr-defined] +src/paperless_mail/tests/test_mail.py:0: error: "type[message2]" has no attribute "from_values" [attr-defined] +src/paperless_mail/tests/test_mail.py:0: error: "type[message]" has no attribute "from_" [attr-defined] +src/paperless_mail/tests/test_mail.py:0: error: "type[message]" has no attribute "from_values" [attr-defined] +src/paperless_mail/tests/test_mail.py:0: error: "type[message]" has no attribute "subject" [attr-defined] src/paperless_mail/tests/test_mail.py:0: error: Argument 1 to "MailboxFolderSelectError" has incompatible type "None"; expected "tuple[Any, ...]" [arg-type] -src/paperless_mail/tests/test_mail.py:0: error: Argument 1 to "MailboxFolderSelectError" has incompatible type "None"; expected "tuple[Any, ...]" [arg-type] -src/paperless_mail/tests/test_mail.py:0: error: Argument 1 to "MailboxLoginError" has incompatible type "str"; expected "tuple[Any, ...]" [arg-type] -src/paperless_mail/tests/test_mail.py:0: error: Argument 1 to "MailboxLoginError" has incompatible type "str"; expected "tuple[Any, ...]" [arg-type] -src/paperless_mail/tests/test_mail.py:0: error: Argument 1 to "MailboxLoginError" has incompatible type "str"; expected "tuple[Any, ...]" [arg-type] -src/paperless_mail/tests/test_mail.py:0: error: Argument 1 to "MailboxLoginError" has incompatible type "str"; expected "tuple[Any, ...]" [arg-type] -src/paperless_mail/tests/test_mail.py:0: error: Argument 1 to "_get_correspondent" of "MailAccountHandler" has incompatible type "type[message2@432]"; expected "MailMessage" [arg-type] -src/paperless_mail/tests/test_mail.py:0: error: Argument 1 to "_get_correspondent" of "MailAccountHandler" has incompatible type "type[message2@432]"; expected "MailMessage" [arg-type] -src/paperless_mail/tests/test_mail.py:0: error: Argument 1 to "_get_correspondent" of "MailAccountHandler" has incompatible type "type[message@425]"; expected "MailMessage" [arg-type] -src/paperless_mail/tests/test_mail.py:0: error: Argument 1 to "_get_correspondent" of "MailAccountHandler" has incompatible type "type[message@425]"; expected "MailMessage" [arg-type] -src/paperless_mail/tests/test_mail.py:0: error: Argument 1 to "_get_correspondent" of "MailAccountHandler" has incompatible type "type[message@425]"; expected "MailMessage" [arg-type] -src/paperless_mail/tests/test_mail.py:0: error: Argument 1 to "_get_correspondent" of "MailAccountHandler" has incompatible type "type[message@425]"; expected "MailMessage" [arg-type] -src/paperless_mail/tests/test_mail.py:0: error: Argument 1 to "_get_title" of "MailAccountHandler" has incompatible type "type[message@484]"; expected "MailMessage" [arg-type] -src/paperless_mail/tests/test_mail.py:0: error: Argument 1 to "_get_title" of "MailAccountHandler" has incompatible type "type[message@484]"; expected "MailMessage" [arg-type] -src/paperless_mail/tests/test_mail.py:0: error: Argument 1 to "_get_title" of "MailAccountHandler" has incompatible type "type[message@484]"; expected "MailMessage" [arg-type] -src/paperless_mail/tests/test_mail.py:0: error: Argument 1 to "filter" has incompatible type "Callable[[Any], bool]"; expected "Callable[[MailMessage], TypeGuard[Never]]" [arg-type] -src/paperless_mail/tests/test_mail.py:0: error: Argument 1 to "filter" has incompatible type "Callable[[Any], bool]"; expected "Callable[[MailMessage], TypeGuard[Never]]" [arg-type] -src/paperless_mail/tests/test_mail.py:0: error: Argument 2 to "_get_title" of "MailAccountHandler" has incompatible type "type[att@486]"; expected "MailAttachment" [arg-type] -src/paperless_mail/tests/test_mail.py:0: error: Argument 2 to "_get_title" of "MailAccountHandler" has incompatible type "type[att@486]"; expected "MailAttachment" [arg-type] -src/paperless_mail/tests/test_mail.py:0: error: Argument 2 to "_get_title" of "MailAccountHandler" has incompatible type "type[att@486]"; expected "MailAttachment" [arg-type] +src/paperless_mail/tests/test_mail.py:0: error: Argument 1 to "_get_correspondent" of "MailAccountHandler" has incompatible type "type[message2]"; expected "MailMessage" [arg-type] +src/paperless_mail/tests/test_mail.py:0: error: Argument 1 to "_get_correspondent" of "MailAccountHandler" has incompatible type "type[message2]"; expected "MailMessage" [arg-type] +src/paperless_mail/tests/test_mail.py:0: error: Argument 1 to "_get_correspondent" of "MailAccountHandler" has incompatible type "type[message]"; expected "MailMessage" [arg-type] +src/paperless_mail/tests/test_mail.py:0: error: Argument 1 to "_get_correspondent" of "MailAccountHandler" has incompatible type "type[message]"; expected "MailMessage" [arg-type] +src/paperless_mail/tests/test_mail.py:0: error: Argument 1 to "_get_correspondent" of "MailAccountHandler" has incompatible type "type[message]"; expected "MailMessage" [arg-type] +src/paperless_mail/tests/test_mail.py:0: error: Argument 1 to "_get_correspondent" of "MailAccountHandler" has incompatible type "type[message]"; expected "MailMessage" [arg-type] +src/paperless_mail/tests/test_mail.py:0: error: Argument 1 to "_get_title" of "MailAccountHandler" has incompatible type "type[message]"; expected "MailMessage" [arg-type] +src/paperless_mail/tests/test_mail.py:0: error: Argument 1 to "_get_title" of "MailAccountHandler" has incompatible type "type[message]"; expected "MailMessage" [arg-type] +src/paperless_mail/tests/test_mail.py:0: error: Argument 1 to "_get_title" of "MailAccountHandler" has incompatible type "type[message]"; expected "MailMessage" [arg-type] +src/paperless_mail/tests/test_mail.py:0: error: Argument 2 to "_get_title" of "MailAccountHandler" has incompatible type "type[att]"; expected "MailAttachment" [arg-type] +src/paperless_mail/tests/test_mail.py:0: error: Argument 2 to "_get_title" of "MailAccountHandler" has incompatible type "type[att]"; expected "MailAttachment" [arg-type] +src/paperless_mail/tests/test_mail.py:0: error: Argument 2 to "_get_title" of "MailAccountHandler" has incompatible type "type[att]"; expected "MailAttachment" [arg-type] src/paperless_mail/tests/test_mail.py:0: error: Argument 2 to "assertIn" of "TestCase" has incompatible type "str | None"; expected "Iterable[Any] | Container[Any]" [arg-type] +src/paperless_mail/tests/test_mail.py:0: error: Cannot assign to a method [method-assign] +src/paperless_mail/tests/test_mail.py:0: error: Cannot assign to a method [method-assign] src/paperless_mail/tests/test_mail.py:0: error: Dict entry 0 has incompatible type "str": "None"; expected "str": "str" [dict-item] src/paperless_mail/tests/test_mail.py:0: error: Dict entry 0 has incompatible type "str": "int"; expected "str": "str" [dict-item] src/paperless_mail/tests/test_mail.py:0: error: First argument to namedtuple() should be "att", not "Attachment" [name-match] src/paperless_mail/tests/test_mail.py:0: error: First argument to namedtuple() should be "message", not "MailMessage" [name-match] src/paperless_mail/tests/test_mail.py:0: error: First argument to namedtuple() should be "message", not "MailMessage" [name-match] -src/paperless_mail/tests/test_mail.py:0: error: First argument to namedtuple() should be "message", not "MailMessage" [name-match] src/paperless_mail/tests/test_mail.py:0: error: First argument to namedtuple() should be "message2", not "MailMessage" [name-match] -src/paperless_mail/tests/test_mail.py:0: error: Function is missing a type annotation [no-untyped-def] -src/paperless_mail/tests/test_mail.py:0: error: Function is missing a type annotation [no-untyped-def] -src/paperless_mail/tests/test_mail.py:0: error: Function is missing a type annotation [no-untyped-def] -src/paperless_mail/tests/test_mail.py:0: error: Function is missing a type annotation [no-untyped-def] src/paperless_mail/tests/test_mail.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/paperless_mail/tests/test_mail.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/paperless_mail/tests/test_mail.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] @@ -2246,23 +2491,10 @@ src/paperless_mail/tests/test_mail.py:0: error: Function is missing a type annot src/paperless_mail/tests/test_mail.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/paperless_mail/tests/test_mail.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/paperless_mail/tests/test_mail.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/paperless_mail/tests/test_mail.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/paperless_mail/tests/test_mail.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/paperless_mail/tests/test_mail.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/paperless_mail/tests/test_mail.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/paperless_mail/tests/test_mail.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/paperless_mail/tests/test_mail.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/paperless_mail/tests/test_mail.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/paperless_mail/tests/test_mail.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/paperless_mail/tests/test_mail.py:0: error: Incompatible type for "assign_correspondent" of "MailRule" (got "CorrespondentFactory", expected "Correspondent | Combinable | None") [misc] -src/paperless_mail/tests/test_mail.py:0: error: Incompatible types in assignment (expression has type "filter[MailMessage]", variable has type "list[MailMessage]") [assignment] -src/paperless_mail/tests/test_mail.py:0: error: Incompatible types in assignment (expression has type "filter[MailMessage]", variable has type "list[MailMessage]") [assignment] -src/paperless_mail/tests/test_mail.py:0: error: Incompatible types in assignment (expression has type "filter[MailMessage]", variable has type "list[MailMessage]") [assignment] -src/paperless_mail/tests/test_mail.py:0: error: Incompatible types in assignment (expression has type "filter[MailMessage]", variable has type "list[MailMessage]") [assignment] -src/paperless_mail/tests/test_mail.py:0: error: Incompatible types in assignment (expression has type "filter[MailMessage]", variable has type "list[MailMessage]") [assignment] -src/paperless_mail/tests/test_mail.py:0: error: Incompatible types in assignment (expression has type "filter[MailMessage]", variable has type "list[MailMessage]") [assignment] -src/paperless_mail/tests/test_mail.py:0: error: Incompatible types in assignment (expression has type "filter[Never]", variable has type "list[MailMessage]") [assignment] -src/paperless_mail/tests/test_mail.py:0: error: Incompatible types in assignment (expression has type "filter[Never]", variable has type "list[MailMessage]") [assignment] +src/paperless_mail/tests/test_mail.py:0: error: Incompatible type for "uid" of "ProcessedMail" (got "str | None", expected "str | int | Combinable") [misc] +src/paperless_mail/tests/test_mail.py:0: error: Incompatible type for "uid" of "ProcessedMail" (got "str | None", expected "str | int | Combinable") [misc] +src/paperless_mail/tests/test_mail.py:0: error: Incompatible type for "uid" of "ProcessedMail" (got "str | None", expected "str | int | Combinable") [misc] +src/paperless_mail/tests/test_mail.py:0: error: Incompatible type for "uid" of "ProcessedMail" (got "str | None", expected "str | int | Combinable") [misc] src/paperless_mail/tests/test_mail.py:0: error: Item "None" of "Correspondent | None" has no attribute "id" [union-attr] src/paperless_mail/tests/test_mail.py:0: error: Item "None" of "Correspondent | None" has no attribute "id" [union-attr] src/paperless_mail/tests/test_mail.py:0: error: Item "None" of "Correspondent | None" has no attribute "match" [union-attr] @@ -2270,19 +2502,31 @@ src/paperless_mail/tests/test_mail.py:0: error: Item "None" of "Correspondent | src/paperless_mail/tests/test_mail.py:0: error: Item "None" of "Correspondent | None" has no attribute "name" [union-attr] src/paperless_mail/tests/test_mail.py:0: error: Item "None" of "Correspondent | None" has no attribute "name" [union-attr] src/paperless_mail/tests/test_mail.py:0: error: Item "None" of "Correspondent | None" has no attribute "name" [union-attr] -src/paperless_mail/tests/test_mail.py:0: error: Missing type arguments for generic type "AbstractContextManager" [type-arg] +src/paperless_mail/tests/test_mail.py:0: error: List item 0 has incompatible type "str | None"; expected "str" [list-item] src/paperless_mail/tests/test_mail.py:0: error: Module "django.utils.timezone" does not explicitly export attribute "datetime" [attr-defined] +src/paperless_mail/tests/test_mail.py:0: error: Module "django.utils.timezone" does not explicitly export attribute "datetime" [attr-defined] +src/paperless_mail/tests/test_mail.py:0: error: Module "django.utils.timezone" does not explicitly export attribute "datetime" [attr-defined] +src/paperless_mail/tests/test_mail.py:0: error: Module "django.utils.timezone" does not explicitly export attribute "datetime" [attr-defined] +src/paperless_mail/tests/test_mail.py:0: error: Module "django.utils.timezone" does not explicitly export attribute "datetime" [attr-defined] +src/paperless_mail/tests/test_mail.py:0: error: Module "django.utils.timezone" does not explicitly export attribute "datetime" [attr-defined] +src/paperless_mail/tests/test_mail_nfc.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/paperless_mail/tests/test_mail_nfc.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/paperless_mail/tests/test_mail_nfc.py:0: error: Function is missing a type annotation [no-untyped-def] +src/paperless_mail/tests/test_mail_nfc.py:0: error: Function is missing a type annotation [no-untyped-def] +src/paperless_mail/tests/test_mail_nfc.py:0: error: Function is missing a type annotation [no-untyped-def] +src/paperless_mail/tests/test_mail_nfc.py:0: error: Function is missing a type annotation [no-untyped-def] +src/paperless_mail/tests/test_mail_nfc.py:0: error: Function is missing a type annotation [no-untyped-def] +src/paperless_mail/tests/test_mail_nfc.py:0: error: Function is missing a type annotation [no-untyped-def] src/paperless_mail/tests/test_mail_oauth.py:0: error: "_MonkeyPatchedWSGIResponse" has no attribute "url" [attr-defined] src/paperless_mail/tests/test_mail_oauth.py:0: error: "_MonkeyPatchedWSGIResponse" has no attribute "url" [attr-defined] src/paperless_mail/tests/test_mail_oauth.py:0: error: "_MonkeyPatchedWSGIResponse" has no attribute "url" [attr-defined] src/paperless_mail/tests/test_mail_oauth.py:0: error: "_MonkeyPatchedWSGIResponse" has no attribute "url" [attr-defined] -src/paperless_mail/tests/test_mail_oauth.py:0: error: Argument 1 to "handle_mail_account" of "MailAccountHandler" has incompatible type "MailAccountFactory"; expected "MailAccount" [arg-type] -src/paperless_mail/tests/test_mail_oauth.py:0: error: Argument 1 to "handle_mail_account" of "MailAccountHandler" has incompatible type "MailAccountFactory"; expected "MailAccount" [arg-type] -src/paperless_mail/tests/test_mail_oauth.py:0: error: Argument 1 to "handle_mail_account" of "MailAccountHandler" has incompatible type "MailAccountFactory"; expected "MailAccount" [arg-type] src/paperless_mail/tests/test_mail_oauth.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/paperless_mail/tests/test_mail_oauth.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/paperless_mail/tests/test_mail_oauth.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/paperless_mail/tests/test_mail_oauth.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_mail/tests/test_migrations.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/paperless_mail/tests/test_migrations.py:0: error: Function is missing a return type annotation [no-untyped-def] src/paperless_mail/tests/test_preprocessor.py:0: error: "Message[str, str]" has no attribute "_headers"; maybe "add_header"? [attr-defined] src/paperless_mail/tests/test_preprocessor.py:0: error: "Message[str, str]" has no attribute "_headers"; maybe "add_header"? [attr-defined] src/paperless_mail/tests/test_preprocessor.py:0: error: "TestMailMessageGpgDecryptor" has no attribute "messageEncryptor" [attr-defined] @@ -2294,11 +2538,17 @@ src/paperless_mail/tests/test_preprocessor.py:0: error: "type[TestMailMessageGpg src/paperless_mail/tests/test_preprocessor.py:0: error: Function is missing a return type annotation [no-untyped-def] src/paperless_mail/tests/test_preprocessor.py:0: error: Function is missing a type annotation [no-untyped-def] src/paperless_mail/tests/test_preprocessor.py:0: error: Function is missing a type annotation [no-untyped-def] -src/paperless_mail/tests/test_preprocessor.py:0: error: Incompatible type for "account" of "MailRule" (got "MailAccountFactory", expected "MailAccount | Combinable | None") [misc] src/paperless_mail/tests/test_preprocessor.py:0: error: Skipping analyzing "gnupg": module is installed, but missing library stubs or py.typed marker [import-untyped] +src/paperless_mail/tests/test_process_mail_accounts_overlap.py:0: error: Function is missing a return type annotation [no-untyped-def] src/paperless_mail/views.py:0: error: Function is missing a return type annotation [no-untyped-def] src/paperless_mail/views.py:0: error: Function is missing a type annotation [no-untyped-def] src/paperless_mail/views.py:0: error: Function is missing a type annotation [no-untyped-def] src/paperless_mail/views.py:0: error: Function is missing a type annotation [no-untyped-def] src/paperless_mail/views.py:0: error: Function is missing a type annotation [no-untyped-def] +src/paperless_mail/views.py:0: error: Function is missing a type annotation [no-untyped-def] src/paperless_mail/views.py:0: error: Incompatible types in assignment (expression has type "tuple[type[IsAuthenticated]]", variable has type "tuple[type[IsAuthenticated], type[PaperlessObjectPermissions]]") [assignment] +src/paperless_testing/http.py:0: error: Argument 1 to "join" of "bytes" has incompatible type "Iterator[bytes] | AsyncIterator[bytes]"; expected "Iterable[Buffer]" [arg-type] +src/paperless_testing/migrations.py:0: error: Item "None" of "AppConfig | None" has no attribute "name" [union-attr] +src/paperless_testing/retry.py:0: error: Missing type arguments for generic type "Callable" [type-arg] +src/paperless_testing/retry.py:0: error: Missing type arguments for generic type "list" [type-arg] +src/paperless_testing/retry.py:0: error: Missing type arguments for generic type "tuple" [type-arg] diff --git a/.pyrefly-baseline.json b/.pyrefly-baseline.json index 87578462d..9305cfe00 100644 --- a/.pyrefly-baseline.json +++ b/.pyrefly-baseline.json @@ -1,14560 +1,6423 @@ { "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": 255, "column": 27, - "stop_line": 255, - "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": 269, - "column": 16, - "stop_line": 269, - "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 `/home/trenton/projects/paperless-ngx/pyproject.toml`):\n Search path (from config file): [\"/home/trenton/projects/paperless-ngx/src\"]\n Import root (inferred from project layout): \"/home/trenton/projects/paperless-ngx/src\"\n Site package path queried from interpreter: [\"/home/trenton/projects/paperless-ngx/.venv/lib/python3.13/site-packages\"]", - "concise_description": "Cannot find module `zxingcpp`", - "severity": "error" - }, - { - "line": 325, "column": 38, - "stop_line": 325, - "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": 277, - "column": 16, - "stop_line": 277, - "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']`", + "column": 9, + "path": "src/documents/bulk_download.py", + "name": "bad-override", + "concise_description": "Class member `OriginalsOnlyStrategy.add_document` overrides parent class `BulkArchiveStrategy` in an inconsistent manner", + "severity": "error" + }, + { + "column": 9, + "path": "src/documents/bulk_download.py", + "name": "bad-override", + "concise_description": "Class member `ArchiveOnlyStrategy.add_document` overrides parent class `BulkArchiveStrategy` in an inconsistent manner", + "severity": "error" + }, + { + "column": 9, + "path": "src/documents/bulk_download.py", + "name": "bad-override", + "concise_description": "Class member `OriginalAndArchiveStrategy.add_document` overrides parent class `BulkArchiveStrategy` in an inconsistent manner", "severity": "error" }, { - "line": 291, "column": 9, - "stop_line": 293, - "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]`", + "concise_description": "`list[tuple[int, Unknown]] | list[tuple[int, None]]` is not assignable to variable `add_custom_fields` with type `dict[Unknown, Unknown] | list[int]`", "severity": "error" }, { - "line": 297, - "column": 32, - "stop_line": 297, - "stop_column": 40, + "column": 23, "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": 299, "column": 9, - "stop_line": 299, - "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": 305, - "column": 21, - "stop_line": 305, - "stop_column": 43, + "column": 13, "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": 341, "column": 5, - "stop_line": 344, - "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": 724, + "column": 59, + "path": "src/documents/bulk_edit.py", + "name": "unexpected-keyword", + "concise_description": "Unexpected keyword argument `transaction_id` in function `django.db.models.query.QuerySet.delete`", + "severity": "error" + }, + { + "column": 57, + "path": "src/documents/bulk_edit.py", + "name": "bad-argument-type", + "concise_description": "Argument `list[int]` is not assignable to parameter `args` with type `tuple[Any, ...] | None` in function `celery.app.task.Task.apply_async`", + "severity": "error" + }, + { "column": 33, - "stop_line": 724, - "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": 1032, - "column": 13, - "stop_line": 1032, - "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": 13, + "path": "src/documents/classifier.py", + "name": "missing-attribute", + "concise_description": "Object of class `MLPClassifier` has no attribute `_optimizer`", + "severity": "error" + }, + { + "column": 13, + "path": "src/documents/classifier.py", + "name": "missing-attribute", + "concise_description": "Object of class `MLPClassifier` has no attribute `_best_coefs`", + "severity": "error" + }, + { + "column": 13, + "path": "src/documents/classifier.py", + "name": "missing-attribute", + "concise_description": "Object of class `MLPClassifier` has no attribute `_best_intercepts`", + "severity": "error" + }, + { "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": 17, + "path": "src/documents/classifier.py", + "name": "unsupported-operation", + "concise_description": "`>=` is not supported between `datetime` and `None`", + "severity": "error" + }, + { "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, + "column": 17, "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`", + "name": "unexpected-keyword", + "concise_description": "Unexpected keyword argument `sample_weight` in function `sklearn.neural_network._multilayer_perceptron.BaseMultilayerPerceptron.fit`", "severity": "error" }, { - "line": 472, - "column": 26, - "stop_line": 472, - "stop_column": 44, + "column": 17, "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`", + "name": "unexpected-keyword", + "concise_description": "Unexpected keyword argument `sample_weight` in function `sklearn.neural_network._multilayer_perceptron.BaseMultilayerPerceptron.fit`", + "severity": "error" + }, + { + "column": 17, + "path": "src/documents/classifier.py", + "name": "unexpected-keyword", + "concise_description": "Unexpected keyword argument `sample_weight` in function `sklearn.neural_network._multilayer_perceptron.BaseMultilayerPerceptron.fit`", "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": 26, + "path": "src/documents/classifier.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `transform`", + "severity": "error" + }, + { "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": 79, "column": 9, - "stop_line": 79, - "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": 207, "column": 26, - "stop_line": 207, - "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": 209, "column": 9, - "stop_line": 209, - "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": 211, "column": 25, - "stop_line": 211, - "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": 211, "column": 51, - "stop_line": 211, - "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": 221, "column": 9, - "stop_line": 221, - "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": 227, "column": 22, - "stop_line": 227, - "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": 227, "column": 48, - "stop_line": 227, - "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": 228, "column": 29, - "stop_line": 228, - "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": 229, "column": 16, - "stop_line": 229, - "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": 230, "column": 30, - "stop_line": 230, - "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": 231, "column": 16, - "stop_line": 231, - "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": 328, "column": 17, - "stop_line": 328, - "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": 397, "column": 17, - "stop_line": 397, - "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": 408, "column": 9, - "stop_line": 408, - "stop_column": 12, "path": "src/documents/consumer.py", - "code": -2, "name": "bad-override", - "description": "Class member `ConsumerPlugin.run` overrides parent class `AlwaysRunPluginMixin` in an inconsistent manner\n `ConsumerPlugin.run` has type `(self: ConsumerPlugin) -> ConsumeFileSuccessResult`, which is not assignable to `(self: ConsumerPlugin) -> str | None`, the type of `AlwaysRunPluginMixin.run`\n Signature mismatch:\n expected: def run(self: ConsumerPlugin) -> str | None: ...\n ^^^^^^^^^^ return type\n found: def run(self: ConsumerPlugin) -> ConsumeFileSuccessResult: ...\n ^^^^^^^^^^^^^^^^^^^^^^^^ return type", "concise_description": "Class member `ConsumerPlugin.run` overrides parent class `AlwaysRunPluginMixin` in an inconsistent manner", "severity": "error" }, { - "line": 408, "column": 9, - "stop_line": 408, - "stop_column": 12, "path": "src/documents/consumer.py", - "code": -2, "name": "bad-override", - "description": "Class member `ConsumerPlugin.run` overrides parent class `NoSetupPluginMixin` in an inconsistent manner\n `ConsumerPlugin.run` has type `(self: ConsumerPlugin) -> ConsumeFileSuccessResult`, which is not assignable to `(self: ConsumerPlugin) -> str | None`, the type of `NoSetupPluginMixin.run`\n Signature mismatch:\n expected: def run(self: ConsumerPlugin) -> str | None: ...\n ^^^^^^^^^^ return type\n found: def run(self: ConsumerPlugin) -> ConsumeFileSuccessResult: ...\n ^^^^^^^^^^^^^^^^^^^^^^^^ return type", "concise_description": "Class member `ConsumerPlugin.run` overrides parent class `NoSetupPluginMixin` in an inconsistent manner", "severity": "error" }, { - "line": 408, "column": 9, - "stop_line": 408, - "stop_column": 12, "path": "src/documents/consumer.py", - "code": -2, "name": "bad-override", - "description": "Class member `ConsumerPlugin.run` overrides parent class `NoCleanupPluginMixin` in an inconsistent manner\n `ConsumerPlugin.run` has type `(self: ConsumerPlugin) -> ConsumeFileSuccessResult`, which is not assignable to `(self: ConsumerPlugin) -> str | None`, the type of `NoCleanupPluginMixin.run`\n Signature mismatch:\n expected: def run(self: ConsumerPlugin) -> str | None: ...\n ^^^^^^^^^^ return type\n found: def run(self: ConsumerPlugin) -> ConsumeFileSuccessResult: ...\n ^^^^^^^^^^^^^^^^^^^^^^^^ return type", "concise_description": "Class member `ConsumerPlugin.run` overrides parent class `NoCleanupPluginMixin` in an inconsistent manner", "severity": "error" }, { - "line": 408, "column": 9, - "stop_line": 408, - "stop_column": 12, "path": "src/documents/consumer.py", - "code": -2, "name": "bad-override", - "description": "Class member `ConsumerPlugin.run` overrides parent class `ConsumeTaskPlugin` in an inconsistent manner\n `ConsumerPlugin.run` has type `(self: ConsumerPlugin) -> ConsumeFileSuccessResult`, which is not assignable to `(self: ConsumerPlugin) -> str | None`, the type of `ConsumeTaskPlugin.run`\n Signature mismatch:\n expected: def run(self: ConsumerPlugin) -> str | None: ...\n ^^^^^^^^^^ return type\n found: def run(self: ConsumerPlugin) -> ConsumeFileSuccessResult: ...\n ^^^^^^^^^^^^^^^^^^^^^^^^ return type", "concise_description": "Class member `ConsumerPlugin.run` overrides parent class `ConsumeTaskPlugin` in an inconsistent manner", "severity": "error" }, { - "line": 442, "column": 25, - "stop_line": 446, - "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": 447, "column": 32, - "stop_line": 447, - "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": 518, "column": 25, - "stop_line": 518, - "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": 548, - "column": 74, - "stop_line": 548, - "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": 630, - "column": 33, - "stop_line": 630, - "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": 645, - "column": 38, - "stop_line": 645, - "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": 716, - "column": 62, - "stop_line": 716, - "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": 723, - "column": 37, - "stop_line": 723, - "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": 807, "column": 13, - "stop_line": 807, - "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": 808, "column": 13, - "stop_line": 808, - "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": 809, "column": 13, - "stop_line": 809, - "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": 931, "column": 31, - "stop_line": 931, - "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": 1003, "column": 21, - "stop_line": 1003, - "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": 1004, "column": 24, - "stop_line": 1004, - "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": 1005, "column": 30, - "stop_line": 1005, - "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__`\n Protocol `PathLike` requires attribute `__fspath__`", "concise_description": "Argument `object | Unknown` is not assignable to parameter `*args` with type `PathLike[str] | str` in function `pathlib.Path.__new__`", "severity": "error" }, { - "line": 1005, "column": 58, - "stop_line": 1005, - "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": 1006, "column": 28, - "stop_line": 1006, - "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": 1013, "column": 65, - "stop_line": 1013, - "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": 1028, "column": 21, - "stop_line": 1028, - "stop_column": 33, "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": 1094, "column": 16, - "stop_line": 1094, - "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`", + "concise_description": "Argument `list[Path | str | Any]` 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": 116, "column": 13, - "stop_line": 119, - "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": 122, "column": 13, - "stop_line": 125, - "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": 138, "column": 26, - "stop_line": 138, - "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": 139, "column": 35, - "stop_line": 139, - "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": 143, "column": 26, - "stop_line": 143, - "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": 144, "column": 37, - "stop_line": 144, - "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": 173, "column": 22, - "stop_line": 173, - "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": 210, "column": 51, - "stop_line": 210, - "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": 266, + "column": 21, + "path": "src/documents/filters.py", + "name": "bad-argument-type", + "concise_description": "Argument `QuerySet[Model, dict[str, Any]]` is not assignable to parameter `expression` with type `Combinable | str` in function `django.db.models.aggregates.Count.__init__`", + "severity": "error" + }, + { + "column": 21, + "path": "src/documents/filters.py", + "name": "bad-argument-type", + "concise_description": "Argument `QuerySet[Model, dict[str, Any]]` is not assignable to parameter `expression` with type `Combinable | str` in function `django.db.models.aggregates.Count.__init__`", + "severity": "error" + }, + { "column": 31, - "stop_line": 266, - "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": 326, "column": 25, - "stop_line": 326, - "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": 353, - "column": 47, - "stop_line": 353, - "stop_column": 76, + "column": 48, "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__`", + "name": "bad-assignment", + "concise_description": "`Unknown | None` is not assignable to dict key type `str`", "severity": "error" }, { - "line": 362, "column": 5, - "stop_line": 362, - "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": 673, "column": 26, - "stop_line": 673, - "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": 676, "column": 17, - "stop_line": 676, - "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": 733, - "column": 18, - "stop_line": 733, - "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": 1040, "column": 25, - "stop_line": 1040, - "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": 119, - "column": 13, - "stop_line": 119, - "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": 122, - "column": 9, - "stop_line": 122, - "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": 565, "column": 41, - "stop_line": 565, - "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": 238, "column": 14, - "stop_line": 238, - "stop_column": 18, "path": "src/documents/management/commands/document_importer.py", - "code": -2, "name": "bad-override-mutable-attribute", - "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__`\n Protocol `PathLike` requires attribute `__fspath__`", - "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__`\n Protocol `PathLike` requires attribute `__fspath__`", - "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": 116, "column": 11, - "stop_line": 116, - "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": 453, "column": 21, - "stop_line": 453, - "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__`\n Protocol `PathLike` requires attribute `__fspath__`", "concise_description": "Argument `Path | None` is not assignable to parameter `*args` with type `PathLike[str] | str` in function `pathlib.Path.__new__`", "severity": "error" }, { - "line": 1031, + "column": 17, + "path": "src/documents/models.py", + "name": "unexpected-keyword", + "concise_description": "Unexpected keyword argument `transaction_id` in function `django.db.models.query.QuerySet.delete`", + "severity": "error" + }, + { + "column": 28, + "path": "src/documents/models.py", + "name": "bad-argument-type", + "concise_description": "Argument `UUID | Unknown` is not assignable to parameter `transaction_id` with type `str` in function `django_softdelete.models.SoftDeleteModel.delete`", + "severity": "error" + }, + { "column": 9, - "stop_line": 1031, - "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": 1206, "column": 54, - "stop_line": 1206, - "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": 1230, "column": 5, - "stop_line": 1230, - "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": 6, + "path": "src/documents/permissions.py", + "name": "bad-specialization", + "concise_description": "`int` is not assignable to upper bound `Model` of type variable `_Model`", + "severity": "error" + }, + { + "column": 9, + "path": "src/documents/permissions.py", + "name": "bad-argument-type", + "concise_description": "Argument `Literal['global_objects']` is not assignable to parameter `name` with type `Literal['objects']` in function `django.db.models.base.ModelBase.__getattr__`", + "severity": "error" + }, + { + "column": 16, + "path": "src/documents/permissions.py", + "name": "bad-return", + "concise_description": "Returned type `QuerySet[Model, Any]` is not assignable to declared return type `QuerySet[int, int]`", + "severity": "error" + }, + { + "column": 16, + "path": "src/documents/permissions.py", + "name": "bad-return", + "concise_description": "Returned type `QuerySet[Model, Any]` is not assignable to declared return type `QuerySet[int, int]`", + "severity": "error" + }, + { + "column": 16, + "path": "src/documents/permissions.py", + "name": "bad-return", + "concise_description": "Returned type `QuerySet[Model, Any]` is not assignable to declared return type `QuerySet[int, int]`", + "severity": "error" + }, + { + "column": 12, + "path": "src/documents/permissions.py", + "name": "bad-return", + "concise_description": "Returned type `QuerySet[Model, Any]` is not assignable to declared return type `QuerySet[int, int]`", + "severity": "error" + }, + { + "column": 6, + "path": "src/documents/permissions.py", + "name": "bad-specialization", + "concise_description": "`int` is not assignable to upper bound `Model` of type variable `_Model`", + "severity": "error" + }, + { "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": 186, - "column": 24, - "stop_line": 186, - "stop_column": 51, + "column": 33, "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`", + "name": "unbound-name", + "concise_description": "`correspondent` may be uninitialized", "severity": "error" }, { - "line": 192, - "column": 17, - "stop_line": 192, - "stop_column": 36, + "column": 33, "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`", + "name": "unbound-name", + "concise_description": "`document_type` may be uninitialized", "severity": "error" }, { - "line": 193, - "column": 17, - "stop_line": 193, - "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": 222, - "column": 9, - "stop_line": 222, - "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": 235, - "column": 9, - "stop_line": 235, - "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": 237, - "column": 17, - "stop_line": 237, - "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": 333, - "column": 44, - "stop_line": 333, - "stop_column": 55, - "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": 335, "column": 45, - "stop_line": 335, - "stop_column": 56, "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`", + "concise_description": "Argument `list[int]` is not assignable to parameter `args` with type `tuple[Any, ...] | None` in function `celery.app.task.Task.apply_async`", "severity": "error" }, { - "line": 337, - "column": 37, - "stop_line": 337, - "stop_column": 48, - "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": 346, "column": 57, - "stop_line": 346, - "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`", + "concise_description": "Argument `list[int]` is not assignable to parameter `args` with type `tuple[Any, ...] | None` in function `celery.app.task.Task.apply_async`", + "severity": "error" + }, + { + "column": 9, + "path": "src/documents/search/_backend.py", + "name": "bad-override", + "concise_description": "Class member `_DocumentViewerStream.__iter__` overrides parent class `QuerySetStream` in an inconsistent manner", + "severity": "error" + }, + { + "column": 21, + "path": "src/documents/search/_query.py", + "name": "unexpected-keyword", + "concise_description": "Unexpected keyword argument `children` in function `whoosh_compat.ast.Node.__init__`", + "severity": "error" + }, + { + "column": 59, + "path": "src/documents/search/_query.py", + "name": "bad-argument-type", + "concise_description": "Unpacked keyword argument `int | None` is not assignable to parameter `analyzed` with type `bool` in function `whoosh_compat.ast.Term.__init__`", + "severity": "error" + }, + { + "column": 74, + "path": "src/documents/search/_query.py", + "name": "bad-argument-type", + "concise_description": "Unpacked keyword argument `int | None` is not assignable to parameter `analyzed` with type `bool` in function `whoosh_compat.ast.Term.__init__`", + "severity": "error" + }, + { + "column": 28, + "path": "src/documents/search/_query.py", + "name": "bad-argument-type", + "concise_description": "Argument `FieldRef | None` is not assignable to parameter `field` with type `FieldRef` in function `whoosh_compat.ast.Fuzzy.__init__`", + "severity": "error" + }, + { + "column": 17, + "path": "src/documents/search/_schema.py", + "name": "unexpected-keyword", + "concise_description": "Unexpected keyword argument `fast` in function `tantivy.tantivy.SchemaBuilder.add_json_field`", "severity": "error" }, { - "line": 389, - "column": 50, - "stop_line": 389, - "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": 395, - "column": 50, - "stop_line": 395, - "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": 400, - "column": 49, - "stop_line": 400, - "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": 414, - "column": 21, - "stop_line": 414, - "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": 423, - "column": 20, - "stop_line": 423, - "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": 465, - "column": 43, - "stop_line": 465, - "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": 555, - "column": 65, - "stop_line": 555, - "stop_column": 76, - "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_highlight_query`", - "concise_description": "Argument `Unknown | None` is not assignable to parameter `index` with type `Index` in function `documents.search._query.parse_simple_text_highlight_query`", - "severity": "error" - }, - { - "line": 566, - "column": 17, - "stop_line": 566, - "stop_column": 40, - "path": "src/documents/search/_backend.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `parse_query`", - "concise_description": "Object of class `NoneType` has no attribute `parse_query`", - "severity": "error" - }, - { - "line": 573, - "column": 20, - "stop_line": 573, - "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": 582, - "column": 17, - "stop_line": 582, - "stop_column": 29, - "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": 609, - "column": 25, - "stop_line": 609, - "stop_column": 37, - "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": 624, - "column": 29, - "stop_line": 624, - "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": 679, - "column": 20, - "stop_line": 679, - "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": 739, - "column": 20, - "stop_line": 739, - "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": 752, - "column": 25, - "stop_line": 752, - "stop_column": 37, - "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.term_query`", - "concise_description": "Argument `Unknown | None` is not assignable to parameter `schema` with type `Schema` in function `tantivy.tantivy.Query.term_query`", - "severity": "error" - }, - { - "line": 760, - "column": 25, - "stop_line": 760, - "stop_column": 37, - "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.regex_query`", - "concise_description": "Argument `Unknown | None` is not assignable to parameter `schema` with type `Schema` in function `tantivy.tantivy.Query.regex_query`", - "severity": "error" - }, - { - "line": 770, - "column": 37, - "stop_line": 770, - "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": 774, - "column": 66, - "stop_line": 774, - "stop_column": 78, - "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": 822, - "column": 20, - "stop_line": 822, - "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": 825, - "column": 13, - "stop_line": 825, - "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": 132, "column": 9, - "stop_line": 132, - "stop_column": 17, "path": "src/documents/serialisers.py", - "code": -2, "name": "bad-override-param-name", - "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-override-param-name", - "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`", + "concise_description": "Object of type `BaseSerializer[Unknown] | Field[Unknown, Unknown, Unknown, Unknown] | None` has no attribute `get_shared_object_pks`", "severity": "error" }, { - "line": 484, - "column": 17, - "stop_line": 484, - "stop_column": 30, - "path": "src/documents/serialisers.py", - "code": -2, - "name": "bad-assignment", - "description": "`type[Correspondent]` is not assignable to attribute `model` with type `type[_MT]`", - "concise_description": "`type[Correspondent]` is not assignable to attribute `model` with type `type[_MT]`", - "severity": "error" - }, - { - "line": 503, - "column": 17, - "stop_line": 503, - "stop_column": 29, - "path": "src/documents/serialisers.py", - "code": -2, - "name": "bad-assignment", - "description": "`type[DocumentType]` is not assignable to attribute `model` with type `type[_MT]`", - "concise_description": "`type[DocumentType]` is not assignable to attribute `model` with type `type[_MT]`", - "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": 628, "column": 17, - "stop_line": 628, - "stop_column": 20, "path": "src/documents/serialisers.py", - "code": -2, - "name": "bad-assignment", - "description": "`type[Tag]` is not assignable to attribute `model` with type `type[_MT]`", - "concise_description": "`type[Tag]` is not assignable to attribute `model` with type `type[_MT]`", + "name": "unsupported-operation", + "concise_description": "Cannot set item in `Mapping[str, Any]`", "severity": "error" }, { - "line": 654, "column": 9, - "stop_line": 654, - "stop_column": 17, "path": "src/documents/serialisers.py", - "code": -2, "name": "bad-override-param-name", - "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": 714, - "column": 17, - "stop_line": 714, - "stop_column": 28, - "path": "src/documents/serialisers.py", - "code": -2, - "name": "bad-assignment", - "description": "`type[CustomField]` is not assignable to attribute `model` with type `type[_MT]`", - "concise_description": "`type[CustomField]` is not assignable to attribute `model` with type `type[_MT]`", - "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-override-param-name", - "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-override-param-name", - "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": 920, - "column": 17, - "stop_line": 920, - "stop_column": 36, - "path": "src/documents/serialisers.py", - "code": -2, - "name": "bad-assignment", - "description": "`type[CustomFieldInstance]` is not assignable to attribute `model` with type `type[_MT]`", - "concise_description": "`type[CustomFieldInstance]` is not assignable to attribute `model` with type `type[_MT]`", - "severity": "error" - }, - { - "line": 930, - "column": 17, - "stop_line": 930, - "stop_column": 21, - "path": "src/documents/serialisers.py", - "code": -2, - "name": "bad-assignment", - "description": "`type[User]` is not assignable to attribute `model` with type `type[_MT]`", - "concise_description": "`type[User]` is not assignable to attribute `model` with type `type[_MT]`", - "severity": "error" - }, - { - "line": 938, - "column": 17, - "stop_line": 938, - "stop_column": 21, - "path": "src/documents/serialisers.py", - "code": -2, - "name": "bad-assignment", - "description": "`type[Note]` is not assignable to attribute `model` with type `type[_MT]`", - "concise_description": "`type[Note]` is not assignable to attribute `model` with type `type[_MT]`", - "severity": "error" - }, - { - "line": 1095, "column": 30, - "stop_line": 1095, - "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": 1139, - "column": 12, - "stop_line": 1139, - "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": 1143, - "column": 42, - "stop_line": 1143, - "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": 1227, - "column": 17, - "stop_line": 1227, - "stop_column": 25, - "path": "src/documents/serialisers.py", - "code": -2, - "name": "bad-assignment", - "description": "`type[Document]` is not assignable to attribute `model` with type `type[_MT]`", - "concise_description": "`type[Document]` is not assignable to attribute `model` with type `type[_MT]`", - "severity": "error" - }, - { - "line": 1262, "column": 9, - "stop_line": 1262, - "stop_column": 26, "path": "src/documents/serialisers.py", - "code": -2, "name": "bad-override-param-name", - "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": 1265, "column": 21, - "stop_line": 1265, - "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`", + "concise_description": "Object of type `BaseSerializer[Unknown] | Field[Unknown, Unknown, Unknown, Unknown] | None` has no attribute `fetch_documents`", "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": 1268, "column": 9, - "stop_line": 1268, - "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": 1268, "column": 51, - "stop_line": 1268, - "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`", + "concise_description": "Object of type `BaseSerializer[Unknown] | Field[Unknown, Unknown, Unknown, Unknown] | None` has no attribute `get_shared_object_pks`", "severity": "error" }, { - "line": 1293, "column": 9, - "stop_line": 1293, - "stop_column": 26, "path": "src/documents/serialisers.py", - "code": -2, "name": "bad-override-param-name", - "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": 1315, "column": 9, - "stop_line": 1315, - "stop_column": 30, "path": "src/documents/serialisers.py", - "code": -2, "name": "bad-override-mutable-attribute", - "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": 1320, - "column": 17, - "stop_line": 1320, - "stop_column": 36, - "path": "src/documents/serialisers.py", - "code": -2, - "name": "bad-assignment", - "description": "`type[SavedViewFilterRule]` is not assignable to attribute `model` with type `type[_MT]`", - "concise_description": "`type[SavedViewFilterRule]` is not assignable to attribute `model` with type `type[_MT]`", - "severity": "error" - }, - { - "line": 1328, - "column": 17, - "stop_line": 1328, - "stop_column": 26, - "path": "src/documents/serialisers.py", - "code": -2, - "name": "bad-assignment", - "description": "`type[SavedView]` is not assignable to attribute `model` with type `type[_MT]`", - "concise_description": "`type[SavedView]` is not assignable to attribute `model` with type `type[_MT]`", - "severity": "error" - }, - { - "line": 1467, "column": 21, - "stop_line": 1467, - "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": 1469, "column": 36, - "stop_line": 1469, - "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": 1696, "column": 7, - "stop_line": 1696, - "stop_column": 25, "path": "src/documents/serialisers.py", - "code": -2, "name": "invalid-inheritance", - "description": "Class `BulkEditSerializer` has inconsistent type arguments for base class `Field`: `Field[Any, Any, Any, dict[str, Any]]` and `Field[Any, Any, Any, dict[str, list[int]]]`", "concise_description": "Class `BulkEditSerializer` has inconsistent type arguments for base class `Field`: `Field[Any, Any, Any, dict[str, Any]]` and `Field[Any, Any, Any, dict[str, list[int]]]`", "severity": "error" }, { - "line": 2356, "column": 73, - "stop_line": 2356, - "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": 2370, - "column": 17, - "stop_line": 2370, - "stop_column": 28, - "path": "src/documents/serialisers.py", - "code": -2, - "name": "bad-assignment", - "description": "`type[StoragePath]` is not assignable to attribute `model` with type `type[_MT]`", - "concise_description": "`type[StoragePath]` is not assignable to attribute `model` with type `type[_MT]`", - "severity": "error" - }, - { - "line": 2418, - "column": 17, - "stop_line": 2418, - "stop_column": 27, - "path": "src/documents/serialisers.py", - "code": -2, - "name": "bad-assignment", - "description": "`type[UiSettings]` is not assignable to attribute `model` with type `type[_MT]`", - "concise_description": "`type[UiSettings]` is not assignable to attribute `model` with type `type[_MT]`", - "severity": "error" - }, - { - "line": 2434, "column": 9, - "stop_line": 2434, - "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": 2463, - "column": 17, - "stop_line": 2463, - "stop_column": 30, - "path": "src/documents/serialisers.py", - "code": -2, - "name": "bad-assignment", - "description": "`type[PaperlessTask]` is not assignable to attribute `model` with type `type[_MT]`", - "concise_description": "`type[PaperlessTask]` is not assignable to attribute `model` with type `type[_MT]`", - "severity": "error" - }, - { - "line": 2516, - "column": 17, - "stop_line": 2516, - "stop_column": 30, - "path": "src/documents/serialisers.py", - "code": -2, - "name": "bad-assignment", - "description": "`type[PaperlessTask]` is not assignable to attribute `model` with type `type[_MT]`", - "concise_description": "`type[PaperlessTask]` is not assignable to attribute `model` with type `type[_MT]`", - "severity": "error" - }, - { - "line": 2554, "column": 46, - "stop_line": 2554, - "stop_column": 76, "path": "src/documents/serialisers.py", - "code": -2, "name": "no-matching-overload", - "description": "No matching overload found for function `dict.get` called with arguments: (str, str)\n Possible overloads:\n (key: PaperlessTask.TaskType, default: None = None, /) -> str | None\n (key: PaperlessTask.TaskType, default: str, /) -> str [closest match]\n (key: PaperlessTask.TaskType, default: _T, /) -> str | _T", "concise_description": "No matching overload found for function `dict.get` called with arguments: (str, str)", "severity": "error" }, { - "line": 2570, "column": 38, - "stop_line": 2570, - "stop_column": 70, "path": "src/documents/serialisers.py", - "code": -2, "name": "no-matching-overload", - "description": "No matching overload found for function `dict.get` called with arguments: (str, str)\n Possible overloads:\n (key: PaperlessTask.Status, default: None = None, /) -> str | None\n (key: PaperlessTask.Status, default: str, /) -> str [closest match]\n (key: PaperlessTask.Status, default: _T, /) -> str | _T", "concise_description": "No matching overload found for function `dict.get` called with arguments: (str, str)", "severity": "error" }, { - "line": 2581, "column": 51, - "stop_line": 2581, - "stop_column": 86, "path": "src/documents/serialisers.py", - "code": -2, "name": "no-matching-overload", - "description": "No matching overload found for function `dict.get` called with arguments: (str, Literal['manual_task'])\n Possible overloads:\n (key: PaperlessTask.TriggerSource, default: None = None, /) -> str | None\n (key: PaperlessTask.TriggerSource, default: str, /) -> str [closest match]\n (key: PaperlessTask.TriggerSource, default: _T, /) -> str | _T", "concise_description": "No matching overload found for function `dict.get` called with arguments: (str, Literal['manual_task'])", "severity": "error" }, { - "line": 2659, - "column": 17, - "stop_line": 2659, - "stop_column": 26, - "path": "src/documents/serialisers.py", - "code": -2, - "name": "bad-assignment", - "description": "`type[ShareLink]` is not assignable to attribute `model` with type `type[_MT]`", - "concise_description": "`type[ShareLink]` is not assignable to attribute `model` with type `type[_MT]`", - "severity": "error" - }, - { - "line": 2704, - "column": 17, - "stop_line": 2704, - "stop_column": 32, - "path": "src/documents/serialisers.py", - "code": -2, - "name": "bad-assignment", - "description": "`type[ShareLinkBundle]` is not assignable to attribute `model` with type `type[_MT]`", - "concise_description": "`type[ShareLinkBundle]` is not assignable to attribute `model` with type `type[_MT]`", - "severity": "error" - }, - { - "line": 2917, - "column": 17, - "stop_line": 2917, - "stop_column": 32, - "path": "src/documents/serialisers.py", - "code": -2, - "name": "bad-assignment", - "description": "`type[WorkflowTrigger]` is not assignable to attribute `model` with type `type[_MT]`", - "concise_description": "`type[WorkflowTrigger]` is not assignable to attribute `model` with type `type[_MT]`", - "severity": "error" - }, - { - "line": 3013, - "column": 17, - "stop_line": 3013, - "stop_column": 36, - "path": "src/documents/serialisers.py", - "code": -2, - "name": "bad-assignment", - "description": "`type[WorkflowActionEmail]` is not assignable to attribute `model` with type `type[_MT]`", - "concise_description": "`type[WorkflowActionEmail]` is not assignable to attribute `model` with type `type[_MT]`", - "severity": "error" - }, - { - "line": 3033, - "column": 17, - "stop_line": 3033, - "stop_column": 38, - "path": "src/documents/serialisers.py", - "code": -2, - "name": "bad-assignment", - "description": "`type[WorkflowActionWebhook]` is not assignable to attribute `model` with type `type[_MT]`", - "concise_description": "`type[WorkflowActionWebhook]` is not assignable to attribute `model` with type `type[_MT]`", - "severity": "error" - }, - { - "line": 3056, - "column": 17, - "stop_line": 3056, - "stop_column": 31, - "path": "src/documents/serialisers.py", - "code": -2, - "name": "bad-assignment", - "description": "`type[WorkflowAction]` is not assignable to attribute `model` with type `type[_MT]`", - "concise_description": "`type[WorkflowAction]` is not assignable to attribute `model` with type `type[_MT]`", - "severity": "error" - }, - { - "line": 3175, - "column": 17, - "stop_line": 3175, - "stop_column": 25, - "path": "src/documents/serialisers.py", - "code": -2, - "name": "bad-assignment", - "description": "`type[Workflow]` is not assignable to attribute `model` with type `type[_MT]`", - "concise_description": "`type[Workflow]` is not assignable to attribute `model` with type `type[_MT]`", - "severity": "error" - }, - { - "line": 3375, "column": 52, - "stop_line": 3375, - "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": 3375, "column": 62, - "stop_line": 3375, - "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": 124, "column": 72, - "stop_line": 124, - "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": 185, "column": 72, - "stop_line": 185, - "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": 267, "column": 50, - "stop_line": 267, - "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": 311, "column": 70, - "stop_line": 311, - "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": 544, "column": 46, - "stop_line": 544, - "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__`\n Protocol `PathLike` requires attribute `__fspath__`", "concise_description": "Argument `Any | None` is not assignable to parameter `*args` with type `PathLike[str] | str` in function `pathlib.Path.__new__`", "severity": "error" }, { - "line": 545, "column": 49, - "stop_line": 545, - "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__`\n Protocol `PathLike` requires attribute `__fspath__`", "concise_description": "Argument `Any | None` is not assignable to parameter `*args` with type `PathLike[str] | str` in function `pathlib.Path.__new__`", "severity": "error" }, { - "line": 550, "column": 28, - "stop_line": 550, - "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": 576, "column": 43, - "stop_line": 576, - "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`", + "name": "bad-assignment", + "concise_description": "`str` is not assignable to dict key `filename` with type `datetime`", "severity": "error" }, { - "line": 578, "column": 51, - "stop_line": 578, - "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`", + "name": "bad-assignment", + "concise_description": "`Any | None` is not assignable to dict key `archive_filename` with type `datetime`", "severity": "error" }, { - "line": 597, "column": 21, - "stop_line": 597, - "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": 598, "column": 21, - "stop_line": 598, - "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": 601, "column": 46, - "stop_line": 601, - "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": 602, "column": 28, - "stop_line": 602, - "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": 602, "column": 29, - "stop_line": 602, - "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`\n Protocol `PathLike` requires attribute `__fspath__`", "concise_description": "Argument `Path | None` is not assignable to parameter `src` with type `PathLike[str] | str` in function `shutil.move`", "severity": "error" }, { - "line": 622, "column": 20, - "stop_line": 622, - "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": 624, "column": 55, - "stop_line": 624, - "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": 626, "column": 20, - "stop_line": 626, - "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": 626, "column": 37, - "stop_line": 626, - "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": 628, "column": 32, - "stop_line": 628, - "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": 628, "column": 33, - "stop_line": 628, - "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`\n Protocol `PathLike` requires attribute `__fspath__`", "concise_description": "Argument `Path | None` is not assignable to parameter `src` with type `PathLike[str] | str` in function `shutil.move`", "severity": "error" }, { - "line": 628, "column": 56, - "stop_line": 628, - "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": 642, "column": 33, - "stop_line": 642, - "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": 643, "column": 41, - "stop_line": 643, - "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": 653, "column": 49, - "stop_line": 653, - "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": 655, "column": 22, - "stop_line": 655, - "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__`\n Protocol `PathLike` requires attribute `__fspath__`", "concise_description": "Argument `Path | None` is not assignable to parameter `*args` with type `PathLike[str] | str` in function `pathlib.Path.__new__`", "severity": "error" }, { - "line": 682, "column": 23, - "stop_line": 682, - "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": 686, - "column": 5, - "stop_line": 686, - "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": 690, - "column": 24, - "stop_line": 690, - "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": 707, - "column": 13, - "stop_line": 707, - "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": 721, "column": 12, - "stop_line": 721, - "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": 725, "column": 13, - "stop_line": 725, - "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": 764, "column": 27, - "stop_line": 764, - "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": 784, "column": 17, - "stop_line": 784, - "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": 884, "column": 13, - "stop_line": 884, - "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": 884, "column": 60, - "stop_line": 884, - "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": 931, "column": 29, - "stop_line": 931, - "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": 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": 965, + "column": 25, + "path": "src/documents/signals/handlers.py", + "name": "bad-argument-type", + "concise_description": "Argument `Path | None` is not assignable to parameter `original_file` with type `Path` in function `documents.workflows.actions.execute_email_action`", + "severity": "error" + }, + { + "column": 25, + "path": "src/documents/signals/handlers.py", + "name": "bad-argument-type", + "concise_description": "Argument `Path | None` is not assignable to parameter `original_file` with type `Path` in function `documents.workflows.actions.execute_webhook_action`", + "severity": "error" + }, + { + "column": 25, + "path": "src/documents/signals/handlers.py", + "name": "missing-attribute", + "concise_description": "Object of class `Task` has no attribute `delay_on_commit`", + "severity": "error" + }, + { + "column": 41, + "path": "src/documents/signals/handlers.py", + "name": "missing-attribute", + "concise_description": "Object of class `ConsumableDocument` has no attribute `pk`", + "severity": "error" + }, + { "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": 1190, "column": 49, - "stop_line": 1190, - "stop_column": 86, "path": "src/documents/signals/handlers.py", - "code": -2, "name": "no-matching-overload", - "description": "No matching overload found for function `dict.get` called with arguments: (Unknown | None, Literal[PaperlessTask.Status.FAILURE])\n Possible overloads:\n (key: str, default: None = None, /) -> PaperlessTask.Status | None\n (key: str, default: PaperlessTask.Status, /) -> PaperlessTask.Status [closest match]\n (key: str, default: _T, /) -> PaperlessTask.Status | _T", "concise_description": "No matching overload found for function `dict.get` called with arguments: (Unknown | None, Literal[PaperlessTask.Status.FAILURE])", "severity": "error" }, { - "line": 1329, "column": 13, - "stop_line": 1329, - "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": 174, + "column": 13, + "path": "src/documents/signals/handlers.py", + "name": "missing-attribute", + "concise_description": "Object of class `BaseDatabaseWrapper` has no attribute `close_pool`", + "severity": "error" + }, + { "column": 21, - "stop_line": 174, - "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": 218, "column": 16, - "stop_line": 218, - "stop_column": 19, "path": "src/documents/tasks.py", - "code": -2, "name": "bad-return", - "description": "Returned type `str | None` is not assignable to declared return type `ConsumeFileDuplicateResult | ConsumeFileStoppedResult | ConsumeFileSuccessResult | None`", "concise_description": "Returned type `str | None` is not assignable to declared return type `ConsumeFileDuplicateResult | ConsumeFileStoppedResult | ConsumeFileSuccessResult | None`", "severity": "error" }, { - "line": 321, "column": 49, - "stop_line": 321, - "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": 337, - "column": 25, - "stop_line": 337, - "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": 361, - "column": 25, - "stop_line": 361, - "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": 374, - "column": 54, - "stop_line": 374, - "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": 375, - "column": 36, - "stop_line": 375, - "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": 375, "column": 37, - "stop_line": 375, - "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`\n Protocol `PathLike` requires attribute `__fspath__`", "concise_description": "Argument `Path | None` is not assignable to parameter `src` with type `PathLike[str] | str` in function `shutil.move`", "severity": "error" }, { - "line": 552, "column": 33, - "stop_line": 552, - "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": 1, + "path": "src/documents/templating/filepath.py", + "name": "unsupported-operation", + "concise_description": "Cannot set item in `dict[str, ((obj: Sized, /) -> int) | ((s: Any, /) -> Markup) | ((s: Any, /) -> str) | ((env: Environment, s: str, length: int = 255, killwords: bool = False, end: str = '...', leeway: int | None = None) -> str) | ((environment: Environment, obj: Any, name: str) -> Undefined | Any) | ((environment: Environment, s: str, width: int = 79, break_long_words: bool = True, wrapstring: str | None = None, break_on_hyphens: bool = True) -> str) | ((eval_ctx: EvalContext, d: Mapping[str, Any], autospace: bool = True) -> str) | ((eval_ctx: EvalContext, s: str, old: str, new: str, count: int | None = None) -> str) | ((eval_ctx: EvalContext, value: str, trim_url_limit: int | None = None, nofollow: bool = False, target: str | None = None, rel: str | None = None, extra_schemes: Iterable[str] | None = None) -> str) | ((eval_ctx: EvalContext, value: Any, indent: int | None = None) -> Markup) | ((s: str) -> int) | ((s: str) -> str) | ((s: str, width: int | str = 4, first: bool = False, blank: bool = False) -> str) | ((value: HasHTML | str) -> Markup) | ((value: HasHTML | str) -> str) | ((value: Iterable[tuple[str, Any]] | Mapping[str, Any] | str) -> str) | ((value: float | int | str, binary: bool = False) -> str) | ((value: float, precision: int = 0, method: Literal['ceil', 'common', 'floor'] = 'common') -> float) | ((value: str) -> Markup) | ((value: str, chars: str | None = None) -> str) | ((value: str, width: int = 80) -> str) | ((value: str, *args: Any, **kwargs: Any) -> str) | ((value: Any) -> str) | ((value: Any, default: float = 0.0) -> float) | ((value: Any, default: int = 0, base: int = 10) -> int) | ((*args: Unknown, **kwargs: Unknown) -> Unknown) | Overload[(context: Context, value: AsyncIterable[Any] | Iterable[Any], name: str, *args: Any, **kwargs: Any) -> Iterable[Any], (context: Context, value: AsyncIterable[Any] | Iterable[Any], *, attribute: str = ..., default: Any | None = None) -> Iterable[Any]] | Overload[(value: str) -> str, [V](value: Iterable[V]) -> Iterable[V]] | [_T](x: SupportsAbs[_T], /) -> _T | [K, V](value: Mapping[K, V] | Undefined) -> Iterator[tuple[K, V]] | [K, V](value: Mapping[K, V], case_sensitive: bool = False, by: Literal['key', 'value'] = 'key', reverse: bool = False) -> list[tuple[K, V]] | [V](environment: Environment, value: Iterable[V], reverse: bool = False, case_sensitive: bool = False, attribute: int | str | None = None) -> list[V] | [V](environment: Environment, value: Iterable[V], case_sensitive: bool = False, attribute: int | str | None = None) -> Undefined | V | [V](value: V, default_value: V = '', boolean: bool = False) -> V | [V](environment: Environment, seq: Reversible[V]) -> Undefined | V | [V](context: Context, seq: Sequence[V]) -> Undefined | V | [V](value: Iterable[V], linecount: int, fill_with: V | None = None) -> Iterator[list[V]]]`", + "severity": "error" + }, + { "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": 1, + "path": "src/documents/templating/workflows.py", + "name": "unsupported-operation", + "concise_description": "Cannot set item in `dict[str, ((obj: Sized, /) -> int) | ((s: Any, /) -> Markup) | ((s: Any, /) -> str) | ((env: Environment, s: str, length: int = 255, killwords: bool = False, end: str = '...', leeway: int | None = None) -> str) | ((environment: Environment, obj: Any, name: str) -> Undefined | Any) | ((environment: Environment, s: str, width: int = 79, break_long_words: bool = True, wrapstring: str | None = None, break_on_hyphens: bool = True) -> str) | ((eval_ctx: EvalContext, d: Mapping[str, Any], autospace: bool = True) -> str) | ((eval_ctx: EvalContext, s: str, old: str, new: str, count: int | None = None) -> str) | ((eval_ctx: EvalContext, value: str, trim_url_limit: int | None = None, nofollow: bool = False, target: str | None = None, rel: str | None = None, extra_schemes: Iterable[str] | None = None) -> str) | ((eval_ctx: EvalContext, value: Any, indent: int | None = None) -> Markup) | ((s: str) -> int) | ((s: str) -> str) | ((s: str, width: int | str = 4, first: bool = False, blank: bool = False) -> str) | ((value: HasHTML | str) -> Markup) | ((value: HasHTML | str) -> str) | ((value: Iterable[tuple[str, Any]] | Mapping[str, Any] | str) -> str) | ((value: float | int | str, binary: bool = False) -> str) | ((value: float, precision: int = 0, method: Literal['ceil', 'common', 'floor'] = 'common') -> float) | ((value: str) -> Markup) | ((value: str, chars: str | None = None) -> str) | ((value: str, width: int = 80) -> str) | ((value: str, *args: Any, **kwargs: Any) -> str) | ((value: Any) -> str) | ((value: Any, default: float = 0.0) -> float) | ((value: Any, default: int = 0, base: int = 10) -> int) | ((*args: Unknown, **kwargs: Unknown) -> Unknown) | Overload[(context: Context, value: AsyncIterable[Any] | Iterable[Any], name: str, *args: Any, **kwargs: Any) -> Iterable[Any], (context: Context, value: AsyncIterable[Any] | Iterable[Any], *, attribute: str = ..., default: Any | None = None) -> Iterable[Any]] | Overload[(value: str) -> str, [V](value: Iterable[V]) -> Iterable[V]] | [_T](x: SupportsAbs[_T], /) -> _T | [K, V](value: Mapping[K, V] | Undefined) -> Iterator[tuple[K, V]] | [K, V](value: Mapping[K, V], case_sensitive: bool = False, by: Literal['key', 'value'] = 'key', reverse: bool = False) -> list[tuple[K, V]] | [V](environment: Environment, value: Iterable[V], reverse: bool = False, case_sensitive: bool = False, attribute: int | str | None = None) -> list[V] | [V](environment: Environment, value: Iterable[V], case_sensitive: bool = False, attribute: int | str | None = None) -> Undefined | V | [V](value: V, default_value: V = '', boolean: bool = False) -> V | [V](environment: Environment, seq: Reversible[V]) -> Undefined | V | [V](context: Context, seq: Sequence[V]) -> Undefined | V | [V](value: Iterable[V], linecount: int, fill_with: V | None = None) -> Iterator[list[V]]]`", + "severity": "error" + }, + { "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": 86, - "column": 12, - "stop_line": 95, - "stop_column": 6, - "path": "src/documents/tests/conftest.py", - "code": -2, - "name": "bad-return", - "description": "Returned type `DocumentFactory` is not assignable to declared return type `Document`", - "concise_description": "Returned type `DocumentFactory` is not assignable to declared return type `Document`", - "severity": "error" - }, - { - "line": 134, - "column": 12, - "stop_line": 134, - "stop_column": 49, - "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": 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 `stdout` with type `OutputWrapper`", "concise_description": "`StringIO` is not assignable to attribute `stdout` with type `OutputWrapper`", "severity": "error" }, { - "line": 99, "column": 22, - "stop_line": 99, - "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": 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 `stdout` with type `OutputWrapper`", "concise_description": "`StringIO` is not assignable to attribute `stdout` with type `OutputWrapper`", "severity": "error" }, { - "line": 111, "column": 22, - "stop_line": 111, - "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": 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 `stdout` with type `OutputWrapper`", "concise_description": "`StringIO` is not assignable to attribute `stdout` with type `OutputWrapper`", "severity": "error" }, { - "line": 238, "column": 26, - "stop_line": 238, - "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": 250, "column": 26, - "stop_line": 250, - "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": 251, "column": 26, - "stop_line": 251, - "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": 271, "column": 26, - "stop_line": 271, - "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": 272, "column": 26, - "stop_line": 272, - "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": 292, "column": 26, - "stop_line": 292, - "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": 293, "column": 26, - "stop_line": 293, - "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": 305, "column": 26, - "stop_line": 305, - "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": 306, "column": 26, - "stop_line": 306, - "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": 196, - "column": 14, - "stop_line": 196, - "stop_column": 29, - "path": "src/documents/tests/management/test_management_sanity_checker.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `DocumentFactory` has no attribute `source_path`", - "concise_description": "Object of class `DocumentFactory` has no attribute `source_path`", - "severity": "error" - }, - { - "line": 197, - "column": 14, - "stop_line": 197, - "stop_column": 32, - "path": "src/documents/tests/management/test_management_sanity_checker.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `DocumentFactory` has no attribute `thumbnail_path`", - "concise_description": "Object of class `DocumentFactory` has no attribute `thumbnail_path`", - "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": 529, - "column": 16, - "stop_line": 529, - "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": 540, - "column": 16, - "stop_line": 540, - "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": 551, - "column": 16, - "stop_line": 551, - "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": 563, - "column": 16, - "stop_line": 563, - "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": 195, - "column": 30, - "stop_line": 195, - "stop_column": 43, - "path": "src/documents/tests/test_api_app_config.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `path`", - "concise_description": "Object of class `NoneType` has no attribute `path`", - "severity": "error" - }, - { - "line": 208, - "column": 31, - "stop_line": 208, - "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 `path`", - "concise_description": "Object of class `NoneType` has no attribute `path`", - "severity": "error" - }, - { - "line": 241, - "column": 25, - "stop_line": 241, - "stop_column": 45, - "path": "src/documents/tests/test_api_app_config.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `path`", - "concise_description": "Object of class `NoneType` has no attribute `path`", - "severity": "error" - }, - { - "line": 277, - "column": 25, - "stop_line": 277, - "stop_column": 45, - "path": "src/documents/tests/test_api_app_config.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `path`", - "concise_description": "Object of class `NoneType` has no attribute `path`", - "severity": "error" - }, - { - "line": 278, - "column": 27, - "stop_line": 278, - "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": 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": 17, - "stop_line": 279, - "stop_column": 34, - "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": 531, - "column": 30, - "stop_line": 531, - "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": 572, - "column": 17, - "stop_line": 572, - "stop_column": 34, - "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": 591, - "column": 17, - "stop_line": 591, - "stop_column": 34, - "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": 641, - "column": 30, - "stop_line": 641, - "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": 658, - "column": 30, - "stop_line": 658, - "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": 659, - "column": 17, - "stop_line": 659, - "stop_column": 34, - "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": 702, - "column": 30, - "stop_line": 702, - "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": 742, - "column": 38, - "stop_line": 742, - "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": 794, - "column": 30, - "stop_line": 794, - "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": 865, - "column": 30, - "stop_line": 865, - "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": 900, - "column": 30, - "stop_line": 900, - "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": 941, - "column": 30, - "stop_line": 941, - "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": 978, - "column": 30, - "stop_line": 978, - "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": 1073, - "column": 17, - "stop_line": 1073, - "stop_column": 35, - "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": 1076, - "column": 17, - "stop_line": 1076, - "stop_column": 35, - "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": 1079, - "column": 17, - "stop_line": 1079, - "stop_column": 35, - "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": 1098, - "column": 17, - "stop_line": 1098, - "stop_column": 35, - "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": 17, - "stop_line": 1117, - "stop_column": 35, - "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": 1120, - "column": 18, - "stop_line": 1120, - "stop_column": 36, - "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": 1123, - "column": 18, - "stop_line": 1123, - "stop_column": 36, - "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": 1137, - "column": 18, - "stop_line": 1137, - "stop_column": 36, - "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": 1140, - "column": 18, - "stop_line": 1140, - "stop_column": 36, - "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": 1143, - "column": 18, - "stop_line": 1143, - "stop_column": 36, - "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": 1170, - "column": 18, - "stop_line": 1170, - "stop_column": 36, - "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": 1266, - "column": 13, - "stop_line": 1266, - "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__`\n Protocol `PathLike` requires attribute `__fspath__`", - "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__`\n Protocol `PathLike` requires attribute `__fspath__`", - "concise_description": "Argument `Path | None` is not assignable to parameter `*args` with type `PathLike[str] | str` in function `pathlib.Path.__new__`", - "severity": "error" - }, - { - "line": 1468, - "column": 13, - "stop_line": 1468, - "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": 1732, - "column": 31, - "stop_line": 1732, - "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": 1879, - "column": 9, - "stop_line": 1879, - "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": 2063, - "column": 20, - "stop_line": 2063, - "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": 2556, - "column": 31, - "stop_line": 2556, - "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": 2576, - "column": 31, - "stop_line": 2576, - "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": 2594, - "column": 26, - "stop_line": 2594, - "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": 2606, - "column": 26, - "stop_line": 2606, - "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": 2614, - "column": 26, - "stop_line": 2614, - "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": 2615, - "column": 26, - "stop_line": 2615, - "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": 2623, - "column": 26, - "stop_line": 2623, - "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": 2975, - "column": 27, - "stop_line": 2975, - "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": 2976, - "column": 33, - "stop_line": 2976, - "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": 2977, - "column": 35, - "stop_line": 2977, - "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": 2978, - "column": 34, - "stop_line": 2978, - "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": 3676, - "column": 20, - "stop_line": 3676, - "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": 4016, - "column": 23, - "stop_line": 4016, - "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": 27, - "column": 16, - "stop_line": 27, - "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": 30, - "column": 16, - "stop_line": 30, - "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": 528, - "column": 16, - "stop_line": 528, - "stop_column": 39, - "path": "src/documents/tests/test_api_filter_by_custom_fields.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": 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": 14, - "stop_line": 83, - "stop_column": 33, - "path": "src/documents/tests/test_api_schema.py", - "code": -2, - "name": "bad-index", - "description": "Cannot index into `SchemaGenerator`\n Object of class `SchemaGenerator` has no attribute `__getitem__`", - "concise_description": "Cannot index into `SchemaGenerator`", - "severity": "error" - }, - { - "line": 90, - "column": 14, - "stop_line": 90, - "stop_column": 33, - "path": "src/documents/tests/test_api_schema.py", - "code": -2, - "name": "bad-index", - "description": "Cannot index into `SchemaGenerator`\n Object of class `SchemaGenerator` has no attribute `__getitem__`", - "concise_description": "Cannot index into `SchemaGenerator`", - "severity": "error" - }, - { - "line": 96, - "column": 21, - "stop_line": 96, - "stop_column": 45, - "path": "src/documents/tests/test_api_schema.py", - "code": -2, - "name": "bad-index", - "description": "Cannot index into `SchemaGenerator`\n Object of class `SchemaGenerator` has no attribute `__getitem__`", - "concise_description": "Cannot index into `SchemaGenerator`", - "severity": "error" - }, - { - "line": 107, - "column": 14, - "stop_line": 107, - "stop_column": 33, - "path": "src/documents/tests/test_api_schema.py", - "code": -2, - "name": "bad-index", - "description": "Cannot index into `SchemaGenerator`\n Object of class `SchemaGenerator` has no attribute `__getitem__`", - "concise_description": "Cannot index into `SchemaGenerator`", - "severity": "error" - }, - { - "line": 119, - "column": 14, - "stop_line": 119, - "stop_column": 33, - "path": "src/documents/tests/test_api_schema.py", - "code": -2, - "name": "bad-index", - "description": "Cannot index into `SchemaGenerator`\n Object of class `SchemaGenerator` has no attribute `__getitem__`", - "concise_description": "Cannot index into `SchemaGenerator`", - "severity": "error" - }, - { - "line": 126, - "column": 14, - "stop_line": 126, - "stop_column": 33, - "path": "src/documents/tests/test_api_schema.py", - "code": -2, - "name": "bad-index", - "description": "Cannot index into `SchemaGenerator`\n Object of class `SchemaGenerator` has no attribute `__getitem__`", - "concise_description": "Cannot index into `SchemaGenerator`", - "severity": "error" - }, - { - "line": 132, - "column": 34, - "stop_line": 132, - "stop_column": 58, - "path": "src/documents/tests/test_api_schema.py", - "code": -2, - "name": "bad-index", - "description": "Cannot index into `SchemaGenerator`\n Object of class `SchemaGenerator` has no attribute `__getitem__`", - "concise_description": "Cannot index into `SchemaGenerator`", - "severity": "error" - }, - { - "line": 144, - "column": 17, - "stop_line": 144, - "stop_column": 41, - "path": "src/documents/tests/test_api_schema.py", - "code": -2, - "name": "bad-index", - "description": "Cannot index into `SchemaGenerator`\n Object of class `SchemaGenerator` has no attribute `__getitem__`", - "concise_description": "Cannot index into `SchemaGenerator`", - "severity": "error" - }, - { - "line": 155, - "column": 17, - "stop_line": 155, - "stop_column": 41, - "path": "src/documents/tests/test_api_schema.py", - "code": -2, - "name": "bad-index", - "description": "Cannot index into `SchemaGenerator`\n Object of class `SchemaGenerator` has no attribute `__getitem__`", - "concise_description": "Cannot index into `SchemaGenerator`", - "severity": "error" - }, - { - "line": 160, - "column": 26, - "stop_line": 160, - "stop_column": 50, - "path": "src/documents/tests/test_api_schema.py", - "code": -2, - "name": "bad-index", - "description": "Cannot index into `SchemaGenerator`\n Object of class `SchemaGenerator` has no attribute `__getitem__`", - "concise_description": "Cannot index into `SchemaGenerator`", - "severity": "error" - }, - { - "line": 190, - "column": 14, - "stop_line": 190, - "stop_column": 33, - "path": "src/documents/tests/test_api_schema.py", - "code": -2, - "name": "bad-index", - "description": "Cannot index into `SchemaGenerator`\n Object of class `SchemaGenerator` has no attribute `__getitem__`", - "concise_description": "Cannot index into `SchemaGenerator`", - "severity": "error" - }, - { - "line": 200, - "column": 14, - "stop_line": 200, - "stop_column": 33, - "path": "src/documents/tests/test_api_schema.py", - "code": -2, - "name": "bad-index", - "description": "Cannot index into `SchemaGenerator`\n Object of class `SchemaGenerator` has no attribute `__getitem__`", - "concise_description": "Cannot index into `SchemaGenerator`", - "severity": "error" - }, - { - "line": 217, - "column": 14, - "stop_line": 217, - "stop_column": 33, - "path": "src/documents/tests/test_api_schema.py", - "code": -2, - "name": "bad-index", - "description": "Cannot index into `SchemaGenerator`\n Object of class `SchemaGenerator` has no attribute `__getitem__`", - "concise_description": "Cannot index into `SchemaGenerator`", - "severity": "error" - }, - { - "line": 222, - "column": 20, - "stop_line": 222, - "stop_column": 44, - "path": "src/documents/tests/test_api_schema.py", - "code": -2, - "name": "bad-index", - "description": "Cannot index into `SchemaGenerator`\n Object of class `SchemaGenerator` has no attribute `__getitem__`", - "concise_description": "Cannot index into `SchemaGenerator`", - "severity": "error" - }, - { - "line": 251, - "column": 14, - "stop_line": 251, - "stop_column": 33, - "path": "src/documents/tests/test_api_schema.py", - "code": -2, - "name": "bad-index", - "description": "Cannot index into `SchemaGenerator`\n Object of class `SchemaGenerator` has no attribute `__getitem__`", - "concise_description": "Cannot index into `SchemaGenerator`", - "severity": "error" - }, - { - "line": 257, - "column": 14, - "stop_line": 257, - "stop_column": 33, - "path": "src/documents/tests/test_api_schema.py", - "code": -2, - "name": "bad-index", - "description": "Cannot index into `SchemaGenerator`\n Object of class `SchemaGenerator` has no attribute `__getitem__`", - "concise_description": "Cannot index into `SchemaGenerator`", - "severity": "error" - }, - { - "line": 262, - "column": 21, - "stop_line": 262, - "stop_column": 45, - "path": "src/documents/tests/test_api_schema.py", - "code": -2, - "name": "bad-index", - "description": "Cannot index into `SchemaGenerator`\n Object of class `SchemaGenerator` has no attribute `__getitem__`", - "concise_description": "Cannot index into `SchemaGenerator`", - "severity": "error" - }, - { - "line": 1647, - "column": 25, - "stop_line": 1647, - "stop_column": 58, - "path": "src/documents/tests/test_api_search.py", - "code": -2, - "name": "unsupported-operation", - "description": "`<` is not supported between `int` and `None`\n Argument `None` is not assignable to parameter `value` with type `int` in function `int.__lt__`", - "concise_description": "`<` is not supported between `int` and `None`", - "severity": "error" - }, - { - "line": 1647, - "column": 25, - "stop_line": 1647, - "stop_column": 58, - "path": "src/documents/tests/test_api_search.py", - "code": -2, - "name": "unsupported-operation", - "description": "`<` is not supported between `None` and `int`\n Argument `None` is not assignable to parameter `value` with type `int` in function `int.__gt__`", - "concise_description": "`<` is not supported between `None` and `int`", - "severity": "error" - }, - { - "line": 1647, - "column": 25, - "stop_line": 1647, - "stop_column": 58, - "path": "src/documents/tests/test_api_search.py", - "code": -2, - "name": "unsupported-operation", - "description": "`<` is not supported between `None` and `None`\n Cannot find `__lt__` or `__gt__`", - "concise_description": "`<` is not supported between `None` and `None`", - "severity": "error" - }, - { - "line": 1647, - "column": 28, - "stop_line": 1647, - "stop_column": 40, - "path": "src/documents/tests/test_api_search.py", - "code": -2, - "name": "bad-specialization", - "description": "`int | None` is not assignable to upper bound `SupportsDunderGT[Any] | SupportsDunderLT[Any]` of type variable `SupportsRichComparisonT`", - "concise_description": "`int | None` is not assignable to upper bound `SupportsDunderGT[Any] | SupportsDunderLT[Any]` of type variable `SupportsRichComparisonT`", - "severity": "error" - }, - { - "line": 1647, - "column": 46, - "stop_line": 1647, - "stop_column": 58, - "path": "src/documents/tests/test_api_search.py", - "code": -2, - "name": "bad-specialization", - "description": "`int | None` is not assignable to upper bound `SupportsDunderGT[Any] | SupportsDunderLT[Any]` of type variable `SupportsRichComparisonT`", - "concise_description": "`int | None` is not assignable to upper bound `SupportsDunderGT[Any] | SupportsDunderLT[Any]` of type variable `SupportsRichComparisonT`", - "severity": "error" - }, - { - "line": 106, - "column": 47, - "stop_line": 106, - "stop_column": 72, - "path": "src/documents/tests/test_api_tasks.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `dict[str, Faker]` is not assignable to parameter `data` with type `Iterable[tuple[str, Iterable[bytes | float | str] | bytes | float | str]] | Mapping[str, Iterable[bytes | float | str] | bytes | float | str] | None` in function `rest_framework.test.APIClient.get`", - "concise_description": "Argument `dict[str, Faker]` is not assignable to parameter `data` with type `Iterable[tuple[str, Iterable[bytes | float | str] | bytes | float | str]] | Mapping[str, Iterable[bytes | float | str] | bytes | float | str] | None` in function `rest_framework.test.APIClient.get`", - "severity": "error" - }, - { - "line": 491, - "column": 24, - "stop_line": 491, - "stop_column": 32, - "path": "src/documents/tests/test_api_tasks.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `PaperlessTaskFactory` has no attribute `id`", - "concise_description": "Object of class `PaperlessTaskFactory` has no attribute `id`", - "severity": "error" - }, - { - "line": 491, - "column": 34, - "stop_line": 491, - "stop_column": 42, - "path": "src/documents/tests/test_api_tasks.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `PaperlessTaskFactory` has no attribute `id`", - "concise_description": "Object of class `PaperlessTaskFactory` has no attribute `id`", - "severity": "error" - }, - { - "line": 506, - "column": 24, - "stop_line": 506, - "stop_column": 31, - "path": "src/documents/tests/test_api_tasks.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `PaperlessTaskFactory` has no attribute `id`", - "concise_description": "Object of class `PaperlessTaskFactory` has no attribute `id`", - "severity": "error" - }, - { - "line": 521, - "column": 24, - "stop_line": 521, - "stop_column": 31, - "path": "src/documents/tests/test_api_tasks.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `PaperlessTaskFactory` has no attribute `id`", - "concise_description": "Object of class `PaperlessTaskFactory` has no attribute `id`", - "severity": "error" - }, - { - "line": 541, - "column": 24, - "stop_line": 541, - "stop_column": 31, - "path": "src/documents/tests/test_api_tasks.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `PaperlessTaskFactory` has no attribute `id`", - "concise_description": "Object of class `PaperlessTaskFactory` has no attribute `id`", - "severity": "error" - }, - { - "line": 584, - "column": 41, - "stop_line": 584, - "stop_column": 52, - "path": "src/documents/tests/test_api_tasks.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `PaperlessTaskFactory` has no attribute `pk`", - "concise_description": "Object of class `PaperlessTaskFactory` has no attribute `pk`", - "severity": "error" - }, - { - "line": 825, - "column": 42, - "stop_line": 825, - "stop_column": 48, - "path": "src/documents/tests/test_api_tasks.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `DocumentFactory` has no attribute `pk`", - "concise_description": "Object of class `DocumentFactory` has no attribute `pk`", - "severity": "error" - }, - { - "line": 833, - "column": 34, - "stop_line": 833, - "stop_column": 40, - "path": "src/documents/tests/test_api_tasks.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `DocumentFactory` has no attribute `pk`", - "concise_description": "Object of class `DocumentFactory` has no attribute `pk`", - "severity": "error" - }, - { - "line": 845, - "column": 42, - "stop_line": 845, - "stop_column": 48, - "path": "src/documents/tests/test_api_tasks.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `DocumentFactory` has no attribute `pk`", - "concise_description": "Object of class `DocumentFactory` has no attribute `pk`", - "severity": "error" - }, - { - "line": 864, - "column": 42, - "stop_line": 864, - "stop_column": 48, - "path": "src/documents/tests/test_api_tasks.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `DocumentFactory` has no attribute `pk`", - "concise_description": "Object of class `DocumentFactory` has no attribute `pk`", - "severity": "error" - }, - { - "line": 880, - "column": 52, - "stop_line": 880, - "stop_column": 55, - "path": "src/documents/tests/test_api_tasks.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `DocumentFactory` is not assignable to parameter `obj` with type `Model | None` in function `guardian.shortcuts.assign_perm`", - "concise_description": "Argument `DocumentFactory` is not assignable to parameter `obj` with type `Model | None` in function `guardian.shortcuts.assign_perm`", - "severity": "error" - }, - { - "line": 884, - "column": 42, - "stop_line": 884, - "stop_column": 48, - "path": "src/documents/tests/test_api_tasks.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `DocumentFactory` has no attribute `pk`", - "concise_description": "Object of class `DocumentFactory` has no attribute `pk`", - "severity": "error" - }, - { - "line": 892, - "column": 34, - "stop_line": 892, - "stop_column": 40, - "path": "src/documents/tests/test_api_tasks.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `DocumentFactory` has no attribute `pk`", - "concise_description": "Object of class `DocumentFactory` has no attribute `pk`", - "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": 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": 622, - "column": 21, - "stop_line": 622, - "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": 658, - "column": 5, - "stop_line": 658, - "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": 659, - "column": 45, - "stop_line": 659, - "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": 663, - "column": 13, - "stop_line": 663, - "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": 664, - "column": 13, - "stop_line": 664, - "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": 817, - "column": 5, - "stop_line": 817, - "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": 818, - "column": 45, - "stop_line": 818, - "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": 822, - "column": 13, - "stop_line": 822, - "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": 823, - "column": 13, - "stop_line": 823, - "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": 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": 322, - "column": 17, - "stop_line": 322, - "stop_column": 40, - "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": 17, - "stop_line": 339, - "stop_column": 40, - "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": 342, - "column": 17, - "stop_line": 342, - "stop_column": 40, - "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": 366, - "column": 17, - "stop_line": 366, - "stop_column": 40, - "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": 369, - "column": 17, - "stop_line": 369, - "stop_column": 40, - "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": 460, - "column": 48, - "stop_line": 460, - "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": 466, - "column": 26, - "stop_line": 466, - "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": 504, - "column": 48, - "stop_line": 504, - "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": 510, - "column": 26, - "stop_line": 510, - "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": 525, - "column": 19, - "stop_line": 525, - "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": 534, - "column": 27, - "stop_line": 534, - "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": 543, - "column": 19, - "stop_line": 543, - "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": 552, - "column": 27, - "stop_line": 552, - "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": 561, - "column": 19, - "stop_line": 561, - "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": 594, - "column": 19, - "stop_line": 594, - "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": 599, - "column": 27, - "stop_line": 599, - "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": 668, - "column": 24, - "stop_line": 668, - "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": 904, - "column": 24, - "stop_line": 904, - "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": 1449, - "column": 20, - "stop_line": 1449, - "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": 1525, - "column": 20, - "stop_line": 1525, - "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": 1585, - "column": 20, - "stop_line": 1585, - "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, + "path": "src/documents/tests/search/test_cjk_clause.py", "name": "missing-module-attribute", - "description": "Could not import `InconsistentVersionWarning` from `sklearn.exceptions`", - "concise_description": "Could not import `InconsistentVersionWarning` from `sklearn.exceptions`", + "concise_description": "Could not import `SettingsWrapper` from `pytest_django.fixtures`", "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": 267, - "column": 27, - "stop_line": 267, - "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[str] | str` in function `documents.tests.utils.FileSystemAssertsMixin.assertIsFile`\n Protocol `PathLike` requires attribute `__fspath__`", - "concise_description": "Argument `Path | None` is not assignable to parameter `path` with type `PathLike[str] | str` in function `documents.tests.utils.FileSystemAssertsMixin.assertIsFile`", - "severity": "error" - }, - { - "line": 291, - "column": 28, - "stop_line": 291, - "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": 358, - "column": 26, - "stop_line": 358, - "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": 373, - "column": 26, - "stop_line": 373, - "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": 388, - "column": 26, - "stop_line": 388, - "stop_column": 50, - "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": 433, - "column": 56, - "stop_line": 433, - "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`", - "concise_description": "Object of class `Document` has no attribute `custom_fields`", - "severity": "error" - }, - { - "line": 438, - "column": 26, - "stop_line": 438, - "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`", - "concise_description": "Object of class `Document` has no attribute `custom_fields`", - "severity": "error" - }, - { - "line": 440, - "column": 13, - "stop_line": 440, - "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`", - "concise_description": "Object of class `Document` has no attribute `custom_fields`", - "severity": "error" - }, - { - "line": 689, - "column": 34, - "stop_line": 689, - "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": 691, - "column": 17, - "stop_line": 691, - "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": 695, - "column": 27, - "stop_line": 695, - "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[str] | str` in function `documents.tests.utils.FileSystemAssertsMixin.assertIsFile`\n Protocol `PathLike` requires attribute `__fspath__`", - "concise_description": "Argument `Path | None` is not assignable to parameter `path` with type `PathLike[str] | str` in function `documents.tests.utils.FileSystemAssertsMixin.assertIsFile`", - "severity": "error" - }, - { - "line": 728, - "column": 27, - "stop_line": 728, - "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[str] | str` in function `documents.tests.utils.FileSystemAssertsMixin.assertIsFile`\n Protocol `PathLike` requires attribute `__fspath__`", - "concise_description": "Argument `Path | None` is not assignable to parameter `path` with type `PathLike[str] | str` in function `documents.tests.utils.FileSystemAssertsMixin.assertIsFile`", - "severity": "error" - }, - { - "line": 791, - "column": 13, - "stop_line": 791, - "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": 801, - "column": 13, - "stop_line": 801, - "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": 853, - "column": 13, - "stop_line": 853, - "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": 863, - "column": 13, - "stop_line": 863, - "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": 906, - "column": 17, - "stop_line": 906, - "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": 916, - "column": 17, - "stop_line": 916, - "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": 1088, - "column": 26, - "stop_line": 1088, - "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": 1089, - "column": 26, - "stop_line": 1089, - "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": 1091, - "column": 26, - "stop_line": 1091, - "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": 1092, - "column": 26, - "stop_line": 1092, - "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": 1094, - "column": 26, - "stop_line": 1094, - "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": 1095, - "column": 26, - "stop_line": 1095, - "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": 1191, - "column": 15, - "stop_line": 1191, - "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": 1222, - "column": 15, - "stop_line": 1222, - "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": 1253, - "column": 15, - "stop_line": 1253, - "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": 1286, - "column": 15, - "stop_line": 1286, - "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": 1311, - "column": 26, - "stop_line": 1311, - "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": 1436, - "column": 26, - "stop_line": 1436, - "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": 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": 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": 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[str] | str` in function `documents.tests.utils.FileSystemAssertsMixin.assertIsFile`\n Protocol `PathLike` requires attribute `__fspath__`", - "concise_description": "Argument `Path | None` is not assignable to parameter `path` with type `PathLike[str] | 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__`\n Protocol `PathLike` requires attribute `__fspath__`", - "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[str] | str` in function `documents.tests.utils.FileSystemAssertsMixin.assertIsFile`\n Protocol `PathLike` requires attribute `__fspath__`", - "concise_description": "Argument `Path | None` is not assignable to parameter `path` with type `PathLike[str] | 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[str] | str` in function `documents.tests.utils.FileSystemAssertsMixin.assertIsFile`\n Protocol `PathLike` requires attribute `__fspath__`", - "concise_description": "Argument `Path | None` is not assignable to parameter `path` with type `PathLike[str] | 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[str] | str` in function `documents.tests.utils.FileSystemAssertsMixin.assertIsNotFile`\n Protocol `PathLike` requires attribute `__fspath__`", - "concise_description": "Argument `Path | None` is not assignable to parameter `path` with type `PathLike[str] | 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[str] | str` in function `documents.tests.utils.FileSystemAssertsMixin.assertIsFile`\n Protocol `PathLike` requires attribute `__fspath__`", - "concise_description": "Argument `Path | None` is not assignable to parameter `path` with type `PathLike[str] | 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[str] | str` in function `documents.tests.utils.FileSystemAssertsMixin.assertIsFile`\n Protocol `PathLike` requires attribute `__fspath__`", - "concise_description": "Argument `Path | None` is not assignable to parameter `path` with type `PathLike[str] | 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[str] | str` in function `documents.tests.utils.FileSystemAssertsMixin.assertIsFile`\n Protocol `PathLike` requires attribute `__fspath__`", - "concise_description": "Argument `Path | None` is not assignable to parameter `path` with type `PathLike[str] | 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[str] | str` in function `documents.tests.utils.FileSystemAssertsMixin.assertIsFile`\n Protocol `PathLike` requires attribute `__fspath__`", - "concise_description": "Argument `Path | None` is not assignable to parameter `path` with type `PathLike[str] | 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[str] | str` in function `documents.tests.utils.FileSystemAssertsMixin.assertIsFile`\n Protocol `PathLike` requires attribute `__fspath__`", - "concise_description": "Argument `Path | None` is not assignable to parameter `path` with type `PathLike[str] | 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[str] | str` in function `documents.tests.utils.FileSystemAssertsMixin.assertIsFile`\n Protocol `PathLike` requires attribute `__fspath__`", - "concise_description": "Argument `Path | None` is not assignable to parameter `path` with type `PathLike[str] | 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[str] | str` in function `documents.tests.utils.FileSystemAssertsMixin.assertIsFile`\n Protocol `PathLike` requires attribute `__fspath__`", - "concise_description": "Argument `Path | None` is not assignable to parameter `path` with type `PathLike[str] | 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[str] | str` in function `documents.tests.utils.FileSystemAssertsMixin.assertIsNotFile`\n Protocol `PathLike` requires attribute `__fspath__`", - "concise_description": "Argument `Path | None` is not assignable to parameter `path` with type `PathLike[str] | 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[str] | str` in function `documents.tests.utils.FileSystemAssertsMixin.assertIsFile`\n Protocol `PathLike` requires attribute `__fspath__`", - "concise_description": "Argument `Path | None` is not assignable to parameter `path` with type `PathLike[str] | 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[str] | str` in function `documents.tests.utils.FileSystemAssertsMixin.assertIsFile`\n Protocol `PathLike` requires attribute `__fspath__`", - "concise_description": "Argument `Path | None` is not assignable to parameter `path` with type `PathLike[str] | 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[str] | str` in function `documents.tests.utils.FileSystemAssertsMixin.assertIsFile`\n Protocol `PathLike` requires attribute `__fspath__`", - "concise_description": "Argument `Path | None` is not assignable to parameter `path` with type `PathLike[str] | 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__`\n Protocol `PathLike` requires attribute `__fspath__`", - "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__`\n Protocol `PathLike` requires attribute `__fspath__`", - "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__`\n Protocol `PathLike` requires attribute `__fspath__`", - "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[str] | str` in function `documents.tests.utils.FileSystemAssertsMixin.assertIsFile`\n Protocol `PathLike` requires attribute `__fspath__`", - "concise_description": "Argument `Path | None` is not assignable to parameter `path` with type `PathLike[str] | 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__`\n Protocol `PathLike` requires attribute `__fspath__`", - "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[str] | str` in function `documents.tests.utils.FileSystemAssertsMixin.assertIsNotFile`\n Protocol `PathLike` requires attribute `__fspath__`", - "concise_description": "Argument `Path | None` is not assignable to parameter `path` with type `PathLike[str] | 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[str] | str` in function `documents.tests.utils.FileSystemAssertsMixin.assertIsFile`\n Protocol `PathLike` requires attribute `__fspath__`", - "concise_description": "Argument `Path | None` is not assignable to parameter `path` with type `PathLike[str] | 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": 58, - "column": 12, - "stop_line": 58, - "stop_column": 25, - "path": "src/documents/tests/test_management_retagger.py", - "code": -2, - "name": "bad-return", - "description": "Returned type `tuple[StoragePathFactory, StoragePathFactory, StoragePathFactory]` is not assignable to declared return type `tuple[StoragePath, StoragePath, StoragePath]`", - "concise_description": "Returned type `tuple[StoragePathFactory, StoragePathFactory, StoragePathFactory]` is not assignable to declared return type `tuple[StoragePath, StoragePath, StoragePath]`", - "severity": "error" - }, - { - "line": 69, - "column": 12, - "stop_line": 69, - "stop_column": 68, - "path": "src/documents/tests/test_management_retagger.py", - "code": -2, - "name": "bad-return", - "description": "Returned type `tuple[TagFactory, TagFactory, TagFactory, TagFactory, TagFactory]` is not assignable to declared return type `tuple[Tag, Tag, Tag, Tag, Tag]`", - "concise_description": "Returned type `tuple[TagFactory, TagFactory, TagFactory, TagFactory, TagFactory]` is not assignable to declared return type `tuple[Tag, Tag, Tag, Tag, Tag]`", - "severity": "error" - }, - { - "line": 83, - "column": 12, - "stop_line": 83, - "stop_column": 29, - "path": "src/documents/tests/test_management_retagger.py", - "code": -2, - "name": "bad-return", - "description": "Returned type `tuple[CorrespondentFactory, CorrespondentFactory]` is not assignable to declared return type `tuple[Correspondent, Correspondent]`", - "concise_description": "Returned type `tuple[CorrespondentFactory, CorrespondentFactory]` is not assignable to declared return type `tuple[Correspondent, Correspondent]`", - "severity": "error" - }, - { - "line": 97, - "column": 12, - "stop_line": 97, - "stop_column": 31, - "path": "src/documents/tests/test_management_retagger.py", - "code": -2, - "name": "bad-return", - "description": "Returned type `tuple[DocumentTypeFactory, DocumentTypeFactory]` is not assignable to declared return type `tuple[DocumentType, DocumentType]`", - "concise_description": "Returned type `tuple[DocumentTypeFactory, DocumentTypeFactory]` is not assignable to declared return type `tuple[DocumentType, DocumentType]`", - "severity": "error" - }, - { - "line": 116, - "column": 5, - "stop_line": 116, - "stop_column": 12, - "path": "src/documents/tests/test_management_retagger.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `DocumentFactory` has no attribute `tags`", - "concise_description": "Object of class `DocumentFactory` has no attribute `tags`", - "severity": "error" - }, - { - "line": 117, - "column": 5, - "stop_line": 117, - "stop_column": 12, - "path": "src/documents/tests/test_management_retagger.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `DocumentFactory` has no attribute `tags`", - "concise_description": "Object of class `DocumentFactory` has no attribute `tags`", - "severity": "error" - }, - { - "line": 119, - "column": 12, - "stop_line": 119, - "stop_column": 26, - "path": "src/documents/tests/test_management_retagger.py", - "code": -2, - "name": "bad-return", - "description": "Returned type `tuple[DocumentFactory, DocumentFactory, DocumentFactory, DocumentFactory]` is not assignable to declared return type `tuple[Document, Document, Document, Document]`", - "concise_description": "Returned type `tuple[DocumentFactory, DocumentFactory, DocumentFactory, DocumentFactory]` is not assignable to declared return type `tuple[Document, Document, Document, Document]`", - "severity": "error" - }, - { - "line": 265, - "column": 9, - "stop_line": 265, - "stop_column": 28, - "path": "src/documents/tests/test_management_retagger.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `DocumentFactory` has no attribute `refresh_from_db`", - "concise_description": "Object of class `DocumentFactory` has no attribute `refresh_from_db`", - "severity": "error" - }, - { - "line": 337, - "column": 9, - "stop_line": 337, - "stop_column": 28, - "path": "src/documents/tests/test_management_retagger.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `DocumentFactory` has no attribute `refresh_from_db`", - "concise_description": "Object of class `DocumentFactory` has no attribute `refresh_from_db`", - "severity": "error" - }, - { - "line": 416, - "column": 9, - "stop_line": 416, - "stop_column": 28, - "path": "src/documents/tests/test_management_retagger.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `DocumentFactory` has no attribute `refresh_from_db`", - "concise_description": "Object of class `DocumentFactory` has no attribute `refresh_from_db`", - "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": 132, - "column": 14, - "stop_line": 132, - "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__`\n Protocol `PathLike` requires attribute `__fspath__`", - "concise_description": "Argument `Path | None` is not assignable to parameter `*args` with type `PathLike[str] | str` in function `pathlib.Path.__new__`", - "severity": "error" - }, - { - "line": 151, - "column": 24, - "stop_line": 151, - "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__`\n Protocol `PathLike` requires attribute `__fspath__`", - "concise_description": "Argument `Path | None` is not assignable to parameter `*args` with type `PathLike[str] | str` in function `pathlib.Path.__new__`", - "severity": "error" - }, - { - "line": 164, - "column": 14, - "stop_line": 164, - "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__`\n Protocol `PathLike` requires attribute `__fspath__`", - "concise_description": "Argument `Path | None` is not assignable to parameter `*args` with type `PathLike[str] | str` in function `pathlib.Path.__new__`", - "severity": "error" - }, - { - "line": 127, - "column": 28, - "stop_line": 127, - "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": 141, - "column": 28, - "stop_line": 141, - "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": 202, - "column": 29, - "stop_line": 202, - "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": 206, - "column": 28, - "stop_line": 206, - "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": 440, - "column": 30, - "stop_line": 440, - "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": 443, - "column": 26, - "stop_line": 443, - "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": 196, - "column": 9, - "stop_line": 196, - "stop_column": 29, - "path": "src/documents/tests/test_task_signals.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `PaperlessTaskFactory` has no attribute `refresh_from_db`", - "concise_description": "Object of class `PaperlessTaskFactory` has no attribute `refresh_from_db`", - "severity": "error" - }, - { - "line": 198, - "column": 16, - "stop_line": 198, - "stop_column": 33, - "path": "src/documents/tests/test_task_signals.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `PaperlessTaskFactory` has no attribute `date_started`", - "concise_description": "Object of class `PaperlessTaskFactory` has no attribute `date_started`", - "severity": "error" - }, - { - "line": 216, - "column": 16, - "stop_line": 220, - "stop_column": 10, - "path": "src/documents/tests/test_task_signals.py", - "code": -2, - "name": "bad-return", - "description": "Returned type `PaperlessTaskFactory` is not assignable to declared return type `PaperlessTask`", - "concise_description": "Returned type `PaperlessTaskFactory` is not assignable to declared return type `PaperlessTask`", - "severity": "error" - }, - { - "line": 309, - "column": 9, - "stop_line": 309, - "stop_column": 29, - "path": "src/documents/tests/test_task_signals.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `PaperlessTaskFactory` has no attribute `refresh_from_db`", - "concise_description": "Object of class `PaperlessTaskFactory` has no attribute `refresh_from_db`", - "severity": "error" - }, - { - "line": 311, - "column": 16, - "stop_line": 311, - "stop_column": 46, - "path": "src/documents/tests/test_task_signals.py", - "code": -2, - "name": "unsupported-operation", - "description": "`None` is not subscriptable", - "concise_description": "`None` is not subscriptable", - "severity": "error" - }, - { - "line": 312, - "column": 16, - "stop_line": 312, - "stop_column": 49, - "path": "src/documents/tests/test_task_signals.py", - "code": -2, - "name": "unsupported-operation", - "description": "`None` is not subscriptable", - "concise_description": "`None` is not subscriptable", - "severity": "error" - }, - { - "line": 313, - "column": 16, - "stop_line": 313, - "stop_column": 30, - "path": "src/documents/tests/test_task_signals.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `PaperlessTaskFactory` has no attribute `date_done`", - "concise_description": "Object of class `PaperlessTaskFactory` has no attribute `date_done`", - "severity": "error" - }, - { - "line": 334, - "column": 9, - "stop_line": 334, - "stop_column": 29, - "path": "src/documents/tests/test_task_signals.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `PaperlessTaskFactory` has no attribute `refresh_from_db`", - "concise_description": "Object of class `PaperlessTaskFactory` has no attribute `refresh_from_db`", - "severity": "error" - }, - { - "line": 335, - "column": 16, - "stop_line": 335, - "stop_column": 47, - "path": "src/documents/tests/test_task_signals.py", - "code": -2, - "name": "not-iterable", - "description": "`in` is not supported between `Literal['traceback']` and `None`", - "concise_description": "`in` is not supported between `Literal['traceback']` and `None`", - "severity": "error" - }, - { - "line": 336, - "column": 20, - "stop_line": 336, - "stop_column": 49, - "path": "src/documents/tests/test_task_signals.py", - "code": -2, - "name": "unsupported-operation", - "description": "`None` is not subscriptable", - "concise_description": "`None` is not subscriptable", - "severity": "error" - }, - { - "line": 353, - "column": 9, - "stop_line": 353, - "stop_column": 29, - "path": "src/documents/tests/test_task_signals.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `PaperlessTaskFactory` has no attribute `refresh_from_db`", - "concise_description": "Object of class `PaperlessTaskFactory` has no attribute `refresh_from_db`", - "severity": "error" - }, - { - "line": 354, - "column": 16, - "stop_line": 354, - "stop_column": 37, - "path": "src/documents/tests/test_task_signals.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `PaperlessTaskFactory` has no attribute `duration_seconds`", - "concise_description": "Object of class `PaperlessTaskFactory` has no attribute `duration_seconds`", - "severity": "error" - }, - { - "line": 355, - "column": 16, - "stop_line": 355, - "stop_column": 38, - "path": "src/documents/tests/test_task_signals.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `PaperlessTaskFactory` has no attribute `wait_time_seconds`", - "concise_description": "Object of class `PaperlessTaskFactory` has no attribute `wait_time_seconds`", - "severity": "error" - }, - { - "line": 371, - "column": 9, - "stop_line": 371, - "stop_column": 29, - "path": "src/documents/tests/test_task_signals.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `PaperlessTaskFactory` has no attribute `refresh_from_db`", - "concise_description": "Object of class `PaperlessTaskFactory` has no attribute `refresh_from_db`", - "severity": "error" - }, - { - "line": 373, - "column": 16, - "stop_line": 373, - "stop_column": 30, - "path": "src/documents/tests/test_task_signals.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `PaperlessTaskFactory` has no attribute `date_done`", - "concise_description": "Object of class `PaperlessTaskFactory` has no attribute `date_done`", - "severity": "error" - }, - { - "line": 228, - "column": 19, - "stop_line": 228, - "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": 237, - "column": 27, - "stop_line": 237, - "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": 269, - "column": 19, - "stop_line": 269, - "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": 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": 207, - "column": 25, - "stop_line": 209, - "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": 25, - "stop_line": 226, - "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": 235, - "column": 26, - "stop_line": 235, - "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`", - "concise_description": "Object of class `Document` has no attribute `custom_fields`", - "severity": "error" - }, - { - "line": 239, - "column": 21, - "stop_line": 239, - "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": 288, - "column": 13, - "stop_line": 288, - "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": 319, - "column": 25, - "stop_line": 321, - "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": 336, - "column": 25, - "stop_line": 338, - "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": 363, - "column": 30, - "stop_line": 363, - "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": 407, - "column": 13, - "stop_line": 407, - "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": 459, - "column": 29, - "stop_line": 459, - "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": 476, - "column": 13, - "stop_line": 476, - "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": 529, - "column": 13, - "stop_line": 529, - "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": 552, - "column": 28, - "stop_line": 552, - "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": 555, - "column": 46, - "stop_line": 555, - "stop_column": 77, - "path": "src/documents/tests/test_workflows.py", - "code": -2, - "name": "bad-assignment", - "description": "`Group | dict[Unknown, Unknown]` is not assignable to `QuerySet[Any, Any]`", - "concise_description": "`Group | dict[Unknown, Unknown]` is not assignable to `QuerySet[Any, Any]`", - "severity": "error" - }, - { - "line": 561, - "column": 28, - "stop_line": 561, - "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": 564, - "column": 46, - "stop_line": 564, - "stop_column": 77, - "path": "src/documents/tests/test_workflows.py", - "code": -2, - "name": "bad-assignment", - "description": "`Group | dict[Unknown, Unknown]` is not assignable to `QuerySet[Any, Any]`", - "concise_description": "`Group | dict[Unknown, Unknown]` is not assignable to `QuerySet[Any, Any]`", - "severity": "error" - }, - { - "line": 570, - "column": 45, - "stop_line": 570, - "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": 606, - "column": 13, - "stop_line": 606, - "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": 629, - "column": 28, - "stop_line": 629, - "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": 632, - "column": 46, - "stop_line": 632, - "stop_column": 77, - "path": "src/documents/tests/test_workflows.py", - "code": -2, - "name": "bad-assignment", - "description": "`Group | dict[Unknown, Unknown]` is not assignable to `QuerySet[Any, Any]`", - "concise_description": "`Group | dict[Unknown, Unknown]` is not assignable to `QuerySet[Any, Any]`", - "severity": "error" - }, - { - "line": 638, - "column": 28, - "stop_line": 638, - "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": 641, - "column": 46, - "stop_line": 641, - "stop_column": 77, - "path": "src/documents/tests/test_workflows.py", - "code": -2, - "name": "bad-assignment", - "description": "`Group | dict[Unknown, Unknown]` is not assignable to `QuerySet[Any, Any]`", - "concise_description": "`Group | dict[Unknown, Unknown]` is not assignable to `QuerySet[Any, Any]`", - "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": 709, - "column": 28, - "stop_line": 709, - "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": 46, - "stop_line": 712, - "stop_column": 77, - "path": "src/documents/tests/test_workflows.py", - "code": -2, - "name": "bad-assignment", - "description": "`Group | dict[Unknown, Unknown]` is not assignable to `QuerySet[Any, Any]`", - "concise_description": "`Group | dict[Unknown, Unknown]` is not assignable to `QuerySet[Any, Any]`", - "severity": "error" - }, - { - "line": 718, - "column": 28, - "stop_line": 718, - "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": 721, - "column": 46, - "stop_line": 721, - "stop_column": 77, - "path": "src/documents/tests/test_workflows.py", - "code": -2, - "name": "bad-assignment", - "description": "`Group | dict[Unknown, Unknown]` is not assignable to `QuerySet[Any, Any]`", - "concise_description": "`Group | dict[Unknown, Unknown]` is not assignable to `QuerySet[Any, Any]`", - "severity": "error" - }, - { - "line": 763, - "column": 13, - "stop_line": 763, - "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": 786, - "column": 28, - "stop_line": 786, - "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": 789, - "column": 46, - "stop_line": 789, - "stop_column": 77, - "path": "src/documents/tests/test_workflows.py", - "code": -2, - "name": "bad-assignment", - "description": "`Group | dict[Unknown, Unknown]` is not assignable to `QuerySet[Any, Any]`", - "concise_description": "`Group | dict[Unknown, Unknown]` is not assignable to `QuerySet[Any, Any]`", - "severity": "error" - }, - { - "line": 795, - "column": 28, - "stop_line": 795, - "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": 798, - "column": 46, - "stop_line": 798, - "stop_column": 77, - "path": "src/documents/tests/test_workflows.py", - "code": -2, - "name": "bad-assignment", - "description": "`Group | dict[Unknown, Unknown]` is not assignable to `QuerySet[Any, Any]`", - "concise_description": "`Group | dict[Unknown, Unknown]` is not assignable to `QuerySet[Any, Any]`", - "severity": "error" - }, - { - "line": 874, - "column": 13, - "stop_line": 874, - "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": 889, - "column": 26, - "stop_line": 889, - "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`", - "concise_description": "Object of class `Document` has no attribute `custom_fields`", - "severity": "error" - }, - { - "line": 950, - "column": 31, - "stop_line": 950, - "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__`\n Protocol `PathLike` requires attribute `__fspath__`", - "concise_description": "Argument `Any | None` is not assignable to parameter `*args` with type `PathLike[str] | str` in function `pathlib.Path.__new__`", - "severity": "error" - }, - { - "line": 1422, - "column": 40, - "stop_line": 1422, - "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`\n Protocol `Container` requires attribute `__contains__`", - "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": 1438, - "column": 35, - "stop_line": 1438, - "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`\n Protocol `Container` requires attribute `__contains__`", - "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": 1457, - "column": 39, - "stop_line": 1457, - "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`\n Protocol `Container` requires attribute `__contains__`", - "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": 1922, - "column": 26, - "stop_line": 1922, - "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": 1947, - "column": 13, - "stop_line": 1947, - "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": 2006, - "column": 26, - "stop_line": 2006, - "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": 2055, - "column": 43, - "stop_line": 2058, - "stop_column": 10, - "path": "src/documents/tests/test_workflows.py", - "code": -2, - "name": "bad-assignment", - "description": "`list[str] | Any` is not assignable to `QuerySet[Any, Any]`", - "concise_description": "`list[str] | Any` is not assignable to `QuerySet[Any, Any]`", - "severity": "error" - }, - { - "line": 2059, - "column": 45, - "stop_line": 2062, - "stop_column": 10, - "path": "src/documents/tests/test_workflows.py", - "code": -2, - "name": "bad-assignment", - "description": "`list[str] | Any` is not assignable to `QuerySet[Any, Any]`", - "concise_description": "`list[str] | Any` is not assignable to `QuerySet[Any, Any]`", - "severity": "error" - }, - { - "line": 2070, - "column": 38, - "stop_line": 2070, - "stop_column": 64, - "path": "src/documents/tests/test_workflows.py", - "code": -2, - "name": "bad-assignment", - "description": "`Group | dict[Unknown, Unknown]` is not assignable to `QuerySet[Any, Any]`", - "concise_description": "`Group | dict[Unknown, Unknown]` is not assignable to `QuerySet[Any, Any]`", - "severity": "error" - }, - { - "line": 2833, - "column": 26, - "stop_line": 2833, - "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": 2836, - "column": 38, - "stop_line": 2836, - "stop_column": 64, - "path": "src/documents/tests/test_workflows.py", - "code": -2, - "name": "bad-assignment", - "description": "`Group | dict[Unknown, Unknown]` is not assignable to `QuerySet[Any, Any]`", - "concise_description": "`Group | dict[Unknown, Unknown]` is not assignable to `QuerySet[Any, Any]`", - "severity": "error" - }, - { - "line": 2904, - "column": 26, - "stop_line": 2904, - "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": 2907, - "column": 38, - "stop_line": 2907, - "stop_column": 64, - "path": "src/documents/tests/test_workflows.py", - "code": -2, - "name": "bad-assignment", - "description": "`Group | dict[Unknown, Unknown]` is not assignable to `QuerySet[Any, Any]`", - "concise_description": "`Group | dict[Unknown, Unknown]` is not assignable to `QuerySet[Any, Any]`", - "severity": "error" - }, - { - "line": 2971, - "column": 13, - "stop_line": 2971, - "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": 3006, - "column": 25, - "stop_line": 3008, - "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": 3023, - "column": 25, - "stop_line": 3025, - "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": 3034, - "column": 26, - "stop_line": 3034, - "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`", - "concise_description": "Object of class `Document` has no attribute `custom_fields`", - "severity": "error" - }, - { - "line": 3095, - "column": 13, - "stop_line": 3095, - "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": 28, - "stop_line": 3119, - "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": 3122, - "column": 46, - "stop_line": 3122, - "stop_column": 77, - "path": "src/documents/tests/test_workflows.py", - "code": -2, - "name": "bad-assignment", - "description": "`Group | dict[Unknown, Unknown]` is not assignable to `QuerySet[Any, Any]`", - "concise_description": "`Group | dict[Unknown, Unknown]` is not assignable to `QuerySet[Any, Any]`", - "severity": "error" - }, - { - "line": 3128, - "column": 28, - "stop_line": 3128, - "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": 3131, - "column": 46, - "stop_line": 3131, - "stop_column": 77, - "path": "src/documents/tests/test_workflows.py", - "code": -2, - "name": "bad-assignment", - "description": "`Group | dict[Unknown, Unknown]` is not assignable to `QuerySet[Any, Any]`", - "concise_description": "`Group | dict[Unknown, Unknown]` is not assignable to `QuerySet[Any, Any]`", - "severity": "error" - }, - { - "line": 3134, - "column": 21, - "stop_line": 3134, - "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": 3246, - "column": 13, - "stop_line": 3246, - "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": 3258, - "column": 27, - "stop_line": 3258, - "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": 3346, - "column": 13, - "stop_line": 3346, - "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": 3384, - "column": 13, - "stop_line": 3384, - "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": 3604, - "column": 13, - "stop_line": 3604, - "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": 3726, - "column": 13, - "stop_line": 3726, - "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": 3975, - "column": 23, - "stop_line": 3975, - "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": 3993, - "column": 23, - "stop_line": 3993, - "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": 4018, - "column": 27, - "stop_line": 4018, - "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": 4066, - "column": 13, - "stop_line": 4066, - "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": 4115, - "column": 23, - "stop_line": 4115, - "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": 4164, - "column": 23, - "stop_line": 4164, - "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": 4196, - "column": 23, - "stop_line": 4196, - "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": 4409, - "column": 13, - "stop_line": 4409, - "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": 4601, - "column": 13, - "stop_line": 4601, - "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": 4665, - "column": 13, - "stop_line": 4665, - "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": 4714, - "column": 19, - "stop_line": 4714, - "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": 4717, - "column": 16, - "stop_line": 4717, - "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": 4727, - "column": 19, - "stop_line": 4727, - "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": 4730, - "column": 16, - "stop_line": 4730, - "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": 4767, - "column": 23, - "stop_line": 4767, - "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": 4776, - "column": 23, - "stop_line": 4776, - "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": 23, - "stop_line": 4795, - "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": 4822, - "column": 23, - "stop_line": 4822, - "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": 4846, - "column": 19, - "stop_line": 4846, - "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": 4851, - "column": 16, - "stop_line": 4851, - "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": 4852, - "column": 16, - "stop_line": 4852, - "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": 4876, - "column": 23, - "stop_line": 4876, - "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": 4902, - "column": 19, - "stop_line": 4902, - "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": 4907, - "column": 16, - "stop_line": 4907, - "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": 4908, - "column": 35, - "stop_line": 4908, - "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": 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": 245, - "column": 9, - "stop_line": 245, - "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": 248, - "column": 9, - "stop_line": 248, - "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": 272, - "column": 16, - "stop_line": 272, - "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": 353, - "column": 13, - "stop_line": 353, - "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": 361, - "column": 13, - "stop_line": 361, - "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": 369, - "column": 13, - "stop_line": 369, - "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": 289, - "column": 31, - "stop_line": 289, - "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": 290, "column": 32, - "stop_line": 290, - "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`", + "path": "src/documents/tests/search/test_cjk_clause.py", + "name": "bad-argument-type", + "concise_description": "Argument `TestCjkParseFailureDegradesGracefully.test_a_cjk_run_tantivy_cannot_parse_drops_the_clause_only._RaisingIndex` is not assignable to parameter `index` with type `Index` in function `documents.search._query._parse_cjk_text`", "severity": "error" }, { - "line": 345, - "column": 17, - "stop_line": 345, - "stop_column": 30, - "path": "src/documents/views.py", - "code": -2, + "column": 33, + "path": "src/documents/tests/search/test_cjk_clause.py", + "name": "bad-argument-type", + "concise_description": "Argument `None` is not assignable to parameter `index` with type `Index` in function `documents.search._query._build_cjk_query`", + "severity": "error" + }, + { + "column": 18, + "path": "src/documents/tests/search/test_cjk_emit_registry.py", + "name": "not-callable", + "concise_description": "Expected a callable, got `None`", + "severity": "error" + }, + { + "column": 20, + "path": "src/documents/tests/search/test_cjk_emit_registry.py", "name": "missing-attribute", - "description": "Object of class `BulkPermissionMixin` has no attribute `queryset`", - "concise_description": "Object of class `BulkPermissionMixin` has no attribute `queryset`", + "concise_description": "Object of class `SearchResult` has no attribute `count`", "severity": "error" }, { - "line": 377, "column": 19, - "stop_line": 377, - "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`", + "path": "src/documents/tests/search/test_cjk_leaf_rewrite.py", + "name": "not-callable", + "concise_description": "Expected a callable, got `None`", "severity": "error" }, { - "line": 380, - "column": 21, - "stop_line": 380, - "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": 395, - "column": 24, - "stop_line": 395, - "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": 395, - "column": 45, - "stop_line": 395, - "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": 397, - "column": 22, - "stop_line": 397, - "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": 499, - "column": 29, - "stop_line": 499, - "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": 505, - "column": 25, - "stop_line": 505, - "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": 930, - "column": 48, - "stop_line": 930, - "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": 933, - "column": 48, - "stop_line": 933, - "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": 936, - "column": 48, - "stop_line": 936, - "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": 939, - "column": 48, - "stop_line": 939, - "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": 942, - "column": 48, - "stop_line": 942, - "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": 1115, - "column": 9, - "stop_line": 1115, - "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": 1269, - "column": 37, - "stop_line": 1269, - "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": 1383, - "column": 45, - "stop_line": 1383, - "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": 1396, - "column": 61, - "stop_line": 1396, - "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": 1398, - "column": 56, - "stop_line": 1398, - "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": 1400, - "column": 63, - "stop_line": 1400, - "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": 1403, - "column": 62, - "stop_line": 1403, - "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": 1517, - "column": 21, - "stop_line": 1517, - "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": 1559, - "column": 17, - "stop_line": 1559, - "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": 1586, - "column": 5, - "stop_line": 1586, - "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": 1643, - "column": 26, - "stop_line": 1643, - "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": 1649, - "column": 22, - "stop_line": 1649, - "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": 1650, - "column": 13, - "stop_line": 1650, - "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": 1688, - "column": 36, - "stop_line": 1688, - "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": 1728, - "column": 30, - "stop_line": 1728, - "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": 1897, - "column": 13, - "stop_line": 1897, - "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": 1976, - "column": 13, - "stop_line": 1976, - "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": 2052, - "column": 70, - "stop_line": 2052, - "stop_column": 79, - "path": "src/documents/views.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `QuerySet[Any, Any] | 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[Any, Any] | list[Document]` is not assignable to parameter `documents` with type `list[Document]` in function `paperless_ai.chat.stream_chat_with_documents`", - "severity": "error" - }, - { - "line": 2121, - "column": 9, - "stop_line": 2121, - "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": 2160, - "column": 17, - "stop_line": 2160, - "stop_column": 45, - "path": "src/documents/views.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `BasePagination` has no attribute `get_page_size`\nObject of class `NoneType` has no attribute `get_page_size`", - "concise_description": "Object of class `BasePagination` has no attribute `get_page_size`\nObject of class `NoneType` has no attribute `get_page_size`", - "severity": "error" - }, - { - "line": 2160, - "column": 58, - "stop_line": 2160, - "stop_column": 82, - "path": "src/documents/views.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `BasePagination` has no attribute `page_size`\nObject of class `NoneType` has no attribute `page_size`", - "concise_description": "Object of class `BasePagination` has no attribute `page_size`\nObject of class `NoneType` has no attribute `page_size`", - "severity": "error" - }, - { - "line": 2298, - "column": 43, - "stop_line": 2298, - "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": 2343, - "column": 25, - "stop_line": 2343, - "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": 2572, - "column": 18, - "stop_line": 2572, - "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": 2593, - "column": 18, - "stop_line": 2593, - "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": 2676, - "column": 18, - "stop_line": 2676, - "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": 2688, - "column": 18, - "stop_line": 2688, - "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": 2717, - "column": 33, - "stop_line": 2717, - "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": 2727, - "column": 21, - "stop_line": 2727, - "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": 3108, - "column": 52, - "stop_line": 3108, - "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": 3112, - "column": 52, - "stop_line": 3112, - "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": 3115, - "column": 52, - "stop_line": 3115, - "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": 3118, - "column": 52, - "stop_line": 3118, - "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": 3122, - "column": 52, - "stop_line": 3122, - "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": 3175, - "column": 65, - "stop_line": 3175, - "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": 3906, - "column": 9, - "stop_line": 3906, - "stop_column": 29, - "path": "src/documents/views.py", - "code": -2, - "name": "bad-override", - "description": "Class member `TasksViewSet.get_serializer_class` overrides parent class `ReadOnlyModelViewSet` in an inconsistent manner\n `TasksViewSet.get_serializer_class` has type `(self: TasksViewSet) -> type[TaskSerializerV10] | type[TaskSerializerV9]`, which is not assignable to `(self: TasksViewSet) -> type[BaseSerializer[PaperlessTask]]`, the type of `ReadOnlyModelViewSet.get_serializer_class`\n Signature mismatch:\n expected: def get_serializer_class(self: TasksViewSet) -> type[BaseSerializer[PaperlessTask]]: ...\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ return type\n found: def get_serializer_class(self: TasksViewSet) -> type[TaskSerializerV10] | type[TaskSerializerV9]: ...\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ return type", - "concise_description": "Class member `TasksViewSet.get_serializer_class` overrides parent class `ReadOnlyModelViewSet` in an inconsistent manner", - "severity": "error" - }, - { - "line": 3914, - "column": 12, - "stop_line": 3914, - "stop_column": 38, - "path": "src/documents/views.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `AbstractBaseUser` has no attribute `is_staff`", - "concise_description": "Object of class `AbstractBaseUser` has no attribute `is_staff`", - "severity": "error" - }, - { - "line": 3998, - "column": 44, - "stop_line": 3998, - "stop_column": 48, - "path": "src/documents/views.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `QuerySet[PaperlessTask, dict[str, Any]]` is not assignable to parameter `instance` with type `dict[str, Any] | None` in function `rest_framework.serializers.BaseSerializer.__init__`", - "concise_description": "Argument `QuerySet[PaperlessTask, dict[str, Any]]` is not assignable to parameter `instance` with type `dict[str, Any] | None` in function `rest_framework.serializers.BaseSerializer.__init__`", - "severity": "error" - }, - { - "line": 4352, - "column": 24, - "stop_line": 4352, - "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": 4371, - "column": 17, - "stop_line": 4371, - "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": 4396, - "column": 16, - "stop_line": 4396, - "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": 4398, - "column": 25, - "stop_line": 4398, - "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": 4453, - "column": 9, - "stop_line": 4453, - "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": 4478, - "column": 9, - "stop_line": 4478, - "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": 4690, - "column": 36, - "stop_line": 4690, - "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": 4691, - "column": 33, - "stop_line": 4691, - "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": 4816, "column": 40, - "stop_line": 4816, - "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", + "path": "src/documents/tests/search/test_cjk_widening.py", + "name": "missing-module-attribute", + "concise_description": "Could not import `SettingsWrapper` from `pytest_django.fixtures`", "severity": "error" }, { - "line": 4824, - "column": 38, - "stop_line": 4824, - "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", + "column": 40, + "path": "src/documents/tests/search/test_date_keyword_timezone.py", + "name": "missing-module-attribute", + "concise_description": "Could not import `SettingsWrapper` from `pytest_django.fixtures`", "severity": "error" }, { - "line": 4893, - "column": 16, - "stop_line": 4893, - "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`", + "column": 40, + "path": "src/documents/tests/search/test_fuzzy_scoring.py", + "name": "missing-module-attribute", + "concise_description": "Could not import `SettingsWrapper` from `pytest_django.fixtures`", "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`", + "column": 40, + "path": "src/documents/tests/search/test_fuzzy_widening.py", + "name": "missing-module-attribute", + "concise_description": "Could not import `SettingsWrapper` from `pytest_django.fixtures`", "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, + "path": "src/documents/tests/search/test_fuzzy_widening.py", "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`", + "concise_description": "Argument `object` is not assignable to parameter `node` with type `Node` in function `whoosh_compat.emitters.tantivy_.emit`", "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, + "column": 32, + "path": "src/documents/tests/search/test_fuzzy_widening.py", "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`", + "concise_description": "Unpacked keyword argument `object` is not assignable to parameter `index` with type `Index` in function `whoosh_compat.emitters.tantivy_.emit`", + "severity": "error" + }, + { + "column": 32, + "path": "src/documents/tests/search/test_fuzzy_widening.py", + "name": "bad-argument-type", + "concise_description": "Unpacked keyword argument `object` is not assignable to parameter `registry` with type `FieldRegistry` in function `whoosh_compat.emitters.tantivy_.emit`", + "severity": "error" + }, + { + "column": 32, + "path": "src/documents/tests/search/test_fuzzy_widening.py", + "name": "bad-argument-type", + "concise_description": "Unpacked keyword argument `object` is not assignable to parameter `rewrite_leaf` with type `((Phrase | Term) -> Node) | None` in function `whoosh_compat.emitters.tantivy_.emit`", + "severity": "error" + }, + { + "column": 22, + "path": "src/documents/tests/search/test_permission_field_isolation.py", + "name": "bad-argument-type", + "concise_description": "Argument `Group | None` is not assignable to parameter `target` with type `Group | User` in function `paperless_testing.permissions.grant_object`", "severity": "error" }, { - "line": 137, "column": 12, - "stop_line": 137, - "stop_column": 29, - "path": "src/documents/workflows/actions.py", - "code": -2, + "path": "src/documents/tests/search/test_query.py", "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `body`", - "concise_description": "Object of class `NoneType` has no attribute `body`", + "concise_description": "Object of class `SearchResult` has no attribute `count`", "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`", + "path": "src/documents/tests/search/test_query.py", + "name": "bad-argument-type", + "concise_description": "Argument `AbstractBaseUser` is not assignable to parameter `user` with type `AbstractUser` in function `documents.search._backend.build_permission_filter`", "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, + "path": "src/documents/tests/search/test_query.py", "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `params`", - "concise_description": "Object of class `NoneType` has no attribute `params`", + "concise_description": "Object of class `SearchResult` has no attribute `count`", "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, + "column": 59, + "path": "src/documents/tests/search/test_query.py", "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`", + "concise_description": "Argument `AbstractBaseUser` is not assignable to parameter `user` with type `AbstractUser` in function `documents.search._backend.build_permission_filter`", "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": 258, - "column": 24, - "stop_line": 258, - "stop_column": 42, - "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": 262, - "column": 28, - "stop_line": 262, - "stop_column": 50, - "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": 266, - "column": 27, - "stop_line": 266, - "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": 302, - "column": 43, - "stop_line": 302, - "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": 26, - "column": 8, - "stop_line": 26, - "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": 64, - "column": 13, - "stop_line": 64, - "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": 65, - "column": 13, - "stop_line": 65, - "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": 66, - "column": 13, - "stop_line": 66, - "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": 67, - "column": 13, - "stop_line": 67, - "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": 86, - "column": 8, - "stop_line": 86, - "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": 89, - "column": 27, - "stop_line": 89, - "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": 92, - "column": 35, - "stop_line": 92, - "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": 122, - "column": 8, - "stop_line": 122, - "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": 149, - "column": 13, - "stop_line": 149, - "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": 150, - "column": 13, - "stop_line": 150, - "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": 151, - "column": 13, - "stop_line": 151, - "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": 152, - "column": 13, - "stop_line": 152, - "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": 180, - "column": 8, - "stop_line": 180, - "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": 185, - "column": 27, - "stop_line": 185, - "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": 251, - "column": 13, - "stop_line": 251, - "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": 252, - "column": 13, - "stop_line": 252, - "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": 253, - "column": 13, - "stop_line": 253, - "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": 254, - "column": 13, - "stop_line": 254, - "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": 267, - "column": 9, - "stop_line": 267, - "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": 268, - "column": 10, - "stop_line": 268, - "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": 269, - "column": 9, - "stop_line": 272, - "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": 325, - "column": 13, - "stop_line": 325, - "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": 326, - "column": 13, - "stop_line": 326, - "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": 327, - "column": 13, - "stop_line": 327, - "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": 328, - "column": 13, - "stop_line": 328, - "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": 350, - "column": 10, - "stop_line": 350, - "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`", + "path": "src/documents/tests/search/test_query.py", + "name": "missing-attribute", + "concise_description": "Object of class `SearchResult` has no attribute `count`", "severity": "error" }, { - "line": 51, - "column": 5, - "stop_line": 51, - "stop_column": 24, - "path": "src/paperless/celery.py", - "code": -2, + "column": 59, + "path": "src/documents/tests/search/test_query.py", "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`", + "concise_description": "Argument `AbstractBaseUser` is not assignable to parameter `user` with type `AbstractUser` in function `documents.search._backend.build_permission_filter`", "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": 91, - "column": 12, - "stop_line": 91, - "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": 177, - "column": 9, - "stop_line": 179, - "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": 196, - "column": 12, - "stop_line": 196, - "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": 345, - "column": 26, - "stop_line": 348, - "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": 367, "column": 16, - "stop_line": 367, - "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]`", + "path": "src/documents/tests/search/test_query.py", + "name": "missing-attribute", + "concise_description": "Object of class `SearchResult` has no attribute `count`", "severity": "error" }, { - "line": 379, - "column": 21, - "stop_line": 383, - "stop_column": 22, - "path": "src/paperless/checks.py", - "code": -2, + "column": 59, + "path": "src/documents/tests/search/test_query.py", "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`", + "concise_description": "Argument `AbstractBaseUser` is not assignable to parameter `user` with type `AbstractUser` in function `documents.search._backend.build_permission_filter`", "severity": "error" }, { - "line": 386, - "column": 12, - "stop_line": 386, - "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": 43, - "stop_column": 10, - "path": "src/paperless/config.py", - "code": -2, - "name": "bad-assignment", - "description": "`OutputTypeChoices | str` is not assignable to attribute `output_type` with type `OutputTypeChoices`", - "concise_description": "`OutputTypeChoices | str` is not assignable to attribute `output_type` with type `OutputTypeChoices`", - "severity": "error" - }, - { - "line": 75, - "column": 21, - "stop_line": 75, - "stop_column": 70, - "path": "src/paperless/config.py", - "code": -2, - "name": "bad-assignment", - "description": "`ModeChoices | str` is not assignable to attribute `mode` with type `ModeChoices`", - "concise_description": "`ModeChoices | str` is not assignable to attribute `mode` with type `ModeChoices`", - "severity": "error" - }, - { - "line": 77, - "column": 13, - "stop_line": 78, - "stop_column": 78, - "path": "src/paperless/config.py", - "code": -2, - "name": "bad-assignment", - "description": "`ArchiveFileGenerationChoices | str` is not assignable to attribute `archive_file_generation` with type `ArchiveFileGenerationChoices`", - "concise_description": "`ArchiveFileGenerationChoices | str` is not assignable to attribute `archive_file_generation` with type `ArchiveFileGenerationChoices`", - "severity": "error" - }, - { - "line": 81, - "column": 22, - "stop_line": 81, - "stop_column": 82, - "path": "src/paperless/config.py", - "code": -2, - "name": "bad-assignment", - "description": "`CleanChoices | str` is not assignable to attribute `clean` with type `CleanChoices`", - "concise_description": "`CleanChoices | str` is not assignable to attribute `clean` with type `CleanChoices`", - "severity": "error" - }, - { - "line": 97, - "column": 13, - "stop_line": 98, - "stop_column": 75, - "path": "src/paperless/config.py", - "code": -2, - "name": "bad-assignment", - "description": "`ColorConvertChoices | str` is not assignable to attribute `color_conversion_strategy` with type `ColorConvertChoices`", - "concise_description": "`ColorConvertChoices | str` is not assignable to attribute `color_conversion_strategy` with type `ColorConvertChoices`", - "severity": "error" - }, - { - "line": 184, - "column": 26, - "stop_line": 184, - "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": 185, - "column": 25, - "stop_line": 185, - "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, + "path": "src/documents/tests/search/test_query.py", "name": "missing-attribute", - "description": "Object of class `AbstractBaseUser` has no attribute `is_superuser`", - "concise_description": "Object of class `AbstractBaseUser` has no attribute `is_superuser`", + "concise_description": "Object of class `SearchResult` has no attribute `count`", "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, + "column": 59, + "path": "src/documents/tests/search/test_query.py", "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`", + "concise_description": "Argument `AbstractBaseUser` is not assignable to parameter `user` with type `AbstractUser` in function `documents.search._backend.build_permission_filter`", "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, + "path": "src/documents/tests/search/test_query.py", "name": "missing-attribute", - "description": "Object of class `PasswordValidationMixin` has no attribute `instance`", - "concise_description": "Object of class `PasswordValidationMixin` has no attribute `instance`", + "concise_description": "Object of class `SearchResult` has no attribute `count`", "severity": "error" }, { - "line": 93, - "column": 17, - "stop_line": 93, - "stop_column": 21, - "path": "src/paperless/serialisers.py", - "code": -2, - "name": "bad-assignment", - "description": "`type[User]` is not assignable to attribute `model` with type `type[_MT]`", - "concise_description": "`type[User]` is not assignable to attribute `model` with type `type[_MT]`", - "severity": "error" - }, - { - "line": 153, - "column": 17, - "stop_line": 153, - "stop_column": 22, - "path": "src/paperless/serialisers.py", - "code": -2, - "name": "bad-assignment", - "description": "`type[Group]` is not assignable to attribute `model` with type `type[_MT]`", - "concise_description": "`type[Group]` is not assignable to attribute `model` with type `type[_MT]`", - "severity": "error" - }, - { - "line": 165, - "column": 17, - "stop_line": 165, - "stop_column": 30, - "path": "src/paperless/serialisers.py", - "code": -2, - "name": "bad-assignment", - "description": "`type[SocialAccount]` is not assignable to attribute `model` with type `type[_MT]`", - "concise_description": "`type[SocialAccount]` is not assignable to attribute `model` with type `type[_MT]`", - "severity": "error" - }, - { - "line": 199, - "column": 17, - "stop_line": 199, - "stop_column": 21, - "path": "src/paperless/serialisers.py", - "code": -2, - "name": "bad-assignment", - "description": "`type[User]` is not assignable to attribute `model` with type `type[_MT]`", - "concise_description": "`type[User]` is not assignable to attribute `model` with type `type[_MT]`", - "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": 295, - "column": 17, - "stop_line": 295, - "stop_column": 41, - "path": "src/paperless/serialisers.py", - "code": -2, - "name": "bad-assignment", - "description": "`type[ApplicationConfiguration]` is not assignable to attribute `model` with type `type[_MT]`", - "concise_description": "`type[ApplicationConfiguration]` is not assignable to attribute `model` with type `type[_MT]`", - "severity": "error" - }, - { - "line": 277, - "column": 43, - "stop_line": 282, - "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": 448, - "column": 30, - "stop_line": 448, - "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": 1012, - "column": 39, - "stop_line": 1012, - "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": 185, - "column": 19, - "stop_line": 185, - "stop_column": 34, - "path": "src/paperless/settings/custom.py", - "code": -2, - "name": "invalid-argument", - "description": "Expected a mapping, got dict[str, float] | str", - "concise_description": "Expected a mapping, got dict[str, float] | str", - "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": 401, - "column": 42, - "stop_line": 401, - "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": 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": 111, - "column": 28, - "stop_line": 111, - "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": 112, - "column": 29, - "stop_line": 112, - "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": 113, - "column": 30, - "stop_line": 113, - "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": 279, - "column": 38, - "stop_line": 279, - "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": 290, - "column": 17, - "stop_line": 290, - "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": 410, - "column": 13, - "stop_line": 410, - "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": 427, - "column": 13, - "stop_line": 427, - "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": 442, - "column": 13, - "stop_line": 442, - "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": 455, - "column": 13, - "stop_line": 455, - "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": 507, - "column": 13, - "stop_line": 507, - "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": 523, - "column": 13, - "stop_line": 523, - "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": 593, - "column": 42, - "stop_line": 593, - "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": 1053, - "column": 13, - "stop_line": 1053, - "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": 1122, - "column": 14, - "stop_line": 1122, - "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": 1122, - "column": 14, - "stop_line": 1122, - "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": 1149, - "column": 14, - "stop_line": 1149, - "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": 1149, - "column": 14, - "stop_line": 1149, - "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": 1158, - "column": 14, - "stop_line": 1158, - "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": 1158, - "column": 14, - "stop_line": 1158, - "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": 1167, - "column": 14, - "stop_line": 1167, - "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": 1167, - "column": 14, - "stop_line": 1167, - "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": 1188, - "column": 14, - "stop_line": 1188, - "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": 1188, - "column": 14, - "stop_line": 1188, - "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": 1196, - "column": 14, - "stop_line": 1196, - "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": 1196, - "column": 14, - "stop_line": 1196, - "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": 1205, - "column": 14, - "stop_line": 1205, - "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": 1205, - "column": 14, - "stop_line": 1205, - "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": 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__`\n Protocol `PathLike` requires attribute `__fspath__`", - "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, + "path": "src/documents/tests/search/test_schema.py", "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": 77, - "column": 23, - "stop_line": 77, - "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": 92, - "column": 17, - "stop_line": 92, - "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": 95, - "column": 16, - "stop_line": 95, - "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": 144, - "column": 9, - "stop_line": 144, - "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": 163, - "column": 9, - "stop_line": 163, - "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": 255, - "column": 13, - "stop_line": 255, - "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": 256, - "column": 13, - "stop_line": 256, - "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": 260, - "column": 9, - "stop_line": 260, - "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": 337, - "column": 38, - "stop_line": 337, - "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": 339, - "column": 34, - "stop_line": 339, - "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": 417, - "column": 13, - "stop_line": 417, - "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": 417, - "column": 41, - "stop_line": 417, - "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": 261, - "column": 46, - "stop_line": 261, - "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": 274, - "column": 46, - "stop_line": 274, - "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": 331, - "column": 15, - "stop_line": 331, - "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`", + "column": 40, + "path": "src/documents/tests/search/test_schema_fingerprint.py", + "name": "missing-module-attribute", + "concise_description": "Could not import `SettingsWrapper` from `pytest_django.fixtures`", "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": 168, - "column": 26, - "stop_line": 168, - "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": 185, - "column": 64, - "stop_line": 185, - "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": 197, - "column": 33, - "stop_line": 197, - "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`\n Protocol `Iterable` requires attribute `__iter__`", - "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": 275, - "column": 53, - "stop_line": 275, - "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": 376, - "column": 13, - "stop_line": 376, - "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": 393, - "column": 30, - "stop_line": 393, - "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": 395, - "column": 27, - "stop_line": 395, - "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": 397, - "column": 32, - "stop_line": 397, - "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": 399, - "column": 29, - "stop_line": 399, - "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": 407, - "column": 38, - "stop_line": 407, - "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": 407, - "column": 38, - "stop_line": 407, - "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": 407, - "column": 38, - "stop_line": 407, - "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": 407, - "column": 38, - "stop_line": 407, - "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": 407, - "column": 38, - "stop_line": 407, - "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": 407, - "column": 38, - "stop_line": 407, - "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": 407, - "column": 38, - "stop_line": 407, - "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": 407, - "column": 38, - "stop_line": 407, - "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": 407, - "column": 38, - "stop_line": 407, - "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": 407, - "column": 38, - "stop_line": 407, - "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": 407, - "column": 38, - "stop_line": 407, - "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": 407, - "column": 38, - "stop_line": 407, - "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": 407, - "column": 38, - "stop_line": 407, - "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": 407, - "column": 38, - "stop_line": 407, - "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": 407, - "column": 38, - "stop_line": 407, - "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": 407, - "column": 38, - "stop_line": 407, - "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": 407, - "column": 38, - "stop_line": 407, - "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": 407, - "column": 38, - "stop_line": 407, - "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": 407, - "column": 38, - "stop_line": 407, - "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": 407, - "column": 38, - "stop_line": 407, - "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": 407, - "column": 38, - "stop_line": 407, - "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__`\n Protocol `Iterable` requires attribute `__iter__`", - "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": 407, - "column": 38, - "stop_line": 407, - "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": 407, - "column": 38, - "stop_line": 407, - "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": 411, - "column": 32, - "stop_line": 411, - "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": 411, - "column": 32, - "stop_line": 411, - "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": 411, - "column": 32, - "stop_line": 411, - "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": 411, - "column": 32, - "stop_line": 411, - "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": 411, - "column": 32, - "stop_line": 411, - "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": 411, - "column": 32, - "stop_line": 411, - "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": 411, - "column": 32, - "stop_line": 411, - "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": 411, - "column": 32, - "stop_line": 411, - "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": 411, - "column": 32, - "stop_line": 411, - "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": 411, - "column": 32, - "stop_line": 411, - "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": 411, - "column": 32, - "stop_line": 411, - "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": 411, - "column": 32, - "stop_line": 411, - "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": 411, - "column": 32, - "stop_line": 411, - "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": 411, - "column": 32, - "stop_line": 411, - "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": 411, - "column": 32, - "stop_line": 411, - "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": 411, - "column": 32, - "stop_line": 411, - "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": 411, - "column": 32, - "stop_line": 411, - "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": 411, - "column": 32, - "stop_line": 411, - "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": 411, - "column": 32, - "stop_line": 411, - "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": 411, - "column": 32, - "stop_line": 411, - "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": 411, - "column": 32, - "stop_line": 411, - "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__`\n Protocol `Iterable` requires attribute `__iter__`", - "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": 411, - "column": 32, - "stop_line": 411, - "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": 411, - "column": 32, - "stop_line": 411, - "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": 437, "column": 12, - "stop_line": 437, - "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`", + "path": "src/documents/tests/search/test_schema_fingerprint.py", + "name": "bad-index", + "concise_description": "Cannot index into `str`", "severity": "error" }, { - "line": 577, - "column": 54, - "stop_line": 577, - "stop_column": 67, - "path": "src/paperless_mail/mail.py", - "code": -2, + "column": 16, + "path": "src/documents/tests/search/test_schema_fingerprint.py", + "name": "no-matching-overload", + "concise_description": "No matching overload found for function `typing.MutableMapping.update` called with arguments: (dict[str, object])", + "severity": "error" + }, + { + "column": 16, + "path": "src/documents/tests/search/test_tokenizer.py", "name": "missing-attribute", - "description": "Object of class `MailAccount` has no attribute `rules`", - "concise_description": "Object of class `MailAccount` has no attribute `rules`", + "concise_description": "Object of class `SearchResult` has no attribute `count`", "severity": "error" }, { - "line": 580, - "column": 29, - "stop_line": 580, - "stop_column": 42, - "path": "src/paperless_mail/mail.py", - "code": -2, + "column": 16, + "path": "src/documents/tests/search/test_tokenizer.py", "name": "missing-attribute", - "description": "Object of class `MailAccount` has no attribute `rules`", - "concise_description": "Object of class `MailAccount` has no attribute `rules`", + "concise_description": "Object of class `SearchResult` has no attribute `count`", "severity": "error" }, { - "line": 626, - "column": 31, - "stop_line": 626, - "stop_column": 52, - "path": "src/paperless_mail/mail.py", - "code": -2, + "column": 16, + "path": "src/documents/tests/search/test_tokenizer.py", + "name": "missing-attribute", + "concise_description": "Object of class `SearchResult` has no attribute `count`", + "severity": "error" + }, + { + "column": 16, + "path": "src/documents/tests/search/test_tokenizer.py", + "name": "missing-attribute", + "concise_description": "Object of class `SearchResult` has no attribute `count`", + "severity": "error" + }, + { + "column": 38, + "path": "src/documents/tests/search/test_widen_leaf.py", "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`", + "concise_description": "Argument `Node | None` is not assignable to parameter `child` with type `Node` in function `whoosh_compat.ast.Boosted.__init__`", "severity": "error" }, { - "line": 633, - "column": 44, - "stop_line": 633, - "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": 966, - "column": 40, - "stop_line": 966, - "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": 970, - "column": 32, - "stop_line": 970, - "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": 971, - "column": 32, - "stop_line": 971, - "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": 972, - "column": 17, - "stop_line": 972, - "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": 986, - "column": 27, - "stop_line": 986, - "stop_column": 40, - "path": "src/paperless_mail/mail.py", - "code": -2, + "column": 22, + "path": "src/documents/tests/search/test_widen_leaf.py", "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__`", + "concise_description": "Argument `tuple[Term, Node | None]` is not assignable to parameter `children` with type `tuple[Node, ...]` in function `whoosh_compat.ast.Or.__init__`", "severity": "error" }, { - "line": 97, - "column": 39, - "stop_line": 97, - "stop_column": 60, - "path": "src/paperless_mail/oauth.py", - "code": -2, + "column": 51, + "path": "src/documents/tests/search/test_widen_leaf.py", "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`", + "concise_description": "Argument `tuple[Term, Node | None]` is not assignable to parameter `children` with type `tuple[Node, ...]` in function `whoosh_compat.ast.Or.__init__`", "severity": "error" }, { - "line": 103, - "column": 39, - "stop_line": 103, - "stop_column": 60, - "path": "src/paperless_mail/oauth.py", - "code": -2, + "column": 22, + "path": "src/documents/tests/search/test_widen_leaf.py", "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`", + "concise_description": "Argument `tuple[Term, Node | None]` is not assignable to parameter `children` with type `tuple[Node, ...]` in function `whoosh_compat.ast.Or.__init__`", "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", + "column": 26, + "path": "src/documents/tests/test_admin.py", + "name": "unsupported-operation", + "concise_description": "`None` is not subscriptable", "severity": "error" }, { - "line": 73, - "column": 71, - "stop_line": 73, - "stop_column": 99, - "path": "src/paperless_mail/preprocessor.py", - "code": -2, + "column": 16, + "path": "src/documents/tests/test_admin.py", "name": "missing-attribute", - "description": "Object of class `Crypt` has no attribute `stderr`", - "concise_description": "Object of class `Crypt` has no attribute `stderr`", + "concise_description": "Object of class `ModelForm` has no attribute `request`", "severity": "error" }, { - "line": 31, - "column": 17, - "stop_line": 31, - "stop_column": 28, - "path": "src/paperless_mail/serialisers.py", - "code": -2, - "name": "bad-assignment", - "description": "`type[MailAccount]` is not assignable to attribute `model` with type `type[_MT]`", - "concise_description": "`type[MailAccount]` is not assignable to attribute `model` with type `type[_MT]`", - "severity": "error" - }, - { - "line": 78, - "column": 17, - "stop_line": 78, - "stop_column": 25, - "path": "src/paperless_mail/serialisers.py", - "code": -2, - "name": "bad-assignment", - "description": "`type[MailRule]` is not assignable to attribute `model` with type `type[_MT]`", - "concise_description": "`type[MailRule]` is not assignable to attribute `model` with type `type[_MT]`", - "severity": "error" - }, - { - "line": 154, - "column": 17, - "stop_line": 154, - "stop_column": 30, - "path": "src/paperless_mail/serialisers.py", - "code": -2, - "name": "bad-assignment", - "description": "`type[ProcessedMail]` is not assignable to attribute `model` with type `type[_MT]`", - "concise_description": "`type[ProcessedMail]` is not assignable to attribute `model` with type `type[_MT]`", - "severity": "error" - }, - { - "line": 23, - "column": 11, - "stop_line": 23, - "stop_column": 18, - "path": "src/paperless_mail/tests/conftest.py", - "code": -2, - "name": "invalid-yield", - "description": "Yielded type `MailAccountFactory` is not assignable to declared yield type `MailAccount`", - "concise_description": "Yielded type `MailAccountFactory` is not assignable to declared yield type `MailAccount`", - "severity": "error" - }, - { - "line": 24, - "column": 5, - "stop_line": 24, - "stop_column": 19, - "path": "src/paperless_mail/tests/conftest.py", - "code": -2, + "column": 9, + "path": "src/documents/tests/test_admin.py", "name": "missing-attribute", - "description": "Object of class `MailAccountFactory` has no attribute `delete`", - "concise_description": "Object of class `MailAccountFactory` has no attribute `delete`", + "concise_description": "Object of class `ModelForm` has no attribute `request`", + "severity": "error" + }, + { + "column": 9, + "path": "src/documents/tests/test_admin.py", + "name": "missing-attribute", + "concise_description": "Object of class `ModelForm` has no attribute `request`", + "severity": "error" + }, + { + "column": 30, + "path": "src/documents/tests/test_api_app_config.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `path`", "severity": "error" }, { - "line": 124, "column": 31, - "stop_line": 124, - "stop_column": 42, - "path": "src/paperless_mail/tests/test_api.py", - "code": -2, + "path": "src/documents/tests/test_api_app_config.py", "name": "missing-attribute", - "description": "Object of class `MailAccountFactory` has no attribute `pk`", - "concise_description": "Object of class `MailAccountFactory` has no attribute `pk`", + "concise_description": "Object of class `NoneType` has no attribute `path`", "severity": "error" }, { - "line": 144, - "column": 31, - "stop_line": 144, - "stop_column": 42, - "path": "src/paperless_mail/tests/test_api.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `MailAccountFactory` has no attribute `pk`", - "concise_description": "Object of class `MailAccountFactory` has no attribute `pk`", - "severity": "error" - }, - { - "line": 153, - "column": 56, - "stop_line": 153, - "stop_column": 67, - "path": "src/paperless_mail/tests/test_api.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `MailAccountFactory` has no attribute `pk`", - "concise_description": "Object of class `MailAccountFactory` has no attribute `pk`", - "severity": "error" - }, - { - "line": 158, - "column": 31, - "stop_line": 158, - "stop_column": 42, - "path": "src/paperless_mail/tests/test_api.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `MailAccountFactory` has no attribute `pk`", - "concise_description": "Object of class `MailAccountFactory` has no attribute `pk`", - "severity": "error" - }, - { - "line": 167, - "column": 56, - "stop_line": 167, - "stop_column": 67, - "path": "src/paperless_mail/tests/test_api.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `MailAccountFactory` has no attribute `pk`", - "concise_description": "Object of class `MailAccountFactory` has no attribute `pk`", - "severity": "error" - }, - { - "line": 243, - "column": 27, - "stop_line": 243, - "stop_column": 37, - "path": "src/paperless_mail/tests/test_api.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `MailAccountFactory` has no attribute `pk`", - "concise_description": "Object of class `MailAccountFactory` has no attribute `pk`", - "severity": "error" - }, - { - "line": 290, - "column": 52, - "stop_line": 290, - "stop_column": 60, - "path": "src/paperless_mail/tests/test_api.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `MailAccountFactory` is not assignable to parameter `obj` with type `Model | None` in function `guardian.shortcuts.assign_perm`", - "concise_description": "Argument `MailAccountFactory` is not assignable to parameter `obj` with type `Model | None` in function `guardian.shortcuts.assign_perm`", - "severity": "error" - }, - { - "line": 340, - "column": 53, - "stop_line": 340, - "stop_column": 64, - "path": "src/paperless_mail/tests/test_api.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `MailAccountFactory` has no attribute `pk`", - "concise_description": "Object of class `MailAccountFactory` has no attribute `pk`", - "severity": "error" - }, - { - "line": 342, - "column": 57, - "stop_line": 342, - "stop_column": 74, - "path": "src/paperless_mail/tests/test_api.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `MailRuleFactory` has no attribute `filter_from`", - "concise_description": "Object of class `MailRuleFactory` has no attribute `filter_from`", - "severity": "error" - }, - { - "line": 343, - "column": 55, - "stop_line": 343, - "stop_column": 70, - "path": "src/paperless_mail/tests/test_api.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `MailRuleFactory` has no attribute `filter_to`", - "concise_description": "Object of class `MailRuleFactory` has no attribute `filter_to`", - "severity": "error" - }, - { - "line": 344, - "column": 60, - "stop_line": 344, - "stop_column": 80, - "path": "src/paperless_mail/tests/test_api.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `MailRuleFactory` has no attribute `filter_subject`", - "concise_description": "Object of class `MailRuleFactory` has no attribute `filter_subject`", - "severity": "error" - }, - { - "line": 345, - "column": 57, - "stop_line": 345, - "stop_column": 74, - "path": "src/paperless_mail/tests/test_api.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `MailRuleFactory` has no attribute `filter_body`", - "concise_description": "Object of class `MailRuleFactory` has no attribute `filter_body`", - "severity": "error" - }, - { - "line": 348, - "column": 13, - "stop_line": 348, - "stop_column": 53, - "path": "src/paperless_mail/tests/test_api.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `MailRuleFactory` has no attribute `filter_attachment_filename_include`", - "concise_description": "Object of class `MailRuleFactory` has no attribute `filter_attachment_filename_include`", - "severity": "error" - }, - { - "line": 377, - "column": 24, - "stop_line": 377, - "stop_column": 35, - "path": "src/paperless_mail/tests/test_api.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `MailAccountFactory` has no attribute `pk`", - "concise_description": "Object of class `MailAccountFactory` has no attribute `pk`", - "severity": "error" - }, - { - "line": 391, - "column": 29, - "stop_line": 391, - "stop_column": 35, - "path": "src/paperless_mail/tests/test_api.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `TagFactory` has no attribute `pk`", - "concise_description": "Object of class `TagFactory` has no attribute `pk`", - "severity": "error" - }, - { - "line": 392, - "column": 37, - "stop_line": 392, - "stop_column": 53, - "path": "src/paperless_mail/tests/test_api.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `CorrespondentFactory` has no attribute `pk`", - "concise_description": "Object of class `CorrespondentFactory` has no attribute `pk`", - "severity": "error" - }, - { - "line": 393, - "column": 37, - "stop_line": 393, - "stop_column": 53, - "path": "src/paperless_mail/tests/test_api.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `DocumentTypeFactory` has no attribute `pk`", - "concise_description": "Object of class `DocumentTypeFactory` has no attribute `pk`", - "severity": "error" - }, - { - "line": 411, - "column": 53, - "stop_line": 411, - "stop_column": 64, - "path": "src/paperless_mail/tests/test_api.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `MailAccountFactory` has no attribute `pk`", - "concise_description": "Object of class `MailAccountFactory` has no attribute `pk`", - "severity": "error" - }, - { - "line": 462, - "column": 31, - "stop_line": 462, - "stop_column": 39, - "path": "src/paperless_mail/tests/test_api.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `MailRuleFactory` has no attribute `pk`", - "concise_description": "Object of class `MailRuleFactory` has no attribute `pk`", - "severity": "error" - }, - { - "line": 483, - "column": 31, - "stop_line": 483, - "stop_column": 39, - "path": "src/paperless_mail/tests/test_api.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `MailRuleFactory` has no attribute `pk`", - "concise_description": "Object of class `MailRuleFactory` has no attribute `pk`", - "severity": "error" - }, - { - "line": 492, "column": 50, - "stop_line": 492, - "stop_column": 58, - "path": "src/paperless_mail/tests/test_api.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `MailRuleFactory` has no attribute `pk`", - "concise_description": "Object of class `MailRuleFactory` has no attribute `pk`", - "severity": "error" - }, - { - "line": 504, - "column": 28, - "stop_line": 504, - "stop_column": 46, - "path": "src/paperless_mail/tests/test_api.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `MailAccountFactory` has no attribute `pk`", - "concise_description": "Object of class `MailAccountFactory` has no attribute `pk`", - "severity": "error" - }, - { - "line": 524, - "column": 54, - "stop_line": 524, - "stop_column": 69, - "path": "src/paperless_mail/tests/test_api.py", - "code": -2, + "path": "src/documents/tests/test_api_app_config.py", "name": "bad-argument-type", - "description": "Argument `MailAccountFactory` is not assignable to parameter `obj` with type `Model | None` in function `guardian.shortcuts.assign_perm`", - "concise_description": "Argument `MailAccountFactory` is not assignable to parameter `obj` with type `Model | None` in function `guardian.shortcuts.assign_perm`", + "concise_description": "Argument `_MonkeyPatchedResponse` is not assignable to parameter `response` with type `StreamingHttpResponse` in function `paperless_testing.http.read_streaming_response`", "severity": "error" }, { - "line": 530, - "column": 28, - "stop_line": 530, - "stop_column": 46, - "path": "src/paperless_mail/tests/test_api.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `MailAccountFactory` has no attribute `pk`", - "concise_description": "Object of class `MailAccountFactory` has no attribute `pk`", - "severity": "error" - }, - { - "line": 552, - "column": 31, - "stop_line": 552, - "stop_column": 39, - "path": "src/paperless_mail/tests/test_api.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `MailRuleFactory` has no attribute `pk`", - "concise_description": "Object of class `MailRuleFactory` has no attribute `pk`", - "severity": "error" - }, - { - "line": 553, - "column": 30, - "stop_line": 553, - "stop_column": 48, - "path": "src/paperless_mail/tests/test_api.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `MailAccountFactory` has no attribute `pk`", - "concise_description": "Object of class `MailAccountFactory` has no attribute `pk`", - "severity": "error" - }, - { - "line": 557, - "column": 9, - "stop_line": 557, - "stop_column": 30, - "path": "src/paperless_mail/tests/test_api.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `MailRuleFactory` has no attribute `refresh_from_db`", - "concise_description": "Object of class `MailRuleFactory` has no attribute `refresh_from_db`", - "severity": "error" - }, - { - "line": 576, - "column": 49, - "stop_line": 576, - "stop_column": 54, - "path": "src/paperless_mail/tests/test_api.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `MailRuleFactory` is not assignable to parameter `obj` with type `Model | None` in function `guardian.shortcuts.assign_perm`", - "concise_description": "Argument `MailRuleFactory` is not assignable to parameter `obj` with type `Model | None` in function `guardian.shortcuts.assign_perm`", - "severity": "error" - }, - { - "line": 599, - "column": 24, - "stop_line": 599, - "stop_column": 34, - "path": "src/paperless_mail/tests/test_api.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `MailAccountFactory` has no attribute `pk`", - "concise_description": "Object of class `MailAccountFactory` has no attribute `pk`", - "severity": "error" - }, - { - "line": 651, - "column": 54, - "stop_line": 651, - "stop_column": 57, - "path": "src/paperless_mail/tests/test_api.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `ProcessedMailFactory` is not assignable to parameter `obj` with type `Model | None` in function `guardian.shortcuts.assign_perm`", - "concise_description": "Argument `ProcessedMailFactory` is not assignable to parameter `obj` with type `Model | None` in function `guardian.shortcuts.assign_perm`", - "severity": "error" - }, - { - "line": 658, - "column": 44, - "stop_line": 658, - "stop_column": 50, - "path": "src/paperless_mail/tests/test_api.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `ProcessedMailFactory` has no attribute `id`\n Did you mean `uid`?", - "concise_description": "Object of class `ProcessedMailFactory` has no attribute `id`", - "severity": "error" - }, - { - "line": 658, - "column": 52, - "stop_line": 658, - "stop_column": 58, - "path": "src/paperless_mail/tests/test_api.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `ProcessedMailFactory` has no attribute `id`\n Did you mean `uid`?", - "concise_description": "Object of class `ProcessedMailFactory` has no attribute `id`", - "severity": "error" - }, - { - "line": 658, - "column": 60, - "stop_line": 658, - "stop_column": 66, - "path": "src/paperless_mail/tests/test_api.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `ProcessedMailFactory` has no attribute `id`\n Did you mean `uid`?", - "concise_description": "Object of class `ProcessedMailFactory` has no attribute `id`", - "severity": "error" - }, - { - "line": 676, - "column": 60, - "stop_line": 676, - "stop_column": 68, - "path": "src/paperless_mail/tests/test_api.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `MailRuleFactory` has no attribute `pk`", - "concise_description": "Object of class `MailRuleFactory` has no attribute `pk`", - "severity": "error" - }, - { - "line": 680, - "column": 44, - "stop_line": 680, - "stop_column": 50, - "path": "src/paperless_mail/tests/test_api.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `ProcessedMailFactory` has no attribute `id`\n Did you mean `uid`?", - "concise_description": "Object of class `ProcessedMailFactory` has no attribute `id`", - "severity": "error" - }, - { - "line": 680, - "column": 52, - "stop_line": 680, - "stop_column": 58, - "path": "src/paperless_mail/tests/test_api.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `ProcessedMailFactory` has no attribute `id`\n Did you mean `uid`?", - "concise_description": "Object of class `ProcessedMailFactory` has no attribute `id`", - "severity": "error" - }, - { - "line": 702, - "column": 56, - "stop_line": 702, - "stop_column": 66, - "path": "src/paperless_mail/tests/test_api.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `ProcessedMailFactory` is not assignable to parameter `obj` with type `Model | None` in function `guardian.shortcuts.assign_perm`", - "concise_description": "Argument `ProcessedMailFactory` is not assignable to parameter `obj` with type `Model | None` in function `guardian.shortcuts.assign_perm`", - "severity": "error" - }, - { - "line": 709, - "column": 30, - "stop_line": 709, - "stop_column": 43, - "path": "src/paperless_mail/tests/test_api.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `ProcessedMailFactory` has no attribute `id`\n Did you mean `uid`?", - "concise_description": "Object of class `ProcessedMailFactory` has no attribute `id`", - "severity": "error" - }, - { - "line": 709, - "column": 45, - "stop_line": 709, - "stop_column": 56, - "path": "src/paperless_mail/tests/test_api.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `ProcessedMailFactory` has no attribute `id`\n Did you mean `uid`?", - "concise_description": "Object of class `ProcessedMailFactory` has no attribute `id`", - "severity": "error" - }, - { - "line": 709, - "column": 58, - "stop_line": 709, - "stop_column": 71, - "path": "src/paperless_mail/tests/test_api.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `ProcessedMailFactory` has no attribute `id`\n Did you mean `uid`?", - "concise_description": "Object of class `ProcessedMailFactory` has no attribute `id`", - "severity": "error" - }, - { - "line": 717, - "column": 14, - "stop_line": 717, - "stop_column": 27, - "path": "src/paperless_mail/tests/test_api.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `ProcessedMailFactory` has no attribute `id`\n Did you mean `uid`?", - "concise_description": "Object of class `ProcessedMailFactory` has no attribute `id`", - "severity": "error" - }, - { - "line": 717, - "column": 29, - "stop_line": 717, - "stop_column": 40, - "path": "src/paperless_mail/tests/test_api.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `ProcessedMailFactory` has no attribute `id`\n Did you mean `uid`?", - "concise_description": "Object of class `ProcessedMailFactory` has no attribute `id`", - "severity": "error" - }, - { - "line": 717, - "column": 42, - "stop_line": 717, - "stop_column": 55, - "path": "src/paperless_mail/tests/test_api.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `ProcessedMailFactory` has no attribute `id`\n Did you mean `uid`?", - "concise_description": "Object of class `ProcessedMailFactory` has no attribute `id`", - "severity": "error" - }, - { - "line": 719, - "column": 58, - "stop_line": 719, - "stop_column": 71, - "path": "src/paperless_mail/tests/test_api.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `ProcessedMailFactory` has no attribute `id`\n Did you mean `uid`?", - "concise_description": "Object of class `ProcessedMailFactory` has no attribute `id`", - "severity": "error" - }, - { - "line": 720, - "column": 58, - "stop_line": 720, - "stop_column": 69, - "path": "src/paperless_mail/tests/test_api.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `ProcessedMailFactory` has no attribute `id`\n Did you mean `uid`?", - "concise_description": "Object of class `ProcessedMailFactory` has no attribute `id`", - "severity": "error" - }, - { - "line": 721, - "column": 58, - "stop_line": 721, - "stop_column": 71, - "path": "src/paperless_mail/tests/test_api.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `ProcessedMailFactory` has no attribute `id`\n Did you mean `uid`?", - "concise_description": "Object of class `ProcessedMailFactory` has no attribute `id`", - "severity": "error" - }, - { - "line": 722, - "column": 57, - "stop_line": 722, - "stop_column": 72, - "path": "src/paperless_mail/tests/test_api.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `ProcessedMailFactory` has no attribute `id`\n Did you mean `uid`?", - "concise_description": "Object of class `ProcessedMailFactory` has no attribute `id`", - "severity": "error" - }, - { - "line": 728, - "column": 30, - "stop_line": 728, - "stop_column": 45, - "path": "src/paperless_mail/tests/test_api.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `ProcessedMailFactory` has no attribute `id`\n Did you mean `uid`?", - "concise_description": "Object of class `ProcessedMailFactory` has no attribute `id`", - "severity": "error" - }, - { - "line": 733, - "column": 57, - "stop_line": 733, - "stop_column": 72, - "path": "src/paperless_mail/tests/test_api.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `ProcessedMailFactory` has no attribute `id`\n Did you mean `uid`?", - "concise_description": "Object of class `ProcessedMailFactory` has no attribute `id`", - "severity": "error" - }, - { - "line": 60, - "column": 44, - "stop_line": 60, - "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": 79, - "column": 37, - "stop_line": 79, - "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": 122, - "column": 37, - "stop_line": 122, - "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": 127, - "column": 37, - "stop_line": 127, - "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": 131, - "column": 37, - "stop_line": 131, - "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": 177, "column": 25, - "stop_line": 177, - "stop_column": 40, - "path": "src/paperless_mail/tests/test_mail.py", - "code": -2, + "path": "src/documents/tests/test_api_app_config.py", "name": "missing-attribute", - "description": "Object of class `MailMessage` has no attribute `flagged`", - "concise_description": "Object of class `MailMessage` has no attribute `flagged`", + "concise_description": "Object of class `NoneType` has no attribute `path`", "severity": "error" }, { - "line": 179, "column": 25, - "stop_line": 179, - "stop_column": 37, - "path": "src/paperless_mail/tests/test_mail.py", - "code": -2, + "path": "src/documents/tests/test_api_app_config.py", "name": "missing-attribute", - "description": "Object of class `MailMessage` has no attribute `seen`", - "concise_description": "Object of class `MailMessage` has no attribute `seen`", + "concise_description": "Object of class `NoneType` has no attribute `path`", "severity": "error" }, { - "line": 265, - "column": 9, - "stop_line": 265, - "stop_column": 22, - "path": "src/paperless_mail/tests/test_mail.py", - "code": -2, + "column": 27, + "path": "src/documents/tests/test_api_app_config.py", "name": "missing-attribute", - "description": "Object of class `MailMessage` has no attribute `seen`", - "concise_description": "Object of class `MailMessage` has no attribute `seen`", + "concise_description": "Object of class `ImageFile` has no attribute `text`", "severity": "error" }, { - "line": 266, - "column": 9, - "stop_line": 266, - "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": 439, - "column": 50, - "stop_line": 439, - "stop_column": 64, - "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": 448, - "column": 54, - "stop_line": 448, - "stop_column": 61, - "path": "src/paperless_mail/tests/test_mail.py", - "code": -2, + "column": 65, + "path": "src/documents/tests/test_api_bulk_download.py", "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`", + "concise_description": "Argument `_MonkeyPatchedResponse` is not assignable to parameter `response` with type `StreamingHttpResponse` in function `paperless_testing.http.read_streaming_response`", "severity": "error" }, { - "line": 454, - "column": 40, - "stop_line": 454, - "stop_column": 47, - "path": "src/paperless_mail/tests/test_mail.py", - "code": -2, + "column": 65, + "path": "src/documents/tests/test_api_bulk_download.py", "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`", + "concise_description": "Argument `_MonkeyPatchedResponse` is not assignable to parameter `response` with type `StreamingHttpResponse` in function `paperless_testing.http.read_streaming_response`", "severity": "error" }, { - "line": 459, - "column": 40, - "stop_line": 459, - "stop_column": 48, - "path": "src/paperless_mail/tests/test_mail.py", - "code": -2, + "column": 65, + "path": "src/documents/tests/test_api_bulk_download.py", "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`", + "concise_description": "Argument `_MonkeyPatchedResponse` is not assignable to parameter `response` with type `StreamingHttpResponse` in function `paperless_testing.http.read_streaming_response`", "severity": "error" }, { - "line": 462, - "column": 32, - "stop_line": 462, - "stop_column": 47, - "path": "src/paperless_mail/tests/test_mail.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `CorrespondentFactory` has no attribute `id`", - "concise_description": "Object of class `CorrespondentFactory` has no attribute `id`", - "severity": "error" - }, - { - "line": 468, - "column": 40, - "stop_line": 468, - "stop_column": 47, - "path": "src/paperless_mail/tests/test_mail.py", - "code": -2, + "column": 65, + "path": "src/documents/tests/test_api_bulk_download.py", "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`", + "concise_description": "Argument `_MonkeyPatchedResponse` is not assignable to parameter `response` with type `StreamingHttpResponse` in function `paperless_testing.http.read_streaming_response`", "severity": "error" }, { - "line": 471, - "column": 40, - "stop_line": 471, - "stop_column": 48, - "path": "src/paperless_mail/tests/test_mail.py", - "code": -2, + "column": 65, + "path": "src/documents/tests/test_api_bulk_download.py", "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`", + "concise_description": "Argument `_MonkeyPatchedResponse` is not assignable to parameter `response` with type `StreamingHttpResponse` in function `paperless_testing.http.read_streaming_response`", "severity": "error" }, { - "line": 473, - "column": 32, - "stop_line": 473, - "stop_column": 47, - "path": "src/paperless_mail/tests/test_mail.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `CorrespondentFactory` has no attribute `id`", - "concise_description": "Object of class `CorrespondentFactory` has no attribute `id`", - "severity": "error" - }, - { - "line": 480, - "column": 40, - "stop_line": 480, - "stop_column": 47, - "path": "src/paperless_mail/tests/test_mail.py", - "code": -2, + "column": 65, + "path": "src/documents/tests/test_api_bulk_download.py", "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`", + "concise_description": "Argument `_MonkeyPatchedResponse` is not assignable to parameter `response` with type `StreamingHttpResponse` in function `paperless_testing.http.read_streaming_response`", "severity": "error" }, { - "line": 495, - "column": 45, - "stop_line": 495, - "stop_column": 52, - "path": "src/paperless_mail/tests/test_mail.py", - "code": -2, + "column": 65, + "path": "src/documents/tests/test_api_bulk_download.py", "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`", + "concise_description": "Argument `_MonkeyPatchedResponse` is not assignable to parameter `response` with type `StreamingHttpResponse` in function `paperless_testing.http.read_streaming_response`", "severity": "error" }, { - "line": 495, - "column": 54, - "stop_line": 495, - "stop_column": 57, - "path": "src/paperless_mail/tests/test_mail.py", - "code": -2, + "column": 65, + "path": "src/documents/tests/test_api_bulk_download.py", "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`", + "concise_description": "Argument `_MonkeyPatchedResponse` is not assignable to parameter `response` with type `StreamingHttpResponse` in function `paperless_testing.http.read_streaming_response`", "severity": "error" }, { - "line": 500, - "column": 45, - "stop_line": 500, - "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": 500, - "column": 54, - "stop_line": 500, - "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": 505, - "column": 45, - "stop_line": 505, - "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": 505, - "column": 54, - "stop_line": 505, - "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": 1250, - "column": 9, - "stop_line": 1250, - "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": 1256, - "column": 9, - "stop_line": 1256, - "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": 1283, - "column": 9, - "stop_line": 1283, - "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": 1289, - "column": 9, - "stop_line": 1289, - "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": 1351, - "column": 13, - "stop_line": 1355, - "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": 1370, - "column": 13, - "stop_line": 1374, - "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": 1603, "column": 21, - "stop_line": 1603, - "stop_column": 33, - "path": "src/paperless_mail/tests/test_mail.py", - "code": -2, + "path": "src/documents/tests/test_api_chat.py", "name": "missing-attribute", - "description": "Object of class `MailRuleFactory` has no attribute `pk`", - "concise_description": "Object of class `MailRuleFactory` has no attribute `pk`", + "concise_description": "Object of class `_MonkeyPatchedResponse` has no attribute `streaming_content`", "severity": "error" }, { - "line": 1614, + "column": 50, + "path": "src/documents/tests/test_api_document_versions.py", + "name": "bad-argument-type", + "concise_description": "Argument `_MonkeyPatchedResponse` is not assignable to parameter `response` with type `StreamingHttpResponse` in function `paperless_testing.http.read_streaming_response`", + "severity": "error" + }, + { + "column": 50, + "path": "src/documents/tests/test_api_document_versions.py", + "name": "bad-argument-type", + "concise_description": "Argument `_MonkeyPatchedResponse` is not assignable to parameter `response` with type `StreamingHttpResponse` in function `paperless_testing.http.read_streaming_response`", + "severity": "error" + }, + { + "column": 50, + "path": "src/documents/tests/test_api_document_versions.py", + "name": "bad-argument-type", + "concise_description": "Argument `_MonkeyPatchedResponse` is not assignable to parameter `response` with type `StreamingHttpResponse` in function `paperless_testing.http.read_streaming_response`", + "severity": "error" + }, + { + "column": 50, + "path": "src/documents/tests/test_api_document_versions.py", + "name": "bad-argument-type", + "concise_description": "Argument `_MonkeyPatchedResponse` is not assignable to parameter `response` with type `StreamingHttpResponse` in function `paperless_testing.http.read_streaming_response`", + "severity": "error" + }, + { + "column": 50, + "path": "src/documents/tests/test_api_document_versions.py", + "name": "bad-argument-type", + "concise_description": "Argument `_MonkeyPatchedResponse` is not assignable to parameter `response` with type `StreamingHttpResponse` in function `paperless_testing.http.read_streaming_response`", + "severity": "error" + }, + { + "column": 50, + "path": "src/documents/tests/test_api_documents.py", + "name": "bad-argument-type", + "concise_description": "Argument `_MonkeyPatchedResponse` is not assignable to parameter `response` with type `StreamingHttpResponse` in function `paperless_testing.http.read_streaming_response`", + "severity": "error" + }, + { + "column": 50, + "path": "src/documents/tests/test_api_documents.py", + "name": "bad-argument-type", + "concise_description": "Argument `_MonkeyPatchedResponse` is not assignable to parameter `response` with type `StreamingHttpResponse` in function `paperless_testing.http.read_streaming_response`", + "severity": "error" + }, + { + "column": 50, + "path": "src/documents/tests/test_api_documents.py", + "name": "bad-argument-type", + "concise_description": "Argument `_MonkeyPatchedResponse` is not assignable to parameter `response` with type `StreamingHttpResponse` in function `paperless_testing.http.read_streaming_response`", + "severity": "error" + }, + { + "column": 50, + "path": "src/documents/tests/test_api_documents.py", + "name": "bad-argument-type", + "concise_description": "Argument `_MonkeyPatchedResponse` is not assignable to parameter `response` with type `StreamingHttpResponse` in function `paperless_testing.http.read_streaming_response`", + "severity": "error" + }, + { + "column": 50, + "path": "src/documents/tests/test_api_documents.py", + "name": "bad-argument-type", + "concise_description": "Argument `_MonkeyPatchedResponse` is not assignable to parameter `response` with type `StreamingHttpResponse` in function `paperless_testing.http.read_streaming_response`", + "severity": "error" + }, + { + "column": 50, + "path": "src/documents/tests/test_api_documents.py", + "name": "bad-argument-type", + "concise_description": "Argument `_MonkeyPatchedResponse` is not assignable to parameter `response` with type `StreamingHttpResponse` in function `paperless_testing.http.read_streaming_response`", + "severity": "error" + }, + { + "column": 50, + "path": "src/documents/tests/test_api_documents.py", + "name": "bad-argument-type", + "concise_description": "Argument `_MonkeyPatchedResponse` is not assignable to parameter `response` with type `StreamingHttpResponse` in function `paperless_testing.http.read_streaming_response`", + "severity": "error" + }, + { + "column": 45, + "path": "src/documents/tests/test_api_documents.py", + "name": "bad-argument-type", + "concise_description": "Argument `_MonkeyPatchedResponse` is not assignable to parameter `response` with type `StreamingHttpResponse` in function `paperless_testing.http.read_streaming_response`", + "severity": "error" + }, + { + "column": 50, + "path": "src/documents/tests/test_api_documents.py", + "name": "bad-argument-type", + "concise_description": "Argument `_MonkeyPatchedResponse` is not assignable to parameter `response` with type `StreamingHttpResponse` in function `paperless_testing.http.read_streaming_response`", + "severity": "error" + }, + { + "column": 50, + "path": "src/documents/tests/test_api_documents.py", + "name": "bad-argument-type", + "concise_description": "Argument `_MonkeyPatchedResponse` is not assignable to parameter `response` with type `StreamingHttpResponse` in function `paperless_testing.http.read_streaming_response`", + "severity": "error" + }, + { + "column": 13, + "path": "src/documents/tests/test_api_documents.py", + "name": "bad-argument-type", + "concise_description": "Argument `bytes` is not assignable to parameter `data` with type `str` in function `rest_framework.test.APIClient.generic`", + "severity": "error" + }, + { + "column": 31, + "path": "src/documents/tests/test_api_documents.py", + "name": "bad-argument-type", + "concise_description": "Argument `list[int] | None` is not assignable to parameter `first` with type `Iterable[Any]` in function `unittest.case.TestCase.assertCountEqual`", + "severity": "error" + }, + { + "column": 9, + "path": "src/documents/tests/test_api_documents.py", + "name": "not-iterable", + "concise_description": "Type `None` is not iterable", + "severity": "error" + }, + { + "column": 31, + "path": "src/documents/tests/test_api_documents.py", + "name": "missing-attribute", + "concise_description": "Object of class `User` has no attribute `ui_settings`", + "severity": "error" + }, + { + "column": 31, + "path": "src/documents/tests/test_api_documents.py", + "name": "missing-attribute", + "concise_description": "Object of class `User` has no attribute `ui_settings`", + "severity": "error" + }, + { + "column": 26, + "path": "src/documents/tests/test_api_documents.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `value`", + "severity": "error" + }, + { + "column": 23, + "path": "src/documents/tests/test_api_documents.py", + "name": "bad-unpacking", + "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] | list[Unknown] | str in function `django.db.models.manager.Manager.create`", + "severity": "error" + }, + { + "column": 29, + "path": "src/documents/tests/test_api_filter_by_custom_fields.py", + "name": "no-matching-overload", + "concise_description": "No matching overload found for function `urllib.parse.quote` called with arguments: (str | None, safe=Literal[''])", + "severity": "error" + }, + { + "column": 65, + "path": "src/documents/tests/test_api_objects.py", + "name": "bad-argument-count", + "concise_description": "Missing positional argument `value` in function `list.count`", + "severity": "error" + }, + { + "column": 34, + "path": "src/documents/tests/test_api_objects.py", + "name": "missing-attribute", + "concise_description": "Object of type `Group | dict[Unknown, Unknown]` has no attribute `count`", + "severity": "error" + }, + { + "column": 26, + "path": "src/documents/tests/test_api_permissions.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `owner`", + "severity": "error" + }, + { + "column": 26, + "path": "src/documents/tests/test_api_permissions.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `owner`", + "severity": "error" + }, + { + "column": 55, + "path": "src/documents/tests/test_api_permissions.py", + "name": "bad-argument-type", + "concise_description": "Argument `Tag | None` is not assignable to parameter `obj` with type `Model` in function `guardian.core.ObjectPermissionChecker.has_perm`", + "severity": "error" + }, + { + "column": 53, + "path": "src/documents/tests/test_api_permissions.py", + "name": "bad-argument-type", + "concise_description": "Argument `Tag | None` is not assignable to parameter `obj` with type `Model` in function `guardian.shortcuts.get_perms`", + "severity": "error" + }, + { + "column": 26, + "path": "src/documents/tests/test_api_permissions.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `owner`", + "severity": "error" + }, + { + "column": 53, + "path": "src/documents/tests/test_api_permissions.py", + "name": "bad-argument-type", + "concise_description": "Argument `Tag | None` is not assignable to parameter `obj` with type `Model` in function `guardian.shortcuts.get_perms`", + "severity": "error" + }, + { + "column": 49, + "path": "src/documents/tests/test_api_post_document_nfc.py", + "name": "bad-argument-type", + "concise_description": "Argument `str | None` is not assignable to parameter `unistr` with type `str` in function `unicodedata.is_normalized`", + "severity": "error" + }, + { + "column": 49, + "path": "src/documents/tests/test_api_post_document_nfc.py", + "name": "bad-argument-type", + "concise_description": "Argument `str | None` is not assignable to parameter `unistr` with type `str` in function `unicodedata.is_normalized`", + "severity": "error" + }, + { + "column": 21, + "path": "src/documents/tests/test_api_profile.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `name`", + "severity": "error" + }, + { + "column": 19, + "path": "src/documents/tests/test_api_profile.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `provider_id`", + "severity": "error" + }, + { + "column": 9, + "path": "src/documents/tests/test_api_profile.py", + "name": "missing-attribute", + "concise_description": "Object of class `User` has no attribute `socialaccount_set`", + "severity": "error" + }, + { + "column": 41, + "path": "src/documents/tests/test_api_profile.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `key`", + "severity": "error" + }, + { + "column": 29, + "path": "src/documents/tests/test_api_profile.py", + "name": "missing-attribute", + "concise_description": "Object of class `User` has no attribute `socialaccount_set`", + "severity": "error" + }, + { + "column": 17, + "path": "src/documents/tests/test_api_profile.py", + "name": "missing-attribute", + "concise_description": "Object of class `User` has no attribute `socialaccount_set`", + "severity": "error" + }, + { + "column": 14, + "path": "src/documents/tests/test_api_schema.py", + "name": "bad-index", + "concise_description": "Cannot index into `SchemaGenerator`", + "severity": "error" + }, + { + "column": 14, + "path": "src/documents/tests/test_api_schema.py", + "name": "bad-index", + "concise_description": "Cannot index into `SchemaGenerator`", + "severity": "error" + }, + { + "column": 21, + "path": "src/documents/tests/test_api_schema.py", + "name": "bad-index", + "concise_description": "Cannot index into `SchemaGenerator`", + "severity": "error" + }, + { + "column": 14, + "path": "src/documents/tests/test_api_schema.py", + "name": "bad-index", + "concise_description": "Cannot index into `SchemaGenerator`", + "severity": "error" + }, + { + "column": 14, + "path": "src/documents/tests/test_api_schema.py", + "name": "bad-index", + "concise_description": "Cannot index into `SchemaGenerator`", + "severity": "error" + }, + { + "column": 14, + "path": "src/documents/tests/test_api_schema.py", + "name": "bad-index", + "concise_description": "Cannot index into `SchemaGenerator`", + "severity": "error" + }, + { + "column": 34, + "path": "src/documents/tests/test_api_schema.py", + "name": "bad-index", + "concise_description": "Cannot index into `SchemaGenerator`", + "severity": "error" + }, + { + "column": 17, + "path": "src/documents/tests/test_api_schema.py", + "name": "bad-index", + "concise_description": "Cannot index into `SchemaGenerator`", + "severity": "error" + }, + { + "column": 17, + "path": "src/documents/tests/test_api_schema.py", + "name": "bad-index", + "concise_description": "Cannot index into `SchemaGenerator`", + "severity": "error" + }, + { + "column": 26, + "path": "src/documents/tests/test_api_schema.py", + "name": "bad-index", + "concise_description": "Cannot index into `SchemaGenerator`", + "severity": "error" + }, + { + "column": 14, + "path": "src/documents/tests/test_api_schema.py", + "name": "bad-index", + "concise_description": "Cannot index into `SchemaGenerator`", + "severity": "error" + }, + { + "column": 14, + "path": "src/documents/tests/test_api_schema.py", + "name": "bad-index", + "concise_description": "Cannot index into `SchemaGenerator`", + "severity": "error" + }, + { + "column": 14, + "path": "src/documents/tests/test_api_schema.py", + "name": "bad-index", + "concise_description": "Cannot index into `SchemaGenerator`", + "severity": "error" + }, + { + "column": 20, + "path": "src/documents/tests/test_api_schema.py", + "name": "bad-index", + "concise_description": "Cannot index into `SchemaGenerator`", + "severity": "error" + }, + { + "column": 14, + "path": "src/documents/tests/test_api_schema.py", + "name": "bad-index", + "concise_description": "Cannot index into `SchemaGenerator`", + "severity": "error" + }, + { + "column": 14, + "path": "src/documents/tests/test_api_schema.py", + "name": "bad-index", + "concise_description": "Cannot index into `SchemaGenerator`", + "severity": "error" + }, + { + "column": 21, + "path": "src/documents/tests/test_api_schema.py", + "name": "bad-index", + "concise_description": "Cannot index into `SchemaGenerator`", + "severity": "error" + }, + { + "column": 51, + "path": "src/documents/tests/test_api_schema.py", + "name": "bad-index", + "concise_description": "Cannot index into `SchemaGenerator`", + "severity": "error" + }, + { + "column": 14, + "path": "src/documents/tests/test_api_schema.py", + "name": "bad-index", + "concise_description": "Cannot index into `SchemaGenerator`", + "severity": "error" + }, + { + "column": 14, + "path": "src/documents/tests/test_api_schema.py", + "name": "bad-index", + "concise_description": "Cannot index into `SchemaGenerator`", + "severity": "error" + }, + { + "column": 14, + "path": "src/documents/tests/test_api_schema.py", + "name": "bad-index", + "concise_description": "Cannot index into `SchemaGenerator`", + "severity": "error" + }, + { + "column": 14, + "path": "src/documents/tests/test_api_schema.py", + "name": "bad-index", + "concise_description": "Cannot index into `SchemaGenerator`", + "severity": "error" + }, + { + "column": 14, + "path": "src/documents/tests/test_api_schema.py", + "name": "bad-index", + "concise_description": "Cannot index into `SchemaGenerator`", + "severity": "error" + }, + { + "column": 23, + "path": "src/documents/tests/test_api_uisettings.py", + "name": "missing-attribute", + "concise_description": "Object of class `User` has no attribute `ui_settings`", + "severity": "error" + }, + { + "column": 13, + "path": "src/documents/tests/test_api_workflows.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `pk`", + "severity": "error" + }, + { "column": 13, - "stop_line": 1614, - "stop_column": 39, - "path": "src/paperless_mail/tests/test_mail.py", - "code": -2, + "path": "src/documents/tests/test_api_workflows.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `ai_suggestion_fields`", + "severity": "error" + }, + { + "column": 25, + "path": "src/documents/tests/test_api_workflows.py", "name": "missing-attribute", - "description": "Object of class `MailRuleFactory` has no attribute `action_parameter`", - "concise_description": "Object of class `MailRuleFactory` has no attribute `action_parameter`", + "concise_description": "Object of class `NoneType` has no attribute `ai_create_missing`", "severity": "error" }, { - "line": 1641, "column": 25, - "stop_line": 1641, - "stop_column": 37, - "path": "src/paperless_mail/tests/test_mail.py", - "code": -2, + "path": "src/documents/tests/test_api_workflows.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `ai_overwrite_existing`", + "severity": "error" + }, + { + "column": 13, + "path": "src/documents/tests/test_barcodes.py", "name": "missing-attribute", - "description": "Object of class `MailRuleFactory` has no attribute `pk`", - "concise_description": "Object of class `MailRuleFactory` has no attribute `pk`", + "concise_description": "Object of class `GetReaderPluginMixin` has no attribute `dirs`", + "severity": "error" + }, + { + "column": 5, + "path": "src/documents/tests/test_barcodes.py", + "name": "no-matching-overload", + "concise_description": "No matching overload found for function `contextlib.contextmanager` called with arguments: ((self: Self@TestAsnBarcode, filepath: Path) -> BarcodePlugin)", + "severity": "error" + }, + { + "column": 45, + "path": "src/documents/tests/test_barcodes.py", + "name": "bad-return", + "concise_description": "Generator function should return `Generator`", + "severity": "error" + }, + { + "column": 5, + "path": "src/documents/tests/test_barcodes.py", + "name": "no-matching-overload", + "concise_description": "No matching overload found for function `contextlib.contextmanager` called with arguments: ((self: Self@TestTagBarcode, filepath: Path) -> BarcodePlugin)", + "severity": "error" + }, + { + "column": 45, + "path": "src/documents/tests/test_barcodes.py", + "name": "bad-return", + "concise_description": "Generator function should return `Generator`", + "severity": "error" + }, + { + "column": 13, + "path": "src/documents/tests/test_bulk_edit.py", + "name": "bad-argument-type", + "concise_description": "Argument `int` is not assignable to parameter `correspondent` with type `Correspondent` in function `documents.bulk_edit.set_correspondent`", + "severity": "error" + }, + { + "column": 81, + "path": "src/documents/tests/test_bulk_edit.py", + "name": "bad-argument-type", + "concise_description": "Argument `None` is not assignable to parameter `correspondent` with type `Correspondent` in function `documents.bulk_edit.set_correspondent`", + "severity": "error" + }, + { + "column": 13, + "path": "src/documents/tests/test_bulk_edit.py", + "name": "bad-argument-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" + }, + { + "column": 81, + "path": "src/documents/tests/test_bulk_edit.py", + "name": "bad-argument-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" + }, + { + "column": 13, + "path": "src/documents/tests/test_bulk_edit.py", + "name": "bad-argument-type", + "concise_description": "Argument `int` is not assignable to parameter `storage_path` with type `StoragePath` in function `documents.bulk_edit.set_storage_path`", + "severity": "error" + }, + { + "column": 13, + "path": "src/documents/tests/test_bulk_edit.py", + "name": "bad-argument-type", + "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": 1652, - "column": 41, - "stop_line": 1652, - "stop_column": 61, - "path": "src/paperless_mail/tests/test_mail.py", - "code": -2, + "column": 13, + "path": "src/documents/tests/test_bulk_edit.py", + "name": "bad-argument-type", + "concise_description": "Argument `None` is not assignable to parameter `storage_path` with type `StoragePath` in function `documents.bulk_edit.set_storage_path`", + "severity": "error" + }, + { + "column": 48, + "path": "src/documents/tests/test_bulk_edit.py", + "name": "bad-argument-count", + "concise_description": "Missing positional argument `value` in function `list.count`", + "severity": "error" + }, + { + "column": 26, + "path": "src/documents/tests/test_bulk_edit.py", + "name": "missing-attribute", + "concise_description": "Object of type `Group | dict[Unknown, Unknown]` has no attribute `count`", + "severity": "error" + }, + { + "column": 48, + "path": "src/documents/tests/test_bulk_edit.py", + "name": "bad-argument-count", + "concise_description": "Missing positional argument `value` in function `list.count`", + "severity": "error" + }, + { + "column": 26, + "path": "src/documents/tests/test_bulk_edit.py", + "name": "missing-attribute", + "concise_description": "Object of type `Group | dict[Unknown, Unknown]` has no attribute `count`", + "severity": "error" + }, + { + "column": 65, + "path": "src/documents/tests/test_bulk_edit.py", + "name": "bad-argument-count", + "concise_description": "Missing positional argument `value` in function `list.count`", + "severity": "error" + }, + { + "column": 34, + "path": "src/documents/tests/test_bulk_edit.py", + "name": "missing-attribute", + "concise_description": "Object of type `Group | dict[Unknown, Unknown]` has no attribute `count`", + "severity": "error" + }, + { + "column": 18, + "path": "src/documents/tests/test_classifier.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `classes_`", + "severity": "error" + }, + { + "column": 18, + "path": "src/documents/tests/test_classifier.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `classes_`", + "severity": "error" + }, + { + "column": 23, + "path": "src/documents/tests/test_classifier.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `transform`", + "severity": "error" + }, + { + "column": 40, + "path": "src/documents/tests/test_classifier.py", + "name": "missing-module-attribute", + "concise_description": "Could not import `InconsistentVersionWarning` from `sklearn.exceptions`", + "severity": "error" + }, + { + "column": 17, + "path": "src/documents/tests/test_classifier.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `append`", + "severity": "error" + }, + { + "column": 21, + "path": "src/documents/tests/test_classifier.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `classes_`", + "severity": "error" + }, + { + "column": 16, + "path": "src/documents/tests/test_consumer.py", + "name": "bad-return", + "concise_description": "Returned type `Path | None` is not assignable to declared return type `Path`", + "severity": "error" + }, + { + "column": 42, + "path": "src/documents/tests/test_consumer.py", + "name": "bad-typed-dict-key", + "concise_description": "TypedDict `DocumentUpdatedData` does not have key `current_progress`", + "severity": "error" + }, + { + "column": 42, + "path": "src/documents/tests/test_consumer.py", + "name": "bad-typed-dict-key", + "concise_description": "TypedDict `DocumentsDeletedData` does not have key `current_progress`", + "severity": "error" + }, + { + "column": 42, + "path": "src/documents/tests/test_consumer.py", + "name": "bad-typed-dict-key", + "concise_description": "TypedDict `DocumentUpdatedData` does not have key `max_progress`", + "severity": "error" + }, + { + "column": 42, + "path": "src/documents/tests/test_consumer.py", + "name": "bad-typed-dict-key", + "concise_description": "TypedDict `DocumentsDeletedData` does not have key `max_progress`", + "severity": "error" + }, + { + "column": 42, + "path": "src/documents/tests/test_consumer.py", + "name": "bad-typed-dict-key", + "concise_description": "TypedDict `DocumentUpdatedData` does not have key `status`", + "severity": "error" + }, + { + "column": 42, + "path": "src/documents/tests/test_consumer.py", + "name": "bad-typed-dict-key", + "concise_description": "TypedDict `DocumentsDeletedData` does not have key `status`", + "severity": "error" + }, + { + "column": 42, + "path": "src/documents/tests/test_consumer.py", + "name": "bad-typed-dict-key", + "concise_description": "TypedDict `DocumentUpdatedData` does not have key `current_progress`", + "severity": "error" + }, + { + "column": 42, + "path": "src/documents/tests/test_consumer.py", + "name": "bad-typed-dict-key", + "concise_description": "TypedDict `DocumentsDeletedData` does not have key `current_progress`", + "severity": "error" + }, + { + "column": 42, + "path": "src/documents/tests/test_consumer.py", + "name": "bad-typed-dict-key", + "concise_description": "TypedDict `DocumentUpdatedData` does not have key `max_progress`", + "severity": "error" + }, + { + "column": 42, + "path": "src/documents/tests/test_consumer.py", + "name": "bad-typed-dict-key", + "concise_description": "TypedDict `DocumentsDeletedData` does not have key `max_progress`", + "severity": "error" + }, + { + "column": 42, + "path": "src/documents/tests/test_consumer.py", + "name": "bad-typed-dict-key", + "concise_description": "TypedDict `DocumentUpdatedData` does not have key `status`", + "severity": "error" + }, + { + "column": 42, + "path": "src/documents/tests/test_consumer.py", + "name": "bad-typed-dict-key", + "concise_description": "TypedDict `DocumentsDeletedData` does not have key `status`", + "severity": "error" + }, + { + "column": 26, + "path": "src/documents/tests/test_consumer.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `filename`", + "severity": "error" + }, + { + "column": 26, + "path": "src/documents/tests/test_consumer.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `archive_filename`", + "severity": "error" + }, + { + "column": 26, + "path": "src/documents/tests/test_consumer.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `filename`", + "severity": "error" + }, + { + "column": 26, + "path": "src/documents/tests/test_consumer.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `archive_filename`", + "severity": "error" + }, + { + "column": 26, + "path": "src/documents/tests/test_consumer.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `filename`", + "severity": "error" + }, + { + "column": 26, + "path": "src/documents/tests/test_consumer.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `archive_filename`", + "severity": "error" + }, + { + "column": 24, + "path": "src/documents/tests/test_document_list_effective_content_annotation.py", + "name": "bad-assignment", + "concise_description": "`SimpleNamespace` is not assignable to attribute `request` with type `Request`", + "severity": "error" + }, + { + "column": 24, + "path": "src/documents/tests/test_document_list_effective_content_annotation.py", + "name": "bad-assignment", + "concise_description": "`SimpleNamespace` is not assignable to attribute `request` with type `Request`", + "severity": "error" + }, + { + "column": 9, + "path": "src/documents/tests/test_document_list_effective_content_annotation.py", + "name": "missing-attribute", + "concise_description": "Object of class `Document` has no attribute `effective_content`", + "severity": "error" + }, + { + "column": 9, + "path": "src/documents/tests/test_document_list_effective_content_annotation.py", + "name": "missing-attribute", + "concise_description": "Object of class `Document` has no attribute `_prefetched_objects_cache`", + "severity": "error" + }, + { + "column": 27, + "path": "src/documents/tests/test_file_handling.py", + "name": "bad-argument-type", + "concise_description": "Argument `Path | None` is not assignable to parameter `path` with type `PathLike[str] | str` in function `paperless_testing.assertions.FileSystemAssertsMixin.assertIsFile`", + "severity": "error" + }, + { + "column": 27, + "path": "src/documents/tests/test_filters.py", + "name": "bad-argument-type", + "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" + }, + { + "column": 22, + "path": "src/documents/tests/test_management_exporter.py", + "name": "bad-argument-type", + "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" + }, + { + "column": 22, + "path": "src/documents/tests/test_management_exporter.py", + "name": "bad-argument-type", + "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" + }, + { + "column": 26, + "path": "src/documents/tests/test_management_exporter.py", + "name": "bad-argument-type", + "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" + }, + { + "column": 22, + "path": "src/documents/tests/test_management_exporter.py", + "name": "bad-argument-type", + "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" + }, + { + "column": 13, + "path": "src/documents/tests/test_management_exporter.py", + "name": "missing-attribute", + "concise_description": "Object of class `QuerySet` has no attribute `hard_delete`", + "severity": "error" + }, + { + "column": 16, + "path": "src/documents/tests/test_management_importer.py", + "name": "missing-attribute", + "concise_description": "Object of class `Model` has no attribute `name`", + "severity": "error" + }, + { + "column": 16, + "path": "src/documents/tests/test_management_importer.py", + "name": "missing-attribute", + "concise_description": "Object of class `Model` has no attribute `correspondent_id`", + "severity": "error" + }, + { + "column": 16, + "path": "src/documents/tests/test_management_importer.py", + "name": "missing-attribute", + "concise_description": "Object of class `Model` has no attribute `correspondent_id`", + "severity": "error" + }, + { + "column": 9, + "path": "src/documents/tests/test_migration_sha256_checksums.py", + "name": "missing-attribute", + "concise_description": "Object of class `TestMigrations` has no attribute `_fixture_teardown`", + "severity": "error" + }, + { + "column": 16, + "path": "src/documents/tests/test_models.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `correspondent`", + "severity": "error" + }, + { + "column": 16, + "path": "src/documents/tests/test_models.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `correspondent`", + "severity": "error" + }, + { + "column": 13, + "path": "src/documents/tests/test_parsers.py", + "name": "not-callable", + "concise_description": "Expected a callable, got `None`", + "severity": "error" + }, + { + "column": 13, + "path": "src/documents/tests/test_parsers.py", + "name": "not-callable", + "concise_description": "Expected a callable, got `None`", + "severity": "error" + }, + { + "column": 13, + "path": "src/documents/tests/test_parsers.py", + "name": "not-callable", + "concise_description": "Expected a callable, got `None`", + "severity": "error" + }, + { + "column": 36, + "path": "src/documents/tests/test_permission_filtering_security.py", + "name": "bad-argument-type", + "concise_description": "Argument `AnonymousUser` is not assignable to parameter `user` with type `User | None` in function `documents.permissions.permitted_document_ids`", + "severity": "error" + }, + { + "column": 46, + "path": "src/documents/tests/test_permission_filtering_security.py", + "name": "bad-argument-type", + "concise_description": "Argument `None` is not assignable to parameter `classifier` with type `DocumentClassifier` in function `documents.matching.match_tags`", + "severity": "error" + }, + { + "column": 56, + "path": "src/documents/tests/test_permission_filtering_security.py", + "name": "bad-argument-type", + "concise_description": "Argument `None` is not assignable to parameter `classifier` with type `DocumentClassifier` in function `documents.matching.match_correspondents`", + "severity": "error" + }, + { + "column": 56, + "path": "src/documents/tests/test_permission_filtering_security.py", + "name": "bad-argument-type", + "concise_description": "Argument `None` is not assignable to parameter `classifier` with type `DocumentClassifier` in function `documents.matching.match_document_types`", + "severity": "error" + }, + { + "column": 55, + "path": "src/documents/tests/test_permission_filtering_security.py", + "name": "bad-argument-type", + "concise_description": "Argument `None` is not assignable to parameter `classifier` with type `DocumentClassifier` in function `documents.matching.match_storage_paths`", + "severity": "error" + }, + { + "column": 14, + "path": "src/documents/tests/test_sanity_check.py", + "name": "bad-argument-type", + "concise_description": "Argument `Path | None` is not assignable to parameter `*args` with type `PathLike[str] | str` in function `pathlib.Path.__new__`", + "severity": "error" + }, + { + "column": 24, + "path": "src/documents/tests/test_sanity_check.py", + "name": "bad-argument-type", + "concise_description": "Argument `Path | None` is not assignable to parameter `*args` with type `PathLike[str] | str` in function `pathlib.Path.__new__`", + "severity": "error" + }, + { + "column": 14, + "path": "src/documents/tests/test_sanity_check.py", + "name": "bad-argument-type", + "concise_description": "Argument `Path | None` is not assignable to parameter `*args` with type `PathLike[str] | str` in function `pathlib.Path.__new__`", + "severity": "error" + }, + { + "column": 28, + "path": "src/documents/tests/test_share_link_bundles.py", + "name": "missing-attribute", + "concise_description": "Object of class `_MonkeyPatchedResponse` has no attribute `streaming_content`", + "severity": "error" + }, + { + "column": 23, + "path": "src/documents/tests/test_tag_hierarchy.py", + "name": "bad-argument-type", + "concise_description": "Argument `int` is not assignable to parameter `trigger_type` with type `WorkflowTrigger.WorkflowTriggerType` in function `documents.signals.handlers.run_workflows`", + "severity": "error" + }, + { + "column": 23, + "path": "src/documents/tests/test_tag_hierarchy.py", + "name": "bad-argument-type", + "concise_description": "Argument `int` is not assignable to parameter `trigger_type` with type `WorkflowTrigger.WorkflowTriggerType` in function `documents.signals.handlers.run_workflows`", + "severity": "error" + }, + { + "column": 16, + "path": "src/documents/tests/test_task_signals.py", + "name": "unsupported-operation", + "concise_description": "`None` is not subscriptable", + "severity": "error" + }, + { + "column": 16, + "path": "src/documents/tests/test_task_signals.py", + "name": "unsupported-operation", + "concise_description": "`None` is not subscriptable", + "severity": "error" + }, + { + "column": 16, + "path": "src/documents/tests/test_task_signals.py", + "name": "not-iterable", + "concise_description": "`in` is not supported between `Literal['traceback']` and `None`", + "severity": "error" + }, + { + "column": 20, + "path": "src/documents/tests/test_task_signals.py", + "name": "unsupported-operation", + "concise_description": "`None` is not subscriptable", + "severity": "error" + }, + { + "column": 26, + "path": "src/documents/tests/test_views.py", + "name": "missing-attribute", + "concise_description": "Object of class `_MonkeyPatchedWSGIResponse` has no attribute `url`", + "severity": "error" + }, + { + "column": 17, + "path": "src/documents/tests/test_views.py", + "name": "unsupported-operation", + "concise_description": "`None` is not subscriptable", + "severity": "error" + }, + { + "column": 17, + "path": "src/documents/tests/test_views.py", + "name": "unsupported-operation", + "concise_description": "`None` is not subscriptable", + "severity": "error" + }, + { + "column": 17, + "path": "src/documents/tests/test_views.py", + "name": "unsupported-operation", + "concise_description": "`None` is not subscriptable", + "severity": "error" + }, + { + "column": 17, + "path": "src/documents/tests/test_views.py", + "name": "unsupported-operation", + "concise_description": "`None` is not subscriptable", + "severity": "error" + }, + { + "column": 9, + "path": "src/documents/tests/test_views.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `app_logo`", + "severity": "error" + }, + { + "column": 9, + "path": "src/documents/tests/test_views.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `save`", + "severity": "error" + }, + { + "column": 26, + "path": "src/documents/tests/test_views.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `app_logo`", + "severity": "error" + }, + { + "column": 50, + "path": "src/documents/tests/test_views.py", + "name": "bad-argument-type", + "concise_description": "Argument `_MonkeyPatchedWSGIResponse` is not assignable to parameter `response` with type `StreamingHttpResponse` in function `paperless_testing.http.read_streaming_response`", + "severity": "error" + }, + { + "column": 9, + "path": "src/documents/tests/test_views.py", + "name": "missing-attribute", + "concise_description": "Object of class `_MonkeyPatchedWSGIResponse` has no attribute `render`", + "severity": "error" + }, + { + "column": 9, + "path": "src/documents/tests/test_views.py", + "name": "missing-attribute", + "concise_description": "Object of class `_MonkeyPatchedWSGIResponse` has no attribute `render`", + "severity": "error" + }, + { + "column": 50, + "path": "src/documents/tests/test_views.py", + "name": "bad-argument-type", + "concise_description": "Argument `_MonkeyPatchedWSGIResponse` is not assignable to parameter `response` with type `StreamingHttpResponse` in function `paperless_testing.http.read_streaming_response`", + "severity": "error" + }, + { + "column": 13, + "path": "src/documents/tests/test_views.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `suggestions`", + "severity": "error" + }, + { + "column": 13, + "path": "src/documents/tests/test_views.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `suggestions`", + "severity": "error" + }, + { + "column": 13, + "path": "src/documents/tests/test_views.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `suggestions`", + "severity": "error" + }, + { + "column": 21, + "path": "src/documents/tests/test_workflows.py", + "name": "bad-argument-type", + "concise_description": "Argument `Group | dict[Unknown, Unknown]` is not assignable to parameter `iterable` with type `Iterable[@_]` in function `list.__init__`", + "severity": "error" + }, + { + "column": 21, + "path": "src/documents/tests/test_workflows.py", + "name": "bad-argument-type", + "concise_description": "Argument `Group | dict[Unknown, Unknown]` is not assignable to parameter `iterable` with type `Iterable[@_]` in function `list.__init__`", + "severity": "error" + }, + { + "column": 21, + "path": "src/documents/tests/test_workflows.py", + "name": "bad-argument-type", + "concise_description": "Argument `Group | dict[Unknown, Unknown]` is not assignable to parameter `iterable` with type `Iterable[@_]` in function `list.__init__`", + "severity": "error" + }, + { + "column": 21, + "path": "src/documents/tests/test_workflows.py", + "name": "bad-argument-type", + "concise_description": "Argument `Group | dict[Unknown, Unknown]` is not assignable to parameter `iterable` with type `Iterable[@_]` in function `list.__init__`", + "severity": "error" + }, + { + "column": 24, + "path": "src/documents/tests/test_workflows.py", + "name": "bad-argument-count", + "concise_description": "Missing positional argument `value` in function `list.count`", + "severity": "error" + }, + { + "column": 42, + "path": "src/documents/tests/test_workflows.py", + "name": "bad-assignment", + "concise_description": "`Group | dict[Unknown, Unknown]` is not assignable to `QuerySet[Any, Any]`", + "severity": "error" + }, + { + "column": 24, + "path": "src/documents/tests/test_workflows.py", + "name": "bad-argument-count", + "concise_description": "Missing positional argument `value` in function `list.count`", + "severity": "error" + }, + { + "column": 42, + "path": "src/documents/tests/test_workflows.py", + "name": "bad-assignment", + "concise_description": "`Group | dict[Unknown, Unknown]` is not assignable to `QuerySet[Any, Any]`", + "severity": "error" + }, + { + "column": 45, + "path": "src/documents/tests/test_workflows.py", + "name": "missing-attribute", + "concise_description": "Object of class `str` has no attribute `name`", + "severity": "error" + }, + { + "column": 24, + "path": "src/documents/tests/test_workflows.py", + "name": "bad-argument-count", + "concise_description": "Missing positional argument `value` in function `list.count`", + "severity": "error" + }, + { + "column": 42, + "path": "src/documents/tests/test_workflows.py", + "name": "bad-assignment", + "concise_description": "`Group | dict[Unknown, Unknown]` is not assignable to `QuerySet[Any, Any]`", + "severity": "error" + }, + { + "column": 24, + "path": "src/documents/tests/test_workflows.py", + "name": "bad-argument-count", + "concise_description": "Missing positional argument `value` in function `list.count`", + "severity": "error" + }, + { + "column": 42, + "path": "src/documents/tests/test_workflows.py", + "name": "bad-assignment", + "concise_description": "`Group | dict[Unknown, Unknown]` is not assignable to `QuerySet[Any, Any]`", + "severity": "error" + }, + { + "column": 24, + "path": "src/documents/tests/test_workflows.py", + "name": "bad-argument-count", + "concise_description": "Missing positional argument `value` in function `list.count`", + "severity": "error" + }, + { + "column": 42, + "path": "src/documents/tests/test_workflows.py", + "name": "bad-assignment", + "concise_description": "`Group | dict[Unknown, Unknown]` is not assignable to `QuerySet[Any, Any]`", + "severity": "error" + }, + { + "column": 24, + "path": "src/documents/tests/test_workflows.py", + "name": "bad-argument-count", + "concise_description": "Missing positional argument `value` in function `list.count`", + "severity": "error" + }, + { + "column": 42, + "path": "src/documents/tests/test_workflows.py", + "name": "bad-assignment", + "concise_description": "`Group | dict[Unknown, Unknown]` is not assignable to `QuerySet[Any, Any]`", + "severity": "error" + }, + { + "column": 24, + "path": "src/documents/tests/test_workflows.py", + "name": "bad-argument-count", + "concise_description": "Missing positional argument `value` in function `list.count`", + "severity": "error" + }, + { + "column": 42, + "path": "src/documents/tests/test_workflows.py", + "name": "bad-assignment", + "concise_description": "`Group | dict[Unknown, Unknown]` is not assignable to `QuerySet[Any, Any]`", + "severity": "error" + }, + { + "column": 24, + "path": "src/documents/tests/test_workflows.py", + "name": "bad-argument-count", + "concise_description": "Missing positional argument `value` in function `list.count`", + "severity": "error" + }, + { + "column": 42, + "path": "src/documents/tests/test_workflows.py", + "name": "bad-assignment", + "concise_description": "`Group | dict[Unknown, Unknown]` is not assignable to `QuerySet[Any, Any]`", + "severity": "error" + }, + { + "column": 40, + "path": "src/documents/tests/test_workflows.py", "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`\n Protocol `Container` requires attribute `__contains__`", "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": 2045, + "column": 35, + "path": "src/documents/tests/test_workflows.py", + "name": "bad-argument-type", + "concise_description": "Argument `str | None` is not assignable to parameter `container` with type `Container | Iterable[Any]` in function `unittest.case.TestCase.assertIn`", + "severity": "error" + }, + { + "column": 39, + "path": "src/documents/tests/test_workflows.py", + "name": "bad-argument-type", + "concise_description": "Argument `str | None` is not assignable to parameter `container` with type `Container | Iterable[Any]` in function `unittest.case.TestCase.assertIn`", + "severity": "error" + }, + { + "column": 43, + "path": "src/documents/tests/test_workflows.py", + "name": "bad-assignment", + "concise_description": "`list[str] | Any` is not assignable to `QuerySet[Any, Any]`", + "severity": "error" + }, + { + "column": 45, + "path": "src/documents/tests/test_workflows.py", + "name": "bad-assignment", + "concise_description": "`list[str] | Any` is not assignable to `QuerySet[Any, Any]`", + "severity": "error" + }, + { + "column": 38, + "path": "src/documents/tests/test_workflows.py", + "name": "bad-assignment", + "concise_description": "`Group | dict[Unknown, Unknown]` is not assignable to `QuerySet[Any, Any]`", + "severity": "error" + }, + { + "column": 38, + "path": "src/documents/tests/test_workflows.py", + "name": "bad-assignment", + "concise_description": "`Group | dict[Unknown, Unknown]` is not assignable to `QuerySet[Any, Any]`", + "severity": "error" + }, + { + "column": 38, + "path": "src/documents/tests/test_workflows.py", + "name": "bad-assignment", + "concise_description": "`Group | dict[Unknown, Unknown]` is not assignable to `QuerySet[Any, Any]`", + "severity": "error" + }, + { + "column": 21, + "path": "src/documents/tests/test_workflows.py", + "name": "bad-argument-type", + "concise_description": "Argument `Group | dict[Unknown, Unknown]` is not assignable to parameter `iterable` with type `Iterable[@_]` in function `list.__init__`", + "severity": "error" + }, + { + "column": 21, + "path": "src/documents/tests/test_workflows.py", + "name": "bad-argument-type", + "concise_description": "Argument `Group | dict[Unknown, Unknown]` is not assignable to parameter `iterable` with type `Iterable[@_]` in function `list.__init__`", + "severity": "error" + }, + { "column": 24, - "stop_line": 2045, - "stop_column": 39, - "path": "src/paperless_mail/tests/test_mail.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `MailAccountFactory` has no attribute `pk`", - "concise_description": "Object of class `MailAccountFactory` has no attribute `pk`", + "path": "src/documents/tests/test_workflows.py", + "name": "bad-argument-count", + "concise_description": "Missing positional argument `value` in function `list.count`", + "severity": "error" + }, + { + "column": 42, + "path": "src/documents/tests/test_workflows.py", + "name": "bad-assignment", + "concise_description": "`Group | dict[Unknown, Unknown]` is not assignable to `QuerySet[Any, Any]`", "severity": "error" }, { - "line": 2068, "column": 24, - "stop_line": 2068, - "stop_column": 39, - "path": "src/paperless_mail/tests/test_mail.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `MailAccountFactory` has no attribute `pk`", - "concise_description": "Object of class `MailAccountFactory` has no attribute `pk`", + "path": "src/documents/tests/test_workflows.py", + "name": "bad-argument-count", + "concise_description": "Missing positional argument `value` in function `list.count`", "severity": "error" }, { - "line": 135, "column": 42, - "stop_line": 135, - "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`", + "path": "src/documents/tests/test_workflows.py", + "name": "bad-assignment", + "concise_description": "`Group | dict[Unknown, Unknown]` is not assignable to `QuerySet[Any, Any]`", "severity": "error" }, { - "line": 146, - "column": 42, - "stop_line": 146, - "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": 178, - "column": 46, - "stop_line": 178, - "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": 188, - "column": 46, - "stop_line": 188, - "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": 308, - "column": 55, - "stop_line": 308, - "stop_column": 67, - "path": "src/paperless_mail/tests/test_mail_oauth.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `MailAccountFactory` is not assignable to parameter `account` with type `MailAccount` in function `paperless_mail.mail.MailAccountHandler.handle_mail_account`", - "concise_description": "Argument `MailAccountFactory` is not assignable to parameter `account` with type `MailAccount` in function `paperless_mail.mail.MailAccountHandler.handle_mail_account`", - "severity": "error" - }, - { - "line": 326, - "column": 55, - "stop_line": 326, - "stop_column": 75, - "path": "src/paperless_mail/tests/test_mail_oauth.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `MailAccountFactory` is not assignable to parameter `account` with type `MailAccount` in function `paperless_mail.mail.MailAccountHandler.handle_mail_account`", - "concise_description": "Argument `MailAccountFactory` is not assignable to parameter `account` with type `MailAccount` in function `paperless_mail.mail.MailAccountHandler.handle_mail_account`", - "severity": "error" - }, - { - "line": 366, - "column": 63, - "stop_line": 366, - "stop_column": 75, - "path": "src/paperless_mail/tests/test_mail_oauth.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `MailAccountFactory` is not assignable to parameter `account` with type `MailAccount` in function `paperless_mail.mail.MailAccountHandler.handle_mail_account`", - "concise_description": "Argument `MailAccountFactory` is not assignable to parameter `account` with type `MailAccount` in function `paperless_mail.mail.MailAccountHandler.handle_mail_account`", - "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, + "path": "src/documents/tests/test_workflows.py", + "name": "bad-argument-type", + "concise_description": "Argument `Path | str` is not assignable to parameter `original_file` with type `Path` in function `documents.data_models.ConsumableDocument.__init__`", + "severity": "error" + }, + { + "column": 23, + "path": "src/documents/tests/test_workflows.py", + "name": "bad-argument-type", + "concise_description": "Argument `None` is not assignable to parameter `files` with type `dict[Unknown, Unknown]` in function `celery.app.task.Task.__call__`", + "severity": "error" + }, + { + "column": 23, + "path": "src/documents/tests/test_workflows.py", + "name": "bad-argument-type", + "concise_description": "Argument `None` is not assignable to parameter `files` with type `dict[Unknown, Unknown]` in function `celery.app.task.Task.__call__`", + "severity": "error" + }, + { + "column": 27, + "path": "src/documents/tests/test_workflows.py", + "name": "bad-argument-type", + "concise_description": "Argument `None` is not assignable to parameter `files` with type `dict[Unknown, Unknown]` in function `celery.app.task.Task.__call__`", + "severity": "error" + }, + { + "column": 23, + "path": "src/documents/tests/test_workflows.py", + "name": "bad-argument-type", + "concise_description": "Argument `int` is not assignable to parameter `trigger_type` with type `WorkflowTrigger.WorkflowTriggerType` in function `documents.signals.handlers.run_workflows`", + "severity": "error" + }, + { + "column": 23, + "path": "src/documents/tests/test_workflows.py", + "name": "bad-argument-type", + "concise_description": "Argument `int` is not assignable to parameter `trigger_type` with type `WorkflowTrigger.WorkflowTriggerType` in function `documents.signals.handlers.run_workflows`", + "severity": "error" + }, + { + "column": 27, + "path": "src/documents/tests/test_workflows.py", + "name": "bad-argument-type", + "concise_description": "Argument `int` is not assignable to parameter `trigger_type` with type `WorkflowTrigger.WorkflowTriggerType` in function `documents.signals.handlers.run_workflows`", + "severity": "error" + }, + { + "column": 23, + "path": "src/documents/tests/test_workflows.py", + "name": "bad-argument-type", + "concise_description": "Argument `int` is not assignable to parameter `trigger_type` with type `WorkflowTrigger.WorkflowTriggerType` in function `documents.signals.handlers.run_workflows`", + "severity": "error" + }, + { + "column": 23, + "path": "src/documents/tests/test_workflows.py", + "name": "bad-argument-type", + "concise_description": "Argument `int` is not assignable to parameter `trigger_type` with type `WorkflowTrigger.WorkflowTriggerType` in function `documents.signals.handlers.run_workflows`", + "severity": "error" + }, + { + "column": 19, + "path": "src/documents/tests/test_workflows.py", + "name": "bad-argument-type", + "concise_description": "Argument `None` is not assignable to parameter `files` with type `dict[Unknown, Unknown]` in function `celery.app.task.Task.__call__`", + "severity": "error" + }, + { + "column": 16, + "path": "src/documents/tests/test_workflows.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `headers`", + "severity": "error" + }, + { + "column": 19, + "path": "src/documents/tests/test_workflows.py", + "name": "bad-argument-type", + "concise_description": "Argument `None` is not assignable to parameter `files` with type `dict[Unknown, Unknown]` in function `celery.app.task.Task.__call__`", + "severity": "error" + }, + { + "column": 16, + "path": "src/documents/tests/test_workflows.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `headers`", + "severity": "error" + }, + { + "column": 23, + "path": "src/documents/tests/test_workflows.py", + "name": "bad-argument-type", + "concise_description": "Argument `None` is not assignable to parameter `files` with type `dict[Unknown, Unknown]` in function `celery.app.task.Task.__call__`", + "severity": "error" + }, + { + "column": 23, + "path": "src/documents/tests/test_workflows.py", + "name": "bad-argument-type", + "concise_description": "Argument `None` is not assignable to parameter `files` with type `dict[Unknown, Unknown]` in function `celery.app.task.Task.__call__`", + "severity": "error" + }, + { + "column": 23, + "path": "src/documents/tests/test_workflows.py", + "name": "bad-argument-type", + "concise_description": "Argument `None` is not assignable to parameter `files` with type `dict[Unknown, Unknown]` in function `celery.app.task.Task.__call__`", + "severity": "error" + }, + { + "column": 23, + "path": "src/documents/tests/test_workflows.py", + "name": "bad-argument-type", + "concise_description": "Argument `None` is not assignable to parameter `files` with type `dict[Unknown, Unknown]` in function `celery.app.task.Task.__call__`", + "severity": "error" + }, + { + "column": 19, + "path": "src/documents/tests/test_workflows.py", + "name": "bad-argument-type", + "concise_description": "Argument `None` is not assignable to parameter `files` with type `dict[Unknown, Unknown]` in function `celery.app.task.Task.__call__`", + "severity": "error" + }, + { + "column": 16, + "path": "src/documents/tests/test_workflows.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `url`", + "severity": "error" + }, + { + "column": 16, + "path": "src/documents/tests/test_workflows.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `headers`", + "severity": "error" + }, + { + "column": 23, + "path": "src/documents/tests/test_workflows.py", + "name": "bad-argument-type", + "concise_description": "Argument `None` is not assignable to parameter `files` with type `dict[Unknown, Unknown]` in function `celery.app.task.Task.__call__`", + "severity": "error" + }, + { + "column": 19, + "path": "src/documents/tests/test_workflows.py", + "name": "bad-argument-type", + "concise_description": "Argument `None` is not assignable to parameter `files` with type `dict[Unknown, Unknown]` in function `celery.app.task.Task.__call__`", + "severity": "error" + }, + { + "column": 16, + "path": "src/documents/tests/test_workflows.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `headers`", + "severity": "error" + }, + { + "column": 35, + "path": "src/documents/tests/test_workflows.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `headers`", + "severity": "error" + }, + { + "column": 31, + "path": "src/documents/tests/test_workflows.py", + "name": "bad-argument-type", + "concise_description": "Argument `Path | str` is not assignable to parameter `original_file` with type `Path` in function `documents.data_models.ConsumableDocument.__init__`", + "severity": "error" + }, + { + "column": 35, + "path": "src/documents/tests/test_workflows.py", + "name": "bad-argument-type", + "concise_description": "Argument `Path | str` is not assignable to parameter `original_file` with type `Path` in function `documents.data_models.ConsumableDocument.__init__`", + "severity": "error" + }, + { + "column": 9, + "path": "src/documents/tests/utils.py", + "name": "missing-attribute", + "concise_description": "Object of class `object` has no attribute `setUp`", + "severity": "error" + }, + { + "column": 9, + "path": "src/documents/tests/utils.py", + "name": "missing-attribute", + "concise_description": "Object of class `object` has no attribute `tearDown`", + "severity": "error" + }, + { + "column": 13, + "path": "src/documents/tests/utils.py", + "name": "missing-attribute", + "concise_description": "Object of class `GetConsumerMixin` has no attribute `dirs`", + "severity": "error" + }, + { + "column": 13, + "path": "src/documents/tests/utils.py", + "name": "missing-attribute", + "concise_description": "Object of class `GetConsumerMixin` has no attribute `dirs`", + "severity": "error" + }, + { + "column": 13, + "path": "src/documents/tests/utils.py", + "name": "missing-attribute", + "concise_description": "Object of class `GetConsumerMixin` has no attribute `dirs`", + "severity": "error" + }, + { + "column": 34, + "path": "src/documents/utils.py", + "name": "bad-assignment", + "concise_description": "`float | int | None` is not assignable to attribute `MAX_IMAGE_PIXELS` with type `int | None`", + "severity": "error" + }, + { + "column": 31, + "path": "src/documents/views.py", + "name": "missing-attribute", + "concise_description": "Object of class `AbstractBaseUser` has no attribute `username`", + "severity": "error" + }, + { + "column": 32, + "path": "src/documents/views.py", + "name": "missing-attribute", + "concise_description": "Object of type `AbstractBaseUser | AnonymousUser` has no attribute `get_full_name`", + "severity": "error" + }, + { + "column": 17, + "path": "src/documents/views.py", + "name": "missing-attribute", + "concise_description": "Object of class `BulkPermissionMixin` has no attribute `queryset`", + "severity": "error" + }, + { + "column": 19, + "path": "src/documents/views.py", + "name": "missing-attribute", + "concise_description": "Object of class `object` has no attribute `get_serializer_context`", + "severity": "error" + }, + { + "column": 24, + "path": "src/documents/views.py", + "name": "missing-attribute", + "concise_description": "Object of class `BulkPermissionMixin` has no attribute `filter_queryset`", + "severity": "error" + }, + { + "column": 45, + "path": "src/documents/views.py", + "name": "missing-attribute", + "concise_description": "Object of class `BulkPermissionMixin` has no attribute `get_queryset`", + "severity": "error" + }, + { + "column": 22, + "path": "src/documents/views.py", + "name": "missing-attribute", + "concise_description": "Object of class `BulkPermissionMixin` has no attribute `queryset`", + "severity": "error" + }, + { + "column": 29, + "path": "src/documents/views.py", + "name": "bad-argument-type", + "concise_description": "Argument `Self@CorrespondentViewSet` is not assignable to parameter `instance` with type `Options[Any] | None` in function `django.db.models.manager.BaseManager.__get__`", + "severity": "error" + }, + { + "column": 29, + "path": "src/documents/views.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `annotate`", + "severity": "error" + }, + { + "column": 25, + "path": "src/documents/views.py", + "name": "bad-argument-type", + "concise_description": "Argument `Self@CorrespondentViewSet` is not assignable to parameter `instance` with type `Options[Any] | None` in function `django.db.models.manager.BaseManager.__get__`", + "severity": "error" + }, + { + "column": 25, + "path": "src/documents/views.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `annotate`", + "severity": "error" + }, + { + "column": 48, + "path": "src/documents/views.py", + "name": "missing-attribute", + "concise_description": "Object of class `Correspondent` has no attribute `document_count`", + "severity": "error" + }, + { + "column": 48, + "path": "src/documents/views.py", + "name": "missing-attribute", + "concise_description": "Object of class `DocumentType` has no attribute `document_count`", + "severity": "error" + }, + { + "column": 48, + "path": "src/documents/views.py", + "name": "missing-attribute", + "concise_description": "Object of class `StoragePath` has no attribute `document_count`", + "severity": "error" + }, + { + "column": 28, + "path": "src/documents/views.py", + "name": "missing-attribute", + "concise_description": "Class `DocumentFilterSet` has no class attribute `declared_filters`", + "severity": "error" + }, + { + "column": 9, + "path": "src/documents/views.py", + "name": "bad-override", + "concise_description": "Class member `DocumentViewSet.destroy` overrides parent class `DestroyModelMixin` in an inconsistent manner", + "severity": "error" + }, + { + "column": 37, + "path": "src/documents/views.py", + "name": "bad-argument-type", + "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" + }, + { + "column": 57, + "path": "src/documents/views.py", + "name": "bad-argument-type", + "concise_description": "Argument `DocumentClassifier | None` is not assignable to parameter `classifier` with type `DocumentClassifier` in function `documents.matching.match_correspondents`", + "severity": "error" + }, + { + "column": 52, + "path": "src/documents/views.py", + "name": "bad-argument-type", + "concise_description": "Argument `DocumentClassifier | None` is not assignable to parameter `classifier` with type `DocumentClassifier` in function `documents.matching.match_tags`", + "severity": "error" + }, + { + "column": 59, + "path": "src/documents/views.py", + "name": "bad-argument-type", + "concise_description": "Argument `DocumentClassifier | None` is not assignable to parameter `classifier` with type `DocumentClassifier` in function `documents.matching.match_document_types`", + "severity": "error" + }, + { + "column": 58, + "path": "src/documents/views.py", + "name": "bad-argument-type", + "concise_description": "Argument `DocumentClassifier | None` is not assignable to parameter `classifier` with type `DocumentClassifier` in function `documents.matching.match_storage_paths`", + "severity": "error" + }, + { + "column": 17, + "path": "src/documents/views.py", + "name": "bad-argument-type", + "concise_description": "Argument `ClassificationSuggestions` is not assignable to parameter `suggestions` with type `dict[Unknown, Unknown]` in function `documents.caching.set_llm_suggestions_cache`", + "severity": "error" + }, + { + "column": 5, + "path": "src/documents/views.py", + "name": "bad-specialization", + "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" + }, + { + "column": 36, + "path": "src/documents/views.py", + "name": "missing-argument", + "concise_description": "Missing argument `request` in function `DocumentViewSet.email_documents`", + "severity": "error" + }, + { + "column": 9, + "path": "src/documents/views.py", + "name": "bad-override", + "concise_description": "Class member `UnifiedSearchViewSet.list` overrides parent class `DocumentViewSet` in an inconsistent manner", + "severity": "error" + }, + { + "column": 17, + "path": "src/documents/views.py", + "name": "missing-attribute", + "concise_description": "Object of type `BasePagination | None` has no attribute `get_page_size`", + "severity": "error" + }, + { + "column": 58, + "path": "src/documents/views.py", + "name": "missing-attribute", + "concise_description": "Object of type `BasePagination | None` has no attribute `page_size`", + "severity": "error" + }, + { + "column": 13, + "path": "src/documents/views.py", + "name": "not-iterable", + "concise_description": "Type `None` is not iterable", + "severity": "error" + }, + { + "column": 43, + "path": "src/documents/views.py", + "name": "bad-argument-type", + "concise_description": "Argument `TantivyRelevanceList` is not assignable to parameter `queryset` with type `QuerySet[Any, @_] | Sequence[@_]` in function `rest_framework.generics.GenericAPIView.paginate_queryset`", + "severity": "error" + }, + { + "column": 25, + "path": "src/documents/views.py", + "name": "unsupported-operation", + "concise_description": "`+` is not supported between `None` and `Literal[1]`", + "severity": "error" + }, + { + "column": 17, + "path": "src/documents/views.py", + "name": "not-iterable", + "concise_description": "Type `None` is not iterable", + "severity": "error" + }, + { + "column": 18, + "path": "src/documents/views.py", + "name": "bad-argument-type", + "concise_description": "Argument `AbstractBaseUser | AnonymousUser` is not assignable to parameter `user` with type `User` in function `DocumentSelectionMixin._resolve_document_ids`", + "severity": "error" + }, + { + "column": 18, + "path": "src/documents/views.py", + "name": "bad-argument-type", + "concise_description": "Argument `AbstractBaseUser | AnonymousUser` is not assignable to parameter `user` with type `User` in function `DocumentOperationPermissionMixin._has_document_permissions`", + "severity": "error" + }, + { + "column": 18, + "path": "src/documents/views.py", + "name": "bad-argument-type", + "concise_description": "Argument `AbstractBaseUser | AnonymousUser` is not assignable to parameter `user` with type `User` in function `DocumentSelectionMixin._resolve_document_ids`", + "severity": "error" + }, + { + "column": 18, + "path": "src/documents/views.py", + "name": "bad-argument-type", + "concise_description": "Argument `AbstractBaseUser | AnonymousUser` is not assignable to parameter `user` with type `User` in function `DocumentOperationPermissionMixin._has_document_permissions`", + "severity": "error" + }, + { + "column": 33, + "path": "src/documents/views.py", + "name": "unbound-name", + "concise_description": "`old_values` may be uninitialized", + "severity": "error" + }, + { + "column": 52, + "path": "src/documents/views.py", + "name": "missing-attribute", + "concise_description": "Object of class `Correspondent` has no attribute `document_count`", + "severity": "error" + }, + { + "column": 52, + "path": "src/documents/views.py", + "name": "missing-attribute", + "concise_description": "Object of class `Tag` has no attribute `document_count`", + "severity": "error" + }, + { + "column": 52, + "path": "src/documents/views.py", + "name": "missing-attribute", + "concise_description": "Object of class `DocumentType` has no attribute `document_count`", + "severity": "error" + }, + { + "column": 52, + "path": "src/documents/views.py", + "name": "missing-attribute", + "concise_description": "Object of class `StoragePath` has no attribute `document_count`", + "severity": "error" + }, + { + "column": 52, + "path": "src/documents/views.py", + "name": "missing-attribute", + "concise_description": "Object of class `CustomField` has no attribute `document_count`", + "severity": "error" + }, + { + "column": 65, + "path": "src/documents/views.py", + "name": "bad-argument-type", + "concise_description": "Argument `AbstractBaseUser | AnonymousUser | None` is not assignable to parameter `user` with type `AbstractUser | None` in function `documents.search._backend.TantivyBackend.autocomplete`", + "severity": "error" + }, + { + "column": 9, + "path": "src/documents/views.py", + "name": "bad-override", + "concise_description": "Class member `TasksViewSet.get_serializer_class` overrides parent class `ReadOnlyModelViewSet` in an inconsistent manner", + "severity": "error" + }, + { + "column": 12, + "path": "src/documents/views.py", + "name": "missing-attribute", + "concise_description": "Object of class `AbstractBaseUser` has no attribute `is_staff`", + "severity": "error" + }, + { + "column": 44, + "path": "src/documents/views.py", + "name": "bad-argument-type", + "concise_description": "Argument `QuerySet[PaperlessTask, dict[str, Any]]` is not assignable to parameter `instance` with type `dict[str, Any] | None` in function `rest_framework.serializers.BaseSerializer.__init__`", + "severity": "error" + }, + { + "column": 13, + "path": "src/documents/views.py", + "name": "missing-attribute", + "concise_description": "Object of class `Sequence` has no attribute `append`", + "severity": "error" + }, + { + "column": 24, + "path": "src/documents/views.py", + "name": "missing-attribute", + "concise_description": "Object of class `BaseSerializer` has no attribute `get_object_class`", + "severity": "error" + }, + { + "column": 45, + "path": "src/documents/views.py", + "name": "bad-argument-type", + "concise_description": "Argument `AbstractBaseUser | AnonymousUser` is not assignable to parameter `user` with type `User | None` in function `documents.permissions.permitted_object_ids`", + "severity": "error" + }, + { + "column": 16, + "path": "src/documents/views.py", + "name": "missing-attribute", + "concise_description": "Object of class `AbstractBaseUser` has no attribute `is_superuser`", + "severity": "error" + }, + { + "column": 17, + "path": "src/documents/views.py", + "name": "missing-attribute", + "concise_description": "Object of class `AbstractBaseUser` has no attribute `has_perm`", + "severity": "error" + }, + { + "column": 9, + "path": "src/documents/views.py", + "name": "bad-override", + "concise_description": "Class member `WorkflowTriggerViewSet.partial_update` overrides parent class `ModelViewSet` in an inconsistent manner", + "severity": "error" + }, + { + "column": 9, + "path": "src/documents/views.py", + "name": "bad-override", + "concise_description": "Class member `WorkflowActionViewSet.partial_update` overrides parent class `ModelViewSet` in an inconsistent manner", + "severity": "error" + }, + { + "column": 40, + "path": "src/documents/views.py", + "name": "unbound-name", + "concise_description": "`all_migrations` may be uninitialized", + "severity": "error" + }, + { + "column": 17, + "path": "src/documents/views.py", + "name": "bad-argument-type", + "concise_description": "Argument `AbstractBaseUser | AnonymousUser` is not assignable to parameter `user` with type `User | None` in function `documents.permissions.permitted_document_ids`", + "severity": "error" + }, + { + "column": 16, + "path": "src/documents/views.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `app_logo`", + "severity": "error" + }, + { + "column": 22, + "path": "src/documents/workflows/actions.py", + "name": "missing-attribute", + "concise_description": "Object of class `ConsumableDocument` has no attribute `title`", + "severity": "error" + }, + { + "column": 80, + "path": "src/documents/workflows/actions.py", + "name": "missing-attribute", + "concise_description": "Object of class `ConsumableDocument` has no attribute `pk`", + "severity": "error" + }, + { + "column": 30, + "path": "src/documents/workflows/actions.py", + "name": "missing-attribute", + "concise_description": "Object of class `object` has no attribute `name`", + "severity": "error" + }, + { + "column": 16, + "path": "src/documents/workflows/actions.py", + "name": "missing-attribute", + "concise_description": "Object of class `ConsumableDocument` has no attribute `correspondent`", + "severity": "error" + }, + { + "column": 30, + "path": "src/documents/workflows/actions.py", + "name": "missing-attribute", + "concise_description": "Object of class `object` has no attribute `name`", + "severity": "error" + }, + { + "column": 16, + "path": "src/documents/workflows/actions.py", + "name": "missing-attribute", + "concise_description": "Object of class `ConsumableDocument` has no attribute `document_type`", + "severity": "error" + }, + { + "column": 31, + "path": "src/documents/workflows/actions.py", + "name": "missing-attribute", + "concise_description": "Object of class `object` has no attribute `username`", + "severity": "error" + }, + { + "column": 58, + "path": "src/documents/workflows/actions.py", + "name": "missing-attribute", + "concise_description": "Object of class `ConsumableDocument` has no attribute `owner`", + "severity": "error" + }, + { + "column": 25, + "path": "src/documents/workflows/actions.py", + "name": "missing-attribute", + "concise_description": "Object of class `ConsumableDocument` has no attribute `original_filename`", + "severity": "error" + }, + { + "column": 33, + "path": "src/documents/workflows/actions.py", + "name": "missing-attribute", + "concise_description": "Object of class `ConsumableDocument` has no attribute `filename`", + "severity": "error" + }, + { + "column": 41, + "path": "src/documents/workflows/actions.py", + "name": "missing-attribute", + "concise_description": "Object of class `ConsumableDocument` has no attribute `added`", + "severity": "error" + }, + { + "column": 24, + "path": "src/documents/workflows/actions.py", + "name": "missing-attribute", + "concise_description": "Object of class `ConsumableDocument` has no attribute `created`", + "severity": "error" + }, + { + "column": 19, + "path": "src/documents/workflows/actions.py", + "name": "missing-attribute", + "concise_description": "Object of class `ConsumableDocument` has no attribute `pk`", + "severity": "error" + }, + { + "column": 42, + "path": "src/documents/workflows/actions.py", + "name": "missing-attribute", + "concise_description": "Object of class `Document` has no attribute `original_file`", + "severity": "error" + }, + { + "column": 17, + "path": "src/documents/workflows/actions.py", + "name": "bad-argument-type", + "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" + }, + { + "column": 16, + "path": "src/documents/workflows/actions.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `subject`", + "severity": "error" + }, + { + "column": 17, + "path": "src/documents/workflows/actions.py", + "name": "bad-argument-type", + "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" + }, + { + "column": 16, + "path": "src/documents/workflows/actions.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `body`", + "severity": "error" + }, + { + "column": 12, + "path": "src/documents/workflows/actions.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `include_document`", + "severity": "error" + }, + { + "column": 16, + "path": "src/documents/workflows/actions.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `to`", + "severity": "error" + }, + { + "column": 59, + "path": "src/documents/workflows/actions.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `to`", + "severity": "error" + }, + { + "column": 12, + "path": "src/documents/workflows/actions.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `use_params`", + "severity": "error" + }, + { + "column": 16, + "path": "src/documents/workflows/actions.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `params`", + "severity": "error" + }, + { + "column": 39, + "path": "src/documents/workflows/actions.py", + "name": "missing-attribute", + "concise_description": "Object of class `object` has no attribute `items`", + "severity": "error" + }, + { + "column": 14, + "path": "src/documents/workflows/actions.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `body`", + "severity": "error" + }, + { + "column": 17, + "path": "src/documents/workflows/actions.py", + "name": "bad-argument-type", + "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" + }, + { + "column": 12, + "path": "src/documents/workflows/actions.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `headers`", + "severity": "error" + }, + { + "column": 55, + "path": "src/documents/workflows/actions.py", + "name": "missing-attribute", + "concise_description": "Object of class `object` has no attribute `items`", + "severity": "error" + }, + { + "column": 12, + "path": "src/documents/workflows/actions.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `include_document`", + "severity": "error" + }, + { + "column": 24, + "path": "src/documents/workflows/actions.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `url`", + "severity": "error" + }, + { + "column": 28, + "path": "src/documents/workflows/actions.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `as_json`", + "severity": "error" + }, + { + "column": 27, + "path": "src/documents/workflows/actions.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `url`", + "severity": "error" + }, + { + "column": 43, + "path": "src/documents/workflows/actions.py", + "name": "bad-assignment", + "concise_description": "`Unknown | None` is not assignable to `Document`", + "severity": "error" + }, + { + "column": 8, + "path": "src/documents/workflows/mutations.py", + "name": "missing-attribute", + "concise_description": "Object of class `WorkflowAction` has no attribute `has_assign_tags`", + "severity": "error" + }, + { + "column": 13, + "path": "src/documents/workflows/mutations.py", + "name": "missing-attribute", + "concise_description": "Object of class `WorkflowAction` has no attribute `has_assign_view_users`", + "severity": "error" + }, + { + "column": 13, + "path": "src/documents/workflows/mutations.py", + "name": "missing-attribute", + "concise_description": "Object of class `WorkflowAction` has no attribute `has_assign_view_groups`", + "severity": "error" + }, + { + "column": 13, + "path": "src/documents/workflows/mutations.py", + "name": "missing-attribute", + "concise_description": "Object of class `WorkflowAction` has no attribute `has_assign_change_users`", + "severity": "error" + }, + { + "column": 13, + "path": "src/documents/workflows/mutations.py", + "name": "missing-attribute", + "concise_description": "Object of class `WorkflowAction` has no attribute `has_assign_change_groups`", + "severity": "error" + }, + { + "column": 8, + "path": "src/documents/workflows/mutations.py", + "name": "missing-attribute", + "concise_description": "Object of class `WorkflowAction` has no attribute `has_assign_custom_fields`", + "severity": "error" + }, + { + "column": 27, + "path": "src/documents/workflows/mutations.py", + "name": "bad-argument-type", + "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" + }, + { + "column": 35, + "path": "src/documents/workflows/mutations.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `get`", + "severity": "error" + }, + { + "column": 8, + "path": "src/documents/workflows/mutations.py", + "name": "missing-attribute", + "concise_description": "Object of class `WorkflowAction` has no attribute `has_assign_tags`", + "severity": "error" + }, + { + "column": 13, + "path": "src/documents/workflows/mutations.py", + "name": "missing-attribute", + "concise_description": "Object of class `WorkflowAction` has no attribute `has_assign_view_users`", + "severity": "error" + }, + { + "column": 13, + "path": "src/documents/workflows/mutations.py", + "name": "missing-attribute", + "concise_description": "Object of class `WorkflowAction` has no attribute `has_assign_view_groups`", + "severity": "error" + }, + { + "column": 13, + "path": "src/documents/workflows/mutations.py", + "name": "missing-attribute", + "concise_description": "Object of class `WorkflowAction` has no attribute `has_assign_change_users`", + "severity": "error" + }, + { + "column": 13, + "path": "src/documents/workflows/mutations.py", + "name": "missing-attribute", + "concise_description": "Object of class `WorkflowAction` has no attribute `has_assign_change_groups`", + "severity": "error" + }, + { + "column": 8, + "path": "src/documents/workflows/mutations.py", + "name": "missing-attribute", + "concise_description": "Object of class `WorkflowAction` has no attribute `has_assign_custom_fields`", + "severity": "error" + }, + { + "column": 27, + "path": "src/documents/workflows/mutations.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `get`", + "severity": "error" + }, + { + "column": 13, + "path": "src/documents/workflows/mutations.py", + "name": "missing-attribute", + "concise_description": "Object of class `WorkflowAction` has no attribute `has_remove_view_users`", + "severity": "error" + }, + { + "column": 13, + "path": "src/documents/workflows/mutations.py", + "name": "missing-attribute", + "concise_description": "Object of class `WorkflowAction` has no attribute `has_remove_view_groups`", + "severity": "error" + }, + { + "column": 13, + "path": "src/documents/workflows/mutations.py", + "name": "missing-attribute", + "concise_description": "Object of class `WorkflowAction` has no attribute `has_remove_change_users`", + "severity": "error" + }, + { + "column": 13, + "path": "src/documents/workflows/mutations.py", + "name": "missing-attribute", + "concise_description": "Object of class `WorkflowAction` has no attribute `has_remove_change_groups`", + "severity": "error" + }, + { + "column": 9, + "path": "src/documents/workflows/mutations.py", + "name": "missing-attribute", + "concise_description": "Object of class `QuerySet` has no attribute `hard_delete`", + "severity": "error" + }, + { + "column": 10, + "path": "src/documents/workflows/mutations.py", + "name": "missing-attribute", + "concise_description": "Object of class `WorkflowAction` has no attribute `has_remove_custom_fields`", + "severity": "error" + }, + { + "column": 9, + "path": "src/documents/workflows/mutations.py", + "name": "missing-attribute", + "concise_description": "Object of class `QuerySet` has no attribute `hard_delete`", + "severity": "error" + }, + { + "column": 13, + "path": "src/documents/workflows/mutations.py", + "name": "missing-attribute", + "concise_description": "Object of class `WorkflowAction` has no attribute `has_remove_view_users`", + "severity": "error" + }, + { + "column": 13, + "path": "src/documents/workflows/mutations.py", + "name": "missing-attribute", + "concise_description": "Object of class `WorkflowAction` has no attribute `has_remove_view_groups`", + "severity": "error" + }, + { + "column": 13, + "path": "src/documents/workflows/mutations.py", + "name": "missing-attribute", + "concise_description": "Object of class `WorkflowAction` has no attribute `has_remove_change_users`", + "severity": "error" + }, + { + "column": 13, + "path": "src/documents/workflows/mutations.py", + "name": "missing-attribute", + "concise_description": "Object of class `WorkflowAction` has no attribute `has_remove_change_groups`", + "severity": "error" + }, + { + "column": 10, + "path": "src/documents/workflows/mutations.py", + "name": "missing-attribute", + "concise_description": "Object of class `WorkflowAction` has no attribute `has_remove_custom_fields`", + "severity": "error" + }, + { + "column": 26, + "path": "src/paperless/adapter.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `get_host`", + "severity": "error" + }, + { + "column": 31, + "path": "src/paperless/adapter.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `get_host`", + "severity": "error" + }, + { + "column": 22, + "path": "src/paperless/adapter.py", + "name": "bad-assignment", + "concise_description": "`AbstractBaseUser` is not assignable to `User`", + "severity": "error" + }, + { + "column": 22, + "path": "src/paperless/adapter.py", + "name": "bad-assignment", + "concise_description": "`AbstractBaseUser` is not assignable to `User`", + "severity": "error" + }, + { + "column": 24, + "path": "src/paperless/admin.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `get`", + "severity": "error" + }, + { + "column": 17, + "path": "src/paperless/admin.py", + "name": "missing-attribute", + "concise_description": "Object of class `PaperlessUserForm` has no attribute `request`", + "severity": "error" + }, + { + "column": 20, + "path": "src/paperless/auth.py", + "name": "bad-return", + "concise_description": "Returned type `Awaitable[HttpResponseBase] | HttpResponseBase` is not assignable to declared return type `None`", + "severity": "error" + }, + { + "column": 16, + "path": "src/paperless/auth.py", + "name": "bad-return", + "concise_description": "Returned type `Awaitable[HttpResponseBase] | HttpResponseBase` is not assignable to declared return type `None`", + "severity": "error" + }, + { + "column": 5, + "path": "src/paperless/celery.py", + "name": "bad-argument-type", + "concise_description": "Argument `(obj: object) -> bytes` is not assignable to parameter `encoder` with type `((Any) -> str) | None` in function `kombu.serialization.register`", + "severity": "error" + }, + { + "column": 5, + "path": "src/paperless/celery.py", + "name": "bad-argument-type", + "concise_description": "Argument `(payload: bytes) -> Any` is not assignable to parameter `decoder` with type `((str) -> Any) | None` in function `kombu.serialization.register`", + "severity": "error" + }, + { + "column": 12, + "path": "src/paperless/checks.py", + "name": "bad-return", + "concise_description": "Returned type `list[Warning]` is not assignable to declared return type `list[Error]`", + "severity": "error" + }, + { + "column": 9, + "path": "src/paperless/checks.py", + "name": "bad-return", + "concise_description": "Returned type `list[Error]` is not assignable to declared return type `list[Error | Warning]`", + "severity": "error" + }, + { + "column": 12, + "path": "src/paperless/checks.py", + "name": "bad-return", + "concise_description": "Returned type `list[Warning]` is not assignable to declared return type `list[Error]`", + "severity": "error" + }, + { + "column": 26, + "path": "src/paperless/checks.py", + "name": "no-matching-overload", + "concise_description": "No matching overload found for function `subprocess.run` called with arguments: (list[str | None], capture_output=Literal[True])", + "severity": "error" + }, + { + "column": 16, + "path": "src/paperless/checks.py", + "name": "bad-return", + "concise_description": "Returned type `list[Warning]` is not assignable to declared return type `list[Error]`", + "severity": "error" + }, + { + "column": 21, + "path": "src/paperless/checks.py", + "name": "bad-argument-type", + "concise_description": "Argument `Error` is not assignable to parameter `object` with type `Warning` in function `list.append`", + "severity": "error" + }, + { + "column": 12, + "path": "src/paperless/checks.py", + "name": "bad-return", + "concise_description": "Returned type `list[Warning]` is not assignable to declared return type `list[Error]`", + "severity": "error" + }, + { + "column": 16, + "path": "src/paperless/config.py", + "name": "bad-return", + "concise_description": "Returned type `ApplicationConfiguration | None` is not assignable to declared return type `ApplicationConfiguration`", + "severity": "error" + }, + { + "column": 28, + "path": "src/paperless/config.py", + "name": "bad-assignment", + "concise_description": "`OutputTypeChoices | str` is not assignable to attribute `output_type` with type `OutputTypeChoices`", + "severity": "error" + }, + { + "column": 21, + "path": "src/paperless/config.py", + "name": "bad-assignment", + "concise_description": "`ModeChoices | str` is not assignable to attribute `mode` with type `ModeChoices`", + "severity": "error" + }, + { + "column": 13, + "path": "src/paperless/config.py", + "name": "bad-assignment", + "concise_description": "`ArchiveFileGenerationChoices | str` is not assignable to attribute `archive_file_generation` with type `ArchiveFileGenerationChoices`", + "severity": "error" + }, + { + "column": 22, + "path": "src/paperless/config.py", + "name": "bad-assignment", + "concise_description": "`CleanChoices | str` is not assignable to attribute `clean` with type `CleanChoices`", + "severity": "error" + }, + { + "column": 13, + "path": "src/paperless/config.py", + "name": "bad-assignment", + "concise_description": "`ColorConvertChoices | str` is not assignable to attribute `color_conversion_strategy` with type `ColorConvertChoices`", + "severity": "error" + }, + { + "column": 26, + "path": "src/paperless/config.py", + "name": "bad-assignment", + "concise_description": "`str | None` is not assignable to attribute `app_title` with type `str`", + "severity": "error" + }, + { + "column": 25, + "path": "src/paperless/config.py", + "name": "bad-assignment", + "concise_description": "`Unknown | None` is not assignable to attribute `app_logo` with type `str`", + "severity": "error" + }, + { + "column": 32, + "path": "src/paperless/config.py", + "name": "bad-assignment", + "concise_description": "`RemoteOCRMode | str` is not assignable to attribute `remote_ocr_mode` with type `RemoteOCRMode`", + "severity": "error" + }, + { + "column": 12, + "path": "src/paperless/consumers.py", + "name": "missing-attribute", + "concise_description": "Object of class `AbstractBaseUser` has no attribute `is_superuser`", + "severity": "error" + }, + { + "column": 22, + "path": "src/paperless/consumers.py", + "name": "missing-attribute", + "concise_description": "Object of class `AbstractBaseUser` has no attribute `groups`", + "severity": "error" + }, + { + "column": 35, + "path": "src/paperless/consumers.py", + "name": "bad-argument-type", + "concise_description": "Argument `ProgressUpdateData` is not assignable to parameter `data` with type `PermissionsData` in function `StatusConsumer._can_view`", + "severity": "error" + }, + { + "column": 35, + "path": "src/paperless/consumers.py", + "name": "bad-argument-type", + "concise_description": "Argument `DocumentUpdatedData` is not assignable to parameter `data` with type `PermissionsData` in function `StatusConsumer._can_view`", + "severity": "error" + }, + { + "column": 12, + "path": "src/paperless/network.py", + "name": "bad-return", + "concise_description": "Returned type `list[int | str]` is not assignable to declared return type `list[str]`", + "severity": "error" + }, + { + "column": 17, + "path": "src/paperless/parsers/tesseract.py", + "name": "bad-argument-type", + "concise_description": "Argument `bytes | None` is not assignable to parameter `data` with type `Buffer` in function `pathlib.Path.write_bytes`", + "severity": "error" + }, + { + "column": 16, + "path": "src/paperless/serialisers.py", + "name": "missing-attribute", + "concise_description": "Object of class `PasswordValidationMixin` has no attribute `instance`", + "severity": "error" + }, + { + "column": 9, + "path": "src/paperless/serialisers.py", + "name": "bad-override", + "concise_description": "Class member `ApplicationConfigurationSerializer.run_validation` overrides parent class `ModelSerializer` in an inconsistent manner", + "severity": "error" + }, + { + "column": 28, + "path": "src/paperless/serialisers.py", + "name": "missing-attribute", + "concise_description": "Object of class `UploadedFile` has no attribute `field_name`", + "severity": "error" + }, + { + "column": 43, + "path": "src/paperless/settings/__init__.py", + "name": "bad-assignment", + "concise_description": "`dict[str, int | list[str] | str]` is not assignable to dict key `CONFIG` with type `str`", + "severity": "error" + }, + { + "column": 30, + "path": "src/paperless/settings/__init__.py", + "name": "bad-argument-type", + "concise_description": "Argument `str | None` is not assignable to parameter `object` with type `str` in function `list.append`", + "severity": "error" + }, + { + "column": 39, + "path": "src/paperless/settings/__init__.py", + "name": "bad-argument-type", + "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" + }, + { + "column": 27, + "path": "src/paperless/settings/custom.py", + "name": "bad-argument-type", + "concise_description": "Argument `str | dict[str, float]` is not assignable to parameter `key` with type `str` in function `os.getenv`", + "severity": "error" + }, + { + "column": 52, + "path": "src/paperless/settings/custom.py", + "name": "missing-attribute", + "concise_description": "Object of class `dict` has no attribute `split`", + "severity": "error" + }, + { + "column": 19, + "path": "src/paperless/settings/custom.py", + "name": "invalid-argument", + "concise_description": "Expected a mapping, got str | dict[str, float]", + "severity": "error" + }, + { + "column": 12, + "path": "src/paperless/tests/parsers/conftest.py", + "name": "bad-return", + "concise_description": "Returned type `(**django_settings_overrides: Unknown) -> _GeneratorContextManager[RasterisedDocumentParser]` is not assignable to declared return type `(...) -> Generator[RasterisedDocumentParser]`", + "severity": "error" + }, + { + "column": 45, + "path": "src/paperless/tests/parsers/test_mail_parser.py", + "name": "bad-argument-type", + "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" + }, + { + "column": 47, + "path": "src/paperless/tests/parsers/test_mail_parser.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `url`", + "severity": "error" + }, + { + "column": 20, + "path": "src/paperless/tests/parsers/test_mail_parser.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `url`", + "severity": "error" + }, + { + "column": 23, + "path": "src/paperless/tests/parsers/test_mail_parser_live.py", + "name": "no-matching-overload", + "concise_description": "No matching overload found for function `subprocess.run` called with arguments: (list[str | None], check=Literal[True])", + "severity": "error" + }, + { + "column": 37, + "path": "src/paperless/tests/parsers/test_mail_parser_live.py", + "name": "bad-argument-type", + "concise_description": "Argument `Path | None` is not assignable to parameter `pdf_path` with type `Path` in function `extract_text`", + "severity": "error" + }, + { + "column": 42, + "path": "src/paperless/tests/parsers/test_parse_modes.py", + "name": "bad-assignment", + "concise_description": "`str` is not assignable to attribute `mode` with type `ModeChoices`", + "severity": "error" + }, + { + "column": 34, + "path": "src/paperless/tests/parsers/test_remote_parser.py", + "name": "bad-argument-count", + "concise_description": "Expected 1 more positional argument", + "severity": "error" + }, + { + "column": 24, + "path": "src/paperless/tests/parsers/test_tesseract_custom_settings.py", + "name": "bad-argument-type", + "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" + }, + { + "column": 25, + "path": "src/paperless/tests/parsers/test_tesseract_custom_settings.py", + "name": "bad-argument-type", + "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" + }, + { + "column": 26, + "path": "src/paperless/tests/parsers/test_tesseract_custom_settings.py", + "name": "bad-argument-type", + "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" + }, + { + "column": 28, + "path": "src/paperless/tests/parsers/test_tesseract_custom_settings.py", + "name": "bad-argument-type", + "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" + }, + { + "column": 29, + "path": "src/paperless/tests/parsers/test_tesseract_custom_settings.py", + "name": "bad-argument-type", + "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" + }, + { + "column": 30, + "path": "src/paperless/tests/parsers/test_tesseract_custom_settings.py", + "name": "bad-argument-type", + "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" + }, + { + "column": 38, + "path": "src/paperless/tests/parsers/test_tesseract_parser.py", + "name": "bad-argument-type", + "concise_description": "Argument `str` is not assignable to parameter `image` with type `Path` in function `paperless.parsers.tesseract.RasterisedDocumentParser.get_dpi`", + "severity": "error" + }, + { + "column": 17, + "path": "src/paperless/tests/parsers/test_tesseract_parser.py", + "name": "bad-argument-type", + "concise_description": "Argument `str` is not assignable to parameter `image` with type `Path` in function `paperless.parsers.tesseract.RasterisedDocumentParser.calculate_a4_dpi`", + "severity": "error" + }, + { + "column": 42, + "path": "src/paperless/tests/parsers/test_tesseract_parser.py", + "name": "bad-assignment", + "concise_description": "`str` is not assignable to attribute `mode` with type `ModeChoices`", + "severity": "error" + }, + { + "column": 14, + "path": "src/paperless/tests/parsers/test_tesseract_parser.py", + "name": "bad-context-manager", + "concise_description": "Cannot use `Generator[RasterisedDocumentParser]` as a context manager", + "severity": "error" + }, + { + "column": 14, + "path": "src/paperless/tests/parsers/test_tesseract_parser.py", + "name": "bad-context-manager", + "concise_description": "Cannot use `Generator[RasterisedDocumentParser]` as a context manager", + "severity": "error" + }, + { + "column": 14, + "path": "src/paperless/tests/parsers/test_tesseract_parser.py", + "name": "bad-context-manager", + "concise_description": "Cannot use `Generator[RasterisedDocumentParser]` as a context manager", + "severity": "error" + }, + { + "column": 14, + "path": "src/paperless/tests/parsers/test_tesseract_parser.py", + "name": "bad-context-manager", + "concise_description": "Cannot use `Generator[RasterisedDocumentParser]` as a context manager", + "severity": "error" + }, + { + "column": 14, + "path": "src/paperless/tests/parsers/test_tesseract_parser.py", + "name": "bad-context-manager", + "concise_description": "Cannot use `Generator[RasterisedDocumentParser]` as a context manager", + "severity": "error" + }, + { + "column": 14, + "path": "src/paperless/tests/parsers/test_tesseract_parser.py", + "name": "bad-context-manager", + "concise_description": "Cannot use `Generator[RasterisedDocumentParser]` as a context manager", + "severity": "error" + }, + { + "column": 14, + "path": "src/paperless/tests/parsers/test_tesseract_parser.py", + "name": "bad-context-manager", + "concise_description": "Cannot use `Generator[RasterisedDocumentParser]` as a context manager", + "severity": "error" + }, + { + "column": 14, + "path": "src/paperless/tests/parsers/test_tesseract_parser.py", + "name": "bad-context-manager", + "concise_description": "Cannot use `Generator[RasterisedDocumentParser]` as a context manager", + "severity": "error" + }, + { + "column": 14, + "path": "src/paperless/tests/parsers/test_tesseract_parser.py", + "name": "bad-context-manager", + "concise_description": "Cannot use `Generator[RasterisedDocumentParser]` as a context manager", + "severity": "error" + }, + { + "column": 14, + "path": "src/paperless/tests/parsers/test_tesseract_parser.py", + "name": "bad-context-manager", + "concise_description": "Cannot use `Generator[RasterisedDocumentParser]` as a context manager", + "severity": "error" + }, + { + "column": 14, + "path": "src/paperless/tests/parsers/test_tesseract_parser.py", + "name": "bad-context-manager", + "concise_description": "Cannot use `Generator[RasterisedDocumentParser]` as a context manager", + "severity": "error" + }, + { + "column": 14, + "path": "src/paperless/tests/parsers/test_tesseract_parser.py", + "name": "bad-context-manager", + "concise_description": "Cannot use `Generator[RasterisedDocumentParser]` as a context manager", + "severity": "error" + }, + { + "column": 14, + "path": "src/paperless/tests/parsers/test_tesseract_parser.py", + "name": "bad-context-manager", + "concise_description": "Cannot use `Generator[RasterisedDocumentParser]` as a context manager", + "severity": "error" + }, + { + "column": 14, + "path": "src/paperless/tests/parsers/test_tesseract_parser.py", + "name": "bad-context-manager", + "concise_description": "Cannot use `Generator[RasterisedDocumentParser]` as a context manager", + "severity": "error" + }, + { + "column": 19, + "path": "src/paperless/tests/parsers/test_tika_parser.py", + "name": "bad-argument-type", + "concise_description": "Argument `Path | None` is not assignable to parameter `*args` with type `PathLike[str] | str` in function `pathlib.Path.__new__`", + "severity": "error" + }, + { + "column": 43, + "path": "src/paperless/tests/test_adapter.py", + "name": "bad-argument-type", + "concise_description": "Argument `None` is not assignable to parameter `request` with type `HttpRequest` in function `allauth.account.adapter.DefaultAccountAdapter.is_open_for_signup`", + "severity": "error" + }, + { + "column": 43, + "path": "src/paperless/tests/test_adapter.py", + "name": "bad-argument-type", + "concise_description": "Argument `None` is not assignable to parameter `request` with type `HttpRequest` in function `allauth.account.adapter.DefaultAccountAdapter.is_open_for_signup`", + "severity": "error" + }, + { + "column": 47, + "path": "src/paperless/tests/test_adapter.py", + "name": "bad-argument-type", + "concise_description": "Argument `None` is not assignable to parameter `request` with type `HttpRequest` in function `allauth.account.adapter.DefaultAccountAdapter.is_open_for_signup`", + "severity": "error" + }, + { + "column": 16, + "path": "src/paperless/tests/test_adapter.py", + "name": "missing-attribute", + "concise_description": "Object of class `AbstractBaseUser` has no attribute `groups`", + "severity": "error" + }, + { + "column": 16, + "path": "src/paperless/tests/test_adapter.py", + "name": "missing-attribute", + "concise_description": "Object of class `AbstractBaseUser` has no attribute `groups`", + "severity": "error" + }, + { + "column": 20, + "path": "src/paperless/tests/test_adapter.py", + "name": "missing-attribute", + "concise_description": "Object of class `AbstractBaseUser` has no attribute `groups`", + "severity": "error" + }, + { + "column": 16, + "path": "src/paperless/tests/test_adapter.py", + "name": "missing-attribute", + "concise_description": "Object of class `AbstractBaseUser` has no attribute `is_superuser`", + "severity": "error" + }, + { + "column": 20, + "path": "src/paperless/tests/test_adapter.py", + "name": "missing-attribute", + "concise_description": "Object of class `AbstractBaseUser` has no attribute `is_superuser`", + "severity": "error" + }, + { + "column": 43, + "path": "src/paperless/tests/test_adapter.py", + "name": "bad-argument-type", + "concise_description": "Argument `None` is not assignable to parameter `request` with type `HttpRequest` in function `allauth.socialaccount.adapter.DefaultSocialAccountAdapter.is_open_for_signup`", + "severity": "error" + }, + { + "column": 49, + "path": "src/paperless/tests/test_adapter.py", + "name": "bad-argument-type", + "concise_description": "Argument `None` is not assignable to parameter `sociallogin` with type `SocialLogin` in function `allauth.socialaccount.adapter.DefaultSocialAccountAdapter.is_open_for_signup`", + "severity": "error" + }, + { + "column": 47, + "path": "src/paperless/tests/test_adapter.py", + "name": "bad-argument-type", + "concise_description": "Argument `None` is not assignable to parameter `request` with type `HttpRequest` in function `allauth.socialaccount.adapter.DefaultSocialAccountAdapter.is_open_for_signup`", + "severity": "error" + }, + { + "column": 53, + "path": "src/paperless/tests/test_adapter.py", + "name": "bad-argument-type", + "concise_description": "Argument `None` is not assignable to parameter `sociallogin` with type `SocialLogin` in function `allauth.socialaccount.adapter.DefaultSocialAccountAdapter.is_open_for_signup`", + "severity": "error" + }, + { + "column": 49, + "path": "src/paperless/tests/test_adapter.py", + "name": "bad-argument-type", + "concise_description": "Argument `None` is not assignable to parameter `request` with type `HttpRequest` in function `allauth.socialaccount.adapter.DefaultSocialAccountAdapter.get_connect_redirect_url`", + "severity": "error" + }, + { + "column": 16, + "path": "src/paperless/tests/test_adapter.py", + "name": "missing-attribute", + "concise_description": "Object of class `AbstractBaseUser` has no attribute `groups`", + "severity": "error" + }, + { + "column": 16, + "path": "src/paperless/tests/test_adapter.py", + "name": "missing-attribute", + "concise_description": "Object of class `AbstractBaseUser` has no attribute `groups`", + "severity": "error" + }, + { + "column": 20, + "path": "src/paperless/tests/test_adapter.py", + "name": "missing-attribute", + "concise_description": "Object of class `AbstractBaseUser` has no attribute `groups`", + "severity": "error" + }, + { + "column": 23, + "path": "src/paperless/tests/test_api_auth.py", + "name": "missing-attribute", + "concise_description": "Object of class `FunctionType` has no attribute `view_class`", + "severity": "error" + }, + { + "column": 50, + "path": "src/paperless/tests/test_api_auth.py", + "name": "missing-attribute", + "concise_description": "Object of class `FunctionType` has no attribute `view_class`", + "severity": "error" + }, + { + "column": 47, + "path": "src/paperless/tests/test_auth_middleware.py", + "name": "bad-argument-type", + "concise_description": "Argument `(request: HttpRequest) -> None` is not assignable to parameter `get_response` with type `_AnyGetResponseCallable` in function `django.utils.deprecation.MiddlewareMixin.__init__`", + "severity": "error" + }, + { + "column": 16, + "path": "src/paperless/tests/test_checks.py", + "name": "not-iterable", + "concise_description": "`in` is not supported between `str` and `None`", + "severity": "error" + }, + { + "column": 16, + "path": "src/paperless/tests/test_checks.py", + "name": "not-iterable", + "concise_description": "`in` is not supported between `str` and `None`", + "severity": "error" + }, + { + "column": 29, + "path": "src/paperless/tests/test_checks.py", + "name": "no-matching-overload", + "concise_description": "No matching overload found for function `str.join` called with arguments: (Generator[str | None])", + "severity": "error" + }, + { + "column": 16, + "path": "src/paperless/tests/test_checks.py", + "name": "not-iterable", + "concise_description": "`in` is not supported between `Literal['PAPERLESS_DB_TIMEOUT']` and `None`", + "severity": "error" + }, + { + "column": 20, + "path": "src/paperless/tests/test_checks.py", + "name": "not-iterable", + "concise_description": "`not in` is not supported between `str` and `None`", + "severity": "error" + }, + { + "column": 16, + "path": "src/paperless/tests/test_checks.py", + "name": "not-iterable", + "concise_description": "`in` is not supported between `Literal['PAPERLESS_DB_OPTIONS']` and `None`", + "severity": "error" + }, + { + "column": 16, + "path": "src/paperless/tests/test_checks.py", + "name": "not-iterable", + "concise_description": "`in` is not supported between `Literal['v2.20.15']` and `None`", + "severity": "error" + }, + { + "column": 35, + "path": "src/paperless/tests/test_registry.py", + "name": "bad-argument-type", + "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" + }, + { + "column": 35, + "path": "src/paperless/tests/test_registry.py", + "name": "bad-argument-type", + "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" + }, + { + "column": 35, + "path": "src/paperless/tests/test_registry.py", + "name": "bad-argument-type", + "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" + }, + { + "column": 35, + "path": "src/paperless/tests/test_registry.py", + "name": "bad-argument-type", + "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" + }, + { + "column": 35, + "path": "src/paperless/tests/test_registry.py", + "name": "bad-argument-type", + "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" + }, + { + "column": 35, + "path": "src/paperless/tests/test_registry.py", + "name": "bad-argument-type", + "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" + }, + { + "column": 35, + "path": "src/paperless/tests/test_registry.py", + "name": "bad-argument-type", + "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" + }, + { + "column": 35, + "path": "src/paperless/tests/test_registry.py", + "name": "bad-argument-type", + "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" + }, + { + "column": 35, + "path": "src/paperless/tests/test_registry.py", + "name": "bad-argument-type", + "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" + }, + { + "column": 35, + "path": "src/paperless/tests/test_registry.py", + "name": "bad-argument-type", + "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" + }, + { + "column": 23, + "path": "src/paperless/tests/test_signals.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `get`", + "severity": "error" + }, + { + "column": 23, + "path": "src/paperless/tests/test_signals.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `get`", + "severity": "error" + }, + { + "column": 21, + "path": "src/paperless/tests/test_views.py", + "name": "missing-attribute", + "concise_description": "Object of class `_MonkeyPatchedWSGIResponse` has no attribute `streaming_content`", + "severity": "error" + }, + { + "column": 20, + "path": "src/paperless/urls.py", + "name": "bad-assignment", + "concise_description": "`((request: HttpRequest, *args: Unknown, **kwargs: Unknown) -> HttpResponseRedirect | Unknown) | ((view_func: Unknown) -> (request: HttpRequest, *args: Unknown, **kwargs: Unknown) -> HttpResponseRedirect | Unknown)` is not assignable to attribute `login` with type `(request: HttpRequest, extra_context: dict[str, Any] | None = ...) -> HttpResponse`", + "severity": "error" + }, + { + "column": 9, + "path": "src/paperless/urls.py", + "name": "no-matching-overload", + "concise_description": "No matching overload found for function `django.urls.conf.path` called with arguments: (Literal['ws/status/'], _ASGIApplicationProtocol)", + "severity": "error" + }, + { + "column": 20, + "path": "src/paperless/validators.py", + "name": "missing-attribute", + "concise_description": "Object of class `EllipsisType` has no attribute `lower`", + "severity": "error" + }, + { + "column": 32, + "path": "src/paperless/validators.py", + "name": "bad-argument-type", + "concise_description": "Argument `EllipsisType | Unknown` is not assignable to parameter `text_or_uri_element` with type `_Element | bytes | str | None` in function `lxml.etree.QName.__init__`", + "severity": "error" + }, + { + "column": 38, + "path": "src/paperless/validators.py", + "name": "no-matching-overload", + "concise_description": "No matching overload found for function `str.join` called with arguments: (Iterator[_AnyStr] | Unknown)", + "severity": "error" + }, + { + "column": 38, + "path": "src/paperless/validators.py", + "name": "missing-attribute", + "concise_description": "Object of class `EllipsisType` has no attribute `items`", + "severity": "error" + }, + { + "column": 23, + "path": "src/paperless/views.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `paginator`", + "severity": "error" + }, + { + "column": 17, + "path": "src/paperless/views.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `paginator`", + "severity": "error" + }, + { + "column": 16, + "path": "src/paperless/views.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `paginator`", + "severity": "error" + }, + { + "column": 9, + "path": "src/paperless/views.py", + "name": "bad-override", + "concise_description": "Class member `UserViewSet.create` overrides parent class `ModelViewSet` in an inconsistent manner", + "severity": "error" + }, + { + "column": 9, + "path": "src/paperless/views.py", + "name": "bad-override", + "concise_description": "Class member `UserViewSet.update` overrides parent class `ModelViewSet` in an inconsistent manner", + "severity": "error" + }, + { + "column": 9, + "path": "src/paperless/views.py", + "name": "bad-override", + "concise_description": "Class member `UserViewSet.destroy` overrides parent class `ModelViewSet` in an inconsistent manner", + "severity": "error" + }, + { + "column": 13, + "path": "src/paperless/views.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `set_password`", + "severity": "error" + }, + { + "column": 13, + "path": "src/paperless/views.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `save`", + "severity": "error" + }, + { + "column": 9, + "path": "src/paperless/views.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `save`", + "severity": "error" + }, + { + "column": 42, + "path": "src/paperless/views.py", + "name": "bad-argument-type", + "concise_description": "Argument `AbstractBaseUser | AnonymousUser` is not assignable to parameter `user` with type `AbstractBaseUser` in function `allauth.mfa.adapter.DefaultMFAAdapter.build_totp_url`", + "severity": "error" + }, + { + "column": 38, + "path": "src/paperless/views.py", + "name": "bad-assignment", + "concise_description": "`Authenticator | None` is not assignable to `Authenticator`", + "severity": "error" + }, + { + "column": 34, + "path": "src/paperless/views.py", + "name": "missing-attribute", + "concise_description": "Object of type `RecoveryCodes | TOTP | WebAuthn` has no attribute `get_unused_codes`", + "severity": "error" + }, + { + "column": 13, + "path": "src/paperless/views.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `llm_embedding_backend`", + "severity": "error" + }, + { + "column": 13, + "path": "src/paperless/views.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `llm_embedding_chunk_size`", + "severity": "error" + }, + { + "column": 13, + "path": "src/paperless/views.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `llm_embedding_endpoint`", + "severity": "error" + }, + { + "column": 13, + "path": "src/paperless/views.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `llm_embedding_model`", + "severity": "error" + }, + { + "column": 13, + "path": "src/paperless/views.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `llm_context_size`", + "severity": "error" + }, + { + "column": 23, + "path": "src/paperless/views.py", + "name": "missing-attribute", + "concise_description": "Object of type `AbstractBaseUser | AnonymousUser` has no attribute `socialaccount_set`", + "severity": "error" + }, + { + "column": 26, + "path": "src/paperless/views.py", + "name": "missing-attribute", + "concise_description": "Object of class `Provider` has no attribute `get_brands`", + "severity": "error" + }, + { + "column": 41, + "path": "src/paperless_ai/ai_classifier.py", + "name": "bad-argument-type", + "concise_description": "Argument `ClassificationSuggestions` is not assignable to parameter `raw` with type `dict[Unknown, Unknown]` in function `parse_ai_response`", + "severity": "error" + }, + { + "column": 55, + "path": "src/paperless_ai/ai_classifier.py", + "name": "bad-argument-type", + "concise_description": "Argument `ClassificationSuggestions` is not assignable to parameter `raw` with type `dict[Unknown, Unknown]` in function `parse_ai_response`", + "severity": "error" + }, + { + "column": 46, + "path": "src/paperless_ai/ai_classifier.py", + "name": "bad-typed-dict-key", + "concise_description": "Invalid key for TypedDict `ClassificationSuggestions`, got `str`", + "severity": "error" + }, + { + "column": 53, + "path": "src/paperless_ai/ai_classifier.py", + "name": "bad-typed-dict-key", + "concise_description": "Invalid key for TypedDict `ClassificationSuggestions`, got `str`", + "severity": "error" + }, + { + "column": 36, + "path": "src/paperless_ai/ai_classifier.py", + "name": "bad-typed-dict-key", + "concise_description": "Invalid key for TypedDict `ClassificationSuggestions`, got `str`", + "severity": "error" + }, + { + "column": 65, + "path": "src/paperless_ai/base_model.py", + "name": "bad-index", + "concise_description": "Cannot index into `dict[str, FieldInfo]`", + "severity": "error" + }, + { + "column": 18, + "path": "src/paperless_ai/chat.py", + "name": "bad-assignment", + "concise_description": "`str | Any | None` is not assignable to dict value type `int | str`", + "severity": "error" + }, + { + "column": 26, + "path": "src/paperless_ai/chat.py", + "name": "missing-attribute", + "concise_description": "Object of class `Response` has no attribute `response_gen`", + "severity": "error" + }, + { + "column": 60, + "path": "src/paperless_ai/client.py", + "name": "bad-argument-type", + "concise_description": "Argument `str | Unknown | None` is not assignable to parameter `s` with type `bytearray | bytes | str` in function `json.loads`", + "severity": "error" + }, + { + "column": 13, + "path": "src/paperless_ai/embedding.py", + "name": "bad-argument-type", + "concise_description": "Argument `str` is not assignable to parameter `key` with type `LLMEmbeddingBackend` in function `dict.get`", + "severity": "error" + }, + { + "column": 59, + "path": "src/paperless_ai/taxonomy.py", + "name": "not-iterable", + "concise_description": "Type `object` is not iterable", + "severity": "error" + }, + { + "column": 20, + "path": "src/paperless_ai/tests/test_ai_classifier.py", + "name": "bad-argument-type", + "concise_description": "Argument `dict[str, list[dict[str, float | int | str]] | list[Unknown]]` is not assignable to parameter `candidates` with type `TaxonomyCandidates | None` in function `paperless_ai.ai_classifier.build_prompt_without_rag`", + "severity": "error" + }, + { + "column": 37, + "path": "src/paperless_ai/tests/test_matching.py", + "name": "bad-argument-type", + "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" + }, + { + "column": 32, + "path": "src/paperless_ai/tests/test_vector_store.py", + "name": "bad-argument-type", + "concise_description": "Argument `list[float] | None` is not assignable to parameter `embedding` with type `list[float]` in function `_query`", + "severity": "error" + }, + { + "column": 16, + "path": "src/paperless_ai/tests/test_vector_store.py", + "name": "unsupported-operation", + "concise_description": "`None` is not subscriptable", + "severity": "error" + }, + { + "column": 16, + "path": "src/paperless_ai/tests/test_vector_store.py", + "name": "unsupported-operation", + "concise_description": "`None` is not subscriptable", + "severity": "error" + }, + { + "column": 23, + "path": "src/paperless_ai/tests/test_vector_store.py", + "name": "bad-argument-type", + "concise_description": "Argument `list[str] | None` is not assignable to parameter `iterable` with type `Iterable[str]` in function `sorted`", + "severity": "error" + }, + { + "column": 20, + "path": "src/paperless_ai/tests/test_vector_store.py", + "name": "bad-argument-type", + "concise_description": "Argument `list[str] | None` is not assignable to parameter `obj` with type `Sized` in function `len`", + "severity": "error" + }, + { + "column": 45, + "path": "src/paperless_ai/tests/test_vector_store.py", + "name": "no-matching-overload", + "concise_description": "No matching overload found for function `sorted` called with arguments: (list[float] | None, reverse=Literal[True])", + "severity": "error" + }, + { + "column": 13, + "path": "src/paperless_ai/tests/test_vector_store.py", + "name": "bad-argument-type", + "concise_description": "Argument `list[str] | None` is not assignable to parameter `iterable` with type `Iterable[str]` in function `sorted`", + "severity": "error" + }, + { + "column": 13, + "path": "src/paperless_ai/tests/test_vector_store.py", + "name": "bad-argument-type", + "concise_description": "Argument `list[str] | None` is not assignable to parameter `iterable` with type `Iterable[str]` in function `sorted`", + "severity": "error" + }, + { + "column": 36, + "path": "src/paperless_ai/tests/test_vector_store.py", + "name": "bad-argument-type", + "concise_description": "Argument `Literal['1']` is not assignable to parameter `document_id` with type `int` in function `make_node`", + "severity": "error" + }, + { + "column": 58, + "path": "src/paperless_ai/tests/test_vector_store.py", + "name": "bad-argument-type", + "concise_description": "Argument `Literal['2']` is not assignable to parameter `document_id` with type `int` in function `make_node`", + "severity": "error" + }, + { + "column": 23, + "path": "src/paperless_ai/tests/test_vector_store.py", + "name": "bad-argument-type", + "concise_description": "Argument `list[str] | None` is not assignable to parameter `iterable` with type `Iterable[str]` in function `sorted`", + "severity": "error" + }, + { + "column": 16, + "path": "src/paperless_ai/tests/test_vector_store.py", + "name": "not-iterable", + "concise_description": "`in` is not supported between `Literal['c1']` and `None`", + "severity": "error" + }, + { + "column": 37, + "path": "src/paperless_ai/tests/test_vector_store.py", + "name": "bad-assignment", + "concise_description": "`int` is not assignable to attribute `SCHEMA_VERSION` with type `Literal[2]`", + "severity": "error" + }, + { + "column": 37, + "path": "src/paperless_ai/tests/test_vector_store.py", + "name": "bad-assignment", + "concise_description": "`int` is not assignable to attribute `SCHEMA_VERSION` with type `Literal[2]`", + "severity": "error" + }, + { + "column": 37, + "path": "src/paperless_ai/tests/test_vector_store.py", + "name": "bad-assignment", + "concise_description": "`int` is not assignable to attribute `SCHEMA_VERSION` with type `Literal[2]`", + "severity": "error" + }, + { + "column": 31, + "path": "src/paperless_ai/vector_store.py", + "name": "bad-argument-type", + "concise_description": "Argument `float | int | list[float] | list[int] | list[str] | str | None` is not assignable to parameter `x` with type `Buffer | SupportsIndex | SupportsInt | str` in function `int.__new__`", + "severity": "error" + }, + { + "column": 31, + "path": "src/paperless_ai/vector_store.py", + "name": "bad-argument-type", + "concise_description": "Argument `float | int | list[float] | list[int] | list[str] | str | None` is not assignable to parameter `x` with type `Buffer | SupportsIndex | SupportsInt | str` in function `int.__new__`", + "severity": "error" + }, + { + "column": 29, + "path": "src/paperless_ai/vector_store.py", + "name": "bad-argument-type", + "concise_description": "Argument `str | Any | None` is not assignable to parameter `x` with type `Buffer | SupportsIndex | SupportsInt | str` in function `int.__new__`", + "severity": "error" + }, + { + "column": 64, + "path": "src/paperless_mail/mail.py", + "name": "bad-argument-type", + "concise_description": "Argument `str | Unknown | None` is not assignable to parameter `*args` with type `str` in function `imaplib.IMAP4.uid`", + "severity": "error" + }, + { + "column": 33, + "path": "src/paperless_mail/mail.py", + "name": "bad-argument-type", + "concise_description": "Argument `list[str] | None` is not assignable to parameter `flag_set` with type `Iterable[str] | str` in function `imap_tools.mailbox.BaseMailBox.flag`", + "severity": "error" + }, + { + "column": 53, + "path": "src/paperless_mail/mail.py", + "name": "bad-argument-type", + "concise_description": "Argument `str | None` is not assignable to parameter `parameter` with type `str` in function `BaseMailAction.post_consume`", + "severity": "error" + }, + { + "column": 13, + "path": "src/paperless_mail/mail.py", + "name": "bad-argument-type", + "concise_description": "Argument `str | None` is not assignable to parameter `parameter` with type `str` in function `TagMailAction.__init__`", + "severity": "error" + }, + { + "column": 30, + "path": "src/paperless_mail/mail.py", + "name": "unsupported-operation", + "concise_description": "Cannot set item in `dict[str, date]`", + "severity": "error" + }, + { + "column": 27, + "path": "src/paperless_mail/mail.py", + "name": "unsupported-operation", + "concise_description": "Cannot set item in `dict[str, date]`", + "severity": "error" + }, + { + "column": 32, + "path": "src/paperless_mail/mail.py", + "name": "unsupported-operation", + "concise_description": "Cannot set item in `dict[str, date]`", + "severity": "error" + }, + { + "column": 29, + "path": "src/paperless_mail/mail.py", + "name": "unsupported-operation", + "concise_description": "Cannot set item in `dict[str, date]`", + "severity": "error" + }, + { + "column": 38, + "path": "src/paperless_mail/mail.py", + "name": "bad-argument-type", + "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" + }, + { + "column": 38, + "path": "src/paperless_mail/mail.py", + "name": "bad-argument-type", + "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" + }, + { + "column": 38, + "path": "src/paperless_mail/mail.py", + "name": "bad-argument-type", + "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" + }, + { + "column": 38, + "path": "src/paperless_mail/mail.py", + "name": "bad-argument-type", + "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" + }, + { + "column": 38, + "path": "src/paperless_mail/mail.py", + "name": "bad-argument-type", + "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" + }, + { + "column": 38, + "path": "src/paperless_mail/mail.py", + "name": "bad-argument-type", + "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" + }, + { + "column": 38, + "path": "src/paperless_mail/mail.py", + "name": "bad-argument-type", + "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" + }, + { + "column": 38, + "path": "src/paperless_mail/mail.py", + "name": "bad-argument-type", + "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" + }, + { + "column": 38, + "path": "src/paperless_mail/mail.py", + "name": "bad-argument-type", + "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" + }, + { + "column": 38, + "path": "src/paperless_mail/mail.py", + "name": "bad-argument-type", + "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" + }, + { + "column": 38, + "path": "src/paperless_mail/mail.py", + "name": "bad-argument-type", + "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" + }, + { + "column": 38, + "path": "src/paperless_mail/mail.py", + "name": "bad-argument-type", + "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" + }, + { + "column": 38, + "path": "src/paperless_mail/mail.py", + "name": "bad-argument-type", + "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" + }, + { + "column": 38, + "path": "src/paperless_mail/mail.py", + "name": "bad-argument-type", + "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" + }, + { + "column": 38, + "path": "src/paperless_mail/mail.py", + "name": "bad-argument-type", + "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" + }, + { + "column": 38, + "path": "src/paperless_mail/mail.py", + "name": "bad-argument-type", + "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" + }, + { + "column": 38, + "path": "src/paperless_mail/mail.py", + "name": "bad-argument-type", + "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" + }, + { + "column": 38, + "path": "src/paperless_mail/mail.py", + "name": "bad-argument-type", + "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" + }, + { + "column": 38, + "path": "src/paperless_mail/mail.py", + "name": "bad-argument-type", + "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" + }, + { + "column": 38, + "path": "src/paperless_mail/mail.py", + "name": "bad-argument-type", + "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" + }, + { + "column": 38, + "path": "src/paperless_mail/mail.py", + "name": "bad-argument-type", + "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" + }, + { + "column": 38, + "path": "src/paperless_mail/mail.py", + "name": "bad-argument-type", + "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" + }, + { + "column": 38, + "path": "src/paperless_mail/mail.py", + "name": "bad-argument-type", + "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" + }, + { + "column": 32, + "path": "src/paperless_mail/mail.py", + "name": "bad-argument-type", + "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" + }, + { + "column": 32, + "path": "src/paperless_mail/mail.py", + "name": "bad-argument-type", + "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" + }, + { + "column": 32, + "path": "src/paperless_mail/mail.py", + "name": "bad-argument-type", + "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" + }, + { + "column": 32, + "path": "src/paperless_mail/mail.py", + "name": "bad-argument-type", + "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" + }, + { + "column": 32, + "path": "src/paperless_mail/mail.py", + "name": "bad-argument-type", + "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" + }, + { + "column": 32, + "path": "src/paperless_mail/mail.py", + "name": "bad-argument-type", + "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" + }, + { + "column": 32, + "path": "src/paperless_mail/mail.py", + "name": "bad-argument-type", + "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" + }, + { + "column": 32, + "path": "src/paperless_mail/mail.py", + "name": "bad-argument-type", + "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" + }, + { + "column": 32, + "path": "src/paperless_mail/mail.py", + "name": "bad-argument-type", + "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" + }, + { + "column": 32, + "path": "src/paperless_mail/mail.py", + "name": "bad-argument-type", + "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" + }, + { + "column": 32, + "path": "src/paperless_mail/mail.py", + "name": "bad-argument-type", + "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" + }, + { + "column": 32, + "path": "src/paperless_mail/mail.py", + "name": "bad-argument-type", + "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" + }, + { + "column": 32, + "path": "src/paperless_mail/mail.py", + "name": "bad-argument-type", + "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" + }, + { + "column": 32, + "path": "src/paperless_mail/mail.py", + "name": "bad-argument-type", + "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" + }, + { + "column": 32, + "path": "src/paperless_mail/mail.py", + "name": "bad-argument-type", + "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" + }, + { + "column": 32, + "path": "src/paperless_mail/mail.py", + "name": "bad-argument-type", + "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" + }, + { + "column": 32, + "path": "src/paperless_mail/mail.py", + "name": "bad-argument-type", + "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" + }, + { + "column": 32, + "path": "src/paperless_mail/mail.py", + "name": "bad-argument-type", + "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" + }, + { + "column": 32, + "path": "src/paperless_mail/mail.py", + "name": "bad-argument-type", + "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" + }, + { + "column": 32, + "path": "src/paperless_mail/mail.py", + "name": "bad-argument-type", + "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" + }, + { + "column": 32, + "path": "src/paperless_mail/mail.py", + "name": "bad-argument-type", + "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" + }, + { + "column": 32, + "path": "src/paperless_mail/mail.py", + "name": "bad-argument-type", + "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" + }, + { + "column": 32, + "path": "src/paperless_mail/mail.py", + "name": "bad-argument-type", + "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" + }, + { + "column": 13, + "path": "src/paperless_mail/mail.py", + "name": "missing-attribute", + "concise_description": "Object of class `PinnedClientMixin` has no attribute `_host`", + "severity": "error" + }, + { + "column": 13, + "path": "src/paperless_mail/mail.py", + "name": "missing-attribute", + "concise_description": "Object of class `PinnedClientMixin` has no attribute `_port`", + "severity": "error" + }, + { + "column": 21, + "path": "src/paperless_mail/mail.py", + "name": "missing-attribute", + "concise_description": "Object of class `PinnedClientMixin` has no attribute `_timeout`", + "severity": "error" + }, + { + "column": 12, + "path": "src/paperless_mail/mail.py", + "name": "bad-return", + "concise_description": "Returned type `PinnedMailBox | PinnedMailBoxStartTls | PinnedMailBoxUnencrypted` is not assignable to declared return type `MailBox`", + "severity": "error" + }, + { + "column": 31, + "path": "src/paperless_mail/mail.py", + "name": "bad-argument-type", + "concise_description": "Argument `str | None` is not assignable to parameter `object` with type `str` in function `list.insert`", + "severity": "error" + }, + { + "column": 44, + "path": "src/paperless_mail/mail.py", + "name": "unbound-name", + "concise_description": "`folder` is uninitialized", + "severity": "error" + }, + { + "column": 40, + "path": "src/paperless_mail/mail.py", "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, + "column": 32, + "path": "src/paperless_mail/mail.py", "name": "missing-attribute", - "description": "Object of class `Crypt` has no attribute `stderr`", - "concise_description": "Object of class `Crypt` has no attribute `stderr`", + "concise_description": "Object of class `Message` has no attribute `_headers`", "severity": "error" }, { - "line": 100, - "column": 36, - "stop_line": 100, - "stop_column": 66, - "path": "src/paperless_mail/tests/test_preprocessor.py", - "code": -2, + "column": 32, + "path": "src/paperless_mail/mail.py", "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`", + "concise_description": "Object of class `Message` has no attribute `_headers`", "severity": "error" }, { - "line": 298, - "column": 28, - "stop_line": 298, - "stop_column": 34, - "path": "src/paperless_mail/views.py", - "code": -2, + "column": 17, + "path": "src/paperless_mail/mail.py", + "name": "missing-attribute", + "concise_description": "Object of class `Message` has no attribute `_headers`", + "severity": "error" + }, + { + "column": 27, + "path": "src/paperless_mail/mail.py", + "name": "bad-argument-type", + "concise_description": "Argument `str` is not assignable to parameter `original_file` with type `Path` in function `documents.data_models.ConsumableDocument.__init__`", + "severity": "error" + }, + { + "column": 39, + "path": "src/paperless_mail/oauth.py", + "name": "bad-argument-type", + "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" + }, + { + "column": 39, + "path": "src/paperless_mail/oauth.py", + "name": "bad-argument-type", + "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" + }, + { + "column": 35, + "path": "src/paperless_mail/oauth.py", "name": "unbound-name", - "description": "`result` may be uninitialized", "concise_description": "`result` may be uninitialized", "severity": "error" }, { - "line": 304, + "column": 71, + "path": "src/paperless_mail/preprocessor.py", + "name": "missing-attribute", + "concise_description": "Object of class `Crypt` has no attribute `stderr`", + "severity": "error" + }, + { + "column": 44, + "path": "src/paperless_mail/tests/helpers.py", + "name": "bad-argument-type", + "concise_description": "Argument `None` is not assignable to parameter `command_result` with type `tuple[Unknown, ...]` in function `imap_tools.errors.UnexpectedCommandStatusError.__init__`", + "severity": "error" + }, + { + "column": 37, + "path": "src/paperless_mail/tests/helpers.py", + "name": "bad-argument-type", + "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" + }, + { + "column": 37, + "path": "src/paperless_mail/tests/helpers.py", + "name": "bad-argument-type", + "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" + }, + { + "column": 37, + "path": "src/paperless_mail/tests/helpers.py", + "name": "bad-argument-type", + "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" + }, + { + "column": 37, + "path": "src/paperless_mail/tests/helpers.py", + "name": "bad-argument-type", + "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" + }, + { + "column": 16, + "path": "src/paperless_mail/tests/helpers.py", + "name": "bad-return", + "concise_description": "Returned type `list[str | None]` is not assignable to declared return type `list[str]`", + "severity": "error" + }, + { + "column": 40, + "path": "src/paperless_mail/tests/helpers.py", + "name": "missing-attribute", + "concise_description": "Object of class `MailMessage` has no attribute `seen`", + "severity": "error" + }, + { + "column": 40, + "path": "src/paperless_mail/tests/helpers.py", + "name": "missing-attribute", + "concise_description": "Object of class `MailMessage` has no attribute `flagged`", + "severity": "error" + }, + { + "column": 25, + "path": "src/paperless_mail/tests/helpers.py", + "name": "missing-attribute", + "concise_description": "Object of class `MailMessage` has no attribute `flagged`", + "severity": "error" + }, + { + "column": 25, + "path": "src/paperless_mail/tests/helpers.py", + "name": "missing-attribute", + "concise_description": "Object of class `MailMessage` has no attribute `seen`", + "severity": "error" + }, + { + "column": 9, + "path": "src/paperless_mail/tests/helpers.py", + "name": "missing-attribute", + "concise_description": "Object of class `MailMessage` has no attribute `seen`", + "severity": "error" + }, + { + "column": 9, + "path": "src/paperless_mail/tests/helpers.py", + "name": "missing-attribute", + "concise_description": "Object of class `MailMessage` has no attribute `flagged`", + "severity": "error" + }, + { + "column": 41, + "path": "src/paperless_mail/tests/test_api.py", + "name": "unsupported-operation", + "concise_description": "Cannot set item in `dict[str, MailAccount.ImapSecurity | str]`", + "severity": "error" + }, + { + "column": 50, + "path": "src/paperless_mail/tests/test_mail.py", + "name": "missing-attribute", + "concise_description": "Class `message2` has no class attribute `from_`", + "severity": "error" + }, + { + "column": 54, + "path": "src/paperless_mail/tests/test_mail.py", + "name": "bad-argument-type", + "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" + }, + { + "column": 40, + "path": "src/paperless_mail/tests/test_mail.py", + "name": "bad-argument-type", + "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" + }, + { + "column": 40, + "path": "src/paperless_mail/tests/test_mail.py", + "name": "bad-argument-type", + "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" + }, + { + "column": 40, + "path": "src/paperless_mail/tests/test_mail.py", + "name": "bad-argument-type", + "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" + }, + { + "column": 40, + "path": "src/paperless_mail/tests/test_mail.py", + "name": "bad-argument-type", + "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" + }, + { + "column": 40, + "path": "src/paperless_mail/tests/test_mail.py", + "name": "bad-argument-type", + "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" + }, + { + "column": 45, + "path": "src/paperless_mail/tests/test_mail.py", + "name": "bad-argument-type", + "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" + }, + { + "column": 54, + "path": "src/paperless_mail/tests/test_mail.py", + "name": "bad-argument-type", + "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" + }, + { + "column": 45, + "path": "src/paperless_mail/tests/test_mail.py", + "name": "bad-argument-type", + "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" + }, + { + "column": 54, + "path": "src/paperless_mail/tests/test_mail.py", + "name": "bad-argument-type", + "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" + }, + { + "column": 45, + "path": "src/paperless_mail/tests/test_mail.py", + "name": "bad-argument-type", + "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" + }, + { + "column": 54, + "path": "src/paperless_mail/tests/test_mail.py", + "name": "bad-argument-type", + "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" + }, + { + "column": 49, + "path": "src/paperless_mail/tests/test_mail.py", + "name": "missing-attribute", + "concise_description": "Object of class `MailMessage` has no attribute `seen`", + "severity": "error" + }, + { + "column": 41, + "path": "src/paperless_mail/tests/test_mail.py", + "name": "bad-argument-type", + "concise_description": "Argument `list[str | None]` is not assignable to parameter `uid` with type `Iterable[str] | UidRange | str | None` in function `imap_tools.query.LogicOperator.__init__`", + "severity": "error" + }, + { + "column": 9, + "path": "src/paperless_mail/tests/test_mail.py", + "name": "missing-attribute", + "concise_description": "Object of class `BogusFolderManager` has no attribute `list`", + "severity": "error" + }, + { + "column": 9, + "path": "src/paperless_mail/tests/test_mail.py", + "name": "missing-attribute", + "concise_description": "Object of class `BogusFolderManager` has no attribute `list`", + "severity": "error" + }, + { + "column": 9, + "path": "src/paperless_mail/tests/test_mail.py", + "name": "missing-attribute", + "concise_description": "Object of class `BogusFolderManager` has no attribute `list`", + "severity": "error" + }, + { + "column": 9, + "path": "src/paperless_mail/tests/test_mail.py", + "name": "missing-attribute", + "concise_description": "Object of class `BogusFolderManager` has no attribute `list`", + "severity": "error" + }, + { + "column": 51, + "path": "src/paperless_mail/tests/test_mail.py", + "name": "bad-assignment", + "concise_description": "`int` is not assignable to dict value type `str`", + "severity": "error" + }, + { + "column": 51, + "path": "src/paperless_mail/tests/test_mail.py", + "name": "bad-assignment", + "concise_description": "`None` is not assignable to dict value type `str`", + "severity": "error" + }, + { + "column": 41, + "path": "src/paperless_mail/tests/test_mail.py", + "name": "bad-argument-type", + "concise_description": "Argument `str | None` is not assignable to parameter `container` with type `Container | Iterable[Any]` in function `unittest.case.TestCase.assertIn`", + "severity": "error" + }, + { + "column": 42, + "path": "src/paperless_mail/tests/test_mail_oauth.py", + "name": "missing-attribute", + "concise_description": "Object of class `_MonkeyPatchedWSGIResponse` has no attribute `url`", + "severity": "error" + }, + { + "column": 42, + "path": "src/paperless_mail/tests/test_mail_oauth.py", + "name": "missing-attribute", + "concise_description": "Object of class `_MonkeyPatchedWSGIResponse` has no attribute `url`", + "severity": "error" + }, + { + "column": 46, + "path": "src/paperless_mail/tests/test_mail_oauth.py", + "name": "missing-attribute", + "concise_description": "Object of class `_MonkeyPatchedWSGIResponse` has no attribute `url`", + "severity": "error" + }, + { + "column": 46, + "path": "src/paperless_mail/tests/test_mail_oauth.py", + "name": "missing-attribute", + "concise_description": "Object of class `_MonkeyPatchedWSGIResponse` has no attribute `url`", + "severity": "error" + }, + { + "column": 9, + "path": "src/paperless_mail/tests/test_preprocessor.py", + "name": "missing-attribute", + "concise_description": "Object of class `Message` has no attribute `_headers`", + "severity": "error" + }, + { + "column": 27, + "path": "src/paperless_mail/tests/test_preprocessor.py", + "name": "missing-attribute", + "concise_description": "Object of class `Message` has no attribute `_headers`", + "severity": "error" + }, + { + "column": 51, + "path": "src/paperless_mail/tests/test_preprocessor.py", + "name": "missing-attribute", + "concise_description": "Object of class `Crypt` has no attribute `stderr`", + "severity": "error" + }, + { + "column": 36, + "path": "src/paperless_mail/tests/test_preprocessor.py", + "name": "missing-attribute", + "concise_description": "Object of class `str` has no attribute `decode`", + "severity": "error" + }, + { + "column": 28, + "path": "src/paperless_mail/views.py", + "name": "unbound-name", + "concise_description": "`result` may be uninitialized", + "severity": "error" + }, + { "column": 29, - "stop_line": 304, - "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": 308, "column": 26, - "stop_line": 308, - "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" + }, + { + "column": 24, + "path": "src/paperless_testing/http.py", + "name": "bad-argument-type", + "concise_description": "Argument `AsyncIterator[bytes] | Iterator[bytes]` is not assignable to parameter `iterable_of_bytes` with type `Iterable[Buffer]` in function `bytes.join`", + "severity": "error" + }, + { + "column": 16, + "path": "src/paperless_testing/migrations.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `name`", + "severity": "error" } ] } diff --git a/src/paperless_mail/tests/factories.py b/src/paperless_mail/tests/factories.py index 747ad1054..31bdbe86b 100644 --- a/src/paperless_mail/tests/factories.py +++ b/src/paperless_mail/tests/factories.py @@ -2,14 +2,14 @@ from __future__ import annotations import factory from django.utils import timezone -from factory.django import DjangoModelFactory from paperless_mail.models import MailAccount from paperless_mail.models import MailRule from paperless_mail.models import ProcessedMail +from paperless_testing.typed_factory import TypedModelFactory -class MailAccountFactory(DjangoModelFactory[MailAccount]): +class MailAccountFactory(TypedModelFactory[MailAccount]): class Meta: model = MailAccount @@ -24,7 +24,7 @@ class MailAccountFactory(DjangoModelFactory[MailAccount]): is_token = False -class MailRuleFactory(DjangoModelFactory[MailRule]): +class MailRuleFactory(TypedModelFactory[MailRule]): class Meta: model = MailRule @@ -44,7 +44,7 @@ class MailRuleFactory(DjangoModelFactory[MailRule]): stop_processing = False -class ProcessedMailFactory(DjangoModelFactory[ProcessedMail]): +class ProcessedMailFactory(TypedModelFactory[ProcessedMail]): class Meta: model = ProcessedMail diff --git a/src/paperless_testing/factories.py b/src/paperless_testing/factories.py index 4e2e2c507..9ea6c8b39 100644 --- a/src/paperless_testing/factories.py +++ b/src/paperless_testing/factories.py @@ -5,8 +5,7 @@ Factory-boy factories for documents app models. from __future__ import annotations import factory -from django.contrib.auth import get_user_model -from factory.django import DjangoModelFactory +from django.contrib.auth.models import User from documents.models import Correspondent from documents.models import Document @@ -15,11 +14,10 @@ from documents.models import MatchingModel from documents.models import PaperlessTask from documents.models import StoragePath from documents.models import Tag - -UserModelT = get_user_model() +from paperless_testing.typed_factory import TypedModelFactory -class CorrespondentFactory(DjangoModelFactory[Correspondent]): +class CorrespondentFactory(TypedModelFactory[Correspondent]): class Meta: model = Correspondent @@ -28,7 +26,7 @@ class CorrespondentFactory(DjangoModelFactory[Correspondent]): matching_algorithm = MatchingModel.MATCH_NONE -class DocumentTypeFactory(DjangoModelFactory[DocumentType]): +class DocumentTypeFactory(TypedModelFactory[DocumentType]): class Meta: model = DocumentType @@ -37,7 +35,7 @@ class DocumentTypeFactory(DjangoModelFactory[DocumentType]): matching_algorithm = MatchingModel.MATCH_NONE -class TagFactory(DjangoModelFactory[Tag]): +class TagFactory(TypedModelFactory[Tag]): class Meta: model = Tag @@ -47,7 +45,7 @@ class TagFactory(DjangoModelFactory[Tag]): is_inbox_tag = False -class StoragePathFactory(DjangoModelFactory[StoragePath]): +class StoragePathFactory(TypedModelFactory[StoragePath]): class Meta: model = StoragePath @@ -59,7 +57,7 @@ class StoragePathFactory(DjangoModelFactory[StoragePath]): matching_algorithm = MatchingModel.MATCH_NONE -class DocumentFactory(DjangoModelFactory[Document]): +class DocumentFactory(TypedModelFactory[Document]): class Meta: model = Document @@ -71,9 +69,9 @@ class DocumentFactory(DjangoModelFactory[Document]): storage_path = None -class UserFactory(DjangoModelFactory[UserModelT]): +class UserFactory(TypedModelFactory[User]): class Meta: - model = UserModelT + model = User username = factory.Sequence(lambda n: f"user{n}") is_staff = False @@ -88,7 +86,7 @@ class UserFactory(DjangoModelFactory[UserModelT]): staff = factory.Trait(is_staff=True) -class PaperlessTaskFactory(DjangoModelFactory[PaperlessTask]): +class PaperlessTaskFactory(TypedModelFactory[PaperlessTask]): class Meta: model = PaperlessTask diff --git a/src/paperless_testing/typed_factory.py b/src/paperless_testing/typed_factory.py new file mode 100644 index 000000000..c1e44745b --- /dev/null +++ b/src/paperless_testing/typed_factory.py @@ -0,0 +1,20 @@ +""" +A DjangoModelFactory base whose calls are typed as the model they build. +""" + +from __future__ import annotations + +from typing import TYPE_CHECKING +from typing import Any +from typing import TypeVar + +from factory.django import DjangoModelFactory + +T = TypeVar("T") + + +class TypedModelFactory(DjangoModelFactory[T]): + if TYPE_CHECKING: + # factory-boy leaves Factory() unannotated, so mypy takes it to build a + # factory instance. At runtime it builds the model. + def __new__(cls, *args: Any, **kwargs: Any) -> T: ... # type: ignore[misc] diff --git a/uv.lock b/uv.lock index 1ce415e85..29fd85060 100644 --- a/uv.lock +++ b/uv.lock @@ -200,6 +200,61 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/91/be/317c2c55b8bbec407257d45f5c8d1b6867abc76d12043f2d3d58c538a4ea/asgiref-3.11.0-py3-none-any.whl", hash = "sha256:1db9021efadb0d9512ce8ffaf72fcef601c7b73a8807a1bb2ef143dc6b14846d", size = 24096, upload-time = "2025-11-19T15:32:19.004Z" }, ] +[[package]] +name = "ast-serialize" +version = "0.11.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/54/1e/4f6082cdd6e5a29093513e9a3eabc5ed1c5331a9a84386b2fece80a00a48/ast_serialize-0.11.2.tar.gz", hash = "sha256:976a5bd75845d22f4b52905ddf53ab669ef1b14dba7735f5512841a2ef2b5450", size = 954387, upload-time = "2026-09-13T18:48:55.673Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a3/2e/beec3364eef4b01793a676d8cd16e9014c42044a5505000ceae3955e33fa/ast_serialize-0.11.2-cp314-cp314-pyemscripten_2026_0_wasm32.whl", hash = "sha256:f6a8dfc5ab204a706f6e5d39c6f77c18c27ef084fa2081803a64a9160ce89277", size = 897089, upload-time = "2026-09-13T18:47:22.69Z" }, + { url = "https://files.pythonhosted.org/packages/6f/d7/ef56443df2891c6ba2c4019c2cb3dcaf97c9948da6d963068e04e8dac6ea/ast_serialize-0.11.2-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:cb073bfa15742699d408ac50f60878383b5665ae1791d1b6799ea6f08633cd77", size = 1235218, upload-time = "2026-09-13T18:47:24.541Z" }, + { url = "https://files.pythonhosted.org/packages/42/8d/cff58d17ba1d0272ff0b7ab5d3bdfcf8f47317eb0f47c001d394bffebf95/ast_serialize-0.11.2-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:1d6ad94edbe93bf1dabc06c9f37d55b898fdabc456aa6d7ced5e23c14f795f32", size = 1216399, upload-time = "2026-09-13T18:47:26.202Z" }, + { url = "https://files.pythonhosted.org/packages/de/d2/a1da7675af5f42335c36e4da6d86ef4fd7168cead18de81df0a2d6faeb1a/ast_serialize-0.11.2-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:40b2801cf2221bd922d9f69d2f0ebc373c3db47207315d525b2d87fa161a2af4", size = 1282064, upload-time = "2026-09-13T18:47:27.787Z" }, + { url = "https://files.pythonhosted.org/packages/97/89/5a400a13b2c9c0152ebb5ad45408a3fe5e4e60e325d3ac4e5cf6e915a0cc/ast_serialize-0.11.2-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:fd666cebd6ab3b3c0fd348a6202c26e18a401ee34293c3804d3472266bc146f6", size = 1285864, upload-time = "2026-09-13T18:47:29.667Z" }, + { url = "https://files.pythonhosted.org/packages/02/b8/80a381c70fd49f0316fb0383c4f9e4c13e81b010b64889bd45898ce8f5f4/ast_serialize-0.11.2-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0d01f61352c96370febf6c0dbd488dee9183a731fb2702170da9163ae317cded", size = 1554755, upload-time = "2026-09-13T18:47:31.257Z" }, + { url = "https://files.pythonhosted.org/packages/90/97/dcaa34a32d2db789221c125b3eb10feb5089715fe53d9874d627afc26231/ast_serialize-0.11.2-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a0fd40c668b0fa19b8fdb61d9e63d547e2e19cfbfe053a51ef0b6c37070298a8", size = 1301807, upload-time = "2026-09-13T18:47:32.714Z" }, + { url = "https://files.pythonhosted.org/packages/5c/9a/84a22420cb312642d7d31547c644d09a3d101418c6d6b9ef2ec30735cf11/ast_serialize-0.11.2-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:efa819d7c14c8e4153dcd84671826331538be7cbe460383fc6386f5eea5bd234", size = 1301941, upload-time = "2026-09-13T18:47:34.418Z" }, + { url = "https://files.pythonhosted.org/packages/20/8a/aa5f3dcf1aed9678c25982f40d366004e3c0cac47bc0c240f6b837dcbb1f/ast_serialize-0.11.2-cp314-cp314t-manylinux_2_31_riscv64.whl", hash = "sha256:a9ffa8a197a721f07a352d0be6185f5b3e6f9aaebfdb66169ed652108531ae3b", size = 1307910, upload-time = "2026-09-13T18:47:36.253Z" }, + { url = "https://files.pythonhosted.org/packages/78/79/91a5102797fe3dc992171382d8579bcb33cbd1424b864ad3117ac43fb3fe/ast_serialize-0.11.2-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:00119a8fb8c1dc0f1fab023f4d8071fa49e3b0208ee54d589fd463c16ab0124e", size = 1356258, upload-time = "2026-09-13T18:47:37.984Z" }, + { url = "https://files.pythonhosted.org/packages/51/52/54eeef9918e187ced417c4363eecea66975314cd5b9c91759eef7f7b714b/ast_serialize-0.11.2-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:0de02520c11391a026e62987a9aa2c3c2ff01545155059ddf0c4bdf2c5ecbe9f", size = 1459057, upload-time = "2026-09-13T18:47:39.891Z" }, + { url = "https://files.pythonhosted.org/packages/e4/cb/fd84b52b15d42f2423319cffd1fb7f1e9df5d5198e69ab0b449c450254cf/ast_serialize-0.11.2-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:b4e4558956b6a0fb35e18fba58f7d1810b1f2c0e6b52352572cd5dfb6b4ef33a", size = 1562447, upload-time = "2026-09-13T18:47:41.727Z" }, + { url = "https://files.pythonhosted.org/packages/be/92/9fb34f2e64b84a63cca92fb86bd0847b995a63b67477f44c20502fb60352/ast_serialize-0.11.2-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:6061a54f39e82a9f2cbcb9c268fc441890e4818a6636473caa4f4063254e0750", size = 1556423, upload-time = "2026-09-13T18:47:43.357Z" }, + { url = "https://files.pythonhosted.org/packages/75/0f/c43c44449e7ebc4e83ebd48750088fb06234622faa2d62d2a6dc8970d2a3/ast_serialize-0.11.2-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:85fbb01e83967a126d71f679f2b9528ef0912cb0854aa1a4657314c34e255b57", size = 1687156, upload-time = "2026-09-13T18:47:44.995Z" }, + { url = "https://files.pythonhosted.org/packages/2b/a7/9e520f4a79b639da9ee20c1e747c3d739329e902fc55ac38065f25419f56/ast_serialize-0.11.2-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:7aaaffc32905159774a107d3cf33dad59bd41b7a0d1bc9885532186753ee7439", size = 1481008, upload-time = "2026-09-13T18:47:46.602Z" }, + { url = "https://files.pythonhosted.org/packages/48/a8/bdd3989f19de09cffcd8179c131f6741a5a8619705fc75b09541ff61530b/ast_serialize-0.11.2-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:08eda88a0f290a36c38cab33df8bf7e35eb95bc802ca5beb2c8fcda471a7d10c", size = 1501597, upload-time = "2026-09-13T18:47:48.265Z" }, + { url = "https://files.pythonhosted.org/packages/0b/55/a1962188abf0e62d84d55892bb044347e434711763b9a1d4ad867a70c1be/ast_serialize-0.11.2-cp315-abi3.abi3t-macosx_10_12_x86_64.whl", hash = "sha256:ab924ba260efd7509492f272d4e236d24564033f20c005d7c63a107c6a76fc85", size = 1235457, upload-time = "2026-09-13T18:47:54.554Z" }, + { url = "https://files.pythonhosted.org/packages/2a/ad/439c2959150718446af76fbe2f4000f35eba9869ef8564f3d9a3d0b1c370/ast_serialize-0.11.2-cp315-abi3.abi3t-macosx_11_0_arm64.whl", hash = "sha256:a586be418eb70a9f1396cea29ddac8f4b9bf277fb73ea2340db31e218bc00f32", size = 1215705, upload-time = "2026-09-13T18:47:56.178Z" }, + { url = "https://files.pythonhosted.org/packages/6d/d8/2c6542fc3e7c56a0a25d8d12d034d5a2d2e1900e292567b1c1dca8e83124/ast_serialize-0.11.2-cp315-abi3.abi3t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8532f20916fa3189d4d785ef2a62d93c4d651ec9c5bffda66d2fc36898351f34", size = 1282530, upload-time = "2026-09-13T18:47:57.619Z" }, + { url = "https://files.pythonhosted.org/packages/fa/ad/6f6755cd0842db46c3b10b1e4735f14aad78d71dea4753eb46933101711b/ast_serialize-0.11.2-cp315-abi3.abi3t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ee732ae167e686d1d3c00f98d7d82b23138304694f0441b14d7ddf9c0f8a921c", size = 1287792, upload-time = "2026-09-13T18:47:59.227Z" }, + { url = "https://files.pythonhosted.org/packages/03/40/5da672f5dd23fb7dc0c884c97711e56a3540f2fe3c4355a81f8beb385911/ast_serialize-0.11.2-cp315-abi3.abi3t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:75a1c7f46b9c19fc0ae01ca6fd076301628faa2ed7a8edbd55c6353c483946a3", size = 1557971, upload-time = "2026-09-13T18:48:00.96Z" }, + { url = "https://files.pythonhosted.org/packages/df/c7/2bb25684f697801eb72866fdb94ed5edbff3867ce878b0e542a4a5b9dab9/ast_serialize-0.11.2-cp315-abi3.abi3t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2fdf31a0bb85ea2575cc91669f005e6647d2efed491231c4dc1497bc9a5b3aa6", size = 1303230, upload-time = "2026-09-13T18:48:02.337Z" }, + { url = "https://files.pythonhosted.org/packages/d8/85/754681846f26e0ff1da729b1ffe3171e93c22f0aa6ec3cea5b14e3703846/ast_serialize-0.11.2-cp315-abi3.abi3t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3b78e6fdef3b06c86ed263e1962fee5a7b9d2d158e738b212d13b2c605ee12f5", size = 1302271, upload-time = "2026-09-13T18:48:03.915Z" }, + { url = "https://files.pythonhosted.org/packages/fb/dc/f5521d8cb44b69095c3982ae3658a12c403e0efa19e51aeb9c8a79dff60c/ast_serialize-0.11.2-cp315-abi3.abi3t-manylinux_2_31_riscv64.whl", hash = "sha256:8d62a47714c8bc432b9fabcc29989c815c5da17327d35151f2fd0d85c2a7a5ff", size = 1309529, upload-time = "2026-09-13T18:48:05.562Z" }, + { url = "https://files.pythonhosted.org/packages/73/0d/649182c7fd7c4f782279bed514de2dd67e48a5afecb605a098d64fdc01fd/ast_serialize-0.11.2-cp315-abi3.abi3t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:8a5ffa70e76191dcf240d3c43e20c93b3bfd26f54d89148c762d57837f5bcd2c", size = 1356869, upload-time = "2026-09-13T18:48:07.534Z" }, + { url = "https://files.pythonhosted.org/packages/bf/cc/aff4d84c16afa742d13a75384127c7d24594dc8c304f0558a15924fd51af/ast_serialize-0.11.2-cp315-abi3.abi3t-musllinux_1_2_aarch64.whl", hash = "sha256:bfbe47a3a7c368f28836e78b2440a3643ac0ec4c67d9fe53588e1448f0a3d35d", size = 1460006, upload-time = "2026-09-13T18:48:09.162Z" }, + { url = "https://files.pythonhosted.org/packages/94/a7/891cbec2e5e0d7159196159d3ff0646622f3120ff4576c839ac2dd56c719/ast_serialize-0.11.2-cp315-abi3.abi3t-musllinux_1_2_armv7l.whl", hash = "sha256:7f1823275b246f9c7d373be6879e4eec09686948895d4ad083f4b27fd7e4da70", size = 1562935, upload-time = "2026-09-13T18:48:10.978Z" }, + { url = "https://files.pythonhosted.org/packages/45/c4/2c8c4498340ea9aff87a9fd408309aa25d56dd51d7bbddfdb46a3c31424a/ast_serialize-0.11.2-cp315-abi3.abi3t-musllinux_1_2_i686.whl", hash = "sha256:57c0f5cb0021a5beb1e5e4d6e840ae2f23a28909703ef4d256a144cc1ad3d437", size = 1557109, upload-time = "2026-09-13T18:48:12.616Z" }, + { url = "https://files.pythonhosted.org/packages/0d/8b/c5d4e5226fa18885fe17f949aee3ab1aeb8389c384d946ec1b7c9489cc94/ast_serialize-0.11.2-cp315-abi3.abi3t-musllinux_1_2_ppc64le.whl", hash = "sha256:cd320a5c4f1f2742af97eea22954f776379175c5ef2504801e9a155f2ff9a4d7", size = 1691603, upload-time = "2026-09-13T18:48:14.293Z" }, + { url = "https://files.pythonhosted.org/packages/73/d6/1d2ca472586f9e3416a289a22f36eeb6dd6f47d77b1a4aba358405babbc7/ast_serialize-0.11.2-cp315-abi3.abi3t-musllinux_1_2_riscv64.whl", hash = "sha256:13b13afe32e845c86a573497729e1b7ddeb26c572c78bf50ece51da23b8fad5e", size = 1483053, upload-time = "2026-09-13T18:48:15.789Z" }, + { url = "https://files.pythonhosted.org/packages/0e/16/d3703a7c1e3c76b144ac9349a54d3926d0749918a8dc13a66cede208b8ec/ast_serialize-0.11.2-cp315-abi3.abi3t-musllinux_1_2_x86_64.whl", hash = "sha256:9d80a81ec84660422579bdb8e789f656a794b48c7a1ae1261f6bd8bc1897d17d", size = 1502499, upload-time = "2026-09-13T18:48:17.405Z" }, + { url = "https://files.pythonhosted.org/packages/45/7d/c4f36898f19c728d091cdfdf960c9488e8d82bbe2e49ba13c05f43907a5d/ast_serialize-0.11.2-cp315-cp315-pyemscripten_2026_5_wasm32.whl", hash = "sha256:89499a439955931281986e97ca4dd3c064bf0d2e0027c0017344eb86667733a1", size = 897204, upload-time = "2026-09-13T18:48:23.695Z" }, + { url = "https://files.pythonhosted.org/packages/b1/54/f67120006fc73a55b6d057d4662d061fbb4eceafce3047c76ca8b382eb11/ast_serialize-0.11.2-cp39-abi3-macosx_10_12_x86_64.whl", hash = "sha256:daadf1c3e0224621607ffe16f1379e4bd372271ed2e1db8a67878f0bab3ef7e4", size = 1240734, upload-time = "2026-09-13T18:48:25.287Z" }, + { url = "https://files.pythonhosted.org/packages/9a/7e/8f2ab68bddbe58a66fbbaad87beeae3e7d7edddb17263d1fc423936cf34d/ast_serialize-0.11.2-cp39-abi3-macosx_11_0_arm64.whl", hash = "sha256:1844ed9a487fb3de7325c52ddb33f2918b66b65cd54d3f8d83d23785ffe99fa4", size = 1228053, upload-time = "2026-09-13T18:48:26.788Z" }, + { url = "https://files.pythonhosted.org/packages/d2/1b/8a69ab68f4c1603819f0481d756abdd8caf27cec7f1d77caa71007ebe997/ast_serialize-0.11.2-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b17869f4ba261a5fa468a753328a548f4dbaf74b4eadae9e28aff66df7f1425b", size = 1292542, upload-time = "2026-09-13T18:48:28.295Z" }, + { url = "https://files.pythonhosted.org/packages/d1/ce/872f2e00f0467c289e483f0a34543463347243a2d0632748d89fcee5e0dc/ast_serialize-0.11.2-cp39-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:feb16d9c2a720e0120c58dd5d6e7b3c7c86b43249b60a3bc212bcb8fa031e2dd", size = 1294791, upload-time = "2026-09-13T18:48:29.969Z" }, + { url = "https://files.pythonhosted.org/packages/3a/82/36277c12af861c64b375c316135d8feffe3f400568463a8d2b2de4c2c4fb/ast_serialize-0.11.2-cp39-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f3109fe4805384effc8d0f8e41fbf875aa8f389af91b4348c1cfb60ea6e4cb82", size = 1567583, upload-time = "2026-09-13T18:48:31.85Z" }, + { url = "https://files.pythonhosted.org/packages/b0/d7/ec643df91cea8bcbcb4e8011d6a8b08e5119b84f9554879f3e3c786d29d1/ast_serialize-0.11.2-cp39-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:abdb3e49ba053c3486ac1263bee9f16cc9a4a8abd9f8c90bfc21e3669f3ad9d1", size = 1312878, upload-time = "2026-09-13T18:48:33.495Z" }, + { url = "https://files.pythonhosted.org/packages/04/6f/4c992cd7841ba589fefb14ddc9aff2f6db7f2a615d4074f9ad04115b5ce0/ast_serialize-0.11.2-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a7004ba572f09be34342ccb98dcd4bad5707d3d81adc8cb4c3f685d2a2c51bbc", size = 1312642, upload-time = "2026-09-13T18:48:35.294Z" }, + { url = "https://files.pythonhosted.org/packages/d5/e3/22aaa209c231a83cfea004fd67dee7a7a54da3f169c6c460b14b96887385/ast_serialize-0.11.2-cp39-abi3-manylinux_2_31_riscv64.whl", hash = "sha256:59c25f47524efa052971b860e128b1add0c94ede7dd16b2962952c85c3582365", size = 1319776, upload-time = "2026-09-13T18:48:36.866Z" }, + { url = "https://files.pythonhosted.org/packages/c1/f7/d4685fb54d10108ce44d3bc893ef670854d61645d47ed96d73524db90c23/ast_serialize-0.11.2-cp39-abi3-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f3a367e0e05ed2d1b747ceb07aa728a8c204cc008b589127e9bd4f40053d7575", size = 1365324, upload-time = "2026-09-13T18:48:38.412Z" }, + { url = "https://files.pythonhosted.org/packages/42/3a/250643ffad02bda520c50a9a5f02a5d43259a06f34ce393c91761d134d7e/ast_serialize-0.11.2-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:00bbf1f6669f813b48925b759f7ae4591067d456d443924055cab386e7e0a719", size = 1467653, upload-time = "2026-09-13T18:48:40.348Z" }, + { url = "https://files.pythonhosted.org/packages/c7/da/af66a646b9b7f8fdec95ce83fc7b1fe538b06864bc79bd554ac4fae2e6ea/ast_serialize-0.11.2-cp39-abi3-musllinux_1_2_armv7l.whl", hash = "sha256:ec1c20f89c3e0d83576e3c06f79375ce936266591fe0d5fd969914af3185cbaa", size = 1571914, upload-time = "2026-09-13T18:48:41.968Z" }, + { url = "https://files.pythonhosted.org/packages/34/82/77a9714564b9e8800087a8afec41527c65c39e49282baae2ac847b9c1c6a/ast_serialize-0.11.2-cp39-abi3-musllinux_1_2_i686.whl", hash = "sha256:c58bb119b73657fdc5569692f316e1e25ca114bd62f7782eb527c6be438ba3a9", size = 1569862, upload-time = "2026-09-13T18:48:43.701Z" }, + { url = "https://files.pythonhosted.org/packages/65/06/fa77b52f46b9bd6dcd8ff2b880e3781f8c1a316bb1342bc3de92907c6f96/ast_serialize-0.11.2-cp39-abi3-musllinux_1_2_ppc64le.whl", hash = "sha256:f739e0b601be7300c5697a2573d9200bd1db74b34ab111ef9537b9d5dcd7f106", size = 1699020, upload-time = "2026-09-13T18:48:45.261Z" }, + { url = "https://files.pythonhosted.org/packages/e1/09/239c83153c7e0798e5867d6909cb06f53dccfef02f6999c8e2e21ecb98c3/ast_serialize-0.11.2-cp39-abi3-musllinux_1_2_riscv64.whl", hash = "sha256:cae5addfbb54cc1d47fe947ef9138e9d83849ed1cbc72b819cf36d96a2315b07", size = 1492869, upload-time = "2026-09-13T18:48:46.922Z" }, + { url = "https://files.pythonhosted.org/packages/2f/eb/6108fb9a43fc7ab5529856e38e33c6e3e064fbfe375fdcbb208c7cd5438d/ast_serialize-0.11.2-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:2fa3be25f7f5351b1b39c9f8a52779b2dbf21199efbae564b4746422e8edca4e", size = 1511621, upload-time = "2026-09-13T18:48:48.667Z" }, +] + [[package]] name = "async-timeout" version = "5.0.1" @@ -1061,7 +1116,7 @@ wheels = [ [[package]] name = "django-stubs" -version = "6.0.2" +version = "6.1.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "django" }, @@ -1069,9 +1124,9 @@ dependencies = [ { name = "types-pyyaml" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/03/b2/f0214d86180f937c8e3358ff831b20f0634d95bd77436b18861c647e15bc/django_stubs-6.0.2.tar.gz", hash = "sha256:56d43b5e3741563af0063e5b6283f908c625b0439aa06314268673699d1bdccd", size = 274742, upload-time = "2026-04-01T08:27:35.092Z" } +sdist = { url = "https://files.pythonhosted.org/packages/2b/d6/fb467f5f769b831680d8cb6705e4bbec335c79b328ff7e347e220e676da8/django_stubs-6.1.1.tar.gz", hash = "sha256:291fd79197416d191ec9f4e443bc6800b64dd5d41e476b91e679495d005f3d61", size = 295523, upload-time = "2026-09-14T08:46:24.686Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/49/e7/8f2aaa22eac7fa18db3aca0e7b651ccf5ac79a2021bf67e75a16934a7076/django_stubs-6.0.2-py3-none-any.whl", hash = "sha256:c3bc84d80421758f3b2ad9e1358e001d719388a8eb106e67c873e606216108d4", size = 538234, upload-time = "2026-04-01T08:27:33.411Z" }, + { url = "https://files.pythonhosted.org/packages/9d/26/911e381b1cee7fbb7f11f640ec4be4ec1b6ae49dc58ff2cb829cf12dc4b9/django_stubs-6.1.1-py3-none-any.whl", hash = "sha256:a913d0c35242cd820f638486118fd542d687b6a85104bea9cb7e635b52b889e3", size = 559401, upload-time = "2026-09-14T08:46:23.153Z" }, ] [package.optional-dependencies] @@ -1081,15 +1136,15 @@ compatible-mypy = [ [[package]] name = "django-stubs-ext" -version = "6.0.2" +version = "6.1.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "django" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/52/e0/f2e6caf627d176a51fba1ca9c34082c7ea10d3f521ff2c828532ca99fa91/django_stubs_ext-6.0.2.tar.gz", hash = "sha256:70b7b7ae837e7a6036e2facb64435550bf7cf8143c1a6e802864d4824ce6058c", size = 6751, upload-time = "2026-04-01T08:27:01.987Z" } +sdist = { url = "https://files.pythonhosted.org/packages/4c/70/5f80a3acf99d26dea89e892d4573f0e650904e573708b5fbf3bfc9cec72c/django_stubs_ext-6.1.1.tar.gz", hash = "sha256:c35263135558d4c5d12b69e1f4c98632bf59bc3ab5118f7d4882d12800e3a7dd", size = 7217, upload-time = "2026-09-14T08:45:52.44Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/2b/d2/9cb93cd1ef94ddc97c26c902ff75a859f5f154051fec98cf8242649b26ce/django_stubs_ext-6.0.2-py3-none-any.whl", hash = "sha256:b35bdec1995bf49765cc39fa89aa7c23f120a23d0cb0152ab7fb4e48ff7d667b", size = 10446, upload-time = "2026-04-01T08:27:00.847Z" }, + { url = "https://files.pythonhosted.org/packages/99/c3/305a9f7611c0dc96d2a638bc3a67bdcde5a7faa5f4669188db018b8af6fc/django_stubs_ext-6.1.1-py3-none-any.whl", hash = "sha256:64aebb7ce2c327a4a2b75207d67034e879fd7edf027c93487be69da363dc79fa", size = 10853, upload-time = "2026-09-14T08:45:51.289Z" }, ] [[package]] @@ -1115,16 +1170,16 @@ wheels = [ [[package]] name = "djangorestframework-stubs" -version = "3.16.9" +version = "3.18.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "django-stubs" }, { name = "types-pyyaml" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/30/84/fa0e31f763ee35152a418c2a456efdd8047a9da0f5909110147b70382191/djangorestframework_stubs-3.16.9.tar.gz", hash = "sha256:b1abb97490c90c85eabcd09b8ecbadae1b9360f21ad3021abf830227c0129697", size = 32798, upload-time = "2026-03-31T22:40:23.626Z" } +sdist = { url = "https://files.pythonhosted.org/packages/6b/71/a7727b07e0433da02fb1ea22994f492ecb437a1fe7be5bf952dbb545a0f5/djangorestframework_stubs-3.18.1.tar.gz", hash = "sha256:65ed4a9ea094616759a2cba4fe0ad85efe25b471b28281b790bfefb46704c64a", size = 32439, upload-time = "2026-08-25T22:49:27.506Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/5a/be/e53e3b89eaa30c21e036ae4d2ee88a92ef8cb43678400901748ddad870c5/djangorestframework_stubs-3.16.9-py3-none-any.whl", hash = "sha256:27b3e245d5f9c22ff6988d9e54388249f98f88608cc2b365b71e9f39dd096958", size = 57239, upload-time = "2026-03-31T22:40:22.314Z" }, + { url = "https://files.pythonhosted.org/packages/f7/1c/e266828fe2b78484651667976f8539e47b4e511a266424b890f613c6b7ad/djangorestframework_stubs-3.18.1-py3-none-any.whl", hash = "sha256:a2021f45f7759b493504c2a721f112ec4fd677753590c1ba346f4ebfb49a7f03", size = 55685, upload-time = "2026-08-25T22:49:26.178Z" }, ] [package.optional-dependencies] @@ -2055,60 +2110,97 @@ sdist = { url = "https://files.pythonhosted.org/packages/0e/72/a3add0e4eec4eb9e2 [[package]] name = "librt" -version = "0.8.1" +version = "0.15.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/56/9c/b4b0c54d84da4a94b37bd44151e46d5e583c9534c7e02250b961b1b6d8a8/librt-0.8.1.tar.gz", hash = "sha256:be46a14693955b3bd96014ccbdb8339ee8c9346fbe11c1b78901b55125f14c73", size = 177471, upload-time = "2026-02-17T16:13:06.101Z" } +sdist = { url = "https://files.pythonhosted.org/packages/36/9b/356320fbae2ac8467e21c5e73e1389c80468e4998c62cc7d3536cc51b614/librt-0.15.0.tar.gz", hash = "sha256:4e66cbe84437497d951b799d3e1551291b6fb3d643820a7014b3655d57a59162", size = 214338, upload-time = "2026-08-07T10:49:42.663Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/1d/01/0e748af5e4fee180cf7cd12bd12b0513ad23b045dccb2a83191bde82d168/librt-0.8.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:681dc2451d6d846794a828c16c22dc452d924e9f700a485b7ecb887a30aad1fd", size = 65315, upload-time = "2026-02-17T16:11:25.152Z" }, - { url = "https://files.pythonhosted.org/packages/9d/4d/7184806efda571887c798d573ca4134c80ac8642dcdd32f12c31b939c595/librt-0.8.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a3b4350b13cc0e6f5bec8fa7caf29a8fb8cdc051a3bae45cfbfd7ce64f009965", size = 68021, upload-time = "2026-02-17T16:11:26.129Z" }, - { url = "https://files.pythonhosted.org/packages/ae/88/c3c52d2a5d5101f28d3dc89298444626e7874aa904eed498464c2af17627/librt-0.8.1-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:ac1e7817fd0ed3d14fd7c5df91daed84c48e4c2a11ee99c0547f9f62fdae13da", size = 194500, upload-time = "2026-02-17T16:11:27.177Z" }, - { url = "https://files.pythonhosted.org/packages/d6/5d/6fb0a25b6a8906e85b2c3b87bee1d6ed31510be7605b06772f9374ca5cb3/librt-0.8.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:747328be0c5b7075cde86a0e09d7a9196029800ba75a1689332348e998fb85c0", size = 205622, upload-time = "2026-02-17T16:11:28.242Z" }, - { url = "https://files.pythonhosted.org/packages/b2/a6/8006ae81227105476a45691f5831499e4d936b1c049b0c1feb17c11b02d1/librt-0.8.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f0af2bd2bc204fa27f3d6711d0f360e6b8c684a035206257a81673ab924aa11e", size = 218304, upload-time = "2026-02-17T16:11:29.344Z" }, - { url = "https://files.pythonhosted.org/packages/ee/19/60e07886ad16670aae57ef44dada41912c90906a6fe9f2b9abac21374748/librt-0.8.1-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:d480de377f5b687b6b1bc0c0407426da556e2a757633cc7e4d2e1a057aa688f3", size = 211493, upload-time = "2026-02-17T16:11:30.445Z" }, - { url = "https://files.pythonhosted.org/packages/9c/cf/f666c89d0e861d05600438213feeb818c7514d3315bae3648b1fc145d2b6/librt-0.8.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d0ee06b5b5291f609ddb37b9750985b27bc567791bc87c76a569b3feed8481ac", size = 219129, upload-time = "2026-02-17T16:11:32.021Z" }, - { url = "https://files.pythonhosted.org/packages/8f/ef/f1bea01e40b4a879364c031476c82a0dc69ce068daad67ab96302fed2d45/librt-0.8.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:9e2c6f77b9ad48ce5603b83b7da9ee3e36b3ab425353f695cba13200c5d96596", size = 213113, upload-time = "2026-02-17T16:11:33.192Z" }, - { url = "https://files.pythonhosted.org/packages/9b/80/cdab544370cc6bc1b72ea369525f547a59e6938ef6863a11ab3cd24759af/librt-0.8.1-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:439352ba9373f11cb8e1933da194dcc6206daf779ff8df0ed69c5e39113e6a99", size = 212269, upload-time = "2026-02-17T16:11:34.373Z" }, - { url = "https://files.pythonhosted.org/packages/9d/9c/48d6ed8dac595654f15eceab2035131c136d1ae9a1e3548e777bb6dbb95d/librt-0.8.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:82210adabbc331dbb65d7868b105185464ef13f56f7f76688565ad79f648b0fe", size = 234673, upload-time = "2026-02-17T16:11:36.063Z" }, - { url = "https://files.pythonhosted.org/packages/95/21/d39b0a87ac52fc98f621fb6f8060efb017a767ebbbac2f99fbcbc9ddc0d7/librt-0.8.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:a28f2612ab566b17f3698b0da021ff9960610301607c9a5e8eaca62f5e1c350a", size = 66516, upload-time = "2026-02-17T16:11:41.604Z" }, - { url = "https://files.pythonhosted.org/packages/69/f1/46375e71441c43e8ae335905e069f1c54febee63a146278bcee8782c84fd/librt-0.8.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:60a78b694c9aee2a0f1aaeaa7d101cf713e92e8423a941d2897f4fa37908dab9", size = 68634, upload-time = "2026-02-17T16:11:43.268Z" }, - { url = "https://files.pythonhosted.org/packages/0a/33/c510de7f93bf1fa19e13423a606d8189a02624a800710f6e6a0a0f0784b3/librt-0.8.1-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:758509ea3f1eba2a57558e7e98f4659d0ea7670bff49673b0dde18a3c7e6c0eb", size = 198941, upload-time = "2026-02-17T16:11:44.28Z" }, - { url = "https://files.pythonhosted.org/packages/dd/36/e725903416409a533d92398e88ce665476f275081d0d7d42f9c4951999e5/librt-0.8.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:039b9f2c506bd0ab0f8725aa5ba339c6f0cd19d3b514b50d134789809c24285d", size = 209991, upload-time = "2026-02-17T16:11:45.462Z" }, - { url = "https://files.pythonhosted.org/packages/30/7a/8d908a152e1875c9f8eac96c97a480df425e657cdb47854b9efaa4998889/librt-0.8.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5bb54f1205a3a6ab41a6fd71dfcdcbd278670d3a90ca502a30d9da583105b6f7", size = 224476, upload-time = "2026-02-17T16:11:46.542Z" }, - { url = "https://files.pythonhosted.org/packages/a8/b8/a22c34f2c485b8903a06f3fe3315341fe6876ef3599792344669db98fcff/librt-0.8.1-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:05bd41cdee35b0c59c259f870f6da532a2c5ca57db95b5f23689fcb5c9e42440", size = 217518, upload-time = "2026-02-17T16:11:47.746Z" }, - { url = "https://files.pythonhosted.org/packages/79/6f/5c6fea00357e4f82ba44f81dbfb027921f1ab10e320d4a64e1c408d035d9/librt-0.8.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:adfab487facf03f0d0857b8710cf82d0704a309d8ffc33b03d9302b4c64e91a9", size = 225116, upload-time = "2026-02-17T16:11:49.298Z" }, - { url = "https://files.pythonhosted.org/packages/f2/a0/95ced4e7b1267fe1e2720a111685bcddf0e781f7e9e0ce59d751c44dcfe5/librt-0.8.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:153188fe98a72f206042be10a2c6026139852805215ed9539186312d50a8e972", size = 217751, upload-time = "2026-02-17T16:11:50.49Z" }, - { url = "https://files.pythonhosted.org/packages/93/c2/0517281cb4d4101c27ab59472924e67f55e375bc46bedae94ac6dc6e1902/librt-0.8.1-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:dd3c41254ee98604b08bd5b3af5bf0a89740d4ee0711de95b65166bf44091921", size = 218378, upload-time = "2026-02-17T16:11:51.783Z" }, - { url = "https://files.pythonhosted.org/packages/43/e8/37b3ac108e8976888e559a7b227d0ceac03c384cfd3e7a1c2ee248dbae79/librt-0.8.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e0d138c7ae532908cbb342162b2611dbd4d90c941cd25ab82084aaf71d2c0bd0", size = 241199, upload-time = "2026-02-17T16:11:53.561Z" }, - { url = "https://files.pythonhosted.org/packages/c5/3c/f614c8e4eaac7cbf2bbdf9528790b21d89e277ee20d57dc6e559c626105f/librt-0.8.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:7e6bad1cd94f6764e1e21950542f818a09316645337fd5ab9a7acc45d99a8f35", size = 66529, upload-time = "2026-02-17T16:11:57.809Z" }, - { url = "https://files.pythonhosted.org/packages/ab/96/5836544a45100ae411eda07d29e3d99448e5258b6e9c8059deb92945f5c2/librt-0.8.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:cf450f498c30af55551ba4f66b9123b7185362ec8b625a773b3d39aa1a717583", size = 68669, upload-time = "2026-02-17T16:11:58.843Z" }, - { url = "https://files.pythonhosted.org/packages/06/53/f0b992b57af6d5531bf4677d75c44f095f2366a1741fb695ee462ae04b05/librt-0.8.1-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:eca45e982fa074090057132e30585a7e8674e9e885d402eae85633e9f449ce6c", size = 199279, upload-time = "2026-02-17T16:11:59.862Z" }, - { url = "https://files.pythonhosted.org/packages/f3/ad/4848cc16e268d14280d8168aee4f31cea92bbd2b79ce33d3e166f2b4e4fc/librt-0.8.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0c3811485fccfda840861905b8c70bba5ec094e02825598bb9d4ca3936857a04", size = 210288, upload-time = "2026-02-17T16:12:00.954Z" }, - { url = "https://files.pythonhosted.org/packages/52/05/27fdc2e95de26273d83b96742d8d3b7345f2ea2bdbd2405cc504644f2096/librt-0.8.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5e4af413908f77294605e28cfd98063f54b2c790561383971d2f52d113d9c363", size = 224809, upload-time = "2026-02-17T16:12:02.108Z" }, - { url = "https://files.pythonhosted.org/packages/7a/d0/78200a45ba3240cb042bc597d6f2accba9193a2c57d0356268cbbe2d0925/librt-0.8.1-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:5212a5bd7fae98dae95710032902edcd2ec4dc994e883294f75c857b83f9aba0", size = 218075, upload-time = "2026-02-17T16:12:03.631Z" }, - { url = "https://files.pythonhosted.org/packages/af/72/a210839fa74c90474897124c064ffca07f8d4b347b6574d309686aae7ca6/librt-0.8.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:e692aa2d1d604e6ca12d35e51fdc36f4cda6345e28e36374579f7ef3611b3012", size = 225486, upload-time = "2026-02-17T16:12:04.725Z" }, - { url = "https://files.pythonhosted.org/packages/a3/c1/a03cc63722339ddbf087485f253493e2b013039f5b707e8e6016141130fa/librt-0.8.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:4be2a5c926b9770c9e08e717f05737a269b9d0ebc5d2f0060f0fe3fe9ce47acb", size = 218219, upload-time = "2026-02-17T16:12:05.828Z" }, - { url = "https://files.pythonhosted.org/packages/58/f5/fff6108af0acf941c6f274a946aea0e484bd10cd2dc37610287ce49388c5/librt-0.8.1-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:fd1a720332ea335ceb544cf0a03f81df92abd4bb887679fd1e460976b0e6214b", size = 218750, upload-time = "2026-02-17T16:12:07.09Z" }, - { url = "https://files.pythonhosted.org/packages/71/67/5a387bfef30ec1e4b4f30562c8586566faf87e47d696768c19feb49e3646/librt-0.8.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:93c2af9e01e0ef80d95ae3c720be101227edae5f2fe7e3dc63d8857fadfc5a1d", size = 241624, upload-time = "2026-02-17T16:12:08.43Z" }, - { url = "https://files.pythonhosted.org/packages/c9/6a/907ef6800f7bca71b525a05f1839b21f708c09043b1c6aa77b6b827b3996/librt-0.8.1-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:6cfa7fe54fd4d1f47130017351a959fe5804bda7a0bc7e07a2cdbc3fdd28d34f", size = 66081, upload-time = "2026-02-17T16:12:12.766Z" }, - { url = "https://files.pythonhosted.org/packages/1b/18/25e991cd5640c9fb0f8d91b18797b29066b792f17bf8493da183bf5caabe/librt-0.8.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:228c2409c079f8c11fb2e5d7b277077f694cb93443eb760e00b3b83cb8b3176c", size = 68309, upload-time = "2026-02-17T16:12:13.756Z" }, - { url = "https://files.pythonhosted.org/packages/a4/36/46820d03f058cfb5a9de5940640ba03165ed8aded69e0733c417bb04df34/librt-0.8.1-cp314-cp314-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:7aae78ab5e3206181780e56912d1b9bb9f90a7249ce12f0e8bf531d0462dd0fc", size = 196804, upload-time = "2026-02-17T16:12:14.818Z" }, - { url = "https://files.pythonhosted.org/packages/59/18/5dd0d3b87b8ff9c061849fbdb347758d1f724b9a82241aa908e0ec54ccd0/librt-0.8.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:172d57ec04346b047ca6af181e1ea4858086c80bdf455f61994c4aa6fc3f866c", size = 206907, upload-time = "2026-02-17T16:12:16.513Z" }, - { url = "https://files.pythonhosted.org/packages/d1/96/ef04902aad1424fd7299b62d1890e803e6ab4018c3044dca5922319c4b97/librt-0.8.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6b1977c4ea97ce5eb7755a78fae68d87e4102e4aaf54985e8b56806849cc06a3", size = 221217, upload-time = "2026-02-17T16:12:17.906Z" }, - { url = "https://files.pythonhosted.org/packages/6d/ff/7e01f2dda84a8f5d280637a2e5827210a8acca9a567a54507ef1c75b342d/librt-0.8.1-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:10c42e1f6fd06733ef65ae7bebce2872bcafd8d6e6b0a08fe0a05a23b044fb14", size = 214622, upload-time = "2026-02-17T16:12:19.108Z" }, - { url = "https://files.pythonhosted.org/packages/1e/8c/5b093d08a13946034fed57619742f790faf77058558b14ca36a6e331161e/librt-0.8.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:4c8dfa264b9193c4ee19113c985c95f876fae5e51f731494fc4e0cf594990ba7", size = 221987, upload-time = "2026-02-17T16:12:20.331Z" }, - { url = "https://files.pythonhosted.org/packages/d3/cc/86b0b3b151d40920ad45a94ce0171dec1aebba8a9d72bb3fa00c73ab25dd/librt-0.8.1-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:01170b6729a438f0dedc4a26ed342e3dc4f02d1000b4b19f980e1877f0c297e6", size = 215132, upload-time = "2026-02-17T16:12:21.54Z" }, - { url = "https://files.pythonhosted.org/packages/fc/be/8588164a46edf1e69858d952654e216a9a91174688eeefb9efbb38a9c799/librt-0.8.1-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:7b02679a0d783bdae30d443025b94465d8c3dc512f32f5b5031f93f57ac32071", size = 215195, upload-time = "2026-02-17T16:12:23.073Z" }, - { url = "https://files.pythonhosted.org/packages/f5/f2/0b9279bea735c734d69344ecfe056c1ba211694a72df10f568745c899c76/librt-0.8.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:190b109bb69592a3401fe1ffdea41a2e73370ace2ffdc4a0e8e2b39cdea81b78", size = 237946, upload-time = "2026-02-17T16:12:24.275Z" }, - { url = "https://files.pythonhosted.org/packages/d2/0e/9b23a87e37baf00311c3efe6b48d6b6c168c29902dfc3f04c338372fd7db/librt-0.8.1-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:2c74a2da57a094bd48d03fa5d196da83d2815678385d2978657499063709abe1", size = 68313, upload-time = "2026-02-17T16:12:29.659Z" }, - { url = "https://files.pythonhosted.org/packages/db/9a/859c41e5a4f1c84200a7d2b92f586aa27133c8243b6cac9926f6e54d01b9/librt-0.8.1-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:a355d99c4c0d8e5b770313b8b247411ed40949ca44e33e46a4789b9293a907ee", size = 70994, upload-time = "2026-02-17T16:12:31.516Z" }, - { url = "https://files.pythonhosted.org/packages/4c/28/10605366ee599ed34223ac2bf66404c6fb59399f47108215d16d5ad751a8/librt-0.8.1-cp314-cp314t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:2eb345e8b33fb748227409c9f1233d4df354d6e54091f0e8fc53acdb2ffedeb7", size = 220770, upload-time = "2026-02-17T16:12:33.294Z" }, - { url = "https://files.pythonhosted.org/packages/af/8d/16ed8fd452dafae9c48d17a6bc1ee3e818fd40ef718d149a8eff2c9f4ea2/librt-0.8.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9be2f15e53ce4e83cc08adc29b26fb5978db62ef2a366fbdf716c8a6c8901040", size = 235409, upload-time = "2026-02-17T16:12:35.443Z" }, - { url = "https://files.pythonhosted.org/packages/89/1b/7bdf3e49349c134b25db816e4a3db6b94a47ac69d7d46b1e682c2c4949be/librt-0.8.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:785ae29c1f5c6e7c2cde2c7c0e148147f4503da3abc5d44d482068da5322fd9e", size = 246473, upload-time = "2026-02-17T16:12:36.656Z" }, - { url = "https://files.pythonhosted.org/packages/4e/8a/91fab8e4fd2a24930a17188c7af5380eb27b203d72101c9cc000dbdfd95a/librt-0.8.1-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:1d3a7da44baf692f0c6aeb5b2a09c5e6fc7a703bca9ffa337ddd2e2da53f7732", size = 238866, upload-time = "2026-02-17T16:12:37.849Z" }, - { url = "https://files.pythonhosted.org/packages/b9/e0/c45a098843fc7c07e18a7f8a24ca8496aecbf7bdcd54980c6ca1aaa79a8e/librt-0.8.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:5fc48998000cbc39ec0d5311312dda93ecf92b39aaf184c5e817d5d440b29624", size = 250248, upload-time = "2026-02-17T16:12:39.445Z" }, - { url = "https://files.pythonhosted.org/packages/82/30/07627de23036640c952cce0c1fe78972e77d7d2f8fd54fa5ef4554ff4a56/librt-0.8.1-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:e96baa6820280077a78244b2e06e416480ed859bbd8e5d641cf5742919d8beb4", size = 240629, upload-time = "2026-02-17T16:12:40.889Z" }, - { url = "https://files.pythonhosted.org/packages/fb/c1/55bfe1ee3542eba055616f9098eaf6eddb966efb0ca0f44eaa4aba327307/librt-0.8.1-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:31362dbfe297b23590530007062c32c6f6176f6099646bb2c95ab1b00a57c382", size = 239615, upload-time = "2026-02-17T16:12:42.446Z" }, - { url = "https://files.pythonhosted.org/packages/2b/39/191d3d28abc26c9099b19852e6c99f7f6d400b82fa5a4e80291bd3803e19/librt-0.8.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:cc3656283d11540ab0ea01978378e73e10002145117055e03722417aeab30994", size = 263001, upload-time = "2026-02-17T16:12:43.627Z" }, + { url = "https://files.pythonhosted.org/packages/59/52/06790ced2ac7117f890c21bda43c39c958ec82aa665c0718e821d33ff939/librt-0.15.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:823b92cf3c18ecd08afc70c42473888b41b6e8ef5046f3b82c05c154a2fa3d22", size = 148039, upload-time = "2026-08-07T10:46:41.165Z" }, + { url = "https://files.pythonhosted.org/packages/e7/1d/8e150b7fc449a1f33c8a760965cc1f43b14fc1577d9d0b50ab2701420e74/librt-0.15.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c70bc1b602cf59917e8f0c7a2cbc8bcc6fbc14d5486136b00707a79619121d63", size = 153067, upload-time = "2026-08-07T10:46:42.418Z" }, + { url = "https://files.pythonhosted.org/packages/51/87/a162bc5a66a35599dc619ecb215145f4de7d68e886b479b6d12593139f7c/librt-0.15.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:814ff83a25b5fce8b9c80c4dd803153fb5c5599fc74db9e022466938368957ef", size = 493087, upload-time = "2026-08-07T10:46:43.657Z" }, + { url = "https://files.pythonhosted.org/packages/e5/3a/aeea1fc620cf48060d3065b37614edbf97043c099d0f50782bc8ca61d897/librt-0.15.0-cp311-cp311-manylinux2014_i686.manylinux_2_17_i686.manylinux_2_28_i686.whl", hash = "sha256:57f5eeb6ad4c180de583b1038e61fe5fbd9796bb69a8a1c1a0c7ddbec4c8c60f", size = 485608, upload-time = "2026-08-07T10:46:45.038Z" }, + { url = "https://files.pythonhosted.org/packages/52/ff/fe571ad416f0856fd0d5578ffc2e6dc531891e586e36b647bcf50569cab8/librt-0.15.0-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:82909c8f7eb9952656b65d3147afde4cf8e6d5a991eebc86418b5e65843b0ab8", size = 498723, upload-time = "2026-08-07T10:46:46.35Z" }, + { url = "https://files.pythonhosted.org/packages/0f/e1/7a65eb5dedb1f00aebd948cdd8e17add48bf066cab3514e9daf84ab45a6c/librt-0.15.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f779070399f991400fc451719e0ea388eb7de313388bada2c127a35de05f798a", size = 516002, upload-time = "2026-08-07T10:46:47.599Z" }, + { url = "https://files.pythonhosted.org/packages/5f/45/59832b0ebfbd08c2742e6ece372ceb53f18bf1faef5d33c8daf3abebf749/librt-0.15.0-cp311-cp311-manylinux_2_34_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:bac89069bc496ebdf4f79ebb57bbd10d0b214c8454225deb672d91002bd17e18", size = 508607, upload-time = "2026-08-07T10:46:48.873Z" }, + { url = "https://files.pythonhosted.org/packages/ea/0d/37fa73f3b43ebd8259f91ae9102a15e5a54e65d581e48dea72df3e81d7a4/librt-0.15.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:e0d00c708fb2f5822b152429b1ac80a58dbbbc3f6c232c4d13a3f7fcf2ea5b4c", size = 530422, upload-time = "2026-08-07T10:46:50.45Z" }, + { url = "https://files.pythonhosted.org/packages/26/02/e046c6fe7a5881ac34623242192f484426ba8a75595fd18f22c53a3f530f/librt-0.15.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:6c6624fe268625869485553dd7cc1daf30d22558215bb2a4ff16f67a9801a31a", size = 534303, upload-time = "2026-08-07T10:46:51.693Z" }, + { url = "https://files.pythonhosted.org/packages/95/32/d5e6d861ab0366f3edf74f887ab0c9eb9f535aaf01d32b80b4f734daa179/librt-0.15.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:f56b397858a23dacf35ede366ed2212fdc03a6a57a1ad36468ad6e9dc5fac091", size = 536084, upload-time = "2026-08-07T10:46:52.951Z" }, + { url = "https://files.pythonhosted.org/packages/2a/de/d69d725513fe53fc90c6d7a1f86e4428939bad2fb905b17fe4c18d413dde/librt-0.15.0-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:4388184646efe2054911c5b00a1077d6d1ee86a95b7e8ba96dc7850a809f3f40", size = 514307, upload-time = "2026-08-07T10:46:54.194Z" }, + { url = "https://files.pythonhosted.org/packages/36/93/f8aded0d6682b4f25820fa86e0690f87f01df9fd7bd09ddb04d9167ad021/librt-0.15.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:97335f59082f9fe2ce6c2a9cc6433a0114bbb6cd4d5c09dd76c95c68b9f9a8b0", size = 557686, upload-time = "2026-08-07T10:46:55.443Z" }, + { url = "https://files.pythonhosted.org/packages/ba/39/99c25030e782bdfb7a21be8c05254806a2e4bbb05c8d50c2a2130acbfa05/librt-0.15.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:e87bc679f86a99aa3b26e3c78eeb821a247c9a28eae48eaafcc32c3bf4c3bb9e", size = 151021, upload-time = "2026-08-07T10:47:00.057Z" }, + { url = "https://files.pythonhosted.org/packages/14/43/f4b1bd1b2888798a1409808889a25ea1ba49eaabce7d681ed27734c2df9d/librt-0.15.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:71599e011ac880e8e45d46047d714871894c7d4ab6f25626f8d4f89da21f368d", size = 155267, upload-time = "2026-08-07T10:47:01.311Z" }, + { url = "https://files.pythonhosted.org/packages/0c/db/3ad9c965c72f1e1d6beeec44ec10a54e17be8ae042fbb4baade16cbadced/librt-0.15.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c802434092b769b1d613ed2e13fac15fbfce1934a74bd10283b03c0fae231cd1", size = 503136, upload-time = "2026-08-07T10:47:02.45Z" }, + { url = "https://files.pythonhosted.org/packages/4b/07/5888a6d76acd62ebce66c61b74d94e9370b9c32929f111e487bb6546f8ed/librt-0.15.0-cp312-cp312-manylinux2014_i686.manylinux_2_17_i686.manylinux_2_28_i686.whl", hash = "sha256:5500eeae393a184d14e1f35645962c27129d20c81afa4069e6ef826ebc2b3aaa", size = 496670, upload-time = "2026-08-07T10:47:03.675Z" }, + { url = "https://files.pythonhosted.org/packages/29/39/ab57cc2f5b276156da02bb7f5a8921bada1cb1993ffec99acf811c602c23/librt-0.15.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:6ecfc32dfb46fb7b565bcd6abf9412acf978775a998273d22888a6d7953730dd", size = 513688, upload-time = "2026-08-07T10:47:04.981Z" }, + { url = "https://files.pythonhosted.org/packages/a7/b9/bdbb0b648b5c2befb031f4c6f3b1dd857415e8fb492a25a3c764a6681e6c/librt-0.15.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:89cc46cfd15022e35084355478c9ac809d90b1152222706ac9a7655ec21df6fa", size = 531904, upload-time = "2026-08-07T10:47:06.211Z" }, + { url = "https://files.pythonhosted.org/packages/93/26/473c2e4b6c104e9e58e27ce95fc8005c8bd4fc36cae4f254371125a92db8/librt-0.15.0-cp312-cp312-manylinux_2_34_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:d5f51401d102c885b9ca509e62c79b1dbff286e1b9b047fde6f763780789356d", size = 524427, upload-time = "2026-08-07T10:47:07.592Z" }, + { url = "https://files.pythonhosted.org/packages/26/60/03b3abb82b41714671b907bf6989b228e31e6a8af52dec82b5b0728dc250/librt-0.15.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:cc30523e3f1a23fb7511cc659834a0d01a1042bb9de359bc1c131cc4ec6c9656", size = 543155, upload-time = "2026-08-07T10:47:08.866Z" }, + { url = "https://files.pythonhosted.org/packages/f2/0e/9bb1f0a4affbd0a1888f4f79dc03ed2a299d9a2c26c59ab2a97dcbf11903/librt-0.15.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:59fe030d8ae4a57e3fb7756bf35a858de74e04066fc8555c53d0af979132af81", size = 546890, upload-time = "2026-08-07T10:47:10.327Z" }, + { url = "https://files.pythonhosted.org/packages/dc/84/6937a280d461f7de6e031ffb02edc2b7c3c90d49d630565ce8ff27cbc5f2/librt-0.15.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:5a6526a2a956bbb1e4ae3568c82e650fc99119c66bb011ea60715744955a2b4d", size = 555163, upload-time = "2026-08-07T10:47:11.798Z" }, + { url = "https://files.pythonhosted.org/packages/bc/95/2a2853c1ee014bf102116e7f897a04beeaeb2461b45b79af98bdfb95f1ef/librt-0.15.0-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:85ea21ec6730194d67156b0e0b5430ccb1d61f8b8b907e39b37f9812b74a13f0", size = 535812, upload-time = "2026-08-07T10:47:13.279Z" }, + { url = "https://files.pythonhosted.org/packages/c9/4c/cf9601c1b4c5f09280acd5d83abdb2e68527a2be8257136eb42304218622/librt-0.15.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:1e47b8ba865d7ede071a91a7163073bbaeb72541f1ef8a07d512c45c7b5007f2", size = 573688, upload-time = "2026-08-07T10:47:14.727Z" }, + { url = "https://files.pythonhosted.org/packages/e7/42/467b53a601b406ccd7b97c1fd54b59cb34f9185ad5ce7e9d5c3c4e8961c8/librt-0.15.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:db13ca398005abcbe538deda87b686d9bd08b7001cf40c4c06b444960ae10a26", size = 151029, upload-time = "2026-08-07T10:47:19.312Z" }, + { url = "https://files.pythonhosted.org/packages/3e/e6/36c2299b7a94b84fdd01220d8a777a71be5be0925bb0dbdf71c0a06a34d9/librt-0.15.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:aa1f1995789dca3698bc550aaceb09a51bd5df0a057ff84ff15296cd1975b801", size = 155194, upload-time = "2026-08-07T10:47:20.398Z" }, + { url = "https://files.pythonhosted.org/packages/c9/b6/ed5071f9325845e670bd36012757419767fbf56af77ed483077b9e4db541/librt-0.15.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:55456ea87d8df21808446d03817be2f65e20391c1c615d9187440dff28cd08dc", size = 502568, upload-time = "2026-08-07T10:47:21.652Z" }, + { url = "https://files.pythonhosted.org/packages/7f/81/6450c67c3615d87704bcbc21323fafc69c799b06a044c447529f725d4b01/librt-0.15.0-cp313-cp313-manylinux2014_i686.manylinux_2_17_i686.manylinux_2_28_i686.whl", hash = "sha256:5a86a5a08c2235316bdb359d5dbb6ce0abfca7fac06363103e2c5af571d92f95", size = 496153, upload-time = "2026-08-07T10:47:22.925Z" }, + { url = "https://files.pythonhosted.org/packages/e1/d6/5f52b722bc75076954b3bfd49be15ea362df4d580c6fb315d0f617100d30/librt-0.15.0-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:e56b6a368529bed262da40ce13f8fef590db0479819cca84f16a1f01ac356d0b", size = 513336, upload-time = "2026-08-07T10:47:24.213Z" }, + { url = "https://files.pythonhosted.org/packages/8d/e2/c08fd1d36ce63ea5a12b85c5d37f4550b5f86a692167e41e5a74222607ae/librt-0.15.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:234d8d394721fa0d786af15ebf1f3fb7f3ed82fd1cd0cde45c2f247b5d4281d2", size = 531661, upload-time = "2026-08-07T10:47:25.507Z" }, + { url = "https://files.pythonhosted.org/packages/3f/d8/d9482fcbeb177b9eb87bb3899eeb3b42be690313c652f9e146b1d0681fb2/librt-0.15.0-cp313-cp313-manylinux_2_34_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:d8363d7accb0286ac3a0e633f396e93800dafb8150494505daf9515bbda591f3", size = 524487, upload-time = "2026-08-07T10:47:26.79Z" }, + { url = "https://files.pythonhosted.org/packages/10/cc/075171517b41f861753034fbb151b42cfc83bcc853849f24f5e66fd60ccf/librt-0.15.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:0f0ee3644d951f31055ad07d77d92520e84505dd7a432cc4cd501dd70ee06785", size = 543201, upload-time = "2026-08-07T10:47:27.999Z" }, + { url = "https://files.pythonhosted.org/packages/b0/03/42c2330f37eeb475b6affeedd06518f60035f323af3a839335e3fc9fef2d/librt-0.15.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:2cfd1a81a648806e6a7717be4cc4d1bb392fa229752bf8444ba365e381e984d6", size = 546467, upload-time = "2026-08-07T10:47:29.396Z" }, + { url = "https://files.pythonhosted.org/packages/57/1e/1ad4c5638f7e64d8560328bd25c54b409a661bdb6ff254b38ff90744288d/librt-0.15.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:a6cd22c9da0d866558e46a041f1cc0c2bbb26b61b137b2347fa834c332e1d101", size = 555139, upload-time = "2026-08-07T10:47:30.815Z" }, + { url = "https://files.pythonhosted.org/packages/49/41/39fa7d15db1204cd1cbe6514680fbdc243adf754a0885061308f43afc013/librt-0.15.0-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:6d5225ef8801e4ea5e482fa9b5dfb891dd9ef6f6d870f1f25d449ca2c70ac218", size = 536050, upload-time = "2026-08-07T10:47:32.222Z" }, + { url = "https://files.pythonhosted.org/packages/1e/88/c6dcf0dd8e26dc0c9a499a2abab8646c86dcaf9ecea9524cb46d3686331a/librt-0.15.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6d28a05796b99f749bf8794f17ba9ba1612d0076b802e9cfc62c554634e9ce3b", size = 573700, upload-time = "2026-08-07T10:47:33.527Z" }, + { url = "https://files.pythonhosted.org/packages/1b/9b/ab54c71a7918a7c34fa5327fb61390a77446a07a146fbfb1165250a61035/librt-0.15.0-cp313-cp313-pyemscripten_2025_0_wasm32.whl", hash = "sha256:2067ff438048cead9d223ca5675bae2a25e520a7c3e6c1498bf9c6892d22caab", size = 82194, upload-time = "2026-08-07T10:47:34.835Z" }, + { url = "https://files.pythonhosted.org/packages/a8/93/949053fb462eecc4a9a5ee770a81f4b40be7b79538b245545d4aebc6b58b/librt-0.15.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:f5de7feedc56337a088eb15cd9fafa9938367362221d8cc62c642b7f94821993", size = 149833, upload-time = "2026-08-07T10:47:39.86Z" }, + { url = "https://files.pythonhosted.org/packages/61/ca/8281aa6cd560a3420e4497729f6b704b53be3eeaaef82d5aeadddaf7441f/librt-0.15.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:6c0eb900c0e91f4aebe680845242e614f1864edfd44106380d0752ac29522bf8", size = 154088, upload-time = "2026-08-07T10:47:41.065Z" }, + { url = "https://files.pythonhosted.org/packages/dd/02/1a1662dceaba6a086360891448d5ce9a7d3555976cae59a31a39d744b9c7/librt-0.15.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e8c9a650a188e38bac005048cbe6342e81407782944d01934540ab75e417df21", size = 494215, upload-time = "2026-08-07T10:47:42.388Z" }, + { url = "https://files.pythonhosted.org/packages/69/84/99211619dc656370a3740c33d2b0b6d5a3fb1e73689314f6ed477a397dc4/librt-0.15.0-cp314-cp314-manylinux2014_i686.manylinux_2_17_i686.manylinux_2_28_i686.whl", hash = "sha256:92bfed8deec93df30286b9fe9e3b1dd17329cc076a192b4ee5ec223841d54953", size = 491173, upload-time = "2026-08-07T10:47:43.683Z" }, + { url = "https://files.pythonhosted.org/packages/d4/aa/5448d0b05f4579b635d3899176817ebf561af0e57bacd425b5b1887264c1/librt-0.15.0-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:ec4b19788f835711a2072f9dbe6b03b3bf32ed1f0fb30cf399bdd59d9f0c33fa", size = 505512, upload-time = "2026-08-07T10:47:45.314Z" }, + { url = "https://files.pythonhosted.org/packages/95/82/01940e40b83c43a546c4a3c896cf34ca272a9690899d55914e4827b3dcce/librt-0.15.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d4c7bacb70930f3d0a56f4ecf1be474a1f0d941b01dd73b756f3c256d42cb879", size = 523073, upload-time = "2026-08-07T10:47:46.66Z" }, + { url = "https://files.pythonhosted.org/packages/88/fa/759c0030f3ee371439eb26de34fc745807caf0abb878af7af4b8b7c3dd3d/librt-0.15.0-cp314-cp314-manylinux_2_34_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:3e79f05e4a08b4d880342673312bbc895b56df7765605796f15902eb5367d3ae", size = 515080, upload-time = "2026-08-07T10:47:48.319Z" }, + { url = "https://files.pythonhosted.org/packages/0b/27/894e072228fcb159703c655da69f8cd10dbed489c36e3df7dd032a2483be/librt-0.15.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:a417149c0cba4d50b61e992e5a15e69eaf96746609b461cc4ed168aeef6b79dd", size = 534164, upload-time = "2026-08-07T10:47:49.875Z" }, + { url = "https://files.pythonhosted.org/packages/98/a3/0078e91c1f36f8815db17827de15650b9a3fe56c55fbf998c854b34e40d3/librt-0.15.0-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:da7a94d6a3411f579d72aa3e3bc5fbca7ed4549f3dbd7e5de3aa567333374285", size = 540616, upload-time = "2026-08-07T10:47:51.408Z" }, + { url = "https://files.pythonhosted.org/packages/86/33/81a29b796dd52a45e9ef7974c7732926e8f10f15b8d2be505665979f896d/librt-0.15.0-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:856f743ae607f2c1380eccb566c0038a9fb3eabf0fc2be2704d76d9f73557239", size = 545890, upload-time = "2026-08-07T10:47:52.818Z" }, + { url = "https://files.pythonhosted.org/packages/05/82/8be1baa1350e5d30cfd70ae79d0a6f4dc5862ef47f7bb2808aabc9bb86e5/librt-0.15.0-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:779a6e7c894737e5983e7790a9c78c4000c30e23c9aada08081bdbea53b0fa60", size = 523287, upload-time = "2026-08-07T10:47:54.165Z" }, + { url = "https://files.pythonhosted.org/packages/c6/4f/d1be6a01a35c20ef734e0e44113f87d4af756a9354a89dcfbe3b4f8af5e1/librt-0.15.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:96bb17dbe8bab3c0954fbebfc69ed395599de75b6bbc35e3270a878e15d4dd65", size = 565868, upload-time = "2026-08-07T10:47:55.566Z" }, + { url = "https://files.pythonhosted.org/packages/67/88/649cfa33f5825927b160610f670bdab012a64d627eddb94fa795ea4292fd/librt-0.15.0-cp314-cp314-pyemscripten_2026_0_wasm32.whl", hash = "sha256:7220697efaa6e5348fc3d18ee7f8563d4bfecd9872b37ffb915bfc1d08840622", size = 81619, upload-time = "2026-08-07T10:47:56.886Z" }, + { url = "https://files.pythonhosted.org/packages/7e/aa/b42bb798942ced219f6d63b27e07f91237887a8d0bd0921666db79a13790/librt-0.15.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:38c0c7d4b6fc06c3324b3f9162c8391bfc4fd9dde53afe1033ce7edb48d5a714", size = 159523, upload-time = "2026-08-07T10:48:02.442Z" }, + { url = "https://files.pythonhosted.org/packages/75/03/1b53cd4ef904e73b1d828a5f90143bf94a2967d7cfff0b9ccf93e12aa9b4/librt-0.15.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:8b2fdd7ead3c995c37940a790690660d0ca006c302db26cc51933f6766866fc3", size = 161638, upload-time = "2026-08-07T10:48:03.725Z" }, + { url = "https://files.pythonhosted.org/packages/ac/c4/9f9c9fba097d49e9e694c2b4dc331df31884645ecbc58a93b4b5fc69d2c5/librt-0.15.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2fde98cf1fc4bac144ce23c2c4c017b924ba714509ea9334977b0b27050c837d", size = 701795, upload-time = "2026-08-07T10:48:05.135Z" }, + { url = "https://files.pythonhosted.org/packages/4c/05/0966840bda0380c8ae167b9043c6230202941cc90ea29c48e096964c765e/librt-0.15.0-cp314-cp314t-manylinux2014_i686.manylinux_2_17_i686.manylinux_2_28_i686.whl", hash = "sha256:e3b461183c5fa7681b48560f91515f53a953122fb30c71e07abc67d7ddf58c38", size = 682147, upload-time = "2026-08-07T10:48:06.555Z" }, + { url = "https://files.pythonhosted.org/packages/18/af/1c47ca573c30ea47d195aec26133af522fea1104afaace028d7b32247ea8/librt-0.15.0-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:4bbcc257e3babea20a91715c361b24554ec4e8f51aa578568afc230799fe1a19", size = 696397, upload-time = "2026-08-07T10:48:08.03Z" }, + { url = "https://files.pythonhosted.org/packages/2e/0f/1aed6223d4f9f9d1171a8596ff100ea4c3f7699fea7a4ba657c3e60daa6c/librt-0.15.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b845b8d48088fad0cadc84be4b8fda63203be7e9237b71015b3925443c1f35ab", size = 722542, upload-time = "2026-08-07T10:48:09.569Z" }, + { url = "https://files.pythonhosted.org/packages/c6/22/9e3a929aea456c97d69e6ef3884efea56d4807f97399471cc946baebd8af/librt-0.15.0-cp314-cp314t-manylinux_2_34_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:b30e600e8f337b9bd7f39b86d9fdfedc73cc46e3d0f745931a23a234220bb7e2", size = 729709, upload-time = "2026-08-07T10:48:11.129Z" }, + { url = "https://files.pythonhosted.org/packages/e9/1b/c327ef6018e3a9ca0b8e7c5eddeeb331ba8f9b76c24e126d37d0f6d62faf/librt-0.15.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:64b0c8c35aa4c4ed79896359f3e0b285cbe4e610042106500da4811c322cc108", size = 752891, upload-time = "2026-08-07T10:48:12.558Z" }, + { url = "https://files.pythonhosted.org/packages/d7/d1/d5f1ea02c56930087009e39db9b70660a663e76c730b27b925d786718457/librt-0.15.0-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:0da0d94cb802f32a0524653e7201f2cef72d5f700a5407678f5290483d4fcd08", size = 745301, upload-time = "2026-08-07T10:48:14.55Z" }, + { url = "https://files.pythonhosted.org/packages/d9/3c/5f7c585d15ebb2250c73e7c0ee4e9e47be72c65d520c07ddbcdc62037674/librt-0.15.0-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:4a6369168d371207339b1e50d4532b06a7121586141f82599505a3f315751d47", size = 747921, upload-time = "2026-08-07T10:48:16.453Z" }, + { url = "https://files.pythonhosted.org/packages/7f/52/1443a446486eba966bcbca1696b472e4f210320ec42f490a47f48fbf0fdc/librt-0.15.0-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:c434e072557ade9cbc642d052c89d031efe47d5c9614523619d0d74a02378e81", size = 727561, upload-time = "2026-08-07T10:48:18.089Z" }, + { url = "https://files.pythonhosted.org/packages/79/91/2270a9380f11725cf83ce1925a5e32dd1dde2be9bba597f25c10a38644e7/librt-0.15.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:c7eec6a42018bc1d45763b1c162d3d2bf7c3b9a1b0ed30d3e91dcba390efefcc", size = 774417, upload-time = "2026-08-07T10:48:19.611Z" }, + { url = "https://files.pythonhosted.org/packages/c6/44/4de9f4ddadb009a55c7758eb5736d62534a7daaf27bd71bc50e64b606b06/librt-0.15.0-cp315-cp315-macosx_10_15_x86_64.whl", hash = "sha256:8443e38dcfcfdbcf5add5118c623efd788d65ac2e25756d6251a54a06a4d0aca", size = 149843, upload-time = "2026-08-07T10:48:25.148Z" }, + { url = "https://files.pythonhosted.org/packages/1f/eb/5d9ab71e30119c44094e0275f38b47dd327aea0f843a080396677029d508/librt-0.15.0-cp315-cp315-macosx_11_0_arm64.whl", hash = "sha256:6d15a29033c57490cfe2069097c6fc4049e4e65ffbb749be7dc453b7c4c68965", size = 154510, upload-time = "2026-08-07T10:48:26.485Z" }, + { url = "https://files.pythonhosted.org/packages/d0/9c/8505d1b8f5e8c19587bd03f7429993b3e9ce5c06819d856bfb11d919374c/librt-0.15.0-cp315-cp315-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d2c05c729b589e734c09578bf5964be48a911765484840d017bbc84f49d4c4ad", size = 497543, upload-time = "2026-08-07T10:48:28.045Z" }, + { url = "https://files.pythonhosted.org/packages/1d/9a/3a8390775cb095765aded027ac9c63e7c8ea74e731498607544c6505de0e/librt-0.15.0-cp315-cp315-manylinux2014_i686.manylinux_2_17_i686.manylinux_2_28_i686.whl", hash = "sha256:fa60887537e1d0cd2d9982269d33a709bf54b195cd2b9364fc0a758022af5bd9", size = 480452, upload-time = "2026-08-07T10:48:29.531Z" }, + { url = "https://files.pythonhosted.org/packages/e7/40/258a4a7117ee915d66de5cd9b8ade65a440993161107ce3a686f1859955c/librt-0.15.0-cp315-cp315-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:d8bc24219b24c0af375718942ab75e3544b2763085f40f965be4326734ae8328", size = 507768, upload-time = "2026-08-07T10:48:31.007Z" }, + { url = "https://files.pythonhosted.org/packages/6b/c6/2f4dd296c97a0b85b98894519b279408ec9dd602d4f692b1ea0e25dee670/librt-0.15.0-cp315-cp315-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:86a21a7bd3fe3a419512ef424cc1c020f6771d0b29cfddff36d1635a855e63f0", size = 525122, upload-time = "2026-08-07T10:48:32.7Z" }, + { url = "https://files.pythonhosted.org/packages/49/dd/29eab42be13b2bf0ea8cb227135a45d44693e30a7e8b92871981ff56b82b/librt-0.15.0-cp315-cp315-manylinux_2_34_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:dbab647e88d90b3167b91efe7091e248653688ed4337e4f90907a722c7361bb9", size = 520371, upload-time = "2026-08-07T10:48:34.294Z" }, + { url = "https://files.pythonhosted.org/packages/91/ed/4bad71adeca8fe208b775c2a35417fa5a2584c8f4791daaf89a89450fea1/librt-0.15.0-cp315-cp315-musllinux_1_2_aarch64.whl", hash = "sha256:d8edcf6f550e918dca779c069b9e156385c60b406f99fc7641f32c52f7193659", size = 537258, upload-time = "2026-08-07T10:48:35.88Z" }, + { url = "https://files.pythonhosted.org/packages/4c/63/59dba6143fdcc7240c54458b629f3250000a61b8945890fc9efd451b19c5/librt-0.15.0-cp315-cp315-musllinux_1_2_i686.whl", hash = "sha256:8b62076030baa2d8b1501a46bf0e19c27a489aa90671c55665bff7887f7660b0", size = 527432, upload-time = "2026-08-07T10:48:37.466Z" }, + { url = "https://files.pythonhosted.org/packages/ec/21/21a24c6a2327d8362580efebe77286bf47b0f4062ec5ea41766e609d3c7d/librt-0.15.0-cp315-cp315-musllinux_1_2_ppc64le.whl", hash = "sha256:d00d20d1818e82a07a0ee0aa89a98b17ed7916b92441090b683719cb20a59b6d", size = 548108, upload-time = "2026-08-07T10:48:39.384Z" }, + { url = "https://files.pythonhosted.org/packages/5a/6d/fc68c89a7971418b41f9a873623ff935cb864097544c6a2f8ce491c8ef5d/librt-0.15.0-cp315-cp315-musllinux_1_2_riscv64.whl", hash = "sha256:4e6ee93fc3cf848dcbf0cce2eca73d8e7dcd0cc2b6df3a529d57750b30a4c55c", size = 529681, upload-time = "2026-08-07T10:48:41.392Z" }, + { url = "https://files.pythonhosted.org/packages/65/7e/c2d98766124400d722063a630b0fde38a9fc768705d37eecca15c47dc192/librt-0.15.0-cp315-cp315-musllinux_1_2_x86_64.whl", hash = "sha256:32896a0af72508ea979e0acb4e4c04cbeeae04938167950d535c83c45597167d", size = 567736, upload-time = "2026-08-07T10:48:43.124Z" }, + { url = "https://files.pythonhosted.org/packages/55/6c/f8c34a95e3a515c6e1c192b89511e7253c89a7760c6b500d57ffdb8d2dc8/librt-0.15.0-cp315-cp315-pyemscripten_2026_5_wasm32.whl", hash = "sha256:ec3ba415afaf951f6951b1dd16d3c8e4f540065fc382d7e70b823a79567ca374", size = 81673, upload-time = "2026-08-07T10:48:44.645Z" }, + { url = "https://files.pythonhosted.org/packages/de/15/83f2deddb9368b8951ec8c9477269b5b9b8bd9bbf15e57402d0f38817dca/librt-0.15.0-cp315-cp315t-macosx_10_15_x86_64.whl", hash = "sha256:3de789c82752730f94782a5ee518baf9c05edf85733aeaf73bb6e518755cdf54", size = 159448, upload-time = "2026-08-07T10:48:50.649Z" }, + { url = "https://files.pythonhosted.org/packages/06/bf/043097353f9b3c73b583d07f6b8e552795463f4bfc8caf85e42eee50c26a/librt-0.15.0-cp315-cp315t-macosx_11_0_arm64.whl", hash = "sha256:e0b5deec9a8664eb722c797241970fd4aa1894d25fda36a1ddac0f7407606bd6", size = 161686, upload-time = "2026-08-07T10:48:52.174Z" }, + { url = "https://files.pythonhosted.org/packages/f4/2a/8ae77f9719d42ce71cd708560a3557b38ac3c17a0383e57f87084de45bbe/librt-0.15.0-cp315-cp315t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5563302a8359bc2295bb7084d1a8ed1519df96afb30eb2aa4e0bff7b54228988", size = 710668, upload-time = "2026-08-07T10:48:53.782Z" }, + { url = "https://files.pythonhosted.org/packages/61/34/c0436ea134deb9a0d6da80a396a2739a81cb31e0418f7227239e23140898/librt-0.15.0-cp315-cp315t-manylinux2014_i686.manylinux_2_17_i686.manylinux_2_28_i686.whl", hash = "sha256:22d6263b9d39d7bbb286fa791945646e3218f1be2d693e36fb630f1d0e59cd13", size = 679396, upload-time = "2026-08-07T10:48:55.645Z" }, + { url = "https://files.pythonhosted.org/packages/4a/9f/001e0d99aa9250d5cd5715a9081291a20656083459f9019cda15255329e1/librt-0.15.0-cp315-cp315t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:39ffd14646190c454f0d86e0d256b33f00a87a26ab410e619773b841d0e41416", size = 704313, upload-time = "2026-08-07T10:48:57.46Z" }, + { url = "https://files.pythonhosted.org/packages/2d/53/b34fa9d0ff00f136f4d58ebb4c411ff634baed1eb412bb602a2bc8dcafcb/librt-0.15.0-cp315-cp315t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c47318cd3a61401452de11282242937e3e057c4fd3dbaf601e269d0928a06c0a", size = 729847, upload-time = "2026-08-07T10:48:59.231Z" }, + { url = "https://files.pythonhosted.org/packages/86/ac/fa4d7a424665040e95baf480a6d523446057684b6758624c85338e8a23b2/librt-0.15.0-cp315-cp315t-manylinux_2_34_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:a56a1d4f859a82ca5b99fc4b82c9b027b15e3c455c5cd99e7d0719f27bb20b6c", size = 742736, upload-time = "2026-08-07T10:49:01.151Z" }, + { url = "https://files.pythonhosted.org/packages/8a/f1/e17a9bb5de6fb8c3186ed1a7d68d21618b027ac2d3633e03d3b6109c67ae/librt-0.15.0-cp315-cp315t-musllinux_1_2_aarch64.whl", hash = "sha256:077471b3182db4e17c36ae91555f36a4d2c00080b267f749bcad34a478a9a302", size = 763454, upload-time = "2026-08-07T10:49:03.039Z" }, + { url = "https://files.pythonhosted.org/packages/1d/ec/ecd02cd30935b931b9cdbfed6ab5a099c51b280b4e7baa274da80978ed27/librt-0.15.0-cp315-cp315t-musllinux_1_2_i686.whl", hash = "sha256:411ca4d1b905b860ceba7570dd6717a71dedaddcc4b0f77ece710aa41ee11f8d", size = 743296, upload-time = "2026-08-07T10:49:04.941Z" }, + { url = "https://files.pythonhosted.org/packages/e6/b5/b3c2b8353ce820a4854f78d19321344242f89fa71c975b71132ba9bf242a/librt-0.15.0-cp315-cp315t-musllinux_1_2_ppc64le.whl", hash = "sha256:1256589e0b0adb31751d685a68bce29d73407ddf4ef05d4188f49d5dcf9566d9", size = 756217, upload-time = "2026-08-07T10:49:06.825Z" }, + { url = "https://files.pythonhosted.org/packages/3c/52/6cc22542ba59146b05cca2a656f9ff8bb67e38e63d12c3b0cc183d837bf1/librt-0.15.0-cp315-cp315t-musllinux_1_2_riscv64.whl", hash = "sha256:f42b74a53e5f26a0ba0007411a7455b66c67ce4022a39cc1f56fc4efd65bcbab", size = 741934, upload-time = "2026-08-07T10:49:08.839Z" }, + { url = "https://files.pythonhosted.org/packages/40/32/a04b72b1aa86e3be23b2ecff8c1aad2dcc955bd3956d6d26e7e34267e57a/librt-0.15.0-cp315-cp315t-musllinux_1_2_x86_64.whl", hash = "sha256:291bf73caf78b9e88d6fae9bfd693207ff7d832e2fdbe2cf8e746bc13f5f892b", size = 783763, upload-time = "2026-08-07T10:49:10.661Z" }, ] [[package]] @@ -2625,42 +2717,48 @@ wheels = [ [[package]] name = "mypy" -version = "1.20.2" +version = "2.3.1" source = { registry = "https://pypi.org/simple" } dependencies = [ + { name = "ast-serialize" }, { name = "librt", marker = "platform_python_implementation != 'PyPy'" }, { name = "mypy-extensions" }, { name = "pathspec" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/04/af/e3d4b3e9ec91a0ff9aabfdb38692952acf49bbb899c2e4c29acb3a6da3ae/mypy-1.20.2.tar.gz", hash = "sha256:e8222c26daaafd9e8626dec58ae36029f82585890589576f769a650dd20fd665", size = 3817349, upload-time = "2026-04-21T17:12:28.473Z" } +sdist = { url = "https://files.pythonhosted.org/packages/82/6a/878cc1097d4035f82bd516658d0c528d2a9955bc7b363afcbd0b07fea11b/mypy-2.3.1.tar.gz", hash = "sha256:47c1b1207258513a9d93495f69c8be9de73916186f0e52703e8c461b7a623419", size = 3992554, upload-time = "2026-08-15T03:03:38.549Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/1f/4d/9ebeae211caccbdaddde7ed5e31dfcf57faac66be9b11deb1dc6526c8078/mypy-1.20.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4077797a273e56e8843d001e9dfe4ba10e33323d6ade647ff260e5cd97d9758c", size = 14371307, upload-time = "2026-04-21T17:08:56.442Z" }, - { url = "https://files.pythonhosted.org/packages/95/d7/93473d34b61f04fac1aecc01368485c89c5c4af7a4b9a0cab5d77d04b63f/mypy-1.20.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:cdecf62abcc4292500d7858aeae87a1f8f1150f4c4dd08fb0b336ee79b2a6df3", size = 13258917, upload-time = "2026-04-21T17:05:50.978Z" }, - { url = "https://files.pythonhosted.org/packages/e2/30/3dd903e8bafb7b5f7bf87fcd58f8382086dea2aa19f0a7b357f21f63071b/mypy-1.20.2-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c566c3a88b6ece59b3d70f65bedef17304f48eb52ff040a6a18214e1917b3254", size = 13700516, upload-time = "2026-04-21T17:11:33.161Z" }, - { url = "https://files.pythonhosted.org/packages/07/05/c61a140aba4c729ac7bc99ae26fc627c78a6e08f5b9dd319244ea71a3d7e/mypy-1.20.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0deb80d062b2479f2c87ae568f89845afc71d11bc41b04179e58165fd9f31e98", size = 14562889, upload-time = "2026-04-21T17:05:27.674Z" }, - { url = "https://files.pythonhosted.org/packages/fd/87/da78243742ffa8a36d98c3010f0d829f93d5da4e6786f1a1a6f2ad616502/mypy-1.20.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:bba9ad231e92a3e424b3e56b65aa17704993425bba97e302c832f9466bb85bac", size = 14803844, upload-time = "2026-04-21T17:10:06.2Z" }, - { url = "https://files.pythonhosted.org/packages/71/4e/7560e4528db9e9b147e4c0f22660466bf30a0a1fe3d63d1b9d3b0fd354ee/mypy-1.20.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:4dbfcf869f6b0517f70cf0030ba6ea1d6645e132337a7d5204a18d8d5636c02b", size = 14539393, upload-time = "2026-04-21T17:07:12.52Z" }, - { url = "https://files.pythonhosted.org/packages/32/d9/34a5efed8124f5a9234f55ac6a4ced4201e2c5b81e1109c49ad23190ec8c/mypy-1.20.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:4b6481b228d072315b053210b01ac320e1be243dc17f9e5887ef167f23f5fae4", size = 13361642, upload-time = "2026-04-21T17:06:53.742Z" }, - { url = "https://files.pythonhosted.org/packages/d1/14/eb377acf78c03c92d566a1510cda8137348215b5335085ef662ab82ecd3a/mypy-1.20.2-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:34397cdced6b90b836e38182076049fdb41424322e0b0728c946b0939ebdf9f6", size = 13740347, upload-time = "2026-04-21T17:12:04.73Z" }, - { url = "https://files.pythonhosted.org/packages/b9/94/7e4634a32b641aa1c112422eed1bbece61ee16205f674190e8b536f884de/mypy-1.20.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a5da6976f20cae27059ea8d0c86e7cef3de720e04c4bb9ee18e3690fdb792066", size = 14734042, upload-time = "2026-04-21T17:07:43.16Z" }, - { url = "https://files.pythonhosted.org/packages/7a/f3/f7e62395cb7f434541b4491a01149a4439e28ace4c0c632bbf5431e92d1f/mypy-1.20.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:56908d7e08318d39f85b1f0c6cfd47b0cac1a130da677630dac0de3e0623e102", size = 14964958, upload-time = "2026-04-21T17:11:00.665Z" }, - { url = "https://files.pythonhosted.org/packages/5b/c4/b93812d3a192c9bcf5df405bd2f30277cd0e48106a14d1023c7f6ed6e39b/mypy-1.20.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:edfbfca868cdd6bd8d974a60f8a3682f5565d3f5c99b327640cedd24c4264026", size = 14524670, upload-time = "2026-04-21T17:10:30.737Z" }, - { url = "https://files.pythonhosted.org/packages/f3/47/42c122501bff18eaf1e8f457f5c017933452d8acdc52918a9f59f6812955/mypy-1.20.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:e2877a02380adfcdbc69071a0f74d6e9dbbf593c0dc9d174e1f223ffd5281943", size = 13336218, upload-time = "2026-04-21T17:08:44.069Z" }, - { url = "https://files.pythonhosted.org/packages/92/8f/75bbc92f41725fbd585fb17b440b1119b576105df1013622983e18640a93/mypy-1.20.2-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7488448de6007cd5177c6cea0517ac33b4c0f5ee9b5e9f2be51ce75511a85517", size = 13724906, upload-time = "2026-04-21T17:08:01.02Z" }, - { url = "https://files.pythonhosted.org/packages/a1/32/4c49da27a606167391ff0c39aa955707a00edc500572e562f7c36c08a71f/mypy-1.20.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bb9c2fa06887e21d6a3a868762acb82aec34e2c6fd0174064f27c93ede68ad15", size = 14726046, upload-time = "2026-04-21T17:11:22.354Z" }, - { url = "https://files.pythonhosted.org/packages/7f/fc/4e354a1bd70216359deb0c9c54847ee6b32ef78dfb09f5131ff99b494078/mypy-1.20.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:9d56a78b646f2e3daa865bc70cd5ec5a46c50045801ca8ff17a0c43abc97e3ee", size = 14955587, upload-time = "2026-04-21T17:12:16.033Z" }, - { url = "https://files.pythonhosted.org/packages/ae/d1/b4ec96b0ecc620a4443570c6e95c867903428cfcde4206518eafdd5880c3/mypy-1.20.2-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:419413398fe250aae057fd2fe50166b61077083c9b82754c341cf4fd73038f30", size = 14524561, upload-time = "2026-04-21T17:06:27.325Z" }, - { url = "https://files.pythonhosted.org/packages/3a/63/d2c2ff4fa66bc49477d32dfa26e8a167ba803ea6a69c5efb416036909d30/mypy-1.20.2-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:e73c07f23009962885c197ccb9b41356a30cc0e5a1d0c2ea8fd8fb1362d7f924", size = 13363883, upload-time = "2026-04-21T17:11:11.239Z" }, - { url = "https://files.pythonhosted.org/packages/2a/56/983916806bf4eddeaaa2c9230903c3669c6718552a921154e1c5182c701f/mypy-1.20.2-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0c64e5973df366b747646fc98da921f9d6eba9716d57d1db94a83c026a08e0fb", size = 13742945, upload-time = "2026-04-21T17:08:34.181Z" }, - { url = "https://files.pythonhosted.org/packages/19/65/0cd9285ab010ee8214c83d67c6b49417c40d86ce46f1aa109457b5a9b8d7/mypy-1.20.2-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5a65aa591af023864fd08a97da9974e919452cfe19cb146c8a5dc692626445dc", size = 14706163, upload-time = "2026-04-21T17:05:15.51Z" }, - { url = "https://files.pythonhosted.org/packages/94/97/48ff3b297cafcc94d185243a9190836fb1b01c1b0918fff64e941e973cc9/mypy-1.20.2-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:4fef51b01e638974a6e69885687e9bd40c8d1e09a6cd291cca0619625cf1f558", size = 14938677, upload-time = "2026-04-21T17:05:39.562Z" }, - { url = "https://files.pythonhosted.org/packages/4e/a1/9d93a7d0b5859af0ead82b4888b46df6c8797e1bc5e1e262a08518c6d48e/mypy-1.20.2-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:2de3dcea53babc1c3237a19002bc3d228ce1833278f093b8d619e06e7cc79609", size = 15549002, upload-time = "2026-04-21T17:08:23.107Z" }, - { url = "https://files.pythonhosted.org/packages/00/d2/09a6a10ee1bf0008f6c144d9676f2ca6a12512151b4e0ad0ff6c4fac5337/mypy-1.20.2-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:52b176444e2e5054dfcbcb8c75b0b719865c96247b37407184bbfca5c353f2c2", size = 14401942, upload-time = "2026-04-21T17:07:31.837Z" }, - { url = "https://files.pythonhosted.org/packages/57/da/9594b75c3c019e805250bed3583bdf4443ff9e6ef08f97e39ae308cb06f2/mypy-1.20.2-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:688c3312e5dadb573a2c69c82af3a298d43ecf9e6d264e0f95df960b5f6ac19c", size = 15041649, upload-time = "2026-04-21T17:09:34.653Z" }, - { url = "https://files.pythonhosted.org/packages/97/77/f75a65c278e6e8eba2071f7f5a90481891053ecc39878cc444634d892abe/mypy-1.20.2-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:29752dbbf8cc53f89f6ac096d363314333045c257c9c75cbd189ca2de0455744", size = 15864588, upload-time = "2026-04-21T17:11:44.936Z" }, - { url = "https://files.pythonhosted.org/packages/d7/46/1a4e1c66e96c1a3246ddf5403d122ac9b0a8d2b7e65730b9d6533ba7a6d3/mypy-1.20.2-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:803203d2b6ea644982c644895c2f78b28d0e208bba7b27d9b921e0ec5eb207c6", size = 16093956, upload-time = "2026-04-21T17:10:17.683Z" }, - { url = "https://files.pythonhosted.org/packages/28/9a/f23c163e25b11074188251b0b5a0342625fc1cdb6af604757174fa9acc9b/mypy-1.20.2-py3-none-any.whl", hash = "sha256:a94c5a76ab46c5e6257c7972b6c8cff0574201ca7dc05647e33e795d78680563", size = 2637314, upload-time = "2026-04-21T17:05:54.5Z" }, + { url = "https://files.pythonhosted.org/packages/a4/be/c624d4241484f37dc62839e177ab607a9b8b3e96f0866544ca99e8e41d51/mypy-2.3.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:94f04929f1c44c35fb0061e912087edaf504acede963a4a7d00680bd089d8531", size = 13936739, upload-time = "2026-08-15T03:03:26.475Z" }, + { url = "https://files.pythonhosted.org/packages/53/84/e3cf72f90dce5960871c82551c8fba6da05fc1018f79be41c047bd126bdd/mypy-2.3.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f5d716048611e85ca9eefb2e1baa5d73ede389b5820ded260ea27c757d667af8", size = 14166460, upload-time = "2026-08-15T03:01:50.565Z" }, + { url = "https://files.pythonhosted.org/packages/4a/ff/6b97d58aa0f79a5ab9b472db1f6d6df1b11a51d74d0c08ab3760d3a613ba/mypy-2.3.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b091a455111214cb5c9d54a57b9618e9a49f9fe2a42e4e1ac86e9d104ed96ce8", size = 15100476, upload-time = "2026-08-15T03:03:12.079Z" }, + { url = "https://files.pythonhosted.org/packages/da/f0/cbb4b7d2ae3ac635f6b4f2d9b04070b8a92edf50da599d3b39e5ed109001/mypy-2.3.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:df12e20c9efd614738c71b390007ecd0181125afc4ccafca04d78a1d2eed2c01", size = 15347826, upload-time = "2026-08-15T03:03:02.856Z" }, + { url = "https://files.pythonhosted.org/packages/85/da/d6effc4f808a842d91edc22535dc9e799d2ff6e91449168b7f47a0771f54/mypy-2.3.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a32bbbb940af990d3be0b8af321c7b6815bb1b3b48142fe7459b9cc5f58959ff", size = 14047547, upload-time = "2026-08-15T03:02:57.707Z" }, + { url = "https://files.pythonhosted.org/packages/e4/e6/478229701dab76f26485fc8ff5d6f241f393da22447400bbc56f6946aebe/mypy-2.3.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ff715e45b2231a8e85de1d163d1b42791e4d7aab8f5145f85fee1b710b735aff", size = 14216515, upload-time = "2026-08-15T03:01:26.496Z" }, + { url = "https://files.pythonhosted.org/packages/8d/fe/7c42327a3b21e84681f691982cbfe43f334a3685f3b683b72c376476c4fa/mypy-2.3.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:858fc57d3d91fa728e33e7ad71def60fc6272694607b306cd3292db53ae39080", size = 15307789, upload-time = "2026-08-15T03:03:31.62Z" }, + { url = "https://files.pythonhosted.org/packages/59/f4/7e597edbe01b5a56fa958ce541302dcaabfed979966f1dffedbea0ea0fc2/mypy-2.3.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:851833db876e7b650f93719c74b7879a08e338979c96054fdfc3bfd90a486355", size = 15548831, upload-time = "2026-08-15T03:03:15.55Z" }, + { url = "https://files.pythonhosted.org/packages/de/cf/862010ee800ca9c2bd0c4c0dacf0f092e5411824a09b8f97ad4be8fe250e/mypy-2.3.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:114dff494000f18bd10d5d95d84b8567b26da60279ecbe838131841df20e635d", size = 13964542, upload-time = "2026-08-15T03:02:21.43Z" }, + { url = "https://files.pythonhosted.org/packages/75/5a/3f3a2107b41e3e92e617e25daaee121413b91e9784bea733131ed4fecc5d/mypy-2.3.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c8637731bb5eee3671eb2c3200827aa3564ed8a9309ecee4d1afe77e6d031bdb", size = 14168922, upload-time = "2026-08-15T03:03:00.351Z" }, + { url = "https://files.pythonhosted.org/packages/8b/41/04dc4fe7e63d7820fa4eff272e95157d30cbea921388f3ab3fe77794cd0b/mypy-2.3.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1c80fbc405ed8020f5ff3802dc18cf060197bcdd3fbdd6a26ef2fd34dfdd5226", size = 15244791, upload-time = "2026-08-15T03:02:31.089Z" }, + { url = "https://files.pythonhosted.org/packages/96/fc/c3053b26b9054949285aa868cb6af8c10e7591541cacd79c5dcc06a1fcf9/mypy-2.3.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:84081f538ce27375045c02e3d7f81bd11d853400621ae245d87ce7b6c420ec74", size = 15501627, upload-time = "2026-08-15T03:03:34.128Z" }, + { url = "https://files.pythonhosted.org/packages/be/c4/42a49d44aeff804edf1b19acce0b49e8bd1a9c57dee9605dd8d980aa43d7/mypy-2.3.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:192abaedf75da1bc0b1cef104927e70ec49c1ef0031cc4825c7ee10a438ed24d", size = 13986778, upload-time = "2026-08-15T03:01:33.69Z" }, + { url = "https://files.pythonhosted.org/packages/45/13/9331fd2dfed7194d66c5304072894a8be3e51e9deda6863c1eceaa35a43d/mypy-2.3.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:bf678dffd16efcda2c15cbd30e9ecc0081388e29ea23687a88e686ed92638dc3", size = 14188467, upload-time = "2026-08-15T03:02:40.554Z" }, + { url = "https://files.pythonhosted.org/packages/78/f7/f4a34edab45667c5465855dc585a20e87978ffa8aee711445b7239d120c6/mypy-2.3.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8e036f06b41630f4c8a1d48f9ac6aa26acc65f8be089973f5519da643318f03f", size = 15225538, upload-time = "2026-08-15T03:03:09.761Z" }, + { url = "https://files.pythonhosted.org/packages/40/05/534b3590757bd05794f73e07f6666c2a77b8597ffed795c94ce570096aa0/mypy-2.3.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:71af9c8a894e862b58e92abb08e53b05a384a1e5e5d6dc7cda59126211a53d82", size = 15480805, upload-time = "2026-08-15T03:01:41.134Z" }, + { url = "https://files.pythonhosted.org/packages/55/da/bdfba852e2562f599624af5bb7d29e36b0b4f526f2b8bac85efe0dd1803d/mypy-2.3.1-cp314-cp314-pyemscripten_2026_0_wasm32.whl", hash = "sha256:3c80cd23d85368bdd9f37d5231dfd97d35bcbf5bf41af96ef3a9b078ad1957f9", size = 7761712, upload-time = "2026-08-15T03:02:36.008Z" }, + { url = "https://files.pythonhosted.org/packages/82/c7/f80f4e46c0b9a00eb5f78a79d49dda8bdf56a5230f7257fb33e76be04da7/mypy-2.3.1-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:e5f1c50bb05b64e2026b52867e8d21106f01313c744a2c4ecc34c90d12e8d6e2", size = 15121308, upload-time = "2026-08-15T03:01:46.053Z" }, + { url = "https://files.pythonhosted.org/packages/5d/74/9b04f17c7074cc5188f02fb63a2ca1d43fedf479e84fe3091c39061a1d7f/mypy-2.3.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:667196b352f4cf304ded4c10f90cfc179263a1acfb3cdcfa984bdfd340d498bc", size = 15536590, upload-time = "2026-08-15T03:01:35.941Z" }, + { url = "https://files.pythonhosted.org/packages/26/04/c837ef6208e567774e2ed1f863f8ba6ec4817b1b6dd426315e5d559b6ec9/mypy-2.3.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b9c53e395c12cad2c6d4b67d5da7c6057638a132d85c08b73646b18f802a0045", size = 16791074, upload-time = "2026-08-15T03:01:31.073Z" }, + { url = "https://files.pythonhosted.org/packages/37/68/48730230afa45192d5bd429a6a2ff24a6f8dedda90fdf2b221792b54518f/mypy-2.3.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:18162b128c3f9c703cd35f5537446900b0d21a2549aa7a95d21380d2ef643fb0", size = 17069183, upload-time = "2026-08-15T03:02:28.566Z" }, + { url = "https://files.pythonhosted.org/packages/ee/f7/41e7f2d8117fbc7a7587286162ffe2f688984b69c46ed63cf5f2e4fc3bae/mypy-2.3.1-cp315-cp315-macosx_11_0_arm64.whl", hash = "sha256:6f041a6de52c9217ca125e78ba0a335cb7fd98a1c0580978e49ab2b126f70b57", size = 13990694, upload-time = "2026-08-15T03:03:21.919Z" }, + { url = "https://files.pythonhosted.org/packages/06/85/8f665811a0c8f3bf6fa1d9acd665ec2d97a2bcc453ae68dcd92340941cd6/mypy-2.3.1-cp315-cp315-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5159ae60f5dbc3a498af5ba8365505808ac8031bc63f9e00304ad545d40bdd9b", size = 14203518, upload-time = "2026-08-15T03:01:48.455Z" }, + { url = "https://files.pythonhosted.org/packages/2d/82/91b866c8546b120bff83b73a439d90d2d63ef3aff113599e6b8e4d566848/mypy-2.3.1-cp315-cp315-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:47a8a7a0a7f6f6e63995c0ac36fa0c07b127413fdc81f0439b7f3dccafd33561", size = 15220224, upload-time = "2026-08-15T03:01:23.577Z" }, + { url = "https://files.pythonhosted.org/packages/c8/78/c226c99208ee40de7c768369fa533f933afa003dfdc606ff021450724e91/mypy-2.3.1-cp315-cp315-musllinux_1_2_x86_64.whl", hash = "sha256:2329c0501293d4e1f33bc15d04d6304d65a1cdda967ee93a05c1e681a3923133", size = 15501512, upload-time = "2026-08-15T03:02:09.453Z" }, + { url = "https://files.pythonhosted.org/packages/a9/e7/7cfb3f106c393979f4cc37ad6c0586044d50401e3c35b0c003e4f3ba6bc9/mypy-2.3.1-cp315-cp315-pyemscripten_2026_5_wasm32.whl", hash = "sha256:bb26deed807bdb0457cf3e3f1cd7c4a1cf9d66864eaf1b4a61e06805d4c6b1f9", size = 7761913, upload-time = "2026-08-15T03:01:55.65Z" }, + { url = "https://files.pythonhosted.org/packages/10/ce/53be21f2d4adfcd26f63f1184a13ed797015ab463853f117e2e11e4d726f/mypy-2.3.1-cp315-cp315t-macosx_11_0_arm64.whl", hash = "sha256:ef0c6335cda9d807f8193d8ff6204a72bc909fa9882aacbca14f43cdb7188306", size = 15118669, upload-time = "2026-08-15T03:02:51.479Z" }, + { url = "https://files.pythonhosted.org/packages/62/43/20de757cd42989d291a17fad607742c4c74e875ce5cea00e5a5225020ac1/mypy-2.3.1-cp315-cp315t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e598c8c66401d26b150872154a286e6d484cf2789c3bb28a7556806298423021", size = 15545627, upload-time = "2026-08-15T03:03:05.132Z" }, + { url = "https://files.pythonhosted.org/packages/7e/fc/092bdf77ad280eaf501422f0f3b966012b528076cc13e41a774861c907d1/mypy-2.3.1-cp315-cp315t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:eda22fd4efa9dcd39331d1dede9b5b8b8a7fd69af07592e778433da98610d29e", size = 16764157, upload-time = "2026-08-15T03:02:23.958Z" }, + { url = "https://files.pythonhosted.org/packages/94/5c/c94c4d62d909b07f552d0d9356d7acc943825558e602a64822ffa2231536/mypy-2.3.1-cp315-cp315t-musllinux_1_2_x86_64.whl", hash = "sha256:2a0ba2e57847849fb0d1fcdabb32786d223095ed8bc121dfe322bcdb3d9c46bc", size = 17073258, upload-time = "2026-08-15T03:02:14.573Z" }, + { url = "https://files.pythonhosted.org/packages/8e/41/9675c7a1e78edecfba0b79e587a52594c56e189368261dc7b3a7fffb9527/mypy-2.3.1-py3-none-any.whl", hash = "sha256:6ed5c7e3419083268e5c9258bd1c1ef91af44a9e89374dbcaf37b775716e72eb", size = 2754338, upload-time = "2026-08-15T03:02:53.4Z" }, ] [[package]] @@ -3807,16 +3905,18 @@ wheels = [ [[package]] name = "pyrefly" -version = "0.62.0" +version = "1.3.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/bb/ad/8874ed25781e7dd561c6d75fb4a7becf10a18d75b074f25b845cc334f781/pyrefly-0.62.0.tar.gz", hash = "sha256:da1fbe1075dc1e6c8e3134e9370b0a0e7a296061d782cca5bf83dbb8e4c10d7c", size = 5537672, upload-time = "2026-04-20T17:12:15.718Z" } +sdist = { url = "https://files.pythonhosted.org/packages/4c/7e/082cc1b392318bacfbc087732524f3e089e9e7fe45b7645c4649b6f1f1e9/pyrefly-1.3.1.tar.gz", hash = "sha256:b774f1dfac82867fc16fe2175d80a630e2a72a6835d5b7e492568d6bfb6b05e7", size = 6679145, upload-time = "2026-09-15T05:09:34.49Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/1b/ea/09bd9da7d5df294db800312fb415be2fefbaa5594178e9e49f44fa071aea/pyrefly-0.62.0-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:9d78ec4f126dee1fa76215b193b964490ce10e62a32d2787a72c51623658b803", size = 13020414, upload-time = "2026-04-20T17:11:43.617Z" }, - { url = "https://files.pythonhosted.org/packages/4b/f0/f84afac4f220c4c8c801b779ee2ff28ad3f7731f4283c2e1b6ee9012e8c2/pyrefly-0.62.0-py3-none-macosx_11_0_arm64.whl", hash = "sha256:2a41a34902d20756264486f9e309f22633d100261bd960feea6e858a098d985d", size = 12515659, upload-time = "2026-04-20T17:11:46.59Z" }, - { url = "https://files.pythonhosted.org/packages/40/0b/620c39cefa9ae1b25ee7a2da9d8d3c278b095649cb8435c5e01ea64f7c17/pyrefly-0.62.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4666c6b65aea662e5f77b64dc91c091b7ea5cede6aa66c0f4cbae26480403583", size = 36228332, upload-time = "2026-04-20T17:11:50.523Z" }, - { url = "https://files.pythonhosted.org/packages/2d/fb/47b8b76438c12761e509a3666cd5a99d4af7f21976ba8385feb475cbfe30/pyrefly-0.62.0-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1aefab798f47d37c13ded791192fee9b39a6d2b12e31f38ae06a1f80c4b26e22", size = 38995741, upload-time = "2026-04-20T17:11:54.702Z" }, - { url = "https://files.pythonhosted.org/packages/55/d2/03bd17673f61147cd5609cd7d6a1455eeccc17a07a7e141ed9931b0c42c0/pyrefly-0.62.0-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8fa986b50d56740da1d7ae7c660a505143cb9d286fa98cc7e5f4a759cc6eaa5d", size = 37205321, upload-time = "2026-04-20T17:11:58.9Z" }, - { url = "https://files.pythonhosted.org/packages/75/14/20ba7b7f2d182f9b7c1e24a3041dac9b5730ae28cfe1614a2c98706650f2/pyrefly-0.62.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:32e9b175805c82ffb967e4708f4910bace7e1a12736907380cc9afdbaabb0efb", size = 41786834, upload-time = "2026-04-20T17:12:03.221Z" }, + { url = "https://files.pythonhosted.org/packages/6b/bc/f09b5bd7eed796349bd93627aa2c3086df7ed0a114dafc3d2b2841599ee7/pyrefly-1.3.1-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:0a2a7dfed824fb066aa8a7c8d856c152b98e998fb84b954d5f892fb9834c0bd1", size = 15090117, upload-time = "2026-09-15T05:08:58.477Z" }, + { url = "https://files.pythonhosted.org/packages/78/24/a31e7de8e0f310c9f0753826d0df8b6a8ff86793941a6bd88ba24b735633/pyrefly-1.3.1-py3-none-macosx_11_0_arm64.whl", hash = "sha256:37a1a1fb41e7190fe3964a877875dd809d6ee2887809e2c3d6e5f25a69805bfd", size = 14430773, upload-time = "2026-09-15T05:09:01.67Z" }, + { url = "https://files.pythonhosted.org/packages/75/e1/022352beb186f36d6213a95a975c42676ee418ff5e730629378d25564c5e/pyrefly-1.3.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:45b7650bc651a5a784701f2fb4f579da9a421c4d1b5fd91f9048f4529e46093c", size = 14877762, upload-time = "2026-09-15T05:09:04.767Z" }, + { url = "https://files.pythonhosted.org/packages/19/2c/d62a1b445aad1fd46375b83393b8a67da53883aeeba73d269ce71b3e8fd1/pyrefly-1.3.1-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ad57f38bc73679c14a5f62995a2bd3bc43649b7270c858487e2eab78a6f95362", size = 16118225, upload-time = "2026-09-15T05:09:07.828Z" }, + { url = "https://files.pythonhosted.org/packages/32/67/3c3fa8a13e3ce8d8322ffb3627255a41a52261f17793e1a24e9214f10857/pyrefly-1.3.1-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3506b1252e9f5d755d0693c5a46d46b85579d36534f6e22a41eb8e098d0dde90", size = 16051197, upload-time = "2026-09-15T05:09:10.81Z" }, + { url = "https://files.pythonhosted.org/packages/19/d1/84f81b9e32288b5d11c75e006f67e0f6b78b85da575673bd1a21524c8172/pyrefly-1.3.1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:39d5a17c1ad655e5f93a6e8e0be90b8db28c6015fe07d6ed4e054891c9e14ef8", size = 15440062, upload-time = "2026-09-15T05:09:14.641Z" }, + { url = "https://files.pythonhosted.org/packages/46/3c/2aa0c5ad6a2957a728bb38cfab70d1e9cafad21b0b1c1d92df74a3cf22bd/pyrefly-1.3.1-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:c61e9dcf888beb81ca0e0c60ea4442640fdcf2f1f65bfe3d9f5d89b85516eb03", size = 14898534, upload-time = "2026-09-15T05:09:17.823Z" }, + { url = "https://files.pythonhosted.org/packages/03/5d/2974f249fb2e285f966485719d977c5a2248cc4866403af94d935775ff15/pyrefly-1.3.1-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:a78eed1c53f37807f0e2997be8edbe833b91eb9915f2cb553a1bdcd599e7105c", size = 15477758, upload-time = "2026-09-15T05:09:20.964Z" }, ] [[package]]