Updates this lookup set with the inputted options.

        :param      other_context | <dict> || <orb.Context>

def update(self, other_context):
        """
        Updates this lookup set with the inputted options.

        :param      other_context | <dict> || <orb.Context>
        """
        # convert a context instance into a dictionary
        if isinstance(other_context, orb.Context):
            other_context = copy.copy(other_context.raw_values)

        ignore = ('where', 'columns', 'scope')
        inherit_kwds = {}
        inherit_scope = {}
        inherit_columns = []
        inherit_where = orb.Query()

        # update from the base context
        base_context = other_context.pop('context', None)
        if base_context is not None:
            inherit_kwds = base_context.raw_values

        # use the default contexts
        else:
            for default in self.defaultContexts():
                if default is not None:
                    # extract expandable information
                    for k, v in default.raw_values.items():
                        if k not in ignore:
                            inherit_kwds[k] = copy.copy(v)

                    # merge where queries
                    where = default.where
                    if where is not None:
                        inherit_where &= where

                    # merge column queries
                    columns = default.columns
                    if columns is not None:
                        inherit_columns += list(columns)

                    # merge scope
                    scope = default.scope
                    if scope:
                        inherit_scope.update(scope)

        # update the inherited kwds
        for k, v in inherit_kwds.items():
            other_context.setdefault(k, v)

        # update the inherited query
        if inherit_where:
            other_context.setdefault('where', orb.Query())
            other_context['where'] &= inherit_where

        # update the inherited columns
        if inherit_columns:
            other_context['columns'] = inherit_columns + (other_context.get('columns') or [])

        # update the inherited scope
        if inherit_scope:
            new_scope = {}
            new_scope.update(inherit_scope)
            new_scope.update(other_context.get('scope') or {})
            other_context['scope'] = new_scope

        # convert the columns to a list
        if 'columns' in other_context and isinstance(other_context['columns'], (str, unicode)):
            other_context['columns'] = other_context['columns'].split(',')

        # convert where to query
        where = other_context.get('where')
        if isinstance(where, dict):
            other_context['where'] = orb.Query.fromJSON(where)

        if isinstance(where, (orb.Query, orb.QueryCompound)):
            other_context['where'] &= self.where

        # validate values
        if other_context.get('start') is not None and (type(other_context['start']) != int or other_context['start'] < 0):
            msg = 'Start needs to be a positive number, got {0} instead'
            raise orb.errors.ContextError(msg.format(other_context.get('start)')))
        if other_context.get('page') is not None and (type(other_context['page']) != int or other_context['page'] < 1):
            msg = 'Page needs to be a number equal to or greater than 1, got {0} instead'
            raise orb.errors.ContextError(msg.format(other_context.get('page')))
        if other_context.get('limit') is not None and (type(other_context['limit']) != int or other_context['limit'] < 1):
            msg = 'Limit needs to be a number equal to or greater than 1, got {0} instead'
            raise orb.errors.ContextError(msg.format(other_context.get('limit')))
        if other_context.get('pageSize') is not None and (type(other_context['pageSize']) != int or other_context['pageSize'] < 1):
            msg = 'Page size needs to be a number equal to or greater than 1, got {0} instead'
            raise orb.errors.ContextError(msg.format(other_context.get('pageSize')))

        # update the raw values
        self.raw_values.update({k: v for k, v in other_context.items() if k in self.Defaults})