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.
- renko_rs-0.2.1/.github/workflows/ci.yml +45 -0
- renko_rs-0.2.1/.github/workflows/release.yml +252 -0
- renko_rs-0.2.1/.gitignore +60 -0
- renko_rs-0.2.1/Cargo.lock +4015 -0
- renko_rs-0.2.1/Cargo.toml +28 -0
- renko_rs-0.2.1/LICENSE +21 -0
- renko_rs-0.2.1/PKG-INFO +549 -0
- renko_rs-0.2.1/README.md +522 -0
- renko_rs-0.2.1/benches/bench_renko.rs +69 -0
- renko_rs-0.2.1/pyproject.toml +55 -0
- renko_rs-0.2.1/python/renko_rs/__init__.py +105 -0
- renko_rs-0.2.1/python/renko_rs/__init__.pyi +8 -0
- renko_rs-0.2.1/src/error.rs +25 -0
- renko_rs-0.2.1/src/lib.rs +11 -0
- renko_rs-0.2.1/src/python.rs +26 -0
- renko_rs-0.2.1/src/renko.rs +358 -0
- renko_rs-0.2.1/tests/test_renko.py +246 -0
|
@@ -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
|