コード例 #1
0
ファイル: rest.py プロジェクト: rblom/Change-By-Us
    def serialize_model(self, instance):
        """
        Given a model instance or dict, serialize it to a dict..
        """
        data = {}

        fields = self.get_fields(instance)

        # serialize each required field
        for fname in fields:
            if hasattr(self, safestr(fname)):
                # check first for a method 'fname' on self first
                meth = getattr(self, fname)
                if inspect.ismethod(meth) and len(
                        inspect.getargspec(meth)[0]) == 2:
                    obj = meth(instance)
            elif hasattr(instance, '__contains__') and fname in instance:
                # check for a key 'fname' on the instance
                obj = instance[fname]
            elif hasattr(instance, safestr(fname)):
                # finally check for an attribute 'fname' on the instance
                obj = getattr(instance, fname)
            else:
                continue

            key = self.serialize_key(fname)
            val = self.serialize_val(fname, obj)
            data[key] = val

        return data
コード例 #2
0
ファイル: rest.py プロジェクト: HugoButel/Change-By-Us
    def serialize_model(self, instance):
        """
        Given a model instance or dict, serialize it to a dict..
        """
        data = {}

        fields = self.get_fields(instance)

        # serialize each required field
        for fname in fields:
            if hasattr(self, safestr(fname)):
                # check first for a method 'fname' on self first
                meth = getattr(self, fname)
                if inspect.ismethod(meth) and len(inspect.getargspec(meth)[0]) == 2:
                    obj = meth(instance)
            elif hasattr(instance, '__contains__') and fname in instance:
                # check for a key 'fname' on the instance
                obj = instance[fname]
            elif hasattr(instance, safestr(fname)):
                # finally check for an attribute 'fname' on the instance
                obj = getattr(instance, fname)
            else:
                continue

            key = self.serialize_key(fname)
            val = self.serialize_val(fname, obj)
            data[key] = val

        return data
コード例 #3
0
ファイル: util-tests.py プロジェクト: AltisCorp/Change-By-Us
    def test_safestr(self):
        class HasUnicode(object):
            def __unicode__(self):
                return u"unicode here"

        uni = u"unicode"
        base = "basestring"
        hasUni = HasUnicode()
        noUni = 5
        uniList = [u"z", u"y"]
        strList = ["a", "b", "c"]
        numList = [1, 2, 3]

        self.assertEqual(type(util.safestr(uni)), str)
        self.assertEqual(type(util.safestr(base)), str)
        self.assertEqual(type(util.safestr(hasUni)), str)
        self.assertEqual(type(util.safestr(noUni)), str)
        self.assertEqual(type(util.safestr(iter(strList)).next()), str)
        self.assertNotEqual(type(uniList[0]), str)
        self.assertEqual(type(util.safestr(iter(uniList)).next()), str)
        self.assertNotEqual(type(numList[0]), str)
        self.assertEqual(type(util.safestr(iter(numList)).next()), str)
        self.assertEqual(list(util.safestr(iter(numList))), ["1", "2", "3"])
        self.assertEqual(util.safestr(numList), "[1, 2, 3]")
コード例 #4
0
ファイル: rest.py プロジェクト: rblom/Change-By-Us
 def serialize_key(self, key):
     """
     Keys serialize to their string value,
     unless they exist in the `rename` dict.
     """
     return self.rename.get(safestr(key), safestr(key))
コード例 #5
0
ファイル: rest.py プロジェクト: HugoButel/Change-By-Us
 def serialize_key(self, key):
     """
     Keys serialize to their string value,
     unless they exist in the `rename` dict.
     """
     return self.rename.get(safestr(key), safestr(key))