[Debian-med-packaging] Bug#933527: snakemake: fails to install: SyntaxError: duplicate argument 'stay_on_remote' in function definition

Andreas Tille andreas at an3as.eu
Thu Sep 5 08:51:25 BST 2019


Hi folks,

this issue is urgent since if snakemake is not installable several of
our packages where snakemake is in (Build-)Depends are broken.  Is
anybody working on this?

Kevin, you are listed as only Uploader.  Does your time limit permit you
to work on this package?  Any other volunteers to add themselves to the
list of Uploaders and care for this package?

Kind regards

     Andreas.

On Mon, Sep 02, 2019 at 10:09:22AM +0200, Andreas Tille wrote:
> Hi,
> 
> On Wed, Jul 31, 2019 at 10:37:22AM +0200, Andreas Beckmann wrote:
> > Version: 5.5.3-1
> > Severity: serious
> > 
> > during a test with piuparts I noticed your package failed to install. As
> > per definition of the release team this makes the package too buggy for
> > a release, thus the severity.
> > 
> > >From the attached log (scroll to the bottom...):
> > 
> >   Setting up snakemake (5.5.3-1) ...
> >     File "/usr/lib/python3/dist-packages/snakemake/remote/gfal.py", line 29
> >       def __init__(self, *args, keep_local=False, stay_on_remote=False, is_default=False, stay_on_remote=False, retry=5, **kwargs):
> >       ^
> >   SyntaxError: duplicate argument 'stay_on_remote' in function definition
> >   
> 
> I can confirm this issue.  Michael has commited a fix together with the
> new version.  I've commited some more changes but the current state in
> Git does not pass build time tests:
> 
> ...
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> path = '/build/snakemake-5.5.4/tests/test_issue328', shouldfail = False
> snakefile = '/build/snakemake-5.5.4/tests/test_issue328/Snakefile'
> subpath = None, no_tmpdir = False, check_md5 = True, cores = 3
> params = {'forcerun': ['split']}
> results_dir = '/build/snakemake-5.5.4/tests/test_issue328/expected-results'
> @py_assert1 = None, @py_assert3 = None, @py_assert6 = None
> 
>     def run(path,
>             shouldfail=False,
>             snakefile="Snakefile",
>             subpath=None,
>             no_tmpdir=False,
>             check_md5=True, cores=3, **params):
>         """
>         Test the Snakefile in path.
>         There must be a Snakefile in the path and a subdirectory named
>         expected-results.
>         """
>         results_dir = join(path, 'expected-results')
>         snakefile = join(path, snakefile)
>         assert os.path.exists(snakefile)
>         assert os.path.exists(results_dir) and os.path.isdir(
>             results_dir), '{} does not exist'.format(results_dir)
>         with tempfile.TemporaryDirectory(prefix="snakemake-") as tmpdir:
>             config = {}
>             # handle subworkflow
>             if subpath is not None:
>                 # set up a working directory for the subworkflow and pass it in `config`
>                 # for now, only one subworkflow is supported
>                 assert os.path.exists(subpath) and os.path.isdir(
>                     subpath), '{} does not exist'.format(subpath)
>                 subworkdir = os.path.join(tmpdir, "subworkdir")
>                 os.mkdir(subworkdir)
>                 # copy files
>                 for f in os.listdir(subpath):
>                     copy(os.path.join(subpath, f), subworkdir)
>                 config['subworkdir'] = subworkdir
>     
>             # copy files
>             for f in os.listdir(path):
>                 print(f)
>                 copy(os.path.join(path, f), tmpdir)
>     
>             # run snakemake
>             success = snakemake(snakefile,
>                                 cores=cores,
>                                 workdir=path if no_tmpdir else tmpdir,
>                                 stats="stats.txt",
>                                 config=config, **params)
>             if shouldfail:
>                 assert not success, "expected error on execution"
>             else:
> >               assert success, "expected successful execution"
> E               AssertionError: expected successful execution
> E               assert False
> 
> tests/tests.py:124: AssertionError
> ----------------------------- Captured stdout call -----------------------------
> in.txt
> expected-results
> Snakefile
> ----------------------------- Captured stderr call -----------------------------
> PermissionError in line 4 of /build/snakemake-5.5.4/tests/test_issue328/Snakefile:
> [Errno 13] Permission denied: '/nonexistent'
>   File "/build/snakemake-5.5.4/tests/test_issue328/Snakefile", line 4, in <module>
>   File "/usr/lib/python3/dist-packages/pytools/persistent_dict.py", line 699, in __init__
>   File "/usr/lib/python3/dist-packages/pytools/persistent_dict.py", line 441, in __init__
>   File "/usr/lib/python3/dist-packages/pytools/persistent_dict.py", line 486, in _make_container_dir
>   File "/usr/lib/python3/dist-packages/pytools/persistent_dict.py", line 77, in _make_dir_recursively
>   File "/usr/lib/python3.7/os.py", line 211, in makedirs
>   File "/usr/lib/python3.7/os.py", line 211, in makedirs
>   File "/usr/lib/python3.7/os.py", line 211, in makedirs
>   File "/usr/lib/python3.7/os.py", line 221, in makedirs
> ------------------------------ Captured log call -------------------------------
> ERROR    snakemake.logging:logging.py:307 PermissionError in line 4 of /build/snakemake-5.5.4/tests/test_issue328/Snakefile:
>                                           [Errno 13] Permission denied: '/nonexistent'
>                                             File "/build/snakemake-5.5.4/tests/test_issue328/Snakefile", line 4, in <module>
>                                             File "/usr/lib/python3/dist-packages/pytools/persistent_dict.py", line 699, in __init__
>                                             File "/usr/lib/python3/dist-packages/pytools/persistent_dict.py", line 441, in __init__
>                                             File "/usr/lib/python3/dist-packages/pytools/persistent_dict.py", line 486, in _make_container_dir
>                                             File "/usr/lib/python3/dist-packages/pytools/persistent_dict.py", line 77, in _make_dir_recursively
>                                             File "/usr/lib/python3.7/os.py", line 211, in makedirs
>                                             File "/usr/lib/python3.7/os.py", line 211, in makedirs
>                                             File "/usr/lib/python3.7/os.py", line 211, in makedirs
>                                             File "/usr/lib/python3.7/os.py", line 221, in makedirs
> =============================== warnings summary ===============================
> /usr/lib/python3/dist-packages/pandas/core/dtypes/inference.py:6
>   /usr/lib/python3/dist-packages/pandas/core/dtypes/inference.py:6: DeprecationWarning: Using or importing the ABCs from 'collections' instead of from 'collections.abc' is deprecated, and in 3.8 it will stop working
>     from collections import Iterable
> 
> /usr/lib/python3/dist-packages/pandas/core/tools/datetimes.py:3
>   /usr/lib/python3/dist-packages/pandas/core/tools/datetimes.py:3: DeprecationWarning: Using or importing the ABCs from 'collections' instead of from 'collections.abc' is deprecated, and in 3.8 it will stop working
>     from collections import MutableMapping
> 
> tests/test_schema.py::test_config
>   /usr/lib/python3/dist-packages/jsonschema/compat.py:6: DeprecationWarning: Using or importing the ABCs from 'collections' instead of from 'collections.abc' is deprecated, and in 3.8 it will stop working
>     from collections import MutableMapping, Sequence  # noqa
> 
> tests/test_schema.py::test_dataframe
>   /usr/lib/python3/dist-packages/pandas/core/frame.py:7476: DeprecationWarning: Using or importing the ABCs from 'collections' instead of from 'collections.abc' is deprecated, and in 3.8 it will stop working
>     elif isinstance(data[0], collections.Mapping):
> 
> -- Docs: https://docs.pytest.org/en/latest/warnings.html
> = 2 failed, 112 passed, 18 skipped, 9 deselected, 4 warnings in 578.49 seconds =
> E: pybuild pybuild:341: test: plugin custom failed with: exit code=1: python3.7 -m pytest tests/test*.py -v -k 'not report and not ancient and not test_script and not default_remote and not issue635 and not con
> 
> 
> Any volunteer to check this?
> 
> Kind regards
> 
>         Andreas.
> 
> -- 
> http://fam-tille.de
> 
> _______________________________________________
> Debian-med-packaging mailing list
> Debian-med-packaging at alioth-lists.debian.net
> https://alioth-lists.debian.net/cgi-bin/mailman/listinfo/debian-med-packaging

-- 
http://fam-tille.de



More information about the Debian-med-packaging mailing list