as plugins proliferate (good? bad? who knows!) there seems to be a need for providing better docs and functions for plugins to make use of sourmash library code.
areas where I see this need most clearly are -
command-line option parsing and standardization around ksize, moltype, and scaled, and loading sketches from files;
logging/printing and notification: we use notify throughout sourmash, and that prints to stderr, but there's also debug and print_results which are less used by me, but should be more consistently used; maybe time to standardize and improve logging?
creating FracMinHash sketches
the thing is that the internal sourmash code base doesn't really allow for rapid exploration of new code approaches, which of course is one reason why we developed plugins. and now there could be value in an intermediate library of code that's used by multiple plugins and then eventually backported into sourmash itself.
so anyway I'm thinking about developing a "shim" library where we can develop new functions and approaches that do the above tasks. it would have its own version and be pip installable, and probably evolve quite rapidly at first, and then once it settles down we can backport those functions to sourmash.
good, bad, overly complicated? curious for your thoughts.
as plugins proliferate (good? bad? who knows!) there seems to be a need for providing better docs and functions for plugins to make use of sourmash library code.
areas where I see this need most clearly are -
notify
throughout sourmash, and that prints to stderr, but there's alsodebug
andprint_results
which are less used by me, but should be more consistently used; maybe time to standardize and improve logging?FracMinHash
sketchesthe thing is that the internal sourmash code base doesn't really allow for rapid exploration of new code approaches, which of course is one reason why we developed plugins. and now there could be value in an intermediate library of code that's used by multiple plugins and then eventually backported into sourmash itself.
so anyway I'm thinking about developing a "shim" library where we can develop new functions and approaches that do the above tasks. it would have its own version and be pip installable, and probably evolve quite rapidly at first, and then once it settles down we can backport those functions to sourmash.
good, bad, overly complicated? curious for your thoughts.