Re: Old generated binary dependencies after renaming psycopg

2023-01-30 Thread Tomasz Rybak
On Tue, 2023-01-17 at 23:26 +, Scott Kitterman wrote:
> 
[ cut ]
> 
> You'll need to add a py3dist-overrides file in /debian.  The details are in 
> the dh-python or pybuild documentation.  I don't recall where.
> 

Thanks for tip. Summary, for others with similar problems:
Solution is described in dh-python documentation
(man dh_python3, section dependencies).

Mapping of name psyscopg to python3-psycopg3 is in file
/usr/share/dh-python/dist/cpython3_fallback, provided
by dh-python. It's quite long file, containing many
of such translations.

I created debian/python3-psycopg.pydist which got installed
to /usr/share/python3/dist/python3-psycopg, and provided proper
mapping. I guess when mapping in dh-python is fixed, I'll be
able to drop *.pydist files.

Best regards, and thanks for help!

-- 
Tomasz Rybak, Debian Developer 
GPG: A565 CE64 F866 A258 4DDC F9C7 ECB7 3E37 E887 AA8C


signature.asc
Description: This is a digitally signed message part


Re: Remaining numpy 1.24 issues on 32bit architectures

2023-01-30 Thread Andreas Tille
Hi Nilesh,

Am Mon, Jan 30, 2023 at 05:07:37PM +0530 schrieb Nilesh Patra:
> 
> On Mon, Jan 30, 2023 at 09:12:57AM +0100, Andreas Tille wrote:
> > I made some tiny steps forward ("only" 84 failures instead of 89 when I
> > wrote my first mail) in the numpy 1.24 migration for 32bit architectures
> > but I'm facing issues I do not have a real clue for.  In
> > 
> >
> > https://salsa.debian.org/med-team/python-skbio/-/blob/master/debian/patches/numpy-1.24.patch#L123-L126
> 
> Apologies for pointing the discussion into an orthogonal direction for
> once. Ofcourse, we could try fixing these, but if you look closely, skbio
> has never built on 32 bit archs ever since around 2016 on i386[3] and
> it has never built on the rest of 32 bit ever since it entered debian[4]
> and now this new upstream FTBFS that you point to, won't really block
> migration in any way.

Hmmm, I have checked
   https://buildd.debian.org/status/package.php?p=python-skbio
before I started to investigate time into this and it says `uncompiled`
for the 32bit architectures.
 
> So my question is this: Why are we trying hard to fix this on 32-bit _now_
> given that the upstream support has never been solid for this package on
> 32-bit archs?

I admit the 0.5.8-2 has migrated which I did not expected since when
I was looking excuses contained those build problems.

> > ...
> > which obviosly[2] failed.  I wonder whether someone might give some
> > hints how to get dtypes consistently to one integer representation which
> > is the background of nearly all these test suite issues.
> 
> I can think of two alternatives to fix this:
> 
> 1. There are a few type conversions to "int" (.astype(int)) in the skbio 
> source code.
> This defaults to 32-bit integer type on 32-bit machines. Explicitly
> casting them to 64-bit can fix this. I happened to write a similar patch
> for another package recently, see[5] if it helps.
> 
> 2. Just ignore datatypes while comparing pandas dataframes with
> `check_dtype` parameter. An example/reference patch here[6]

Thanks for the additional hints (and have a nice trip).

Kind regards
   Andreas.

> > > [1] 
> > > https://buildd.debian.org/status/package.php?p=python-skbio&suite=experimental
> > [2] https://salsa.debian.org/med-team/python-skbio/-/jobs/3868951
> [3]: https://buildd.debian.org/status/logs.php?pkg=python-skbio&arch=i386
> [4]:https://buildd.debian.org/status/logs.php?pkg=python-skbio&arch=armhf
> [5]: 
> https://salsa.debian.org/med-team/python-bioframe/-/blob/master/debian/patches/32-bits.patch
> [6]: 
> https://salsa.debian.org/python-team/packages/python-upsetplot/-/blob/master/debian/patches/ignore-dtype-while-asserting.patch
> 
> -- 
> Best,
> Nilesh



-- 
http://fam-tille.de



Re: Remaining numpy 1.24 issues on 32bit architectures

2023-01-30 Thread Nilesh Patra
Hi,

On Mon, Jan 30, 2023 at 09:12:57AM +0100, Andreas Tille wrote:
> I made some tiny steps forward ("only" 84 failures instead of 89 when I
> wrote my first mail) in the numpy 1.24 migration for 32bit architectures
> but I'm facing issues I do not have a real clue for.  In
> 
>
> https://salsa.debian.org/med-team/python-skbio/-/blob/master/debian/patches/numpy-1.24.patch#L123-L126

Apologies for pointing the discussion into an orthogonal direction for
once. Ofcourse, we could try fixing these, but if you look closely, skbio
has never built on 32 bit archs ever since around 2016 on i386[3] and
it has never built on the rest of 32 bit ever since it entered debian[4]
and now this new upstream FTBFS that you point to, won't really block
migration in any way.

So my question is this: Why are we trying hard to fix this on 32-bit _now_
given that the upstream support has never been solid for this package on
32-bit archs?

> ...
> which obviosly[2] failed.  I wonder whether someone might give some
> hints how to get dtypes consistently to one integer representation which
> is the background of nearly all these test suite issues.

I can think of two alternatives to fix this:

1. There are a few type conversions to "int" (.astype(int)) in the skbio source 
code.
This defaults to 32-bit integer type on 32-bit machines. Explicitly
casting them to 64-bit can fix this. I happened to write a similar patch
for another package recently, see[5] if it helps.

2. Just ignore datatypes while comparing pandas dataframes with
`check_dtype` parameter. An example/reference patch here[6]

> > [1] 
> > https://buildd.debian.org/status/package.php?p=python-skbio&suite=experimental
> [2] https://salsa.debian.org/med-team/python-skbio/-/jobs/3868951
[3]: https://buildd.debian.org/status/logs.php?pkg=python-skbio&arch=i386
[4]:https://buildd.debian.org/status/logs.php?pkg=python-skbio&arch=armhf
[5]: 
https://salsa.debian.org/med-team/python-bioframe/-/blob/master/debian/patches/32-bits.patch
[6]: 
https://salsa.debian.org/python-team/packages/python-upsetplot/-/blob/master/debian/patches/ignore-dtype-while-asserting.patch

-- 
Best,
Nilesh


signature.asc
Description: PGP signature


Re: Remaining numpy 1.24 issues on 32bit architectures

2023-01-30 Thread Andreas Tille
Hi,

I made some tiny steps forward ("only" 84 failures instead of 89 when I
wrote my first mail) in the numpy 1.24 migration for 32bit architectures
but I'm facing issues I do not have a real clue for.  In

   
https://salsa.debian.org/med-team/python-skbio/-/blob/master/debian/patches/numpy-1.24.patch#L123-L126

I tried three variants how I could fix

___ AlphaDiversityTests.test_no_ids 
self = 
def test_no_ids(self):
# expected values hand-calculated
expected = pd.Series([3, 3, 3, 3])
# All this does not help
# expected = pd.Series(np.array([3, 3, 3, 3], int32))
# actual = np.int64(alpha_diversity('observed_otus', self.table1))
# actual = np.dtype('int64').type(alpha_diversity('observed_otus', 
self.table1))
actual = alpha_diversity('observed_otus', self.table1)
>   assert_series_almost_equal(actual, expected)
skbio/diversity/tests/test_driver.py:260: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
left = 03
13
23
33
dtype: int32
right = 03
13
23
33
dtype: int64
def assert_series_almost_equal(left, right):
# pass all kwargs to ensure this function has consistent behavior even 
if
# `assert_series_equal`'s defaults change
>   pdt.assert_series_equal(left, right,
check_dtype=True,
check_index_type=True,
check_series_type=True,
check_names=True,
check_exact=False,
check_datetimelike_compat=False,
obj='Series')
E   AssertionError: Attributes of Series are different
E   
E   Attribute "dtype" are different
E   [left]:  int32
E   [right]: int64
skbio/util/_testing.py:323: AssertionError
 AlphaDiversityTests.test_observed_otus 
self = 
def test_observed_otus(self):
# expected values hand-calculated
expected = pd.Series([3, 3, 3, 3], index=self.sids1)
actual = alpha_diversity('observed_otus', self.table1, self.sids1)
>   assert_series_almost_equal(actual, expected)
skbio/diversity/tests/test_driver.py:223: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
left = A3
B3
C3
D3
dtype: int32
right = A3
B3
C3
D3
dtype: int64
def assert_series_almost_equal(left, right):
# pass all kwargs to ensure this function has consistent behavior even 
if
# `assert_series_equal`'s defaults change
>   pdt.assert_series_equal(left, right,
check_dtype=True,
check_index_type=True,
check_series_type=True,
check_names=True,
check_exact=False,
check_datetimelike_compat=False,
obj='Series')
E   AssertionError: Attributes of Series are different
E   
E   Attribute "dtype" are different
E   [left]:  int32
E   [right]: int64
skbio/util/_testing.py:323: AssertionError
__ AlphaDiversityTests.test_optimized __
self = 
def test_optimized(self):
# calling optimized faith_pd gives same results as calling unoptimized
# version
>   optimized = alpha_diversity('faith_pd', self.table1, tree=self.tree1,
otu_ids=self.oids1)
skbio/diversity/tests/test_driver.py:265: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 


which obviosly[2] failed.  I wonder whether someone might give some
hints how to get dtypes consistently to one integer representation which
is the background of nearly all these test suite issues.

Kind regards
Andreas.

[2] https://salsa.debian.org/med-team/python-skbio/-/jobs/3868951

Am Sun, Jan 29, 2023 at 12:11:15PM +0100 schrieb Andreas Tille:
> Hi,
> 
> I think there are some remaining issues with numpy 1.24 migration on 32
> bit architectures[1].
> 
> Here is one example:
> 
> _ TestSequence.test_getitem_with_slice_has_positional_metadata 
> _
> 
> self =  testMethod=test_getitem_with_slice_has_positional_metadata>
> 
> def test_getitem_with_slice_has_positional_metadata(self):
> s = "0123456789abcdef"
> length = len(s)
> seq = Sequence(s, metadata={'id': 'id3', 'description': 'dsc3'},
>positional_metadata={'quality': np.arange(length)})
> 
> eseq = Sequence("012", metadata={'id': 'id3', 'description': 'dsc3'},
> positional_metadata={'quality': np.arange(3)})
> self.assertEqual(seq[0:3], eseq)
> self.assertEqual(seq[:3], eseq)
> self.assertEqu