Moved the BoM stats computation.
Now is in a loop that already operates with this information.
This commit is contained in:
parent
5be7254594
commit
a9cd9a649b
|
|
@ -365,16 +365,28 @@ def group_components(cfg, components):
|
||||||
# Sort the groups
|
# Sort the groups
|
||||||
# First priority is the Type of component (e.g. R?, U?, L?)
|
# First priority is the Type of component (e.g. R?, U?, L?)
|
||||||
groups = sorted(groups, key=lambda g: [g.components[0].ref_prefix, get_value_sort(g.components[0])])
|
groups = sorted(groups, key=lambda g: [g.components[0].ref_prefix, get_value_sort(g.components[0])])
|
||||||
# Enumerate the groups
|
# Enumerate the groups and compute stats
|
||||||
|
n_total = 0
|
||||||
|
n_fitted = 0
|
||||||
c = 1
|
c = 1
|
||||||
dnf = 1
|
dnf = 1
|
||||||
|
cfg.n_groups = len(groups)
|
||||||
for g in groups:
|
for g in groups:
|
||||||
if cfg.ignore_dnf and not g.is_fitted():
|
is_fitted = g.is_fitted()
|
||||||
|
if cfg.ignore_dnf and not is_fitted:
|
||||||
g.update_field('Row', str(dnf))
|
g.update_field('Row', str(dnf))
|
||||||
dnf += 1
|
dnf += 1
|
||||||
else:
|
else:
|
||||||
g.update_field('Row', str(c))
|
g.update_field('Row', str(c))
|
||||||
c += 1
|
c += 1
|
||||||
|
# Stats
|
||||||
|
g_l = g.get_count()
|
||||||
|
n_total += g_l
|
||||||
|
if is_fitted:
|
||||||
|
n_fitted += g_l
|
||||||
|
cfg.n_total = n_total
|
||||||
|
cfg.n_fitted = n_fitted
|
||||||
|
cfg.n_build = n_fitted * cfg.number
|
||||||
return groups
|
return groups
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -32,11 +32,6 @@ def write_bom(filename, ext, groups, headings, cfg):
|
||||||
# Allow renaming the columns
|
# Allow renaming the columns
|
||||||
head_names = [h if h.lower() not in cfg.column_rename else cfg.column_rename[h.lower()] for h in headings]
|
head_names = [h if h.lower() not in cfg.column_rename else cfg.column_rename[h.lower()] for h in headings]
|
||||||
result = False
|
result = False
|
||||||
# Some stats
|
|
||||||
cfg.n_groups = len(groups)
|
|
||||||
cfg.n_total = sum([g.get_count() for g in groups])
|
|
||||||
cfg.n_fitted = sum([g.get_count() for g in groups if g.is_fitted()])
|
|
||||||
cfg.n_build = cfg.n_fitted * cfg.number
|
|
||||||
# CSV file writing
|
# CSV file writing
|
||||||
if ext in ["csv", "tsv", "txt"]:
|
if ext in ["csv", "tsv", "txt"]:
|
||||||
result = write_csv(filename, ext, groups, headings, head_names, cfg)
|
result = write_csv(filename, ext, groups, headings, head_names, cfg)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue