Settings Reference¶
All BetterPy features can be toggled in Settings → Tools → BetterPy. This page lists every feature organized by settings group.
Typing & Type Hints¶
| Feature | Maturity | Description |
|---|---|---|
| Copy method annotations from parent | Incubating | Copies type annotations from a parent method to its overrides |
| Missing |None annotation inspection | Incubating | Adds a quickfix for PyCharm's missing | None annotation inspection |
| NewType/TypeVar/ParamSpec reference & rename | Stable | Adds references for NewType/TypeVar/ParamSpec name literals, keeps the name string in sync on rename, and repairs manual NewType drift |
| Overridden method missing type annotations inspection | Incubating | Reports overrides missing type annotations present in parent methods |
| Strip signature type annotations | Stable | Removes type annotations from a function signature |
Refactoring & Code Transformations¶
| Feature | Maturity | Description |
|---|---|---|
| Change visibility | Stable | Toggles a Python symbol between public and private naming |
| Dict access conversion | Incubating | Converts between dict bracket access and .get() method calls |
| Make parameter mandatory | Incubating | Converts an optional parameter to a required one by removing the default value |
| Make parameter optional | Incubating | Converts a required parameter to an optional one with a default value |
| Parameter object MCP tool | Stable | Enables MCP (Model Context Protocol) tools for parameter object refactoring |
| Parameter object refactoring | Incubating | Enables introduce/inline parameter object refactoring actions |
| Toggle enum member value | Stable | Toggles enum member references with their literal values |
| Top-level extract function | Incubating | Extracts top-level Python statements into a function with parameters and explicit return values instead of globals |
Testing (Pytest)¶
| Feature | Maturity | Description |
|---|---|---|
| @pytest.mark.usefixtures on fixture is a no-op inspection | Incubating | Reports @pytest.mark.usefixtures decorators on fixture functions, where they have no effect — pytest only honours usefixtures on test functions |
| Convert pytest.param | Incubating | Converts between different pytest parameter formats |
| Copy pytest node ID from editor | Incubating | Copies the pytest node ID for the test at the caret position |
| Copy pytest node IDs | Incubating | Copies pytest node IDs for selected tests to the clipboard |
| Fixture Editor Integration | Incubating | Enables fixture navigation, completion, definition searches, find usages, rename, and override support in the editor |
| Fixture Injection Intentions | Incubating | Intentions for converting between fixture parameters and @pytest.mark.usefixtures |
| Fixture annotation mismatch inspection | Incubating | Reports test or fixture parameters whose explicit type annotation is incompatible with the value type provided by the resolved fixture |
| Jump to pytest node in test tree | Incubating | Navigates to the corresponding node in the test tree view |
| New pytest members | Incubating | Adds Generate menu actions for new pytest tests and fixtures |
| Parametrize pytest test | Incubating | Converts a test function to use @pytest.mark.parametrize |
| Pytest failed line inspection | Incubating | Marks the line where a pytest test failed |
| Pytest fixture direct import inspection | Incubating | Reports pytest fixture functions imported directly into conftest.py — prefer pytest_plugins for explicit scoping |
| Pytest fixture documentation | Stable | Enhances Quick Documentation and member type inference for pytest fixtures across files |
| Pytest fixture override contract inspection | Incubating | Reports fixture overrides whose produced value type is incompatible with the parent fixture |
| Pytest fixture scope inspection | Incubating | Reports fixtures that narrow the scope compared to parent fixtures |
| Pytest fixture uninjected reference inspection | Incubating | Reports fixture references inside tests/fixtures that are not declared as parameters |
| Pytest hooks | Incubating | Generates pytest hook stubs where pytest discovers them and adds navigation and F1 documentation |
| Pytest identifier in Search Everywhere | Incubating | Includes pytest identifiers in Search Everywhere results |
| Pytest parametrized case run gutter icon | Incubating | Shows run gutter icons for individual pytest parametrized cases when each case is on its own line |
| Pytest redundant fixture import inspection | Incubating | Reports explicitly imported pytest fixtures that are already auto-discoverable via conftest or plugins. |
| Run pytest with debug logging | Incubating | Duplicates the selected pytest run configuration with debug logging flags for the chosen test tree node |
| Surround with pytest.raises() | Incubating | Wraps a statement with pytest.raises() in test contexts |
| Toggle pytest skip | Incubating | Adds or removes @pytest.mark.skip decorator from a test |
| Toggle pytest skip from test tree | Incubating | Adds or removes @pytest.mark.skip from the test tree context menu |
| Unknown dynamic pytest fixture inspection | Incubating | Reports string-based fixture requests (usefixtures, getfixturevalue, indirect parametrize) that do not resolve to any visible fixture |
| Unused pytest fixture inspection | Incubating | Reports pytest fixture functions that are never used as a parameter in any test or other fixture in the project, and offers a safe-delete quick fix |
| Use actual test outcome | Incubating | Replaces assertion expected values with the actual value from the last failed test run |
| pytest_plugins in non-root conftest inspection | Incubating | Reports pytest_plugins assignments that appear in a non-root conftest.py file, where they have no effect |
| request.param without params inspection | Incubating | Reports pytest fixtures that read request.param but declare no params= and are not the target of any indirect parametrization |
Imports & Module Boundaries¶
| Feature | Maturity | Description |
|---|---|---|
| Export symbol to target | Stable | Exports a symbol to a specified target module's all |
Navigation & Discovery¶
| Feature | Maturity | Description |
|---|---|---|
| Class implementations code vision | Incubating | Shows an inline code vision hint above each Python class with the number of implementations (subclasses) and lets you navigate to them |
| Module assignment usages code vision | Incubating | Shows an inline code vision hint above each module-level assignment with the number of project-scope usages and lets you navigate to them |
| Property usages code vision | Incubating | Shows an inline code vision hint above each Python property with the number of project-scope usages and lets you navigate to them |
| Return path highlighting | Incubating | Highlights explicit return statements when the caret is on a function return annotation |
Code Quality & Safety¶
| Feature | Maturity | Description |
|---|---|---|
| Constant should be Final inspection | Stable | Reports module-level constants that should be annotated with Final |
| Private module import inspection | Stable | Reports private-module imports that should use public package exports |
| Shadowing stdlib module inspection | Stable | Reports project modules that shadow Python standard library modules |
| Suppress missing docstrings on overloads | Incubating | Suppresses PyCharm's missing docstring inspection for typing overload signatures. |
| Usage filtering | Stable | Adds Find Usages filters for type annotations and test-source references |
Productivity Actions¶
| Feature | Maturity | Description |
|---|---|---|
| Attribute Docstring in Quick Documentation | Stable | Retired attribute docstring rendering now provided natively by PyCharm. |
| Copy with imports | Incubating | Copies selected Python code together with the import statements referenced by that selection |
| Docstring Example Rendering | Incubating | Renders doctests and fenced Python examples in Quick Documentation docstrings. |
| Generate class actions | Stable | Adds Generate menu actions for test classes, dataclasses, frozen dataclasses, and pydantic models |
| Inherited Attribute Documentation | Incubating | Shows an ancestor attribute's docstring when an overriding class attribute has no local documentation. |
IDE Customization¶
| Feature | Maturity | Description |
|---|---|---|
| Enhanced Go to Implementation presentation | Stable | Prepends class name to method name in Go to Implementation popup when names are identical |
| Message console filter | Stable | Filters and formats Python messages in the console |
| Python navigation bar | Stable | Enables enhanced Python navigation bar with module path display |
| Structural Search Profile (Python) | Incubating | Adds a Python Structural Search profile integration for pattern matching and constraints |
| Test/Production editor tabs | Incubating | Keeps test and production files in separate editor splits with configurable alignment |