Skip to content

Commit 740cbea

Browse files
committed
add sibling children
1 parent 3f7ca5d commit 740cbea

File tree

3 files changed

+11
-2
lines changed

3 files changed

+11
-2
lines changed

linkml_runtime/utils/schemaview.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -624,27 +624,31 @@ def permissible_value_children(self, permissible_value: str, enum_name: ENUM_NAM
624624
"""
625625
:param enum_name: parent enum name
626626
:param permissible_value: permissible value
627-
:return: all direct child enum names (is_a)
627+
:return: all direct child permissible values (is_a)
628628
629629
CAT:
630630
LION:
631631
is_a: CAT
632632
ANGRY_LION:
633633
is_a: LION
634+
TABBY:
635+
is_a: CAT
634636
BIRD:
635637
EAGLE:
636638
is_a: BIRD
637639
638640
"""
639641

640642
enum = self.get_enum(enum_name, strict=True)
643+
children = []
641644
if enum:
642645
if permissible_value in enum.permissible_values:
643646
pv = enum.permissible_values[permissible_value]
644647
for isapv in enum.permissible_values:
645648
isapv_entity = enum.permissible_values[isapv]
646649
if isapv_entity.is_a and pv.text == isapv_entity.is_a:
647-
return [isapv]
650+
children.append(isapv)
651+
return children
648652
else:
649653
return []
650654

tests/test_utils/input/kitchen_sink_noimports.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -364,6 +364,8 @@ enums:
364364
is_a: OtherEnum
365365
permissible_values:
366366
CAT:
367+
TABBY:
368+
is_a: CAT
367369
LION:
368370
is_a: CAT
369371
ANGRY_LION:

tests/test_utils/test_schemaview.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,9 @@ def test_schemaview_enums(self):
5555
self.assertEqual(view.permissible_value_ancestors(pv, e.name), ['CAT'])
5656
self.assertIn("LION", view.permissible_value_descendants(pv, e.name))
5757
self.assertIn("ANGRY_LION", view.permissible_value_descendants(pv, e.name))
58+
self.assertIn("TABBY", view.permissible_value_descendants(pv, e.name))
59+
self.assertIn("TABBY", view.permissible_value_children(pv, e.name))
60+
self.assertIn("LION", view.permissible_value_children(pv, e.name))
5861
self.assertNotIn("EAGLE", view.permissible_value_descendants(pv, e.name))
5962
if pv == "LION":
6063
self.assertIn("ANGRY_LION", view.permissible_value_children(pv, e.name))

0 commit comments

Comments
 (0)