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

1"""This module implements a filtered Crypt4GH container backed by 

2other Crypt4GH container but presenting filtered (added, changed 

3and/or removed) header packets. 

4 

5""" 

6 

7from ..common.proto4gh import Proto4GH 

8from ..common.header import Header 

9from typing import Generator 

10from ..common.data_block import DataBlock 

11from .header import FilterHeader 

12 

13 

14class Filter(Proto4GH): 

15 """The whole container filter which actually filters only header 

16 packets but for the writer the whole interface is needed. 

17 

18 """ 

19 

20 def __init__(self, original: Proto4GH) -> None: 

21 """Only prepares the filtered header and original container 

22 with original blocks. 

23 

24 Parameters: 

25 original: the original container to be filtered. 

26 

27 """ 

28 self._original = original 

29 

30 @property 

31 def header(self) -> Header: 

32 """Returns the filtered header instance.""" 

33 return self._original._header 

34 

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