Package: src:python-cogent
Version: 2020.12.21a+dfsg-4
Severity: important
Tags: ftbfs patch

Dear maintainer:

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

--------------------------------------------------------------------------------
[...]
 debian/rules binary-indep
dh binary-indep --with python3 --buildsystem=pybuild
   dh_update_autotools_config -i -O--buildsystem=pybuild
   dh_autoreconf -i -O--buildsystem=pybuild
   dh_auto_configure -i -O--buildsystem=pybuild
   debian/rules override_dh_auto_build
make[1]: Entering directory '/<<PKGBUILDDIR>>'
dh_auto_build
I: pybuild plugin_flit:75: Installing package /<<PKGBUILDDIR>>/src/cogent3 -> 
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_cogent3/build/cogent3
I: pybuild plugin_flit:88: Writing dist-info 
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_cogent3/build/
set -x; cd doc; PYTHONPATH=/<<PKGBUILDDIR>> http_proxy='127.0.0.1:9' 
/usr/bin/make html
+ cd doc
+ PYTHONPATH=/<<PKGBUILDDIR>> http_proxy=127.0.0.1:9 /usr/bin/make html
make[2]: Entering directory '/<<PKGBUILDDIR>>/doc'

[...]

=================================== FAILURES ===================================
______________________ TestBootstrap.test_bstrap_parallel ______________________

self = <test_evo.TestBootstrap testMethod=test_bstrap_parallel>

    def test_bstrap_parallel(self):
        """exercising bootstrap with parallel"""
        aln = load_aligned_seqs(join(data_dir, "brca1.fasta"), moltype="dna")
        aln = aln.take_seqs(aln.names[:3])
        aln = aln.omit_gap_pos(allowed_gap_frac=0)
        opt_args = dict(max_evaluations=20, limit_action="ignore")
        m1 = evo_app.model("F81", opt_args=opt_args)
        m2 = evo_app.model("HKY85", opt_args=opt_args)
        hyp = evo_app.hypothesis(m1, m2)
        strapper = evo_app.bootstrap(hyp, num_reps=2, parallel=True)
        result = strapper(aln)
      self.assertIsInstance(result, evo_app.bootstrap_result)
E       AssertionError: NotCompleted(type=ERROR, origin=bootstrap, 
source="/<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_cogent3/build/tests/data/brca1.fasta",
 message="Traceback (most recent call last):
E         File 
"/<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_cogent3/build/cogent3/app/composable.py",
 line 312, in _trapped_call
E           val = func(val, *args, **kwargs)
E         File 
"/<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_cogent3/build/cogent3/app/evo.py", 
line 461, in run
E           sym_results = [r for r in map_fun(self._fit_sim, 
range(self._num_reps)) if r]
E         File 
"/<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_cogent3/build/cogent3/app/evo.py", line 461, 
in <listcomp>
E           sym_results = [r for r in map_fun(self._fit_sim, 
range(self._num_reps)) if r]
E         File 
"/<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_cogent3/build/cogent3/util/parallel.py",
 line 169, in imap
E           chunksize = get_default_chunksize(s, max_workers)
E         File 
"/<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_cogent3/build/cogent3/util/parallel.py",
 line 90, in get_default_chunksize
E           chunksize, remainder = divmod(len(s), max_workers * 4)
E       ZeroDivisionError: integer division or modulo by zero
E       ") is not an instance of <class 'cogent3.app.result.bootstrap_result'>

/<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_cogent3/build/tests/test_app/test_evo.py:858:
 AssertionError
________________________ TestIo.test_write_db_parallel _________________________

self = <test_io.TestIo testMethod=test_write_db_parallel>

    def test_write_db_parallel(self):
        """writing with overwrite in parallel should reset db"""
        with TemporaryDirectory(dir=".") as dirname:
            outdir = join(dirname, "delme.tinydb")
            dstore = io_app.get_data_store(self.basedir, suffix="fasta")
            members = dstore.filtered(
                callback=lambda x: "brca1.fasta" not in x.split("/")
            )
            reader = io_app.load_unaligned()
            aligner = align_app.align_to_ref()
            writer = write_db(outdir, create=True, if_exists="overwrite")
            process = reader + aligner + writer
          r = process.apply_to(
                members, show_progress=False, parallel=True, cleanup=True
            )

/<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_cogent3/build/tests/test_app/test_io.py:523:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_cogent3/build/cogent3/util/progress_display.py:197:
 in f
    result = slow_function(*args, **kw)
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_cogent3/build/cogent3/app/composable.py:487:
 in apply_to
    for result in ui.series(to_do, count=len(inputs)):
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_cogent3/build/cogent3/util/progress_display.py:123:
 in series
    for (i, item) in enumerate(items):
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_cogent3/build/cogent3/util/parallel.py:240:
 in as_completed
    yield from _as_completed_mproc(f, s, max_workers)
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_cogent3/build/cogent3/util/parallel.py:225:
 in _as_completed_mproc
    with concurrentfutures.ProcessPoolExecutor(max_workers=max_workers) as 
executor:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <concurrent.futures.process.ProcessPoolExecutor object at 0x7fd8f1b1c4f0>
max_workers = 0, mp_context = None, initializer = None, initargs = ()

    def __init__(self, max_workers=None, mp_context=None,
                 initializer=None, initargs=()):
        """Initializes a new ProcessPoolExecutor instance.
Args:
            max_workers: The maximum number of processes that can be used to
                execute the given calls. If None or not given then as many
                worker processes will be created as the machine has processors.
            mp_context: A multiprocessing context to launch the workers. This
                object should provide SimpleQueue, Queue and Process.
            initializer: A callable used to initialize worker processes.
            initargs: A tuple of arguments to pass to the initializer.
        """
        _check_system_limits()
if max_workers is None:
            self._max_workers = os.cpu_count() or 1
            if sys.platform == 'win32':
                self._max_workers = min(_MAX_WINDOWS_WORKERS,
                                        self._max_workers)
        else:
            if max_workers <= 0:
              raise ValueError("max_workers must be greater than 0")
E               ValueError: max_workers must be greater than 0

/usr/lib/python3.10/concurrent/futures/process.py:606: ValueError
------------------------------ Captured log call -------------------------------
INFO     root:__init__.py:254 system_details : system=#1 SMP Debian 5.10.140-1 
(2022-09-02)
INFO     root:__init__.py:255 python : 3.10.7
INFO     root:__init__.py:256 user : buildd
INFO     root:__init__.py:257 command_string : 
/usr/lib/python3/dist-packages/pytest/__main__.py -k not 
test_pickleable_member_roundtrip and not test_pickleable_roundtrip
INFO     root:__init__.py:190 composable function : 
load_unaligned(type='sequences', moltype=None, format='fasta') +
align_to_ref(type='sequences', ref_seq='longest', score_matrix=None,
insertion_penalty=20, extension_penalty=2, moltype='dna') +
write_db(type='output', data_path='./tmpgraqp_7b/delme.tinydb',
name_callback=None, create=True, if_exists='overwrite', suffix='json')
INFO     root:__init__.py:190 version : cogent3.app==2022.8.24a1
INFO     root:__init__.py:190 version : cogent3==2022.8.24a1
_____________________ ParallelTests.test_create_processes ______________________

self = <tests.test_util.test_parallel.ParallelTests 
testMethod=test_create_processes>

    def test_create_processes(self):
        """Procressor pool should create multiple distingue processes"""
        max_worker_count = multiprocessing.cpu_count() - 1
        index = list(range(max_worker_count))
      result = parallel.map(get_process_value, index, max_workers=None, 
use_mpi=False)

/<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_cogent3/build/tests/test_util/test_parallel.py:42:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_cogent3/build/cogent3/util/parallel.py:179:
 in map
    return list(imap(f, s, max_workers, use_mpi, if_serial, chunksize))
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_cogent3/build/cogent3/util/parallel.py:169:
 in imap
    chunksize = get_default_chunksize(s, max_workers)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

s = [], max_workers = 0

    def get_default_chunksize(s, max_workers):
      chunksize, remainder = divmod(len(s), max_workers * 4)
E       ZeroDivisionError: integer division or modulo by zero

/<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_cogent3/build/cogent3/util/parallel.py:90:
 ZeroDivisionError
_____________________ ParallelTests.test_is_master_process _____________________

self = <tests.test_util.test_parallel.ParallelTests 
testMethod=test_is_master_process>

    @skipIf(sys.version_info[1] < 7, "method exclusive to Python 3.7 and above")
    def test_is_master_process(self):
        """
        is_master_process() should return False
        for all child processes
        """
        index = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
        master_processes = 0
      for result in parallel.imap(
            check_is_master_process, index, max_workers=None, use_mpi=False
        ):

/<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_cogent3/build/tests/test_util/test_parallel.py:67:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_cogent3/build/cogent3/util/parallel.py:169:
 in imap
    chunksize = get_default_chunksize(s, max_workers)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

s = [1, 2, 3, 4, 5, 6, ...], max_workers = 0

    def get_default_chunksize(s, max_workers):
      chunksize, remainder = divmod(len(s), max_workers * 4)
E       ZeroDivisionError: integer division or modulo by zero

/<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_cogent3/build/cogent3/util/parallel.py:90:
 ZeroDivisionError
______________________ ParallelTests.test_random_seeding _______________________

self = <tests.test_util.test_parallel.ParallelTests 
testMethod=test_random_seeding>

    def test_random_seeding(self):
        """Random seed should be set every function call"""
        # On Windows process ids are not guaranteed to be sequential(1,2,3,4...)
        # thus they cannot be used for reproducibility
        index1 = [2, 3, 4, 5, 6, 7, 8, 9, 10]
        index2 = [2, 2, 2, 2, 2, 2, 2, 2, 2]
      result1 = parallel.map(get_ranint, index1, max_workers=1, use_mpi=False)

/<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_cogent3/build/tests/test_util/test_parallel.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_cogent3/build/cogent3/util/parallel.py:179:
 in map
    return list(imap(f, s, max_workers, use_mpi, if_serial, chunksize))
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

f = <function get_ranint at 0x7fd8f37fedd0>, s = [2, 3, 4, 5, 6, 7, ...]
max_workers = 1, use_mpi = False, if_serial = 'raise', chunksize = None

    def imap(f, s, max_workers=None, use_mpi=False, if_serial="raise", 
chunksize=None):
        """
        Parameters
        ----------
        f : callable
            function that operates on values in s
        s : iterable
            series of inputs to f
        max_workers : int or None
            maximum number of workers. Defaults to 1-maximum available.
        use_mpi : bool
            use MPI for parallel execution.
        if_serial : str
            action to take if conditions will result in serial execution. Valid
            values are 'raise', 'ignore', 'warn'. Defaults to 'raise'.
        chunksize : int or None
            Size of data chunks executed by worker processes. Defaults to None
            where stable chunksize is determined by get_default_chunksize()
Returns
        -------
        imap and as_completed are generators yielding result of f(s[i]), map 
returns the result
        series. imap and map return results in the same order as s, 
as_completed returns results
        in the order completed (which can differ from the order in s).
Notes
        -----
        To use MPI, you must have openmpi (use conda or your preferred package 
manager)
        and mpi4py (use pip or conda) installed. In addition, your initial 
script must
        have a ``if __name__ == '__main__':`` block. You then invoke your 
program using
$ mpiexec -n <number CPUs> python3 -m mpi4py.futures <initial script>
        """
if_serial = if_serial.lower()
        assert if_serial in ("ignore", "raise", "warn"), f"invalid choice 
'{if_serial}'"
# If max_workers is not defined, get number of all processes available
        # minus 1 to leave for master process
        if use_mpi:
            if not USING_MPI:
                raise RuntimeError("Cannot use MPI")
if COMM.Get_attr(MPI.UNIVERSE_SIZE) == 1:
                err_msg = (
                    "Execution in serial. For parallel MPI execution, use:\n"
                    " $ mpiexec -n <number CPUs> python3 -m mpi4py.futures <executable 
script>"
                )
if if_serial == "raise":
                    raise RuntimeError(err_msg)
                elif if_serial == "warn":
                    warnings.warn(err_msg, UserWarning)
max_workers = max_workers or 1 if max_workers > COMM.Get_attr(MPI.UNIVERSE_SIZE):
                warnings.warn(
                    "max_workers too large, reducing to UNIVERSE_SIZE-1", 
UserWarning
                )
max_workers = min(max_workers, COMM.Get_attr(MPI.UNIVERSE_SIZE) - 1)
            if not chunksize:
                chunksize = get_default_chunksize(s, max_workers)
with MPIfutures.MPIPoolExecutor(max_workers=max_workers) as executor:
                yield from executor.map(f, s, chunksize=chunksize)
        else:
            if not max_workers:
                max_workers = multiprocessing.cpu_count() - 1
          assert max_workers < multiprocessing.cpu_count()
E           AssertionError

/<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_cogent3/build/cogent3/util/parallel.py:166:
 AssertionError
=============================== warnings summary ===============================
cogent3/evolve/coevolution.py:50
cogent3/evolve/coevolution.py:50
  
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_cogent3/build/cogent3/evolve/coevolution.py:50:
 DeprecationWarning: `np.float` is a deprecated alias for the builtin `float`. To silence 
this warning, use `float` by itself. Doing this will not modify any behavior and is safe. 
If you specifically wanted the numpy scalar type, use `np.float64` here.
  Deprecated in NumPy 1.20; for more details and guidance: 
https://numpy.org/devdocs/release/1.20.0-notes.html#deprecations
    from numpy import (

.pybuild/cpython3_3.10_cogent3/build/tests/test_app/test_data_store.py::TinyDBDataStoreTests::test_db_creation
  
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_cogent3/build/cogent3/app/data_store.py:970:
 UserWarning: 'tmpp1m3d9ii/data.tinydb' is locked to 1030889, current pid is 1030889.
    warn(f"'{self.source}' is locked to {locked_id}, current pid is {pid}.")

.pybuild/cpython3_3.10_cogent3/build/tests/test_app/test_data_store.py::TinyDBDataStoreTests::test_db_creation2
  /usr/lib/python3/dist-packages/_pytest/unraisableexception.py:78: 
PytestUnraisableExceptionWarning: Exception ignored in: <function 
ReadOnlyTinyDbDataStore.__del__ at 0x7fd8fbb331c0>
Traceback (most recent call last):
    File 
"/<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_cogent3/build/cogent3/app/data_store.py",
 line 703, in __del__
      self.close()
    File 
"/<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_cogent3/build/cogent3/app/data_store.py",
 line 717, in close
      self.unlock()
    File 
"/<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_cogent3/build/cogent3/app/data_store.py",
 line 743, in unlock
      got = self.db.get(query)
    File 
"/<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_cogent3/build/cogent3/app/data_store.py",
 line 690, in db
      self._db = TinyDB(self.source, storage=storage)
    File "/usr/lib/python3/dist-packages/tinydb/database.py", line 159, in 
__init__
      self._storage = storage(*args, **kwargs)
    File "/usr/lib/python3/dist-packages/tinydb/middlewares.py", line 63, in 
__call__
      self.storage = self._storage_cls(*args, **kwargs)
    File "/usr/lib/python3/dist-packages/tinydb/storages.py", line 99, in 
__init__
      touch(path, create_dirs=create_dirs)  # Create file if not exists
    File "/usr/lib/python3/dist-packages/tinydb/storages.py", line 34, in touch
      with open(fname, 'a'):
  FileNotFoundError: [Errno 2] No such file or directory: 
'tmpchg_ffcc/subdir/data.tinydb'
warnings.warn(pytest.PytestUnraisableExceptionWarning(msg))

.pybuild/cpython3_3.10_cogent3/build/tests/test_app/test_evo.py::TestHypothesisResult::test_alt_hyp_fail_error
  /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_cogent3/build/cogent3/core/sequence.py:1124: 
UserWarning: Dropped remainder "GA" from end of sequence
    warnings.warn(

.pybuild/cpython3_3.10_cogent3/build/tests/test_app/test_io.py::TestIo::test_load_tabular_distance_matrix
  /usr/lib/python3/dist-packages/_pytest/unraisableexception.py:78: 
PytestUnraisableExceptionWarning: Exception ignored in: <function 
ReadOnlyTinyDbDataStore.__del__ at 0x7fd8fbb331c0>
Traceback (most recent call last):
    File 
"/<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_cogent3/build/cogent3/app/data_store.py",
 line 703, in __del__
      self.close()
    File 
"/<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_cogent3/build/cogent3/app/data_store.py",
 line 717, in close
      self.unlock()
    File 
"/<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_cogent3/build/cogent3/app/data_store.py",
 line 743, in unlock
      got = self.db.get(query)
    File 
"/<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_cogent3/build/cogent3/app/data_store.py",
 line 690, in db
      self._db = TinyDB(self.source, storage=storage)
    File "/usr/lib/python3/dist-packages/tinydb/database.py", line 159, in 
__init__
      self._storage = storage(*args, **kwargs)
    File "/usr/lib/python3/dist-packages/tinydb/middlewares.py", line 63, in 
__call__
      self.storage = self._storage_cls(*args, **kwargs)
    File "/usr/lib/python3/dist-packages/tinydb/storages.py", line 99, in 
__init__
      touch(path, create_dirs=create_dirs)  # Create file if not exists
    File "/usr/lib/python3/dist-packages/tinydb/storages.py", line 34, in touch
      with open(fname, 'a'):
  FileNotFoundError: [Errno 2] No such file or directory: 
'/<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_cogent3/build/tests/tmp_l1onl16/delme.tinydb'
warnings.warn(pytest.PytestUnraisableExceptionWarning(msg))

.pybuild/cpython3_3.10_cogent3/build/tests/test_core/test_alignment.py::AlignmentTests::test_add_seqs_info
  /usr/lib/python3/dist-packages/_pytest/unraisableexception.py:78: 
PytestUnraisableExceptionWarning: Exception ignored in: <function 
ReadOnlyTinyDbDataStore.__del__ at 0x7fd8fbb331c0>
Traceback (most recent call last):
    File 
"/<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_cogent3/build/cogent3/core/sequence.py",
 line 824, in __init__
      info = InfoClass(info)
    File 
"/<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_cogent3/build/cogent3/core/info.py", 
line 152, in __init__
      temp = dict(*args, **kwargs)
  TypeError: 'NoneType' object is not iterable
During handling of the above exception, another exception occurred: Traceback (most recent call last):
    File 
"/<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_cogent3/build/cogent3/app/data_store.py",
 line 703, in __del__
      self.close()
    File 
"/<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_cogent3/build/cogent3/app/data_store.py",
 line 717, in close
      self.unlock()
    File 
"/<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_cogent3/build/cogent3/app/data_store.py",
 line 743, in unlock
      got = self.db.get(query)
    File 
"/<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_cogent3/build/cogent3/app/data_store.py",
 line 690, in db
      self._db = TinyDB(self.source, storage=storage)
    File "/usr/lib/python3/dist-packages/tinydb/database.py", line 159, in 
__init__
      self._storage = storage(*args, **kwargs)
    File "/usr/lib/python3/dist-packages/tinydb/middlewares.py", line 63, in 
__call__
      self.storage = self._storage_cls(*args, **kwargs)
    File "/usr/lib/python3/dist-packages/tinydb/storages.py", line 99, in 
__init__
      touch(path, create_dirs=create_dirs)  # Create file if not exists
    File "/usr/lib/python3/dist-packages/tinydb/storages.py", line 34, in touch
      with open(fname, 'a'):
  FileNotFoundError: [Errno 2] No such file or directory: 
'tmpgraqp_7b/delme.tinydb'
warnings.warn(pytest.PytestUnraisableExceptionWarning(msg))

.pybuild/cpython3_3.10_cogent3/build/tests/test_core/test_alignment.py::AlignmentTests::test_init_aln
  /usr/lib/python3/dist-packages/numpy/lib/type_check.py:340: 
VisibleDeprecationWarning: Creating an ndarray from nested sequences exceeding 
the maximum number of dimensions of 32 is deprecated. If you mean to do this, 
you must specify 'dtype=object' when creating the ndarray.
    type_ = asarray(x).dtype.type

.pybuild/cpython3_3.10_cogent3/build/tests/test_core/test_alignment.py::AlignmentTests::test_init_aln
  /usr/lib/python3/dist-packages/numpy/testing/_private/utils.py:380: 
VisibleDeprecationWarning: Creating an ndarray from nested sequences exceeding 
the maximum number of dimensions of 32 is deprecated. If you mean to do this, 
you must specify 'dtype=object' when creating the ndarray.
    isdesnat = isnat(desired)

.pybuild/cpython3_3.10_cogent3/build/tests/test_core/test_alignment.py::AlignmentTests::test_init_aln
  /usr/lib/python3/dist-packages/numpy/testing/_private/utils.py:110: 
VisibleDeprecationWarning: Creating an ndarray from nested sequences exceeding 
the maximum number of dimensions of 32 is deprecated. If you mean to do this, 
you must specify 'dtype=object' when creating the ndarray.
    st = isnan(x)

.pybuild/cpython3_3.10_cogent3/build/tests/test_core/test_core_standalone.py::TestConstructorFunctions::test_load_seq
  
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_cogent3/build/cogent3/core/info.py:208: 
UserWarning: Keys overwritten by other sequence: source
    warn("Keys overwritten by other sequence: " + "".join(overwrites))

.pybuild/cpython3_3.10_cogent3/build/tests/test_evolve/test_likelihood_function.py::LikelihoodFunctionTests::test_get_param_rules_multilocus
.pybuild/cpython3_3.10_cogent3/build/tests/test_util/test_deserialise.py::TestDeserialising::test_deserialise_likelihood_function_multilocus
  
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_cogent3/build/cogent3/evolve/parameter_controller.py:414:
 UserWarning:
Used mean of 12 mprobs values

.pybuild/cpython3_3.10_cogent3/build/tests/test_evolve/test_likelihood_function.py::LikelihoodFunctionTests::test_make_discrete_markov
  
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_cogent3/build/tests/test_evolve/test_likelihood_function.py:795:
 UserWarning:
Ignoring tree edge lengths

.pybuild/cpython3_3.10_cogent3/build/tests/test_evolve/test_likelihood_function.py::LikelihoodFunctionTests::test_set_param_rule_adjust_bounds
  
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_cogent3/build/cogent3/evolve/parameter_controller.py:414:
 UserWarning:
Used mean of 7 beta values

.pybuild/cpython3_3.10_cogent3/build/tests/test_evolve/test_ns_substitution_model.py::NonStatMarkov::test_general_vs_constructed_general
  
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_cogent3/build/cogent3/maths/optimisers.py:189:
 UserWarning:
Unused arg for local alignment: results

.pybuild/cpython3_3.10_cogent3/build/tests/test_maths/test_stats/test_test.py::StatTests::test_t_two_sample_switch
  /usr/lib/python3/dist-packages/numpy/core/_methods.py:262: RuntimeWarning:
Degrees of freedom <= 0 for slice

.pybuild/cpython3_3.10_cogent3/build/tests/test_util/test_misc.py::UtilsTests::test_get_setting_from_environ
  
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_cogent3/build/cogent3/util/misc.py:1008:
 UserWarning:
could not cast name=blah to type <class 'float'>, skipping

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
=========================== short test summary info ============================
SKIPPED [1] tests/test_app/test_app_mpi.py:24: Not using MPI
SKIPPED [2] tests/test_app/test_data_store.py:114: broken on linux
SKIPPED [1] tests/test_app/test_data_store.py:189: broken on linux
SKIPPED [4] tests/test_util/test_io.py:320: Do not test in Debian since offline
SKIPPED [1] tests/test_util/test_io.py:361: Do not test in Debian since offline
SKIPPED [1] tests/test_util/test_io.py:378: Do not test in Debian since offline
SKIPPED [1] tests/test_util/test_io.py:388: Do not test in Debian since offline
FAILED tests/test_app/test_evo.py::TestBootstrap::test_bstrap_parallel - Asse...
FAILED tests/test_app/test_io.py::TestIo::test_write_db_parallel - ValueError...
FAILED tests/test_util/test_parallel.py::ParallelTests::test_create_processes
FAILED tests/test_util/test_parallel.py::ParallelTests::test_is_master_process
FAILED tests/test_util/test_parallel.py::ParallelTests::test_random_seeding
= 5 failed, 2692 passed, 11 skipped, 5 deselected, 18 warnings in 127.56s 
(0:02:07) =
E: pybuild pybuild:379: test: plugin flit failed with: exit code=1: cd 
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_cogent3/build; python3.10 -m pytest -k 
'not test_pickleable_member_roundtrip and not test_pickleable_roundtrip'
dh_auto_test: error: pybuild --test -i python{version} -p 3.10 returned exit 
code 13
make: *** [debian/rules:22: binary-indep] Error 25
dpkg-buildpackage: error: debian/rules binary-indep subprocess returned exit 
status 2
--------------------------------------------------------------------------------

The above is just how the build ends and I believe it's also the most relevant 
part.

Note 1: This build log was obtained before the package started to fail with new 
python3.11.

Note 2: I'm using the bullseye version in Version field because I still have 
some hope
of making Debian bullseye buildable from source for everybody (before it 
becomes LTS).

According to the tests I made, it fails 100% of the time on single-CPU systems, 
so
I think you should be able to reproduce it by setting 
GRUB_CMDLINE_LINUX="nr_cpus=1"
in /etc/default/grub, but if this is not enough, the offer below still applies.

I took the time to identify the failing tests and created the attached patch,
which worked for me at the time (not tested more recently because of the
problem with python3.11).

---------------------------------------------------------------------------------

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

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.
diff --git a/tests/test_app/test_evo.py b/tests/test_app/test_evo.py
index 03a98d2..b1d5991 100644
--- a/tests/test_app/test_evo.py
+++ b/tests/test_app/test_evo.py
@@ -1,6 +1,6 @@
 from os.path import dirname, join
 from tempfile import TemporaryDirectory
-from unittest import TestCase, main
+from unittest import TestCase, main, skip
 from unittest.mock import MagicMock
 
 from numpy.testing import assert_allclose, assert_raises
@@ -844,6 +844,7 @@ class TestBootstrap(TestCase):
         # correct message being relayed
         self.assertTrue("ValueError: '-' at" in result.message)
 
+    @skip("Does not work on single-cpu systems")
     def test_bstrap_parallel(self):
         """exercising bootstrap with parallel"""
         aln = load_aligned_seqs(join(data_dir, "brca1.fasta"), moltype="dna")
diff --git a/tests/test_app/test_io.py b/tests/test_app/test_io.py
index 8ff3de6..360229c 100644
--- a/tests/test_app/test_io.py
+++ b/tests/test_app/test_io.py
@@ -6,7 +6,7 @@ import zipfile
 
 from os.path import join
 from tempfile import TemporaryDirectory
-from unittest import TestCase, main
+from unittest import TestCase, main, skip
 
 import numpy
 
@@ -507,6 +507,7 @@ class TestIo(TestCase):
             w = io_app.write_db(outdir, create=True, if_exists="skip")
             w.data_store.close()
 
+    @skip("Does not work on single-cpu systems")
     def test_write_db_parallel(self):
         """writing with overwrite in parallel should reset db"""
         with TemporaryDirectory(dir=".") as dirname:
diff --git a/tests/test_util/test_parallel.py b/tests/test_util/test_parallel.py
index e0fa320..55d904b 100644
--- a/tests/test_util/test_parallel.py
+++ b/tests/test_util/test_parallel.py
@@ -2,7 +2,7 @@ import multiprocessing
 import sys
 import time
 
-from unittest import TestCase, main, skipIf
+from unittest import TestCase, main, skipIf, skip
 
 import numpy
 
@@ -35,6 +35,7 @@ def check_is_master_process(n):
 
 
 class ParallelTests(TestCase):
+    @skip("Does not work on single-cpu systems")
     def test_create_processes(self):
         """Procressor pool should create multiple distingue processes"""
         max_worker_count = multiprocessing.cpu_count() - 1
@@ -45,6 +46,7 @@ class ParallelTests(TestCase):
         self.assertEqual(sorted(list(result_values)), index)
         self.assertEqual(len(set(result_processes)), max_worker_count)
 
+    @skip("Does not work on single-cpu systems")
     def test_random_seeding(self):
         """Random seed should be set every function call"""
         # On Windows process ids are not guaranteed to be 
sequential(1,2,3,4...)
@@ -56,6 +58,7 @@ class ParallelTests(TestCase):
         self.assertEqual(result1[0], result2[0])
         self.assertNotEqual(result1, result2)
 
+    @skip("Does not work on single-cpu systems")
     @skipIf(sys.version_info[1] < 7, "method exclusive to Python 3.7 and 
above")
     def test_is_master_process(self):
         """

Reply via email to