diff --git a/src/sectubs/exercises.py b/src/sectubs/exercises.py index a72c6c1..cfd2b21 100644 --- a/src/sectubs/exercises.py +++ b/src/sectubs/exercises.py @@ -1,5 +1,6 @@ import datetime + class Exercise00: STUDENT_NAME = "Eggert Jung" @@ -38,40 +39,27 @@ class Exercise00: def __str__(self): return b64_enc(self.__txt) -def b64_enc_map(index): - if(index >= 0 and index < 26): - return chr(index + 0x41) # A-Z - elif(index >= 26 and index < 52): - return chr(index + 0x61 - 26) # a-z - elif(index >= 52 and index < 62): - return chr(index + 0x30 - 52) # 0-9 - elif(index == 62): - return '+' - elif(index == 63): - return '/' - else: - return '=' def b64_enc(str): res = "" - + b64_map = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=" for c in [(str[i:i+3]) for i in range(0, len(str), 3)]: c = bytes(c, 'utf-8') - bits = [-1,-1,-1,-1] + bits = [64, 64, 64, 64] try: - bits[0] = (c[0] & 0xFC)>>2 + bits[0] = (c[0] & 0xFC) >> 2 - bits[1] = ((c[0] & 0x03)<<4) - bits[1] = bits[1] + ((c[1] & 0xF0)>>4) + bits[1] = ((c[0] & 0x03) << 4) + bits[1] = bits[1] + ((c[1] & 0xF0) >> 4) - bits[2] = ((c[1] & 0x0F)<<2) - bits[2] = bits[2] + ((c[2] & 0xC0)>>6) + bits[2] = ((c[1] & 0x0F) << 2) + bits[2] = bits[2] + ((c[2] & 0xC0) >> 6) bits[3] = (c[2] & 0x3F) except IndexError: pass for i in range(4): - res = res + b64_enc_map(bits[i]) + res = res + b64_map[bits[i]] return res @@ -79,11 +67,15 @@ if __name__ == "__main__": import argparse parser = argparse.ArgumentParser() parser.add_argument('FILE', help="The input positional parameter.") - parser.add_argument('-b', '--bool', action='store_true', help="An optional boolean flag (Default: False).") - parser.add_argument('-f', '--float', default=0.0, type=float, help="An optional parameter of type float (Default: 0.0).") - parser.add_argument('-i', '--int', default=0, type=int, help="An optional parameter of type int (Default: 0).") + parser.add_argument('-b', '--bool', action='store_true', + help="An optional boolean flag (Default: False).") + parser.add_argument('-f', '--float', default=0.0, type=float, + help="An optional parameter of type float (Default: 0.0).") + parser.add_argument('-i', '--int', default=0, type=int, + help="An optional parameter of type int (Default: 0).") args = parser.parse_args() - print("input: {FILE}\n--bool {bool}\n--float {float}\n--int {int}".format(**args.__dict__)) + print( + "input: {FILE}\n--bool {bool}\n--float {float}\n--int {int}".format(**args.__dict__)) exit(42)