Source code for irksome.labeling
from firedrake.fml import Label, keep, drop, LabelledForm
explicit = Label("explicit")
[docs]
def split_explicit(F):
if not isinstance(F, LabelledForm):
return (F, None)
exp_part = F.label_map(lambda t: t.has_label(explicit),
map_if_true=keep,
map_if_false=drop)
imp_part = F.label_map(lambda t: t.labels == {},
map_if_true=keep, map_if_false=drop)
return imp_part.form, exp_part.form