ShahriyarR/hexagonal-flask-blog-tutorial

TypeError: 'type' object is not subscriptable

wise-ubuntu opened this issue · 2 comments

Do you know how to solve this issue?

flask --app src.adapters.app.application init-db
Traceback (most recent call last):
  File "/home/user/architecture/venv/bin/flask", line 8, in <module>
    sys.exit(main())
  File "/home/user/architecture/venv/lib/python3.8/site-packages/flask/cli.py", line 1047, in main
    cli.main()
  File "/home/user/architecture/venv/lib/python3.8/site-packages/click/core.py", line 1055, in main
    rv = self.invoke(ctx)
  File "/home/user/architecture/venv/lib/python3.8/site-packages/click/core.py", line 1651, in invoke
    cmd_name, cmd, args = self.resolve_command(ctx, args)
  File "/home/user/architecture/venv/lib/python3.8/site-packages/click/core.py", line 1698, in resolve_command
    cmd = self.get_command(ctx, cmd_name)
  File "/home/user/architecture/venv/lib/python3.8/site-packages/flask/cli.py", line 578, in get_command
    app = info.load_app()
  File "/home/user/architecture/venv/lib/python3.8/site-packages/flask/cli.py", line 308, in load_app
    app = locate_app(import_name, name)
  File "/home/user/architecture/venv/lib/python3.8/site-packages/flask/cli.py", line 218, in locate_app
    __import__(module_name)
  File "/home/user/architecture/hexagonal-flask-blog-tutorial/src/adapters/app/application.py", line 3, in <module>
    from src.main.containers import Container
  File "/home/user/architecture/hexagonal-flask-blog-tutorial/src/main/containers.py", line 4, in <module>
    from src.main.user_containers import UserContainer
  File "/home/user/architecture/hexagonal-flask-blog-tutorial/src/main/user_containers.py", line 2, in <module>
    from src.adapters.db.user_repository import UserRepository
  File "/home/user/architecture/hexagonal-flask-blog-tutorial/src/adapters/db/user_repository.py", line 2, in <module>
    from src.domain.ports.repository import RepositoryInterface
  File "/home/user/architecture/hexagonal-flask-blog-tutorial/src/domain/ports/repository.py", line 6, in <module>
    class RepositoryInterface(ABC):
  File "/home/user/architecture/hexagonal-flask-blog-tutorial/src/domain/ports/repository.py", line 13, in RepositoryInterface
    def execute(self, query: str, data: tuple[Any, ...], commit: bool = False) -> Any:
TypeError: 'type' object is not subscriptable

This is due to Python version, you are using 3.8 but the supported version for this project is 3.9.
There are 2 options here:

  • If possible use Python >= 3.9
  • Or add from __future__ import annotations at top of the imports where you got this fail.

Thanks!