Vega strike Python Modules doc  0.5.1
Documentation of the " Modules " folder of Vega strike
 All Data Structures Namespaces Files Functions Variables
MultiFile Class Reference

Public Member Functions

def __init__
 
def tell
 
def seek
 
def readline
 
def readlines
 
def read
 
def next
 
def push
 
def pop
 
def is_data
 
def section_divider
 
def end_marker
 

Data Fields

 fp
 
 stack
 
 level
 
 last
 
 readahead
 
 seekable
 
 start
 
 posstack
 
 lastpos
 

Static Public Attributes

int seekable = 0
 

Detailed Description

Definition at line 35 of file multifile.py.

Constructor & Destructor Documentation

def __init__ (   self,
  fp,
  seekable = 1 
)

Definition at line 39 of file multifile.py.

39 
40  def __init__(self, fp, seekable=1):
41  self.fp = fp
42  self.stack = [] # Grows down
43  self.level = 0
44  self.last = 0
45  self.readahead = ""
46  if seekable:
47  self.seekable = 1
48  self.start = self.fp.tell()
49  self.posstack = [] # Grows down

Member Function Documentation

def end_marker (   self,
  str 
)

Definition at line 174 of file multifile.py.

175  def end_marker(self, str):
176  return "--" + str + "--"
def is_data (   self,
  line 
)

Definition at line 168 of file multifile.py.

169  def is_data(self, line):
170  return line[:2] != '--'
def next (   self)

Definition at line 135 of file multifile.py.

References MultiFile.last, Folder.last, BlockFinder.last, MultiFile.level, _Subfile.readline(), MultiFile.readline(), FileInput.readline(), StreamReader.readline(), GzipFile.readline(), StreamReaderWriter.readline(), StreamRecoder.readline(), ListReader.readline(), Unpickler.readline, addbase.readline, MultiFile.seekable, Chunk.seekable, _Subfile.start, and MultiFile.start.

136  def next(self):
137  while self.readline(): pass
138  if self.level > 1 or self.last:
139  return 0
140  self.level = 0
141  self.last = 0
142  if self.seekable:
143  self.start = self.fp.tell()
144  return 1
def pop (   self)

Definition at line 153 of file multifile.py.

References MultiFile.last, Folder.last, BlockFinder.last, MultiFile.lastpos, MultiFile.level, sre_parse.max, MultiFile.posstack, MultiFile.seekable, Chunk.seekable, MultiFile.stack, _Subfile.start, and MultiFile.start.

154  def pop(self):
155  if self.stack == []:
156  raise Error, 'bad MultiFile.pop() call'
157  if self.level <= 1:
158  self.last = 0
159  else:
160  abslastpos = self.lastpos + self.start
161  self.level = max(0, self.level - 1)
162  del self.stack[0]
163  if self.seekable:
164  self.start = self.posstack[0]
165  del self.posstack[0]
166  if self.level > 0:
167  self.lastpos = abslastpos - self.start
def push (   self,
  sep 
)

Definition at line 145 of file multifile.py.

References MultiFile.level, MultiFile.seekable, Chunk.seekable, _Subfile.start, and MultiFile.start.

146  def push(self, sep):
147  if self.level > 0:
148  raise Error, 'bad MultiFile.push() call'
149  self.stack.insert(0, sep)
150  if self.seekable:
151  self.posstack.insert(0, self.start)
152  self.start = self.fp.tell()
def read (   self)

Definition at line 132 of file multifile.py.

References dospath.join(), _Subfile.readlines(), MultiFile.readlines(), StreamReader.readlines(), GzipFile.readlines(), StreamReaderWriter.readlines(), StreamRecoder.readlines(), and addbase.readlines.

133  def read(self): # Note: no size argument -- read until EOF only!
134  return ''.join(self.readlines())
def readline (   self)

Definition at line 73 of file multifile.py.

References MultiFile._readline(), MultiFile.end_marker(), MultiFile.is_data(), MultiFile.last, Folder.last, BlockFinder.last, MultiFile.level, MultiFile.readahead, MultiFile.section_divider(), MultiFile.seekable, Chunk.seekable, and MultiFile.stack.

73 
74  def readline(self):
75  if not self.readahead:
76  self.readahead = self._readline()
77  line = self.readahead
78  if line:
79  self.readahead = self._readline()
80  if not self.readahead:
81  if line[-2:] == "\r\n":
82  line = line[:-2]
83  elif line[-1:] == "\n":
84  line = line[:-1]
85  return line
def readlines (   self)

Definition at line 124 of file multifile.py.

References _Subfile.readline(), MultiFile.readline(), FileInput.readline(), StreamReader.readline(), GzipFile.readline(), StreamReaderWriter.readline(), StreamRecoder.readline(), ListReader.readline(), Unpickler.readline, and addbase.readline.

125  def readlines(self):
126  list = []
127  while 1:
128  line = self.readline()
129  if not line: break
130  list.append(line)
131  return list
def section_divider (   self,
  str 
)

Definition at line 171 of file multifile.py.

172  def section_divider(self, str):
173  return "--" + str
def seek (   self,
  pos,
  whence = 0 
)

Definition at line 55 of file multifile.py.

References MultiFile.last, Folder.last, BlockFinder.last, MultiFile.lastpos, MultiFile.level, MultiFile.readahead, _Subfile.start, MultiFile.start, MultiFile.tell(), _Subfile.tell(), Chunk.tell(), GzipFile.tell(), and Aifc_read.tell().

55 
56  def seek(self, pos, whence=0):
57  here = self.tell()
58  if whence:
59  if whence == 1:
60  pos = pos + here
61  elif whence == 2:
62  if self.level > 0:
63  pos = pos + self.lastpos
64  else:
65  raise Error, "can't use whence=2 yet"
66  if not 0 <= pos <= here or \
67  self.level > 0 and pos > self.lastpos:
68  raise Error, 'bad MultiFile.seek() call'
69  self.fp.seek(pos + self.start)
70  self.level = 0
71  self.last = 0
72  self.readahead = ""
def tell (   self)

Definition at line 50 of file multifile.py.

References MultiFile.lastpos, MultiFile.level, MultiFile.readahead, _Subfile.start, and MultiFile.start.

50 
51  def tell(self):
52  if self.level > 0:
53  return self.lastpos
54  return self.fp.tell() - len(self.readahead) - self.start

Field Documentation

fp

Definition at line 40 of file multifile.py.

last

Definition at line 43 of file multifile.py.

lastpos

Definition at line 118 of file multifile.py.

level

Definition at line 42 of file multifile.py.

posstack

Definition at line 48 of file multifile.py.

readahead

Definition at line 44 of file multifile.py.

int seekable = 0
static

Definition at line 37 of file multifile.py.

seekable

Definition at line 46 of file multifile.py.

stack

Definition at line 41 of file multifile.py.

start

Definition at line 47 of file multifile.py.


The documentation for this class was generated from the following file: