ml-dash 0.5.4__tar.gz → 0.5.9__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: ml-dash
3
- Version: 0.5.4
3
+ Version: 0.5.9
4
4
  Summary: ML experiment tracking and data storage
5
5
  Keywords: machine-learning,experiment-tracking,mlops,data-storage
6
6
  Author: Ge Yang, Tom Tao
@@ -38,6 +38,10 @@ Classifier: Programming Language :: Python :: 3.13
38
38
  Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
39
39
  Requires-Dist: httpx>=0.27.0
40
40
  Requires-Dist: pyjwt>=2.8.0
41
+ Requires-Dist: imageio>=2.31.0
42
+ Requires-Dist: imageio-ffmpeg>=0.4.9
43
+ Requires-Dist: scikit-image>=0.21.0
44
+ Requires-Dist: rich>=13.0.0
41
45
  Requires-Dist: pytest>=8.0.0 ; extra == 'dev'
42
46
  Requires-Dist: pytest-asyncio>=0.23.0 ; extra == 'dev'
43
47
  Requires-Dist: sphinx>=7.2.0 ; extra == 'dev'
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "ml-dash"
3
- version = "0.5.4"
3
+ version = "0.5.9"
4
4
  description = "ML experiment tracking and data storage"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.9"
@@ -26,8 +26,15 @@ classifiers = [
26
26
  dependencies = [
27
27
  "httpx>=0.27.0",
28
28
  "pyjwt>=2.8.0",
29
+ "imageio>=2.31.0",
30
+ "imageio-ffmpeg>=0.4.9",
31
+ "scikit-image>=0.21.0",
32
+ "rich>=13.0.0",
29
33
  ]
30
34
 
35
+ [project.scripts]
36
+ ml-dash = "ml_dash.cli:main"
37
+
31
38
  [project.optional-dependencies]
32
39
  dev = [
33
40
  "pytest>=8.0.0",
@@ -0,0 +1,67 @@
1
+ """ML-Dash command-line interface."""
2
+
3
+ import argparse
4
+ import sys
5
+ from typing import Optional, List
6
+
7
+
8
+ def create_parser() -> argparse.ArgumentParser:
9
+ """Create the main CLI argument parser."""
10
+ parser = argparse.ArgumentParser(
11
+ prog="ml-dash",
12
+ description="ML-Dash: ML experiment tracking and data storage CLI",
13
+ formatter_class=argparse.RawDescriptionHelpFormatter,
14
+ )
15
+
16
+ # Add subcommands
17
+ subparsers = parser.add_subparsers(
18
+ dest="command",
19
+ help="Available commands",
20
+ metavar="COMMAND",
21
+ )
22
+
23
+ # Import and add command parsers
24
+ from .cli_commands import upload, download, list as list_cmd
25
+ upload.add_parser(subparsers)
26
+ download.add_parser(subparsers)
27
+ list_cmd.add_parser(subparsers)
28
+
29
+ return parser
30
+
31
+
32
+ def main(argv: Optional[List[str]] = None) -> int:
33
+ """
34
+ Main CLI entry point.
35
+
36
+ Args:
37
+ argv: Command-line arguments (defaults to sys.argv[1:])
38
+
39
+ Returns:
40
+ Exit code (0 for success, non-zero for error)
41
+ """
42
+ parser = create_parser()
43
+ args = parser.parse_args(argv)
44
+
45
+ # If no command specified, show help
46
+ if args.command is None:
47
+ parser.print_help()
48
+ return 0
49
+
50
+ # Route to command handlers
51
+ if args.command == "upload":
52
+ from .cli_commands import upload
53
+ return upload.cmd_upload(args)
54
+ elif args.command == "download":
55
+ from .cli_commands import download
56
+ return download.cmd_download(args)
57
+ elif args.command == "list":
58
+ from .cli_commands import list as list_cmd
59
+ return list_cmd.cmd_list(args)
60
+
61
+ # Unknown command (shouldn't happen due to subparsers)
62
+ parser.print_help()
63
+ return 1
64
+
65
+
66
+ if __name__ == "__main__":
67
+ sys.exit(main())
@@ -0,0 +1 @@
1
+ """CLI command modules for ML-Dash."""