description.py 1.9KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. # -*- coding: utf-8 -*-
  2. import typing
  3. if typing.TYPE_CHECKING:
  4. from hapic.decorator import ControllerWrapper
  5. class Description(object):
  6. def __init__(self, wrapper: 'ControllerWrapper') -> None:
  7. self.wrapper = wrapper
  8. class InputPathDescription(Description):
  9. pass
  10. class InputQueryDescription(Description):
  11. pass
  12. class InputBodyDescription(Description):
  13. pass
  14. class InputHeadersDescription(Description):
  15. pass
  16. class InputFormsDescription(Description):
  17. pass
  18. class InputFilesDescription(Description):
  19. pass
  20. class OutputBodyDescription(Description):
  21. pass
  22. class OutputStreamDescription(Description):
  23. pass
  24. class OutputFileDescription(Description):
  25. pass
  26. class OutputHeadersDescription(Description):
  27. pass
  28. class ErrorDescription(Description):
  29. pass
  30. class ControllerDescription(object):
  31. def __init__(
  32. self,
  33. input_path: InputPathDescription=None,
  34. input_query: InputQueryDescription=None,
  35. input_body: InputBodyDescription=None,
  36. input_headers: InputHeadersDescription=None,
  37. input_forms: InputFormsDescription=None,
  38. input_files: InputFilesDescription=None,
  39. output_body: OutputBodyDescription=None,
  40. output_stream: OutputStreamDescription=None,
  41. output_file: OutputFileDescription=None,
  42. output_headers: OutputHeadersDescription=None,
  43. errors: typing.List[ErrorDescription]=None,
  44. tags: typing.List[str]=None
  45. ):
  46. self.input_path = input_path
  47. self.input_query = input_query
  48. self.input_body = input_body
  49. self.input_headers = input_headers
  50. self.input_forms = input_forms
  51. self.input_files = input_files
  52. self.output_body = output_body
  53. self.output_stream = output_stream
  54. self.output_file = output_file
  55. self.output_headers = output_headers
  56. self.errors = errors or []
  57. self.tags = tags or []