from research import *
s=begin(1287,'Construct the Moses ordered-path register module','Which pathweights are genealogical andwhich are eventintervals?',{},['C1286','C1233–C1236','C1251'])
d=json.loads((ROOT/'model/Moses_MT_complete_path.json').read_text());tail=json.loads((ROOT/'model/Moses_late_path.json').read_text());rows=[]
for r in d['rows']:
 x=dict(r)
 if r['name']=='Moses':kind='heldterminus'
 elif r['name']=='Entry':kind='eventintervaltoMosesbirth'
 elif r['name']=='Joseph':kind='ageatEntryderivedfromnarrativeconstants'
 elif r['name']=='Jacob':kind='ageatJosephbirthderivedfromnarrativeconstants'
 else:kind='selectedbegettinginterval'
 x['edge_role']=kind;rows.append(x)
a=artifact('model/primitive_Moses_path_module.json',json.dumps({'rows':rows,'tail_source_constants':tail['source_constants'],'base_state':'Terah70,CainanOFF,Shem+2excluded','terminology':'OrderedRegular chronologicalpath; includesgenealogicalandedgesendingatevents.','derived_summaries':['2580position','fiveblocks','130|800recapitulation','430/490cyclecomparisons'],'source_scope':'Moses1526held; SP4411remainstransmittedblock.'},indent=2)+'\n')
finish(s,{'Moses_module':a},'TheMosesregister nowlabels each edge byitsactualsource role. Callingtheobject anorderedRegular chronologicalpath avoids pretendingtheEntry-to-Moses tail is anunattestedbegettingchain.','Construct theinverseinputmodule withoriginalpartitions andseparateeventroles.',{'25nodes':len(rows)==25,'tail_roles':rows[-2]['edge_role']=='eventintervaltoMosesbirth','91Jacob':next(x for x in rows if x['name']=='Jacob')['actual']==91,'39Joseph':next(x for x in rows if x['name']=='Joseph')['actual']==39})
