A Flake8 plugin that enforces the "rules of hooks" for ReactPy.
The implementation is based on React's own ESLint plugin for hooks.
pip install reactpy-flake8
pip install -r requirements.txt
pip install -e .
Run the tests
nox -s test
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 |
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.
|