Prepare Buscar for pip and conda packaging#87
Prepare Buscar for pip and conda packaging#87axiomcura wants to merge 12 commits intoWayScience:mainfrom
Conversation
|
Check out this pull request on See visual diffs & provide feedback on Jupyter Notebooks. Powered by ReviewNB |
* removed cluster refinement module * removed heterogeneity * updated metrics * created buscar module (separated notebook utils and buscar software) * updated test module * updated imports to reflect module changs * ignore vscode cached files * updated metrics * Update notebooks/2.cfret-analysis/nbconverted/1.cfret-pilot-buscar-analysis.py Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update notebooks/2.cfret-analysis/nbconverted/1.cfret-pilot-buscar-analysis.py Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update buscar/metrics.py Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update notebooks/4.cpjump1-analysis/nbconverted/4.run_buscar_rankings_base_on_moa.py Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update notebooks/2.cfret-analysis/nbconverted/1.cfret-pilot-buscar-analysis.py Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update buscar/metrics.py Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update notebooks/1.compound-prioritization/nbconverted/4.measure-phenotypic-activity.py Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update notebooks/4.cpjump1-analysis/nbconverted/3.calculate-on-off-scores.py Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * applied copilot's changes * update processing module * reran buscar on cfret data * reran nbconvert * removed pdf * update cpjump1 analysis module * updates * added mitocheck analysis module * added label shuffling method * mitocheck buscar ranking analysis * removed cpjump analysis folder, this should be in another PR * fixed bugs * fix bugs and updates * updated plots * fixes and updates --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* updated all plots * updated plots * name changes on axis update * update * Update notebooks/2.cfret-analysis/plots/nbconverted/1.on-and-off-pca-and-umap-plots.r Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update notebooks/2.cfret-analysis/plots/nbconverted/3.cfret-signature-effect-size-vs-sig-plot.r Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update notebooks/2.cfret-analysis/plots/nbconverted/1.on-and-off-pca-and-umap-plots.r Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update notebooks/2.cfret-analysis/plots/nbconverted/4.cfret-compound-scores-plot.r Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update r_buscar_env.yaml Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * updated plots and comments * update --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
d33bs
left a comment
There was a problem hiding this comment.
Great job! I left a few comments. I'm requesting changes because I'm concerned mostly about the environment management and how you're planning to publish to PyPI. Please don't hesitate to let me know if you have any questions.
There was a problem hiding this comment.
I suggest a follow up PR which focuses on the conda universe, abiding a separation of concerns. There could be, for instance, completely different needs with this.
|
|
||
| [project] | ||
| name = "buscar" | ||
| version = "0.1.0" |
There was a problem hiding this comment.
Consider using a dynamic version so you don't need to use static references. This would free you up to use git tags for the versioning, making for a more flexible release process. Reference this file for an example of how to do this with poetry.
| __all__ = [ | ||
| "add_cell_id_hash", | ||
| "compute_earth_movers_distance", | ||
| "identify_signatures", | ||
| "score_compounds", | ||
| ] |
There was a problem hiding this comment.
Do you really need this block? Consider removing it.
There was a problem hiding this comment.
This looks like it's related to a change outside of just pip and conda. Consider moving this to another PR.
| - name: Run tests | ||
| if: matrix.os != 'ubuntu-latest' || matrix.python-version != '3.12' | ||
| run: poetry run pytest |
There was a problem hiding this comment.
Consider splitting tests from the build process, which is distinct from software testing. You could make the build a separate job which depends on the tests to succeed.
There was a problem hiding this comment.
This file looks important. What happened to it? Consider keeping it in place and focusing on only pip + conda installation for this PR.
|
|
||
| about: | ||
| home: https://github.com/WayScience/buscar | ||
| summary: A framework for prioritizing compounds in high-content imaging screens using single-cell profiles. |
There was a problem hiding this comment.
This differs from the description in the pyproject file. Consider keeping this in alignment. Also, consider keeping this description in the github description for the repo (and keeping all 3 in alignment).
There was a problem hiding this comment.
This and other changes don't directly pertain to the pip and conda packaging focus, distracting from the goals. I suggest avoiding this pattern in the future, it complicates review, maintenance, and history for the project.
There was a problem hiding this comment.
Should this be a poetry lockfile instead of uv?
There was a problem hiding this comment.
When I checked out the code in this PR, installed, and ran tests I found there were failures: ERROR collecting tests/test_checks.py. I specifically used poetry, abiding the current pyproject.toml designations.
This PR prepares Buscar for distribution through standard Python packaging workflows, with updates aimed at making the project ready for both
pip/PyPI installation and conda-based installation through the existingrecipe/meta.yamlrecipe. It also refreshes the project documentation so users and contributors can clearly see package status, supported Python versions, test status, and coverage outputs.In this PR:
pyproject.tomlfor pip-installable distribution.uv.lockfor reproducible uv-managed environments.recipe/meta.yamlso the conda recipe matches the package dependencies and supported Python range.uv.twine checkThis closes #78 and #88