def process_if_needed(volume, cfr_part): """Review dependencies; if they're out of date, parse the annual edition into a tree and store that""" version_id = _version_id(volume.year, cfr_part) annual_entry = entry.Annual(volume.title, cfr_part, volume.year) tree_entry = entry.Tree(volume.title, cfr_part, version_id) notice_entry = entry.Notice(version_id) deps = dependency.Graph() deps.add(tree_entry, annual_entry) deps.validate_for(tree_entry) if deps.is_stale(tree_entry): tree = xml_parser.reg_text.build_tree(annual_entry.read().xml) tree_entry.write(tree) notice_entry.write(build_fake_notice(version_id, volume.publication_date, volume.title, cfr_part))
def process_if_needed(volume, cfr_part): """Review dependencies; if they're out of date, parse the annual edition into a tree and store that""" version_id = _version_id(volume.year, cfr_part) annual_entry = entry.Annual(volume.title, cfr_part, volume.year) tree_entry = entry.Tree(volume.title, cfr_part, version_id) notice_entry = entry.Notice(version_id) deps = dependency.Graph() deps.add(tree_entry, annual_entry) deps.validate_for(tree_entry) if deps.is_stale(tree_entry): tree = xml_parser.reg_text.build_tree(annual_entry.read().xml) tree_entry.write(tree) notice_entry.write( build_fake_notice(version_id, volume.publication_date, volume.title, cfr_part))
def process_if_needed(cfr_title, cfr_part, year): """Review dependencies; if they're out of date, parse the annual edition into a tree and store that""" version_id = _version_id(year, cfr_part) annual_entry = entry.Annual(cfr_title, cfr_part, year) tree_entry = entry.Tree(cfr_title, cfr_part, version_id) # This is a little odd, but we use SxS as a source for "notice" data. This # will eventually be removed in favor of storing the version meta data # directly sxs_entry = entry.SxS(version_id) deps = dependency.Graph() deps.add(tree_entry, annual_entry) deps.validate_for(tree_entry) if deps.is_stale(tree_entry): tree = xml_parser.reg_text.build_tree(annual_entry.read().xml) tree_entry.write(tree) sxs_entry.write(build_fake_notice( version_id, date.today().isoformat(), cfr_title, cfr_part))