<s> import io <EOL> import string <EOL> import unittest <EOL> import warnings <EOL> from functools import partial <EOL> from skbio import read , write , Sequence , DNA , RNA , Protein , TabularMSA <EOL> from skbio . io import FASTQFormatError <EOL> from skbio . io . format . fastq import ( <EOL> _fastq_sniffer , _fastq_to_generator , _fastq_to_tabular_msa , <EOL> _generator_to_fastq , _tabular_msa_to_fastq ) <EOL> from skbio . sequence . _grammared_sequence import GrammaredSequence <EOL> from skbio . util import get_data_path <EOL> from skbio . util . _decorator import classproperty , overrides <EOL> import numpy as np <EOL> def _drop_kwargs ( kwargs , * args ) : <EOL> for arg in args : <EOL> if arg in kwargs : <EOL> kwargs . pop ( arg ) <EOL> class TestSniffer ( unittest . TestCase ) : <EOL> def setUp ( self ) : <EOL> self . positives = [ get_data_path ( e ) for e in [ <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' <EOL> ] ] <EOL> self . negatives = [ get_data_path ( e ) for e in [ <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> ] ] <EOL> def test_positives ( self ) : <EOL> for fp in self . positives : <EOL> self . assertEqual ( _fastq_sniffer ( fp ) , ( True , { } ) ) <EOL> def test_negatives ( self ) : <EOL> for fp in self . negatives : <EOL> self . assertEqual ( _fastq_sniffer ( fp ) , ( False , { } ) ) <EOL> def test_illumina_sniffed ( self ) : <EOL> fp = get_data_path ( '<STR_LIT>' ) <EOL> self . assertEqual ( _fastq_sniffer ( fp ) , ( True , { '<STR_LIT>' : <EOL> '<STR_LIT>' } ) ) <EOL> class TestReaders ( unittest . TestCase ) : <EOL> def setUp ( self ) : <EOL> self . valid_configurations = [ <EOL> ( [ get_data_path ( '<STR_LIT>' ) , <EOL> get_data_path ( '<STR_LIT>' ) ] , <EOL> [ { } , <EOL> { '<STR_LIT>' : '<STR_LIT>' } , <EOL> { '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : DNA } ] , <EOL> [ ] ) , <EOL> ( [ get_data_path ( '<STR_LIT>' ) ] , [ <EOL> { '<STR_LIT>' : '<STR_LIT>' } , <EOL> { '<STR_LIT>' : <NUM_LIT:64> } , <EOL> { '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : Protein } , <EOL> ] , [ <EOL> ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ] ) <EOL> ] ) , <EOL> ( [ get_data_path ( '<STR_LIT>' ) , <EOL> get_data_path ( '<STR_LIT>' ) , <EOL> get_data_path ( '<STR_LIT>' ) , <EOL> get_data_path ( '<STR_LIT>' ) , <EOL> get_data_path ( '<STR_LIT>' ) , <EOL> get_data_path ( '<STR_LIT>' ) , <EOL> get_data_path ( '<STR_LIT>' ) , <EOL> get_data_path ( '<STR_LIT>' ) , <EOL> get_data_path ( '<STR_LIT>' ) , <EOL> get_data_path ( '<STR_LIT>' ) ] , [ <EOL> { '<STR_LIT>' : '<STR_LIT>' } , <EOL> { '<STR_LIT>' : <NUM_LIT> , '<STR_LIT>' : <NUM_LIT:2> } , <EOL> { '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : partial ( RNA , validate = False ) , <EOL> '<STR_LIT>' : <NUM_LIT:3> } , <EOL> ] , [ <EOL> ( '<STR_LIT:foo>' , '<STR_LIT>' , '<STR_LIT>' , <EOL> [ <NUM_LIT:16> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:20> , <NUM_LIT> ] ) , <EOL> ( '<STR_LIT:bar>' , '<STR_LIT>' , '<STR_LIT>' , <EOL> [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:20> , <NUM_LIT> , <NUM_LIT> ] ) , <EOL> ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , <EOL> [ <NUM_LIT:20> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ] ) <EOL> ] ) , <EOL> ] <EOL> self . invalid_files = [ ( get_data_path ( e [ <NUM_LIT:0> ] ) , e [ <NUM_LIT:1> ] , e [ <NUM_LIT:2> ] ) for e in [ <EOL> ( '<STR_LIT>' , FASTQFormatError , <EOL> '<STR_LIT>' ) , <EOL> ( '<STR_LIT>' , FASTQFormatError , <EOL> "<STR_LIT>" ) , <EOL> ( '<STR_LIT>' , FASTQFormatError , <EOL> "<STR_LIT>" ) , <EOL> ( '<STR_LIT>' , FASTQFormatError , <EOL> '<STR_LIT>' ) , <EOL> ( '<STR_LIT>' , FASTQFormatError , <EOL> "<STR_LIT>" ) , <EOL> ( '<STR_LIT>' , FASTQFormatError , <EOL> '<STR_LIT>' ) , <EOL> ( '<STR_LIT>' , FASTQFormatError , <EOL> "<STR_LIT>" ) , <EOL> ( '<STR_LIT>' , FASTQFormatError , <EOL> "<STR_LIT>" ) , <EOL> ( '<STR_LIT>' , FASTQFormatError , <EOL> '<STR_LIT>' ) , <EOL> ( '<STR_LIT>' , FASTQFormatError , <EOL> "<STR_LIT>" ) , <EOL> ( '<STR_LIT>' , FASTQFormatError , <EOL> "<STR_LIT>" ) , <EOL> ( '<STR_LIT>' , FASTQFormatError , <EOL> '<STR_LIT>' ) , <EOL> ( '<STR_LIT>' , FASTQFormatError , <EOL> "<STR_LIT>" <EOL> "<STR_LIT>" <EOL> "<STR_LIT>" ) , <EOL> ( '<STR_LIT>' , FASTQFormatError , <EOL> "<STR_LIT>" ) , <EOL> ( '<STR_LIT>' , FASTQFormatError , <EOL> '<STR_LIT>' ) , <EOL> ( '<STR_LIT>' , FASTQFormatError , "<STR_LIT>" ) , <EOL> ( '<STR_LIT>' , FASTQFormatError , <EOL> "<STR_LIT>" ) , <EOL> ( '<STR_LIT>' , ValueError , <EOL> '<STR_LIT>' ) , <EOL> ( '<STR_LIT>' , ValueError , <EOL> '<STR_LIT>' ) , <EOL> ( '<STR_LIT>' , ValueError , <EOL> '<STR_LIT>' ) , <EOL> ( '<STR_LIT>' , ValueError , <EOL> '<STR_LIT>' ) , <EOL> ( '<STR_LIT>' , ValueError , <EOL> '<STR_LIT>' ) , <EOL> ( '<STR_LIT>' , ValueError , <EOL> '<STR_LIT>' ) , <EOL> ( '<STR_LIT>' , ValueError , <EOL> '<STR_LIT>' ) , <EOL> ( '<STR_LIT>' , FASTQFormatError , <EOL> "<STR_LIT>" ) , <EOL> ( '<STR_LIT>' , FASTQFormatError , <EOL> "<STR_LIT>" ) , <EOL> ( '<STR_LIT>' , FASTQFormatError , <EOL> r"<STR_LIT>" ) , <EOL> ( '<STR_LIT>' , FASTQFormatError , <EOL> '<STR_LIT>' ) , <EOL> ( '<STR_LIT>' , FASTQFormatError , <EOL> '<STR_LIT>' ) , <EOL> ( '<STR_LIT>' , FASTQFormatError , <EOL> '<STR_LIT>' ) , <EOL> ( '<STR_LIT>' , FASTQFormatError , <EOL> '<STR_LIT>' ) , <EOL> ( '<STR_LIT>' , FASTQFormatError , <EOL> '<STR_LIT>' ) , <EOL> ( '<STR_LIT>' , FASTQFormatError , <EOL> "<STR_LIT>" <EOL> "<STR_LIT>" ) , <EOL> ( '<STR_LIT>' , FASTQFormatError , <EOL> '<STR_LIT>' ) <EOL> ] ] <EOL> def test_fastq_to_generator_valid_files ( self ) : <EOL> for valid_files , kwargs , components in self . valid_configurations : <EOL> for valid in valid_files : <EOL> for observed_kwargs in kwargs : <EOL> _drop_kwargs ( observed_kwargs , '<STR_LIT>' ) <EOL> constructor = observed_kwargs . get ( '<STR_LIT>' , Sequence ) <EOL> expected_kwargs = { } <EOL> expected_kwargs [ '<STR_LIT>' ] = '<STR_LIT>' <EOL> observed_kwargs [ '<STR_LIT>' ] = '<STR_LIT>' <EOL> expected = [ constructor ( c [ <NUM_LIT:2> ] , <EOL> metadata = { '<STR_LIT:id>' : c [ <NUM_LIT:0> ] , <EOL> '<STR_LIT:description>' : c [ <NUM_LIT:1> ] } , <EOL> positional_metadata = { '<STR_LIT>' : np . array ( c [ <NUM_LIT:3> ] , <EOL> dtype = np . uint8 ) } , <EOL> ** expected_kwargs ) <EOL> for c in components ] <EOL> observed = list ( _fastq_to_generator ( valid , <EOL> ** observed_kwargs ) ) <EOL> self . assertEqual ( len ( expected ) , len ( observed ) ) <EOL> for o , e in zip ( observed , expected ) : <EOL> self . assertEqual ( o , e ) <EOL> def test_fastq_to_generator_invalid_files_all_variants ( self ) : <EOL> for fp , error_type , error_msg_regex in self . invalid_files : <EOL> for variant in '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' : <EOL> with self . assertRaisesRegex ( error_type , error_msg_regex ) : <EOL> list ( _fastq_to_generator ( fp , variant = variant ) ) <EOL> for offset in <NUM_LIT> , <NUM_LIT:64> , <NUM_LIT> , <NUM_LIT> : <EOL> with self . assertRaisesRegex ( error_type , error_msg_regex ) : <EOL> list ( _fastq_to_generator ( fp , phred_offset = offset ) ) <EOL> def test_fastq_to_generator_invalid_files_illumina ( self ) : <EOL> fps = [ get_data_path ( fp ) for fp in <EOL> [ '<STR_LIT>' , <EOL> '<STR_LIT>' ] ] <EOL> for fp in fps : <EOL> with self . assertRaisesRegex ( ValueError , '<STR_LIT>' ) : <EOL> list ( _fastq_to_generator ( fp , variant = '<STR_LIT>' ) ) <EOL> with self . assertRaisesRegex ( ValueError , '<STR_LIT>' ) : <EOL> list ( _fastq_to_generator ( fp , variant = '<STR_LIT>' ) ) <EOL> def test_fastq_to_generator_solexa ( self ) : <EOL> with self . assertRaisesRegex ( ValueError , '<STR_LIT>' ) : <EOL> list ( _fastq_to_generator ( <EOL> get_data_path ( '<STR_LIT>' ) , <EOL> variant = '<STR_LIT>' ) ) <EOL> def test_fastq_to_sequence ( self ) : <EOL> for constructor in [ Sequence , DNA , RNA , Protein ] : <EOL> for valid_files , kwargs , components in self . valid_configurations : <EOL> for valid in valid_files : <EOL> if len ( components ) == <NUM_LIT:0> : <EOL> continue <EOL> for observed_kwargs in kwargs : <EOL> expected_kwargs = { } <EOL> if constructor is RNA : <EOL> observed_kwargs [ '<STR_LIT>' ] = False <EOL> expected_kwargs [ '<STR_LIT>' ] = False <EOL> _drop_kwargs ( observed_kwargs , '<STR_LIT>' ) <EOL> expected_kwargs [ '<STR_LIT>' ] = '<STR_LIT>' <EOL> observed_kwargs [ '<STR_LIT>' ] = '<STR_LIT>' <EOL> seq_num = observed_kwargs . get ( '<STR_LIT>' , <NUM_LIT:1> ) <EOL> c = components [ seq_num - <NUM_LIT:1> ] <EOL> expected = constructor ( <EOL> c [ <NUM_LIT:2> ] , metadata = { '<STR_LIT:id>' : c [ <NUM_LIT:0> ] , <EOL> '<STR_LIT:description>' : c [ <NUM_LIT:1> ] } , <EOL> positional_metadata = { '<STR_LIT>' : np . array ( c [ <NUM_LIT:3> ] , <EOL> dtype = np . uint8 ) } , <EOL> ** expected_kwargs ) <EOL> observed = read ( valid , into = constructor , <EOL> format = '<STR_LIT>' , verify = False , <EOL> ** observed_kwargs ) <EOL> self . assertEqual ( observed , expected ) <EOL> def test_fastq_to_tabular_msa ( self ) : <EOL> class CustomSequence ( GrammaredSequence ) : <EOL> @ classproperty <EOL> @ overrides ( GrammaredSequence ) <EOL> def gap_chars ( cls ) : <EOL> return set ( '<STR_LIT>' ) <EOL> @ classproperty <EOL> @ overrides ( GrammaredSequence ) <EOL> def default_gap_char ( cls ) : <EOL> return '<STR_LIT:->' <EOL> @ classproperty <EOL> @ overrides ( GrammaredSequence ) <EOL> def definite_chars ( cls ) : <EOL> return set ( string . ascii_letters ) <EOL> @ classproperty <EOL> @ overrides ( GrammaredSequence ) <EOL> def degenerate_map ( cls ) : <EOL> return { } <EOL> for valid_files , kwargs , components in self . valid_configurations : <EOL> for valid in valid_files : <EOL> for observed_kwargs in kwargs : <EOL> _drop_kwargs ( observed_kwargs , '<STR_LIT>' ) <EOL> if '<STR_LIT>' not in observed_kwargs : <EOL> observed_kwargs [ '<STR_LIT>' ] = CustomSequence <EOL> constructor = observed_kwargs [ '<STR_LIT>' ] <EOL> expected_kwargs = { } <EOL> expected_kwargs [ '<STR_LIT>' ] = '<STR_LIT>' <EOL> observed_kwargs [ '<STR_LIT>' ] = '<STR_LIT>' <EOL> expected = TabularMSA ( <EOL> [ constructor ( <EOL> c [ <NUM_LIT:2> ] , metadata = { '<STR_LIT:id>' : c [ <NUM_LIT:0> ] , <EOL> '<STR_LIT:description>' : c [ <NUM_LIT:1> ] } , <EOL> positional_metadata = { '<STR_LIT>' : np . array ( c [ <NUM_LIT:3> ] , <EOL> dtype = np . uint8 ) } , <EOL> ** expected_kwargs ) <EOL> for c in components ] ) <EOL> observed = _fastq_to_tabular_msa ( valid , ** observed_kwargs ) <EOL> self . assertEqual ( observed , expected ) <EOL> def test_fastq_to_tabular_msa_no_constructor ( self ) : <EOL> with self . assertRaisesRegex ( ValueError , '<STR_LIT>' ) : <EOL> _fastq_to_tabular_msa ( get_data_path ( '<STR_LIT>' ) ) <EOL> class TestWriters ( unittest . TestCase ) : <EOL> def setUp ( self ) : <EOL> self . valid_files = [ <EOL> ( [ <EOL> ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , <EOL> [ <NUM_LIT:16> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:20> , <NUM_LIT> ] ) , <EOL> ( '<STR_LIT:bar>' , '<STR_LIT>' , '<STR_LIT>' , <EOL> [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:20> , <NUM_LIT> , <NUM_LIT> ] ) , <EOL> ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , <EOL> [ <NUM_LIT:20> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ] ) <EOL> ] , [ <EOL> ( { '<STR_LIT>' : '<STR_LIT>' } , <EOL> get_data_path ( '<STR_LIT>' ) ) , <EOL> ( { '<STR_LIT>' : <NUM_LIT> } , <EOL> get_data_path ( '<STR_LIT>' ) ) , <EOL> ( { '<STR_LIT>' : '<STR_LIT>' } , <EOL> get_data_path ( '<STR_LIT>' ) ) , <EOL> ( { '<STR_LIT>' : '<STR_LIT>' } , <EOL> get_data_path ( '<STR_LIT>' ) ) , <EOL> ( { '<STR_LIT>' : '<STR_LIT>' , '<STR_LIT>' : '<STR_LIT:%>' , <EOL> '<STR_LIT>' : '<STR_LIT>' } , <EOL> get_data_path ( '<STR_LIT>' ) ) <EOL> ] ) , <EOL> ] <EOL> def test_generator_to_fastq_kwargs_passed ( self ) : <EOL> for components , kwargs_expected_fp in self . valid_files : <EOL> for kwargs , expected_fp in kwargs_expected_fp : <EOL> def gen ( ) : <EOL> for c in components : <EOL> yield Sequence ( <EOL> c [ <NUM_LIT:2> ] , metadata = { '<STR_LIT:id>' : c [ <NUM_LIT:0> ] , '<STR_LIT:description>' : c [ <NUM_LIT:1> ] } , <EOL> positional_metadata = { '<STR_LIT>' : c [ <NUM_LIT:3> ] } ) <EOL> fh = io . StringIO ( ) <EOL> _generator_to_fastq ( gen ( ) , fh , ** kwargs ) <EOL> observed = fh . getvalue ( ) <EOL> fh . close ( ) <EOL> with io . open ( expected_fp ) as f : <EOL> expected = f . read ( ) <EOL> self . assertEqual ( observed , expected ) <EOL> def test_sequence_to_fastq_kwargs_passed ( self ) : <EOL> for constructor in [ Sequence , DNA , RNA , Protein ] : <EOL> for components , kwargs_expected_fp in self . valid_files : <EOL> for expected_kwargs , expected_fp in kwargs_expected_fp : <EOL> observed_kwargs = { } <EOL> if constructor is RNA : <EOL> observed_kwargs [ '<STR_LIT>' ] = False <EOL> expected_kwargs [ '<STR_LIT>' ] = '<STR_LIT>' <EOL> observed_kwargs [ '<STR_LIT>' ] = '<STR_LIT>' <EOL> fh = io . StringIO ( ) <EOL> for c in components : <EOL> obj = constructor ( <EOL> c [ <NUM_LIT:2> ] , <EOL> metadata = { '<STR_LIT:id>' : c [ <NUM_LIT:0> ] , '<STR_LIT:description>' : c [ <NUM_LIT:1> ] } , <EOL> positional_metadata = { '<STR_LIT>' : c [ <NUM_LIT:3> ] } , <EOL> ** observed_kwargs ) <EOL> write ( obj , into = fh , format = '<STR_LIT>' , ** expected_kwargs ) <EOL> observed = fh . getvalue ( ) <EOL> fh . close ( ) <EOL> with io . open ( expected_fp ) as f : <EOL> expected = f . read ( ) <EOL> self . assertEqual ( observed , expected ) <EOL> def test_tabular_msa_to_fastq_kwargs_passed ( self ) : <EOL> for components , kwargs_expected_fp in self . valid_files : <EOL> for kwargs , expected_fp in kwargs_expected_fp : <EOL> obj = TabularMSA ( [ <EOL> Protein ( c [ <NUM_LIT:2> ] , metadata = { '<STR_LIT:id>' : c [ <NUM_LIT:0> ] , '<STR_LIT:description>' : c [ <NUM_LIT:1> ] } , <EOL> positional_metadata = { '<STR_LIT>' : c [ <NUM_LIT:3> ] } , <EOL> lowercase = '<STR_LIT>' ) <EOL> for c in components ] ) <EOL> fh = io . StringIO ( ) <EOL> kwargs [ '<STR_LIT>' ] = '<STR_LIT>' <EOL> _tabular_msa_to_fastq ( obj , fh , ** kwargs ) <EOL> observed = fh . getvalue ( ) <EOL> fh . close ( ) <EOL> with io . open ( expected_fp ) as f : <EOL> expected = f . read ( ) <EOL> self . assertEqual ( observed , expected ) <EOL> def test_generator_to_fastq_no_qual ( self ) : <EOL> def gen ( ) : <EOL> yield Sequence ( '<STR_LIT>' , <EOL> metadata = { '<STR_LIT:id>' : '<STR_LIT:foo>' , '<STR_LIT:description>' : '<STR_LIT:bar>' } , <EOL> positional_metadata = { '<STR_LIT>' : range ( <NUM_LIT:4> ) } ) <EOL> yield Sequence ( '<STR_LIT>' , metadata = { '<STR_LIT:id>' : '<STR_LIT:foo>' , '<STR_LIT:description>' : '<STR_LIT:bar>' } ) <EOL> with self . assertRaisesRegex ( ValueError , '<STR_LIT>' ) : <EOL> _generator_to_fastq ( gen ( ) , io . StringIO ( ) , variant = '<STR_LIT>' ) <EOL> class TestConversions ( unittest . TestCase ) : <EOL> def setUp ( self ) : <EOL> self . conversions = [ <EOL> ( get_data_path ( '<STR_LIT>' ) , <EOL> get_data_path ( '<STR_LIT>' ) , [ <EOL> ( { '<STR_LIT>' : '<STR_LIT>' } , { '<STR_LIT>' : <NUM_LIT> } ) , <EOL> ] ) , <EOL> ( get_data_path ( '<STR_LIT>' ) , <EOL> get_data_path ( '<STR_LIT>' ) , [ <EOL> ( { '<STR_LIT>' : '<STR_LIT>' } , { '<STR_LIT>' : '<STR_LIT>' } ) , <EOL> ( { '<STR_LIT>' : <NUM_LIT> } , { '<STR_LIT>' : '<STR_LIT>' } ) , <EOL> ( { '<STR_LIT>' : '<STR_LIT>' } , { '<STR_LIT>' : <NUM_LIT> } ) <EOL> ] ) , <EOL> ( get_data_path ( '<STR_LIT>' ) , <EOL> get_data_path ( '<STR_LIT>' ) , [ <EOL> ( { '<STR_LIT>' : '<STR_LIT>' } , { '<STR_LIT>' : '<STR_LIT>' } ) , <EOL> ( { '<STR_LIT>' : <NUM_LIT> } , { '<STR_LIT>' : '<STR_LIT>' } ) , <EOL> ( { '<STR_LIT>' : '<STR_LIT>' } , { '<STR_LIT>' : <NUM_LIT:64> } ) <EOL> ] ) , <EOL> ( get_data_path ( '<STR_LIT>' ) , <EOL> get_data_path ( '<STR_LIT>' ) , [ <EOL> ( { '<STR_LIT>' : '<STR_LIT>' } , { '<STR_LIT>' : '<STR_LIT>' } ) , <EOL> ( { '<STR_LIT>' : <NUM_LIT> } , { '<STR_LIT>' : '<STR_LIT>' } ) , <EOL> ( { '<STR_LIT>' : '<STR_LIT>' } , { '<STR_LIT>' : <NUM_LIT> } ) <EOL> ] ) , <EOL> ( get_data_path ( '<STR_LIT>' ) , <EOL> get_data_path ( '<STR_LIT>' ) , [ <EOL> ( { '<STR_LIT>' : '<STR_LIT>' } , { '<STR_LIT>' : '<STR_LIT>' } ) , <EOL> ( { '<STR_LIT>' : <NUM_LIT> } , { '<STR_LIT>' : '<STR_LIT>' } ) , <EOL> ( { '<STR_LIT>' : '<STR_LIT>' } , { '<STR_LIT>' : <NUM_LIT:64> } ) <EOL> ] ) , <EOL> ( get_data_path ( '<STR_LIT>' ) , <EOL> get_data_path ( '<STR_LIT>' ) , [ <EOL> ( { '<STR_LIT>' : '<STR_LIT>' } , { '<STR_LIT>' : '<STR_LIT>' } ) , <EOL> ( { '<STR_LIT>' : <NUM_LIT> } , { '<STR_LIT>' : '<STR_LIT>' } ) , <EOL> ( { '<STR_LIT>' : '<STR_LIT>' } , { '<STR_LIT>' : <NUM_LIT> } ) <EOL> ] ) , <EOL> ( get_data_path ( '<STR_LIT>' ) , <EOL> get_data_path ( '<STR_LIT>' ) , [ <EOL> ( { '<STR_LIT>' : '<STR_LIT>' } , { '<STR_LIT>' : '<STR_LIT>' } ) , <EOL> ( { '<STR_LIT>' : <NUM_LIT> } , { '<STR_LIT>' : '<STR_LIT>' } ) , <EOL> ( { '<STR_LIT>' : '<STR_LIT>' } , { '<STR_LIT>' : <NUM_LIT:64> } ) <EOL> ] ) , <EOL> ( get_data_path ( '<STR_LIT>' ) , <EOL> get_data_path ( '<STR_LIT>' ) , [ <EOL> ( { '<STR_LIT>' : '<STR_LIT>' } , { '<STR_LIT>' : '<STR_LIT>' } ) , <EOL> ( { '<STR_LIT>' : <NUM_LIT:64> } , { '<STR_LIT>' : '<STR_LIT>' } ) , <EOL> ( { '<STR_LIT>' : '<STR_LIT>' } , { '<STR_LIT>' : <NUM_LIT:64> } ) <EOL> ] ) , <EOL> ( get_data_path ( '<STR_LIT>' ) , <EOL> get_data_path ( '<STR_LIT>' ) , [ <EOL> ( { '<STR_LIT>' : '<STR_LIT>' } , { '<STR_LIT>' : '<STR_LIT>' } ) , <EOL> ( { '<STR_LIT>' : <NUM_LIT:64> } , { '<STR_LIT>' : '<STR_LIT>' } ) , <EOL> ( { '<STR_LIT>' : '<STR_LIT>' } , { '<STR_LIT>' : <NUM_LIT> } ) <EOL> ] ) , <EOL> ( get_data_path ( '<STR_LIT>' ) , <EOL> get_data_path ( '<STR_LIT>' ) , [ <EOL> ( { '<STR_LIT>' : '<STR_LIT>' } , { '<STR_LIT>' : '<STR_LIT>' } ) , <EOL> ( { '<STR_LIT>' : <NUM_LIT> } , { '<STR_LIT>' : '<STR_LIT>' } ) , <EOL> ( { '<STR_LIT>' : '<STR_LIT>' } , { '<STR_LIT>' : <NUM_LIT> } ) <EOL> ] ) , <EOL> ( get_data_path ( '<STR_LIT>' ) , <EOL> get_data_path ( '<STR_LIT>' ) , [ <EOL> ( { '<STR_LIT>' : '<STR_LIT>' } , { '<STR_LIT>' : '<STR_LIT>' } ) , <EOL> ( { '<STR_LIT>' : <NUM_LIT> } , { '<STR_LIT>' : '<STR_LIT>' } ) , <EOL> ( { '<STR_LIT>' : '<STR_LIT>' } , { '<STR_LIT>' : <NUM_LIT:64> } ) <EOL> ] ) , <EOL> ( get_data_path ( '<STR_LIT>' ) , <EOL> get_data_path ( '<STR_LIT>' ) , [ <EOL> ( { '<STR_LIT>' : '<STR_LIT>' } , { '<STR_LIT>' : '<STR_LIT>' } ) , <EOL> ( { '<STR_LIT>' : <NUM_LIT> } , { '<STR_LIT>' : '<STR_LIT>' } ) , <EOL> ( { '<STR_LIT>' : '<STR_LIT>' } , { '<STR_LIT>' : <NUM_LIT> } ) <EOL> ] ) , <EOL> ( get_data_path ( '<STR_LIT>' ) , <EOL> get_data_path ( '<STR_LIT>' ) , [ <EOL> ( { '<STR_LIT>' : '<STR_LIT>' } , { '<STR_LIT>' : '<STR_LIT>' } ) , <EOL> ( { '<STR_LIT>' : <NUM_LIT> } , { '<STR_LIT>' : '<STR_LIT>' } ) , <EOL> ( { '<STR_LIT>' : '<STR_LIT>' } , { '<STR_LIT>' : <NUM_LIT:64> } ) <EOL> ] ) , <EOL> ( get_data_path ( '<STR_LIT>' ) , <EOL> get_data_path ( '<STR_LIT>' ) , [ <EOL> ( { '<STR_LIT>' : '<STR_LIT>' } , { '<STR_LIT>' : '<STR_LIT>' } ) , <EOL> ( { '<STR_LIT>' : <NUM_LIT> } , { '<STR_LIT>' : '<STR_LIT>' } ) , <EOL> ( { '<STR_LIT>' : '<STR_LIT>' } , { '<STR_LIT>' : <NUM_LIT> } ) <EOL> ] ) , <EOL> ( get_data_path ( '<STR_LIT>' ) , <EOL> get_data_path ( '<STR_LIT>' ) , [ <EOL> ( { '<STR_LIT>' : '<STR_LIT>' } , { '<STR_LIT>' : '<STR_LIT>' } ) , <EOL> ( { '<STR_LIT>' : <NUM_LIT> } , { '<STR_LIT>' : '<STR_LIT>' } ) , <EOL> ( { '<STR_LIT>' : '<STR_LIT>' } , { '<STR_LIT>' : <NUM_LIT:64> } ) <EOL> ] ) , <EOL> ] <EOL> def test_conversion ( self ) : <EOL> for from_fp , to_fp , kwargs in self . conversions : <EOL> for from_kwargs , to_kwargs in kwargs : <EOL> read_gen = _fastq_to_generator ( from_fp , ** from_kwargs ) <EOL> fh = io . StringIO ( ) <EOL> with warnings . catch_warnings ( record = True ) : <EOL> warnings . simplefilter ( "<STR_LIT:ignore>" ) <EOL> _generator_to_fastq ( read_gen , fh , ** to_kwargs ) <EOL> obs = fh . getvalue ( ) <EOL> fh . close ( ) <EOL> with io . open ( to_fp ) as fh : <EOL> exp = fh . read ( ) <EOL> self . assertEqual ( obs , exp ) <EOL> if __name__ == '<STR_LIT:__main__>' : <EOL> unittest . main ( ) </s>
