Skip to main content

A performant type checker for Python

Project description

lint tests 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 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:

$ sudo apt-get install python3 python3-pip watchman

We tested Pyre on Ubuntu 16.04 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

This version

0.9.0

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.0.tar.gz (14.6 MB view details)

Uploaded Source

Built Distributions

pyre_check-0.9.0-py3-none-manylinux1_x86_64.whl (23.5 MB view details)

Uploaded Python 3

pyre_check-0.9.0-py3-none-macosx_10_11_x86_64.whl (15.4 MB view details)

Uploaded Python 3 macOS 10.11+ x86-64

File details

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

File metadata

  • Download URL: pyre-check-0.9.0.tar.gz
  • Upload date:
  • Size: 14.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.6.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.0.tar.gz
Algorithm Hash digest
SHA256 57a95ff958a5a5bb5f52eafd0cd5967d2605767eff912709d0a6aedcd9fa149b
MD5 bc007bcec73401a51c2d694df99c3db2
BLAKE2b-256 19fda90d8c71c70bfd45ce68115cd9f89bf56231ea871d3c1b2113a47b2940f8

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: pyre_check-0.9.0-py3-none-manylinux1_x86_64.whl
  • Upload date:
  • Size: 23.5 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.6.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.0-py3-none-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 631905b268f21722c438196d95c73f8e17561ddec9ac95940374a338769a9a98
MD5 b68bd58eb1da3c4ef64f305246a2a181
BLAKE2b-256 15ace7e3c9d1285dc6e6d0ce5fdb2733dca13ed82f3bf753edbee042f55c35ff

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: pyre_check-0.9.0-py3-none-macosx_10_11_x86_64.whl
  • Upload date:
  • Size: 15.4 MB
  • Tags: Python 3, macOS 10.11+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.6.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.0-py3-none-macosx_10_11_x86_64.whl
Algorithm Hash digest
SHA256 b4e31d725eed9eb4b7a7b122edd82438c07679c6282846c477a1ef4f98dd33c8
MD5 19771711aa240c50ec8a4505992792d0
BLAKE2b-256 6215f0789d26c71b9010f6a37bd46c40982c5f601c7be772c42b404a8304571e

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