home-assistant-libs / zwave-js-server-python

Python library to interact with a Z-Wave JS server.
Apache License 2.0
56 stars 18 forks source link

Bump V0.49 pydantic compatibility to 2.0 with backwards compatibility #1005

Open dannydepequilt opened 1 week ago

dannydepequilt commented 1 week ago

Currently trying to get zwave-js-server-python working on my environment: python == 3.10.9 (Can not upgrade to 3.11 due to other dependencies) pydantic == 2.7.4 (Cannot downgrade to 1.10 due to other dependencies)

Testing version zwave-js-server-python == 0.49.0 because this is the last supported version for python3.10 but getting a compatibility error for pydantic V2 Similar to https://github.com/home-assistant-libs/zwave-js-server-python/issues/779 but I cannot rollback pydantic in my case.

Traceback (most recent call last):
  File "/Users/dannydepe/quilt/.venv/lib/python3.10/site-packages/zwave_js_server/__main__.py", line 11, in <module>
    from .client import Client
  File "/Users/dannydepe/quilt/.venv/lib/python3.10/site-packages/zwave_js_server/client.py", line 35, in <module>
    from .model.driver import Driver
  File "/Users/dannydepe/quilt/.venv/lib/python3.10/site-packages/zwave_js_server/model/driver.py", line 6, in <module>
    from pydantic import create_model_from_typeddict
  File "/Users/dannydepe/quilt/.venv/lib/python3.10/site-packages/pydantic/__init__.py", line 386, in __getattr__
    return _getattr_migration(attr_name)
  File "/Users/dannydepe/quilt/.venv/lib/python3.10/site-packages/pydantic/_migration.py", line 302, in wrapper
    raise PydanticImportError(f'`{import_path}` has been removed in V2.')
pydantic.errors.PydanticImportError: `pydantic:create_model_from_typeddict` has been removed in V2.

Is it possible to backport https://github.com/home-assistant-libs/zwave-js-server-python/pull/703 to a version 0.49.1 ? Or can we update the setup.py for 0.49.0 to be incompatible with pydantic V2? install_requires=["aiohttp>3", "pydantic>=1.9.0,!=2.*"],

Thanks