Module ammosreader.PPDWReader

Expand source code
from pathlib import Path

from ammosreader.PDW import PDW
from ammosreader.PPDWContainer import PPDWContainer

class PPDWReader():

    def __init__(self, a_file):

        self.file = a_file
        assert self.file.is_file()
        self.content = self.file.read_bytes()
        self.cursor = 0
        self.container = PPDWContainer(self.file.stem)

    def read_all_frames_left(self):
        while self.cursor <= len(self.content) - 32:
            current_bytes = self.content[self.cursor:self.cursor+32]
            assert len(current_bytes) == 32
            if not current_bytes:
                # print('End of file detected')
                break
            if self.cursor + 32 >= len(self.content):
                # print('Can not read all 32 bytes of next PDW')
                break
            self.container.add(PDW.from_bytes(current_bytes))
            self.cursor += 32
        return self.container

Classes

class PPDWReader (a_file)
Expand source code
class PPDWReader():

    def __init__(self, a_file):

        self.file = a_file
        assert self.file.is_file()
        self.content = self.file.read_bytes()
        self.cursor = 0
        self.container = PPDWContainer(self.file.stem)

    def read_all_frames_left(self):
        while self.cursor <= len(self.content) - 32:
            current_bytes = self.content[self.cursor:self.cursor+32]
            assert len(current_bytes) == 32
            if not current_bytes:
                # print('End of file detected')
                break
            if self.cursor + 32 >= len(self.content):
                # print('Can not read all 32 bytes of next PDW')
                break
            self.container.add(PDW.from_bytes(current_bytes))
            self.cursor += 32
        return self.container

Methods

def read_all_frames_left(self)
Expand source code
def read_all_frames_left(self):
    while self.cursor <= len(self.content) - 32:
        current_bytes = self.content[self.cursor:self.cursor+32]
        assert len(current_bytes) == 32
        if not current_bytes:
            # print('End of file detected')
            break
        if self.cursor + 32 >= len(self.content):
            # print('Can not read all 32 bytes of next PDW')
            break
        self.container.add(PDW.from_bytes(current_bytes))
        self.cursor += 32
    return self.container