Exemplo n.º 1
0
def run(args, parser):
    if args.command == "help":
        f.help(parser)
    # Authenticate user
    if args.command == "authenticate":
        api_key = getpass.getpass(prompt="API key: ", stream=None)
        if api_key.strip() == "":
            print(
                "API Key needed, generate one for your team: https://darwin.v7labs.com/?settings=api-keys"
            )
            return
        f.authenticate(api_key)
        print("Authentication succeeded.")
    # Select / List team
    elif args.command == "team":
        if args.team_name:
            f.set_team(args.team_name)
        elif args.current:
            f.current_team()
        else:
            f.list_teams()
    # Version
    elif args.command == "version":
        print("0.3")

    elif args.command == "dataset":
        if args.action == "remote":
            f.list_remote_datasets(args.all, args.team)
        elif args.action == "local":
            f.local()
        elif args.action == "create":
            f.create_dataset(args.dataset_name, args.team)
        elif args.action == "path":
            path = f.path(args.dataset)
            if path:
                print(path)
            else:
                print("The dataset has not been downloaded")
        # Print the url of a remote project
        elif args.action == "url":
            f.url(args.dataset)
        elif args.action == "push":
            f.upload_data(args.dataset, args.files, args.exclude, args.fps)
        # Remove a project (remotely)
        elif args.action == "remove":
            f.remove_remote_dataset(args.dataset)
        elif args.action == "report":
            f.dataset_report(args.dataset, args.granularity or "day")
        elif args.action == "export":
            f.export_dataset(args.dataset, args.annotation_class, args.name)
        elif args.action == "releases":
            f.dataset_list_releases(args.dataset)
        elif args.action == "pull":
            f.pull_dataset(args.dataset)
        elif args.action == "help" or args.action == None:
            f.help(parser, "dataset")
Exemplo n.º 2
0
    def with_verbose_flag(team_slug: str, dataset_slug: str,
                          remote_dataset: RemoteDataset,
                          request_upload_endpoint: str):
        request_upload_response = {
            "blocked_items": [
                {
                    "dataset_item_id": 1,
                    "filename": "test_1.jpg",
                    "path": "/",
                    "reason": "ALREADY_EXISTS"
                },
                {
                    "dataset_item_id": 2,
                    "filename": "test_2.jpg",
                    "path": "/",
                    "reason": "UNKNOWN_TAGS"
                },
            ],
            "items": [{
                "dataset_item_id": 3,
                "filename": "test_3.jpg",
                "path": "/"
            }],
        }

        responses.add(responses.PUT,
                      request_upload_endpoint,
                      json=request_upload_response,
                      status=200)

        with patch.object(
                Client, "get_remote_dataset",
                return_value=remote_dataset) as get_remote_dataset_mock:
            with patch.object(Console, "print",
                              return_value=None) as print_mock:
                upload_data(
                    f"{team_slug}/{dataset_slug}",
                    ["test_1.jpg", "test_2.jpg", "test_3.jpg"],
                    [],
                    0,
                    None,
                    None,
                    False,
                    True,
                )
                get_remote_dataset_mock.assert_called_once()

                assert call("Skipped 1 files already in the dataset.\n",
                            style="warning") in print_mock.call_args_list
                assert (call(
                    "2 files couldn't be uploaded because an error occurred.\n",
                    style="error") in print_mock.call_args_list)
                assert call('Re-run with "--verbose" for further details'
                            ) not in print_mock.call_args_list
Exemplo n.º 3
0
def run(args, parser):
    if args.command == "help":
        f.help(parser)
    # Authenticate user
    if args.command == "authenticate":
        api_key = getpass.getpass(prompt="API key: ", stream=None)
        api_key = api_key.strip()
        if api_key == "":
            print(
                "API Key needed, generate one for your team: https://darwin.v7labs.com/?settings=api-keys"
            )
            return
        f.authenticate(api_key)
        print("Authentication succeeded.")
    # Select / List team
    elif args.command == "team":
        if args.team_name:
            f.set_team(args.team_name)
        elif args.current:
            f.current_team()
        else:
            f.list_teams()
    # Version
    elif args.command == "version":
        print("0.5.10")

    elif args.command == "convert":
        f.convert(args.format, args.files, args.output_dir)
    elif args.command == "dataset":
        if args.action == "remote":
            f.list_remote_datasets(args.all, args.team)
        elif args.action == "local":
            f.local(args.team)
        elif args.action == "create":
            f.create_dataset(args.dataset)
        elif args.action == "path":
            path = f.path(args.dataset)
            if path:
                print(path)
        # Print the url of a remote project
        elif args.action == "url":
            f.url(args.dataset)
        elif args.action == "push":
            f.upload_data(args.dataset, args.files, args.exclude, args.fps,
                          args.path, args.frames)
        # Remove a project (remotely)
        elif args.action == "remove":
            f.remove_remote_dataset(args.dataset)
        elif args.action == "report":
            f.dataset_report(args.dataset, args.granularity or "day")
        elif args.action == "export":
            f.export_dataset(args.dataset, args.include_url_token,
                             args.annotation_class, args.name)
        elif args.action == "files":
            f.list_files(args.dataset, args.status, args.path,
                         args.only_filenames)
        elif args.action == "releases":
            f.dataset_list_releases(args.dataset)
        elif args.action == "pull":
            f.pull_dataset(args.dataset, args.only_annotations, args.folders,
                           args.video_frames)
        elif args.action == "import":
            f.dataset_import(args.dataset, args.format, args.files)
        elif args.action == "convert":
            f.dataset_convert(args.dataset, args.format, args.output_dir)
        elif args.action == "migrate":
            f.migrate_dataset(args.dataset)
        elif args.action == "set-file-status":
            f.set_file_status(args.dataset, args.status, args.files)
        elif args.action == "split":
            f.split(args.dataset, args.val_percentage, args.test_percentage,
                    args.seed)
        elif args.action == "help" or args.action is None:
            f.help(parser, "dataset")