Conversation

charulatalodha

Summary

This PR introduces three key improvements to enhance the clarity and usefulness of Mypy's error messages related to missing type annotations.
Worked on this as part of PyCon US Sprint 2025


1. Suggest -> None When a Function Lacks a Return Type Annotation

Problem:
Currently, Mypy inconsistently suggests adding a -> None return type for functions that do not return a value.

Solution:
This PR ensures that all functions missing return type annotations and returning None will include a note suggesting the use of -> None.

Issue Reference:
#15127 (comment)

Example:

Before:

def f(x):  # E: Function is missing a type annotation  [no-untyped-def]
    pass

After:

def f(x):  # E: Function is missing a type annotation  [no-untyped-def]  # N: Use "-> None" if function does not return a value
    pass

2. Improve ARGUMENT_TYPE_EXPECTED Error Message with Argument Names

Problem:
When functions have many parameters, it's difficult to identify which ones are missing type annotations.

Solution:
This PR enhances the error message by listing the names of up to the first five arguments missing annotations. If more than five are missing, the message is truncated with an ellipsis (...).

Example 1 (Fewer than 5 missing args):

Before:

def h(x) -> None:  # E: Function is missing a type annotation for one or more arguments  [no-untyped-def]

After:

def h(x) -> None:  # E: Function is missing a type annotation for one or more arguments: "x"  [no-untyped-def]

Example 2 (5 or more missing args):

Before:

def f(x, y, z, a: int, b, c, d, e, f: int) -> int: return 1
# main:2: error: Function is missing a type annotation for one or more arguments  [no-untyped-def]

After:

def f(x, y, z, a: int, b, c, d, e, f: int) -> int: return 1
# main:2: error: Function is missing a type annotation for one or more arguments: "x", "y", "z", "b", "c"...  [no-untyped-def]

3. Refactor check_for_missing_annotations()

Change:

  • The check_for_missing_annotations() function has been refactored to separately handle return type annotations and argument annotations.

  • This separation improves code readability and simplifies future enhancements or debugging efforts.

  • This structural change also improves code maintainability and clarity.


Notes

  • All changes are covered by tests.
  • CI passes successfully.
  • These improvements aim to make missing annotations easier to detect and fix, especially in larger codebases.

@charulatalodhacharulatalodha marked this pull request as draft May 21, 2025 15:25
@github-actionsGitHub Actions

This comment has been minimized.

@github-actionsGitHub Actions

This comment has been minimized.

@github-actionsGitHub Actions

This comment has been minimized.

@charulatalodhacharulatalodha marked this pull request as ready for review May 27, 2025 16:54
@charulatalodhacharulatalodha marked this pull request as draft May 27, 2025 16:54
@github-actionsGitHub Actions

This comment has been minimized.

@charulatalodhacharulatalodha marked this pull request as ready for review May 27, 2025 18:30
@charulatalodhacharulatalodha changed the title [WIP] Enhance check_for_missing_annotations for None return type, giving unannotated arg name in err msg Missing return type annotations should suggest adding None, Giving unannotated arg name in err msg May 27, 2025
@charulatalodha

@JukkaL can you please review. Please let me know if any changes are needed. thanks.

@charulatalodhacharulatalodha changed the title Missing return type annotations should suggest adding None, Giving unannotated arg name in err msg Missing return type annotations should suggest adding None, ARGUMENT_TYPE_EXPECTED should show names of args missing annotations May 27, 2025
@charulatalodhacharulatalodha changed the title Missing return type annotations should suggest adding None, ARGUMENT_TYPE_EXPECTED should show names of args missing annotations Improve error messages for missing annotations (return type + arguments) May 27, 2025
@github-actionsGitHub Actions

This comment has been minimized.

@github-actionsGitHub Actions

Diff from mypy_primer, showing the effect of this PR on open source code:

antidote (https://.com/Finistere/antidote)
+ docs/conf.py:223: note: Use "-> None" if function does not return a value

typeshed-stats (https://.com/AlexWaygood/typeshed-stats): 1.64x slower (58.6s -> 96.3s in single noisy sample)

prefect (https://.com/PrefectHQ/prefect): 1.08x slower (71.1s -> 76.7s in single noisy sample)

tornado (https://.com/tornadoweb/tornado)
+ tornado/web.py:1942: error: Unused "type: ignore" comment  [unused-ignore]
+ tornado/web.py:2013: error: Unused "type: ignore" comment  [unused-ignore]
+ tornado/web.py:2042: error: Unused "type: ignore" comment  [unused-ignore]
+ tornado/web.py:3358: error: Unused "type: ignore" comment  [unused-ignore]
+ tornado/web.py:3480: error: Unused "type: ignore" comment  [unused-ignore]

bokeh (https://.com/bokeh/bokeh): 1.07x slower (79.4s -> 85.0s in single noisy sample)

kornia (https://.com/kornia/kornia)
+ kornia/feature/dedode/detector.py:25: error: Unused "type: ignore" comment  [unused-ignore]
+ kornia/feature/dedode/descriptor.py:24: error: Unused "type: ignore" comment  [unused-ignore]
+ kornia/feature/dedode/decoder.py:27: error: Unused "type: ignore" comment  [unused-ignore]
+ kornia/feature/lightglue.py:420: error: Unused "type: ignore" comment  [unused-ignore]
+ kornia/augmentation/container/base.py:318: error: Unused "type: ignore" comment  [unused-ignore]

pyodide (https://.com/pyodide/pyodide)
- pyodide-build/pyodide_build/common.py:408: error: Function is missing a type annotation for one or more arguments  [no-untyped-def]
+ pyodide-build/pyodide_build/common.py:408: error: Function is missing a type annotation for one or more arguments: "verbose"  [no-untyped-def]
- pyodide-build/pyodide_build/common.py:424: error: Function is missing a type annotation for one or more arguments  [no-untyped-def]
+ pyodide-build/pyodide_build/common.py:424: error: Function is missing a type annotation for one or more arguments: "verbose"  [no-untyped-def]
- pyodide-build/pyodide_build/common.py:439: error: Function is missing a type annotation for one or more arguments  [no-untyped-def]
+ pyodide-build/pyodide_build/common.py:439: error: Function is missing a type annotation for one or more arguments: "verbose"  [no-untyped-def]
- pyodide-build/pyodide_build/recipe/skeleton.py:237: error: Function is missing a type annotation for one or more arguments  [no-untyped-def]
+ pyodide-build/pyodide_build/recipe/skeleton.py:237: error: Function is missing a type annotation for one or more arguments: "yaml"  [no-untyped-def]
- pyodide-build/pyodide_build/recipe/skeleton.py:246: error: Function is missing a type annotation for one or more arguments  [no-untyped-def]
+ pyodide-build/pyodide_build/recipe/skeleton.py:246: error: Function is missing a type annotation for one or more arguments: "yaml", "yaml_content"  [no-untyped-def]
- pyodide-build/pyodide_build/tests/test_cli_xbuildenv.py:29: error: Function is missing a type annotation for one or more arguments  [no-untyped-def]
+ pyodide-build/pyodide_build/tests/test_cli_xbuildenv.py:29: error: Function is missing a type annotation for one or more arguments: "json_str"  [no-untyped-def]
- pyodide-build/pyodide_build/recipe/builder.py:743: error: Function is missing a type annotation for one or more arguments  [no-untyped-def]
+ pyodide-build/pyodide_build/recipe/builder.py:743: error: Function is missing a type annotation for one or more arguments: "modify_rpath"  [no-untyped-def]
- pyodide-build/pyodide_build/tests/recipe/test_graph_builder.py:133: error: Function is missing a type annotation for one or more arguments  [no-untyped-def]
+ pyodide-build/pyodide_build/tests/recipe/test_graph_builder.py:133: error: Function is missing a type annotation for one or more arguments: "self"  [no-untyped-def]
- pyodide-build/pyodide_build/tests/recipe/test_graph_builder.py:161: error: Function is missing a type annotation for one or more arguments  [no-untyped-def]
+ pyodide-build/pyodide_build/tests/recipe/test_graph_builder.py:161: error: Function is missing a type annotation for one or more arguments: "self"  [no-untyped-def]
- pyodide-build/pyodide_build/tests/test_cli.py:359: error: Function is missing a type annotation for one or more arguments  [no-untyped-def]
+ pyodide-build/pyodide_build/tests/test_cli.py:359: error: Function is missing a type annotation for one or more arguments: "isolation", "skip_dependency_check"  [no-untyped-def]

artigraph (https://.com/artigraph/artigraph)
+ src/arti/internal/mappings.py:221: note: Use "-> None" if function does not return a value
- src/arti/internal/models.py:146: error: Function is missing a type annotation for one or more arguments  [no-untyped-def]
- src/arti/internal/models.py:150: error: Function is missing a type annotation for one or more arguments  [no-untyped-def]

pyppeteer (https://.com/pyppeteer/pyppeteer)
- pyppeteer/launcher.py:222: error: Function is missing a type annotation for one or more arguments  [no-untyped-def]
+ pyppeteer/launcher.py:222: error: Function is missing a type annotation for one or more arguments: "url"  [no-untyped-def]

werkzeug (https://.com/pallets/werkzeug)
+ tests/middleware/test_shared_data.py:14: note: Use "-> None" if function does not return a value
+ tests/test_wsgi.py:60: note: Use "-> None" if function does not return a value
+ tests/test_wsgi.py:317: note: Use "-> None" if function does not return a value
- tests/test_wsgi.py:323: error: Function is missing a type annotation  [no-untyped-def]
+ tests/test_wsgi.py:323: error: Function is missing a return type annotation  [no-untyped-def]
+ tests/test_wrappers.py:44: note: Use "-> None" if function does not return a value
+ tests/test_wrappers.py:200: note: Use "-> None" if function does not return a value
- tests/test_wrappers.py:285: error: Function is missing a type annotation  [no-untyped-def]
+ tests/test_wrappers.py:285: error: Function is missing a return type annotation  [no-untyped-def]
+ tests/test_wrappers.py:315: note: Use "-> None" if function does not return a value
+ tests/test_wrappers.py:336: note: Use "-> None" if function does not return a value
+ tests/test_wrappers.py:452: note: Use "-> None" if function does not return a value
+ tests/test_wrappers.py:661: note: Use "-> None" if function does not return a value
+ tests/test_wrappers.py:1165: note: Use "-> None" if function does not return a value
+ tests/test_utils.py:194: note: Use "-> None" if function does not return a value
+ tests/test_utils.py:214: note: Use "-> None" if function does not return a value
+ tests/test_urls.py:82: note: Use "-> None" if function does not return a value
+ tests/test_test.py:175: note: Use "-> None" if function does not return a value
+ tests/test_test.py:557: note: Use "-> None" if function does not return a value
- tests/test_test.py:686: error: Function is missing a type annotation  [no-untyped-def]
+ tests/test_test.py:686: error: Function is missing a return type annotation  [no-untyped-def]
+ tests/test_test.py:713: note: Use "-> None" if function does not return a value
- tests/test_test.py:716: error: Function is missing a type annotation  [no-untyped-def]
+ tests/test_test.py:716: error: Function is missing a return type annotation  [no-untyped-def]
- tests/test_test.py:738: error: Function is missing a type annotation  [no-untyped-def]
+ tests/test_test.py:738: error: Function is missing a return type annotation  [no-untyped-def]
- tests/test_test.py:773: error: Function is missing a type annotation  [no-untyped-def]
+ tests/test_test.py:773: error: Function is missing a return type annotation  [no-untyped-def]
+ tests/test_test.py:851: note: Use "-> None" if function does not return a value
+ tests/test_send_file.py:21: note: Use "-> None" if function does not return a value
+ tests/test_send_file.py:47: note: Use "-> None" if function does not return a value
+ tests/test_send_file.py:70: note: Use "-> None" if function does not return a value
+ tests/test_send_file.py:78: note: Use "-> None" if function does not return a value
+ tests/test_send_file.py:115: note: Use "-> None" if function does not return a value
+ tests/test_send_file.py:144: note: Use "-> None" if function does not return a value
+ tests/test_send_file.py:167: note: Use "-> None" if function does not return a value
+ tests/test_send_file.py:180: note: Use "-> None" if function does not return a value
+ tests/test_send_file.py:188: note: Use "-> None" if function does not return a value
+ tests/test_send_file.py:193: note: Use "-> None" if function does not return a value
+ tests/test_security.py:58: note: Use "-> None" if function does not return a value
+ tests/test_routing.py:136: note: Use "-> None" if function does not return a value
+ tests/test_routing.py:518: note: Use "-> None" if function does not return a value
+ tests/test_routing.py:766: note: Use "-> None" if function does not return a value
+ tests/test_routing.py:792: note: Use "-> None" if function does not return a value
+ tests/test_routing.py:933: note: Use "-> None" if function does not return a value
+ tests/test_routing.py:955: note: Use "-> None" if function does not return a value
+ tests/test_routing.py:1098: note: Use "-> None" if function does not return a value
+ tests/test_routing.py:1115: note: Use "-> None" if function does not return a value
+ tests/test_routing.py:1288: note: Use "-> None" if function does not return a value
+ tests/test_routing.py:1540: note: Use "-> None" if function does not return a value
+ tests/test_local.py:34: note: Use "-> None" if function does not return a value
+ tests/test_local.py:62: note: Use "-> None" if function does not return a value
- tests/test_local.py:236: error: Function is missing a type annotation  [no-untyped-def]
+ tests/test_local.py:236: error: Function is missing a return type annotation  [no-untyped-def]
+ tests/test_local.py:284: note: Use "-> None" if function does not return a value
+ tests/test_local.py:292: note: Use "-> None" if function does not return a value
- tests/test_local.py:299: error: Function is missing a type annotation  [no-untyped-def]
+ tests/test_local.py:299: error: Function is missing a return type annotation  [no-untyped-def]
- tests/test_local.py:302: error: Function is missing a type annotation  [no-untyped-def]
+ tests/test_local.py:302: error: Function is missing a return type annotation  [no-untyped-def]
- tests/test_local.py:305: error: Function is missing a type annotation  [no-untyped-def]
+ tests/test_local.py:305: error: Function is missing a return type annotation  [no-untyped-def]
- tests/test_local.py:471: error: Function is missing a type annotation  [no-untyped-def]
+ tests/test_local.py:471: error: Function is missing a return type annotation  [no-untyped-def]
+ tests/test_local.py:475: note: Use "-> None" if function does not return a value
+ tests/test_local.py:527: note: Use "-> None" if function does not return a value
+ tests/test_local.py:530: note: Use "-> None" if function does not return a value
+ tests/test_local.py:603: note: Use "-> None" if function does not return a value
+ tests/test_http.py:107: note: Use "-> None" if function does not return a value
+ tests/test_http.py:118: note: Use "-> None" if function does not return a value
+ tests/test_http.py:356: note: Use "-> None" if function does not return a value
- tests/test_http.py:395: error: Function is missing a type annotation for one or more arguments  [no-untyped-def]
+ tests/test_http.py:395: error: Function is missing a type annotation for one or more arguments: "value", "expect"  [no-untyped-def]
+ tests/test_http.py:584: note: Use "-> None" if function does not return a value
+ tests/test_http.py:758: note: Use "-> None" if function does not return a value
+ tests/test_http.py:783: note: Use "-> None" if function does not return a value
+ tests/test_http.py:788: note: Use "-> None" if function does not return a value
+ tests/test_http.py:807: note: Use "-> None" if function does not return a value
+ tests/test_http.py:812: note: Use "-> None" if function does not return a value
+ tests/test_formparser.py:180: note: Use "-> None" if function does not return a value
+ tests/test_exceptions.py:49: note: Use "-> None" if function does not return a value
+ tests/test_exceptions.py:134: note: Use "-> None" if function does not return a value
- tests/test_exceptions.py:147: error: Function is missing a return type annotation  [no-untyped-def]
+ tests/test_exceptions.py:147: error: Function is missing a type annotation  [no-untyped-def]
- tests/test_exceptions.py:167: error: Function is missing a return type annotation  [no-untyped-def]
+ tests/test_exceptions.py:167: error: Function is missing a type annotation  [no-untyped-def]
- tests/test_debug.py:114: error: Function is missing a type annotation  [no-untyped-def]
+ tests/test_debug.py:114: error: Function is missing a return type annotation  [no-untyped-def]
- tests/test_debug.py:155: error: Function is missing a type annotation  [no-untyped-def]
+ tests/test_debug.py:155: error: Function is missing a return type annotation  [no-untyped-def]
+ tests/test_debug.py:155: note: Use "-> None" if function does not return a value
+ tests/test_debug.py:224: note: Use "-> None" if function does not return a value
+ tests/test_debug.py:249: note: Use "-> None" if function does not return a value
+ tests/test_debug.py:260: note: Use "-> None" if function does not return a value
+ tests/test_datastructures.py:1183: note: Use "-> None" if function does not return a value
+ tests/test_datastructures.py:1207: note: Use "-> None" if function does not return a value
+ tests/test_datastructures.py:1221: note: Use "-> None" if function does not return a value
+ tests/test_datastructures.py:1232: note: Use "-> None" if function does not return a value
+ tests/test_datastructures.py:1247: note: Use "-> None" if function does not return a value
+ tests/test_datastructures.py:1264: note: Use "-> None" if function does not return a value
+ tests/test_datastructures.py:1274: note: Use "-> None" if function does not return a value
+ tests/test_datastructures.py:1283: note: Use "-> None" if function does not return a value
+ tests/middleware/test_lint.py:32: note: Use "-> None" if function does not return a value
+ tests/middleware/test_http_proxy.py:9: note: Use "-> None" if function does not return a value

discord.py (https://.com/Rapptz/discord.py): 1.11x slower (270.0s -> 299.4s in single noisy sample)

cki-lib (https://gitlab.com/cki-project/cki-lib)
+ cki_lib/psql.py:14: note: Use "-> None" if function does not return a value
- cki_lib/metrics/server.py:8: error: Function is missing a type annotation for one or more arguments  [no-untyped-def]
+ cki_lib/metrics/server.py:8: error: Function is missing a type annotation for one or more arguments: "_"  [no-untyped-def]
- cki_lib/s3bucket.py:18: error: Function is missing a type annotation for one or more arguments  [no-untyped-def]
+ cki_lib/s3bucket.py:18: error: Function is missing a type annotation for one or more arguments: "bucket_spec"  [no-untyped-def]
+ cki_lib/s3bucket.py:36: note: Use "-> None" if function does not return a value
+ cki_lib/timer.py:13: note: Use "-> None" if function does not return a value
+ tests/cki_pipeline/mocks.py:12: note: Use "-> None" if function does not return a value
+ tests/cki_pipeline/mocks.py:35: note: Use "-> None" if function does not return a value
+ tests/cki_pipeline/mocks.py:47: note: Use "-> None" if function does not return a value
+ tests/cki_pipeline/mocks.py:62: note: Use "-> None" if function does not return a value
+ cki_lib/misc.py:124: note: Use "-> None" if function does not return a value
+ cki_lib/misc.py:343: note: Use "-> None" if function does not return a value
+ cki_lib/misc.py:354: note: Use "-> None" if function does not return a value
- cki_lib/kcidb/validate.py:49: error: Function is missing a type annotation for one or more arguments  [no-untyped-def]
+ cki_lib/kcidb/validate.py:49: error: Function is missing a type annotation for one or more arguments: "data"  [no-untyped-def]
+ cki_lib/kcidb/validate.py:78: note: Use "-> None" if function does not return a value
+ cki_lib/kcidb/validate.py:87: note: Use "-> None" if function does not return a value
+ cki_lib/kcidb/validate.py:114: note: Use "-> None" if function does not return a value
+ cki_lib/kcidb/validate.py:127: note: Use "-> None" if function does not return a value
- cki_lib/kcidb/validate.py:137: error: Function is missing a type annotation for one or more arguments  [no-untyped-def]
+ cki_lib/kcidb/validate.py:137: error: Function is missing a type annotation for one or more arguments: "kcidb_schema"  [no-untyped-def]
+ cki_lib/kcidb/validate.py:166: note: Use "-> None" if function does not return a value
+ cki_lib/kcidb/validate.py:179: note: Use "-> None" if function does not return a value
+ cki_lib/owners.py:22: note: Use "-> None" if function does not return a value
- cki_lib/owners.py:142: error: Function is missing a type annotation  [no-untyped-def]
+ cki_lib/owners.py:142: error: Function is missing a return type annotation  [no-untyped-def]
+ cki_lib/owners.py:150: note: Use "-> None" if function does not return a value
+ cki_lib/cronjob.py:25: note: Use "-> None" if function does not return a value
+ cki_lib/cronjob.py:31: note: Use "-> None" if function does not return a value
+ cki_lib/cronjob.py:68: note: Use "-> None" if function does not return a value
+ cki_lib/cronjob.py:77: note: Use "-> None" if function does not return a value
+ cki_lib/metrics/__init__.py:13: note: Use "-> None" if function does not return a value
+ cki_lib/metrics/__init__.py:47: note: Use "-> None" if function does not return a value
+ cki_lib/kcidb/file.py:27: note: Use "-> None" if function does not return a value
+ cki_lib/kcidb/file.py:59: note: Use "-> None" if function does not return a value
+ tests/test_session.py:109: note: Use "-> None" if function does not return a value
+ tests/test_session.py:152: note: Use "-> None" if function does not return a value
+ tests/test_session.py:168: note: Use "-> None" if function does not return a value
+ tests/test_s3bucket.py:24: note: Use "-> None" if function does not return a value
+ tests/test_s3bucket.py:37: note: Use "-> None" if function does not return a value
+ tests/test_retrying.py:17: note: Use "-> None" if function does not return a value
+ tests/test_psql.py:35: note: Use "-> None" if function does not return a value
+ tests/test_psql.py:45: note: Use "-> None" if function does not return a value
+ tests/test_psql.py:55: note: Use "-> None" if function does not return a value
+ tests/test_psql.py:66: note: Use "-> None" if function does not return a value
+ tests/test_misc.py:602: note: Use "-> None" if function does not return a value
+ tests/test_metrics.py:89: note: Use "-> None" if function does not return a value
+ tests/test_metrics.py:99: note: Use "-> None" if function does not return a value
+ tests/test_gitlab.py:21: note: Use "-> None" if function does not return a value
+ tests/test_gitlab.py:29: note: Use "-> None" if function does not return a value
+ tests/test_gitlab.py:37: note: Use "-> None" if function does not return a value
+ tests/test_gitlab.py:46: note: Use "-> None" if function does not return a value
+ tests/test_gitlab.py:55: note: Use "-> None" if function does not return a value
+ tests/test_gitlab.py:64: note: Use "-> None" if function does not return a value
+ cki_lib/stomp.py:24: note: Use "-> None" if function does not return a value
+ cki_lib/stomp.py:36: note: Use "-> None" if function does not return a value
+ cki_lib/stomp.py:41: note: Use "-> None" if function does not return a value
+ cki_lib/messagequeue.py:85: note: Use "-> None" if function does not return a value
+ cki_lib/messagequeue.py:128: note: Use "-> None" if function does not return a value
+ cki_lib/messagequeue.py:222: note: Use "-> None" if function does not return a value
- cki_lib/messagequeue.py:254: error: Function is missing a type annotation for one or more arguments  [no-untyped-def]
+ cki_lib/messagequeue.py:254: error: Function is missing a type annotation for one or more arguments: "thread_queue", "thread_quit", "thread_dead_channel"  [no-untyped-def]
+ cki_lib/messagequeue.py:310: note: Use "-> None" if function does not return a value
+ cki_lib/messagequeue.py:321: note: Use "-> None" if function does not return a value
+ cki_lib/messagequeue.py:331: note: Use "-> None" if function does not return a value
- cki_lib/messagequeue.py:372: error: Function is missing a type annotation for one or more arguments  [no-untyped-def]
+ cki_lib/messagequeue.py:372: error: Function is missing a type annotation for one or more arguments: "manual_ack"  [no-untyped-def]
+ cki_lib/messagequeue.py:470: note: Use "-> None" if function does not return a value
+ cki_lib/messagequeue.py:498: note: Use "-> None" if function does not return a value
+ cki_lib/krb_ticket_refresher.py:24: note: Use "-> None" if function does not return a value
+ cki_lib/cki_pipeline.py:18: note: Use "-> None" if function does not return a value
+ cki_lib/cki_pipeline.py:36: note: Use "-> None" if function does not return a value
+ cki_lib/cki_pipeline.py:48: note: Use "-> None" if function does not return a value
+ cki_lib/cki_pipeline.py:85: note: Use "-> None" if function does not return a value
+ cki_lib/cki_pipeline.py:100: note: Use "-> None" if function does not return a value
+ cki_lib/cki_pipeline.py:119: note: Use "-> None" if function does not return a value
+ cki_lib/cki_pipeline.py:197: note: Use "-> None" if function does not return a value
+ cki_lib/cki_pipeline.py:371: note: Use "-> None" if function does not return a value
+ tests/test_messagequeue.py:125: note: Use "-> None" if function does not return a value
+ tests/test_messagequeue.py:170: note: Use "-> None" if function does not return a value
+ tests/test_messagequeue.py:209: note: Use "-> None" if function does not return a value
+ tests/test_messagequeue.py:219: note: Use "-> None" if function does not return a value
+ tests/test_messagequeue.py:250: note: Use "-> None" if function does not return a value
+ tests/test_messagequeue.py:261: note: Use "-> None" if function does not return a value
+ tests/test_messagequeue.py:274: note: Use "-> None" if function does not return a value
+ tests/test_messagequeue.py:293: note: Use "-> None" if function does not return a value
+ tests/test_messagequeue.py:344: note: Use "-> None" if function does not return a value
+ tests/test_messagequeue.py:375: note: Use "-> None" if function does not return a value
+ tests/test_messagequeue.py:380: note: Use "-> None" if function does not return a value
+ tests/test_messagequeue.py:386: note: Use "-> None" if function does not return a value
+ tests/test_messagequeue.py:392: note: Use "-> None" if function does not return a value
+ tests/test_messagequeue.py:398: note: Use "-> None" if function does not return a value
+ tests/test_messagequeue.py:404: note: Use "-> None" if function does not return a value
+ tests/test_messagequeue.py:411: note: Use "-> None" if function does not return a value
+ tests/test_messagequeue.py:419: note: Use "-> None" if function does not return a value
+ tests/test_messagequeue.py:426: note: Use "-> None" if function does not return a value
+ tests/test_messagequeue.py:432: note: Use "-> None" if function does not return a value
+ tests/test_messagequeue.py:437: note: Use "-> None" if function does not return a value
+ tests/test_messagequeue.py:444: note: Use "-> None" if function does not return a value
+ tests/test_messagequeue.py:477: note: Use "-> None" if function does not return a value
+ tests/test_messagequeue.py:490: note: Use "-> None" if function does not return a value
+ tests/test_messagequeue.py:516: note: Use "-> None" if function does not return a value
+ tests/test_messagequeue.py:553: note: Use "-> None" if function does not return a value
+ tests/test_messagequeue.py:558: note: Use "-> None" if function does not return a value
+ tests/test_messagequeue.py:563: note: Use "-> None" if function does not return a value
+ tests/test_messagequeue.py:568: note: Use "-> None" if function does not return a value
+ tests/test_messagequeue.py:573: note: Use "-> None" if function does not return a value
+ tests/test_messagequeue.py:579: note: Use "-> None" if function does not return a value
+ tests/test_messagequeue.py:592: note: Use "-> None" if function does not return a value
+ tests/test_messagequeue.py:806: note: Use "-> None" if function does not return a value
+ tests/test_messagequeue.py:926: note: Use "-> None" if function does not return a value
+ tests/test_krb_ticket_refresher.py:17: note: Use "-> None" if function does not return a value
+ tests/test_krb_ticket_refresher.py:51: note: Use "-> None" if function does not return a value
+ tests/test_krb_ticket_refresher.py:61: note: Use "-> None" if function does not return a value
+ tests/test_krb_ticket_refresher.py:84: note: Use "-> None" if function does not return a value
+ tests/kcidb/test_validate.py:219: note: Use "-> None" if function does not return a value
+ tests/kcidb/test_validate.py:228: note: Use "-> None" if function does not return a value
+ tests/kcidb/test_validate.py:239: note: Use "-> None" if function does not return a value
+ tests/kcidb/test_validate.py:248: note: Use "-> None" if function does not return a value
+ tests/kcidb/test_validate.py:360: note: Use "-> None" if function does not return a value
+ tests/cki_pipeline/test_trigger_multiple.py:48: note: Use "-> None" if function does not return a value
+ tests/cki_pipeline/test_trigger_multiple.py:83: note: Use "-> None" if function does not return a value
+ tests/cki_pipeline/test_trigger.py:34: note: Use "-> None" if function does not return a value
+ tests/cki_pipeline/test_trigger.py:48: note: Use "-> None" if function does not return a value
+ tests/cki_pipeline/test_trigger.py:63: note: Use "-> None" if function does not return a value
+ tests/cki_pipeline/test_trigger.py:78: note: Use "-> None" if function does not return a value
+ tests/cki_pipeline/test_trigger.py:93: note: Use "-> None" if function does not return a value
+ tests/cki_pipeline/test_trigger.py:108: note: Use "-> None" if function does not return a value
+ tests/cki_pipeline/test_trigger.py:123: note: Use "-> None" if function does not return a value
+ inttests/test_messagequeue.py:19: note: Use "-> None" if function does not return a value
+ inttests/test_messagequeue.py:29: note: Use "-> None" if function does not return a value

.py (https://.com/Gobot1234/.py)
- /_const.py:73: error: Function is missing a type annotation for one or more arguments  [no-untyped-def]
+ /_const.py:73: error: Function is missing a type annotation for one or more arguments: "__isinstance", "__vdf_dict"  [no-untyped-def]
- /utils.py:167: error: Function is missing a type annotation for one or more arguments  [no-untyped-def]
+ /utils.py:167: error: Function is missing a type annotation for one or more arguments: "_"  [no-untyped-def]
- /utils.py:173: error: Function is missing a type annotation for one or more arguments  [no-untyped-def]
+ /utils.py:173: error: Function is missing a type annotation for one or more arguments: "_"  [no-untyped-def]
- /utils.py:221: error: Function is missing a type annotation for one or more arguments  [no-untyped-def]
+ /utils.py:221: error: Function is missing a type annotation for one or more arguments: "_"  [no-untyped-def]
- /utils.py:227: error: Function is missing a type annotation for one or more arguments  [no-untyped-def]
+ /utils.py:227: error: Function is missing a type annotation for one or more arguments: "_"  [no-untyped-def]

@charulatalodha

@JukkaL can you please review. Please let me know if any changes are needed. thanks.

@JukkaL

@charulatalodha Sorry for the delay, this is now on my list of PRs to review next. I'll try to get back to this soon.

@JelleZijlstra

The Unused "type: ignore" comment in mypy-primer are surprising, since they indicate that some type checker behavior changed, but the description of the PR suggests it should only change error messages. Do you know what's happening there?

@charulatalodha

The Unused "type: ignore" comment in mypy-primer are surprising, since they indicate that some type checker behavior changed, but the description of the PR suggests it should only change error messages. Do you know what's happening there?

Thanks for highlighting this, let me take a look at these examples and understand what is the right behavior for args and kwargs.

def __init__(self, encoder: Module, decoder: Module, *args, **kwargs) -> None:  # type: ignore[no-untyped-def]
    super().__init__(*args, **kwargs)
    self.encoder = encoder
    self.decoder = decoder

https://.com/kornia/kornia/blob/main/kornia/feature/dedode/decoder.py#L27

Sign up for free to join this conversation on . Already have an account? Sign in to comment
None yet
None yet

Successfully merging this pull request may close these issues.