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