CustomMetric.py 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. import json
  4. from alipay.aop.api.constant.ParamConstants import *
  5. from alipay.aop.api.domain.Dimension import Dimension
  6. class CustomMetric(object):
  7. def __init__(self):
  8. self._biz_time = None
  9. self._dimensions = None
  10. self._metric_name = None
  11. self._value = None
  12. @property
  13. def biz_time(self):
  14. return self._biz_time
  15. @biz_time.setter
  16. def biz_time(self, value):
  17. self._biz_time = value
  18. @property
  19. def dimensions(self):
  20. return self._dimensions
  21. @dimensions.setter
  22. def dimensions(self, value):
  23. if isinstance(value, list):
  24. self._dimensions = list()
  25. for i in value:
  26. if isinstance(i, Dimension):
  27. self._dimensions.append(i)
  28. else:
  29. self._dimensions.append(Dimension.from_alipay_dict(i))
  30. @property
  31. def metric_name(self):
  32. return self._metric_name
  33. @metric_name.setter
  34. def metric_name(self, value):
  35. self._metric_name = value
  36. @property
  37. def value(self):
  38. return self._value
  39. @value.setter
  40. def value(self, value):
  41. self._value = value
  42. def to_alipay_dict(self):
  43. params = dict()
  44. if self.biz_time:
  45. if hasattr(self.biz_time, 'to_alipay_dict'):
  46. params['biz_time'] = self.biz_time.to_alipay_dict()
  47. else:
  48. params['biz_time'] = self.biz_time
  49. if self.dimensions:
  50. if isinstance(self.dimensions, list):
  51. for i in range(0, len(self.dimensions)):
  52. element = self.dimensions[i]
  53. if hasattr(element, 'to_alipay_dict'):
  54. self.dimensions[i] = element.to_alipay_dict()
  55. if hasattr(self.dimensions, 'to_alipay_dict'):
  56. params['dimensions'] = self.dimensions.to_alipay_dict()
  57. else:
  58. params['dimensions'] = self.dimensions
  59. if self.metric_name:
  60. if hasattr(self.metric_name, 'to_alipay_dict'):
  61. params['metric_name'] = self.metric_name.to_alipay_dict()
  62. else:
  63. params['metric_name'] = self.metric_name
  64. if self.value:
  65. if hasattr(self.value, 'to_alipay_dict'):
  66. params['value'] = self.value.to_alipay_dict()
  67. else:
  68. params['value'] = self.value
  69. return params
  70. @staticmethod
  71. def from_alipay_dict(d):
  72. if not d:
  73. return None
  74. o = CustomMetric()
  75. if 'biz_time' in d:
  76. o.biz_time = d['biz_time']
  77. if 'dimensions' in d:
  78. o.dimensions = d['dimensions']
  79. if 'metric_name' in d:
  80. o.metric_name = d['metric_name']
  81. if 'value' in d:
  82. o.value = d['value']
  83. return o