-
Notifications
You must be signed in to change notification settings - Fork 134
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
base: master
Are you sure you want to change the base?
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 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_option
andlast_option
tohead_not_none
andlast_not_none
respectively,first_not_none
to matchhead_not_none
run-test.sh
for running checks locallypre-commit-hooks
andruff-pre-commit
repo revisionshead_option
/first_option
andlast_option
, in CHANGELOG.mdtool.poetry.dev-dependencies
ParallelExecutionEngine
only once per instance and added symmetrical code from it toExecutionEngine
(minor refactoring)Functions this release
Option
to handleNone
Boolean functions
any
andall
taking functions to be equivalent toexists
andfor_all
respectivelynone
- return true if no element satisfies the given predicate function or all elements are falsy if no function is suppliedIndexed functions
Not-none functions
None
valuesNone
values