xlsxturbo 0.9.0__tar.gz → 0.10.2__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.
- {xlsxturbo-0.9.0 → xlsxturbo-0.10.2}/.github/workflows/ci.yml +29 -0
- {xlsxturbo-0.9.0 → xlsxturbo-0.10.2}/.github/workflows/release.yml +1 -1
- {xlsxturbo-0.9.0 → xlsxturbo-0.10.2}/CHANGELOG.md +69 -1
- {xlsxturbo-0.9.0 → xlsxturbo-0.10.2}/Cargo.lock +48 -90
- {xlsxturbo-0.9.0 → xlsxturbo-0.10.2}/Cargo.toml +3 -3
- {xlsxturbo-0.9.0 → xlsxturbo-0.10.2}/PKG-INFO +226 -16
- {xlsxturbo-0.9.0 → xlsxturbo-0.10.2}/README.md +225 -15
- {xlsxturbo-0.9.0 → xlsxturbo-0.10.2}/ROADMAP.md +15 -19
- xlsxturbo-0.10.2/benchmarks/benchmark.py +652 -0
- {xlsxturbo-0.9.0 → xlsxturbo-0.10.2}/pyproject.toml +1 -1
- {xlsxturbo-0.9.0 → xlsxturbo-0.10.2}/python/xlsxturbo/__init__.pyi +71 -0
- xlsxturbo-0.10.2/python/xlsxturbo/py.typed +0 -0
- xlsxturbo-0.10.2/src/convert.rs +763 -0
- xlsxturbo-0.10.2/src/features.rs +1164 -0
- xlsxturbo-0.10.2/src/lib.rs +938 -0
- xlsxturbo-0.10.2/src/parse.rs +449 -0
- xlsxturbo-0.10.2/src/types.rs +143 -0
- xlsxturbo-0.10.2/tests/test_features.py +1827 -0
- xlsxturbo-0.9.0/benchmark.py +0 -237
- xlsxturbo-0.9.0/src/lib.rs +0 -2898
- xlsxturbo-0.9.0/tests/test_features.py +0 -674
- {xlsxturbo-0.9.0 → xlsxturbo-0.10.2}/.github/dependabot.yml +0 -0
- {xlsxturbo-0.9.0 → xlsxturbo-0.10.2}/.gitignore +0 -0
- {xlsxturbo-0.9.0 → xlsxturbo-0.10.2}/BUILD.md +0 -0
- {xlsxturbo-0.9.0 → xlsxturbo-0.10.2}/LICENSE +0 -0
- {xlsxturbo-0.9.0 → xlsxturbo-0.10.2/benchmarks}/benchmark_parallel.py +0 -0
- {xlsxturbo-0.9.0 → xlsxturbo-0.10.2}/python/xlsxturbo/__init__.py +0 -0
- {xlsxturbo-0.9.0 → xlsxturbo-0.10.2}/src/main.rs +0 -0
|
@@ -24,6 +24,35 @@ jobs:
|
|
|
24
24
|
- name: Build
|
|
25
25
|
run: cargo build --release
|
|
26
26
|
|
|
27
|
+
python-test:
|
|
28
|
+
runs-on: ubuntu-latest
|
|
29
|
+
steps:
|
|
30
|
+
- uses: actions/checkout@v6
|
|
31
|
+
|
|
32
|
+
- name: Set up Rust
|
|
33
|
+
uses: dtolnay/rust-toolchain@stable
|
|
34
|
+
|
|
35
|
+
- name: Set up Python
|
|
36
|
+
uses: actions/setup-python@v5
|
|
37
|
+
with:
|
|
38
|
+
python-version: '3.12'
|
|
39
|
+
|
|
40
|
+
- name: Install dependencies
|
|
41
|
+
run: |
|
|
42
|
+
python -m venv .venv
|
|
43
|
+
source .venv/bin/activate
|
|
44
|
+
pip install maturin pandas polars openpyxl
|
|
45
|
+
|
|
46
|
+
- name: Build and install xlsxturbo
|
|
47
|
+
run: |
|
|
48
|
+
source .venv/bin/activate
|
|
49
|
+
maturin develop --release
|
|
50
|
+
|
|
51
|
+
- name: Run Python integration tests
|
|
52
|
+
run: |
|
|
53
|
+
source .venv/bin/activate
|
|
54
|
+
python tests/test_features.py
|
|
55
|
+
|
|
27
56
|
lint:
|
|
28
57
|
runs-on: ubuntu-latest
|
|
29
58
|
steps:
|
|
@@ -5,6 +5,71 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [0.10.2] - 2026-02-06
|
|
9
|
+
|
|
10
|
+
### Fixed
|
|
11
|
+
- **Wildcard pattern panic** - `matches_pattern("*")` no longer panics on lone `*` pattern
|
|
12
|
+
- **Silent datetime defaults** - Datetime/date attribute extraction now propagates errors instead of silently defaulting to 1900
|
|
13
|
+
- **Index overflow safety** - Row count and column count use checked casts (`u32::try_from`, `u16::try_from`) instead of `as` casts
|
|
14
|
+
- **PyPI URL in release workflow** - Fixed leftover `fast_xlsx` reference to `xlsxturbo`
|
|
15
|
+
- **Validation type aliases** - Added `whole`, `integer`, `number`, `textlength`, `length` aliases to type stubs
|
|
16
|
+
- **CHANGELOG accuracy** - `constant_memory` entry now lists all 12 disabled features
|
|
17
|
+
|
|
18
|
+
### Changed
|
|
19
|
+
- **Module split** - Split monolithic `lib.rs` into `convert.rs`, `parse.rs`, `features.rs`, `types.rs`
|
|
20
|
+
- **Deduplicated option extraction** - New `ExtractedOptions` struct reduces `convert_dataframe_to_xlsx` from 22 to 12 parameters
|
|
21
|
+
- **Merged format parsers** - `parse_header_format` and `parse_column_format` share a single `parse_format_dict` implementation
|
|
22
|
+
- **Dependencies** - Updated `pyo3` 0.27 -> 0.28, `rust_xlsxwriter` 0.92 -> 0.93
|
|
23
|
+
- **CI** - Added Python integration test job (83 tests with pandas, polars, openpyxl)
|
|
24
|
+
- **PEP 561** - Added `py.typed` marker file for type checker support
|
|
25
|
+
|
|
26
|
+
### Tests
|
|
27
|
+
- Added `TestConditionalFormatting` (5 tests), `TestConstantMemoryMode` (3 tests), `TestRowHeights` (3 tests)
|
|
28
|
+
- Upgraded ~10 shallow tests with openpyxl content verification (column widths, table names, header formats, validations, comments)
|
|
29
|
+
- Total: 83 Python integration tests, 12 Rust unit tests
|
|
30
|
+
|
|
31
|
+
## [0.10.1] - 2026-01-16
|
|
32
|
+
|
|
33
|
+
### Changed
|
|
34
|
+
- **Benchmark suite reorganization** - Moved benchmarks to `benchmarks/` directory
|
|
35
|
+
- New `benchmarks/benchmark.py` - comprehensive comparison vs polars, pandas+openpyxl, pandas+xlsxwriter
|
|
36
|
+
- Moved `benchmark_parallel.py` to `benchmarks/`
|
|
37
|
+
- Removed obsolete `benchmark.py` (referenced old Rust binary)
|
|
38
|
+
- **README Performance section** - Updated with reproducible benchmark methodology
|
|
39
|
+
- Changed performance claim from "~25x faster" to "~6x faster" (accurate for typical workloads)
|
|
40
|
+
- Added disclaimer that results vary by system
|
|
41
|
+
- Linked to Benchmarking section for running your own tests
|
|
42
|
+
|
|
43
|
+
## [0.10.0] - 2026-01-16
|
|
44
|
+
|
|
45
|
+
### Added
|
|
46
|
+
- **Comments/Notes** - Add cell annotations with optional author
|
|
47
|
+
- Simple text: `comments={'A1': 'Note text'}`
|
|
48
|
+
- With author: `comments={'A1': {'text': 'Note', 'author': 'John'}}`
|
|
49
|
+
- Available in both `df_to_xlsx()` and `dfs_to_xlsx()` with per-sheet overrides
|
|
50
|
+
- **Data Validation** - Add dropdowns and constraints to columns
|
|
51
|
+
- List (dropdown): `validations={'Status': {'type': 'list', 'values': ['Open', 'Closed']}}`
|
|
52
|
+
- Whole number: `validations={'Score': {'type': 'whole_number', 'min': 0, 'max': 100}}`
|
|
53
|
+
- Decimal: `validations={'Price': {'type': 'decimal', 'min': 0.0, 'max': 999.99}}`
|
|
54
|
+
- Text length: `validations={'Code': {'type': 'text_length', 'min': 3, 'max': 10}}`
|
|
55
|
+
- Supports input/error messages: `input_title`, `input_message`, `error_title`, `error_message`
|
|
56
|
+
- Supports column patterns (like `column_formats`)
|
|
57
|
+
- Available in both `df_to_xlsx()` and `dfs_to_xlsx()` with per-sheet overrides
|
|
58
|
+
- **Rich Text** - Multiple formats within a single cell
|
|
59
|
+
- Format segments: `rich_text={'A1': [('Bold', {'bold': True}), ' normal text']}`
|
|
60
|
+
- Supports: `bold`, `italic`, `font_color`, `bg_color`, `font_size`, `underline`
|
|
61
|
+
- Mix formatted and plain text segments
|
|
62
|
+
- Available in both `df_to_xlsx()` and `dfs_to_xlsx()` with per-sheet overrides
|
|
63
|
+
- **Images** - Embed PNG, JPEG, GIF, BMP images in cells
|
|
64
|
+
- Simple path: `images={'B5': 'logo.png'}`
|
|
65
|
+
- With options: `images={'B5': {'path': 'logo.png', 'scale_width': 0.5, 'scale_height': 0.5}}`
|
|
66
|
+
- Options: `path`, `scale_width`, `scale_height`, `alt_text`
|
|
67
|
+
- Available in both `df_to_xlsx()` and `dfs_to_xlsx()` with per-sheet overrides
|
|
68
|
+
|
|
69
|
+
### Notes
|
|
70
|
+
- All new features are disabled in `constant_memory` mode (they require random access)
|
|
71
|
+
- Data validation list values are limited to 255 total characters (Excel limitation)
|
|
72
|
+
|
|
8
73
|
## [0.9.0] - 2026-01-15
|
|
9
74
|
|
|
10
75
|
### Added
|
|
@@ -110,7 +175,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
110
175
|
- `constant_memory` parameter - minimize RAM usage for very large files
|
|
111
176
|
- Uses rust_xlsxwriter's streaming mode to flush rows to disk
|
|
112
177
|
- Ideal for files with millions of rows
|
|
113
|
-
- Note: Disables `table_style`, `freeze_panes`, `row_heights`, and `
|
|
178
|
+
- Note: Disables `table_style`, `freeze_panes`, `row_heights`, `autofit`, `conditional_formats`, `formula_columns`, `merged_ranges`, `hyperlinks`, `comments`, `validations`, `rich_text`, and `images`
|
|
114
179
|
- Column widths still work in constant memory mode
|
|
115
180
|
- Example: `xlsxturbo.df_to_xlsx(df, "big.xlsx", constant_memory=True)`
|
|
116
181
|
- `column_widths` parameter - set custom column widths by index
|
|
@@ -171,6 +236,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
171
236
|
- Support for custom sheet names
|
|
172
237
|
- Verbose mode for progress reporting
|
|
173
238
|
|
|
239
|
+
[0.10.2]: https://github.com/tstone-1/xlsxturbo/releases/tag/v0.10.2
|
|
240
|
+
[0.10.1]: https://github.com/tstone-1/xlsxturbo/releases/tag/v0.10.1
|
|
241
|
+
[0.10.0]: https://github.com/tstone-1/xlsxturbo/releases/tag/v0.10.0
|
|
174
242
|
[0.9.0]: https://github.com/tstone-1/xlsxturbo/releases/tag/v0.9.0
|
|
175
243
|
[0.8.0]: https://github.com/tstone-1/xlsxturbo/releases/tag/v0.8.0
|
|
176
244
|
[0.7.0]: https://github.com/tstone-1/xlsxturbo/releases/tag/v0.7.0
|
|
@@ -67,15 +67,6 @@ dependencies = [
|
|
|
67
67
|
"windows-sys",
|
|
68
68
|
]
|
|
69
69
|
|
|
70
|
-
[[package]]
|
|
71
|
-
name = "arbitrary"
|
|
72
|
-
version = "1.4.2"
|
|
73
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
74
|
-
checksum = "c3d036a3c4ab069c7b410a2ce876bd74808d2d0888a82667669f8e783a898bf1"
|
|
75
|
-
dependencies = [
|
|
76
|
-
"derive_arbitrary",
|
|
77
|
-
]
|
|
78
|
-
|
|
79
70
|
[[package]]
|
|
80
71
|
name = "autocfg"
|
|
81
72
|
version = "1.5.0"
|
|
@@ -96,9 +87,9 @@ checksum = "5dd9dc738b7a8311c7ade152424974d8115f2cdad61e8dab8dac9f2362298510"
|
|
|
96
87
|
|
|
97
88
|
[[package]]
|
|
98
89
|
name = "cc"
|
|
99
|
-
version = "1.2.
|
|
90
|
+
version = "1.2.55"
|
|
100
91
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
101
|
-
checksum = "
|
|
92
|
+
checksum = "47b26a0954ae34af09b50f0de26458fa95369a0d478d8236d3f93082b219bd29"
|
|
102
93
|
dependencies = [
|
|
103
94
|
"find-msvc-tools",
|
|
104
95
|
"shlex",
|
|
@@ -125,9 +116,9 @@ dependencies = [
|
|
|
125
116
|
|
|
126
117
|
[[package]]
|
|
127
118
|
name = "clap"
|
|
128
|
-
version = "4.5.
|
|
119
|
+
version = "4.5.57"
|
|
129
120
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
130
|
-
checksum = "
|
|
121
|
+
checksum = "6899ea499e3fb9305a65d5ebf6e3d2248c5fab291f300ad0a704fbe142eae31a"
|
|
131
122
|
dependencies = [
|
|
132
123
|
"clap_builder",
|
|
133
124
|
"clap_derive",
|
|
@@ -135,9 +126,9 @@ dependencies = [
|
|
|
135
126
|
|
|
136
127
|
[[package]]
|
|
137
128
|
name = "clap_builder"
|
|
138
|
-
version = "4.5.
|
|
129
|
+
version = "4.5.57"
|
|
139
130
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
140
|
-
checksum = "
|
|
131
|
+
checksum = "7b12c8b680195a62a8364d16b8447b01b6c2c8f9aaf68bee653be34d4245e238"
|
|
141
132
|
dependencies = [
|
|
142
133
|
"anstream",
|
|
143
134
|
"anstyle",
|
|
@@ -147,9 +138,9 @@ dependencies = [
|
|
|
147
138
|
|
|
148
139
|
[[package]]
|
|
149
140
|
name = "clap_derive"
|
|
150
|
-
version = "4.5.
|
|
141
|
+
version = "4.5.55"
|
|
151
142
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
152
|
-
checksum = "
|
|
143
|
+
checksum = "a92793da1a46a5f2a02a6f4c46c6496b28c43638adea8306fcb0caa1634f24e5"
|
|
153
144
|
dependencies = [
|
|
154
145
|
"heck",
|
|
155
146
|
"proc-macro2",
|
|
@@ -230,17 +221,6 @@ dependencies = [
|
|
|
230
221
|
"memchr",
|
|
231
222
|
]
|
|
232
223
|
|
|
233
|
-
[[package]]
|
|
234
|
-
name = "derive_arbitrary"
|
|
235
|
-
version = "1.4.2"
|
|
236
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
237
|
-
checksum = "1e567bd82dcff979e4b03460c307b3cdc9e96fde3d73bed1496d2bc75d9dd62a"
|
|
238
|
-
dependencies = [
|
|
239
|
-
"proc-macro2",
|
|
240
|
-
"quote",
|
|
241
|
-
"syn",
|
|
242
|
-
]
|
|
243
|
-
|
|
244
224
|
[[package]]
|
|
245
225
|
name = "either"
|
|
246
226
|
version = "1.15.0"
|
|
@@ -271,17 +251,16 @@ checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be"
|
|
|
271
251
|
|
|
272
252
|
[[package]]
|
|
273
253
|
name = "find-msvc-tools"
|
|
274
|
-
version = "0.1.
|
|
254
|
+
version = "0.1.9"
|
|
275
255
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
276
|
-
checksum = "
|
|
256
|
+
checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582"
|
|
277
257
|
|
|
278
258
|
[[package]]
|
|
279
259
|
name = "flate2"
|
|
280
|
-
version = "1.1.
|
|
260
|
+
version = "1.1.9"
|
|
281
261
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
282
|
-
checksum = "
|
|
262
|
+
checksum = "843fba2746e448b37e26a819579957415c8cef339bf08564fe8b7ddbd959573c"
|
|
283
263
|
dependencies = [
|
|
284
|
-
"crc32fast",
|
|
285
264
|
"miniz_oxide",
|
|
286
265
|
"zlib-rs",
|
|
287
266
|
]
|
|
@@ -312,9 +291,9 @@ checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
|
|
|
312
291
|
|
|
313
292
|
[[package]]
|
|
314
293
|
name = "iana-time-zone"
|
|
315
|
-
version = "0.1.
|
|
294
|
+
version = "0.1.65"
|
|
316
295
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
317
|
-
checksum = "
|
|
296
|
+
checksum = "e31bc9ad994ba00e440a8aa5c9ef0ec67d5cb5e5cb0cc7f8b744a35b389cc470"
|
|
318
297
|
dependencies = [
|
|
319
298
|
"android_system_properties",
|
|
320
299
|
"core-foundation-sys",
|
|
@@ -344,15 +323,6 @@ dependencies = [
|
|
|
344
323
|
"hashbrown",
|
|
345
324
|
]
|
|
346
325
|
|
|
347
|
-
[[package]]
|
|
348
|
-
name = "indoc"
|
|
349
|
-
version = "2.0.7"
|
|
350
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
351
|
-
checksum = "79cf5c93f93228cf8efb3ba362535fb11199ac548a09ce117c9b1adc3030d706"
|
|
352
|
-
dependencies = [
|
|
353
|
-
"rustversion",
|
|
354
|
-
]
|
|
355
|
-
|
|
356
326
|
[[package]]
|
|
357
327
|
name = "is_terminal_polyfill"
|
|
358
328
|
version = "1.70.2"
|
|
@@ -399,15 +369,6 @@ version = "2.7.6"
|
|
|
399
369
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
400
370
|
checksum = "f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273"
|
|
401
371
|
|
|
402
|
-
[[package]]
|
|
403
|
-
name = "memoffset"
|
|
404
|
-
version = "0.9.1"
|
|
405
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
406
|
-
checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a"
|
|
407
|
-
dependencies = [
|
|
408
|
-
"autocfg",
|
|
409
|
-
]
|
|
410
|
-
|
|
411
372
|
[[package]]
|
|
412
373
|
name = "miniz_oxide"
|
|
413
374
|
version = "0.8.9"
|
|
@@ -441,50 +402,47 @@ checksum = "384b8ab6d37215f3c5301a95a4accb5d64aa607f1fcb26a11b5303878451b4fe"
|
|
|
441
402
|
|
|
442
403
|
[[package]]
|
|
443
404
|
name = "portable-atomic"
|
|
444
|
-
version = "1.13.
|
|
405
|
+
version = "1.13.1"
|
|
445
406
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
446
|
-
checksum = "
|
|
407
|
+
checksum = "c33a9471896f1c69cecef8d20cbe2f7accd12527ce60845ff44c153bb2a21b49"
|
|
447
408
|
|
|
448
409
|
[[package]]
|
|
449
410
|
name = "proc-macro2"
|
|
450
|
-
version = "1.0.
|
|
411
|
+
version = "1.0.106"
|
|
451
412
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
452
|
-
checksum = "
|
|
413
|
+
checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934"
|
|
453
414
|
dependencies = [
|
|
454
415
|
"unicode-ident",
|
|
455
416
|
]
|
|
456
417
|
|
|
457
418
|
[[package]]
|
|
458
419
|
name = "pyo3"
|
|
459
|
-
version = "0.
|
|
420
|
+
version = "0.28.0"
|
|
460
421
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
461
|
-
checksum = "
|
|
422
|
+
checksum = "fcf3ccafdf54c050be48a3a086d372f77ba6615f5057211607cd30e5ac5cec6d"
|
|
462
423
|
dependencies = [
|
|
463
|
-
"indoc",
|
|
464
424
|
"libc",
|
|
465
|
-
"memoffset",
|
|
466
425
|
"once_cell",
|
|
467
426
|
"portable-atomic",
|
|
468
427
|
"pyo3-build-config",
|
|
469
428
|
"pyo3-ffi",
|
|
470
429
|
"pyo3-macros",
|
|
471
|
-
"unindent",
|
|
472
430
|
]
|
|
473
431
|
|
|
474
432
|
[[package]]
|
|
475
433
|
name = "pyo3-build-config"
|
|
476
|
-
version = "0.
|
|
434
|
+
version = "0.28.0"
|
|
477
435
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
478
|
-
checksum = "
|
|
436
|
+
checksum = "972720a441c91fd9c49f212a1d2d74c6e3803b231ebc8d66c51efbd7ccab11c8"
|
|
479
437
|
dependencies = [
|
|
480
438
|
"target-lexicon",
|
|
481
439
|
]
|
|
482
440
|
|
|
483
441
|
[[package]]
|
|
484
442
|
name = "pyo3-ffi"
|
|
485
|
-
version = "0.
|
|
443
|
+
version = "0.28.0"
|
|
486
444
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
487
|
-
checksum = "
|
|
445
|
+
checksum = "5994456d9dab8934d600d3867571b6410f24fbd6002570ad56356733eb54859b"
|
|
488
446
|
dependencies = [
|
|
489
447
|
"libc",
|
|
490
448
|
"pyo3-build-config",
|
|
@@ -492,9 +450,9 @@ dependencies = [
|
|
|
492
450
|
|
|
493
451
|
[[package]]
|
|
494
452
|
name = "pyo3-macros"
|
|
495
|
-
version = "0.
|
|
453
|
+
version = "0.28.0"
|
|
496
454
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
497
|
-
checksum = "
|
|
455
|
+
checksum = "11ce9cc8d81b3c4969748807604d92b4eef363c5bb82b1a1bdb34ec6f1093a18"
|
|
498
456
|
dependencies = [
|
|
499
457
|
"proc-macro2",
|
|
500
458
|
"pyo3-macros-backend",
|
|
@@ -504,9 +462,9 @@ dependencies = [
|
|
|
504
462
|
|
|
505
463
|
[[package]]
|
|
506
464
|
name = "pyo3-macros-backend"
|
|
507
|
-
version = "0.
|
|
465
|
+
version = "0.28.0"
|
|
508
466
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
509
|
-
checksum = "
|
|
467
|
+
checksum = "eaf4b60036a154d23282679b658e3cc7d88d3b8c9a40b43824785f232d2e1b98"
|
|
510
468
|
dependencies = [
|
|
511
469
|
"heck",
|
|
512
470
|
"proc-macro2",
|
|
@@ -517,9 +475,9 @@ dependencies = [
|
|
|
517
475
|
|
|
518
476
|
[[package]]
|
|
519
477
|
name = "quote"
|
|
520
|
-
version = "1.0.
|
|
478
|
+
version = "1.0.44"
|
|
521
479
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
522
|
-
checksum = "
|
|
480
|
+
checksum = "21b2ebcf727b7760c461f091f9f0f539b77b8e87f2fd88131e7f1b433b3cece4"
|
|
523
481
|
dependencies = [
|
|
524
482
|
"proc-macro2",
|
|
525
483
|
]
|
|
@@ -552,9 +510,9 @@ dependencies = [
|
|
|
552
510
|
|
|
553
511
|
[[package]]
|
|
554
512
|
name = "rust_xlsxwriter"
|
|
555
|
-
version = "0.
|
|
513
|
+
version = "0.93.0"
|
|
556
514
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
557
|
-
checksum = "
|
|
515
|
+
checksum = "84205e093885c6b4e2d93e225a148df2e7fe67a668c27e3322e56e0d93721848"
|
|
558
516
|
dependencies = [
|
|
559
517
|
"tempfile",
|
|
560
518
|
"zip",
|
|
@@ -654,16 +612,16 @@ dependencies = [
|
|
|
654
612
|
]
|
|
655
613
|
|
|
656
614
|
[[package]]
|
|
657
|
-
name = "
|
|
658
|
-
version = "
|
|
615
|
+
name = "typed-path"
|
|
616
|
+
version = "0.12.2"
|
|
659
617
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
660
|
-
checksum = "
|
|
618
|
+
checksum = "3015e6ce46d5ad8751e4a772543a30c7511468070e98e64e20165f8f81155b64"
|
|
661
619
|
|
|
662
620
|
[[package]]
|
|
663
|
-
name = "
|
|
664
|
-
version = "0.
|
|
621
|
+
name = "unicode-ident"
|
|
622
|
+
version = "1.0.22"
|
|
665
623
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
666
|
-
checksum = "
|
|
624
|
+
checksum = "9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5"
|
|
667
625
|
|
|
668
626
|
[[package]]
|
|
669
627
|
name = "utf8parse"
|
|
@@ -673,9 +631,9 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821"
|
|
|
673
631
|
|
|
674
632
|
[[package]]
|
|
675
633
|
name = "wasip2"
|
|
676
|
-
version = "1.0.
|
|
634
|
+
version = "1.0.2+wasi-0.2.9"
|
|
677
635
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
678
|
-
checksum = "
|
|
636
|
+
checksum = "9517f9239f02c069db75e65f174b3da828fe5f5b945c4dd26bd25d89c03ebcf5"
|
|
679
637
|
dependencies = [
|
|
680
638
|
"wit-bindgen",
|
|
681
639
|
]
|
|
@@ -795,13 +753,13 @@ dependencies = [
|
|
|
795
753
|
|
|
796
754
|
[[package]]
|
|
797
755
|
name = "wit-bindgen"
|
|
798
|
-
version = "0.
|
|
756
|
+
version = "0.51.0"
|
|
799
757
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
800
|
-
checksum = "
|
|
758
|
+
checksum = "d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5"
|
|
801
759
|
|
|
802
760
|
[[package]]
|
|
803
761
|
name = "xlsxturbo"
|
|
804
|
-
version = "0.
|
|
762
|
+
version = "0.10.2"
|
|
805
763
|
dependencies = [
|
|
806
764
|
"chrono",
|
|
807
765
|
"clap",
|
|
@@ -814,23 +772,23 @@ dependencies = [
|
|
|
814
772
|
|
|
815
773
|
[[package]]
|
|
816
774
|
name = "zip"
|
|
817
|
-
version = "
|
|
775
|
+
version = "7.4.0"
|
|
818
776
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
819
|
-
checksum = "
|
|
777
|
+
checksum = "cc12baa6db2b15a140161ce53d72209dacea594230798c24774139b54ecaa980"
|
|
820
778
|
dependencies = [
|
|
821
|
-
"arbitrary",
|
|
822
779
|
"crc32fast",
|
|
823
780
|
"flate2",
|
|
824
781
|
"indexmap",
|
|
825
782
|
"memchr",
|
|
783
|
+
"typed-path",
|
|
826
784
|
"zopfli",
|
|
827
785
|
]
|
|
828
786
|
|
|
829
787
|
[[package]]
|
|
830
788
|
name = "zlib-rs"
|
|
831
|
-
version = "0.
|
|
789
|
+
version = "0.6.0"
|
|
832
790
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
833
|
-
checksum = "
|
|
791
|
+
checksum = "a7948af682ccbc3342b6e9420e8c51c1fe5d7bf7756002b4a3c6cabfe96a7e3c"
|
|
834
792
|
|
|
835
793
|
[[package]]
|
|
836
794
|
name = "zopfli"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[package]
|
|
2
2
|
name = "xlsxturbo"
|
|
3
|
-
version = "0.
|
|
3
|
+
version = "0.10.2"
|
|
4
4
|
edition = "2021"
|
|
5
5
|
description = "High-performance Excel writer with automatic type detection (pandas, polars, CSV)"
|
|
6
6
|
license = "MIT"
|
|
@@ -18,10 +18,10 @@ name = "xlsxturbo"
|
|
|
18
18
|
path = "src/main.rs"
|
|
19
19
|
|
|
20
20
|
[dependencies]
|
|
21
|
-
rust_xlsxwriter = { version = "0.
|
|
21
|
+
rust_xlsxwriter = { version = "0.93", features = ["constant_memory"] }
|
|
22
22
|
csv = "1.3"
|
|
23
23
|
clap = { version = "4.5", features = ["derive"] }
|
|
24
|
-
pyo3 = { version = "0.
|
|
24
|
+
pyo3 = { version = "0.28", features = ["extension-module", "abi3-py38"] }
|
|
25
25
|
chrono = "0.4"
|
|
26
26
|
rayon = "1.10"
|
|
27
27
|
indexmap = "2.7"
|