Ejemplo n.º 1
0
 def test_walk(self):
     self.assertEquals([(u'a', 1)], list(walk({'a': 1})))
     # test if keys are yielded
     self.assertEquals([(u'a', {u'b': 1}), (u'a.b', 1)], list(walk({u'a': {'b': 1}})))
     result = list(walk({u'a': {'b': 1, u'c': 2}}))
     self.assertTrue((u'a.b', 1) in result)
     self.assertTrue((u'a.c', 2) in result)
Ejemplo n.º 2
0
 def test_walk(self):
     self.assertEquals([(u'a', 1)], list(walk({'a': 1})))
     # test if keys are yielded
     self.assertEquals([(u'a', {
         u'b': 1
     }), (u'a.b', 1)], list(walk({u'a': {
         'b': 1
     }})))
     result = list(walk({u'a': {'b': 1, u'c': 2}}))
     self.assertTrue((u'a.b', 1) in result)
     self.assertTrue((u'a.c', 2) in result)
Ejemplo n.º 3
0
    def to_schema(self, doc):
        # Work on a copy
        src_doc = DotNotationAdapter(dict(doc))
        dest_doc = DotNotationAdapter()

        # Rename fields
        for rename_key, rename_value in self.rename_inv:
            if rename_key in src_doc:
                dest_doc[rename_value] = src_doc[rename_key]
                del src_doc[rename_key]

        # Map fields
        for key, value in walk(src_doc):
            if key in self.exclude_to:
                continue

            dest_key, dest_value = self.map_to(key, value)
            dest_doc[dest_key] = dest_value

        return dest_doc.doc
Ejemplo n.º 4
0
    def to_schema(self, doc):
        # Work on a copy
        src_doc = DotNotationAdapter(dict(doc))
        dest_doc = DotNotationAdapter()

        # Rename fields
        for rename_key, rename_value in self.rename_inv:
            if rename_key in src_doc:
                dest_doc[rename_value] = src_doc[rename_key]
                del src_doc[rename_key]

        # Map fields
        for key, value in walk(src_doc):
            if key in self.exclude_to:
                continue

            dest_key, dest_value = self.map_to(key, value)
            dest_doc[dest_key] = dest_value

        return dest_doc.doc
Ejemplo n.º 5
0
    def from_schema(self, doc):
        # Exclude and map fields
        src_doc = DotNotationAdapter(doc)
        dest_doc = DotNotationAdapter()

        for key, value in walk(src_doc):
            if self.exclude_field(src_doc, key):
                continue
            dest_key, dest_value = self.map_from(key, value)
            if isinstance(value, collections.MutableMapping):
                dest_doc[dest_key] = dest_value.__class__()
            else:
                dest_doc[dest_key] = dest_value

        # Rename keys
        for rename_key, rename_value in self.rename:
            if rename_key in dest_doc:
                dest_doc[rename_value] = dest_doc[rename_key]
                del dest_doc[rename_key]

        return dest_doc.doc
Ejemplo n.º 6
0
    def from_schema(self, doc):
        # Exclude and map fields
        src_doc = DotNotationAdapter(doc)
        dest_doc = DotNotationAdapter()

        for key, value in walk(src_doc):
            if self.exclude_field(src_doc, key):
                continue
            dest_key, dest_value = self.map_from(key, value)
            if isinstance(value, collections.MutableMapping):
                dest_doc[dest_key] = dest_value.__class__()
            else:
                dest_doc[dest_key] = dest_value

        # Rename keys
        for rename_key, rename_value in self.rename:
            if rename_key in dest_doc:
                dest_doc[rename_value] = dest_doc[rename_key]
                del dest_doc[rename_key]

        return dest_doc.doc