Add the sist Python package and remove Perl - #54
Conversation
jimboid
left a comment
There was a problem hiding this comment.
Looks like a great first pass at adding the python interface and removing the perl language. Though I think it looks like the perl entrypoints have totally been removed, I thought at first we were going to maintain the entrypoints named the same but forward them through the python interface before eventually removing them.
Thank you for spotting this, I've now added aliases so that anyone still using the Perl script names gets routed through the new Python interface, with a deprecation warning that they'll be removed in a future release. Hope this is all looking ok now? |
jimboid
left a comment
There was a problem hiding this comment.
Thanks for sorting this out Harry. All looks like it is there.
Summary
This PR adds a Python
sistpackage that replaces the existing Perl pipeline (master.pl,IR_finder.pl), then cuts the whole project over to it: Conda packaging, test fixtures, docs, and the release workflow now install and runsistinstead of Perl, and the Perl scripts and runtime dependency are removed. Calculation behaviour is unchanged, the new package is verified bit-for-bit against the existing scientific regression baselines.Changes
Add the
sistPython packagesrc/sist/package: CLI and argument spec (cli.py,argspec.py), orchestration that dispatches to theqsiddbinaries (runner.py,binaries.py), and the ported IRF report parsing and energy calculations (ir_finder.py,energetics.py)sist = sist.cli:main) wired intopyproject.toml; package version resolved fromsrc/sist/__init__.pytests/test_energetics.py,tests/test_ir_finder.py)Cut over Conda packaging and test fixtures to
sistconda-recipe/build.shnow installssistviapip install .instead of writing a Perl-wrapper scriptconda-recipe/meta.yamlruntime dependencies switched fromperltopython,biopython,beautifulsoup4(irfunchanged)tests/conftest.py'ssist_commandfixture now runs the installed/python -m sistcommand instead ofperl master.plRemove Perl
master.plandIR_finder.pltests/test_python_cli.pyits Python/Perl parity-checking purpose is now covered directly bytest_cli.py/test_regression.pyrunning the solesistcommandinstallation.rst,source-usage.rst,development.rst,example/README.txt) to describe thesistcommand instead of the Perl scriptssrc/sist/__init__.py's version alongside the Conda recipe andCITATION.cffImpact
tests/reference/v1.0.0/for all four algorithms (melting, Z-DNA, cruciform, competition)conda build conda-recipe --override-channels -c conda-forge -c bioconda --no-anaconda-upload: package builds and all tests pass