def update_item_with_new_aliases(cls, alias_dict, item): if alias_dict == item["aliases"]: item = None else: merged_aliases = ItemFactory.merge_alias_dicts(alias_dict, item["aliases"]) item["aliases"] = merged_aliases return(item)
def wrapper(cls, tiid, input_aliases_dict, provider, method_name, aliases_providers_run, callback): #logger.info("{:20}: **Starting {tiid} {provider_name} {method_name} with {aliases}".format( # "wrapper", tiid=tiid, provider_name=provider.provider_name, method_name=method_name, aliases=aliases)) provider_name = provider.provider_name worker_name = provider_name+"_worker" input_alias_tuples = ItemFactory.alias_tuples_from_dict(input_aliases_dict) method = getattr(provider, method_name) try: method_response = method(input_alias_tuples) except ProviderError: method_response = None logger.info("{:20}: **ProviderError {tiid} {method_name} {provider_name} ".format( worker_name, tiid=tiid, provider_name=provider_name.upper(), method_name=method_name.upper())) if method_name == "aliases": # update aliases to include the old ones too aliases_providers_run += [provider_name] if method_response: new_aliases_dict = ItemFactory.alias_dict_from_tuples(method_response) response = ItemFactory.merge_alias_dicts(new_aliases_dict, input_aliases_dict) else: response = input_aliases_dict else: response = method_response logger.info("{:20}: RETURNED {tiid} {method_name} {provider_name} : {response}".format( worker_name, tiid=tiid, method_name=method_name.upper(), provider_name=provider_name.upper(), response=response)) callback(tiid, response, method_name, aliases_providers_run) try: del thread_count[provider_name][tiid+method_name] except KeyError: # thread isn't there when we call wrapper in unit tests pass return response