xlsxturbo 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.
@@ -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@v4
17
+
18
+ - name: Set up Rust
19
+ uses: dtolnay/rust-toolchain@stable
20
+
21
+ - name: Run Rust tests
22
+ run: cargo test --release
23
+
24
+ - name: Build
25
+ run: cargo build --release
26
+
27
+ lint:
28
+ runs-on: ubuntu-latest
29
+ steps:
30
+ - uses: actions/checkout@v4
31
+
32
+ - name: Set up Rust
33
+ uses: dtolnay/rust-toolchain@stable
34
+ with:
35
+ components: rustfmt, clippy
36
+
37
+ - name: Check formatting
38
+ run: cargo fmt --check
39
+
40
+ - name: Run clippy
41
+ run: cargo clippy -- -D warnings
@@ -0,0 +1,135 @@
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 wheels for Linux
14
+ linux:
15
+ runs-on: ubuntu-latest
16
+ strategy:
17
+ matrix:
18
+ target: [x86_64, aarch64]
19
+ steps:
20
+ - uses: actions/checkout@v4
21
+
22
+ - uses: actions/setup-python@v5
23
+ with:
24
+ python-version: '3.11'
25
+
26
+ - name: Build wheels
27
+ uses: PyO3/maturin-action@v1
28
+ with:
29
+ target: ${{ matrix.target }}
30
+ args: --release --out dist
31
+ sccache: 'true'
32
+ manylinux: auto
33
+
34
+ - name: Upload wheels
35
+ uses: actions/upload-artifact@v4
36
+ with:
37
+ name: wheels-linux-${{ matrix.target }}
38
+ path: dist
39
+
40
+ # Build wheels for Windows
41
+ windows:
42
+ runs-on: windows-latest
43
+ strategy:
44
+ matrix:
45
+ target: [x64]
46
+ steps:
47
+ - uses: actions/checkout@v4
48
+
49
+ - uses: actions/setup-python@v5
50
+ with:
51
+ python-version: '3.11'
52
+ architecture: ${{ matrix.target }}
53
+
54
+ - name: Build wheels
55
+ uses: PyO3/maturin-action@v1
56
+ with:
57
+ args: --release --out dist
58
+ sccache: 'true'
59
+
60
+ - name: Upload wheels
61
+ uses: actions/upload-artifact@v4
62
+ with:
63
+ name: wheels-windows-${{ matrix.target }}
64
+ path: dist
65
+
66
+ # Build wheels for macOS
67
+ macos:
68
+ runs-on: macos-latest
69
+ strategy:
70
+ matrix:
71
+ target: [x86_64, aarch64]
72
+ steps:
73
+ - uses: actions/checkout@v4
74
+
75
+ - uses: actions/setup-python@v5
76
+ with:
77
+ python-version: '3.11'
78
+
79
+ - name: Build wheels
80
+ uses: PyO3/maturin-action@v1
81
+ with:
82
+ target: ${{ matrix.target }}
83
+ args: --release --out dist
84
+ sccache: 'true'
85
+
86
+ - name: Upload wheels
87
+ uses: actions/upload-artifact@v4
88
+ with:
89
+ name: wheels-macos-${{ matrix.target }}
90
+ path: dist
91
+
92
+ # Build source distribution
93
+ sdist:
94
+ runs-on: ubuntu-latest
95
+ steps:
96
+ - uses: actions/checkout@v4
97
+
98
+ - name: Build sdist
99
+ uses: PyO3/maturin-action@v1
100
+ with:
101
+ command: sdist
102
+ args: --out dist
103
+
104
+ - name: Upload sdist
105
+ uses: actions/upload-artifact@v4
106
+ with:
107
+ name: wheels-sdist
108
+ path: dist
109
+
110
+ # Publish to PyPI
111
+ release:
112
+ name: Publish to PyPI
113
+ runs-on: ubuntu-latest
114
+ needs: [linux, windows, macos, sdist]
115
+ if: startsWith(github.ref, 'refs/tags/')
116
+ environment:
117
+ name: pypi
118
+ url: https://pypi.org/p/fast_xlsx
119
+ permissions:
120
+ id-token: write # Required for trusted publishing
121
+ steps:
122
+ - name: Download all wheels
123
+ uses: actions/download-artifact@v4
124
+ with:
125
+ pattern: wheels-*
126
+ path: dist
127
+ merge-multiple: true
128
+
129
+ - name: List wheels
130
+ run: ls -la dist/
131
+
132
+ - name: Publish to PyPI
133
+ uses: pypa/gh-action-pypi-publish@release/v1
134
+ with:
135
+ packages-dir: dist/
@@ -0,0 +1,31 @@
1
+ # Rust
2
+ /target
3
+ Cargo.lock
4
+
5
+ # Python
6
+ __pycache__/
7
+ *.py[cod]
8
+ *$py.class
9
+ *.so
10
+ *.pyd
11
+ .Python
12
+ dist/
13
+ build/
14
+ *.egg-info/
15
+ .eggs/
16
+ *.egg
17
+
18
+ # IDE
19
+ .idea/
20
+ .vscode/
21
+ *.swp
22
+ *.swo
23
+
24
+ # OS
25
+ .DS_Store
26
+ Thumbs.db
27
+
28
+ # Test files
29
+ *.xlsx
30
+ !tests/*.xlsx
31
+ .claude/
@@ -0,0 +1,25 @@
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.1.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ## [0.1.0] - 2024-12-04
9
+
10
+ ### Added
11
+ - Initial release
12
+ - Python bindings via PyO3
13
+ - `csv_to_xlsx()` function for converting CSV files to Excel format
14
+ - Automatic type detection from CSV strings:
15
+ - Integers and floats → Excel numbers
16
+ - Booleans (`true`/`false`, case-insensitive) → Excel booleans
17
+ - Dates (YYYY-MM-DD, DD/MM/YYYY, etc.) → Excel dates with formatting
18
+ - Datetimes (ISO 8601) → Excel datetimes with formatting
19
+ - NaN/Inf → Empty cells
20
+ - Empty strings → Empty cells
21
+ - CLI tool for command-line usage
22
+ - Support for custom sheet names
23
+ - Verbose mode for progress reporting
24
+
25
+ [0.1.0]: https://github.com/tstone-1/xlsxturbo/releases/tag/v0.1.0