Update README.md

This commit is contained in:
Shunsuke Shibayama 2022-12-12 22:48:24 +09:00
parent 20472bfb3c
commit 0dc178ab91
1 changed files with 5 additions and 7 deletions

View File

@ -23,16 +23,14 @@ pype converts Python ASTs to Erg ASTs and passes them to Erg's type checker. It
pype performs type inference of Python source code. Therefore, there is no need to annotate or type your Python scripts in order to use pype. You can, however, explicitly request type checks by specifying types. pype performs type inference of Python source code. Therefore, there is no need to annotate or type your Python scripts in order to use pype. You can, however, explicitly request type checks by specifying types.
Other softwares that takes the same approach as pype are pytype, pyright, etc. There are other softwares that takes the same approach as pype, such as pytype, pyright, etc.
However, pype is superior to them in the following points: However, pype is superior to them in the following points:
* Checking speed: pype can inspect Python scripts on average 100 times faster than pytype. This is largely due to the fact that pype is implemented in Rust, whereas pytype is implemented in Python. * Performance: pype can inspect Python scripts on average 100 times faster than pytype. This is largely due to the fact that pype is implemented in Rust, whereas pytype is implemented in Python.
* Detailed analysis
pype can do more than the usual type testing. For example, it can detect out-of-bounds accesses to lists and accesses to nonexistent keys in dicts.
* Type checking accuracy: pytype is just a static code analysis tool in python, whereas pype appropriates the type checker of Erg, a real statically typed programming language. * Reporting quality: While pytype's error reports are crude, showing only that an error has occurred, pype shows where the error occurred and provides clear error messages.
* Reporting quality: While pytype's error reports are frankly very crude, showing only that an error has occurred, pype shows where the error occurred and provides clear error messages. Also, pytype only displays the first error when there are multiple errors. pype enumerates as many errors as possible.