renko-rs 0.2.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,45 @@
1
+ name: CI
2
+
3
+ on:
4
+ push:
5
+ branches: [main, master]
6
+ pull_request:
7
+ branches: [main, master]
8
+
9
+ jobs:
10
+ test:
11
+ name: Test (${{ matrix.os }}, Python ${{ matrix.python-version }})
12
+ runs-on: ${{ matrix.os }}
13
+ strategy:
14
+ matrix:
15
+ os: [ubuntu-latest, windows-latest, macos-latest]
16
+ python-version: ['3.10', '3.12', '3.13', '3.14']
17
+ fail-fast: false
18
+ steps:
19
+ - uses: actions/checkout@v4
20
+
21
+ - name: Set up Python
22
+ uses: actions/setup-python@v5
23
+ with:
24
+ python-version: ${{ matrix.python-version }}
25
+ allow-prereleases: true
26
+
27
+ - name: Install Rust
28
+ uses: dtolnay/rust-toolchain@stable
29
+
30
+ - name: Build
31
+ uses: PyO3/maturin-action@v1
32
+ with:
33
+ args: --release --out dist --interpreter python${{ matrix.python-version }}
34
+ manylinux: 'off'
35
+ env:
36
+ PYO3_USE_ABI3_FORWARD_COMPATIBILITY: '1'
37
+
38
+ - name: Install wheel
39
+ shell: bash
40
+ run: |
41
+ pip install numpy pandas polars
42
+ pip install dist/*.whl --force-reinstall
43
+
44
+ - name: Run tests
45
+ run: python tests/test_renko.py
@@ -0,0 +1,252 @@
1
+ name: Release
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - 'v*'
7
+ workflow_dispatch:
8
+
9
+ permissions:
10
+ contents: read
11
+ id-token: write
12
+
13
+ jobs:
14
+ linux-x86_64:
15
+ name: Linux x86_64
16
+ runs-on: ubuntu-latest
17
+ strategy:
18
+ matrix:
19
+ python-version: ['3.10', '3.11', '3.12', '3.13', '3.14']
20
+ steps:
21
+ - uses: actions/checkout@v4
22
+
23
+ - name: Set up Python
24
+ uses: actions/setup-python@v5
25
+ with:
26
+ python-version: ${{ matrix.python-version }}
27
+ allow-prereleases: true
28
+
29
+ - name: Install Rust
30
+ uses: dtolnay/rust-toolchain@stable
31
+ with:
32
+ targets: x86_64-unknown-linux-gnu
33
+
34
+ - name: Build wheels
35
+ uses: PyO3/maturin-action@v1
36
+ with:
37
+ target: x86_64
38
+ args: --release --out dist --interpreter python${{ matrix.python-version }}
39
+ manylinux: '2_28'
40
+ env:
41
+ PYO3_USE_ABI3_FORWARD_COMPATIBILITY: '1'
42
+
43
+ - name: Upload wheels
44
+ uses: actions/upload-artifact@v4
45
+ with:
46
+ name: wheels-linux-x86_64-py${{ matrix.python-version }}
47
+ path: dist/*.whl
48
+
49
+ linux-aarch64:
50
+ name: Linux ARM64
51
+ runs-on: ubuntu-latest
52
+ strategy:
53
+ matrix:
54
+ python-version: ['3.10', '3.11', '3.12', '3.13', '3.14']
55
+ steps:
56
+ - uses: actions/checkout@v4
57
+
58
+ - name: Set up QEMU
59
+ uses: docker/setup-qemu-action@v3
60
+ with:
61
+ platforms: arm64
62
+
63
+ - name: Install Rust
64
+ uses: dtolnay/rust-toolchain@stable
65
+ with:
66
+ targets: aarch64-unknown-linux-gnu
67
+
68
+ - name: Build wheels
69
+ uses: PyO3/maturin-action@v1
70
+ with:
71
+ target: aarch64
72
+ args: --release --out dist --interpreter python${{ matrix.python-version }}
73
+ manylinux: '2_28'
74
+ env:
75
+ PYO3_USE_ABI3_FORWARD_COMPATIBILITY: '1'
76
+
77
+ - name: Upload wheels
78
+ uses: actions/upload-artifact@v4
79
+ with:
80
+ name: wheels-linux-aarch64-py${{ matrix.python-version }}
81
+ path: dist/*.whl
82
+
83
+ windows-x86_64:
84
+ name: Windows x86_64
85
+ runs-on: windows-latest
86
+ strategy:
87
+ matrix:
88
+ python-version: ['3.10', '3.11', '3.12', '3.13', '3.14']
89
+ steps:
90
+ - uses: actions/checkout@v4
91
+
92
+ - name: Set up Python
93
+ uses: actions/setup-python@v5
94
+ with:
95
+ python-version: ${{ matrix.python-version }}
96
+ allow-prereleases: true
97
+
98
+ - name: Install Rust
99
+ uses: dtolnay/rust-toolchain@stable
100
+ with:
101
+ targets: x86_64-pc-windows-msvc
102
+
103
+ - name: Build wheels
104
+ uses: PyO3/maturin-action@v1
105
+ with:
106
+ target: x64
107
+ args: --release --out dist --interpreter python${{ matrix.python-version }}
108
+ env:
109
+ PYO3_USE_ABI3_FORWARD_COMPATIBILITY: '1'
110
+
111
+ - name: Upload wheels
112
+ uses: actions/upload-artifact@v4
113
+ with:
114
+ name: wheels-windows-x86_64-py${{ matrix.python-version }}
115
+ path: dist/*.whl
116
+
117
+ macos-x86_64:
118
+ name: macOS Intel
119
+ runs-on: macos-13
120
+ strategy:
121
+ matrix:
122
+ python-version: ['3.10', '3.11', '3.12', '3.13', '3.14']
123
+ steps:
124
+ - uses: actions/checkout@v4
125
+
126
+ - name: Set up Python
127
+ uses: actions/setup-python@v5
128
+ with:
129
+ python-version: ${{ matrix.python-version }}
130
+ allow-prereleases: true
131
+
132
+ - name: Install Rust
133
+ uses: dtolnay/rust-toolchain@stable
134
+ with:
135
+ targets: x86_64-apple-darwin
136
+
137
+ - name: Build wheels
138
+ uses: PyO3/maturin-action@v1
139
+ with:
140
+ target: x86_64
141
+ args: --release --out dist --interpreter python${{ matrix.python-version }}
142
+ env:
143
+ PYO3_USE_ABI3_FORWARD_COMPATIBILITY: '1'
144
+ MACOSX_DEPLOYMENT_TARGET: '10.12'
145
+
146
+ - name: Upload wheels
147
+ uses: actions/upload-artifact@v4
148
+ with:
149
+ name: wheels-macos-x86_64-py${{ matrix.python-version }}
150
+ path: dist/*.whl
151
+
152
+ macos-aarch64:
153
+ name: macOS Apple Silicon
154
+ runs-on: macos-latest
155
+ strategy:
156
+ matrix:
157
+ python-version: ['3.10', '3.11', '3.12', '3.13', '3.14']
158
+ steps:
159
+ - uses: actions/checkout@v4
160
+
161
+ - name: Set up Python
162
+ uses: actions/setup-python@v5
163
+ with:
164
+ python-version: ${{ matrix.python-version }}
165
+ allow-prereleases: true
166
+
167
+ - name: Install Rust
168
+ uses: dtolnay/rust-toolchain@stable
169
+ with:
170
+ targets: aarch64-apple-darwin
171
+
172
+ - name: Build wheels
173
+ uses: PyO3/maturin-action@v1
174
+ with:
175
+ target: aarch64
176
+ args: --release --out dist --interpreter python${{ matrix.python-version }}
177
+ env:
178
+ PYO3_USE_ABI3_FORWARD_COMPATIBILITY: '1'
179
+ MACOSX_DEPLOYMENT_TARGET: '11.0'
180
+
181
+ - name: Upload wheels
182
+ uses: actions/upload-artifact@v4
183
+ with:
184
+ name: wheels-macos-aarch64-py${{ matrix.python-version }}
185
+ path: dist/*.whl
186
+
187
+ sdist:
188
+ name: Source distribution
189
+ runs-on: ubuntu-latest
190
+ steps:
191
+ - uses: actions/checkout@v4
192
+
193
+ - name: Build sdist
194
+ uses: PyO3/maturin-action@v1
195
+ with:
196
+ command: sdist
197
+ args: --out dist
198
+
199
+ - name: Upload sdist
200
+ uses: actions/upload-artifact@v4
201
+ with:
202
+ name: sdist
203
+ path: dist/*.tar.gz
204
+
205
+ publish:
206
+ name: Publish to PyPI
207
+ runs-on: ubuntu-latest
208
+ needs:
209
+ - linux-x86_64
210
+ - linux-aarch64
211
+ - windows-x86_64
212
+ - sdist
213
+ if: startsWith(github.ref, 'refs/tags/v')
214
+ environment:
215
+ name: pypi
216
+ url: https://pypi.org/p/renko_rs
217
+ permissions:
218
+ id-token: write
219
+ steps:
220
+ - name: Download all artifacts
221
+ uses: actions/download-artifact@v4
222
+ with:
223
+ path: dist
224
+ merge-multiple: true
225
+
226
+ - name: Publish to PyPI
227
+ uses: pypa/gh-action-pypi-publish@release/v1
228
+ with:
229
+ packages-dir: dist/
230
+ skip-existing: true
231
+
232
+ github-release:
233
+ name: GitHub Release
234
+ runs-on: ubuntu-latest
235
+ needs: publish
236
+ if: startsWith(github.ref, 'refs/tags/v')
237
+ permissions:
238
+ contents: write
239
+ steps:
240
+ - uses: actions/checkout@v4
241
+
242
+ - name: Download all artifacts
243
+ uses: actions/download-artifact@v4
244
+ with:
245
+ path: dist
246
+ merge-multiple: true
247
+
248
+ - name: Create GitHub Release
249
+ uses: softprops/action-gh-release@v2
250
+ with:
251
+ files: dist/*
252
+ generate_release_notes: true
@@ -0,0 +1,60 @@
1
+ # Python
2
+ __pycache__/
3
+ *.py[oc]
4
+ *.pyd
5
+ *.egg-info/
6
+ *.egg
7
+ build/
8
+ dist/
9
+ wheels/
10
+ *.whl
11
+
12
+ # Virtual environments
13
+ .venv/
14
+ .python-version
15
+
16
+ # Rust build artifacts
17
+ target/
18
+ Cargo.lock
19
+
20
+ # Local cargo config
21
+ .cargo/
22
+
23
+ # Compiled extensions
24
+ *.so
25
+ *.dylib
26
+ *.dll
27
+ *.lib
28
+ *.exp
29
+ *.pdb
30
+
31
+ # Data files
32
+ data/
33
+
34
+ # IDE and editor
35
+ .idea/
36
+ .vscode/
37
+ *.swp
38
+ *.swo
39
+ *~
40
+ *.sublime-*
41
+
42
+ # OS files
43
+ .DS_Store
44
+ Thumbs.db
45
+ desktop.ini
46
+
47
+ # uv lock (not needed for library publishing)
48
+ uv.lock
49
+
50
+ # Benchmarks output
51
+ criterion/
52
+
53
+ # Coverage
54
+ htmlcov/
55
+ .coverage
56
+ *.lcov
57
+
58
+ # Example/reference files (not part of the package)
59
+ main.py
60
+ renkodf.py