class_docstr: Backend storage for our "array of bits" using a python array of integers up
  to some maximum number of bytes, then spilling over to a file.
  This is -not- a cache; we instead save the leftmost bits in RAM, and the
  rightmost bits (if necessary) in a file.  On open, we read from the file to
  RAM.  On close, we write from RAM to the file.
class_docstr_tok: ["Backend","storage","for","our","``","array","of","bits","''","using","a","python","array","of","integers","up","to","some","maximum","number","of","bytes",",","then","spilling","over","to","a","file",".","This","is","-not-","a","cache",";","we","instead","save","the","leftmost","bits","in","RAM",",","and","the","rightmost","bits","(","if","necessary",")","in","a","file",".","On","open",",","we","read","from","the","file","to","RAM",".","On","close",",","we","write","from","RAM","to","the","file","."]
docstr: clear bit number bitno - set it to false
code: def clear(self, bitno):
      """clear bit number bitno - set it to false"""
      byteno, bit_within_byteno = divmod(bitno, 8)
      mask = Array_backend.effs - (1 << bit_within_byteno)
      if byteno < self.bytes_in_memory:
          self.array_[byteno] &= mask
      else:
          os.lseek(self.file_, byteno, os.SEEK_SET)
          byte = os.read(self.file_, 1)[0]
          byte &= File_seek_backend.effs - mask
          os.lseek(self.file_, byteno, os.SEEK_SET)
          os.write(self.file_, bytes([byte]))
  
imports: import array
  import math
  import os
  import random
label_desc: Use image node_id 4 for calling the Array_then_file_seek_backend obj's underlying member method code with example usage: obj.clear(bitno) without return types