MCPcopy Create free account
hub / github.com/ActiveState/code / _Processor

Class _Processor

recipes/Python/578135_Markov_EncryptiModule/recipe-578135.py:141–169  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

139################################################################################
140
141class _Processor(object):
142
143 slots('key, into, index, from')
144
145 def __init__(self, key, primer):
146 if self.__class__ is _Processor:
147 raise NotImplementedError('This is an abstract class!')
148 key.test_primer(primer)
149 self.__key = key
150 self.__into = table = dict(map(reversed, enumerate(key.order)))
151 self.__index = collections.deque(map(table.__getitem__, primer.data))
152 self.__index.appendleft(None)
153 self.__from = dict(map(reversed, table.items()))
154
155 def process(self, data):
156 cache = []
157 self._run(data, cache.append, self.__key, self.__into, self.__index)
158 return ''.join(cache)
159
160 @staticmethod
161 def _run(data, cache_push, key, table, index):
162 raise NotImplementedError('This is an abstract method!')
163
164 @property
165 def primer(self):
166 self.__index.popleft()
167 value = Primer(''.join(map(self.__from.__getitem__, self.__index)))
168 self.__index.appendleft(None)
169 return value
170
171################################################################################
172

Callers

nothing calls this directly

Calls 1

slotsFunction · 0.70

Tested by

no test coverage detected