-
Notifications
You must be signed in to change notification settings - Fork 28
Add Python 3.14 support #116
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks, looks great 👍
|
Regarding ccache:
|
Builds are passing. Getting pytest to respect config in pyproject.toml across all platforms was not much fun, but it works now. I've removed the xdist plugin for now because tests became too flaky in CI. There is likely a lot left to win in our testing and CI in general, but other things need attention first. |
One other test related suggestion, while you're in there; add This is helpful for identifying any tests that shouldn't be in tests/fast. |
I know you merged this, but one more comment related to this; Should also add 3.14 to the pypi classifiers in pyproject.toml. |
Good find 👌 |
Still in draft, not all builds are passing yet.
Adding 3.14 support triggered some janitorial work:
typing._UnionGenericAlias
to check whether a given object is a Union toisinstance(obj, types.UnionType)
for >= py310 andtyping.get_origin(obj) is typing.Union
as fallback. This meant running the importcache code generation scripts, which needed to output a new header (and had a small bug).tz_localize
columns in Pandas. Apart from the chained assignment issue, the tz is now also explicitly part of the column's datatype, and pandas doesn't like it when we change the timezone and throws aFutureWarning: Setting an item of incompatible dtype is deprecated and will raise in a future error of pandas. Value '<DatetimeArray>
.I'll also remove py313 from the "fast" sanity check of the packaging workflow.
Since I'm back in workflows and tests again I'm also evaluating some suggestions from #59:
duckdb.typing.<TYPE>
without explicitly importingduckdb.typing
. I moved all references fromduckdb.typing
in the tests toduckdb.pytypes
.--quiet
touv export
in packaging_wheels. The output has been very useful to set the env markers correctly for all dependencies (which is much better now than it was in-tree) but I agree it's a bit noisy. It was already set for sdists, so may as well have it here as well.hendrikmuhs/ccache-action
in our workflows, like duckdb does, and evaluate the performance of sccache as well. Locally it doesn't make much difference for me.