exposing some file utilities
This commit is contained in:
parent
32b70c5d37
commit
8c0e2fb362
|
|
@ -90,7 +90,15 @@ from supervision.keypoint.core import KeyPoints
|
|||
from supervision.metrics.detection import ConfusionMatrix, MeanAveragePrecision
|
||||
from supervision.tracker.byte_tracker.core import ByteTrack
|
||||
from supervision.utils.conversion import cv2_to_pillow, pillow_to_cv2
|
||||
from supervision.utils.file import list_files_with_extensions
|
||||
from supervision.utils.file import (
|
||||
list_files_with_extensions,
|
||||
read_json_file,
|
||||
read_txt_file,
|
||||
read_yaml_file,
|
||||
save_json_file,
|
||||
save_text_file,
|
||||
save_yaml_file,
|
||||
)
|
||||
from supervision.utils.image import (
|
||||
ImageSink,
|
||||
create_tiles,
|
||||
|
|
|
|||
|
|
@ -57,7 +57,7 @@ def list_files_with_extensions(
|
|||
return files_with_extensions
|
||||
|
||||
|
||||
def read_txt_file(file_path: str, skip_empty: bool = False) -> List[str]:
|
||||
def read_txt_file(file_path: Union[str, Path], skip_empty: bool = False) -> List[str]:
|
||||
"""
|
||||
Read a text file and return a list of strings without newline characters.
|
||||
Optionally skip empty lines.
|
||||
|
|
@ -70,7 +70,7 @@ def read_txt_file(file_path: str, skip_empty: bool = False) -> List[str]:
|
|||
Returns:
|
||||
List[str]: A list of strings representing the lines in the text file.
|
||||
"""
|
||||
with open(file_path, "r") as file:
|
||||
with open(file_path.as_posix(), "r") as file:
|
||||
if skip_empty:
|
||||
lines = [line.rstrip("\n") for line in file if line.strip()]
|
||||
else:
|
||||
|
|
@ -79,7 +79,7 @@ def read_txt_file(file_path: str, skip_empty: bool = False) -> List[str]:
|
|||
return lines
|
||||
|
||||
|
||||
def save_text_file(lines: List[str], file_path: str):
|
||||
def save_text_file(lines: List[str], file_path: Union[str, Path]):
|
||||
"""
|
||||
Write a list of strings to a text file, each string on a new line.
|
||||
|
||||
|
|
@ -87,12 +87,12 @@ def save_text_file(lines: List[str], file_path: str):
|
|||
lines (List[str]): The list of strings to be written to the file.
|
||||
file_path (str): The path to the text file.
|
||||
"""
|
||||
with open(file_path, "w") as file:
|
||||
with open(file_path.as_posix(), "w") as file:
|
||||
for line in lines:
|
||||
file.write(line + "\n")
|
||||
|
||||
|
||||
def read_json_file(file_path: str) -> dict:
|
||||
def read_json_file(file_path: Union[str, Path]) -> dict:
|
||||
"""
|
||||
Read a json file and return a dict.
|
||||
|
||||
|
|
@ -102,12 +102,12 @@ def read_json_file(file_path: str) -> dict:
|
|||
Returns:
|
||||
dict: A dict of annotations information
|
||||
"""
|
||||
with open(file_path, "r") as file:
|
||||
with open(file_path.as_posix(), "r") as file:
|
||||
data = json.load(file)
|
||||
return data
|
||||
|
||||
|
||||
def save_json_file(data: dict, file_path: str, indent: int = 3) -> None:
|
||||
def save_json_file(data: dict, file_path: Union[str, Path], indent: int = 3) -> None:
|
||||
"""
|
||||
Write a dict to a json file.
|
||||
|
||||
|
|
@ -116,11 +116,11 @@ def save_json_file(data: dict, file_path: str, indent: int = 3) -> None:
|
|||
data (dict): dict with unique keys and value as pair.
|
||||
file_path (str): The path to the json file.
|
||||
"""
|
||||
with open(file_path, "w") as fp:
|
||||
with open(file_path.as_posix(), "w") as fp:
|
||||
json.dump(data, fp, cls=NumpyJsonEncoder, indent=indent)
|
||||
|
||||
|
||||
def read_yaml_file(file_path: str) -> dict:
|
||||
def read_yaml_file(file_path: Union[str, Path]) -> dict:
|
||||
"""
|
||||
Read a yaml file and return a dict.
|
||||
|
||||
|
|
@ -130,12 +130,12 @@ def read_yaml_file(file_path: str) -> dict:
|
|||
Returns:
|
||||
dict: A dict of content information
|
||||
"""
|
||||
with open(file_path, "r") as file:
|
||||
with open(file_path.as_posix(), "r") as file:
|
||||
data = yaml.safe_load(file)
|
||||
return data
|
||||
|
||||
|
||||
def save_yaml_file(data: dict, file_path: str) -> None:
|
||||
def save_yaml_file(data: dict, file_path: Union[str, Path]) -> None:
|
||||
"""
|
||||
Save a dict to a json file.
|
||||
|
||||
|
|
@ -145,5 +145,5 @@ def save_yaml_file(data: dict, file_path: str) -> None:
|
|||
file_path (str): The path to the json file.
|
||||
"""
|
||||
|
||||
with open(file_path, "w") as outfile:
|
||||
with open(file_path.as_posix(), "w") as outfile:
|
||||
yaml.dump(data, outfile, sort_keys=False, default_flow_style=None)
|
||||
|
|
|
|||
Loading…
Reference in New Issue