less "PROBLEM"s, faster metadata

This commit is contained in:
Kyle Lahnakoski 2018-08-19 08:55:11 -04:00
Родитель 8f67b74df3
Коммит 8b169eef76
3 изменённых файлов: 25 добавлений и 15 удалений

Просмотреть файл

@ -668,7 +668,7 @@ class BugHistoryParser(object):
existing_flag["previous_status"] = removed_flag["request_status"]
existing_flag["request_status"] = "d"
existing_flag["previous_value"] = removed_flag.value
existing_flag["value"] = Null #SPECIAL INDICATOR
existing_flag["value"] = Null # SPECIAL INDICATOR FOR DELETED FLAG
# request_type stays the same.
# requestee stays the same.
@ -690,7 +690,7 @@ class BugHistoryParser(object):
unwrap(element)
for element in target.flags
if (
element["value"] == None # SPECIAL INDICATOR
element["value"] == None # SPECIAL INDICATOR FOR DELETED FLAG
and added_flag["request_type"] == element["request_type"]
and added_flag["request_status"] != element["previous_status"] # Skip "r?(dre@mozilla)" -> "r?(mark@mozilla)"
)
@ -725,12 +725,9 @@ class BugHistoryParser(object):
]
if not matched_ts and not matched_req:
Log.note(
"[Bug {{bug_id}}]: PROBLEM: Can not match {{requestee}} in {{flags}}. Skipping match.",
bug_id=self.currBugState.bug_id,
flags=target.flags,
requestee=added_flag
)
# No matching candidate. Totally new flag.
target.flags.append(added_flag)
continue
elif len(matched_ts) == 1 or (not matched_req and matched_ts):
chosen_one = matched_ts[0]
if DEBUG_FLAG_MATCHES:

Просмотреть файл

@ -46,6 +46,7 @@
1367671, // diff lost a colon in 'reports: https://goo.gl/70o6w6'
1370314, // jumbled diff
1379514, // pre and post start lines for hunks
1386206, // review- added without review? first
1388648, // order of the reversed diff application
1388678, // interlaced + and - in diff
1392967, // zero lines and \r correctness

26
vendor/jx_python/meta.py поставляемый
Просмотреть файл

@ -135,13 +135,25 @@ class ColumnList(Table, jx_base.Container):
command = wrap(command)
eq = command.where.eq
if eq.es_index:
with self.locker:
columns = [
c
for cs in self.data.get(eq.es_index, {}).values()
for c in cs
if all(c[k] == v for k, v in eq.items())
]
if eq.es_column and len(eq)==2:
with self.locker:
all_columns = self.data.get(eq.es_index, {}).values()
columns = [
c
for cs in all_columns
for c in cs
if c.es_column == eq.es_column
]
else:
# SLOWER
with self.locker:
columns = [
c
for cs in self.data.get(eq.es_index, {}).values()
for c in cs
if all(c[k] == v for k, v in eq.items())
]
else:
columns = list(self)
columns = jx.filter(columns, command.where)