From 04b929b1bc1c02289b6f14aed6703b42b6485714 Mon Sep 17 00:00:00 2001 From: Martin Larralde Date: Fri, 10 Jan 2025 01:56:10 +0100 Subject: [PATCH] Release v0.11.0 --- .github/workflows/package.yml | 35 +++++++++++++---------------------- .gitignore | 2 ++ CHANGELOG.md | 32 +++++++++++++++++++++++++++++++- COPYING | 2 +- docs/.gitignore | 1 + pyproject.toml | 2 +- src/pyhmmer/__init__.py | 3 +-- 7 files changed, 50 insertions(+), 27 deletions(-) create mode 100644 docs/.gitignore diff --git a/.github/workflows/package.yml b/.github/workflows/package.yml index 4d6623d..89eef0d 100644 --- a/.github/workflows/package.yml +++ b/.github/workflows/package.yml @@ -9,7 +9,7 @@ jobs: wheel-linux-aarch64: name: Build Linux wheels (Aarch64) - runs-on: ubuntu-20.04 + runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 with: @@ -20,13 +20,11 @@ jobs: with: platforms: arm64 - name: Build manylinux wheels - uses: pypa/cibuildwheel@v2.16.5 + uses: pypa/cibuildwheel@v2.22.0 env: CIBW_ARCHS: aarch64 CIBW_BUILD: 'cp*-manylinux_aarch64' - CIBW_BEFORE_BUILD: pip install cython CIBW_BUILD_VERBOSITY: 2 - CIBW_TEST_REQUIRES: importlib-resources with: output-dir: dist - uses: actions/upload-artifact@v4 @@ -36,19 +34,17 @@ jobs: wheel-linux-x86_64: name: Build Linux wheels (x86-64) - runs-on: ubuntu-20.04 + runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 with: submodules: true - name: Build manylinux wheels - uses: pypa/cibuildwheel@v2.16.5 + uses: pypa/cibuildwheel@v2.22.0 env: CIBW_ARCHS: x86_64 CIBW_BUILD: 'cp*-manylinux_x86_64' - CIBW_BEFORE_BUILD: pip install cython CIBW_BUILD_VERBOSITY: 2 - CIBW_TEST_REQUIRES: importlib-resources with: output-dir: dist - uses: actions/upload-artifact@v4 @@ -58,19 +54,17 @@ jobs: wheel-macos-x86_64: name: Build MacOS wheels (x86-64) - runs-on: macOS-12 + runs-on: macOS-latest steps: - uses: actions/checkout@v4 with: submodules: true - name: Build manylinux wheels - uses: pypa/cibuildwheel@v2.16.5 + uses: pypa/cibuildwheel@v2.22.0 env: CIBW_ARCHS: x86_64 CIBW_BUILD: 'cp*-macosx_x86_64' - CIBW_BEFORE_BUILD: pip install cython CIBW_BUILD_VERBOSITY: 2 - CIBW_TEST_REQUIRES: importlib-resources with: output-dir: dist - uses: actions/upload-artifact@v4 @@ -80,19 +74,17 @@ jobs: wheel-macos-aarch64: name: Build MacOS wheels (Aarch64) - runs-on: macOS-12 + runs-on: macOS-latest steps: - uses: actions/checkout@v4 with: submodules: true - name: Build manylinux wheels - uses: pypa/cibuildwheel@v2.16.5 + uses: pypa/cibuildwheel@v2.22.0 env: CIBW_ARCHS: arm64 CIBW_BUILD: 'cp*-macosx_arm64' - CIBW_BEFORE_BUILD: pip install cython CIBW_BUILD_VERBOSITY: 2 - CIBW_TEST_REQUIRES: importlib-resources with: output-dir: dist - uses: actions/upload-artifact@v4 @@ -108,10 +100,10 @@ jobs: uses: actions/checkout@v4 with: submodules: true - - name: Set up Python 3.11 + - name: Set up Python 3.12 uses: actions/setup-python@v5 with: - python-version: 3.11 + python-version: '3.12' - name: Install build requirements run: python -m pip install -r .github/workflows/requirements.txt - name: Build wheel distribution @@ -128,10 +120,10 @@ jobs: needs: - sdist steps: - - name: Setup Python 3.11 + - name: Setup Python 3.12 uses: actions/setup-python@v5 with: - python-version: '3.11' + python-version: '3.12' - name: Download source distribution uses: actions/download-artifact@v4 with: @@ -175,8 +167,7 @@ jobs: uses: pypa/gh-action-pypi-publish@release/v1 release: - permissions: - contents: write + permissions: write-all environment: GitHub Releases runs-on: ubuntu-latest if: "startsWith(github.ref, 'refs/tags/v')" diff --git a/.gitignore b/.gitignore index 6f91f1b..edfddbc 100644 --- a/.gitignore +++ b/.gitignore @@ -4,6 +4,8 @@ .vscode *.BAK +src/pyhmmer/_version.py + ### C ### # Prerequisites *.d diff --git a/CHANGELOG.md b/CHANGELOG.md index c6c1c7b..3e0ebe0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,7 +6,37 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. ## [Unreleased] -[Unreleased]: https://github.com/althonos/pyhmmer/compare/v0.10.14...HEAD +[Unreleased]: https://github.com/althonos/pyhmmer/compare/v0.11.0...HEAD + + +## [v0.11.0] - 2025-01-10 +[v0.11.0]: https://github.com/althonos/pyhmmer/compare/v0.10.14...v0.10.15 + +### Added +- Missing type annotations to specific options of `LongTargetsPipeline`. +- `__len__` implementation for `HMMPressedFile` using the entries in the SSI index. +- Setters for residue-wise annotation properties in `HMM`. +- Support for process-based parallelism in `pyhmmer.hmmer` in addition to thread-based. +- Read-only buffer protocol implementation for `TextSequence` and `DigitalSequence` classes. + +### Changed +- Drop support for Python 3.6. +- Use CMake and `scikit-build-core` to build the package instead of `setuptools`. +- Use `TypedDict` API to mark allowed keyword arguments in `pyhmmer.hmmer` functions. +- Reorganize detection and handling of alphabets for arbitrary queries in `pyhmmer.hmmer`. +- Allow passing a `SequenceFile` to most `pyhmmer.hmmer` functions. +- Use faster `PyUnicode_FromStringAndSize` function to decode strings of known lengths in several `plan7` classes. +- Make `SequenceFile` and `MSAFile` generic on the individual sequence and MSA types. +- Reorganize `pyhmmer.hmmer` into different submodules. + +### Fixed +- Type annotations not using `typing-extensions` for Python3.8 to 3.10. +- Logic error causing out-of-bounds memory access in `TopHits.__getstate__`. +- Avoid creating a new `Pipeline` object when running single-threaded searches in `pyhmmer.hmmer`. +- Detect the appropriate `SequenceFile` type based on the `digital` flag value ([#72](https://github.com/althonos/pyhmmer/issues/72)). + +### Removed +- Deprecated properties of `TopHits` (`query_name`, `query_length`, `query_accession`). ## [v0.10.15] - 2024-10-08 diff --git a/COPYING b/COPYING index d97c46c..c9594dd 100644 --- a/COPYING +++ b/COPYING @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2020-2024 Martin Larralde +Copyright (c) 2020-2025 Martin Larralde Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/docs/.gitignore b/docs/.gitignore new file mode 100644 index 0000000..89d226c --- /dev/null +++ b/docs/.gitignore @@ -0,0 +1 @@ +related.rst diff --git a/pyproject.toml b/pyproject.toml index 16c98cb..e8bd7c0 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "scikit_build_core.build" [project] name = "pyhmmer" -version = "0.10.15" +version = "0.11.0" description = "Cython bindings and Python interface to HMMER3." readme = "README.md" requires-python = ">=3.7" diff --git a/src/pyhmmer/__init__.py b/src/pyhmmer/__init__.py index 482d719..d620d39 100644 --- a/src/pyhmmer/__init__.py +++ b/src/pyhmmer/__init__.py @@ -25,13 +25,12 @@ from . import easel from . import plan7 from . import daemon - +from ._version import __version__ from .hmmer import hmmalign, hmmsearch, hmmpress, nhmmer, hmmscan, phmmer, jackhmmer __author__ = "Martin Larralde " __license__ = "MIT" -__version__ = "0.10.15" __all__ = [ "errors", "easel",