Skip to content

Commit

Permalink
multi_mst v2 on fast_hdbscan update
Browse files Browse the repository at this point in the history
  • Loading branch information
JelmerBot committed Jan 13, 2025
1 parent f932878 commit c1888f4
Show file tree
Hide file tree
Showing 410 changed files with 21,410 additions and 5,678 deletions.
56 changes: 56 additions & 0 deletions .github/workflows/Docs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
name: Documentation
concurrency:
group: ${{ github.workflow }}-${{ github.event.number }}-${{ github.event.ref }}
cancel-in-progress: true

on:
push:
branches:
- main
paths:
- 'doc/**'
- 'multi_mst/*.py'
- '.github/workflows/Docs.yml'
workflow_dispatch:

jobs:
pages:
runs-on: ubuntu-20.04
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
permissions:
pages: write
id-token: write
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0

- uses: actions/setup-python@v5
name: Install python
with:
python-version: 3.9
cache: 'pip'

- name: Install dependencies
run: |
python -m pip install --upgrade pip
sudo apt-get install -y pandoc
pip install -e .
- name: Prepare Examples
run: |
cd notebooks
for FILE in *.ipynb; do
cp $FILE ../doc
done
cd ..
- id: deployment
uses: sphinx-notes/pages@v3
with:
cache: True
checkout: False
documentation_path: ./doc
requirements_path: ./doc/requirements.txt
57 changes: 57 additions & 0 deletions .github/workflows/Publish.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
name: Publish Python Package
concurrency:
group: ${{ github.workflow }}-${{ github.event.number }}-${{ github.event.ref }}
cancel-in-progress: false

on:
push:
tags:
- v*
workflow_dispatch:

jobs:
publish_pypi:
name: Publish to PyPi
runs-on: ubuntu-20.04
permissions:
# IMPORTANT: this permission is mandatory for trusted publishing
id-token: write
contents: write
environment:
name: pypi
url: https://pypi.org/p/multi_mst
steps:
- name: Extract version
id: version
run: |
TAG=${{ github.ref }}
VERSION=${TAG#refs/tags/v}
echo "version=$VERSION" >> $GITHUB_OUTPUT
echo "tag=v$VERSION" >> $GITHUB_OUTPUT
- name: Download sdist
uses: dawidd6/action-download-artifact@v7
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
workflow: Tests.yml
workflow_conclusion: success
branch: main
path: .

- name: Move files to dist
run: |
mkdir dist
mv dists/* dist/
if [[ ! -f dist/multi_mst-${{ steps.version.outputs.version }}.tar.gz ]] ; then exit 1; fi
- name: Create Github Release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
gh release create -R vda-lab/multi_mst -t "Version ${{ steps.version.outputs.version }}" -n "**Full Changelog**: https://github.com/vda-lab/multi_mst/commits/${{ steps.version.outputs.tag }}" "${{ steps.version.outputs.tag }}" dist/*.whl dist/*.tar.gz
- name: Publish package to (Test)PyPI
uses: pypa/[email protected]
# Comment lines below to publish to PyPi instead of test PyPi
# with:
# repository-url: https://test.pypi.org/legacy/
136 changes: 136 additions & 0 deletions .github/workflows/Tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,136 @@
name: Tests
concurrency:
group: ${{ github.workflow }}-${{ github.event.number }}-${{ github.event.ref }}
cancel-in-progress: true

on:
push:
branches:
- main
paths-ignore:
- 'doc/**'
- 'notebooks/**'
- 'README.md'
- '.gitignore'
- '.github/workflows/Docs.yml'
- '.github/workflows/Publish.yml'
pull_request:
branches:
- main
paths-ignore:
- 'doc/**'
- 'notebooks/**'
- 'README.md'
- '.gitignore'
- '.github/workflows/Docs.yml'
- '.github/workflows/Publish.yml'
workflow_dispatch:

jobs:
build_dists:
name: Build dists
runs-on: ubuntu-20.04
outputs:
WHEEL_NAME: ${{ steps.dists.outputs.WHEEL_NAME }}
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0

- uses: actions/setup-python@v5
name: Install python
with:
python-version: 3.9
cache: 'pip'

- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
pip install twine flake8 build
- 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
- name: Build dists
id: dists
run: |
python -m build --sdist --wheel
python ci/export_name.py
- name: Check README rendering for PyPI
run: twine check dist/*

- name: Upload sdist result
uses: actions/upload-artifact@v4
with:
name: dists
path: dist/*
if-no-files-found: error

test_sdist:
name: Test dist for cp${{ matrix.python }}-${{ matrix.platform_id }}-${{ matrix.manylinux_image }}
needs: build_dists
runs-on: ${{ matrix.os }}
strategy:
fail-fast: true
matrix:
include:
- os: windows-latest
python: "3.9"
platform_id: win_amd64
- os: windows-latest
python: "3.10"
platform_id: win_amd64
- os: windows-latest
python: "3.11"
platform_id: win_amd64

# Linux 64 bit manylinux2014
- os: ubuntu-latest
python: "3.9"
platform_id: manylinux_x86_64
manylinux_image: manylinux2014
- os: ubuntu-latest
python: "3.10"
platform_id: manylinux_x86_64
manylinux_image: manylinux2014
- os: ubuntu-latest
python: "3.11"
platform_id: manylinux_x86_64
manylinux_image: manylinux2014

# MacOS x86_64
- os: macos-latest
python: "3.9"
platform_id: macosx_x86_64
- os: macos-latest
python: "3.10"
platform_id: macosx_x86_64
- os: macos-latest
python: "3.11"
platform_id: macosx_x86_64
steps:
- name: Download sdist
uses: actions/download-artifact@v4
with:
name: dists
path: dist/

- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python }}

- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install pytest
- name: Run tests
run: |
pip install dist/${{ needs.build_dists.outputs.WHEEL_NAME }}
python -c "from multi_mst.tests import run_tests; run_tests()"
87 changes: 3 additions & 84 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,6 @@ __pycache__/
*.py[cod]
*$py.class

# C extensions
*.so

# Distribution / packaging
.Python
build/
Expand All @@ -14,8 +11,6 @@ dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
Expand All @@ -27,80 +22,20 @@ share/python-wheels/
*.egg
MANIFEST

# PyInstaller
# Usually these files are written by a python script from a template
# before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec

# Installer logs
pip-log.txt
pip-delete-this-directory.txt

# Unit test / coverage reports
htmlcov/
.tox/
.nox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
*.py,cover
.hypothesis/
.pytest_cache/

# Translations
*.mo
*.pot

# Django stuff:
*.log
local_settings.py
db.sqlite3
db.sqlite3-journal

# Flask stuff:
instance/
.webassets-cache

# Scrapy stuff:
.scrapy

# Sphinx documentation
docs/_build/

# PyBuilder
target/
doc/_build/

# Jupyter Notebook
.ipynb_checkpoints
!notebooks/lib/

# IPython
profile_default/
ipython_config.py

# pyenv
.python-version

# pipenv
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
# However, in case of collaboration, if having platform-specific dependencies or dependencies
# having no cross-platform support, pipenv may install dependencies that don't work, or not
# install all needed dependencies.
#Pipfile.lock

# PEP 582; used by e.g. github.com/David-OConnor/pyflow
__pypackages__/

# Celery stuff
celerybeat-schedule
celerybeat.pid

# SageMath parsed files
*.sage.py

# Environments
.env
.venv
Expand All @@ -110,20 +45,4 @@ ENV/
env.bak/
venv.bak/

# Spyder project settings
.spyderproject
.spyproject

# Rope project settings
.ropeproject

# mkdocs documentation
/site

# mypy
.mypy_cache/
.dmypy.json
dmypy.json

# Pyre type checker
.pyre/
*.code-workspace
Loading

0 comments on commit c1888f4

Please sign in to comment.