MCPcopy Index your code
hub / github.com/clips/pattern / PDFStream

Class PDFStream

pattern/web/pdf/pdftypes.py:150–260  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

148## PDFStream type
149##
150class PDFStream(PDFObject):
151
152 def __init__(self, attrs, rawdata, decipher=None):
153 assert isinstance(attrs, dict)
154 self.attrs = attrs
155 self.rawdata = rawdata
156 self.decipher = decipher
157 self.data = None
158 self.objid = None
159 self.genno = None
160 return
161
162 def set_objid(self, objid, genno):
163 self.objid = objid
164 self.genno = genno
165 return
166
167 def __repr__(self):
168 if self.data is None:
169 assert self.rawdata is not None
170 return '<PDFStream(%r): raw=%d, %r>' % (self.objid, len(self.rawdata), self.attrs)
171 else:
172 assert self.data is not None
173 return '<PDFStream(%r): len=%d, %r>' % (self.objid, len(self.data), self.attrs)
174
175 def __contains__(self, name):
176 return name in self.attrs
177
178 def __getitem__(self, name):
179 return self.attrs[name]
180
181 def get(self, name, default=None):
182 return self.attrs.get(name, default)
183
184 def get_any(self, names, default=None):
185 for name in names:
186 if name in self.attrs:
187 return self.attrs[name]
188 return default
189
190 def get_filters(self):
191 filters = self.get_any(('F', 'Filter'))
192 if not filters: return []
193 if isinstance(filters, list): return filters
194 return [ filters ]
195
196 def decode(self):
197 assert self.data is None and self.rawdata != None
198 data = self.rawdata
199 if self.decipher:
200 # Handle encryption
201 data = self.decipher(self.objid, self.genno, data)
202 filters = self.get_filters()
203 if not filters:
204 self.data = data
205 self.rawdata = None
206 return
207 for f in filters:

Callers 3

do_keywordMethod · 0.90
do_keywordMethod · 0.90
stream_valueFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…