Implement OrgDoc .shallow_tags .

This commit is contained in:
Sergio Martínez Portela 2024-09-01 23:37:26 +02:00
parent 570e6bb764
commit 852f472374
2 changed files with 21 additions and 0 deletions

View File

@ -2284,6 +2284,10 @@ class OrgDoc:
return kw.value.strip(':').split(':')
return []
@property
def shallow_tags(self) -> list[str]:
return self.tags
## Querying
def get_links(self):
for headline in self.headlines:

View File

@ -889,6 +889,23 @@ class TestSerde(unittest.TestCase):
h1_2_h2 = h1_2.children[0]
self.assertEqual(sorted(h1_2_h2.tags), ['filetag', 'otherh1tag', 'otherh2tag'])
def test_shallow_tag_property_read_13(self):
with open(os.path.join(DIR, "13-tags.org")) as f:
orig = f.read()
doc = loads(orig)
self.assertEqual(doc.shallow_tags, ['filetag'])
h1_1, h1_2 = doc.getTopHeadlines()
self.assertEqual(sorted(h1_1.shallow_tags), ['h1tag'])
self.assertEqual(sorted(h1_2.shallow_tags), ['otherh1tag'])
h1_1_h2 = h1_1.children[0]
self.assertEqual(sorted(h1_1_h2.shallow_tags), ['h2tag'])
h1_2_h2 = h1_2.children[0]
self.assertEqual(sorted(h1_2_h2.shallow_tags), ['otherh2tag'])
def print_tree(tree, indentation=0, headline=None):
for element in tree:
print(" " * indentation * 2, "EL:", element)