1"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[581],{35610:e=>{e.exports=JSON.parse('{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"pyre":[{"type":"link","label":"Getting Started","href":"/docs/getting-started","docId":"getting-started"},{"type":"link","label":"Installation","href":"/docs/installation","docId":"installation"},{"type":"category","label":"Types in Python","collapsed":false,"items":[{"type":"link","label":"Introduction","href":"/docs/types-in-python","docId":"types-in-python"},{"type":"link","label":"Type Errors","href":"/docs/errors","docId":"errors"}],"collapsible":true,"href":"/docs/category/types-in-python"},{"type":"category","label":"Type Checker Features","collapsed":false,"items":[{"type":"link","label":"Configuration","href":"/docs/configuration","docId":"configuration"},{"type":"link","label":"Querying Pyre","href":"/docs/querying-pyre","docId":"querying-pyre"},{"type":"link","label":"Pyre-Exclusive Features","href":"/docs/features","docId":"features"}],"collapsible":true,"href":"/docs/category/type-checker-features"},{"type":"category","label":"Integrations","collapsed":false,"items":[{"type":"link","label":"Editor Integration","href":"/docs/editor-integration","docId":"editor-integration"}],"collapsible":true,"href":"/docs/category/integrations"},{"type":"link","label":"Contributing","href":"https://github.com/facebook/pyre-check/blob/main/CONTRIBUTING.md"},{"type":"link","label":"FAQ","href":"/docs/pyre-faq","docId":"pyre-faq"}],"pysa":[{"type":"link","label":"Quickstart","href":"/docs/pysa-quickstart","docId":"pysa-quickstart"},{"type":"category","label":"How Pysa Works","items":[{"type":"link","label":"Overview","href":"/docs/pysa-basics","docId":"pysa-basics"},{"type":"link","label":"Feature Annotations","href":"/docs/pysa-features","docId":"pysa-features"},{"type":"link","label":"Advanced Topics","href":"/docs/pysa-advanced","docId":"pysa-advanced"},{"type":"link","label":"Implementation Details","href":"/docs/pysa-implementation-details","docId":"pysa-implementation-details"}],"collapsed":true,"collapsible":true},{"type":"link","label":"Running Pysa","href":"/docs/pysa-running","docId":"pysa-running"},{"type":"link","label":"Shipping Pysa Models and Rules","href":"/docs/pysa-shipping-rules-models","docId":"pysa-shipping-rules-models"},{"type":"category","label":"Scaling Beyond Individual Models","items":[{"type":"link","label":"Dynamically Generating Models","href":"/docs/pysa-model-generators","docId":"pysa-model-generators"},{"type":"link","label":"Model DSL","href":"/docs/pysa-model-dsl","docId":"pysa-model-dsl"}],"collapsed":true,"collapsible":true},{"type":"category","label":"User Docs","collapsed":false,"items":[{"type":"link","label":"Debugging False Positives and False Negatives","href":"/docs/pysa-false-positives-negatives","docId":"pysa-false-positives-negatives"},{"type":"link","label":"Exploring Taint Models Interactively","href":"/docs/pysa-explore","docId":"pysa-explore"},{"type":"link","label":"Coverage Increasing Strategies","href":"/docs/pysa-coverage","docId":"pysa-coverage"},{"type":"link","label":"General Tips","href":"/docs/pysa-tips","docId":"pysa-tips"}],"collapsible":true,"href":"/docs/category/user-docs"},{"type":"link","label":"Static Analysis Processor","href":"/docs/static-analysis-post-processor","docId":"static-analysis-post-processor"},{"type":"category","label":"Warning Codes","items":[{"type":"link","label":"Overview","href":"/docs/warning_codes/overview-public","docId":"warning_codes/overview-public"},{"type":"link","label":"5001 - Code Injection","href":"/docs/warning_codes/code-5001-public","docId":"warning_codes/code-5001-public"},{"type":"link","label":"6065 - Commandline arguments injection","href":"/docs/warning_codes/code-6065-public","docId":"warning_codes/code-6065-public"}],"collapsed":true,"collapsible":true},{"type":"link","label":"Additional Resources","href":"/docs/pysa-additional-resources","docId":"pysa-additional-resources"}]},"docs":{"configuration":{"id":"configuration","title":"Pyre Configuration","description":"Pyre can be run without a configuration (see Command Line Arguments) but we do recommend that you create a configuration (see Getting Started) and commit that to your version control system to make sure everyone working on your project is using the same settings.","sidebar":"pyre"},"editor-integration":{"id":"editor-integration","title":"Editor Integration","description":"","sidebar":"pyre"},"errors":{"id":"errors","title":"Type Errors","description":"Common Issues","sidebar":"pyre"},"features":{"id":"features","title":"Pyre-Exclusive Features","description":"Pyre has custom support for Python idioms that would otherwise not be supported by the usual type annotations.","sidebar":"pyre"},"getting-started":{"id":"getting-started","title":"Getting Started with Pyre","description":"Welcome to the wonderful world of static typing! This guide will get you from zero to a simple project that is type checked with Pyre.","sidebar":"pyre"},"installation":{"id":"installation","title":"Installation","description":"We recommend that you use our binary distribution through pypi inside of a virtual environment, which supports both MacOs and Linux. On Windows we have successfully gotten pyre to work through WSL, but do not officially support it.","sidebar":"pyre"},"overview":{"id":"overview","title":"Overview","description":"const Home = () => {"},"pyre-faq":{"id":"pyre-faq","title":"FAQ & Troubleshooting","description":"WIP","sidebar":"pyre"}
1,"pysa_filtering":{"id":"pysa_filtering","title":"pysa_filtering","description":""},"pysa-additional-resources":{"id":"pysa-additional-resources","title":"Additional Resources","description":"Public Talks","sidebar":"pysa"},"pysa-advanced":{"id":"pysa-advanced","title":"Advanced Topics","description":"This page documents more advanced bits of Pysa.","sidebar":"pysa"},"pysa-basics":{"id":"pysa-basics","title":"Pysa (Static Analysis for Security)","description":"Pyre has applications beyond type checking python code: it can also run static","sidebar":"pysa"},"pysa-coverage":{"id":"pysa-coverage","title":"Coverage Increasing Strategies","description":"Pysa relies on good type information and compete models in order to accurately analyze code. This page describes a number of strategies for increasing typing and model coverage to help Pysa. These strategies can be used once, with the results committed to your repository, or run as an ephemeral step in your analysis process prior to running pyre analyze.","sidebar":"pysa"},"pysa-explore":{"id":"pysa-explore","title":"Exploring Taint Models Interactively","description":"Overview","sidebar":"pysa"},"pysa-false-positives-negatives":{"id":"pysa-false-positives-negatives","title":"Debugging False Positives and False Negatives","description":"False Positives occur when Pysa finds an issue that is not valid, either","sidebar":"pysa"},"pysa-features":{"id":"pysa-features","title":"Feature Annotations","description":"Features (sometimes called breadcrumbs) are additional metadata that are","sidebar":"pysa"},"pysa-implementation-details":{"id":"pysa-implementation-details","title":"Implementation Details","description":"This page covers how Pysa actually tracks the flow of tainted data from source","sidebar":"pysa"},"pysa-model-dsl":{"id":"pysa-model-dsl","title":"Model Domain Specific Language (DSL)","description":"We have started developing a model Domain Specific Language (DSL) that can be","sidebar":"pysa"},"pysa-model-generators":{"id":"pysa-model-generators","title":"Dynamically Generating Models","description":"Some sources and sinks may be too numerous or too rapidly changing for defining","sidebar":"pysa"},"pysa-quickstart":{"id":"pysa-quickstart","title":"Quickstart","description":"Quickstart guide to get Pysa and SAPP running on your project","sidebar":"pysa"},"pysa-running":{"id":"pysa-running","title":"Running Pysa","description":"This page walks you through the basics of running Pysa. If you want exercises to","sidebar":"pysa"},"pysa-shipping-rules-models":{"id":"pysa-shipping-rules-models","title":"Shipping Pysa Models and Rules","description":"We welcome contributions and coverage improvements for Pysa! This page walks you through the basics of adding new models or rules, and testing your changes.","sidebar":"pysa"},"pysa-tips":{"id":"pysa-tips","title":"General Tips","description":"Features/Limitations","sidebar":"pysa"},"querying-pyre":{"id":"querying-pyre","title":"Querying Pyre","description":"These interfaces are considered legacy code by our team. They are far from production-ready, will receive minimal maintenance effort in the short to medium term (for Pysa only) and will eventually be removed in the long term. It is ok if you want to rely on them for debugging or manual triaging purpose. But we would strongly discourage relying on them to build any automation or product on top.","sidebar":"pyre"},"static-analysis-post-processor":{"id":"static-analysis-post-processor","title":"Static Analysis Post Processor","description":"The pyre analyze command runs static analysis and outputs the result as JSON.","sidebar":"pysa"},"types-in-python":{"id":"types-in-python","title":"Types in Python","description":"Python\'s type system was specified in PEP 484. If you are new to Python\'s type system and want to learn the basics, we highly recommend you take a look at mypy\'s cheatsheet as well as their type system reference. The following discussion focuses on Pyre\'s approach to \\"gradual typing\\" and how you can get from an untyped codebase to a fully typed codebase.","sidebar":"pyre"},"warning_codes/code-5001-public":{"id":"warning_codes/code-5001-public","title":"5001 - Code Injection","description":"TL;DR","sidebar":"pysa"},"warning_codes/code-6065-public":{"id":"warning_codes/code-6065-public","title":"606
15 - Commandline arguments injection","description":"TL;DR","sidebar":"pysa"},"warning_codes/overview-public":{"id":"warning_codes/overview-public","title":"Overview","description":"Pysa tracks data flows from a set of sources to sinks. Each set of sources we track to sinks is assigned a unique code. When Pysa finds a flow, it emits issues associated with the unique code. This section of the website contains documentation for the warning codes we emit.","sidebar":"pysa"}}}')}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.