Source code for gerrit.utils.entity
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# @Author: Jialiang Shi
import json
from gerrit.utils.common import logger
[docs]
class Entity(object):
required = ()
optional = ()
def __init__(self, **kwargs):
"""
:param kwargs:
"""
self.attributes = self.required + self.optional
for item in self.required:
if item not in kwargs:
name = self.__class__.__name__
logger.warning(
"*** Warning! %s missing a required keyword argument '%s' ***",
name,
item,
)
for k, v in kwargs.items():
if k in self.attributes:
setattr(self, k, v)
else:
name = self.__class__.__name__
logger.warning(
"*** Warning! %s got an unexpected keyword argument: '%s' ***",
name,
k,
)
def __getattr__(self, key):
return self.__dict__.get(key, None)
def __str__(self):
"""
:return:
"""
review_input = {}
for key in self.attributes:
value = getattr(self, key)
if value:
review_input.update({key: value})
return json.dumps(review_input, sort_keys=True)