# Path: dbcollection/core/manager.py
# class CacheManager:
#     """Manage dbcollection configurations and stores them inside a cache file stored in disk.
# 
#     Attributes
#     ----------
#     cache_filename : str
#         Cache file path + name.
#     cache_dir : str
#         Default directory to store all dataset's metadata files.
#     download_dir : str
#         Default save dir path for downloaded data.
#     data : dict
#         Cache contents.
# 
#     """
# 
#     def __init__(self):
#         """Initializes the class."""
#         self.manager = CacheDataManager()
#         self.info = CacheManagerInfo(self.manager)
#         self.dataset = CacheManagerDataset(self.manager)
#         self.task = CacheManagerTask(self.manager)
#         self.category = CacheManagerCategory(self.manager)
# 
#     def info_cache(self):
#         """Prints the information of the cache."""
#         self.info.info()
#         self.dataset.info()
#         self.category.info()


import shutil
from dbcollection.core.manager import CacheManager
    delete_data : bool
        Delete all data files from disk for this dataset if True.

    Attributes
    ----------
    name : str
        Name of the dataset to delete.
    task : str
        Name of the task to delete.
    delete_data : bool
        Delete all data files from disk for this dataset if True.
    cache_manager : CacheManager
        Cache manager object.

    """

    def __init__(self, name, task, delete_data, verbose):
        """Initialize class."""
        assert isinstance(name, str), 'Must input a valid dataset name.'
        assert isinstance(task, str), 'Must input a valid task name.'
        assert isinstance(delete_data, bool), "Must input a valid boolean for delete_data."
        assert isinstance(verbose, bool), "Must input a valid boolean for verbose."

        self.name = name
        self.task = task
        self.delete_data = delete_data
        self.verbose = verbose
        self.cache_manager = self.get_cache_manager()

    def get_cache_manager(self):

# Path: dbcollection/core/manager.py
# class CacheManager:
#     """Manage dbcollection configurations and stores them inside a cache file stored in disk.
# 
#     Attributes
#     ----------
#     cache_filename : str
#         Cache file path + name.
#     cache_dir : str
#         Default directory to store all dataset's metadata files.
#     download_dir : str
#         Default save dir path for downloaded data.
#     data : dict
#         Cache contents.
# 
#     """
# 
#     def __init__(self):
#         """Initializes the class."""
#         self.manager = CacheDataManager()
#         self.info = CacheManagerInfo(self.manager)
#         self.dataset = CacheManagerDataset(self.manager)
#         self.task = CacheManagerTask(self.manager)
#         self.category = CacheManagerCategory(self.manager)
# 
#     def info_cache(self):
#         """Prints the information of the cache."""
#         self.info.info()
#         self.dataset.info()
#         self.category.info()


# Path: dbcollection/core/api/remove.py
import shutil
from dbcollection.core.manager import CacheManager

    delete_data : bool
        Delete all data files from disk for this dataset if True.

    Attributes
    ----------
    name : str
        Name of the dataset to delete.
    task : str
        Name of the task to delete.
    delete_data : bool
        Delete all data files from disk for this dataset if True.
    cache_manager : CacheManager
        Cache manager object.

    """

    def __init__(self, name, task, delete_data, verbose):
        """Initialize class."""
        assert isinstance(name, str), 'Must input a valid dataset name.'
        assert isinstance(task, str), 'Must input a valid task name.'
        assert isinstance(delete_data, bool), "Must input a valid boolean for delete_data."
        assert isinstance(verbose, bool), "Must input a valid boolean for verbose."

        self.name = name
        self.task = task
        self.delete_data = delete_data
        self.verbose = verbose
        self.cache_manager = self.get_cache_manager()

    def get_cache_manager(self):

        return CacheManager()