Package: src:cclib-data
Version: 1.6.2-2
Severity: serious
Tags: ftbfs

Dear maintainer:

During a rebuild of all packages in unstable, your package failed to build:

--------------------------------------------------------------------------------
[...]
 debian/rules binary
dh binary --with python3 --buildsystem pybuild
   dh_update_autotools_config -O--buildsystem=pybuild
   dh_autoreconf -O--buildsystem=pybuild
   dh_auto_configure -O--buildsystem=pybuild
I: pybuild base:310: python3.11 setup.py config
Warning: 'classifiers' should be a list, got type 'filter'
   dh_auto_build -O--buildsystem=pybuild
I: pybuild base:310: /usr/bin/python3 setup.py build
Warning: 'classifiers' should be a list, got type 'filter'
   dh_auto_test -O--buildsystem=pybuild
I: pybuild base:310: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11/build; 
python3.11 -m pytest test
============================= test session starts ==============================
platform linux -- Python 3.11.7, pytest-7.4.3, pluggy-1.3.0

[... snipped ...]

            )
elif extension in ['.bz', '.bz2']:
            # Module 'bz2' is not always importable.
            assert bz2 is not None, "ERROR: module bz2 cannot be imported"
            fileobject = io.TextIOWrapper(bz2.BZ2File(fileobject if fileobject 
else filename, mode), encoding = encoding, errors = errors)
elif fileobject is not None:
            # Assuming that object is text file encoded in utf-8
            # If the file/stream has already been opened, we have no ability to 
handle decoding errors.
            pass
else:
            # Normal text file.
          fileobject = open(filename, mode, encoding = encoding, errors = 
errors)
E           FileNotFoundError: [Errno 2] No such file or directory: 'dummyfile'

/usr/lib/python3/dist-packages/cclib/parser/logfilewrapper.py:210: 
FileNotFoundError
_________________ NormalisesymTest.test_normalisesym_gamessuk __________________

self = <test.parser.testspecificparsers.NormalisesymTest 
testMethod=test_normalisesym_gamessuk>

    def test_normalisesym_gamessuk(self):
        from cclib.parser.gamessukparser import GAMESSUK
      sym = GAMESSUK("dummyfile.txt").normalisesym

test/parser/testspecificparsers.py:33:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/lib/python3/dist-packages/cclib/parser/gamessukparser.py:24: in __init__
    super().__init__(logname="GAMESSUK", *args, **kwargs)
/usr/lib/python3/dist-packages/cclib/parser/logfileparser.py:56: in __init__
    source = FileWrapper(source)
/usr/lib/python3/dist-packages/cclib/parser/logfilewrapper.py:81: in __init__
    filename, fileobject = self.open_log_file(source)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <class 'cclib.parser.logfilewrapper.FileWrapper'>
source = 'dummyfile.txt', mode = 'r', encoding = 'utf-8', errors = 'logerror'

    @classmethod
    def open_log_file(
            self,
            source,
            mode: str = "r",
            encoding: str = "utf-8",
            errors: str = "logerror",
        ) -> typing.Tuple[str, typing.IO]:
        """
        Open a possibly compressed file, returning both the filename of the 
file and an open file object.
        """
        # First, work out what source is (could be a filename, a URL, an open 
file etc).
        if isinstance(source, str) and URL_PATTERN.match(source):
            # This file is a URL.
            try:
                # Cache the file to a temp location.
                response = urlopen(source)
                fileobject = NamedTemporaryFile(delete = True)
                fileobject.write(response.read())
                fileobject.seek(0,0)
fileobject = io.TextIOWrapper(fileobject, encoding = encoding, errors = errors)
                filename = source
except (ValueError, URLError) as error:
                # Maybe no need to raise a different exception?
                raise ValueError(
                    "Encountered an error processing the URL 
'{}'".format(source)
                ) from error
elif hasattr(source, "read") or hasattr(source, "readline"):
            # This file is a file.
            # If this file supports seek, we don't need to do anything.
            # If not, we'll cache it to file.
            if not hasattr(source, "seek") or \
            (hasattr(source, "seekable") and not source.seekable()):
                fileobject = NamedTemporaryFile(delete = True)
                fileobject.write(source.read())
                fileobject.seek(0,0)
fileobject = io.TextIOWrapper(fileobject, encoding = encoding, errors = errors) else:
                fileobject = source
            filename = getattr(source, "name", f"stream {str(type(source))}")
else:
            # This file is something else, assume we can open() it.
            filename = source
            fileobject = None
filename = pathlib.Path(filename)
        extension = filename.suffix
if extension == ".gz":
            fileobject = io.TextIOWrapper(gzip.GzipFile(filename, mode, fileobj 
= fileobject), encoding = encoding, errors = errors)
elif extension == ".zip":
            fileobject = zipfile.ZipFile(fileobject if fileobject else 
filename, mode)
            # TODO: Need to check that we're not leaving any open file objects 
here...
            # TODO: We should be able to handle multiple files...
            assert len(fileobject.namelist()) == 1, "ERROR: Zip file contains more 
than 1 file"
fileobject = io.TextIOWrapper(
                fileobject.open(fileobject.namelist()[0]),
                encoding = encoding, errors = errors
            )
elif extension in ['.bz', '.bz2']:
            # Module 'bz2' is not always importable.
            assert bz2 is not None, "ERROR: module bz2 cannot be imported"
            fileobject = io.TextIOWrapper(bz2.BZ2File(fileobject if fileobject 
else filename, mode), encoding = encoding, errors = errors)
elif fileobject is not None:
            # Assuming that object is text file encoded in utf-8
            # If the file/stream has already been opened, we have no ability to 
handle decoding errors.
            pass
else:
            # Normal text file.
          fileobject = open(filename, mode, encoding = encoding, errors = 
errors)
E           FileNotFoundError: [Errno 2] No such file or directory: 
'dummyfile.txt'

/usr/lib/python3/dist-packages/cclib/parser/logfilewrapper.py:210: 
FileNotFoundError
_________________ NormalisesymTest.test_normalisesym_gaussian __________________

self = <test.parser.testspecificparsers.NormalisesymTest 
testMethod=test_normalisesym_gaussian>

    def test_normalisesym_gaussian(self):
        from cclib.parser.gaussianparser import Gaussian
      sym = Gaussian("dummyfile").normalisesym

test/parser/testspecificparsers.py:40:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/lib/python3/dist-packages/cclib/parser/gaussianparser.py:25: in __init__
    super().__init__(logname="Gaussian", *args, **kwargs)
/usr/lib/python3/dist-packages/cclib/parser/logfileparser.py:56: in __init__
    source = FileWrapper(source)
/usr/lib/python3/dist-packages/cclib/parser/logfilewrapper.py:81: in __init__
    filename, fileobject = self.open_log_file(source)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <class 'cclib.parser.logfilewrapper.FileWrapper'>, source = 'dummyfile'
mode = 'r', encoding = 'utf-8', errors = 'logerror'

    @classmethod
    def open_log_file(
            self,
            source,
            mode: str = "r",
            encoding: str = "utf-8",
            errors: str = "logerror",
        ) -> typing.Tuple[str, typing.IO]:
        """
        Open a possibly compressed file, returning both the filename of the 
file and an open file object.
        """
        # First, work out what source is (could be a filename, a URL, an open 
file etc).
        if isinstance(source, str) and URL_PATTERN.match(source):
            # This file is a URL.
            try:
                # Cache the file to a temp location.
                response = urlopen(source)
                fileobject = NamedTemporaryFile(delete = True)
                fileobject.write(response.read())
                fileobject.seek(0,0)
fileobject = io.TextIOWrapper(fileobject, encoding = encoding, errors = errors)
                filename = source
except (ValueError, URLError) as error:
                # Maybe no need to raise a different exception?
                raise ValueError(
                    "Encountered an error processing the URL 
'{}'".format(source)
                ) from error
elif hasattr(source, "read") or hasattr(source, "readline"):
            # This file is a file.
            # If this file supports seek, we don't need to do anything.
            # If not, we'll cache it to file.
            if not hasattr(source, "seek") or \
            (hasattr(source, "seekable") and not source.seekable()):
                fileobject = NamedTemporaryFile(delete = True)
                fileobject.write(source.read())
                fileobject.seek(0,0)
fileobject = io.TextIOWrapper(fileobject, encoding = encoding, errors = errors) else:
                fileobject = source
            filename = getattr(source, "name", f"stream {str(type(source))}")
else:
            # This file is something else, assume we can open() it.
            filename = source
            fileobject = None
filename = pathlib.Path(filename)
        extension = filename.suffix
if extension == ".gz":
            fileobject = io.TextIOWrapper(gzip.GzipFile(filename, mode, fileobj 
= fileobject), encoding = encoding, errors = errors)
elif extension == ".zip":
            fileobject = zipfile.ZipFile(fileobject if fileobject else 
filename, mode)
            # TODO: Need to check that we're not leaving any open file objects 
here...
            # TODO: We should be able to handle multiple files...
            assert len(fileobject.namelist()) == 1, "ERROR: Zip file contains more 
than 1 file"
fileobject = io.TextIOWrapper(
                fileobject.open(fileobject.namelist()[0]),
                encoding = encoding, errors = errors
            )
elif extension in ['.bz', '.bz2']:
            # Module 'bz2' is not always importable.
            assert bz2 is not None, "ERROR: module bz2 cannot be imported"
            fileobject = io.TextIOWrapper(bz2.BZ2File(fileobject if fileobject 
else filename, mode), encoding = encoding, errors = errors)
elif fileobject is not None:
            # Assuming that object is text file encoded in utf-8
            # If the file/stream has already been opened, we have no ability to 
handle decoding errors.
            pass
else:
            # Normal text file.
          fileobject = open(filename, mode, encoding = encoding, errors = 
errors)
E           FileNotFoundError: [Errno 2] No such file or directory: 'dummyfile'

/usr/lib/python3/dist-packages/cclib/parser/logfilewrapper.py:210: 
FileNotFoundError
__________________ NormalisesymTest.test_normalisesym_jaguar ___________________

self = <test.parser.testspecificparsers.NormalisesymTest 
testMethod=test_normalisesym_jaguar>

    def test_normalisesym_jaguar(self):
        from cclib.parser.jaguarparser import Jaguar
      sym = Jaguar("dummyfile").normalisesym

test/parser/testspecificparsers.py:47:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/lib/python3/dist-packages/cclib/parser/jaguarparser.py:23: in __init__
    super().__init__(logname="Jaguar", *args, **kwargs)
/usr/lib/python3/dist-packages/cclib/parser/logfileparser.py:56: in __init__
    source = FileWrapper(source)
/usr/lib/python3/dist-packages/cclib/parser/logfilewrapper.py:81: in __init__
    filename, fileobject = self.open_log_file(source)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <class 'cclib.parser.logfilewrapper.FileWrapper'>, source = 'dummyfile'
mode = 'r', encoding = 'utf-8', errors = 'logerror'

    @classmethod
    def open_log_file(
            self,
            source,
            mode: str = "r",
            encoding: str = "utf-8",
            errors: str = "logerror",
        ) -> typing.Tuple[str, typing.IO]:
        """
        Open a possibly compressed file, returning both the filename of the 
file and an open file object.
        """
        # First, work out what source is (could be a filename, a URL, an open 
file etc).
        if isinstance(source, str) and URL_PATTERN.match(source):
            # This file is a URL.
            try:
                # Cache the file to a temp location.
                response = urlopen(source)
                fileobject = NamedTemporaryFile(delete = True)
                fileobject.write(response.read())
                fileobject.seek(0,0)
fileobject = io.TextIOWrapper(fileobject, encoding = encoding, errors = errors)
                filename = source
except (ValueError, URLError) as error:
                # Maybe no need to raise a different exception?
                raise ValueError(
                    "Encountered an error processing the URL 
'{}'".format(source)
                ) from error
elif hasattr(source, "read") or hasattr(source, "readline"):
            # This file is a file.
            # If this file supports seek, we don't need to do anything.
            # If not, we'll cache it to file.
            if not hasattr(source, "seek") or \
            (hasattr(source, "seekable") and not source.seekable()):
                fileobject = NamedTemporaryFile(delete = True)
                fileobject.write(source.read())
                fileobject.seek(0,0)
fileobject = io.TextIOWrapper(fileobject, encoding = encoding, errors = errors) else:
                fileobject = source
            filename = getattr(source, "name", f"stream {str(type(source))}")
else:
            # This file is something else, assume we can open() it.
            filename = source
            fileobject = None
filename = pathlib.Path(filename)
        extension = filename.suffix
if extension == ".gz":
            fileobject = io.TextIOWrapper(gzip.GzipFile(filename, mode, fileobj 
= fileobject), encoding = encoding, errors = errors)
elif extension == ".zip":
            fileobject = zipfile.ZipFile(fileobject if fileobject else 
filename, mode)
            # TODO: Need to check that we're not leaving any open file objects 
here...
            # TODO: We should be able to handle multiple files...
            assert len(fileobject.namelist()) == 1, "ERROR: Zip file contains more 
than 1 file"
fileobject = io.TextIOWrapper(
                fileobject.open(fileobject.namelist()[0]),
                encoding = encoding, errors = errors
            )
elif extension in ['.bz', '.bz2']:
            # Module 'bz2' is not always importable.
            assert bz2 is not None, "ERROR: module bz2 cannot be imported"
            fileobject = io.TextIOWrapper(bz2.BZ2File(fileobject if fileobject 
else filename, mode), encoding = encoding, errors = errors)
elif fileobject is not None:
            # Assuming that object is text file encoded in utf-8
            # If the file/stream has already been opened, we have no ability to 
handle decoding errors.
            pass
else:
            # Normal text file.
          fileobject = open(filename, mode, encoding = encoding, errors = 
errors)
E           FileNotFoundError: [Errno 2] No such file or directory: 'dummyfile'

/usr/lib/python3/dist-packages/cclib/parser/logfilewrapper.py:210: 
FileNotFoundError
__________________ NormalisesymTest.test_normalisesym_molpro ___________________

self = <test.parser.testspecificparsers.NormalisesymTest 
testMethod=test_normalisesym_molpro>

    def test_normalisesym_molpro(self):
        from cclib.parser.molproparser import Molpro
      sym = Molpro("dummyfile").normalisesym

test/parser/testspecificparsers.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/lib/python3/dist-packages/cclib/parser/molproparser.py:56: in __init__
    super().__init__(logname="Molpro", *args, **kwargs)
/usr/lib/python3/dist-packages/cclib/parser/logfileparser.py:56: in __init__
    source = FileWrapper(source)
/usr/lib/python3/dist-packages/cclib/parser/logfilewrapper.py:81: in __init__
    filename, fileobject = self.open_log_file(source)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <class 'cclib.parser.logfilewrapper.FileWrapper'>, source = 'dummyfile'
mode = 'r', encoding = 'utf-8', errors = 'logerror'

    @classmethod
    def open_log_file(
            self,
            source,
            mode: str = "r",
            encoding: str = "utf-8",
            errors: str = "logerror",
        ) -> typing.Tuple[str, typing.IO]:
        """
        Open a possibly compressed file, returning both the filename of the 
file and an open file object.
        """
        # First, work out what source is (could be a filename, a URL, an open 
file etc).
        if isinstance(source, str) and URL_PATTERN.match(source):
            # This file is a URL.
            try:
                # Cache the file to a temp location.
                response = urlopen(source)
                fileobject = NamedTemporaryFile(delete = True)
                fileobject.write(response.read())
                fileobject.seek(0,0)
fileobject = io.TextIOWrapper(fileobject, encoding = encoding, errors = errors)
                filename = source
except (ValueError, URLError) as error:
                # Maybe no need to raise a different exception?
                raise ValueError(
                    "Encountered an error processing the URL 
'{}'".format(source)
                ) from error
elif hasattr(source, "read") or hasattr(source, "readline"):
            # This file is a file.
            # If this file supports seek, we don't need to do anything.
            # If not, we'll cache it to file.
            if not hasattr(source, "seek") or \
            (hasattr(source, "seekable") and not source.seekable()):
                fileobject = NamedTemporaryFile(delete = True)
                fileobject.write(source.read())
                fileobject.seek(0,0)
fileobject = io.TextIOWrapper(fileobject, encoding = encoding, errors = errors) else:
                fileobject = source
            filename = getattr(source, "name", f"stream {str(type(source))}")
else:
            # This file is something else, assume we can open() it.
            filename = source
            fileobject = None
filename = pathlib.Path(filename)
        extension = filename.suffix
if extension == ".gz":
            fileobject = io.TextIOWrapper(gzip.GzipFile(filename, mode, fileobj 
= fileobject), encoding = encoding, errors = errors)
elif extension == ".zip":
            fileobject = zipfile.ZipFile(fileobject if fileobject else 
filename, mode)
            # TODO: Need to check that we're not leaving any open file objects 
here...
            # TODO: We should be able to handle multiple files...
            assert len(fileobject.namelist()) == 1, "ERROR: Zip file contains more 
than 1 file"
fileobject = io.TextIOWrapper(
                fileobject.open(fileobject.namelist()[0]),
                encoding = encoding, errors = errors
            )
elif extension in ['.bz', '.bz2']:
            # Module 'bz2' is not always importable.
            assert bz2 is not None, "ERROR: module bz2 cannot be imported"
            fileobject = io.TextIOWrapper(bz2.BZ2File(fileobject if fileobject 
else filename, mode), encoding = encoding, errors = errors)
elif fileobject is not None:
            # Assuming that object is text file encoded in utf-8
            # If the file/stream has already been opened, we have no ability to 
handle decoding errors.
            pass
else:
            # Normal text file.
          fileobject = open(filename, mode, encoding = encoding, errors = 
errors)
E           FileNotFoundError: [Errno 2] No such file or directory: 'dummyfile'

/usr/lib/python3/dist-packages/cclib/parser/logfilewrapper.py:210: 
FileNotFoundError
=============================== warnings summary ===============================
test_data.py: 305 warnings
  /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11/build/test/test_data.py:192: 
DeprecationWarning: unittest.makeSuite() is deprecated and will be removed in Python 3.13. 
Please use unittest.TestLoader.loadTestsFromTestCase() instead.
    myunittest = unittest.makeSuite(test)

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
=========================== short test summary info ============================
SKIPPED [1] test/io/testccio.py:120: This should also work if cjsonreader 
supported streams.
SKIPPED [1] test/io/testccio.py:107: Skipping network tests
SKIPPED [1] test/io/testccio.py:96: Skipping network tests
SKIPPED [1] test/io/testscripts.py:101: Broken test
SKIPPED [1] test/method/testmoments.py:36: This does not pass for some reason.
SKIPPED [1] test/parser/testlogfileparser.py:72: Broken test
SKIPPED [1] test/parser/testlogfileparser.py:65: Broken test
SKIPPED [1] test/parser/testlogfileparser.py:44: Skipping network tests
FAILED test/test_bridge.py::OpenbabelTest::test_makeopenbabel - TypeError: ma...
FAILED test/test_data.py::test_all[parsers0-modules0-False-False-40-True-True]
FAILED test/test_io.py::MOLDENTest::test_mo_section_size - TypeError: MOLDEN....
FAILED test/test_method.py::NuclearTest::test_principal_moments_of_inertia - ...
FAILED test/test_method.py::NuclearTest::test_repulsion_energy - AssertionErr...
FAILED test/test_parser.py::FileWrapperTest::test_file_seek - NotImplementedE...
FAILED test/test_parser.py::LogfileTest::test_float_basic - TypeError: Can't ...
FAILED test/test_parser.py::LogfileTest::test_float_numeric_format - TypeErro...
FAILED test/test_parser.py::LogfileTest::test_float_stars - TypeError: Can't ...
FAILED test/test_parser.py::LogfileTest::test_normalisesym_base_class_error
FAILED test/test_parser.py::LogfileTest::test_parse_check_values - TypeError:...
FAILED test/test_parser.py::NormalisesymTest::test_normalisesym_adf - FileNot...
FAILED test/test_parser.py::NormalisesymTest::test_normalisesym_gamess - File...
FAILED test/test_parser.py::NormalisesymTest::test_normalisesym_gamessuk - Fi...
FAILED test/test_parser.py::NormalisesymTest::test_normalisesym_gaussian - Fi...
FAILED test/test_parser.py::NormalisesymTest::test_normalisesym_jaguar - File...
FAILED test/test_parser.py::NormalisesymTest::test_normalisesym_molpro - File...
============ 17 failed, 82 passed, 8 skipped, 305 warnings in 9.08s ============
E: pybuild pybuild:395: test: plugin distutils failed with: exit code=1: cd 
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.11/build; python3.11 -m pytest test
dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p 3.11 
returned exit code 13
make: *** [debian/rules:8: binary] Error 25
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2
--------------------------------------------------------------------------------

The above is just how the build ends and not necessarily the most relevant part.
If required, the full build log is available here:

https://people.debian.org/~sanvila/build-logs/202312/

About the archive rebuild: The build was made using virtual machines
from AWS, with enough memory, enough disk, and either one or two
CPUs, using a reduced chroot with only build-essential packages.

If you could not reproduce the bug please contact me privately, as I
am willing to provide ssh access to a virtual machine where the bug is
fully reproducible.

If this is really a bug in one of the build-depends, please use
reassign and affects, so that this is still visible in the BTS web
page for this package.

Thanks.

Reply via email to