pieeg-core 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,112 @@
1
+ name: Release
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - "v*"
7
+ workflow_dispatch:
8
+
9
+ permissions:
10
+ contents: read
11
+
12
+ jobs:
13
+ linux:
14
+ runs-on: ubuntu-latest
15
+ strategy:
16
+ fail-fast: false
17
+ matrix:
18
+ target: [x86_64, aarch64, armv7]
19
+ steps:
20
+ - uses: actions/checkout@v4
21
+ - uses: actions/setup-python@v5
22
+ with:
23
+ python-version: "3.12"
24
+ - name: Build wheels
25
+ uses: PyO3/maturin-action@v1
26
+ with:
27
+ target: ${{ matrix.target }}
28
+ args: --release --out dist --interpreter 3.10 3.11 3.12 3.13
29
+ manylinux: auto
30
+ - uses: actions/upload-artifact@v4
31
+ with:
32
+ name: wheels-linux-${{ matrix.target }}
33
+ path: dist
34
+
35
+ windows:
36
+ runs-on: windows-latest
37
+ strategy:
38
+ fail-fast: false
39
+ matrix:
40
+ target: [x64]
41
+ steps:
42
+ - uses: actions/checkout@v4
43
+ - uses: actions/setup-python@v5
44
+ with:
45
+ python-version: "3.12"
46
+ architecture: ${{ matrix.target }}
47
+ - name: Build wheels
48
+ uses: PyO3/maturin-action@v1
49
+ with:
50
+ target: ${{ matrix.target }}
51
+ args: --release --out dist --interpreter 3.10 3.11 3.12 3.13
52
+ - uses: actions/upload-artifact@v4
53
+ with:
54
+ name: wheels-windows-${{ matrix.target }}
55
+ path: dist
56
+
57
+ macos:
58
+ runs-on: ${{ matrix.os }}
59
+ strategy:
60
+ fail-fast: false
61
+ matrix:
62
+ include:
63
+ - os: macos-14
64
+ target: aarch64
65
+ steps:
66
+ - uses: actions/checkout@v4
67
+ - uses: actions/setup-python@v5
68
+ with:
69
+ python-version: "3.12"
70
+ - name: Build wheels
71
+ uses: PyO3/maturin-action@v1
72
+ with:
73
+ target: ${{ matrix.target }}
74
+ args: --release --out dist --interpreter 3.10 3.11 3.12 3.13
75
+ - uses: actions/upload-artifact@v4
76
+ with:
77
+ name: wheels-macos-${{ matrix.target }}
78
+ path: dist
79
+
80
+ sdist:
81
+ runs-on: ubuntu-latest
82
+ steps:
83
+ - uses: actions/checkout@v4
84
+ - name: Build sdist
85
+ uses: PyO3/maturin-action@v1
86
+ with:
87
+ command: sdist
88
+ args: --out dist
89
+ - uses: actions/upload-artifact@v4
90
+ with:
91
+ name: wheels-sdist
92
+ path: dist
93
+
94
+ release:
95
+ name: Publish to PyPI
96
+ runs-on: ubuntu-latest
97
+ needs: [linux, windows, macos, sdist]
98
+ if: startsWith(github.ref, 'refs/tags/v')
99
+ environment:
100
+ name: pypi
101
+ url: https://pypi.org/p/pieeg-core
102
+ permissions:
103
+ id-token: write # Trusted Publishing (OIDC)
104
+ steps:
105
+ - uses: actions/download-artifact@v4
106
+ with:
107
+ path: dist
108
+ merge-multiple: true
109
+ - name: Publish to PyPI
110
+ uses: pypa/gh-action-pypi-publish@release/v1
111
+ with:
112
+ packages-dir: dist
@@ -0,0 +1,9 @@
1
+ /target
2
+ /Cargo.lock
3
+ __pycache__
4
+ *.egg-info
5
+ *.so
6
+ *.pyd
7
+ *.dll
8
+ dist/
9
+ .pytest_cache/
@@ -0,0 +1,22 @@
1
+ PiEEG-core is available under a dual-licensing model.
2
+
3
+ Open source use
4
+
5
+ PiEEG-core is available under the GNU Affero General Public License v3.0 or later. If you distribute, modify, or provide network access to software that includes PiEEG-core, you must comply with the AGPL.
6
+
7
+ Commercial use
8
+
9
+ If you want to use PiEEG-core in a closed-source product, an internal proprietary system, or a commercial SaaS offering without AGPL obligations, you must obtain a separate commercial license from the copyright holder.
10
+
11
+ Commercial licensing contact
12
+
13
+ Contact: pieeg@pieeg.com
14
+
15
+ Typical reasons to request a commercial license
16
+
17
+ - Closed-source desktop or embedded products
18
+ - Proprietary cloud processing pipelines
19
+ - Commercial medical, neurotech, or BCI applications
20
+ - Redistribution inside paid hardware or software bundles
21
+
22
+ Until a separate commercial agreement is signed, your use of PiEEG-core is governed solely by the AGPL-3.0-or-later license.
@@ -0,0 +1,180 @@
1
+ # This file is automatically @generated by Cargo.
2
+ # It is not intended for manual editing.
3
+ version = 4
4
+
5
+ [[package]]
6
+ name = "autocfg"
7
+ version = "1.5.0"
8
+ source = "registry+https://github.com/rust-lang/crates.io-index"
9
+ checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8"
10
+
11
+ [[package]]
12
+ name = "cfg-if"
13
+ version = "1.0.4"
14
+ source = "registry+https://github.com/rust-lang/crates.io-index"
15
+ checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801"
16
+
17
+ [[package]]
18
+ name = "heck"
19
+ version = "0.5.0"
20
+ source = "registry+https://github.com/rust-lang/crates.io-index"
21
+ checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
22
+
23
+ [[package]]
24
+ name = "indoc"
25
+ version = "2.0.7"
26
+ source = "registry+https://github.com/rust-lang/crates.io-index"
27
+ checksum = "79cf5c93f93228cf8efb3ba362535fb11199ac548a09ce117c9b1adc3030d706"
28
+ dependencies = [
29
+ "rustversion",
30
+ ]
31
+
32
+ [[package]]
33
+ name = "libc"
34
+ version = "0.2.185"
35
+ source = "registry+https://github.com/rust-lang/crates.io-index"
36
+ checksum = "52ff2c0fe9bc6cb6b14a0592c2ff4fa9ceb83eea9db979b0487cd054946a2b8f"
37
+
38
+ [[package]]
39
+ name = "memoffset"
40
+ version = "0.9.1"
41
+ source = "registry+https://github.com/rust-lang/crates.io-index"
42
+ checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a"
43
+ dependencies = [
44
+ "autocfg",
45
+ ]
46
+
47
+ [[package]]
48
+ name = "once_cell"
49
+ version = "1.21.4"
50
+ source = "registry+https://github.com/rust-lang/crates.io-index"
51
+ checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50"
52
+
53
+ [[package]]
54
+ name = "pieeg-core"
55
+ version = "0.1.1"
56
+ dependencies = [
57
+ "pyo3",
58
+ ]
59
+
60
+ [[package]]
61
+ name = "portable-atomic"
62
+ version = "1.13.1"
63
+ source = "registry+https://github.com/rust-lang/crates.io-index"
64
+ checksum = "c33a9471896f1c69cecef8d20cbe2f7accd12527ce60845ff44c153bb2a21b49"
65
+
66
+ [[package]]
67
+ name = "proc-macro2"
68
+ version = "1.0.106"
69
+ source = "registry+https://github.com/rust-lang/crates.io-index"
70
+ checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934"
71
+ dependencies = [
72
+ "unicode-ident",
73
+ ]
74
+
75
+ [[package]]
76
+ name = "pyo3"
77
+ version = "0.22.6"
78
+ source = "registry+https://github.com/rust-lang/crates.io-index"
79
+ checksum = "f402062616ab18202ae8319da13fa4279883a2b8a9d9f83f20dbade813ce1884"
80
+ dependencies = [
81
+ "cfg-if",
82
+ "indoc",
83
+ "libc",
84
+ "memoffset",
85
+ "once_cell",
86
+ "portable-atomic",
87
+ "pyo3-build-config",
88
+ "pyo3-ffi",
89
+ "pyo3-macros",
90
+ "unindent",
91
+ ]
92
+
93
+ [[package]]
94
+ name = "pyo3-build-config"
95
+ version = "0.22.6"
96
+ source = "registry+https://github.com/rust-lang/crates.io-index"
97
+ checksum = "b14b5775b5ff446dd1056212d778012cbe8a0fbffd368029fd9e25b514479c38"
98
+ dependencies = [
99
+ "once_cell",
100
+ "target-lexicon",
101
+ ]
102
+
103
+ [[package]]
104
+ name = "pyo3-ffi"
105
+ version = "0.22.6"
106
+ source = "registry+https://github.com/rust-lang/crates.io-index"
107
+ checksum = "9ab5bcf04a2cdcbb50c7d6105de943f543f9ed92af55818fd17b660390fc8636"
108
+ dependencies = [
109
+ "libc",
110
+ "pyo3-build-config",
111
+ ]
112
+
113
+ [[package]]
114
+ name = "pyo3-macros"
115
+ version = "0.22.6"
116
+ source = "registry+https://github.com/rust-lang/crates.io-index"
117
+ checksum = "0fd24d897903a9e6d80b968368a34e1525aeb719d568dba8b3d4bfa5dc67d453"
118
+ dependencies = [
119
+ "proc-macro2",
120
+ "pyo3-macros-backend",
121
+ "quote",
122
+ "syn",
123
+ ]
124
+
125
+ [[package]]
126
+ name = "pyo3-macros-backend"
127
+ version = "0.22.6"
128
+ source = "registry+https://github.com/rust-lang/crates.io-index"
129
+ checksum = "36c011a03ba1e50152b4b394b479826cad97e7a21eb52df179cd91ac411cbfbe"
130
+ dependencies = [
131
+ "heck",
132
+ "proc-macro2",
133
+ "pyo3-build-config",
134
+ "quote",
135
+ "syn",
136
+ ]
137
+
138
+ [[package]]
139
+ name = "quote"
140
+ version = "1.0.45"
141
+ source = "registry+https://github.com/rust-lang/crates.io-index"
142
+ checksum = "41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924"
143
+ dependencies = [
144
+ "proc-macro2",
145
+ ]
146
+
147
+ [[package]]
148
+ name = "rustversion"
149
+ version = "1.0.22"
150
+ source = "registry+https://github.com/rust-lang/crates.io-index"
151
+ checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d"
152
+
153
+ [[package]]
154
+ name = "syn"
155
+ version = "2.0.117"
156
+ source = "registry+https://github.com/rust-lang/crates.io-index"
157
+ checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99"
158
+ dependencies = [
159
+ "proc-macro2",
160
+ "quote",
161
+ "unicode-ident",
162
+ ]
163
+
164
+ [[package]]
165
+ name = "target-lexicon"
166
+ version = "0.12.16"
167
+ source = "registry+https://github.com/rust-lang/crates.io-index"
168
+ checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1"
169
+
170
+ [[package]]
171
+ name = "unicode-ident"
172
+ version = "1.0.24"
173
+ source = "registry+https://github.com/rust-lang/crates.io-index"
174
+ checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75"
175
+
176
+ [[package]]
177
+ name = "unindent"
178
+ version = "0.2.4"
179
+ source = "registry+https://github.com/rust-lang/crates.io-index"
180
+ checksum = "7264e107f553ccae879d21fbea1d6724ac785e8c3bfc762137959b5802826ef3"
@@ -0,0 +1,20 @@
1
+ [package]
2
+ name = "pieeg-core"
3
+ version = "0.1.1"
4
+ edition = "2021"
5
+ description = "Native accelerator for PiEEG — compiled signal processing, zero-copy acquisition"
6
+ license = "AGPL-3.0-or-later"
7
+ readme = "README.md"
8
+
9
+ [lib]
10
+ name = "pieeg_core"
11
+ crate-type = ["cdylib"]
12
+
13
+ [dependencies]
14
+ pyo3 = { version = "0.22", features = ["extension-module"] }
15
+
16
+ [profile.release]
17
+ opt-level = 3
18
+ lto = "fat"
19
+ codegen-units = 1
20
+ strip = true