> > compatibility, but worrying about unlikely uses of v._bodyString may be > overly cautious. Would reopening #366 help you? >
It can be implemented as one-way property. Assigning to lines maybe disabled or it may immediately assign to _bodyString. Reading lines will check if _bodyString has changed meanwhile just by comparing it with cached version, and return cached tuple if it is still valid. For example: def _get_lines(self): if self._old_bodyString == self._bodyString: return self._lines else: self._old_bodyString = self._bodyString self._lines = tuple(g.splitLines(self._bodyString)) return sefl._lines lines = property(_get_lines) It will merely make code more readable. It is not requirement for the new read/write/line_numbering code. That code uses its own caching to achieve the same effect, but it turned out that even without caching performance is good. Because new code makes only one pass through all nodes and lines and it makes little difference if lines were cached or not. But even without speed gains I would like to use v.lines for readability although vlines(p) is almost the same and function implementation of vlines is trivial even with caching. The only drawback is that it should be re-implemented in all scripts that use it. Vitalije -- You received this message because you are subscribed to the Google Groups "leo-editor" group. To unsubscribe from this group and stop receiving emails from it, send an email to leo-editor+unsubscr...@googlegroups.com. To post to this group, send email to leo-editor@googlegroups.com. Visit this group at https://groups.google.com/group/leo-editor. For more options, visit https://groups.google.com/d/optout.