Repository navigation
Conversation
…th preprocessing parameters. Adjust preproc pipeline to accept config as input.
…sing and rename to TF_recommendation_paper
IvanARashid
left a comment
There was a problem hiding this comment.
Thanks for looking into this!
-
Remove all the preprocessing stuff in src/original/preprocessing that managed to come in here.
-
Regarding fixing requirements in requirements.txt and keeping it open in pyproject.toml, it sounds good. But currently, the github actions use requirements.txt to create the environments, so all our python versions will use the same package versions which makes the testing across python versions a bit redundant. The intention was to test functionality on newer version of python and their packages.
Could you adjust the unit tests/github actions so that it install packages via pyproject.toml? And perhaps it would be good to have that default 3.11 from requirements.txt as a test.
|
Thanks for the feedback. Regarding the pyproject-as-source-of-truth for CI I can make the edits but the downside will be that on newer python version CI will break if a package is update (like dipy), still matches the range but has an altered API. The requirements.txt will still be a valid choice for py311, py312 and py313 |
requirements.txt test for pinned hashed dependencies
|
I think this is a PR relevant for main and the entire repo :) We will stop using preproc-main as a separate main branch, since it was just a temporary setup before we did some restructuring for preprocessing code. So you could move the requirements- and testing-related changes to a new branch derived from main without the preproc stuff which are handled in another PR. Otherwise I think the new changes look good! The downsides you mention are true, but it's also the reason for testing different python versions. I think the changes you've made here are good since we now also have a properly pinned and functioning version as well in case anything happens. |
|
I agree and have moved the changes to a new branch derived from main instead of preproc-main. |
Summary
requirements.txtis now a fully pinned (==), hash-verified lock file compiled from thepyproject.toml. The version ranges (what the project supports) live inpyproject.toml; the exact versions and hashes (what was tested) live inrequirements.txt. Added ranges where a break is plausible or already enforced by a dependency:numpy>=2,<3(nloptrequires numpy 2.x),scipy>=1.13(cvxpy),torch>=2.2,<3,torchio>=1.2,<2,dipy>=1.12.1,<2,pandas>=2.2,<4. Added apreprocextra (nipype,itk,pyyaml), which the preprocessing code imports, and included it inall.requirements.txtis generated frompyproject.tomlwith:--extra allcovers the runtime dependencies plus thetest,docs,plotandpreprocextras.--generate-hashespins every package (direct and transitive) withsha256hashes. Installing with pip enables hash checking automatically.--universalresolves for all platforms in one pass. Platform-specific packages carry environment markers, e.g.coloramaandwin32-setctimearesys_platform == 'win32', and thenvidia-*/tritonCUDA stack issys_platform == 'linux'.--python-version 3.11matches therequires-python = ">=3.11"floor inpyproject.toml.Installing necessary packages like before:
Downsides
pip install .frompyproject.toml