dataset_checker.py 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. # !/usr/bin/env python3
  2. # -*- coding: UTF-8 -*-
  3. ################################################################################
  4. #
  5. # Copyright (c) 2024 Baidu.com, Inc. All Rights Reserved
  6. #
  7. ################################################################################
  8. """
  9. Author: PaddlePaddle Authors
  10. """
  11. __all__ = [
  12. 'FailedError', 'CheckFailedError', 'ConvertFailedError', 'SplitFailedError',
  13. 'AnalyseFailedError', 'CheckFailedError', 'DatasetFileNotFoundError'
  14. ]
  15. class FailedError(Exception):
  16. """ base error class """
  17. def __init__(self, err_info=None, solution=None, message=None):
  18. if message is None:
  19. message = self._construct_message(err_info, solution)
  20. super().__init__(message)
  21. def _construct_message(self, err_info, solution):
  22. if err_info is None:
  23. return ""
  24. else:
  25. msg = f"{self.mode} failed. We encountered the following error:\n {err_info}"
  26. if solution is not None:
  27. msg += f"\nPlease try to resolve the issue as follows:\n {solution}"
  28. return msg
  29. class CheckFailedError(FailedError):
  30. """ check dataset error """
  31. mode = "Check dataset"
  32. class ConvertFailedError(FailedError):
  33. """ convert dataset error """
  34. mode = "Convert dataset"
  35. class SplitFailedError(FailedError):
  36. """ split dataset error """
  37. mode = "Split dataset"
  38. class AnalyseFailedError(FailedError):
  39. """ analyse dataset error """
  40. mode = "Analyse dataset"
  41. class DatasetFileNotFoundError(CheckFailedError):
  42. """ dataset file not found error """
  43. def __init__(self,
  44. file_path=None,
  45. err_info=None,
  46. solution=None,
  47. message=None):
  48. if err_info is None:
  49. if file_path is not None:
  50. err_info = f"{file_path} does not exist."
  51. super().__init__(err_info, solution, message)