o Fme@sJddlmZddlZddlZddlZddlmZeZeddkr&dZ ndZ e dZ e dZ e d Z e d Z d Zd d Zee dddZesMede neeZee dddZes`ede neeaee dddZessede neeaddZddZddZddZddZddZddZd d!Zd"d#Z d$d%Z!d&d'Z"dS)()pathN)ValidationErrorWindowsz D:/website/z/mnt/d/website/z names.tsvzinstruments.tsvz types.tsvz contributors/zcontributors/template.ft3cCsg}|}|d}|D]E}d}|}|d}|tkr9t|dkr)|d}n |dd|d}||q |tkrKt|dkrJ||dq ||dq |S)N  r )readsplitstripflNameslenappendflInsts)flListliOutstListlsInlinestOutlsRecr/mnt/d/website/ft3form/vals.py make_lists$      rrlatin1)encodingz Cannot open cCs*d}|D]}|}|||<|d7}q|S)Nrr )r )liInnitemrrr strip_list5s  r"cCsz|j}|}t|d}g}g}|D]}td|s"||q||qt|dkr;d|}d|}t |dS)N,z[A-G][#b]?[Mm]rz Bad Keys: ) datar r"r re fullmatchrrjoinr)formfieldstIn liKeyListbadKeysgoodKeysmKeystErrrrrkey_val=s     r0c Csz|j}|}|d}t|}g}g}|D]}|tvr"||q||qt|dkr;d|}d|} t| dS)Nr#rzInvalid music type[s]: ) r$r r r"liTypesrrr'r) r(r)stTypestypeList liTypeListbadTypes goodTypesmtypestBadr/rrrtype_valM     r9c Csz|j}|}|d}t|}g}g}|D]}|tvr"||q||qt|dkr;d|}d|}t|dS)Nr#rzInvalid instrument[s]: ) r$r r r"liInstsrrr'r) r(r)stInsts liEnsemblebadInsts goodInstsinstr8r/rrr ensemble_val_r:rAcCs>|j}|}td|rtd|sd|}t|dSdS)Nz [A-Z]{1,2}-z[A-Z]{1,2}-[A-Z]{1,3}[a-z]*:?zMangled library siglum: )r$r r%matchr)r(r)r*r/rrr source_valrs  rCc Cs |j}|}t|d}g}g}|D]f}td|r.td|s(||q||qtd|rFtd|s@||q||qtd|rutd|}|sZ||q|dro|d |dkro||q||q||qt |d krd |}d |}t |dS) Nr#z[0-9]z[0-9]+v?[a-m]?z[%#]z [%#][0-9]*z[a-zA-Z]z"([a-zA-Z])([a-zA-Z]?)[1-8]v?[a-m]?rr rz Bad pages: ) r$r r"r r%rBr&rgrouprr'r) r(r)r* liPageListbadPages goodPagesstPagevalr/rrrpage_val{s6                rJcCs&|j}|}td|stddS)Nz[1-9][0-9]*\. [A-Z].*zBSection name must start with a number, followed by a . and a space)r$r r%r&r)r(r)r*rrr section_vals  rKcCs t|S)N)rexists)stFilerrr find_files rNcCdSNT) latin1_to_asciir$r%searchrrDlowerupperrN)r(r)stInputrIr/rrrname_valrVcCrOrP)r$rNr)r(r)stOutputr/rrr output_valrWrYcCrOrP)r$TEMPLATErNr)r(r)rUr/rrr input_valrWr[)#osrplatformr%readlinewtforms.validatorsrcurrOSfind LOCALBASE NAMESFILE INSTSFILE TYPESFILE CONTRIBDIRrZropenrprintliNamesrr;flTypesr1r"r0r9rArCrJrKrNrVrYr[rrrrsH