'Convert incoming configuration arguments to their
proper form.
Callables are resolved, ORM annotations removed.'

def _process_dependent_arguments(self):

    for attr in ('order_by', 'primaryjoin', 'secondaryjoin', 'secondary', '_user_defined_foreign_keys', 'remote_side'):
        attr_value = getattr(self, attr)
        if util.callable(attr_value):
            setattr(self, attr, attr_value())
    for attr in ('primaryjoin', 'secondaryjoin'):
        val = getattr(self, attr)
        if (val is not None):
            setattr(self, attr, _orm_deannotate(expression._only_column_elements(val, attr)))
    if ((self.order_by is not False) and (self.order_by is not None)):
        self.order_by = [expression._only_column_elements(x, 'order_by') for x in util.to_list(self.order_by)]
    self._user_defined_foreign_keys = util.column_set((expression._only_column_elements(x, 'foreign_keys') for x in util.to_column_set(self._user_defined_foreign_keys)))
    self.remote_side = util.column_set((expression._only_column_elements(x, 'remote_side') for x in util.to_column_set(self.remote_side)))
    self.target = self.mapper.mapped_table
