Description:
Identify and fix one "paper cut" in the HyPyP API — small annoyances that frustrate users.
Context:
Paper cuts are minor issues that individually seem small but collectively degrade user experience. Examples: unclear error messages, confusing defaults, inconsistent naming.
Candidate paper cuts to investigate:
-
Unclear error messages
- Which functions throw cryptic errors?
- What information would help users debug?
-
Confusing defaults
- Are default parameters sensible for common use cases?
- Are defaults documented?
-
Inconsistent naming
compute_sync vs compute_freq_bands — consistent verbs?
- Parameter names consistent across functions?
-
Missing input validation
- What happens with wrong input shapes?
- Are errors caught early with helpful messages?
Tasks:
Acceptance Criteria:
Example fix:
# Before: cryptic error
def compute_sync(data, metric):
result = _compute(data) # Crashes deep in code with IndexError
# After: helpful error
def compute_sync(data, metric):
if len(data) != 2:
raise ValueError(
f"Expected data for 2 participants, got {len(data)}. "
"Data should be a list of two arrays: [participant1, participant2]"
)
result = _compute(data)
Description:
Identify and fix one "paper cut" in the HyPyP API — small annoyances that frustrate users.
Context:
Paper cuts are minor issues that individually seem small but collectively degrade user experience. Examples: unclear error messages, confusing defaults, inconsistent naming.
Candidate paper cuts to investigate:
Unclear error messages
Confusing defaults
Inconsistent naming
compute_syncvscompute_freq_bands— consistent verbs?Missing input validation
Tasks:
Acceptance Criteria:
Example fix: