NDArray doesn't handle types with custom core schemas properly
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 44
- Forks
- 7
- Avg merge
- 17h 16m
- Merged PRs (30d)
- 13
Description
Describe the bug
NDArray type does not handle classes with custom pydantic core schemas properly
To Reproduce
# /// script
# dependencies = [
# "csp",
# "ccflow>=0.5.1",
# ]
# ///
from csp import Enum
from ccflow import NDArray
from pydantic import TypeAdapter
import numpy as np
class MyEnum(Enum):
X = Enum.auto()
Y = Enum.auto()
ta_my_array = TypeAdapter(NDArray[MyEnum])
my_array = ta_my_array.validate_python(np.array([MyEnum.X]))
print(f'{my_array = }')
print(ta_my_array.dump_json(my_array))
Expected behavior
This should serialize properly
Error Message
Reading inline script metadata from /test_ccflow.py
my_array = array([<MyEnum.X: 0>], dtype=object)
Traceback (most recent call last):
File "/test_ccflow.py", line 23, in
print(ta_my_array.dump_json(my_array))
File "pydantic/type_adapter.py", line 581, in dump_json
return self.serializer.to_json(
pydantic_core._pydantic_core.PydanticSerializationError: Error serializing to JSON: PydanticSerializationError: Unable to serialize unknown type: <class 'main.MyEnum'>
Runtime Environment
0.5.1
3.9.16 | packaged by conda-forge | (main, Feb 1 2023, 21:39:03)
[GCC 11.3.0]
linux
ccflow version 0.5.1
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by running the inline reproduction with NDArray[MyEnum], TypeAdapter, and the numpy array to confirm the serialization failure. Trace how NDArray handles classes with custom pydantic core schemas, then verify that ta_my_array.dump_json(my_array) serializes the MyEnum value successfully.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- numpy, python
- Domain
- data
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100