Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • D DeepPavlov
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 18
    • Issues 18
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 22
    • Merge requests 22
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Infrastructure Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • DeepPavlov
  • DeepPavlov
  • Merge requests
  • !1581

Fix collections.Iterable import to make in work on Python 3.10

  • Review changes

  • Download
  • Email patches
  • Plain diff
Closed Andrei Glinskii requested to merge github/fork/sld/patch-2 into master Jul 22, 2022
  • Overview 1
  • Commits 1
  • Pipelines 0
  • Changes 1

Created by: sld

The Iterable abstract class was removed from collections in Python 3.10. See the deprecation note in the 3.9 collections docs (https://docs.python.org/3.9/library/collections.html).

So python -m deeppavlov interact levenshtein_corrector_ru -d fails:

2022-07-22 14:25:52.58 INFO in 'deeppavlov.core.data.utils'['utils'] at line 95: Downloading from http://files.deeppavlov.ai/deeppavlov_data/vocabs/russian_words_vocab.dict.gz?config=levenshtein_corrector_ru to /home/idris/.deeppavlov/downloads/russian_words_vocab.dict.gz
100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 10.7M/10.7M [00:01<00:00, 9.73MB/s]
2022-07-22 14:25:53.504 INFO in 'deeppavlov.core.data.utils'['utils'] at line 272: Extracting /home/idris/.deeppavlov/downloads/russian_words_vocab.dict.gz archive into /home/idris/.deeppavlov/downloads/vocabs
2022-07-22 14:25:53.983 INFO in 'deeppavlov.core.data.utils'['utils'] at line 95: Downloading from http://files.deeppavlov.ai/lang_models/ru_wiyalen_no_punkt.arpa.binary.gz?config=levenshtein_corrector_ru to /home/idris/.deeppavlov/downloads/ru_wiyalen_no_punkt.arpa.binary.gz
100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 3.26G/3.26G [01:58<00:00, 27.4MB/s]
2022-07-22 14:27:53.143 INFO in 'deeppavlov.core.data.utils'['utils'] at line 272: Extracting /home/idris/.deeppavlov/downloads/ru_wiyalen_no_punkt.arpa.binary.gz archive into /home/idris/.deeppavlov/downloads/language_models
[nltk_data] Downloading package punkt to /home/idris/nltk_data...
[nltk_data]   Unzipping tokenizers/punkt.zip.
[nltk_data] Downloading package stopwords to /home/idris/nltk_data...
[nltk_data]   Unzipping corpora/stopwords.zip.
[nltk_data] Downloading package perluniprops to
[nltk_data]     /home/idris/nltk_data...
[nltk_data]   Package perluniprops is already up-to-date!
[nltk_data] Downloading package nonbreaking_prefixes to
[nltk_data]     /home/idris/nltk_data...
[nltk_data]   Package nonbreaking_prefixes is already up-to-date!
Traceback (most recent call last):
  File "/home/idris/.pyenv/versions/3.10.4/lib/python3.10/runpy.py", line 196, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/home/idris/.pyenv/versions/3.10.4/lib/python3.10/runpy.py", line 86, in _run_code
    exec(code, run_globals)
  File "/home/idris/.pyenv/versions/3.10.4/lib/python3.10/site-packages/deeppavlov/__main__.py", line 4, in <module>
    main()
  File "/home/idris/.pyenv/versions/3.10.4/lib/python3.10/site-packages/deeppavlov/deep.py", line 80, in main
    interact_model(pipeline_config_path)
  File "/home/idris/.pyenv/versions/3.10.4/lib/python3.10/site-packages/deeppavlov/core/commands/infer.py", line 79, in interact_model
    model = build_model(config)
  File "/home/idris/.pyenv/versions/3.10.4/lib/python3.10/site-packages/deeppavlov/core/commands/infer.py", line 62, in build_model
    component = from_params(component_config, mode=mode, serialized=component_serialized)
  File "/home/idris/.pyenv/versions/3.10.4/lib/python3.10/site-packages/deeppavlov/core/common/params.py", line 95, in from_params
    obj = get_model(cls_name)
  File "/home/idris/.pyenv/versions/3.10.4/lib/python3.10/site-packages/deeppavlov/core/common/registry.py", line 74, in get_model
    return cls_from_str(_REGISTRY[name])
  File "/home/idris/.pyenv/versions/3.10.4/lib/python3.10/site-packages/deeppavlov/core/common/registry.py", line 42, in cls_from_str
    return getattr(importlib.import_module(module_name), cls_name)
  File "/home/idris/.pyenv/versions/3.10.4/lib/python3.10/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 688, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 883, in exec_module
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "/home/idris/.pyenv/versions/3.10.4/lib/python3.10/site-packages/deeppavlov/core/data/simple_vocab.py", line 15, in <module>
    from collections import Counter, defaultdict, Iterable
ImportError: cannot import name 'Iterable' from 'collections' (/home/idris/.pyenv/versions/3.10.4/lib/python3.10/collections/__init__.py)

Here is the fix to make it work on Python 3.10.

Assignee
Assign to
Reviewers
Request review from
Time tracking
Source branch: github/fork/sld/patch-2