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

Uploaded Source

Built Distributions

pyre_check_nightly-0.0.101728558809-py3-none-macosx_10_11_x86_64.whl (23.5 MB view details)

Uploaded Python 3 macOS 10.11+ x86-64

File details

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

File metadata

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

File hashes

Hashes for pyre-check-nightly-0.0.101728558809.tar.gz
Algorithm Hash digest
SHA256 377bc67cd10ea03697b4719ed72f63f4e2835a015e02aaf6590d2b2b38c5e8c7
MD5 fad12b2ce73349509bf3a0104774d633
BLAKE2b-256 bc685fcfedf868cb70e5390828d23b705d6eaea4e456e2dd3ad407d70cb23f7f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyre_check_nightly-0.0.101728558809-py3-none-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 1884cd73d96b26042a89ed2fd30be2d9357b2764987b71d30cc0c0ea773a86a4
MD5 32190508bde13ca1a4216e9dfaa36171
BLAKE2b-256 6ab20642d403cbbc096c8e3aef86aa8bdcd1dd60c387b831c36e5c1fbb26abfd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyre_check_nightly-0.0.101728558809-py3-none-macosx_10_11_x86_64.whl
Algorithm Hash digest
SHA256 a19426707eea454d899764ef4f76a7ef7876e5506b0511c6bf4b5c2cc8ab1e5e
MD5 52eb57c693911e3f32cc6761c4f6533f
BLAKE2b-256 61218d6c4c5d1e22e3959f24c6cd4440166ab6112ff10d36f6c20a6c729518aa

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