mft 0.7.0__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,56 @@
1
+ name: CI
2
+
3
+ on:
4
+ push:
5
+ pull_request:
6
+
7
+ jobs:
8
+ cargo:
9
+ runs-on: ubuntu-latest
10
+ steps:
11
+ - name: Checkout
12
+ uses: actions/checkout@v4
13
+
14
+ - name: Install Rust
15
+ uses: dtolnay/rust-toolchain@stable
16
+
17
+ - name: Rust cache
18
+ uses: Swatinem/rust-cache@v2
19
+
20
+ - name: cargo check
21
+ run: cargo check
22
+
23
+ - name: cargo check (abi3)
24
+ run: cargo check --features abi3
25
+
26
+ python:
27
+ runs-on: ubuntu-latest
28
+ steps:
29
+ - name: Checkout
30
+ uses: actions/checkout@v4
31
+
32
+ - name: Install Python
33
+ uses: actions/setup-python@v5
34
+ with:
35
+ python-version: "3.12"
36
+
37
+ - name: Install uv
38
+ uses: astral-sh/setup-uv@v7
39
+
40
+ - name: Install Rust
41
+ uses: dtolnay/rust-toolchain@stable
42
+
43
+ - name: Rust cache
44
+ uses: Swatinem/rust-cache@v2
45
+
46
+ - name: Create venv
47
+ run: uv venv .venv
48
+
49
+ - name: Install build deps
50
+ run: uv pip install --python .venv/bin/python -U "maturin>=1.0,<2.0" pytest
51
+
52
+ - name: Build + install (maturin)
53
+ run: .venv/bin/maturin develop --release --features abi3
54
+
55
+ - name: pytest
56
+ run: .venv/bin/python -m pytest -q
@@ -0,0 +1,103 @@
1
+ name: Release
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - "v*"
7
+ workflow_dispatch:
8
+
9
+ jobs:
10
+ build-wheels:
11
+ name: Build wheels (${{ matrix.platform }})
12
+ runs-on: ${{ matrix.os }}
13
+ strategy:
14
+ fail-fast: false
15
+ matrix:
16
+ include:
17
+ - platform: linux-x86_64
18
+ os: ubuntu-latest
19
+ args: --release --out dist --features abi3
20
+ manylinux: auto
21
+ target: ""
22
+ - platform: linux-aarch64
23
+ os: ubuntu-latest
24
+ # Cross-compile using zig.
25
+ args: --release --out dist --features abi3 --zig
26
+ manylinux: auto
27
+ target: aarch64-unknown-linux-gnu
28
+ - platform: windows
29
+ os: windows-latest
30
+ args: --release --out dist --features abi3
31
+ manylinux: ""
32
+ target: ""
33
+ - platform: macos
34
+ os: macos-latest
35
+ # maturin v1 uses a synthetic target triple for universal2
36
+ args: --release --out dist --features abi3
37
+ manylinux: ""
38
+ target: universal2-apple-darwin
39
+
40
+ steps:
41
+ - name: Checkout
42
+ uses: actions/checkout@v4
43
+
44
+ - name: Setup QEMU (for linux-aarch64)
45
+ if: matrix.platform == 'linux-aarch64'
46
+ uses: docker/setup-qemu-action@v3
47
+ with:
48
+ platforms: arm64
49
+
50
+ - name: Build wheels
51
+ uses: PyO3/maturin-action@v1
52
+ with:
53
+ command: build
54
+ args: ${{ matrix.args }}
55
+ sccache: true
56
+ manylinux: ${{ matrix.manylinux }}
57
+ target: ${{ matrix.target }}
58
+
59
+ - name: Upload wheels
60
+ uses: actions/upload-artifact@v4
61
+ with:
62
+ name: wheels-${{ matrix.platform }}
63
+ path: dist/*
64
+ if-no-files-found: error
65
+
66
+ build-sdist:
67
+ name: Build sdist
68
+ runs-on: ubuntu-latest
69
+ steps:
70
+ - name: Checkout
71
+ uses: actions/checkout@v4
72
+
73
+ - name: Build sdist
74
+ uses: PyO3/maturin-action@v1
75
+ with:
76
+ command: sdist
77
+ args: --out dist
78
+
79
+ - name: Upload sdist
80
+ uses: actions/upload-artifact@v4
81
+ with:
82
+ name: sdist
83
+ path: dist/*
84
+ if-no-files-found: error
85
+
86
+ publish:
87
+ name: Publish to PyPI
88
+ runs-on: ubuntu-latest
89
+ needs:
90
+ - build-wheels
91
+ - build-sdist
92
+ steps:
93
+ - name: Download dists
94
+ uses: actions/download-artifact@v4
95
+ with:
96
+ path: dist
97
+ merge-multiple: true
98
+
99
+ - name: Publish
100
+ uses: pypa/gh-action-pypi-publish@release/v1
101
+ with:
102
+ password: ${{ secrets.PYPI_API_TOKEN }}
103
+ skip-existing: true
mft-0.7.0/.gitignore ADDED
@@ -0,0 +1,14 @@
1
+ .mypy_cache
2
+ .venv
3
+ /target
4
+ **/*.rs.bk
5
+
6
+ *.pyc
7
+ *.egg-info/
8
+ *.so
9
+ .idea
10
+ *.pyd
11
+ .pytest_cache
12
+ .history
13
+ dist/
14
+ out/
@@ -0,0 +1,5 @@
1
+ {
2
+ "rust-analyzer.cargo.features": [
3
+ "abi3"
4
+ ]
5
+ }
mft-0.7.0/CHANGELOG.md ADDED
@@ -0,0 +1,17 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
+ and this project adheres to
7
+ [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
8
+
9
+ ## [0.7.0]
10
+
11
+ - Align package version with `mft` core version (`0.7.0`).
12
+ - Migrate to newer PyO3 APIs (Bound / IntoPyObject) and restore compilation on modern toolchains.
13
+ - Modernize packaging (maturin `>=1.0`) and add GitHub Actions CI/release workflows (including Linux aarch64 wheels via zig cross-compilation).
14
+
15
+ ## [0.6.1]
16
+
17
+ - Massive dependency update