refactor(openapi): add from __future__ import annotations#4990
Conversation
and update code according to ruff rules TCH, UP006, UP007, UP037 and FA100.
|
@leandrodamascena, looks like Pydantic does not work with the new type annotations out-of-the-box with
|
TypeError: You have a type annotation 'str | None' which makes use
of newer typing features than are supported in your version of Python.
To handle this error, you should either remove the use of new syntax
or install the `eval_type_backport` package.
I think it works, but not in version 3.8/3.9. I'm running tests with Python 3.10 and 3.11 and it's working perfectly. I don't think we have much choice here other than not to change the openapi utility. I wouldn't want to install anything new and/or refactor and risk breaking something. I don't see Pydantic being able to fix this, as it seems more like a problem with older versions of Python. We can close this PR and keep the issue open as Tech Debt so that it can be fixed one day. What do you think? |
|
The code in this PR will fail in Python 3.8/3.9. I'm going to fix it. |
|
Added a new commit to fix Python 3.8/3.9 |
I saw that you reverted some files. Let's wait for CI to complete. |
|
|
Hi @ericbn! I see that the CI is green now and I've done an initial review and everything looks good. Tomorrow morning I'll do one last review before approving and merging. I can't thank you enough for all the effort you've put into these PRs, it's an incredible amount of amazing work. ❤️ |



Issue number: #4991
Summary
Changes
Add
from __future__ import annotationsto openapi packageUser experience
Discussed in #4607
Checklist
If your change doesn't seem to apply, please leave them unchecked.
Is this a breaking change?
RFC issue number:
Checklist:
Acknowledgment
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.
Disclaimer: We value your time and bandwidth. As such, any pull requests created on non-triaged issues might not be successful.