"""Authored normalized header-value subset version00; no HTTP/tracing backend."""
import re,json,platform
class Unsupported(ValueError):pass
def parse(value):
 if type(value)is not str or len(value)!=55:raise ValueError('exact version00 length')
 if value[:2]=='ff':raise ValueError('forbidden version')
 if value[:2]!='00':raise Unsupported('version unsupported by this parser')
 m=re.fullmatch(r'00-([0-9a-f]{32})-([0-9a-f]{16})-([0-9a-f]{2})',value)
 if not m:raise ValueError('lowercase hex format')
 trace,parent,flags=m.groups()
 if int(trace,16)==0 or int(parent,16)==0:raise ValueError('zero ID')
 return {'trace_id':trace,'parent_id':parent,'flags':int(flags,16),'sampled':bool(int(flags,16)&1)}
def outgoing(trace,span,sampled):
 v='00-'+trace+'-'+span+'-'+('01'if sampled else'00');parse(v);return v
def demo():
 trace='11111111111111111111111111111111';spans=['aaaaaaaaaaaaaaaa','bbbbbbbbbbbbbbbb','cccccccccccccccc']
 root=outgoing(trace,spans[0],True);b=parse(root);b_to_c=outgoing(b['trace_id'],spans[1],b['sampled']);c=parse(b_to_c)
 assert b['trace_id']==c['trace_id']==trace and b['parent_id']==spans[0]and c['parent_id']==spans[1]
 assert parse('00-'+trace+'-'+spans[0]+'-09')['sampled']is True
 assert parse('00-'+trace+'-'+spans[0]+'-08')['sampled']is False
 bad=['00-'+'0'*32+'-'+spans[0]+'-01','00-'+trace+'-'+'0'*16+'-01',root.upper(),root+'-extra','ff'+root[2:],'01'+root[2:]];rejected=[]
 for s in bad:
  try:parse(s)
  except ValueError as e:rejected.append({'value':s,'classification':'unsupported_version'if isinstance(e,Unsupported)else'invalid_subset','message':str(e)})
  else:raise AssertionError(s)
 hops=[{'service':'A','incoming_parent':None,'own_span':spans[0],'outgoing_parent':spans[0]},{'service':'B','incoming_parent':b['parent_id'],'own_span':spans[1],'outgoing_parent':spans[1]},{'service':'C','incoming_parent':c['parent_id'],'own_span':spans[2],'outgoing_parent':None}]
 assert hops[1]['incoming_parent']!=hops[1]['own_span'] and hops[2]['incoming_parent']==hops[1]['outgoing_parent']
 return {'python':platform.python_version(),'authored_spans':{'A':spans[0],'B':spans[1],'C':spans[2]},'three_service_ledger':hops,'A_to_B':root,'B_incoming_parent':b,'B_to_C':b_to_c,'C_incoming_parent':c,'sampled_mask_results':{'09':True,'08':False},'rejected':rejected,'ids_deterministic_fixtures_not_production_generation':True,'backend_or_network_or_pii_used':False,'full_tracestate_or_future_version_implementation':False,'all_assertions_passed':True}
if __name__=='__main__':print(json.dumps(demo(),indent=2))
