safetensors 0.1.4 → 0.2.1

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: caf06a30fc9e3711ab467b3dbf45e4f8ce1ff2a179719cc3f57b2a3989a21adc
4
- data.tar.gz: 9b96ba44a723395eaf1302cada51b6b03330444a36efaaf69914ce6cb3464ed4
3
+ metadata.gz: 547c0781cd2c693db2a6605bca61004833aa668876f1512673ed7e5a44b6d30d
4
+ data.tar.gz: be088a6e2c725dfbc32a16c3864f8bc23ff4f58ee86fcf6c3388f64d98fb0223
5
5
  SHA512:
6
- metadata.gz: 035cad7be8907ea5ef0bc69788ffe8e97402780836b7bf5fe36a737b410a21428c3530b2d4b4a5c0ee656fb5078aa727f4c04765b183819ef4b171268c4158cc
7
- data.tar.gz: 0b9faa461794a0388bacb598943f24c0cc44e3875b8c80fe38e3d5c1fe5f2a0d4c3735201cf7ef230f0f8f1ac41ad44d1e4915d5792178d7d860e2e47bac541c
6
+ metadata.gz: 270ea7030272173f04939528d34ae49d8d8a15f7ac51adb62fe6c93990e551257bce124c9bc983bbda70851322e66c4149f4483815f26b504a9528067b61dc1e
7
+ data.tar.gz: 7e4c3681d5443bb85d5226590d4dfe1b42a1c8ecf597ace1f136f89c6456070878cefc4f81ddf8247d8243f5c4fc20897af800c55e16aa4746d271d4cccdda53
data/CHANGELOG.md CHANGED
@@ -1,3 +1,12 @@
1
+ ## 0.2.1 (2025-11-22)
2
+
3
+ - Updated Safetensors to 0.7.0
4
+
5
+ ## 0.2.0 (2025-06-23)
6
+
7
+ - Updated Safetensors to 0.6.0
8
+ - Dropped support for Ruby < 3.2
9
+
1
10
  ## 0.1.4 (2025-05-04)
2
11
 
3
12
  - Updated Safetensors to 0.5.3
data/Cargo.lock CHANGED
@@ -11,6 +11,12 @@ dependencies = [
11
11
  "memchr",
12
12
  ]
13
13
 
14
+ [[package]]
15
+ name = "allocator-api2"
16
+ version = "0.2.21"
17
+ source = "registry+https://github.com/rust-lang/crates.io-index"
18
+ checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923"
19
+
14
20
  [[package]]
15
21
  name = "bindgen"
16
22
  version = "0.69.5"
@@ -33,9 +39,9 @@ dependencies = [
33
39
 
34
40
  [[package]]
35
41
  name = "bitflags"
36
- version = "2.9.0"
42
+ version = "2.9.1"
37
43
  source = "registry+https://github.com/rust-lang/crates.io-index"
38
- checksum = "5c8214115b7bf84099f1309324e63141d4c5d7cc26862f97a0a857dbefe165bd"
44
+ checksum = "1b8e56985ec62d17e9c1001dc89c88ecd7dc08e47eba5ec7c29c7b5eeecde967"
39
45
 
40
46
  [[package]]
41
47
  name = "cexpr"
@@ -48,9 +54,9 @@ dependencies = [
48
54
 
49
55
  [[package]]
50
56
  name = "cfg-if"
51
- version = "1.0.0"
57
+ version = "1.0.1"
52
58
  source = "registry+https://github.com/rust-lang/crates.io-index"
53
- checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
59
+ checksum = "9555578bc9e57714c812a1f84e4fc5b4d21fcb063490c624de019f7464c91268"
54
60
 
55
61
  [[package]]
56
62
  name = "clang-sys"
@@ -69,12 +75,36 @@ version = "1.15.0"
69
75
  source = "registry+https://github.com/rust-lang/crates.io-index"
70
76
  checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719"
71
77
 
78
+ [[package]]
79
+ name = "equivalent"
80
+ version = "1.0.2"
81
+ source = "registry+https://github.com/rust-lang/crates.io-index"
82
+ checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f"
83
+
84
+ [[package]]
85
+ name = "foldhash"
86
+ version = "0.2.0"
87
+ source = "registry+https://github.com/rust-lang/crates.io-index"
88
+ checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb"
89
+
72
90
  [[package]]
73
91
  name = "glob"
74
92
  version = "0.3.2"
75
93
  source = "registry+https://github.com/rust-lang/crates.io-index"
76
94
  checksum = "a8d1add55171497b4705a648c6b583acafb01d58050a51727785f0b2c8e0a2b2"
77
95
 
96
+ [[package]]
97
+ name = "hashbrown"
98
+ version = "0.16.0"
99
+ source = "registry+https://github.com/rust-lang/crates.io-index"
100
+ checksum = "5419bdc4f6a9207fbeba6d11b604d481addf78ecd10c11ad51e76c2f6482748d"
101
+ dependencies = [
102
+ "allocator-api2",
103
+ "equivalent",
104
+ "foldhash",
105
+ "serde",
106
+ ]
107
+
78
108
  [[package]]
79
109
  name = "itertools"
80
110
  version = "0.12.1"
@@ -104,15 +134,15 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55"
104
134
 
105
135
  [[package]]
106
136
  name = "libc"
107
- version = "0.2.172"
137
+ version = "0.2.174"
108
138
  source = "registry+https://github.com/rust-lang/crates.io-index"
109
- checksum = "d750af042f7ef4f724306de029d18836c26c1765a54a6a3f094cbd23a7267ffa"
139
+ checksum = "1171693293099992e19cddea4e8b849964e9846f4acee11b3948bcc337be8776"
110
140
 
111
141
  [[package]]
112
142
  name = "libloading"
113
- version = "0.8.6"
143
+ version = "0.8.8"
114
144
  source = "registry+https://github.com/rust-lang/crates.io-index"
115
- checksum = "fc2f4eb4bc735547cfed7c0a4922cbd04a4655978c09b54f1f7b228750664c34"
145
+ checksum = "07033963ba89ebaf1584d767badaa2e8fcec21aedea6b8c0346d487d49c28667"
116
146
  dependencies = [
117
147
  "cfg-if",
118
148
  "windows-targets",
@@ -120,9 +150,9 @@ dependencies = [
120
150
 
121
151
  [[package]]
122
152
  name = "magnus"
123
- version = "0.7.1"
153
+ version = "0.8.1"
124
154
  source = "registry+https://github.com/rust-lang/crates.io-index"
125
- checksum = "3d87ae53030f3a22e83879e666cb94e58a7bdf31706878a0ba48752994146dab"
155
+ checksum = "bd2ac6e71886be00ac34db92aa732c793c5107c95191805b9a1c7e70e6d342e0"
126
156
  dependencies = [
127
157
  "magnus-macros",
128
158
  "rb-sys",
@@ -132,9 +162,9 @@ dependencies = [
132
162
 
133
163
  [[package]]
134
164
  name = "magnus-macros"
135
- version = "0.6.0"
165
+ version = "0.8.0"
136
166
  source = "registry+https://github.com/rust-lang/crates.io-index"
137
- checksum = "5968c820e2960565f647819f5928a42d6e874551cab9d88d75e3e0660d7f71e3"
167
+ checksum = "47607461fd8e1513cb4f2076c197d8092d921a1ea75bd08af97398f593751892"
138
168
  dependencies = [
139
169
  "proc-macro2",
140
170
  "quote",
@@ -143,9 +173,9 @@ dependencies = [
143
173
 
144
174
  [[package]]
145
175
  name = "memchr"
146
- version = "2.7.4"
176
+ version = "2.7.5"
147
177
  source = "registry+https://github.com/rust-lang/crates.io-index"
148
- checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3"
178
+ checksum = "32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0"
149
179
 
150
180
  [[package]]
151
181
  name = "memmap2"
@@ -192,18 +222,18 @@ dependencies = [
192
222
 
193
223
  [[package]]
194
224
  name = "rb-sys"
195
- version = "0.9.111"
225
+ version = "0.9.117"
196
226
  source = "registry+https://github.com/rust-lang/crates.io-index"
197
- checksum = "becea799ce051c16fb140be80f5e7cf781070f99ca099332383c2b17861249af"
227
+ checksum = "f900d1ce4629a2ebffaf5de74bd8f9c1188d4c5ed406df02f97e22f77a006f44"
198
228
  dependencies = [
199
229
  "rb-sys-build",
200
230
  ]
201
231
 
202
232
  [[package]]
203
233
  name = "rb-sys-build"
204
- version = "0.9.111"
234
+ version = "0.9.117"
205
235
  source = "registry+https://github.com/rust-lang/crates.io-index"
206
- checksum = "64691175abc704862f60a9ca8ef06174080cc50615f2bf1d4759f46db18b4d29"
236
+ checksum = "ef1e9c857028f631056bcd6d88cec390c751e343ce2223ddb26d23eb4a151d59"
207
237
  dependencies = [
208
238
  "bindgen",
209
239
  "lazy_static",
@@ -216,9 +246,9 @@ dependencies = [
216
246
 
217
247
  [[package]]
218
248
  name = "rb-sys-env"
219
- version = "0.1.2"
249
+ version = "0.2.2"
220
250
  source = "registry+https://github.com/rust-lang/crates.io-index"
221
- checksum = "a35802679f07360454b418a5d1735c89716bde01d35b1560fc953c1415a0b3bb"
251
+ checksum = "08f8d2924cf136a1315e2b4c7460a39f62ef11ee5d522df9b2750fab55b868b6"
222
252
 
223
253
  [[package]]
224
254
  name = "regex"
@@ -263,20 +293,21 @@ checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f"
263
293
 
264
294
  [[package]]
265
295
  name = "safetensors"
266
- version = "0.1.4"
296
+ version = "0.2.1"
267
297
  dependencies = [
268
298
  "magnus",
269
299
  "memmap2",
270
- "safetensors 0.5.3",
300
+ "safetensors 0.7.0",
271
301
  "serde_json",
272
302
  ]
273
303
 
274
304
  [[package]]
275
305
  name = "safetensors"
276
- version = "0.5.3"
306
+ version = "0.7.0"
277
307
  source = "registry+https://github.com/rust-lang/crates.io-index"
278
- checksum = "cc0cdb7198d738a111f6df8fef42cb175412c311d0c4ac9126ff4e550ad1a0e8"
308
+ checksum = "675656c1eabb620b921efea4f9199f97fc86e36dd6ffd1fbbe48d0f59a4987f5"
279
309
  dependencies = [
310
+ "hashbrown",
280
311
  "serde",
281
312
  "serde_json",
282
313
  ]
@@ -333,9 +364,9 @@ checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
333
364
 
334
365
  [[package]]
335
366
  name = "syn"
336
- version = "2.0.101"
367
+ version = "2.0.104"
337
368
  source = "registry+https://github.com/rust-lang/crates.io-index"
338
- checksum = "8ce2b7fc941b3a24138a0a7cf8e858bfc6a992e7978a068a5c760deb0ed43caf"
369
+ checksum = "17b6f705963418cdb9927482fa304bc562ece2fdd4f616084c50b7023b435a40"
339
370
  dependencies = [
340
371
  "proc-macro2",
341
372
  "quote",
@@ -350,9 +381,9 @@ checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512"
350
381
 
351
382
  [[package]]
352
383
  name = "windows-targets"
353
- version = "0.52.6"
384
+ version = "0.53.2"
354
385
  source = "registry+https://github.com/rust-lang/crates.io-index"
355
- checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973"
386
+ checksum = "c66f69fcc9ce11da9966ddb31a40968cad001c5bedeb5c2b82ede4253ab48aef"
356
387
  dependencies = [
357
388
  "windows_aarch64_gnullvm",
358
389
  "windows_aarch64_msvc",
@@ -366,48 +397,48 @@ dependencies = [
366
397
 
367
398
  [[package]]
368
399
  name = "windows_aarch64_gnullvm"
369
- version = "0.52.6"
400
+ version = "0.53.0"
370
401
  source = "registry+https://github.com/rust-lang/crates.io-index"
371
- checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3"
402
+ checksum = "86b8d5f90ddd19cb4a147a5fa63ca848db3df085e25fee3cc10b39b6eebae764"
372
403
 
373
404
  [[package]]
374
405
  name = "windows_aarch64_msvc"
375
- version = "0.52.6"
406
+ version = "0.53.0"
376
407
  source = "registry+https://github.com/rust-lang/crates.io-index"
377
- checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469"
408
+ checksum = "c7651a1f62a11b8cbd5e0d42526e55f2c99886c77e007179efff86c2b137e66c"
378
409
 
379
410
  [[package]]
380
411
  name = "windows_i686_gnu"
381
- version = "0.52.6"
412
+ version = "0.53.0"
382
413
  source = "registry+https://github.com/rust-lang/crates.io-index"
383
- checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b"
414
+ checksum = "c1dc67659d35f387f5f6c479dc4e28f1d4bb90ddd1a5d3da2e5d97b42d6272c3"
384
415
 
385
416
  [[package]]
386
417
  name = "windows_i686_gnullvm"
387
- version = "0.52.6"
418
+ version = "0.53.0"
388
419
  source = "registry+https://github.com/rust-lang/crates.io-index"
389
- checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66"
420
+ checksum = "9ce6ccbdedbf6d6354471319e781c0dfef054c81fbc7cf83f338a4296c0cae11"
390
421
 
391
422
  [[package]]
392
423
  name = "windows_i686_msvc"
393
- version = "0.52.6"
424
+ version = "0.53.0"
394
425
  source = "registry+https://github.com/rust-lang/crates.io-index"
395
- checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66"
426
+ checksum = "581fee95406bb13382d2f65cd4a908ca7b1e4c2f1917f143ba16efe98a589b5d"
396
427
 
397
428
  [[package]]
398
429
  name = "windows_x86_64_gnu"
399
- version = "0.52.6"
430
+ version = "0.53.0"
400
431
  source = "registry+https://github.com/rust-lang/crates.io-index"
401
- checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78"
432
+ checksum = "2e55b5ac9ea33f2fc1716d1742db15574fd6fc8dadc51caab1c16a3d3b4190ba"
402
433
 
403
434
  [[package]]
404
435
  name = "windows_x86_64_gnullvm"
405
- version = "0.52.6"
436
+ version = "0.53.0"
406
437
  source = "registry+https://github.com/rust-lang/crates.io-index"
407
- checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d"
438
+ checksum = "0a6e035dd0599267ce1ee132e51c27dd29437f63325753051e71dd9e42406c57"
408
439
 
409
440
  [[package]]
410
441
  name = "windows_x86_64_msvc"
411
- version = "0.52.6"
442
+ version = "0.53.0"
412
443
  source = "registry+https://github.com/rust-lang/crates.io-index"
413
- checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec"
444
+ checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486"
@@ -1,17 +1,17 @@
1
1
  [package]
2
2
  name = "safetensors"
3
- version = "0.1.4"
3
+ version = "0.2.1"
4
4
  license = "Apache-2.0"
5
5
  authors = ["Andrew Kane <andrew@ankane.org>"]
6
6
  edition = "2021"
7
- rust-version = "1.62.0"
7
+ rust-version = "1.80"
8
8
  publish = false
9
9
 
10
10
  [lib]
11
11
  crate-type = ["cdylib"]
12
12
 
13
13
  [dependencies]
14
- magnus = "0.7"
14
+ magnus = "0.8"
15
15
  memmap2 = "0.5"
16
- safetensors = "=0.5.3"
16
+ safetensors = "=0.7.0"
17
17
  serde_json = "1"
@@ -79,12 +79,16 @@ fn prepare(tensor_dict: &RHash) -> RbResult<HashMap<String, TensorView<'_>>> {
79
79
  Ok(tensors)
80
80
  }
81
81
 
82
- fn serialize(tensor_dict: RHash, metadata: Option<HashMap<String, String>>) -> RbResult<RString> {
82
+ fn serialize(
83
+ ruby: &Ruby,
84
+ tensor_dict: RHash,
85
+ metadata: Option<HashMap<String, String>>,
86
+ ) -> RbResult<RString> {
83
87
  let tensors = prepare(&tensor_dict)?;
84
88
  let metadata_map = metadata.map(HashMap::from_iter);
85
- let out = safetensors::tensor::serialize(&tensors, &metadata_map)
89
+ let out = safetensors::tensor::serialize(&tensors, metadata_map)
86
90
  .map_err(|e| SafetensorError::new_err(format!("Error while serializing: {e:?}")))?;
87
- let rbbytes = RString::from_slice(&out);
91
+ let rbbytes = ruby.str_from_slice(&out);
88
92
  Ok(rbbytes)
89
93
  }
90
94
 
@@ -94,25 +98,25 @@ fn serialize_file(
94
98
  metadata: Option<HashMap<String, String>>,
95
99
  ) -> RbResult<()> {
96
100
  let tensors = prepare(&tensor_dict)?;
97
- safetensors::tensor::serialize_to_file(&tensors, &metadata, filename.as_path())
101
+ safetensors::tensor::serialize_to_file(&tensors, metadata, filename.as_path())
98
102
  .map_err(|e| SafetensorError::new_err(format!("Error while serializing: {e:?}")))?;
99
103
  Ok(())
100
104
  }
101
105
 
102
- fn deserialize(bytes: RString) -> RbResult<RArray> {
106
+ fn deserialize(ruby: &Ruby, bytes: RString) -> RbResult<RArray> {
103
107
  let safetensor = SafeTensors::deserialize(unsafe { bytes.as_slice() })
104
108
  .map_err(|e| SafetensorError::new_err(format!("Error while deserializing: {e:?}")))?;
105
109
 
106
110
  let tensors = safetensor.tensors();
107
- let items = RArray::with_capacity(tensors.len());
111
+ let items = ruby.ary_new_capa(tensors.len());
108
112
 
109
113
  for (tensor_name, tensor) in tensors {
110
- let rbshape = RArray::from_vec(tensor.shape().to_vec());
114
+ let rbshape = ruby.ary_from_vec(tensor.shape().to_vec());
111
115
  let rbdtype = format!("{:?}", tensor.dtype());
112
116
 
113
- let rbdata = RString::from_slice(tensor.data());
117
+ let rbdata = ruby.str_from_slice(tensor.data());
114
118
 
115
- let map = RHash::new();
119
+ let map = ruby.hash_new();
116
120
  map.aset("shape", rbshape)?;
117
121
  map.aset("dtype", rbdtype)?;
118
122
  map.aset("data", rbdata)?;
@@ -279,7 +283,7 @@ impl Open {
279
283
  Ok(keys)
280
284
  }
281
285
 
282
- pub fn get_tensor(&self, name: &str) -> RbResult<Value> {
286
+ pub fn get_tensor(&self, ruby: &Ruby, name: &str) -> RbResult<Value> {
283
287
  let info = self.metadata.info(name).ok_or_else(|| {
284
288
  SafetensorError::new_err(format!("File does not contain tensor {name}",))
285
289
  })?;
@@ -289,9 +293,10 @@ impl Open {
289
293
  let data =
290
294
  &mmap[info.data_offsets.0 + self.offset..info.data_offsets.1 + self.offset];
291
295
 
292
- let array: Value = RString::from_slice(data).into_value();
296
+ let array: Value = ruby.str_from_slice(data).as_value();
293
297
 
294
298
  create_tensor(
299
+ ruby,
295
300
  &self.framework,
296
301
  info.dtype,
297
302
  &info.shape,
@@ -332,19 +337,19 @@ impl SafeOpen {
332
337
  self.inner()?.keys()
333
338
  }
334
339
 
335
- pub fn get_tensor(&self, name: String) -> RbResult<Value> {
336
- self.inner()?.get_tensor(&name)
340
+ pub fn get_tensor(ruby: &Ruby, rb_self: &Self, name: String) -> RbResult<Value> {
341
+ rb_self.inner()?.get_tensor(ruby, &name)
337
342
  }
338
343
  }
339
344
 
340
345
  fn create_tensor(
346
+ ruby: &Ruby,
341
347
  framework: &Framework,
342
348
  dtype: Dtype,
343
349
  shape: &[usize],
344
350
  array: Value,
345
351
  device: &Device,
346
352
  ) -> RbResult<Value> {
347
- let ruby = Ruby::get().unwrap();
348
353
  let (module, is_numo): (RModule, bool) = match framework {
349
354
  Framework::Pytorch => (
350
355
  ruby.class_object()
@@ -360,7 +365,7 @@ fn create_tensor(
360
365
  ),
361
366
  };
362
367
 
363
- let dtype = get_rbdtype(module, dtype, is_numo)?;
368
+ let dtype = get_rbdtype(ruby, module, dtype, is_numo)?;
364
369
  let shape = shape.to_vec();
365
370
  let tensor: Value = match framework {
366
371
  Framework::Pytorch => {
@@ -378,19 +383,19 @@ fn create_tensor(
378
383
  Ok(tensor)
379
384
  }
380
385
 
381
- fn get_rbdtype(_module: RModule, dtype: Dtype, is_numo: bool) -> RbResult<Value> {
382
- let dtype: Value = if is_numo {
386
+ fn get_rbdtype(ruby: &Ruby, _module: RModule, dtype: Dtype, is_numo: bool) -> RbResult<Symbol> {
387
+ let dtype: Symbol = if is_numo {
383
388
  match dtype {
384
- Dtype::F64 => Symbol::new("DFloat").into_value(),
385
- Dtype::F32 => Symbol::new("SFloat").into_value(),
386
- Dtype::U64 => Symbol::new("UInt64").into_value(),
387
- Dtype::I64 => Symbol::new("Int64").into_value(),
388
- Dtype::U32 => Symbol::new("UInt32").into_value(),
389
- Dtype::I32 => Symbol::new("Int32").into_value(),
390
- Dtype::U16 => Symbol::new("UInt16").into_value(),
391
- Dtype::I16 => Symbol::new("Int16").into_value(),
392
- Dtype::U8 => Symbol::new("UInt8").into_value(),
393
- Dtype::I8 => Symbol::new("Int8").into_value(),
389
+ Dtype::F64 => ruby.to_symbol("DFloat"),
390
+ Dtype::F32 => ruby.to_symbol("SFloat"),
391
+ Dtype::U64 => ruby.to_symbol("UInt64"),
392
+ Dtype::I64 => ruby.to_symbol("Int64"),
393
+ Dtype::U32 => ruby.to_symbol("UInt32"),
394
+ Dtype::I32 => ruby.to_symbol("Int32"),
395
+ Dtype::U16 => ruby.to_symbol("UInt16"),
396
+ Dtype::I16 => ruby.to_symbol("Int16"),
397
+ Dtype::U8 => ruby.to_symbol("UInt8"),
398
+ Dtype::I8 => ruby.to_symbol("Int8"),
394
399
  dtype => {
395
400
  return Err(SafetensorError::new_err(format!(
396
401
  "Dtype not understood: {dtype:?}"
@@ -399,21 +404,21 @@ fn get_rbdtype(_module: RModule, dtype: Dtype, is_numo: bool) -> RbResult<Value>
399
404
  }
400
405
  } else {
401
406
  match dtype {
402
- Dtype::F64 => Symbol::new("float64").into_value(),
403
- Dtype::F32 => Symbol::new("float32").into_value(),
404
- Dtype::BF16 => Symbol::new("bfloat16").into_value(),
405
- Dtype::F16 => Symbol::new("float16").into_value(),
406
- Dtype::U64 => Symbol::new("uint64").into_value(),
407
- Dtype::I64 => Symbol::new("int64").into_value(),
408
- Dtype::U32 => Symbol::new("uint32").into_value(),
409
- Dtype::I32 => Symbol::new("int32").into_value(),
410
- Dtype::U16 => Symbol::new("uint16").into_value(),
411
- Dtype::I16 => Symbol::new("int16").into_value(),
412
- Dtype::U8 => Symbol::new("uint8").into_value(),
413
- Dtype::I8 => Symbol::new("int8").into_value(),
414
- Dtype::BOOL => Symbol::new("bool").into_value(),
415
- Dtype::F8_E4M3 => Symbol::new("float8_e4m3fn").into_value(),
416
- Dtype::F8_E5M2 => Symbol::new("float8_e5m2").into_value(),
407
+ Dtype::F64 => ruby.to_symbol("float64"),
408
+ Dtype::F32 => ruby.to_symbol("float32"),
409
+ Dtype::BF16 => ruby.to_symbol("bfloat16"),
410
+ Dtype::F16 => ruby.to_symbol("float16"),
411
+ Dtype::U64 => ruby.to_symbol("uint64"),
412
+ Dtype::I64 => ruby.to_symbol("int64"),
413
+ Dtype::U32 => ruby.to_symbol("uint32"),
414
+ Dtype::I32 => ruby.to_symbol("int32"),
415
+ Dtype::U16 => ruby.to_symbol("uint16"),
416
+ Dtype::I16 => ruby.to_symbol("int16"),
417
+ Dtype::U8 => ruby.to_symbol("uint8"),
418
+ Dtype::I8 => ruby.to_symbol("int8"),
419
+ Dtype::BOOL => ruby.to_symbol("bool"),
420
+ Dtype::F8_E4M3 => ruby.to_symbol("float8_e4m3fn"),
421
+ Dtype::F8_E5M2 => ruby.to_symbol("float8_e5m2"),
417
422
  dtype => {
418
423
  return Err(SafetensorError::new_err(format!(
419
424
  "Dtype not understood: {dtype:?}"
@@ -1,3 +1,3 @@
1
1
  module Safetensors
2
- VERSION = "0.1.4"
2
+ VERSION = "0.2.1"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: safetensors
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Kane
@@ -52,14 +52,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
52
52
  requirements:
53
53
  - - ">="
54
54
  - !ruby/object:Gem::Version
55
- version: '3.1'
55
+ version: '3.2'
56
56
  required_rubygems_version: !ruby/object:Gem::Requirement
57
57
  requirements:
58
58
  - - ">="
59
59
  - !ruby/object:Gem::Version
60
60
  version: '0'
61
61
  requirements: []
62
- rubygems_version: 3.6.7
62
+ rubygems_version: 3.6.9
63
63
  specification_version: 4
64
64
  summary: Simple, safe way to store and distribute tensors
65
65
  test_files: []