Refactor - changed to defaultdict

This commit is contained in:
Petr Kalis 2022-04-08 16:59:34 +02:00
parent 507f3615ab
commit 29dca65202

View file

@ -8,7 +8,7 @@ import errno
import six import six
import re import re
import shutil import shutil
from collections import deque from collections import deque, defaultdict
from bson.objectid import ObjectId from bson.objectid import ObjectId
from pymongo import DeleteOne, InsertOne from pymongo import DeleteOne, InsertOne
@ -1185,21 +1185,14 @@ class IntegrateAssetNew(pyblish.api.InstancePlugin):
Returns: Returns:
(dict): {'site': [alternative sites]...} (dict): {'site': [alternative sites]...}
""" """
alt_site_pairs = {} alt_site_pairs = defaultdict(list)
for site_name, site_info in conf_sites.items(): for site_name, site_info in conf_sites.items():
alt_sites = set(site_info.get("alternative_sites", [])) alt_sites = set(site_info.get("alternative_sites", []))
if not alt_site_pairs.get(site_name):
alt_site_pairs[site_name] = []
alt_site_pairs[site_name].extend(alt_sites) alt_site_pairs[site_name].extend(alt_sites)
for alt_site in alt_sites: for alt_site in alt_sites:
if not alt_site_pairs.get(alt_site): alt_site_pairs[alt_site].append(site_name)
alt_site_pairs[alt_site] = []
alt_site_pairs[alt_site].extend([site_name])
# transitive relationship, eg site is alternative to another which is
# alternative to nex site
for site_name, alt_sites in alt_site_pairs.items(): for site_name, alt_sites in alt_site_pairs.items():
sites_queue = deque(alt_sites) sites_queue = deque(alt_sites)
while sites_queue: while sites_queue: