We have an issue currently. The following YAML piece just ignores the Excluded key.
SectionHeaderTable: Sections: [] Excluded: - Name: .foo
Currently the meaning is: exclude the whole table.
The code checks that the Sections key is empty and doesn't catch/check
invalid/duplicated/missed Excluded entries.
Also there is no way to exclude all sections except the first null section,
because Sections: [] currently just excludes the whole the sections header table.
To fix it, I suggest a change of the behavior.
- A new NoHeaders key is added. It provides an explicit syntax to drop the whole table.
- The meaning of the following is changed:
SectionHeaderTable: Sections: [] Excluded: - Name: .foo
Assuming there are 2 sections in the object (a null section and .foo), with this patch it
means: exclude the .foo section, keep the null section. The null section is an implicit
section and I think it is reasonable to make "Sections: []" to mean it is implicitly added.
It will be consistent with the global "Sections" tag that is used to describe sections.
- SectionHeaderTable->Sections is now optional. No Sections is the same as Sections: [] (I think it avoids a confusion).
- Using of NoHeaders together with Sections/Excluded is not allowed.
- It is possible to use the Excluded key without the Sections key now (in this case Excluded must contain all sections).
- SectionHeaderTable: or SectionHeaderTable: [] is not allowed.
- When the SectionHeaderTable key is present, we still require all sections to be present in Sections and Excluded lists. No changes here, we are still strict.
section with -> section, with