Summary
pip install dbt-cloud-cli (0.8.2 from PyPI) crashes on import under Python 3.13/3.14. The PyPI 0.8.2 sdist/wheel pins pydantic==1.10.10, and pydantic v1 is incompatible with newer Pythons (lazy annotations, PEP 649/749).
The good news: main has already been migrated to pydantic v2 (install_requires=["... pydantic>=2.0 ..."]) and works on Python 3.14 — I verified by installing from a checkout of main into a 3.14 venv. But setup.py on main still says version="0.8.2", and the artifact on PyPI under that version is the old pydantic v1 build. So anyone installing from PyPI gets the broken package.
Repro
$ pipx install dbt-cloud-cli # Python 3.14
$ dbt-cloud run get --run-id ...
...
File ".../pydantic/fields.py", line 565, in _set_default_and_type
raise errors_.ConfigError(
pydantic.errors.ConfigError: you need to set the type of field 'api_token' when using `default_factory`
Meanwhile:
$ python3.14 -m venv venv && venv/bin/pip install git+https://github.com/data-mie/dbt-cloud-cli
$ venv/bin/dbt-cloud --help # works
Suggested fix
Bump the version in setup.py (e.g. 0.9.0, since the pydantic v2 migration changes the dependency floor) and publish a new release to PyPI. Optionally also raise python_requires if you want to drop pre-pydantic-v2 Pythons.
Happy to open a PR for the version bump if that helps.
Summary
pip install dbt-cloud-cli(0.8.2 from PyPI) crashes on import under Python 3.13/3.14. The PyPI 0.8.2 sdist/wheel pinspydantic==1.10.10, and pydantic v1 is incompatible with newer Pythons (lazy annotations, PEP 649/749).The good news:
mainhas already been migrated to pydantic v2 (install_requires=["... pydantic>=2.0 ..."]) and works on Python 3.14 — I verified by installing from a checkout ofmaininto a 3.14 venv. Butsetup.pyonmainstill saysversion="0.8.2", and the artifact on PyPI under that version is the old pydantic v1 build. So anyone installing from PyPI gets the broken package.Repro
Meanwhile:
Suggested fix
Bump the version in
setup.py(e.g. 0.9.0, since the pydantic v2 migration changes the dependency floor) and publish a new release to PyPI. Optionally also raisepython_requiresif you want to drop pre-pydantic-v2 Pythons.Happy to open a PR for the version bump if that helps.