Skip to content

Commit 20f495c

Browse files
committed
Added from_str method to Tokenizer
1 parent 247eef9 commit 20f495c

File tree

3 files changed

+15
-1
lines changed

3 files changed

+15
-1
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
## 0.5.2 (unreleased)
2+
3+
- Added `from_str` method to `Tokenizer`
4+
15
## 0.5.1 (2024-08-13)
26

37
- Updated Tokenizers to 0.20.0

ext/tokenizers/src/lib.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ fn init(ruby: &Ruby) -> RbResult<()> {
4242

4343
let class = module.define_class("Tokenizer", ruby.class_object())?;
4444
class.define_singleton_method("new", function!(RbTokenizer::from_model, 1))?;
45+
class.define_singleton_method("from_str", function!(RbTokenizer::from_str, 1))?;
4546
class.define_singleton_method("from_file", function!(RbTokenizer::from_file, 1))?;
4647
class.define_method(
4748
"add_special_tokens",

ext/tokenizers/src/tokenizer.rs

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
use std::cell::RefCell;
22
use std::collections::HashMap;
33
use std::path::PathBuf;
4+
use std::str::FromStr;
45

56
use magnus::prelude::*;
6-
use magnus::{exception, Error, RArray, RHash, Symbol, TryConvert, Value};
7+
use magnus::{exception, Error, RArray, RHash, RString, Symbol, TryConvert, Value};
78
use tk::tokenizer::{
89
Model, PaddingDirection, PaddingParams, PaddingStrategy,
910
TruncationDirection, TruncationParams, TruncationStrategy, TokenizerImpl
@@ -203,6 +204,14 @@ impl RbTokenizer {
203204
RbTokenizer::new(TokenizerImpl::new(model.clone()))
204205
}
205206

207+
pub fn from_str(json: RString) -> RbResult<Self> {
208+
Tokenizer::from_str(unsafe { json.as_str()? })
209+
.map(|v| RbTokenizer {
210+
tokenizer: RefCell::new(v),
211+
})
212+
.map_err(RbError::from)
213+
}
214+
206215
pub fn from_file(path: PathBuf) -> RbResult<Self> {
207216
Tokenizer::from_file(path)
208217
.map(|v| RbTokenizer {

0 commit comments

Comments
 (0)