surrealdb/surrealdb.py

Supported python versions

CaedenPH opened this issue ยท 6 comments

Description

What are your opinions on the python versions that should be supported by this library?

Asking this question due to the usage of deprecated typehinting annotations such as typing.List and typing.Tuple - what are our plans to support/update these annotations?

Is there an existing issue for this?

  • I have searched the existing issues

Code of Conduct

  • I agree to follow this project's Code of Conduct

That is a good point. Currently, we are supporting Python 3.7 and above, which seems to be the most common minimum version for other database libraries as well ๐Ÿค”

Not sure at the moment what the best way would be. Do you have any thoughts on how what we should do?

That is a good point. Currently, we are supporting Python 3.7 and above, which seems to be the most common minimum version for other database libraries as well ๐Ÿค”

Not sure at the moment what the best way would be. Do you have any thoughts on how what we should do?

I'm not entirely sure what the plan going forward should be. Personally, I would only support version 3.10+ however this is very controversial and I wouldn't recommend it for a public library such as this - For now I see no problem just ignoring the typing deprecations until most systems are running 3.10+

Yeah, that is indeed quite controversial ๐Ÿ˜…
I'm sure there are a lot of enterprises still on Python 3.7 since its still widely supported in other similar libraries
We'll then just ignore it for now then ๐Ÿ‘

Yeah, that is indeed quite controversial ๐Ÿ˜… I'm sure there are a lot of enterprises still on Python 3.7 since its still widely supported in other similar libraries We'll then just ignore it for now then ๐Ÿ‘

I'll keep this open for discussion but you can mark it as stale if you want

I don't believe that the typing module is going to be deprecated? It is needed to support all versions of Python, including 3.10. However, end of life for Python 3.7 is planned for this year.

Before we make a decision, further testing should be done on all versions of Python and OS (can be done this GitHub actions) to see if our clients work with versions 3.7+. I have noted that many libraries have already stopped supporting 3.7 in their latest releases.

FYI: official tracking for the status of major Python versions is available here:

Python 3.7 has been "End of life" for a while.
Python 3.8 will not be "End of life" until October 2024.

As for typing specifically, import of __future__ annotations can allow for upgrading to the more "modern" typing for all Python versions (no need to limit that to >= 3.10).