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.
- fs_sav-0.1.1/.github/workflows/ci.yml +41 -0
- fs_sav-0.1.1/.github/workflows/release.yml +113 -0
- fs_sav-0.1.1/.gitignore +2 -0
- fs_sav-0.1.1/.pre-commit-config.yaml +52 -0
- fs_sav-0.1.1/Cargo.lock +1253 -0
- fs_sav-0.1.1/Cargo.toml +55 -0
- fs_sav-0.1.1/PKG-INFO +217 -0
- fs_sav-0.1.1/README.md +188 -0
- fs_sav-0.1.1/pyproject.toml +75 -0
- fs_sav-0.1.1/python/fs_sav/__init__.py +23 -0
- fs_sav-0.1.1/python/fs_sav/py.typed +0 -0
- fs_sav-0.1.1/src/error.rs +34 -0
- fs_sav-0.1.1/src/lib.rs +209 -0
- fs_sav-0.1.1/src/main.rs +291 -0
- fs_sav-0.1.1/src/models.rs +301 -0
- fs_sav-0.1.1/src/parser.rs +343 -0
- fs_sav-0.1.1/src/watcher.rs +189 -0
- fs_sav-0.1.1/tests/fixtures/test.sav +0 -0
- fs_sav-0.1.1/tests/integration_test.rs +119 -0
- fs_sav-0.1.1/tests/python/test_fs_sav.py +192 -0
|
@@ -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/*
|
fs_sav-0.1.1/.gitignore
ADDED
|
@@ -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/
|