Skip to content

Commit 116147f

Browse files
committed
Adopt Sendable protocol for tokenizer protocols and conforming types
1 parent f234387 commit 116147f

File tree

4 files changed

+8
-8
lines changed

4 files changed

+8
-8
lines changed

Sources/Tokenizers/BPETokenizer.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
import Foundation
1010
import Hub
1111

12-
struct BytePair: Hashable {
12+
struct BytePair: Hashable, Sendable {
1313
let a: String
1414
let b: String
1515
init(_ a: String, _ b: String) {
@@ -32,7 +32,7 @@ struct BytePair: Hashable {
3232
}
3333
}
3434

35-
class BPETokenizer: PreTrainedTokenizerModel {
35+
class BPETokenizer: PreTrainedTokenizerModel, @unchecked Sendable {
3636
let bpeRanks: [BytePair: Int]
3737
private let tokensToIds: [NSString: Int]
3838
private let idsToTokens: [Int: NSString]

Sources/Tokenizers/BertTokenizer.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
import Foundation
1010
import Hub
1111

12-
public class BertTokenizer {
12+
public class BertTokenizer: @unchecked Sendable {
1313
private let basicTokenizer: BasicTokenizer
1414
private let wordpieceTokenizer: WordpieceTokenizer
1515
private let maxLen = 512

Sources/Tokenizers/Tokenizer.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@ public enum ChatTemplateArgument {
150150
case name(String)
151151
}
152152

153-
public protocol Tokenizer {
153+
public protocol Tokenizer: Sendable {
154154
func tokenize(text: String) -> [String]
155155

156156
/// Main entry point
@@ -268,7 +268,7 @@ let specialTokenAttributes: [String] = [
268268
"additional_special_tokens",
269269
]
270270

271-
public class PreTrainedTokenizer: Tokenizer {
271+
public class PreTrainedTokenizer: @unchecked Sendable, Tokenizer {
272272
let model: TokenizingModel
273273

274274
public var bosToken: String? { model.bosToken }
@@ -652,7 +652,7 @@ public extension AutoTokenizer {
652652

653653
// MARK: - Tokenizer model classes
654654

655-
class T5Tokenizer: UnigramTokenizer {}
655+
class T5Tokenizer: UnigramTokenizer, @unchecked Sendable {}
656656

657657
// MARK: - PreTrainedTokenizer classes
658658

@@ -701,7 +701,7 @@ func maybeUpdatePostProcessor(tokenizerConfig: Config, processorConfig: Config?)
701701
}
702702

703703
/// See https://github.com/xenova/transformers.js/blob/1a9964fb09b8f54fcbeac46dc6aae8d76795809d/src/tokenizers.js#L3203 for these exceptions
704-
class LlamaPreTrainedTokenizer: PreTrainedTokenizer {
704+
class LlamaPreTrainedTokenizer: PreTrainedTokenizer, @unchecked Sendable {
705705
let isLegacy: Bool
706706

707707
required init(tokenizerConfig: Config, tokenizerData: Config, strict: Bool = true) throws {

Sources/Tokenizers/UnigramTokenizer.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
import Foundation
1010
import Hub
1111

12-
class UnigramTokenizer: PreTrainedTokenizerModel {
12+
class UnigramTokenizer: PreTrainedTokenizerModel, @unchecked Sendable {
1313
struct SentencePieceToken {
1414
var token: String
1515
var score: Float

0 commit comments

Comments
 (0)