This is an automated email from the ASF dual-hosted git repository.

xuanwo pushed a commit to branch xuanwo/hf-repo-type-datasets
in repository https://gitbox.apache.org/repos/asf/opendal.git

commit bdd3d344ea395f331dc69e6bd126f91a183c6512
Author: Xuanwo <[email protected]>
AuthorDate: Thu Nov 27 19:24:10 2025 +0800

    fix(services/huggingface): Allow users to use datasets as an alias to 
dataset repo type
    
    Signed-off-by: Xuanwo <[email protected]>
---
 core/src/services/huggingface/backend.rs | 19 ++++++++++++++++++-
 core/src/services/huggingface/config.rs  |  1 +
 2 files changed, 19 insertions(+), 1 deletion(-)

diff --git a/core/src/services/huggingface/backend.rs 
b/core/src/services/huggingface/backend.rs
index 96ab07163..502e97e2a 100644
--- a/core/src/services/huggingface/backend.rs
+++ b/core/src/services/huggingface/backend.rs
@@ -44,6 +44,7 @@ impl HuggingfaceBuilder {
     /// Available values:
     /// - model
     /// - dataset
+    /// - datasets (alias for dataset)
     ///
     /// Currently, only models and datasets are supported.
     /// [Reference](https://huggingface.co/docs/hub/repositories)
@@ -128,7 +129,7 @@ impl Builder for HuggingfaceBuilder {
 
         let repo_type = match self.config.repo_type.as_deref() {
             Some("model") => Ok(RepoType::Model),
-            Some("dataset") => Ok(RepoType::Dataset),
+            Some("dataset") | Some("datasets") => Ok(RepoType::Dataset),
             Some("space") => Err(Error::new(
                 ErrorKind::ConfigInvalid,
                 "repo type \"space\" is unsupported",
@@ -290,3 +291,19 @@ pub enum RepoType {
     Model,
     Dataset,
 }
+
+#[cfg(test)]
+mod tests {
+    use super::*;
+
+    #[test]
+    fn build_accepts_datasets_alias() {
+        let backend: HuggingfaceBackend = HuggingfaceBuilder::default()
+            .repo_id("org/repo")
+            .repo_type("datasets")
+            .build()
+            .expect("builder should accept datasets alias");
+
+        assert!(matches!(backend.core.repo_type, RepoType::Dataset));
+    }
+}
diff --git a/core/src/services/huggingface/config.rs 
b/core/src/services/huggingface/config.rs
index 6b4034bfb..508eb289f 100644
--- a/core/src/services/huggingface/config.rs
+++ b/core/src/services/huggingface/config.rs
@@ -33,6 +33,7 @@ pub struct HuggingfaceConfig {
     /// Available values:
     /// - model
     /// - dataset
+    /// - datasets (alias for dataset)
     pub repo_type: Option<String>,
     /// Repo id of this backend.
     ///

Reply via email to