Code formatting

Signed-off-by: AKU <tom@tdpain.net>
This commit is contained in:
akp 2021-12-17 09:40:51 +00:00
parent c4bd96a5e0
commit 891b591388
No known key found for this signature in database
GPG key ID: AA5726202C8879B7

View file

@ -15,26 +15,30 @@ class Consumer:
self.pointer += n
if self.pointer > len(self.input):
raise IndexError("index out of bounds")
return self.input[self.pointer-n:self.pointer]
return self.input[self.pointer - n : self.pointer]
def finished(self) -> bool:
return len(self.input) == self.pointer
@dataclass
class Packet:
version: int
type_indicator: int
content: Any
def hex_to_binary_string(n: str) -> str:
o = ""
for char in n:
o += bin(int(char, base=16))[2:].zfill(4)
return o
def from_binary_string(x: str) -> int:
return int(x, base=2)
def decode_all(input_stream: Consumer) -> List[Packet]:
o = []
while True:
@ -44,6 +48,7 @@ def decode_all(input_stream: Consumer) -> List[Packet]:
break
return o
def decode_one(input_stream: Consumer) -> Packet:
version = from_binary_string(input_stream.get_n(3))
packet_type = from_binary_string(input_stream.get_n(3))
@ -52,7 +57,9 @@ def decode_one(input_stream: Consumer) -> Packet:
literal_number = 0
while True:
continue_bit = from_binary_string(input_stream.get())
literal_number = (literal_number << 4) | from_binary_string(input_stream.get_n(4))
literal_number = (literal_number << 4) | from_binary_string(
input_stream.get_n(4)
)
if continue_bit == 0:
break
return Packet(version, packet_type, literal_number)
@ -77,7 +84,7 @@ def parse(instr: str) -> List[Packet]:
def sum_version_numbers(packets: List[Packet]) -> int:
sigma = 0
sigma = 0
for packet in packets:
sigma += packet.version
if type(packet.content) == list:
@ -132,7 +139,6 @@ def interpet_packet(packet: Packet) -> int:
class Challenge(BaseChallenge):
@staticmethod
def one(instr: str) -> int:
packets = parse(instr)