state.py 文件源码

python
阅读 38 收藏 0 点赞 0 评论 0

项目:sprockets 作者: google 项目源码 文件源码
def Resolve(self, env, resolved_params):
    logging.log(1, 'Resolving ' + self.name)
    # TODO(byungchul): Support names in different modules.
    states = env['_current_module'].states
    if self.name not in states:
      did_you_mean = stl.levenshtein.closest_candidate(self.name, states.keys())
      raise NameError('Cannot find a state to expand: %s. Did you mean %s?' %
                      (self.name, did_you_mean))
    found = states[self.name]
    if len(self.param_values) != len(found.params):
      raise TypeError('Wrong number of parameters: %s. '
                      'Found %d params, expected %d params.' %
                      (found.name, len(found.params), len(self.param_values)))

    resolved_state = StateResolved(self.name, found)
    for v in self.param_values:
      resolved_state.resolved_params.append(v.Resolve(env, resolved_params))
    for v in found.values:
      if self.value == v:
        return StateValue(resolved_state, v)

    did_you_mean = stl.levenshtein.closest_candidate(self.value, found.values)
    raise NameError('Invalid value in state %s: %s. Did you mean %s?' %
                    (self.name, self.value, did_you_mean))
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号