示例#1
0
 def process_fn(key_dict):
   supplier = key_dict['Supplier']
   supplierpn = key_dict['SupplierPartNumber']
   
   if supplier in SupplierConfig.SupplierConfig:
     print("Fetching '%s' from '%s'" % (supplierpn, supplier))
     fetcher = SupplierConfig.SupplierConfig[supplier][0]
     parametrics = fetcher.get_component_parametrics(supplierpn)
     return {'SupplierParametrics': Common.parametric_to_string(parametrics)}
   else:
     return {}
  def inner(params):
    rewritten_params = {}
    parameter_key_map = {elt[0]: elt[1] for elt in parameter_key_rewrite}
    
    new_value_map = {}

    # TODO: refactor rewrite rules
    for key, val in parameter_value_map.items():
      if type(key) is tuple:
        new_value_map[key[1]] = val
        parameter_key_map[key[0]] = key[1]
      else:
        new_value_map[key] = val

    for param_key, param_value in params.items():
      if param_key in parameter_key_map:
        param_key = parameter_key_map[param_key]
      if param_key in new_value_map and param_value in new_value_map[param_key]:
        param_value = new_value_map[param_key][param_value]
      # TODO: make this preferred-agnostic
      rewritten_params[param_key] = simplify_value(param_value, package_preferred)
      
    out_dict = {}
    out_dict['Desc'] = desc_fmt % rewritten_params
    if '_rewrite_package' in rewritten_params:
      out_dict['Package'] = rewritten_params['_rewrite_package']
    elif 'Package / Case' in rewritten_params:
      out_dict['Package'] = rewritten_params['Package / Case']
    else:
      out_dict['Package'] = ""
      
    out_dict['MfrDesc'] = rewritten_params['Description']
    out_dict['MfrPartNumber'] = rewritten_params['Manufacturer Part Number']
    params_dict = collections.OrderedDict()
    for param in parameter_key_rewrite:
      param = param[1]
      if param in rewritten_params:
        params_dict[param] = rewritten_params[param]
      else:
        params_dict[param] = "??"
    out_dict['Parameters'] = Common.parametric_to_string(params_dict)
    return out_dict