Skip to content

Commit 5d8a824

Browse files
authored
Merge pull request Webperf-se#339 from cockroacher/i333
PyLint for Improved Code Quality - utils.py Webperf-se#333
2 parents cb03eec + e6e1a9d commit 5d8a824

File tree

4 files changed

+226
-205
lines changed

4 files changed

+226
-205
lines changed

engines/sitemap.py

+1-2
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,7 @@
55
import io
66
from bs4 import BeautifulSoup
77
from engines.utils import use_item
8-
from tests.utils import get_content_type, httpRequestGetContent, cache_time_delta
9-
from utils import merge_dicts
8+
from tests.utils import get_content_type, httpRequestGetContent, merge_dicts, cache_time_delta
109

1110
def read_sites(input_sitemap_url, input_skip, input_take):
1211
ignore_none_html = True

tests/http_validator.py

+1-2
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,8 @@
1515
import urllib
1616
import config
1717
from models import Rating
18-
from tests.utils import dns_lookup
18+
from tests.utils import dns_lookup, merge_dicts
1919
from tests.utils import *
20-
from utils import merge_dicts
2120
from tests.sitespeed_base import get_result
2221
import dns.name
2322
import dns.query

tests/utils.py

+38
Original file line numberDiff line numberDiff line change
@@ -544,3 +544,41 @@ def get_friendly_url_name(_, url, request_index):
544544
except:
545545
return request_friendly_name
546546
return request_friendly_name
547+
548+
def merge_dicts(dict1, dict2, sort, make_distinct):
549+
if dict1 is None:
550+
return dict2
551+
if dict2 is None:
552+
return dict1
553+
554+
for domain, value in dict2.items():
555+
if domain in dict1:
556+
type_of_value = type(value)
557+
if type_of_value is dict:
558+
for subkey, subvalue in value.items():
559+
if subkey in dict1[domain]:
560+
if isinstance(subvalue, dict):
561+
merge_dicts(
562+
dict1[domain][subkey],
563+
dict2[domain][subkey],
564+
sort,
565+
make_distinct)
566+
elif isinstance(subvalue, list):
567+
dict1[domain][subkey].extend(subvalue)
568+
if make_distinct:
569+
dict1[domain][subkey] = list(set(dict1[domain][subkey]))
570+
if sort:
571+
dict1[domain][subkey] = sorted(dict1[domain][subkey])
572+
else:
573+
dict1[domain][subkey] = dict2[domain][subkey]
574+
elif type_of_value == list:
575+
dict1[domain].extend(value)
576+
if make_distinct:
577+
dict1[domain] = list(set(dict1[domain]))
578+
if sort:
579+
dict1[domain] = sorted(dict1[domain])
580+
elif type_of_value == int:
581+
dict1[domain] = dict1[domain] + value
582+
else:
583+
dict1[domain] = value
584+
return dict1

0 commit comments

Comments
 (0)