-
Notifications
You must be signed in to change notification settings - Fork 385
Open
Labels
type: design 📐Relevant to code architectureRelevant to code architecturetype: enhancement ✨Features or aspects to improveFeatures or aspects to improve
Milestone
Description
What should we add?
Description
To improve readability and usability in the Qiskit codebase, we propose refactoring function signatures to clearly define positional-only, positional-or-keyword, and keyword-only arguments using the /
and *
symbols. Parameters before the slash will be strictly positional, while those after the asterisk will be keyword-only. This approach clarifies the API and aligns with Python standards, as in Scikit-learn.
We can start with function signatures and see which arguments should be made keyword-only or remain positional. Temporary lint disables may be necessary to prevent errors during the transition, as seen in #833.
Example from Pegasos QSVC
def __init__(
self,
quantum_kernel: BaseKernel | None = None,
C: float = 1.0,
num_steps: int = 1000,
precomputed: bool = False,
seed: int | None = None,
) -> None:
into
def __init__(
self,
quantum_kernel: BaseKernel | None = None,
*,
C: float = 1.0,
num_steps: int = 1000,
precomputed: bool = False,
seed: int | None = None,
) -> None:
Metadata
Metadata
Assignees
Labels
type: design 📐Relevant to code architectureRelevant to code architecturetype: enhancement ✨Features or aspects to improveFeatures or aspects to improve