Skip to main content

A performant type checker for Python

Project description

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.

Read this in other languages: Español

Requirements

You need a working Python 3.6 or later environment to run Pyre. We highly recommend that you install watchman to get the most out of Pyre but it's not strictly necessary. On MacOS you can get everything with homebrew:

$ brew install python3 watchman

In Ubuntu, Mint and Debian you can install Python 3 like this:

$ 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.

Getting Started

These instructions assume you're working with a virtual environment set up inside of your project directory as follows.

$ cd your_project
$ python3 -m venv venv
(venv) $ pip install pyre-check

We now need to tell Pyre what to check by running

(venv) $ pyre init

By default, this command will set up a configuration for Pyre (.pyre_configuration) as well as watchman (.watchmanconfig) in your project's directory.

Note that if you do have your virtual environment inside your project directory you will want to tell Pyre not to check the contents of it by adding the following line to your .pyre_configuration file:

"ignore_all_errors": [
  "<absolute path to the virtual environment>"
],

If you're using watchman, you need to make sure we have watchman listening to file changes in your project directory:

(venv) $ touch .watchmanconfig

We are now ready to start 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`.

Note that the first invocation initializes Pyre's server that handles incremental updates and will be slower than subsequent invocations – you can easily see this by invoking pyre again and observe the same result instantaneously.

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

Uploaded Source

Built Distributions

pyre_check-0.0.50-py3-none-macosx_10_11_x86_64.whl (15.7 MB view details)

Uploaded Python 3 macOS 10.11+ x86-64

File details

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

File metadata

  • Download URL: pyre-check-0.0.50.tar.gz
  • Upload date:
  • Size: 14.9 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.4.2 requests/2.24.1+fb1 setuptools/46.0.0 requests-toolbelt/0.8.0 tqdm/4.43.0 CPython/3.7.5+

File hashes

Hashes for pyre-check-0.0.50.tar.gz
Algorithm Hash digest
SHA256 592193ba93ecb5e2a0911f3adff962a8f6ca72e7dd647232fe627aa3ca7dae76
MD5 d9f7473296bcfe2e76bfeb4ccbd60395
BLAKE2b-256 7b7a93ca459c3d7e74fe5d1708246dbb334c0f240d39ffe98d72ef57ad684d8b

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: pyre_check-0.0.50-py3-none-manylinux1_x86_64.whl
  • Upload date:
  • Size: 22.9 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.4.2 requests/2.24.1+fb1 setuptools/46.0.0 requests-toolbelt/0.8.0 tqdm/4.43.0 CPython/3.7.5+

File hashes

Hashes for pyre_check-0.0.50-py3-none-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 2ffa8252d0dff2e5dfa44dabe9c74e0f79ed0770a347561e70c89ae2f570e59c
MD5 3760324a7ffb94e5d011416c1fe651b9
BLAKE2b-256 4e4071205a8c5ea5fc1b9e9a20ad4cb544ecf6a738f6e3e379132489e3e25ccf

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: pyre_check-0.0.50-py3-none-macosx_10_11_x86_64.whl
  • Upload date:
  • Size: 15.7 MB
  • Tags: Python 3, macOS 10.11+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.4.2 requests/2.24.1+fb1 setuptools/46.0.0 requests-toolbelt/0.8.0 tqdm/4.43.0 CPython/3.7.5+

File hashes

Hashes for pyre_check-0.0.50-py3-none-macosx_10_11_x86_64.whl
Algorithm Hash digest
SHA256 6dcab6544ae33e9488ac223f6d5b75543fcb8a70dc10a75fa377466ab362e93d
MD5 6e769f0a73ab1770a73fa479dac5d37d
BLAKE2b-256 0c9af3deb4359c622fce89686f615806f0bfeeec1f70f5ff88a6ed2026cf5ad8

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