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):
        try:
            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. EOF')
                    break
                self.container.add(PDW.from_bytes(current_bytes))
                self.cursor += 32
        except Exception:
            return None
        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):
        try:
            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. EOF')
                    break
                self.container.add(PDW.from_bytes(current_bytes))
                self.cursor += 32
        except Exception:
            return None
        return self.container

Methods

def read_all_frames_left(self)
Expand source code
def read_all_frames_left(self):
    try:
        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. EOF')
                break
            self.container.add(PDW.from_bytes(current_bytes))
            self.cursor += 32
    except Exception:
        return None
    return self.container