From aad897f16ab97ff42d8da0ce3e9a5e87c8bf12b0 Mon Sep 17 00:00:00 2001 From: Trenton Holmes <797416+stumpylog@users.noreply.github.com> Date: Mon, 7 Sep 2026 20:21:46 -0700 Subject: [PATCH] Updates mypy and pyrefly and their baseline files --- .mypy-baseline.txt | 979 ++++- .pyrefly-baseline.json | 9176 +++++++++++++++++++++------------------- uv.lock | 296 +- 3 files changed, 5736 insertions(+), 4715 deletions(-) diff --git a/.mypy-baseline.txt b/.mypy-baseline.txt index 53cd76c5a..12c68ebdd 100644 --- a/.mypy-baseline.txt +++ b/.mypy-baseline.txt @@ -19,25 +19,25 @@ 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: 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, 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/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] @@ -64,6 +64,7 @@ src/documents/classifier.py:0: error: "None" has no attribute "fit_transform" [ 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: 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] @@ -84,6 +85,7 @@ 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 "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] @@ -113,7 +115,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 +149,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 +195,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 +213,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 +222,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 +235,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 +246,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 +265,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 +301,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,32 +344,6 @@ 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] @@ -383,8 +361,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: 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,71 +371,49 @@ 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 "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: 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 "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: 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: 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: Function is missing a type annotation [no-untyped-def] 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/_schema.py:0: error: Redundant cast to "Path" [redundant-cast] +src/documents/search/_translate.py:0: error: Missing type arguments for generic type "list" [type-arg] +src/documents/search/_translate.py:0: error: Missing type arguments for generic type "list" [type-arg] +src/documents/search/_translate.py:0: error: Missing type arguments for generic type "list" [type-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_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] @@ -536,6 +493,14 @@ 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] @@ -575,7 +540,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,7 +558,6 @@ 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] @@ -603,15 +566,20 @@ src/documents/serialisers.py:0: error: Missing type arguments for generic type " 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 +613,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 +649,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] @@ -710,6 +683,7 @@ src/documents/tests/conftest.py:0: error: Variable "documents.tests.conftest.Use 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/factories.py:0: error: Variable "documents.tests.factories.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] @@ -746,12 +720,42 @@ src/documents/tests/management/test_management_base_cmd.py:0: error: Need type a 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_backend.py:0: error: "DocumentFactory" has no attribute "pk" [attr-defined] +src/documents/tests/search/test_backend.py:0: error: "DocumentFactory" has no attribute "tags" [attr-defined] +src/documents/tests/search/test_backend.py:0: error: "DocumentFactory" has no attribute "tags" [attr-defined] +src/documents/tests/search/test_backend.py:0: error: "UserFactory" has no attribute "groups" [attr-defined] +src/documents/tests/search/test_backend.py:0: error: "UserFactory" has no attribute "groups" [attr-defined] +src/documents/tests/search/test_backend.py:0: error: Argument "user" to "search_ids" of "TantivyBackend" has incompatible type "UserFactory"; expected "AbstractUser | None" [arg-type] +src/documents/tests/search/test_backend.py:0: error: Argument "user" to "search_ids" of "TantivyBackend" has incompatible type "UserFactory"; expected "AbstractUser | None" [arg-type] +src/documents/tests/search/test_backend.py:0: error: Argument "user" to "search_ids" of "TantivyBackend" has incompatible type "UserFactory"; expected "AbstractUser | None" [arg-type] +src/documents/tests/search/test_backend.py:0: error: Argument "user" to "search_ids" of "TantivyBackend" has incompatible type "UserFactory"; expected "AbstractUser | None" [arg-type] +src/documents/tests/search/test_backend.py:0: error: Argument "user" to "search_ids" of "TantivyBackend" has incompatible type "UserFactory"; expected "AbstractUser | None" [arg-type] +src/documents/tests/search/test_backend.py:0: error: Argument 1 to "add_or_update" of "TantivyBackend" has incompatible type "DocumentFactory"; expected "Document" [arg-type] +src/documents/tests/search/test_backend.py:0: error: Argument 1 to "add_or_update" of "TantivyBackend" has incompatible type "DocumentFactory"; expected "Document" [arg-type] +src/documents/tests/search/test_backend.py:0: error: Argument 1 to "add_or_update" of "TantivyBackend" has incompatible type "DocumentFactory"; expected "Document" [arg-type] +src/documents/tests/search/test_backend.py:0: error: Argument 1 to "add_or_update" of "TantivyBackend" has incompatible type "DocumentFactory"; expected "Document" [arg-type] +src/documents/tests/search/test_backend.py:0: error: Argument 1 to "add_or_update" of "TantivyBackend" has incompatible type "DocumentFactory"; expected "Document" [arg-type] +src/documents/tests/search/test_backend.py:0: error: Argument 1 to "add_or_update" of "TantivyBackend" has incompatible type "DocumentFactory"; expected "Document" [arg-type] +src/documents/tests/search/test_backend.py:0: error: Argument 1 to "add_or_update" of "TantivyBackend" has incompatible type "DocumentFactory"; expected "Document" [arg-type] +src/documents/tests/search/test_backend.py:0: error: Argument 3 to "assign_perm" has incompatible type "DocumentFactory"; expected "Model | None" [arg-type] 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_backend.py:0: error: Incompatible type for "owner" of "Document" (got "UserFactory", expected "User | Combinable | None") [misc] +src/documents/tests/search/test_backend.py:0: error: Incompatible type for "owner" of "Document" (got "UserFactory", expected "User | Combinable | None") [misc] +src/documents/tests/search/test_lock_backoff.py:0: error: "DocumentFactory" has no attribute "pk" [attr-defined] +src/documents/tests/search/test_lock_backoff.py:0: error: "DocumentFactory" has no attribute "pk" [attr-defined] +src/documents/tests/search/test_lock_backoff.py:0: error: "DocumentFactory" has no attribute "pk" [attr-defined] +src/documents/tests/search/test_lock_backoff.py:0: error: "DocumentFactory" has no attribute "pk" [attr-defined] +src/documents/tests/search/test_lock_backoff.py:0: error: "DocumentFactory" has no attribute "pk" [attr-defined] +src/documents/tests/search/test_lock_backoff.py:0: error: "DocumentFactory" has no attribute "pk" [attr-defined] +src/documents/tests/search/test_lock_backoff.py:0: error: "DocumentFactory" has no attribute "pk" [attr-defined] +src/documents/tests/search/test_lock_backoff.py:0: error: Argument 1 to "add_or_update" of "TantivyBackend" has incompatible type "DocumentFactory"; expected "Document" [arg-type] +src/documents/tests/search/test_lock_backoff.py:0: error: Argument 1 to "add_or_update" of "TantivyBackend" has incompatible type "DocumentFactory"; expected "Document" [arg-type] +src/documents/tests/search/test_lock_backoff.py:0: error: Argument 1 to "add_or_update" of "WriteBatch" has incompatible type "DocumentFactory"; expected "Document" [arg-type] 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] @@ -770,14 +774,58 @@ src/documents/tests/search/test_query.py:0: error: Unexpected attribute "pk" for 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_translate.py:0: error: "None" object is not iterable [misc] +src/documents/tests/search/test_translate.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/documents/tests/search/test_translate.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/documents/tests/search/test_translate.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/documents/tests/search/test_translate.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/documents/tests/search/test_translate.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/documents/tests/search/test_translate.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/documents/tests/search/test_translate.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/documents/tests/search/test_translate.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/documents/tests/search/test_translate.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/documents/tests/search/test_translate.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/documents/tests/search/test_translate.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/documents/tests/search/test_translate.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/documents/tests/search/test_translate.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/documents/tests/search/test_translate.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/documents/tests/search/test_translate.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/documents/tests/search/test_translate.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/documents/tests/search/test_translate.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/documents/tests/search/test_translate.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/documents/tests/search/test_translate.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/documents/tests/search/test_translate.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/documents/tests/search/test_translate.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/documents/tests/search/test_translate.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/documents/tests/search/test_translate.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/documents/tests/search/test_translate.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/documents/tests/search/test_translate.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/documents/tests/search/test_translate.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/documents/tests/search/test_translate.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/documents/tests/search/test_translate.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/documents/tests/search/test_translate.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/documents/tests/search/test_translate.py:0: error: Function is missing a type annotation [no-untyped-def] +src/documents/tests/search/test_translate.py:0: error: Function is missing a type annotation [no-untyped-def] +src/documents/tests/search/test_translate.py:0: error: Function is missing a type annotation [no-untyped-def] +src/documents/tests/search/test_translate.py:0: error: Function is missing a type annotation [no-untyped-def] 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_admin.py:0: error: UserModelT? has no attribute "pk" [attr-defined] +src/documents/tests/test_admin.py:0: error: UserModelT? has no attribute "pk" [attr-defined] +src/documents/tests/test_admin.py:0: error: UserModelT? has no attribute "username" [attr-defined] +src/documents/tests/test_admin.py:0: error: UserModelT? has no attribute "username" [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_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,20 +864,50 @@ 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: Skipping analyzing "auditlog.models": module is installed, but missing library stubs or py.typed marker [import-untyped] 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: "DocumentFactory" has no attribute "id" [attr-defined] +src/documents/tests/test_api_documents.py:0: error: "DocumentFactory" has no attribute "id" [attr-defined] +src/documents/tests/test_api_documents.py:0: error: "DocumentFactory" has no attribute "tags" [attr-defined] src/documents/tests/test_api_documents.py:0: error: "None" object is not iterable [misc] +src/documents/tests/test_api_documents.py:0: error: "TagFactory" has no attribute "id" [attr-defined] 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 "assign_perm" has incompatible type "DocumentFactory"; expected "Model | None" [arg-type] +src/documents/tests/test_api_documents.py:0: error: Argument 3 to "assign_perm" has incompatible type "DocumentFactory"; expected "Model | None" [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] 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: 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] @@ -861,6 +939,12 @@ 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_post_document_nfc.py:0: error: Function is missing a return type annotation [no-untyped-def] +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_post_document_nfc.py:0: error: Function is missing a type annotation [no-untyped-def] +src/documents/tests/test_api_post_document_nfc.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_api_post_document_nfc.py:0: error: Function is missing a type annotation for one or more parameters [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,6 +982,19 @@ 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: "DocumentFactory" has no attribute "id" [attr-defined] +src/documents/tests/test_api_search.py:0: error: "DocumentFactory" has no attribute "id" [attr-defined] +src/documents/tests/test_api_search.py:0: error: "DocumentFactory" has no attribute "id" [attr-defined] +src/documents/tests/test_api_search.py:0: error: Argument 1 to "add_or_update" of "TantivyBackend" has incompatible type "DocumentFactory"; expected "Document" [arg-type] +src/documents/tests/test_api_search.py:0: error: Argument 1 to "add_or_update" of "TantivyBackend" has incompatible type "DocumentFactory"; expected "Document" [arg-type] +src/documents/tests/test_api_search.py:0: error: Argument 1 to "add_or_update" of "TantivyBackend" has incompatible type "DocumentFactory"; expected "Document" [arg-type] +src/documents/tests/test_api_search.py:0: error: Argument 1 to "add_or_update" of "TantivyBackend" has incompatible type "DocumentFactory"; expected "Document" [arg-type] 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] @@ -912,6 +1009,10 @@ 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_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: "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] @@ -923,12 +1024,22 @@ src/documents/tests/test_api_tasks.py:0: error: "PaperlessTaskFactory" has no at 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: "PaperlessTaskFactory" has no attribute "refresh_from_db" [attr-defined] +src/documents/tests/test_api_tasks.py:0: error: "PaperlessTaskFactory" has no attribute "refresh_from_db" [attr-defined] +src/documents/tests/test_api_tasks.py:0: error: "PaperlessTaskFactory" has no attribute "refresh_from_db" [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_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] @@ -963,6 +1074,9 @@ 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] 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] @@ -1000,9 +1114,12 @@ src/documents/tests/test_bulk_edit.py:0: error: Item "dict[Any, Any]" of "Group 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_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 "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] @@ -1014,6 +1131,7 @@ 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: 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] @@ -1075,8 +1193,6 @@ src/documents/tests/test_consumer_archive.py:0: error: Function is missing a typ 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_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 +1230,26 @@ 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: "DocumentFactory" has no attribute "tags" [attr-defined] +src/documents/tests/test_filepath_nfc.py:0: error: "DocumentFactory" has no attribute "tags" [attr-defined] +src/documents/tests/test_filepath_nfc.py:0: error: Argument 1 to "generate_filename" has incompatible type "DocumentFactory"; expected "Document" [arg-type] +src/documents/tests/test_filepath_nfc.py:0: error: Argument 1 to "generate_filename" has incompatible type "DocumentFactory"; expected "Document" [arg-type] +src/documents/tests/test_filepath_nfc.py:0: error: Argument 1 to "generate_filename" has incompatible type "DocumentFactory"; expected "Document" [arg-type] +src/documents/tests/test_filepath_nfc.py:0: error: Argument 1 to "generate_filename" has incompatible type "DocumentFactory"; expected "Document" [arg-type] +src/documents/tests/test_filepath_nfc.py:0: error: Argument 1 to "generate_filename" has incompatible type "DocumentFactory"; expected "Document" [arg-type] +src/documents/tests/test_filepath_nfc.py:0: error: Argument 1 to "generate_filename" has incompatible type "DocumentFactory"; expected "Document" [arg-type] +src/documents/tests/test_filepath_nfc.py:0: error: Argument 1 to "generate_filename" has incompatible type "DocumentFactory"; expected "Document" [arg-type] +src/documents/tests/test_filepath_nfc.py:0: error: Argument 1 to "generate_filename" has incompatible type "DocumentFactory"; expected "Document" [arg-type] +src/documents/tests/test_filepath_nfc.py:0: error: Argument 1 to "generate_filename" has incompatible type "DocumentFactory"; expected "Document" [arg-type] +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,6 +1271,11 @@ 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_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: "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] @@ -1150,6 +1291,32 @@ src/documents/tests/test_management_retagger.py:0: error: Incompatible return va 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_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: 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_migration_saved_view_visibility.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] @@ -1178,13 +1345,160 @@ src/documents/tests/test_models.py:0: error: Item "None" of "Document | None" ha 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: "CorrespondentFactory" has no attribute "pk" [attr-defined] +src/documents/tests/test_permission_filtering_security.py:0: error: "CorrespondentFactory" has no attribute "pk" [attr-defined] +src/documents/tests/test_permission_filtering_security.py:0: error: "DocumentFactory" has no attribute "delete" [attr-defined] +src/documents/tests/test_permission_filtering_security.py:0: error: "DocumentFactory" has no attribute "delete" [attr-defined] +src/documents/tests/test_permission_filtering_security.py:0: error: "DocumentFactory" has no attribute "delete" [attr-defined] +src/documents/tests/test_permission_filtering_security.py:0: error: "DocumentFactory" has no attribute "delete" [attr-defined] +src/documents/tests/test_permission_filtering_security.py:0: error: "DocumentFactory" has no attribute "delete" [attr-defined] +src/documents/tests/test_permission_filtering_security.py:0: error: "DocumentFactory" has no attribute "delete" [attr-defined] +src/documents/tests/test_permission_filtering_security.py:0: error: "DocumentFactory" has no attribute "delete" [attr-defined] +src/documents/tests/test_permission_filtering_security.py:0: error: "DocumentFactory" has no attribute "delete" [attr-defined] +src/documents/tests/test_permission_filtering_security.py:0: error: "DocumentFactory" has no attribute "deleted_at" [attr-defined] +src/documents/tests/test_permission_filtering_security.py:0: error: "DocumentFactory" has no attribute "pk" [attr-defined] +src/documents/tests/test_permission_filtering_security.py:0: error: "DocumentFactory" has no attribute "pk" [attr-defined] +src/documents/tests/test_permission_filtering_security.py:0: error: "DocumentFactory" has no attribute "pk" [attr-defined] +src/documents/tests/test_permission_filtering_security.py:0: error: "DocumentFactory" has no attribute "pk" [attr-defined] +src/documents/tests/test_permission_filtering_security.py:0: error: "DocumentFactory" has no attribute "pk" [attr-defined] +src/documents/tests/test_permission_filtering_security.py:0: error: "DocumentFactory" has no attribute "pk" [attr-defined] +src/documents/tests/test_permission_filtering_security.py:0: error: "DocumentFactory" has no attribute "pk" [attr-defined] +src/documents/tests/test_permission_filtering_security.py:0: error: "DocumentFactory" has no attribute "pk" [attr-defined] +src/documents/tests/test_permission_filtering_security.py:0: error: "DocumentFactory" has no attribute "pk" [attr-defined] +src/documents/tests/test_permission_filtering_security.py:0: error: "DocumentFactory" has no attribute "pk" [attr-defined] +src/documents/tests/test_permission_filtering_security.py:0: error: "DocumentFactory" has no attribute "pk" [attr-defined] +src/documents/tests/test_permission_filtering_security.py:0: error: "DocumentFactory" has no attribute "pk" [attr-defined] +src/documents/tests/test_permission_filtering_security.py:0: error: "DocumentFactory" has no attribute "pk" [attr-defined] +src/documents/tests/test_permission_filtering_security.py:0: error: "DocumentFactory" has no attribute "pk" [attr-defined] +src/documents/tests/test_permission_filtering_security.py:0: error: "DocumentFactory" has no attribute "pk" [attr-defined] +src/documents/tests/test_permission_filtering_security.py:0: error: "DocumentFactory" has no attribute "pk" [attr-defined] +src/documents/tests/test_permission_filtering_security.py:0: error: "DocumentFactory" has no attribute "pk" [attr-defined] +src/documents/tests/test_permission_filtering_security.py:0: error: "DocumentFactory" has no attribute "pk" [attr-defined] +src/documents/tests/test_permission_filtering_security.py:0: error: "DocumentFactory" has no attribute "pk" [attr-defined] +src/documents/tests/test_permission_filtering_security.py:0: error: "DocumentFactory" has no attribute "pk" [attr-defined] +src/documents/tests/test_permission_filtering_security.py:0: error: "DocumentFactory" has no attribute "pk" [attr-defined] +src/documents/tests/test_permission_filtering_security.py:0: error: "DocumentFactory" has no attribute "pk" [attr-defined] +src/documents/tests/test_permission_filtering_security.py:0: error: "DocumentFactory" has no attribute "pk" [attr-defined] +src/documents/tests/test_permission_filtering_security.py:0: error: "DocumentFactory" has no attribute "pk" [attr-defined] +src/documents/tests/test_permission_filtering_security.py:0: error: "DocumentFactory" has no attribute "pk" [attr-defined] +src/documents/tests/test_permission_filtering_security.py:0: error: "DocumentFactory" has no attribute "pk" [attr-defined] +src/documents/tests/test_permission_filtering_security.py:0: error: "DocumentFactory" has no attribute "pk" [attr-defined] +src/documents/tests/test_permission_filtering_security.py:0: error: "DocumentFactory" has no attribute "pk" [attr-defined] +src/documents/tests/test_permission_filtering_security.py:0: error: "DocumentFactory" has no attribute "pk" [attr-defined] +src/documents/tests/test_permission_filtering_security.py:0: error: "DocumentFactory" has no attribute "pk" [attr-defined] +src/documents/tests/test_permission_filtering_security.py:0: error: "DocumentFactory" has no attribute "pk" [attr-defined] +src/documents/tests/test_permission_filtering_security.py:0: error: "DocumentFactory" has no attribute "refresh_from_db" [attr-defined] +src/documents/tests/test_permission_filtering_security.py:0: error: "DocumentFactory" has no attribute "source_path"; maybe "storage_path"? [attr-defined] +src/documents/tests/test_permission_filtering_security.py:0: error: "DocumentTypeFactory" has no attribute "pk" [attr-defined] +src/documents/tests/test_permission_filtering_security.py:0: error: "DocumentTypeFactory" has no attribute "pk" [attr-defined] +src/documents/tests/test_permission_filtering_security.py:0: error: "StoragePathFactory" has no attribute "pk" [attr-defined] +src/documents/tests/test_permission_filtering_security.py:0: error: "StoragePathFactory" has no attribute "pk" [attr-defined] +src/documents/tests/test_permission_filtering_security.py:0: error: "TagFactory" has no attribute "owner" [attr-defined] +src/documents/tests/test_permission_filtering_security.py:0: error: "TagFactory" has no attribute "owner" [attr-defined] +src/documents/tests/test_permission_filtering_security.py:0: error: "TagFactory" has no attribute "owner" [attr-defined] +src/documents/tests/test_permission_filtering_security.py:0: error: "TagFactory" has no attribute "owner" [attr-defined] +src/documents/tests/test_permission_filtering_security.py:0: error: "TagFactory" has no attribute "owner" [attr-defined] +src/documents/tests/test_permission_filtering_security.py:0: error: "TagFactory" has no attribute "owner" [attr-defined] +src/documents/tests/test_permission_filtering_security.py:0: error: "TagFactory" has no attribute "owner" [attr-defined] +src/documents/tests/test_permission_filtering_security.py:0: error: "TagFactory" has no attribute "pk" [attr-defined] +src/documents/tests/test_permission_filtering_security.py:0: error: "TagFactory" has no attribute "pk" [attr-defined] +src/documents/tests/test_permission_filtering_security.py:0: error: "TagFactory" has no attribute "pk" [attr-defined] +src/documents/tests/test_permission_filtering_security.py:0: error: "TagFactory" has no attribute "pk" [attr-defined] +src/documents/tests/test_permission_filtering_security.py:0: error: "TagFactory" has no attribute "pk" [attr-defined] +src/documents/tests/test_permission_filtering_security.py:0: error: "TagFactory" has no attribute "pk" [attr-defined] +src/documents/tests/test_permission_filtering_security.py:0: error: "TagFactory" has no attribute "refresh_from_db" [attr-defined] +src/documents/tests/test_permission_filtering_security.py:0: error: "TagFactory" has no attribute "refresh_from_db" [attr-defined] +src/documents/tests/test_permission_filtering_security.py:0: error: "TagFactory" has no attribute "refresh_from_db" [attr-defined] +src/documents/tests/test_permission_filtering_security.py:0: error: "TagFactory" has no attribute "refresh_from_db" [attr-defined] +src/documents/tests/test_permission_filtering_security.py:0: error: "TagFactory" has no attribute "refresh_from_db" [attr-defined] +src/documents/tests/test_permission_filtering_security.py:0: error: "TagFactory" has no attribute "refresh_from_db" [attr-defined] +src/documents/tests/test_permission_filtering_security.py:0: error: "TagFactory" has no attribute "refresh_from_db" [attr-defined] +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 "_get_viewable_duplicates" has incompatible type "DocumentFactory"; expected "Document" [arg-type] +src/documents/tests/test_permission_filtering_security.py:0: error: Argument 1 to "_get_viewable_duplicates" has incompatible type "DocumentFactory"; expected "Document" [arg-type] +src/documents/tests/test_permission_filtering_security.py:0: error: Argument 1 to "match_correspondents" has incompatible type "DocumentFactory"; expected "Document" [arg-type] +src/documents/tests/test_permission_filtering_security.py:0: error: Argument 1 to "match_document_types" has incompatible type "DocumentFactory"; expected "Document" [arg-type] +src/documents/tests/test_permission_filtering_security.py:0: error: Argument 1 to "match_storage_paths" has incompatible type "DocumentFactory"; expected "Document" [arg-type] +src/documents/tests/test_permission_filtering_security.py:0: error: Argument 1 to "match_tags" has incompatible type "DocumentFactory"; expected "Document" [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: Argument 3 to "assign_perm" has incompatible type "CorrespondentFactory"; expected "Model | None" [arg-type] +src/documents/tests/test_permission_filtering_security.py:0: error: Argument 3 to "assign_perm" has incompatible type "DocumentFactory"; expected "Model | None" [arg-type] +src/documents/tests/test_permission_filtering_security.py:0: error: Argument 3 to "assign_perm" has incompatible type "DocumentFactory"; expected "Model | None" [arg-type] +src/documents/tests/test_permission_filtering_security.py:0: error: Argument 3 to "assign_perm" has incompatible type "DocumentFactory"; expected "Model | None" [arg-type] +src/documents/tests/test_permission_filtering_security.py:0: error: Argument 3 to "assign_perm" has incompatible type "DocumentFactory"; expected "Model | None" [arg-type] +src/documents/tests/test_permission_filtering_security.py:0: error: Argument 3 to "assign_perm" has incompatible type "DocumentFactory"; expected "Model | None" [arg-type] +src/documents/tests/test_permission_filtering_security.py:0: error: Argument 3 to "assign_perm" has incompatible type "DocumentFactory"; expected "Model | None" [arg-type] +src/documents/tests/test_permission_filtering_security.py:0: error: Argument 3 to "assign_perm" has incompatible type "DocumentFactory"; expected "Model | None" [arg-type] +src/documents/tests/test_permission_filtering_security.py:0: error: Argument 3 to "assign_perm" has incompatible type "DocumentFactory"; expected "Model | None" [arg-type] +src/documents/tests/test_permission_filtering_security.py:0: error: Argument 3 to "assign_perm" has incompatible type "DocumentFactory"; expected "Model | None" [arg-type] +src/documents/tests/test_permission_filtering_security.py:0: error: Argument 3 to "assign_perm" has incompatible type "DocumentFactory"; expected "Model | None" [arg-type] +src/documents/tests/test_permission_filtering_security.py:0: error: Argument 3 to "assign_perm" has incompatible type "DocumentFactory"; expected "Model | None" [arg-type] +src/documents/tests/test_permission_filtering_security.py:0: error: Argument 3 to "assign_perm" has incompatible type "DocumentFactory"; expected "Model | None" [arg-type] +src/documents/tests/test_permission_filtering_security.py:0: error: Argument 3 to "assign_perm" has incompatible type "DocumentFactory"; expected "Model | None" [arg-type] +src/documents/tests/test_permission_filtering_security.py:0: error: Argument 3 to "assign_perm" has incompatible type "DocumentFactory"; expected "Model | None" [arg-type] +src/documents/tests/test_permission_filtering_security.py:0: error: Argument 3 to "assign_perm" has incompatible type "DocumentFactory"; expected "Model | None" [arg-type] +src/documents/tests/test_permission_filtering_security.py:0: error: Argument 3 to "assign_perm" has incompatible type "DocumentFactory"; expected "Model | None" [arg-type] +src/documents/tests/test_permission_filtering_security.py:0: error: Argument 3 to "assign_perm" has incompatible type "DocumentFactory"; expected "Model | None" [arg-type] +src/documents/tests/test_permission_filtering_security.py:0: error: Argument 3 to "assign_perm" has incompatible type "DocumentTypeFactory"; expected "Model | None" [arg-type] +src/documents/tests/test_permission_filtering_security.py:0: error: Argument 3 to "assign_perm" has incompatible type "StoragePathFactory"; expected "Model | None" [arg-type] +src/documents/tests/test_permission_filtering_security.py:0: error: Argument 3 to "assign_perm" has incompatible type "TagFactory"; expected "Model | None" [arg-type] +src/documents/tests/test_permission_filtering_security.py:0: error: Argument 3 to "assign_perm" has incompatible type "TagFactory"; expected "Model | None" [arg-type] +src/documents/tests/test_permission_filtering_security.py:0: error: Argument 3 to "assign_perm" has incompatible type "TagFactory"; expected "Model | 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_permitted_objects_filter.py:0: error: "TagFactory" has no attribute "pk" [attr-defined] +src/documents/tests/test_permitted_objects_filter.py:0: error: "TagFactory" has no attribute "pk" [attr-defined] +src/documents/tests/test_permitted_objects_filter.py:0: error: "TagFactory" has no attribute "pk" [attr-defined] +src/documents/tests/test_permitted_objects_filter.py:0: error: "TagFactory" has no attribute "pk" [attr-defined] +src/documents/tests/test_permitted_objects_filter.py:0: error: Argument 3 to "assign_perm" has incompatible type "TagFactory"; expected "Model | None" [arg-type] +src/documents/tests/test_permitted_objects_filter.py:0: error: Argument 3 to "assign_perm" has incompatible type "TagFactory"; expected "Model | None" [arg-type] +src/documents/tests/test_permitted_objects_filter.py:0: error: Argument 3 to "assign_perm" has incompatible type "TagFactory"; expected "Model | None" [arg-type] +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,7 +1506,6 @@ 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_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] @@ -1213,6 +1526,8 @@ src/documents/tests/test_task_signals.py:0: error: Function is missing a type an 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] @@ -1228,9 +1543,25 @@ src/documents/tests/test_tasks.py:0: error: Function is missing a type annotatio 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] 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] @@ -1240,7 +1571,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] @@ -1272,6 +1604,8 @@ src/documents/tests/test_workflows.py:0: error: Argument "original_file" to "Con 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 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 +1617,7 @@ 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 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 +1647,10 @@ 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: 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,6 +1661,13 @@ 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] @@ -1360,40 +1706,41 @@ 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: "type[dirs]" has no attribute "archive_dir" [attr-defined] +src/documents/tests/utils.py:0: error: "type[dirs]" has no attribute "archive_dir" [attr-defined] +src/documents/tests/utils.py:0: error: "type[dirs]" has no attribute "archive_dir" [attr-defined] +src/documents/tests/utils.py:0: error: "type[dirs]" has no attribute "consumption_dir" [attr-defined] +src/documents/tests/utils.py:0: error: "type[dirs]" has no attribute "consumption_dir" [attr-defined] +src/documents/tests/utils.py:0: error: "type[dirs]" has no attribute "data_dir" [attr-defined] +src/documents/tests/utils.py:0: error: "type[dirs]" has no attribute "data_dir" [attr-defined] +src/documents/tests/utils.py:0: error: "type[dirs]" has no attribute "data_dir" [attr-defined] +src/documents/tests/utils.py:0: error: "type[dirs]" has no attribute "data_dir" [attr-defined] +src/documents/tests/utils.py:0: error: "type[dirs]" has no attribute "data_dir" [attr-defined] +src/documents/tests/utils.py:0: error: "type[dirs]" has no attribute "index_dir" [attr-defined] +src/documents/tests/utils.py:0: error: "type[dirs]" has no attribute "index_dir" [attr-defined] +src/documents/tests/utils.py:0: error: "type[dirs]" has no attribute "index_dir" [attr-defined] +src/documents/tests/utils.py:0: error: "type[dirs]" has no attribute "logging_dir" [attr-defined] +src/documents/tests/utils.py:0: error: "type[dirs]" has no attribute "logging_dir" [attr-defined] +src/documents/tests/utils.py:0: error: "type[dirs]" has no attribute "logging_dir" [attr-defined] +src/documents/tests/utils.py:0: error: "type[dirs]" has no attribute "media_dir" [attr-defined] +src/documents/tests/utils.py:0: error: "type[dirs]" has no attribute "media_dir" [attr-defined] +src/documents/tests/utils.py:0: error: "type[dirs]" has no attribute "media_dir" [attr-defined] +src/documents/tests/utils.py:0: error: "type[dirs]" has no attribute "media_dir" [attr-defined] +src/documents/tests/utils.py:0: error: "type[dirs]" has no attribute "media_dir" [attr-defined] +src/documents/tests/utils.py:0: error: "type[dirs]" has no attribute "media_dir" [attr-defined] +src/documents/tests/utils.py:0: error: "type[dirs]" has no attribute "originals_dir" [attr-defined] +src/documents/tests/utils.py:0: error: "type[dirs]" has no attribute "originals_dir" [attr-defined] +src/documents/tests/utils.py:0: error: "type[dirs]" has no attribute "originals_dir" [attr-defined] +src/documents/tests/utils.py:0: error: "type[dirs]" has no attribute "scratch_dir" [attr-defined] +src/documents/tests/utils.py:0: error: "type[dirs]" has no attribute "scratch_dir" [attr-defined] +src/documents/tests/utils.py:0: error: "type[dirs]" has no attribute "settings_override" [attr-defined] +src/documents/tests/utils.py:0: error: "type[dirs]" has no attribute "settings_override" [attr-defined] +src/documents/tests/utils.py:0: error: "type[dirs]" has no attribute "static_dir" [attr-defined] +src/documents/tests/utils.py:0: error: "type[dirs]" has no attribute "static_dir" [attr-defined] +src/documents/tests/utils.py:0: error: "type[dirs]" has no attribute "thumbnail_dir" [attr-defined] +src/documents/tests/utils.py:0: error: "type[dirs]" has no attribute "thumbnail_dir" [attr-defined] +src/documents/tests/utils.py:0: error: "type[dirs]" has no attribute "thumbnail_dir" [attr-defined] +src/documents/tests/utils.py:0: error: Argument 1 to "join" of "bytes" has incompatible type "Iterator[bytes] | AsyncIterator[bytes]"; expected "Iterable[Buffer]" [arg-type] 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] @@ -1417,7 +1764,6 @@ src/documents/views.py:0: error: "BulkPermissionMixin" has no attribute "filter_ 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: "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[Model]" has no attribute "objects" [attr-defined] @@ -1427,16 +1773,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 "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 | 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 "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 +1800,14 @@ 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 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 +1878,7 @@ 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 "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] @@ -1547,13 +1902,16 @@ 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] @@ -1572,7 +1930,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 +1970,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 +2013,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 +2048,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 +2070,20 @@ 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", 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] @@ -1731,14 +2093,22 @@ src/paperless/middleware.py:0: error: Function is missing a type annotation [no src/paperless/middleware.py:0: error: Function is missing a type annotation [no-untyped-def] 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] @@ -1747,6 +2117,8 @@ src/paperless/serialisers.py:0: error: Function is missing a type annotation [n 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] @@ -1774,6 +2146,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 +2183,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] @@ -1857,8 +2223,13 @@ src/paperless/tests/test_adapter.py:0: error: Cannot assign to a method [method 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_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] @@ -1873,6 +2244,11 @@ src/paperless/tests/test_migration_replace_skip_archive_file.py:0: error: Functi 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 +2279,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,6 +2295,14 @@ 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] @@ -1928,6 +2314,8 @@ src/paperless/urls.py:0: error: Skipping analyzing "allauth.socialaccount": modu 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/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 | SupportsTrunc" [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] @@ -1947,12 +2335,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 +2361,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 ("title", "tags", "correspondents", "document_types", "storage_paths", ...) [literal-required] +src/paperless_ai/ai_classifier.py:0: error: TypedDict key must be a string literal; expected one of ("title", "tags", "correspondents", "document_types", "storage_paths", ...) [literal-required] +src/paperless_ai/ai_classifier.py:0: error: TypedDict key must be a string literal; expected one of ("title", "tags", "correspondents", "document_types", "storage_paths", ...) [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 +2396,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 +2424,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 +2463,11 @@ 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_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 +2479,86 @@ 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_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_taxonomy.py:0: error: Argument 1 to "build_taxonomy_candidates" has incompatible type "list[SimpleNamespace]"; expected "list[NodeWithScore]" [arg-type] +src/paperless_ai/tests/test_taxonomy.py:0: error: Argument 1 to "build_taxonomy_candidates" has incompatible type "list[SimpleNamespace]"; expected "list[NodeWithScore]" [arg-type] +src/paperless_ai/tests/test_taxonomy.py:0: error: Argument 1 to "build_taxonomy_candidates" has incompatible type "list[SimpleNamespace]"; expected "list[NodeWithScore]" [arg-type] +src/paperless_ai/tests/test_taxonomy.py:0: error: Argument 1 to "build_taxonomy_candidates" has incompatible type "list[SimpleNamespace]"; expected "list[NodeWithScore]" [arg-type] +src/paperless_ai/tests/test_taxonomy.py:0: error: Argument 1 to "build_taxonomy_candidates" has incompatible type "list[SimpleNamespace]"; expected "list[NodeWithScore]" [arg-type] +src/paperless_ai/tests/test_taxonomy.py:0: error: Argument 1 to "build_taxonomy_candidates" has incompatible type "list[SimpleNamespace]"; expected "list[NodeWithScore]" [arg-type] +src/paperless_ai/tests/test_taxonomy.py:0: error: Argument 1 to "build_taxonomy_candidates" has incompatible type "list[SimpleNamespace]"; expected "list[NodeWithScore]" [arg-type] +src/paperless_ai/tests/test_taxonomy.py:0: error: Argument 1 to "build_taxonomy_candidates" has incompatible type "list[SimpleNamespace]"; expected "list[NodeWithScore]" [arg-type] +src/paperless_ai/tests/test_taxonomy.py:0: error: Argument 1 to "build_taxonomy_candidates" has incompatible type "list[SimpleNamespace]"; expected "list[NodeWithScore]" [arg-type] +src/paperless_ai/tests/test_taxonomy.py:0: error: Argument 1 to "build_taxonomy_candidates" has incompatible type "list[SimpleNamespace]"; expected "list[NodeWithScore]" [arg-type] +src/paperless_ai/tests/test_taxonomy.py:0: error: Argument 1 to "build_taxonomy_candidates" has incompatible type "list[SimpleNamespace]"; expected "list[NodeWithScore]" [arg-type] +src/paperless_ai/tests/test_taxonomy.py:0: error: Argument 1 to "build_taxonomy_candidates" has incompatible type "list[SimpleNamespace]"; expected "list[NodeWithScore]" [arg-type] +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 | SupportsTrunc" [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 | SupportsTrunc" [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 | SupportsTrunc" [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 +2584,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 +2593,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 +2607,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] @@ -2148,6 +2649,9 @@ src/paperless_mail/tests/test_api.py:0: error: "MailAccountFactory" has no attri 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] @@ -2169,9 +2673,13 @@ src/paperless_mail/tests/test_api.py:0: error: "ProcessedMailFactory" has no att 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 "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] @@ -2184,52 +2692,58 @@ src/paperless_mail/tests/test_mail.py:0: error: "CorrespondentFactory" has no at 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: "MailRuleFactory" has no attribute "pk" [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 "_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 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 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 [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] +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] @@ -2255,6 +2769,12 @@ 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: Incompatible type for "assign_correspondent" of "MailRule" (got "CorrespondentFactory", expected "Correspondent | Combinable | None") [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: 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 lookup 'rule': (got "MailRuleFactory", expected "MailRule | int | 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] @@ -2270,8 +2790,23 @@ 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: List item 0 has incompatible type "str | None"; expected "str" [list-item] 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: 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_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] @@ -2283,6 +2818,8 @@ src/paperless_mail/tests/test_mail_oauth.py:0: error: Function is missing a 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_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] diff --git a/.pyrefly-baseline.json b/.pyrefly-baseline.json index 87578462d..16e49f17b 100644 --- a/.pyrefly-baseline.json +++ b/.pyrefly-baseline.json @@ -13,9 +13,9 @@ "severity": "error" }, { - "line": 255, + "line": 256, "column": 27, - "stop_line": 255, + "stop_line": 256, "stop_column": 35, "path": "src/documents/admin.py", "code": -2, @@ -24,18 +24,6 @@ "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, @@ -49,21 +37,45 @@ "severity": "error" }, { - "line": 277, - "column": 16, - "stop_line": 277, - "stop_column": 23, - "path": "src/documents/bulk_edit.py", + "line": 77, + "column": 9, + "stop_line": 77, + "stop_column": 21, + "path": "src/documents/bulk_download.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']`", + "name": "bad-override", + "description": "Class member `OriginalsOnlyStrategy.add_document` overrides parent class `BulkArchiveStrategy` in an inconsistent manner\n `OriginalsOnlyStrategy.add_document` has type `(self: OriginalsOnlyStrategy, doc: Document) -> None`, which is not assignable to `(self: OriginalsOnlyStrategy, doc: Document) -> NoReturn`, the type of `BulkArchiveStrategy.add_document`\n Signature mismatch:\n expected: def add_document(self: OriginalsOnlyStrategy, doc: Document) -> NoReturn: ...\n ^^^^^^ return type\n found: def add_document(self: OriginalsOnlyStrategy, doc: Document) -> None: ...\n ^^ return type", + "concise_description": "Class member `OriginalsOnlyStrategy.add_document` overrides parent class `BulkArchiveStrategy` in an inconsistent manner", "severity": "error" }, { - "line": 291, + "line": 82, "column": 9, - "stop_line": 293, + "stop_line": 82, + "stop_column": 21, + "path": "src/documents/bulk_download.py", + "code": -2, + "name": "bad-override", + "description": "Class member `ArchiveOnlyStrategy.add_document` overrides parent class `BulkArchiveStrategy` in an inconsistent manner\n `ArchiveOnlyStrategy.add_document` has type `(self: ArchiveOnlyStrategy, doc: Document) -> None`, which is not assignable to `(self: ArchiveOnlyStrategy, doc: Document) -> NoReturn`, the type of `BulkArchiveStrategy.add_document`\n Signature mismatch:\n expected: def add_document(self: ArchiveOnlyStrategy, doc: Document) -> NoReturn: ...\n ^^^^^^ return type\n found: def add_document(self: ArchiveOnlyStrategy, doc: Document) -> None: ...\n ^^ return type", + "concise_description": "Class member `ArchiveOnlyStrategy.add_document` overrides parent class `BulkArchiveStrategy` in an inconsistent manner", + "severity": "error" + }, + { + "line": 95, + "column": 9, + "stop_line": 95, + "stop_column": 21, + "path": "src/documents/bulk_download.py", + "code": -2, + "name": "bad-override", + "description": "Class member `OriginalAndArchiveStrategy.add_document` overrides parent class `BulkArchiveStrategy` in an inconsistent manner\n `OriginalAndArchiveStrategy.add_document` has type `(self: OriginalAndArchiveStrategy, doc: Document) -> None`, which is not assignable to `(self: OriginalAndArchiveStrategy, doc: Document) -> NoReturn`, the type of `BulkArchiveStrategy.add_document`\n Signature mismatch:\n expected: def add_document(self: OriginalAndArchiveStrategy, doc: Document) -> NoReturn: ...\n ^^^^^^ return type\n found: def add_document(self: OriginalAndArchiveStrategy, doc: Document) -> None: ...\n ^^ return type", + "concise_description": "Class member `OriginalAndArchiveStrategy.add_document` overrides parent class `BulkArchiveStrategy` in an inconsistent manner", + "severity": "error" + }, + { + "line": 303, + "column": 9, + "stop_line": 305, "stop_column": 60, "path": "src/documents/bulk_edit.py", "code": -2, @@ -73,9 +85,9 @@ "severity": "error" }, { - "line": 297, + "line": 309, "column": 32, - "stop_line": 297, + "stop_line": 309, "stop_column": 40, "path": "src/documents/bulk_edit.py", "code": -2, @@ -85,9 +97,9 @@ "severity": "error" }, { - "line": 299, + "line": 311, "column": 9, - "stop_line": 299, + "stop_line": 311, "stop_column": 24, "path": "src/documents/bulk_edit.py", "code": -2, @@ -97,9 +109,9 @@ "severity": "error" }, { - "line": 305, + "line": 317, "column": 21, - "stop_line": 305, + "stop_line": 317, "stop_column": 43, "path": "src/documents/bulk_edit.py", "code": -2, @@ -109,9 +121,9 @@ "severity": "error" }, { - "line": 341, + "line": 353, "column": 5, - "stop_line": 344, + "stop_line": 356, "stop_column": 18, "path": "src/documents/bulk_edit.py", "code": -2, @@ -121,9 +133,45 @@ "severity": "error" }, { - "line": 724, + "line": 681, + "column": 53, + "stop_line": 681, + "stop_column": 71, + "path": "src/documents/bulk_edit.py", + "code": -2, + "name": "bad-assignment", + "description": "`int | None` is not assignable to dict key `archive_serial_number` with type `datetime`\n The declared type does not allow `None`. Consider changing the declared type to `datetime | None`.", + "concise_description": "`int | None` is not assignable to dict key `archive_serial_number` with type `datetime`", + "severity": "error" + }, + { + "line": 696, + "column": 13, + "stop_line": 696, + "stop_column": 40, + "path": "src/documents/bulk_edit.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": 721, + "column": 57, + "stop_line": 721, + "stop_column": 68, + "path": "src/documents/bulk_edit.py", + "code": -2, + "name": "bad-argument-type", + "description": "Argument `list[int]` is not assignable to parameter `args` with type `tuple[Any, ...] | None` in function `celery.app.task.Task.apply_async`", + "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": 839, "column": 33, - "stop_line": 724, + "stop_line": 839, "stop_column": 63, "path": "src/documents/bulk_edit.py", "code": -2, @@ -133,9 +181,9 @@ "severity": "error" }, { - "line": 1032, + "line": 1161, "column": 13, - "stop_line": 1032, + "stop_line": 1161, "stop_column": 64, "path": "src/documents/bulk_edit.py", "code": -2, @@ -145,21 +193,21 @@ "severity": "error" }, { - "line": 180, + "line": 200, "column": 25, - "stop_line": 180, + "stop_line": 200, "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__`", + "description": "Argument `bytes | None` is not assignable to parameter `data` with type `Buffer` in function `binascii.hexlify`\n Protocol `Buffer` requires attribute `__buffer__`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", "concise_description": "Argument `bytes | None` is not assignable to parameter `data` with type `Buffer` in function `binascii.hexlify`", "severity": "error" }, { - "line": 144, + "line": 147, "column": 40, - "stop_line": 144, + "stop_line": 147, "stop_column": 66, "path": "src/documents/classifier.py", "code": -2, @@ -169,9 +217,9 @@ "severity": "error" }, { - "line": 341, + "line": 344, "column": 36, - "stop_line": 343, + "stop_line": 346, "stop_column": 10, "path": "src/documents/classifier.py", "code": -2, @@ -181,9 +229,9 @@ "severity": "error" }, { - "line": 348, + "line": 351, "column": 44, - "stop_line": 348, + "stop_line": 351, "stop_column": 48, "path": "src/documents/classifier.py", "code": -2, @@ -193,9 +241,9 @@ "severity": "error" }, { - "line": 362, + "line": 365, "column": 51, - "stop_line": 364, + "stop_line": 367, "stop_column": 24, "path": "src/documents/classifier.py", "code": -2, @@ -205,9 +253,9 @@ "severity": "error" }, { - "line": 367, + "line": 370, "column": 42, - "stop_line": 367, + "stop_line": 370, "stop_column": 88, "path": "src/documents/classifier.py", "code": -2, @@ -217,9 +265,9 @@ "severity": "error" }, { - "line": 466, + "line": 469, "column": 18, - "stop_line": 466, + "stop_line": 469, "stop_column": 42, "path": "src/documents/classifier.py", "code": -2, @@ -229,9 +277,9 @@ "severity": "error" }, { - "line": 472, + "line": 475, "column": 26, - "stop_line": 472, + "stop_line": 475, "stop_column": 44, "path": "src/documents/classifier.py", "code": -2, @@ -241,9 +289,9 @@ "severity": "error" }, { - "line": 529, + "line": 532, "column": 22, - "stop_line": 529, + "stop_line": 532, "stop_column": 52, "path": "src/documents/classifier.py", "code": -2, @@ -253,9 +301,21 @@ "severity": "error" }, { - "line": 564, + "line": 538, + "column": 26, + "stop_line": 538, + "stop_column": 56, + "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": 574, "column": 24, - "stop_line": 564, + "stop_line": 574, "stop_column": 61, "path": "src/documents/classifier.py", "code": -2, @@ -277,9 +337,9 @@ "severity": "error" }, { - "line": 207, + "line": 200, "column": 26, - "stop_line": 207, + "stop_line": 200, "stop_column": 35, "path": "src/documents/consumer.py", "code": -2, @@ -289,9 +349,9 @@ "severity": "error" }, { - "line": 209, + "line": 202, "column": 9, - "stop_line": 209, + "stop_line": 202, "stop_column": 33, "path": "src/documents/consumer.py", "code": -2, @@ -301,9 +361,9 @@ "severity": "error" }, { - "line": 211, + "line": 204, "column": 25, - "stop_line": 211, + "stop_line": 204, "stop_column": 38, "path": "src/documents/consumer.py", "code": -2, @@ -313,9 +373,9 @@ "severity": "error" }, { - "line": 211, + "line": 204, "column": 51, - "stop_line": 211, + "stop_line": 204, "stop_column": 65, "path": "src/documents/consumer.py", "code": -2, @@ -325,9 +385,9 @@ "severity": "error" }, { - "line": 221, + "line": 214, "column": 9, - "stop_line": 221, + "stop_line": 214, "stop_column": 24, "path": "src/documents/consumer.py", "code": -2, @@ -337,9 +397,9 @@ "severity": "error" }, { - "line": 227, + "line": 220, "column": 22, - "stop_line": 227, + "stop_line": 220, "stop_column": 35, "path": "src/documents/consumer.py", "code": -2, @@ -349,9 +409,9 @@ "severity": "error" }, { - "line": 227, + "line": 220, "column": 48, - "stop_line": 227, + "stop_line": 220, "stop_column": 61, "path": "src/documents/consumer.py", "code": -2, @@ -361,9 +421,9 @@ "severity": "error" }, { - "line": 228, + "line": 221, "column": 29, - "stop_line": 228, + "stop_line": 221, "stop_column": 42, "path": "src/documents/consumer.py", "code": -2, @@ -373,9 +433,9 @@ "severity": "error" }, { - "line": 229, + "line": 222, "column": 16, - "stop_line": 229, + "stop_line": 222, "stop_column": 29, "path": "src/documents/consumer.py", "code": -2, @@ -385,9 +445,9 @@ "severity": "error" }, { - "line": 230, + "line": 223, "column": 30, - "stop_line": 230, + "stop_line": 223, "stop_column": 43, "path": "src/documents/consumer.py", "code": -2, @@ -397,9 +457,9 @@ "severity": "error" }, { - "line": 231, + "line": 224, "column": 16, - "stop_line": 231, + "stop_line": 224, "stop_column": 29, "path": "src/documents/consumer.py", "code": -2, @@ -409,9 +469,9 @@ "severity": "error" }, { - "line": 328, + "line": 321, "column": 17, - "stop_line": 328, + "stop_line": 321, "stop_column": 25, "path": "src/documents/consumer.py", "code": -2, @@ -421,9 +481,9 @@ "severity": "error" }, { - "line": 397, + "line": 390, "column": 17, - "stop_line": 397, + "stop_line": 390, "stop_column": 25, "path": "src/documents/consumer.py", "code": -2, @@ -433,9 +493,9 @@ "severity": "error" }, { - "line": 408, + "line": 401, "column": 9, - "stop_line": 408, + "stop_line": 401, "stop_column": 12, "path": "src/documents/consumer.py", "code": -2, @@ -445,9 +505,9 @@ "severity": "error" }, { - "line": 408, + "line": 401, "column": 9, - "stop_line": 408, + "stop_line": 401, "stop_column": 12, "path": "src/documents/consumer.py", "code": -2, @@ -457,9 +517,9 @@ "severity": "error" }, { - "line": 408, + "line": 401, "column": 9, - "stop_line": 408, + "stop_line": 401, "stop_column": 12, "path": "src/documents/consumer.py", "code": -2, @@ -469,9 +529,9 @@ "severity": "error" }, { - "line": 408, + "line": 401, "column": 9, - "stop_line": 408, + "stop_line": 401, "stop_column": 12, "path": "src/documents/consumer.py", "code": -2, @@ -481,9 +541,9 @@ "severity": "error" }, { - "line": 442, + "line": 435, "column": 25, - "stop_line": 446, + "stop_line": 439, "stop_column": 26, "path": "src/documents/consumer.py", "code": -2, @@ -493,9 +553,9 @@ "severity": "error" }, { - "line": 447, + "line": 440, "column": 32, - "stop_line": 447, + "stop_line": 440, "stop_column": 40, "path": "src/documents/consumer.py", "code": -2, @@ -505,9 +565,9 @@ "severity": "error" }, { - "line": 518, + "line": 528, "column": 25, - "stop_line": 518, + "stop_line": 528, "stop_column": 33, "path": "src/documents/consumer.py", "code": -2, @@ -517,21 +577,9 @@ "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, + "line": 645, "column": 33, - "stop_line": 630, + "stop_line": 645, "stop_column": 60, "path": "src/documents/consumer.py", "code": -2, @@ -541,81 +589,81 @@ "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, + "line": 736, "column": 37, - "stop_line": 723, + "stop_line": 736, "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`", + "description": "Argument `Path | None` is not assignable to parameter `path` with type `Path` in function `documents.file_handling.validate_path_in_root`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", + "concise_description": "Argument `Path | None` is not assignable to parameter `path` with type `Path` in function `documents.file_handling.validate_path_in_root`", + "severity": "error" + }, + { + "line": 739, + "column": 62, + "stop_line": 739, + "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`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", + "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": 746, + "column": 37, + "stop_line": 746, + "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`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", "concise_description": "Argument `Path | None` is not assignable to parameter `path` with type `Path` in function `documents.utils.compute_checksum`", "severity": "error" }, { - "line": 807, + "line": 831, "column": 13, - "stop_line": 807, + "stop_line": 831, "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`", + "description": "Argument `str | None` is not assignable to parameter `correspondent_name` with type `str` in function `documents.templating.workflows.parse_w_workflow_placeholders`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", "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, + "line": 832, "column": 13, - "stop_line": 808, + "stop_line": 832, "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`", + "description": "Argument `str | None` is not assignable to parameter `doc_type_name` with type `str` in function `documents.templating.workflows.parse_w_workflow_placeholders`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", "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, + "line": 833, "column": 13, - "stop_line": 809, + "stop_line": 833, "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`", + "description": "Argument `str | None` is not assignable to parameter `owner_username` with type `str` in function `documents.templating.workflows.parse_w_workflow_placeholders`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", "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, + "line": 955, "column": 31, - "stop_line": 931, + "stop_line": 955, "stop_column": 46, "path": "src/documents/consumer.py", "code": -2, @@ -625,9 +673,9 @@ "severity": "error" }, { - "line": 1003, + "line": 1027, "column": 21, - "stop_line": 1003, + "stop_line": 1027, "stop_column": 36, "path": "src/documents/consumer.py", "code": -2, @@ -637,9 +685,9 @@ "severity": "error" }, { - "line": 1004, + "line": 1028, "column": 24, - "stop_line": 1004, + "stop_line": 1028, "stop_column": 51, "path": "src/documents/consumer.py", "code": -2, @@ -649,9 +697,9 @@ "severity": "error" }, { - "line": 1005, + "line": 1029, "column": 30, - "stop_line": 1005, + "stop_line": 1029, "stop_column": 48, "path": "src/documents/consumer.py", "code": -2, @@ -661,9 +709,9 @@ "severity": "error" }, { - "line": 1005, + "line": 1029, "column": 58, - "stop_line": 1005, + "stop_line": 1029, "stop_column": 76, "path": "src/documents/consumer.py", "code": -2, @@ -673,9 +721,9 @@ "severity": "error" }, { - "line": 1006, + "line": 1030, "column": 28, - "stop_line": 1006, + "stop_line": 1030, "stop_column": 40, "path": "src/documents/consumer.py", "code": -2, @@ -685,9 +733,9 @@ "severity": "error" }, { - "line": 1013, + "line": 1037, "column": 65, - "stop_line": 1013, + "stop_line": 1037, "stop_column": 77, "path": "src/documents/consumer.py", "code": -2, @@ -697,9 +745,9 @@ "severity": "error" }, { - "line": 1028, + "line": 1052, "column": 21, - "stop_line": 1028, + "stop_line": 1052, "stop_column": 33, "path": "src/documents/consumer.py", "code": -2, @@ -709,9 +757,9 @@ "severity": "error" }, { - "line": 1094, + "line": 1118, "column": 16, - "stop_line": 1094, + "stop_line": 1118, "stop_column": 51, "path": "src/documents/consumer.py", "code": -2, @@ -728,8 +776,8 @@ "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`", + "description": "Argument `list[Path | str | Any]` 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" }, { @@ -740,14 +788,14 @@ "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__`", + "description": "Argument `bytes | None` is not assignable to parameter `buffer` with type `Buffer` in function `_io.BufferedWriter.write`\n Protocol `Buffer` requires attribute `__buffer__`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", "concise_description": "Argument `bytes | None` is not assignable to parameter `buffer` with type `Buffer` in function `_io.BufferedWriter.write`", "severity": "error" }, { - "line": 116, + "line": 119, "column": 13, - "stop_line": 119, + "stop_line": 122, "stop_column": 26, "path": "src/documents/data_models.py", "code": -2, @@ -757,9 +805,9 @@ "severity": "error" }, { - "line": 122, + "line": 125, "column": 13, - "stop_line": 125, + "stop_line": 128, "stop_column": 26, "path": "src/documents/data_models.py", "code": -2, @@ -769,9 +817,9 @@ "severity": "error" }, { - "line": 138, + "line": 141, "column": 26, - "stop_line": 138, + "stop_line": 141, "stop_column": 43, "path": "src/documents/data_models.py", "code": -2, @@ -781,9 +829,9 @@ "severity": "error" }, { - "line": 139, + "line": 142, "column": 35, - "stop_line": 139, + "stop_line": 142, "stop_column": 59, "path": "src/documents/data_models.py", "code": -2, @@ -793,9 +841,9 @@ "severity": "error" }, { - "line": 143, + "line": 146, "column": 26, - "stop_line": 143, + "stop_line": 146, "stop_column": 43, "path": "src/documents/data_models.py", "code": -2, @@ -805,9 +853,9 @@ "severity": "error" }, { - "line": 144, + "line": 147, "column": 37, - "stop_line": 144, + "stop_line": 147, "stop_column": 61, "path": "src/documents/data_models.py", "code": -2, @@ -817,21 +865,21 @@ "severity": "error" }, { - "line": 173, + "line": 176, "column": 22, - "stop_line": 173, + "stop_line": 176, "stop_column": 65, "path": "src/documents/data_models.py", "code": -2, "name": "bad-assignment", - "description": "`None` is not assignable to `str`", + "description": "`None` is not assignable to `str`\n The declared type does not allow `None`. Consider changing the declared type to `str | None`.", "concise_description": "`None` is not assignable to `str`", "severity": "error" }, { - "line": 143, + "line": 174, "column": 12, - "stop_line": 143, + "stop_line": 174, "stop_column": 36, "path": "src/documents/file_handling.py", "code": -2, @@ -841,9 +889,9 @@ "severity": "error" }, { - "line": 144, + "line": 175, "column": 31, - "stop_line": 144, + "stop_line": 175, "stop_column": 60, "path": "src/documents/file_handling.py", "code": -2, @@ -853,21 +901,21 @@ "severity": "error" }, { - "line": 157, + "line": 188, "column": 53, - "stop_line": 157, + "stop_line": 188, "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`", + "description": "Argument `Document | None` is not assignable to parameter `document` with type `Document` in function `format_filename`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", "concise_description": "Argument `Document | None` is not assignable to parameter `document` with type `Document` in function `format_filename`", "severity": "error" }, { - "line": 181, + "line": 212, "column": 16, - "stop_line": 181, + "stop_line": 212, "stop_column": 30, "path": "src/documents/file_handling.py", "code": -2, @@ -877,9 +925,9 @@ "severity": "error" }, { - "line": 210, + "line": 216, "column": 51, - "stop_line": 210, + "stop_line": 216, "stop_column": 61, "path": "src/documents/filters.py", "code": -2, @@ -889,9 +937,33 @@ "severity": "error" }, { - "line": 266, + "line": 227, + "column": 21, + "stop_line": 230, + "stop_column": 44, + "path": "src/documents/filters.py", + "code": -2, + "name": "bad-argument-type", + "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__`", + "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" + }, + { + "line": 235, + "column": 21, + "stop_line": 238, + "stop_column": 45, + "path": "src/documents/filters.py", + "code": -2, + "name": "bad-argument-type", + "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__`", + "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" + }, + { + "line": 272, "column": 31, - "stop_line": 266, + "stop_line": 272, "stop_column": 51, "path": "src/documents/filters.py", "code": -2, @@ -901,9 +973,9 @@ "severity": "error" }, { - "line": 326, + "line": 336, "column": 25, - "stop_line": 326, + "stop_line": 336, "stop_column": 66, "path": "src/documents/filters.py", "code": -2, @@ -913,21 +985,21 @@ "severity": "error" }, { - "line": 353, - "column": 47, - "stop_line": 353, - "stop_column": 76, + "line": 363, + "column": 48, + "stop_line": 363, + "stop_column": 65, "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", + "description": "`Unknown | None` is not assignable to dict key type `str`\n The declared type does not allow `None`. Consider changing the declared type to `str | None`.", + "concise_description": "`Unknown | None` is not assignable to dict key type `str`", "severity": "error" }, { - "line": 362, + "line": 372, "column": 5, - "stop_line": 362, + "stop_line": 372, "stop_column": 26, "path": "src/documents/filters.py", "code": -2, @@ -937,9 +1009,9 @@ "severity": "error" }, { - "line": 673, + "line": 683, "column": 26, - "stop_line": 673, + "stop_line": 683, "stop_column": 49, "path": "src/documents/filters.py", "code": -2, @@ -949,9 +1021,9 @@ "severity": "error" }, { - "line": 676, + "line": 686, "column": 17, - "stop_line": 676, + "stop_line": 686, "stop_column": 28, "path": "src/documents/filters.py", "code": -2, @@ -961,21 +1033,21 @@ "severity": "error" }, { - "line": 733, + "line": 747, "column": 18, - "stop_line": 733, + "stop_line": 747, "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__`", + "description": "Argument `Any | None` is not assignable to parameter `iterable` with type `Iterable[Any]` in function `set.__init__`\n Protocol `Iterable` requires attribute `__iter__`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", "concise_description": "Argument `Any | None` is not assignable to parameter `iterable` with type `Iterable[Any]` in function `set.__init__`", "severity": "error" }, { - "line": 1040, + "line": 1169, "column": 25, - "stop_line": 1040, + "stop_line": 1169, "stop_column": 45, "path": "src/documents/filters.py", "code": -2, @@ -997,33 +1069,9 @@ "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, + "line": 515, "column": 41, - "stop_line": 565, + "stop_line": 515, "stop_column": 50, "path": "src/documents/management/commands/document_exporter.py", "code": -2, @@ -1033,9 +1081,9 @@ "severity": "error" }, { - "line": 238, + "line": 458, "column": 14, - "stop_line": 238, + "stop_line": 458, "stop_column": 18, "path": "src/documents/management/commands/document_importer.py", "code": -2, @@ -1044,30 +1092,6 @@ "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, @@ -1076,86 +1100,50 @@ "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`", + "description": "Argument `str | None` is not assignable to parameter `content` with type `str` in function `documents.classifier.DocumentClassifier.predict_correspondent`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", "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, + "line": 79, "column": 42, - "stop_line": 81, + "stop_line": 79, "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`", + "description": "Argument `str | None` is not assignable to parameter `content` with type `str` in function `documents.classifier.DocumentClassifier.predict_document_type`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", "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, + "line": 108, "column": 33, - "stop_line": 112, + "stop_line": 108, "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`", + "description": "Argument `str | None` is not assignable to parameter `content` with type `str` in function `documents.classifier.DocumentClassifier.predict_tags`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", "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, + "line": 137, "column": 41, - "stop_line": 139, + "stop_line": 137, "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`", + "description": "Argument `str | None` is not assignable to parameter `content` with type `str` in function `documents.classifier.DocumentClassifier.predict_storage_path`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", "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, + "line": 365, "column": 9, - "stop_line": 370, + "stop_line": 365, "stop_column": 16, "path": "src/documents/matching.py", "code": -2, @@ -1165,9 +1153,9 @@ "severity": "error" }, { - "line": 395, + "line": 390, "column": 17, - "stop_line": 395, + "stop_line": 390, "stop_column": 55, "path": "src/documents/matching.py", "code": -2, @@ -1177,21 +1165,21 @@ "severity": "error" }, { - "line": 405, + "line": 400, "column": 42, - "stop_line": 405, + "stop_line": 400, "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__`", + "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__`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", "concise_description": "Argument `set[Any] | None` is not assignable to parameter `s` with type `Iterable[object]` in function `set.issubset`", "severity": "error" }, { - "line": 414, + "line": 409, "column": 12, - "stop_line": 414, + "stop_line": 409, "stop_column": 47, "path": "src/documents/matching.py", "code": -2, @@ -1201,9 +1189,9 @@ "severity": "error" }, { - "line": 685, + "line": 680, "column": 21, - "stop_line": 685, + "stop_line": 680, "stop_column": 29, "path": "src/documents/matching.py", "code": -2, @@ -1213,9 +1201,9 @@ "severity": "error" }, { - "line": 694, + "line": 689, "column": 21, - "stop_line": 694, + "stop_line": 689, "stop_column": 29, "path": "src/documents/matching.py", "code": -2, @@ -1237,21 +1225,21 @@ "severity": "error" }, { - "line": 453, + "line": 460, "column": 21, - "stop_line": 453, + "stop_line": 460, "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__`", + "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__`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", "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, + "line": 1123, "column": 9, - "stop_line": 1031, + "stop_line": 1123, "stop_column": 15, "path": "src/documents/models.py", "code": -2, @@ -1261,9 +1249,9 @@ "severity": "error" }, { - "line": 1206, + "line": 1304, "column": 54, - "stop_line": 1206, + "stop_line": 1304, "stop_column": 74, "path": "src/documents/models.py", "code": -2, @@ -1273,9 +1261,9 @@ "severity": "error" }, { - "line": 1230, + "line": 1328, "column": 5, - "stop_line": 1230, + "stop_line": 1328, "stop_column": 13, "path": "src/documents/models.py", "code": -2, @@ -1297,9 +1285,9 @@ "severity": "error" }, { - "line": 123, + "line": 133, "column": 42, - "stop_line": 123, + "stop_line": 133, "stop_column": 64, "path": "src/documents/permissions.py", "code": -2, @@ -1309,9 +1297,9 @@ "severity": "error" }, { - "line": 124, + "line": 134, "column": 35, - "stop_line": 124, + "stop_line": 134, "stop_column": 58, "path": "src/documents/permissions.py", "code": -2, @@ -1321,9 +1309,9 @@ "severity": "error" }, { - "line": 125, + "line": 135, "column": 16, - "stop_line": 125, + "stop_line": 135, "stop_column": 38, "path": "src/documents/permissions.py", "code": -2, @@ -1332,6 +1320,90 @@ "concise_description": "Object of class `list` has no attribute `exists`", "severity": "error" }, + { + "line": 182, + "column": 6, + "stop_line": 182, + "stop_column": 19, + "path": "src/documents/permissions.py", + "code": -2, + "name": "bad-specialization", + "description": "`int` is not assignable to upper bound `Model` of type variable `_Model`", + "concise_description": "`int` is not assignable to upper bound `Model` of type variable `_Model`", + "severity": "error" + }, + { + "line": 193, + "column": 9, + "stop_line": 193, + "stop_column": 29, + "path": "src/documents/permissions.py", + "code": -2, + "name": "missing-attribute", + "description": "Class `Model` has no class attribute `global_objects`", + "concise_description": "Class `Model` has no class attribute `global_objects`", + "severity": "error" + }, + { + "line": 198, + "column": 16, + "stop_line": 198, + "stop_column": 79, + "path": "src/documents/permissions.py", + "code": -2, + "name": "bad-return", + "description": "Returned type `QuerySet[Model, Any] | Unknown` is not assignable to declared return type `QuerySet[int, int]`", + "concise_description": "Returned type `QuerySet[Model, Any] | Unknown` is not assignable to declared return type `QuerySet[int, int]`", + "severity": "error" + }, + { + "line": 205, + "column": 16, + "stop_line": 205, + "stop_column": 59, + "path": "src/documents/permissions.py", + "code": -2, + "name": "bad-return", + "description": "Returned type `QuerySet[Model, Any] | Unknown` is not assignable to declared return type `QuerySet[int, int]`", + "concise_description": "Returned type `QuerySet[Model, Any] | Unknown` is not assignable to declared return type `QuerySet[int, int]`", + "severity": "error" + }, + { + "line": 208, + "column": 16, + "stop_line": 208, + "stop_column": 52, + "path": "src/documents/permissions.py", + "code": -2, + "name": "bad-return", + "description": "Returned type `QuerySet[Model, Any] | Unknown` is not assignable to declared return type `QuerySet[int, int]`", + "concise_description": "Returned type `QuerySet[Model, Any] | Unknown` is not assignable to declared return type `QuerySet[int, int]`", + "severity": "error" + }, + { + "line": 234, + "column": 12, + "stop_line": 236, + "stop_column": 35, + "path": "src/documents/permissions.py", + "code": -2, + "name": "bad-return", + "description": "Returned type `QuerySet[Model, Any] | Unknown` is not assignable to declared return type `QuerySet[int, int]`", + "concise_description": "Returned type `QuerySet[Model, Any] | Unknown` is not assignable to declared return type `QuerySet[int, int]`", + "severity": "error" + }, + { + "line": 296, + "column": 6, + "stop_line": 296, + "stop_column": 19, + "path": "src/documents/permissions.py", + "code": -2, + "name": "bad-specialization", + "description": "`int` is not assignable to upper bound `Model` of type variable `_Model`", + "concise_description": "`int` is not assignable to upper bound `Model` of type variable `_Model`", + "severity": "error" + }, { "line": 97, "column": 29, @@ -1357,165 +1429,45 @@ "severity": "error" }, { - "line": 186, - "column": 24, - "stop_line": 186, - "stop_column": 51, - "path": "src/documents/search/_backend.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `writer`", - "concise_description": "Object of class `NoneType` has no attribute `writer`", - "severity": "error" - }, - { - "line": 192, - "column": 17, - "stop_line": 192, - "stop_column": 36, - "path": "src/documents/search/_backend.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `commit`", - "concise_description": "Object of class `NoneType` has no attribute `commit`", - "severity": "error" - }, - { - "line": 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`", - "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`", - "severity": "error" - }, - { - "line": 389, + "line": 501, "column": 50, - "stop_line": 389, + "stop_line": 501, "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`", + "description": "Argument `int | None` is not assignable to parameter `value` with type `int` in function `tantivy.tantivy.Document.add_unsigned`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", "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, + "line": 509, "column": 50, - "stop_line": 395, + "stop_line": 509, "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`", + "description": "Argument `int | None` is not assignable to parameter `value` with type `int` in function `tantivy.tantivy.Document.add_unsigned`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", "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, + "line": 514, "column": 49, - "stop_line": 400, + "stop_line": 514, "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`", + "description": "Argument `int | None` is not assignable to parameter `value` with type `int` in function `tantivy.tantivy.Document.add_unsigned`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", "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, + "line": 530, "column": 21, - "stop_line": 414, + "stop_line": 530, "stop_column": 35, "path": "src/documents/search/_backend.py", "code": -2, @@ -1525,9 +1477,9 @@ "severity": "error" }, { - "line": 423, + "line": 545, "column": 20, - "stop_line": 423, + "stop_line": 545, "stop_column": 42, "path": "src/documents/search/_backend.py", "code": -2, @@ -1537,189 +1489,45 @@ "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, + "line": 647, + "column": 45, + "stop_line": 647, + "stop_column": 58, "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`", + "description": "Argument `list[int]` is not assignable to parameter `args` with type `tuple[Any, ...] | None` in function `celery.app.task.Task.apply_async`", + "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": 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, + "line": 676, + "column": 57, + "stop_line": 676, + "stop_column": 65, "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`", + "description": "Argument `list[int]` is not assignable to parameter `args` with type `tuple[Any, ...] | None` in function `celery.app.task.Task.apply_async`", + "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": 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, + "line": 1103, "column": 9, - "stop_line": 132, + "stop_line": 1103, + "stop_column": 17, + "path": "src/documents/search/_backend.py", + "code": -2, + "name": "bad-override", + "description": "Class member `_DocumentViewerStream.__iter__` overrides parent class `QuerySetStream` in an inconsistent manner\n `_DocumentViewerStream.__iter__` has type `(self: _DocumentViewerStream) -> Iterator[tuple[Document, ViewerGrant]]`, which is not assignable to `(self: _DocumentViewerStream) -> Iterator[Document]`, the type of `QuerySetStream.__iter__`\n Signature mismatch:\n expected: def __iter__(self: _DocumentViewerStream) -> Iterator[Document]: ...\n ^^^^^^^^ return type\n found: def __iter__(self: _DocumentViewerStream) -> Iterator[tuple[Document, ViewerGrant]]: ...\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ return type", + "concise_description": "Class member `_DocumentViewerStream.__iter__` overrides parent class `QuerySetStream` in an inconsistent manner", + "severity": "error" + }, + { + "line": 174, + "column": 9, + "stop_line": 174, "stop_column": 17, "path": "src/documents/serialisers.py", "code": -2, @@ -1729,9 +1537,9 @@ "severity": "error" }, { - "line": 206, + "line": 248, "column": 62, - "stop_line": 208, + "stop_line": 250, "stop_column": 26, "path": "src/documents/serialisers.py", "code": -2, @@ -1741,9 +1549,9 @@ "severity": "error" }, { - "line": 295, + "line": 337, "column": 17, - "stop_line": 299, + "stop_line": 341, "stop_column": 30, "path": "src/documents/serialisers.py", "code": -2, @@ -1753,21 +1561,9 @@ "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, + "line": 534, "column": 9, - "stop_line": 473, + "stop_line": 534, "stop_column": 26, "path": "src/documents/serialisers.py", "code": -2, @@ -1777,9 +1573,9 @@ "severity": "error" }, { - "line": 474, + "line": 535, "column": 9, - "stop_line": 474, + "stop_line": 535, "stop_column": 27, "path": "src/documents/serialisers.py", "code": -2, @@ -1789,45 +1585,69 @@ "severity": "error" }, { - "line": 474, + "line": 535, "column": 51, - "stop_line": 474, + "stop_line": 535, "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`", + "description": "Object of type `BaseSerializer[Unknown] | Field[Unknown, Unknown, Unknown, Unknown] | None` has no attribute `get_shared_object_pks`\n Object of class `BaseSerializer` has no attribute `get_shared_object_pks`\n Object of class `Field` has no attribute `get_shared_object_pks`\n Object 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, + "line": 544, + "column": 11, + "stop_line": 544, + "stop_column": 15, "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]`", + "name": "bad-override", + "description": "Class member `CorrespondentSerializer.Meta` overrides parent class `MatchingModelSerializer` in an inconsistent manner\n `CorrespondentSerializer.Meta` has type `type[CorrespondentSerializer.Meta]`, which is not assignable to `type[ModelSerializer.Meta]`, the type of `MatchingModelSerializer.Meta`", + "concise_description": "Class member `CorrespondentSerializer.Meta` overrides parent class `MatchingModelSerializer` in an inconsistent manner", "severity": "error" }, { - "line": 503, - "column": 17, - "stop_line": 503, - "stop_column": 29, + "line": 544, + "column": 11, + "stop_line": 544, + "stop_column": 15, "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]`", + "name": "bad-override", + "description": "Class member `CorrespondentSerializer.Meta` overrides parent class `OwnedObjectSerializer` in an inconsistent manner\n `CorrespondentSerializer.Meta` has type `type[CorrespondentSerializer.Meta]`, which is not assignable to `type[ModelSerializer.Meta]`, the type of `OwnedObjectSerializer.Meta`", + "concise_description": "Class member `CorrespondentSerializer.Meta` overrides parent class `OwnedObjectSerializer` in an inconsistent manner", "severity": "error" }, { - "line": 573, + "line": 563, + "column": 11, + "stop_line": 563, + "stop_column": 15, + "path": "src/documents/serialisers.py", + "code": -2, + "name": "bad-override", + "description": "Class member `DocumentTypeSerializer.Meta` overrides parent class `MatchingModelSerializer` in an inconsistent manner\n `DocumentTypeSerializer.Meta` has type `type[DocumentTypeSerializer.Meta]`, which is not assignable to `type[ModelSerializer.Meta]`, the type of `MatchingModelSerializer.Meta`", + "concise_description": "Class member `DocumentTypeSerializer.Meta` overrides parent class `MatchingModelSerializer` in an inconsistent manner", + "severity": "error" + }, + { + "line": 563, + "column": 11, + "stop_line": 563, + "stop_column": 15, + "path": "src/documents/serialisers.py", + "code": -2, + "name": "bad-override", + "description": "Class member `DocumentTypeSerializer.Meta` overrides parent class `OwnedObjectSerializer` in an inconsistent manner\n `DocumentTypeSerializer.Meta` has type `type[DocumentTypeSerializer.Meta]`, which is not assignable to `type[ModelSerializer.Meta]`, the type of `OwnedObjectSerializer.Meta`", + "concise_description": "Class member `DocumentTypeSerializer.Meta` overrides parent class `OwnedObjectSerializer` in an inconsistent manner", + "severity": "error" + }, + { + "line": 634, "column": 14, - "stop_line": 578, + "stop_line": 639, "stop_column": 6, "path": "src/documents/serialisers.py", "code": -2, @@ -1837,21 +1657,45 @@ "severity": "error" }, { - "line": 628, + "line": 658, "column": 17, - "stop_line": 628, - "stop_column": 20, + "stop_line": 658, + "stop_column": 54, "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", + "description": "Cannot set item in `Mapping[str, Any]`\n Object of class `Mapping` has no attribute `__setitem__`\n Did you mean `__getitem__`?", + "concise_description": "Cannot set item in `Mapping[str, Any]`", "severity": "error" }, { - "line": 654, + "line": 690, + "column": 11, + "stop_line": 690, + "stop_column": 15, + "path": "src/documents/serialisers.py", + "code": -2, + "name": "bad-override", + "description": "Class member `TagSerializer.Meta` overrides parent class `MatchingModelSerializer` in an inconsistent manner\n `TagSerializer.Meta` has type `type[TagSerializer.Meta]`, which is not assignable to `type[ModelSerializer.Meta]`, the type of `MatchingModelSerializer.Meta`", + "concise_description": "Class member `TagSerializer.Meta` overrides parent class `MatchingModelSerializer` in an inconsistent manner", + "severity": "error" + }, + { + "line": 690, + "column": 11, + "stop_line": 690, + "stop_column": 15, + "path": "src/documents/serialisers.py", + "code": -2, + "name": "bad-override", + "description": "Class member `TagSerializer.Meta` overrides parent class `OwnedObjectSerializer` in an inconsistent manner\n `TagSerializer.Meta` has type `type[TagSerializer.Meta]`, which is not assignable to `type[ModelSerializer.Meta]`, the type of `OwnedObjectSerializer.Meta`", + "concise_description": "Class member `TagSerializer.Meta` overrides parent class `OwnedObjectSerializer` in an inconsistent manner", + "severity": "error" + }, + { + "line": 717, "column": 9, - "stop_line": 654, + "stop_line": 717, "stop_column": 17, "path": "src/documents/serialisers.py", "code": -2, @@ -1861,9 +1705,9 @@ "severity": "error" }, { - "line": 707, + "line": 770, "column": 17, - "stop_line": 707, + "stop_line": 770, "stop_column": 42, "path": "src/documents/serialisers.py", "code": -2, @@ -1873,33 +1717,33 @@ "severity": "error" }, { - "line": 714, - "column": 17, - "stop_line": 714, - "stop_column": 28, + "line": 776, + "column": 11, + "stop_line": 776, + "stop_column": 15, "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]`", + "name": "bad-override", + "description": "Class member `CustomFieldSerializer.Meta` overrides parent class `ModelSerializer` in an inconsistent manner\n `CustomFieldSerializer.Meta` has type `type[CustomFieldSerializer.Meta]`, which is not assignable to `type[ModelSerializer.Meta]`, the type of `ModelSerializer.Meta`", + "concise_description": "Class member `CustomFieldSerializer.Meta` overrides parent class `ModelSerializer` in an inconsistent manner", "severity": "error" }, { - "line": 792, + "line": 855, "column": 28, - "stop_line": 792, + "stop_line": 855, "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`", + "description": "`Unknown | None` is not assignable to attribute `method_name` with type `str`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", "concise_description": "`Unknown | None` is not assignable to attribute `method_name` with type `str`", "severity": "error" }, { - "line": 830, + "line": 893, "column": 13, - "stop_line": 830, + "stop_line": 893, "stop_column": 35, "path": "src/documents/serialisers.py", "code": -2, @@ -1909,9 +1753,9 @@ "severity": "error" }, { - "line": 846, + "line": 909, "column": 9, - "stop_line": 846, + "stop_line": 909, "stop_column": 18, "path": "src/documents/serialisers.py", "code": -2, @@ -1921,9 +1765,9 @@ "severity": "error" }, { - "line": 849, + "line": 912, "column": 9, - "stop_line": 849, + "stop_line": 912, "stop_column": 17, "path": "src/documents/serialisers.py", "code": -2, @@ -1933,9 +1777,9 @@ "severity": "error" }, { - "line": 892, + "line": 955, "column": 34, - "stop_line": 892, + "stop_line": 955, "stop_column": 68, "path": "src/documents/serialisers.py", "code": -2, @@ -1945,45 +1789,45 @@ "severity": "error" }, { - "line": 920, - "column": 17, - "stop_line": 920, - "stop_column": 36, + "line": 982, + "column": 11, + "stop_line": 982, + "stop_column": 15, "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]`", + "name": "bad-override", + "description": "Class member `CustomFieldInstanceSerializer.Meta` overrides parent class `ModelSerializer` in an inconsistent manner\n `CustomFieldInstanceSerializer.Meta` has type `type[CustomFieldInstanceSerializer.Meta]`, which is not assignable to `type[ModelSerializer.Meta]`, the type of `ModelSerializer.Meta`", + "concise_description": "Class member `CustomFieldInstanceSerializer.Meta` overrides parent class `ModelSerializer` in an inconsistent manner", "severity": "error" }, { - "line": 930, - "column": 17, - "stop_line": 930, - "stop_column": 21, + "line": 992, + "column": 11, + "stop_line": 992, + "stop_column": 15, "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]`", + "name": "bad-override", + "description": "Class member `BasicUserSerializer.Meta` overrides parent class `ModelSerializer` in an inconsistent manner\n `BasicUserSerializer.Meta` has type `type[BasicUserSerializer.Meta]`, which is not assignable to `type[ModelSerializer.Meta]`, the type of `ModelSerializer.Meta`", + "concise_description": "Class member `BasicUserSerializer.Meta` overrides parent class `ModelSerializer` in an inconsistent manner", "severity": "error" }, { - "line": 938, - "column": 17, - "stop_line": 938, - "stop_column": 21, + "line": 1000, + "column": 11, + "stop_line": 1000, + "stop_column": 15, "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]`", + "name": "bad-override", + "description": "Class member `NotesSerializer.Meta` overrides parent class `ModelSerializer` in an inconsistent manner\n `NotesSerializer.Meta` has type `type[NotesSerializer.Meta]`, which is not assignable to `type[ModelSerializer.Meta]`, the type of `ModelSerializer.Meta`", + "concise_description": "Class member `NotesSerializer.Meta` overrides parent class `ModelSerializer` in an inconsistent manner", "severity": "error" }, { - "line": 1095, + "line": 1155, "column": 30, - "stop_line": 1095, + "stop_line": 1155, "stop_column": 55, "path": "src/documents/serialisers.py", "code": -2, @@ -1993,9 +1837,9 @@ "severity": "error" }, { - "line": 1139, + "line": 1198, "column": 12, - "stop_line": 1139, + "stop_line": 1198, "stop_column": 34, "path": "src/documents/serialisers.py", "code": -2, @@ -2005,9 +1849,9 @@ "severity": "error" }, { - "line": 1143, + "line": 1202, "column": 42, - "stop_line": 1143, + "stop_line": 1202, "stop_column": 64, "path": "src/documents/serialisers.py", "code": -2, @@ -2017,21 +1861,45 @@ "severity": "error" }, { - "line": 1227, - "column": 17, - "stop_line": 1227, - "stop_column": 25, + "line": 1295, + "column": 11, + "stop_line": 1295, + "stop_column": 15, "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]`", + "name": "bad-override", + "description": "Class member `DocumentSerializer.Meta` overrides parent class `OwnedObjectSerializer` in an inconsistent manner\n `DocumentSerializer.Meta` has type `type[DocumentSerializer.Meta]`, which is not assignable to `type[ModelSerializer.Meta]`, the type of `OwnedObjectSerializer.Meta`", + "concise_description": "Class member `DocumentSerializer.Meta` overrides parent class `OwnedObjectSerializer` in an inconsistent manner", "severity": "error" }, { - "line": 1262, + "line": 1295, + "column": 11, + "stop_line": 1295, + "stop_column": 15, + "path": "src/documents/serialisers.py", + "code": -2, + "name": "bad-override", + "description": "Class member `DocumentSerializer.Meta` overrides parent class `NestedUpdateMixin` in an inconsistent manner\n `DocumentSerializer.Meta` has type `type[DocumentSerializer.Meta]`, which is not assignable to `type[ModelSerializer.Meta]`, the type of `NestedUpdateMixin.Meta`", + "concise_description": "Class member `DocumentSerializer.Meta` overrides parent class `NestedUpdateMixin` in an inconsistent manner", + "severity": "error" + }, + { + "line": 1295, + "column": 11, + "stop_line": 1295, + "stop_column": 15, + "path": "src/documents/serialisers.py", + "code": -2, + "name": "bad-override", + "description": "Class member `DocumentSerializer.Meta` overrides parent class `DocumentUpdateFieldsModelSerializer` in an inconsistent manner\n `DocumentSerializer.Meta` has type `type[DocumentSerializer.Meta]`, which is not assignable to `type[ModelSerializer.Meta]`, the type of `DocumentUpdateFieldsModelSerializer.Meta`", + "concise_description": "Class member `DocumentSerializer.Meta` overrides parent class `DocumentUpdateFieldsModelSerializer` in an inconsistent manner", + "severity": "error" + }, + { + "line": 1331, "column": 9, - "stop_line": 1262, + "stop_line": 1331, "stop_column": 26, "path": "src/documents/serialisers.py", "code": -2, @@ -2041,21 +1909,21 @@ "severity": "error" }, { - "line": 1265, + "line": 1334, "column": 21, - "stop_line": 1265, + "stop_line": 1334, "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`", + "description": "Object of type `BaseSerializer[Unknown] | Field[Unknown, Unknown, Unknown, Unknown] | None` has no attribute `fetch_documents`\n Object of class `BaseSerializer` has no attribute `fetch_documents`\n Object of class `Field` has no attribute `fetch_documents`\n Object 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, + "line": 1335, "column": 9, - "stop_line": 1266, + "stop_line": 1335, "stop_column": 27, "path": "src/documents/serialisers.py", "code": -2, @@ -2065,9 +1933,9 @@ "severity": "error" }, { - "line": 1268, + "line": 1337, "column": 9, - "stop_line": 1268, + "stop_line": 1337, "stop_column": 27, "path": "src/documents/serialisers.py", "code": -2, @@ -2077,21 +1945,21 @@ "severity": "error" }, { - "line": 1268, + "line": 1337, "column": 51, - "stop_line": 1268, + "stop_line": 1337, "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`", + "description": "Object of type `BaseSerializer[Unknown] | Field[Unknown, Unknown, Unknown, Unknown] | None` has no attribute `get_shared_object_pks`\n Object of class `BaseSerializer` has no attribute `get_shared_object_pks`\n Object of class `Field` has no attribute `get_shared_object_pks`\n Object 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, + "line": 1362, "column": 9, - "stop_line": 1293, + "stop_line": 1362, "stop_column": 26, "path": "src/documents/serialisers.py", "code": -2, @@ -2101,9 +1969,9 @@ "severity": "error" }, { - "line": 1315, + "line": 1384, "column": 9, - "stop_line": 1315, + "stop_line": 1384, "stop_column": 30, "path": "src/documents/serialisers.py", "code": -2, @@ -2113,33 +1981,33 @@ "severity": "error" }, { - "line": 1320, - "column": 17, - "stop_line": 1320, - "stop_column": 36, + "line": 1388, + "column": 11, + "stop_line": 1388, + "stop_column": 15, "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]`", + "name": "bad-override", + "description": "Class member `SavedViewFilterRuleSerializer.Meta` overrides parent class `ModelSerializer` in an inconsistent manner\n `SavedViewFilterRuleSerializer.Meta` has type `type[SavedViewFilterRuleSerializer.Meta]`, which is not assignable to `type[ModelSerializer.Meta]`, the type of `ModelSerializer.Meta`", + "concise_description": "Class member `SavedViewFilterRuleSerializer.Meta` overrides parent class `ModelSerializer` in an inconsistent manner", "severity": "error" }, { - "line": 1328, - "column": 17, - "stop_line": 1328, - "stop_column": 26, + "line": 1396, + "column": 11, + "stop_line": 1396, + "stop_column": 15, "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]`", + "name": "bad-override", + "description": "Class member `SavedViewSerializer.Meta` overrides parent class `OwnedObjectSerializer` in an inconsistent manner\n `SavedViewSerializer.Meta` has type `type[SavedViewSerializer.Meta]`, which is not assignable to `type[ModelSerializer.Meta]`, the type of `OwnedObjectSerializer.Meta`", + "concise_description": "Class member `SavedViewSerializer.Meta` overrides parent class `OwnedObjectSerializer` in an inconsistent manner", "severity": "error" }, { - "line": 1467, + "line": 1537, "column": 21, - "stop_line": 1467, + "stop_line": 1537, "stop_column": 62, "path": "src/documents/serialisers.py", "code": -2, @@ -2149,9 +2017,9 @@ "severity": "error" }, { - "line": 1469, + "line": 1539, "column": 36, - "stop_line": 1469, + "stop_line": 1539, "stop_column": 63, "path": "src/documents/serialisers.py", "code": -2, @@ -2161,9 +2029,9 @@ "severity": "error" }, { - "line": 1696, + "line": 1812, "column": 7, - "stop_line": 1696, + "stop_line": 1812, "stop_column": 25, "path": "src/documents/serialisers.py", "code": -2, @@ -2173,9 +2041,9 @@ "severity": "error" }, { - "line": 2356, + "line": 2496, "column": 73, - "stop_line": 2356, + "stop_line": 2496, "stop_column": 80, "path": "src/documents/serialisers.py", "code": -2, @@ -2185,33 +2053,45 @@ "severity": "error" }, { - "line": 2370, - "column": 17, - "stop_line": 2370, - "stop_column": 28, + "line": 2509, + "column": 11, + "stop_line": 2509, + "stop_column": 15, "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]`", + "name": "bad-override", + "description": "Class member `StoragePathSerializer.Meta` overrides parent class `MatchingModelSerializer` in an inconsistent manner\n `StoragePathSerializer.Meta` has type `type[StoragePathSerializer.Meta]`, which is not assignable to `type[ModelSerializer.Meta]`, the type of `MatchingModelSerializer.Meta`", + "concise_description": "Class member `StoragePathSerializer.Meta` overrides parent class `MatchingModelSerializer` in an inconsistent manner", "severity": "error" }, { - "line": 2418, - "column": 17, - "stop_line": 2418, - "stop_column": 27, + "line": 2509, + "column": 11, + "stop_line": 2509, + "stop_column": 15, "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]`", + "name": "bad-override", + "description": "Class member `StoragePathSerializer.Meta` overrides parent class `OwnedObjectSerializer` in an inconsistent manner\n `StoragePathSerializer.Meta` has type `type[StoragePathSerializer.Meta]`, which is not assignable to `type[ModelSerializer.Meta]`, the type of `OwnedObjectSerializer.Meta`", + "concise_description": "Class member `StoragePathSerializer.Meta` overrides parent class `OwnedObjectSerializer` in an inconsistent manner", "severity": "error" }, { - "line": 2434, + "line": 2557, + "column": 11, + "stop_line": 2557, + "stop_column": 15, + "path": "src/documents/serialisers.py", + "code": -2, + "name": "bad-override", + "description": "Class member `UiSettingsViewSerializer.Meta` overrides parent class `ModelSerializer` in an inconsistent manner\n `UiSettingsViewSerializer.Meta` has type `type[UiSettingsViewSerializer.Meta]`, which is not assignable to `type[ModelSerializer.Meta]`, the type of `ModelSerializer.Meta`", + "concise_description": "Class member `UiSettingsViewSerializer.Meta` overrides parent class `ModelSerializer` in an inconsistent manner", + "severity": "error" + }, + { + "line": 2574, "column": 9, - "stop_line": 2434, + "stop_line": 2574, "stop_column": 15, "path": "src/documents/serialisers.py", "code": -2, @@ -2221,153 +2101,153 @@ "severity": "error" }, { - "line": 2463, - "column": 17, - "stop_line": 2463, - "stop_column": 30, + "line": 2602, + "column": 11, + "stop_line": 2602, + "stop_column": 15, "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]`", + "name": "bad-override", + "description": "Class member `TaskSerializerV10.Meta` overrides parent class `OwnedObjectSerializer` in an inconsistent manner\n `TaskSerializerV10.Meta` has type `type[TaskSerializerV10.Meta]`, which is not assignable to `type[ModelSerializer.Meta]`, the type of `OwnedObjectSerializer.Meta`", + "concise_description": "Class member `TaskSerializerV10.Meta` overrides parent class `OwnedObjectSerializer` in an inconsistent manner", "severity": "error" }, { - "line": 2516, - "column": 17, - "stop_line": 2516, - "stop_column": 30, + "line": 2655, + "column": 11, + "stop_line": 2655, + "stop_column": 15, "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]`", + "name": "bad-override", + "description": "Class member `TaskSerializerV9.Meta` overrides parent class `ModelSerializer` in an inconsistent manner\n `TaskSerializerV9.Meta` has type `type[TaskSerializerV9.Meta]`, which is not assignable to `type[ModelSerializer.Meta]`, the type of `ModelSerializer.Meta`", + "concise_description": "Class member `TaskSerializerV9.Meta` overrides parent class `ModelSerializer` in an inconsistent manner", "severity": "error" }, { - "line": 2554, + "line": 2694, "column": 46, - "stop_line": 2554, + "stop_line": 2694, "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", + "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\n Argument `str` is not assignable to parameter `key` with type `PaperlessTask.TaskType` in function `dict.get`", "concise_description": "No matching overload found for function `dict.get` called with arguments: (str, str)", "severity": "error" }, { - "line": 2570, + "line": 2710, "column": 38, - "stop_line": 2570, + "stop_line": 2710, "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", + "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\n Argument `str` is not assignable to parameter `key` with type `PaperlessTask.Status` in function `dict.get`", "concise_description": "No matching overload found for function `dict.get` called with arguments: (str, str)", "severity": "error" }, { - "line": 2581, + "line": 2721, "column": 51, - "stop_line": 2581, + "stop_line": 2721, "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", + "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\n Argument `str` is not assignable to parameter `key` with type `PaperlessTask.TriggerSource` in function `dict.get`", "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, + "line": 2815, + "column": 11, + "stop_line": 2815, + "stop_column": 15, "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]`", + "name": "bad-override", + "description": "Class member `ShareLinkSerializer.Meta` overrides parent class `OwnedObjectSerializer` in an inconsistent manner\n `ShareLinkSerializer.Meta` has type `type[ShareLinkSerializer.Meta]`, which is not assignable to `type[ModelSerializer.Meta]`, the type of `OwnedObjectSerializer.Meta`", + "concise_description": "Class member `ShareLinkSerializer.Meta` overrides parent class `OwnedObjectSerializer` in an inconsistent manner", "severity": "error" }, { - "line": 2704, - "column": 17, - "stop_line": 2704, - "stop_column": 32, + "line": 2860, + "column": 11, + "stop_line": 2860, + "stop_column": 15, "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]`", + "name": "bad-override", + "description": "Class member `ShareLinkBundleSerializer.Meta` overrides parent class `OwnedObjectSerializer` in an inconsistent manner\n `ShareLinkBundleSerializer.Meta` has type `type[ShareLinkBundleSerializer.Meta]`, which is not assignable to `type[ModelSerializer.Meta]`, the type of `OwnedObjectSerializer.Meta`", + "concise_description": "Class member `ShareLinkBundleSerializer.Meta` overrides parent class `OwnedObjectSerializer` in an inconsistent manner", "severity": "error" }, { - "line": 2917, - "column": 17, - "stop_line": 2917, - "stop_column": 32, + "line": 3073, + "column": 11, + "stop_line": 3073, + "stop_column": 15, "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]`", + "name": "bad-override", + "description": "Class member `WorkflowTriggerSerializer.Meta` overrides parent class `ModelSerializer` in an inconsistent manner\n `WorkflowTriggerSerializer.Meta` has type `type[WorkflowTriggerSerializer.Meta]`, which is not assignable to `type[ModelSerializer.Meta]`, the type of `ModelSerializer.Meta`", + "concise_description": "Class member `WorkflowTriggerSerializer.Meta` overrides parent class `ModelSerializer` in an inconsistent manner", "severity": "error" }, { - "line": 3013, - "column": 17, - "stop_line": 3013, - "stop_column": 36, + "line": 3169, + "column": 11, + "stop_line": 3169, + "stop_column": 15, "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]`", + "name": "bad-override", + "description": "Class member `WorkflowActionEmailSerializer.Meta` overrides parent class `ModelSerializer` in an inconsistent manner\n `WorkflowActionEmailSerializer.Meta` has type `type[WorkflowActionEmailSerializer.Meta]`, which is not assignable to `type[ModelSerializer.Meta]`, the type of `ModelSerializer.Meta`", + "concise_description": "Class member `WorkflowActionEmailSerializer.Meta` overrides parent class `ModelSerializer` in an inconsistent manner", "severity": "error" }, { - "line": 3033, - "column": 17, - "stop_line": 3033, - "stop_column": 38, + "line": 3189, + "column": 11, + "stop_line": 3189, + "stop_column": 15, "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]`", + "name": "bad-override", + "description": "Class member `WorkflowActionWebhookSerializer.Meta` overrides parent class `ModelSerializer` in an inconsistent manner\n `WorkflowActionWebhookSerializer.Meta` has type `type[WorkflowActionWebhookSerializer.Meta]`, which is not assignable to `type[ModelSerializer.Meta]`, the type of `ModelSerializer.Meta`", + "concise_description": "Class member `WorkflowActionWebhookSerializer.Meta` overrides parent class `ModelSerializer` in an inconsistent manner", "severity": "error" }, { - "line": 3056, - "column": 17, - "stop_line": 3056, - "stop_column": 31, + "line": 3212, + "column": 11, + "stop_line": 3212, + "stop_column": 15, "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]`", + "name": "bad-override", + "description": "Class member `WorkflowActionSerializer.Meta` overrides parent class `ModelSerializer` in an inconsistent manner\n `WorkflowActionSerializer.Meta` has type `type[WorkflowActionSerializer.Meta]`, which is not assignable to `type[ModelSerializer.Meta]`, the type of `ModelSerializer.Meta`", + "concise_description": "Class member `WorkflowActionSerializer.Meta` overrides parent class `ModelSerializer` in an inconsistent manner", "severity": "error" }, { - "line": 3175, - "column": 17, - "stop_line": 3175, - "stop_column": 25, + "line": 3335, + "column": 11, + "stop_line": 3335, + "stop_column": 15, "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]`", + "name": "bad-override", + "description": "Class member `WorkflowSerializer.Meta` overrides parent class `ModelSerializer` in an inconsistent manner\n `WorkflowSerializer.Meta` has type `type[WorkflowSerializer.Meta]`, which is not assignable to `type[ModelSerializer.Meta]`, the type of `ModelSerializer.Meta`", + "concise_description": "Class member `WorkflowSerializer.Meta` overrides parent class `ModelSerializer` in an inconsistent manner", "severity": "error" }, { - "line": 3375, + "line": 3598, "column": 52, - "stop_line": 3375, + "stop_line": 3598, "stop_column": 60, "path": "src/documents/serialisers.py", "code": -2, @@ -2377,9 +2257,9 @@ "severity": "error" }, { - "line": 3375, + "line": 3598, "column": 62, - "stop_line": 3375, + "stop_line": 3598, "stop_column": 69, "path": "src/documents/serialisers.py", "code": -2, @@ -2389,81 +2269,81 @@ "severity": "error" }, { - "line": 124, + "line": 126, "column": 72, - "stop_line": 124, + "stop_line": 126, "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`", + "description": "Argument `DocumentClassifier | None` is not assignable to parameter `classifier` with type `DocumentClassifier` in function `documents.matching.match_correspondents`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", "concise_description": "Argument `DocumentClassifier | None` is not assignable to parameter `classifier` with type `DocumentClassifier` in function `documents.matching.match_correspondents`", "severity": "error" }, { - "line": 185, + "line": 187, "column": 72, - "stop_line": 185, + "stop_line": 187, "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`", + "description": "Argument `DocumentClassifier | None` is not assignable to parameter `classifier` with type `DocumentClassifier` in function `documents.matching.match_document_types`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", "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, + "line": 269, "column": 50, - "stop_line": 267, + "stop_line": 269, "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`", + "description": "Argument `DocumentClassifier | None` is not assignable to parameter `classifier` with type `DocumentClassifier` in function `documents.matching.match_tags`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", "concise_description": "Argument `DocumentClassifier | None` is not assignable to parameter `classifier` with type `DocumentClassifier` in function `documents.matching.match_tags`", "severity": "error" }, { - "line": 311, + "line": 313, "column": 70, - "stop_line": 311, + "stop_line": 313, "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`", + "description": "Argument `DocumentClassifier | None` is not assignable to parameter `classifier` with type `DocumentClassifier` in function `documents.matching.match_storage_paths`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", "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, + "line": 545, "column": 46, - "stop_line": 544, + "stop_line": 545, "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__`", + "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__`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", "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, + "line": 546, "column": 49, - "stop_line": 545, + "stop_line": 546, "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__`", + "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__`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", "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, + "line": 551, "column": 28, - "stop_line": 550, + "stop_line": 551, "stop_column": 52, "path": "src/documents/signals/handlers.py", "code": -2, @@ -2473,69 +2353,69 @@ "severity": "error" }, { - "line": 576, + "line": 577, "column": 43, - "stop_line": 576, + "stop_line": 577, "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", + "description": "`str` is not assignable to dict key `filename` with type `datetime`", + "concise_description": "`str` is not assignable to dict key `filename` with type `datetime`", "severity": "error" }, { - "line": 578, + "line": 579, "column": 51, - "stop_line": 578, + "stop_line": 579, "stop_column": 76, "path": "src/documents/signals/handlers.py", "code": -2, - "name": "bad-typed-dict-key", - "description": "`Any | None` is not assignable to TypedDict key `archive_filename` with type `datetime`", - "concise_description": "`Any | None` is not assignable to TypedDict key `archive_filename` with type `datetime`", - "severity": "error" - }, - { - "line": 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`", + "name": "bad-assignment", + "description": "`Any | None` is not assignable to dict key `archive_filename` with type `datetime`\n The declared type does not allow `None`. Consider changing the declared type to `datetime | None`.", + "concise_description": "`Any | None` is not assignable to dict key `archive_filename` with type `datetime`", "severity": "error" }, { "line": 598, "column": 21, "stop_line": 598, + "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`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", + "concise_description": "Argument `Path | None` is not assignable to parameter `old_path` with type `Path` in function `validate_move`", + "severity": "error" + }, + { + "line": 599, + "column": 21, + "stop_line": 599, "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`", + "description": "Argument `Path | None` is not assignable to parameter `new_path` with type `Path` in function `validate_move`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", "concise_description": "Argument `Path | None` is not assignable to parameter `new_path` with type `Path` in function `validate_move`", "severity": "error" }, { - "line": 601, + "line": 602, "column": 46, - "stop_line": 601, + "stop_line": 602, "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`", + "description": "Argument `Path | None` is not assignable to parameter `source_path` with type `Path` in function `documents.file_handling.create_source_path_directory`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", "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, + "line": 603, "column": 28, - "stop_line": 602, + "stop_line": 603, "stop_column": 69, "path": "src/documents/signals/handlers.py", "code": -2, @@ -2545,21 +2425,21 @@ "severity": "error" }, { - "line": 602, + "line": 603, "column": 29, - "stop_line": 602, + "stop_line": 603, "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__`", + "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__`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", "concise_description": "Argument `Path | None` is not assignable to parameter `src` with type `PathLike[str] | str` in function `shutil.move`", "severity": "error" }, { - "line": 622, + "line": 623, "column": 20, - "stop_line": 622, + "stop_line": 623, "stop_column": 33, "path": "src/documents/signals/handlers.py", "code": -2, @@ -2569,9 +2449,9 @@ "severity": "error" }, { - "line": 624, + "line": 625, "column": 55, - "stop_line": 624, + "stop_line": 625, "stop_column": 70, "path": "src/documents/signals/handlers.py", "code": -2, @@ -2581,9 +2461,9 @@ "severity": "error" }, { - "line": 626, + "line": 627, "column": 20, - "stop_line": 626, + "stop_line": 627, "stop_column": 32, "path": "src/documents/signals/handlers.py", "code": -2, @@ -2593,9 +2473,9 @@ "severity": "error" }, { - "line": 626, + "line": 627, "column": 37, - "stop_line": 626, + "stop_line": 627, "stop_column": 66, "path": "src/documents/signals/handlers.py", "code": -2, @@ -2605,9 +2485,9 @@ "severity": "error" }, { - "line": 628, + "line": 629, "column": 32, - "stop_line": 628, + "stop_line": 629, "stop_column": 73, "path": "src/documents/signals/handlers.py", "code": -2, @@ -2617,21 +2497,21 @@ "severity": "error" }, { - "line": 628, + "line": 629, "column": 33, - "stop_line": 628, + "stop_line": 629, "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__`", + "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__`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", "concise_description": "Argument `Path | None` is not assignable to parameter `src` with type `PathLike[str] | str` in function `shutil.move`", "severity": "error" }, { - "line": 628, + "line": 629, "column": 56, - "stop_line": 628, + "stop_line": 629, "stop_column": 72, "path": "src/documents/signals/handlers.py", "code": -2, @@ -2641,9 +2521,9 @@ "severity": "error" }, { - "line": 642, + "line": 643, "column": 33, - "stop_line": 642, + "stop_line": 643, "stop_column": 45, "path": "src/documents/signals/handlers.py", "code": -2, @@ -2653,9 +2533,9 @@ "severity": "error" }, { - "line": 643, + "line": 644, "column": 41, - "stop_line": 643, + "stop_line": 644, "stop_column": 61, "path": "src/documents/signals/handlers.py", "code": -2, @@ -2665,9 +2545,9 @@ "severity": "error" }, { - "line": 653, + "line": 654, "column": 49, - "stop_line": 653, + "stop_line": 654, "stop_column": 73, "path": "src/documents/signals/handlers.py", "code": -2, @@ -2677,21 +2557,21 @@ "severity": "error" }, { - "line": 655, + "line": 656, "column": 22, - "stop_line": 655, + "stop_line": 656, "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__`", + "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__`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", "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, + "line": 683, "column": 23, - "stop_line": 682, + "stop_line": 683, "stop_column": 50, "path": "src/documents/signals/handlers.py", "code": -2, @@ -2701,9 +2581,9 @@ "severity": "error" }, { - "line": 686, + "line": 687, "column": 5, - "stop_line": 686, + "stop_line": 687, "stop_column": 24, "path": "src/documents/signals/handlers.py", "code": -2, @@ -2713,9 +2593,9 @@ "severity": "error" }, { - "line": 690, + "line": 691, "column": 24, - "stop_line": 690, + "stop_line": 691, "stop_column": 43, "path": "src/documents/signals/handlers.py", "code": -2, @@ -2725,9 +2605,9 @@ "severity": "error" }, { - "line": 707, + "line": 708, "column": 13, - "stop_line": 707, + "stop_line": 708, "stop_column": 28, "path": "src/documents/signals/handlers.py", "code": -2, @@ -2737,9 +2617,9 @@ "severity": "error" }, { - "line": 721, + "line": 722, "column": 12, - "stop_line": 721, + "stop_line": 722, "stop_column": 51, "path": "src/documents/signals/handlers.py", "code": -2, @@ -2749,9 +2629,9 @@ "severity": "error" }, { - "line": 725, + "line": 726, "column": 13, - "stop_line": 725, + "stop_line": 726, "stop_column": 39, "path": "src/documents/signals/handlers.py", "code": -2, @@ -2761,9 +2641,9 @@ "severity": "error" }, { - "line": 764, + "line": 765, "column": 27, - "stop_line": 764, + "stop_line": 765, "stop_column": 51, "path": "src/documents/signals/handlers.py", "code": -2, @@ -2773,9 +2653,9 @@ "severity": "error" }, { - "line": 784, + "line": 785, "column": 17, - "stop_line": 784, + "stop_line": 785, "stop_column": 52, "path": "src/documents/signals/handlers.py", "code": -2, @@ -2785,9 +2665,9 @@ "severity": "error" }, { - "line": 884, + "line": 892, "column": 13, - "stop_line": 884, + "stop_line": 892, "stop_column": 33, "path": "src/documents/signals/handlers.py", "code": -2, @@ -2797,9 +2677,9 @@ "severity": "error" }, { - "line": 884, + "line": 892, "column": 60, - "stop_line": 884, + "stop_line": 892, "stop_column": 82, "path": "src/documents/signals/handlers.py", "code": -2, @@ -2809,9 +2689,9 @@ "severity": "error" }, { - "line": 931, + "line": 939, "column": 29, - "stop_line": 931, + "stop_line": 939, "stop_column": 37, "path": "src/documents/signals/handlers.py", "code": -2, @@ -2821,9 +2701,9 @@ "severity": "error" }, { - "line": 938, + "line": 946, "column": 59, - "stop_line": 938, + "stop_line": 946, "stop_column": 67, "path": "src/documents/signals/handlers.py", "code": -2, @@ -2833,9 +2713,33 @@ "severity": "error" }, { - "line": 965, + "line": 1006, + "column": 25, + "stop_line": 1006, + "stop_column": 61, + "path": "src/documents/signals/handlers.py", + "code": -2, + "name": "missing-attribute", + "description": "Object of class `Task` has no attribute `delay_on_commit`", + "concise_description": "Object of class `Task` has no attribute `delay_on_commit`", + "severity": "error" + }, + { + "line": 1008, + "column": 41, + "stop_line": 1008, + "stop_column": 52, + "path": "src/documents/signals/handlers.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": 1013, "column": 17, - "stop_line": 965, + "stop_line": 1013, "stop_column": 31, "path": "src/documents/signals/handlers.py", "code": -2, @@ -2845,9 +2749,9 @@ "severity": "error" }, { - "line": 965, + "line": 1013, "column": 34, - "stop_line": 965, + "stop_line": 1013, "stop_column": 48, "path": "src/documents/signals/handlers.py", "code": -2, @@ -2857,9 +2761,9 @@ "severity": "error" }, { - "line": 975, + "line": 1023, "column": 17, - "stop_line": 975, + "stop_line": 1023, "stop_column": 30, "path": "src/documents/signals/handlers.py", "code": -2, @@ -2869,21 +2773,21 @@ "severity": "error" }, { - "line": 1190, + "line": 1249, "column": 49, - "stop_line": 1190, + "stop_line": 1249, "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", + "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\n Argument `Unknown | None` is not assignable to parameter `key` with type `str` in function `dict.get`", "concise_description": "No matching overload found for function `dict.get` called with arguments: (Unknown | None, Literal[PaperlessTask.Status.FAILURE])", "severity": "error" }, { - "line": 1329, + "line": 1398, "column": 13, - "stop_line": 1329, + "stop_line": 1398, "stop_column": 28, "path": "src/documents/signals/handlers.py", "code": -2, @@ -2893,21 +2797,33 @@ "severity": "error" }, { - "line": 174, + "line": 1412, + "column": 13, + "stop_line": 1412, + "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": 232, "column": 21, - "stop_line": 174, + "stop_line": 232, "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__`", + "description": "Argument `str | None` is not assignable to parameter `task_id` with type `str` in function `documents.plugins.base.ConsumeTaskPlugin.__init__`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", "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, + "line": 276, "column": 16, - "stop_line": 218, + "stop_line": 276, "stop_column": 19, "path": "src/documents/tasks.py", "code": -2, @@ -2917,21 +2833,21 @@ "severity": "error" }, { - "line": 321, + "line": 395, "column": 49, - "stop_line": 321, + "stop_line": 395, "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`", + "description": "Argument `Path | None` is not assignable to parameter `path` with type `Path` in function `documents.utils.compute_checksum`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", "concise_description": "Argument `Path | None` is not assignable to parameter `path` with type `Path` in function `documents.utils.compute_checksum`", "severity": "error" }, { - "line": 337, + "line": 411, "column": 25, - "stop_line": 337, + "stop_line": 411, "stop_column": 52, "path": "src/documents/tasks.py", "code": -2, @@ -2941,9 +2857,9 @@ "severity": "error" }, { - "line": 361, + "line": 435, "column": 25, - "stop_line": 361, + "stop_line": 435, "stop_column": 52, "path": "src/documents/tasks.py", "code": -2, @@ -2953,21 +2869,21 @@ "severity": "error" }, { - "line": 374, + "line": 448, "column": 54, - "stop_line": 374, + "stop_line": 448, "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`", + "description": "Argument `Path | None` is not assignable to parameter `source_path` with type `Path` in function `documents.file_handling.create_source_path_directory`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", "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, + "line": 449, "column": 36, - "stop_line": 375, + "stop_line": 449, "stop_column": 86, "path": "src/documents/tasks.py", "code": -2, @@ -2977,21 +2893,21 @@ "severity": "error" }, { - "line": 375, + "line": 449, "column": 37, - "stop_line": 375, + "stop_line": 449, "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__`", + "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__`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", "concise_description": "Argument `Path | None` is not assignable to parameter `src` with type `PathLike[str] | str` in function `shutil.move`", "severity": "error" }, { - "line": 552, + "line": 626, "column": 33, - "stop_line": 552, + "stop_line": 626, "stop_column": 61, "path": "src/documents/tasks.py", "code": -2, @@ -3001,9 +2917,21 @@ "severity": "error" }, { - "line": 309, + "line": 108, + "column": 1, + "stop_line": 108, + "stop_column": 41, + "path": "src/documents/templating/filepath.py", + "code": -2, + "name": "unsupported-operation", + "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]]]`\n `Sized` is not assignable to upper bound `_StrPromise | str` of type variable `_StrOrPromiseT`", + "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" + }, + { + "line": 315, "column": 17, - "stop_line": 309, + "stop_line": 315, "stop_column": 66, "path": "src/documents/templating/filepath.py", "code": -2, @@ -3013,9 +2941,9 @@ "severity": "error" }, { - "line": 331, + "line": 340, "column": 12, - "stop_line": 331, + "stop_line": 340, "stop_column": 22, "path": "src/documents/templating/filepath.py", "code": -2, @@ -3032,7 +2960,7 @@ "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`", + "description": "`datetime | None` is not assignable to variable `value` with type `date | datetime | str`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check or changing the declared type to `date | datetime | str | None`.", "concise_description": "`datetime | None` is not assignable to variable `value` with type `date | datetime | str`", "severity": "error" }, @@ -3044,7 +2972,7 @@ "path": "src/documents/templating/filters.py", "code": -2, "name": "bad-assignment", - "description": "`date | None` is not assignable to variable `value` with type `datetime | str`", + "description": "`date | None` is not assignable to variable `value` with type `datetime | str`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check or changing the declared type to `datetime | str | None`.", "concise_description": "`date | None` is not assignable to variable `value` with type `datetime | str`", "severity": "error" }, @@ -3061,33 +2989,33 @@ "severity": "error" }, { - "line": 109, + "line": 29, + "column": 1, + "stop_line": 29, + "stop_column": 41, + "path": "src/documents/templating/workflows.py", + "code": -2, + "name": "unsupported-operation", + "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]]]`\n `Sized` is not assignable to upper bound `_StrPromise | str` of type variable `_StrOrPromiseT`", + "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" + }, + { + "line": 154, "column": 12, - "stop_line": 109, + "stop_line": 154, "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`", + "description": "Returned type `None` is not assignable to declared return type `str`\n The declared type does not allow `None`. Consider changing the declared type to `str | None`.", "concise_description": "Returned type `None` is not assignable to declared return type `str`", "severity": "error" }, { - "line": 86, + "line": 136, "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_line": 136, "stop_column": 49, "path": "src/documents/tests/conftest.py", "code": -2, @@ -3264,34 +3192,94 @@ "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, + "column": 47, "stop_line": 197, - "stop_column": 32, - "path": "src/documents/tests/management/test_management_sanity_checker.py", + "stop_column": 51, + "path": "src/documents/tests/search/test_backend.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`", + "name": "bad-argument-type", + "description": "Argument `UserFactory` is not assignable to parameter `user` with type `AbstractUser | None` in function `documents.search._backend.TantivyBackend.search_ids`", + "concise_description": "Argument `UserFactory` is not assignable to parameter `user` with type `AbstractUser | None` in function `documents.search._backend.TantivyBackend.search_ids`", "severity": "error" }, { - "line": 518, + "line": 199, + "column": 47, + "stop_line": 199, + "stop_column": 52, + "path": "src/documents/tests/search/test_backend.py", + "code": -2, + "name": "bad-argument-type", + "description": "Argument `UserFactory` is not assignable to parameter `user` with type `AbstractUser | None` in function `documents.search._backend.TantivyBackend.search_ids`", + "concise_description": "Argument `UserFactory` is not assignable to parameter `user` with type `AbstractUser | None` in function `documents.search._backend.TantivyBackend.search_ids`", + "severity": "error" + }, + { + "line": 205, + "column": 9, + "stop_line": 205, + "stop_column": 20, + "path": "src/documents/tests/search/test_backend.py", + "code": -2, + "name": "missing-attribute", + "description": "Object of class `UserFactory` has no attribute `groups`", + "concise_description": "Object of class `UserFactory` has no attribute `groups`", + "severity": "error" + }, + { + "line": 217, + "column": 47, + "stop_line": 217, + "stop_column": 51, + "path": "src/documents/tests/search/test_backend.py", + "code": -2, + "name": "bad-argument-type", + "description": "Argument `UserFactory` is not assignable to parameter `user` with type `AbstractUser | None` in function `documents.search._backend.TantivyBackend.search_ids`", + "concise_description": "Argument `UserFactory` is not assignable to parameter `user` with type `AbstractUser | None` in function `documents.search._backend.TantivyBackend.search_ids`", + "severity": "error" + }, + { + "line": 219, + "column": 47, + "stop_line": 219, + "stop_column": 52, + "path": "src/documents/tests/search/test_backend.py", + "code": -2, + "name": "bad-argument-type", + "description": "Argument `UserFactory` is not assignable to parameter `user` with type `AbstractUser | None` in function `documents.search._backend.TantivyBackend.search_ids`", + "concise_description": "Argument `UserFactory` is not assignable to parameter `user` with type `AbstractUser | None` in function `documents.search._backend.TantivyBackend.search_ids`", + "severity": "error" + }, + { + "line": 839, + "column": 9, + "stop_line": 839, + "stop_column": 28, + "path": "src/documents/tests/search/test_backend.py", + "code": -2, + "name": "missing-attribute", + "description": "Object of class `UserFactory` has no attribute `groups`", + "concise_description": "Object of class `UserFactory` has no attribute `groups`", + "severity": "error" + }, + { + "line": 852, + "column": 18, + "stop_line": 852, + "stop_column": 30, + "path": "src/documents/tests/search/test_backend.py", + "code": -2, + "name": "bad-argument-type", + "description": "Argument `UserFactory` is not assignable to parameter `user` with type `AbstractUser | None` in function `documents.search._backend.TantivyBackend.search_ids`", + "concise_description": "Argument `UserFactory` is not assignable to parameter `user` with type `AbstractUser | None` in function `documents.search._backend.TantivyBackend.search_ids`", + "severity": "error" + }, + { + "line": 841, "column": 16, - "stop_line": 518, + "stop_line": 841, "stop_column": 66, "path": "src/documents/tests/search/test_query.py", "code": -2, @@ -3301,9 +3289,9 @@ "severity": "error" }, { - "line": 529, + "line": 852, "column": 16, - "stop_line": 529, + "stop_line": 852, "stop_column": 66, "path": "src/documents/tests/search/test_query.py", "code": -2, @@ -3313,9 +3301,9 @@ "severity": "error" }, { - "line": 540, + "line": 863, "column": 16, - "stop_line": 540, + "stop_line": 863, "stop_column": 66, "path": "src/documents/tests/search/test_query.py", "code": -2, @@ -3325,9 +3313,9 @@ "severity": "error" }, { - "line": 551, + "line": 874, "column": 16, - "stop_line": 551, + "stop_line": 874, "stop_column": 66, "path": "src/documents/tests/search/test_query.py", "code": -2, @@ -3337,9 +3325,9 @@ "severity": "error" }, { - "line": 563, + "line": 886, "column": 16, - "stop_line": 563, + "stop_line": 886, "stop_column": 66, "path": "src/documents/tests/search/test_query.py", "code": -2, @@ -3385,33 +3373,45 @@ "severity": "error" }, { - "line": 25, - "column": 20, - "stop_line": 25, - "stop_column": 43, - "path": "src/documents/tests/test_admin.py", + "line": 119, + "column": 16, + "stop_line": 119, + "stop_column": 71, + "path": "src/documents/tests/search/test_tokenizer.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`", + "description": "Object of class `SearchResult` has no attribute `count`", + "concise_description": "Object of class `SearchResult` has no attribute `count`", "severity": "error" }, { - "line": 28, - "column": 17, - "stop_line": 28, - "stop_column": 32, + "line": 45, + "column": 9, + "stop_line": 45, + "stop_column": 15, + "path": "src/documents/tests/search/test_translate.py", + "code": -2, + "name": "not-iterable", + "description": "Type `None` is not iterable", + "concise_description": "Type `None` is not iterable", + "severity": "error" + }, + { + "line": 38, + "column": 12, + "stop_line": 38, + "stop_column": 60, "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`", + "name": "bad-return", + "description": "Returned type `AbstractBaseUser` is not assignable to declared return type `User`", + "concise_description": "Returned type `AbstractBaseUser` is not assignable to declared return type `User`", "severity": "error" }, { - "line": 55, + "line": 68, "column": 26, - "stop_line": 55, + "stop_line": 68, "stop_column": 65, "path": "src/documents/tests/test_admin.py", "code": -2, @@ -3421,21 +3421,33 @@ "severity": "error" }, { - "line": 126, + "line": 131, + "column": 16, + "stop_line": 131, + "stop_column": 28, + "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": 141, "column": 26, - "stop_line": 126, - "stop_column": 38, + "stop_line": 141, + "stop_column": 39, "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`", + "description": "Object of class `AbstractBaseUser` has no attribute `username`", + "concise_description": "Object of class `AbstractBaseUser` has no attribute `username`", "severity": "error" }, { - "line": 138, + "line": 144, "column": 9, - "stop_line": 138, + "stop_line": 144, "stop_column": 21, "path": "src/documents/tests/test_admin.py", "code": -2, @@ -3445,9 +3457,21 @@ "severity": "error" }, { - "line": 146, + "line": 159, + "column": 26, + "stop_line": 159, + "stop_column": 39, + "path": "src/documents/tests/test_admin.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": 162, "column": 9, - "stop_line": 146, + "stop_line": 162, "stop_column": 21, "path": "src/documents/tests/test_admin.py", "code": -2, @@ -3457,9 +3481,9 @@ "severity": "error" }, { - "line": 195, + "line": 206, "column": 30, - "stop_line": 195, + "stop_line": 206, "stop_column": 43, "path": "src/documents/tests/test_api_app_config.py", "code": -2, @@ -3469,9 +3493,9 @@ "severity": "error" }, { - "line": 208, + "line": 219, "column": 31, - "stop_line": 208, + "stop_line": 219, "stop_column": 44, "path": "src/documents/tests/test_api_app_config.py", "code": -2, @@ -3481,9 +3505,45 @@ "severity": "error" }, { - "line": 241, + "line": 232, + "column": 16, + "stop_line": 232, + "stop_column": 35, + "path": "src/documents/tests/test_api_app_config.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": 243, + "column": 50, + "stop_line": 243, + "stop_column": 58, + "path": "src/documents/tests/test_api_app_config.py", + "code": -2, + "name": "bad-argument-type", + "description": "Argument `_MonkeyPatchedResponse` is not assignable to parameter `response` with type `StreamingHttpResponse` in function `documents.tests.utils.read_streaming_response`", + "concise_description": "Argument `_MonkeyPatchedResponse` is not assignable to parameter `response` with type `StreamingHttpResponse` in function `documents.tests.utils.read_streaming_response`", + "severity": "error" + }, + { + "line": 255, + "column": 10, + "stop_line": 255, + "stop_column": 29, + "path": "src/documents/tests/test_api_app_config.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": 292, "column": 25, - "stop_line": 241, + "stop_line": 292, "stop_column": 45, "path": "src/documents/tests/test_api_app_config.py", "code": -2, @@ -3493,9 +3553,9 @@ "severity": "error" }, { - "line": 277, + "line": 328, "column": 25, - "stop_line": 277, + "stop_line": 328, "stop_column": 45, "path": "src/documents/tests/test_api_app_config.py", "code": -2, @@ -3505,9 +3565,9 @@ "severity": "error" }, { - "line": 278, + "line": 329, "column": 27, - "stop_line": 278, + "stop_line": 329, "stop_column": 43, "path": "src/documents/tests/test_api_app_config.py", "code": -2, @@ -3517,17 +3577,101 @@ "severity": "error" }, { - "line": 57, + "line": 58, "column": 20, - "stop_line": 57, + "stop_line": 58, "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", + "description": "No matching overload found for function `shutil.copy` called with arguments: (Path, Path | None)\n Possible overloads:\n (src: StrPath, dst: _StrPathT, *, ...) -> str | _StrPathT [closest match]\n (src: BytesPath, dst: _BytesPathT, *, ...) -> bytes | _BytesPathT\n `Path | None` is not assignable to upper bound `PathLike[str] | str` of type variable `_StrPathT`", "concise_description": "No matching overload found for function `shutil.copy` called with arguments: (Path, Path | None)", "severity": "error" }, + { + "line": 72, + "column": 65, + "stop_line": 72, + "stop_column": 73, + "path": "src/documents/tests/test_api_bulk_download.py", + "code": -2, + "name": "bad-argument-type", + "description": "Argument `_MonkeyPatchedResponse` is not assignable to parameter `response` with type `StreamingHttpResponse` in function `documents.tests.utils.read_streaming_response`", + "concise_description": "Argument `_MonkeyPatchedResponse` is not assignable to parameter `response` with type `StreamingHttpResponse` in function `documents.tests.utils.read_streaming_response`", + "severity": "error" + }, + { + "line": 93, + "column": 65, + "stop_line": 93, + "stop_column": 73, + "path": "src/documents/tests/test_api_bulk_download.py", + "code": -2, + "name": "bad-argument-type", + "description": "Argument `_MonkeyPatchedResponse` is not assignable to parameter `response` with type `StreamingHttpResponse` in function `documents.tests.utils.read_streaming_response`", + "concise_description": "Argument `_MonkeyPatchedResponse` is not assignable to parameter `response` with type `StreamingHttpResponse` in function `documents.tests.utils.read_streaming_response`", + "severity": "error" + }, + { + "line": 114, + "column": 65, + "stop_line": 114, + "stop_column": 73, + "path": "src/documents/tests/test_api_bulk_download.py", + "code": -2, + "name": "bad-argument-type", + "description": "Argument `_MonkeyPatchedResponse` is not assignable to parameter `response` with type `StreamingHttpResponse` in function `documents.tests.utils.read_streaming_response`", + "concise_description": "Argument `_MonkeyPatchedResponse` is not assignable to parameter `response` with type `StreamingHttpResponse` in function `documents.tests.utils.read_streaming_response`", + "severity": "error" + }, + { + "line": 148, + "column": 65, + "stop_line": 148, + "stop_column": 73, + "path": "src/documents/tests/test_api_bulk_download.py", + "code": -2, + "name": "bad-argument-type", + "description": "Argument `_MonkeyPatchedResponse` is not assignable to parameter `response` with type `StreamingHttpResponse` in function `documents.tests.utils.read_streaming_response`", + "concise_description": "Argument `_MonkeyPatchedResponse` is not assignable to parameter `response` with type `StreamingHttpResponse` in function `documents.tests.utils.read_streaming_response`", + "severity": "error" + }, + { + "line": 208, + "column": 65, + "stop_line": 208, + "stop_column": 73, + "path": "src/documents/tests/test_api_bulk_download.py", + "code": -2, + "name": "bad-argument-type", + "description": "Argument `_MonkeyPatchedResponse` is not assignable to parameter `response` with type `StreamingHttpResponse` in function `documents.tests.utils.read_streaming_response`", + "concise_description": "Argument `_MonkeyPatchedResponse` is not assignable to parameter `response` with type `StreamingHttpResponse` in function `documents.tests.utils.read_streaming_response`", + "severity": "error" + }, + { + "line": 254, + "column": 65, + "stop_line": 254, + "stop_column": 73, + "path": "src/documents/tests/test_api_bulk_download.py", + "code": -2, + "name": "bad-argument-type", + "description": "Argument `_MonkeyPatchedResponse` is not assignable to parameter `response` with type `StreamingHttpResponse` in function `documents.tests.utils.read_streaming_response`", + "concise_description": "Argument `_MonkeyPatchedResponse` is not assignable to parameter `response` with type `StreamingHttpResponse` in function `documents.tests.utils.read_streaming_response`", + "severity": "error" + }, + { + "line": 303, + "column": 65, + "stop_line": 303, + "stop_column": 73, + "path": "src/documents/tests/test_api_bulk_download.py", + "code": -2, + "name": "bad-argument-type", + "description": "Argument `_MonkeyPatchedResponse` is not assignable to parameter `response` with type `StreamingHttpResponse` in function `documents.tests.utils.read_streaming_response`", + "concise_description": "Argument `_MonkeyPatchedResponse` is not assignable to parameter `response` with type `StreamingHttpResponse` in function `documents.tests.utils.read_streaming_response`", + "severity": "error" + }, { "line": 279, "column": 17, @@ -3841,9 +3985,69 @@ "severity": "error" }, { - "line": 306, + "line": 464, + "column": 50, + "stop_line": 464, + "stop_column": 54, + "path": "src/documents/tests/test_api_document_versions.py", + "code": -2, + "name": "bad-argument-type", + "description": "Argument `_MonkeyPatchedResponse` is not assignable to parameter `response` with type `StreamingHttpResponse` in function `documents.tests.utils.read_streaming_response`", + "concise_description": "Argument `_MonkeyPatchedResponse` is not assignable to parameter `response` with type `StreamingHttpResponse` in function `documents.tests.utils.read_streaming_response`", + "severity": "error" + }, + { + "line": 470, + "column": 50, + "stop_line": 470, + "stop_column": 54, + "path": "src/documents/tests/test_api_document_versions.py", + "code": -2, + "name": "bad-argument-type", + "description": "Argument `_MonkeyPatchedResponse` is not assignable to parameter `response` with type `StreamingHttpResponse` in function `documents.tests.utils.read_streaming_response`", + "concise_description": "Argument `_MonkeyPatchedResponse` is not assignable to parameter `response` with type `StreamingHttpResponse` in function `documents.tests.utils.read_streaming_response`", + "severity": "error" + }, + { + "line": 476, + "column": 50, + "stop_line": 476, + "stop_column": 54, + "path": "src/documents/tests/test_api_document_versions.py", + "code": -2, + "name": "bad-argument-type", + "description": "Argument `_MonkeyPatchedResponse` is not assignable to parameter `response` with type `StreamingHttpResponse` in function `documents.tests.utils.read_streaming_response`", + "concise_description": "Argument `_MonkeyPatchedResponse` is not assignable to parameter `response` with type `StreamingHttpResponse` in function `documents.tests.utils.read_streaming_response`", + "severity": "error" + }, + { + "line": 495, + "column": 50, + "stop_line": 495, + "stop_column": 54, + "path": "src/documents/tests/test_api_document_versions.py", + "code": -2, + "name": "bad-argument-type", + "description": "Argument `_MonkeyPatchedResponse` is not assignable to parameter `response` with type `StreamingHttpResponse` in function `documents.tests.utils.read_streaming_response`", + "concise_description": "Argument `_MonkeyPatchedResponse` is not assignable to parameter `response` with type `StreamingHttpResponse` in function `documents.tests.utils.read_streaming_response`", + "severity": "error" + }, + { + "line": 510, + "column": 50, + "stop_line": 510, + "stop_column": 54, + "path": "src/documents/tests/test_api_document_versions.py", + "code": -2, + "name": "bad-argument-type", + "description": "Argument `_MonkeyPatchedResponse` is not assignable to parameter `response` with type `StreamingHttpResponse` in function `documents.tests.utils.read_streaming_response`", + "concise_description": "Argument `_MonkeyPatchedResponse` is not assignable to parameter `response` with type `StreamingHttpResponse` in function `documents.tests.utils.read_streaming_response`", + "severity": "error" + }, + { + "line": 310, "column": 44, - "stop_line": 306, + "stop_line": 310, "stop_column": 67, "path": "src/documents/tests/test_api_documents.py", "code": -2, @@ -3853,9 +4057,9 @@ "severity": "error" }, { - "line": 321, + "line": 325, "column": 31, - "stop_line": 321, + "stop_line": 325, "stop_column": 54, "path": "src/documents/tests/test_api_documents.py", "code": -2, @@ -3865,9 +4069,45 @@ "severity": "error" }, { - "line": 351, + "line": 331, + "column": 50, + "stop_line": 331, + "stop_column": 58, + "path": "src/documents/tests/test_api_documents.py", + "code": -2, + "name": "bad-argument-type", + "description": "Argument `_MonkeyPatchedResponse` is not assignable to parameter `response` with type `StreamingHttpResponse` in function `documents.tests.utils.read_streaming_response`", + "concise_description": "Argument `_MonkeyPatchedResponse` is not assignable to parameter `response` with type `StreamingHttpResponse` in function `documents.tests.utils.read_streaming_response`", + "severity": "error" + }, + { + "line": 335, + "column": 50, + "stop_line": 335, + "stop_column": 58, + "path": "src/documents/tests/test_api_documents.py", + "code": -2, + "name": "bad-argument-type", + "description": "Argument `_MonkeyPatchedResponse` is not assignable to parameter `response` with type `StreamingHttpResponse` in function `documents.tests.utils.read_streaming_response`", + "concise_description": "Argument `_MonkeyPatchedResponse` is not assignable to parameter `response` with type `StreamingHttpResponse` in function `documents.tests.utils.read_streaming_response`", + "severity": "error" + }, + { + "line": 339, + "column": 50, + "stop_line": 339, + "stop_column": 58, + "path": "src/documents/tests/test_api_documents.py", + "code": -2, + "name": "bad-argument-type", + "description": "Argument `_MonkeyPatchedResponse` is not assignable to parameter `response` with type `StreamingHttpResponse` in function `documents.tests.utils.read_streaming_response`", + "concise_description": "Argument `_MonkeyPatchedResponse` is not assignable to parameter `response` with type `StreamingHttpResponse` in function `documents.tests.utils.read_streaming_response`", + "severity": "error" + }, + { + "line": 352, "column": 44, - "stop_line": 351, + "stop_line": 352, "stop_column": 67, "path": "src/documents/tests/test_api_documents.py", "code": -2, @@ -3877,9 +4117,9 @@ "severity": "error" }, { - "line": 373, + "line": 374, "column": 20, - "stop_line": 373, + "stop_line": 374, "stop_column": 43, "path": "src/documents/tests/test_api_documents.py", "code": -2, @@ -3889,17 +4129,65 @@ "severity": "error" }, { - "line": 411, + "line": 415, "column": 19, - "stop_line": 411, + "stop_line": 415, "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__`", + "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__`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", "concise_description": "Argument `Path | None` is not assignable to parameter `*args` with type `PathLike[str] | str` in function `pathlib.Path.__new__`", "severity": "error" }, + { + "line": 420, + "column": 50, + "stop_line": 420, + "stop_column": 58, + "path": "src/documents/tests/test_api_documents.py", + "code": -2, + "name": "bad-argument-type", + "description": "Argument `_MonkeyPatchedResponse` is not assignable to parameter `response` with type `StreamingHttpResponse` in function `documents.tests.utils.read_streaming_response`", + "concise_description": "Argument `_MonkeyPatchedResponse` is not assignable to parameter `response` with type `StreamingHttpResponse` in function `documents.tests.utils.read_streaming_response`", + "severity": "error" + }, + { + "line": 426, + "column": 50, + "stop_line": 426, + "stop_column": 58, + "path": "src/documents/tests/test_api_documents.py", + "code": -2, + "name": "bad-argument-type", + "description": "Argument `_MonkeyPatchedResponse` is not assignable to parameter `response` with type `StreamingHttpResponse` in function `documents.tests.utils.read_streaming_response`", + "concise_description": "Argument `_MonkeyPatchedResponse` is not assignable to parameter `response` with type `StreamingHttpResponse` in function `documents.tests.utils.read_streaming_response`", + "severity": "error" + }, + { + "line": 430, + "column": 50, + "stop_line": 430, + "stop_column": 58, + "path": "src/documents/tests/test_api_documents.py", + "code": -2, + "name": "bad-argument-type", + "description": "Argument `_MonkeyPatchedResponse` is not assignable to parameter `response` with type `StreamingHttpResponse` in function `documents.tests.utils.read_streaming_response`", + "concise_description": "Argument `_MonkeyPatchedResponse` is not assignable to parameter `response` with type `StreamingHttpResponse` in function `documents.tests.utils.read_streaming_response`", + "severity": "error" + }, + { + "line": 436, + "column": 50, + "stop_line": 436, + "stop_column": 58, + "path": "src/documents/tests/test_api_documents.py", + "code": -2, + "name": "bad-argument-type", + "description": "Argument `_MonkeyPatchedResponse` is not assignable to parameter `response` with type `StreamingHttpResponse` in function `documents.tests.utils.read_streaming_response`", + "concise_description": "Argument `_MonkeyPatchedResponse` is not assignable to parameter `response` with type `StreamingHttpResponse` in function `documents.tests.utils.read_streaming_response`", + "severity": "error" + }, { "line": 453, "column": 19, @@ -3908,14 +4196,74 @@ "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__`", + "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__`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", "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, + "line": 524, + "column": 45, + "stop_line": 524, + "stop_column": 53, + "path": "src/documents/tests/test_api_documents.py", + "code": -2, + "name": "bad-argument-type", + "description": "Argument `_MonkeyPatchedResponse` is not assignable to parameter `response` with type `StreamingHttpResponse` in function `documents.tests.utils.read_streaming_response`", + "concise_description": "Argument `_MonkeyPatchedResponse` is not assignable to parameter `response` with type `StreamingHttpResponse` in function `documents.tests.utils.read_streaming_response`", + "severity": "error" + }, + { + "line": 576, + "column": 44, + "stop_line": 576, + "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": 589, + "column": 15, + "stop_line": 589, + "stop_column": 38, + "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": 596, + "column": 50, + "stop_line": 596, + "stop_column": 58, + "path": "src/documents/tests/test_api_documents.py", + "code": -2, + "name": "bad-argument-type", + "description": "Argument `_MonkeyPatchedResponse` is not assignable to parameter `response` with type `StreamingHttpResponse` in function `documents.tests.utils.read_streaming_response`", + "concise_description": "Argument `_MonkeyPatchedResponse` is not assignable to parameter `response` with type `StreamingHttpResponse` in function `documents.tests.utils.read_streaming_response`", + "severity": "error" + }, + { + "line": 600, + "column": 50, + "stop_line": 600, + "stop_column": 58, + "path": "src/documents/tests/test_api_documents.py", + "code": -2, + "name": "bad-argument-type", + "description": "Argument `_MonkeyPatchedResponse` is not assignable to parameter `response` with type `StreamingHttpResponse` in function `documents.tests.utils.read_streaming_response`", + "concise_description": "Argument `_MonkeyPatchedResponse` is not assignable to parameter `response` with type `StreamingHttpResponse` in function `documents.tests.utils.read_streaming_response`", + "severity": "error" + }, + { + "line": 1931, "column": 13, - "stop_line": 1468, + "stop_line": 1931, "stop_column": 20, "path": "src/documents/tests/test_api_documents.py", "code": -2, @@ -3925,21 +4273,21 @@ "severity": "error" }, { - "line": 1732, + "line": 2195, "column": 31, - "stop_line": 1732, + "stop_line": 2195, "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__`", + "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__`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", "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, + "line": 2342, "column": 9, - "stop_line": 1879, + "stop_line": 2342, "stop_column": 25, "path": "src/documents/tests/test_api_documents.py", "code": -2, @@ -3949,21 +4297,21 @@ "severity": "error" }, { - "line": 2063, + "line": 2526, "column": 20, - "stop_line": 2063, + "stop_line": 2526, "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", + "description": "No matching overload found for function `shutil.copy` called with arguments: (Path, Path | None)\n Possible overloads:\n (src: StrPath, dst: _StrPathT, *, ...) -> str | _StrPathT [closest match]\n (src: BytesPath, dst: _BytesPathT, *, ...) -> bytes | _BytesPathT\n `Path | None` is not assignable to upper bound `PathLike[str] | str` of type variable `_StrPathT`", "concise_description": "No matching overload found for function `shutil.copy` called with arguments: (Path, Path | None)", "severity": "error" }, { - "line": 2556, + "line": 3042, "column": 31, - "stop_line": 2556, + "stop_line": 3042, "stop_column": 52, "path": "src/documents/tests/test_api_documents.py", "code": -2, @@ -3973,9 +4321,9 @@ "severity": "error" }, { - "line": 2576, + "line": 3062, "column": 31, - "stop_line": 2576, + "stop_line": 3062, "stop_column": 52, "path": "src/documents/tests/test_api_documents.py", "code": -2, @@ -3985,9 +4333,9 @@ "severity": "error" }, { - "line": 2594, + "line": 3081, "column": 26, - "stop_line": 2594, + "stop_line": 3081, "stop_column": 41, "path": "src/documents/tests/test_api_documents.py", "code": -2, @@ -3997,9 +4345,9 @@ "severity": "error" }, { - "line": 2606, + "line": 3094, "column": 26, - "stop_line": 2606, + "stop_line": 3094, "stop_column": 41, "path": "src/documents/tests/test_api_documents.py", "code": -2, @@ -4009,9 +4357,9 @@ "severity": "error" }, { - "line": 2614, + "line": 3102, "column": 26, - "stop_line": 2614, + "stop_line": 3102, "stop_column": 41, "path": "src/documents/tests/test_api_documents.py", "code": -2, @@ -4021,9 +4369,9 @@ "severity": "error" }, { - "line": 2615, + "line": 3103, "column": 26, - "stop_line": 2615, + "stop_line": 3103, "stop_column": 41, "path": "src/documents/tests/test_api_documents.py", "code": -2, @@ -4033,9 +4381,9 @@ "severity": "error" }, { - "line": 2623, + "line": 3111, "column": 26, - "stop_line": 2623, + "stop_line": 3111, "stop_column": 41, "path": "src/documents/tests/test_api_documents.py", "code": -2, @@ -4045,9 +4393,9 @@ "severity": "error" }, { - "line": 2975, + "line": 3470, "column": 27, - "stop_line": 2975, + "stop_line": 3470, "stop_column": 39, "path": "src/documents/tests/test_api_documents.py", "code": -2, @@ -4057,9 +4405,9 @@ "severity": "error" }, { - "line": 2976, + "line": 3471, "column": 33, - "stop_line": 2976, + "stop_line": 3471, "stop_column": 51, "path": "src/documents/tests/test_api_documents.py", "code": -2, @@ -4069,9 +4417,9 @@ "severity": "error" }, { - "line": 2977, + "line": 3472, "column": 35, - "stop_line": 2977, + "stop_line": 3472, "stop_column": 55, "path": "src/documents/tests/test_api_documents.py", "code": -2, @@ -4081,9 +4429,9 @@ "severity": "error" }, { - "line": 2978, + "line": 3473, "column": 34, - "stop_line": 2978, + "stop_line": 3473, "stop_column": 53, "path": "src/documents/tests/test_api_documents.py", "code": -2, @@ -4093,21 +4441,21 @@ "severity": "error" }, { - "line": 3676, + "line": 4211, "column": 20, - "stop_line": 3676, + "stop_line": 4211, "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", + "description": "No matching overload found for function `shutil.copy` called with arguments: (Path, Path | None)\n Possible overloads:\n (src: StrPath, dst: _StrPathT, *, ...) -> str | _StrPathT [closest match]\n (src: BytesPath, dst: _BytesPathT, *, ...) -> bytes | _BytesPathT\n `Path | None` is not assignable to upper bound `PathLike[str] | str` of type variable `_StrPathT`", "concise_description": "No matching overload found for function `shutil.copy` called with arguments: (Path, Path | None)", "severity": "error" }, { - "line": 4016, + "line": 4551, "column": 23, - "stop_line": 4016, + "stop_line": 4551, "stop_column": 50, "path": "src/documents/tests/test_api_documents.py", "code": -2, @@ -4124,7 +4472,7 @@ "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", + "description": "No matching overload found for function `shutil.copy` called with arguments: (Path, Path | None)\n Possible overloads:\n (src: StrPath, dst: _StrPathT, *, ...) -> str | _StrPathT [closest match]\n (src: BytesPath, dst: _BytesPathT, *, ...) -> bytes | _BytesPathT\n `Path | None` is not assignable to upper bound `PathLike[str] | str` of type variable `_StrPathT`", "concise_description": "No matching overload found for function `shutil.copy` called with arguments: (Path, Path | None)", "severity": "error" }, @@ -4141,9 +4489,9 @@ "severity": "error" }, { - "line": 27, + "line": 28, "column": 16, - "stop_line": 27, + "stop_line": 28, "stop_column": 44, "path": "src/documents/tests/test_api_filter_by_custom_fields.py", "code": -2, @@ -4153,9 +4501,9 @@ "severity": "error" }, { - "line": 30, + "line": 31, "column": 16, - "stop_line": 30, + "stop_line": 31, "stop_column": 44, "path": "src/documents/tests/test_api_filter_by_custom_fields.py", "code": -2, @@ -4165,9 +4513,9 @@ "severity": "error" }, { - "line": 528, + "line": 529, "column": 16, - "stop_line": 528, + "stop_line": 529, "stop_column": 39, "path": "src/documents/tests/test_api_filter_by_custom_fields.py", "code": -2, @@ -4177,9 +4525,9 @@ "severity": "error" }, { - "line": 222, + "line": 226, "column": 26, - "stop_line": 222, + "stop_line": 226, "stop_column": 36, "path": "src/documents/tests/test_api_permissions.py", "code": -2, @@ -4189,9 +4537,9 @@ "severity": "error" }, { - "line": 252, + "line": 256, "column": 26, - "stop_line": 252, + "stop_line": 256, "stop_column": 36, "path": "src/documents/tests/test_api_permissions.py", "code": -2, @@ -4201,33 +4549,33 @@ "severity": "error" }, { - "line": 299, + "line": 303, "column": 55, - "stop_line": 299, + "stop_line": 303, "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`", + "description": "Argument `Tag | None` is not assignable to parameter `obj` with type `Model` in function `guardian.core.ObjectPermissionChecker.has_perm`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", "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, + "line": 304, "column": 53, - "stop_line": 300, + "stop_line": 304, "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`", + "description": "Argument `Tag | None` is not assignable to parameter `obj` with type `Model` in function `guardian.shortcuts.get_perms`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", "concise_description": "Argument `Tag | None` is not assignable to parameter `obj` with type `Model` in function `guardian.shortcuts.get_perms`", "severity": "error" }, { - "line": 344, + "line": 348, "column": 26, - "stop_line": 344, + "stop_line": 348, "stop_column": 36, "path": "src/documents/tests/test_api_permissions.py", "code": -2, @@ -4237,17 +4585,41 @@ "severity": "error" }, { - "line": 345, + "line": 349, "column": 53, - "stop_line": 345, + "stop_line": 349, "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`", + "description": "Argument `Tag | None` is not assignable to parameter `obj` with type `Model` in function `guardian.shortcuts.get_perms`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", "concise_description": "Argument `Tag | None` is not assignable to parameter `obj` with type `Model` in function `guardian.shortcuts.get_perms`", "severity": "error" }, + { + "line": 68, + "column": 49, + "stop_line": 68, + "stop_column": 67, + "path": "src/documents/tests/test_api_post_document_nfc.py", + "code": -2, + "name": "bad-argument-type", + "description": "Argument `str | None` is not assignable to parameter `unistr` with type `str` in function `unicodedata.is_normalized`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", + "concise_description": "Argument `str | None` is not assignable to parameter `unistr` with type `str` in function `unicodedata.is_normalized`", + "severity": "error" + }, + { + "line": 95, + "column": 49, + "stop_line": 95, + "stop_column": 67, + "path": "src/documents/tests/test_api_post_document_nfc.py", + "code": -2, + "name": "bad-argument-type", + "description": "Argument `str | None` is not assignable to parameter `unistr` with type `str` in function `unicodedata.is_normalized`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", + "concise_description": "Argument `str | None` is not assignable to parameter `unistr` with type `str` in function `unicodedata.is_normalized`", + "severity": "error" + }, { "line": 46, "column": 21, @@ -4321,9 +4693,9 @@ "severity": "error" }, { - "line": 83, + "line": 84, "column": 14, - "stop_line": 83, + "stop_line": 84, "stop_column": 33, "path": "src/documents/tests/test_api_schema.py", "code": -2, @@ -4333,9 +4705,9 @@ "severity": "error" }, { - "line": 90, + "line": 91, "column": 14, - "stop_line": 90, + "stop_line": 91, "stop_column": 33, "path": "src/documents/tests/test_api_schema.py", "code": -2, @@ -4345,9 +4717,9 @@ "severity": "error" }, { - "line": 96, + "line": 97, "column": 21, - "stop_line": 96, + "stop_line": 97, "stop_column": 45, "path": "src/documents/tests/test_api_schema.py", "code": -2, @@ -4357,9 +4729,9 @@ "severity": "error" }, { - "line": 107, + "line": 108, "column": 14, - "stop_line": 107, + "stop_line": 108, "stop_column": 33, "path": "src/documents/tests/test_api_schema.py", "code": -2, @@ -4369,9 +4741,9 @@ "severity": "error" }, { - "line": 119, + "line": 120, "column": 14, - "stop_line": 119, + "stop_line": 120, "stop_column": 33, "path": "src/documents/tests/test_api_schema.py", "code": -2, @@ -4381,9 +4753,9 @@ "severity": "error" }, { - "line": 126, + "line": 127, "column": 14, - "stop_line": 126, + "stop_line": 127, "stop_column": 33, "path": "src/documents/tests/test_api_schema.py", "code": -2, @@ -4393,9 +4765,9 @@ "severity": "error" }, { - "line": 132, + "line": 133, "column": 34, - "stop_line": 132, + "stop_line": 133, "stop_column": 58, "path": "src/documents/tests/test_api_schema.py", "code": -2, @@ -4405,9 +4777,9 @@ "severity": "error" }, { - "line": 144, + "line": 145, "column": 17, - "stop_line": 144, + "stop_line": 145, "stop_column": 41, "path": "src/documents/tests/test_api_schema.py", "code": -2, @@ -4417,9 +4789,9 @@ "severity": "error" }, { - "line": 155, + "line": 156, "column": 17, - "stop_line": 155, + "stop_line": 156, "stop_column": 41, "path": "src/documents/tests/test_api_schema.py", "code": -2, @@ -4429,9 +4801,9 @@ "severity": "error" }, { - "line": 160, + "line": 161, "column": 26, - "stop_line": 160, + "stop_line": 161, "stop_column": 50, "path": "src/documents/tests/test_api_schema.py", "code": -2, @@ -4441,9 +4813,9 @@ "severity": "error" }, { - "line": 190, + "line": 191, "column": 14, - "stop_line": 190, + "stop_line": 191, "stop_column": 33, "path": "src/documents/tests/test_api_schema.py", "code": -2, @@ -4453,9 +4825,9 @@ "severity": "error" }, { - "line": 200, + "line": 201, "column": 14, - "stop_line": 200, + "stop_line": 201, "stop_column": 33, "path": "src/documents/tests/test_api_schema.py", "code": -2, @@ -4465,9 +4837,9 @@ "severity": "error" }, { - "line": 217, + "line": 218, "column": 14, - "stop_line": 217, + "stop_line": 218, "stop_column": 33, "path": "src/documents/tests/test_api_schema.py", "code": -2, @@ -4477,9 +4849,9 @@ "severity": "error" }, { - "line": 222, + "line": 223, "column": 20, - "stop_line": 222, + "stop_line": 223, "stop_column": 44, "path": "src/documents/tests/test_api_schema.py", "code": -2, @@ -4489,9 +4861,9 @@ "severity": "error" }, { - "line": 251, + "line": 252, "column": 14, - "stop_line": 251, + "stop_line": 252, "stop_column": 33, "path": "src/documents/tests/test_api_schema.py", "code": -2, @@ -4501,9 +4873,9 @@ "severity": "error" }, { - "line": 257, + "line": 258, "column": 14, - "stop_line": 257, + "stop_line": 258, "stop_column": 33, "path": "src/documents/tests/test_api_schema.py", "code": -2, @@ -4513,9 +4885,9 @@ "severity": "error" }, { - "line": 262, + "line": 263, "column": 21, - "stop_line": 262, + "stop_line": 263, "stop_column": 45, "path": "src/documents/tests/test_api_schema.py", "code": -2, @@ -4525,9 +4897,81 @@ "severity": "error" }, { - "line": 1647, + "line": 273, + "column": 51, + "stop_line": 273, + "stop_column": 70, + "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": 276, + "column": 14, + "stop_line": 276, + "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": 283, + "column": 14, + "stop_line": 283, + "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": 291, + "column": 14, + "stop_line": 291, + "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": 304, + "column": 14, + "stop_line": 304, + "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": 309, + "column": 14, + "stop_line": 309, + "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": 1782, "column": 25, - "stop_line": 1647, + "stop_line": 1782, "stop_column": 58, "path": "src/documents/tests/test_api_search.py", "code": -2, @@ -4537,9 +4981,9 @@ "severity": "error" }, { - "line": 1647, + "line": 1782, "column": 25, - "stop_line": 1647, + "stop_line": 1782, "stop_column": 58, "path": "src/documents/tests/test_api_search.py", "code": -2, @@ -4549,9 +4993,9 @@ "severity": "error" }, { - "line": 1647, + "line": 1782, "column": 25, - "stop_line": 1647, + "stop_line": 1782, "stop_column": 58, "path": "src/documents/tests/test_api_search.py", "code": -2, @@ -4561,9 +5005,9 @@ "severity": "error" }, { - "line": 1647, + "line": 1782, "column": 28, - "stop_line": 1647, + "stop_line": 1782, "stop_column": 40, "path": "src/documents/tests/test_api_search.py", "code": -2, @@ -4573,9 +5017,9 @@ "severity": "error" }, { - "line": 1647, + "line": 1782, "column": 46, - "stop_line": 1647, + "stop_line": 1782, "stop_column": 58, "path": "src/documents/tests/test_api_search.py", "code": -2, @@ -4585,177 +5029,9 @@ "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, + "line": 87, "column": 23, - "stop_line": 83, + "stop_line": 87, "stop_column": 49, "path": "src/documents/tests/test_api_uisettings.py", "code": -2, @@ -4776,6 +5052,42 @@ "concise_description": "Object of class `NoneType` has no attribute `pk`", "severity": "error" }, + { + "line": 691, + "column": 13, + "stop_line": 691, + "stop_column": 40, + "path": "src/documents/tests/test_api_workflows.py", + "code": -2, + "name": "missing-attribute", + "description": "Object of class `NoneType` has no attribute `ai_suggestion_fields`", + "concise_description": "Object of class `NoneType` has no attribute `ai_suggestion_fields`", + "severity": "error" + }, + { + "line": 694, + "column": 25, + "stop_line": 694, + "stop_column": 49, + "path": "src/documents/tests/test_api_workflows.py", + "code": -2, + "name": "missing-attribute", + "description": "Object of class `NoneType` has no attribute `ai_create_missing`", + "concise_description": "Object of class `NoneType` has no attribute `ai_create_missing`", + "severity": "error" + }, + { + "line": 695, + "column": 25, + "stop_line": 695, + "stop_column": 53, + "path": "src/documents/tests/test_api_workflows.py", + "code": -2, + "name": "missing-attribute", + "description": "Object of class `NoneType` has no attribute `ai_overwrite_existing`", + "concise_description": "Object of class `NoneType` has no attribute `ai_overwrite_existing`", + "severity": "error" + }, { "line": 34, "column": 13, @@ -4820,7 +5132,7 @@ "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]", + "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]\n Argument `(self: Self@TestAsnBarcode, filepath: Path) -> BarcodePlugin` is not assignable to parameter `func` with type `(self: Self@TestAsnBarcode, filepath: Path) -> Generator[@_, None, object]` in function `contextlib.contextmanager`", "concise_description": "No matching overload found for function `contextlib.contextmanager` called with arguments: ((self: Self@TestAsnBarcode, filepath: Path) -> BarcodePlugin)", "severity": "error" }, @@ -4868,7 +5180,7 @@ "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]", + "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]\n Argument `(self: Self@TestTagBarcode, filepath: Path) -> BarcodePlugin` is not assignable to parameter `func` with type `(self: Self@TestTagBarcode, filepath: Path) -> Generator[@_, None, object]` in function `contextlib.contextmanager`", "concise_description": "No matching overload found for function `contextlib.contextmanager` called with arguments: ((self: Self@TestTagBarcode, filepath: Path) -> BarcodePlugin)", "severity": "error" }, @@ -4909,9 +5221,9 @@ "severity": "error" }, { - "line": 73, + "line": 74, "column": 13, - "stop_line": 73, + "stop_line": 74, "stop_column": 23, "path": "src/documents/tests/test_bulk_edit.py", "code": -2, @@ -4921,9 +5233,9 @@ "severity": "error" }, { - "line": 82, + "line": 83, "column": 81, - "stop_line": 82, + "stop_line": 83, "stop_column": 85, "path": "src/documents/tests/test_bulk_edit.py", "code": -2, @@ -4933,9 +5245,9 @@ "severity": "error" }, { - "line": 92, + "line": 93, "column": 13, - "stop_line": 92, + "stop_line": 93, "stop_column": 24, "path": "src/documents/tests/test_bulk_edit.py", "code": -2, @@ -4945,9 +5257,9 @@ "severity": "error" }, { - "line": 101, + "line": 102, "column": 81, - "stop_line": 101, + "stop_line": 102, "stop_column": 85, "path": "src/documents/tests/test_bulk_edit.py", "code": -2, @@ -4957,9 +5269,9 @@ "severity": "error" }, { - "line": 120, + "line": 121, "column": 13, - "stop_line": 120, + "stop_line": 121, "stop_column": 24, "path": "src/documents/tests/test_bulk_edit.py", "code": -2, @@ -4969,9 +5281,9 @@ "severity": "error" }, { - "line": 144, + "line": 145, "column": 13, - "stop_line": 144, + "stop_line": 145, "stop_column": 24, "path": "src/documents/tests/test_bulk_edit.py", "code": -2, @@ -4981,9 +5293,9 @@ "severity": "error" }, { - "line": 151, + "line": 152, "column": 13, - "stop_line": 151, + "stop_line": 152, "stop_column": 17, "path": "src/documents/tests/test_bulk_edit.py", "code": -2, @@ -4993,9 +5305,9 @@ "severity": "error" }, { - "line": 242, + "line": 243, "column": 13, - "stop_line": 242, + "stop_line": 243, "stop_column": 36, "path": "src/documents/tests/test_bulk_edit.py", "code": -2, @@ -5005,9 +5317,9 @@ "severity": "error" }, { - "line": 246, + "line": 247, "column": 13, - "stop_line": 246, + "stop_line": 247, "stop_column": 36, "path": "src/documents/tests/test_bulk_edit.py", "code": -2, @@ -5017,9 +5329,9 @@ "severity": "error" }, { - "line": 302, + "line": 303, "column": 13, - "stop_line": 302, + "stop_line": 303, "stop_column": 36, "path": "src/documents/tests/test_bulk_edit.py", "code": -2, @@ -5029,9 +5341,9 @@ "severity": "error" }, { - "line": 306, + "line": 307, "column": 13, - "stop_line": 306, + "stop_line": 307, "stop_column": 36, "path": "src/documents/tests/test_bulk_edit.py", "code": -2, @@ -5041,9 +5353,9 @@ "severity": "error" }, { - "line": 310, + "line": 311, "column": 13, - "stop_line": 310, + "stop_line": 311, "stop_column": 36, "path": "src/documents/tests/test_bulk_edit.py", "code": -2, @@ -5053,9 +5365,9 @@ "severity": "error" }, { - "line": 314, + "line": 315, "column": 13, - "stop_line": 314, + "stop_line": 315, "stop_column": 36, "path": "src/documents/tests/test_bulk_edit.py", "code": -2, @@ -5065,9 +5377,9 @@ "severity": "error" }, { - "line": 318, + "line": 319, "column": 13, - "stop_line": 318, + "stop_line": 319, "stop_column": 36, "path": "src/documents/tests/test_bulk_edit.py", "code": -2, @@ -5077,9 +5389,9 @@ "severity": "error" }, { - "line": 322, + "line": 323, "column": 17, - "stop_line": 322, + "stop_line": 323, "stop_column": 40, "path": "src/documents/tests/test_bulk_edit.py", "code": -2, @@ -5089,9 +5401,9 @@ "severity": "error" }, { - "line": 339, + "line": 340, "column": 17, - "stop_line": 339, + "stop_line": 340, "stop_column": 40, "path": "src/documents/tests/test_bulk_edit.py", "code": -2, @@ -5101,9 +5413,9 @@ "severity": "error" }, { - "line": 342, + "line": 343, "column": 17, - "stop_line": 342, + "stop_line": 343, "stop_column": 40, "path": "src/documents/tests/test_bulk_edit.py", "code": -2, @@ -5113,9 +5425,9 @@ "severity": "error" }, { - "line": 366, + "line": 367, "column": 17, - "stop_line": 366, + "stop_line": 367, "stop_column": 40, "path": "src/documents/tests/test_bulk_edit.py", "code": -2, @@ -5125,9 +5437,9 @@ "severity": "error" }, { - "line": 369, + "line": 370, "column": 17, - "stop_line": 369, + "stop_line": 370, "stop_column": 40, "path": "src/documents/tests/test_bulk_edit.py", "code": -2, @@ -5137,9 +5449,9 @@ "severity": "error" }, { - "line": 460, + "line": 461, "column": 48, - "stop_line": 460, + "stop_line": 461, "stop_column": 50, "path": "src/documents/tests/test_bulk_edit.py", "code": -2, @@ -5149,21 +5461,21 @@ "severity": "error" }, { - "line": 466, + "line": 467, "column": 26, - "stop_line": 466, + "stop_line": 467, "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`", + "description": "Object of type `Group | dict[Unknown, Unknown]` has no attribute `count`\n Object of class `Group` has no attribute `count`\n Object of class `dict` has no attribute `count`", + "concise_description": "Object of type `Group | dict[Unknown, Unknown]` has no attribute `count`", "severity": "error" }, { - "line": 504, + "line": 505, "column": 48, - "stop_line": 504, + "stop_line": 505, "stop_column": 50, "path": "src/documents/tests/test_bulk_edit.py", "code": -2, @@ -5173,21 +5485,21 @@ "severity": "error" }, { - "line": 510, + "line": 511, "column": 26, - "stop_line": 510, + "stop_line": 511, "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`", + "description": "Object of type `Group | dict[Unknown, Unknown]` has no attribute `count`\n Object of class `Group` has no attribute `count`\n Object of class `dict` has no attribute `count`", + "concise_description": "Object of type `Group | dict[Unknown, Unknown]` has no attribute `count`", "severity": "error" }, { - "line": 525, + "line": 526, "column": 19, - "stop_line": 525, + "stop_line": 526, "stop_column": 40, "path": "src/documents/tests/test_bulk_edit.py", "code": -2, @@ -5197,9 +5509,9 @@ "severity": "error" }, { - "line": 534, + "line": 535, "column": 27, - "stop_line": 534, + "stop_line": 535, "stop_column": 48, "path": "src/documents/tests/test_bulk_edit.py", "code": -2, @@ -5209,9 +5521,9 @@ "severity": "error" }, { - "line": 543, + "line": 544, "column": 19, - "stop_line": 543, + "stop_line": 544, "stop_column": 40, "path": "src/documents/tests/test_bulk_edit.py", "code": -2, @@ -5221,9 +5533,9 @@ "severity": "error" }, { - "line": 552, + "line": 553, "column": 27, - "stop_line": 552, + "stop_line": 553, "stop_column": 48, "path": "src/documents/tests/test_bulk_edit.py", "code": -2, @@ -5233,9 +5545,9 @@ "severity": "error" }, { - "line": 561, + "line": 562, "column": 19, - "stop_line": 561, + "stop_line": 562, "stop_column": 40, "path": "src/documents/tests/test_bulk_edit.py", "code": -2, @@ -5245,9 +5557,9 @@ "severity": "error" }, { - "line": 594, + "line": 595, "column": 19, - "stop_line": 594, + "stop_line": 595, "stop_column": 40, "path": "src/documents/tests/test_bulk_edit.py", "code": -2, @@ -5257,9 +5569,9 @@ "severity": "error" }, { - "line": 599, + "line": 600, "column": 27, - "stop_line": 599, + "stop_line": 600, "stop_column": 48, "path": "src/documents/tests/test_bulk_edit.py", "code": -2, @@ -5269,9 +5581,9 @@ "severity": "error" }, { - "line": 668, + "line": 681, "column": 24, - "stop_line": 668, + "stop_line": 681, "stop_column": 45, "path": "src/documents/tests/test_bulk_edit.py", "code": -2, @@ -5281,9 +5593,9 @@ "severity": "error" }, { - "line": 904, + "line": 917, "column": 24, - "stop_line": 904, + "stop_line": 917, "stop_column": 45, "path": "src/documents/tests/test_bulk_edit.py", "code": -2, @@ -5293,9 +5605,9 @@ "severity": "error" }, { - "line": 1449, + "line": 1476, "column": 20, - "stop_line": 1449, + "stop_line": 1476, "stop_column": 41, "path": "src/documents/tests/test_bulk_edit.py", "code": -2, @@ -5305,9 +5617,21 @@ "severity": "error" }, { - "line": 1525, + "line": 1556, + "column": 23, + "stop_line": 1556, + "stop_column": 44, + "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": 1558, "column": 20, - "stop_line": 1525, + "stop_line": 1558, "stop_column": 41, "path": "src/documents/tests/test_bulk_edit.py", "code": -2, @@ -5317,9 +5641,9 @@ "severity": "error" }, { - "line": 1585, + "line": 1636, "column": 20, - "stop_line": 1585, + "stop_line": 1636, "stop_column": 41, "path": "src/documents/tests/test_bulk_edit.py", "code": -2, @@ -5329,9 +5653,21 @@ "severity": "error" }, { - "line": 206, + "line": 1739, + "column": 20, + "stop_line": 1739, + "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": 208, "column": 18, - "stop_line": 206, + "stop_line": 208, "stop_column": 67, "path": "src/documents/tests/test_classifier.py", "code": -2, @@ -5341,9 +5677,9 @@ "severity": "error" }, { - "line": 210, + "line": 212, "column": 18, - "stop_line": 210, + "stop_line": 212, "stop_column": 57, "path": "src/documents/tests/test_classifier.py", "code": -2, @@ -5353,9 +5689,9 @@ "severity": "error" }, { - "line": 230, + "line": 232, "column": 23, - "stop_line": 230, + "stop_line": 232, "stop_column": 64, "path": "src/documents/tests/test_classifier.py", "code": -2, @@ -5365,9 +5701,9 @@ "severity": "error" }, { - "line": 461, + "line": 484, "column": 40, - "stop_line": 461, + "stop_line": 484, "stop_column": 66, "path": "src/documents/tests/test_classifier.py", "code": -2, @@ -5377,9 +5713,9 @@ "severity": "error" }, { - "line": 481, + "line": 504, "column": 17, - "stop_line": 481, + "stop_line": 504, "stop_column": 25, "path": "src/documents/tests/test_classifier.py", "code": -2, @@ -5396,7 +5732,7 @@ "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`", + "description": "Returned type `Path | None` is not assignable to declared return type `Path`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check or changing the declared type to `Path | None`.", "concise_description": "Returned type `Path | None` is not assignable to declared return type `Path`", "severity": "error" }, @@ -5444,7 +5780,7 @@ "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__`", + "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__`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", "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" }, @@ -5540,7 +5876,7 @@ "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__`", + "description": "Argument `Any | None` is not assignable to parameter `obj` with type `Sized` in function `len`\n Protocol `Sized` requires attribute `__len__`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", "concise_description": "Argument `Any | None` is not assignable to parameter `obj` with type `Sized` in function `len`", "severity": "error" }, @@ -5552,7 +5888,7 @@ "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__`", + "description": "Argument `Any | None` is not assignable to parameter `obj` with type `Sized` in function `len`\n Protocol `Sized` requires attribute `__len__`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", "concise_description": "Argument `Any | None` is not assignable to parameter `obj` with type `Sized` in function `len`", "severity": "error" }, @@ -5564,7 +5900,7 @@ "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__`", + "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__`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", "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" }, @@ -5576,14 +5912,14 @@ "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__`", + "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__`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", "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, + "line": 793, "column": 13, - "stop_line": 791, + "stop_line": 793, "stop_column": 34, "path": "src/documents/tests/test_consumer.py", "code": -2, @@ -5593,9 +5929,9 @@ "severity": "error" }, { - "line": 801, + "line": 803, "column": 13, - "stop_line": 801, + "stop_line": 803, "stop_column": 34, "path": "src/documents/tests/test_consumer.py", "code": -2, @@ -5605,9 +5941,9 @@ "severity": "error" }, { - "line": 853, + "line": 857, "column": 13, - "stop_line": 853, + "stop_line": 857, "stop_column": 34, "path": "src/documents/tests/test_consumer.py", "code": -2, @@ -5617,9 +5953,9 @@ "severity": "error" }, { - "line": 863, + "line": 867, "column": 13, - "stop_line": 863, + "stop_line": 867, "stop_column": 34, "path": "src/documents/tests/test_consumer.py", "code": -2, @@ -5629,9 +5965,9 @@ "severity": "error" }, { - "line": 906, + "line": 910, "column": 17, - "stop_line": 906, + "stop_line": 910, "stop_column": 38, "path": "src/documents/tests/test_consumer.py", "code": -2, @@ -5641,9 +5977,9 @@ "severity": "error" }, { - "line": 916, + "line": 920, "column": 17, - "stop_line": 916, + "stop_line": 920, "stop_column": 38, "path": "src/documents/tests/test_consumer.py", "code": -2, @@ -5652,58 +5988,10 @@ "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, @@ -5713,9 +6001,9 @@ "severity": "error" }, { - "line": 1095, + "line": 1093, "column": 26, - "stop_line": 1095, + "stop_line": 1093, "stop_column": 47, "path": "src/documents/tests/test_consumer.py", "code": -2, @@ -5725,57 +6013,117 @@ "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, + "line": 1095, "column": 26, - "stop_line": 1311, + "stop_line": 1095, + "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": 1096, + "column": 26, + "stop_line": 1096, + "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": 1098, + "column": 26, + "stop_line": 1098, + "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": 1099, + "column": 26, + "stop_line": 1099, + "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": 1164, + "column": 15, + "stop_line": 1164, + "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": 1226, + "column": 15, + "stop_line": 1226, + "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": 1257, + "column": 15, + "stop_line": 1257, + "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": 1288, + "column": 15, + "stop_line": 1288, + "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": 1321, + "column": 15, + "stop_line": 1321, + "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": 1346, + "column": 26, + "stop_line": 1346, "stop_column": 47, "path": "src/documents/tests/test_consumer.py", "code": -2, @@ -5785,9 +6133,9 @@ "severity": "error" }, { - "line": 1436, + "line": 1471, "column": 26, - "stop_line": 1436, + "stop_line": 1471, "stop_column": 47, "path": "src/documents/tests/test_consumer.py", "code": -2, @@ -5796,6 +6144,18 @@ "concise_description": "Class `dirs` has no class attribute `scratch_dir`", "severity": "error" }, + { + "line": 1612, + "column": 15, + "stop_line": 1612, + "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": 32, "column": 38, @@ -5869,21 +6229,21 @@ "severity": "error" }, { - "line": 232, + "line": 267, "column": 38, - "stop_line": 232, + "stop_line": 267, "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`", + "description": "Argument `Path | None` is not assignable to parameter `source_path` with type `Path` in function `documents.file_handling.create_source_path_directory`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", "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, + "line": 268, "column": 9, - "stop_line": 233, + "stop_line": 268, "stop_column": 37, "path": "src/documents/tests/test_file_handling.py", "code": -2, @@ -5893,230 +6253,230 @@ "severity": "error" }, { - "line": 250, + "line": 285, "column": 27, - "stop_line": 250, + "stop_line": 285, "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__`", + "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__`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", "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, + "line": 683, "column": 18, - "stop_line": 608, + "stop_line": 683, "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__`", + "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__`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", "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, + "line": 766, "column": 27, - "stop_line": 691, + "stop_line": 766, "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__`", + "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__`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", "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, + "line": 786, "column": 27, - "stop_line": 711, + "stop_line": 786, "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__`", + "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__`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", "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, + "line": 813, "column": 30, - "stop_line": 738, + "stop_line": 813, "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__`", + "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__`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", "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, + "line": 836, "column": 27, - "stop_line": 761, + "stop_line": 836, "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__`", + "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__`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", "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, + "line": 860, "column": 27, - "stop_line": 785, + "stop_line": 860, "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__`", + "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__`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", "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, + "line": 882, "column": 27, - "stop_line": 807, + "stop_line": 882, "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__`", + "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__`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", "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, + "line": 913, "column": 27, - "stop_line": 838, + "stop_line": 913, "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__`", + "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__`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", "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, + "line": 933, "column": 27, - "stop_line": 858, + "stop_line": 933, "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__`", + "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__`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", "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, + "line": 964, "column": 27, - "stop_line": 889, + "stop_line": 964, "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__`", + "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__`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", "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, + "line": 984, "column": 27, - "stop_line": 909, + "stop_line": 984, "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__`", + "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__`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", "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, + "line": 992, "column": 30, - "stop_line": 917, + "stop_line": 992, "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__`", + "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__`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", "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, + "line": 1019, "column": 27, - "stop_line": 944, + "stop_line": 1019, "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__`", + "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__`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", "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, + "line": 1026, "column": 27, - "stop_line": 951, + "stop_line": 1026, "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__`", + "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__`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", "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, + "line": 1052, "column": 27, - "stop_line": 977, + "stop_line": 1052, "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__`", + "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__`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", "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, + "line": 2053, "column": 31, - "stop_line": 1883, + "stop_line": 2053, "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__`", + "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__`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", "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, + "line": 2076, "column": 31, - "stop_line": 1906, + "stop_line": 2076, "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__`", + "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__`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", "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, + "line": 2092, "column": 31, - "stop_line": 1922, + "stop_line": 2092, "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__`", + "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__`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", "concise_description": "Argument `Any | None` is not assignable to parameter `*args` with type `PathLike[str] | str` in function `pathlib.Path.__new__`", "severity": "error" }, @@ -6128,7 +6488,7 @@ "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`", + "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`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", "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" }, @@ -6164,7 +6524,7 @@ "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__`", + "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__`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", "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" }, @@ -6193,69 +6553,45 @@ "severity": "error" }, { - "line": 190, + "line": 219, "column": 14, - "stop_line": 190, + "stop_line": 219, "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__`", + "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__`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", "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, + "line": 229, "column": 30, - "stop_line": 200, + "stop_line": 229, "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__`", + "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__`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", "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, + "line": 231, "column": 27, - "stop_line": 202, + "stop_line": 231, "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__`", + "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__`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", "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, + "line": 190, "column": 22, - "stop_line": 188, + "stop_line": 190, "stop_column": 27, "path": "src/documents/tests/test_management_exporter.py", "code": -2, @@ -6265,9 +6601,9 @@ "severity": "error" }, { - "line": 196, + "line": 198, "column": 28, - "stop_line": 196, + "stop_line": 198, "stop_column": 47, "path": "src/documents/tests/test_management_exporter.py", "code": -2, @@ -6277,9 +6613,9 @@ "severity": "error" }, { - "line": 199, + "line": 201, "column": 18, - "stop_line": 199, + "stop_line": 201, "stop_column": 37, "path": "src/documents/tests/test_management_exporter.py", "code": -2, @@ -6289,9 +6625,9 @@ "severity": "error" }, { - "line": 303, + "line": 305, "column": 28, - "stop_line": 303, + "stop_line": 305, "stop_column": 47, "path": "src/documents/tests/test_management_exporter.py", "code": -2, @@ -6301,9 +6637,9 @@ "severity": "error" }, { - "line": 306, + "line": 308, "column": 18, - "stop_line": 306, + "stop_line": 308, "stop_column": 37, "path": "src/documents/tests/test_management_exporter.py", "code": -2, @@ -6313,9 +6649,9 @@ "severity": "error" }, { - "line": 315, + "line": 317, "column": 28, - "stop_line": 315, + "stop_line": 317, "stop_column": 47, "path": "src/documents/tests/test_management_exporter.py", "code": -2, @@ -6325,9 +6661,9 @@ "severity": "error" }, { - "line": 318, + "line": 320, "column": 18, - "stop_line": 318, + "stop_line": 320, "stop_column": 37, "path": "src/documents/tests/test_management_exporter.py", "code": -2, @@ -6337,9 +6673,9 @@ "severity": "error" }, { - "line": 417, + "line": 419, "column": 28, - "stop_line": 417, + "stop_line": 419, "stop_column": 47, "path": "src/documents/tests/test_management_exporter.py", "code": -2, @@ -6349,9 +6685,9 @@ "severity": "error" }, { - "line": 420, + "line": 422, "column": 18, - "stop_line": 420, + "stop_line": 422, "stop_column": 37, "path": "src/documents/tests/test_management_exporter.py", "code": -2, @@ -6361,9 +6697,9 @@ "severity": "error" }, { - "line": 456, + "line": 458, "column": 28, - "stop_line": 456, + "stop_line": 458, "stop_column": 47, "path": "src/documents/tests/test_management_exporter.py", "code": -2, @@ -6373,9 +6709,9 @@ "severity": "error" }, { - "line": 459, + "line": 461, "column": 18, - "stop_line": 459, + "stop_line": 461, "stop_column": 37, "path": "src/documents/tests/test_management_exporter.py", "code": -2, @@ -6385,9 +6721,9 @@ "severity": "error" }, { - "line": 486, + "line": 488, "column": 28, - "stop_line": 486, + "stop_line": 488, "stop_column": 47, "path": "src/documents/tests/test_management_exporter.py", "code": -2, @@ -6397,9 +6733,9 @@ "severity": "error" }, { - "line": 489, + "line": 491, "column": 18, - "stop_line": 489, + "stop_line": 491, "stop_column": 37, "path": "src/documents/tests/test_management_exporter.py", "code": -2, @@ -6409,9 +6745,9 @@ "severity": "error" }, { - "line": 521, + "line": 523, "column": 28, - "stop_line": 521, + "stop_line": 523, "stop_column": 47, "path": "src/documents/tests/test_management_exporter.py", "code": -2, @@ -6421,9 +6757,9 @@ "severity": "error" }, { - "line": 524, + "line": 526, "column": 18, - "stop_line": 524, + "stop_line": 526, "stop_column": 37, "path": "src/documents/tests/test_management_exporter.py", "code": -2, @@ -6433,33 +6769,9 @@ "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, + "line": 568, "column": 28, - "stop_line": 566, + "stop_line": 568, "stop_column": 47, "path": "src/documents/tests/test_management_exporter.py", "code": -2, @@ -6469,9 +6781,9 @@ "severity": "error" }, { - "line": 569, + "line": 571, "column": 18, - "stop_line": 569, + "stop_line": 571, "stop_column": 37, "path": "src/documents/tests/test_management_exporter.py", "code": -2, @@ -6481,9 +6793,9 @@ "severity": "error" }, { - "line": 574, + "line": 576, "column": 22, - "stop_line": 574, + "stop_line": 576, "stop_column": 27, "path": "src/documents/tests/test_management_exporter.py", "code": -2, @@ -6493,9 +6805,9 @@ "severity": "error" }, { - "line": 598, + "line": 600, "column": 28, - "stop_line": 598, + "stop_line": 600, "stop_column": 47, "path": "src/documents/tests/test_management_exporter.py", "code": -2, @@ -6505,9 +6817,9 @@ "severity": "error" }, { - "line": 601, + "line": 603, "column": 18, - "stop_line": 601, + "stop_line": 603, "stop_column": 37, "path": "src/documents/tests/test_management_exporter.py", "code": -2, @@ -6517,9 +6829,9 @@ "severity": "error" }, { - "line": 609, + "line": 611, "column": 26, - "stop_line": 609, + "stop_line": 611, "stop_column": 31, "path": "src/documents/tests/test_management_exporter.py", "code": -2, @@ -6529,9 +6841,9 @@ "severity": "error" }, { - "line": 637, + "line": 639, "column": 28, - "stop_line": 637, + "stop_line": 639, "stop_column": 47, "path": "src/documents/tests/test_management_exporter.py", "code": -2, @@ -6541,9 +6853,9 @@ "severity": "error" }, { - "line": 640, + "line": 642, "column": 18, - "stop_line": 640, + "stop_line": 642, "stop_column": 37, "path": "src/documents/tests/test_management_exporter.py", "code": -2, @@ -6553,9 +6865,9 @@ "severity": "error" }, { - "line": 654, + "line": 656, "column": 22, - "stop_line": 654, + "stop_line": 656, "stop_column": 27, "path": "src/documents/tests/test_management_exporter.py", "code": -2, @@ -6565,9 +6877,9 @@ "severity": "error" }, { - "line": 735, + "line": 737, "column": 28, - "stop_line": 735, + "stop_line": 737, "stop_column": 47, "path": "src/documents/tests/test_management_exporter.py", "code": -2, @@ -6577,9 +6889,9 @@ "severity": "error" }, { - "line": 738, + "line": 740, "column": 18, - "stop_line": 738, + "stop_line": 740, "stop_column": 37, "path": "src/documents/tests/test_management_exporter.py", "code": -2, @@ -6589,9 +6901,9 @@ "severity": "error" }, { - "line": 781, + "line": 783, "column": 28, - "stop_line": 781, + "stop_line": 783, "stop_column": 47, "path": "src/documents/tests/test_management_exporter.py", "code": -2, @@ -6601,9 +6913,9 @@ "severity": "error" }, { - "line": 784, + "line": 786, "column": 18, - "stop_line": 784, + "stop_line": 786, "stop_column": 37, "path": "src/documents/tests/test_management_exporter.py", "code": -2, @@ -6613,9 +6925,9 @@ "severity": "error" }, { - "line": 829, + "line": 831, "column": 28, - "stop_line": 829, + "stop_line": 831, "stop_column": 47, "path": "src/documents/tests/test_management_exporter.py", "code": -2, @@ -6625,9 +6937,9 @@ "severity": "error" }, { - "line": 832, + "line": 834, "column": 18, - "stop_line": 832, + "stop_line": 834, "stop_column": 37, "path": "src/documents/tests/test_management_exporter.py", "code": -2, @@ -6637,9 +6949,9 @@ "severity": "error" }, { - "line": 865, + "line": 867, "column": 28, - "stop_line": 865, + "stop_line": 867, "stop_column": 47, "path": "src/documents/tests/test_management_exporter.py", "code": -2, @@ -6649,9 +6961,9 @@ "severity": "error" }, { - "line": 868, + "line": 870, "column": 18, - "stop_line": 868, + "stop_line": 870, "stop_column": 37, "path": "src/documents/tests/test_management_exporter.py", "code": -2, @@ -6661,9 +6973,9 @@ "severity": "error" }, { - "line": 895, + "line": 897, "column": 28, - "stop_line": 895, + "stop_line": 897, "stop_column": 47, "path": "src/documents/tests/test_management_exporter.py", "code": -2, @@ -6673,9 +6985,9 @@ "severity": "error" }, { - "line": 898, + "line": 900, "column": 18, - "stop_line": 898, + "stop_line": 900, "stop_column": 37, "path": "src/documents/tests/test_management_exporter.py", "code": -2, @@ -6685,9 +6997,9 @@ "severity": "error" }, { - "line": 925, + "line": 927, "column": 28, - "stop_line": 925, + "stop_line": 927, "stop_column": 47, "path": "src/documents/tests/test_management_exporter.py", "code": -2, @@ -6697,9 +7009,9 @@ "severity": "error" }, { - "line": 928, + "line": 930, "column": 18, - "stop_line": 928, + "stop_line": 930, "stop_column": 37, "path": "src/documents/tests/test_management_exporter.py", "code": -2, @@ -6709,9 +7021,9 @@ "severity": "error" }, { - "line": 965, + "line": 967, "column": 28, - "stop_line": 965, + "stop_line": 967, "stop_column": 47, "path": "src/documents/tests/test_management_exporter.py", "code": -2, @@ -6721,9 +7033,9 @@ "severity": "error" }, { - "line": 968, + "line": 970, "column": 18, - "stop_line": 968, + "stop_line": 970, "stop_column": 37, "path": "src/documents/tests/test_management_exporter.py", "code": -2, @@ -6733,9 +7045,9 @@ "severity": "error" }, { - "line": 988, + "line": 990, "column": 28, - "stop_line": 988, + "stop_line": 990, "stop_column": 47, "path": "src/documents/tests/test_management_exporter.py", "code": -2, @@ -6745,9 +7057,9 @@ "severity": "error" }, { - "line": 991, + "line": 993, "column": 18, - "stop_line": 991, + "stop_line": 993, "stop_column": 37, "path": "src/documents/tests/test_management_exporter.py", "code": -2, @@ -6757,9 +7069,9 @@ "severity": "error" }, { - "line": 1000, + "line": 1002, "column": 13, - "stop_line": 1000, + "stop_line": 1002, "stop_column": 54, "path": "src/documents/tests/test_management_exporter.py", "code": -2, @@ -6769,9 +7081,9 @@ "severity": "error" }, { - "line": 1035, + "line": 1037, "column": 23, - "stop_line": 1035, + "stop_line": 1037, "stop_column": 42, "path": "src/documents/tests/test_management_exporter.py", "code": -2, @@ -6781,9 +7093,9 @@ "severity": "error" }, { - "line": 1038, + "line": 1040, "column": 13, - "stop_line": 1038, + "stop_line": 1040, "stop_column": 32, "path": "src/documents/tests/test_management_exporter.py", "code": -2, @@ -6793,9 +7105,9 @@ "severity": "error" }, { - "line": 1048, + "line": 1050, "column": 23, - "stop_line": 1048, + "stop_line": 1050, "stop_column": 42, "path": "src/documents/tests/test_management_exporter.py", "code": -2, @@ -6805,9 +7117,9 @@ "severity": "error" }, { - "line": 43, + "line": 44, "column": 21, - "stop_line": 43, + "stop_line": 44, "stop_column": 42, "path": "src/documents/tests/test_management_importer.py", "code": -2, @@ -6817,9 +7129,9 @@ "severity": "error" }, { - "line": 62, + "line": 63, "column": 25, - "stop_line": 62, + "stop_line": 63, "stop_column": 46, "path": "src/documents/tests/test_management_importer.py", "code": -2, @@ -6829,9 +7141,9 @@ "severity": "error" }, { - "line": 70, + "line": 71, "column": 21, - "stop_line": 70, + "stop_line": 71, "stop_column": 42, "path": "src/documents/tests/test_management_importer.py", "code": -2, @@ -6841,9 +7153,9 @@ "severity": "error" }, { - "line": 89, + "line": 90, "column": 25, - "stop_line": 89, + "stop_line": 90, "stop_column": 46, "path": "src/documents/tests/test_management_importer.py", "code": -2, @@ -6853,9 +7165,9 @@ "severity": "error" }, { - "line": 100, + "line": 101, "column": 21, - "stop_line": 100, + "stop_line": 101, "stop_column": 42, "path": "src/documents/tests/test_management_importer.py", "code": -2, @@ -6865,9 +7177,9 @@ "severity": "error" }, { - "line": 217, + "line": 218, "column": 10, - "stop_line": 217, + "stop_line": 218, "stop_column": 33, "path": "src/documents/tests/test_management_importer.py", "code": -2, @@ -6877,9 +7189,9 @@ "severity": "error" }, { - "line": 219, + "line": 220, "column": 10, - "stop_line": 219, + "stop_line": 220, "stop_column": 33, "path": "src/documents/tests/test_management_importer.py", "code": -2, @@ -6889,9 +7201,9 @@ "severity": "error" }, { - "line": 227, + "line": 228, "column": 21, - "stop_line": 227, + "stop_line": 228, "stop_column": 42, "path": "src/documents/tests/test_management_importer.py", "code": -2, @@ -6901,9 +7213,9 @@ "severity": "error" }, { - "line": 256, + "line": 257, "column": 21, - "stop_line": 256, + "stop_line": 257, "stop_column": 42, "path": "src/documents/tests/test_management_importer.py", "code": -2, @@ -6913,9 +7225,9 @@ "severity": "error" }, { - "line": 293, + "line": 294, "column": 21, - "stop_line": 293, + "stop_line": 294, "stop_column": 42, "path": "src/documents/tests/test_management_importer.py", "code": -2, @@ -6925,9 +7237,9 @@ "severity": "error" }, { - "line": 314, + "line": 315, "column": 10, - "stop_line": 314, + "stop_line": 315, "stop_column": 31, "path": "src/documents/tests/test_management_importer.py", "code": -2, @@ -6937,9 +7249,9 @@ "severity": "error" }, { - "line": 321, + "line": 322, "column": 21, - "stop_line": 321, + "stop_line": 322, "stop_column": 42, "path": "src/documents/tests/test_management_importer.py", "code": -2, @@ -6948,18 +7260,6 @@ "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, @@ -6973,9 +7273,21 @@ "severity": "error" }, { - "line": 351, + "line": 343, + "column": 10, + "stop_line": 343, + "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": 352, "column": 21, - "stop_line": 351, + "stop_line": 352, "stop_column": 42, "path": "src/documents/tests/test_management_importer.py", "code": -2, @@ -6985,9 +7297,9 @@ "severity": "error" }, { - "line": 372, + "line": 373, "column": 20, - "stop_line": 372, + "stop_line": 373, "stop_column": 41, "path": "src/documents/tests/test_management_importer.py", "code": -2, @@ -6997,123 +7309,171 @@ "severity": "error" }, { - "line": 58, - "column": 12, - "stop_line": 58, - "stop_column": 25, - "path": "src/documents/tests/test_management_retagger.py", + "line": 411, + "column": 25, + "stop_line": 411, + "stop_column": 46, + "path": "src/documents/tests/test_management_importer.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]`", + "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": 69, - "column": 12, - "stop_line": 69, - "stop_column": 68, - "path": "src/documents/tests/test_management_retagger.py", + "line": 420, + "column": 21, + "stop_line": 420, + "stop_column": 42, + "path": "src/documents/tests/test_management_importer.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]`", + "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": 83, - "column": 12, - "stop_line": 83, + "line": 462, + "column": 25, + "stop_line": 462, + "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": 469, + "column": 17, + "stop_line": 469, + "stop_column": 38, + "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": 475, + "column": 26, + "stop_line": 475, + "stop_column": 47, + "path": "src/documents/tests/test_management_importer.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": 511, + "column": 25, + "stop_line": 511, + "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": 520, + "column": 17, + "stop_line": 520, + "stop_column": 38, + "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": 526, + "column": 26, + "stop_line": 526, + "stop_column": 47, + "path": "src/documents/tests/test_management_importer.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": 540, + "column": 24, + "stop_line": 540, + "stop_column": 45, + "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": 570, + "column": 24, + "stop_line": 570, + "stop_column": 45, + "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": 621, + "column": 16, + "stop_line": 621, "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", + "path": "src/documents/tests/test_management_importer.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`", + "description": "Object of class `Model` has no attribute `name`", + "concise_description": "Object of class `Model` has no attribute `name`", "severity": "error" }, { - "line": 117, - "column": 5, - "stop_line": 117, - "stop_column": 12, - "path": "src/documents/tests/test_management_retagger.py", + "line": 647, + "column": 16, + "stop_line": 647, + "stop_column": 41, + "path": "src/documents/tests/test_management_importer.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`", + "description": "Object of class `Model` has no attribute `correspondent_id`", + "concise_description": "Object of class `Model` has no attribute `correspondent_id`", "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", + "line": 695, + "column": 16, + "stop_line": 695, + "stop_column": 41, + "path": "src/documents/tests/test_management_importer.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`", + "description": "Object of class `Model` has no attribute `correspondent_id`", + "concise_description": "Object of class `Model` has no attribute `correspondent_id`", "severity": "error" }, { - "line": 337, - "column": 9, - "stop_line": 337, - "stop_column": 28, - "path": "src/documents/tests/test_management_retagger.py", + "line": 312, + "column": 26, + "stop_line": 312, + "stop_column": 62, + "path": "src/documents/tests/test_merge_documents_as_versions.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`", + "name": "unsupported-operation", + "description": "`None` is not subscriptable", + "concise_description": "`None` is not subscriptable", "severity": "error" }, { @@ -7129,10 +7489,10 @@ "severity": "error" }, { - "line": 25, - "column": 30, - "stop_line": 25, - "stop_column": 74, + "line": 19, + "column": 16, + "stop_line": 19, + "stop_column": 54, "path": "src/documents/tests/test_models.py", "code": -2, "name": "missing-attribute", @@ -7141,10 +7501,10 @@ "severity": "error" }, { - "line": 30, - "column": 27, - "stop_line": 30, - "stop_column": 71, + "line": 24, + "column": 16, + "stop_line": 24, + "stop_column": 54, "path": "src/documents/tests/test_models.py", "code": -2, "name": "missing-attribute", @@ -7153,10 +7513,10 @@ "severity": "error" }, { - "line": 38, - "column": 17, - "stop_line": 38, - "stop_column": 73, + "line": 53, + "column": 13, + "stop_line": 53, + "stop_column": 69, "path": "src/documents/tests/test_parsers.py", "code": -2, "name": "not-callable", @@ -7165,10 +7525,10 @@ "severity": "error" }, { - "line": 62, - "column": 17, - "stop_line": 62, - "stop_column": 73, + "line": 76, + "column": 13, + "stop_line": 76, + "stop_column": 69, "path": "src/documents/tests/test_parsers.py", "code": -2, "name": "not-callable", @@ -7177,10 +7537,10 @@ "severity": "error" }, { - "line": 96, - "column": 21, - "stop_line": 96, - "stop_column": 77, + "line": 110, + "column": 13, + "stop_line": 110, + "stop_column": 69, "path": "src/documents/tests/test_parsers.py", "code": -2, "name": "not-callable", @@ -7189,53 +7549,101 @@ "severity": "error" }, { - "line": 132, + "line": 145, + "column": 36, + "stop_line": 145, + "stop_column": 51, + "path": "src/documents/tests/test_permission_filtering_security.py", + "code": -2, + "name": "bad-argument-type", + "description": "Argument `AnonymousUser` is not assignable to parameter `user` with type `User | None` in function `documents.permissions.permitted_document_ids`", + "concise_description": "Argument `AnonymousUser` is not assignable to parameter `user` with type `User | None` in function `documents.permissions.permitted_document_ids`", + "severity": "error" + }, + { + "line": 607, + "column": 46, + "stop_line": 607, + "stop_column": 50, + "path": "src/documents/tests/test_permission_filtering_security.py", + "code": -2, + "name": "bad-argument-type", + "description": "Argument `None` is not assignable to parameter `classifier` with type `DocumentClassifier` in function `documents.matching.match_tags`", + "concise_description": "Argument `None` is not assignable to parameter `classifier` with type `DocumentClassifier` in function `documents.matching.match_tags`", + "severity": "error" + }, + { + "line": 628, + "column": 56, + "stop_line": 628, + "stop_column": 60, + "path": "src/documents/tests/test_permission_filtering_security.py", + "code": -2, + "name": "bad-argument-type", + "description": "Argument `None` is not assignable to parameter `classifier` with type `DocumentClassifier` in function `documents.matching.match_correspondents`", + "concise_description": "Argument `None` is not assignable to parameter `classifier` with type `DocumentClassifier` in function `documents.matching.match_correspondents`", + "severity": "error" + }, + { + "line": 649, + "column": 56, + "stop_line": 649, + "stop_column": 60, + "path": "src/documents/tests/test_permission_filtering_security.py", + "code": -2, + "name": "bad-argument-type", + "description": "Argument `None` is not assignable to parameter `classifier` with type `DocumentClassifier` in function `documents.matching.match_document_types`", + "concise_description": "Argument `None` is not assignable to parameter `classifier` with type `DocumentClassifier` in function `documents.matching.match_document_types`", + "severity": "error" + }, + { + "line": 670, + "column": 55, + "stop_line": 670, + "stop_column": 59, + "path": "src/documents/tests/test_permission_filtering_security.py", + "code": -2, + "name": "bad-argument-type", + "description": "Argument `None` is not assignable to parameter `classifier` with type `DocumentClassifier` in function `documents.matching.match_storage_paths`", + "concise_description": "Argument `None` is not assignable to parameter `classifier` with type `DocumentClassifier` in function `documents.matching.match_storage_paths`", + "severity": "error" + }, + { + "line": 153, "column": 14, - "stop_line": 132, + "stop_line": 153, "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__`", + "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__`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", "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, + "line": 172, "column": 24, - "stop_line": 151, + "stop_line": 172, "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__`", + "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__`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", "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, + "line": 185, "column": 14, - "stop_line": 164, + "stop_line": 185, "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__`", + "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__`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", "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, @@ -7249,10 +7657,10 @@ "severity": "error" }, { - "line": 202, - "column": 29, - "stop_line": 202, - "stop_column": 48, + "line": 488, + "column": 32, + "stop_line": 488, + "stop_column": 51, "path": "src/documents/tests/test_share_link_bundles.py", "code": -2, "name": "missing-attribute", @@ -7261,45 +7669,9 @@ "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, + "line": 140, "column": 23, - "stop_line": 96, + "stop_line": 140, "stop_column": 35, "path": "src/documents/tests/test_tag_hierarchy.py", "code": -2, @@ -7309,9 +7681,9 @@ "severity": "error" }, { - "line": 109, + "line": 153, "column": 23, - "stop_line": 109, + "stop_line": 153, "stop_column": 35, "path": "src/documents/tests/test_tag_hierarchy.py", "code": -2, @@ -7321,57 +7693,9 @@ "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, + "line": 337, "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_line": 337, "stop_column": 46, "path": "src/documents/tests/test_task_signals.py", "code": -2, @@ -7381,9 +7705,9 @@ "severity": "error" }, { - "line": 312, + "line": 338, "column": 16, - "stop_line": 312, + "stop_line": 338, "stop_column": 49, "path": "src/documents/tests/test_task_signals.py", "code": -2, @@ -7393,33 +7717,9 @@ "severity": "error" }, { - "line": 313, + "line": 361, "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_line": 361, "stop_column": 47, "path": "src/documents/tests/test_task_signals.py", "code": -2, @@ -7429,9 +7729,9 @@ "severity": "error" }, { - "line": 336, + "line": 362, "column": 20, - "stop_line": 336, + "stop_line": 362, "stop_column": 49, "path": "src/documents/tests/test_task_signals.py", "code": -2, @@ -7441,69 +7741,9 @@ "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, + "line": 229, "column": 19, - "stop_line": 228, + "stop_line": 229, "stop_column": 40, "path": "src/documents/tests/test_tasks.py", "code": -2, @@ -7513,9 +7753,9 @@ "severity": "error" }, { - "line": 237, + "line": 238, "column": 27, - "stop_line": 237, + "stop_line": 238, "stop_column": 48, "path": "src/documents/tests/test_tasks.py", "code": -2, @@ -7525,9 +7765,9 @@ "severity": "error" }, { - "line": 269, + "line": 270, "column": 19, - "stop_line": 269, + "stop_line": 270, "stop_column": 40, "path": "src/documents/tests/test_tasks.py", "code": -2, @@ -7537,9 +7777,9 @@ "severity": "error" }, { - "line": 46, + "line": 51, "column": 26, - "stop_line": 46, + "stop_line": 51, "stop_column": 38, "path": "src/documents/tests/test_views.py", "code": -2, @@ -7549,9 +7789,9 @@ "severity": "error" }, { - "line": 71, + "line": 76, "column": 17, - "stop_line": 71, + "stop_line": 76, "stop_column": 53, "path": "src/documents/tests/test_views.py", "code": -2, @@ -7561,9 +7801,9 @@ "severity": "error" }, { - "line": 75, + "line": 80, "column": 17, - "stop_line": 75, + "stop_line": 80, "stop_column": 52, "path": "src/documents/tests/test_views.py", "code": -2, @@ -7573,21 +7813,9 @@ "severity": "error" }, { - "line": 79, + "line": 84, "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_line": 84, "stop_column": 54, "path": "src/documents/tests/test_views.py", "code": -2, @@ -7597,9 +7825,9 @@ "severity": "error" }, { - "line": 87, + "line": 88, "column": 17, - "stop_line": 87, + "stop_line": 88, "stop_column": 49, "path": "src/documents/tests/test_views.py", "code": -2, @@ -7609,9 +7837,9 @@ "severity": "error" }, { - "line": 102, + "line": 103, "column": 9, - "stop_line": 102, + "stop_line": 103, "stop_column": 24, "path": "src/documents/tests/test_views.py", "code": -2, @@ -7621,9 +7849,9 @@ "severity": "error" }, { - "line": 103, + "line": 104, "column": 9, - "stop_line": 103, + "stop_line": 104, "stop_column": 20, "path": "src/documents/tests/test_views.py", "code": -2, @@ -7633,9 +7861,9 @@ "severity": "error" }, { - "line": 108, + "line": 109, "column": 26, - "stop_line": 108, + "stop_line": 109, "stop_column": 41, "path": "src/documents/tests/test_views.py", "code": -2, @@ -7645,9 +7873,9 @@ "severity": "error" }, { - "line": 125, + "line": 126, "column": 44, - "stop_line": 125, + "stop_line": 126, "stop_column": 67, "path": "src/documents/tests/test_views.py", "code": -2, @@ -7657,9 +7885,21 @@ "severity": "error" }, { - "line": 164, + "line": 161, + "column": 50, + "stop_line": 161, + "stop_column": 58, + "path": "src/documents/tests/test_views.py", + "code": -2, + "name": "bad-argument-type", + "description": "Argument `_MonkeyPatchedWSGIResponse` is not assignable to parameter `response` with type `StreamingHttpResponse` in function `documents.tests.utils.read_streaming_response`", + "concise_description": "Argument `_MonkeyPatchedWSGIResponse` is not assignable to parameter `response` with type `StreamingHttpResponse` in function `documents.tests.utils.read_streaming_response`", + "severity": "error" + }, + { + "line": 165, "column": 9, - "stop_line": 164, + "stop_line": 165, "stop_column": 24, "path": "src/documents/tests/test_views.py", "code": -2, @@ -7669,9 +7909,9 @@ "severity": "error" }, { - "line": 173, + "line": 174, "column": 9, - "stop_line": 173, + "stop_line": 174, "stop_column": 24, "path": "src/documents/tests/test_views.py", "code": -2, @@ -7681,9 +7921,33 @@ "severity": "error" }, { - "line": 374, + "line": 188, + "column": 44, + "stop_line": 188, + "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": 219, + "column": 50, + "stop_line": 219, + "stop_column": 58, + "path": "src/documents/tests/test_views.py", + "code": -2, + "name": "bad-argument-type", + "description": "Argument `_MonkeyPatchedWSGIResponse` is not assignable to parameter `response` with type `StreamingHttpResponse` in function `documents.tests.utils.read_streaming_response`", + "concise_description": "Argument `_MonkeyPatchedWSGIResponse` is not assignable to parameter `response` with type `StreamingHttpResponse` in function `documents.tests.utils.read_streaming_response`", + "severity": "error" + }, + { + "line": 530, "column": 13, - "stop_line": 377, + "stop_line": 533, "stop_column": 26, "path": "src/documents/tests/test_views.py", "code": -2, @@ -7693,9 +7957,33 @@ "severity": "error" }, { - "line": 140, + "line": 569, + "column": 13, + "stop_line": 572, + "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": 888, + "column": 13, + "stop_line": 891, + "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": 143, "column": 30, - "stop_line": 140, + "stop_line": 143, "stop_column": 51, "path": "src/documents/tests/test_workflows.py", "code": -2, @@ -7705,9 +7993,9 @@ "severity": "error" }, { - "line": 176, + "line": 179, "column": 13, - "stop_line": 176, + "stop_line": 179, "stop_column": 34, "path": "src/documents/tests/test_workflows.py", "code": -2, @@ -7717,9 +8005,9 @@ "severity": "error" }, { - "line": 207, + "line": 210, "column": 25, - "stop_line": 209, + "stop_line": 212, "stop_column": 26, "path": "src/documents/tests/test_workflows.py", "code": -2, @@ -7729,9 +8017,9 @@ "severity": "error" }, { - "line": 224, + "line": 227, "column": 25, - "stop_line": 226, + "stop_line": 229, "stop_column": 26, "path": "src/documents/tests/test_workflows.py", "code": -2, @@ -7741,9 +8029,9 @@ "severity": "error" }, { - "line": 235, + "line": 238, "column": 26, - "stop_line": 235, + "stop_line": 238, "stop_column": 48, "path": "src/documents/tests/test_workflows.py", "code": -2, @@ -7753,9 +8041,9 @@ "severity": "error" }, { - "line": 239, + "line": 242, "column": 21, - "stop_line": 239, + "stop_line": 242, "stop_column": 43, "path": "src/documents/tests/test_workflows.py", "code": -2, @@ -7765,9 +8053,9 @@ "severity": "error" }, { - "line": 288, + "line": 291, "column": 13, - "stop_line": 288, + "stop_line": 291, "stop_column": 34, "path": "src/documents/tests/test_workflows.py", "code": -2, @@ -7777,9 +8065,9 @@ "severity": "error" }, { - "line": 319, + "line": 322, "column": 25, - "stop_line": 321, + "stop_line": 324, "stop_column": 26, "path": "src/documents/tests/test_workflows.py", "code": -2, @@ -7789,9 +8077,9 @@ "severity": "error" }, { - "line": 336, + "line": 339, "column": 25, - "stop_line": 338, + "stop_line": 341, "stop_column": 26, "path": "src/documents/tests/test_workflows.py", "code": -2, @@ -7801,9 +8089,9 @@ "severity": "error" }, { - "line": 363, + "line": 366, "column": 30, - "stop_line": 363, + "stop_line": 366, "stop_column": 51, "path": "src/documents/tests/test_workflows.py", "code": -2, @@ -7813,9 +8101,9 @@ "severity": "error" }, { - "line": 407, + "line": 410, "column": 13, - "stop_line": 407, + "stop_line": 410, "stop_column": 34, "path": "src/documents/tests/test_workflows.py", "code": -2, @@ -7825,9 +8113,9 @@ "severity": "error" }, { - "line": 459, + "line": 462, "column": 29, - "stop_line": 459, + "stop_line": 462, "stop_column": 50, "path": "src/documents/tests/test_workflows.py", "code": -2, @@ -7837,9 +8125,9 @@ "severity": "error" }, { - "line": 476, + "line": 479, "column": 13, - "stop_line": 476, + "stop_line": 479, "stop_column": 34, "path": "src/documents/tests/test_workflows.py", "code": -2, @@ -7849,9 +8137,9 @@ "severity": "error" }, { - "line": 529, + "line": 532, "column": 13, - "stop_line": 529, + "stop_line": 532, "stop_column": 34, "path": "src/documents/tests/test_workflows.py", "code": -2, @@ -7860,34 +8148,10 @@ "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_line": 555, "stop_column": 30, "path": "src/documents/tests/test_workflows.py", "code": -2, @@ -7897,9 +8161,9 @@ "severity": "error" }, { - "line": 564, + "line": 558, "column": 46, - "stop_line": 564, + "stop_line": 558, "stop_column": 77, "path": "src/documents/tests/test_workflows.py", "code": -2, @@ -7909,9 +8173,33 @@ "severity": "error" }, { - "line": 570, + "line": 564, + "column": 28, + "stop_line": 564, + "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": 567, + "column": 46, + "stop_line": 567, + "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": 573, "column": 45, - "stop_line": 570, + "stop_line": 573, "stop_column": 59, "path": "src/documents/tests/test_workflows.py", "code": -2, @@ -7921,9 +8209,9 @@ "severity": "error" }, { - "line": 606, + "line": 609, "column": 13, - "stop_line": 606, + "stop_line": 609, "stop_column": 34, "path": "src/documents/tests/test_workflows.py", "code": -2, @@ -7932,34 +8220,10 @@ "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_line": 632, "stop_column": 30, "path": "src/documents/tests/test_workflows.py", "code": -2, @@ -7968,10 +8232,34 @@ "concise_description": "Missing positional argument `value` in function `list.count`", "severity": "error" }, + { + "line": 635, + "column": 46, + "stop_line": 635, + "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": 641, - "column": 46, + "column": 28, "stop_line": 641, + "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": 644, + "column": 46, + "stop_line": 644, "stop_column": 77, "path": "src/documents/tests/test_workflows.py", "code": -2, @@ -7981,9 +8269,9 @@ "severity": "error" }, { - "line": 685, + "line": 688, "column": 13, - "stop_line": 685, + "stop_line": 688, "stop_column": 34, "path": "src/documents/tests/test_workflows.py", "code": -2, @@ -7992,34 +8280,10 @@ "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_line": 712, "stop_column": 30, "path": "src/documents/tests/test_workflows.py", "code": -2, @@ -8028,10 +8292,34 @@ "concise_description": "Missing positional argument `value` in function `list.count`", "severity": "error" }, + { + "line": 715, + "column": 46, + "stop_line": 715, + "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": 721, - "column": 46, + "column": 28, "stop_line": 721, + "stop_column": 30, + "path": "src/documents/tests/test_workflows.py", + "code": -2, + "name": "bad-argument-count", + "description": "Missing positional argument `value` in function `list.count`", + "concise_description": "Missing positional argument `value` in function `list.count`", + "severity": "error" + }, + { + "line": 724, + "column": 46, + "stop_line": 724, "stop_column": 77, "path": "src/documents/tests/test_workflows.py", "code": -2, @@ -8041,9 +8329,9 @@ "severity": "error" }, { - "line": 763, + "line": 766, "column": 13, - "stop_line": 763, + "stop_line": 766, "stop_column": 34, "path": "src/documents/tests/test_workflows.py", "code": -2, @@ -8052,34 +8340,10 @@ "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_line": 789, "stop_column": 30, "path": "src/documents/tests/test_workflows.py", "code": -2, @@ -8088,10 +8352,34 @@ "concise_description": "Missing positional argument `value` in function `list.count`", "severity": "error" }, + { + "line": 792, + "column": 46, + "stop_line": 792, + "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": 798, - "column": 46, + "column": 28, "stop_line": 798, + "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": 801, + "column": 46, + "stop_line": 801, "stop_column": 77, "path": "src/documents/tests/test_workflows.py", "code": -2, @@ -8101,9 +8389,9 @@ "severity": "error" }, { - "line": 874, + "line": 877, "column": 13, - "stop_line": 874, + "stop_line": 877, "stop_column": 34, "path": "src/documents/tests/test_workflows.py", "code": -2, @@ -8113,9 +8401,9 @@ "severity": "error" }, { - "line": 889, + "line": 892, "column": 26, - "stop_line": 889, + "stop_line": 892, "stop_column": 48, "path": "src/documents/tests/test_workflows.py", "code": -2, @@ -8125,57 +8413,57 @@ "severity": "error" }, { - "line": 950, + "line": 953, "column": 31, - "stop_line": 950, + "stop_line": 953, "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__`", + "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__`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", "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, + "line": 1425, "column": 40, - "stop_line": 1422, + "stop_line": 1425, "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__`", + "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__`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", "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, + "line": 1441, "column": 35, - "stop_line": 1438, + "stop_line": 1441, "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__`", + "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__`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", "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, + "line": 1460, "column": 39, - "stop_line": 1457, + "stop_line": 1460, "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__`", + "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__`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", "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, + "line": 1964, "column": 26, - "stop_line": 1922, + "stop_line": 1964, "stop_column": 43, "path": "src/documents/tests/test_workflows.py", "code": -2, @@ -8185,9 +8473,9 @@ "severity": "error" }, { - "line": 1947, + "line": 1989, "column": 13, - "stop_line": 1947, + "stop_line": 1989, "stop_column": 34, "path": "src/documents/tests/test_workflows.py", "code": -2, @@ -8197,9 +8485,9 @@ "severity": "error" }, { - "line": 2006, + "line": 2053, "column": 26, - "stop_line": 2006, + "stop_line": 2053, "stop_column": 43, "path": "src/documents/tests/test_workflows.py", "code": -2, @@ -8209,9 +8497,21 @@ "severity": "error" }, { - "line": 2055, + "line": 2097, + "column": 26, + "stop_line": 2097, + "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": 2146, "column": 43, - "stop_line": 2058, + "stop_line": 2149, "stop_column": 10, "path": "src/documents/tests/test_workflows.py", "code": -2, @@ -8221,9 +8521,9 @@ "severity": "error" }, { - "line": 2059, + "line": 2150, "column": 45, - "stop_line": 2062, + "stop_line": 2153, "stop_column": 10, "path": "src/documents/tests/test_workflows.py", "code": -2, @@ -8233,9 +8533,9 @@ "severity": "error" }, { - "line": 2070, + "line": 2161, "column": 38, - "stop_line": 2070, + "stop_line": 2161, "stop_column": 64, "path": "src/documents/tests/test_workflows.py", "code": -2, @@ -8245,9 +8545,9 @@ "severity": "error" }, { - "line": 2833, + "line": 2924, "column": 26, - "stop_line": 2833, + "stop_line": 2924, "stop_column": 43, "path": "src/documents/tests/test_workflows.py", "code": -2, @@ -8257,9 +8557,9 @@ "severity": "error" }, { - "line": 2836, + "line": 2927, "column": 38, - "stop_line": 2836, + "stop_line": 2927, "stop_column": 64, "path": "src/documents/tests/test_workflows.py", "code": -2, @@ -8269,9 +8569,9 @@ "severity": "error" }, { - "line": 2904, + "line": 3121, "column": 26, - "stop_line": 2904, + "stop_line": 3121, "stop_column": 43, "path": "src/documents/tests/test_workflows.py", "code": -2, @@ -8281,9 +8581,9 @@ "severity": "error" }, { - "line": 2907, + "line": 3124, "column": 38, - "stop_line": 2907, + "stop_line": 3124, "stop_column": 64, "path": "src/documents/tests/test_workflows.py", "code": -2, @@ -8293,9 +8593,9 @@ "severity": "error" }, { - "line": 2971, + "line": 3188, "column": 13, - "stop_line": 2971, + "stop_line": 3188, "stop_column": 34, "path": "src/documents/tests/test_workflows.py", "code": -2, @@ -8305,9 +8605,9 @@ "severity": "error" }, { - "line": 3006, + "line": 3223, "column": 25, - "stop_line": 3008, + "stop_line": 3225, "stop_column": 26, "path": "src/documents/tests/test_workflows.py", "code": -2, @@ -8317,9 +8617,9 @@ "severity": "error" }, { - "line": 3023, + "line": 3240, "column": 25, - "stop_line": 3025, + "stop_line": 3242, "stop_column": 26, "path": "src/documents/tests/test_workflows.py", "code": -2, @@ -8329,9 +8629,9 @@ "severity": "error" }, { - "line": 3034, + "line": 3251, "column": 26, - "stop_line": 3034, + "stop_line": 3251, "stop_column": 48, "path": "src/documents/tests/test_workflows.py", "code": -2, @@ -8341,9 +8641,9 @@ "severity": "error" }, { - "line": 3095, + "line": 3312, "column": 13, - "stop_line": 3095, + "stop_line": 3312, "stop_column": 34, "path": "src/documents/tests/test_workflows.py", "code": -2, @@ -8353,9 +8653,9 @@ "severity": "error" }, { - "line": 3119, + "line": 3336, "column": 28, - "stop_line": 3119, + "stop_line": 3336, "stop_column": 30, "path": "src/documents/tests/test_workflows.py", "code": -2, @@ -8365,9 +8665,9 @@ "severity": "error" }, { - "line": 3122, + "line": 3339, "column": 46, - "stop_line": 3122, + "stop_line": 3339, "stop_column": 77, "path": "src/documents/tests/test_workflows.py", "code": -2, @@ -8377,9 +8677,9 @@ "severity": "error" }, { - "line": 3128, + "line": 3345, "column": 28, - "stop_line": 3128, + "stop_line": 3345, "stop_column": 30, "path": "src/documents/tests/test_workflows.py", "code": -2, @@ -8389,9 +8689,9 @@ "severity": "error" }, { - "line": 3131, + "line": 3348, "column": 46, - "stop_line": 3131, + "stop_line": 3348, "stop_column": 77, "path": "src/documents/tests/test_workflows.py", "code": -2, @@ -8401,9 +8701,9 @@ "severity": "error" }, { - "line": 3134, + "line": 3351, "column": 21, - "stop_line": 3134, + "stop_line": 3351, "stop_column": 43, "path": "src/documents/tests/test_workflows.py", "code": -2, @@ -8413,9 +8713,9 @@ "severity": "error" }, { - "line": 3246, + "line": 3463, "column": 13, - "stop_line": 3246, + "stop_line": 3463, "stop_column": 34, "path": "src/documents/tests/test_workflows.py", "code": -2, @@ -8425,9 +8725,9 @@ "severity": "error" }, { - "line": 3258, + "line": 3475, "column": 27, - "stop_line": 3258, + "stop_line": 3475, "stop_column": 44, "path": "src/documents/tests/test_workflows.py", "code": -2, @@ -8437,9 +8737,9 @@ "severity": "error" }, { - "line": 3346, + "line": 3563, "column": 13, - "stop_line": 3346, + "stop_line": 3563, "stop_column": 34, "path": "src/documents/tests/test_workflows.py", "code": -2, @@ -8449,9 +8749,9 @@ "severity": "error" }, { - "line": 3384, + "line": 3601, "column": 13, - "stop_line": 3384, + "stop_line": 3601, "stop_column": 34, "path": "src/documents/tests/test_workflows.py", "code": -2, @@ -8461,9 +8761,9 @@ "severity": "error" }, { - "line": 3604, + "line": 3821, "column": 13, - "stop_line": 3604, + "stop_line": 3821, "stop_column": 34, "path": "src/documents/tests/test_workflows.py", "code": -2, @@ -8473,9 +8773,9 @@ "severity": "error" }, { - "line": 3726, + "line": 3943, "column": 13, - "stop_line": 3726, + "stop_line": 3943, "stop_column": 34, "path": "src/documents/tests/test_workflows.py", "code": -2, @@ -8485,9 +8785,9 @@ "severity": "error" }, { - "line": 3975, + "line": 4192, "column": 23, - "stop_line": 3975, + "stop_line": 4192, "stop_column": 27, "path": "src/documents/tests/test_workflows.py", "code": -2, @@ -8497,9 +8797,9 @@ "severity": "error" }, { - "line": 3993, + "line": 4210, "column": 23, - "stop_line": 3993, + "stop_line": 4210, "stop_column": 27, "path": "src/documents/tests/test_workflows.py", "code": -2, @@ -8509,9 +8809,9 @@ "severity": "error" }, { - "line": 4018, + "line": 4235, "column": 27, - "stop_line": 4018, + "stop_line": 4235, "stop_column": 31, "path": "src/documents/tests/test_workflows.py", "code": -2, @@ -8521,9 +8821,9 @@ "severity": "error" }, { - "line": 4066, + "line": 4283, "column": 13, - "stop_line": 4066, + "stop_line": 4283, "stop_column": 34, "path": "src/documents/tests/test_workflows.py", "code": -2, @@ -8533,9 +8833,9 @@ "severity": "error" }, { - "line": 4115, + "line": 4332, "column": 23, - "stop_line": 4115, + "stop_line": 4332, "stop_column": 35, "path": "src/documents/tests/test_workflows.py", "code": -2, @@ -8545,9 +8845,9 @@ "severity": "error" }, { - "line": 4164, + "line": 4383, "column": 23, - "stop_line": 4164, + "stop_line": 4383, "stop_column": 35, "path": "src/documents/tests/test_workflows.py", "code": -2, @@ -8557,9 +8857,9 @@ "severity": "error" }, { - "line": 4196, + "line": 4415, "column": 23, - "stop_line": 4196, + "stop_line": 4415, "stop_column": 35, "path": "src/documents/tests/test_workflows.py", "code": -2, @@ -8569,9 +8869,21 @@ "severity": "error" }, { - "line": 4409, + "line": 4530, + "column": 23, + "stop_line": 4530, + "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": 4678, "column": 13, - "stop_line": 4409, + "stop_line": 4678, "stop_column": 34, "path": "src/documents/tests/test_workflows.py", "code": -2, @@ -8581,9 +8893,9 @@ "severity": "error" }, { - "line": 4601, + "line": 4870, "column": 13, - "stop_line": 4601, + "stop_line": 4870, "stop_column": 34, "path": "src/documents/tests/test_workflows.py", "code": -2, @@ -8593,9 +8905,9 @@ "severity": "error" }, { - "line": 4665, + "line": 4934, "column": 13, - "stop_line": 4665, + "stop_line": 4934, "stop_column": 34, "path": "src/documents/tests/test_workflows.py", "code": -2, @@ -8605,9 +8917,9 @@ "severity": "error" }, { - "line": 4714, + "line": 4983, "column": 19, - "stop_line": 4714, + "stop_line": 4983, "stop_column": 23, "path": "src/documents/tests/test_workflows.py", "code": -2, @@ -8617,9 +8929,9 @@ "severity": "error" }, { - "line": 4717, + "line": 4986, "column": 16, - "stop_line": 4717, + "stop_line": 4986, "stop_column": 48, "path": "src/documents/tests/test_workflows.py", "code": -2, @@ -8629,9 +8941,9 @@ "severity": "error" }, { - "line": 4727, + "line": 4996, "column": 19, - "stop_line": 4727, + "stop_line": 4996, "stop_column": 23, "path": "src/documents/tests/test_workflows.py", "code": -2, @@ -8641,9 +8953,9 @@ "severity": "error" }, { - "line": 4730, + "line": 4999, "column": 16, - "stop_line": 4730, + "stop_line": 4999, "stop_column": 48, "path": "src/documents/tests/test_workflows.py", "code": -2, @@ -8653,9 +8965,9 @@ "severity": "error" }, { - "line": 4767, + "line": 5036, "column": 23, - "stop_line": 4767, + "stop_line": 5036, "stop_column": 27, "path": "src/documents/tests/test_workflows.py", "code": -2, @@ -8665,9 +8977,9 @@ "severity": "error" }, { - "line": 4776, + "line": 5045, "column": 23, - "stop_line": 4776, + "stop_line": 5045, "stop_column": 27, "path": "src/documents/tests/test_workflows.py", "code": -2, @@ -8677,9 +8989,9 @@ "severity": "error" }, { - "line": 4795, + "line": 5064, "column": 23, - "stop_line": 4795, + "stop_line": 5064, "stop_column": 27, "path": "src/documents/tests/test_workflows.py", "code": -2, @@ -8689,9 +9001,9 @@ "severity": "error" }, { - "line": 4822, + "line": 5091, "column": 23, - "stop_line": 4822, + "stop_line": 5091, "stop_column": 27, "path": "src/documents/tests/test_workflows.py", "code": -2, @@ -8701,9 +9013,9 @@ "severity": "error" }, { - "line": 4846, + "line": 5115, "column": 19, - "stop_line": 4846, + "stop_line": 5115, "stop_column": 23, "path": "src/documents/tests/test_workflows.py", "code": -2, @@ -8713,9 +9025,9 @@ "severity": "error" }, { - "line": 4851, + "line": 5120, "column": 16, - "stop_line": 4851, + "stop_line": 5120, "stop_column": 23, "path": "src/documents/tests/test_workflows.py", "code": -2, @@ -8725,9 +9037,9 @@ "severity": "error" }, { - "line": 4852, + "line": 5121, "column": 16, - "stop_line": 4852, + "stop_line": 5121, "stop_column": 27, "path": "src/documents/tests/test_workflows.py", "code": -2, @@ -8737,9 +9049,9 @@ "severity": "error" }, { - "line": 4876, + "line": 5145, "column": 23, - "stop_line": 4876, + "stop_line": 5145, "stop_column": 27, "path": "src/documents/tests/test_workflows.py", "code": -2, @@ -8749,9 +9061,9 @@ "severity": "error" }, { - "line": 4902, + "line": 5171, "column": 19, - "stop_line": 4902, + "stop_line": 5171, "stop_column": 23, "path": "src/documents/tests/test_workflows.py", "code": -2, @@ -8761,9 +9073,9 @@ "severity": "error" }, { - "line": 4907, + "line": 5176, "column": 16, - "stop_line": 4907, + "stop_line": 5176, "stop_column": 27, "path": "src/documents/tests/test_workflows.py", "code": -2, @@ -8773,9 +9085,9 @@ "severity": "error" }, { - "line": 4908, + "line": 5177, "column": 35, - "stop_line": 4908, + "stop_line": 5177, "stop_column": 46, "path": "src/documents/tests/test_workflows.py", "code": -2, @@ -8785,9 +9097,129 @@ "severity": "error" }, { - "line": 41, + "line": 5442, + "column": 13, + "stop_line": 5442, + "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": 5450, + "column": 31, + "stop_line": 5450, + "stop_column": 40, + "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": 5605, + "column": 26, + "stop_line": 5605, + "stop_column": 53, + "path": "src/documents/tests/test_workflows.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": 5660, + "column": 13, + "stop_line": 5660, + "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": 5671, + "column": 35, + "stop_line": 5671, + "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": 5900, + "column": 26, + "stop_line": 5900, + "stop_column": 53, + "path": "src/documents/tests/test_workflows.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": 5901, + "column": 26, + "stop_line": 5901, + "stop_column": 54, + "path": "src/documents/tests/test_workflows.py", + "code": -2, + "name": "missing-attribute", + "description": "Object of class `NoneType` has no attribute `owner`", + "concise_description": "Object of class `NoneType` has no attribute `owner`", + "severity": "error" + }, + { + "line": 5902, + "column": 26, + "stop_line": 5902, + "stop_column": 53, + "path": "src/documents/tests/test_workflows.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": 5903, + "column": 26, + "stop_line": 5903, + "stop_column": 54, + "path": "src/documents/tests/test_workflows.py", + "code": -2, + "name": "missing-attribute", + "description": "Object of class `NoneType` has no attribute `owner`", + "concise_description": "Object of class `NoneType` has no attribute `owner`", + "severity": "error" + }, + { + "line": 5931, + "column": 26, + "stop_line": 5931, + "stop_column": 53, + "path": "src/documents/tests/test_workflows.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": 42, "column": 22, - "stop_line": 41, + "stop_line": 42, "stop_column": 35, "path": "src/documents/tests/utils.py", "code": -2, @@ -8796,18 +9228,6 @@ "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, @@ -8822,9 +9242,9 @@ }, { "line": 44, - "column": 24, + "column": 26, "stop_line": 44, - "stop_column": 38, + "stop_column": 40, "path": "src/documents/tests/utils.py", "code": -2, "name": "missing-attribute", @@ -8836,6 +9256,18 @@ "line": 45, "column": 24, "stop_line": 45, + "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": 46, + "column": 24, + "stop_line": 46, "stop_column": 37, "path": "src/documents/tests/utils.py", "code": -2, @@ -8845,9 +9277,9 @@ "severity": "error" }, { - "line": 47, + "line": 48, "column": 5, - "stop_line": 47, + "stop_line": 48, "stop_column": 19, "path": "src/documents/tests/utils.py", "code": -2, @@ -8856,18 +9288,6 @@ "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, @@ -8876,20 +9296,20 @@ "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`", + "description": "Class `dirs` has no class attribute `originals_dir`", + "concise_description": "Class `dirs` has no class attribute `originals_dir`", "severity": "error" }, { "line": 50, "column": 5, "stop_line": 50, - "stop_column": 21, + "stop_column": 23, "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`", + "description": "Class `dirs` has no class attribute `thumbnail_dir`", + "concise_description": "Class `dirs` has no class attribute `thumbnail_dir`", "severity": "error" }, { @@ -8900,14 +9320,26 @@ "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": 52, + "column": 5, + "stop_line": 52, + "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, + "line": 55, "column": 18, - "stop_line": 54, + "stop_line": 55, "stop_column": 31, "path": "src/documents/tests/utils.py", "code": -2, @@ -8917,9 +9349,9 @@ "severity": "error" }, { - "line": 55, + "line": 56, "column": 21, - "stop_line": 55, + "stop_line": 56, "stop_column": 37, "path": "src/documents/tests/utils.py", "code": -2, @@ -8929,9 +9361,9 @@ "severity": "error" }, { - "line": 56, + "line": 57, "column": 20, - "stop_line": 56, + "stop_line": 57, "stop_column": 34, "path": "src/documents/tests/utils.py", "code": -2, @@ -8940,18 +9372,6 @@ "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, @@ -8960,14 +9380,26 @@ "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": 59, + "column": 23, + "stop_line": 59, + "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, + "line": 60, "column": 21, - "stop_line": 59, + "stop_line": 60, "stop_column": 37, "path": "src/documents/tests/utils.py", "code": -2, @@ -8977,9 +9409,9 @@ "severity": "error" }, { - "line": 60, + "line": 61, "column": 25, - "stop_line": 60, + "stop_line": 61, "stop_column": 45, "path": "src/documents/tests/utils.py", "code": -2, @@ -8989,9 +9421,9 @@ "severity": "error" }, { - "line": 61, + "line": 62, "column": 21, - "stop_line": 61, + "stop_line": 62, "stop_column": 37, "path": "src/documents/tests/utils.py", "code": -2, @@ -9001,9 +9433,9 @@ "severity": "error" }, { - "line": 62, + "line": 63, "column": 19, - "stop_line": 62, + "stop_line": 63, "stop_column": 33, "path": "src/documents/tests/utils.py", "code": -2, @@ -9013,9 +9445,9 @@ "severity": "error" }, { - "line": 63, + "line": 64, "column": 21, - "stop_line": 63, + "stop_line": 64, "stop_column": 36, "path": "src/documents/tests/utils.py", "code": -2, @@ -9025,9 +9457,9 @@ "severity": "error" }, { - "line": 64, + "line": 65, "column": 20, - "stop_line": 64, + "stop_line": 65, "stop_column": 33, "path": "src/documents/tests/utils.py", "code": -2, @@ -9037,9 +9469,9 @@ "severity": "error" }, { - "line": 65, + "line": 66, "column": 20, - "stop_line": 65, + "stop_line": 66, "stop_column": 34, "path": "src/documents/tests/utils.py", "code": -2, @@ -9049,9 +9481,9 @@ "severity": "error" }, { - "line": 67, + "line": 68, "column": 5, - "stop_line": 67, + "stop_line": 68, "stop_column": 27, "path": "src/documents/tests/utils.py", "code": -2, @@ -9061,9 +9493,21 @@ "severity": "error" }, { - "line": 164, + "line": 156, + "column": 24, + "stop_line": 156, + "stop_column": 50, + "path": "src/documents/tests/utils.py", + "code": -2, + "name": "bad-argument-type", + "description": "Argument `AsyncIterator[bytes] | Iterator[bytes]` is not assignable to parameter `iterable_of_bytes` with type `Iterable[Buffer]` in function `bytes.join`\n Protocol `Iterable` requires attribute `__iter__`", + "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" + }, + { + "line": 172, "column": 9, - "stop_line": 164, + "stop_line": 172, "stop_column": 22, "path": "src/documents/tests/utils.py", "code": -2, @@ -9073,9 +9517,9 @@ "severity": "error" }, { - "line": 169, + "line": 177, "column": 9, - "stop_line": 169, + "stop_line": 177, "stop_column": 25, "path": "src/documents/tests/utils.py", "code": -2, @@ -9085,9 +9529,9 @@ "severity": "error" }, { - "line": 180, + "line": 188, "column": 9, - "stop_line": 180, + "stop_line": 188, "stop_column": 24, "path": "src/documents/tests/utils.py", "code": -2, @@ -9097,9 +9541,9 @@ "severity": "error" }, { - "line": 183, + "line": 191, "column": 9, - "stop_line": 183, + "stop_line": 191, "stop_column": 25, "path": "src/documents/tests/utils.py", "code": -2, @@ -9109,9 +9553,9 @@ "severity": "error" }, { - "line": 186, + "line": 194, "column": 9, - "stop_line": 186, + "stop_line": 194, "stop_column": 24, "path": "src/documents/tests/utils.py", "code": -2, @@ -9121,9 +9565,9 @@ "severity": "error" }, { - "line": 189, + "line": 197, "column": 9, - "stop_line": 189, + "stop_line": 197, "stop_column": 25, "path": "src/documents/tests/utils.py", "code": -2, @@ -9133,9 +9577,9 @@ "severity": "error" }, { - "line": 203, + "line": 211, "column": 9, - "stop_line": 203, + "stop_line": 211, "stop_column": 25, "path": "src/documents/tests/utils.py", "code": -2, @@ -9145,9 +9589,9 @@ "severity": "error" }, { - "line": 207, + "line": 215, "column": 9, - "stop_line": 207, + "stop_line": 215, "stop_column": 24, "path": "src/documents/tests/utils.py", "code": -2, @@ -9157,9 +9601,9 @@ "severity": "error" }, { - "line": 209, + "line": 217, "column": 9, - "stop_line": 209, + "stop_line": 217, "stop_column": 25, "path": "src/documents/tests/utils.py", "code": -2, @@ -9169,9 +9613,9 @@ "severity": "error" }, { - "line": 227, + "line": 235, "column": 9, - "stop_line": 227, + "stop_line": 235, "stop_column": 22, "path": "src/documents/tests/utils.py", "code": -2, @@ -9181,9 +9625,9 @@ "severity": "error" }, { - "line": 230, + "line": 238, "column": 9, - "stop_line": 230, + "stop_line": 238, "stop_column": 25, "path": "src/documents/tests/utils.py", "code": -2, @@ -9193,9 +9637,9 @@ "severity": "error" }, { - "line": 245, + "line": 253, "column": 9, - "stop_line": 245, + "stop_line": 253, "stop_column": 22, "path": "src/documents/tests/utils.py", "code": -2, @@ -9205,9 +9649,9 @@ "severity": "error" }, { - "line": 248, + "line": 256, "column": 9, - "stop_line": 248, + "stop_line": 256, "stop_column": 25, "path": "src/documents/tests/utils.py", "code": -2, @@ -9217,9 +9661,9 @@ "severity": "error" }, { - "line": 272, + "line": 280, "column": 16, - "stop_line": 272, + "stop_line": 280, "stop_column": 74, "path": "src/documents/tests/utils.py", "code": -2, @@ -9228,18 +9672,6 @@ "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, @@ -9265,9 +9697,21 @@ "severity": "error" }, { - "line": 86, + "line": 377, + "column": 13, + "stop_line": 377, + "stop_column": 22, + "path": "src/documents/tests/utils.py", + "code": -2, + "name": "missing-attribute", + "description": "Object of class `GetConsumerMixin` has no attribute `dirs`", + "concise_description": "Object of class `GetConsumerMixin` has no attribute `dirs`", + "severity": "error" + }, + { + "line": 128, "column": 34, - "stop_line": 86, + "stop_line": 128, "stop_column": 45, "path": "src/documents/utils.py", "code": -2, @@ -9277,9 +9721,9 @@ "severity": "error" }, { - "line": 289, + "line": 362, "column": 31, - "stop_line": 289, + "stop_line": 362, "stop_column": 57, "path": "src/documents/views.py", "code": -2, @@ -9289,21 +9733,21 @@ "severity": "error" }, { - "line": 290, + "line": 363, "column": 32, - "stop_line": 290, + "stop_line": 363, "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`", + "description": "Object of type `AbstractBaseUser | AnonymousUser` has no attribute `get_full_name`\n Object of class `AbstractBaseUser` has no attribute `get_full_name`\n Object of class `AnonymousUser` has no attribute `get_full_name`", + "concise_description": "Object of type `AbstractBaseUser | AnonymousUser` has no attribute `get_full_name`", "severity": "error" }, { - "line": 345, + "line": 417, "column": 17, - "stop_line": 345, + "stop_line": 417, "stop_column": 30, "path": "src/documents/views.py", "code": -2, @@ -9313,9 +9757,9 @@ "severity": "error" }, { - "line": 377, + "line": 449, "column": 19, - "stop_line": 377, + "stop_line": 449, "stop_column": 49, "path": "src/documents/views.py", "code": -2, @@ -9325,21 +9769,9 @@ "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, + "line": 465, "column": 24, - "stop_line": 395, + "stop_line": 465, "stop_column": 44, "path": "src/documents/views.py", "code": -2, @@ -9349,9 +9781,9 @@ "severity": "error" }, { - "line": 395, + "line": 465, "column": 45, - "stop_line": 395, + "stop_line": 465, "stop_column": 62, "path": "src/documents/views.py", "code": -2, @@ -9361,9 +9793,9 @@ "severity": "error" }, { - "line": 397, + "line": 467, "column": 22, - "stop_line": 397, + "stop_line": 467, "stop_column": 35, "path": "src/documents/views.py", "code": -2, @@ -9373,9 +9805,9 @@ "severity": "error" }, { - "line": 499, + "line": 580, "column": 29, - "stop_line": 499, + "stop_line": 580, "stop_column": 51, "path": "src/documents/views.py", "code": -2, @@ -9385,9 +9817,9 @@ "severity": "error" }, { - "line": 505, + "line": 589, "column": 25, - "stop_line": 505, + "stop_line": 589, "stop_column": 47, "path": "src/documents/views.py", "code": -2, @@ -9397,9 +9829,9 @@ "severity": "error" }, { - "line": 930, + "line": 1069, "column": 48, - "stop_line": 930, + "stop_line": 1069, "stop_column": 64, "path": "src/documents/views.py", "code": -2, @@ -9409,21 +9841,9 @@ "severity": "error" }, { - "line": 933, + "line": 1075, "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_line": 1075, "stop_column": 64, "path": "src/documents/views.py", "code": -2, @@ -9433,9 +9853,9 @@ "severity": "error" }, { - "line": 939, + "line": 1078, "column": 48, - "stop_line": 939, + "stop_line": 1078, "stop_column": 64, "path": "src/documents/views.py", "code": -2, @@ -9445,21 +9865,9 @@ "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, + "line": 1274, "column": 9, - "stop_line": 1115, + "stop_line": 1274, "stop_column": 16, "path": "src/documents/views.py", "code": -2, @@ -9469,81 +9877,93 @@ "severity": "error" }, { - "line": 1269, + "line": 1433, "column": 37, - "stop_line": 1269, + "stop_line": 1433, "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`", + "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`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", "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, + "line": 1489, + "column": 41, + "stop_line": 1489, + "stop_column": 53, "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`", + "description": "Argument `Any | None` is not assignable to parameter `filename` with type `str` in function `documents.plugins.date_parsing.base.DateParserPluginBase.parse`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", "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, + "line": 1502, + "column": 57, + "stop_line": 1502, + "stop_column": 67, "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`", + "description": "Argument `DocumentClassifier | None` is not assignable to parameter `classifier` with type `DocumentClassifier` in function `documents.matching.match_correspondents`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", "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, + "line": 1504, + "column": 52, + "stop_line": 1504, + "stop_column": 62, "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`", + "description": "Argument `DocumentClassifier | None` is not assignable to parameter `classifier` with type `DocumentClassifier` in function `documents.matching.match_tags`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", "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, + "line": 1506, + "column": 59, + "stop_line": 1506, + "stop_column": 69, "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`", + "description": "Argument `DocumentClassifier | None` is not assignable to parameter `classifier` with type `DocumentClassifier` in function `documents.matching.match_document_types`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", "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, + "line": 1509, + "column": 58, + "stop_line": 1509, + "stop_column": 68, "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`", + "description": "Argument `DocumentClassifier | None` is not assignable to parameter `classifier` with type `DocumentClassifier` in function `documents.matching.match_storage_paths`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", "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, + "line": 1607, + "column": 17, + "stop_line": 1607, + "stop_column": 32, + "path": "src/documents/views.py", + "code": -2, + "name": "bad-argument-type", + "description": "Argument `ClassificationSuggestions` is not assignable to parameter `suggestions` with type `dict[Unknown, Unknown]` in function `documents.caching.set_llm_suggestions_cache`", + "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" + }, + { + "line": 1802, "column": 21, - "stop_line": 1517, + "stop_line": 1802, "stop_column": 48, "path": "src/documents/views.py", "code": -2, @@ -9553,9 +9973,9 @@ "severity": "error" }, { - "line": 1559, + "line": 1844, "column": 17, - "stop_line": 1559, + "stop_line": 1844, "stop_column": 44, "path": "src/documents/views.py", "code": -2, @@ -9565,9 +9985,9 @@ "severity": "error" }, { - "line": 1586, + "line": 1871, "column": 5, - "stop_line": 1586, + "stop_line": 1871, "stop_column": 62, "path": "src/documents/views.py", "code": -2, @@ -9577,9 +9997,9 @@ "severity": "error" }, { - "line": 1643, + "line": 1928, "column": 26, - "stop_line": 1643, + "stop_line": 1928, "stop_column": 57, "path": "src/documents/views.py", "code": -2, @@ -9589,9 +10009,9 @@ "severity": "error" }, { - "line": 1649, + "line": 1934, "column": 22, - "stop_line": 1649, + "stop_line": 1934, "stop_column": 54, "path": "src/documents/views.py", "code": -2, @@ -9601,9 +10021,9 @@ "severity": "error" }, { - "line": 1650, + "line": 1935, "column": 13, - "stop_line": 1650, + "stop_line": 1935, "stop_column": 30, "path": "src/documents/views.py", "code": -2, @@ -9613,9 +10033,9 @@ "severity": "error" }, { - "line": 1688, + "line": 1973, "column": 36, - "stop_line": 1688, + "stop_line": 1973, "stop_column": 64, "path": "src/documents/views.py", "code": -2, @@ -9625,21 +10045,21 @@ "severity": "error" }, { - "line": 1728, + "line": 2013, "column": 30, - "stop_line": 1728, + "stop_line": 2013, "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__`", + "description": "Argument `Path | None` is not assignable to parameter `path` with type `Path` in function `documents.mail.EmailAttachment.__init__`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", "concise_description": "Argument `Path | None` is not assignable to parameter `path` with type `Path` in function `documents.mail.EmailAttachment.__init__`", "severity": "error" }, { - "line": 1897, + "line": 2188, "column": 13, - "stop_line": 1897, + "stop_line": 2188, "stop_column": 40, "path": "src/documents/views.py", "code": -2, @@ -9649,9 +10069,9 @@ "severity": "error" }, { - "line": 1976, + "line": 2267, "column": 13, - "stop_line": 1976, + "stop_line": 2267, "stop_column": 40, "path": "src/documents/views.py", "code": -2, @@ -9661,21 +10081,9 @@ "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, + "line": 2429, "column": 9, - "stop_line": 2121, + "stop_line": 2429, "stop_column": 13, "path": "src/documents/views.py", "code": -2, @@ -9685,45 +10093,45 @@ "severity": "error" }, { - "line": 2160, + "line": 2468, "column": 17, - "stop_line": 2160, + "stop_line": 2468, "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`", + "description": "Object of type `BasePagination | None` has no attribute `get_page_size`\n Object of class `BasePagination` has no attribute `get_page_size`\n Object of class `NoneType` has no attribute `get_page_size`", + "concise_description": "Object of type `BasePagination | None` has no attribute `get_page_size`", "severity": "error" }, { - "line": 2160, + "line": 2468, "column": 58, - "stop_line": 2160, + "stop_line": 2468, "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`", + "description": "Object of type `BasePagination | None` has no attribute `page_size`\n Object of class `BasePagination` has no attribute `page_size`\n Object of class `NoneType` has no attribute `page_size`", + "concise_description": "Object of type `BasePagination | None` has no attribute `page_size`", "severity": "error" }, { - "line": 2298, + "line": 2595, "column": 43, - "stop_line": 2298, + "stop_line": 2595, "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`", + "description": "Argument `TantivyRelevanceList` is not assignable to parameter `queryset` with type `QuerySet[Any, @_] | Sequence[@_]` in function `rest_framework.generics.GenericAPIView.paginate_queryset`", + "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" }, { - "line": 2343, + "line": 2645, "column": 25, - "stop_line": 2343, + "stop_line": 2645, "stop_column": 36, "path": "src/documents/views.py", "code": -2, @@ -9733,9 +10141,9 @@ "severity": "error" }, { - "line": 2572, + "line": 2945, "column": 18, - "stop_line": 2572, + "stop_line": 2945, "stop_column": 35, "path": "src/documents/views.py", "code": -2, @@ -9745,9 +10153,9 @@ "severity": "error" }, { - "line": 2593, + "line": 2966, "column": 18, - "stop_line": 2593, + "stop_line": 2966, "stop_column": 22, "path": "src/documents/views.py", "code": -2, @@ -9757,9 +10165,9 @@ "severity": "error" }, { - "line": 2676, + "line": 3049, "column": 18, - "stop_line": 2676, + "stop_line": 3049, "stop_column": 22, "path": "src/documents/views.py", "code": -2, @@ -9769,9 +10177,9 @@ "severity": "error" }, { - "line": 2688, + "line": 3061, "column": 18, - "stop_line": 2688, + "stop_line": 3061, "stop_column": 22, "path": "src/documents/views.py", "code": -2, @@ -9781,9 +10189,9 @@ "severity": "error" }, { - "line": 2717, + "line": 3090, "column": 33, - "stop_line": 2717, + "stop_line": 3090, "stop_column": 46, "path": "src/documents/views.py", "code": -2, @@ -9793,9 +10201,9 @@ "severity": "error" }, { - "line": 2727, + "line": 3100, "column": 21, - "stop_line": 2727, + "stop_line": 3100, "stop_column": 48, "path": "src/documents/views.py", "code": -2, @@ -9805,9 +10213,9 @@ "severity": "error" }, { - "line": 3108, + "line": 3507, "column": 52, - "stop_line": 3108, + "stop_line": 3507, "stop_column": 68, "path": "src/documents/views.py", "code": -2, @@ -9817,9 +10225,9 @@ "severity": "error" }, { - "line": 3112, + "line": 3511, "column": 52, - "stop_line": 3112, + "stop_line": 3511, "stop_column": 68, "path": "src/documents/views.py", "code": -2, @@ -9829,9 +10237,9 @@ "severity": "error" }, { - "line": 3115, + "line": 3514, "column": 52, - "stop_line": 3115, + "stop_line": 3514, "stop_column": 68, "path": "src/documents/views.py", "code": -2, @@ -9841,9 +10249,9 @@ "severity": "error" }, { - "line": 3118, + "line": 3517, "column": 52, - "stop_line": 3118, + "stop_line": 3517, "stop_column": 68, "path": "src/documents/views.py", "code": -2, @@ -9853,9 +10261,9 @@ "severity": "error" }, { - "line": 3122, + "line": 3521, "column": 52, - "stop_line": 3122, + "stop_line": 3521, "stop_column": 68, "path": "src/documents/views.py", "code": -2, @@ -9865,21 +10273,21 @@ "severity": "error" }, { - "line": 3175, + "line": 3574, "column": 65, - "stop_line": 3175, + "stop_line": 3574, "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`", + "description": "Argument `AbstractBaseUser | AnonymousUser | None` is not assignable to parameter `user` with type `AbstractUser | None` in function `documents.search._backend.TantivyBackend.autocomplete`", + "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" }, { - "line": 3906, + "line": 4355, "column": 9, - "stop_line": 3906, + "stop_line": 4355, "stop_column": 29, "path": "src/documents/views.py", "code": -2, @@ -9889,9 +10297,9 @@ "severity": "error" }, { - "line": 3914, + "line": 4369, "column": 12, - "stop_line": 3914, + "stop_line": 4369, "stop_column": 38, "path": "src/documents/views.py", "code": -2, @@ -9901,9 +10309,9 @@ "severity": "error" }, { - "line": 3998, + "line": 4475, "column": 44, - "stop_line": 3998, + "stop_line": 4475, "stop_column": 48, "path": "src/documents/views.py", "code": -2, @@ -9913,9 +10321,9 @@ "severity": "error" }, { - "line": 4352, + "line": 4875, "column": 24, - "stop_line": 4352, + "stop_line": 4875, "stop_column": 51, "path": "src/documents/views.py", "code": -2, @@ -9925,21 +10333,21 @@ "severity": "error" }, { - "line": 4371, - "column": 17, - "stop_line": 4371, - "stop_column": 21, + "line": 4894, + "column": 45, + "stop_line": 4894, + "stop_column": 49, "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`", + "description": "Argument `AbstractBaseUser | AnonymousUser` is not assignable to parameter `user` with type `User | None` in function `documents.permissions.permitted_object_ids`", + "concise_description": "Argument `AbstractBaseUser | AnonymousUser` is not assignable to parameter `user` with type `User | None` in function `documents.permissions.permitted_object_ids`", "severity": "error" }, { - "line": 4396, + "line": 4917, "column": 16, - "stop_line": 4396, + "stop_line": 4917, "stop_column": 33, "path": "src/documents/views.py", "code": -2, @@ -9949,10 +10357,10 @@ "severity": "error" }, { - "line": 4398, - "column": 25, - "stop_line": 4398, - "stop_column": 38, + "line": 4921, + "column": 17, + "stop_line": 4921, + "stop_column": 30, "path": "src/documents/views.py", "code": -2, "name": "missing-attribute", @@ -9961,9 +10369,9 @@ "severity": "error" }, { - "line": 4453, + "line": 4978, "column": 9, - "stop_line": 4453, + "stop_line": 4978, "stop_column": 23, "path": "src/documents/views.py", "code": -2, @@ -9973,9 +10381,9 @@ "severity": "error" }, { - "line": 4478, + "line": 5003, "column": 9, - "stop_line": 4478, + "stop_line": 5003, "stop_column": 23, "path": "src/documents/views.py", "code": -2, @@ -9985,33 +10393,9 @@ "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, + "line": 5393, "column": 40, - "stop_line": 4816, + "stop_line": 5393, "stop_column": 54, "path": "src/documents/views.py", "code": -2, @@ -10021,21 +10405,21 @@ "severity": "error" }, { - "line": 4824, - "column": 38, - "stop_line": 4824, - "stop_column": 51, + "line": 5457, + "column": 17, + "stop_line": 5457, + "stop_column": 29, "path": "src/documents/views.py", "code": -2, - "name": "unbound-name", - "description": "`celery_active` may be uninitialized", - "concise_description": "`celery_active` may be uninitialized", + "name": "bad-argument-type", + "description": "Argument `AbstractBaseUser | AnonymousUser` is not assignable to parameter `user` with type `User | None` in function `documents.permissions.permitted_document_ids`", + "concise_description": "Argument `AbstractBaseUser | AnonymousUser` is not assignable to parameter `user` with type `User | None` in function `documents.permissions.permitted_document_ids`", "severity": "error" }, { - "line": 4893, + "line": 5486, "column": 16, - "stop_line": 4893, + "stop_line": 5486, "stop_column": 31, "path": "src/documents/views.py", "code": -2, @@ -10045,9 +10429,9 @@ "severity": "error" }, { - "line": 38, + "line": 37, "column": 22, - "stop_line": 38, + "stop_line": 37, "stop_column": 36, "path": "src/documents/workflows/actions.py", "code": -2, @@ -10057,9 +10441,9 @@ "severity": "error" }, { - "line": 39, + "line": 38, "column": 80, - "stop_line": 39, + "stop_line": 38, "stop_column": 91, "path": "src/documents/workflows/actions.py", "code": -2, @@ -10069,9 +10453,9 @@ "severity": "error" }, { - "line": 40, + "line": 39, "column": 30, - "stop_line": 40, + "stop_line": 39, "stop_column": 57, "path": "src/documents/workflows/actions.py", "code": -2, @@ -10081,9 +10465,9 @@ "severity": "error" }, { - "line": 41, + "line": 40, "column": 16, - "stop_line": 41, + "stop_line": 40, "stop_column": 38, "path": "src/documents/workflows/actions.py", "code": -2, @@ -10093,9 +10477,9 @@ "severity": "error" }, { - "line": 43, + "line": 42, "column": 30, - "stop_line": 43, + "stop_line": 42, "stop_column": 57, "path": "src/documents/workflows/actions.py", "code": -2, @@ -10105,9 +10489,9 @@ "severity": "error" }, { - "line": 44, + "line": 43, "column": 16, - "stop_line": 44, + "stop_line": 43, "stop_column": 38, "path": "src/documents/workflows/actions.py", "code": -2, @@ -10117,9 +10501,9 @@ "severity": "error" }, { - "line": 46, + "line": 45, "column": 31, - "stop_line": 46, + "stop_line": 45, "stop_column": 54, "path": "src/documents/workflows/actions.py", "code": -2, @@ -10129,9 +10513,9 @@ "severity": "error" }, { - "line": 46, + "line": 45, "column": 58, - "stop_line": 46, + "stop_line": 45, "stop_column": 72, "path": "src/documents/workflows/actions.py", "code": -2, @@ -10141,9 +10525,9 @@ "severity": "error" }, { - "line": 47, + "line": 46, "column": 25, - "stop_line": 47, + "stop_line": 46, "stop_column": 51, "path": "src/documents/workflows/actions.py", "code": -2, @@ -10153,9 +10537,9 @@ "severity": "error" }, { - "line": 48, + "line": 47, "column": 33, - "stop_line": 48, + "stop_line": 47, "stop_column": 50, "path": "src/documents/workflows/actions.py", "code": -2, @@ -10165,9 +10549,9 @@ "severity": "error" }, { - "line": 49, + "line": 48, "column": 41, - "stop_line": 49, + "stop_line": 48, "stop_column": 55, "path": "src/documents/workflows/actions.py", "code": -2, @@ -10177,9 +10561,9 @@ "severity": "error" }, { - "line": 50, + "line": 49, "column": 24, - "stop_line": 50, + "stop_line": 49, "stop_column": 40, "path": "src/documents/workflows/actions.py", "code": -2, @@ -10189,9 +10573,9 @@ "severity": "error" }, { - "line": 51, + "line": 50, "column": 19, - "stop_line": 51, + "stop_line": 50, "stop_column": 30, "path": "src/documents/workflows/actions.py", "code": -2, @@ -10201,9 +10585,9 @@ "severity": "error" }, { - "line": 70, + "line": 69, "column": 42, - "stop_line": 70, + "stop_line": 69, "stop_column": 64, "path": "src/documents/workflows/actions.py", "code": -2, @@ -10213,9 +10597,9 @@ "severity": "error" }, { - "line": 108, + "line": 107, "column": 13, - "stop_line": 108, + "stop_line": 107, "stop_column": 33, "path": "src/documents/workflows/actions.py", "code": -2, @@ -10225,9 +10609,9 @@ "severity": "error" }, { - "line": 120, + "line": 119, "column": 12, - "stop_line": 120, + "stop_line": 119, "stop_column": 32, "path": "src/documents/workflows/actions.py", "code": -2, @@ -10237,9 +10621,9 @@ "severity": "error" }, { - "line": 125, + "line": 124, "column": 13, - "stop_line": 125, + "stop_line": 124, "stop_column": 30, "path": "src/documents/workflows/actions.py", "code": -2, @@ -10249,9 +10633,9 @@ "severity": "error" }, { - "line": 137, + "line": 136, "column": 12, - "stop_line": 137, + "stop_line": 136, "stop_column": 29, "path": "src/documents/workflows/actions.py", "code": -2, @@ -10261,9 +10645,9 @@ "severity": "error" }, { - "line": 143, + "line": 142, "column": 12, - "stop_line": 143, + "stop_line": 142, "stop_column": 41, "path": "src/documents/workflows/actions.py", "code": -2, @@ -10273,9 +10657,9 @@ "severity": "error" }, { - "line": 176, + "line": 175, "column": 16, - "stop_line": 176, + "stop_line": 175, "stop_column": 31, "path": "src/documents/workflows/actions.py", "code": -2, @@ -10285,9 +10669,9 @@ "severity": "error" }, { - "line": 180, + "line": 179, "column": 59, - "stop_line": 180, + "stop_line": 179, "stop_column": 74, "path": "src/documents/workflows/actions.py", "code": -2, @@ -10297,9 +10681,9 @@ "severity": "error" }, { - "line": 199, + "line": 198, "column": 12, - "stop_line": 199, + "stop_line": 198, "stop_column": 37, "path": "src/documents/workflows/actions.py", "code": -2, @@ -10309,9 +10693,9 @@ "severity": "error" }, { - "line": 200, + "line": 199, "column": 16, - "stop_line": 200, + "stop_line": 199, "stop_column": 37, "path": "src/documents/workflows/actions.py", "code": -2, @@ -10321,9 +10705,9 @@ "severity": "error" }, { - "line": 202, + "line": 201, "column": 39, - "stop_line": 202, + "stop_line": 201, "stop_column": 66, "path": "src/documents/workflows/actions.py", "code": -2, @@ -10333,9 +10717,9 @@ "severity": "error" }, { - "line": 221, + "line": 220, "column": 14, - "stop_line": 221, + "stop_line": 220, "stop_column": 33, "path": "src/documents/workflows/actions.py", "code": -2, @@ -10345,9 +10729,9 @@ "severity": "error" }, { - "line": 223, + "line": 222, "column": 17, - "stop_line": 223, + "stop_line": 222, "stop_column": 36, "path": "src/documents/workflows/actions.py", "code": -2, @@ -10357,9 +10741,9 @@ "severity": "error" }, { - "line": 236, + "line": 235, "column": 12, - "stop_line": 236, + "stop_line": 235, "stop_column": 34, "path": "src/documents/workflows/actions.py", "code": -2, @@ -10369,9 +10753,9 @@ "severity": "error" }, { - "line": 238, + "line": 237, "column": 55, - "stop_line": 238, + "stop_line": 237, "stop_column": 83, "path": "src/documents/workflows/actions.py", "code": -2, @@ -10381,9 +10765,9 @@ "severity": "error" }, { - "line": 245, + "line": 244, "column": 12, - "stop_line": 245, + "stop_line": 244, "stop_column": 43, "path": "src/documents/workflows/actions.py", "code": -2, @@ -10393,9 +10777,9 @@ "severity": "error" }, { - "line": 258, + "line": 257, "column": 24, - "stop_line": 258, + "stop_line": 257, "stop_column": 42, "path": "src/documents/workflows/actions.py", "code": -2, @@ -10405,9 +10789,9 @@ "severity": "error" }, { - "line": 262, + "line": 261, "column": 28, - "stop_line": 262, + "stop_line": 261, "stop_column": 50, "path": "src/documents/workflows/actions.py", "code": -2, @@ -10417,9 +10801,9 @@ "severity": "error" }, { - "line": 266, + "line": 265, "column": 27, - "stop_line": 266, + "stop_line": 265, "stop_column": 45, "path": "src/documents/workflows/actions.py", "code": -2, @@ -10429,14 +10813,14 @@ "severity": "error" }, { - "line": 302, + "line": 298, "column": 43, - "stop_line": 302, + "stop_line": 298, "stop_column": 65, "path": "src/documents/workflows/actions.py", "code": -2, "name": "bad-assignment", - "description": "`Unknown | None` is not assignable to `Document`", + "description": "`Unknown | None` is not assignable to `Document`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check or changing the declared type to `Document | None`.", "concise_description": "`Unknown | None` is not assignable to `Document`", "severity": "error" }, @@ -10453,9 +10837,9 @@ "severity": "error" }, { - "line": 64, + "line": 70, "column": 13, - "stop_line": 64, + "stop_line": 70, "stop_column": 41, "path": "src/documents/workflows/mutations.py", "code": -2, @@ -10465,9 +10849,9 @@ "severity": "error" }, { - "line": 65, + "line": 71, "column": 13, - "stop_line": 65, + "stop_line": 71, "stop_column": 42, "path": "src/documents/workflows/mutations.py", "code": -2, @@ -10477,9 +10861,9 @@ "severity": "error" }, { - "line": 66, + "line": 72, "column": 13, - "stop_line": 66, + "stop_line": 72, "stop_column": 43, "path": "src/documents/workflows/mutations.py", "code": -2, @@ -10489,9 +10873,9 @@ "severity": "error" }, { - "line": 67, + "line": 73, "column": 13, - "stop_line": 67, + "stop_line": 73, "stop_column": 44, "path": "src/documents/workflows/mutations.py", "code": -2, @@ -10501,9 +10885,9 @@ "severity": "error" }, { - "line": 86, + "line": 92, "column": 8, - "stop_line": 86, + "stop_line": 92, "stop_column": 39, "path": "src/documents/workflows/mutations.py", "code": -2, @@ -10513,9 +10897,9 @@ "severity": "error" }, { - "line": 89, + "line": 95, "column": 27, - "stop_line": 89, + "stop_line": 95, "stop_column": 42, "path": "src/documents/workflows/mutations.py", "code": -2, @@ -10525,9 +10909,9 @@ "severity": "error" }, { - "line": 92, + "line": 98, "column": 35, - "stop_line": 92, + "stop_line": 98, "stop_column": 73, "path": "src/documents/workflows/mutations.py", "code": -2, @@ -10537,9 +10921,9 @@ "severity": "error" }, { - "line": 122, + "line": 129, "column": 8, - "stop_line": 122, + "stop_line": 129, "stop_column": 30, "path": "src/documents/workflows/mutations.py", "code": -2, @@ -10549,9 +10933,9 @@ "severity": "error" }, { - "line": 149, + "line": 156, "column": 13, - "stop_line": 149, + "stop_line": 156, "stop_column": 41, "path": "src/documents/workflows/mutations.py", "code": -2, @@ -10561,9 +10945,9 @@ "severity": "error" }, { - "line": 150, + "line": 157, "column": 13, - "stop_line": 150, + "stop_line": 157, "stop_column": 42, "path": "src/documents/workflows/mutations.py", "code": -2, @@ -10573,9 +10957,9 @@ "severity": "error" }, { - "line": 151, + "line": 158, "column": 13, - "stop_line": 151, + "stop_line": 158, "stop_column": 43, "path": "src/documents/workflows/mutations.py", "code": -2, @@ -10585,9 +10969,9 @@ "severity": "error" }, { - "line": 152, + "line": 159, "column": 13, - "stop_line": 152, + "stop_line": 159, "stop_column": 44, "path": "src/documents/workflows/mutations.py", "code": -2, @@ -10597,9 +10981,9 @@ "severity": "error" }, { - "line": 180, + "line": 187, "column": 8, - "stop_line": 180, + "stop_line": 187, "stop_column": 39, "path": "src/documents/workflows/mutations.py", "code": -2, @@ -10609,9 +10993,9 @@ "severity": "error" }, { - "line": 185, + "line": 192, "column": 27, - "stop_line": 185, + "stop_line": 192, "stop_column": 65, "path": "src/documents/workflows/mutations.py", "code": -2, @@ -10621,9 +11005,9 @@ "severity": "error" }, { - "line": 251, + "line": 258, "column": 13, - "stop_line": 251, + "stop_line": 258, "stop_column": 41, "path": "src/documents/workflows/mutations.py", "code": -2, @@ -10633,9 +11017,9 @@ "severity": "error" }, { - "line": 252, + "line": 259, "column": 13, - "stop_line": 252, + "stop_line": 259, "stop_column": 42, "path": "src/documents/workflows/mutations.py", "code": -2, @@ -10645,9 +11029,9 @@ "severity": "error" }, { - "line": 253, + "line": 260, "column": 13, - "stop_line": 253, + "stop_line": 260, "stop_column": 43, "path": "src/documents/workflows/mutations.py", "code": -2, @@ -10657,9 +11041,9 @@ "severity": "error" }, { - "line": 254, + "line": 261, "column": 13, - "stop_line": 254, + "stop_line": 261, "stop_column": 44, "path": "src/documents/workflows/mutations.py", "code": -2, @@ -10669,9 +11053,9 @@ "severity": "error" }, { - "line": 267, + "line": 274, "column": 9, - "stop_line": 267, + "stop_line": 274, "stop_column": 74, "path": "src/documents/workflows/mutations.py", "code": -2, @@ -10681,9 +11065,9 @@ "severity": "error" }, { - "line": 268, + "line": 275, "column": 10, - "stop_line": 268, + "stop_line": 275, "stop_column": 41, "path": "src/documents/workflows/mutations.py", "code": -2, @@ -10693,9 +11077,9 @@ "severity": "error" }, { - "line": 269, + "line": 276, "column": 9, - "stop_line": 272, + "stop_line": 279, "stop_column": 22, "path": "src/documents/workflows/mutations.py", "code": -2, @@ -10705,9 +11089,9 @@ "severity": "error" }, { - "line": 325, + "line": 332, "column": 13, - "stop_line": 325, + "stop_line": 332, "stop_column": 41, "path": "src/documents/workflows/mutations.py", "code": -2, @@ -10717,9 +11101,9 @@ "severity": "error" }, { - "line": 326, + "line": 333, "column": 13, - "stop_line": 326, + "stop_line": 333, "stop_column": 42, "path": "src/documents/workflows/mutations.py", "code": -2, @@ -10729,9 +11113,9 @@ "severity": "error" }, { - "line": 327, + "line": 334, "column": 13, - "stop_line": 327, + "stop_line": 334, "stop_column": 43, "path": "src/documents/workflows/mutations.py", "code": -2, @@ -10741,9 +11125,9 @@ "severity": "error" }, { - "line": 328, + "line": 335, "column": 13, - "stop_line": 328, + "stop_line": 335, "stop_column": 44, "path": "src/documents/workflows/mutations.py", "code": -2, @@ -10753,9 +11137,9 @@ "severity": "error" }, { - "line": 350, + "line": 357, "column": 10, - "stop_line": 350, + "stop_line": 357, "stop_column": 41, "path": "src/documents/workflows/mutations.py", "code": -2, @@ -10764,18 +11148,6 @@ "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, @@ -10801,15 +11173,27 @@ "severity": "error" }, { - "line": 109, - "column": 9, - "stop_line": 109, - "stop_column": 27, + "line": 98, + "column": 22, + "stop_line": 98, + "stop_column": 68, "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", + "name": "bad-assignment", + "description": "`AbstractBaseUser` is not assignable to `User`", + "concise_description": "`AbstractBaseUser` is not assignable to `User`", + "severity": "error" + }, + { + "line": 132, + "column": 22, + "stop_line": 132, + "stop_column": 67, + "path": "src/paperless/adapter.py", + "code": -2, + "name": "bad-assignment", + "description": "`AbstractBaseUser` is not assignable to `User`", + "concise_description": "`AbstractBaseUser` is not assignable to `User`", "severity": "error" }, { @@ -10861,9 +11245,9 @@ "severity": "error" }, { - "line": 65, + "line": 68, "column": 20, - "stop_line": 65, + "stop_line": 68, "stop_column": 46, "path": "src/paperless/auth.py", "code": -2, @@ -10873,9 +11257,9 @@ "severity": "error" }, { - "line": 66, + "line": 69, "column": 16, - "stop_line": 66, + "stop_line": 69, "stop_column": 41, "path": "src/paperless/auth.py", "code": -2, @@ -10885,9 +11269,9 @@ "severity": "error" }, { - "line": 51, + "line": 23, "column": 5, - "stop_line": 51, + "stop_line": 23, "stop_column": 24, "path": "src/paperless/celery.py", "code": -2, @@ -10897,21 +11281,21 @@ "severity": "error" }, { - "line": 52, + "line": 24, "column": 5, - "stop_line": 52, + "stop_line": 24, "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`", + "description": "Argument `(payload: bytes) -> Any` is not assignable to parameter `decoder` with type `((str) -> Any) | None` in function `kombu.serialization.register`", + "concise_description": "Argument `(payload: bytes) -> Any` is not assignable to parameter `decoder` with type `((str) -> Any) | None` in function `kombu.serialization.register`", "severity": "error" }, { - "line": 91, + "line": 92, "column": 12, - "stop_line": 91, + "stop_line": 92, "stop_column": 26, "path": "src/paperless/checks.py", "code": -2, @@ -10921,9 +11305,9 @@ "severity": "error" }, { - "line": 177, + "line": 178, "column": 9, - "stop_line": 179, + "stop_line": 180, "stop_column": 40, "path": "src/paperless/checks.py", "code": -2, @@ -10933,9 +11317,9 @@ "severity": "error" }, { - "line": 196, + "line": 197, "column": 12, - "stop_line": 196, + "stop_line": 197, "stop_column": 18, "path": "src/paperless/checks.py", "code": -2, @@ -10945,21 +11329,21 @@ "severity": "error" }, { - "line": 345, + "line": 341, "column": 26, - "stop_line": 348, + "stop_line": 344, "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]", + "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, ..., *, capture_output: bool = False, ...) -> CompletedProcess[str]\n (args: _CMD, ..., *, capture_output: bool = False, ...) -> CompletedProcess[str]\n (args: _CMD, ..., *, capture_output: bool = False, ...) -> CompletedProcess[str]\n (args: _CMD, ..., *, ..., capture_output: bool = False, ...) -> CompletedProcess[str]\n (args: _CMD, ..., *, capture_output: bool = False, ...) -> CompletedProcess[bytes] [closest match]\n (args: _CMD, ..., *, capture_output: bool = False, ...) -> CompletedProcess[Any]\n Argument `list[str | None]` is not assignable to parameter `args` with type `PathLike[bytes] | PathLike[str] | Sequence[StrOrBytesPath] | bytes | str` in function `subprocess.run`", "concise_description": "No matching overload found for function `subprocess.run` called with arguments: (list[str | None], capture_output=Literal[True])", "severity": "error" }, { - "line": 367, + "line": 363, "column": 16, - "stop_line": 367, + "stop_line": 363, "stop_column": 20, "path": "src/paperless/checks.py", "code": -2, @@ -10969,9 +11353,9 @@ "severity": "error" }, { - "line": 379, + "line": 375, "column": 21, - "stop_line": 383, + "stop_line": 379, "stop_column": 22, "path": "src/paperless/checks.py", "code": -2, @@ -10981,9 +11365,9 @@ "severity": "error" }, { - "line": 386, + "line": 382, "column": 12, - "stop_line": 386, + "stop_line": 382, "stop_column": 16, "path": "src/paperless/checks.py", "code": -2, @@ -10993,21 +11377,21 @@ "severity": "error" }, { - "line": 27, + "line": 28, "column": 16, - "stop_line": 27, + "stop_line": 28, "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`", + "description": "Returned type `ApplicationConfiguration | None` is not assignable to declared return type `ApplicationConfiguration`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check or changing the declared type to `ApplicationConfiguration | None`.", "concise_description": "Returned type `ApplicationConfiguration | None` is not assignable to declared return type `ApplicationConfiguration`", "severity": "error" }, { - "line": 41, + "line": 42, "column": 28, - "stop_line": 43, + "stop_line": 44, "stop_column": 10, "path": "src/paperless/config.py", "code": -2, @@ -11017,9 +11401,9 @@ "severity": "error" }, { - "line": 75, + "line": 76, "column": 21, - "stop_line": 75, + "stop_line": 76, "stop_column": 70, "path": "src/paperless/config.py", "code": -2, @@ -11029,9 +11413,9 @@ "severity": "error" }, { - "line": 77, + "line": 78, "column": 13, - "stop_line": 78, + "stop_line": 79, "stop_column": 78, "path": "src/paperless/config.py", "code": -2, @@ -11041,9 +11425,9 @@ "severity": "error" }, { - "line": 81, + "line": 82, "column": 22, - "stop_line": 81, + "stop_line": 82, "stop_column": 82, "path": "src/paperless/config.py", "code": -2, @@ -11053,9 +11437,9 @@ "severity": "error" }, { - "line": 97, + "line": 98, "column": 13, - "stop_line": 98, + "stop_line": 99, "stop_column": 75, "path": "src/paperless/config.py", "code": -2, @@ -11065,33 +11449,45 @@ "severity": "error" }, { - "line": 184, + "line": 195, "column": 26, - "stop_line": 184, + "stop_line": 195, "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`", + "description": "`str | None` is not assignable to attribute `app_title` with type `str`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", "concise_description": "`str | None` is not assignable to attribute `app_title` with type `str`", "severity": "error" }, { - "line": 185, + "line": 196, "column": 25, - "stop_line": 185, + "stop_line": 196, "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`", + "description": "`Unknown | None` is not assignable to attribute `app_logo` with type `str`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", "concise_description": "`Unknown | None` is not assignable to attribute `app_logo` with type `str`", "severity": "error" }, { - "line": 31, + "line": 222, + "column": 32, + "stop_line": 224, + "stop_column": 10, + "path": "src/paperless/config.py", + "code": -2, + "name": "bad-assignment", + "description": "`RemoteOCRMode | str` is not assignable to attribute `remote_ocr_mode` with type `RemoteOCRMode`", + "concise_description": "`RemoteOCRMode | str` is not assignable to attribute `remote_ocr_mode` with type `RemoteOCRMode`", + "severity": "error" + }, + { + "line": 38, "column": 12, - "stop_line": 31, + "stop_line": 38, "stop_column": 29, "path": "src/paperless/consumers.py", "code": -2, @@ -11101,9 +11497,9 @@ "severity": "error" }, { - "line": 34, + "line": 41, "column": 22, - "stop_line": 34, + "stop_line": 41, "stop_column": 33, "path": "src/paperless/consumers.py", "code": -2, @@ -11113,9 +11509,9 @@ "severity": "error" }, { - "line": 49, + "line": 73, "column": 35, - "stop_line": 49, + "stop_line": 73, "stop_column": 48, "path": "src/paperless/consumers.py", "code": -2, @@ -11125,9 +11521,9 @@ "severity": "error" }, { - "line": 61, + "line": 85, "column": 35, - "stop_line": 61, + "stop_line": 85, "stop_column": 48, "path": "src/paperless/consumers.py", "code": -2, @@ -11137,9 +11533,9 @@ "severity": "error" }, { - "line": 31, + "line": 45, "column": 12, - "stop_line": 31, + "stop_line": 45, "stop_column": 15, "path": "src/paperless/network.py", "code": -2, @@ -11149,26 +11545,26 @@ "severity": "error" }, { - "line": 404, + "line": 403, "column": 17, - "stop_line": 404, + "stop_line": 403, "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__`", + "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__`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", "concise_description": "Argument `bytes | None` is not assignable to parameter `data` with type `Buffer` in function `pathlib.Path.write_bytes`", "severity": "error" }, { - "line": 61, + "line": 62, "column": 38, - "stop_line": 61, + "stop_line": 62, "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", + "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\n Argument `Literal[False]` is not assignable to parameter `default` with type `@_ | None` in function `pikepdf._core.Object.get`", "concise_description": "No matching overload found for function `pikepdf._core.Object.get` called with arguments: (Literal['/Marked'], Literal[False])", "severity": "error" }, @@ -11185,57 +11581,57 @@ "severity": "error" }, { - "line": 93, - "column": 17, - "stop_line": 93, - "stop_column": 21, + "line": 92, + "column": 11, + "stop_line": 92, + "stop_column": 15, "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]`", + "name": "bad-override", + "description": "Class member `UserSerializer.Meta` overrides parent class `ModelSerializer` in an inconsistent manner\n `UserSerializer.Meta` has type `type[UserSerializer.Meta]`, which is not assignable to `type[ModelSerializer.Meta]`, the type of `ModelSerializer.Meta`", + "concise_description": "Class member `UserSerializer.Meta` overrides parent class `ModelSerializer` in an inconsistent manner", "severity": "error" }, { - "line": 153, - "column": 17, - "stop_line": 153, - "stop_column": 22, + "line": 152, + "column": 11, + "stop_line": 152, + "stop_column": 15, "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]`", + "name": "bad-override", + "description": "Class member `GroupSerializer.Meta` overrides parent class `ModelSerializer` in an inconsistent manner\n `GroupSerializer.Meta` has type `type[GroupSerializer.Meta]`, which is not assignable to `type[ModelSerializer.Meta]`, the type of `ModelSerializer.Meta`", + "concise_description": "Class member `GroupSerializer.Meta` overrides parent class `ModelSerializer` in an inconsistent manner", "severity": "error" }, { - "line": 165, - "column": 17, - "stop_line": 165, - "stop_column": 30, + "line": 164, + "column": 11, + "stop_line": 164, + "stop_column": 15, "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]`", + "name": "bad-override", + "description": "Class member `SocialAccountSerializer.Meta` overrides parent class `ModelSerializer` in an inconsistent manner\n `SocialAccountSerializer.Meta` has type `type[SocialAccountSerializer.Meta]`, which is not assignable to `type[ModelSerializer.Meta]`, the type of `ModelSerializer.Meta`", + "concise_description": "Class member `SocialAccountSerializer.Meta` overrides parent class `ModelSerializer` in an inconsistent manner", "severity": "error" }, { - "line": 199, - "column": 17, - "stop_line": 199, - "stop_column": 21, + "line": 198, + "column": 11, + "stop_line": 198, + "stop_column": 15, "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]`", + "name": "bad-override", + "description": "Class member `ProfileSerializer.Meta` overrides parent class `ModelSerializer` in an inconsistent manner\n `ProfileSerializer.Meta` has type `type[ProfileSerializer.Meta]`, which is not assignable to `type[ModelSerializer.Meta]`, the type of `ModelSerializer.Meta`", + "concise_description": "Class member `ProfileSerializer.Meta` overrides parent class `ModelSerializer` in an inconsistent manner", "severity": "error" }, { - "line": 222, + "line": 230, "column": 9, - "stop_line": 222, + "stop_line": 230, "stop_column": 23, "path": "src/paperless/serialisers.py", "code": -2, @@ -11245,9 +11641,9 @@ "severity": "error" }, { - "line": 251, + "line": 263, "column": 28, - "stop_line": 251, + "stop_line": 263, "stop_column": 43, "path": "src/paperless/serialisers.py", "code": -2, @@ -11257,69 +11653,69 @@ "severity": "error" }, { - "line": 295, - "column": 17, - "stop_line": 295, - "stop_column": 41, + "line": 324, + "column": 11, + "stop_line": 324, + "stop_column": 15, "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]`", + "name": "bad-override", + "description": "Class member `ApplicationConfigurationSerializer.Meta` overrides parent class `ModelSerializer` in an inconsistent manner\n `ApplicationConfigurationSerializer.Meta` has type `type[ApplicationConfigurationSerializer.Meta]`, which is not assignable to `type[ModelSerializer.Meta]`, the type of `ModelSerializer.Meta`", + "concise_description": "Class member `ApplicationConfigurationSerializer.Meta` overrides parent class `ModelSerializer` in an inconsistent manner", "severity": "error" }, { - "line": 277, + "line": 285, "column": 43, - "stop_line": 282, + "stop_line": 290, "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`", + "name": "bad-assignment", + "description": "`dict[str, int | list[str] | str]` is not assignable to dict key `CONFIG` with type `str`", + "concise_description": "`dict[str, int | list[str] | str]` is not assignable to dict key `CONFIG` with type `str`", "severity": "error" }, { - "line": 448, + "line": 462, "column": 30, - "stop_line": 448, + "stop_line": 462, "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`", + "description": "Argument `str | None` is not assignable to parameter `object` with type `str` in function `list.append`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", "concise_description": "Argument `str | None` is not assignable to parameter `object` with type `str` in function `list.append`", "severity": "error" }, { - "line": 1012, + "line": 1058, "column": 39, - "stop_line": 1012, + "stop_line": 1058, "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`", + "description": "Argument `str | None` is not assignable to parameter `env_ignore` with type `str` in function `paperless.settings.custom.parse_ignore_dates`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", "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, + "line": 172, "column": 27, - "stop_line": 171, + "stop_line": 172, "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`", + "description": "Argument `str | dict[str, float]` is not assignable to parameter `key` with type `str` in function `os.getenv`", + "concise_description": "Argument `str | dict[str, float]` is not assignable to parameter `key` with type `str` in function `os.getenv`", "severity": "error" }, { - "line": 179, + "line": 189, "column": 52, - "stop_line": 179, + "stop_line": 189, "stop_column": 63, "path": "src/paperless/settings/custom.py", "code": -2, @@ -11329,21 +11725,21 @@ "severity": "error" }, { - "line": 185, + "line": 195, "column": 19, - "stop_line": 185, + "stop_line": 195, "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", + "description": "Expected a mapping, got str | dict[str, float]", + "concise_description": "Expected a mapping, got str | dict[str, float]", "severity": "error" }, { - "line": 771, + "line": 793, "column": 12, - "stop_line": 771, + "stop_line": 793, "stop_column": 24, "path": "src/paperless/tests/parsers/conftest.py", "code": -2, @@ -11353,9 +11749,9 @@ "severity": "error" }, { - "line": 168, + "line": 203, "column": 45, - "stop_line": 168, + "stop_line": 203, "stop_column": 49, "path": "src/paperless/tests/parsers/test_mail_parser.py", "code": -2, @@ -11365,9 +11761,9 @@ "severity": "error" }, { - "line": 372, + "line": 407, "column": 47, - "stop_line": 372, + "stop_line": 407, "stop_column": 75, "path": "src/paperless/tests/parsers/test_mail_parser.py", "code": -2, @@ -11377,9 +11773,9 @@ "severity": "error" }, { - "line": 727, + "line": 790, "column": 20, - "stop_line": 727, + "stop_line": 790, "stop_column": 31, "path": "src/paperless/tests/parsers/test_mail_parser.py", "code": -2, @@ -11396,7 +11792,7 @@ "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]", + "description": "No matching overload found for function `subprocess.run` called with arguments: (list[str | None], check=Literal[True])\n Possible overloads:\n (args: _CMD, ..., *, ..., check: bool = False, ...) -> CompletedProcess[str]\n (args: _CMD, ..., *, ..., check: bool = False, ...) -> CompletedProcess[str]\n (args: _CMD, ..., *, ..., check: bool = False, ...) -> CompletedProcess[str]\n (args: _CMD, ..., *, ..., check: bool = False, ...) -> CompletedProcess[str]\n (args: _CMD, ..., *, ..., check: bool = False, ...) -> CompletedProcess[bytes] [closest match]\n (args: _CMD, ..., *, ..., check: bool = False, ...) -> CompletedProcess[Any]\n Argument `list[str | None]` is not assignable to parameter `args` with type `PathLike[bytes] | PathLike[str] | Sequence[StrOrBytesPath] | bytes | str` in function `subprocess.run`", "concise_description": "No matching overload found for function `subprocess.run` called with arguments: (list[str | None], check=Literal[True])", "severity": "error" }, @@ -11408,7 +11804,7 @@ "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`", + "description": "Argument `Path | None` is not assignable to parameter `pdf_path` with type `Path` in function `extract_text`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", "concise_description": "Argument `Path | None` is not assignable to parameter `pdf_path` with type `Path` in function `extract_text`", "severity": "error" }, @@ -11425,9 +11821,9 @@ "severity": "error" }, { - "line": 77, + "line": 79, "column": 34, - "stop_line": 77, + "stop_line": 79, "stop_column": 36, "path": "src/paperless/tests/parsers/test_remote_parser.py", "code": -2, @@ -11509,9 +11905,9 @@ "severity": "error" }, { - "line": 279, + "line": 249, "column": 38, - "stop_line": 279, + "stop_line": 249, "stop_column": 75, "path": "src/paperless/tests/parsers/test_tesseract_parser.py", "code": -2, @@ -11521,9 +11917,9 @@ "severity": "error" }, { - "line": 290, + "line": 260, "column": 17, - "stop_line": 290, + "stop_line": 260, "stop_column": 65, "path": "src/paperless/tests/parsers/test_tesseract_parser.py", "code": -2, @@ -11533,81 +11929,9 @@ "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, + "line": 563, "column": 42, - "stop_line": 593, + "stop_line": 563, "stop_column": 46, "path": "src/paperless/tests/parsers/test_tesseract_parser.py", "code": -2, @@ -11617,21 +11941,9 @@ "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, + "line": 1120, "column": 14, - "stop_line": 1122, + "stop_line": 1120, "stop_column": 37, "path": "src/paperless/tests/parsers/test_tesseract_parser.py", "code": -2, @@ -11641,9 +11953,9 @@ "severity": "error" }, { - "line": 1122, + "line": 1120, "column": 14, - "stop_line": 1122, + "stop_line": 1120, "stop_column": 37, "path": "src/paperless/tests/parsers/test_tesseract_parser.py", "code": -2, @@ -11653,9 +11965,9 @@ "severity": "error" }, { - "line": 1149, + "line": 1147, "column": 14, - "stop_line": 1149, + "stop_line": 1147, "stop_column": 56, "path": "src/paperless/tests/parsers/test_tesseract_parser.py", "code": -2, @@ -11665,9 +11977,9 @@ "severity": "error" }, { - "line": 1149, + "line": 1147, "column": 14, - "stop_line": 1149, + "stop_line": 1147, "stop_column": 56, "path": "src/paperless/tests/parsers/test_tesseract_parser.py", "code": -2, @@ -11677,9 +11989,9 @@ "severity": "error" }, { - "line": 1158, + "line": 1156, "column": 14, - "stop_line": 1158, + "stop_line": 1156, "stop_column": 77, "path": "src/paperless/tests/parsers/test_tesseract_parser.py", "code": -2, @@ -11689,9 +12001,9 @@ "severity": "error" }, { - "line": 1158, + "line": 1156, "column": 14, - "stop_line": 1158, + "stop_line": 1156, "stop_column": 77, "path": "src/paperless/tests/parsers/test_tesseract_parser.py", "code": -2, @@ -11701,9 +12013,9 @@ "severity": "error" }, { - "line": 1167, + "line": 1165, "column": 14, - "stop_line": 1167, + "stop_line": 1165, "stop_column": 77, "path": "src/paperless/tests/parsers/test_tesseract_parser.py", "code": -2, @@ -11713,9 +12025,9 @@ "severity": "error" }, { - "line": 1167, + "line": 1165, "column": 14, - "stop_line": 1167, + "stop_line": 1165, "stop_column": 77, "path": "src/paperless/tests/parsers/test_tesseract_parser.py", "code": -2, @@ -11725,9 +12037,9 @@ "severity": "error" }, { - "line": 1188, + "line": 1186, "column": 14, - "stop_line": 1188, + "stop_line": 1186, "stop_column": 77, "path": "src/paperless/tests/parsers/test_tesseract_parser.py", "code": -2, @@ -11737,9 +12049,9 @@ "severity": "error" }, { - "line": 1188, + "line": 1186, "column": 14, - "stop_line": 1188, + "stop_line": 1186, "stop_column": 77, "path": "src/paperless/tests/parsers/test_tesseract_parser.py", "code": -2, @@ -11749,9 +12061,9 @@ "severity": "error" }, { - "line": 1196, + "line": 1194, "column": 14, - "stop_line": 1196, + "stop_line": 1194, "stop_column": 69, "path": "src/paperless/tests/parsers/test_tesseract_parser.py", "code": -2, @@ -11761,9 +12073,9 @@ "severity": "error" }, { - "line": 1196, + "line": 1194, "column": 14, - "stop_line": 1196, + "stop_line": 1194, "stop_column": 69, "path": "src/paperless/tests/parsers/test_tesseract_parser.py", "code": -2, @@ -11773,9 +12085,9 @@ "severity": "error" }, { - "line": 1205, + "line": 1203, "column": 14, - "stop_line": 1205, + "stop_line": 1203, "stop_column": 70, "path": "src/paperless/tests/parsers/test_tesseract_parser.py", "code": -2, @@ -11785,9 +12097,9 @@ "severity": "error" }, { - "line": 1205, + "line": 1203, "column": 14, - "stop_line": 1205, + "stop_line": 1203, "stop_column": 70, "path": "src/paperless/tests/parsers/test_tesseract_parser.py", "code": -2, @@ -11804,38 +12116,242 @@ "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__`", + "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__`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", "concise_description": "Argument `Path | None` is not assignable to parameter `*args` with type `PathLike[str] | str` in function `pathlib.Path.__new__`", "severity": "error" }, - { - "line": 25, - "column": 16, - "stop_line": 25, - "stop_column": 30, - "path": "src/paperless/tests/test_celery.py", - "code": -2, - "name": "bad-index", - "description": "Cannot index into `object`\n Object of class `object` has no attribute `__getitem__`", - "concise_description": "Cannot index into `object`", - "severity": "error" - }, { "line": 26, - "column": 16, + "column": 43, "stop_line": 26, - "stop_column": 30, - "path": "src/paperless/tests/test_celery.py", + "stop_column": 47, + "path": "src/paperless/tests/test_adapter.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`", + "name": "bad-argument-type", + "description": "Argument `None` is not assignable to parameter `request` with type `HttpRequest` in function `allauth.account.adapter.DefaultAccountAdapter.is_open_for_signup`", + "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" }, { - "line": 296, + "line": 31, + "column": 43, + "stop_line": 31, + "stop_column": 47, + "path": "src/paperless/tests/test_adapter.py", + "code": -2, + "name": "bad-argument-type", + "description": "Argument `None` is not assignable to parameter `request` with type `HttpRequest` in function `allauth.account.adapter.DefaultAccountAdapter.is_open_for_signup`", + "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" + }, + { + "line": 34, + "column": 47, + "stop_line": 34, + "stop_column": 51, + "path": "src/paperless/tests/test_adapter.py", + "code": -2, + "name": "bad-argument-type", + "description": "Argument `None` is not assignable to parameter `request` with type `HttpRequest` in function `allauth.account.adapter.DefaultAccountAdapter.is_open_for_signup`", + "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" + }, + { + "line": 106, "column": 16, - "stop_line": 296, + "stop_line": 106, + "stop_column": 27, + "path": "src/paperless/tests/test_adapter.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": 107, + "column": 16, + "stop_line": 107, + "stop_column": 27, + "path": "src/paperless/tests/test_adapter.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": 108, + "column": 20, + "stop_line": 108, + "stop_column": 31, + "path": "src/paperless/tests/test_adapter.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": 119, + "column": 16, + "stop_line": 119, + "stop_column": 33, + "path": "src/paperless/tests/test_adapter.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": 128, + "column": 20, + "stop_line": 128, + "stop_column": 38, + "path": "src/paperless/tests/test_adapter.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": 137, + "column": 43, + "stop_line": 137, + "stop_column": 47, + "path": "src/paperless/tests/test_adapter.py", + "code": -2, + "name": "bad-argument-type", + "description": "Argument `None` is not assignable to parameter `request` with type `HttpRequest` in function `allauth.socialaccount.adapter.DefaultSocialAccountAdapter.is_open_for_signup`", + "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" + }, + { + "line": 137, + "column": 49, + "stop_line": 137, + "stop_column": 53, + "path": "src/paperless/tests/test_adapter.py", + "code": -2, + "name": "bad-argument-type", + "description": "Argument `None` is not assignable to parameter `sociallogin` with type `SocialLogin` in function `allauth.socialaccount.adapter.DefaultSocialAccountAdapter.is_open_for_signup`", + "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" + }, + { + "line": 140, + "column": 47, + "stop_line": 140, + "stop_column": 51, + "path": "src/paperless/tests/test_adapter.py", + "code": -2, + "name": "bad-argument-type", + "description": "Argument `None` is not assignable to parameter `request` with type `HttpRequest` in function `allauth.socialaccount.adapter.DefaultSocialAccountAdapter.is_open_for_signup`", + "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" + }, + { + "line": 140, + "column": 53, + "stop_line": 140, + "stop_column": 57, + "path": "src/paperless/tests/test_adapter.py", + "code": -2, + "name": "bad-argument-type", + "description": "Argument `None` is not assignable to parameter `sociallogin` with type `SocialLogin` in function `allauth.socialaccount.adapter.DefaultSocialAccountAdapter.is_open_for_signup`", + "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" + }, + { + "line": 144, + "column": 49, + "stop_line": 144, + "stop_column": 53, + "path": "src/paperless/tests/test_adapter.py", + "code": -2, + "name": "bad-argument-type", + "description": "Argument `None` is not assignable to parameter `request` with type `HttpRequest` in function `allauth.socialaccount.adapter.DefaultSocialAccountAdapter.get_connect_redirect_url`", + "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" + }, + { + "line": 160, + "column": 16, + "stop_line": 160, + "stop_column": 27, + "path": "src/paperless/tests/test_adapter.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": 161, + "column": 16, + "stop_line": 161, + "stop_column": 27, + "path": "src/paperless/tests/test_adapter.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": 162, + "column": 20, + "stop_line": 162, + "stop_column": 31, + "path": "src/paperless/tests/test_adapter.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": 22, + "column": 23, + "stop_line": 22, + "stop_column": 48, + "path": "src/paperless/tests/test_api_auth.py", + "code": -2, + "name": "missing-attribute", + "description": "Object of class `FunctionType` has no attribute `view_class`", + "concise_description": "Object of class `FunctionType` has no attribute `view_class`", + "severity": "error" + }, + { + "line": 22, + "column": 50, + "stop_line": 22, + "stop_column": 79, + "path": "src/paperless/tests/test_api_auth.py", + "code": -2, + "name": "missing-attribute", + "description": "Object of class `FunctionType` has no attribute `view_class`", + "concise_description": "Object of class `FunctionType` has no attribute `view_class`", + "severity": "error" + }, + { + "line": 15, + "column": 47, + "stop_line": 15, + "stop_column": 67, + "path": "src/paperless/tests/test_auth_middleware.py", + "code": -2, + "name": "bad-argument-type", + "description": "Argument `(request: HttpRequest) -> None` is not assignable to parameter `get_response` with type `_AnyGetResponseCallable` in function `django.utils.deprecation.MiddlewareMixin.__init__`\n Protocol `Awaitable` requires attribute `__await__`", + "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" + }, + { + "line": 295, + "column": 16, + "stop_line": 295, "stop_column": 39, "path": "src/paperless/tests/test_checks.py", "code": -2, @@ -11845,9 +12361,9 @@ "severity": "error" }, { - "line": 297, + "line": 296, "column": 16, - "stop_line": 297, + "stop_line": 296, "stop_column": 45, "path": "src/paperless/tests/test_checks.py", "code": -2, @@ -11857,21 +12373,21 @@ "severity": "error" }, { - "line": 315, + "line": 314, "column": 29, - "stop_line": 315, + "stop_line": 314, "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", + "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\n Argument `Generator[str | None]` is not assignable to parameter `iterable` with type `Iterable[LiteralString]` in function `str.join`", "concise_description": "No matching overload found for function `str.join` called with arguments: (Generator[str | None])", "severity": "error" }, { - "line": 345, + "line": 344, "column": 16, - "stop_line": 345, + "stop_line": 344, "stop_column": 56, "path": "src/paperless/tests/test_checks.py", "code": -2, @@ -11881,9 +12397,9 @@ "severity": "error" }, { - "line": 348, + "line": 347, "column": 20, - "stop_line": 348, + "stop_line": 347, "stop_column": 50, "path": "src/paperless/tests/test_checks.py", "code": -2, @@ -11893,9 +12409,9 @@ "severity": "error" }, { - "line": 376, + "line": 375, "column": 16, - "stop_line": 376, + "stop_line": 375, "stop_column": 56, "path": "src/paperless/tests/test_checks.py", "code": -2, @@ -11905,15 +12421,15 @@ "severity": "error" }, { - "line": 599, + "line": 598, "column": 16, - "stop_line": 599, + "stop_line": 598, "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`", + "description": "`in` is not supported between `Literal['v2.20.15']` and `None`", + "concise_description": "`in` is not supported between `Literal['v2.20.15']` and `None`", "severity": "error" }, { @@ -12025,9 +12541,9 @@ "severity": "error" }, { - "line": 694, + "line": 812, "column": 35, - "stop_line": 694, + "stop_line": 812, "stop_column": 44, "path": "src/paperless/tests/test_registry.py", "code": -2, @@ -12037,9 +12553,9 @@ "severity": "error" }, { - "line": 294, + "line": 710, "column": 23, - "stop_line": 294, + "stop_line": 710, "stop_column": 47, "path": "src/paperless/tests/test_signals.py", "code": -2, @@ -12049,9 +12565,9 @@ "severity": "error" }, { - "line": 301, + "line": 717, "column": 23, - "stop_line": 301, + "stop_line": 717, "stop_column": 47, "path": "src/paperless/tests/test_signals.py", "code": -2, @@ -12073,14 +12589,14 @@ "severity": "error" }, { - "line": 407, + "line": 427, "column": 9, - "stop_line": 407, + "stop_line": 427, "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", + "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, ...) -> URLPattern [closest match]\n (route: _StrOrPromise, view: (...) -> Coroutine[Any, Any, HttpResponseBase], ...) -> URLPattern\n (route: _StrOrPromise, view: tuple[Sequence[URLPattern | URLResolver], str | None, str | None], ...) -> URLResolver\n (route: _StrOrPromise, view: Sequence[URLResolver | str], ...) -> URLResolver\n Argument `_ASGIApplicationProtocol` is not assignable to parameter `view` with type `(...) -> HttpResponseBase` in function `django.urls.conf.path`", "concise_description": "No matching overload found for function `django.urls.conf.path` called with arguments: (Literal['ws/status/'], _ASGIApplicationProtocol)", "severity": "error" }, @@ -12116,7 +12632,7 @@ "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", + "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\n Argument `Iterator[_AnyStr] | Unknown` is not assignable to parameter `iterable` with type `Iterable[LiteralString]` in function `str.join`", "concise_description": "No matching overload found for function `str.join` called with arguments: (Iterator[_AnyStr] | Unknown)", "severity": "error" }, @@ -12193,9 +12709,21 @@ "severity": "error" }, { - "line": 255, + "line": 195, + "column": 9, + "stop_line": 195, + "stop_column": 16, + "path": "src/paperless/views.py", + "code": -2, + "name": "bad-override", + "description": "Class member `UserViewSet.destroy` overrides parent class `ModelViewSet` in an inconsistent manner\n `UserViewSet.destroy` 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.destroy`\n Signature mismatch:\n expected: def destroy(self: UserViewSet, request: Request, *args: Any, **kwargs: Any) -> Response: ...\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^ return type\n |\n parameters\n found: def destroy(self: UserViewSet, request: Unknown, *args: Unknown, **kwargs: Unknown) -> HttpResponseForbidden | Response: ...\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ return type\n |\n parameters", + "concise_description": "Class member `UserViewSet.destroy` overrides parent class `ModelViewSet` in an inconsistent manner", + "severity": "error" + }, + { + "line": 265, "column": 13, - "stop_line": 255, + "stop_line": 265, "stop_column": 30, "path": "src/paperless/views.py", "code": -2, @@ -12205,9 +12733,9 @@ "severity": "error" }, { - "line": 256, + "line": 266, "column": 13, - "stop_line": 256, + "stop_line": 266, "stop_column": 22, "path": "src/paperless/views.py", "code": -2, @@ -12217,9 +12745,9 @@ "severity": "error" }, { - "line": 260, + "line": 270, "column": 9, - "stop_line": 260, + "stop_line": 270, "stop_column": 18, "path": "src/paperless/views.py", "code": -2, @@ -12229,46 +12757,46 @@ "severity": "error" }, { - "line": 337, + "line": 317, + "column": 42, + "stop_line": 317, + "stop_column": 46, + "path": "src/paperless/views.py", + "code": -2, + "name": "bad-argument-type", + "description": "Argument `AbstractBaseUser | AnonymousUser` is not assignable to parameter `user` with type `AbstractBaseUser` in function `allauth.mfa.adapter.DefaultMFAAdapter.build_totp_url`", + "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" + }, + { + "line": 347, "column": 38, - "stop_line": 337, + "stop_line": 347, "stop_column": 75, "path": "src/paperless/views.py", "code": -2, "name": "bad-assignment", - "description": "`Authenticator | None` is not assignable to `Authenticator`", + "description": "`Authenticator | None` is not assignable to `Authenticator`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check or changing the declared type to `Authenticator | None`.", "concise_description": "`Authenticator | None` is not assignable to `Authenticator`", "severity": "error" }, { - "line": 339, + "line": 349, "column": 34, - "stop_line": 339, + "stop_line": 349, "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`", + "description": "Object of type `RecoveryCodes | TOTP | WebAuthn` has no attribute `get_unused_codes`\n Object of class `TOTP` has no attribute `get_unused_codes`\n Object of class `WebAuthn` has no attribute `get_unused_codes`", + "concise_description": "Object of type `RecoveryCodes | TOTP | WebAuthn` has no attribute `get_unused_codes`", "severity": "error" }, { - "line": 417, + "line": 427, "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, + "stop_line": 427, + "stop_column": 47, "path": "src/paperless/views.py", "code": -2, "name": "missing-attribute", @@ -12277,34 +12805,154 @@ "severity": "error" }, { - "line": 465, - "column": 23, - "stop_line": 465, + "line": 430, + "column": 13, + "stop_line": 430, + "stop_column": 50, + "path": "src/paperless/views.py", + "code": -2, + "name": "missing-attribute", + "description": "Object of class `NoneType` has no attribute `llm_embedding_chunk_size`", + "concise_description": "Object of class `NoneType` has no attribute `llm_embedding_chunk_size`", + "severity": "error" + }, + { + "line": 433, + "column": 13, + "stop_line": 433, + "stop_column": 48, + "path": "src/paperless/views.py", + "code": -2, + "name": "missing-attribute", + "description": "Object of class `NoneType` has no attribute `llm_embedding_endpoint`", + "concise_description": "Object of class `NoneType` has no attribute `llm_embedding_endpoint`", + "severity": "error" + }, + { + "line": 436, + "column": 13, + "stop_line": 436, "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`", + "description": "Object of class `NoneType` has no attribute `llm_embedding_model`", + "concise_description": "Object of class `NoneType` has no attribute `llm_embedding_model`", "severity": "error" }, { - "line": 102, - "column": 30, - "stop_line": 102, - "stop_column": 36, + "line": 439, + "column": 13, + "stop_line": 439, + "stop_column": 42, + "path": "src/paperless/views.py", + "code": -2, + "name": "missing-attribute", + "description": "Object of class `NoneType` has no attribute `llm_context_size`", + "concise_description": "Object of class `NoneType` has no attribute `llm_context_size`", + "severity": "error" + }, + { + "line": 513, + "column": 23, + "stop_line": 513, + "stop_column": 45, + "path": "src/paperless/views.py", + "code": -2, + "name": "missing-attribute", + "description": "Object of type `AbstractBaseUser | AnonymousUser` has no attribute `socialaccount_set`\n Object of class `AbstractBaseUser` has no attribute `socialaccount_set`\n Object of class `AnonymousUser` has no attribute `socialaccount_set`", + "concise_description": "Object of type `AbstractBaseUser | AnonymousUser` has no attribute `socialaccount_set`", + "severity": "error" + }, + { + "line": 264, + "column": 41, + "stop_line": 264, + "stop_column": 47, "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`", + "description": "Argument `ClassificationSuggestions` is not assignable to parameter `raw` with type `dict[Unknown, Unknown]` in function `parse_ai_response`", + "concise_description": "Argument `ClassificationSuggestions` is not assignable to parameter `raw` with type `dict[Unknown, Unknown]` in function `parse_ai_response`", "severity": "error" }, { - "line": 102, + "line": 269, + "column": 55, + "stop_line": 269, + "stop_column": 64, + "path": "src/paperless_ai/ai_classifier.py", + "code": -2, + "name": "bad-argument-type", + "description": "Argument `ClassificationSuggestions` is not assignable to parameter `raw` with type `dict[Unknown, Unknown]` in function `parse_ai_response`", + "concise_description": "Argument `ClassificationSuggestions` is not assignable to parameter `raw` with type `dict[Unknown, Unknown]` in function `parse_ai_response`", + "severity": "error" + }, + { + "line": 278, + "column": 46, + "stop_line": 278, + "stop_column": 51, + "path": "src/paperless_ai/ai_classifier.py", + "code": -2, + "name": "bad-typed-dict-key", + "description": "Invalid key for TypedDict `ClassificationSuggestions`, got `str`", + "concise_description": "Invalid key for TypedDict `ClassificationSuggestions`, got `str`", + "severity": "error" + }, + { + "line": 279, + "column": 53, + "stop_line": 279, + "stop_column": 58, + "path": "src/paperless_ai/ai_classifier.py", + "code": -2, + "name": "bad-typed-dict-key", + "description": "Invalid key for TypedDict `ClassificationSuggestions`, got `str`", + "concise_description": "Invalid key for TypedDict `ClassificationSuggestions`, got `str`", + "severity": "error" + }, + { + "line": 280, + "column": 36, + "stop_line": 280, + "stop_column": 41, + "path": "src/paperless_ai/ai_classifier.py", + "code": -2, + "name": "bad-typed-dict-key", + "description": "Invalid key for TypedDict `ClassificationSuggestions`, got `str`", + "concise_description": "Invalid key for TypedDict `ClassificationSuggestions`, got `str`", + "severity": "error" + }, + { + "line": 189, + "column": 65, + "stop_line": 189, + "stop_column": 80, + "path": "src/paperless_ai/base_model.py", + "code": -2, + "name": "bad-index", + "description": "Cannot index into `dict[str, FieldInfo]`\n Argument `str | None` is not assignable to parameter `key` with type `str` in function `dict.__getitem__`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", + "concise_description": "Cannot index into `dict[str, FieldInfo]`", + "severity": "error" + }, + { + "line": 45, "column": 18, - "stop_line": 102, - "stop_column": 46, + "stop_line": 45, + "stop_column": 62, + "path": "src/paperless_ai/chat.py", + "code": -2, + "name": "bad-assignment", + "description": "`str | Any | None` is not assignable to dict value type `int | str`\n The declared type does not allow `None`. Consider changing the declared type to `int | str | None`.", + "concise_description": "`str | Any | None` is not assignable to dict value type `int | str`", + "severity": "error" + }, + { + "line": 195, + "column": 26, + "stop_line": 195, + "stop_column": 54, "path": "src/paperless_ai/chat.py", "code": -2, "name": "missing-attribute", @@ -12313,21 +12961,45 @@ "severity": "error" }, { - "line": 79, - "column": 16, - "stop_line": 79, - "stop_column": 35, + "line": 142, + "column": 60, + "stop_line": 142, + "stop_column": 82, "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`", + "name": "bad-argument-type", + "description": "Argument `str | Unknown | None` is not assignable to parameter `s` with type `bytearray | bytes | str` in function `json.loads`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", + "concise_description": "Argument `str | Unknown | None` is not assignable to parameter `s` with type `bytearray | bytes | str` in function `json.loads`", "severity": "error" }, { - "line": 97, + "line": 111, + "column": 13, + "stop_line": 111, + "stop_column": 41, + "path": "src/paperless_ai/embedding.py", + "code": -2, + "name": "bad-argument-type", + "description": "Argument `str` is not assignable to parameter `key` with type `LLMEmbeddingBackend` in function `dict.get`", + "concise_description": "Argument `str` is not assignable to parameter `key` with type `LLMEmbeddingBackend` in function `dict.get`", + "severity": "error" + }, + { + "line": 129, + "column": 50, + "stop_line": 129, + "stop_column": 59, + "path": "src/paperless_ai/embedding.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": 132, "column": 21, - "stop_line": 97, + "stop_line": 132, "stop_column": 38, "path": "src/paperless_ai/embedding.py", "code": -2, @@ -12337,117 +13009,57 @@ "severity": "error" }, { - "line": 261, - "column": 46, - "stop_line": 261, - "stop_column": 51, - "path": "src/paperless_ai/indexing.py", + "line": 191, + "column": 59, + "stop_line": 191, + "stop_column": 65, + "path": "src/paperless_ai/taxonomy.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`", + "name": "not-iterable", + "description": "Type `object` is not iterable", + "concise_description": "Type `object` is not iterable", "severity": "error" }, { - "line": 274, - "column": 46, - "stop_line": 274, - "stop_column": 51, - "path": "src/paperless_ai/indexing.py", + "line": 485, + "column": 40, + "stop_line": 485, + "stop_column": 44, + "path": "src/paperless_ai/tests/test_ai_classifier.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`", + "description": "Argument `AbstractBaseUser` is not assignable to parameter `user` with type `User | None` in function `paperless_ai.ai_classifier.get_taxonomy_context`", + "concise_description": "Argument `AbstractBaseUser` is not assignable to parameter `user` with type `User | None` in function `paperless_ai.ai_classifier.get_taxonomy_context`", "severity": "error" }, { - "line": 331, - "column": 15, - "stop_line": 331, - "stop_column": 20, - "path": "src/paperless_ai/indexing.py", + "line": 545, + "column": 40, + "stop_line": 545, + "stop_column": 44, + "path": "src/paperless_ai/tests/test_ai_classifier.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__`", + "description": "Argument `AbstractBaseUser` is not assignable to parameter `user` with type `User | None` in function `paperless_ai.ai_classifier.get_taxonomy_context`", + "concise_description": "Argument `AbstractBaseUser` is not assignable to parameter `user` with type `User | None` in function `paperless_ai.ai_classifier.get_taxonomy_context`", "severity": "error" }, { - "line": 41, - "column": 9, - "stop_line": 41, + "line": 634, + "column": 20, + "stop_line": 634, "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", + "path": "src/paperless_ai/tests/test_ai_classifier.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`", + "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`\n Field `id` is `NotRequired` and read-write in ``, so it cannot be required in `TaxonomyCandidate`", + "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" }, { - "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, + "line": 79, "column": 37, - "stop_line": 76, + "stop_line": 79, "stop_column": 42, "path": "src/paperless_ai/tests/test_matching.py", "code": -2, @@ -12457,93 +13069,513 @@ "severity": "error" }, { - "line": 76, - "column": 49, - "stop_line": 76, - "stop_column": 53, + "line": 114, + "column": 44, + "stop_line": 114, + "stop_column": 48, "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`", + "description": "Argument `AbstractBaseUser` is not assignable to parameter `user` with type `User | None` in function `paperless_ai.matching.resolve_tag_ids`", + "concise_description": "Argument `AbstractBaseUser` is not assignable to parameter `user` with type `User | None` in function `paperless_ai.matching.resolve_tag_ids`", "severity": "error" }, { - "line": 83, - "column": 49, - "stop_line": 83, - "stop_column": 53, + "line": 125, + "column": 44, + "stop_line": 125, + "stop_column": 48, "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`", + "description": "Argument `AbstractBaseUser` is not assignable to parameter `user` with type `User | None` in function `paperless_ai.matching.resolve_tag_ids`", + "concise_description": "Argument `AbstractBaseUser` is not assignable to parameter `user` with type `User | None` in function `paperless_ai.matching.resolve_tag_ids`", "severity": "error" }, { - "line": 168, - "column": 26, - "stop_line": 168, - "stop_column": 30, - "path": "src/paperless_mail/mail.py", + "line": 145, + "column": 44, + "stop_line": 145, + "stop_column": 48, + "path": "src/paperless_ai/tests/test_matching.py", + "code": -2, + "name": "bad-argument-type", + "description": "Argument `AbstractBaseUser` is not assignable to parameter `user` with type `User | None` in function `paperless_ai.matching.resolve_tag_ids`", + "concise_description": "Argument `AbstractBaseUser` is not assignable to parameter `user` with type `User | None` in function `paperless_ai.matching.resolve_tag_ids`", + "severity": "error" + }, + { + "line": 155, + "column": 36, + "stop_line": 155, + "stop_column": 40, + "path": "src/paperless_ai/tests/test_matching.py", + "code": -2, + "name": "bad-argument-type", + "description": "Argument `AbstractBaseUser` is not assignable to parameter `user` with type `User | None` in function `paperless_ai.matching.resolve_tag_ids`", + "concise_description": "Argument `AbstractBaseUser` is not assignable to parameter `user` with type `User | None` in function `paperless_ai.matching.resolve_tag_ids`", + "severity": "error" + }, + { + "line": 170, + "column": 21, + "stop_line": 170, + "stop_column": 26, + "path": "src/paperless_ai/tests/test_matching.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`", + "description": "`AbstractBaseUser` is not assignable to attribute `owner` with type `User | None`", + "concise_description": "`AbstractBaseUser` is not assignable to attribute `owner` with type `User | None`", "severity": "error" }, { - "line": 185, + "line": 206, + "column": 34, + "stop_line": 206, + "stop_column": 38, + "path": "src/paperless_ai/tests/test_matching.py", + "code": -2, + "name": "bad-argument-type", + "description": "Argument `AbstractBaseUser` is not assignable to parameter with type `User`", + "concise_description": "Argument `AbstractBaseUser` is not assignable to parameter with type `User`", + "severity": "error" + }, + { + "line": 58, + "column": 44, + "stop_line": 58, + "stop_column": 49, + "path": "src/paperless_ai/tests/test_taxonomy.py", + "code": -2, + "name": "bad-argument-type", + "description": "Argument `list[SimpleNamespace]` is not assignable to parameter `nodes` with type `list[NodeWithScore]` in function `paperless_ai.taxonomy.build_taxonomy_candidates`", + "concise_description": "Argument `list[SimpleNamespace]` is not assignable to parameter `nodes` with type `list[NodeWithScore]` in function `paperless_ai.taxonomy.build_taxonomy_candidates`", + "severity": "error" + }, + { + "line": 85, + "column": 44, + "stop_line": 85, + "stop_column": 49, + "path": "src/paperless_ai/tests/test_taxonomy.py", + "code": -2, + "name": "bad-argument-type", + "description": "Argument `list[SimpleNamespace]` is not assignable to parameter `nodes` with type `list[NodeWithScore]` in function `paperless_ai.taxonomy.build_taxonomy_candidates`", + "concise_description": "Argument `list[SimpleNamespace]` is not assignable to parameter `nodes` with type `list[NodeWithScore]` in function `paperless_ai.taxonomy.build_taxonomy_candidates`", + "severity": "error" + }, + { + "line": 107, + "column": 44, + "stop_line": 107, + "stop_column": 49, + "path": "src/paperless_ai/tests/test_taxonomy.py", + "code": -2, + "name": "bad-argument-type", + "description": "Argument `list[SimpleNamespace]` is not assignable to parameter `nodes` with type `list[NodeWithScore]` in function `paperless_ai.taxonomy.build_taxonomy_candidates`", + "concise_description": "Argument `list[SimpleNamespace]` is not assignable to parameter `nodes` with type `list[NodeWithScore]` in function `paperless_ai.taxonomy.build_taxonomy_candidates`", + "severity": "error" + }, + { + "line": 128, + "column": 44, + "stop_line": 128, + "stop_column": 49, + "path": "src/paperless_ai/tests/test_taxonomy.py", + "code": -2, + "name": "bad-argument-type", + "description": "Argument `list[SimpleNamespace]` is not assignable to parameter `nodes` with type `list[NodeWithScore]` in function `paperless_ai.taxonomy.build_taxonomy_candidates`", + "concise_description": "Argument `list[SimpleNamespace]` is not assignable to parameter `nodes` with type `list[NodeWithScore]` in function `paperless_ai.taxonomy.build_taxonomy_candidates`", + "severity": "error" + }, + { + "line": 146, + "column": 44, + "stop_line": 146, + "stop_column": 49, + "path": "src/paperless_ai/tests/test_taxonomy.py", + "code": -2, + "name": "bad-argument-type", + "description": "Argument `list[SimpleNamespace]` is not assignable to parameter `nodes` with type `list[NodeWithScore]` in function `paperless_ai.taxonomy.build_taxonomy_candidates`", + "concise_description": "Argument `list[SimpleNamespace]` is not assignable to parameter `nodes` with type `list[NodeWithScore]` in function `paperless_ai.taxonomy.build_taxonomy_candidates`", + "severity": "error" + }, + { + "line": 165, + "column": 44, + "stop_line": 165, + "stop_column": 49, + "path": "src/paperless_ai/tests/test_taxonomy.py", + "code": -2, + "name": "bad-argument-type", + "description": "Argument `list[SimpleNamespace]` is not assignable to parameter `nodes` with type `list[NodeWithScore]` in function `paperless_ai.taxonomy.build_taxonomy_candidates`", + "concise_description": "Argument `list[SimpleNamespace]` is not assignable to parameter `nodes` with type `list[NodeWithScore]` in function `paperless_ai.taxonomy.build_taxonomy_candidates`", + "severity": "error" + }, + { + "line": 182, + "column": 44, + "stop_line": 182, + "stop_column": 49, + "path": "src/paperless_ai/tests/test_taxonomy.py", + "code": -2, + "name": "bad-argument-type", + "description": "Argument `list[SimpleNamespace]` is not assignable to parameter `nodes` with type `list[NodeWithScore]` in function `paperless_ai.taxonomy.build_taxonomy_candidates`", + "concise_description": "Argument `list[SimpleNamespace]` is not assignable to parameter `nodes` with type `list[NodeWithScore]` in function `paperless_ai.taxonomy.build_taxonomy_candidates`", + "severity": "error" + }, + { + "line": 203, + "column": 44, + "stop_line": 203, + "stop_column": 49, + "path": "src/paperless_ai/tests/test_taxonomy.py", + "code": -2, + "name": "bad-argument-type", + "description": "Argument `list[SimpleNamespace]` is not assignable to parameter `nodes` with type `list[NodeWithScore]` in function `paperless_ai.taxonomy.build_taxonomy_candidates`", + "concise_description": "Argument `list[SimpleNamespace]` is not assignable to parameter `nodes` with type `list[NodeWithScore]` in function `paperless_ai.taxonomy.build_taxonomy_candidates`", + "severity": "error" + }, + { + "line": 220, + "column": 44, + "stop_line": 220, + "stop_column": 49, + "path": "src/paperless_ai/tests/test_taxonomy.py", + "code": -2, + "name": "bad-argument-type", + "description": "Argument `list[SimpleNamespace]` is not assignable to parameter `nodes` with type `list[NodeWithScore]` in function `paperless_ai.taxonomy.build_taxonomy_candidates`", + "concise_description": "Argument `list[SimpleNamespace]` is not assignable to parameter `nodes` with type `list[NodeWithScore]` in function `paperless_ai.taxonomy.build_taxonomy_candidates`", + "severity": "error" + }, + { + "line": 241, + "column": 44, + "stop_line": 241, + "stop_column": 49, + "path": "src/paperless_ai/tests/test_taxonomy.py", + "code": -2, + "name": "bad-argument-type", + "description": "Argument `list[SimpleNamespace]` is not assignable to parameter `nodes` with type `list[NodeWithScore]` in function `paperless_ai.taxonomy.build_taxonomy_candidates`", + "concise_description": "Argument `list[SimpleNamespace]` is not assignable to parameter `nodes` with type `list[NodeWithScore]` in function `paperless_ai.taxonomy.build_taxonomy_candidates`", + "severity": "error" + }, + { + "line": 268, + "column": 44, + "stop_line": 268, + "stop_column": 49, + "path": "src/paperless_ai/tests/test_taxonomy.py", + "code": -2, + "name": "bad-argument-type", + "description": "Argument `list[SimpleNamespace]` is not assignable to parameter `nodes` with type `list[NodeWithScore]` in function `paperless_ai.taxonomy.build_taxonomy_candidates`", + "concise_description": "Argument `list[SimpleNamespace]` is not assignable to parameter `nodes` with type `list[NodeWithScore]` in function `paperless_ai.taxonomy.build_taxonomy_candidates`", + "severity": "error" + }, + { + "line": 268, + "column": 56, + "stop_line": 268, + "stop_column": 60, + "path": "src/paperless_ai/tests/test_taxonomy.py", + "code": -2, + "name": "bad-argument-type", + "description": "Argument `AbstractBaseUser` is not assignable to parameter `user` with type `User | None` in function `paperless_ai.taxonomy.build_taxonomy_candidates`", + "concise_description": "Argument `AbstractBaseUser` is not assignable to parameter `user` with type `User | None` in function `paperless_ai.taxonomy.build_taxonomy_candidates`", + "severity": "error" + }, + { + "line": 294, + "column": 21, + "stop_line": 294, + "stop_column": 26, + "path": "src/paperless_ai/tests/test_taxonomy.py", + "code": -2, + "name": "bad-assignment", + "description": "`AbstractBaseUser` is not assignable to attribute `owner` with type `User | None`", + "concise_description": "`AbstractBaseUser` is not assignable to attribute `owner` with type `User | None`", + "severity": "error" + }, + { + "line": 301, + "column": 44, + "stop_line": 301, + "stop_column": 49, + "path": "src/paperless_ai/tests/test_taxonomy.py", + "code": -2, + "name": "bad-argument-type", + "description": "Argument `list[SimpleNamespace]` is not assignable to parameter `nodes` with type `list[NodeWithScore]` in function `paperless_ai.taxonomy.build_taxonomy_candidates`", + "concise_description": "Argument `list[SimpleNamespace]` is not assignable to parameter `nodes` with type `list[NodeWithScore]` in function `paperless_ai.taxonomy.build_taxonomy_candidates`", + "severity": "error" + }, + { + "line": 117, + "column": 32, + "stop_line": 117, + "stop_column": 46, + "path": "src/paperless_ai/tests/test_vector_store.py", + "code": -2, + "name": "bad-argument-type", + "description": "Argument `list[float] | None` is not assignable to parameter `embedding` with type `list[float]` in function `_query`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", + "concise_description": "Argument `list[float] | None` is not assignable to parameter `embedding` with type `list[float]` in function `_query`", + "severity": "error" + }, + { + "line": 119, + "column": 16, + "stop_line": 119, + "stop_column": 31, + "path": "src/paperless_ai/tests/test_vector_store.py", + "code": -2, + "name": "unsupported-operation", + "description": "`None` is not subscriptable", + "concise_description": "`None` is not subscriptable", + "severity": "error" + }, + { + "line": 121, + "column": 16, + "stop_line": 121, + "stop_column": 38, + "path": "src/paperless_ai/tests/test_vector_store.py", + "code": -2, + "name": "unsupported-operation", + "description": "`None` is not subscriptable", + "concise_description": "`None` is not subscriptable", + "severity": "error" + }, + { + "line": 146, + "column": 23, + "stop_line": 146, + "stop_column": 33, + "path": "src/paperless_ai/tests/test_vector_store.py", + "code": -2, + "name": "bad-argument-type", + "description": "Argument `list[str] | None` is not assignable to parameter `iterable` with type `Iterable[str]` in function `sorted`\n Protocol `Iterable` requires attribute `__iter__`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", + "concise_description": "Argument `list[str] | None` is not assignable to parameter `iterable` with type `Iterable[str]` in function `sorted`", + "severity": "error" + }, + { + "line": 160, + "column": 20, + "stop_line": 160, + "stop_column": 30, + "path": "src/paperless_ai/tests/test_vector_store.py", + "code": -2, + "name": "bad-argument-type", + "description": "Argument `list[str] | None` is not assignable to parameter `obj` with type `Sized` in function `len`\n Protocol `Sized` requires attribute `__len__`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", + "concise_description": "Argument `list[str] | None` is not assignable to parameter `obj` with type `Sized` in function `len`", + "severity": "error" + }, + { + "line": 161, + "column": 45, + "stop_line": 161, + "stop_column": 80, + "path": "src/paperless_ai/tests/test_vector_store.py", + "code": -2, + "name": "no-matching-overload", + "description": "No matching overload found for function `sorted` called with arguments: (list[float] | None, reverse=Literal[True])\n Possible overloads:\n (iterable: Iterable[SupportsRichComparisonT], /, *, ..., reverse: bool = False) -> list[SupportsRichComparisonT] [closest match]\n (iterable: Iterable[_T], /, *, ..., reverse: bool = False) -> list[_T]\n Argument `list[float] | None` is not assignable to parameter `iterable` with type `Iterable[float]` in function `sorted`", + "concise_description": "No matching overload found for function `sorted` called with arguments: (list[float] | None, reverse=Literal[True])", + "severity": "error" + }, + { + "line": 291, + "column": 13, + "stop_line": 291, + "stop_column": 75, + "path": "src/paperless_ai/tests/test_vector_store.py", + "code": -2, + "name": "bad-argument-type", + "description": "Argument `list[str] | None` is not assignable to parameter `iterable` with type `Iterable[str]` in function `sorted`\n Protocol `Iterable` requires attribute `__iter__`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", + "concise_description": "Argument `list[str] | None` is not assignable to parameter `iterable` with type `Iterable[str]` in function `sorted`", + "severity": "error" + }, + { + "line": 304, + "column": 13, + "stop_line": 304, + "stop_column": 81, + "path": "src/paperless_ai/tests/test_vector_store.py", + "code": -2, + "name": "bad-argument-type", + "description": "Argument `list[str] | None` is not assignable to parameter `iterable` with type `Iterable[str]` in function `sorted`\n Protocol `Iterable` requires attribute `__iter__`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", + "concise_description": "Argument `list[str] | None` is not assignable to parameter `iterable` with type `Iterable[str]` in function `sorted`", + "severity": "error" + }, + { + "line": 401, + "column": 36, + "stop_line": 401, + "stop_column": 39, + "path": "src/paperless_ai/tests/test_vector_store.py", + "code": -2, + "name": "bad-argument-type", + "description": "Argument `Literal['1']` is not assignable to parameter `document_id` with type `int` in function `make_node`", + "concise_description": "Argument `Literal['1']` is not assignable to parameter `document_id` with type `int` in function `make_node`", + "severity": "error" + }, + { + "line": 401, + "column": 58, + "stop_line": 401, + "stop_column": 61, + "path": "src/paperless_ai/tests/test_vector_store.py", + "code": -2, + "name": "bad-argument-type", + "description": "Argument `Literal['2']` is not assignable to parameter `document_id` with type `int` in function `make_node`", + "concise_description": "Argument `Literal['2']` is not assignable to parameter `document_id` with type `int` in function `make_node`", + "severity": "error" + }, + { + "line": 424, + "column": 23, + "stop_line": 424, + "stop_column": 33, + "path": "src/paperless_ai/tests/test_vector_store.py", + "code": -2, + "name": "bad-argument-type", + "description": "Argument `list[str] | None` is not assignable to parameter `iterable` with type `Iterable[str]` in function `sorted`\n Protocol `Iterable` requires attribute `__iter__`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", + "concise_description": "Argument `list[str] | None` is not assignable to parameter `iterable` with type `Iterable[str]` in function `sorted`", + "severity": "error" + }, + { + "line": 552, + "column": 16, + "stop_line": 552, + "stop_column": 65, + "path": "src/paperless_ai/tests/test_vector_store.py", + "code": -2, + "name": "not-iterable", + "description": "`in` is not supported between `Literal['c1']` and `None`", + "concise_description": "`in` is not supported between `Literal['c1']` and `None`", + "severity": "error" + }, + { + "line": 742, + "column": 37, + "stop_line": 742, + "stop_column": 55, + "path": "src/paperless_ai/tests/test_vector_store.py", + "code": -2, + "name": "bad-assignment", + "description": "`int` is not assignable to attribute `SCHEMA_VERSION` with type `Literal[2]`", + "concise_description": "`int` is not assignable to attribute `SCHEMA_VERSION` with type `Literal[2]`", + "severity": "error" + }, + { + "line": 811, + "column": 37, + "stop_line": 811, + "stop_column": 55, + "path": "src/paperless_ai/tests/test_vector_store.py", + "code": -2, + "name": "bad-assignment", + "description": "`int` is not assignable to attribute `SCHEMA_VERSION` with type `Literal[2]`", + "concise_description": "`int` is not assignable to attribute `SCHEMA_VERSION` with type `Literal[2]`", + "severity": "error" + }, + { + "line": 900, + "column": 37, + "stop_line": 900, + "stop_column": 55, + "path": "src/paperless_ai/tests/test_vector_store.py", + "code": -2, + "name": "bad-assignment", + "description": "`int` is not assignable to attribute `SCHEMA_VERSION` with type `Literal[2]`", + "concise_description": "`int` is not assignable to attribute `SCHEMA_VERSION` with type `Literal[2]`", + "severity": "error" + }, + { + "line": 159, + "column": 31, + "stop_line": 159, + "stop_column": 38, + "path": "src/paperless_ai/vector_store.py", + "code": -2, + "name": "bad-argument-type", + "description": "Argument `float | int | list[float] | list[int] | list[str] | str | None` is not assignable to parameter `x` with type `Buffer | SupportsIndex | SupportsInt | SupportsTrunc | str` in function `int.__new__`\n Protocol `Buffer` requires attribute `__buffer__`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", + "concise_description": "Argument `float | int | list[float] | list[int] | list[str] | str | None` is not assignable to parameter `x` with type `Buffer | SupportsIndex | SupportsInt | SupportsTrunc | str` in function `int.__new__`", + "severity": "error" + }, + { + "line": 162, + "column": 31, + "stop_line": 162, + "stop_column": 38, + "path": "src/paperless_ai/vector_store.py", + "code": -2, + "name": "bad-argument-type", + "description": "Argument `float | int | list[float] | list[int] | list[str] | str | None` is not assignable to parameter `x` with type `Buffer | SupportsIndex | SupportsInt | SupportsTrunc | str` in function `int.__new__`\n Protocol `Buffer` requires attribute `__buffer__`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", + "concise_description": "Argument `float | int | list[float] | list[int] | list[str] | str | None` is not assignable to parameter `x` with type `Buffer | SupportsIndex | SupportsInt | SupportsTrunc | str` in function `int.__new__`", + "severity": "error" + }, + { + "line": 364, + "column": 29, + "stop_line": 364, + "stop_column": 40, + "path": "src/paperless_ai/vector_store.py", + "code": -2, + "name": "bad-argument-type", + "description": "Argument `str | Any | None` is not assignable to parameter `x` with type `Buffer | SupportsIndex | SupportsInt | SupportsTrunc | str` in function `int.__new__`\n Protocol `Buffer` requires attribute `__buffer__`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", + "concise_description": "Argument `str | Any | None` is not assignable to parameter `x` with type `Buffer | SupportsIndex | SupportsInt | SupportsTrunc | str` in function `int.__new__`", + "severity": "error" + }, + { + "line": 198, "column": 64, - "stop_line": 185, + "stop_line": 198, "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`", + "description": "Argument `str | Unknown | None` is not assignable to parameter `*args` with type `str` in function `imaplib.IMAP4.uid`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", + "concise_description": "Argument `str | Unknown | None` is not assignable to parameter `*args` with type `str` in function `imaplib.IMAP4.uid`", "severity": "error" }, { - "line": 197, + "line": 210, "column": 33, - "stop_line": 197, + "stop_line": 210, "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`", + "description": "Argument `list[str] | 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__`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", + "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" }, { - "line": 275, + "line": 289, "column": 53, - "stop_line": 275, + "stop_line": 289, "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`", + "description": "Argument `str | None` is not assignable to parameter `parameter` with type `str` in function `BaseMailAction.post_consume`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", "concise_description": "Argument `str | None` is not assignable to parameter `parameter` with type `str` in function `BaseMailAction.post_consume`", "severity": "error" }, { - "line": 376, + "line": 403, "column": 13, - "stop_line": 376, + "stop_line": 403, "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__`", + "description": "Argument `str | None` is not assignable to parameter `parameter` with type `str` in function `TagMailAction.__init__`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", "concise_description": "Argument `str | None` is not assignable to parameter `parameter` with type `str` in function `TagMailAction.__init__`", "severity": "error" }, { - "line": 393, + "line": 420, "column": 30, - "stop_line": 393, + "stop_line": 420, "stop_column": 46, "path": "src/paperless_mail/mail.py", "code": -2, @@ -12553,9 +13585,9 @@ "severity": "error" }, { - "line": 395, + "line": 422, "column": 27, - "stop_line": 395, + "stop_line": 422, "stop_column": 41, "path": "src/paperless_mail/mail.py", "code": -2, @@ -12565,9 +13597,9 @@ "severity": "error" }, { - "line": 397, + "line": 424, "column": 32, - "stop_line": 397, + "stop_line": 424, "stop_column": 51, "path": "src/paperless_mail/mail.py", "code": -2, @@ -12577,9 +13609,9 @@ "severity": "error" }, { - "line": 399, + "line": 426, "column": 29, - "stop_line": 399, + "stop_line": 426, "stop_column": 45, "path": "src/paperless_mail/mail.py", "code": -2, @@ -12589,9 +13621,9 @@ "severity": "error" }, { - "line": 407, + "line": 434, "column": 38, - "stop_line": 407, + "stop_line": 434, "stop_column": 49, "path": "src/paperless_mail/mail.py", "code": -2, @@ -12601,9 +13633,9 @@ "severity": "error" }, { - "line": 407, + "line": 434, "column": 38, - "stop_line": 407, + "stop_line": 434, "stop_column": 49, "path": "src/paperless_mail/mail.py", "code": -2, @@ -12613,9 +13645,9 @@ "severity": "error" }, { - "line": 407, + "line": 434, "column": 38, - "stop_line": 407, + "stop_line": 434, "stop_column": 49, "path": "src/paperless_mail/mail.py", "code": -2, @@ -12625,9 +13657,9 @@ "severity": "error" }, { - "line": 407, + "line": 434, "column": 38, - "stop_line": 407, + "stop_line": 434, "stop_column": 49, "path": "src/paperless_mail/mail.py", "code": -2, @@ -12637,9 +13669,9 @@ "severity": "error" }, { - "line": 407, + "line": 434, "column": 38, - "stop_line": 407, + "stop_line": 434, "stop_column": 49, "path": "src/paperless_mail/mail.py", "code": -2, @@ -12649,9 +13681,9 @@ "severity": "error" }, { - "line": 407, + "line": 434, "column": 38, - "stop_line": 407, + "stop_line": 434, "stop_column": 49, "path": "src/paperless_mail/mail.py", "code": -2, @@ -12661,9 +13693,9 @@ "severity": "error" }, { - "line": 407, + "line": 434, "column": 38, - "stop_line": 407, + "stop_line": 434, "stop_column": 49, "path": "src/paperless_mail/mail.py", "code": -2, @@ -12673,9 +13705,9 @@ "severity": "error" }, { - "line": 407, + "line": 434, "column": 38, - "stop_line": 407, + "stop_line": 434, "stop_column": 49, "path": "src/paperless_mail/mail.py", "code": -2, @@ -12685,9 +13717,9 @@ "severity": "error" }, { - "line": 407, + "line": 434, "column": 38, - "stop_line": 407, + "stop_line": 434, "stop_column": 49, "path": "src/paperless_mail/mail.py", "code": -2, @@ -12697,9 +13729,9 @@ "severity": "error" }, { - "line": 407, + "line": 434, "column": 38, - "stop_line": 407, + "stop_line": 434, "stop_column": 49, "path": "src/paperless_mail/mail.py", "code": -2, @@ -12709,9 +13741,9 @@ "severity": "error" }, { - "line": 407, + "line": 434, "column": 38, - "stop_line": 407, + "stop_line": 434, "stop_column": 49, "path": "src/paperless_mail/mail.py", "code": -2, @@ -12721,9 +13753,9 @@ "severity": "error" }, { - "line": 407, + "line": 434, "column": 38, - "stop_line": 407, + "stop_line": 434, "stop_column": 49, "path": "src/paperless_mail/mail.py", "code": -2, @@ -12733,9 +13765,9 @@ "severity": "error" }, { - "line": 407, + "line": 434, "column": 38, - "stop_line": 407, + "stop_line": 434, "stop_column": 49, "path": "src/paperless_mail/mail.py", "code": -2, @@ -12745,9 +13777,9 @@ "severity": "error" }, { - "line": 407, + "line": 434, "column": 38, - "stop_line": 407, + "stop_line": 434, "stop_column": 49, "path": "src/paperless_mail/mail.py", "code": -2, @@ -12757,9 +13789,9 @@ "severity": "error" }, { - "line": 407, + "line": 434, "column": 38, - "stop_line": 407, + "stop_line": 434, "stop_column": 49, "path": "src/paperless_mail/mail.py", "code": -2, @@ -12769,9 +13801,9 @@ "severity": "error" }, { - "line": 407, + "line": 434, "column": 38, - "stop_line": 407, + "stop_line": 434, "stop_column": 49, "path": "src/paperless_mail/mail.py", "code": -2, @@ -12781,9 +13813,9 @@ "severity": "error" }, { - "line": 407, + "line": 434, "column": 38, - "stop_line": 407, + "stop_line": 434, "stop_column": 49, "path": "src/paperless_mail/mail.py", "code": -2, @@ -12793,9 +13825,9 @@ "severity": "error" }, { - "line": 407, + "line": 434, "column": 38, - "stop_line": 407, + "stop_line": 434, "stop_column": 49, "path": "src/paperless_mail/mail.py", "code": -2, @@ -12805,9 +13837,9 @@ "severity": "error" }, { - "line": 407, + "line": 434, "column": 38, - "stop_line": 407, + "stop_line": 434, "stop_column": 49, "path": "src/paperless_mail/mail.py", "code": -2, @@ -12817,9 +13849,9 @@ "severity": "error" }, { - "line": 407, + "line": 434, "column": 38, - "stop_line": 407, + "stop_line": 434, "stop_column": 49, "path": "src/paperless_mail/mail.py", "code": -2, @@ -12829,9 +13861,9 @@ "severity": "error" }, { - "line": 407, + "line": 434, "column": 38, - "stop_line": 407, + "stop_line": 434, "stop_column": 49, "path": "src/paperless_mail/mail.py", "code": -2, @@ -12841,9 +13873,9 @@ "severity": "error" }, { - "line": 407, + "line": 434, "column": 38, - "stop_line": 407, + "stop_line": 434, "stop_column": 49, "path": "src/paperless_mail/mail.py", "code": -2, @@ -12853,9 +13885,9 @@ "severity": "error" }, { - "line": 407, + "line": 434, "column": 38, - "stop_line": 407, + "stop_line": 434, "stop_column": 49, "path": "src/paperless_mail/mail.py", "code": -2, @@ -12865,9 +13897,9 @@ "severity": "error" }, { - "line": 411, + "line": 438, "column": 32, - "stop_line": 411, + "stop_line": 438, "stop_column": 43, "path": "src/paperless_mail/mail.py", "code": -2, @@ -12877,9 +13909,9 @@ "severity": "error" }, { - "line": 411, + "line": 438, "column": 32, - "stop_line": 411, + "stop_line": 438, "stop_column": 43, "path": "src/paperless_mail/mail.py", "code": -2, @@ -12889,9 +13921,9 @@ "severity": "error" }, { - "line": 411, + "line": 438, "column": 32, - "stop_line": 411, + "stop_line": 438, "stop_column": 43, "path": "src/paperless_mail/mail.py", "code": -2, @@ -12901,9 +13933,9 @@ "severity": "error" }, { - "line": 411, + "line": 438, "column": 32, - "stop_line": 411, + "stop_line": 438, "stop_column": 43, "path": "src/paperless_mail/mail.py", "code": -2, @@ -12913,9 +13945,9 @@ "severity": "error" }, { - "line": 411, + "line": 438, "column": 32, - "stop_line": 411, + "stop_line": 438, "stop_column": 43, "path": "src/paperless_mail/mail.py", "code": -2, @@ -12925,9 +13957,9 @@ "severity": "error" }, { - "line": 411, + "line": 438, "column": 32, - "stop_line": 411, + "stop_line": 438, "stop_column": 43, "path": "src/paperless_mail/mail.py", "code": -2, @@ -12937,9 +13969,9 @@ "severity": "error" }, { - "line": 411, + "line": 438, "column": 32, - "stop_line": 411, + "stop_line": 438, "stop_column": 43, "path": "src/paperless_mail/mail.py", "code": -2, @@ -12949,9 +13981,9 @@ "severity": "error" }, { - "line": 411, + "line": 438, "column": 32, - "stop_line": 411, + "stop_line": 438, "stop_column": 43, "path": "src/paperless_mail/mail.py", "code": -2, @@ -12961,9 +13993,9 @@ "severity": "error" }, { - "line": 411, + "line": 438, "column": 32, - "stop_line": 411, + "stop_line": 438, "stop_column": 43, "path": "src/paperless_mail/mail.py", "code": -2, @@ -12973,9 +14005,9 @@ "severity": "error" }, { - "line": 411, + "line": 438, "column": 32, - "stop_line": 411, + "stop_line": 438, "stop_column": 43, "path": "src/paperless_mail/mail.py", "code": -2, @@ -12985,9 +14017,9 @@ "severity": "error" }, { - "line": 411, + "line": 438, "column": 32, - "stop_line": 411, + "stop_line": 438, "stop_column": 43, "path": "src/paperless_mail/mail.py", "code": -2, @@ -12997,9 +14029,9 @@ "severity": "error" }, { - "line": 411, + "line": 438, "column": 32, - "stop_line": 411, + "stop_line": 438, "stop_column": 43, "path": "src/paperless_mail/mail.py", "code": -2, @@ -13009,9 +14041,9 @@ "severity": "error" }, { - "line": 411, + "line": 438, "column": 32, - "stop_line": 411, + "stop_line": 438, "stop_column": 43, "path": "src/paperless_mail/mail.py", "code": -2, @@ -13021,9 +14053,9 @@ "severity": "error" }, { - "line": 411, + "line": 438, "column": 32, - "stop_line": 411, + "stop_line": 438, "stop_column": 43, "path": "src/paperless_mail/mail.py", "code": -2, @@ -13033,9 +14065,9 @@ "severity": "error" }, { - "line": 411, + "line": 438, "column": 32, - "stop_line": 411, + "stop_line": 438, "stop_column": 43, "path": "src/paperless_mail/mail.py", "code": -2, @@ -13045,9 +14077,9 @@ "severity": "error" }, { - "line": 411, + "line": 438, "column": 32, - "stop_line": 411, + "stop_line": 438, "stop_column": 43, "path": "src/paperless_mail/mail.py", "code": -2, @@ -13057,9 +14089,9 @@ "severity": "error" }, { - "line": 411, + "line": 438, "column": 32, - "stop_line": 411, + "stop_line": 438, "stop_column": 43, "path": "src/paperless_mail/mail.py", "code": -2, @@ -13069,9 +14101,9 @@ "severity": "error" }, { - "line": 411, + "line": 438, "column": 32, - "stop_line": 411, + "stop_line": 438, "stop_column": 43, "path": "src/paperless_mail/mail.py", "code": -2, @@ -13081,9 +14113,9 @@ "severity": "error" }, { - "line": 411, + "line": 438, "column": 32, - "stop_line": 411, + "stop_line": 438, "stop_column": 43, "path": "src/paperless_mail/mail.py", "code": -2, @@ -13093,9 +14125,9 @@ "severity": "error" }, { - "line": 411, + "line": 438, "column": 32, - "stop_line": 411, + "stop_line": 438, "stop_column": 43, "path": "src/paperless_mail/mail.py", "code": -2, @@ -13105,9 +14137,9 @@ "severity": "error" }, { - "line": 411, + "line": 438, "column": 32, - "stop_line": 411, + "stop_line": 438, "stop_column": 43, "path": "src/paperless_mail/mail.py", "code": -2, @@ -13117,9 +14149,9 @@ "severity": "error" }, { - "line": 411, + "line": 438, "column": 32, - "stop_line": 411, + "stop_line": 438, "stop_column": 43, "path": "src/paperless_mail/mail.py", "code": -2, @@ -13129,9 +14161,9 @@ "severity": "error" }, { - "line": 411, + "line": 438, "column": 32, - "stop_line": 411, + "stop_line": 438, "stop_column": 43, "path": "src/paperless_mail/mail.py", "code": -2, @@ -13141,21 +14173,57 @@ "severity": "error" }, { - "line": 437, + "line": 486, + "column": 13, + "stop_line": 486, + "stop_column": 23, + "path": "src/paperless_mail/mail.py", + "code": -2, + "name": "missing-attribute", + "description": "Object of class `PinnedClientMixin` has no attribute `_host`", + "concise_description": "Object of class `PinnedClientMixin` has no attribute `_host`", + "severity": "error" + }, + { + "line": 487, + "column": 13, + "stop_line": 487, + "stop_column": 23, + "path": "src/paperless_mail/mail.py", + "code": -2, + "name": "missing-attribute", + "description": "Object of class `PinnedClientMixin` has no attribute `_port`", + "concise_description": "Object of class `PinnedClientMixin` has no attribute `_port`", + "severity": "error" + }, + { + "line": 490, + "column": 21, + "stop_line": 490, + "stop_column": 34, + "path": "src/paperless_mail/mail.py", + "code": -2, + "name": "missing-attribute", + "description": "Object of class `PinnedClientMixin` has no attribute `_timeout`", + "concise_description": "Object of class `PinnedClientMixin` has no attribute `_timeout`", + "severity": "error" + }, + { + "line": 557, "column": 12, - "stop_line": 437, + "stop_line": 557, "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`", + "description": "Returned type `PinnedMailBox | PinnedMailBoxStartTls | PinnedMailBoxUnencrypted` is not assignable to declared return type `MailBox`", + "concise_description": "Returned type `PinnedMailBox | PinnedMailBoxStartTls | PinnedMailBoxUnencrypted` is not assignable to declared return type `MailBox`", "severity": "error" }, { - "line": 577, + "line": 713, "column": 54, - "stop_line": 577, + "stop_line": 713, "stop_column": 67, "path": "src/paperless_mail/mail.py", "code": -2, @@ -13165,9 +14233,9 @@ "severity": "error" }, { - "line": 580, + "line": 716, "column": 29, - "stop_line": 580, + "stop_line": 716, "stop_column": 42, "path": "src/paperless_mail/mail.py", "code": -2, @@ -13177,21 +14245,21 @@ "severity": "error" }, { - "line": 626, + "line": 762, "column": 31, - "stop_line": 626, + "stop_line": 762, "stop_column": 52, "path": "src/paperless_mail/mail.py", "code": -2, "name": "bad-argument-type", - "description": "Argument `str | None` is not assignable to parameter `object` with type `str` in function `list.insert`", + "description": "Argument `str | None` is not assignable to parameter `object` with type `str` in function `list.insert`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", "concise_description": "Argument `str | None` is not assignable to parameter `object` with type `str` in function `list.insert`", "severity": "error" }, { - "line": 633, + "line": 769, "column": 44, - "stop_line": 633, + "stop_line": 769, "stop_column": 50, "path": "src/paperless_mail/mail.py", "code": -2, @@ -13201,9 +14269,9 @@ "severity": "error" }, { - "line": 966, + "line": 1152, "column": 40, - "stop_line": 966, + "stop_line": 1152, "stop_column": 60, "path": "src/paperless_mail/mail.py", "code": -2, @@ -13213,9 +14281,9 @@ "severity": "error" }, { - "line": 970, + "line": 1156, "column": 32, - "stop_line": 970, + "stop_line": 1156, "stop_column": 52, "path": "src/paperless_mail/mail.py", "code": -2, @@ -13225,9 +14293,9 @@ "severity": "error" }, { - "line": 971, + "line": 1157, "column": 32, - "stop_line": 971, + "stop_line": 1157, "stop_column": 52, "path": "src/paperless_mail/mail.py", "code": -2, @@ -13237,9 +14305,9 @@ "severity": "error" }, { - "line": 972, + "line": 1158, "column": 17, - "stop_line": 972, + "stop_line": 1158, "stop_column": 37, "path": "src/paperless_mail/mail.py", "code": -2, @@ -13249,9 +14317,9 @@ "severity": "error" }, { - "line": 986, + "line": 1172, "column": 27, - "stop_line": 986, + "stop_line": 1172, "stop_column": 40, "path": "src/paperless_mail/mail.py", "code": -2, @@ -13268,7 +14336,7 @@ "path": "src/paperless_mail/oauth.py", "code": -2, "name": "bad-argument-type", - "description": "Argument `str | None` is not assignable to parameter `refresh_token` with type `str` in function `httpx_oauth.oauth2.BaseOAuth2.refresh_token`", + "description": "Argument `str | None` is not assignable to parameter `refresh_token` with type `str` in function `httpx_oauth.oauth2.BaseOAuth2.refresh_token`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", "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" }, @@ -13280,7 +14348,7 @@ "path": "src/paperless_mail/oauth.py", "code": -2, "name": "bad-argument-type", - "description": "Argument `str | None` is not assignable to parameter `refresh_token` with type `str` in function `httpx_oauth.oauth2.BaseOAuth2.refresh_token`", + "description": "Argument `str | None` is not assignable to parameter `refresh_token` with type `str` in function `httpx_oauth.oauth2.BaseOAuth2.refresh_token`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", "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" }, @@ -13309,657 +14377,57 @@ "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, + "line": 32, "column": 11, - "stop_line": 23, - "stop_column": 18, - "path": "src/paperless_mail/tests/conftest.py", + "stop_line": 32, + "stop_column": 15, + "path": "src/paperless_mail/serialisers.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`", + "name": "bad-override", + "description": "Class member `MailAccountSerializer.Meta` overrides parent class `OwnedObjectSerializer` in an inconsistent manner\n `MailAccountSerializer.Meta` has type `type[MailAccountSerializer.Meta]`, which is not assignable to `type[ModelSerializer.Meta]`, the type of `OwnedObjectSerializer.Meta`", + "concise_description": "Class member `MailAccountSerializer.Meta` overrides parent class `OwnedObjectSerializer` in an inconsistent manner", "severity": "error" }, { - "line": 24, - "column": 5, - "stop_line": 24, - "stop_column": 19, - "path": "src/paperless_mail/tests/conftest.py", + "line": 90, + "column": 11, + "stop_line": 90, + "stop_column": 15, + "path": "src/paperless_mail/serialisers.py", "code": -2, - "name": "missing-attribute", - "description": "Object of class `MailAccountFactory` has no attribute `delete`", - "concise_description": "Object of class `MailAccountFactory` has no attribute `delete`", + "name": "bad-override", + "description": "Class member `MailRuleSerializer.Meta` overrides parent class `OwnedObjectSerializer` in an inconsistent manner\n `MailRuleSerializer.Meta` has type `type[MailRuleSerializer.Meta]`, which is not assignable to `type[ModelSerializer.Meta]`, the type of `OwnedObjectSerializer.Meta`", + "concise_description": "Class member `MailRuleSerializer.Meta` overrides parent class `OwnedObjectSerializer` in an inconsistent manner", "severity": "error" }, { - "line": 124, - "column": 31, - "stop_line": 124, - "stop_column": 42, - "path": "src/paperless_mail/tests/test_api.py", + "line": 166, + "column": 11, + "stop_line": 166, + "stop_column": 15, + "path": "src/paperless_mail/serialisers.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`", + "name": "bad-override", + "description": "Class member `ProcessedMailSerializer.Meta` overrides parent class `OwnedObjectSerializer` in an inconsistent manner\n `ProcessedMailSerializer.Meta` has type `type[ProcessedMailSerializer.Meta]`, which is not assignable to `type[ModelSerializer.Meta]`, the type of `OwnedObjectSerializer.Meta`", + "concise_description": "Class member `ProcessedMailSerializer.Meta` overrides parent class `OwnedObjectSerializer` in an inconsistent manner", "severity": "error" }, { - "line": 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, - "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": 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, + "line": 125, + "column": 41, + "stop_line": 125, "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`", + "name": "unsupported-operation", + "description": "Cannot set item in `dict[str, MailAccount.ImapSecurity | str]`\n Argument `None` is not assignable to parameter `value` with type `MailAccount.ImapSecurity | str` in function `dict.__setitem__`", + "concise_description": "Cannot set item in `dict[str, MailAccount.ImapSecurity | str]`", "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, + "line": 63, "column": 44, - "stop_line": 60, + "stop_line": 63, "stop_column": 48, "path": "src/paperless_mail/tests/test_mail.py", "code": -2, @@ -13969,9 +14437,9 @@ "severity": "error" }, { - "line": 79, + "line": 85, "column": 37, - "stop_line": 79, + "stop_line": 85, "stop_column": 42, "path": "src/paperless_mail/tests/test_mail.py", "code": -2, @@ -13981,9 +14449,9 @@ "severity": "error" }, { - "line": 122, + "line": 128, "column": 37, - "stop_line": 122, + "stop_line": 128, "stop_column": 42, "path": "src/paperless_mail/tests/test_mail.py", "code": -2, @@ -13993,9 +14461,9 @@ "severity": "error" }, { - "line": 127, + "line": 133, "column": 37, - "stop_line": 127, + "stop_line": 133, "stop_column": 42, "path": "src/paperless_mail/tests/test_mail.py", "code": -2, @@ -14005,9 +14473,9 @@ "severity": "error" }, { - "line": 131, + "line": 137, "column": 37, - "stop_line": 131, + "stop_line": 137, "stop_column": 42, "path": "src/paperless_mail/tests/test_mail.py", "code": -2, @@ -14017,9 +14485,21 @@ "severity": "error" }, { - "line": 177, + "line": 153, + "column": 16, + "stop_line": 153, + "stop_column": 64, + "path": "src/paperless_mail/tests/test_mail.py", + "code": -2, + "name": "bad-return", + "description": "Returned type `list[str | None]` is not assignable to declared return type `list[str]`", + "concise_description": "Returned type `list[str | None]` is not assignable to declared return type `list[str]`", + "severity": "error" + }, + { + "line": 203, "column": 25, - "stop_line": 177, + "stop_line": 203, "stop_column": 40, "path": "src/paperless_mail/tests/test_mail.py", "code": -2, @@ -14029,9 +14509,9 @@ "severity": "error" }, { - "line": 179, + "line": 205, "column": 25, - "stop_line": 179, + "stop_line": 205, "stop_column": 37, "path": "src/paperless_mail/tests/test_mail.py", "code": -2, @@ -14041,9 +14521,9 @@ "severity": "error" }, { - "line": 265, + "line": 291, "column": 9, - "stop_line": 265, + "stop_line": 291, "stop_column": 22, "path": "src/paperless_mail/tests/test_mail.py", "code": -2, @@ -14053,9 +14533,9 @@ "severity": "error" }, { - "line": 266, + "line": 292, "column": 9, - "stop_line": 266, + "stop_line": 292, "stop_column": 25, "path": "src/paperless_mail/tests/test_mail.py", "code": -2, @@ -14065,9 +14545,9 @@ "severity": "error" }, { - "line": 439, + "line": 518, "column": 50, - "stop_line": 439, + "stop_line": 518, "stop_column": 64, "path": "src/paperless_mail/tests/test_mail.py", "code": -2, @@ -14077,9 +14557,9 @@ "severity": "error" }, { - "line": 448, + "line": 527, "column": 54, - "stop_line": 448, + "stop_line": 527, "stop_column": 61, "path": "src/paperless_mail/tests/test_mail.py", "code": -2, @@ -14089,9 +14569,9 @@ "severity": "error" }, { - "line": 454, + "line": 533, "column": 40, - "stop_line": 454, + "stop_line": 533, "stop_column": 47, "path": "src/paperless_mail/tests/test_mail.py", "code": -2, @@ -14101,9 +14581,9 @@ "severity": "error" }, { - "line": 459, + "line": 538, "column": 40, - "stop_line": 459, + "stop_line": 538, "stop_column": 48, "path": "src/paperless_mail/tests/test_mail.py", "code": -2, @@ -14113,21 +14593,9 @@ "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, + "line": 547, "column": 40, - "stop_line": 468, + "stop_line": 547, "stop_column": 47, "path": "src/paperless_mail/tests/test_mail.py", "code": -2, @@ -14137,9 +14605,9 @@ "severity": "error" }, { - "line": 471, + "line": 550, "column": 40, - "stop_line": 471, + "stop_line": 550, "stop_column": 48, "path": "src/paperless_mail/tests/test_mail.py", "code": -2, @@ -14149,21 +14617,9 @@ "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, + "line": 559, "column": 40, - "stop_line": 480, + "stop_line": 559, "stop_column": 47, "path": "src/paperless_mail/tests/test_mail.py", "code": -2, @@ -14173,9 +14629,9 @@ "severity": "error" }, { - "line": 495, + "line": 574, "column": 45, - "stop_line": 495, + "stop_line": 574, "stop_column": 52, "path": "src/paperless_mail/tests/test_mail.py", "code": -2, @@ -14185,9 +14641,9 @@ "severity": "error" }, { - "line": 495, + "line": 574, "column": 54, - "stop_line": 495, + "stop_line": 574, "stop_column": 57, "path": "src/paperless_mail/tests/test_mail.py", "code": -2, @@ -14197,9 +14653,9 @@ "severity": "error" }, { - "line": 500, + "line": 579, "column": 45, - "stop_line": 500, + "stop_line": 579, "stop_column": 52, "path": "src/paperless_mail/tests/test_mail.py", "code": -2, @@ -14209,9 +14665,9 @@ "severity": "error" }, { - "line": 500, + "line": 579, "column": 54, - "stop_line": 500, + "stop_line": 579, "stop_column": 57, "path": "src/paperless_mail/tests/test_mail.py", "code": -2, @@ -14221,9 +14677,9 @@ "severity": "error" }, { - "line": 505, + "line": 584, "column": 45, - "stop_line": 505, + "stop_line": 584, "stop_column": 52, "path": "src/paperless_mail/tests/test_mail.py", "code": -2, @@ -14233,9 +14689,9 @@ "severity": "error" }, { - "line": 505, + "line": 584, "column": 54, - "stop_line": 505, + "stop_line": 584, "stop_column": 57, "path": "src/paperless_mail/tests/test_mail.py", "code": -2, @@ -14245,149 +14701,113 @@ "severity": "error" }, { - "line": 1250, - "column": 9, - "stop_line": 1250, - "stop_column": 50, + "line": 623, + "column": 49, + "stop_line": 623, + "stop_column": 55, "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`", + "description": "Object of class `MailMessage` has no attribute `seen`", + "concise_description": "Object of class `MailMessage` has no attribute `seen`", "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, - "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": 1614, - "column": 13, - "stop_line": 1614, - "stop_column": 39, - "path": "src/paperless_mail/tests/test_mail.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `MailRuleFactory` has no attribute `action_parameter`", - "concise_description": "Object of class `MailRuleFactory` has no attribute `action_parameter`", - "severity": "error" - }, - { - "line": 1641, - "column": 25, - "stop_line": 1641, - "stop_column": 37, - "path": "src/paperless_mail/tests/test_mail.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": 1652, + "line": 630, "column": 41, - "stop_line": 1652, + "stop_line": 630, + "stop_column": 53, + "path": "src/paperless_mail/tests/test_mail.py", + "code": -2, + "name": "bad-argument-type", + "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__`", + "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" + }, + { + "line": 1675, + "column": 9, + "stop_line": 1675, + "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": 1681, + "column": 9, + "stop_line": 1681, + "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": 1708, + "column": 9, + "stop_line": 1708, + "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": 1714, + "column": 9, + "stop_line": 1714, + "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": 1778, + "column": 51, + "stop_line": 1778, + "stop_column": 55, + "path": "src/paperless_mail/tests/test_mail.py", + "code": -2, + "name": "bad-assignment", + "description": "`int` is not assignable to dict value type `str`", + "concise_description": "`int` is not assignable to dict value type `str`", + "severity": "error" + }, + { + "line": 1797, + "column": 51, + "stop_line": 1797, + "stop_column": 55, + "path": "src/paperless_mail/tests/test_mail.py", + "code": -2, + "name": "bad-assignment", + "description": "`None` is not assignable to dict value type `str`\n The declared type does not allow `None`. Consider changing the declared type to `str | None`.", + "concise_description": "`None` is not assignable to dict value type `str`", + "severity": "error" + }, + { + "line": 2077, + "column": 41, + "stop_line": 2077, "stop_column": 61, "path": "src/paperless_mail/tests/test_mail.py", "code": -2, "name": "bad-argument-type", - "description": "Argument `str | None` is not assignable to parameter `container` with type `Container | Iterable[Any]` in function `unittest.case.TestCase.assertIn`\n Protocol `Container` requires attribute `__contains__`", + "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__`\n The declared type does not allow `None`. Consider narrowing the value with an `is not None` check.", "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": 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`", - "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`", - "severity": "error" - }, { "line": 135, "column": 42, @@ -14436,42 +14856,6 @@ "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, @@ -14521,9 +14905,9 @@ "severity": "error" }, { - "line": 298, + "line": 308, "column": 28, - "stop_line": 298, + "stop_line": 308, "stop_column": 34, "path": "src/paperless_mail/views.py", "code": -2, @@ -14533,9 +14917,9 @@ "severity": "error" }, { - "line": 304, + "line": 314, "column": 29, - "stop_line": 304, + "stop_line": 314, "stop_column": 40, "path": "src/paperless_mail/views.py", "code": -2, @@ -14545,9 +14929,9 @@ "severity": "error" }, { - "line": 308, + "line": 318, "column": 26, - "stop_line": 308, + "stop_line": 318, "stop_column": 34, "path": "src/paperless_mail/views.py", "code": -2, diff --git a/uv.lock b/uv.lock index 7382b308e..cc6f9518b 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.10.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/59/6d/c6ab91f72f4862d63e446e10248d8f52e8b4c4b7579bb937ddf942a5961e/ast_serialize-0.10.0.tar.gz", hash = "sha256:f47a26cc7d2605fb645b6e7f6c21cf4fb8d7833d00ea8b48e26f057b14eccd01", size = 952608, upload-time = "2026-09-07T10:22:47.595Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/04/cd/0b7ede86065c89d56c533cd98b8997f3dd3f003bc01815c9c41860724d6c/ast_serialize-0.10.0-cp314-cp314-pyemscripten_2026_0_wasm32.whl", hash = "sha256:2759bc9e04b13f11b80a23a7aec8da16a27217e0f4bf61019f06ea533511d2ed", size = 894424, upload-time = "2026-09-07T10:21:17.374Z" }, + { url = "https://files.pythonhosted.org/packages/b9/62/012afc9f7177e181c7d23ef2b0b974c9a0a800321de5cf663bd372894d4e/ast_serialize-0.10.0-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:2eef5883e824ff7d303be13ca1dd1aaeb1975ac9f3da5ceecb3ae43c84a54773", size = 1229989, upload-time = "2026-09-07T10:21:19.536Z" }, + { url = "https://files.pythonhosted.org/packages/ea/76/67774bf7f22166f7609861d85d8350e465eab7f92461d4c4ab808de398e7/ast_serialize-0.10.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:6ee514e465bd43dddc6b0b1d05b5baf64035b5f945ae558d4f1021b368f1c4c1", size = 1209345, upload-time = "2026-09-07T10:21:21.228Z" }, + { url = "https://files.pythonhosted.org/packages/d2/c7/238063d1b2797e43d3704c5a280faae003348a10bbb6d08b55a843c42fd4/ast_serialize-0.10.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b910e8c67547efe5a5d5524de7ce80dc50a45debafaaf4b29000fc72b34a8902", size = 1274910, upload-time = "2026-09-07T10:21:23.425Z" }, + { url = "https://files.pythonhosted.org/packages/b2/48/1de96ee95d0069615ff7e1664a71b4e6b4ccf3f16b5e1a3ec1ab66f3788a/ast_serialize-0.10.0-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:0103ce489e91b0467cc2bf2fc7eaf80b7b61d5e48aed070a9c3d594e41dffaad", size = 1281284, upload-time = "2026-09-07T10:21:25.184Z" }, + { url = "https://files.pythonhosted.org/packages/fb/03/a33aa714487acd858eaa192099ab18c28a711d2f192606de1fc174d8b0e6/ast_serialize-0.10.0-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5cc1e7e5b6db230c980a2916350d07f9b7ad6f08fb1ab6932bd393aa0c6d9220", size = 1547608, upload-time = "2026-09-07T10:21:26.913Z" }, + { url = "https://files.pythonhosted.org/packages/88/11/9bf2e23bfa848033ba3faedab51a8f3104d90e58222ec32eb476b18cc97c/ast_serialize-0.10.0-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:226535f407b70f22109c5faf777cb5c8e9189bf44f29b2fb4ba87093c2c01743", size = 1297685, upload-time = "2026-09-07T10:21:28.418Z" }, + { url = "https://files.pythonhosted.org/packages/4e/ba/6175b12119b1605b2a888318cfcbda260947c002ba7c6921b053606c6751/ast_serialize-0.10.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8274eebef548a927c3691c7f7c2f4635dde700164ce942273a464cc914241ae9", size = 1295877, upload-time = "2026-09-07T10:21:30.414Z" }, + { url = "https://files.pythonhosted.org/packages/d7/81/80f5c2b313efa1397ef2dab6e76c321ec05c2c256d0ea5e91232835c86a7/ast_serialize-0.10.0-cp314-cp314t-manylinux_2_31_riscv64.whl", hash = "sha256:6c944147c80cff8cfad185835bd4772c690019988331f05095d1d5f393eefe06", size = 1302152, upload-time = "2026-09-07T10:21:32.06Z" }, + { url = "https://files.pythonhosted.org/packages/fd/fb/e64b8081a5aaf1ebf189a9c4c3c1be771eb7e2a4e42009cb7a91d4647753/ast_serialize-0.10.0-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:6760026ee6903cd63d89e77a0cb9ea4f150fe619ec541b8590bcaacf26dfbb81", size = 1349550, upload-time = "2026-09-07T10:21:33.614Z" }, + { url = "https://files.pythonhosted.org/packages/5d/17/9665016237be55439435b7eb809c65fbfcee6f0a94b67670c85d57674329/ast_serialize-0.10.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:5f72062e17859d9cbf946fcd6b2d7b20d79a4fc5dc51e28198d86c6455cd1ed4", size = 1452798, upload-time = "2026-09-07T10:21:35.148Z" }, + { url = "https://files.pythonhosted.org/packages/07/77/66110e38d406d148986698a9e53ec0f5e3798b88b4483636469edefc492b/ast_serialize-0.10.0-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:0eb4562df6842d900b127c59c2896e8684e2a5eb69518cc79bfa24ec0b6bd808", size = 1555553, upload-time = "2026-09-07T10:21:36.722Z" }, + { url = "https://files.pythonhosted.org/packages/db/ba/a8ad46ae9510e7a9cddc21ebde3fa465ac4be863984c011a5886870a1d4d/ast_serialize-0.10.0-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:2afa657d7ce1a1e150dfa4794d1d303441bd17367d69941f9712c15e4d273b3c", size = 1550516, upload-time = "2026-09-07T10:21:38.215Z" }, + { url = "https://files.pythonhosted.org/packages/7f/dd/cb9d394e17eff38adc141983ba503ee12d3851c1a0f6c319e9228f5c5e81/ast_serialize-0.10.0-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:7ff5abf0897f54d62bd32a2878bb154d648ceaf77f553ff39b264c1191b0d60f", size = 1679774, upload-time = "2026-09-07T10:21:39.766Z" }, + { url = "https://files.pythonhosted.org/packages/75/a2/ad4f80989c179ae73c6e44ed1bb215c39c220071e7ccb88d28e4651508f0/ast_serialize-0.10.0-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:6f8b8a4c4e02d1bea4e2212727fa6ddf824d8c5926df03452ad491470ce37699", size = 1477137, upload-time = "2026-09-07T10:21:41.318Z" }, + { url = "https://files.pythonhosted.org/packages/e5/b5/4f193b9513161b109112fa5ba47fda0885cec6fa3f419317e15ea6583ff9/ast_serialize-0.10.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:84bac4b6f441824d91e0540362f12c0e0f8820294652521b4ce9d7e7faa56b5b", size = 1495387, upload-time = "2026-09-07T10:21:42.882Z" }, + { url = "https://files.pythonhosted.org/packages/ac/bd/cf2deab2ceb79f4476a30479a2756bb64b63810b7f10bfbd3ce1503d4059/ast_serialize-0.10.0-cp315-abi3.abi3t-macosx_10_12_x86_64.whl", hash = "sha256:cbcc3542259ae08153e634d50dc220723415fb24510856523052b5eeb10b4950", size = 1229414, upload-time = "2026-09-07T10:21:49.554Z" }, + { url = "https://files.pythonhosted.org/packages/ee/cb/ec8e84d3ab8073e8536823f7a3cba46e4992d9c8d904481e18509eeea3ff/ast_serialize-0.10.0-cp315-abi3.abi3t-macosx_11_0_arm64.whl", hash = "sha256:2251086be53a375d256faefaedffe5ccd99187be614788f8279b41dae1c5fdee", size = 1210297, upload-time = "2026-09-07T10:21:50.996Z" }, + { url = "https://files.pythonhosted.org/packages/6d/e7/6a1d216160da29566a6125c34e90092a5f9d1444e24e955741113abdf033/ast_serialize-0.10.0-cp315-abi3.abi3t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d1358ef5d98f9dc96468d171317d78d746f9ef8ca45577298512a737ba9d6514", size = 1276064, upload-time = "2026-09-07T10:21:52.452Z" }, + { url = "https://files.pythonhosted.org/packages/96/87/1f1052a0dd00dfe15c129a7073f7b1b5bb632b5507baff27190dd255e0a9/ast_serialize-0.10.0-cp315-abi3.abi3t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:59ef8acc0ba4315024e5000e5fa8ea656a02e375ebb5ce020f3582d308d6153d", size = 1280982, upload-time = "2026-09-07T10:21:53.992Z" }, + { url = "https://files.pythonhosted.org/packages/d3/8f/9f4578b668b60436249dfa1bc6612283d3cbb665bc6cb2c1e23934d708d8/ast_serialize-0.10.0-cp315-abi3.abi3t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3c9715c4379b33740c94819e55afe59e28d6d3f30f69b903b4fcb2ecb5335531", size = 1552458, upload-time = "2026-09-07T10:21:55.485Z" }, + { url = "https://files.pythonhosted.org/packages/e6/cc/395d96c55e5d91a87fcfa5f15c7d11834cd150d491ce4849b2290334b8e9/ast_serialize-0.10.0-cp315-abi3.abi3t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:26e6dc5d1f7aa642d9e94b98e4d3e1c81dc6b595f01619658f7e9268379826c0", size = 1298414, upload-time = "2026-09-07T10:21:57.01Z" }, + { url = "https://files.pythonhosted.org/packages/7a/8d/473c8fb551af1de55abcc36d591ac18d4175ba7fc15f41d62ad9b30d7385/ast_serialize-0.10.0-cp315-abi3.abi3t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:760dce78c6c4d4df30d3df9b80be1c521e0ee1d275ae54906e9a95b150692567", size = 1296613, upload-time = "2026-09-07T10:21:58.591Z" }, + { url = "https://files.pythonhosted.org/packages/6f/57/31044aa6fa739634ada7fff321db08a813157663b18629851820fca455a6/ast_serialize-0.10.0-cp315-abi3.abi3t-manylinux_2_31_riscv64.whl", hash = "sha256:40a7f487e2f5523518270600e0b7f2c61beac3106da142d911c3386ed7abbcfa", size = 1304321, upload-time = "2026-09-07T10:22:00.12Z" }, + { url = "https://files.pythonhosted.org/packages/10/87/c5d7c0c627b991f46fc308a41c0e92b792322440f84e43739b11fb4a1a64/ast_serialize-0.10.0-cp315-abi3.abi3t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a1c252b746da0ad1883b82502eeff859221eef1d66d3f95dcb2373760a34d440", size = 1350352, upload-time = "2026-09-07T10:22:01.605Z" }, + { url = "https://files.pythonhosted.org/packages/62/ec/d80abe681b7d96b4ea88cf69d559d55a41b1a36c907b579d774caff2527a/ast_serialize-0.10.0-cp315-abi3.abi3t-musllinux_1_2_aarch64.whl", hash = "sha256:719c7a121cc3022d78b7f4f7a9fd159586e521531c0e495a245375d2c4695d4e", size = 1454522, upload-time = "2026-09-07T10:22:03.149Z" }, + { url = "https://files.pythonhosted.org/packages/8d/7a/d4cc3aa236b9fdce16a394bfd7c12072d9ac30e83f9319aaa14305cbaab9/ast_serialize-0.10.0-cp315-abi3.abi3t-musllinux_1_2_armv7l.whl", hash = "sha256:d7621157ac99ae00957196e7094fe279e7547d8b505046a9d5509c4fc740e9fc", size = 1555150, upload-time = "2026-09-07T10:22:04.722Z" }, + { url = "https://files.pythonhosted.org/packages/d2/a6/710d1aef678650c75edcb4cdab79998ec63aae54710a438b9fd66c3a616e/ast_serialize-0.10.0-cp315-abi3.abi3t-musllinux_1_2_i686.whl", hash = "sha256:82087a71fe39925ab0068ef2f25444a1c87d1e5f1901f32dcf82f6eddddeac6a", size = 1551843, upload-time = "2026-09-07T10:22:06.182Z" }, + { url = "https://files.pythonhosted.org/packages/e9/23/2a9c35721a82a506bae980dbdfeaa7b296bf79d818c731b3aaa0ee53c5a7/ast_serialize-0.10.0-cp315-abi3.abi3t-musllinux_1_2_ppc64le.whl", hash = "sha256:8aac958cf0c0b2595a0487c7b5d2ecac88fa5c0221b83b1420ac4bf472f84cb7", size = 1686064, upload-time = "2026-09-07T10:22:07.712Z" }, + { url = "https://files.pythonhosted.org/packages/24/36/f3fd4b6f2c1e4d5eca149e4bfdaa6d93fe77851b21562d14f22a452c71ee/ast_serialize-0.10.0-cp315-abi3.abi3t-musllinux_1_2_riscv64.whl", hash = "sha256:a53a4d528171b8b709b4e7d89654532189bff53947f24ac4db9c465bb10e7cd2", size = 1478662, upload-time = "2026-09-07T10:22:09.218Z" }, + { url = "https://files.pythonhosted.org/packages/de/65/5135ac9c7e305bd3e6234ef0fbf50bbac2ac00a35076bc167936c6d6d166/ast_serialize-0.10.0-cp315-abi3.abi3t-musllinux_1_2_x86_64.whl", hash = "sha256:93ae740c6d6f5641573122a7dcffa4baa7ef9144109c54584baad5bf827ad388", size = 1495057, upload-time = "2026-09-07T10:22:10.742Z" }, + { url = "https://files.pythonhosted.org/packages/21/56/f4c5811fc6e765a3c9b1b5dc64d58073e825b8a538773699ec02c2b98d0a/ast_serialize-0.10.0-cp315-cp315-pyemscripten_2026_5_wasm32.whl", hash = "sha256:7272522ca885c0091b4f4165b9403eb54a59e157a248592cc2539098c7ada50b", size = 894552, upload-time = "2026-09-07T10:22:17.27Z" }, + { url = "https://files.pythonhosted.org/packages/70/85/4606f3398e6776c74d44f8387855775c3cf31614b664cdb0e147df752933/ast_serialize-0.10.0-cp39-abi3-macosx_10_12_x86_64.whl", hash = "sha256:382cb721e2624dd1c2f4f7afd2a9b500930b057d2e24e1078cf6999c5fad1b31", size = 1236237, upload-time = "2026-09-07T10:22:18.767Z" }, + { url = "https://files.pythonhosted.org/packages/09/7b/520b33339f3d5ef9407fb17a00dac0849318158fa0c9853cfe8cc6b7a48d/ast_serialize-0.10.0-cp39-abi3-macosx_11_0_arm64.whl", hash = "sha256:56a28b7567ba17f602a17d5603133a1292d307e957b3b5c3f66538e87548aed3", size = 1223110, upload-time = "2026-09-07T10:22:20.243Z" }, + { url = "https://files.pythonhosted.org/packages/a0/af/3c30941ed368ddb54e6ec0edfdd98dc7fdc679c6d4f478f8545c0b8f080a/ast_serialize-0.10.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8919e79a4525cdac63d51cd117c57f324936c902c7ecd0fd09d02aa88323b74d", size = 1285870, upload-time = "2026-09-07T10:22:22.019Z" }, + { url = "https://files.pythonhosted.org/packages/56/81/f0c0bf569388d319aab22c8a7f43747450e26c5ae6a6d9521766157f70f4/ast_serialize-0.10.0-cp39-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:1109077d53b377d022d799bc4b171c32c3a711a716248a918d3e07875b5513cd", size = 1290793, upload-time = "2026-09-07T10:22:23.562Z" }, + { url = "https://files.pythonhosted.org/packages/c4/a1/515a76479ecfc77abe88d7c9954bc3a04f07b30fa33ec836eea80be07fd4/ast_serialize-0.10.0-cp39-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5d17c50e1f6e8d950d79c66a18b863dee16cea3106f597203883131dd9c6ca4f", size = 1561250, upload-time = "2026-09-07T10:22:25.057Z" }, + { url = "https://files.pythonhosted.org/packages/4f/ba/702af61eb7a6803bf4cd30c09041ab4212e63d553ed9dc2793c95ab340b4/ast_serialize-0.10.0-cp39-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cf2c6cc5a62839869317523e0f74737db0d1759d72fb62cffe57a40e040d6a55", size = 1305696, upload-time = "2026-09-07T10:22:26.612Z" }, + { url = "https://files.pythonhosted.org/packages/31/ce/e6e0a311c16f84f13528f1cb32dec1ce68102711070c10c0c688a6c3cdf5/ast_serialize-0.10.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eb1b20121a62da5937b0c11c8f31667be0102342bf55459bb44a10d8549f8f3f", size = 1302712, upload-time = "2026-09-07T10:22:28.088Z" }, + { url = "https://files.pythonhosted.org/packages/bd/a2/7fd715228a35fec1c587c8156eaabf37b6df98fea48c90eec8f1af362e20/ast_serialize-0.10.0-cp39-abi3-manylinux_2_31_riscv64.whl", hash = "sha256:6e45f7d7a663c28ed44d52b4069e32335edb7a0653a908a43bef2801d8d7c344", size = 1313977, upload-time = "2026-09-07T10:22:29.642Z" }, + { url = "https://files.pythonhosted.org/packages/1b/ff/e1c6a0aefdc80695c2dda0c558d58f90f55cb7bb791545865cd7d4ec39d7/ast_serialize-0.10.0-cp39-abi3-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:5c75ed7d94660e3ed4fd3c35672ab16c248c0be51d6b845de3edebbb6cf4526c", size = 1360341, upload-time = "2026-09-07T10:22:31.289Z" }, + { url = "https://files.pythonhosted.org/packages/08/ef/ab341936f65b663e4909dd5d8772d7c13dd7a39616cf18fd6231197b8177/ast_serialize-0.10.0-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:45cfbde7e43a56a386b47f13b415d1fa4421b0a5e07ae0c84a7d883ac9aca4b2", size = 1462406, upload-time = "2026-09-07T10:22:32.823Z" }, + { url = "https://files.pythonhosted.org/packages/74/08/1cef69ee4228cd82b9da6b5e29e7fcdd30a6b8b3d6332815781e09666b62/ast_serialize-0.10.0-cp39-abi3-musllinux_1_2_armv7l.whl", hash = "sha256:b3a52baa4c457d17a5729aa9bd698da8e61731f1670b4fe33923da54daa480e3", size = 1566792, upload-time = "2026-09-07T10:22:34.381Z" }, + { url = "https://files.pythonhosted.org/packages/d2/01/a3d773d0fe1536485069953d54bece7d8a95aa688e64f5cd692f68949051/ast_serialize-0.10.0-cp39-abi3-musllinux_1_2_i686.whl", hash = "sha256:c07cb3f354c234cfacf81da95194b085186d7f4c1f7ad06c7f04fb49e320ef6d", size = 1560873, upload-time = "2026-09-07T10:22:35.844Z" }, + { url = "https://files.pythonhosted.org/packages/e2/ba/7fdda55197f06b2a1613d2ed7e647035b40b26b7aff62ac78e6728128ce9/ast_serialize-0.10.0-cp39-abi3-musllinux_1_2_ppc64le.whl", hash = "sha256:8c91b2bc42a12252be53966a1f1b14cc5c843dfca82bee3bce38f2e96b327aa6", size = 1693061, upload-time = "2026-09-07T10:22:37.355Z" }, + { url = "https://files.pythonhosted.org/packages/3a/29/630a7cafd2780651ed73d468518be9d08a6cc3e7c30fdc88c0b2b90c1c5a/ast_serialize-0.10.0-cp39-abi3-musllinux_1_2_riscv64.whl", hash = "sha256:cb698ad6625a55d5d618c9d887423fd04d65dc5ad0f3ae5a8cbd96c46cea2438", size = 1487731, upload-time = "2026-09-07T10:22:39.403Z" }, + { url = "https://files.pythonhosted.org/packages/a9/c3/84fc44b110ee10fb410d49f7f28686c4d23637161b6cb08775c1af8a4507/ast_serialize-0.10.0-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:4496c0d20111a243525cb074a3e9a9313bbd7d3fb1d40ddee2ade9ef680b80c6", size = 1501731, upload-time = "2026-09-07T10:22:40.958Z" }, +] + [[package]] name = "async-timeout" version = "5.0.1" @@ -1062,7 +1117,7 @@ wheels = [ [[package]] name = "django-stubs" -version = "6.0.2" +version = "6.1.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "django" }, @@ -1070,9 +1125,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/65/34/e9f03764b32f56c02168814385ddc6d0e49a7b3e4381e8e3f6f5f34f39ff/django_stubs-6.1.0.tar.gz", hash = "sha256:b6aecc5c738a103135f76ba160a6f75e3b27dcf0200c64d7226018cdbc2340dd", size = 293018, upload-time = "2026-08-12T10:55:28.817Z" } 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/a8/cf/064d7c48642309f3397b17ff14f3159c5225eb9321185a10039c0e846848/django_stubs-6.1.0-py3-none-any.whl", hash = "sha256:63b23ccca2616d464ed7e37d1ce44960315cb3cecab75b23c928467ef125e560", size = 557040, upload-time = "2026-08-12T10:55:26.959Z" }, ] [package.optional-dependencies] @@ -1116,16 +1171,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] @@ -2056,60 +2111,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]] @@ -2626,42 +2718,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]] @@ -3036,14 +3134,14 @@ requires-dist = [ { name = "django-cors-headers", specifier = "~=4.9.0" }, { name = "django-extensions", specifier = "~=4.1" }, { name = "django-filter", specifier = "~=25.1" }, - { name = "django-guardian", specifier = ">=3.3.3,<3.5.0" }, + { name = "django-guardian", specifier = ">=3.3.3,<3.5" }, { name = "django-multiselectfield", specifier = "~=1.0.1" }, { name = "django-rich", specifier = "~=2.2.0" }, { name = "django-soft-delete", specifier = "~=1.0.18" }, { name = "django-treenode", specifier = ">=0.24" }, { name = "djangorestframework", specifier = "~=3.16" }, { name = "drf-spectacular", specifier = "~=0.30" }, - { name = "drf-spectacular-sidecar", specifier = ">=2026.7.1,<2026.9.0" }, + { name = "drf-spectacular-sidecar", specifier = ">=2026.7.1,<2026.9" }, { name = "drf-writable-nested", specifier = "~=0.7.1" }, { name = "filelock", specifier = "~=3.32.0" }, { name = "flower", specifier = ">=2.0.1,<2.2" }, @@ -3100,7 +3198,7 @@ dev = [ { name = "factory-boy", specifier = "~=3.3.1" }, { name = "faker", specifier = ">=40.36,<40.38" }, { name = "imagehash" }, - { name = "prek", specifier = ">=0.4.11,<0.6.0" }, + { name = "prek", specifier = ">=0.4.11,<0.6" }, { name = "pytest", specifier = "~=9.1.1" }, { name = "pytest-cov", specifier = "~=7.1.0" }, { name = "pytest-django", specifier = ">=4.12,<4.15" }, @@ -3116,7 +3214,7 @@ dev = [ ] docs = [{ name = "zensical", specifier = ">=0.0.51" }] lint = [ - { name = "prek", specifier = ">=0.4.11,<0.6.0" }, + { name = "prek", specifier = ">=0.4.11,<0.6" }, { name = "ruff", specifier = "~=0.16.1" }, ] testing = [ @@ -3798,16 +3896,18 @@ wheels = [ [[package]] name = "pyrefly" -version = "0.62.0" +version = "1.2.0" 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/89/01/a86e9f24722b095c3f88e3616132b75a21b0df53804bdc6a45314dd4d93c/pyrefly-1.2.0.tar.gz", hash = "sha256:5485f960fc2481617068c918335c39ab1507ef90b6b5bd35bf57726e60e73185", size = 6243654, upload-time = "2026-08-01T02:56:27.592Z" } 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/7d/9d/3c0ef1d4843987b22f996ed381ec9cf5a3b1273e29804db276252e4c95eb/pyrefly-1.2.0-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:7f46d983ac49ddd2b043694960a01dc6a19a5cfd8eec609d6bd9c42866f91b4e", size = 14026305, upload-time = "2026-08-01T02:56:02.611Z" }, + { url = "https://files.pythonhosted.org/packages/0a/06/03bbb78fbea54cdc65b626619f3597d5611aca4fdef11e72a4e8360e7e63/pyrefly-1.2.0-py3-none-macosx_11_0_arm64.whl", hash = "sha256:756f669b5555090f5c1a4fef30db1785fabe657764f7e4e6dc88994dfb8ca82d", size = 13463880, upload-time = "2026-08-01T02:56:04.93Z" }, + { url = "https://files.pythonhosted.org/packages/13/5a/7d8bc00a38e93bbc9c3e7bd14d305f7948717e667c9bcddeab9dd42fd255/pyrefly-1.2.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e3465812ce5ef4781fb592edbf2724547296f0a3124be115d73c7e8b2401862d", size = 13907329, upload-time = "2026-08-01T02:56:07.104Z" }, + { url = "https://files.pythonhosted.org/packages/be/94/9e08b4bf799d0b8f36b55a2783c7ba5f51730cf0632a85a67b5b5ed876cd/pyrefly-1.2.0-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5de7b2ad2bba5c8055181681a84b74143eac2234a48ba5d1b7ed7e7a722b02bd", size = 15039020, upload-time = "2026-08-01T02:56:09.208Z" }, + { url = "https://files.pythonhosted.org/packages/5b/bd/bca5fd0c80f4daf8ee6903a29df9f3de1feb05ff0946b8f35ec8c5096b13/pyrefly-1.2.0-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:25822ea9505f589ea8a725e4268b475132fb89e038fbf092e446510443ac142a", size = 14986199, upload-time = "2026-08-01T02:56:11.924Z" }, + { url = "https://files.pythonhosted.org/packages/97/f7/f07087f3d185ad2eced0c56cef89ca5474dfb4ff25f146cd50a861c97553/pyrefly-1.2.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:90efe75e17491ef5d636e10469e9278d7d0256b3b4c5e1f4750069bf3ae0f5d1", size = 14393715, upload-time = "2026-08-01T02:56:14.143Z" }, + { url = "https://files.pythonhosted.org/packages/d3/70/0d142c320e284b9e3ce35e9b1e58b8ce2ee1f578f2a7234bc30e5022b94f/pyrefly-1.2.0-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:368aaf7eee4f511ddc0f8e564cf14e01ab2f10b0db9105c6d5b153bf498d07bf", size = 13933008, upload-time = "2026-08-01T02:56:16.525Z" }, + { url = "https://files.pythonhosted.org/packages/5d/e8/e84f11b6e1f63fd453ad3654213b9a0f6f4de8cef6b58038eef2d0d5955d/pyrefly-1.2.0-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:d52d5da7bc65fb7675fbaa80eda879d4f8787c494f04cac21603330d3abbdbbe", size = 14431827, upload-time = "2026-08-01T02:56:18.645Z" }, ] [[package]]