Python packaging, testing suite, and general improvements#18
Open
vinisalazar wants to merge 6 commits intoKoslickiLab:mainfrom
Open
Python packaging, testing suite, and general improvements#18vinisalazar wants to merge 6 commits intoKoslickiLab:mainfrom
vinisalazar wants to merge 6 commits intoKoslickiLab:mainfrom
Conversation
- Move funcprofiler.py and funcprofiler_many.py into fmh_funprofiler/ package - Add fmh_funprofiler/__init__.py with version string - Add pyproject.toml with build config, dependencies, and CLI entry points - Update .gitignore with Python build artifact patterns
53 tests covering: - Package import and version string - CLI --help flags for both entry points - check_args validation for funcprofiler and funcprofiler_many (file existence, ksize, scaled, threshold_bp) - parse_args / parse_arguments positional and optional arguments Also registers pytest testpaths and dev extras in pyproject.toml.
- Update README.md install instructions
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Hi @dkoslicki,
Thank you for providing fmh-funprofiler. We (@nickp60 and I) are hoping to use it for a new nf-core pipeline, funcprofiler. For that, it would be great if the code was packaged as a Python package (as proposed in #15), and ideally as a Bioconda package (happy to tackle this after this one is merged).
This PR converts the repository into an installable Python package
fmhfunprofiler.Installable package structure: source files are now organized under
fmhfunprofiler/, with apyproject.tomldefining build metadata. Users get access to thefuncprofiler.pyandfuncprofiler-many.pyscripts in the PATH after install.Direct install from GitHub: it can be installed with a single pip command straight from the repository, without requiring a PyPI release:
pip install git+https://github.com/KoslickiLab/funprofiler.gitAn
environment.yamlis also provided for users who prefer to set up the full conda environment (including sourmash and biom-format) in one step.Pytest test suite: added tests covering argument validation, argument parsing, package imports, version string, and CLI --help flags for both entry points. Tests can be run with pytest from the repo root.
Summary of changes:
fmhfunprofiler/— Python package directory (scripts moved from repo root)pyproject.toml— build config, dependencies, CLI entry points, dev extrasenvironment.yaml— conda environment definitiontests/— pytest suite (test_package.py, test_funcprofiler.py, test_funcprofiler_many.py)README.md— updated installation instructions1.1.0