Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings
This repository was archived by the owner on Jan 15, 2025. It is now read-only.

Flake8 plugin for enforcing the rules of hooks for ReactPy

License

Notifications You must be signed in to change notification settings

reactive-python/reactpy-flake8

Repository files navigation

reactpy-flake8

A Flake8 plugin that enforces the "rules of hooks" for ReactPy.

The implementation is based on React's own ESLint plugin for hooks.

Install

pip install reactpy-flake8

Developer Installation

pip install -r requirements.txt
pip install -e .

Run the tests

nox -s test

Errors

Code Message
RPY100 Hook is defined as a closure
RPY101 Hook was used outside component or hook definition
RPY102 Hook was used inside a conditional or loop statement
RPY103 Hook was used after an early return
RPY200 A hook's dependency is not destructured - dependencies should be refered to directly, not via an attribute or key of an object
RPY201 Hook dependency args should be a literal list, tuple or None
RPY202 Hook dependency is not specified

Options

All options my be used as CLI flags where _ characters are replaced with -. For example, exhaustive_hook_deps would become --exhaustive-hook-deps.

Option Type Default Description
exhaustive_hook_deps Boolean False Enable REACTPY2** errors (recommended)
component_decorator_pattern Regex ^(component|[\w\.]+\.component)$ The pattern which should match the component decorators. Useful if you import the @component decorator under an alias.
hook_function_pattern Regex ^_*use_\w+$ The pattern which should match the name of hook functions. Best used if you have existing functions with use_* names that are not hooks.
Morty Proxy This is a proxified and sanitized view of the page, visit original site.