-
-
Notifications
You must be signed in to change notification settings - Fork 18
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
CI: remove Python 3.6 testing and add/fix Python 3.11 support #515
Conversation
Codecov Report
@@ Coverage Diff @@
## master #515 +/- ##
=======================================
Coverage 87.86% 87.86%
=======================================
Files 62 62
Lines 5678 5678
Branches 1188 1093 -95
=======================================
Hits 4989 4989
Misses 477 477
Partials 212 212
Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here. |
@wyfo, I understand you may be taking a (very well-deserved!) break from working on apischema. Thanks for your hard work so far - I hope you know that there are many happy users out there. If you would be willing to take a look at this PR, all of those aiming to use apischema with Python 3.11 would be especially appreciative. I'd be happy to do some follow-up maintenance as well if you would be okay with it. |
Sorry, I'm back! Indeed, I've taken a long break since April, with a new job (100% Rust), quite demanding, and a second child, even more demanding. Here is the plan:
Also, now this library is a thing, with "many happy users out there", I should think about maintenance more seriously. That means two things: more comments (even for me, I haven't read the code for 8 months), and why not additional maintainers! But first things first, v0.18 is urgent. My goal is to release it this weekend, or during the next week (and I've a lot of PR to help me, thank you all!). v0.19 will maybe wait the end of December. (Also, I'm thinking about writing some Rust to compare performance with the current generated Cython, but more importantly to integrate a JSON, and why not MessagePack, (de)serializer. Actually, I had tried in Cython at the beginning of the year, but it was so tedious and slow that I gave up. It could improve performance over using a schema-less (de)serializer like orjson, and get closer of msgspec) I hope I will be able to take apischema over as fast as I want, but at least I'm back on it. |
Congratulations on the new job, the new child, and the sponsorship! That's all fantastic news. So glad to have you back. :) The plan sounds good to me. Since removing Python 3.6 is top on your priority list, feel free to close this PR and fix it up in your own preferred way (or let me know what to fix - no hard feelings either way). |
The broken test was not trivial at all to debug, congratulation to have found the solution! Actually, I wanted to do the exercise of adding supporting 3.11 myself (without reading your PR) to get back into the code, and I spent quite a lot of time to figure this one — my fix is a little bit different however, see #518. |
[{'err': 'expected type JsonType.INTEGER, found JsonType.NULL', 'loc': ['bar']}]
instead of[{'err': 'expected type integer, found null', 'loc': ['bar']}]
)typing._collect_type_vars
->_collect_parameters
(closes Python 3.11 support #485)typing.Any
is now a type subclass (related to Allow subclassing Any at runtime python/cpython#91154). This broke serialization of JSON schemas in an unexpected (to me) way, resulting intest_schema_versions.py
failing to use the correct converter forOPEN_API_3_0