[Debian-pan-maintainers] Bug#1074630: xrayutilities: fails tests with matplotlib 3.8
Dominik Kriegner
kriegner at fzu.cz
Tue Jul 2 12:07:31 BST 2024
I believe I fixed this upstream some time ago:
https://github.com/dkriegner/xrayutilities/commit/8da8fd0fda2a54a23d5e65b6d043f6f808cb06ff
Likely you can patch that in debian easily.
On Tue, Jul 2, 2024 at 12:39 PM Drew Parsons <dparsons at debian.org> wrote:
> Source: xrayutilities
> Version: 1.7.4-1
> Severity: normal
>
> xrayutilities is failing tests with matplotlib 3.8 from experimental
>
> 470s _________________ TestExampleScripts.test_simpack_powdermodel
> __________________
> 470s
> 470s self = <test_examples.TestExampleScripts
> testMethod=test_simpack_powdermodel>
> 470s
> 470s def test(self):
> 470s with tempfile.TemporaryFile(mode='w') as fid:
> 470s env = os.environ.copy()
> 470s env['MPLBACKEND'] = 'agg'
> 470s cmd = [sys.executable, scriptname]
> 470s > subprocess.run(cmd, env=env, cwd=scriptdir, stdout=fid,
> 470s check=True)
> 470s
> 470s tests/test_examples.py:78:
> 470s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _ _ _ _ _
> 470s
> 470s input = None, capture_output = False, timeout = None, check = True
> 470s popenargs = (['/usr/bin/python3.11', 'simpack_powdermodel.py'],)
> 470s kwargs = {'cwd':
> '/tmp/autopkgtest-lxc.jsvdm1mu/downtmp/autopkgtest_tmp/tests/../examples',
> 'env': {'ADTTMP':
> '/tmp/autopkgtest...topkgtest-lxc.jsvdm1mu/downtmp/autopkgtest_tmp', ...},
> 'stdout': <_io.TextIOWrapper name=12 mode='w' encoding='UTF-8'>}
> 470s process = <Popen: returncode: 1 args: ['/usr/bin/python3.11',
> 'simpack_powdermodel.py']>
> 470s stdout = None, stderr = None, retcode = 1
> 470s
> 470s def run(*popenargs,
> 470s input=None, capture_output=False, timeout=None,
> check=False, **kwargs):
> 470s """Run command with arguments and return a CompletedProcess
> instance.
> 470s
> 470s The returned instance will have attributes args, returncode,
> stdout and
> 470s stderr. By default, stdout and stderr are not captured, and
> those attributes
> 470s will be None. Pass stdout=PIPE and/or stderr=PIPE in order to
> capture them,
> 470s or pass capture_output=True to capture both.
> 470s
> 470s If check is True and the exit code was non-zero, it raises a
> 470s CalledProcessError. The CalledProcessError object will have
> the return code
> 470s in the returncode attribute, and output & stderr attributes
> if those streams
> 470s were captured.
> 470s
> 470s If timeout is given, and the process takes too long, a
> TimeoutExpired
> 470s exception will be raised.
> 470s
> 470s There is an optional argument "input", allowing you to
> 470s pass bytes or a string to the subprocess's stdin. If you use
> this argument
> 470s you may not also use the Popen constructor's "stdin"
> argument, as
> 470s it will be used internally.
> 470s
> 470s By default, all communication is in bytes, and therefore any
> "input" should
> 470s be bytes, and the stdout and stderr will be bytes. If in text
> mode, any
> 470s "input" should be a string, and stdout and stderr will be
> strings decoded
> 470s according to locale encoding, or by "encoding" if set. Text
> mode is
> 470s triggered by setting any of text, encoding, errors or
> universal_newlines.
> 470s
> 470s The other arguments are the same as for the Popen constructor.
> 470s """
> 470s if input is not None:
> 470s if kwargs.get('stdin') is not None:
> 470s raise ValueError('stdin and input arguments may not
> both be used.')
> 470s kwargs['stdin'] = PIPE
> 470s
> 470s if capture_output:
> 470s if kwargs.get('stdout') is not None or
> kwargs.get('stderr') is not None:
> 470s raise ValueError('stdout and stderr arguments may not
> be used '
> 470s 'with capture_output.')
> 470s kwargs['stdout'] = PIPE
> 470s kwargs['stderr'] = PIPE
> 470s
> 470s with Popen(*popenargs, **kwargs) as process:
> 470s try:
> 470s stdout, stderr = process.communicate(input,
> timeout=timeout)
> 470s except TimeoutExpired as exc:
> 470s process.kill()
> 470s if _mswindows:
> 470s # Windows accumulates the output in a single
> blocking
> 470s # read() call run on child threads, with the
> timeout
> 470s # being done in a join() on those threads.
> communicate()
> 470s # _after_ kill() is required to collect that and
> add it
> 470s # to the exception.
> 470s exc.stdout, exc.stderr = process.communicate()
> 470s else:
> 470s # POSIX _communicate already populated the output
> so
> 470s # far into the TimeoutExpired exception.
> 470s process.wait()
> 470s raise
> 470s except: # Including KeyboardInterrupt, communicate
> handled that.
> 470s process.kill()
> 470s # We don't call process.wait() as .__exit__ does that
> for us.
> 470s raise
> 470s retcode = process.poll()
> 470s if check and retcode:
> 470s > raise CalledProcessError(retcode, process.args,
> 470s output=stdout, stderr=stderr)
> 470s E subprocess.CalledProcessError: Command
> '['/usr/bin/python3.11', 'simpack_powdermodel.py']' returned non-zero exit
> status 1.
> 470s
> 470s /usr/lib/python3.11/subprocess.py:571: CalledProcessError
> 470s ----------------------------- Captured stderr call
> -----------------------------
> 470s Traceback (most recent call last):
> 470s File
> "/tmp/autopkgtest-lxc.jsvdm1mu/downtmp/autopkgtest_tmp/examples/simpack_powdermodel.py",
> line 137, in <module>
> 470s main()
> 470s File
> "/tmp/autopkgtest-lxc.jsvdm1mu/downtmp/autopkgtest_tmp/examples/simpack_powdermodel.py",
> line 128, in main
> 470s xu.simpack.plot_powder(tt, det, pm, scale='sqrt', mask=mask)
> 470s File
> "/usr/lib/python3/dist-packages/xrayutilities/simpack/powdermodel.py", line
> 584, in plot_powder
> 470s sim.plot(twotheta[mask], label=labelsim, formatspec=formatsim,
> ax=ax)
> 470s File
> "/usr/lib/python3/dist-packages/xrayutilities/simpack/powdermodel.py", line
> 420, in plot
> 470s tax.figure.texts.append(tax.texts.pop())
> 470s ^^^^^^^^^^^^^
> 470s AttributeError: 'ArtistList' object has no attribute 'pop'
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/debian-pan-maintainers/attachments/20240702/9d7d4b5a/attachment-0003.htm>
More information about the Debian-pan-maintainers
mailing list