def _defaults(self, routekeys, reserved_keys, kargs):
        defaults = {}
        # Add in a controller/action default if they don't exist
        if 'controller' not in routekeys and 'controller' not in kargs \
           and not self.explicit:
            kargs['controller'] = 'content'
        if 'action' not in routekeys and 'action' not in kargs \
           and not self.explicit:
            kargs['action'] = 'index'
        defaultkeys = frozenset(key for key in kargs.keys()
                                if key not in reserved_keys)
        for key in defaultkeys:
            if kargs[key] is not None:
                defaults[key] = self.make_unicode(kargs[key])
            else:
                defaults[key] = None
        if 'action' in routekeys and 'action' not in defaults \
           and not self.explicit:
            defaults['action'] = 'index'
        if 'id' in routekeys and 'id' not in defaults \
           and not self.explicit:
            defaults['id'] = None
        newdefaultkeys = frozenset(key for key in defaults.keys()
                                   if key not in reserved_keys)

        return (defaults, newdefaultkeys)
Human-readable string to help understand the module
dataset/ETHPy150Open bbangert/routes/routes/route.py/Route._defaults--crossover with--dataset/ETHPy150Open letsencrypt/letsencrypt/certbot-apache/certbot_apache/configurator.py/ApacheConfigurator.more_info