Commit 708fdd87 by Owo Sugiana

Streamer kini bekerja secara bytes, tidak lagi str

1 parent afb3668e
dist
build
*egg-info
0.1.5 2020-04-28
0.1.5 2020-05-09
----------------
- Bug fixed pada mitracomm.py
- Bug fixed pada mitracomm.py. Seluruh streamer kini bekerja dengan bytes tidak
lagi str.
- Bug fixed pada receive_raw() dimana raw tidak lagi di-encode ke UTF-8 karena
network header tidak bisa demikian, terkait mitracomm.py.
- Bug fixed pada ISO8583.__setBitTypeANS() dimana seharusnya menggunakan
ljust() ketimbang zfill()
......
......@@ -39,8 +39,8 @@ class BaseISO8583(ISO8583):
raw = raw.decode('utf-8')
return raw.upper()
def setIsoContent(self, raw):
ISO8583.setIsoContent(self, raw.encode('utf-8'))
#def setIsoContent(self, raw):
# ISO8583.setIsoContent(self, raw.encode('utf-8'))
def get_bit_definition(self):
return {}
......
......@@ -87,6 +87,9 @@ class Doc(BaseISO8583):
def get_transaction_code(self):
return self.getBit(3)
def set_transaction_code(self, value):
self.setBit(3, value)
def is_inquiry(self):
return self.get_transaction_code() == self.get_inquiry_code() and \
'inquiry'
......@@ -138,7 +141,7 @@ class Doc(BaseISO8583):
def set_inquiry_request(self): # sebagai bank
self.set_transaction_request()
self.setBit(3, self.get_inquiry_code())
self.set_transaction_code(self.get_inquiry_code())
def set_inquiry_response(self): # sebagai pemda
self.set_transaction_response()
......
......@@ -15,9 +15,12 @@ class Job:
def get_iso_class(self):
return Doc
def create_iso(self, from_iso=None):
def create_iso(self, from_iso=None, conf=dict()):
cls = self.get_iso_class()
return cls(from_iso=from_iso, conf=self.conf)
cf = dict(self.conf)
if conf:
cf.update(conf)
return cls(from_iso=from_iso, conf=cf)
def get_iso(self):
if self.do_echo:
......
......@@ -24,7 +24,7 @@ def get_streamer_module(name):
class Streamer:
def __init__(self):
self.raw = ''
self.raw = b''
self.size = 0
# Override please.
......
......@@ -17,7 +17,7 @@ class Streamer(BaseStreamer):
self.raw = raw
return
size = self.size = self.get_size(raw)
self.raw = ''
self.raw = b''
raw = raw[4:]
self.raw += raw[:size]
if len(self.raw) == self.size:
......@@ -30,4 +30,4 @@ class Streamer(BaseStreamer):
# Override Stremer.set
def set(self, raw):
size = str(len(raw)).zfill(4)
return size + raw
return size.encode() + raw
......@@ -13,5 +13,6 @@ class Streamer(BaseStreamer):
# Override Stremer.set
def set(self, raw):
raw += '\x03'
raw = raw.encode()
raw += bytes([3])
return BaseStreamer.set(self, raw)
......@@ -16,7 +16,7 @@ class Streamer(BaseStreamer):
self.raw = raw
return
size = self.size = int(raw[:4])
self.raw = ''
self.raw = b''
raw = raw[4:]
self.raw += raw[:size]
if len(self.raw) == self.size:
......@@ -29,4 +29,4 @@ class Streamer(BaseStreamer):
# Override Stremer.set
def set(self, raw):
size = str(len(raw)).zfill(4)
return size + raw
return size.encode() + raw
......@@ -22,7 +22,7 @@ class Streamer(BaseStreamer):
self.raw = raw
return
size = self.size = self.get_size(raw[:2])
self.raw = ''
self.raw = b''
raw = raw[2:]
self.raw += raw[:size]
if len(self.raw) == self.size:
......@@ -34,9 +34,8 @@ class Streamer(BaseStreamer):
# Override Stremer.set
def set(self, raw):
raw = raw.upper()
size = len(raw)
a = size % 256
b = size / 256
header = chr(b) + chr(a)
header = bytes([b]) + bytes([a])
return header + raw
......@@ -16,7 +16,7 @@ class Streamer(BaseStreamer):
self.raw = raw
return
size = self.size = int(raw[:4])
self.raw = ''
self.raw = b''
raw = raw[4:]
self.raw += raw[:size]
if len(self.raw) == self.size:
......@@ -29,4 +29,4 @@ class Streamer(BaseStreamer):
# Override Stremer.set
def set(self, raw):
size = str(len(raw)).zfill(4)
return size + raw
return size.encode() + raw
......@@ -17,7 +17,7 @@ class Streamer(BaseStreamer):
self.raw = raw
return
size = self.size = int(raw[:4])
self.raw = ''
self.raw = b''
raw = raw[4:]
self.raw += raw[:size]
if len(self.raw) == self.size:
......@@ -30,4 +30,4 @@ class Streamer(BaseStreamer):
# Override Stremer.set
def set(self, raw):
size = str(len(raw)).zfill(4)
return size + raw
return size.encode() + raw
......@@ -17,7 +17,7 @@ class Streamer(BaseStreamer):
self.raw = raw
return
size = self.size = self.get_size(raw)
self.raw = ''
self.raw = b''
raw = raw[4:]
self.raw += raw[:size]
if len(self.raw) == self.size:
......@@ -30,4 +30,4 @@ class Streamer(BaseStreamer):
# Override Stremer.set
def set(self, raw):
size = str(len(raw)).zfill(4)
return size + raw
return size.encode() + raw
......@@ -6,8 +6,7 @@ from . import Streamer as BaseStreamer
class Streamer(BaseStreamer):
def get_size(self, raw):
a, b = raw
a = ord(a) * 256
b = ord(b)
a = a * 256
return a + b
# Override Stremer.get
......@@ -15,12 +14,14 @@ class Streamer(BaseStreamer):
if self.size:
size = self.size - len(self.raw)
else:
if isinstance(raw, str):
raw = raw.encode()
raw = self.raw + raw
if len(raw) < 2:
self.raw = raw
return
size = self.size = self.get_size(raw[:2])
self.raw = ''
self.raw = b''
raw = raw[2:]
self.raw += raw[:size]
if len(self.raw) == self.size:
......@@ -35,5 +36,5 @@ class Streamer(BaseStreamer):
size = len(raw)
a = int(size / 256)
b = size % 256
header = chr(a) + chr(b)
return header + raw
header = bytes([a]) + bytes([b])
return header + raw.encode()
......@@ -22,7 +22,7 @@ class Streamer(BaseStreamer):
self.raw = raw
return
size = self.size = self.get_size(raw[:2])
self.raw = ''
self.raw = b''
raw = raw[2:]
self.raw += raw[:size]
if len(self.raw) == self.size:
......@@ -37,5 +37,5 @@ class Streamer(BaseStreamer):
size = len(raw)
a = size % 256
b = size / 256
header = chr(a) + chr(b)
header = bytes([a]) + bytes([b])
return header + raw
......@@ -70,15 +70,13 @@ class Connection:
raw = self.process(raw)
if raw:
self.send(raw)
raw = ''
raw = b''
def receive_raw(self):
try:
ready, _, _ = select.select([self.request], [], [], 5)
raw = ready and self.request.recv(
self.get_receive_size(), socket.MSG_DONTWAIT) or ''
if isinstance(raw, bytes):
raw = raw.decode('utf-8')
if raw:
self.on_receive_raw(raw)
return raw
......@@ -113,8 +111,6 @@ class Connection:
self.just_send(raw)
def just_send(self, raw):
if sys.version_info.major > 2:
raw = raw.encode('utf-8')
try:
self.request.sendall(raw)
except socket.error as err:
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!