Pyopal

Latest version: v0.5.2

Safety actively analyzes 623835 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 2

0.5.2

Fixed
- Segmentation fault when attempting to align to an empty `Database` ([6](https://github.com/althonos/pyopal/issues/6)).

0.5.1

Fixed
- Broken behaviour of the `ordered` keyword in `pyopal.align`.

0.5.0

Added
- Support for compiling and running package on Windows.
- Support for Python 3.12.
- `pyopal.Alphabet` class for handling sequence encoding outside of `ScoreMatrix`.
- Additional score matrices using the data files from Opal.
- `encode_into` and `decode_into` sans-io methods of `Alphabet`.
- `Aligner` class to handle alignment of a query to a database.
- `ScoreMatrix.__eq__` implementation.
- `Database.lengths` property to get the lengths of all the sequences in a database without decoding them.
- `pyopal.align` top-level function to handle multithreaded alignments.
- `Alphabet.__eq__` implementation comparing letters.
- `pool` argument to `pyopal.align` to support reusing a `ThreadPool`.

Changed
- Store `Database` sequences using `shared_ptr` for fast slicing and extraction of a database subset.
- Use templates to generate platform-specific Cython files.
- Make internal extension public as `pyopal.lib` submodule.
- Avoid temporary data copy in `Database._encode`.
- Move Cython and Opal headers inside package to allow Cython import in other extensions.
- Make `Database` use mostly the pointer array to make the algorithms more generic over the storage class.
- Make `MAX_ALPHABET_SIZE` a constant of `pyopal.lib` rather than a user-defined macro for compatibility in other extensions.
- Update `Aligner.align` to use the `BaseDatabase` Cython API.

Fixed
- SSE2 not being detected on x86-64, where it is mandatory.
- Mark Opal search functions as `noexcept` in Cython to avoid exception checks.
- `ScoreMatrix` buffer-protocol not returning a read-only buffer.
- `Database.mask` accessing out-of-bound elements when building pointer array.
- Broken detection of `PyInterpreterState_GetID` in `setup.py`.
- `FullResult.cigar` crashing on alignments starting with `X`.
- Memory leak in `Aligner.align` caused by faulty allocation of pointer array.
- `__repr__` implementations of `Alphabet` and `FullResult`.
- `Alphabet.__getitem__` reading past the letters buffer.

Removed
- `Database.search` method.

0.4.2

Fixed
- Segmentation fault caused by out-of-bounds access in Opal ([5](https://github.com/althonos/pyopal/issues/5)).

Changed
- Use Cython `binding` directive to improve generated documentation.

0.4.1

Fixed
- `FullResult.__repr__` not returning a roundtripping string ([4](https://github.com/althonos/pyopal/pull/4), by [valentynbez](https://github.com/valentynbez)).
- `Database.search` overflowing for long sequences with non-`sw` algorithms ([3](https://github.com/althonos/pyopal/issues/3)).

Changed
- Make `Database.search` raise an `OverflowError` instead of a `RuntimeError` on score overflow.

0.4.0

Changed
- Bumped Cython dependency to `v3.0`.

Fixed
- PyPy 3.9 builds failing on missing `PyInterpreterState_GetID`.

Page 1 of 2

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.