privacy-scaling-explorations/zkevm-specs

`mypy` doesn't work as expected

KimiWu123 opened this issue · 1 comments

We do type checking by executing make type and the output is

MYPATH=src mypy .
Success: no issues found in 19 source files

There is no reason it only checks 19 files so I print the logs out by adding -v and it shows

...
LOG:  Cache Dir:              .mypy_cache
LOG:  Compiled:               True
LOG:  Exclude:                ["['build']"]
LOG:  Found source:           BuildSource(path='./tests/evm/test_comparator.py', module='test_comparator', has_text=False, base_dir='/Users/kimi/CODE/pse/zkevm-specs/tests/evm', followed=False)
LOG:  Found source:           BuildSource(path='./tests/evm/test_create.py', module='test_create', has_text=False, base_dir='/Users/kimi/CODE/pse/zkevm-specs/tests/evm', followed=False)
LOG:  Found source:           BuildSource(path='./tests/evm/test_error_oog_constant.py', module='test_error_oog_constant', has_text=False, base_dir='/Users/kimi/CODE/pse/zkevm-specs/tests/evm', followed=False)
LOG:  Found source:           BuildSource(path='./tests/evm/test_error_oog_create.py', module='test_error_oog_create', has_text=False, base_dir='/Users/kimi/CODE/pse/zkevm-specs/tests/evm', followed=False)
LOG:  Found source:           BuildSource(path='./tests/evm/test_error_oog_exp.py', module='test_error_oog_exp', has_text=False, base_dir='/Users/kimi/CODE/pse/zkevm-specs/tests/evm', followed=False)
LOG:  Found source:           BuildSource(path='./tests/evm/test_error_oog_memory_copy.py', module='test_error_oog_memory_copy', has_text=False, base_dir='/Users/kimi/CODE/pse/zkevm-specs/tests/evm', followed=False)
LOG:  Found source:           BuildSource(path='./tests/evm/test_error_oog_sha3.py', module='test_error_oog_sha3', has_text=False, base_dir='/Users/kimi/CODE/pse/zkevm-specs/tests/evm', followed=False)
LOG:  Found source:           BuildSource(path='./tests/evm/test_error_stack.py', module='test_error_stack', has_text=False, base_dir='/Users/kimi/CODE/pse/zkevm-specs/tests/evm', followed=False)
LOG:  Found source:           BuildSource(path='./tests/evm/test_exp.py', module='test_exp', has_text=False, base_dir='/Users/kimi/CODE/pse/zkevm-specs/tests/evm', followed=False)
LOG:  Found source:           BuildSource(path='./tests/evm/test_gas.py', module='test_gas', has_text=False, base_dir='/Users/kimi/CODE/pse/zkevm-specs/tests/evm', followed=False)
LOG:  Found source:           BuildSource(path='./tests/evm/test_memory.py', module='test_memory', has_text=False, base_dir='/Users/kimi/CODE/pse/zkevm-specs/tests/evm', followed=False)
LOG:  Found source:           BuildSource(path='./tests/evm/test_not.py', module='test_not', has_text=False, base_dir='/Users/kimi/CODE/pse/zkevm-specs/tests/evm', followed=False)
LOG:  Found source:           BuildSource(path='./tests/evm/test_pop.py', module='test_pop', has_text=False, base_dir='/Users/kimi/CODE/pse/zkevm-specs/tests/evm', followed=False)
LOG:  Found source:           BuildSource(path='./tests/evm/test_sar.py', module='test_sar', has_text=False, base_dir='/Users/kimi/CODE/pse/zkevm-specs/tests/evm', followed=False)
LOG:  Found source:           BuildSource(path='./tests/evm/test_sha3.py', module='test_sha3', has_text=False, base_dir='/Users/kimi/CODE/pse/zkevm-specs/tests/evm', followed=False)
LOG:  Found source:           BuildSource(path='./tests/evm/test_sstore.py', module='test_sstore', has_text=False, base_dir='/Users/kimi/CODE/pse/zkevm-specs/tests/evm', followed=False)
LOG:  Found source:           BuildSource(path='./tests/evm/test_stop.py', module='test_stop', has_text=False, base_dir='/Users/kimi/CODE/pse/zkevm-specs/tests/evm', followed=False)
LOG:  Found source:           BuildSource(path='./tests/common.py', module='common', has_text=False, base_dir='/Users/kimi/CODE/pse/zkevm-specs/tests', followed=False)
LOG:  Found source:           BuildSource(path='./tests/conftest.py', module='conftest', has_text=False, base_dir='/Users/kimi/CODE/pse/zkevm-specs/tests', followed=False)
...

From the logs, we can see that mypy only checks some of testing files and no any circuit files are checked. It seems not fitting our expectation since our path is src (MYPATH=src). Besides, it only checks part of testing files not all testing files. We should investigate what happened.

@ChihChengLiang , could you help confirm if this issue makes sense to you?

Hi @KimiWu123,
I can reproduce this issue on my local side. It looks like the fix in #430 no longer worked.
I also found that moving the configuration from setup.cfg to pyproject.toml fix the issue https://github.com/privacy-scaling-explorations/zkevm-specs/compare/fix-mypy?expand=1.
The fixed configuration introduces many typing errors that need to be fixed too, so it might be a good idea to leave the fix as a good first issue. For contributors, you can build on top of this commit, run make type, and then address errors reported by mypy.