Skip to content

Enable Python 3.14 in build matrix#2429

Merged
gunthercox merged 8 commits into
masterfrom
python
Mar 23, 2026
Merged

Enable Python 3.14 in build matrix#2429
gunthercox merged 8 commits into
masterfrom
python

Conversation

@gunthercox

Copy link
Copy Markdown
Owner

No description provided.

@jocelyn1981

jocelyn1981 commented Nov 24, 2025 via email

Copy link
Copy Markdown

@gunthercox

Copy link
Copy Markdown
Owner Author

The build appears to be failing, spaCy 3.8.9 added Python 3.14 wheels but they appear to have a runtime issue related to Pydantic v1 as described in explosion/spaCy#13885

@gunthercox gunthercox force-pushed the python branch 2 times, most recently from caad386 to 4eae68a Compare January 18, 2026 17:33
@gunthercox

Copy link
Copy Markdown
Owner Author

It looks like a few sub-dependencies include pydantic:

pipdeptree -r -p pydantic
pydantic==2.12.5
├── redisvl==0.13.2 [requires: pydantic>=2,<3]
│   └── langchain-redis==0.2.5 [requires: redisvl>=0.12.0,<1.0.0]
├── langsmith==0.6.4 [requires: pydantic>=2,<3]
│   └── langchain-core==1.2.7 [requires: langsmith>=0.3.45,<1.0.0]
│       ├── langchain-huggingface==1.2.0 [requires: langchain-core>=1.2.0,<2.0.0]
│       └── langchain-redis==0.2.5 [requires: langchain-core>=1.0.7]
├── thinc==8.3.10 [requires: pydantic>=2.0.0,<3.0.0]
│   └── spacy==3.8.11 [requires: thinc>=8.3.4,<8.4.0]
│       └── ChatterBot==1.2.11 [requires: spacy>=3.8,<3.9]
├── spacy==3.8.11 [requires: pydantic>=1.7.4,<3.0.0,!=1.8.1,!=1.8]
│   └── ChatterBot==1.2.11 [requires: spacy>=3.8,<3.9]
├── ollama==0.6.1 [requires: pydantic>=2.9]
├── langchain-core==1.2.7 [requires: pydantic>=2.7.4,<3.0.0]
│   ├── langchain-huggingface==1.2.0 [requires: langchain-core>=1.2.0,<2.0.0]
│   └── langchain-redis==0.2.5 [requires: langchain-core>=1.0.7]
├── weasel==0.4.3 [requires: pydantic>=1.7.4,<3.0.0,!=1.8.1,!=1.8]
│   └── spacy==3.8.11 [requires: weasel>=0.4.2,<0.5.0]
│       └── ChatterBot==1.2.11 [requires: spacy>=3.8,<3.9]
├── confection==0.1.5 [requires: pydantic>=1.7.4,<3.0.0,!=1.8.1,!=1.8]
│   ├── thinc==8.3.10 [requires: confection>=0.0.1,<1.0.0]
│   │   └── spacy==3.8.11 [requires: thinc>=8.3.4,<8.4.0]
│   │       └── ChatterBot==1.2.11 [requires: spacy>=3.8,<3.9]
│   └── weasel==0.4.3 [requires: confection>=0.0.4,<0.2.0]
│       └── spacy==3.8.11 [requires: weasel>=0.4.2,<0.5.0]
│           └── ChatterBot==1.2.11 [requires: spacy>=3.8,<3.9]
└── openai==2.15.0 [requires: pydantic>=1.9.0,<3]

I believe we are still waiting on these projects to finish upgrading to pydantic V2, or for pydantic 2.13 to be released:

explosion/spaCy#13895

)
sys.version_info >= (3, 14),
'redisvl depends on pydantic v1 which is incompatible with Python 3.14+'
) # TODO: Remove this skip when redisvl supports pydantic v2 and Python 3.14+

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm marking these as skipped for now since the redis storage adapter is new/still experimental. Before skipping, the error I'm seeing is:

======================================================================
ERROR: setUpClass (storage.test_redis_adapter.StorageAdapterUpdateTests)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/runner/work/ChatterBot/ChatterBot/tests/storage/test_redis_adapter.py", line 24, in setUpClass
    cls.adapter = RedisVectorStorageAdapter(
                  ~~~~~~~~~~~~~~~~~~~~~~~~~^
        database_uri='redis://localhost:6379/0'
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/home/runner/work/ChatterBot/ChatterBot/chatterbot/storage/redis.py", line 103, in __init__
    from chatterbot.vectorstores import RedisVectorStore
  File "/home/runner/work/ChatterBot/ChatterBot/chatterbot/vectorstores.py", line 9, in <module>
    from redisvl.redis.utils import convert_bytes
  File "/opt/hostedtoolcache/Python/3.14.3/x64/lib/python3.14/site-packages/redisvl/redis/utils.py", line 7, in <module>
    from redisvl.schema.fields import VectorDataType
  File "/opt/hostedtoolcache/Python/3.14.3/x64/lib/python3.14/site-packages/redisvl/schema/__init__.py", line 1, in <module>
    from redisvl.schema.schema import IndexInfo, IndexSchema, StorageType
  File "/opt/hostedtoolcache/Python/3.14.3/x64/lib/python3.14/site-packages/redisvl/schema/schema.py", line 10, in <module>
    from redisvl.schema.fields import BaseField, FieldFactory
  File "/opt/hostedtoolcache/Python/3.14.3/x64/lib/python3.14/site-packages/redisvl/schema/fields.py", line 50, in <module>
    class TextFieldAttributes(BaseFieldAttributes):
    ...<9 lines>...
        """Used to perform phonetic matching during search"""
  File "/opt/hostedtoolcache/Python/3.14.3/x64/lib/python3.14/site-packages/pydantic/v1/main.py", line 221, in __new__
    inferred = ModelField.infer(
        name=var_name,
    ...<3 lines>...
        config=config,
    )
  File "/opt/hostedtoolcache/Python/3.14.3/x64/lib/python3.14/site-packages/pydantic/v1/fields.py", line 504, in infer
    return cls(
        name=name,
    ...<7 lines>...
        field_info=field_info,
    )
  File "/opt/hostedtoolcache/Python/3.14.3/x64/lib/python3.14/site-packages/pydantic/v1/fields.py", line 434, in __init__
    self.prepare()
    ~~~~~~~~~~~~^^
  File "/opt/hostedtoolcache/Python/3.14.3/x64/lib/python3.14/site-packages/pydantic/v1/fields.py", line 544, in prepare
    self._set_default_and_type()
    ~~~~~~~~~~~~~~~~~~~~~~~~~~^^
  File "/opt/hostedtoolcache/Python/3.14.3/x64/lib/python3.14/site-packages/pydantic/v1/fields.py", line 576, in _set_default_and_type
    raise errors_.ConfigError(f'unable to infer type for attribute "{self.name}"')
pydantic.v1.errors.ConfigError: unable to infer type for attribute "phonetic_matcher"

@gunthercox gunthercox merged commit 13fab56 into master Mar 23, 2026
8 checks passed
@gunthercox gunthercox deleted the python branch March 23, 2026 23:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants