Skip to content

Commit ddd76f8

Browse files
timsaucerclaude
andcommitted
docs(pyproject): cloudpickle covers aggregate and window UDFs too
The dependency comment said "scalar UDF callables" but cloudpickle has covered aggregate and window UDFs since 4b51402 / 89d119f. Also note the OnceLock import cache landed in b5684bc so callers pay one import per process, not one per UDF. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent 8af9c53 commit ddd76f8

1 file changed

Lines changed: 4 additions & 3 deletions

File tree

pyproject.toml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,9 +45,10 @@ classifiers = [
4545
]
4646
dependencies = [
4747
# cloudpickle is invoked by the Rust-side PythonLogicalCodec /
48-
# PythonPhysicalCodec via pyo3 to serialize Python scalar UDF
49-
# callables into the proto wire format. Lazy-imported on the encode
50-
# / decode hot paths, so users who never serialize a plan or
48+
# PythonPhysicalCodec via pyo3 to serialize Python UDF callables —
49+
# scalar, aggregate, and window — into the proto wire format.
50+
# Lazy-imported on the encode / decode hot paths (and cached after
51+
# the first import), so users who never serialize a plan or
5152
# expression incur no runtime cost beyond the install footprint.
5253
"cloudpickle>=2.0",
5354
"pyarrow>=16.0.0;python_version<'3.14'",

0 commit comments

Comments
 (0)