def test_read_context_with_detignore(tmp_path: Path) -> None: with FileTree(tmp_path, {"A.py": "", "B.py": "", "C.py": ""}) as tree: model_def, _ = context.read_context(tree) assert {f["path"] for f in model_def} == {"A.py", "B.py", "C.py"} with FileTree(tmp_path, {"A.py": "", "B.py": "", "C.py": "", ".detignore": "\nA.py\n"}) as tree: model_def, size = context.read_context(tree) assert {f["path"] for f in model_def} == {"B.py", "C.py"} with FileTree(tmp_path, {"A.py": "", "B.py": "", "C.py": "", ".detignore": "\n*.py\n"}) as tree: model_def, size = context.read_context(tree) assert model_def == []
def test_read_context_ignore_pycaches(tmp_path: Path) -> None: with FileTree( tmp_path, { "__pycache__/A.cpython-37.pyc": "", "A.py": "", "subdir/A.py": "", "subdir/__pycache__/A.cpython-37.pyc": "", }, ) as tree: model_def, _ = context.read_context(tree) assert {f["path"] for f in model_def} == {"A.py", "subdir", "subdir/A.py"}
def launch_command( master: str, endpoint: str, config: Dict[str, Any], template: str, context_path: Optional[Path] = None, data: Optional[Dict[str, Any]] = None, ) -> Any: user_files = [] # type: List[Dict[str, Any]] if context_path: user_files, _ = context.read_context(context_path) return api.post( master, endpoint, body={"config": config, "template": template, "user_files": user_files, "data": data}, ).json()
def start_tensorboard(args: Namespace) -> None: if args.trial_ids is None and args.experiment_ids is None: print("Either experiment_ids or trial_ids must be specified.") sys.exit(1) config = parse_config(args.config_file, None, [], []) req_body = { "config": config, "trial_ids": args.trial_ids, "experiment_ids": args.experiment_ids, } if args.context is not None: req_body["user_files"], _ = context.read_context( args.context, constants.MAX_CONTEXT_SIZE) resp = api.post(args.master, "tensorboard", body=req_body).json() if args.detach: print(resp["id"]) return url = "tensorboard/{}/events".format(resp["id"]) with api.ws(args.master, url) as ws: for msg in ws: if msg["log_event"] is not None: # TensorBoard will print a url by default. The URL is incorrect since # TensorBoard is not aware of the master proxy address it is assigned. if "http" in msg["log_event"]: continue if msg["service_ready_event"]: if args.no_browser: url = api.make_url(args.master, resp["service_address"]) else: url = api.open(args.master, resp["service_address"]) print( colored("TensorBoard is running at: {}".format(url), "green")) render_event_stream(msg) break render_event_stream(msg)
def test_read_context(tmp_path: Path) -> None: with FileTree(tmp_path, {"A.py": "", "B.py": "", "C.py": ""}) as tree: model_def, _ = context.read_context(tree) assert {f["path"] for f in model_def} == {"A.py", "B.py", "C.py"}
def test_read_context_with_detignore_subdirs(tmp_path: Path) -> None: with FileTree( tmp_path, { "A.py": "", "B.py": "", Path("subdir").joinpath("A.py"): "", Path("subdir").joinpath("B.py"): "", }, ) as tree: model_def, _ = context.read_context(tree) assert {f["path"] for f in model_def} == { "A.py", "B.py", "subdir", "subdir/A.py", "subdir/B.py", } with FileTree( tmp_path, { "A.py": "", "B.py": "", ".detignore": "\nA.py\n", Path("subdir").joinpath("A.py"): "", Path("subdir").joinpath("B.py"): "", }, ) as tree: model_def, size = context.read_context(tree) assert {f["path"] for f in model_def} == {"B.py", "subdir", "subdir/B.py"} with FileTree( tmp_path, { "A.py": "", "B.py": "", Path("subdir").joinpath("A.py"): "", Path("subdir").joinpath("B.py"): "", ".detignore": "\nsubdir/A.py\n", }, ) as tree: model_def, size = context.read_context(tree) assert {f["path"] for f in model_def} == {"A.py", "B.py", "subdir", "subdir/B.py"} with FileTree( tmp_path, { "A.py": "", "B.py": "", Path("subdir").joinpath("A.py"): "", Path("subdir").joinpath("B.py"): "", ".detignore": "\n*.py\n", }, ) as tree: model_def, size = context.read_context(tree) assert len(model_def) == 1 with FileTree( tmp_path, {"A.py": "", "B.py": "", "subdir/A.py": "", "subdir/B.py": "", ".detignore": "\nsubdir\n"}, ) as tree: model_def, size = context.read_context(tree) assert {f["path"] for f in model_def} == {"A.py", "B.py"} with FileTree( tmp_path, { "A.py": "", "B.py": "", "subdir/A.py": "", "subdir/B.py": "", ".detignore": "\nsubdir/\n", }, ) as tree: model_def, size = context.read_context(tree) assert {f["path"] for f in model_def} == {"A.py", "B.py"}