pyrofile 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.
- pyrofile-0.1.0/.github/workflows/ci.yml +77 -0
- pyrofile-0.1.0/.github/workflows/release.yml +95 -0
- pyrofile-0.1.0/CHANGELOG.md +14 -0
- pyrofile-0.1.0/Cargo.lock +1984 -0
- pyrofile-0.1.0/Cargo.toml +39 -0
- pyrofile-0.1.0/LICENSE +191 -0
- pyrofile-0.1.0/PKG-INFO +16 -0
- pyrofile-0.1.0/README.md +60 -0
- pyrofile-0.1.0/pyproject.toml +26 -0
- pyrofile-0.1.0/python/pyrofile/__init__.py +9 -0
- pyrofile-0.1.0/python/pyrofile/_pyrofile.pyi +36 -0
- pyrofile-0.1.0/python/pyrofile/py.typed +0 -0
- pyrofile-0.1.0/scripts/setup_azurite.py +75 -0
- pyrofile-0.1.0/src/backend/azure.rs +280 -0
- pyrofile-0.1.0/src/backend/local.rs +262 -0
- pyrofile-0.1.0/src/backend/mod.rs +14 -0
- pyrofile-0.1.0/src/backend/smart_writer.rs +380 -0
- pyrofile-0.1.0/src/backend/traits.rs +87 -0
- pyrofile-0.1.0/src/core/buffer.rs +130 -0
- pyrofile-0.1.0/src/core/config.rs +39 -0
- pyrofile-0.1.0/src/core/file.rs +448 -0
- pyrofile-0.1.0/src/core/mod.rs +8 -0
- pyrofile-0.1.0/src/error.rs +52 -0
- pyrofile-0.1.0/src/lib.rs +13 -0
- pyrofile-0.1.0/src/python/file.rs +251 -0
- pyrofile-0.1.0/src/python/mod.rs +3 -0
- pyrofile-0.1.0/tests/python/test_azure_integration.py +151 -0
- pyrofile-0.1.0/tests/python/test_local.py +255 -0
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
name: CI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [main]
|
|
6
|
+
pull_request:
|
|
7
|
+
branches: [main]
|
|
8
|
+
|
|
9
|
+
permissions:
|
|
10
|
+
contents: read
|
|
11
|
+
|
|
12
|
+
jobs:
|
|
13
|
+
test-rust:
|
|
14
|
+
runs-on: ubuntu-latest
|
|
15
|
+
steps:
|
|
16
|
+
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
|
|
17
|
+
with:
|
|
18
|
+
persist-credentials: false
|
|
19
|
+
- uses: dtolnay/rust-toolchain@631a55b12751854ce901bb631d5902ceb48146f7 # stable
|
|
20
|
+
- run: cargo test --lib
|
|
21
|
+
|
|
22
|
+
test-python:
|
|
23
|
+
runs-on: ubuntu-latest
|
|
24
|
+
steps:
|
|
25
|
+
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
|
|
26
|
+
with:
|
|
27
|
+
persist-credentials: false
|
|
28
|
+
- uses: dtolnay/rust-toolchain@631a55b12751854ce901bb631d5902ceb48146f7 # stable
|
|
29
|
+
- uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5
|
|
30
|
+
with:
|
|
31
|
+
python-version: "3.12"
|
|
32
|
+
- run: python -m venv .venv
|
|
33
|
+
- run: |
|
|
34
|
+
source .venv/bin/activate
|
|
35
|
+
pip install maturin pytest
|
|
36
|
+
maturin develop --release
|
|
37
|
+
pytest tests/python/test_local.py -v
|
|
38
|
+
|
|
39
|
+
test-azure:
|
|
40
|
+
runs-on: ubuntu-latest
|
|
41
|
+
steps:
|
|
42
|
+
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
|
|
43
|
+
with:
|
|
44
|
+
persist-credentials: false
|
|
45
|
+
- uses: dtolnay/rust-toolchain@631a55b12751854ce901bb631d5902ceb48146f7 # stable
|
|
46
|
+
- uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5
|
|
47
|
+
with:
|
|
48
|
+
python-version: "3.12"
|
|
49
|
+
- uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
|
|
50
|
+
with:
|
|
51
|
+
node-version: "20"
|
|
52
|
+
|
|
53
|
+
- name: Start Azurite
|
|
54
|
+
run: |
|
|
55
|
+
npx azurite --silent --skipApiVersionCheck --blobHost 127.0.0.1 --blobPort 10000 &
|
|
56
|
+
sleep 5
|
|
57
|
+
|
|
58
|
+
- run: python -m venv .venv
|
|
59
|
+
|
|
60
|
+
- name: Create test container and generate SAS
|
|
61
|
+
run: |
|
|
62
|
+
source .venv/bin/activate
|
|
63
|
+
pip install azure-storage-blob
|
|
64
|
+
python scripts/setup_azurite.py
|
|
65
|
+
|
|
66
|
+
- name: Build pyrofile with Azure support
|
|
67
|
+
run: |
|
|
68
|
+
source .venv/bin/activate
|
|
69
|
+
pip install maturin pytest
|
|
70
|
+
maturin develop --release --features azure
|
|
71
|
+
|
|
72
|
+
- name: Run Azure integration tests
|
|
73
|
+
run: |
|
|
74
|
+
source .venv/bin/activate
|
|
75
|
+
pytest tests/python/test_azure_integration.py -v
|
|
76
|
+
env:
|
|
77
|
+
AZURITE_BLOB_URL: "http://127.0.0.1:10000/devstoreaccount1/testcontainer"
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
name: Release
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
tags:
|
|
6
|
+
- "v*"
|
|
7
|
+
workflow_dispatch:
|
|
8
|
+
|
|
9
|
+
permissions:
|
|
10
|
+
contents: read
|
|
11
|
+
|
|
12
|
+
jobs:
|
|
13
|
+
build-linux:
|
|
14
|
+
runs-on: ubuntu-latest
|
|
15
|
+
strategy:
|
|
16
|
+
matrix:
|
|
17
|
+
target: [x86_64, aarch64]
|
|
18
|
+
steps:
|
|
19
|
+
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
|
|
20
|
+
with:
|
|
21
|
+
persist-credentials: false
|
|
22
|
+
- uses: PyO3/maturin-action@04ac600d27cdf7a9a280dadf7147097c42b757ad # v1
|
|
23
|
+
with:
|
|
24
|
+
target: ${{ matrix.target }}
|
|
25
|
+
command: build
|
|
26
|
+
args: --release --features azure --interpreter 3.10 3.11 3.12 3.13 -o dist
|
|
27
|
+
manylinux: auto
|
|
28
|
+
before-script-linux: |
|
|
29
|
+
case "${{ matrix.target }}" in
|
|
30
|
+
"aarch64")
|
|
31
|
+
apt-get update
|
|
32
|
+
apt-get install -y perl make
|
|
33
|
+
;;
|
|
34
|
+
"x86_64")
|
|
35
|
+
yum install -y perl-core
|
|
36
|
+
;;
|
|
37
|
+
esac
|
|
38
|
+
- uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
|
|
39
|
+
with:
|
|
40
|
+
name: wheels-linux-${{ matrix.target }}
|
|
41
|
+
path: dist/
|
|
42
|
+
|
|
43
|
+
build-macos:
|
|
44
|
+
runs-on: macos-latest
|
|
45
|
+
strategy:
|
|
46
|
+
matrix:
|
|
47
|
+
target: [x86_64, aarch64]
|
|
48
|
+
steps:
|
|
49
|
+
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
|
|
50
|
+
with:
|
|
51
|
+
persist-credentials: false
|
|
52
|
+
- uses: PyO3/maturin-action@04ac600d27cdf7a9a280dadf7147097c42b757ad # v1
|
|
53
|
+
with:
|
|
54
|
+
target: ${{ matrix.target }}
|
|
55
|
+
command: build
|
|
56
|
+
args: --release --features azure --interpreter 3.10 3.11 3.12 3.13 -o dist
|
|
57
|
+
- uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
|
|
58
|
+
with:
|
|
59
|
+
name: wheels-macos-${{ matrix.target }}
|
|
60
|
+
path: dist/
|
|
61
|
+
|
|
62
|
+
sdist:
|
|
63
|
+
runs-on: ubuntu-latest
|
|
64
|
+
steps:
|
|
65
|
+
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
|
|
66
|
+
with:
|
|
67
|
+
persist-credentials: false
|
|
68
|
+
- uses: PyO3/maturin-action@04ac600d27cdf7a9a280dadf7147097c42b757ad # v1
|
|
69
|
+
with:
|
|
70
|
+
command: sdist
|
|
71
|
+
args: -o dist
|
|
72
|
+
- uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
|
|
73
|
+
with:
|
|
74
|
+
name: sdist
|
|
75
|
+
path: dist/
|
|
76
|
+
|
|
77
|
+
publish:
|
|
78
|
+
needs: [build-linux, build-macos, sdist]
|
|
79
|
+
runs-on: ubuntu-latest
|
|
80
|
+
environment: pypi
|
|
81
|
+
permissions:
|
|
82
|
+
id-token: write
|
|
83
|
+
steps:
|
|
84
|
+
- uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4
|
|
85
|
+
with:
|
|
86
|
+
pattern: wheels-*
|
|
87
|
+
merge-multiple: true
|
|
88
|
+
path: dist/
|
|
89
|
+
- uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4
|
|
90
|
+
with:
|
|
91
|
+
name: sdist
|
|
92
|
+
path: dist/
|
|
93
|
+
- uses: pypa/gh-action-pypi-publish@ed0c53931b1dc9bd32cbe73a98c7f6766f8a527e # release/v1
|
|
94
|
+
with:
|
|
95
|
+
packages-dir: dist/
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## [Unreleased]
|
|
4
|
+
|
|
5
|
+
- Nothing yet.
|
|
6
|
+
|
|
7
|
+
## [0.1.0] - 2026-03-26
|
|
8
|
+
|
|
9
|
+
### Feature
|
|
10
|
+
|
|
11
|
+
- Added initial Rust Backend for File-like interfaces
|
|
12
|
+
- Added initial interfaces for "pluggable" backends
|
|
13
|
+
- Added initial Python bindings for pyrofile package
|
|
14
|
+
- Added initial backends for Local and Azure access
|