fs-sav 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,41 @@
1
+ name: CI
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ pull_request:
7
+ branches: [main]
8
+
9
+ env:
10
+ CARGO_TERM_COLOR: always
11
+
12
+ jobs:
13
+ test:
14
+ runs-on: ubuntu-latest
15
+ steps:
16
+ - uses: actions/checkout@v5
17
+ - name: Run tests
18
+ run: cargo test --verbose
19
+ - name: Run clippy
20
+ run: cargo clippy -- -D warnings
21
+ - name: Check formatting
22
+ run: cargo fmt -- --check
23
+
24
+ build-python:
25
+ runs-on: ubuntu-latest
26
+ steps:
27
+ - uses: actions/checkout@v5
28
+ - uses: actions/setup-python@v6
29
+ with:
30
+ python-version: '3.12'
31
+ - name: Build Python wheel
32
+ uses: PyO3/maturin-action@v1
33
+ with:
34
+ args: --release --out dist --find-interpreter
35
+ sccache: 'true'
36
+ manylinux: auto
37
+ - name: Install and test
38
+ run: |
39
+ pip install dist/*.whl pytest
40
+ python -c "import fs_sav; print(fs_sav.info())"
41
+ pytest tests/python -v
@@ -0,0 +1,113 @@
1
+ name: Release
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - 'v*.*.*'
7
+
8
+ permissions:
9
+ contents: read
10
+
11
+ jobs:
12
+ linux:
13
+ runs-on: ubuntu-latest
14
+ strategy:
15
+ matrix:
16
+ target: [x86_64, aarch64]
17
+ steps:
18
+ - uses: actions/checkout@v5
19
+ - uses: actions/setup-python@v6
20
+ with:
21
+ python-version: '3.12'
22
+ - name: Build wheels
23
+ uses: PyO3/maturin-action@v1
24
+ with:
25
+ target: ${{ matrix.target }}
26
+ args: --release --out dist
27
+ sccache: 'true'
28
+ manylinux: auto
29
+ - name: Upload wheels
30
+ uses: actions/upload-artifact@v5
31
+ with:
32
+ name: wheels-linux-${{ matrix.target }}
33
+ path: dist
34
+
35
+ windows:
36
+ runs-on: windows-latest
37
+ strategy:
38
+ matrix:
39
+ target: [x64]
40
+ steps:
41
+ - uses: actions/checkout@v5
42
+ - uses: actions/setup-python@v6
43
+ with:
44
+ python-version: '3.12'
45
+ architecture: ${{ matrix.target }}
46
+ - name: Build wheels
47
+ uses: PyO3/maturin-action@v1
48
+ with:
49
+ args: --release --out dist
50
+ sccache: 'true'
51
+ - name: Upload wheels
52
+ uses: actions/upload-artifact@v5
53
+ with:
54
+ name: wheels-windows-${{ matrix.target }}
55
+ path: dist
56
+
57
+ macos:
58
+ runs-on: macos-latest
59
+ strategy:
60
+ matrix:
61
+ target: [x86_64, aarch64]
62
+ steps:
63
+ - uses: actions/checkout@v5
64
+ - uses: actions/setup-python@v6
65
+ with:
66
+ python-version: '3.12'
67
+ - name: Build wheels
68
+ uses: PyO3/maturin-action@v1
69
+ with:
70
+ target: ${{ matrix.target }}
71
+ args: --release --out dist
72
+ sccache: 'true'
73
+ - name: Upload wheels
74
+ uses: actions/upload-artifact@v5
75
+ with:
76
+ name: wheels-macos-${{ matrix.target }}
77
+ path: dist
78
+
79
+ sdist:
80
+ runs-on: ubuntu-latest
81
+ steps:
82
+ - uses: actions/checkout@v5
83
+ - name: Build sdist
84
+ uses: PyO3/maturin-action@v1
85
+ with:
86
+ command: sdist
87
+ args: --out dist
88
+ - name: Upload sdist
89
+ uses: actions/upload-artifact@v5
90
+ with:
91
+ name: wheels-sdist
92
+ path: dist
93
+
94
+ release:
95
+ name: Release to PyPI
96
+ runs-on: ubuntu-latest
97
+ needs: [linux, windows, macos, sdist]
98
+ environment:
99
+ name: pypi
100
+ url: https://pypi.org/p/fs-sav
101
+ permissions:
102
+ id-token: write
103
+ steps:
104
+ - uses: actions/download-artifact@v5
105
+ with:
106
+ pattern: wheels-*
107
+ path: dist
108
+ merge-multiple: true
109
+ - name: Publish to PyPI
110
+ uses: PyO3/maturin-action@v1
111
+ with:
112
+ command: upload
113
+ args: --non-interactive --skip-existing dist/*
@@ -0,0 +1,2 @@
1
+ /target
2
+ __pycache__/
@@ -0,0 +1,52 @@
1
+ repos:
2
+ - repo: https://github.com/pre-commit/pre-commit-hooks
3
+ rev: v5.0.0
4
+ hooks:
5
+ - id: trailing-whitespace
6
+ - id: end-of-file-fixer
7
+ - id: check-yaml
8
+ - id: check-added-large-files
9
+ exclude: ^tests/fixtures/.*\.sav$
10
+ - id: check-toml
11
+
12
+ - repo: local
13
+ hooks:
14
+ # Rust hooks
15
+ - id: cargo-fmt
16
+ name: cargo fmt
17
+ entry: cargo fmt --
18
+ language: system
19
+ types: [rust]
20
+ pass_filenames: false
21
+ - id: cargo-clippy
22
+ name: cargo clippy
23
+ entry: cargo clippy -- -D warnings
24
+ language: system
25
+ types: [rust]
26
+ pass_filenames: false
27
+ - id: cargo-test
28
+ name: cargo test
29
+ entry: cargo test
30
+ language: system
31
+ types: [rust]
32
+ pass_filenames: false
33
+
34
+ # Python hooks
35
+ - id: ruff-check
36
+ name: ruff check
37
+ entry: ruff check
38
+ language: system
39
+ types: [python]
40
+ args: [--fix, --exit-non-zero-on-fix]
41
+ - id: ruff-format
42
+ name: ruff format
43
+ entry: ruff format
44
+ language: system
45
+ types: [python]
46
+ - id: mypy
47
+ name: mypy
48
+ entry: mypy
49
+ language: system
50
+ types: [python]
51
+ require_serial: true
52
+ exclude: ^tests/