EntilZha / PyFunctional

Python library for creating data pipelines with chain functional programming
http://pyfunctional.pedro.ai
MIT License
2.41k stars 132 forks source link

Maintenance update #178

Closed Drvanon closed 1 year ago

Drvanon commented 1 year ago

This branch bumps some versions:

Then I ran poetry update in order to ensure that the poetry.lock file was up to date.

Using this configuration I was able to run poetry install without running in to issue #176, which makes me expect that that that should be resolved, but maybe I do not understand that well enough. It is either that, or the fact that they merged an update last week.

I could run poetry run pytest --cov=functional without issues, getting the same coverage as is currently posted on the repository. I am having issues with Travis, which is giving me trouble running the build.

The new version of black suggests small changes in the tests files, namely the removal of the u-strings and minor formatting stuff for powers. As far as I can tell this is fine. Pylint also complains about the u-strings and then some formatting which was being done in python 3.6 style (using .format as opposed to f strings). Pylint also suggests to specifying the file format when using open in the tests. I can inlcude these suggestions in the PR if you would like me to, though they are all warning level messages.

I would like to mention that there is still a travis.sh file in the project root, however as far as I can tell that is from an outdated version of Travis. Would it make sense to remove it in this in this PR?

Drvanon commented 1 year ago

After a shower and a good walk I decided to go ahead and do it anyways. I tried to make my commits atomic, so you can also revert individual bits if you like.

EntilZha commented 1 year ago

It looks like github no longer has testing for python3.6, could you remove that from the workflows to see if everything passes? Given its a maintenance update, you could also remove notation of 3.6 support from readme since I believe its past EOL?

Thanks for the update, I'll release a new version on pypi once merged.

Drvanon commented 1 year ago

Since the original README stated that it tested with PyPy as well, I included pypy3.9 in the strategy matrix. I think it makes sense to test for all supported python versions, I added those. I also removed references to Python 3.6 where they are no longer accurate.

Drvanon commented 1 year ago

About publishing to PyPi: I am not sure what strategy you would like to adhere to concerning the typing update. I see the following possibilities:

  1. Create a version 1.4.4 with only the maintenance updates. Then release the typing stuff with 1.4.5.
  2. Wait until I finish the typing update and package both updates as 1.4.
artemisart commented 1 year ago

@Drvanon Hello, I believe the CI fails as the setup-python action is too old and cannot install pypy39, can you try using actions/setup-python@v4 ? actions/checkout@v3 would be nice too. Also files are utf8, not us-ascii.

EntilZha commented 1 year ago

Re pypy, I'm fine with essentially having two tiers of supported versions: (1) tested with CI, etc so mainly mainline python and (2) not CI, but best effort compatibility. That said, if the fix is to just use a newer version of actions, that works too! Either way, happy to merge once CI passes.

artemisart commented 1 year ago

@Drvanon or @EntilZha can you rebase this PR to have the updated actions? (I don't have access to do it on this PR/branch)