super-slurpy 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.
@@ -0,0 +1,142 @@
1
+ name: release
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - "v[0-9]+.[0-9]+.[0-9]+"
7
+
8
+ env:
9
+ PACKAGE_NAME: "<PACKAGE_NAME>"
10
+ OWNER: "<OWNER>"
11
+
12
+ jobs:
13
+ details:
14
+ runs-on: ubuntu-latest
15
+ if: github.repository == 'giuthas-speech-research-tools/super_slurpy'
16
+ outputs:
17
+ new_version: ${{ steps.release.outputs.new_version }}
18
+ suffix: ${{ steps.release.outputs.suffix }}
19
+ tag_name: ${{ steps.release.outputs.tag_name }}
20
+ steps:
21
+ - uses: actions/checkout@v2
22
+
23
+ - name: Extract tag and Details
24
+ id: release
25
+ run: |
26
+ if [ "${{ github.ref_type }}" = "tag" ]; then
27
+ TAG_NAME=${GITHUB_REF#refs/tags/}
28
+ NEW_VERSION=$(echo $TAG_NAME | awk -F'v' '{print $2}')
29
+ SUFFIX=$(echo $TAG_NAME | grep -oP '[abrc]+[0-9]+' || echo "")
30
+ echo "new_version=$NEW_VERSION" >> "$GITHUB_OUTPUT"
31
+ echo "suffix=$SUFFIX" >> "$GITHUB_OUTPUT"
32
+ echo "tag_name=$TAG_NAME" >> "$GITHUB_OUTPUT"
33
+ echo "Version is $NEW_VERSION"
34
+ echo "Suffix is $SUFFIX"
35
+ echo "Tag name is $TAG_NAME"
36
+ else
37
+ echo "No tag found"
38
+ exit 1
39
+ fi
40
+
41
+ check_pypi:
42
+ needs: details
43
+ runs-on: ubuntu-latest
44
+ steps:
45
+ - name: Fetch information from PyPI
46
+ run: |
47
+ response=$(curl -s https://pypi.org/pypi/${{ env.PACKAGE_NAME }}/json || echo "{}")
48
+ latest_previous_version=$(echo $response | jq --raw-output "select(.releases != null) | .releases | keys_unsorted | last")
49
+ if [ -z "$latest_previous_version" ]; then
50
+ echo "Package not found on PyPI."
51
+ latest_previous_version="0.0.0"
52
+ fi
53
+ echo "Latest version on PyPI: $latest_previous_version"
54
+ echo "latest_previous_version=$latest_previous_version" >> $GITHUB_ENV
55
+
56
+ - name: Compare versions and exit if not newer
57
+ run: |
58
+ NEW_VERSION=${{ needs.details.outputs.new_version }}
59
+ LATEST_VERSION=$latest_previous_version
60
+ if [ "$(printf '%s\n' "$LATEST_VERSION" "$NEW_VERSION" | sort -rV | head -n 1)" != "$NEW_VERSION" ] || [ "$NEW_VERSION" == "$LATEST_VERSION" ]; then
61
+ echo "The new version $NEW_VERSION is not greater than the latest version $LATEST_VERSION on PyPI."
62
+ exit 1
63
+ else
64
+ echo "The new version $NEW_VERSION is greater than the latest version $LATEST_VERSION on PyPI."
65
+ fi
66
+
67
+ setup_and_build:
68
+ needs: [details, check_pypi]
69
+ runs-on: ubuntu-latest
70
+ steps:
71
+ - uses: actions/checkout@v2
72
+
73
+ - name: Set up Python
74
+ uses: actions/setup-python@v4
75
+ with:
76
+ python-version: "3.13"
77
+
78
+ - name: Install uv
79
+ run: |
80
+ curl -LsSf https://astral.sh/uv/install.sh | sh
81
+ echo "$HOME/.local/bin" >> $GITHUB_PATH
82
+
83
+ - name: Build source and wheel distribution
84
+ run: |
85
+ uv build
86
+
87
+ - name: Upload artifacts
88
+ uses: actions/upload-artifact@v4
89
+ with:
90
+ name: dist
91
+ path: dist/
92
+
93
+ pypi_publish:
94
+ name: Upload release to PyPI
95
+ needs: [setup_and_build, details]
96
+ runs-on: ubuntu-latest
97
+ environment:
98
+ name: pypi
99
+ permissions:
100
+ id-token: write
101
+ steps:
102
+ - name: Download artifacts
103
+ uses: actions/download-artifact@v4
104
+ with:
105
+ name: dist
106
+ path: dist/
107
+
108
+ - name: Publish distribution to PyPI
109
+ uses: pypa/gh-action-pypi-publish@release/v1
110
+
111
+ github_release:
112
+ name: Create GitHub Release
113
+ needs: [setup_and_build, details, pypi_publish]
114
+ runs-on: ubuntu-latest
115
+ permissions:
116
+ contents: write
117
+ steps:
118
+ - name: Checkout Code
119
+ uses: actions/checkout@v3
120
+ with:
121
+ fetch-depth: 0
122
+
123
+ - name: Download artifacts
124
+ uses: actions/download-artifact@v4
125
+ with:
126
+ name: dist
127
+ path: dist/
128
+
129
+ - name: Get latest release info
130
+ id: query-release-info
131
+ uses: release-flow/keep-a-changelog-action@v2
132
+ with:
133
+ command: query
134
+ version: latest
135
+ changelog: 'docs/Changelog.markdown'
136
+
137
+ - name: Create GitHub Release
138
+ id: create_release
139
+ env:
140
+ GH_TOKEN: ${{ github.token }}
141
+ run: |
142
+ gh release create ${{ needs.details.outputs.tag_name }} dist/* --title "${{steps.query-release-info.outputs.version}} - ${{steps.query-release-info.outputs.release-date }}" --notes "${{steps.query-release-info.outputs.release-notes}}"
@@ -0,0 +1,147 @@
1
+ name: pre_release
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - "v[0-9]+.[0-9]+.[0-9]+-alpha.[0-9]+"
7
+ - "v[0-9]+.[0-9]+.[0-9]+-beta.[0-9]+"
8
+ - "v[0-9]+.[0-9]+.[0-9]+-rc.[0-9]+"
9
+
10
+ env:
11
+ PACKAGE_NAME: "<PACKAGE_NAME>"
12
+ OWNER: "<OWNER>"
13
+
14
+ jobs:
15
+ details:
16
+ runs-on: ubuntu-latest
17
+ if: github.repository == 'giuthas-speech-research-tools/super_slurpy'
18
+ outputs:
19
+ new_version: ${{ steps.release.outputs.new_version }}
20
+ suffix: ${{ steps.release.outputs.suffix }}
21
+ tag_name: ${{ steps.release.outputs.tag_name }}
22
+ steps:
23
+ - uses: actions/checkout@v2
24
+
25
+ - name: Extract tag and Details
26
+ id: release
27
+ run: |
28
+ if [ "${{ github.ref_type }}" = "tag" ]; then
29
+ TAG_NAME=${GITHUB_REF#refs/tags/}
30
+ NEW_VERSION=$(echo $TAG_NAME | awk -F'v' '{print $2}')
31
+ SUFFIX=$(echo $TAG_NAME | grep -oP '[alphbetrc]+[0-9]+' || echo "")
32
+ echo "new_version=$NEW_VERSION" >> "$GITHUB_OUTPUT"
33
+ echo "suffix=$SUFFIX" >> "$GITHUB_OUTPUT"
34
+ echo "tag_name=$TAG_NAME" >> "$GITHUB_OUTPUT"
35
+ echo "Version is $NEW_VERSION"
36
+ echo "Suffix is $SUFFIX"
37
+ echo "Tag name is $TAG_NAME"
38
+ else
39
+ echo "No tag found"
40
+ exit 1
41
+ fi
42
+
43
+ check_pypi:
44
+ needs: details
45
+ runs-on: ubuntu-latest
46
+ steps:
47
+ - name: Fetch information from TestPyPI
48
+ run: |
49
+ response=$(curl -s https://test.pypi.org/pypi/${{ env.PACKAGE_NAME }}/json || echo "{}")
50
+ latest_previous_version=$(echo $response | jq --raw-output "select(.releases != null) | .releases | keys_unsorted | last")
51
+ if [ -z "$latest_previous_version" ]; then
52
+ echo "Package not found on TestPyPI."
53
+ latest_previous_version="0.0.0"
54
+ fi
55
+ echo "Latest version on TestPyPI: $latest_previous_version"
56
+ echo "latest_previous_version=$latest_previous_version" >> $GITHUB_ENV
57
+
58
+ - name: Compare versions and exit if not newer
59
+ run: |
60
+ NEW_VERSION=${{ needs.details.outputs.new_version }}
61
+ LATEST_VERSION=$latest_previous_version
62
+ if [ "$(printf '%s\n' "$LATEST_VERSION" "$NEW_VERSION" | sort -rV | head -n 1)" != "$NEW_VERSION" ] || [ "$NEW_VERSION" == "$LATEST_VERSION" ]; then
63
+ echo "The new version $NEW_VERSION is not greater than the latest version $LATEST_VERSION on TestPyPI."
64
+ exit 1
65
+ else
66
+ echo "The new version $NEW_VERSION is greater than the latest version $LATEST_VERSION on TestPyPI."
67
+ fi
68
+
69
+ setup_and_build:
70
+ runs-on: ubuntu-latest
71
+ needs: [details, check_pypi]
72
+ steps:
73
+ - uses: actions/checkout@v2
74
+
75
+ - name: Set up Python
76
+ uses: actions/setup-python@v4
77
+ with:
78
+ python-version: "3.13"
79
+
80
+ - name: Install uv
81
+ run: |
82
+ curl -LsSf https://astral.sh/uv/install.sh | sh
83
+ echo "$HOME/.local/bin" >> $GITHUB_PATH
84
+
85
+ - name: Build source and wheel distribution
86
+ run: |
87
+ uv build
88
+
89
+ - name: Upload artifacts
90
+ uses: actions/upload-artifact@v4
91
+ with:
92
+ name: python-package-distributions
93
+ path: dist/
94
+
95
+ testpypi_publish:
96
+ name: Publish to TestPyPI
97
+ needs: [details, setup_and_build]
98
+ runs-on: ubuntu-latest
99
+ environment:
100
+ name: testpypi
101
+ url: https://test.pypi.org/p/<package-name>
102
+ permissions:
103
+ id-token: write # IMPORTANT: mandatory for trusted publishing
104
+ steps:
105
+ - name: Download all the dists
106
+ uses: actions/download-artifact@v4
107
+ with:
108
+ name: python-package-distributions
109
+ path: dist/
110
+ - name: Publish distribution to TestPyPI
111
+ uses: pypa/gh-action-pypi-publish@release/v1
112
+ with:
113
+ repository-url: https://test.pypi.org/legacy/
114
+
115
+ github_release:
116
+ name: Create GitHub Release
117
+ needs: [details, setup_and_build, testpypi_publish]
118
+ runs-on: ubuntu-latest
119
+ permissions:
120
+ contents: write
121
+ steps:
122
+ - name: Checkout Code
123
+ uses: actions/checkout@v3
124
+ with:
125
+ fetch-depth: 0
126
+
127
+ - name: Download artifacts
128
+ uses: actions/download-artifact@v4
129
+ with:
130
+ name: python-package-distributions
131
+ path: dist/
132
+
133
+ - name: Get latest release info
134
+ id: query-release-info
135
+ uses: release-flow/keep-a-changelog-action@v2
136
+ with:
137
+ command: query
138
+ version: latest
139
+ changelog: 'docs/Changelog.markdown'
140
+
141
+ - name: Create GitHub Release
142
+ id: create_release
143
+ env:
144
+ GH_TOKEN: ${{ github.token }}
145
+ run: |
146
+ echo ${{env.title_string}}
147
+ gh release create ${{ needs.details.outputs.tag_name }} dist/* --title "${{steps.query-release-info.outputs.version}} - ${{steps.query-release-info.outputs.release-date }}" --notes "${{steps.query-release-info.outputs.release-notes}}" --prerelease
@@ -0,0 +1,10 @@
1
+ # Python-generated files
2
+ __pycache__/
3
+ *.py[oc]
4
+ build/
5
+ dist/
6
+ wheels/
7
+ *.egg-info
8
+
9
+ # Virtual environments
10
+ .venv
@@ -0,0 +1 @@
1
+ 3.13
@@ -0,0 +1,24 @@
1
+ BSD 2-Clause License
2
+
3
+ Copyright (c) 2026, Speech research tools by giuthas
4
+
5
+ Redistribution and use in source and binary forms, with or without
6
+ modification, are permitted provided that the following conditions are met:
7
+
8
+ 1. Redistributions of source code must retain the above copyright notice, this
9
+ list of conditions and the following disclaimer.
10
+
11
+ 2. Redistributions in binary form must reproduce the above copyright notice,
12
+ this list of conditions and the following disclaimer in the documentation
13
+ and/or other materials provided with the distribution.
14
+
15
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
16
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
18
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
19
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
20
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
21
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
22
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
23
+ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
24
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
@@ -0,0 +1,50 @@
1
+ Metadata-Version: 2.4
2
+ Name: super_slurpy
3
+ Version: 0.1.1
4
+ Summary: Super SLURPy: Python version of Speech and Language Ultrasound Research Package
5
+ Author-email: Pertti Palo <giuthas@gmail.com>
6
+ License-File: LICENSE
7
+ Requires-Python: >=3.13
8
+ Description-Content-Type: text/markdown
9
+
10
+ # Super SLURPy: Python version of Speech and Language Ultrasound Research Package
11
+
12
+ This project is a Python port of [SLURP](https://github.com/cathylaporte/SLURP).
13
+
14
+ ## Installing
15
+
16
+ - Install the package manager uv:
17
+ - MacOS/Linux run `curl -LsSf https://astral.sh/uv/install.sh | sh`
18
+ - Windows run `powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"`
19
+ - See [uv](https://docs.astral.sh/uv/#getting-started) for more details.
20
+ - On the commandline run `uv tool install super_slurpy`
21
+ - Run `slurpy --help` for instructions.
22
+ - The package is called `super_slurpy` but the program itself is called just
23
+ `slurpy` for convenience.
24
+
25
+ ## Documentation
26
+
27
+ [Documentation](https://giuthas.github.io/slurpy/)
28
+
29
+ ## Current version and development plans
30
+
31
+ See [Changelog](https://giuthas.github.io/slurpy/Changelog), for what's new in
32
+ the current version and what's coming up.
33
+
34
+ ## Versioning
35
+
36
+ We use [SemVer](http://semver.org/) for versioning under the rules set out by
37
+ [PEP 440](https://www.python.org/dev/peps/pep-0440/) with the additional
38
+ understanding that releases before 1.0 (i.e. current releases at time of
39
+ writing) have not been tested in any way.
40
+
41
+ For the versions available, see the [tags on this
42
+ repository](https://github.com/giuthas/patkit/tags).
43
+
44
+ # Contributors
45
+
46
+ List of [contributors](https://giuthas.github.io/patkit/Contributors)
47
+
48
+ ## Copyright and License
49
+
50
+ BSD-2-Clause license like original SLURP
@@ -0,0 +1,41 @@
1
+ # Super SLURPy: Python version of Speech and Language Ultrasound Research Package
2
+
3
+ This project is a Python port of [SLURP](https://github.com/cathylaporte/SLURP).
4
+
5
+ ## Installing
6
+
7
+ - Install the package manager uv:
8
+ - MacOS/Linux run `curl -LsSf https://astral.sh/uv/install.sh | sh`
9
+ - Windows run `powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"`
10
+ - See [uv](https://docs.astral.sh/uv/#getting-started) for more details.
11
+ - On the commandline run `uv tool install super_slurpy`
12
+ - Run `slurpy --help` for instructions.
13
+ - The package is called `super_slurpy` but the program itself is called just
14
+ `slurpy` for convenience.
15
+
16
+ ## Documentation
17
+
18
+ [Documentation](https://giuthas.github.io/slurpy/)
19
+
20
+ ## Current version and development plans
21
+
22
+ See [Changelog](https://giuthas.github.io/slurpy/Changelog), for what's new in
23
+ the current version and what's coming up.
24
+
25
+ ## Versioning
26
+
27
+ We use [SemVer](http://semver.org/) for versioning under the rules set out by
28
+ [PEP 440](https://www.python.org/dev/peps/pep-0440/) with the additional
29
+ understanding that releases before 1.0 (i.e. current releases at time of
30
+ writing) have not been tested in any way.
31
+
32
+ For the versions available, see the [tags on this
33
+ repository](https://github.com/giuthas/patkit/tags).
34
+
35
+ # Contributors
36
+
37
+ List of [contributors](https://giuthas.github.io/patkit/Contributors)
38
+
39
+ ## Copyright and License
40
+
41
+ BSD-2-Clause license like original SLURP
@@ -0,0 +1,59 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
+ and this project uses [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ [//]: # (Possible headings in a release:)
9
+ [//]: # (Highlights for shiny new features.)
10
+ [//]: # (Added for new features.)
11
+ [//]: # (Changed for changes in existing functionality.)
12
+ [//]: # (Refactor when functionality does not change but moves.)
13
+ [//]: # (Documentation for updates to docs.)
14
+ [//]: # (Testing for updates to tests.)
15
+ [//]: # (Deprecated for soon-to-be removed features.)
16
+ [//]: # (Removed for now removed features.)
17
+ [//]: # (Bugs for any known issues, especially in use before 1.0.)
18
+ [//]: # (Fixed for any bug fixes.)
19
+ [//]: # (Security in case of vulnerabilities.)
20
+ [//]: # (New contributors for first contributions.)
21
+
22
+ [//]: # (And of course if a version needs to be YANKED:)
23
+ [//]: # (## [version number] [data] [YANKED])
24
+
25
+
26
+ ## [Unreleased]
27
+
28
+ ### Added
29
+
30
+ - v0.2.0 will import the C code from original SLURP, but won't link it yet.
31
+ - v0.3.0 will add a very simple seed snake.
32
+ - v0.4.0 will link C code into Python and run with the simple seed snake.
33
+ - v0.5.0 will make the seed snake editable.
34
+ - v0.6.0 will add a simple heuristic config for selecting the frame to base the
35
+ seed snake on.
36
+ - V1.0 will be released after documentation is updated and functionality has
37
+ been integration tested.
38
+
39
+
40
+ ## [0.1.1] - 2026-03-22
41
+
42
+ ### Highlights
43
+
44
+ - Initial release to reserve package name on pypi.
45
+
46
+ ### Added
47
+
48
+ - Release automation for main releases to pypi.
49
+
50
+
51
+ ## [0.1.0-alpha.1] - 2026-03-22
52
+
53
+ ### Highlights
54
+
55
+ - Initial release to reserve package name on test.pypi.
56
+
57
+ ### Added
58
+
59
+ - A lot of auxiliary files but no actual code yet.
@@ -0,0 +1,16 @@
1
+ # Super SLURPy documentation
2
+
3
+ Super SLURPy is a Python version of Speech and Language Ultrasound Research
4
+ Package [SLURP](https://github.com/cathylaporte/SLURP). It provides a Python
5
+ API and a Python program. Latter is simply called `slurpy` and launches the
6
+ GUI.
7
+
8
+ ## A note on the name(s)
9
+
10
+ The 'super' in the package/project name is there only to avoid a conflict with
11
+ a different project called `slurpy`. And maybe because it's kinda super to have
12
+ a Python version of SLURP.
13
+
14
+ The commandline command is shorter to make life easier when using the program.
15
+ It's also fine to refer to the project by the shorter name, just as long as you
16
+ are aware that the long name is used on PyPi and thus for installing.
@@ -0,0 +1,17 @@
1
+ [project]
2
+ name = "super_slurpy"
3
+ version = "0.1.1"
4
+ description = "Super SLURPy: Python version of Speech and Language Ultrasound Research Package"
5
+ readme = "README.md"
6
+ authors = [
7
+ { name = "Pertti Palo", email = "giuthas@gmail.com" }
8
+ ]
9
+ requires-python = ">=3.13"
10
+ dependencies = []
11
+
12
+ [project.scripts]
13
+ slurpy = "super_slurpy:main"
14
+
15
+ [build-system]
16
+ requires = ["hatchling"]
17
+ build-backend = "hatchling.build"
@@ -0,0 +1,2 @@
1
+ def main() -> None:
2
+ print("Hello from slurpy!")