Skip to main content

A performant type checker for Python

Project description

lint tests pyre License: MIT Gitter

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. You can try it out on examples in the Pyre Playground.

Pyre ships with Pysa, a security focused static analysis tool we've built on top of Pyre that reasons about data flows in Python applications. Please refer to our documentation to get started with our security analysis.

Pysa is also available on the GitHub Marketplace as a Github Action

Requirements

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

$ brew install python3 watchman

On Ubuntu, Mint, 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 LTS, CentOS 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.

For more detailed documentation, see https://pyre-check.org.

Join the Pyre community

See CONTRIBUTING.md for how to help out.

License

Pyre is licensed under the MIT license.

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyre-check-nightly-0.0.101721733199.tar.gz (22.4 MB view details)

Uploaded Source

Built Distributions

pyre_check_nightly-0.0.101721733199-py3-none-macosx_10_11_x86_64.whl (23.1 MB view details)

Uploaded Python 3 macOS 10.11+ x86-64

File details

Details for the file pyre-check-nightly-0.0.101721733199.tar.gz.

File metadata

  • Download URL: pyre-check-nightly-0.0.101721733199.tar.gz
  • Upload date:
  • Size: 22.4 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.10.0 requests/2.31.0+fb3 setuptools/69.0.3 requests-toolbelt/0.9.1 tqdm/4.66.1 CPython/3.10.9+fb

File hashes

Hashes for pyre-check-nightly-0.0.101721733199.tar.gz
Algorithm Hash digest
SHA256 1746c938630b8c6e8868bde79bc1ad278f0b4e7234808656ed790bfd0e278d71
MD5 96149341b36629d19605884e763f485c
BLAKE2b-256 ea9fb33d947758b2a9f5aebd72db491d6fe974e116e05a00a7ef53bd4378d755

See more details on using hashes here.

File details

Details for the file pyre_check_nightly-0.0.101721733199-py3-none-manylinux1_x86_64.whl.

File metadata

File hashes

Hashes for pyre_check_nightly-0.0.101721733199-py3-none-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 42e09671c35107800499f024fc56b8a98be06b505ca84c1470957661ce87d64b
MD5 59698072e6b95761072a025506eb5570
BLAKE2b-256 623b3bea5cbd57ecca1b285b326b958c1fa84b23e47c3aa6eb53a54e987595cf

See more details on using hashes here.

File details

Details for the file pyre_check_nightly-0.0.101721733199-py3-none-macosx_10_11_x86_64.whl.

File metadata

File hashes

Hashes for pyre_check_nightly-0.0.101721733199-py3-none-macosx_10_11_x86_64.whl
Algorithm Hash digest
SHA256 984492f2b6c7bc553baedd55364d86f46515389b61c987b81e96c860f839f68c
MD5 c52a4dd7d1670199295dfc6bd0d30921
BLAKE2b-256 398354b86fabb53cf6ea4771f024b098779cf3e530027efd1de6e3341a902ba4

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page