Coverage for oarepo_c4gh/crypt4gh/filter/filter.py: 100%
14 statements
« prev ^ index » next coverage.py v7.10.2, created at 2025-08-07 12:05 +0000
« prev ^ index » next coverage.py v7.10.2, created at 2025-08-07 12:05 +0000
1"""This module implements a filtered Crypt4GH container backed by
2other Crypt4GH container but presenting filtered (added, changed
3and/or removed) header packets.
5"""
7from ..common.proto4gh import Proto4GH
8from ..common.header import Header
9from typing import Generator
10from ..common.data_block import DataBlock
11from .header import FilterHeader
14class Filter(Proto4GH):
15 """The whole container filter which actually filters only header
16 packets but for the writer the whole interface is needed.
18 """
20 def __init__(self, original: Proto4GH) -> None:
21 """Only prepares the filtered header and original container
22 with original blocks.
24 Parameters:
25 original: the original container to be filtered.
27 """
28 self._original = original
30 @property
31 def header(self) -> Header:
32 """Returns the filtered header instance."""
33 return self._original._header
35 @property
36 def data_blocks(self) -> Generator[DataBlock, None, None]:
37 """Returns the iterator for the original data blocks."""
38 return self._original.data_blocks