Skip to main content

A performant type checker for Python

Reason this release was yanked:

Linux distribution is broken for Pysa (`pyre analyze`)

Project description

lint tests pyre License: MIT

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 flows in Python applications. Please refer to our documentation to get started with our security analysis.

Requirements

To get started, you need Python 3.6 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-0.9.7.tar.gz (11.4 MB view details)

Uploaded Source

Built Distributions

pyre_check-0.9.7-py3-none-manylinux1_x86_64.whl (17.8 MB view details)

Uploaded Python 3

pyre_check-0.9.7-py3-none-macosx_10_11_x86_64.whl (12.3 MB view details)

Uploaded Python 3 macOS 10.11+ x86-64

File details

Details for the file pyre-check-0.9.7.tar.gz.

File metadata

  • Download URL: pyre-check-0.9.7.tar.gz
  • Upload date:
  • Size: 11.4 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.7.1 requests/2.25.1+fb6 setuptools/51.0.0 requests-toolbelt/0.8.0 tqdm/4.55.1 CPython/3.8.6

File hashes

Hashes for pyre-check-0.9.7.tar.gz
Algorithm Hash digest
SHA256 ada3d317129787183bb21e41cdc24fcd25641cadd407c7e83a8e28273a67357b
MD5 1ecd1658583e44ce650f79e1dff46f48
BLAKE2b-256 cdb9d9cac08e183d2f8f6625bc1bacd764a019cc273e17c908e560b2bc5383ca

See more details on using hashes here.

Provenance

File details

Details for the file pyre_check-0.9.7-py3-none-manylinux1_x86_64.whl.

File metadata

  • Download URL: pyre_check-0.9.7-py3-none-manylinux1_x86_64.whl
  • Upload date:
  • Size: 17.8 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.7.1 requests/2.25.1+fb6 setuptools/51.0.0 requests-toolbelt/0.8.0 tqdm/4.55.1 CPython/3.8.6

File hashes

Hashes for pyre_check-0.9.7-py3-none-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 4178fd706cdeda5b2a761dafa8e08c201c6d910a07a7f0e4972f2a796a3c890a
MD5 ef58e2989add655e75e5fe6e362d5c8c
BLAKE2b-256 79a12c619485dc6dd1a57dbd77830054e5ddfd09af7a0cb00459058fc099c0cc

See more details on using hashes here.

Provenance

File details

Details for the file pyre_check-0.9.7-py3-none-macosx_10_11_x86_64.whl.

File metadata

  • Download URL: pyre_check-0.9.7-py3-none-macosx_10_11_x86_64.whl
  • Upload date:
  • Size: 12.3 MB
  • Tags: Python 3, macOS 10.11+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.7.1 requests/2.25.1+fb6 setuptools/51.0.0 requests-toolbelt/0.8.0 tqdm/4.55.1 CPython/3.8.6

File hashes

Hashes for pyre_check-0.9.7-py3-none-macosx_10_11_x86_64.whl
Algorithm Hash digest
SHA256 238f5a6f5997c5356294396bd707e2fd2c5dd442c3718c1cfa71a4cf239f43e2
MD5 e11315de747aed07a8c0d6f9fefa9343
BLAKE2b-256 a4117d5c333b1a8de3a27e7e9ed80eac464d9897da03884b4d1355b97ae96aa9

See more details on using hashes here.

Provenance

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