A Performant Type Checker For Python Compliant With PEP 484

In this post I will discuss about of GitHub packages on python type checker in python compliant with PEP 484.

Pyre:

Pyre is a performant type checker for Python compliant with PEP 484. Pyre can analyze codebases with millions of lines of code incrementally – providing instantaneous feedback to developers as they write code.

Pyre ships with Pysa, a security-focused static analysis tool we’ve built on top of Pyre that reasons about data flow in Python applications.

Requirements:

To get started, you need Python 3.6 or later and a watchman working on your system. On macOS you can get everything with homebrew:

$ brew install python3 watchman

On UbuntuMint, or Debian; use apt-get and homebrew:

$ sudo apt-get install python3 python3-pip python3-venv
$ brew install watchman

We tested Pyre on Ubuntu 18.04.5 LTSCentOS 7, as well as OSX 10.11 and later.

Setting up a Project:

We start by creating an empty project directory and setting up a virtual environment:

$ mkdir my_project && cd my_project
$ python3 -m venv ~/.venvs/venv
$ source ~/.venvs/venv/bin/activate
(venv) $ pip install pyre-check

Next, we teach Pyre about our new project:

(venv) $ pyre init

This command will set up a configuration for Pyre (.pyre_configuration) as well as watchman (.watchmanconfig) in your project’s directory. Accept the defaults for now – you can change them later if necessary.

Running Pyre:

We are now ready to run Pyre:

(venv) $ echo "i: int = 'string'" > test.py
(venv) $ pyre
 ƛ Found 1 type error!
test.py:1:0 Incompatible variable type [9]: i is declared to have type `int` but is used as type `str`.

This first invocation will start a daemon listening for filesystem changes – type-checking your project incrementally as you make edits to the code. You will notice that subsequent invocations of pyre will be faster than the first one.

GitHub:

https://github.com/facebook/pyre-check

If you find anything helpful on this post please comment and share this post and also wants to improve WhatsApp Us.

Default image
Lingaraj Senapati
Hey There! I am Lingaraj Senapati, the Co-founder of lingarajtechhub.com My skills are Freelance, Web Developer & Designer, Corporate Trainer, Digital Marketer & Youtuber.
Articles: 216

Newsletter Updates

Enter your email address below to subscribe to our newsletter

Leave a Reply