Table of Contents

Class: Whitespace eric3/Checks/Tabnanny.py
Methods   
__init__
equal
indent_level
less
longest_run_of_spaces
not_equal_witness
not_less_witness
  __init__ 
__init__ ( self,  ws )

  equal 
equal ( self,  other )

return true iff self.indent_level(t) == other.indent_level(t) for all t >= 1

  indent_level 
indent_level ( self,  tabsize )

count, il = self.norm for i in range(len(count)): if count[i]: il = il + (i/tabsize + 1)tabsize count[i] return il

  less 
less ( self,  other )

Return true iff self.indent_level(t) < other.indent_level(t) for all t >= 1. The algorithm is due to Vincent Broman. Easy to prove it's correct. XXXpost that. Trivial to prove n is sharp (consider T vs ST). Unknown whether there's a faster general way. I suspected so at first, but no longer. For the special (but common!) case where M and N are both of the form (T)(S), M.less(N) iff M.len() < N.len() and M.num_tabs() <= N.num_tabs(). Proof is easy but kinda long-winded. XXXwrite that up. Note that M is of the form (T)(S) iff len(M.norm[0]) <= 1.

  longest_run_of_spaces 
longest_run_of_spaces ( self )

return length of longest contiguous run of spaces (whether or not preceding a tab)

  not_equal_witness 
not_equal_witness ( self,  other )

return a list of tuples (ts, i1, i2) such that i1 == self.indent_level(ts) != other.indent_level(ts) == i2. Intended to be used after not self.equal(other) is known, in which case it will return at least one witnessing tab size.

  not_less_witness 
not_less_witness ( self,  other )

return a list of tuples (ts, i1, i2) such that i1 == self.indent_level(ts) >= other.indent_level(ts) == i2. Intended to be used after not self.less(other) is known, in which case it will return at least one witnessing tab size.


Table of Contents

This document was automatically generated by HappyDoc version 2.1