Files @ 5c80ca07f00c
Branch filter:

Location: Morevna/src/datafile.py

Laman
reformatted whitespace with more respect for PEP-8
from hashtree import HashTree


BLOCK_SIZE = HashTree.BLOCK_SIZE


class DataFile:
	def __init__(self, fileHandle):
		self._lastIndex = 0
		self._f = fileHandle

	@staticmethod
	def open(filename, mode="rb"):
		return DataFile(open(filename, mode=mode))

	def writeAt(self, i, blockData):
		if i!=self._lastIndex+1:
			self._f.seek(i*BLOCK_SIZE)
		self._f.write(blockData)
		self._lastIndex = i

	def readFrom(self, i, byteCount=BLOCK_SIZE):
		if i!=self._lastIndex+1:
			self._f.seek(i*BLOCK_SIZE)
		self._lastIndex = i
		return self._f.read(byteCount)

	def close(self):
		self._f.close()