Hello there, I'm the author of the Python library "pyalign" for computing alignments, and I would be interested in getting feedback from experts on alignment algorithms in terms of the design of the library (since I'm not an expert myself).
In short, I would be interested in learning whether there are any glaring mistakes/omissions in the library's public API.
The library is https://github.com/poke1024/pyalign. It supports global, local and semiglobal alignments, various gap costs and implements the usual classical algorithms (Smith-Waterman, Needleman-Wunsch, Gotoh for affine alignments). The computations are done in a C++17 backend, that heavily relies of templates for code optimization. In terms of single-thread CPU performance (i.e. not comparing to more advanced SIMD or GPU implementations) it should be pretty fast.
Note that the library was not built for a bioinformatics context, but for users who need versatile alignment algorithms for other domains.
A more in-detail notebook is available under https://mybinder.org/v2/gh/poke1024/pyalign-demo/HEAD?filepath=example.ipynb
In functionality, the library is mostly similar to https://biopython.org/docs/1.75/api/Bio.pairwise2.html
One special feature of pyalign (and the main reason for its existence) is that it can deal with large alphabets, like millions of different letters.