Skip to content

retire support for python 3.7 #1975

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

Closed
cwhanse opened this issue Feb 13, 2024 · 5 comments · Fixed by #2029
Closed

retire support for python 3.7 #1975

cwhanse opened this issue Feb 13, 2024 · 5 comments · Fixed by #2029
Milestone

Comments

@cwhanse
Copy link
Member

cwhanse commented Feb 13, 2024

Python 3.7 reached end-of-life on 2023-06-27. I propose we remove support for python 3.7 with pvlib-python v0.11.0

@AdamRJensen
Copy link
Member

Sounds good to me.

@kandersolar kandersolar changed the title retire support for python 3.8 retire support for python 3.7 Feb 13, 2024
@kandersolar kandersolar added this to the 0.11.0 milestone Feb 13, 2024
@adriesse
Copy link
Member

What's the rush?

@kandersolar
Copy link
Member

One reason to drop 3.7 is to prevent excessive accumulation of supported versions: python releases new versions annually, and it's been more than a year since we dropped a version.

@alexandermorgan
Copy link
Contributor

alexandermorgan commented Mar 14, 2024

If you make 3.8 your minimum supported version you could also use some of the features that came in 3.8. This _numdiff function does a bunch of math with lots of repeated chunks. For example, a0[:, 0] * a0[:, 1] is calculated 9 times. You could set up a mini library of chunks and then reference those variables now, but a more concise way would be to use py3.8's walrus operator. The first reference of the above gets simultaneously assigned to a variable:
(col0Xcol1 := a0[:, 0] * a0[:, 1])
Then all the subsequent repetitions use that col0Xcol1 variable. There would be other things too, like being able to reverse a dictionary. I've seen other libraries that have an official policy of supporting the last X python versions. X = 6 (i.e. py 3.7 - 3.12) seems like a lot.

@kandersolar
Copy link
Member

I suggest we move this item up to 0.10.5, and plan to release 0.10.5 soon (perhaps even this week) for #2026.

Waiting for 0.11.0 would put the desire to drop 3.7 ASAP (#2023) in conflict with wanting to wait at least a year before removing the 0.10.0 (released June 2023) deprecations set to expire in 0.11.0.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants