Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

{bio}[foss/2020b] QIIME2 v2022.8 w/ Python 3.8.6 (WIP) #16945

Conversation

migueldiascosta
Copy link
Member

@migueldiascosta migueldiascosta commented Dec 19, 2022

(created using eb --new-pr)

requires:

(as mentioned in the linked PRs, the reason to use 2020b is that QIIME v2022.8 w/ Python >= 3.9 fails simple tasks, related to the Python ast module)

@migueldiascosta migueldiascosta changed the title {bio}[foss/2020b] QIIME2 v2022.8 w/ Python 3.8.6 {bio}[foss/2020b] QIIME2 v2022.8 w/ Python 3.8.6 (WIP) Dec 19, 2022
@boegelbot

This comment was marked as outdated.

@migueldiascosta
Copy link
Member Author

hm, using the distributed pretrained classifiers requires scikit-learn 0.24.1 specifically (https://github.com/qiime2/docs/blob/master/source/data-resources.rst)

not sure that's worth the dependency variant exception (would also affect scikit-bio and umap-learn)

@boegel boegel added this to the 4.x milestone Jan 10, 2023
@easybuilders easybuilders deleted a comment from boegelbot Jan 10, 2023
@easybuilders easybuilders deleted a comment from boegelbot Jan 10, 2023
Copy link
Contributor

@lexming lexming left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@migueldiascosta tests fail because two different versions of numba and LLVM get pulled in the dependency tree:

  • R > Mesa > LLVM-11
  • umap-learn > numba-0.52 > LLVM-10

The easiest solution seems to be to upgrade umap-learn to v0.5.3 which is compatible with numba v0.53 and LLVM 11. I made a PR for it in #17161

@boegelbot
Copy link
Collaborator

@migueldiascosta: Tests failed in GitHub Actions, see https://github.com/easybuilders/easybuild-easyconfigs/actions/runs/3963144339
Output from first failing test suite run:

FAIL: test_dep_versions_per_toolchain_generation (test.easyconfigs.easyconfigs.EasyConfigTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "test/easyconfigs/easyconfigs.py", line 883, in test_dep_versions_per_toolchain_generation
    self.assertFalse(multi_dep_vars, error_msg)
AssertionError: No multi-variant deps found for '^.*-(?P<tc_gen>20(1[89]|[2-9][0-9])[ab]).*\.eb$' easyconfigs:

found 2 variants of 'umap-learn' dependency in easyconfigs using '2020b' toolchain generation
* version: 0.4.6; versionsuffix:  as dep for set(['cell2location-0.05-alpha-fosscuda-2020b.eb'])
* version: 0.5.3; versionsuffix:  as dep for set(['QIIME2-2022.8-foss-2020b.eb'])


----------------------------------------------------------------------
Ran 16244 tests in 938.616s

FAILED (failures=1)
ERROR: Not all tests were successful

bleep, bloop, I'm just a bot (boegelbot v20200716.01)
Please talk to my owner @boegel if you notice me acting stupid),
or submit a pull request to https://github.com/boegel/boegelbot fix the problem.

Copy link
Contributor

@lexming lexming left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@boegelbot
Copy link
Collaborator

@migueldiascosta: Tests failed in GitHub Actions, see https://github.com/easybuilders/easybuild-easyconfigs/actions/runs/5186087489
Output from first failing test suite run:

FAIL: test_dep_versions_per_toolchain_generation (test.easyconfigs.easyconfigs.EasyConfigTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/runner/work/easybuild-easyconfigs/easybuild-easyconfigs/test/easyconfigs/easyconfigs.py", line 884, in test_dep_versions_per_toolchain_generation
    self.assertFalse(multi_dep_vars, error_msg)
AssertionError: ['umap-learn'] is not false : No multi-variant deps found for '^.*-(?P<tc_gen>20(1[89]|[2-9][0-9])[ab]).*\.eb$' easyconfigs:

found 2 variants of 'umap-learn' dependency in easyconfigs using '2020b' toolchain generation
* version: 0.4.6; versionsuffix:  as dep for {'cell2location-0.05-alpha-fosscuda-2020b.eb'}
* version: 0.5.3; versionsuffix:  as dep for {'QIIME2-2022.8-foss-2020b.eb'}


----------------------------------------------------------------------
Ran 17206 tests in 1085.219s

FAILED (failures=1)
ERROR: Not all tests were successful

bleep, bloop, I'm just a bot (boegelbot v20200716.01)
Please talk to my owner @boegel if you notice me acting stupid),
or submit a pull request to https://github.com/boegel/boegelbot fix the problem.

@migueldiascosta
Copy link
Member Author

this is still WIP, I'll check if newer versions of QIIME2 still have problems with Python > 3.8, if they don't I'll submit a PR with a more recent toolchain

@migueldiascosta
Copy link
Member Author

Nope, with QIIME2 2023.2 and Python 3.9.6 I still get e.g.

$ qiime tools validate $EBROOTQIIME2/lib/python3.9/site-packages/q2_sample_classifier/tests/data/vaw.qza
Traceback (most recent call last):
  File "$EBROOTQIIME2/lib/python3.9/site-packages/q2cli/builtin/tools.py", line 555, in validate
    result = qiime2.sdk.Result.load(path)
  File "$EBROOTQIIME2/lib/python3.9/site-packages/qiime2/sdk/result.py", line 79, in load
    archiver = archive.Archiver.load(filepath)
  File "$EBROOTQIIME2/lib/python3.9/site-packages/qiime2/core/archive/archiver.py", line 372, in load
    ref = cls(data_path, process_alias, Format(rec), cache)
  File "$EBROOTQIIME2/lib/python3.9/site-packages/qiime2/core/archive/format/v1.py", line 29, in __init__
    super().__init__(archive_record)
  File "$EBROOTQIIME2/lib/python3.9/site-packages/qiime2/core/archive/format/v0.py", line 72, in __init__
    self.type = sdk.parse_type(type)
  File "$EBROOTQIIME2/lib/python3.9/site-packages/qiime2/sdk/util.py", line 68, in parse_type
    type_expr = _parse.ast_to_type(_parse.string_to_ast(string))
  File "$EBROOTQIIME2/lib/python3.9/site-packages/qiime2/core/type/parse.py", line 32, in string_to_ast
    return _expr(expr.value)
  File "$EBROOTQIIME2/lib/python3.9/site-packages/qiime2/core/type/parse.py", line 47, in _expr
    field_expr = expr.slice.value
AttributeError: 'Name' object has no attribute 'value'

There was a problem loading $EBROOTQIIME2/lib/python3.9/site-packages/q2_sample_classifier/tests/data/vaw.qza as a QIIME 2 Result:

  'Name' object has no attribute 'value'

See above for debug info.

(this works with Python 3.8.6)

@migueldiascosta
Copy link
Member Author

superseded by #18407, where the issue with python 3.9 ast was fixed, thanks @smoors !

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants