Skip to content

Commit cfca873

Browse files
committed
CLI to login/upload/download
1 parent 62fd093 commit cfca873

File tree

1 file changed

+55
-0
lines changed

1 file changed

+55
-0
lines changed

roboflowpy.py

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
import argparse
2+
import roboflow
3+
4+
def login(args):
5+
roboflow.login()
6+
7+
def download(args):
8+
rf = roboflow.Roboflow()
9+
w, p, v = args.datasetUrl.split("/")
10+
format, location = args.f, args.l
11+
project = rf.workspace(w).project(p)
12+
project.version(int(v)).download(format, location=location, overwrite=True)
13+
14+
def upload(args):
15+
rf = roboflow.Roboflow()
16+
f, w, p, folder = args.f, args.w, args.p, args.folder
17+
workspace = rf.workspace(w)
18+
workspace.upload_dataset(
19+
dataset_path=folder,
20+
dataset_format=f,
21+
project_name=p,
22+
)
23+
24+
25+
def main():
26+
parser = argparse.ArgumentParser(description="main description")
27+
subparsers = parser.add_subparsers(title="subcommands")
28+
29+
login_parser = subparsers.add_parser("login", help="Log in to Roboflow")
30+
login_parser.set_defaults(func=login)
31+
32+
download_parser = subparsers.add_parser("download", help="Download a dataset version from your workspace or Roboflow Universe.")
33+
download_parser.add_argument("datasetUrl", help="Dataset URL (e.g., `roboflow-100/cells-uyemf/2`)")
34+
download_parser.add_argument("-f",
35+
choices=["coco", "yolov5pytorch", "yolov7pytorch", "my-yolov6", "darknet", "voc", "tfrecord",
36+
"createml", "clip", "multiclass", "coco-segmentation", "yolo5-obb", "png-mask-semantic"],
37+
help="Specify the format to download the version in (default: interactive prompt)")
38+
download_parser.add_argument("-l", help="Location to download the dataset")
39+
download_parser.set_defaults(func=download)
40+
41+
upload_parser = subparsers.add_parser("upload", help="Upload a dataset")
42+
upload_parser.add_argument("folder", help="filesystem path to a folder that contains your dataset")
43+
upload_parser.add_argument("-w", help="workspace url")
44+
upload_parser.add_argument("-p", help="Project name")
45+
upload_parser.add_argument("-f", choices=["voc", "yolov8", "yolov5"], help="format")
46+
upload_parser.set_defaults(func=upload)
47+
48+
args = parser.parse_args()
49+
if hasattr(args, 'func'):
50+
args.func(args)
51+
else:
52+
parser.print_help()
53+
54+
if __name__ == "__main__":
55+
main()

0 commit comments

Comments
 (0)