webshart 0.1.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.
- webshart-0.1.0/.github/workflows/ci.yml +39 -0
- webshart-0.1.0/.github/workflows/release.yml +118 -0
- webshart-0.1.0/.gitignore +52 -0
- webshart-0.1.0/Cargo.lock +2033 -0
- webshart-0.1.0/Cargo.toml +40 -0
- webshart-0.1.0/LICENSE +8 -0
- webshart-0.1.0/PKG-INFO +187 -0
- webshart-0.1.0/README.md +161 -0
- webshart-0.1.0/poetry.lock +80 -0
- webshart-0.1.0/pyproject.toml +41 -0
- webshart-0.1.0/python/webshart/__init__.py +374 -0
- webshart-0.1.0/src/batch.rs +338 -0
- webshart-0.1.0/src/discovery.rs +1121 -0
- webshart-0.1.0/src/error.rs +39 -0
- webshart-0.1.0/src/lib.rs +25 -0
- webshart-0.1.0/src/metadata.rs +218 -0
- webshart-0.1.0/tests/test_discovery.py +199 -0
- webshart-0.1.0/tests/test_metadata.py +258 -0
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
name: ci
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [ main ]
|
|
6
|
+
pull_request:
|
|
7
|
+
branches: [ main ]
|
|
8
|
+
|
|
9
|
+
jobs:
|
|
10
|
+
test:
|
|
11
|
+
runs-on: ${{ matrix.os }}
|
|
12
|
+
strategy:
|
|
13
|
+
matrix:
|
|
14
|
+
os: [ubuntu-latest, macos-latest]
|
|
15
|
+
python-version: ['3.8', '3.9', '3.10', '3.11', '3.12']
|
|
16
|
+
|
|
17
|
+
steps:
|
|
18
|
+
- uses: actions/checkout@v4
|
|
19
|
+
|
|
20
|
+
- name: Set up Python
|
|
21
|
+
uses: actions/setup-python@v5
|
|
22
|
+
with:
|
|
23
|
+
python-version: ${{ matrix.python-version }}
|
|
24
|
+
|
|
25
|
+
- name: Install Rust
|
|
26
|
+
uses: dtolnay/rust-toolchain@stable
|
|
27
|
+
|
|
28
|
+
- name: Install dependencies
|
|
29
|
+
run: |
|
|
30
|
+
python -m pip install --upgrade pip
|
|
31
|
+
pip install maturin[patchelf] pytest
|
|
32
|
+
|
|
33
|
+
- name: Build and install package
|
|
34
|
+
run: |
|
|
35
|
+
pip install -e .
|
|
36
|
+
|
|
37
|
+
- name: Run tests
|
|
38
|
+
run: |
|
|
39
|
+
pytest tests/
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
name: Release
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
tags:
|
|
6
|
+
- 'v*'
|
|
7
|
+
|
|
8
|
+
jobs:
|
|
9
|
+
linux:
|
|
10
|
+
runs-on: ubuntu-latest
|
|
11
|
+
strategy:
|
|
12
|
+
matrix:
|
|
13
|
+
target: [x86_64]
|
|
14
|
+
steps:
|
|
15
|
+
- uses: actions/checkout@v4
|
|
16
|
+
- uses: actions/setup-python@v5
|
|
17
|
+
with:
|
|
18
|
+
python-version: '3.11'
|
|
19
|
+
|
|
20
|
+
- name: Build wheels
|
|
21
|
+
uses: PyO3/maturin-action@v1
|
|
22
|
+
with:
|
|
23
|
+
target: ${{ matrix.target }}
|
|
24
|
+
args: --release --out dist --find-interpreter --zig
|
|
25
|
+
sccache: 'true'
|
|
26
|
+
manylinux: auto
|
|
27
|
+
env:
|
|
28
|
+
# Use stable ABI for forward compatibility
|
|
29
|
+
PYO3_USE_ABI3_FORWARD_COMPATIBILITY: '1'
|
|
30
|
+
|
|
31
|
+
- name: Upload wheels
|
|
32
|
+
uses: actions/upload-artifact@v4
|
|
33
|
+
with:
|
|
34
|
+
name: wheels-linux-${{ matrix.target }}
|
|
35
|
+
path: dist
|
|
36
|
+
|
|
37
|
+
windows:
|
|
38
|
+
runs-on: windows-latest
|
|
39
|
+
strategy:
|
|
40
|
+
matrix:
|
|
41
|
+
target: [x64]
|
|
42
|
+
steps:
|
|
43
|
+
- uses: actions/checkout@v4
|
|
44
|
+
- uses: actions/setup-python@v5
|
|
45
|
+
with:
|
|
46
|
+
python-version: '3.11'
|
|
47
|
+
architecture: ${{ matrix.target }}
|
|
48
|
+
- name: Build wheels
|
|
49
|
+
uses: PyO3/maturin-action@v1
|
|
50
|
+
with:
|
|
51
|
+
target: ${{ matrix.target }}
|
|
52
|
+
args: --release --out dist --find-interpreter
|
|
53
|
+
sccache: 'true'
|
|
54
|
+
env:
|
|
55
|
+
# Use stable ABI for forward compatibility
|
|
56
|
+
PYO3_USE_ABI3_FORWARD_COMPATIBILITY: '1'
|
|
57
|
+
- name: Upload wheels
|
|
58
|
+
uses: actions/upload-artifact@v4
|
|
59
|
+
with:
|
|
60
|
+
name: wheels-windows-${{ matrix.target }}
|
|
61
|
+
path: dist
|
|
62
|
+
|
|
63
|
+
macos:
|
|
64
|
+
runs-on: macos-latest
|
|
65
|
+
strategy:
|
|
66
|
+
matrix:
|
|
67
|
+
target: [aarch64]
|
|
68
|
+
steps:
|
|
69
|
+
- uses: actions/checkout@v4
|
|
70
|
+
- uses: actions/setup-python@v5
|
|
71
|
+
with:
|
|
72
|
+
python-version: '3.11'
|
|
73
|
+
|
|
74
|
+
- name: Build wheels
|
|
75
|
+
uses: PyO3/maturin-action@v1
|
|
76
|
+
with:
|
|
77
|
+
target: ${{ matrix.target }}
|
|
78
|
+
args: --release --out dist --find-interpreter
|
|
79
|
+
sccache: 'true'
|
|
80
|
+
env:
|
|
81
|
+
# Use stable ABI for forward compatibility
|
|
82
|
+
PYO3_USE_ABI3_FORWARD_COMPATIBILITY: '1'
|
|
83
|
+
- name: Upload wheels
|
|
84
|
+
uses: actions/upload-artifact@v4
|
|
85
|
+
with:
|
|
86
|
+
name: wheels-macos-${{ matrix.target }}
|
|
87
|
+
path: dist
|
|
88
|
+
|
|
89
|
+
sdist:
|
|
90
|
+
runs-on: ubuntu-latest
|
|
91
|
+
steps:
|
|
92
|
+
- uses: actions/checkout@v4
|
|
93
|
+
- name: Build sdist
|
|
94
|
+
uses: PyO3/maturin-action@v1
|
|
95
|
+
with:
|
|
96
|
+
command: sdist
|
|
97
|
+
args: --out dist
|
|
98
|
+
- name: Upload sdist
|
|
99
|
+
uses: actions/upload-artifact@v4
|
|
100
|
+
with:
|
|
101
|
+
name: wheels-sdist
|
|
102
|
+
path: dist
|
|
103
|
+
|
|
104
|
+
release:
|
|
105
|
+
name: Release
|
|
106
|
+
runs-on: ubuntu-latest
|
|
107
|
+
needs: [linux, windows, macos, sdist]
|
|
108
|
+
steps:
|
|
109
|
+
- uses: actions/download-artifact@v4
|
|
110
|
+
with:
|
|
111
|
+
pattern: wheels-*
|
|
112
|
+
merge-multiple: true
|
|
113
|
+
path: dist
|
|
114
|
+
- name: Publish to PyPI
|
|
115
|
+
uses: pypa/gh-action-pypi-publish@v1.12.4
|
|
116
|
+
with:
|
|
117
|
+
user: __token__
|
|
118
|
+
password: ${{ secrets.PYPI_API_TOKEN }}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# Rust
|
|
2
|
+
target/
|
|
3
|
+
Cargo.lock
|
|
4
|
+
**/*.rs.bk
|
|
5
|
+
|
|
6
|
+
# Python
|
|
7
|
+
__pycache__/
|
|
8
|
+
*.py[cod]
|
|
9
|
+
*$py.class
|
|
10
|
+
*.so
|
|
11
|
+
.Python
|
|
12
|
+
build/
|
|
13
|
+
develop-eggs/
|
|
14
|
+
dist/
|
|
15
|
+
downloads/
|
|
16
|
+
eggs/
|
|
17
|
+
.eggs/
|
|
18
|
+
lib/
|
|
19
|
+
lib64/
|
|
20
|
+
parts/
|
|
21
|
+
sdist/
|
|
22
|
+
var/
|
|
23
|
+
wheels/
|
|
24
|
+
*.egg-info/
|
|
25
|
+
.installed.cfg
|
|
26
|
+
*.egg
|
|
27
|
+
MANIFEST
|
|
28
|
+
.pytest_cache/
|
|
29
|
+
.coverage
|
|
30
|
+
htmlcov/
|
|
31
|
+
.tox/
|
|
32
|
+
.nox/
|
|
33
|
+
.mypy_cache/
|
|
34
|
+
.dmypy.json
|
|
35
|
+
dmypy.json
|
|
36
|
+
.pyre/
|
|
37
|
+
|
|
38
|
+
# Virtual environments
|
|
39
|
+
venv/
|
|
40
|
+
ENV/
|
|
41
|
+
env/
|
|
42
|
+
|
|
43
|
+
# IDE
|
|
44
|
+
.idea/
|
|
45
|
+
.vscode/
|
|
46
|
+
*.swp
|
|
47
|
+
*.swo
|
|
48
|
+
*~
|
|
49
|
+
|
|
50
|
+
# OS
|
|
51
|
+
.DS_Store
|
|
52
|
+
Thumbs.db.venv
|