@@ 106-120 (lines=15) @@ | ||
103 | props] # 12 Annotation_Properties |
|
104 | return ntgpadobj._make(gpadvals) |
|
105 | ||
106 | @staticmethod |
|
107 | def _rd_fld_vals(name, val, set_list_ft=True, qty_min=0, qty_max=None): |
|
108 | """Further split a GPAD value within a single field.""" |
|
109 | if not val and qty_min == 0: |
|
110 | return [] if set_list_ft else set() |
|
111 | vals = val.split('|') # Use a pipe to separate entries |
|
112 | num_vals = len(vals) |
|
113 | assert num_vals >= qty_min, \ |
|
114 | "FLD({F}): MIN QUANTITY({Q}) WASN'T MET: {V}".format( |
|
115 | F=name, Q=qty_min, V=vals) |
|
116 | if qty_max is not None: |
|
117 | assert num_vals <= qty_max, \ |
|
118 | "FLD({F}): MAX QUANTITY({Q}) EXCEEDED: {V}".format( |
|
119 | F=name, Q=qty_max, V=vals) |
|
120 | return vals if set_list_ft else set(vals) |
|
121 | ||
122 | @staticmethod |
|
123 | def _get_taxon(taxon): |
@@ 229-241 (lines=13) @@ | ||
226 | gafvals.append(None) |
|
227 | return self.ntgafobj._make(gafvals) |
|
228 | ||
229 | @staticmethod |
|
230 | def _rd_fld_vals(name, val, set_list_ft=True, qty_min=0, qty_max=None): |
|
231 | """Further split a GAF value within a single field.""" |
|
232 | if not val and qty_min == 0: |
|
233 | return [] if set_list_ft else set() |
|
234 | vals = val.split('|') # Use a pipe to separate entries |
|
235 | num_vals = len(vals) |
|
236 | assert num_vals >= qty_min, \ |
|
237 | "FIELD({F}): MIN QUANTITY({Q}) WASN'T MET: {V}".format(F=name, Q=qty_min, V=vals) |
|
238 | if qty_max is not None: |
|
239 | assert num_vals <= qty_max, \ |
|
240 | "FIELD({F}): MAX QUANTITY({Q}) EXCEEDED: {V}".format(F=name, Q=qty_max, V=vals) |
|
241 | return vals if set_list_ft else set(vals) |
|
242 | ||
243 | def _chk_qualifier(self, qualifiers): |
|
244 | """Check that qualifiers are expected values.""" |