Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
8367c2e
build: add pyproject.toml and migrate packaging from wheel metadata
ilypopv Mar 12, 2026
3ac8555
refactor(mpa): rewrite kreport2mpa as transform2mpa with batch mode
ilypopv Mar 16, 2026
3ccdab8
refactor(counts): replace bash decombine scripts with Python split_mpa
ilypopv Mar 24, 2026
eb92428
refactor(stats): move relabund and diversity into stats/ subpackage
ilypopv Apr 1, 2026
58c1d8a
feat(pipeline): port full pipeline orchestration from bash to Python
ilypopv Apr 5, 2026
2104768
feat(kpplot): add aggregate_by_metadata, fix grid axis, add cmap vali…
ilypopv Apr 10, 2026
ee330e8
refactor(cli): use importlib.metadata for version, run scripts as -m …
ilypopv Apr 15, 2026
7dd6914
ci: rename workflow to python-package.yml, expand matrix to 3.10–3.14
ilypopv Apr 22, 2026
c37f5cb
ci: add publish.yml with Trusted Publishing for PyPI
ilypopv Apr 26, 2026
6a5c80f
test: add unit and integration test suite (62 tests)
ilypopv May 1, 2026
00efa56
test: add kpplot tests and raise coverage to 83%
ilypopv May 6, 2026
0aa7b8d
docs: update README for v1.0.0
ilypopv May 12, 2026
9664a56
ci: pre-install numpy to fix biom-format build on Python 3.14
ilypopv May 12, 2026
8d5d457
ci: drop Python 3.14 from matrix; cap requires-python to <=3.13
ilypopv May 12, 2026
06ddafb
refactor(stats): replace scikit-bio with scipy for beta diversity
ilypopv May 12, 2026
4ce8750
feat(diversity): add -s/--seed for reproducible rarefaction
ilypopv May 12, 2026
185e8d4
docs: document -s/--seed flag in Quick Start and diversity step
ilypopv May 12, 2026
14a21e2
Update README.md
ilypopv May 12, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 0 additions & 23 deletions .github/workflows/ci.yml

This file was deleted.

53 changes: 53 additions & 0 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
name: Publish to PyPI

on:
push:
tags:
- "v*"
workflow_dispatch:

jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.12"
- name: Install build tools
run: pip install build twine
- name: Strip GitHub-specific markup from README
run: |
python - <<'EOF'
import re, pathlib
text = pathlib.Path("README.md").read_text()
text = re.sub(
r'<img src="[^"]*#gh-(?:light|dark)-mode-only"[^\n]*/>\n',
'', text,
)
text = re.sub(r'\[!\[Downloads\]\([^\)]+\)\]\([^\)]+\)\n', '', text)
pathlib.Path("README.md").write_text(text)
EOF
- name: Build package
run: python -m build
- name: Check distribution
run: twine check dist/*
- name: Store distribution packages
uses: actions/upload-artifact@v4
with:
name: dist
path: dist/

publish:
needs: build
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v')
runs-on: ubuntu-latest
environment: release
permissions:
id-token: write
steps:
- uses: actions/download-artifact@v4
with:
name: dist
path: dist/
- uses: pypa/gh-action-pypi-publish@release/v1
46 changes: 46 additions & 0 deletions .github/workflows/python-package.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# This workflow will install Python dependencies, run tests and lint with a variety of Python versions
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python

name: Python package

on:
push:
branches: [ "dev", "main" ]
pull_request:
branches: [ "dev", "main" ]

jobs:
build:

runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"]

steps:
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip
python -m pip install flake8 setuptools wheel
pip install -e ".[dev]" --no-build-isolation
- name: Lint with flake8
run: |
# stop the build if there are Python syntax errors or undefined names
flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics
# exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide
flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics
- name: Test with pytest
run: |
pytest --cov=krakenparser --cov-report=xml
- name: Upload coverage to Codecov
if: matrix.python-version == '3.12'
uses: codecov/codecov-action@v5
with:
files: coverage.xml
token: ${{ secrets.CODECOV_TOKEN }}
Loading
Loading