scripts.py 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. import click
  2. import ray.tune.cli.commands as commands
  3. @click.group()
  4. def cli():
  5. pass
  6. @cli.command()
  7. @click.argument("experiment_path", required=True, type=str)
  8. @click.option("--sort", default=None, type=str, help="Select which column to sort on.")
  9. @click.option(
  10. "--output",
  11. "-o",
  12. default=None,
  13. type=str,
  14. help="Select file to output information to.",
  15. )
  16. @click.option(
  17. "--filter",
  18. "filter_op",
  19. default=None,
  20. type=str,
  21. help="Select filter in the format '<column> <operator> <value>'.",
  22. )
  23. @click.option(
  24. "--columns", default=None, type=str, help="Select columns to be displayed."
  25. )
  26. @click.option(
  27. "--limit", default=None, type=int, help="Select number of rows to display."
  28. )
  29. @click.option("--desc", default=False, type=bool, help="Sort ascending vs. descending.")
  30. def list_trials(experiment_path, sort, output, filter_op, columns, limit, desc):
  31. """Lists trials in the directory subtree starting at the given path."""
  32. if sort:
  33. sort = sort.split(",")
  34. if columns:
  35. columns = columns.split(",")
  36. commands.list_trials(experiment_path, sort, output, filter_op, columns, limit, desc)
  37. @cli.command()
  38. @click.argument("project_path", required=True, type=str)
  39. @click.option("--sort", default=None, type=str, help="Select which column to sort on.")
  40. @click.option(
  41. "--output",
  42. "-o",
  43. default=None,
  44. type=str,
  45. help="Select file to output information to.",
  46. )
  47. @click.option(
  48. "--filter",
  49. "filter_op",
  50. default=None,
  51. type=str,
  52. help="Select filter in the format '<column> <operator> <value>'.",
  53. )
  54. @click.option(
  55. "--columns", default=None, type=str, help="Select columns to be displayed."
  56. )
  57. @click.option(
  58. "--limit", default=None, type=int, help="Select number of rows to display."
  59. )
  60. @click.option("--desc", default=False, type=bool, help="Sort ascending vs. descending.")
  61. def list_experiments(project_path, sort, output, filter_op, columns, limit, desc):
  62. """Lists experiments in the directory subtree."""
  63. if sort:
  64. sort = sort.split(",")
  65. if columns:
  66. columns = columns.split(",")
  67. commands.list_experiments(
  68. project_path, sort, output, filter_op, columns, limit, desc
  69. )
  70. @cli.command()
  71. @click.argument("path", required=True, type=str)
  72. @click.option(
  73. "--filename", default="note.txt", type=str, help="Specify filename for note."
  74. )
  75. def add_note(path, filename):
  76. """Adds user notes as a text file at the given path."""
  77. commands.add_note(path, filename)
  78. cli.add_command(list_trials, name="ls")
  79. cli.add_command(list_trials, name="list-trials")
  80. cli.add_command(list_experiments, name="lsx")
  81. cli.add_command(list_experiments, name="list-experiments")
  82. cli.add_command(add_note, name="add-note")
  83. def main():
  84. return cli()
  85. if __name__ == "__main__":
  86. main()