def _make_wrapped_field(self, name, field, is_fake=False, full_name=None):
        """Creates the field lazily.

        If it's a simple field, wraps it in a container that adds extra features.
        If it's a nested layer, creates a layer for it.
        If it's an intermediate layer, copies over the relevant fields and creates a new layer for
        it.
        """
        if not full_name:
            full_name = '%s.%s' % (self._full_name, name)

        if is_fake:
            # Populate with all fields that are supposed to be inside of it
            field = {key: value for key, value in self._all_fields.items()
                     if key.startswith(full_name)}
        if isinstance(field, dict):
            if name.endswith('_tree'):
                name = name.replace('_tree', '')
                full_name = '%s.%s' % (self._full_name, name)
            return JsonLayer(name, field, full_name=full_name, is_intermediate=is_fake)
        elif isinstance(field, list):
            # For whatever reason in list-type object it goes back to using the original parent name
            return [self._make_wrapped_field(name, field_part,
                                             full_name=self._full_name.split('.')[0])
                    for field_part in field]

        return LayerFieldsContainer(LayerField(name=name, value=field))
def _make_wrapped_field ( self , name , field , is_fake = False , full_name = None ) : if not full_name : full_name = '%s.%s' % ( self . _full_name , name ) if is_fake : field = { key : value for key , value in self . _all_fields . items ( ) if key . startswith ( full_name ) } if isinstance ( field , dict ) : if name . endswith ( '_tree' ) : name = name . replace ( '_tree' , '' ) full_name = '%s.%s' % ( self . _full_name , name ) return JsonLayer ( name , field , full_name = full_name , is_intermediate = is_fake ) elif isinstance ( field , list ) : return [ self . _make_wrapped_field ( name , field_part , full_name = self . _full_name . split ( '.' ) [ 0 ] ) for field_part in field ] return LayerFieldsContainer ( LayerField ( name = name , value = field ) )
Creates the field lazily.

        If it's a simple field, wraps it in a container that adds extra features.
        If it's a nested layer, creates a layer for it.
        If it's an intermediate layer, copies over the relevant fields and creates a new layer for
        it.