[Debian-med-packaging] Bug#1079956: Bug#1079956: Bug#1079956: neo: Tests fail with python-quantities 0.16.0

Étienne Mollier emollier at debian.org
Wed Oct 23 21:46:55 BST 2024


I pushed some changes to salsa, but I'm still running into:

	______________________ NixIOWriteTest.test_multiref_write ______________________
	
	self = <neo.test.iotest.test_nixio.NixIOWriteTest testMethod=test_multiref_write>
	
	    def test_multiref_write(self):
	        blk = Block("blk1")
	        signal = AnalogSignal(name="sig1", signal=[0, 1, 2], units="mV", sampling_period=pq.Quantity(1, "ms"))
	        othersignal = IrregularlySampledSignal(
	            name="i1", signal=[0, 0, 0], units="mV", times=[1, 2, 3], time_units="ms"
	        )
	        imgseq = ImageSequence(
	            name="img1",
	            image_data=self.rquant((10, 20, 10), pq.mV),
	            frame_duration=pq.Quantity(1, "ms"),
	            spatial_scale=pq.meter,
	        )
	        event = Event(name="Evee", times=[0.3, 0.42], units="year")
	        epoch = Epoch(name="epoche", times=[0.1, 0.2] * pq.min, durations=[0.5, 0.5] * pq.min)
	        st = SpikeTrain(name="the train of spikes", times=[0.1, 0.2, 10.3], t_stop=11, units="us")
	    
	        for idx in range(3):
	            segname = "seg" + str(idx)
	            seg = Segment(segname)
	            blk.segments.append(seg)
	            seg.analogsignals.append(signal)
	            seg.imagesequences.append(imgseq)
	            seg.irregularlysampledsignals.append(othersignal)
	            seg.events.append(event)
	            seg.epochs.append(epoch)
	            seg.spiketrains.append(st)
	    
	        chidx = Group(index=[10, 20, 29])
	        seg = blk.segments[0]
	        st = SpikeTrain(name="choochoo", times=[10, 11, 80], t_stop=1000, units="s")
	        seg.spiketrains.append(st)
	        blk.groups.append(chidx)
	        for idx in range(6):
	            unit = Group(name="unit" + str(idx))
	            chidx.add(unit)
	            unit.add(st)
	    
	        self.writer.write_block(blk)
	>       self.compare_blocks([blk], self.reader.blocks)
	
	neo/test/iotest/test_nixio.py:1147: 
	_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
	neo/test/iotest/test_nixio.py:74: in compare_blocks
	    self.compare_segment_group(neoseg, nixgrp)
	neo/test/iotest/test_nixio.py:103: in compare_segment_group
	    self.compare_eests_mtags(neo_eests, nixgroup.multi_tags)
	neo/test/iotest/test_nixio.py:177: in compare_eests_mtags
	    self.compare_epoch_mtag(eest, mtag)
	neo/test/iotest/test_nixio.py:189: in compare_epoch_mtag
	    posquant = create_quantity(pos[:], pos.unit)
	neo/io/nixio.py:78: in create_quantity
	    return pq.Quantity(values, unit)
	/usr/lib/python3/dist-packages/quantities/quantity.py:131: in __new__
	    ret._dimensionality.update(validate_dimensionality(units))
	/usr/lib/python3/dist-packages/quantities/quantity.py:34: in validate_dimensionality
	    return unit_registry[value].dimensionality
	/usr/lib/python3/dist-packages/quantities/registry.py:71: in __getitem__
	    return self.__registry[label]
	_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
	
	self = <quantities.registry.UnitRegistry.__Registry object at 0x7f3784692150>
	string = 'min'
	
	    def __getitem__(self, string):
	    
	        # easy hack to prevent arbitrary evaluation of code
	        all_builtins = dir(builtins)
	        # because we have kilobytes, other bytes we have to remove bytes
	        all_builtins.remove("bytes")
	        # have to deal with octet as well
	        all_builtins.remove("oct")
	        for builtin in all_builtins:
	            if builtin in string:
	>               raise RuntimeError(f"String parsing error for {string}. Enter a string accepted by quantities")
	E               RuntimeError: String parsing error for min. Enter a string accepted by quantities
	
	/usr/lib/python3/dist-packages/quantities/registry.py:28: RuntimeError

This is still a "quantities" error, but stems from somewhere
else.  I've begun to dig into it, but for now I'm not sure that
I understand what happens; I'm not even sure whether neo or
quantities is at fault, it could even stem from python-nixio.
The issue is reproducible on Salsa CI[1].  Looking back at the
original test log[2], I see that it is not a regression, so it
could have been an oversight.

[1]: https://salsa.debian.org/med-team/neo/-/jobs/6478394
[2]: https://ci.debian.net/packages/n/neo/testing/arm64/51068351/#L2518

I may continue digging into it tomorrow evening, unless someone
finds a fix in the meantime.

Hope this helps,
-- 
  .''`.  Étienne Mollier <emollier at debian.org>
 : :' :  pgp: 8f91 b227 c7d6 f2b1 948c  8236 793c f67e 8f0d 11da
 `. `'   sent from /dev/pts/2, please excuse my verbosity
   `-    on air: Teramaze - The Will of Eli
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://alioth-lists.debian.net/pipermail/debian-med-packaging/attachments/20241023/d6f4440c/attachment-0001.sig>


More information about the Debian-med-packaging mailing list