|
2 | 2 | import uuid |
3 | 3 | from pathlib import Path |
4 | 4 | from typing import List |
5 | | -from typing import Optional |
6 | 5 | from typing import Tuple |
7 | 6 | from typing import Union |
8 | 7 |
|
9 | 8 | import boto3 |
10 | 9 | import pandas as pd |
11 | 10 | from superannotate.lib.app.exceptions import AppException |
12 | | -from superannotate.lib.app.exceptions import PathError |
13 | 11 | from superannotate.lib.core import ATTACHED_VIDEO_ANNOTATION_POSTFIX |
14 | 12 | from superannotate.lib.core import PIXEL_ANNOTATION_POSTFIX |
15 | 13 | from superannotate.lib.core import VECTOR_ANNOTATION_POSTFIX |
16 | 14 |
|
17 | 15 |
|
18 | | -def split_project_path(project_path: str) -> Tuple[str, Optional[str]]: |
19 | | - path = Path(project_path) |
20 | | - if len(path.parts) > 3: |
21 | | - raise PathError("There can be no sub folders in the project") |
22 | | - elif len(path.parts) == 2: |
23 | | - project_name, folder_name = path.parts |
24 | | - else: |
25 | | - project_name, folder_name = path.name, "" |
26 | | - |
27 | | - return project_name, folder_name |
28 | | - |
29 | | - |
30 | | -def extract_project_folder(user_input: Union[str, dict]) -> Tuple[str, Optional[str]]: |
31 | | - if isinstance(user_input, str): |
32 | | - return split_project_path(user_input) |
33 | | - elif isinstance(user_input, dict): |
34 | | - project_path = user_input.get("name") |
35 | | - if not project_path: |
36 | | - raise PathError("Invalid project path") |
37 | | - return split_project_path(user_input["name"]) |
38 | | - raise PathError("Invalid project path") |
39 | | - |
40 | | - |
41 | 16 | def get_annotation_paths(folder_path, s3_bucket=None, recursive=False): |
42 | 17 | annotation_paths = [] |
43 | 18 | if s3_bucket: |
|
0 commit comments