1
1
from argparse import ArgumentParser
2
2
from typing import Optional
3
3
4
+ from huggingface_hub import HfApi
5
+
6
+ import datasets .config
4
7
from datasets .commands import BaseDatasetsCLICommand
5
8
from datasets .hub import convert_to_parquet
6
9
@@ -26,6 +29,11 @@ def register_subcommand(parser):
26
29
parser .add_argument (
27
30
"--trust_remote_code" , action = "store_true" , help = "whether to trust the code execution of the load script"
28
31
)
32
+ parser .add_argument (
33
+ "--merge-pull-request" ,
34
+ action = "store_true" ,
35
+ help = "whether to automatically merge the pull request(s) after conversion" ,
36
+ )
29
37
parser .set_defaults (func = _command_factory )
30
38
31
39
def __init__ (
@@ -39,8 +47,22 @@ def __init__(
39
47
self ._token = token
40
48
self ._revision = revision
41
49
self ._trust_remote_code = trust_remote_code
50
+ self ._merge_pull_request = False
42
51
43
52
def run (self ) -> None :
44
- _ = convert_to_parquet (
45
- self ._dataset_id , revision = self ._revision , token = self ._token , trust_remote_code = self ._trust_remote_code
53
+ commit_info = convert_to_parquet (
54
+ self ._dataset_id ,
55
+ revision = self ._revision ,
56
+ token = self ._token ,
57
+ trust_remote_code = self ._trust_remote_code ,
58
+ merge_pull_request = self ._merge_pull_request ,
46
59
)
60
+
61
+ if self ._merge_pull_request :
62
+ api = HfApi (endpoint = datasets .config .HF_ENDPOINT , token = self ._token )
63
+ api .merge_pull_request (
64
+ repo_id = self ._dataset_id ,
65
+ discussion_num = int (commit_info .pr_num ),
66
+ token = self ._token ,
67
+ repo_type = "dataset" ,
68
+ )
0 commit comments