Skip to content
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

Is Python 3.8 a strict requirement? #5

Open
bradleyharden opened this issue Oct 29, 2020 · 2 comments
Open

Is Python 3.8 a strict requirement? #5

bradleyharden opened this issue Oct 29, 2020 · 2 comments

Comments

@bradleyharden
Copy link

Hi Zack,

First I want to say thanks for this package. I just recently found it, and it fills my exact needs. I appreciate that your company is willing to open source something like this.

Also, I want to say that the documentation and code is remarkably pristine. Really nice work. I briefly perused the code, and I'm really impressed that you've managed to capture all of the features of "modern" Python. At some point, I need to get mypy working so I can start type checking my code. With a library like this, it will actually be useful.

Finally, I wanted to ask if Python 3.8 is strictly necessary for this library. I happen to have both 3.6 and 3.8 installed on my main machine, but that's not the case with every machine I work on. Managing multiple Python versions isn't my favorite thing in the world, so it would be nice if 3.6 were supported as well, so I could keep using Ubuntu 18.04 for a little while longer. I'm also not sure I can upgrade my Windows Python install, because I think I need 3.7 for another piece of software.

@ZackSheffieldSEL
Copy link
Contributor

Thank you for your kind words. I’m glad that you found this to fit your needs; I wrote it in the first place because I wasn’t pleased with existing packages.

Python 3.8 syntax was used primarily to reduce lines of code. With some modification, this could work for earlier versions of python and not change functionality. Browsing through the code, here’s what I’m seeing:

  • Refactor uses of the walrus operator (:=)
  • Refactor use of stacklevel argument for logging calls (this was added in Python 3.8)
  • Refactor positional-only and keyword-only separators in function call. I think previous versions of Python 3 allowed both / and * Independently, but not together. See FixedPoint.__init__ for example.
  • Refactor unit tests with non-python 3.8 syntax

I think that’s it, though unit tests will reveal any other issues. Is this something you can or would like to undertake? I think the unit tests will be the biggest pain point. I’m happy to work on it but you’re also welcome to contribute to speed things up.

@bradleyharden
Copy link
Author

Unfortunately, I don't really have to bandwidth to work on something like this right now. It's also not high on my priority list, because it's already easy enough for me to work around. I just think others will run into problems with a 3.8 requirement, given that Ubuntu 18.04 and probably others are still on 3.6. I know that 3.5 is now EOL, so I wouldn't worry about supporting it. But I think it would probably be good to support any versions that aren't EOL.

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

No branches or pull requests

2 participants