aboutsummaryrefslogtreecommitdiff
path: root/src/aiet/utils/fs.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/aiet/utils/fs.py')
-rw-r--r--src/aiet/utils/fs.py116
1 files changed, 0 insertions, 116 deletions
diff --git a/src/aiet/utils/fs.py b/src/aiet/utils/fs.py
deleted file mode 100644
index ea99a69..0000000
--- a/src/aiet/utils/fs.py
+++ /dev/null
@@ -1,116 +0,0 @@
-# SPDX-FileCopyrightText: Copyright 2022, Arm Limited and/or its affiliates.
-# SPDX-License-Identifier: Apache-2.0
-"""Module to host all file system related functions."""
-import importlib.resources as pkg_resources
-import re
-import shutil
-from pathlib import Path
-from typing import Any
-from typing import Literal
-from typing import Optional
-
-ResourceType = Literal["applications", "systems", "tools"]
-
-
-def get_aiet_resources() -> Path:
- """Get resources folder path."""
- with pkg_resources.path("aiet", "__init__.py") as init_path:
- project_root = init_path.parent
- return project_root / "resources"
-
-
-def get_resources(name: ResourceType) -> Path:
- """Return the absolute path of the specified resource.
-
- It uses importlib to return resources packaged with MANIFEST.in.
- """
- if not name:
- raise ResourceWarning("Resource name is not provided")
-
- resource_path = get_aiet_resources() / name
- if resource_path.is_dir():
- return resource_path
-
- raise ResourceWarning("Resource '{}' not found.".format(name))
-
-
-def copy_directory_content(source: Path, destination: Path) -> None:
- """Copy content of the source directory into destination directory."""
- for item in source.iterdir():
- src = source / item.name
- dest = destination / item.name
-
- if src.is_dir():
- shutil.copytree(src, dest)
- else:
- shutil.copy2(src, dest)
-
-
-def remove_resource(resource_directory: str, resource_type: ResourceType) -> None:
- """Remove resource data."""
- resources = get_resources(resource_type)
-
- resource_location = resources / resource_directory
- if not resource_location.exists():
- raise Exception("Resource {} does not exist".format(resource_directory))
-
- if not resource_location.is_dir():
- raise Exception("Wrong resource {}".format(resource_directory))
-
- shutil.rmtree(resource_location)
-
-
-def remove_directory(directory_path: Optional[Path]) -> None:
- """Remove directory."""
- if not directory_path or not directory_path.is_dir():
- raise Exception("No directory path provided")
-
- shutil.rmtree(directory_path)
-
-
-def recreate_directory(directory_path: Optional[Path]) -> None:
- """Recreate directory."""
- if not directory_path:
- raise Exception("No directory path provided")
-
- if directory_path.exists() and not directory_path.is_dir():
- raise Exception(
- "Path {} does exist and it is not a directory".format(str(directory_path))
- )
-
- if directory_path.is_dir():
- remove_directory(directory_path)
-
- directory_path.mkdir()
-
-
-def read_file(file_path: Path, mode: Optional[str] = None) -> Any:
- """Read file as string or bytearray."""
- if file_path.is_file():
- if mode is not None:
- # Ignore pylint warning because mode can be 'binary' as well which
- # is not compatible with specifying encodings.
- with open(file_path, mode) as file: # pylint: disable=unspecified-encoding
- return file.read()
- else:
- with open(file_path, encoding="utf-8") as file:
- return file.read()
-
- if mode == "rb":
- return b""
- return ""
-
-
-def read_file_as_string(file_path: Path) -> str:
- """Read file as string."""
- return str(read_file(file_path))
-
-
-def read_file_as_bytearray(file_path: Path) -> bytearray:
- """Read a file as bytearray."""
- return bytearray(read_file(file_path, mode="rb"))
-
-
-def valid_for_filename(value: str, replacement: str = "") -> str:
- """Replace non alpha numeric characters."""
- return re.sub(r"[^\w.]", replacement, value, flags=re.ASCII)