ormsgpack 1.5.0__tar.gz → 1.6.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.

Potentially problematic release.


This version of ormsgpack might be problematic. Click here for more details.

Files changed (40) hide show
  1. {ormsgpack-1.5.0 → ormsgpack-1.6.0}/CHANGELOG.md +22 -9
  2. {ormsgpack-1.5.0 → ormsgpack-1.6.0}/Cargo.lock +40 -151
  3. {ormsgpack-1.5.0 → ormsgpack-1.6.0}/Cargo.toml +4 -4
  4. {ormsgpack-1.5.0 → ormsgpack-1.6.0}/PKG-INFO +4 -2
  5. {ormsgpack-1.5.0 → ormsgpack-1.6.0}/README.md +2 -1
  6. {ormsgpack-1.5.0 → ormsgpack-1.6.0}/pyproject.toml +9 -0
  7. {ormsgpack-1.5.0 → ormsgpack-1.6.0}/python/ormsgpack/__init__.pyi +4 -1
  8. {ormsgpack-1.5.0 → ormsgpack-1.6.0}/src/deserialize/deserializer.rs +25 -28
  9. {ormsgpack-1.5.0 → ormsgpack-1.6.0}/LICENSE-APACHE +0 -0
  10. {ormsgpack-1.5.0 → ormsgpack-1.6.0}/LICENSE-MIT +0 -0
  11. {ormsgpack-1.5.0 → ormsgpack-1.6.0}/build.rs +0 -0
  12. {ormsgpack-1.5.0 → ormsgpack-1.6.0}/python/ormsgpack/__init__.py +0 -0
  13. {ormsgpack-1.5.0 → ormsgpack-1.6.0}/python/ormsgpack/py.typed +0 -0
  14. {ormsgpack-1.5.0 → ormsgpack-1.6.0}/src/deserialize/cache.rs +0 -0
  15. {ormsgpack-1.5.0 → ormsgpack-1.6.0}/src/deserialize/error.rs +0 -0
  16. {ormsgpack-1.5.0 → ormsgpack-1.6.0}/src/deserialize/mod.rs +0 -0
  17. {ormsgpack-1.5.0 → ormsgpack-1.6.0}/src/exc.rs +0 -0
  18. {ormsgpack-1.5.0 → ormsgpack-1.6.0}/src/ext.rs +0 -0
  19. {ormsgpack-1.5.0 → ormsgpack-1.6.0}/src/ffi.rs +0 -0
  20. {ormsgpack-1.5.0 → ormsgpack-1.6.0}/src/lib.rs +0 -0
  21. {ormsgpack-1.5.0 → ormsgpack-1.6.0}/src/opt.rs +0 -0
  22. {ormsgpack-1.5.0 → ormsgpack-1.6.0}/src/serialize/bytes.rs +0 -0
  23. {ormsgpack-1.5.0 → ormsgpack-1.6.0}/src/serialize/dataclass.rs +0 -0
  24. {ormsgpack-1.5.0 → ormsgpack-1.6.0}/src/serialize/datetime.rs +0 -0
  25. {ormsgpack-1.5.0 → ormsgpack-1.6.0}/src/serialize/datetimelike.rs +0 -0
  26. {ormsgpack-1.5.0 → ormsgpack-1.6.0}/src/serialize/default.rs +0 -0
  27. {ormsgpack-1.5.0 → ormsgpack-1.6.0}/src/serialize/dict.rs +0 -0
  28. {ormsgpack-1.5.0 → ormsgpack-1.6.0}/src/serialize/ext.rs +0 -0
  29. {ormsgpack-1.5.0 → ormsgpack-1.6.0}/src/serialize/int.rs +0 -0
  30. {ormsgpack-1.5.0 → ormsgpack-1.6.0}/src/serialize/list.rs +0 -0
  31. {ormsgpack-1.5.0 → ormsgpack-1.6.0}/src/serialize/mod.rs +0 -0
  32. {ormsgpack-1.5.0 → ormsgpack-1.6.0}/src/serialize/numpy.rs +0 -0
  33. {ormsgpack-1.5.0 → ormsgpack-1.6.0}/src/serialize/serializer.rs +0 -0
  34. {ormsgpack-1.5.0 → ormsgpack-1.6.0}/src/serialize/str.rs +0 -0
  35. {ormsgpack-1.5.0 → ormsgpack-1.6.0}/src/serialize/tuple.rs +0 -0
  36. {ormsgpack-1.5.0 → ormsgpack-1.6.0}/src/serialize/uuid.rs +0 -0
  37. {ormsgpack-1.5.0 → ormsgpack-1.6.0}/src/serialize/writer.rs +0 -0
  38. {ormsgpack-1.5.0 → ormsgpack-1.6.0}/src/typeref.rs +0 -0
  39. {ormsgpack-1.5.0 → ormsgpack-1.6.0}/src/unicode.rs +0 -0
  40. {ormsgpack-1.5.0 → ormsgpack-1.6.0}/src/util.rs +0 -0
@@ -1,5 +1,18 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.6.0 18/10/2024
4
+
5
+ ### Fixed
6
+
7
+ - Deduplicate map keys also when `OPT_NON_STR_KEYS` is set [#279](/../../issues/279)
8
+ - Add missing type information for Ext type by [trim21](https://github.com/trim21) in [#285](/../../pull/285)
9
+ - Fix type annotation of unpackb first argument
10
+
11
+ ### Changed
12
+
13
+ - Add support for python 3.13
14
+ - Improve test coverage
15
+
3
16
  ## 1.5.0 19/04/2024
4
17
 
5
18
  - Add support for numpy datetime64 and float16 types
@@ -47,7 +60,7 @@
47
60
 
48
61
  ### Fixed
49
62
 
50
- - `once_cell` poisoning on parallel initialization by (@Quitlox)[https://github.com/Quitlox] in (#153)[https://github.com/aviramha/ormsgpack/pull/153]
63
+ - `once_cell` poisoning on parallel initialization by [@Quitlox](https://github.com/Quitlox) in [#153](/../../pull/153)
51
64
 
52
65
 
53
66
  ## 1.2.5 02/02/2023
@@ -69,7 +82,7 @@
69
82
 
70
83
  ## 1.2.3 - 26/06/2022
71
84
  ### Misc
72
- - Updated dependencies. partially by [@tilman19](https://github.com/aviramha/ormsgpack/pull/101)
85
+ - Updated dependencies. partially by [@tilman19](/../../pull/101)
73
86
  - Handle clippy warnings.
74
87
 
75
88
 
@@ -82,15 +95,15 @@
82
95
  - Update dependencies
83
96
  ## 1.2.0 - 14/2/2022
84
97
  ### Changed
85
- - Extended int passthrough to support u64. by [@pejter](https://github.com/aviramha/ormsgpack/pull/77)
98
+ - Extended int passthrough to support u64. by [@pejter](/../../pull/77)
86
99
  ### Misc
87
- - Updated README to include new options. by [@ThomasTNO](https://github.com/aviramha/ormsgpack/pull/70)
100
+ - Updated README to include new options. by [@ThomasTNO](/../../pull/70)
88
101
  - Updated dependencies
89
102
  - Renamed in `numpy.rs` `from_parent` to `to_children` to fix new lint rules
90
103
  ## 1.1.0 - 8/1/2022
91
104
  ### Added
92
- - Add optional passthrough for tuples. by [@TariqTNO](https://github.com/aviramha/ormsgpack/pull/64)
93
- - Add optional passthrough for ints, that do not fit into an i64. by [@TariqTNO](https://github.com/aviramha/ormsgpack/pull/64)
105
+ - Add optional passthrough for tuples. by [@TariqTNO](/../../pull/64)
106
+ - Add optional passthrough for ints, that do not fit into an i64. by [@TariqTNO](/../../pull/64)
94
107
  ### Changed
95
108
  - `opt` parameter can be `None`.
96
109
  ### Misc
@@ -132,7 +145,7 @@
132
145
  - Refactored adding objects to the module, creating a `__all__` object similar to the way PyO3 creates. This solves an issue with upgrading to new maturin version.
133
146
  - Changed < Py3.7 implementation to use automatic range inclusion.
134
147
  - Added test to validate correct Python method flags are used on declare.
135
- - Changed to use PyO3 configurations instead of our own. PR [#25](https://github.com/aviramha/ormsgpack/pull/25) by [@pejter](https://github.com/pejter).
148
+ - Changed to use PyO3 configurations instead of our own. PR [#25](/../../pull/25) by [@pejter](https://github.com/pejter).
136
149
  ## 0.3.2 - 13/7/2021
137
150
  ### Fixed
138
151
  - Fix memory leak serializing `datetime.datetime` with `tzinfo`. (Copied from orjson)
@@ -142,9 +155,9 @@
142
155
  - Setup dependabot.
143
156
  ## 0.3.1 - 19/6/2021
144
157
  ### Changed
145
- - `packb` of maps and sequences is now almost 2x faster as it leverages known size. PR [#18](https://github.com/aviramha/ormsgpack/pull/18) by [@ijl](https://github.com/ijl).
158
+ - `packb` of maps and sequences is now almost 2x faster as it leverages known size. PR [#18](/../../pull/18) by [@ijl](https://github.com/ijl).
146
159
  ### Misc
147
- - Added `scripts/bench_target.py` and `scripts/profile.sh` for easily benchmarking and profiling. Works only on Linux. PR [#17](https://github.com/aviramha/ormsgpack/pull/17) by [@ijl](https://github.com/ijl).
160
+ - Added `scripts/bench_target.py` and `scripts/profile.sh` for easily benchmarking and profiling. Works only on Linux. PR [#17](/../../pull/17) by [@ijl](https://github.com/ijl).
148
161
  ## 0.3.0 - 13/6/2021
149
162
  ### Added
150
163
  - `unpackb` now accepts keyword argument `option` with argument `OPT_NON_STR_KEYS`. This option will let ormsgpack
@@ -31,15 +31,9 @@ checksum = "b993cd767a2bc7307dd87622311ca22c44329cc7a21366206bfa0896827b2bad"
31
31
 
32
32
  [[package]]
33
33
  name = "autocfg"
34
- version = "1.1.0"
34
+ version = "1.3.0"
35
35
  source = "registry+https://github.com/rust-lang/crates.io-index"
36
- checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
37
-
38
- [[package]]
39
- name = "bitflags"
40
- version = "1.3.2"
41
- source = "registry+https://github.com/rust-lang/crates.io-index"
42
- checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
36
+ checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0"
43
37
 
44
38
  [[package]]
45
39
  name = "bytecount"
@@ -102,47 +96,37 @@ checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b"
102
96
 
103
97
  [[package]]
104
98
  name = "libc"
105
- version = "0.2.151"
99
+ version = "0.2.154"
106
100
  source = "registry+https://github.com/rust-lang/crates.io-index"
107
- checksum = "302d7ab3130588088d277783b1e2d2e10c9e9e4a16dd9050e6ec93fb3e7048f4"
108
-
109
- [[package]]
110
- name = "lock_api"
111
- version = "0.4.11"
112
- source = "registry+https://github.com/rust-lang/crates.io-index"
113
- checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45"
114
- dependencies = [
115
- "autocfg",
116
- "scopeguard",
117
- ]
101
+ checksum = "ae743338b92ff9146ce83992f766a31066a91a8c84a45e0e9f21e7cf6de6d346"
118
102
 
119
103
  [[package]]
120
104
  name = "memoffset"
121
- version = "0.9.0"
105
+ version = "0.9.1"
122
106
  source = "registry+https://github.com/rust-lang/crates.io-index"
123
- checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c"
107
+ checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a"
124
108
  dependencies = [
125
109
  "autocfg",
126
110
  ]
127
111
 
128
112
  [[package]]
129
113
  name = "num-traits"
130
- version = "0.2.17"
114
+ version = "0.2.19"
131
115
  source = "registry+https://github.com/rust-lang/crates.io-index"
132
- checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c"
116
+ checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841"
133
117
  dependencies = [
134
118
  "autocfg",
135
119
  ]
136
120
 
137
121
  [[package]]
138
122
  name = "once_cell"
139
- version = "1.19.0"
123
+ version = "1.20.2"
140
124
  source = "registry+https://github.com/rust-lang/crates.io-index"
141
- checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
125
+ checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775"
142
126
 
143
127
  [[package]]
144
128
  name = "ormsgpack"
145
- version = "1.5.0"
129
+ version = "1.6.0"
146
130
  dependencies = [
147
131
  "ahash",
148
132
  "associative-cache",
@@ -161,34 +145,11 @@ dependencies = [
161
145
  "smallvec",
162
146
  ]
163
147
 
164
- [[package]]
165
- name = "parking_lot"
166
- version = "0.12.1"
167
- source = "registry+https://github.com/rust-lang/crates.io-index"
168
- checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f"
169
- dependencies = [
170
- "lock_api",
171
- "parking_lot_core",
172
- ]
173
-
174
- [[package]]
175
- name = "parking_lot_core"
176
- version = "0.9.9"
177
- source = "registry+https://github.com/rust-lang/crates.io-index"
178
- checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e"
179
- dependencies = [
180
- "cfg-if",
181
- "libc",
182
- "redox_syscall",
183
- "smallvec",
184
- "windows-targets",
185
- ]
186
-
187
148
  [[package]]
188
149
  name = "paste"
189
- version = "1.0.14"
150
+ version = "1.0.15"
190
151
  source = "registry+https://github.com/rust-lang/crates.io-index"
191
- checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c"
152
+ checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a"
192
153
 
193
154
  [[package]]
194
155
  name = "portable-atomic"
@@ -198,23 +159,23 @@ checksum = "7170ef9988bc169ba16dd36a7fa041e5c4cbeb6a35b76d4c03daded371eae7c0"
198
159
 
199
160
  [[package]]
200
161
  name = "proc-macro2"
201
- version = "1.0.74"
162
+ version = "1.0.82"
202
163
  source = "registry+https://github.com/rust-lang/crates.io-index"
203
- checksum = "2de98502f212cfcea8d0bb305bd0f49d7ebdd75b64ba0a68f937d888f4e0d6db"
164
+ checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b"
204
165
  dependencies = [
205
166
  "unicode-ident",
206
167
  ]
207
168
 
208
169
  [[package]]
209
170
  name = "pyo3"
210
- version = "0.21.2"
171
+ version = "0.22.5"
211
172
  source = "registry+https://github.com/rust-lang/crates.io-index"
212
- checksum = "a5e00b96a521718e08e03b1a622f01c8a8deb50719335de3f60b3b3950f069d8"
173
+ checksum = "3d922163ba1f79c04bc49073ba7b32fd5a8d3b76a87c955921234b8e77333c51"
213
174
  dependencies = [
214
175
  "cfg-if",
215
176
  "libc",
216
177
  "memoffset",
217
- "parking_lot",
178
+ "once_cell",
218
179
  "portable-atomic",
219
180
  "pyo3-build-config",
220
181
  "pyo3-ffi",
@@ -222,9 +183,9 @@ dependencies = [
222
183
 
223
184
  [[package]]
224
185
  name = "pyo3-build-config"
225
- version = "0.21.2"
186
+ version = "0.22.5"
226
187
  source = "registry+https://github.com/rust-lang/crates.io-index"
227
- checksum = "7883df5835fafdad87c0d888b266c8ec0f4c9ca48a5bed6bbb592e8dedee1b50"
188
+ checksum = "bc38c5feeb496c8321091edf3d63e9a6829eab4b863b4a6a65f26f3e9cc6b179"
228
189
  dependencies = [
229
190
  "once_cell",
230
191
  "target-lexicon",
@@ -232,9 +193,9 @@ dependencies = [
232
193
 
233
194
  [[package]]
234
195
  name = "pyo3-ffi"
235
- version = "0.21.2"
196
+ version = "0.22.5"
236
197
  source = "registry+https://github.com/rust-lang/crates.io-index"
237
- checksum = "01be5843dc60b916ab4dad1dca6d20b9b4e6ddc8e15f50c47fe6d85f1fb97403"
198
+ checksum = "94845622d88ae274d2729fcefc850e63d7a3ddff5e3ce11bd88486db9f1d357d"
238
199
  dependencies = [
239
200
  "libc",
240
201
  "pyo3-build-config",
@@ -242,22 +203,13 @@ dependencies = [
242
203
 
243
204
  [[package]]
244
205
  name = "quote"
245
- version = "1.0.35"
206
+ version = "1.0.36"
246
207
  source = "registry+https://github.com/rust-lang/crates.io-index"
247
- checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef"
208
+ checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7"
248
209
  dependencies = [
249
210
  "proc-macro2",
250
211
  ]
251
212
 
252
- [[package]]
253
- name = "redox_syscall"
254
- version = "0.4.1"
255
- source = "registry+https://github.com/rust-lang/crates.io-index"
256
- checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa"
257
- dependencies = [
258
- "bitflags",
259
- ]
260
-
261
213
  [[package]]
262
214
  name = "rmp"
263
215
  version = "0.8.14"
@@ -271,44 +223,38 @@ dependencies = [
271
223
 
272
224
  [[package]]
273
225
  name = "rmp-serde"
274
- version = "1.2.0"
226
+ version = "1.3.0"
275
227
  source = "registry+https://github.com/rust-lang/crates.io-index"
276
- checksum = "938a142ab806f18b88a97b0dea523d39e0fd730a064b035726adcfc58a8a5188"
228
+ checksum = "52e599a477cf9840e92f2cde9a7189e67b42c57532749bf90aea6ec10facd4db"
277
229
  dependencies = [
278
230
  "byteorder",
279
231
  "rmp",
280
232
  "serde",
281
233
  ]
282
234
 
283
- [[package]]
284
- name = "scopeguard"
285
- version = "1.2.0"
286
- source = "registry+https://github.com/rust-lang/crates.io-index"
287
- checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
288
-
289
235
  [[package]]
290
236
  name = "serde"
291
- version = "1.0.198"
237
+ version = "1.0.210"
292
238
  source = "registry+https://github.com/rust-lang/crates.io-index"
293
- checksum = "9846a40c979031340571da2545a4e5b7c4163bdae79b301d5f86d03979451fcc"
239
+ checksum = "c8e3592472072e6e22e0a54d5904d9febf8508f65fb8552499a1abc7d1078c3a"
294
240
  dependencies = [
295
241
  "serde_derive",
296
242
  ]
297
243
 
298
244
  [[package]]
299
245
  name = "serde_bytes"
300
- version = "0.11.14"
246
+ version = "0.11.15"
301
247
  source = "registry+https://github.com/rust-lang/crates.io-index"
302
- checksum = "8b8497c313fd43ab992087548117643f6fcd935cbf36f176ffda0aacf9591734"
248
+ checksum = "387cc504cb06bb40a96c8e04e951fe01854cf6bc921053c954e4a606d9675c6a"
303
249
  dependencies = [
304
250
  "serde",
305
251
  ]
306
252
 
307
253
  [[package]]
308
254
  name = "serde_derive"
309
- version = "1.0.198"
255
+ version = "1.0.210"
310
256
  source = "registry+https://github.com/rust-lang/crates.io-index"
311
- checksum = "e88edab869b01783ba905e7d0153f9fc1a6505a96e4ad3018011eedb838566d9"
257
+ checksum = "243902eda00fad750862fc144cea25caca5e20d615af0a81bee94ca738f1df1f"
312
258
  dependencies = [
313
259
  "proc-macro2",
314
260
  "quote",
@@ -323,9 +269,9 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67"
323
269
 
324
270
  [[package]]
325
271
  name = "syn"
326
- version = "2.0.46"
272
+ version = "2.0.62"
327
273
  source = "registry+https://github.com/rust-lang/crates.io-index"
328
- checksum = "89456b690ff72fddcecf231caedbe615c59480c93358a93dfae7fc29e3ebbf0e"
274
+ checksum = "9f660c3bfcefb88c538776b6685a0c472e3128b51e74d48793dc2a488196e8eb"
329
275
  dependencies = [
330
276
  "proc-macro2",
331
277
  "quote",
@@ -334,9 +280,9 @@ dependencies = [
334
280
 
335
281
  [[package]]
336
282
  name = "target-lexicon"
337
- version = "0.12.12"
283
+ version = "0.12.14"
338
284
  source = "registry+https://github.com/rust-lang/crates.io-index"
339
- checksum = "14c39fd04924ca3a864207c66fc2cd7d22d7c016007f9ce846cbb9326331930a"
285
+ checksum = "e1fc403891a21bcfb7c37834ba66a547a8f402146eba7265b5a6d88059c9ff2f"
340
286
 
341
287
  [[package]]
342
288
  name = "unicode-ident"
@@ -350,77 +296,20 @@ version = "0.9.4"
350
296
  source = "registry+https://github.com/rust-lang/crates.io-index"
351
297
  checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
352
298
 
353
- [[package]]
354
- name = "windows-targets"
355
- version = "0.48.5"
356
- source = "registry+https://github.com/rust-lang/crates.io-index"
357
- checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
358
- dependencies = [
359
- "windows_aarch64_gnullvm",
360
- "windows_aarch64_msvc",
361
- "windows_i686_gnu",
362
- "windows_i686_msvc",
363
- "windows_x86_64_gnu",
364
- "windows_x86_64_gnullvm",
365
- "windows_x86_64_msvc",
366
- ]
367
-
368
- [[package]]
369
- name = "windows_aarch64_gnullvm"
370
- version = "0.48.5"
371
- source = "registry+https://github.com/rust-lang/crates.io-index"
372
- checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
373
-
374
- [[package]]
375
- name = "windows_aarch64_msvc"
376
- version = "0.48.5"
377
- source = "registry+https://github.com/rust-lang/crates.io-index"
378
- checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
379
-
380
- [[package]]
381
- name = "windows_i686_gnu"
382
- version = "0.48.5"
383
- source = "registry+https://github.com/rust-lang/crates.io-index"
384
- checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
385
-
386
- [[package]]
387
- name = "windows_i686_msvc"
388
- version = "0.48.5"
389
- source = "registry+https://github.com/rust-lang/crates.io-index"
390
- checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
391
-
392
- [[package]]
393
- name = "windows_x86_64_gnu"
394
- version = "0.48.5"
395
- source = "registry+https://github.com/rust-lang/crates.io-index"
396
- checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
397
-
398
- [[package]]
399
- name = "windows_x86_64_gnullvm"
400
- version = "0.48.5"
401
- source = "registry+https://github.com/rust-lang/crates.io-index"
402
- checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
403
-
404
- [[package]]
405
- name = "windows_x86_64_msvc"
406
- version = "0.48.5"
407
- source = "registry+https://github.com/rust-lang/crates.io-index"
408
- checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
409
-
410
299
  [[package]]
411
300
  name = "zerocopy"
412
- version = "0.7.32"
301
+ version = "0.7.34"
413
302
  source = "registry+https://github.com/rust-lang/crates.io-index"
414
- checksum = "74d4d3961e53fa4c9a25a8637fc2bfaf2595b3d3ae34875568a5cf64787716be"
303
+ checksum = "ae87e3fcd617500e5d106f0380cf7b77f3c6092aae37191433159dda23cfb087"
415
304
  dependencies = [
416
305
  "zerocopy-derive",
417
306
  ]
418
307
 
419
308
  [[package]]
420
309
  name = "zerocopy-derive"
421
- version = "0.7.32"
310
+ version = "0.7.34"
422
311
  source = "registry+https://github.com/rust-lang/crates.io-index"
423
- checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6"
312
+ checksum = "15e934569e47891f7d9411f1a451d947a60e000ab3bd24fbb970f000387d1b3b"
424
313
  dependencies = [
425
314
  "proc-macro2",
426
315
  "quote",
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "ormsgpack"
3
- version = "1.5.0"
3
+ version = "1.6.0"
4
4
  authors = [
5
5
  "Aviram Hassan <aviramyhassan@gmail.com>",
6
6
  "Emanuele Giaquinta <emanuele.giaquinta@gmail.com>",
@@ -45,15 +45,15 @@ encoding_rs = { version = "0.8", default-features = false }
45
45
  half = { version = "2.4.1", default-features = false }
46
46
  itoa = { version = "1", default-features = false }
47
47
  once_cell = { version = "1", default-features = false, features = ["race"] }
48
- pyo3 = { version = "^0.21.2", default-features = false, features = ["extension-module"] }
48
+ pyo3 = { version = "^0.22.5", default-features = false, features = ["extension-module"] }
49
49
  rmp = { version = "^0.8.14", default-features = false, features = ["std"] }
50
50
  rmp-serde = { version = "1", default-features = false }
51
51
  serde = { version = "1", default-features = false }
52
- serde_bytes = { version = "0.11.14", default-features = false, features = ["std"] }
52
+ serde_bytes = { version = "0.11.15", default-features = false, features = ["std"] }
53
53
  smallvec = { version = "^1.13", default-features = false, features = ["union", "write"] }
54
54
 
55
55
  [build-dependencies]
56
- pyo3-build-config = { version = "^0.21.0" }
56
+ pyo3-build-config = { version = "^0.22.0" }
57
57
 
58
58
  [profile.release]
59
59
  codegen-units = 1
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: ormsgpack
3
- Version: 1.5.0
3
+ Version: 1.6.0
4
4
  Classifier: Development Status :: 5 - Production/Stable
5
5
  Classifier: Intended Audience :: Developers
6
6
  Classifier: License :: OSI Approved :: Apache Software License
@@ -14,6 +14,7 @@ Classifier: Programming Language :: Python :: 3.9
14
14
  Classifier: Programming Language :: Python :: 3.10
15
15
  Classifier: Programming Language :: Python :: 3.11
16
16
  Classifier: Programming Language :: Python :: 3.12
17
+ Classifier: Programming Language :: Python :: 3.13
17
18
  Classifier: Programming Language :: Python :: Implementation :: CPython
18
19
  Classifier: Programming Language :: Python
19
20
  Classifier: Programming Language :: Rust
@@ -52,7 +53,8 @@ e.g., "1970-01-01T00:00:00+00:00"
52
53
  * serializes `pydantic.BaseModel` instances natively
53
54
  * serializes arbitrary types using a `default` hook
54
55
 
55
- ormsgpack supports CPython 3.8, 3.9, 3.10, 3.11 and 3.12. ormsgpack does not support PyPy. Releases follow semantic
56
+ ormsgpack supports CPython 3.8, 3.9, 3.10, 3.11, 3.12 and 3.13.
57
+ ormsgpack does not support PyPy. Releases follow semantic
56
58
  versioning and serializing a new object type without an opt-in flag is
57
59
  considered a breaking change.
58
60
 
@@ -20,7 +20,8 @@ e.g., "1970-01-01T00:00:00+00:00"
20
20
  * serializes `pydantic.BaseModel` instances natively
21
21
  * serializes arbitrary types using a `default` hook
22
22
 
23
- ormsgpack supports CPython 3.8, 3.9, 3.10, 3.11 and 3.12. ormsgpack does not support PyPy. Releases follow semantic
23
+ ormsgpack supports CPython 3.8, 3.9, 3.10, 3.11, 3.12 and 3.13.
24
+ ormsgpack does not support PyPy. Releases follow semantic
24
25
  versioning and serializing a new object type without an opt-in flag is
25
26
  considered a breaking change.
26
27
 
@@ -16,6 +16,7 @@ classifiers = [
16
16
  "Programming Language :: Python :: 3.10",
17
17
  "Programming Language :: Python :: 3.11",
18
18
  "Programming Language :: Python :: 3.12",
19
+ "Programming Language :: Python :: 3.13",
19
20
  "Programming Language :: Python :: Implementation :: CPython",
20
21
  "Programming Language :: Python",
21
22
  "Programming Language :: Rust",
@@ -30,6 +31,14 @@ requires = ["maturin>=1.0,<2.0"]
30
31
  python-source = "python"
31
32
  strip = true
32
33
 
34
+ [tool.mypy]
35
+ exclude = "benchmarks"
36
+ strict = true
37
+
38
+ [[tool.mypy.overrides]]
39
+ module = ["msgpack"]
40
+ ignore_missing_imports = true
41
+
33
42
  [tool.ruff]
34
43
  line-length = 88
35
44
  target-version = "py38"
@@ -8,7 +8,7 @@ def packb(
8
8
  option: Optional[int] = None,
9
9
  ) -> bytes: ...
10
10
  def unpackb(
11
- __obj: Union[str, bytes, bytearray, memoryview],
11
+ obj: Union[bytes, bytearray, memoryview],
12
12
  ext_hook: Optional[Callable[[int, bytes], Any]] = ...,
13
13
  option: Optional[int] = ...,
14
14
  ) -> Any: ...
@@ -16,6 +16,9 @@ def unpackb(
16
16
  class MsgpackDecodeError(ValueError): ...
17
17
  class MsgpackEncodeError(TypeError): ...
18
18
 
19
+ class Ext:
20
+ def __init__(self, tag: int, data: bytes) -> None: ...
21
+
19
22
  OPT_NAIVE_UTC: int
20
23
  OPT_OMIT_MICROSECONDS: int
21
24
  OPT_PASSTHROUGH_BIG_INT: int
@@ -56,6 +56,26 @@ pub fn deserialize(
56
56
  }
57
57
  }
58
58
 
59
+ fn unicode_from_map_key(key: &str) -> *mut pyo3::ffi::PyObject {
60
+ if unlikely!(key.len() > 64) {
61
+ let pykey = unicode_from_str(key);
62
+ hash_str(pykey);
63
+ pykey
64
+ } else {
65
+ let hash = cache_hash(key.as_bytes());
66
+ let map = unsafe { KEY_MAP.get_mut().unwrap_or_else(|| unreachable!()) };
67
+ let entry = map.entry(&hash).or_insert_with(
68
+ || hash,
69
+ || {
70
+ let pykey = unicode_from_str(key);
71
+ hash_str(pykey);
72
+ CachedKey::new(pykey)
73
+ },
74
+ );
75
+ entry.get()
76
+ }
77
+ }
78
+
59
79
  #[derive(Clone, Copy)]
60
80
  struct MsgpackExtValue {
61
81
  ext_hook: Option<NonNull<pyo3::ffi::PyObject>>,
@@ -236,31 +256,8 @@ impl<'de> Visitor<'de> for MsgpackValue {
236
256
  let dict_ptr = ffi!(_PyDict_NewPresized(size));
237
257
  while let Some(key) = map.next_key::<Cow<str>>()? {
238
258
  let value = map.next_value_seed(self)?;
239
- let pykey: *mut pyo3::ffi::PyObject;
240
- let pyhash: pyo3::ffi::Py_hash_t;
241
- if unlikely!(key.len() > 64) {
242
- pykey = unicode_from_str(&key);
243
- pyhash = hash_str(pykey);
244
- } else {
245
- let hash = cache_hash(key.as_bytes());
246
- {
247
- let map = unsafe {
248
- KEY_MAP
249
- .get_mut()
250
- .unwrap_or_else(|| unsafe { std::hint::unreachable_unchecked() })
251
- };
252
- let entry = map.entry(&hash).or_insert_with(
253
- || hash,
254
- || {
255
- let pyob = unicode_from_str(&key);
256
- hash_str(pyob);
257
- CachedKey::new(pyob)
258
- },
259
- );
260
- pykey = entry.get();
261
- pyhash = unsafe { (*pykey.cast::<pyo3::ffi::PyASCIIObject>()).hash }
262
- }
263
- }
259
+ let pykey = unicode_from_map_key(&key);
260
+ let pyhash = unsafe { (*pykey.cast::<pyo3::ffi::PyASCIIObject>()).hash };
264
261
  let _ = ffi!(_PyDict_SetItem_KnownHash(
265
262
  dict_ptr,
266
263
  pykey,
@@ -480,21 +477,21 @@ impl<'de> Visitor<'de> for MsgpackKey {
480
477
  where
481
478
  E: de::Error,
482
479
  {
483
- Ok(nonnull!(unicode_from_str(value.as_str())))
480
+ Ok(nonnull!(unicode_from_map_key(value.as_str())))
484
481
  }
485
482
 
486
483
  fn visit_borrowed_str<E>(self, value: &str) -> Result<Self::Value, E>
487
484
  where
488
485
  E: de::Error,
489
486
  {
490
- Ok(nonnull!(unicode_from_str(value)))
487
+ Ok(nonnull!(unicode_from_map_key(value)))
491
488
  }
492
489
 
493
490
  fn visit_str<E>(self, value: &str) -> Result<Self::Value, E>
494
491
  where
495
492
  E: de::Error,
496
493
  {
497
- Ok(nonnull!(unicode_from_str(value)))
494
+ Ok(nonnull!(unicode_from_map_key(value)))
498
495
  }
499
496
 
500
497
  fn visit_bytes<E>(self, v: &[u8]) -> Result<Self::Value, E>
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