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

BUG: fix circular imports in bowtie/contig #317

Merged
merged 1 commit into from
Mar 13, 2024

Conversation

ebolyen
Copy link
Member

@ebolyen ebolyen commented Mar 13, 2024

Lets the format load before registration.

Also use the init exclusively for loading subpackages.

@ebolyen
Copy link
Member Author

ebolyen commented Mar 13, 2024

Should fix https://github.com/qiime2/distributions/actions/runs/8237435747/job/22623143164?pr=157

QIIME is caching your current deployment for improved performance. This may take a few moments and should only happen once per deployment.
Traceback (most recent call last):
  File "/home/runner/work/distributions/distributions/test-env/lib/python3.8/site-packages/q2cli/util.py", line 279, in get_plugin_manager
    return qiime2.sdk.PluginManager.reuse_existing()
  File "/home/runner/work/distributions/distributions/test-env/lib/python3.8/site-packages/qiime2/sdk/plugin_manager.py", line 58, in reuse_existing
    raise UninitializedPluginManagerError
qiime2.sdk.plugin_manager.UninitializedPluginManagerError

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/runner/work/distributions/distributions/test-env/bin/qiime", line 11, in <module>
    sys.exit(qiime())
  File "/home/runner/work/distributions/distributions/test-env/lib/python3.8/site-packages/click/core.py", line 1157, in __call__
    return self.main(*args, **kwargs)
  File "/home/runner/work/distributions/distributions/test-env/lib/python3.8/site-packages/click/core.py", line 1077, in main
    with self.make_context(prog_name, args, **extra) as ctx:
  File "/home/runner/work/distributions/distributions/test-env/lib/python3.8/site-packages/click/core.py", line 943, in make_context
    self.parse_args(ctx, args)
  File "/home/runner/work/distributions/distributions/test-env/lib/python3.8/site-packages/q2cli/click/command.py", line 43, in parse_args
    return super().parse_args(ctx, args)
  File "/home/runner/work/distributions/distributions/test-env/lib/python3.8/site-packages/click/core.py", line 1641, in parse_args
    echo(ctx.get_help(), color=ctx.color)
  File "/home/runner/work/distributions/distributions/test-env/lib/python3.8/site-packages/click/core.py", line 704, in get_help
    return self.command.get_help(self)
  File "/home/runner/work/distributions/distributions/test-env/lib/python3.8/site-packages/click/core.py", line 1325, in get_help
    self.format_help(ctx, formatter)
  File "/home/runner/work/distributions/distributions/test-env/lib/python3.8/site-packages/click/core.py", line 1358, in format_help
    self.format_options(ctx, formatter)
  File "/home/runner/work/distributions/distributions/test-env/lib/python3.8/site-packages/q2cli/click/command.py", line 157, in format_options
    for subcommand in self.list_commands(ctx):
  File "/home/runner/work/distributions/distributions/test-env/lib/python3.8/site-packages/q2cli/commands.py", line 92, in list_commands
    plugins = sorted(self._plugin_lookup)
  File "/home/runner/work/distributions/distributions/test-env/lib/python3.8/site-packages/q2cli/commands.py", line 76, in _plugin_lookup
    import q2cli.core.cache
  File "/home/runner/work/distributions/distributions/test-env/lib/python3.8/site-packages/q2cli/core/cache.py", line 285, in <module>
    CACHE = DeploymentCache()
  File "/home/runner/work/distributions/distributions/test-env/lib/python3.8/site-packages/q2cli/core/cache.py", line 61, in __init__
    self._state = self._get_cached_state(refresh=refresh)
  File "/home/runner/work/distributions/distributions/test-env/lib/python3.8/site-packages/q2cli/core/cache.py", line 107, in _get_cached_state
    self._cache_current_state(current_requirements)
  File "/home/runner/work/distributions/distributions/test-env/lib/python3.8/site-packages/q2cli/core/cache.py", line 205, in _cache_current_state
    state = self._get_current_state()
  File "/home/runner/work/distributions/distributions/test-env/lib/python3.8/site-packages/q2cli/core/cache.py", line 253, in _get_current_state
    plugin_manager = q2cli.util.get_plugin_manager()
  File "/home/runner/work/distributions/distributions/test-env/lib/python3.8/site-packages/q2cli/util.py", line 291, in get_plugin_manager
    return qiime2.sdk.PluginManager()
  File "/home/runner/work/distributions/distributions/test-env/lib/python3.8/site-packages/qiime2/sdk/plugin_manager.py", line 67, in __new__
    self._init(add_plugins=add_plugins)
  File "/home/runner/work/distributions/distributions/test-env/lib/python3.8/site-packages/qiime2/sdk/plugin_manager.py", line 105, in _init
    plugin = entry_point.load()
  File "/home/runner/work/distributions/distributions/test-env/lib/python3.8/site-packages/pkg_resources/__init__.py", line 2482, in load
    return self.resolve()
  File "/home/runner/work/distributions/distributions/test-env/lib/python3.8/site-packages/pkg_resources/__init__.py", line 2488, in resolve
    module = __import__(self.module_name, fromlist=['__name__'], level=0)
  File "/home/runner/work/distributions/distributions/test-env/lib/python3.8/site-packages/q2_assembly/__init__.py", line 10, in <module>
    from .bowtie2 import indexing, mapping
  File "/home/runner/work/distributions/distributions/test-env/lib/python3.8/site-packages/q2_assembly/bowtie2/__init__.py", line 9, in <module>
    from .indexing import index_contigs, index_mags
  File "/home/runner/work/distributions/distributions/test-env/lib/python3.8/site-packages/q2_assembly/bowtie2/indexing.py", line 13, in <module>
    from q2_types.bowtie2 import Bowtie2IndexDirFmt
  File "/home/runner/work/distributions/distributions/test-env/lib/python3.8/site-packages/q2_types/__init__.py", line 18, in <module>
    importlib.import_module('q2_types.multiplexed_sequences')
  File "/home/runner/work/distributions/distributions/test-env/lib/python3.8/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "/home/runner/work/distributions/distributions/test-env/lib/python3.8/site-packages/q2_types/multiplexed_sequences/__init__.py", line 11, in <module>
    from ._format import (MultiplexedSingleEndBarcodeInSequenceDirFmt,
  File "/home/runner/work/distributions/distributions/test-env/lib/python3.8/site-packages/q2_types/multiplexed_sequences/_format.py", line 11, in <module>
    from ..per_sample_sequences import FastqGzFormat
  File "/home/runner/work/distributions/distributions/test-env/lib/python3.8/site-packages/q2_types/per_sample_sequences/__init__.py", line 11, in <module>
    from ._format import (CasavaOneEightSingleLanePerSampleDirFmt,
  File "/home/runner/work/distributions/distributions/test-env/lib/python3.8/site-packages/q2_types/per_sample_sequences/_format.py", line 25, in <module>
    from q2_types.bowtie2 import Bowtie2IndexDirFmt
  File "/home/runner/work/distributions/distributions/test-env/lib/python3.8/site-packages/q2_types/bowtie2/__init__.py", line 9, in <module>
    from ._formats import (Bowtie2IndexFileFormat, Bowtie2IndexDirFmt)
  File "/home/runner/work/distributions/distributions/test-env/lib/python3.8/site-packages/q2_types/bowtie2/_formats.py", line 12, in <module>
    from ..plugin_setup import plugin, citations
  File "/home/runner/work/distributions/distributions/test-env/lib/python3.8/site-packages/q2_types/plugin_setup.py", line 41, in <module>
    importlib.import_module('q2_types.feature_data_mag')
  File "/home/runner/work/distributions/distributions/test-env/lib/python3.8/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "/home/runner/work/distributions/distributions/test-env/lib/python3.8/site-packages/q2_types/feature_data_mag/__init__.py", line 17, in <module>
    from ._type import MAG, NOG, OG, KEGG, Contig
  File "/home/runner/work/distributions/distributions/test-env/lib/python3.8/site-packages/q2_types/feature_data_mag/_type.py", line 16, in <module>
    from ..per_sample_sequences import ContigSequencesDirFmt
ImportError: cannot import name 'ContigSequencesDirFmt' from partially initialized module 'q2_types.per_sample_sequences' (most likely due to a circular import) (/home/runner/work/distributions/distributions/test-env/lib/python3.8/site-packages/q2_types/per_sample_sequences/__init__.py)

@ebolyen ebolyen merged commit 823b5a4 into qiime2:dev Mar 13, 2024
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
No open projects
Status: Completed
Development

Successfully merging this pull request may close these issues.

1 participant