[](https://github.com/facebook/pyre-check/actions/workflows/tests.yml)
[](https://opensource.org/licenses/MIT)
[](https://gitter.im/pyre-check/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)
<p align="center">
<img src="https://raw.githubusercontent.com/facebook/pyre-check/main/logo.png">
</p>
Pyre is a performant type checker for Python compliant with [PEP 484](https://www.python.org/dev/peps/pep-0484/). 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](https://pyre-check.org/play).
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](https://pyre-check.org/docs/pysa-quickstart) to get started with our security analysis.
Pysa is also available on the [GitHub Marketplace as a Github Action](https://github.com/marketplace/actions/pysa-action)
## Requirements
To get started, you need [Python 3.8 or later](https://www.python.org/getit/) and [watchman](https://facebook.github.io/watchman/) working on your system. On *MacOS* you can get everything with [homebrew](https://brew.sh/):
```bash
$ brew install python3 watchman
```
On *Ubuntu*, *Mint*, or *Debian*; use `apt-get` and [homebrew](https://brew.sh/):
```bash
$ 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:
```bash
$ 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:
```bash
(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:
```bash
(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](CONTRIBUTING.md) for how to help out.
## License
Pyre is licensed under the MIT license.
Raw data
{
"_id": null,
"home_page": "https://pyre-check.org/",
"name": "pyre-check-nightly",
"maintainer": "Facebook",
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": "pyre@fb.com",
"keywords": "typechecker development",
"author": "Facebook",
"author_email": "pyre@fb.com",
"download_url": "https://files.pythonhosted.org/packages/63/33/c9b0bd6b54f64fff006ac597602d5d09f9584f6a87f1248309b5ea8c1c11/pyre-check-nightly-0.0.101740917552.tar.gz",
"platform": null,
"description": "[](https://github.com/facebook/pyre-check/actions/workflows/tests.yml)\n[](https://opensource.org/licenses/MIT)\n[](https://gitter.im/pyre-check/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)\n\n<p align=\"center\">\n <img src=\"https://raw.githubusercontent.com/facebook/pyre-check/main/logo.png\">\n</p>\n\nPyre is a performant type checker for Python compliant with [PEP 484](https://www.python.org/dev/peps/pep-0484/). Pyre can analyze codebases with millions of lines of code incrementally \u2013 providing instantaneous feedback to developers as they write code. You can try it out on examples in [the Pyre Playground](https://pyre-check.org/play).\n\nPyre 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](https://pyre-check.org/docs/pysa-quickstart) to get started with our security analysis.\n\nPysa is also available on the [GitHub Marketplace as a Github Action](https://github.com/marketplace/actions/pysa-action)\n\n## Requirements\nTo get started, you need [Python 3.8 or later](https://www.python.org/getit/) and [watchman](https://facebook.github.io/watchman/) working on your system. On *MacOS* you can get everything with [homebrew](https://brew.sh/):\n```bash\n$ brew install python3 watchman\n```\nOn *Ubuntu*, *Mint*, or *Debian*; use `apt-get` and [homebrew](https://brew.sh/):\n```bash\n$ sudo apt-get install python3 python3-pip python3-venv\n$ brew install watchman\n```\nWe tested Pyre on *Ubuntu 18.04.5 LTS*, *CentOS 7*, as well as *OSX 10.11* and later.\n\n## Setting up a Project\nWe start by creating an empty project directory and setting up a virtual environment:\n\n```bash\n$ mkdir my_project && cd my_project\n$ python3 -m venv ~/.venvs/venv\n$ source ~/.venvs/venv/bin/activate\n(venv) $ pip install pyre-check\n```\n\nNext, we teach Pyre about our new project:\n```bash\n(venv) $ pyre init\n```\nThis 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 \u2013 you can change them later if necessary.\n\n## Running Pyre\nWe are now ready to run Pyre:\n```bash\n(venv) $ echo \"i: int = 'string'\" > test.py\n(venv) $ pyre\n \u019b Found 1 type error!\ntest.py:1:0 Incompatible variable type [9]: i is declared to have type `int` but is used as type `str`.\n```\nThis first invocation will start a daemon listening for filesystem changes \u2013\u00a0type 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.\n\nFor more detailed documentation, see https://pyre-check.org.\n\n## Join the Pyre community\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md) for how to help out.\n\n## License\n\nPyre is licensed under the MIT license.\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "A performant type checker for Python",
"version": "0.0.101740917552",
"project_urls": {
"Download": "https://github.com/facebook/pyre-check",
"Homepage": "https://pyre-check.org/"
},
"split_keywords": [
"typechecker",
"development"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "953abea358febc4f43550860d5a24b977769faba1d93257a2ebaf83b4af92609",
"md5": "1cce5a0f4461fda1a0db6ee32ffce4a6",
"sha256": "71354a5d003445c23e1690a0982597398c1d1afa14ebeb38abb96c7a0b8ebbde"
},
"downloads": -1,
"filename": "pyre_check_nightly-0.0.101740917552-py3-none-macosx_10_11_x86_64.whl",
"has_sig": false,
"md5_digest": "1cce5a0f4461fda1a0db6ee32ffce4a6",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 21786409,
"upload_time": "2025-03-02T12:40:16",
"upload_time_iso_8601": "2025-03-02T12:40:16.720765Z",
"url": "https://files.pythonhosted.org/packages/95/3a/bea358febc4f43550860d5a24b977769faba1d93257a2ebaf83b4af92609/pyre_check_nightly-0.0.101740917552-py3-none-macosx_10_11_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "54da040d9097d5e122f5f63fa19395a00c3e5368b8881860a859b95a084468de",
"md5": "dbdb8736019f1afc67858fa2d5795304",
"sha256": "2d62acb1997535afac03d62e460415b04c3834ab15c9bd8be6a02362d9c29672"
},
"downloads": -1,
"filename": "pyre_check_nightly-0.0.101740917552-py3-none-manylinux1_x86_64.whl",
"has_sig": false,
"md5_digest": "dbdb8736019f1afc67858fa2d5795304",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 45157426,
"upload_time": "2025-03-02T12:40:08",
"upload_time_iso_8601": "2025-03-02T12:40:08.902149Z",
"url": "https://files.pythonhosted.org/packages/54/da/040d9097d5e122f5f63fa19395a00c3e5368b8881860a859b95a084468de/pyre_check_nightly-0.0.101740917552-py3-none-manylinux1_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "6333c9b0bd6b54f64fff006ac597602d5d09f9584f6a87f1248309b5ea8c1c11",
"md5": "d9870f4f464555512edec65a78e1b04c",
"sha256": "2d68b3fc2e396f7fa195021b242f3363a6324180bb2da327d85af25acc379318"
},
"downloads": -1,
"filename": "pyre-check-nightly-0.0.101740917552.tar.gz",
"has_sig": false,
"md5_digest": "d9870f4f464555512edec65a78e1b04c",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 21045204,
"upload_time": "2025-03-02T12:40:21",
"upload_time_iso_8601": "2025-03-02T12:40:21.952911Z",
"url": "https://files.pythonhosted.org/packages/63/33/c9b0bd6b54f64fff006ac597602d5d09f9584f6a87f1248309b5ea8c1c11/pyre-check-nightly-0.0.101740917552.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-03-02 12:40:21",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "facebook",
"github_project": "pyre-check",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [
{
"name": "click",
"specs": [
[
">=",
"8.0"
]
]
},
{
"name": "dataclasses-json",
"specs": [
[
"==",
"0.5.7"
]
]
},
{
"name": "libcst",
"specs": []
},
{
"name": "psutil",
"specs": []
},
{
"name": "pyre-extensions",
"specs": [
[
">=",
"0.0.29"
]
]
},
{
"name": "tabulate",
"specs": []
},
{
"name": "testslide",
"specs": [
[
">=",
"2.7.0"
]
]
},
{
"name": "typing_extensions",
"specs": []
},
{
"name": "typing_inspect",
"specs": []
},
{
"name": "tomli",
"specs": []
},
{
"name": "tomli-w",
"specs": []
}
],
"lcname": "pyre-check-nightly"
}