11from contextlib import ExitStack
2- from typing import Callable , Iterable , List , Optional , Sequence , Set , cast
2+ from typing import Any , Callable , Iterable , List , Optional , Sequence , Set , cast
33
44from ..scripture .verse_ref import Versification
55from .n_parallel_text_corpus_base import NParallelTextCorpusBase
66from .n_parallel_text_row import NParallelTextRow
77from .scripture_ref import ScriptureRef
88from .text_corpus import TextCorpus
9- from .text_corpus_enumerator import _TextCorpusEnumerator
9+ from .text_corpus_enumerator import TextCorpusEnumerator
1010from .text_row import TextRow , TextRowFlags
1111
1212
@@ -81,7 +81,7 @@ def __init__(
8181 ):
8282 self ._corpora = corpora
8383 self ._row_ref_comparer = row_ref_comparer if row_ref_comparer is not None else default_row_ref_comparer
84- self .all_rows = [ False for _ in range (len (corpora ))]
84+ self .all_rows : Sequence [ bool ] = tuple ( False for _ in range (len (corpora )))
8585
8686 def is_tokenized (self , i : int ) -> bool :
8787 return self .corpora [i ].is_tokenized
@@ -91,7 +91,7 @@ def n(self) -> int:
9191 return len (self .corpora )
9292
9393 @property
94- def corpora (self ) -> List [TextCorpus ]:
94+ def corpora (self ) -> Sequence [TextCorpus ]:
9595 return list (self ._corpora )
9696
9797 @property
@@ -116,11 +116,11 @@ def get_rows(self, text_ids: Optional[Iterable[str]] = None) -> Iterable[NParall
116116 filter_text_ids = self ._get_text_ids_from_corpora ()
117117 if text_ids is not None :
118118 filter_text_ids = filter_text_ids .intersection (text_ids )
119- enumerated_corpora : List [_TextCorpusEnumerator ] = []
119+ enumerated_corpora : List [TextCorpusEnumerator ] = []
120120 for i in range (self .n ):
121121 generator = iter (self .corpora [i ].get_rows (filter_text_ids ))
122122 enumerated_corpora .append (
123- _TextCorpusEnumerator (generator , self .corpora [0 ].versification , self .corpora [i ].versification )
123+ TextCorpusEnumerator (generator , self .corpora [0 ].versification , self .corpora [i ].versification )
124124 )
125125 for row in self ._get_rows (enumerated_corpora ):
126126 yield row
@@ -142,7 +142,7 @@ def _min_ref_indexes(self, refs: Sequence[object]) -> Sequence[int]:
142142 min_ref_indexes .append (i )
143143 return min_ref_indexes
144144
145- def _get_rows (self , generators : List [_TextCorpusEnumerator ]) -> Iterable [NParallelTextRow ]:
145+ def _get_rows (self , generators : List [TextCorpusEnumerator ]) -> Iterable [NParallelTextRow ]:
146146 with ExitStack () as stack :
147147 iterators = []
148148 for generator in generators :
@@ -274,7 +274,10 @@ def _get_rows(self, generators: List[_TextCorpusEnumerator]) -> Iterable[NParall
274274 def _correct_versification (self , refs : List [object ], i : int ) -> List [object ]:
275275 if any ([not c .is_scripture for c in self .corpora ]) or len (refs ) == 0 :
276276 return refs
277- return [cast (ScriptureRef , ref ).change_versification (self .corpora [i ].versification ) for ref in refs ]
277+ return [
278+ cast (ScriptureRef , ref ).change_versification (cast (Versification , self .corpora [i ].versification ))
279+ for ref in refs
280+ ]
278281
279282 def _create_rows (
280283 self , range_info : _NRangeInfo , rows : List [Optional [TextRow ]], force_in_range : Optional [Sequence [bool ]] = None
@@ -377,7 +380,7 @@ def _create_same_ref_rows(
377380 yield r
378381
379382
380- def default_row_ref_comparer (x : object , y : object ) -> int :
383+ def default_row_ref_comparer (x : Any , y : Any ) -> int :
381384 # Do not use the default comparer for ScriptureRef, since we want to ignore segments
382385 if isinstance (x , ScriptureRef ) and isinstance (y , ScriptureRef ):
383386 return x .compare_to (y , False )
@@ -387,6 +390,6 @@ def default_row_ref_comparer(x: object, y: object) -> int:
387390 return - 1
388391 if x == y :
389392 return 0
390- if x < y : # type: ignore
393+ if x < y :
391394 return - 1
392395 return 1
0 commit comments