validate multi targets that defined between parentheses()
(self, targets)
| 2100 | return has_baseline, final_targets, extra_flags |
| 2101 | |
| 2102 | def _parse_multi_target(self, targets): |
| 2103 | """validate multi targets that defined between parentheses()""" |
| 2104 | # remove any implied features and keep the origins |
| 2105 | if not targets: |
| 2106 | self.dist_fatal("empty multi-target '()'") |
| 2107 | if not all([ |
| 2108 | self.feature_is_exist(tar) for tar in targets |
| 2109 | ]) : |
| 2110 | self.dist_fatal("invalid target name in multi-target", targets) |
| 2111 | if not all([ |
| 2112 | ( |
| 2113 | tar in self.parse_baseline_names or |
| 2114 | tar in self.parse_dispatch_names |
| 2115 | ) |
| 2116 | for tar in targets |
| 2117 | ]) : |
| 2118 | return None |
| 2119 | targets = self.feature_ahead(targets) |
| 2120 | if not targets: |
| 2121 | return None |
| 2122 | # force sort multi targets, so it can be comparable |
| 2123 | targets = self.feature_sorted(targets) |
| 2124 | targets = tuple(targets) # hashable |
| 2125 | return targets |
| 2126 | |
| 2127 | def _parse_policy_not_keepbase(self, has_baseline, final_targets, extra_flags): |
| 2128 | """skip all baseline features""" |
no test coverage detected