Skip to content

Latest v.8.1.1 introduces mypy (typing) errors in user code #513

Closed
@lowvoltage

Description

@lowvoltage

Describe the bug
Upgrading to the latest v.8.1.1 causes mypy issues to be reported throughout the client code that imports and uses deepdiff. It seems those can't be suppressed globally, via config and need to be ignored one by one.

The minimalist main.py + mypy.ini setup below is based on the parse_path usage example from its docstring.

To Reproduce

❯ cat main.py
from deepdiff import parse_path
parse_path("root[1][2]['age']")

❯ cat mypy.ini
[mypy]
strict = True

[mypy-deepdiff.*]
ignore_missing_imports = True

❯ pip install deepdiff==8.0.1
...
Successfully installed deepdiff-8.0.1 orderly-set-5.2.2

❯ mypy main.py
Success: no issues found in 1 source file

❯ pip install deepdiff==8.1.1
...
Successfully installed deepdiff-8.1.1 orderly-set-5.2.3

❯ mypy main.py
main.py:1: error: Module "deepdiff" does not explicitly export attribute "parse_path"  [attr-defined]
main.py:2: error: Call to untyped function "parse_path" in typed context  [no-untyped-call]
Found 2 errors in 1 file (checked 1 source file)

Expected behavior
No new mypy errors are introduced

OS, DeepDiff version and Python version (please complete the following information):

  • OS: macOS v.14.6; Ubuntu 24.04
  • Python Version: 3.11.7
  • DeepDiff Version: 8.1.1

Additional context
Seems to be caused by the presence of the py.typed marker ( #507 ) while the deepdiff codebase itself is not fully typed yet.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions