@@ -2320,38 +2320,30 @@ cdef class IteratorRowSelection(IteratorRow):
23202320 raise IOError (read_failure_reason(ret))
23212321
23222322
2323- cdef int __advance_nofilter(void * data, bam1_t * b):
2323+ cdef int __advance_nofilter(void * data, bam1_t * b) noexcept nogil :
23242324 ''' advance without any read filtering.
23252325 '''
23262326 cdef __iterdata * d = < __iterdata* > data
2327- cdef int ret
2328- with nogil:
2329- ret = sam_itr_next(d.htsfile, d.iter, b)
2330- return ret
2327+ return sam_itr_next(d.htsfile, d.iter, b)
23312328
23322329
2333- cdef int __advance_raw_nofilter(void * data, bam1_t * b):
2330+ cdef int __advance_raw_nofilter(void * data, bam1_t * b) noexcept nogil :
23342331 ''' advance (without iterator) without any read filtering.
23352332 '''
23362333 cdef __iterdata * d = < __iterdata* > data
2337- cdef int ret
2338- with nogil:
2339- ret = sam_read1(d.htsfile, d.header, b)
2340- return ret
2334+ return sam_read1(d.htsfile, d.header, b)
23412335
23422336
2343- cdef int __advance_all(void * data, bam1_t * b):
2337+ cdef int __advance_all(void * data, bam1_t * b) noexcept nogil :
23442338 ''' only use reads for pileup passing basic filters such as
23452339
23462340 BAM_FUNMAP, BAM_FSECONDARY, BAM_FQCFAIL, BAM_FDUP
23472341 '''
23482342
23492343 cdef __iterdata * d = < __iterdata* > data
2350- cdef mask = BAM_FUNMAP | BAM_FSECONDARY | BAM_FQCFAIL | BAM_FDUP
23512344 cdef int ret
23522345 while 1 :
2353- with nogil:
2354- ret = sam_itr_next(d.htsfile, d.iter, b)
2346+ ret = sam_itr_next(d.htsfile, d.iter, b)
23552347 if ret < 0 :
23562348 break
23572349 if b.core.flag & d.flag_filter:
@@ -2360,7 +2352,7 @@ cdef int __advance_all(void *data, bam1_t *b):
23602352 return ret
23612353
23622354
2363- cdef int __advance_raw_all(void * data, bam1_t * b):
2355+ cdef int __advance_raw_all(void * data, bam1_t * b) noexcept nogil :
23642356 ''' only use reads for pileup passing basic filters such as
23652357
23662358 BAM_FUNMAP, BAM_FSECONDARY, BAM_FQCFAIL, BAM_FDUP
@@ -2369,8 +2361,7 @@ cdef int __advance_raw_all(void *data, bam1_t *b):
23692361 cdef __iterdata * d = < __iterdata* > data
23702362 cdef int ret
23712363 while 1 :
2372- with nogil:
2373- ret = sam_read1(d.htsfile, d.header, b)
2364+ ret = sam_read1(d.htsfile, d.header, b)
23742365 if ret < 0 :
23752366 break
23762367 if b.core.flag & d.flag_filter:
@@ -2379,7 +2370,7 @@ cdef int __advance_raw_all(void *data, bam1_t *b):
23792370 return ret
23802371
23812372
2382- cdef int __advance_samtools(void * data, bam1_t * b) :
2373+ cdef int __advance_samtools(void * data, bam1_t * b) nogil :
23832374 ''' advance using same filter and read processing as in
23842375 the samtools pileup.
23852376 '''
@@ -2388,8 +2379,7 @@ cdef int __advance_samtools(void * data, bam1_t * b):
23882379 cdef int q
23892380
23902381 while 1 :
2391- with nogil:
2392- ret = sam_itr_next(d.htsfile, d.iter, b) if d.iter else sam_read1(d.htsfile, d.header, b)
2382+ ret = sam_itr_next(d.htsfile, d.iter, b) if d.iter else sam_read1(d.htsfile, d.header, b)
23932383 if ret < 0 :
23942384 break
23952385 if b.core.flag & d.flag_filter:
@@ -2402,13 +2392,7 @@ cdef int __advance_samtools(void * data, bam1_t * b):
24022392 if d.seq != NULL :
24032393 free(d.seq)
24042394 d.tid = b.core.tid
2405- with nogil:
2406- d.seq = faidx_fetch_seq(
2407- d.fastafile,
2408- d.header.target_name[d.tid],
2409- 0 , MAX_POS,
2410- & d.seq_len)
2411-
2395+ d.seq = faidx_fetch_seq(d.fastafile, d.header.target_name[d.tid], 0 , MAX_POS, & d.seq_len)
24122396 if d.seq == NULL :
24132397 raise ValueError (
24142398 " reference sequence for '{}' (tid={}) not found" .format(
@@ -2560,19 +2544,13 @@ cdef class IteratorColumn:
25602544
25612545 if self .stepper is None or self .stepper == " all" :
25622546 with nogil:
2563- self .pileup_iter = bam_mplp_init(1 ,
2564- < bam_plp_auto_f> & __advance_all,
2565- data)
2547+ self .pileup_iter = bam_mplp_init(1 , __advance_all, data)
25662548 elif self .stepper == " nofilter" :
25672549 with nogil:
2568- self .pileup_iter = bam_mplp_init(1 ,
2569- < bam_plp_auto_f> & __advance_nofilter,
2570- data)
2550+ self .pileup_iter = bam_mplp_init(1 , __advance_nofilter, data)
25712551 elif self .stepper == " samtools" :
25722552 with nogil:
2573- self .pileup_iter = bam_mplp_init(1 ,
2574- < bam_plp_auto_f> & __advance_samtools,
2575- data)
2553+ self .pileup_iter = bam_mplp_init(1 , < bam_plp_auto_f> __advance_samtools, data)
25762554 else :
25772555 raise ValueError (
25782556 " unknown stepper option `%s ` in IteratorColumn" % self .stepper)
@@ -2609,19 +2587,13 @@ cdef class IteratorColumn:
26092587
26102588 if self .stepper is None or self .stepper == " all" :
26112589 with nogil:
2612- self .pileup_iter = bam_mplp_init(1 ,
2613- < bam_plp_auto_f> & __advance_raw_all,
2614- data)
2590+ self .pileup_iter = bam_mplp_init(1 , __advance_raw_all, data)
26152591 elif self .stepper == " nofilter" :
26162592 with nogil:
2617- self .pileup_iter = bam_mplp_init(1 ,
2618- < bam_plp_auto_f> & __advance_raw_nofilter,
2619- data)
2593+ self .pileup_iter = bam_mplp_init(1 , __advance_raw_nofilter, data)
26202594 elif self .stepper == " samtools" :
26212595 with nogil:
2622- self .pileup_iter = bam_mplp_init(1 ,
2623- < bam_plp_auto_f> & __advance_samtools,
2624- data)
2596+ self .pileup_iter = bam_mplp_init(1 , < bam_plp_auto_f> __advance_samtools, data)
26252597 else :
26262598 raise ValueError (
26272599 " unknown stepper option `%s ` in IteratorColumn" % self .stepper)
0 commit comments