Hi Etienne,

On Fri, 30 Dec 2022 16:01:00 +0100 =?utf-8?Q?=C3=89tienne?= Mollier 
<emoll...@emlwks999.eu> wrote: 
> Nilesh Patra, on 2022-12-30:
> >   File "/<<PKGBUILDDIR>>/setup.py", line 130, in <module>
> >     ext_modules=get_ext_modules(),
> >                 ^^^^^^^^^^^^^^^^^
> >   File "/<<PKGBUILDDIR>>/setup.py", line 81, in get_ext_modules
> >     extra_link_args=pysam.get_libraries(),
> >                     ^^^^^^^^^^^^^^^^^^^^^
> >   File "/usr/lib/python3/dist-packages/pysam/__init__.py", line 100, in 
> > get_libraries
> >     return [os.path.join(dirname, x + so) for x in pysam_libs]
> >            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> >   File "/usr/lib/python3/dist-packages/pysam/__init__.py", line 100, in 
> > <listcomp>
> >     return [os.path.join(dirname, x + so) for x in pysam_libs]
> >                                   ~~^~~~
> > TypeError: can only concatenate str (not "NoneType") to str
> 
> Thanks for catching this, I confirm I can reproduce the error
> without pairtools in the loop.  Given the reproducer.py below:
> 
>       import pysam
>       for lib in pysam.get_libraries():
>           print(lib)
> 
> I do get the error with python3.11:
> 
>       $ python3.11 reproducer.py
>       Traceback (most recent call last):
>         File "/home/emollier/tmp/reproducer.py", line 2, in <module>
>           for lib in pysam.get_libraries():
>                      ^^^^^^^^^^^^^^^^^^^^^
>         File "/usr/lib/python3/dist-packages/pysam/__init__.py", line 100, in 
> get_libraries
>           return [os.path.join(dirname, x + so) for x in pysam_libs]
>                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>         File "/usr/lib/python3/dist-packages/pysam/__init__.py", line 100, in 
> <listcomp>
>           return [os.path.join(dirname, x + so) for x in pysam_libs]
>                                         ~~^~~~
>       TypeError: can only concatenate str (not "NoneType") to str
> 
> Besides, the error looks genuine since in python3.10, the output
> seems to return the expected result:

I believe I have fixed this particular problem in next pysam upload. However, 
the issue
with bam_dup1 and a bunch of other functions in pysam still remains.
I had to hack around by applying this patch in pairtools

        
https://salsa.debian.org/med-team/pairtools/-/blob/master/debian/patches/fix-pysam-ftbfs.patch

IMHO this really is un-called for, as pysam should resolve these things. In 
particular,
pysam declared in pysam/libchtslib.pxd and there are also a bunch of htslib 
imports in
htslib_util.h but probably those function defs have been removed in those 
htslib headers.

In particular we are likely bitten by htslib vers moving async with what pysam 
is expecting.
These should be fixed prior to release I guess :)

>       $ python3.10 reproducer.py

Curious -- what script is this? :)

-- 
Best,
Nilesh

Attachment: signature.asc
Description: PGP signature

Reply via email to