feat(python): support new style optional syntax (#793)

This commit is contained in:
Chang She
2024-01-09 07:03:29 -08:00
committed by Andrew Miracle
parent 615c469af2
commit ba01d274eb
3 changed files with 36 additions and 1 deletions

View File

@@ -82,7 +82,7 @@ def test_search_index(tmp_path, table):
def test_create_index_from_table(tmp_path, table):
table.create_fts_index("text")
df = table.search("puppy").limit(10).select(["text"]).to_pandas()
assert len(df) == 10
assert len(df) <= 10
assert "text" in df.columns
# Check whether it can be updated

View File

@@ -88,6 +88,28 @@ def test_pydantic_to_arrow():
assert schema == expect_schema
@pytest.mark.skipif(
sys.version_info < (3, 10),
reason="using | type syntax requires python3.10 or higher",
)
def test_optional_types_py310():
class TestModel(pydantic.BaseModel):
a: str | None
b: None | str
c: Optional[str]
schema = pydantic_to_schema(TestModel)
expect_schema = pa.schema(
[
pa.field("a", pa.utf8(), True),
pa.field("b", pa.utf8(), True),
pa.field("c", pa.utf8(), True),
]
)
assert schema == expect_schema
@pytest.mark.skipif(
sys.version_info > (3, 8),
reason="using native type alias requires python3.9 or higher",