-
Notifications
You must be signed in to change notification settings - Fork 133
Release 2.0 #207
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
Release 2.0 #207
Conversation
…or release due to breaking change with redefinition of head_option and last_option functions
…e code in ParallelExecutionEngine
… paths, creating single instance of path
and correct some spelling, grammar and punctuation
…be removed in a future version, replacing it with "poetry.group.dev.dependencies" instead
…pt with error exit code
…f Python version is 3.12 or 3.13 and Pylint on older versions as it doesn't seem to work for versions greater than 3.11
| if: matrix.python-version != '3.12' && matrix.python-version != '3.13' | ||
| - name: Ruff (Python v${{ matrix.python-version }}) | ||
| run: poetry run ruff check functional | ||
| if: matrix.python-version == '3.12' || matrix.python-version == '3.13' |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pylint seems to have issues with Python versions 3.12 and 3.13 - can add another PR for Ruff to more closely match Pylint's rules
|
Hi, thanks for the PR! The main thing I'll mention is that I definitely have a strong preference for 1 Change -> 1 PR instead of many changes -> 1 big PR. Could you break things down? As with prior PRs, for changes that make not functional changes and are strict improvements, I tend to merge those pretty quickly. Examples in your PR probably include things like improving tests, CI/tooling, fixing lint errors, docs, etc. This makes reviewing code easier/faster, makes landing "easy" changes faster, and get more changes in, in the case I don't want a particular part of a huge PR. In this specific case as well, should there be a need to have a 2.0, it will also allow all the changes not needed for that land first and thus be available <2.0. For functional changes, I usually like to see a good explanation for why they are needed. For example, the renames for For new functions, these should also be in their own self contained PR, along with at least some discussion of why they are needed, particularly given the ability to register custom functions. Again thanks for the PR, it would just help me a lot in getting changes in if PRs are broken into 1 semantic change -> 1 PR. |
|
I'll break up the PR.
Could you point to where that (register custom functions) is in the docs or explain how that's done?
I'll describe the reason for the name change in a separate PR. |
|
@samer-hamood I misremembered and its called FWIW, the feature isn't documented outside of the docstring, so that would be a pretty easy improvement to make. My general thinking around adding functions is that if its something that would have somewhat general use, it might be worth adding to the library, but if its relatively niche, then |
|
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. |
This PR includes multiple improvements and a new function, with others included in separate PRs linked below (for ease of review). There will be a small change in the API, referenced in the CHANGELOG.md, which warrants the release to increment its major version to 2.
The core of this PR is:
head_optionandlast_optiontohead_not_noneandlast_not_nonerespectively,first_not_noneto matchhead_not_nonerun-test.shfor running checks locallypre-commit-hooksandruff-pre-commitrepo revisionshead_option/first_optionandlast_option, in CHANGELOG.mdtool.poetry.dev-dependenciesParallelExecutionEngineonly once per instance and added symmetrical code from it toExecutionEngine(minor refactoring)Functions this release
Optionto handleNoneBoolean functions
anyandalltaking functions to be equivalent toexistsandfor_allrespectivelynone- return true if no element satisfies the given predicate function or all elements are falsy if no function is suppliedIndexed functions
Not-none functions
NonevaluesNonevalues