Skip to content

TypeError: 'type' object is not subscriptable #100

@iDoka

Description

@iDoka

Приветствую!
В первую очередь спасибо за разработку.

Мой сетап:
OS: CentOS 7 64bit
Python 3.6.8

Пытаюсь запустить на последнем коммите из ветки мастер:

$ python3 -m poptimizer
Traceback (most recent call last):
  File "/usr/lib64/python3.6/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/usr/lib64/python3.6/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/home/doka/proj/2022/poptimizer/poptimizer/__main__.py", line 6, in <module>
    from poptimizer import config
  File "/home/doka/proj/2022/poptimizer/poptimizer/config.py", line 9, in <module>
    from poptimizer.shared.log import get_handlers
  File "/home/doka/proj/2022/poptimizer/poptimizer/shared/log.py", line 48, in <module>
    ) -> list[Handler]:
TypeError: 'type' object is not subscriptable

pytest жалуется на аналогичную проблему:

$ pytest poptimizer -v --cov=poptimizer --cov-report=term-missing --cov-report=xml --setup-show
================================================================================================================================== test session starts ===================================================================================================================================
platform linux -- Python 3.6.8, pytest-6.2.5, py-1.11.0, pluggy-1.0.0 -- /home/doka/proj/2022/poptimizer/.venv/bin/python3
cachedir: .pytest_cache
rootdir: /home/doka/proj/2022/poptimizer
plugins: asyncio-0.16.0, cov-3.0.0, mock-3.6.1
collected 0 items / 1 error                                                                                                                                                                                                                                                              
/home/doka/proj/2022/poptimizer/.venv/lib64/python3.6/site-packages/coverage/report.py:81: CoverageWarning: Couldn't parse Python file '/home/doka/proj/2022/poptimizer/poptimizer/data/adapters/gateways/cpi.py' (couldnt-parse)
  coverage._warn(msg, slug="couldnt-parse")
/home/doka/proj/2022/poptimizer/.venv/lib64/python3.6/site-packages/coverage/report.py:81: CoverageWarning: Couldn't parse Python file '/home/doka/proj/2022/poptimizer/poptimizer/data/app/viewers.py' (couldnt-parse)
  coverage._warn(msg, slug="couldnt-parse")
/home/doka/proj/2022/poptimizer/.venv/lib64/python3.6/site-packages/coverage/report.py:81: CoverageWarning: Couldn't parse Python file '/home/doka/proj/2022/poptimizer/poptimizer/data/domain/factory.py' (couldnt-parse)
  coverage._warn(msg, slug="couldnt-parse")
/home/doka/proj/2022/poptimizer/.venv/lib64/python3.6/site-packages/coverage/report.py:81: CoverageWarning: Couldn't parse Python file '/home/doka/proj/2022/poptimizer/poptimizer/data/domain/tables/cbr.py' (couldnt-parse)
  coverage._warn(msg, slug="couldnt-parse")
/home/doka/proj/2022/poptimizer/.venv/lib64/python3.6/site-packages/coverage/report.py:81: CoverageWarning: Couldn't parse Python file '/home/doka/proj/2022/poptimizer/poptimizer/data/domain/tables/cpi.py' (couldnt-parse)
  coverage._warn(msg, slug="couldnt-parse")
/home/doka/proj/2022/poptimizer/.venv/lib64/python3.6/site-packages/coverage/report.py:81: CoverageWarning: Couldn't parse Python file '/home/doka/proj/2022/poptimizer/poptimizer/data/domain/tables/dividends.py' (couldnt-parse)
  coverage._warn(msg, slug="couldnt-parse")
/home/doka/proj/2022/poptimizer/.venv/lib64/python3.6/site-packages/coverage/report.py:81: CoverageWarning: Couldn't parse Python file '/home/doka/proj/2022/poptimizer/poptimizer/data/domain/tables/indexes.py' (couldnt-parse)
  coverage._warn(msg, slug="couldnt-parse")
/home/doka/proj/2022/poptimizer/.venv/lib64/python3.6/site-packages/coverage/report.py:81: CoverageWarning: Couldn't parse Python file '/home/doka/proj/2022/poptimizer/poptimizer/data/domain/tables/quotes.py' (couldnt-parse)
  coverage._warn(msg, slug="couldnt-parse")
/home/doka/proj/2022/poptimizer/.venv/lib64/python3.6/site-packages/coverage/report.py:81: CoverageWarning: Couldn't parse Python file '/home/doka/proj/2022/poptimizer/poptimizer/data/domain/tables/trading_dates.py' (couldnt-parse)
  coverage._warn(msg, slug="couldnt-parse")
/home/doka/proj/2022/poptimizer/.venv/lib64/python3.6/site-packages/coverage/report.py:81: CoverageWarning: Couldn't parse Python file '/home/doka/proj/2022/poptimizer/poptimizer/data/domain/tables/usd.py' (couldnt-parse)
  coverage._warn(msg, slug="couldnt-parse")
/home/doka/proj/2022/poptimizer/.venv/lib64/python3.6/site-packages/coverage/report.py:81: CoverageWarning: Couldn't parse Python file '/home/doka/proj/2022/poptimizer/poptimizer/dl/features/turnover.py' (couldnt-parse)
  coverage._warn(msg, slug="couldnt-parse")
/home/doka/proj/2022/poptimizer/.venv/lib64/python3.6/site-packages/coverage/report.py:81: CoverageWarning: Couldn't parse Python file '/home/doka/proj/2022/poptimizer/poptimizer/dl/model.py' (couldnt-parse)
  coverage._warn(msg, slug="couldnt-parse")
/home/doka/proj/2022/poptimizer/.venv/lib64/python3.6/site-packages/coverage/report.py:81: CoverageWarning: Couldn't parse Python file '/home/doka/proj/2022/poptimizer/poptimizer/evolve/evolve.py' (couldnt-parse)
  coverage._warn(msg, slug="couldnt-parse")
/home/doka/proj/2022/poptimizer/.venv/lib64/python3.6/site-packages/coverage/report.py:81: CoverageWarning: Couldn't parse Python file '/home/doka/proj/2022/poptimizer/poptimizer/evolve/population.py' (couldnt-parse)
  coverage._warn(msg, slug="couldnt-parse")
/home/doka/proj/2022/poptimizer/.venv/lib64/python3.6/site-packages/coverage/report.py:81: CoverageWarning: Couldn't parse Python file '/home/doka/proj/2022/poptimizer/poptimizer/portfolio/portfolio.py' (couldnt-parse)
  coverage._warn(msg, slug="couldnt-parse")
/home/doka/proj/2022/poptimizer/.venv/lib64/python3.6/site-packages/coverage/report.py:81: CoverageWarning: Couldn't parse Python file '/home/doka/proj/2022/poptimizer/poptimizer/shared/adapters.py' (couldnt-parse)
  coverage._warn(msg, slug="couldnt-parse")
/home/doka/proj/2022/poptimizer/.venv/lib64/python3.6/site-packages/coverage/report.py:81: CoverageWarning: Couldn't parse Python file '/home/doka/proj/2022/poptimizer/poptimizer/shared/connections.py' (couldnt-parse)
  coverage._warn(msg, slug="couldnt-parse")
/home/doka/proj/2022/poptimizer/.venv/lib64/python3.6/site-packages/coverage/report.py:81: CoverageWarning: Couldn't parse Python file '/home/doka/proj/2022/poptimizer/poptimizer/store/database.py' (couldnt-parse)
  coverage._warn(msg, slug="couldnt-parse")

========================================================================================================================================= ERRORS =========================================================================================================================================
_____________________________________________________________________________________________________________________________ ERROR collecting test session ______________________________________________________________________________________________________________________________
/usr/lib64/python3.6/importlib/__init__.py:126: in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
<frozen importlib._bootstrap>:994: in _gcd_import
    ???
<frozen importlib._bootstrap>:971: in _find_and_load
    ???
<frozen importlib._bootstrap>:941: in _find_and_load_unlocked
    ???
<frozen importlib._bootstrap>:219: in _call_with_frames_removed
    ???
<frozen importlib._bootstrap>:994: in _gcd_import
    ???
<frozen importlib._bootstrap>:971: in _find_and_load
    ???
<frozen importlib._bootstrap>:941: in _find_and_load_unlocked
    ???
<frozen importlib._bootstrap>:219: in _call_with_frames_removed
    ???
<frozen importlib._bootstrap>:994: in _gcd_import
    ???
<frozen importlib._bootstrap>:971: in _find_and_load
    ???
<frozen importlib._bootstrap>:955: in _find_and_load_unlocked
    ???
<frozen importlib._bootstrap>:665: in _load_unlocked
    ???
<frozen importlib._bootstrap_external>:678: in exec_module
    ???
<frozen importlib._bootstrap>:219: in _call_with_frames_removed
    ???
poptimizer/reports/__init__.py:2: in <module>
    from poptimizer.reports.pdf import report
poptimizer/reports/pdf.py:5: in <module>
    from poptimizer.config import REPORTS_PATH, POptimizerError
poptimizer/config.py:9: in <module>
    from poptimizer.shared.log import get_handlers
poptimizer/shared/log.py:48: in <module>
    ) -> list[Handler]:
E   TypeError: 'type' object is not subscriptable

----------- coverage: platform linux, python 3.6.8-final-0 -----------
Name                                                  Stmts   Miss Branch BrPart  Cover   Missing
-------------------------------------------------------------------------------------------------
poptimizer/__init__.py                                    0      0      0      0   100%
poptimizer/__main__.py                                   20     20      0      0     0%   2-36
poptimizer/config.py                                     36     29      4      0    18%   12-65
poptimizer/conftest.py                                    8      3      0      0    62%   11-13
poptimizer/data/__init__.py                               0      0      0      0   100%
poptimizer/data/adapters/__init__.py                      0      0      0      0   100%
poptimizer/data/adapters/gateways/__init__.py             0      0      0      0   100%
poptimizer/data/adapters/gateways/bcs.py                 53     53     14      0     0%   2-83
poptimizer/data/adapters/gateways/cbr.py                 28     28      4      0     0%   2-57
poptimizer/data/adapters/gateways/close_reestry.py       52     52     14      0     0%   2-91
poptimizer/data/adapters/gateways/conomy.py              54     54      4      0     0%   2-105
poptimizer/data/adapters/gateways/dividends.py           24     24      8      0     0%   2-50
poptimizer/data/adapters/gateways/dohod.py               24     24      2      0     0%   2-50
poptimizer/data/adapters/gateways/finrange.py            38     38      4      0     0%   2-71
poptimizer/data/adapters/gateways/gateways.py            17     17      8      0     0%   2-39
poptimizer/data/adapters/gateways/invest_mint.py         54     54     12      0     0%   2-111
poptimizer/data/adapters/gateways/moex.py                56     56     14      0     0%   2-173
poptimizer/data/adapters/gateways/moex_status.py         25     25      4      0     0%   2-58
poptimizer/data/adapters/gateways/nasdaq.py              35     35      4      0     0%   2-72
poptimizer/data/adapters/gateways/smart_lab.py           19     19      2      0     0%   2-48
poptimizer/data/adapters/gateways/street_insider.py      25     25      2      0     0%   2-52
poptimizer/data/adapters/html/__init__.py                 0      0      0      0   100%
poptimizer/data/adapters/html/cell_parser.py             46     46     10      0     0%   2-64
poptimizer/data/adapters/html/chromium.py                28     28      6      0     0%   2-56
poptimizer/data/adapters/html/description.py             27     27     10      0     0%   2-56
poptimizer/data/adapters/html/parser.py                  52     52     13      0     0%   2-87
poptimizer/data/adapters/odm.py                          49     49     10      0     0%   2-107
poptimizer/data/app/__init__.py                           0      0      0      0   100%
poptimizer/data/app/bootstrap.py                         19     19      2      0     0%   2-47
poptimizer/data/domain/__init__.py                        0      0      0      0   100%
poptimizer/data/domain/events.py                         31     31     12      0     0%   2-64
poptimizer/data/domain/handlers.py                       51     51     12      0     0%   2-123
poptimizer/data/domain/tables/__init__.py                 0      0      0      0   100%
poptimizer/data/domain/tables/base.py                    64     64     24      0     0%   2-123
poptimizer/data/domain/tables/securities.py              39     39     10      0     0%   2-86
poptimizer/data/ports.py                                 12     12      0      0     0%   2-15
poptimizer/data/views/__init__.py                         0      0      0      0   100%
poptimizer/data/views/crop/__init__.py                    0      0      0      0   100%
poptimizer/data/views/crop/div.py                        17     17      2      0     0%   2-43
poptimizer/data/views/crop/not_div.py                    17     17      2      0     0%   2-37
poptimizer/data/views/div_status.py                      58     58     14      0     0%   2-124
poptimizer/data/views/go.py                               8      8      0      0     0%   2-13
poptimizer/data/views/indexes.py                         28     28      0      0     0%   2-65
poptimizer/data/views/listing.py                         24     24      0      0     0%   2-52
poptimizer/data/views/quotes.py                          34     34      8      0     0%   2-107
poptimizer/dl/__init__.py                                 4      4      0      0     0%   2-5
poptimizer/dl/data_loader.py                             38     38     12      0     0%   2-86
poptimizer/dl/features/__init__.py                       18     18      0      0     0%   2-19
poptimizer/dl/features/data_params.py                    79     79     12      0     0%   2-170
poptimizer/dl/features/day_of_period.py                  14     14      2      0     0%   2-29
poptimizer/dl/features/day_of_year.py                    16     16      2      0     0%   2-32
poptimizer/dl/features/dividends.py                      16     16      2      0     0%   2-28
poptimizer/dl/features/feature.py                        18     18      4      0     0%   2-40
poptimizer/dl/features/high.py                           20     20      2      0     0%   2-37
poptimizer/dl/features/imoex.py                          19     19      2      0     0%   2-38
poptimizer/dl/features/label.py                          28     28      2      0     0%   2-41
poptimizer/dl/features/low.py                            20     20      2      0     0%   2-37
poptimizer/dl/features/mcftrr.py                         19     19      2      0     0%   2-37
poptimizer/dl/features/meogtrr.py                        19     19      2      0     0%   2-33
poptimizer/dl/features/open.py                           21     21      2      0     0%   2-39
poptimizer/dl/features/prices.py                         17     17      2      0     0%   2-27
poptimizer/dl/features/rvi.py                            19     19      2      0     0%   2-37
poptimizer/dl/features/ticker.py                         16     16      2      0     0%   2-26
poptimizer/dl/features/ticker_type.py                    17     17      2      0     0%   2-32
poptimizer/dl/features/usd.py                            19     19      2      0     0%   2-38
poptimizer/dl/forecast.py                                19     19      2      0     0%   2-28
poptimizer/dl/ledoit_wolf.py                             33     33      0      0     0%   2-82
poptimizer/dl/ledoit_wolf_nonlinear.py                   52     52      4      0     0%   1-141
poptimizer/dl/models/__init__.py                          1      1      0      0     0%   2
poptimizer/dl/models/wave_net.py                        112    112     42      0     0%   2-334
poptimizer/evolve/__init__.py                             2      2      0      0     0%   2-3
poptimizer/evolve/chromosomes/__init__.py                 6      6      0      0     0%   2-7
poptimizer/evolve/chromosomes/chromosome.py              46     46     16      0     0%   2-134
poptimizer/evolve/chromosomes/data.py                    22     22     34      0     0%   2-154
poptimizer/evolve/chromosomes/model.py                   12     12      4      0     0%   2-75
poptimizer/evolve/chromosomes/optimizer.py                6      6      4      0     0%   2-33
poptimizer/evolve/chromosomes/scheduler.py               11     11      4      0     0%   2-73
poptimizer/evolve/chromosomes/utility.py                  5      5      2      0     0%   2-37
poptimizer/evolve/forecaster.py                          66     66     18      0     0%   2-137
poptimizer/evolve/genotype.py                            33     33     10      0     0%   2-80
poptimizer/evolve/seq.py                                 22     22      6      0     0%   10-109
poptimizer/evolve/store.py                               79     79     20      0     0%   2-151
poptimizer/portfolio/__init__.py                          1      1      0      0     0%   2
poptimizer/portfolio/metrics.py                         176    176     42      0     0%   2-346
poptimizer/portfolio/optimizer_hmean.py                  99     99     14      0     0%   2-199
poptimizer/portfolio/optimizer_resample.py               81     81     10      0     0%   2-191
poptimizer/reports/__init__.py                            2      1      0      0    50%   3
poptimizer/reports/excel.py                              14     14      4      0     0%   1-25
poptimizer/reports/pdf.py                                60     57     10      0     4%   6-153
poptimizer/reports/pdf_lower.py                          62     62      4      0     0%   2-144
poptimizer/reports/pdf_middle.py                         75     75      6      0     0%   3-130
poptimizer/reports/pdf_style.py                          36     36      0      0     0%   2-76
poptimizer/reports/pdf_upper.py                          85     85      8      0     0%   3-172
poptimizer/reports/simple.py                             49     49      2      0     0%   2-107
poptimizer/shared/__init__.py                             0      0      0      0   100%
poptimizer/shared/app.py                                 60     60     22      0     0%   2-133
poptimizer/shared/col.py                                 21     21      0      0     0%   2-30
poptimizer/shared/domain.py                              35     35     14      0     0%   2-78
poptimizer/shared/log.py                                 33     20      4      0    41%   16, 23-29, 33-37, 41, 50-65
poptimizer/store/__init__.py                              0      0      0      0   100%
-------------------------------------------------------------------------------------------------
TOTAL                                                  3025   2996    599      0     1%
Coverage XML written to file coverage.xml

================================================================================================================================ short test summary info =================================================================================================================================
ERROR  - TypeError: 'type' object is not subscriptable
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
==================================================================================================================================== 1 error in 2.17s ====================================================================================================================================

Я что-то делаю не так или есть какой-то более стабильно работающий коммит?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions