Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 4 additions & 5 deletions src/aligned_textgrid/mixins/mixins.py
Original file line number Diff line number Diff line change
Expand Up @@ -166,8 +166,7 @@ def get_tierwise(
in the initial position within its subset list, this will not be the same as
`.prev`

This will raise an ordinary IndexError if the relative index exceeds the length
of the tier.
If the provided index is out of range, this will generate RuntimeWarning.

Args:
idx (int, optional):
Expand All @@ -177,11 +176,11 @@ def get_tierwise(
Returns:
(SequenceInterval|SequencePoint): The entry at the relative index
"""
if not self.intier is None:
return self.intier[self.tier_index + idx]
else:
if self.inter is None:
return None

return self.intier[self.tier_index + idx]

def return_praatio(self)->Interval|Point:
"""Return the correct `praatio` class.

Expand Down
11 changes: 11 additions & 0 deletions src/aligned_textgrid/sequences/tiers.py
Original file line number Diff line number Diff line change
Expand Up @@ -128,6 +128,17 @@ def __build_sequence_list(self)->None:


def __getitem__(self, idx:int)->SequenceInterval:
if idx >= len(self.sequence_list) or idx < -len(self.sequence_list):
warnings.warn(
(
f"Provided index ({idx}) "
f"to object {self.__class__.__name__} "
"is out of range."
),
category = RuntimeWarning,
)
return None

return self.sequence_list[idx]

def __len__(self)->int:
Expand Down
6 changes: 4 additions & 2 deletions tests/test_tiers/test_SequenceTier.py
Original file line number Diff line number Diff line change
Expand Up @@ -47,10 +47,12 @@ def test_default_xmin(self):
def test_default_xmax(self):
assert self.default_tier.xmax is None

def test_default_getitme(self):
with pytest.raises(IndexError):
def test_default_getitem(self):
with pytest.warns(RuntimeWarning):
_ = self.default_tier[0]



class TestTierMaking:

def test_class_setting(self):
Expand Down