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

Uploaded Source

Built Distributions

pyre_check_nightly-0.0.101721301339-py3-none-macosx_10_11_x86_64.whl (23.2 MB view details)

Uploaded Python 3 macOS 10.11+ x86-64

File details

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

File metadata

  • Download URL: pyre-check-nightly-0.0.101721301339.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.101721301339.tar.gz
Algorithm Hash digest
SHA256 a84e89a073000f8164cc66eb5825afbcb480ed89ef6f49792d9da22acce82f61
MD5 5c96754f326ce4958d389e81a51b3143
BLAKE2b-256 b304a883d3a5c60a127ba3ecc7e3ad15f92f7191cd8aad2fd55f7deed7c25cdb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyre_check_nightly-0.0.101721301339-py3-none-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 fde75252b8bd0525107ff52e85fc8b267bb83e7d95cec116bfa6c5021bcd7005
MD5 d618da271f9a4b7feff7759e9559ae4f
BLAKE2b-256 9793f9ae4ddaee3b9f69ade97ae55d900025a7a7dbcd1636223438ea73557f23

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyre_check_nightly-0.0.101721301339-py3-none-macosx_10_11_x86_64.whl
Algorithm Hash digest
SHA256 7584522b52e791498c222496a3996bbe352759f6432bef341eb2015e80251d04
MD5 5712f89eb1b5f1e7d104403d6706e918
BLAKE2b-256 3a688a30d088d31dfe2a0aa5db0abe8785956ef517239c36a423a06bb93ce581

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