From a8951d508363cc3c09b42b10a59f60f43dab45cf Mon Sep 17 00:00:00 2001 From: Erin McAuley Date: Mon, 7 Oct 2024 12:21:14 -0400 Subject: [PATCH] style: update docstrings, include pragma no cover statement --- prymer/primer3/primer3.py | 2 +- prymer/primer3/primer3_input.py | 18 +++++++++++++++++- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/prymer/primer3/primer3.py b/prymer/primer3/primer3.py index 5addb1b..e1d62e4 100644 --- a/prymer/primer3/primer3.py +++ b/prymer/primer3/primer3.py @@ -383,7 +383,7 @@ def design(self, design_input: Primer3Input) -> Primer3Result: # noqa: C901 min_primer_length=design_input.primer_and_amplicon_params.min_primer_length, ) case _ as unreachable: - assert_never(unreachable) + assert_never(unreachable) # pragma: no cover soft_masked, hard_masked = self.get_design_sequences(design_region) global_primer3_params = { diff --git a/prymer/primer3/primer3_input.py b/prymer/primer3/primer3_input.py index aca2f6a..a79e18b 100644 --- a/prymer/primer3/primer3_input.py +++ b/prymer/primer3/primer3_input.py @@ -105,7 +105,23 @@ @dataclass(frozen=True, init=True, slots=True) class Primer3Input: """Assembles necessary inputs for Primer3 to orchestrate primer, primer pair, and/or internal - probe design.""" + probe design. + + At least one set of design parameters (either `PrimerAndAmpliconParameters` + or `ProbeParameters`) must be specified. + + If `PrimerAndAmpliconParameters` is provided but `PrimerAndAmpliconWeights` is not provided, + default `PrimerAndAmpliconWeights` will be used. + + Similarly, if `ProbeParameters` is provided but `ProbeWeights` is not provided, default + `ProbeWeights` will be used. + + Please see primer3_parameters.py for details on the defaults. + + + Raises: + ValueError: if neither the primer or probe parameters are specified + """ target: Span task: Primer3TaskType