xlsxturbo 0.10.1__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.10.1 → xlsxturbo-0.10.2}/.github/workflows/ci.yml +29 -0
- {xlsxturbo-0.10.1 → xlsxturbo-0.10.2}/.github/workflows/release.yml +1 -1
- {xlsxturbo-0.10.1 → xlsxturbo-0.10.2}/CHANGELOG.md +25 -1
- {xlsxturbo-0.10.1 → xlsxturbo-0.10.2}/Cargo.lock +44 -86
- {xlsxturbo-0.10.1 → xlsxturbo-0.10.2}/Cargo.toml +3 -3
- {xlsxturbo-0.10.1 → xlsxturbo-0.10.2}/PKG-INFO +1 -4
- {xlsxturbo-0.10.1 → xlsxturbo-0.10.2}/README.md +0 -3
- {xlsxturbo-0.10.1 → xlsxturbo-0.10.2}/pyproject.toml +1 -1
- {xlsxturbo-0.10.1 → xlsxturbo-0.10.2}/python/xlsxturbo/__init__.pyi +1 -1
- 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.1 → xlsxturbo-0.10.2}/tests/test_features.py +789 -0
- xlsxturbo-0.10.1/src/lib.rs +0 -3566
- {xlsxturbo-0.10.1 → xlsxturbo-0.10.2}/.github/dependabot.yml +0 -0
- {xlsxturbo-0.10.1 → xlsxturbo-0.10.2}/.gitignore +0 -0
- {xlsxturbo-0.10.1 → xlsxturbo-0.10.2}/BUILD.md +0 -0
- {xlsxturbo-0.10.1 → xlsxturbo-0.10.2}/LICENSE +0 -0
- {xlsxturbo-0.10.1 → xlsxturbo-0.10.2}/ROADMAP.md +0 -0
- {xlsxturbo-0.10.1 → xlsxturbo-0.10.2}/benchmarks/benchmark.py +0 -0
- {xlsxturbo-0.10.1 → xlsxturbo-0.10.2}/benchmarks/benchmark_parallel.py +0 -0
- {xlsxturbo-0.10.1 → xlsxturbo-0.10.2}/python/xlsxturbo/__init__.py +0 -0
- {xlsxturbo-0.10.1 → 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,29 @@ 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
|
+
|
|
8
31
|
## [0.10.1] - 2026-01-16
|
|
9
32
|
|
|
10
33
|
### Changed
|
|
@@ -152,7 +175,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
152
175
|
- `constant_memory` parameter - minimize RAM usage for very large files
|
|
153
176
|
- Uses rust_xlsxwriter's streaming mode to flush rows to disk
|
|
154
177
|
- Ideal for files with millions of rows
|
|
155
|
-
- 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`
|
|
156
179
|
- Column widths still work in constant memory mode
|
|
157
180
|
- Example: `xlsxturbo.df_to_xlsx(df, "big.xlsx", constant_memory=True)`
|
|
158
181
|
- `column_widths` parameter - set custom column widths by index
|
|
@@ -213,6 +236,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
213
236
|
- Support for custom sheet names
|
|
214
237
|
- Verbose mode for progress reporting
|
|
215
238
|
|
|
239
|
+
[0.10.2]: https://github.com/tstone-1/xlsxturbo/releases/tag/v0.10.2
|
|
216
240
|
[0.10.1]: https://github.com/tstone-1/xlsxturbo/releases/tag/v0.10.1
|
|
217
241
|
[0.10.0]: https://github.com/tstone-1/xlsxturbo/releases/tag/v0.10.0
|
|
218
242
|
[0.9.0]: https://github.com/tstone-1/xlsxturbo/releases/tag/v0.9.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"
|
|
@@ -801,7 +759,7 @@ checksum = "d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5"
|
|
|
801
759
|
|
|
802
760
|
[[package]]
|
|
803
761
|
name = "xlsxturbo"
|
|
804
|
-
version = "0.10.
|
|
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.10.
|
|
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"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: xlsxturbo
|
|
3
|
-
Version: 0.10.
|
|
3
|
+
Version: 0.10.2
|
|
4
4
|
Classifier: Development Status :: 4 - Beta
|
|
5
5
|
Classifier: Intended Audience :: Developers
|
|
6
6
|
Classifier: Intended Audience :: Science/Research
|
|
@@ -745,10 +745,7 @@ xlsxturbo.dfs_to_xlsx([
|
|
|
745
745
|
- `rich_text`
|
|
746
746
|
- `images`
|
|
747
747
|
- `autofit`
|
|
748
|
-
- `conditional_formats`
|
|
749
748
|
- `formula_columns`
|
|
750
|
-
- `merged_ranges`
|
|
751
|
-
- `hyperlinks`
|
|
752
749
|
|
|
753
750
|
Column widths still work in constant memory mode.
|
|
754
751
|
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
from typing import Literal, TypedDict
|
|
4
4
|
|
|
5
5
|
DateOrder = Literal["auto", "mdy", "us", "dmy", "eu", "european"]
|
|
6
|
-
ValidationType = Literal["list", "whole_number", "decimal", "text_length"]
|
|
6
|
+
ValidationType = Literal["list", "whole_number", "whole", "integer", "decimal", "number", "text_length", "textlength", "length"]
|
|
7
7
|
|
|
8
8
|
class HeaderFormat(TypedDict, total=False):
|
|
9
9
|
"""Header cell formatting options. All fields are optional."""
|
|
File without changes
|