pyssaBSS 0.1.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- pyssabss-0.1.1/.github/workflows/docs.yml +34 -0
- pyssabss-0.1.1/.github/workflows/publish.yml +108 -0
- pyssabss-0.1.1/.gitignore +8 -0
- pyssabss-0.1.1/.readthedocs.yaml +15 -0
- pyssabss-0.1.1/CMakeLists.txt +15 -0
- pyssabss-0.1.1/LICENSE +674 -0
- pyssabss-0.1.1/PKG-INFO +777 -0
- pyssabss-0.1.1/README.md +85 -0
- pyssabss-0.1.1/docs/Makefile +20 -0
- pyssabss-0.1.1/docs/api.rst +8 -0
- pyssabss-0.1.1/docs/conf.py +49 -0
- pyssabss-0.1.1/docs/examples.rst +9 -0
- pyssabss-0.1.1/docs/getting_started.rst +39 -0
- pyssabss-0.1.1/docs/index.rst +19 -0
- pyssabss-0.1.1/docs/make.bat +35 -0
- pyssabss-0.1.1/docs/requirements.txt +4 -0
- pyssabss-0.1.1/examples/basic_usage.py +26 -0
- pyssabss-0.1.1/pyproject.toml +51 -0
- pyssabss-0.1.1/src/pyssaBSS/__init__.py +38 -0
- pyssabss-0.1.1/src/pyssaBSS/jdc.py +57 -0
- pyssabss-0.1.1/src/pyssaBSS/joint_diag/__init__.py +3 -0
- pyssabss-0.1.1/src/pyssaBSS/joint_diag/cJADE.cpp +318 -0
- pyssabss-0.1.1/src/pyssaBSS/joint_diag/wrapper.cpp +40 -0
- pyssabss-0.1.1/src/pyssaBSS/kernels.py +54 -0
- pyssabss-0.1.1/src/pyssaBSS/polygon.py +270 -0
- pyssabss-0.1.1/src/pyssaBSS/scatter.py +80 -0
- pyssabss-0.1.1/src/pyssaBSS/spatial.py +290 -0
- pyssabss-0.1.1/src/pyssaBSS/spssa.py +145 -0
- pyssabss-0.1.1/src/pyssaBSS/ssa.py +415 -0
- pyssabss-0.1.1/src/pyssaBSS/types.py +30 -0
- pyssabss-0.1.1/src/pyssaBSS/utils.py +374 -0
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
name: Build and deploy docs
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches:
|
|
6
|
+
- main # rebuild docs on every push to main
|
|
7
|
+
workflow_dispatch:
|
|
8
|
+
|
|
9
|
+
jobs:
|
|
10
|
+
build_docs:
|
|
11
|
+
runs-on: ubuntu-latest
|
|
12
|
+
steps:
|
|
13
|
+
- uses: actions/checkout@v4
|
|
14
|
+
|
|
15
|
+
- uses: actions/setup-python@v5
|
|
16
|
+
with:
|
|
17
|
+
python-version: "3.11"
|
|
18
|
+
|
|
19
|
+
- name: Install dependencies
|
|
20
|
+
run: |
|
|
21
|
+
pip install -e .
|
|
22
|
+
pip install sphinx sphinx-rtd-theme myst-parser sphinx-autodoc-typehints
|
|
23
|
+
|
|
24
|
+
- name: Build docs
|
|
25
|
+
run: |
|
|
26
|
+
cd docs
|
|
27
|
+
make html
|
|
28
|
+
|
|
29
|
+
- name: Deploy to GitHub Pages
|
|
30
|
+
uses: peaceiris/actions-gh-pages@v3
|
|
31
|
+
with:
|
|
32
|
+
github_token: ${{ secrets.GITHUB_TOKEN }}
|
|
33
|
+
publish_dir: docs/_build/html
|
|
34
|
+
enable_jekyll: false
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
name: Build and publish
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
tags:
|
|
6
|
+
- "v*" # only triggers when you push a tag like v0.1.0
|
|
7
|
+
workflow_dispatch: # allows manual trigger from GitHub UI for testing
|
|
8
|
+
|
|
9
|
+
jobs:
|
|
10
|
+
build_wheels:
|
|
11
|
+
name: Build wheels on ${{ matrix.os }}
|
|
12
|
+
runs-on: ${{ matrix.os }}
|
|
13
|
+
strategy:
|
|
14
|
+
matrix:
|
|
15
|
+
os: [ubuntu-latest, windows-latest]
|
|
16
|
+
steps:
|
|
17
|
+
- uses: actions/checkout@v4
|
|
18
|
+
|
|
19
|
+
- name: Install uv
|
|
20
|
+
uses: astral-sh/setup-uv@v3
|
|
21
|
+
|
|
22
|
+
- name: Build wheels
|
|
23
|
+
uses: pypa/cibuildwheel@v2.21
|
|
24
|
+
env:
|
|
25
|
+
CIBW_BUILD: "cp39-* cp310-* cp311-* cp312-*"
|
|
26
|
+
CIBW_SKIP: "*-win32 *-manylinux_i686 *-musllinux*"
|
|
27
|
+
CIBW_TEST_COMMAND: "python -c \"import pyssaBSS; print(pyssaBSS.__version__)\""
|
|
28
|
+
|
|
29
|
+
- name: Upload wheels as artifacts
|
|
30
|
+
uses: actions/upload-artifact@v4
|
|
31
|
+
with:
|
|
32
|
+
name: wheels-${{ matrix.os }}
|
|
33
|
+
path: ./wheelhouse/*.whl
|
|
34
|
+
|
|
35
|
+
build_sdist:
|
|
36
|
+
name: Build source distribution
|
|
37
|
+
runs-on: ubuntu-latest
|
|
38
|
+
steps:
|
|
39
|
+
- uses: actions/checkout@v4
|
|
40
|
+
|
|
41
|
+
- uses: actions/setup-python@v5
|
|
42
|
+
with:
|
|
43
|
+
python-version: "3.11"
|
|
44
|
+
|
|
45
|
+
- name: Build sdist
|
|
46
|
+
run: |
|
|
47
|
+
pip install build
|
|
48
|
+
python -m build --sdist
|
|
49
|
+
|
|
50
|
+
- name: Upload sdist as artifact
|
|
51
|
+
uses: actions/upload-artifact@v4
|
|
52
|
+
with:
|
|
53
|
+
name: sdist
|
|
54
|
+
path: dist/*.tar.gz
|
|
55
|
+
|
|
56
|
+
upload_testpypi:
|
|
57
|
+
name: Upload to TestPyPI
|
|
58
|
+
needs: [build_wheels, build_sdist]
|
|
59
|
+
runs-on: ubuntu-latest
|
|
60
|
+
permissions:
|
|
61
|
+
id-token: write
|
|
62
|
+
environment: testpypi # optional but good practice
|
|
63
|
+
|
|
64
|
+
steps:
|
|
65
|
+
- name: Download all artifacts
|
|
66
|
+
uses: actions/download-artifact@v4
|
|
67
|
+
with:
|
|
68
|
+
pattern: wheels-*
|
|
69
|
+
merge-multiple: true
|
|
70
|
+
path: dist/
|
|
71
|
+
|
|
72
|
+
- name: Download sdist
|
|
73
|
+
uses: actions/download-artifact@v4
|
|
74
|
+
with:
|
|
75
|
+
name: sdist
|
|
76
|
+
path: dist/
|
|
77
|
+
|
|
78
|
+
- name: Publish to TestPyPI
|
|
79
|
+
uses: pypa/gh-action-pypi-publish@release/v1
|
|
80
|
+
with:
|
|
81
|
+
repository-url: https://test.pypi.org/legacy/
|
|
82
|
+
|
|
83
|
+
upload_pypi:
|
|
84
|
+
name: Upload to PyPI
|
|
85
|
+
needs: upload_testpypi # only runs after TestPyPI succeeds
|
|
86
|
+
runs-on: ubuntu-latest
|
|
87
|
+
permissions:
|
|
88
|
+
id-token: write
|
|
89
|
+
environment: pypi # optional but good practice
|
|
90
|
+
# Extra safety — only publish to real PyPI on tagged releases
|
|
91
|
+
if: startsWith(github.ref, 'refs/tags/v')
|
|
92
|
+
|
|
93
|
+
steps:
|
|
94
|
+
- name: Download all artifacts
|
|
95
|
+
uses: actions/download-artifact@v4
|
|
96
|
+
with:
|
|
97
|
+
pattern: wheels-*
|
|
98
|
+
merge-multiple: true
|
|
99
|
+
path: dist/
|
|
100
|
+
|
|
101
|
+
- name: Download sdist
|
|
102
|
+
uses: actions/download-artifact@v4
|
|
103
|
+
with:
|
|
104
|
+
name: sdist
|
|
105
|
+
path: dist/
|
|
106
|
+
|
|
107
|
+
- name: Publish to PyPI
|
|
108
|
+
uses: pypa/gh-action-pypi-publish@release/v1
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
cmake_minimum_required(VERSION 3.15)
|
|
2
|
+
project(joint_diag LANGUAGES CXX)
|
|
3
|
+
|
|
4
|
+
set(CMAKE_CXX_STANDARD 17)
|
|
5
|
+
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
6
|
+
|
|
7
|
+
find_package(pybind11 CONFIG REQUIRED)
|
|
8
|
+
|
|
9
|
+
pybind11_add_module(_core
|
|
10
|
+
src/pyssaBSS/joint_diag/wrapper.cpp
|
|
11
|
+
src/pyssaBSS/joint_diag/cJADE.cpp
|
|
12
|
+
)
|
|
13
|
+
|
|
14
|
+
install(TARGETS _core
|
|
15
|
+
LIBRARY DESTINATION pyssaBSS/joint_diag)
|