python-calamine 0.7.0__tar.gz → 0.8.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.
- {python_calamine-0.7.0 → python_calamine-0.8.0}/.github/workflows/CI.yml +14 -12
- {python_calamine-0.7.0 → python_calamine-0.8.0}/Cargo.lock +10 -9
- {python_calamine-0.7.0 → python_calamine-0.8.0}/Cargo.toml +2 -2
- {python_calamine-0.7.0 → python_calamine-0.8.0}/PKG-INFO +1 -1
- {python_calamine-0.7.0 → python_calamine-0.8.0}/src/types/workbook.rs +16 -10
- {python_calamine-0.7.0 → python_calamine-0.8.0}/.github/dependabot.yml +0 -0
- {python_calamine-0.7.0 → python_calamine-0.8.0}/.gitignore +0 -0
- {python_calamine-0.7.0 → python_calamine-0.8.0}/.pre-commit-config.yaml +0 -0
- {python_calamine-0.7.0 → python_calamine-0.8.0}/LICENSE +0 -0
- {python_calamine-0.7.0 → python_calamine-0.8.0}/README.md +0 -0
- {python_calamine-0.7.0 → python_calamine-0.8.0}/build.rs +0 -0
- {python_calamine-0.7.0 → python_calamine-0.8.0}/pyproject.toml +0 -0
- {python_calamine-0.7.0 → python_calamine-0.8.0}/python/python_calamine/__init__.py +0 -0
- {python_calamine-0.7.0 → python_calamine-0.8.0}/python/python_calamine/_python_calamine.pyi +0 -0
- {python_calamine-0.7.0 → python_calamine-0.8.0}/python/python_calamine/py.typed +0 -0
- {python_calamine-0.7.0 → python_calamine-0.8.0}/src/lib.rs +0 -0
- {python_calamine-0.7.0 → python_calamine-0.8.0}/src/types/cell.rs +0 -0
- {python_calamine-0.7.0 → python_calamine-0.8.0}/src/types/errors.rs +0 -0
- {python_calamine-0.7.0 → python_calamine-0.8.0}/src/types/mod.rs +0 -0
- {python_calamine-0.7.0 → python_calamine-0.8.0}/src/types/sheet.rs +0 -0
- {python_calamine-0.7.0 → python_calamine-0.8.0}/src/types/table.rs +0 -0
- {python_calamine-0.7.0 → python_calamine-0.8.0}/tests/__init__.py +0 -0
- {python_calamine-0.7.0 → python_calamine-0.8.0}/tests/conftest.py +0 -0
- {python_calamine-0.7.0 → python_calamine-0.8.0}/tests/data/any_sheets.ods +0 -0
- {python_calamine-0.7.0 → python_calamine-0.8.0}/tests/data/any_sheets.xls +0 -0
- {python_calamine-0.7.0 → python_calamine-0.8.0}/tests/data/any_sheets.xlsb +0 -0
- {python_calamine-0.7.0 → python_calamine-0.8.0}/tests/data/any_sheets.xlsx +0 -0
- {python_calamine-0.7.0 → python_calamine-0.8.0}/tests/data/base.ods +0 -0
- {python_calamine-0.7.0 → python_calamine-0.8.0}/tests/data/base.xls +0 -0
- {python_calamine-0.7.0 → python_calamine-0.8.0}/tests/data/base.xlsb +0 -0
- {python_calamine-0.7.0 → python_calamine-0.8.0}/tests/data/base.xlsx +0 -0
- {python_calamine-0.7.0 → python_calamine-0.8.0}/tests/data/empty_file.ods +0 -0
- {python_calamine-0.7.0 → python_calamine-0.8.0}/tests/data/empty_file.xlsb +0 -0
- {python_calamine-0.7.0 → python_calamine-0.8.0}/tests/data/empty_file.xlsx +0 -0
- {python_calamine-0.7.0 → python_calamine-0.8.0}/tests/data/issue139.xlsx +0 -0
- {python_calamine-0.7.0 → python_calamine-0.8.0}/tests/data/password.ods +0 -0
- {python_calamine-0.7.0 → python_calamine-0.8.0}/tests/data/password.xls +0 -0
- {python_calamine-0.7.0 → python_calamine-0.8.0}/tests/data/password.xlsb +0 -0
- {python_calamine-0.7.0 → python_calamine-0.8.0}/tests/data/password.xlsx +0 -0
- {python_calamine-0.7.0 → python_calamine-0.8.0}/tests/data/table-multiple.xlsx +0 -0
- {python_calamine-0.7.0 → python_calamine-0.8.0}/tests/test_base.py +0 -0
- {python_calamine-0.7.0 → python_calamine-0.8.0}/tests/test_pandas.py +0 -0
- {python_calamine-0.7.0 → python_calamine-0.8.0}/tests/test_sheet_type.py +0 -0
- {python_calamine-0.7.0 → python_calamine-0.8.0}/tests/test_tables.py +0 -0
|
@@ -28,15 +28,17 @@ jobs:
|
|
|
28
28
|
- "3.13"
|
|
29
29
|
- "3.14"
|
|
30
30
|
pandas-version:
|
|
31
|
-
- "2.2.*"
|
|
32
31
|
- "2.3.*"
|
|
32
|
+
- "3.0.*"
|
|
33
33
|
include:
|
|
34
34
|
# https://github.com/pandas-dev/pandas/issues/42509
|
|
35
35
|
- python-version: "pypy3.11"
|
|
36
36
|
pandas-version: "none"
|
|
37
|
-
# https://github.com/pandas-dev/pandas/issues/60016
|
|
38
37
|
- python-version: "3.14t"
|
|
39
|
-
pandas-version: "
|
|
38
|
+
pandas-version: "3.0.*"
|
|
39
|
+
exclude:
|
|
40
|
+
- python-version: "3.10"
|
|
41
|
+
pandas-version: "3.0.*"
|
|
40
42
|
|
|
41
43
|
runs-on: ubuntu-latest
|
|
42
44
|
|
|
@@ -44,7 +46,7 @@ jobs:
|
|
|
44
46
|
PYTHON: ${{ matrix.python-version }}
|
|
45
47
|
|
|
46
48
|
steps:
|
|
47
|
-
- uses: actions/checkout@
|
|
49
|
+
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
|
48
50
|
with:
|
|
49
51
|
persist-credentials: false
|
|
50
52
|
|
|
@@ -60,14 +62,14 @@ jobs:
|
|
|
60
62
|
key: v3
|
|
61
63
|
|
|
62
64
|
- name: set up python
|
|
63
|
-
uses: actions/setup-python@
|
|
65
|
+
uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0
|
|
64
66
|
with:
|
|
65
67
|
python-version: ${{ matrix.python-version }}
|
|
66
68
|
allow-prereleases: true
|
|
67
69
|
|
|
68
70
|
- id: cache-py
|
|
69
71
|
name: cache python
|
|
70
|
-
uses: actions/cache@
|
|
72
|
+
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
|
|
71
73
|
with:
|
|
72
74
|
path: ${{ env.pythonLocation }}
|
|
73
75
|
key: >
|
|
@@ -98,7 +100,7 @@ jobs:
|
|
|
98
100
|
runs-on: ubuntu-latest
|
|
99
101
|
|
|
100
102
|
steps:
|
|
101
|
-
- uses: actions/checkout@
|
|
103
|
+
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
|
102
104
|
with:
|
|
103
105
|
persist-credentials: false
|
|
104
106
|
|
|
@@ -110,11 +112,11 @@ jobs:
|
|
|
110
112
|
- name: cache rust
|
|
111
113
|
uses: Swatinem/rust-cache@c19371144df3bb44fab255c43d04cbc2ab54d1c4 # v2.9.1
|
|
112
114
|
|
|
113
|
-
- uses: actions/setup-python@
|
|
115
|
+
- uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0
|
|
114
116
|
with:
|
|
115
117
|
python-version: "3.14"
|
|
116
118
|
|
|
117
|
-
- uses: actions/cache@
|
|
119
|
+
- uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
|
|
118
120
|
id: cache-py
|
|
119
121
|
name: cache python
|
|
120
122
|
with:
|
|
@@ -214,12 +216,12 @@ jobs:
|
|
|
214
216
|
|
|
215
217
|
runs-on: ${{ matrix.runs-on || format('{0}-latest', (matrix.os == 'linux' && 'ubuntu') || matrix.os) }}
|
|
216
218
|
steps:
|
|
217
|
-
- uses: actions/checkout@
|
|
219
|
+
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
|
218
220
|
with:
|
|
219
221
|
persist-credentials: false
|
|
220
222
|
|
|
221
223
|
- name: set up python
|
|
222
|
-
uses: actions/setup-python@
|
|
224
|
+
uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0
|
|
223
225
|
with:
|
|
224
226
|
python-version: "3.14"
|
|
225
227
|
|
|
@@ -295,7 +297,7 @@ jobs:
|
|
|
295
297
|
merge-multiple: true
|
|
296
298
|
|
|
297
299
|
- name: Upload to GitHub
|
|
298
|
-
uses: softprops/action-gh-release@
|
|
300
|
+
uses: softprops/action-gh-release@718ea10b132b3b2eba29c1007bb80653f286566b # v3.0.1
|
|
299
301
|
with:
|
|
300
302
|
generate_release_notes: true
|
|
301
303
|
files: |
|
|
@@ -19,11 +19,12 @@ dependencies = [
|
|
|
19
19
|
|
|
20
20
|
[[package]]
|
|
21
21
|
name = "atoi_simd"
|
|
22
|
-
version = "0.
|
|
22
|
+
version = "0.18.1"
|
|
23
23
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
24
|
-
checksum = "
|
|
24
|
+
checksum = "f3cdb3708a128e559a30fb830e8a77a5022ee6902806925c216658652b452a44"
|
|
25
25
|
dependencies = [
|
|
26
26
|
"debug_unsafe",
|
|
27
|
+
"rustversion",
|
|
27
28
|
]
|
|
28
29
|
|
|
29
30
|
[[package]]
|
|
@@ -46,9 +47,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
|
|
|
46
47
|
|
|
47
48
|
[[package]]
|
|
48
49
|
name = "calamine"
|
|
49
|
-
version = "0.
|
|
50
|
+
version = "0.36.0"
|
|
50
51
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
51
|
-
checksum = "
|
|
52
|
+
checksum = "6975084f43060e56343ffba7f9731fa52a7dcf2e1cd8e2459fd4c6bf4a1bff59"
|
|
52
53
|
dependencies = [
|
|
53
54
|
"atoi_simd",
|
|
54
55
|
"byteorder",
|
|
@@ -372,7 +373,7 @@ dependencies = [
|
|
|
372
373
|
|
|
373
374
|
[[package]]
|
|
374
375
|
name = "python-calamine"
|
|
375
|
-
version = "0.
|
|
376
|
+
version = "0.8.0"
|
|
376
377
|
dependencies = [
|
|
377
378
|
"calamine",
|
|
378
379
|
"chrono",
|
|
@@ -383,9 +384,9 @@ dependencies = [
|
|
|
383
384
|
|
|
384
385
|
[[package]]
|
|
385
386
|
name = "quick-xml"
|
|
386
|
-
version = "0.
|
|
387
|
+
version = "0.41.0"
|
|
387
388
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
388
|
-
checksum = "
|
|
389
|
+
checksum = "e660451e55124f798a69a5af3f49ccfbefbd41910eefd25caf2393e1f3473ec1"
|
|
389
390
|
dependencies = [
|
|
390
391
|
"encoding_rs",
|
|
391
392
|
"memchr",
|
|
@@ -588,9 +589,9 @@ dependencies = [
|
|
|
588
589
|
|
|
589
590
|
[[package]]
|
|
590
591
|
name = "zip"
|
|
591
|
-
version = "
|
|
592
|
+
version = "8.6.0"
|
|
592
593
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
593
|
-
checksum = "
|
|
594
|
+
checksum = "2d04a6b5381502aa6087c94c669499eb1602eb9c5e8198e534de571f7154809b"
|
|
594
595
|
dependencies = [
|
|
595
596
|
"crc32fast",
|
|
596
597
|
"flate2",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[package]
|
|
2
2
|
name = "python-calamine"
|
|
3
|
-
version = "0.
|
|
3
|
+
version = "0.8.0"
|
|
4
4
|
edition = "2021"
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
|
|
@@ -9,7 +9,7 @@ name = "python_calamine"
|
|
|
9
9
|
crate-type = ["cdylib"]
|
|
10
10
|
|
|
11
11
|
[dependencies]
|
|
12
|
-
calamine = { version = "0.
|
|
12
|
+
calamine = { version = "0.36.0", features = ["chrono"] }
|
|
13
13
|
pyo3 = { version = "0.29.0", features = [
|
|
14
14
|
"extension-module",
|
|
15
15
|
"chrono",
|
|
@@ -79,23 +79,29 @@ impl SheetsEnum {
|
|
|
79
79
|
) -> Result<Option<Vec<calamine::Dimensions>>, Error> {
|
|
80
80
|
match self {
|
|
81
81
|
SheetsEnum::File(f) => match f {
|
|
82
|
-
Sheets::Xls(xls_f) =>
|
|
82
|
+
Sheets::Xls(xls_f) => xls_f
|
|
83
|
+
.merge_cells_by_sheet_name(name)
|
|
84
|
+
.map(Some)
|
|
85
|
+
.map_err(CalamineCrateError::Xls)
|
|
86
|
+
.map_err(Error::Calamine),
|
|
83
87
|
Sheets::Xlsx(xlsx_f) => xlsx_f
|
|
84
|
-
.
|
|
85
|
-
.
|
|
88
|
+
.merge_cells_by_sheet_name(name)
|
|
89
|
+
.map(Some)
|
|
86
90
|
.map_err(CalamineCrateError::Xlsx)
|
|
87
|
-
.map_err(Error::Calamine)
|
|
88
|
-
.map(|inner| inner.or(Some(Vec::new()))),
|
|
91
|
+
.map_err(Error::Calamine),
|
|
89
92
|
_ => Ok(None),
|
|
90
93
|
},
|
|
91
94
|
SheetsEnum::FileLike(f) => match f {
|
|
92
|
-
Sheets::Xls(xls_f) =>
|
|
95
|
+
Sheets::Xls(xls_f) => xls_f
|
|
96
|
+
.merge_cells_by_sheet_name(name)
|
|
97
|
+
.map(Some)
|
|
98
|
+
.map_err(CalamineCrateError::Xls)
|
|
99
|
+
.map_err(Error::Calamine),
|
|
93
100
|
Sheets::Xlsx(xlsx_f) => xlsx_f
|
|
94
|
-
.
|
|
95
|
-
.
|
|
101
|
+
.merge_cells_by_sheet_name(name)
|
|
102
|
+
.map(Some)
|
|
96
103
|
.map_err(CalamineCrateError::Xlsx)
|
|
97
|
-
.map_err(Error::Calamine)
|
|
98
|
-
.map(|inner| inner.or(Some(Vec::new()))),
|
|
104
|
+
.map_err(Error::Calamine),
|
|
99
105
|
_ => Ok(None),
|
|
100
106
|
},
|
|
101
107
|
SheetsEnum::None => Err(Error::WorkbookClosed),
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|