-
Notifications
You must be signed in to change notification settings - Fork 1
Open
Description
Installing package from pypi (as of 0.2.5) with asyncapi-python[codegen] fails to generate code.
If I install asyncapi-python without codegen and manually add typer (version 0.21), code generation succeeds.
Test
Using docker image python:3.13 for reproducibility.
Executed commands
root@c2656bd48fd4:/# git clone https://github.com/G-USI/asyncapi-python
root@c2656bd48fd4:/# cd asyncapi-python/examples/amqp-pub-sub/
root@c2656bd48fd4:/asyncapi-python/examples/amqp-pub-sub# make venv
root@c2656bd48fd4:/asyncapi-python/examples/amqp-pub-sub# source .venv/bin/activate
(.venv) root@c2656bd48fd4:/asyncapi-python/examples/amqp-pub-sub# pip install asyncapi-python[codegen]
(.venv) root@c2656bd48fd4:/asyncapi-python/examples/amqp-pub-sub# make generate
Result
.venv/bin/asyncapi-python-codegen spec/subscriber.asyncapi.yaml subscriber --force
╭───────────────────────────────────────────────── Traceback (most recent call last) ──────────────────────────────────────────────────╮
│ /asyncapi-python/examples/amqp-pub-sub/.venv/bin/asyncapi-python-codegen:7 in <module> │
│ │
│ 4 if __name__ == '__main__': │
│ 5 │ if sys.argv[0].endswith('.exe'): │
│ 6 │ │ sys.argv[0] = sys.argv[0][:-4] │
│ ❱ 7 │ sys.exit(app()) │
│ 8 │
│ │
│ ╭───────────────────── locals ──────────────────────╮ │
│ │ app = <typer.main.Typer object at 0x7fc43f645d30> │ │
│ │ sys = <module 'sys' (built-in)> │ │
│ ╰───────────────────────────────────────────────────╯ │
│ │
│ /asyncapi-python/examples/amqp-pub-sub/.venv/lib/python3.13/site-packages/typer/main.py:338 in __call__ │
│ │
│ /asyncapi-python/examples/amqp-pub-sub/.venv/lib/python3.13/site-packages/typer/main.py:321 in __call__ │
│ │
│ /asyncapi-python/examples/amqp-pub-sub/.venv/lib/python3.13/site-packages/typer/main.py:374 in get_command │
│ │
│ /asyncapi-python/examples/amqp-pub-sub/.venv/lib/python3.13/site-packages/typer/main.py:590 in get_command_from_info │
│ │
│ /asyncapi-python/examples/amqp-pub-sub/.venv/lib/python3.13/site-packages/typer/main.py:566 in │
│ get_params_convertors_ctx_param_name_from_function │
│ │
│ /asyncapi-python/examples/amqp-pub-sub/.venv/lib/python3.13/site-packages/typer/main.py:900 in get_click_param │
│ │
│ /asyncapi-python/examples/amqp-pub-sub/.venv/lib/python3.13/site-packages/typer/core.py:427 in __init__ │
│ │
│ /asyncapi-python/examples/amqp-pub-sub/.venv/lib/python3.13/site-packages/click/core.py:2852 in __init__ │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
TypeError: Secondary flag is not valid for non-boolean flag.
make: *** [Makefile:15: generate] Error 1
Full log
root@c2656bd48fd4:/# git clone https://github.com/G-USI/asyncapi-python
Cloning into 'asyncapi-python'...
remote: Enumerating objects: 2760, done.
remote: Counting objects: 100% (360/360), done.
remote: Compressing objects: 100% (198/198), done.
remote: Total 2760 (delta 200), reused 255 (delta 155), pack-reused 2400 (from 1)
Receiving objects: 100% (2760/2760), 740.11 KiB | 13.22 MiB/s, done.
Resolving deltas: 100% (1579/1579), done.
root@c2656bd48fd4:/# cd asyncapi-python/examples/amqp-pub-sub/
root@c2656bd48fd4:/asyncapi-python/examples/amqp-pub-sub# make venv
python3 -m venv .venv
root@c2656bd48fd4:/asyncapi-python/examples/amqp-pub-sub# source .venv/bin/activate
(.venv) root@c2656bd48fd4:/asyncapi-python/examples/amqp-pub-sub# pip install asyncapi-python[codegen]
Collecting asyncapi-python[codegen]
Downloading asyncapi_python-0.2.5-py3-none-any.whl.metadata (5.7 kB)
Collecting black (from asyncapi-python[codegen])
Downloading black-25.12.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (86 kB)
Collecting datamodel-code-generator<0.27.0,>=0.26.4 (from datamodel-code-generator[http]<0.27.0,>=0.26.4; extra == "codegen"->asyncapi-python[codegen])
Downloading datamodel_code_generator-0.26.5-py3-none-any.whl.metadata (24 kB)
Collecting jinja2<4.0.0,>=3.1.4 (from asyncapi-python[codegen])
Downloading jinja2-3.1.6-py3-none-any.whl.metadata (2.9 kB)
Collecting pydantic>=2 (from asyncapi-python[codegen])
Downloading pydantic-2.12.5-py3-none-any.whl.metadata (90 kB)
Collecting pytz (from asyncapi-python[codegen])
Downloading pytz-2025.2-py2.py3-none-any.whl.metadata (22 kB)
Collecting pyyaml (from asyncapi-python[codegen])
Downloading pyyaml-6.0.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (2.4 kB)
Collecting typer<0.13.0,>=0.12.5 (from typer[all]<0.13.0,>=0.12.5; extra == "codegen"->asyncapi-python[codegen])
Downloading typer-0.12.5-py3-none-any.whl.metadata (15 kB)
Collecting argcomplete<4.0,>=1.10 (from datamodel-code-generator<0.27.0,>=0.26.4->datamodel-code-generator[http]<0.27.0,>=0.26.4; extra == "codegen"->asyncapi-python[codegen])
Downloading argcomplete-3.6.3-py3-none-any.whl.metadata (16 kB)
Collecting black (from asyncapi-python[codegen])
Downloading black-26.1a1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (88 kB)
Collecting genson<2.0,>=1.2.1 (from datamodel-code-generator<0.27.0,>=0.26.4->datamodel-code-generator[http]<0.27.0,>=0.26.4; extra == "codegen"->asyncapi-python[codegen])
Downloading genson-1.3.0-py3-none-any.whl.metadata (28 kB)
Collecting inflect<6.0,>=4.1.0 (from datamodel-code-generator<0.27.0,>=0.26.4->datamodel-code-generator[http]<0.27.0,>=0.26.4; extra == "codegen"->asyncapi-python[codegen])
Downloading inflect-5.6.2-py3-none-any.whl.metadata (21 kB)
Collecting isort<6.0,>=4.3.21 (from datamodel-code-generator<0.27.0,>=0.26.4->datamodel-code-generator[http]<0.27.0,>=0.26.4; extra == "codegen"->asyncapi-python[codegen])
Downloading isort-5.13.2-py3-none-any.whl.metadata (12 kB)
Collecting packaging (from datamodel-code-generator<0.27.0,>=0.26.4->datamodel-code-generator[http]<0.27.0,>=0.26.4; extra == "codegen"->asyncapi-python[codegen])
Downloading packaging-25.0-py3-none-any.whl.metadata (3.3 kB)
Collecting httpx (from datamodel-code-generator[http]<0.27.0,>=0.26.4; extra == "codegen"->asyncapi-python[codegen])
Downloading httpx-0.28.1-py3-none-any.whl.metadata (7.1 kB)
Collecting MarkupSafe>=2.0 (from jinja2<4.0.0,>=3.1.4->asyncapi-python[codegen])
Downloading markupsafe-3.0.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (2.7 kB)
Collecting annotated-types>=0.6.0 (from pydantic>=2->asyncapi-python[codegen])
Downloading annotated_types-0.7.0-py3-none-any.whl.metadata (15 kB)
Collecting pydantic-core==2.41.5 (from pydantic>=2->asyncapi-python[codegen])
Downloading pydantic_core-2.41.5-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (7.3 kB)
Collecting typing-extensions>=4.14.1 (from pydantic>=2->asyncapi-python[codegen])
Downloading typing_extensions-4.15.0-py3-none-any.whl.metadata (3.3 kB)
Collecting typing-inspection>=0.4.2 (from pydantic>=2->asyncapi-python[codegen])
Downloading typing_inspection-0.4.2-py3-none-any.whl.metadata (2.6 kB)
Collecting email-validator>=2.0.0 (from pydantic[email]!=2.0.0,!=2.0.1,!=2.4.0,<3.0,>=1.10.0; python_version >= "3.12" and python_version < "4.0"->datamodel-code-generator<0.27.0,>=0.26.4->datamodel-code-generator[http]<0.27.0,>=0.26.4; extra == "codegen"->asyncapi-python[codegen])
Downloading email_validator-2.3.0-py3-none-any.whl.metadata (26 kB)
Collecting click>=8.0.0 (from typer<0.13.0,>=0.12.5->typer[all]<0.13.0,>=0.12.5; extra == "codegen"->asyncapi-python[codegen])
Downloading click-8.3.1-py3-none-any.whl.metadata (2.6 kB)
Collecting shellingham>=1.3.0 (from typer<0.13.0,>=0.12.5->typer[all]<0.13.0,>=0.12.5; extra == "codegen"->asyncapi-python[codegen])
Downloading shellingham-1.5.4-py2.py3-none-any.whl.metadata (3.5 kB)
Collecting rich>=10.11.0 (from typer<0.13.0,>=0.12.5->typer[all]<0.13.0,>=0.12.5; extra == "codegen"->asyncapi-python[codegen])
Downloading rich-14.2.0-py3-none-any.whl.metadata (18 kB)
WARNING: typer 0.12.5 does not provide the extra 'all'
Collecting mypy-extensions>=0.4.3 (from black->asyncapi-python[codegen])
Downloading mypy_extensions-1.1.0-py3-none-any.whl.metadata (1.1 kB)
Collecting pathspec>=0.9.0 (from black->asyncapi-python[codegen])
Downloading pathspec-0.12.1-py3-none-any.whl.metadata (21 kB)
Collecting platformdirs>=2 (from black->asyncapi-python[codegen])
Downloading platformdirs-4.5.1-py3-none-any.whl.metadata (12 kB)
Collecting pytokens>=0.3.0 (from black->asyncapi-python[codegen])
Downloading pytokens-0.3.0-py3-none-any.whl.metadata (2.0 kB)
Collecting dnspython>=2.0.0 (from email-validator>=2.0.0->pydantic[email]!=2.0.0,!=2.0.1,!=2.4.0,<3.0,>=1.10.0; python_version >= "3.12" and python_version < "4.0"->datamodel-code-generator<0.27.0,>=0.26.4->datamodel-code-generator[http]<0.27.0,>=0.26.4; extra == "codegen"->asyncapi-python[codegen])
Downloading dnspython-2.8.0-py3-none-any.whl.metadata (5.7 kB)
Collecting idna>=2.0.0 (from email-validator>=2.0.0->pydantic[email]!=2.0.0,!=2.0.1,!=2.4.0,<3.0,>=1.10.0; python_version >= "3.12" and python_version < "4.0"->datamodel-code-generator<0.27.0,>=0.26.4->datamodel-code-generator[http]<0.27.0,>=0.26.4; extra == "codegen"->asyncapi-python[codegen])
Downloading idna-3.11-py3-none-any.whl.metadata (8.4 kB)
Collecting markdown-it-py>=2.2.0 (from rich>=10.11.0->typer<0.13.0,>=0.12.5->typer[all]<0.13.0,>=0.12.5; extra == "codegen"->asyncapi-python[codegen])
Downloading markdown_it_py-4.0.0-py3-none-any.whl.metadata (7.3 kB)
Collecting pygments<3.0.0,>=2.13.0 (from rich>=10.11.0->typer<0.13.0,>=0.12.5->typer[all]<0.13.0,>=0.12.5; extra == "codegen"->asyncapi-python[codegen])
Downloading pygments-2.19.2-py3-none-any.whl.metadata (2.5 kB)
Collecting mdurl~=0.1 (from markdown-it-py>=2.2.0->rich>=10.11.0->typer<0.13.0,>=0.12.5->typer[all]<0.13.0,>=0.12.5; extra == "codegen"->asyncapi-python[codegen])
Downloading mdurl-0.1.2-py3-none-any.whl.metadata (1.6 kB)
Collecting anyio (from httpx->datamodel-code-generator[http]<0.27.0,>=0.26.4; extra == "codegen"->asyncapi-python[codegen])
Downloading anyio-4.12.0-py3-none-any.whl.metadata (4.3 kB)
Collecting certifi (from httpx->datamodel-code-generator[http]<0.27.0,>=0.26.4; extra == "codegen"->asyncapi-python[codegen])
Downloading certifi-2025.11.12-py3-none-any.whl.metadata (2.5 kB)
Collecting httpcore==1.* (from httpx->datamodel-code-generator[http]<0.27.0,>=0.26.4; extra == "codegen"->asyncapi-python[codegen])
Downloading httpcore-1.0.9-py3-none-any.whl.metadata (21 kB)
Collecting h11>=0.16 (from httpcore==1.*->httpx->datamodel-code-generator[http]<0.27.0,>=0.26.4; extra == "codegen"->asyncapi-python[codegen])
Downloading h11-0.16.0-py3-none-any.whl.metadata (8.3 kB)
Downloading asyncapi_python-0.2.5-py3-none-any.whl (40 kB)
Downloading datamodel_code_generator-0.26.5-py3-none-any.whl (114 kB)
Downloading argcomplete-3.6.3-py3-none-any.whl (43 kB)
Downloading genson-1.3.0-py3-none-any.whl (21 kB)
Downloading inflect-5.6.2-py3-none-any.whl (33 kB)
Downloading isort-5.13.2-py3-none-any.whl (92 kB)
Downloading jinja2-3.1.6-py3-none-any.whl (134 kB)
Downloading pydantic-2.12.5-py3-none-any.whl (463 kB)
Downloading pydantic_core-2.41.5-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.1 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.1/2.1 MB 18.7 MB/s 0:00:00
Downloading typer-0.12.5-py3-none-any.whl (47 kB)
Downloading annotated_types-0.7.0-py3-none-any.whl (13 kB)
Downloading black-26.1a1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (1.8 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.8/1.8 MB 27.9 MB/s 0:00:00
Downloading click-8.3.1-py3-none-any.whl (108 kB)
Downloading email_validator-2.3.0-py3-none-any.whl (35 kB)
Downloading dnspython-2.8.0-py3-none-any.whl (331 kB)
Downloading idna-3.11-py3-none-any.whl (71 kB)
Downloading markupsafe-3.0.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (22 kB)
Downloading mypy_extensions-1.1.0-py3-none-any.whl (5.0 kB)
Downloading packaging-25.0-py3-none-any.whl (66 kB)
Downloading pathspec-0.12.1-py3-none-any.whl (31 kB)
Downloading platformdirs-4.5.1-py3-none-any.whl (18 kB)
Downloading pytokens-0.3.0-py3-none-any.whl (12 kB)
Downloading pyyaml-6.0.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (801 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 801.6/801.6 kB 21.7 MB/s 0:00:00
Downloading rich-14.2.0-py3-none-any.whl (243 kB)
Downloading pygments-2.19.2-py3-none-any.whl (1.2 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.2/1.2 MB 14.0 MB/s 0:00:00
Downloading markdown_it_py-4.0.0-py3-none-any.whl (87 kB)
Downloading mdurl-0.1.2-py3-none-any.whl (10.0 kB)
Downloading shellingham-1.5.4-py2.py3-none-any.whl (9.8 kB)
Downloading typing_extensions-4.15.0-py3-none-any.whl (44 kB)
Downloading typing_inspection-0.4.2-py3-none-any.whl (14 kB)
Downloading httpx-0.28.1-py3-none-any.whl (73 kB)
Downloading httpcore-1.0.9-py3-none-any.whl (78 kB)
Downloading h11-0.16.0-py3-none-any.whl (37 kB)
Downloading anyio-4.12.0-py3-none-any.whl (113 kB)
Downloading certifi-2025.11.12-py3-none-any.whl (159 kB)
Downloading pytz-2025.2-py2.py3-none-any.whl (509 kB)
Installing collected packages: pytz, genson, typing-extensions, shellingham, pyyaml, pytokens, pygments, platformdirs, pathspec, packaging, mypy-extensions, mdurl, MarkupSafe, isort, inflect, idna, h11, dnspython, click, certifi, argcomplete, annotated-types, typing-inspection, pydantic-core, markdown-it-py, jinja2, httpcore, email-validator, black, anyio, rich, pydantic, httpx, typer, asyncapi-python, datamodel-code-generator
Successfully installed MarkupSafe-3.0.3 annotated-types-0.7.0 anyio-4.12.0 argcomplete-3.6.3 asyncapi-python-0.2.5 black-26.1a1 certifi-2025.11.12 click-8.3.1 datamodel-code-generator-0.26.5 dnspython-2.8.0 email-validator-2.3.0 genson-1.3.0 h11-0.16.0 httpcore-1.0.9 httpx-0.28.1 idna-3.11 inflect-5.6.2 isort-5.13.2 jinja2-3.1.6 markdown-it-py-4.0.0 mdurl-0.1.2 mypy-extensions-1.1.0 packaging-25.0 pathspec-0.12.1 platformdirs-4.5.1 pydantic-2.12.5 pydantic-core-2.41.5 pygments-2.19.2 pytokens-0.3.0 pytz-2025.2 pyyaml-6.0.3 rich-14.2.0 shellingham-1.5.4 typer-0.12.5 typing-extensions-4.15.0 typing-inspection-0.4.2
(.venv) root@c2656bd48fd4:/asyncapi-python/examples/amqp-pub-sub# make generate
.venv/bin/asyncapi-python-codegen spec/subscriber.asyncapi.yaml subscriber --force
╭───────────────────────────────────────────────── Traceback (most recent call last) ──────────────────────────────────────────────────╮
│ /asyncapi-python/examples/amqp-pub-sub/.venv/bin/asyncapi-python-codegen:7 in <module> │
│ │
│ 4 if __name__ == '__main__': │
│ 5 │ if sys.argv[0].endswith('.exe'): │
│ 6 │ │ sys.argv[0] = sys.argv[0][:-4] │
│ ❱ 7 │ sys.exit(app()) │
│ 8 │
│ │
│ ╭───────────────────── locals ──────────────────────╮ │
│ │ app = <typer.main.Typer object at 0x7fc43f645d30> │ │
│ │ sys = <module 'sys' (built-in)> │ │
│ ╰───────────────────────────────────────────────────╯ │
│ │
│ /asyncapi-python/examples/amqp-pub-sub/.venv/lib/python3.13/site-packages/typer/main.py:338 in __call__ │
│ │
│ /asyncapi-python/examples/amqp-pub-sub/.venv/lib/python3.13/site-packages/typer/main.py:321 in __call__ │
│ │
│ /asyncapi-python/examples/amqp-pub-sub/.venv/lib/python3.13/site-packages/typer/main.py:374 in get_command │
│ │
│ /asyncapi-python/examples/amqp-pub-sub/.venv/lib/python3.13/site-packages/typer/main.py:590 in get_command_from_info │
│ │
│ /asyncapi-python/examples/amqp-pub-sub/.venv/lib/python3.13/site-packages/typer/main.py:566 in │
│ get_params_convertors_ctx_param_name_from_function │
│ │
│ /asyncapi-python/examples/amqp-pub-sub/.venv/lib/python3.13/site-packages/typer/main.py:900 in get_click_param │
│ │
│ /asyncapi-python/examples/amqp-pub-sub/.venv/lib/python3.13/site-packages/typer/core.py:427 in __init__ │
│ │
│ /asyncapi-python/examples/amqp-pub-sub/.venv/lib/python3.13/site-packages/click/core.py:2852 in __init__ │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
TypeError: Secondary flag is not valid for non-boolean flag.
make: *** [Makefile:15: generate] Error 1
Metadata
Metadata
Assignees
Labels
No labels